consensus is ROS package used to test cooperative controllers with mobile robots in the Laboratory of Automation and Robotics at University of Brasilia.
The code in this package can be used either with simulated robots or with real robots:
The source code is released under a MIT license.
Authors: Gabriel F P Araujo and Raphael Braccialli
Affiliation: LARA
Maintainers: Gabriel F P Araujo and Raphael Braccialli
The consensus package has been tested under the following softwares:
- This software was tested in Ubuntu 16.04 and 18.04
- ROS Kinetic and ROS Melodic
- Gazebo 9.0.0
This is research code, expect that it changes often and any fitness for a particular purpose is disclaimed.
Clone this repository to your catkin workspace.
cd ${YOUR_WORKSPACE_PATH}/src
git clone https://github.com/Gastd/consensus.git
cd ../
catkin_make
The Simulation uses the well known Gazebo Simulated that is shiped with ROS.
-
Before running the simulation, you must to download our robots description.
cd ${YOUR_WORKSPACE_PATH}/src git clone https://github.com/lara-unb/aramis.git git clone https://github.com/lara-unb/athos.git git clone https://github.com/lara-unb/porthos.git cd ../ catkin_make
Run the simulation to test the code:
- In a terminal with your ros workspace
roslaunch consenus simulation.launch
This will open the Gazebo with the robots in posistion and ready to go.
-
flocking_leader.py
andflocking_agents.py
implements the control system proposed in the following article:@article{zhao2017, title={Flocking of multi-agent nonholonomic systems with unknown leader dynamics and relative measurements}, author={Zhao, Xiao-Wen and Guan, Zhi-Hong and Li, Juan and Zhang, Xian-He and Chen, Chao-Yang}, journal={International Journal of Robust and Nonlinear Control}, volume={27}, number={17}, pages={3685--3702}, year={2017}, publisher={Wiley Online Library} }
There is a launch file that calls the controllers for each one of the robots including the virtual leader.
roslaunch consensus sim_flocking.launch
And the flocking_agents.launch
will run only one controller and must be used in each robot's computer.
The display.launch
will open the RViz and will show the robots and its path when they move.
The flocking_leader.py
implements the virtual leader and can be used with rosrun
:
rosrun consensus flocking_leader.py
double_integrator.py
implements