![]() |
ros_motion_planning repositoryrobotics astar motion-planning rrt path-planning ros rrt-star voronoi autonomous-vehicles path-tracking jump-point-search ros-navigation model-predictive-control trajectory-planning pure-pursuit artificial-potential-field dstar-lite lpa-star |
|
![]() |
ros_motion_planning repositoryrobotics astar motion-planning rrt path-planning ros rrt-star voronoi autonomous-vehicles path-tracking jump-point-search ros-navigation model-predictive-control trajectory-planning pure-pursuit artificial-potential-field dstar-lite lpa-star |
|
![]() |
ros_motion_planning repositoryrobotics astar motion-planning rrt path-planning ros rrt-star voronoi autonomous-vehicles path-tracking jump-point-search ros-navigation model-predictive-control trajectory-planning pure-pursuit artificial-potential-field dstar-lite lpa-star |
|
![]() |
ros_motion_planning repositoryrobotics astar motion-planning rrt path-planning ros rrt-star voronoi autonomous-vehicles path-tracking jump-point-search ros-navigation model-predictive-control trajectory-planning pure-pursuit artificial-potential-field dstar-lite lpa-star common apf_controller controller dwa_controller lqr_controller mpc_controller orca_controller pid_controller rpp_controller static_controller path_planner dynamic_rviz_config dynamic_xml_config gazebo_sfm_plugin gazebo_ped_visualizer_plugin pedsim_msgs voronoi_layer spencer_control_msgs spencer_human_attribute_msgs spencer_social_relation_msgs spencer_tracking_msgs spencer_vision_msgs spencer_tracking_rviz_plugin sim_env |
|
Repository Summary
Description | Motion planning and Navigation of AGV/AMR:ROS planner plugin implementation of A*, JPS, D*, LPA*, D* Lite, Theta*, RRT, RRT*, RRT-Connect, Informed RRT*, ACO, PSO, Voronoi, PID, LQR, MPC, DWA, APF, Pure Pursuit etc. |
Checkout URI | https://github.com/ai-winter/ros_motion_planning.git |
VCS Type | git |
VCS Version | master |
Last Updated | 2025-04-07 |
Dev Status | UNKNOWN |
CI status | No Continuous Integration |
Released | UNRELEASED |
Tags | robotics astar motion-planning rrt path-planning ros rrt-star voronoi autonomous-vehicles path-tracking jump-point-search ros-navigation model-predictive-control trajectory-planning pure-pursuit artificial-potential-field dstar-lite lpa-star |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Packages
Name | Version |
---|---|
common | 0.0.0 |
apf_controller | 0.0.0 |
controller | 0.0.0 |
dwa_controller | 1.17.1 |
lqr_controller | 0.0.0 |
mpc_controller | 0.0.0 |
orca_controller | 0.0.0 |
pid_controller | 1.0.0 |
rpp_controller | 0.0.0 |
static_controller | 0.0.0 |
path_planner | 0.0.0 |
dynamic_rviz_config | 0.0.1 |
dynamic_xml_config | 0.2.0 |
gazebo_sfm_plugin | 1.0.0 |
gazebo_ped_visualizer_plugin | 0.1.0 |
pedsim_msgs | 0.0.2 |
voronoi_layer | 0.0.0 |
spencer_control_msgs | 1.0.8 |
spencer_human_attribute_msgs | 1.0.8 |
spencer_social_relation_msgs | 1.0.8 |
spencer_tracking_msgs | 1.0.8 |
spencer_vision_msgs | 1.0.8 |
spencer_tracking_rviz_plugin | 1.0.8 |
sim_env | 0.0.1 |
README
ROS Motion Planning
Robot Motion planning is a computational problem that involves finding a sequence of valid configurations to move the robot from the source to the destination. Generally, it includes Path Searching and Trajectory Optimization.
-
Path Searching: Based on path constraints (e.g., avoiding obstacles), to find the optimal sequence for the robot to travel from the source to the destination without collision.
-
Trajectory Optimization: Based on kinematics, dynamics and obstacles, to optimize the trajectory of the motion state from the source to the destination according to the path.
This repository provides the implementation of common Motion Planning algorithms. The theory analysis can be found at motion-planning. Furthermore, we provide Python and MATLAB version.
Your stars, forks and PRs are welcome!
Contents
0. Quick Start within 3 Minutes
Tested on ubuntu 20.04 LTS with ROS Noetic.
-
Install ROS (Desktop-Full Install Recommended).
-
Install git.
sudo apt install git
-
Install dependence
- conan
pip install conan==1.59.0
conan remote add conancenter https://center.conan.io
- Other dependence.
sudo apt install python-is-python3 \
ros-noetic-amcl \
ros-noetic-base-local-planner \
ros-noetic-map-server \
ros-noetic-move-base \
ros-noetic-navfn \
libgoogle-glog-dev
- Clone the reposity.
git clone https://github.com/ai-winter/ros_motion_planning.git
-
Compile the code.
NOTE: Please refer to #48 if you meet libignition dependency error.
cd scripts/
./build.sh # you may need to install catkin-tools using: sudo apt install python-catkin-tools
- Execute the code.
cd scripts/
./main.sh
> NOTE: Modifying launch files may not have any effect, because they are regenerated by a Python script based on `src/user_config/user_config.yaml` when you run `main.sh`. Therefore, you should modify configurations in `user_config.yaml` instead of launch files.
-
Use 2D Nav Goal in RViz to select the goal.
-
Moving!
-
You can use the other script to shutdown them rapidly.
cd scripts/
./killpro.sh
- Multi agents
# 1. Replace with user_config_multi.yaml in main.sh
# 2. Wait for initialization
# 3. Publish goals
rosrun sim_env goal_publisher.py
1. Document
The overall file structure is shown below.
ros_motion_planner
├── 3rd
├── docs
├── docker
├── assets
├── scripts
└── src
├── core
│ ├── common
│ ├── path_planner
│ └── controller
├── sim_env # simulation environment
│ ├── config
│ ├── launch
│ ├── maps
│ ├── meshes
│ ├── models
│ ├── rviz
│ ├── urdf
│ └── worlds
├── plugins
│ ├── dynamic_rviz_config
│ ├── dynamic_xml_config
│ ├── gazebo_plugins
│ ├── map_plugins
│ └── rviz_plugins
└── user_config # user configure file
To better understand the project code, detailed interface documentation can be generated using the doxygen tool. First install doxygen and graphviz.
sudo apt-get install doxygen graphviz
Then start the doxygen and you can find the documentation in ./docs/html/index.html
.
doxygen
For more information about the project usage, please refer to the following table.
02. Tool Chains
For the efficient operation of the motion planning system, we provide a series of user-friendly simulation tools that allow for on-demand selection of these lightweight repositories.
03. Version
Global Planner
Local Planner
Planner | Version | Animation | Paper |
---|---|---|---|
PID | ![]() |
Mapping Single-Integrator Dynamics to Unicycle Control Commands p. 14 | |
LQR | ![]() |
- | |
DWA | ![]() |
The Dynamic Window Approach to Collision Avoidance | |
APF | ![]() |
Real-time obstacle avoidance for manipulators and mobile robots | |
RPP | ![]() |
Regulated Pure Pursuit for Robot Path Tracking | |
TEB | |||
MPC | ![]() |
- | |
Lattice |
Curve Generation
Planner | Version | Animation | Paper |
---|---|---|---|
Polynomia | ![]() |
- | |
Bezier | ![]() |
- | |
Cubic Spline | ![]() |
- | |
BSpline | ![]() |
- | |
Dubins | ![]() |
On curves of minimal length with a constraint on average curvature, and with prescribed initial and terminal positions and tangents | |
Reeds-Shepp | ![]() |
Optimal paths for a car that goes both forwards and backwards |
04. Acknowledgments
-
Our robot and world models are from Dataset-of-Gazebo-Worlds-Models-and-Maps and aws-robomaker-small-warehouse-world. Thanks for these open source models sincerely.
-
Pedestrians in this environment are using social force model(sfm), which comes from https://github.com/robotics-upo/lightsfm.
-
A ROS costmap plugin for dynamicvoronoi presented by Boris Lau.
05. License
The source code is released under GPLv3 license.
06. Maintenance
Feel free to contact us if you have any question.
CONTRIBUTING
![]() |
ros_motion_planning repositoryrobotics astar motion-planning rrt path-planning ros rrt-star voronoi autonomous-vehicles path-tracking jump-point-search ros-navigation model-predictive-control trajectory-planning pure-pursuit artificial-potential-field dstar-lite lpa-star |
|
![]() |
ros_motion_planning repositoryrobotics astar motion-planning rrt path-planning ros rrt-star voronoi autonomous-vehicles path-tracking jump-point-search ros-navigation model-predictive-control trajectory-planning pure-pursuit artificial-potential-field dstar-lite lpa-star |
|
![]() |
ros_motion_planning repositoryrobotics astar motion-planning rrt path-planning ros rrt-star voronoi autonomous-vehicles path-tracking jump-point-search ros-navigation model-predictive-control trajectory-planning pure-pursuit artificial-potential-field dstar-lite lpa-star |
|
![]() |
ros_motion_planning repositoryrobotics astar motion-planning rrt path-planning ros rrt-star voronoi autonomous-vehicles path-tracking jump-point-search ros-navigation model-predictive-control trajectory-planning pure-pursuit artificial-potential-field dstar-lite lpa-star |
|
![]() |
ros_motion_planning repositoryrobotics astar motion-planning rrt path-planning ros rrt-star voronoi autonomous-vehicles path-tracking jump-point-search ros-navigation model-predictive-control trajectory-planning pure-pursuit artificial-potential-field dstar-lite lpa-star |
|
![]() |
ros_motion_planning repositoryrobotics astar motion-planning rrt path-planning ros rrt-star voronoi autonomous-vehicles path-tracking jump-point-search ros-navigation model-predictive-control trajectory-planning pure-pursuit artificial-potential-field dstar-lite lpa-star |
|
![]() |
ros_motion_planning repositoryrobotics astar motion-planning rrt path-planning ros rrt-star voronoi autonomous-vehicles path-tracking jump-point-search ros-navigation model-predictive-control trajectory-planning pure-pursuit artificial-potential-field dstar-lite lpa-star |
|
![]() |
ros_motion_planning repositoryrobotics astar motion-planning rrt path-planning ros rrt-star voronoi autonomous-vehicles path-tracking jump-point-search ros-navigation model-predictive-control trajectory-planning pure-pursuit artificial-potential-field dstar-lite lpa-star |
|
![]() |
ros_motion_planning repositoryrobotics astar motion-planning rrt path-planning ros rrt-star voronoi autonomous-vehicles path-tracking jump-point-search ros-navigation model-predictive-control trajectory-planning pure-pursuit artificial-potential-field dstar-lite lpa-star |
|
![]() |
ros_motion_planning repositoryrobotics astar motion-planning rrt path-planning ros rrt-star voronoi autonomous-vehicles path-tracking jump-point-search ros-navigation model-predictive-control trajectory-planning pure-pursuit artificial-potential-field dstar-lite lpa-star |
|
![]() |
ros_motion_planning repositoryrobotics astar motion-planning rrt path-planning ros rrt-star voronoi autonomous-vehicles path-tracking jump-point-search ros-navigation model-predictive-control trajectory-planning pure-pursuit artificial-potential-field dstar-lite lpa-star |
|
![]() |
ros_motion_planning repositoryrobotics astar motion-planning rrt path-planning ros rrt-star voronoi autonomous-vehicles path-tracking jump-point-search ros-navigation model-predictive-control trajectory-planning pure-pursuit artificial-potential-field dstar-lite lpa-star |
|
![]() |
ros_motion_planning repositoryrobotics astar motion-planning rrt path-planning ros rrt-star voronoi autonomous-vehicles path-tracking jump-point-search ros-navigation model-predictive-control trajectory-planning pure-pursuit artificial-potential-field dstar-lite lpa-star |
|
![]() |
ros_motion_planning repositoryrobotics astar motion-planning rrt path-planning ros rrt-star voronoi autonomous-vehicles path-tracking jump-point-search ros-navigation model-predictive-control trajectory-planning pure-pursuit artificial-potential-field dstar-lite lpa-star |
|
![]() |
ros_motion_planning repositoryrobotics astar motion-planning rrt path-planning ros rrt-star voronoi autonomous-vehicles path-tracking jump-point-search ros-navigation model-predictive-control trajectory-planning pure-pursuit artificial-potential-field dstar-lite lpa-star |
|