Table of Contents
Fetching ...

Behavior Tree Capabilities for Dynamic Multi-Robot Task Allocation with Heterogeneous Robot Teams

Georg Heppner, David Oberacker, Arne Roennau, Rüdiger Dillmann

TL;DR

The system offers a runtime auction system to dynamically allocate tasks to the most capable robot in the current team, and leverages utility values and pre-conditions to ensure that the allocation improves the overall mission execution quality while preventing faulty assignments.

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.

Behavior Tree Capabilities for Dynamic Multi-Robot Task Allocation with Heterogeneous Robot Teams

TL;DR

The system offers a runtime auction system to dynamically allocate tasks to the most capable robot in the current team, and leverages utility values and pre-conditions to ensure that the allocation improves the overall mission execution quality while preventing faulty assignments.

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.
Paper Structure (11 sections, 17 equations, 6 figures, 1 table)

This paper contains 11 sections, 17 equations, 6 figures, 1 table.

Figures (6)

  • Figure 1: Top: Gazebo Simulation with a heterogeneous robot team, Middle: 2D Cave map with target objects (blue) exploration goals (red) and paths. All three robots employ this map for navigation with the ROS move_base stack, Bottom: Behavior Tree segment used in the Explore Capability.
  • Figure 2: State transitions for Capability nodes when applying actions. For clarity the error state/action has been left out. To further simplify: the red dotted edges are representing the shutdown action, blue dashed edges the reset action and the green solid lines the untick action. Lastly, the running, succeeded, and failed state haven been combined.
  • Figure 3: Schematic overview of the components required to implement the concept. Components marked in red, were implemented as part of this work.
  • Figure 4: Simplified Behavior Tree describing the overall mission. Each Action node is a Capability that is assigned to a robot for execution. The root node is a parallel node that ticks all its children in parallel.
  • Figure 5: Task allocation during a mission run with a single Husky robot. Arrows denote time points when a task, with the ID as seen in figure \ref{['fig:cave_world:navigation']}, was completed.
  • ...and 1 more figures

Theorems & Definitions (13)

  • Definition II.1: Capabilities
  • Definition II.2: Parameters for Capabilities
  • Definition II.3: Capability Implementation
  • Definition II.4: Capability to Implementation connection
  • Definition II.5: Capability Execution
  • Definition II.6: Preconditions
  • Definition II.7: Dynamic Binding
  • Definition II.8: Capability IO Bridge
  • Definition II.9: Capability Input and Output Bridge
  • Definition II.10: Remote Capability Slot
  • ...and 3 more