MR.CAP: Multi-robot Joint Control and Planning for Object Transp

Hussein Ali Jaafar

0

Project Manager

Researcher

Software Engineer

C

C++

MR.CAP: Multi-robot Joint Control and Planning for Object Transport

MR.CAP, or Multi-robot Joint Control and Planning for Object Transport, is a novel approach to solve simultaneous multi-robot control and planning problems. The algorithm is developed in C++, making use of factor graph inference and an innovative problem reduction to provide a robust, fast and scalable solution. Our approach outperforms state-of-the-art methods in terms of optimization time, scalability and robustness. The algorithm is tested in simulation and on a real robot system. The paper was accepted for publication in IEEE Control Systems Letters. See the website for more information.
About The Project
MR.CAP, or Multi-robot Joint Control and Planning for Object Transport, is a novel approach to solve simultaneous multi-robot control and planning problems. The algorithm is developed in C++, making use of factor graph inference and an innovative problem reduction to provide a robust, fast and scalable solution. Our approach outperforms state-of-the-art methods in terms of optimization time, scalability and robustness. The algorithm is tested in simulation and on a real robot system. The paper was accepted for publication in IEEE Control Systems Letters. See the website for more information.

Built With

Getting Started

To setup the project locally, follow these simple steps. The demo will allow you to experiment with the algorithm and to test it on your own system.

Prerequisites

First, ensure that you have installed GTSAM, and it's necessary prerequisites, as well as proper linking to the library. See GTSAM for more information.
First, navigate to a directory of your choice, and clone the GLEW and GTSAM repositories.

Installation

Clone the repo git clone https:://github.com/h2jaafar/mr.cap.git
Build the project cd mr.cap mkdir build && cd build cmake .. make
Run the demo ./mrcap_demo

Usage

There are three ways to use the algorithm:
Pure C++ simulation (i.e non-physics based)
Gazebo simulation
Real robot system
To use the pure C++ simulation, simply run the demo as described above. This will run the algorithm on a simulated system, and launch a GUI using ImGui and ImPlot to visualize the results.
There are several configurable parameters in the demo. These are:
Number of robots
Number of obstacles
Number of steps
Start and goal positions of the centroid
Robot geometry
Optimization parameters
Covariance parameters
Psuedo-disturbances (for testing) as well as many more, found in include/mrcap/MainWindow.h. We have tried to make as many of these parameters as possible configurable, to allow for easy experimentation, however, some of them may require some searching in the code to find.
Some images of the demo are shown below:
To use the Gazebo simulation, first install Gazebo and ROS2. I highly recommend using a custom ROS2 Gazebo world for multi-robot simulation I developed alongside this project. It can be found here. This will allow you to easily launch multiple robots in Gazebo, and to control them using ROS2.
Finally, to use the algorithm on real robot systems is simply a matter of sim2real. Simply remap the topics to the real robot topics, and you're good to go! See include/mrcap/ROSCommunications.h for details regarding the topics subscribed and published to.
In our experimentation, we published robot velocites to /B0n/cmd_vel where n is the robot number. We used a Vicon motion capture system to obtain robot positions, and subscribe to the /vicon/B0n/B0n topics. You can simply substitute this with your localization stack of choice.
Like this project
0

Posted Jul 7, 2024

C++ algorithm for multi-robot control and planning. Produces more efficient and scalable solution than other comparable approaches

Likes

0

Views

10

Tags

Project Manager

Researcher

Software Engineer

C

C++

PathBench: Benchmarking Platform for Classic and Learned Path Pl
PathBench: Benchmarking Platform for Classic and Learned Path Pl
Terrain Following and Obstacle Avoidance
Terrain Following and Obstacle Avoidance
Waypoint Planning Networks
Waypoint Planning Networks