Programming Robot Behaviors with Execution Management Functions
This work addresses coordination challenges in robot programming for developers, but it is incremental as it builds on existing ROS frameworks.
The paper tackles the problem of coordinating concurrent software components in autonomous robot control by introducing a programming method where each behavior module includes execution management functions, implemented as a ROS-based library called behaviorlib. The method has been successfully reused to build multiple applications in aerial robotics.
The control architecture of autonomous robots can be developed by programming and integrating multiple software components that individually control separate behaviors. This approach requires additional mechanisms to coordinate their concurrent execution. This paper presents a programming method for such components that has been designed to facilitate their coordinated execution. Each component is programmed as a module that controls a separate robot behavior together with a set of functions for execution management. The details of this proposal are formulated in the form of a ROS-based software library called \textit{behaviorlib}. This solution has been used to program general behavior controllers that have been successfully reused to build multiple applications in aerial robotics.