Improved Search-Based Quadrotors Motion Planning with Motion Primitives
Search-based motion planning with motion primitives is a complete and optimal method, and it can generate dynamically feasible, collision-free, smooth trajectories in dense environments.
To improve the computational efficiency of this method, we focus on the motion primitive graph search method and collision detection method, and propose three improvements:
-
design an admissible heuristic function that considers environmental obstacles
-
propose two motion primitive cost penalty strategies
-
propose a novel collision detection method with linear complexity based on Sturm's Theory In structured obstacle environments
- [Stable Version] This is a stable version, but may exists bugs. If you find them, please contacts the author by emails: wangzihao191@mails.ucas.edu.cn
-
ubuntu 20
-
ros noetic
-
cmake: minimum 3.21.0
- eigen, yaml, opencv, sdl
sudo apt install -y libeigen3-dev libyaml-cpp-dev libopencv-dev libsdl1.2-dev libsdl-image1.2-dev
- kd tree:
git clone --recursive https://github.com/ucas-zihaowang/improved_mpl.git
cd improved_mpl
catkin_make -DCMAKE_BUILD_TYPE=release
source devel/setup.bash
-
parameter: in src/slplanner_plus/config/parameter_xxx.yaml
-
running for different instances
cd improved_mpl
roslaunch slplanner_plus test_slplanner_demo_by_corridor.launch
roslaunch slplanner_plus test_slplanner_demo_by_corridor_penalty.launch
roslaunch slplanner_plus test_slplanner_demo_by_corridor_penalty.launch
roslaunch slplanner_plus test_slplanner_demo_by_corridor_with_yaw.launch
roslaunch slplanner_plus test_slplanner_demo_by_corridor_with_yaw_penalty.launch
- others
experiment_demo: can visualize the instances by rviz
slplanner_plus: for different map
roslaunch slplanner_plus test_slplanner_demo_by_clcbsbenchmark.launch
roslaunch slplanner_plus test_slplanner_demo_by_tmpmap.launch
Our project refers to the following work, and we point out their contributions here.