RDA Planner is a high-performance, optimization-based, Model Predictive Control (MPC) motion planner designed for autonomous navigation in complex and cluttered environments. Utilizing the Alternating Direction Method of Multipliers (ADMM), RDA decomposes complex optimization problems into several simple subproblems. This decomposition enables parallel computation of collision avoidance constraints for each obstacle, significantly enhancing computation speed.
Key Features:
- Shape-Aware Planning: Handles robots and obstacles with arbitrary convex shapes, ensuring versatility across diverse scenarios.
- High-Precision Control: Achieves accurate control trajectories through advanced optimization solvers, enhancing navigation reliability.
- Dynamic Obstacle Handling: Supports both static and dynamic obstacles, enabling robust performance in ever-changing environments.
- Real-Time Performance: Offers fast computation times suitable for real-time applications, ensuring timely decision-making and responsiveness.
- Versatile Kinematic Support: Compatible with various types of robot kinematics, including differential drive, Ackermann steering, and omnidirectional systems, providing flexibility for different robotic platforms.
25 September 2024: The ROS wrapper of RDA planner is available at rda_ros
- Python >= 3.8
git clone https://github.com/hanruihua/RDA_planner
cd RDA_planner
pip install -e .
Demonstrations in ir-sim
Please install ir-sim by:
pip install ir-sim==2.2.6
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).
Please see rda_ros for detail
rda_ros_demo.mp4
We thank the authors of the following excellent work, which has inspired us to develop RDA planner:
Zhang, X., Liniger, A., & Borrelli, F. (2020). Optimization-based collision avoidance. IEEE Transactions on Control Systems Technology, 29(3), 972-983.
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}}