RDA planner is a fast and efficient motion planner for autonomous navigation in cluttered environments. The key idea of RDA is to decompose the complex optimization problem into several subproblems by ADMM, which allows the collision avoidance constraints to be computed in parallel for each obstacle to reduce computation time significantly.
Features:
- Shape aware planner, which can tackle robots and obstacles with arbitrary convex shapes.
- Highly accurate control achieved through the use of an optimization solver.
- Support for both static and dynamic obstacles
- Fast computation time, which is suitable for real-time applications.
- Support different types of dynamics, including differential, Ackermann, and omnidirectional robots.
- Python >= 3.7
git clone https://github.com/hanruihua/RDA_planner
cd RDA_planner
pip install -e .
Path Track (example/path_track.py) | |
---|---|
Cross Corridor (example/corridor.py) | |
Reverse Parking (example/reverse.py) | |
Input Lidar points (example/lidar_path_track.py) |
Dynamic obstacles avoidance (example/dynamic_obs.py) |
---|
Note: You can customize the scenario by modifying the parameters in the corresponding yaml file as introduced in ir-sim. For the polygon obstacles, please make sure the obstacles are convex (CCW order is not necessary now).
If you find this code or paper is helpful, you can star this repository and cite our paper by the following BibTeX entry:
@ARTICLE{10036019,
author={Han, Ruihua and Wang, Shuai and Wang, Shuaijun and Zhang, Zeqing and Zhang, Qianru and Eldar, Yonina C. and Hao, Qi and Pan, Jia},
journal={IEEE Robotics and Automation Letters},
title={RDA: An Accelerated Collision Free Motion Planner for Autonomous Navigation in Cluttered Environments},
year={2023},
volume={8},
number={3},
pages={1715-1722},
doi={10.1109/LRA.2023.3242138}}