Skip to content

Gastd/consensus

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

65 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

consensus

Overview

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:

License

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 is research code, expect that it changes often and any fitness for a particular purpose is disclaimed.

Build on ROS

Clone this repository to your catkin workspace.

cd ${YOUR_WORKSPACE_PATH}/src
git clone https://github.com/Gastd/consensus.git
cd ../
catkin_make

Run the Simulation

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.

Algorithms

  • flocking_leader.py and flocking_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

About

Robot cooperation with distributed controllers

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published