Abstract:While individual robots are becoming increasingly capable, with new sensors and actuators, the complexity of expected missions increased exponentially in comparison. To cope with this complexity, heterogeneous teams of robots have become a significant research interest in recent years. Making effective use of the robots and their unique skills in a team is challenging. Dynamic runtime conditions often make static task allocations infeasible, therefore requiring a dynamic, capability-aware allocation of tasks to team members. To this end, we propose and implement a system that allows a user to specify missions using Bheavior Trees (BTs), which can then, at runtime, be dynamically allocated to the current robot team. The system allows to statically model an individual robot's capabilities within our ros_bt_py BT framework. It offers a runtime auction system to dynamically allocate tasks to the most capable robot in the current team. The system leverages utility values and pre-conditions to ensure that the allocation improves the overall mission execution quality while preventing faulty assignments. To evaluate the system, we simulated a find-and-decontaminate mission with a team of three heterogeneous robots and analyzed the utilization and overall mission times as metrics. Our results show that our system can improve the overall effectiveness of a team while allowing for intuitive mission specification and flexibility in the team composition.
Abstract:Heterogeneous Robot Teams can provide a wide range of capabilities and therefore significant benefits when handling a mission. However, they also require new approaches to capability and mission definition that are not only suitable to handle heterogeneous capabilities but furthermore allow a combination or distribution of them with a coherent representation that is not limiting the individual robot. Behavior Trees offer many of the required properties, are growing in popularity for robot control and have been proposed for multirobot coordination, but always as separate behavior tree, defined in advance and without consideration for a changing team. In this paper, we propose a new behavior tree approach that is capable to handle complex real world robotic missions and is geared towards a distributed execution by providing built in functionalities for cost calculation, subtree distribution and data wiring. We present a formal definition, its open source implementation as ros_bt_py library and experimental verification of its capabilities.