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

