as2_behavior
Aerostack2 Behavior Class
README
AS2_behavior library
Aerostack2 uses Behaviors to handle mission execution
Each behavior is separated in a behavior Server and a behavior client. They are similar to rclcpp actions but with some differences.
Each behavior server only attends to a single goal (client) at each moment.
Feedback is visible for all nodes
They extend start, stop, and feedback with modify, pause, resume, and behavior state data.
We use ros2 services for:
start
modify (the same syntax than start)
pause (std_srvs::srv::Empty)
resume (std_srvs::srv::Empty)
stop (std_srvs::srv::Empty)
We use ros2 topics for:
Feedback
State
We take advantage of ros2 action message definitions:
Goal: will be used in start and modify services
Feedback: Will be used in feedback
Response: (Maybe in state, or in inmediate behaviors)
We difference between Inmediate, Recurrent and Regular (or goal oriented) behaviors:
Inmediate: act like a service, they dont give Fb and cannot be paused or modified.
Recurrent: they give feedback until they are stopped or paused.
Goal Oriented: they keep runing until a termination condition is met.