A swarm robot simulation environment for ROS to be used with Gazebo.
This project starts after investigating several swarm robot platforms like Kilobot, E-puck, Jasmine, Alice, etc, and working on a novel swarm microrobot called Inchbot for a while. It would be interesting to see what these swarm microrobots can do as a collective under simulation environment like ROS. It aims to be a general swarm robots simulation platform.
Current research topic is decentrized formation control.
swarm_robot_ros_sim contains packages each of which features a set of functionalities for this simulation platform:
swarm_robot_description package describes the robot models and simulation environment initialization files.
swarm_robot_msgs folder contains packages for customized messages, services and actions that will be used in other packages.
swarm_robot_controller package contains the low level controllers for the swarm robots.
swarm_robot_simulation package contains the swarm algorithms.
Have ROS Indigo installed and workspace setup. Clone this package in ~/ros_ws/src and build with catkin_make.
Two wheel robot dispersion simulation:
roslaunch swarm_robot_description two_wheel_robot.launch robot_quantity:=20 half_range:=0.5
rosrun swarm_robot_simulation two_wheel_robot_dispersion _spring_length:=0.7 _sensing_range:=2.0
Two wheel robot aggregation simulation:
roslaunch swarm_robot_description two_wheel_robot.launch robot_quantity:=30 half_range:=2.0
rosrun swarm_robot_simulation two_wheel_robot_aggregation _sensing_range:=1.5
Two wheel robot line formation simulation:
roslaunch swarm_robot_description two_wheel_robot.launch robot_quantity:=25 half_range:=0.7
rosrun swarm_robot_simulation two_wheel_robot_line_formation _spring_length:=0.7 _sensing_range:=2.0
Optionally, in all previous tests, robots can be added or deleted through:
rosrun swarm_robot_description two_wheel_robot_batch_add _robot_quantity:=10 _half_range:=1.0
rosservice call /swarm_sim/two_wheel_robot_update (press tab)...
See the LICENSE file for license rights and limitations (MIT).