System components create a container connecting all other components into end-to-end Behavior machine. This is a place where lives a "soul" of autonomous robot. System components are wrappers around Android OS. ELFiX's first target is Android - based Service Robots (link to compatible robots). However we're working in direction of porting System components into IOS to address robots like DOBLO.
AI components made of Deep Neural Networks for Face Recognition, Object Detection, Natural Language Understanding and other High-Level activities. In current version we're using on-device neural networks, trained or re-trained on GPU-powered Ubuntu workstation. This allows as to do all this operations even without stable Internet connection. By desire of our customers we also support our previous architecture where AI operation were hosted on server and robot delegated part of its work to the server.
UIX components handle touch-screen and verbal commands for communication with Humans.
Hardware drivers are components connecting Behavior machine to real motors and sensors of the robot. Sometimes this connection involves ROS code.
Domain Specific components are parts of robot's behavior related to its specific service. For example - Map of shopping area for Shopping Assistant robot or Interactive Agenda for Even Robot.
Messaging components allow Robot to be connected to Smart Home devices, other Robots or even Social Network of Humans. Robots can exchange commands and data packages creating even bigger Behavior machine connected to external world or organizing robots into cooperating swarms.