/ChoiRbot

A ROS 2 Toolbox for Cooperative Robotics

Primary LanguagePythonGNU General Public License v3.0GPL-3.0

ChoiRbot Documentation Status

Website | Reference docs | Installation | Getting started

⚠️ Information for end users
Documentation pages are currently being uploaded. The latest version will be available soon.

ChoiRbot is a ROS 2 toolbox developed within the excellence research program ERC in the project OPT4SMART. ChoiRbot provides a comprehensive set of libraries to execute complex distributed multi-robot tasks, such as model predictive control and task assignment, either in simulation or experimentally. The toolbox focuses on networks of heterogeneous robots without a central coordinator. It provides utilities for the solution of distributed optimization problems and can be also used to implement distributed feedback laws. Specifically, the package allows you to

  • Encode distributed optimization and control algorithms
  • Perform peer-to-peer communications among robots
  • Develop planning and control schemes
  • Connect with external motion capture hardware (see also our ROS 2 Vicon Bridge)
  • Run experiments on your robotic fleet
  • Perform realistic simulations with Gazebo and visualize data with RVIZ

Requirements and Installation

ChoiRbot requires ROS 2 Dashing Diademata to be installed on your system.

It relies on

  • numpy
  • scipy
  • recordclass
  • dill
  • disropt (optional, but required for several features)

Please, refer to the installation page for a more detailed installation guide.

To install the toolbox, first source your ROS 2 installation. Then create a ROS 2 workspace and, inside the src directory, run:

git clone https://github.com/OPT4SMART/ChoiRbot.git .

Then, from the parent directory execute:

colcon build --symlink-install

Getting started

Citing ChoiRbot

If you are you using ChoiRbot in research work to be published, please cite the accompanying paper

@article{testa2021choirbot,
    title={ChoiRbot: A ROS 2 toolbox for cooperative robotics},
    author={Testa, Andrea and Camisa, Andrea and Notarstefano, Giuseppe},
    journal={IEEE Robotics and Automation Letters},
    volume={6},
    number={2},
    pages={2714--2720},
    year={2021},
    publisher={IEEE}
}

Contributors

ChoiRbot is developed by Andrea Testa, Andrea Camisa and Giuseppe Notarstefano

Acknowledgements

This result is part of a project that has received funding from the European Research Council (ERC) under the European Union's Horizon 2020 research and innovation programme (grant agreement No 638992 - OPT4SMART).