Skip to content

IF-ROS is a ROS package that implements IF-Based trajectory planning and cooperative control for the transportation system of cable-suspended payload with multi UAVs.

License

Notifications You must be signed in to change notification settings

CaoDong-street/IF-ROS

Repository files navigation

IF-ROS

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 ellipsoid
  • inset_test_node: test IF algorithm
  • InsetUtil: C++ package that implements IF algorithm
  • iris-distro: IRIS algorithm for iterative convex regional inflation by semidefinite programming
  • multi_main_controller: cooperative controller for the transportation system of cable-suspended payload with multi UAVs
  • waypoint_generator: process waypoints

Video Links: Youtube or Bilibili (only forMainland China).

1. Installation

1.1 Prerequisite

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

1.2 Install IRIS

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> .

1.3 Install Mosek

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

1.4 Install CasADi

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.

2. Compilation

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

3. Usage

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

4. Acknowledgement

We sincerely thank the following open-source projects for providing valuable, high-quality code:

mpl_ros

iris-distro

Vision-encoder-based-Payload-State-Estimator

5. About

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.

About

IF-ROS is a ROS package that implements IF-Based trajectory planning and cooperative control for the transportation system of cable-suspended payload with multi UAVs.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published