  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.
