Deployment and Implementation of RDA_planner
We reproduce the RDA Planner project from the IEEE paper RDA: An Accelerated Collision-Free Motion Planner for Autonomous Navigation in Cluttered Environments. We provide a step-by-step guide to help you quickly reproduce the RDA path planning algorithm in this paper, enabling efficient obstacle avoidance for autonomous navigation in complex environments.
Abstract
RDA Planner is a high-performance, optimization-based Model Predictive Control (MPC) motion planner designed for autonomous navigation in complex and cluttered environments. By leveraging the Alternating Direction Method of Multipliers (ADMM), RDA decomposes complex optimization problems into several simple subproblems.
This project is the open-source development of the RDA_ROS autonomous navigation project, proposed by researchers from the University of Hong Kong, Southern University of Science and Technology, University of Macau, Shenzhen Institutes of Advanced Technology of the Chinese Academy of Sciences, and Hong Kong University of Science and Technology (Guangzhou). It is developed based on the AgileX Limo simulator. Relevant papers have been published in IEEE Robotics and Automation Letters and IEEE Transactions on Mechatronics.
RDA planner: GitHub - hanruihua/RDA-planner: [RA-Letter 2023] RDA: An Accelerated Collision Free Motion Planner for Autonomous Navigation in Cluttered Environments
RDA_ROS: GitHub - hanruihua/rda_ros: ROS Wrapper of RDA planner
Tags
limoăRDA_plannerăpath planning
Respositories
- Navigation Repository: GitHub - agilexrobotics/Agilex-College: Agilex College
- Project Repository: https://github.com/agilexrobotics/limo/RDA_planner.git
Environment Requirements
Systemďźubuntu 20.04
ROS Versionďźnoetic
python Versionďźpython3.9
Deployment Process
1ăDownload and Install Conda
Choose Anaconda or Miniconda based on your system storage capacity
After downloading, run the following commands to install:
-
Miniconda:
bash Miniconda3-latest-Linux-x86_64.sh -
Anaconda:
bash Anaconda-latest-Linux-x86_64.sh
2ăCreate and Activate Conda Environment
conda create -n rda python=3.9
conda activate rda
3ăDownload RDA_planner
mkdir -p ~/rda_ws/src
cd ~/rda_ws/src
git clone https://github.com/hanruihua/RDA_planner
cd RDA_planner
pip install -e .
4ăDownload Simulator
pip install ir-sim
5ăRun Examples in RDA_planner
cd RDA_planner/example/lidar_nav
python lidar_path_track_diff.py
The running effect is consistent with the official README.

Deployment Process of rda_ros
1ăInstall Dependencies in Conda Environment
conda activate rda
sudo apt install python3-empy
sudo apt install ros-noetic-costmap-converter
pip install empy==3.3.4
pip install rospkg
pip install catkin_pkg
2ăDownload Code
cd ~/rda_ws/src
git clone https://github.com/hanruihua/rda_ros
cd ~/rda_ws && catkin_make
cd ~/rda_ws/src/rda_ros
sh source_setup.sh && source ~/rda_ws/devel/setup.sh && rosdep install rda_ros
3ăDownload Simulation Components
This step will download two repositories: limo_ros and rvo_ros
limo_rosďźRobot model for simulation
rvo_rosďźCylindrical obstacles used in the simulation environment
cd rda_ros/example/dynamic_collision_avoidance
sh gazebo_example_setup.sh
4ăRun Gazebo Simulation
Run via Script
cd rda_ros/example/dynamic_collision_avoidance
sh run_rda_gazebo_scan.sh
Run via Individual Commands
Launch the simulation environment:
roslaunch rda_ros gazebo_limo_env10.launch
Launch RDA_planner
roslaunch rda_ros rda_gazebo_limo_scan.launch

