Resilient heterogeneous multi-robot systems

Resilience is a property that robotic systems need to exhibit in order to be successfully deployed in the real world over long periods of time. When conditions are not nominal—because the environment is unknown, unstructured, non-stationary, or because functionalities have been lost due to system failures—resilience is the property that allows robots to react and recover by structurally changing their behavior or their objective in order to survive, in a robotic sense.

Heterogeneity can also contribute favorably to resilience. Consider an example scenario where a heterogeneous multi-robot system consisting of ground and aerial mobile robots, is tasked with carrying objects to specified locations in the environment. Unexpected weather conditions might lead to high speed winds in the environment, which might prevent aerial robots from making further progress towards the accomplishment of their goal. In such a case, heterogeneity will allow the robot team to achieve the desired objective despite the unexpected conditions.

Resilient and energy-aware task allocation

The following constraint-optimization formulation is amenable to encode a resilient robot behavior in multi-task execution scenarios: $$ \begin{aligned} \underset{u,\delta,\alpha}{\mathrm{minimize}} ~~& \| u \|^2 + \kappa_1 \| \delta \|^2 + \kappa_2 \| \alpha-\alpha_0 \|^2\\ \mathrm{subject~to} ~~& g_{task,1}(x,u) \le \delta_1\\ ~~& \quad\vdots\\ ~~&g_{task,M}(x,u) \le \delta_M\\ ~~&g_{energy}(x,E,u) \le 0\\ ~~&P(\alpha)\delta\le0. \end{aligned} $$ Each task is encoded by means of the constraint function \(g_{task,i}\), where \(\delta_i\) is the slack variable corresponding to task \(i\), used to prioritize tasks. The allocation of tasks to robots is performed through the constraint \(P(\alpha)\delta\le0\). The allocation vector \(\alpha_0\) indicates a desired allocation, evaluated based on the capabilities that different robots have at executing different tasks.
It is interesting to notice that the allocation \(\alpha\) is an optimization variable evaluated online alongside the control input \(u\) required by the robots to execute the allocated tasks. This feature allows the allocation algorithm to adapt to varying environmental conditions and render the multi-robot system resilient to failures and unexpected phenomena. The videos below showcase resilient robot teams in multi-task execution scenarios and subject to internal failures and unexpected environmental phenomena.


  • G. Notomista, S. Mayya, Y. Emam, C. Kroninger, A. Bohannon, S. Hutchinson and M. Egerstedt, “A Resilient and Energy-Aware Task Allocation Framework for Heterogeneous Multi-Robot Systems”, IEEE Transactions on Robotics, 2021
  • Y. Emam, G. Notomista, P. Glotfelter, and M. Egerstedt, “Data-Driven Adaptive Task Allocation for Heterogeneous Multi-Robot Teams Using Robust Control Barrier Functions”, IEEE International Conference on Robotics and Automation, 2021
  • G. Notomista, S. Mayya, M. Selvaggio, M. Santos, and C. Secchi, “A set-theoretic approach to multitask execution and prioritization”, IEEE International Conference on Robotics and Automation, 2020
  • Y. Emam, S. Mayya, G. Notomista, A. Bohannon, and M. Egerstedt, “Adaptive task allocation for heterogeneous multi-robot teams with evolving and unknown robot capabilities”, IEEE International Conference on Robotics and Automation, 2020
  • G. Notomista, S. Mayya, S. Hutchinson, and M. Egerstedt, “An optimal task allocation strategy for heterogeneous multi-robot systems”, European Control Conference, 2019