IPC: Integrated Planning and Control for Quadrotor Navigation in Presence of Suddenly Appearing Objects and Disturbances
@article{liu2023integrated,
title={Integrated Planning and Control for Quadrotor Navigation in Presence of Suddenly Appearing Objects and Disturbances},
author={Liu, Wenyi and Ren, Yunfan and Zhang, Fu},
journal={IEEE Robotics and Automation Letters},
year={2023},
publisher={IEEE}
}
Author: Wenyi Liu, Yunfan Ren and Fu Zhang from HKU MARS Lab.
Or see the pdf at: liu2023ipc.pdf
Code: Github
Video Links: youtube, Bilibili
Click for the video demo.
The IPC is an integrated planning and control framework for quadrotors.
The IPC's characteristic:
- Safety (Using safe flight corridor as hard constraints)
- Low latency (Can run at 100Hz)
- Strong disturbance rejection capability
Using IPC, the quadrotor can:
- Avoid suddenly appearing object
- Fly safely under disturbances (i.e., external forces and wind disturbances)
- Navigate autonomously in dense woods
Ubuntu 18.04~20.04, ROS Installation
PCL >= 1.6, follow PCL Installation
Eigen >= 3.3.4, follow Eigen Installation
fmt: Download fmt.zip at https://github.com/hku-mars/IPC/releases/tag/v0.1.
Build and install by:
mkdir build
cd build/
cmake -DBUILD_SHARED_LIBS=TRUE ..
make
sudo make install
sudo cp /usr/local/lib/libfmt.so.8 /usr/lib
Install OSQP (please selete the version less than 0.6.3)
git clone --recursive https://github.com/osqp/osqp
cd osqp
mkdir build
cd build
cmake ..
sudo make install
Install OSQP-Eigen
git clone https://github.com/robotology/osqp-eigen.git
cd osqp-eigen
mkdir build
cd build
cmake ..
sudo make
sudo make install
A debug tool: backward.cpp
Installation
sudo apt-get install libdw-dev
wget https://raw.githubusercontent.com/bombela/backward-cpp/master/backward.hpp
sudo mv backward.hpp /usr/include
mkdir -p IPC_ws/src
cd IPC_ws/src
git clone https://github.com/hku-mars/IPC.git
cd ..
catkin_make
(1) Navigate autonomously in a simulated environment in the woods
run ipc
source devel/setup.bash
roslaunch ipc ipc.launch
run MARSIM simulator
source devel/setup.bash
roslaunch test_interface map_rc.launch
Then click on the 3D goal
of rviz
to select the target
(2) Benchmark: Avoid suddenly appearing object (Ideal simulation)
run ipc
source devel/setup.bash
roslaunch ipc ipc_avoid.launch
run simulator
source devel/setup.bash
roslaunch ipc fast_avoid.launch