2021 IEEE/RSJ International Conference on Intelligent Robots and Systems
This paper presents a novel methodology that allows a swarm of robots to perform a cooperative transportation task. Our approach consists of modeling the swarm as a Gibbs Random Field (GRF), taking advantage of this framework's locality properties. By setting appropriate potential functions, robots can dynamically navigate, form groups, and perform cooperative transportation in a completely decentralized fashion. Moreover, these behaviors emerge from the local interactions without the need for explicit communication or coordination. To evaluate our methodology, we perform a series of simulations and proof-of-concept experiments in different scenarios. Our results show that the method is scalable, adaptable, and robust to failures and changes in the environment.
@inproceedings{rezeck2021collective,
author={Rezeck, Paulo and Assunção, Renato M. and Chaimowicz, Luiz},
booktitle={2021 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS)},
title={Cooperative Object Transportation using Gibbs Random Fields},
year={2021},
volume={},
number={},
pages={9131-9138},
doi={10.1109/IROS51168.2021.9635928}
}
git clone https://github.com/verlab/grf_colletive_transport.git /
&& cd grf_colletive_transport
docker-compose build \
&& docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
grf_swarm_tranport v1.0 f18898a6cb7a 6 days ago 3.89GB
CATKIN_DIR=~/catkin_ws
cd $CATKIN_DIR
apt-get install -y \
qt5-default \
python3-pyqt5 \
ros-${ROS_DISTRO}-robot-state-publisher \
ros-${ROS_DISTRO}-usb-cam \
ros-${ROS_DISTRO}-xacro \
ros-${ROS_DISTRO}-urdfdom-py \
ros-${ROS_DISTRO}-rosserial \
ros-${ROS_DISTRO}-rosserial-server \
ros-${ROS_DISTRO}-urdf \
ros-${ROS_DISTRO}-teleop-twist-keyboard \
ros-${ROS_DISTRO}-rviz \
ros-${ROS_DISTRO}-gazebo-ros-pkgs \
ros-${ROS_DISTRO}-gazebo-plugins \
ros-${ROS_DISTRO}-gazebo-ros-control
cd $CATKIN_DIR/src \
&& git clone https://github.com/ros-simulation/gazebo_ros_pkgs.git \
&& cd gazebo_ros_pkgs \
&& git checkout b0ed38f9ecedbe929340f5e8b0aa7a457248e015 \ #branch before tf_prefix deprecation decision
&& cd $CATKIN_DIR \
&& /bin/bash -c "source /opt/ros/${ROS_DISTRO}/setup.bash && rosdep install --from-paths src --ignore-src -r -y \
&& catkin_make"
cd $CATKIN_DIR/src \
&& git clone --depth 1 --branch noetic-devel https://github.com/verlab/hero_common.git \
&& cd $CATKIN_DIR \
&& /bin/bash -c "source /opt/ros/${ROS_DISTRO}/setup.bash && rosdep install --from-paths src --ignore-src -r -y \
&& catkin_make"
cd $CATKIN_DIR/src /
&& git clone https://github.com/verlab/grf_colletive_transport.git /
&& cd $CATKIN_DIR /
&& /bin/bash -c "source /opt/ros/${ROS_DISTRO}/setup.bash && rosdep install --from-paths src --ignore-src -r -y \
&& catkin_make"
docker compose build
sh docker-launch.sh
roslaunch hero_gazebo gazebo_bringup.launch
roslaunch grf_transport spawn_object.launch
roslaunch grf_transport spawn_robots.launch
roslaunch grf_transport grf_controller.launch
roscd grf_transport/config/ \
&& rosrun rviz rviz -d config.rviz
roslaunch hero_gazebo gazebo_wizard.launch
Also set the number of robots in the grf controller param.yaml
file:
# Number of robots in the environment
robots: 30
.
.
.
Edit the launch spawn_object.launch
and select the object you want to spawn:
<!-- Select a object shape: "rectangular_prism, triangular_prism, polygonal_prism" -->
<arg name="object_shape" default="rectangular_prism" />
<param name="object_shape" value="$(arg object_shape)" />
Rezeck, P., Azpurua, H., Correa, M. F., & Chaimowicz, L. (2022). Hero 2.0: A low-cost robot for swarm robotics research. arXiv preprint arXiv:2202.12391.
P. Rezeck and L. Chaimowicz, “Chemistry-Inspired Pattern Formation With Robotic Swarms,” in IEEE Robotics and Automation Letters, vol. 7, no. 4, pp. 9137-9144, Oct. 2022, doi: 10.1109/LRA.2022.3190638.
P. Rezeck, R. M. Assunção and L. Chaimowicz, “Flocking-Segregative Swarming Behaviors using Gibbs Random Fields,” 2021 IEEE International Conference on Robotics and Automation (ICRA), Xi’an, China, 2021, pp. 8757-8763, doi: 10.1109/ICRA48506.2021.9561412.