Adaptive Formation Reconfiguration of Multi-robot System in Confined Environments
DEFORM is an adaptive formation reconfiguration method that can autonomously adjust its formation based on environmental information.
Our accompanying video is now available on Bilibili and YouTube.
Jin Li, Yang Xu, Xiufang Shi, Liang Li, "DEFORM: Adaptive Formation Reconfiguration of Multi-robot System in Confined Environments", In IEEE Robotics and Automation Letters(RA-L), 2025. IEEE, Paper, Thesis (Chinese).
2.1 Ubuntu and ROS: Ubuntu 20.04. ROS Noteic. ROS Installation additional ROS package:
sudo apt install ros-noetic-turtlebot3-msgs
2.2 CasADi Solver use version 3.7 and follows the installation steps below:
sudo apt update
sudo apt install build-essential coinor-libipopt-dev swig
sudo apt install gfortran liblapack-dev pkg-config --install-recommends
git clone https://github.com/casadi/casadi.git
cd casadi
mkdir build && cd build
cmake -DWITH_PYTHON=ON -DWITH_IPOPT=ON -DWITH_OPENMP=ON -DWITH_THREAD=ON ..
make
sudo make install
cd ../..
rm -rf casadi/
sudo ldconfig2.3 POT use version 0.9.3 and follows the installation steps below:
sudo apt install python3-pip
pip3 install scipy numpy
pip3 install POTClone the repository and catkin_make
git clone https://github.com/NeSC-IV/DEFORM.git
cd DEFORM
catkin_make
source /opt/ros/noetic/setup.bash
source ./devel/setup.bash4.1.1 Fast formation convergence will be demonstrated. First, you need to set task_type to 2 in frm_shape.yaml. The other detailed steps are as follows:
# launch one terminal
# STEP 1:
cd DEFORM # The location where this repository is cloned, e.g: ~/DEFORM
source /opt/ros/noetic/setup.bash
source ./devel/setup.bash
roslaunch plan_manager multi_robots_simulation_deform.launch
# launch another terminal
# STEP 2:
cd DEFORM # The location where this repository is cloned, e.g: ~/DEFORM
source /opt/ros/noetic/setup.bash
source ./devel/setup.bash
roslaunch plan_manager multi_run.launch
# STEP 3: In the launched RViz, use 2D Nav Goal to publish the /move_base_simple/goal topic to start the program.4.1.2 (optional) If you want to modify the initial and desired formation shaps, you can do so by configuring the settings file. The detailed steps are as follows:
-
Modify the configuration file frm_shape.yaml: you can set the initial positions of the robots by modifying the
vehicle_pos_*fields underinitial_shape_positions, and set the desired formation by modifying thevehicle_pos_*fields underdesired_shape_positions. -
Regenerate the launch file multi_robots_simulation_deform.launch: it can be automatically generated by running the following script.
# launch one terminal
cd DEFORM # The location where this repository is cloned, e.g: ~/DEFORM
source /opt/ros/noetic/setup.bash
source ./devel/setup.bash
rosrun plan_manager generate_custom_init_pos_simulation.py- Finally, restart
multi_robots_simulation_deform.launchandmulti_run.launchto observe the convergence of the new formation.
Formation navigation will be demonstrated. First, you need to set task_type to 1 in frm_shape.yaml. The other detailed steps are as follows:
# launch one terminal
# STEP 1:
cd DEFORM # The location where this repository is cloned, e.g: ~/DEFORM
source /opt/ros/noetic/setup.bash
source ./devel/setup.bash
roslaunch plan_manager multi_robots_simulation_navigation.launch
# launch another terminal
# STEP 2:
cd DEFORM # The location where this repository is cloned, e.g: ~/DEFORM
source /opt/ros/noetic/setup.bash
source ./devel/setup.bash
roslaunch plan_manager multi_run.launch
# STEP 3: In the launched RViz, use 2D Nav Goal to publish the /move_base_simple/goal topic to set an appropriate goal point in front of robots, such as (-20, 0).rocker is a tools which will help you run docker containers with hardware acceleration. To run with rocker, first make sure docker are installed on your machine.
5.1 Build a container using a Dockerfile.
cd DEFORM
docker build -t deform:v1 .
5.2 Start a container.
rocker --x11 --user --home --git --name deform_runtime deform:v1
5.3 (optional) Attach to the container named deform_runtime.
dokcer exec -it deform_runtime bash
5.4 Run different commands in different windows, refer to Demo for details.
If our repo helps your academic projects, please cite our paper. Thank you!
@article{Jin2025DEFORM,
title={DEFORM: Adaptive Formation Reconfiguration of Multi-robot System in Confined Environments},
author={Jin, Li and Yang, Xu and Xiufang, Shi and Liang, Li},
journal={IEEE Robotics and Automation Letters},
year={2025},
volume={10},
number={5},
pages={4706-4713},
doi={10.1109/LRA.2025.3552998}
}Some of our feature packages are implemented using open-source code:
- plan_env2d: https://github.com/ZJU-FAST-Lab/Swarm-Formation/tree/main/src/planner/plan_env
- path_searching2d: https://github.com/ZJU-FAST-Lab/Swarm-Formation/tree/main/src/planner/path_searching
- drone_detect: https://github.com/ZJU-FAST-Lab/EGO-Planner-v2/tree/main/swarm-playground/formation_ws/src/planner/drone_detect


