Software Architecture
Markovito’s software architecture has been designed and developed as a layered behavior-based architecture that uses ROS for communication.
The architecture has three different levels:
- Functional level: At this level the modules interact with the robot’s sensors and actuators, relaying commands to the motor or retrieving information from the sensors.
- Execution level: Modules in this level interact with the functional level through ROS architecture. This level includes the modules to perform basic tasks such as navigation, object manipulation, speech recognition, etc.
- Decision level: This is the highest level in the architecture, at which planning and reasoning is performed by manipulating logical symbols that rep- resent high-level concepts, such as relative-position relations (e.g. in front of) and causal effects of actions (e.g. picking-up and moving objects causes a change in their location). The symbolic representation of the environment and the planning is performed with a sorted answer set programming approach.
At the execution level, the robot’s skills are encapsulated into general purpose modules. By doing so, programming the robot to solve different tasks becomes less time consuming and endows the architecture with scalability, which becomes more important as new modules are required.