Skip to content

The source code of the [RA-Letter] paper "RDA: An Accelerated Collision Free Motion Planner for Autonomous Navigation in Cluttered Environments"

License

Notifications You must be signed in to change notification settings

hanruihua/RDA-planner

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RDA Planner

PDF ArXiv version youtube bilibili Paper BibTex Paper BibTex ROS

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.

News

25 September 2024: The ROS wrapper of RDA planner is available at rda_ros

Prerequisite

  • Python >= 3.8

Installation

git clone https://github.com/hanruihua/RDA_planner
cd RDA_planner
pip install -e .  

Run examples

Demonstrations in ir-sim

Please install ir-sim by:

pip install ir-sim==2.2.5
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).

Demonstrations of dynamic collision avoidance and autonomous driving

Please see rda_ros for detail

rda_ros_demo.mp4

Acknowledgement

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.

Citation

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

About

The source code of the [RA-Letter] paper "RDA: An Accelerated Collision Free Motion Planner for Autonomous Navigation in Cluttered Environments"

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages