IF-ROS is a ROS package that implements Insetting Formation(IF)-Based trajectory planning and cooperative control for the transportation system of cable-suspended payload with multi UAVs, which includes:
inset_ros_msgs
: messages corresponding to polyhedron and ellipsoidinset_test_node
: test IF algorithmInsetUtil
: C++ package that implements IF algorithmiris-distro
: IRIS algorithm for iterative convex regional inflation by semidefinite programmingmulti_main_controller
: cooperative controller for the transportation system of cable-suspended payload with multi UAVswaypoint_generator
: process waypoints
Video Links: Youtube or Bilibili (only forMainland China).
ROS(melodic)
catkin_simple
coppeliasim(V4.3.0 for Ubuntu 18.04)
Please refer to the ROS tutorial to enable CoppeliaSim ROS.
If the submodule is not initialized yet, run following commands at first:
cd /PATH/TO/IF_ROS
git submodule update --init --recursive
In order to successfully compile the iris-distro package in this package, please follow the requirements provided in https://github.com/rdeits/iris-distro .
And make sure that the required Python modules are enabled, e.g. by inserting into your .bashrc
file: export PYTHONPATH=:${PYTHONPATH}:<python_prefix>
.
You'll also need a license for the Mosek optimization toolbox(iris-distro package includes a downloader for the Mosek code, but you have to get your own license). Mosek has free licenses available for academic use.
After obtaining a Mosek license, you need to enable it, e.g. by inserting into your .bashrc
file: export PATH=$PATH:/PATH/TO/mosek/mosek.lic
See InstallationLinux for the CasADi installation process。
If there are issues with locating CasADi library .so files, run sudo ldconfig
in the terminal of the build folder where CasADi is installed.
Using Catkin Tools (Recommended):
First, ensure that both catkin_simple
and IF_ROS
are located in the /PATH/TO/catkin_ws/src
directory. Then, execute the following command in the terminal:
sudo apt-get install python-catkin-tools
cd /PATH/TO/catkin_ws
catkin config --cmake-args -DCMAKE_BUILD_TYPE=Release
catkin build
Alternatively, if you want to debug, enter the following command in the terminal:
sudo apt-get install python-catkin-tools
cd /PATH/TO/catkin_ws
catkin config --cmake-args -DCMAKE_BUILD_TYPE=Debug
catkin build
First, enter the following command in the terminal:
roscore
Then, start CoppeliaSim, open the corresponding scene file cross.ttt
, and initiate the simulation.
Finally, run the following command in the terminal:
cd /PATH/TO/catkin_ws
source devel/setup.bash
roslaunch inset_test_node cross.launch
The experiment scene file path : /PATH/TO/IF_ROS/multi_main_controller/Experimental_scene/cross.ttt
We sincerely thank the following open-source projects for providing valuable, high-quality code:
Vision-encoder-based-Payload-State-Estimator
Author: Yu Zhang, Jie Xu, Cheng Zhao and Jiuxiang Dong from Northeastern University.
Related Paper: IF-Based Trajectory Planning and Cooperative Control for Transportation System of Cable Suspended Payload With Multi UAVs, Yu Zhang, Jie Xu, Cheng Zhao and Jiuxiang Dong (Published in IROS2023). Paper link.