Skip to content

Latest commit

 

History

History
85 lines (59 loc) · 5.52 KB

README.md

File metadata and controls

85 lines (59 loc) · 5.52 KB

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

10 December 2024: We have uploaded the code implementation of the linearized OBCA algorithm in the [dev_lobca] branch to facilitate the comparison with the RDA planner. Run path_track_lobca.py to see the performance. (Note: The linearized OBCA algorithm is not integrated with the DPP framework, resulting in additional problem formulation time for each iteration. Concentrating on problem-solving time is more appropriate for comparison purposes.)

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 on ir-sim

Please install ir-sim by:

pip install ir-sim==2.3.0
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

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