The development included the use of UGVs and ROS2 Humble, applying object-oriented programming techniques and robust design patterns. The results confirmed that, under the master-slave structure, the system completes all assigned tasks, even in the event of failure of one or more robots. In addition, an intuitive desktop application was designed, which facilitates the operation of the system without the need for specialized knowledge in ROS2. The proposed architecture is shown to be effective for managing and delegating tasks in terrestrial multirobot systems, establishing a solid foundation for future research.
Create a workspace
mkdir -p ~/ros2_ws/src
cd ~/ros2_ws/srcClone this repository
git clone https://github.com/iesusdavila/master_slave_mrs.gitBuild the workspace with colcon
cd ~/ros2_ws
colcon buildYou can config multiple master-slave structures, there is no limitation on the number of robots.
For the master we have to enter the following parameters:
- Name of the robot
- Indicates if it is the master
- Has a camera
- Inherits navigation time from slaves
For slave we need to enter the following parameters:
- Name of the robot
- Indicates if it is the master
- Name of the master
- Has a camera
- Has maximum navigation time
- Maximum navigation time
- Task requires camera
- List of points for tasks
To deploy this project run
ros2 run multi_robot_master_slave nav_master_slave.py <path_to_yaml_file>