ROS2swarm - A ROS 2 Package for Swarm Robot Behaviors

Tanja Katharina Kaiser,Marian Johannes Begemann,Tavia Plattenteich,Lars Schilling,Georg Schildbach,Heiko Hamann
DOI: https://doi.org/10.1109/ICRA46639.2022.9812417
2024-05-04
Abstract:Developing reusable software for mobile robots is still challenging. Even more so for swarm robots, despite the desired simplicity of the robot controllers. Prototyping and experimenting are difficult due to the multi-robot setting and often require robot-robot communication. Also, the diversity of swarm robot hardware platforms increases the need for hardware-independent software concepts. The main advantages of the commonly used robot software architecture ROS 2 are modularity and platform independence. We propose a new ROS 2 package, ROS2swarm, for applications of swarm robotics that provides a library of ready-to-use swarm behavioral primitives. We show the successful application of our approach on three different platforms, the TurtleBot3 Burger, the TurtleBot3 Waffle Pi, and the Jackal UGV, and with a set of different behavioral primitives, such as aggregation, dispersion, and collective decision-making. The proposed approach is easy to maintain, extendable, and has good potential for simplifying swarm robotics experiments in future applications.
Robotics,Multiagent Systems
What problem does this paper attempt to address?
The paper proposes a solution to the lack of reusability in software development for mobile robots, especially swarm robots. ROS2 SWARM is a new package based on ROS 2, which provides a library for swarm robot behavior, including ready-to-use swarm behavior primitives. This package aims to simplify prototyping and experimentation in multi-robot systems, particularly for swarm robots, where the controller design should be as simple as possible. In ROS 2, code reuse across different robot platforms has become easier due to its modularity and platform independence. However, the application of ROS 2 in swarm robot research is relatively limited due to its distributed nature conflicting with the decentralized concept of swarm robots. The ROS2 SWARM package addresses this issue by using the Data Distribution Service (DDS) as middleware, allowing easy code reuse between different platforms and supporting basic swarm behaviors such as aggregation, dispersion, and collective decision-making. The paper introduces the structure and implementation of ROS2 SWARM and demonstrates how these behaviors are successfully applied on three different hardware platforms (TurtleBot3 Burger, TurtleBot3 Waffle Pi, and Jackal UGV). Additionally, the limitations of existing ROS and ROS 2 packages in the field of swarm robots are discussed, highlighting their lack of modular and reusable design patterns. ROS2 SWARM is inspired by best practices in distributed multi-agent systems, aiming to create a scalable foundation and compositional pattern framework for modular and reusable swarm behavior. The experimental part demonstrates the functionality and advantages of ROS2 SWARM in both simulated and real robot experiments, showing how to easily set up and execute swarm robot experiments across different platforms. By combining basic behavior patterns, more complex swarm behaviors such as "dispersion discussion" can be created, where robots disperse at a collective decision distance. Overall, this paper attempts to address the challenges in software development for swarm robots by providing a user-friendly and extensible ROS 2 package to facilitate simplified and efficient future experiments.