-
Notifications
You must be signed in to change notification settings - Fork 2
Aerostack Architecture
The figure below shows the main components of the Aerostack architecture. In the figure, colored rounded boxes represent data processing units (or processes in short) that are implemented as ROS nodes. They are organized in the following main components.
-
Interfaces. Interfaces include (1) sensor-actuator interfaces to receive data from sensors and send commands to robot actuators, and (2) interaction interfaces to communicate the robot with human operators and other robots.
-
Communication channel. The Aerostack architecture uses a common communication channel that contains shared dynamic information between processes. This channel facilitates process interoperability and helps to reuse components across different types of aerial platforms. The channel is implemented with a set of ROS topics and standard ROS messages.
-
Robot behaviors. Robot behaviors implement functional abilities such as state estimation, feature extraction, motion control, motion planning, or swarm interaction. A behavior management system controls the execution of multiple robot behaviors that operate in parallel, avoiding consistency conflicts.
-
Belief memory. A belief generation system abstracts relevant states of the world. These beliefs are stored in a memory keeping their consistency. Beliefs are used, for example, to make decisions about what is the next task to do during a mission execution.
-
Mission control. Mission control executes a mission plan specified in a formal description (e.g., using a behavior tree or a Python program). Mission control also includes processes for safety monitoring and recovery to provide fault tolerance.
Aerostack provides a software library to implement robot behaviors that can be used by developers to build a particular robotic system architecture. Examples of these components are:
-
Feature extractors that read simple states of sensors or implement vision recognition algorithms,
-
Motion controllers (e.g., PID controllers or MPC controllers),
-
Behaviors that perform self-localization and mapping (SLAM),
-
Motion planners that generate obstacle-free paths to reach destination points, and
-
Methods for communicating with other agents (other robots or human operators).
The library is open, so new behaviors can be included easily in the future, without changing the core of the system and the rest of the behaviors.
Each behavior in Aerostack is characterized by the following properties:
-
Common communication. Each behavior sends and/or receive messages using the common communication channel used by the Aerostack architecture. If several behaviors publish data in the same ROS topic (e.g., different motion controllers), additional mechanisms must be used to avoid conflicts.
-
Uniform interface. Each behavior has a uniform interface to control its execution (e.g., activate and deactivate). Each behavior provides cognizant failure, i.e., it verifies the correct execution with a reflective process that verifies whether the task is done correctly or not to inform about success or failure.
Contact: We thank and welcome any suggestion or comment about Aerostack. For any question or bug report you can read and/or write at the issues page. You can also contact the team support at the following address: [email protected]
The content of the Aerostack wiki is licensed under Creative Commons license CC BY 4.0
Getting started
Tools
Components
Tutorials
International competitions
More information