Open Source Robotics

A curated collection of high-quality open source robotics projects, tools, and software to propel the robotics community forward.

ROS Motion Planning

One repo implementing 40+ classic and learning-based robot path planners as ROS plugins

License

GPL-3.0

Overview

ros_motion_planning is a comprehensive collection of robot motion-planning algorithms implemented as plugins for the ROS navigation stack: global planners from A, Theta, D and JPS to RRT, Informed RRT* and Voronoi planners; local planners including DWA, TEB-style, PID, LQR and MPC; curve generation (Bezier, Dubins, Reeds-Shepp, B-spline); and learning-based planners such as DDPG. Every algorithm runs in the same Gazebo/RViz setup, making it a uniquely practical reference for comparing planners on equal footing.

The repository packages dozens of planners behind the standard ROS nav_core plugin interfaces, so any algorithm can be dropped into move_base (ROS 1) — with a companion ROS 2 implementation — and tested against the same costmaps, robots and Gazebo worlds. Global planning covers graph search (Dijkstra, A, D, LPA, D Lite, Theta, Lazy Theta, JPS, GBFS), sampling-based methods (RRT, RRT, Informed RRT, RRT-Connect), intelligent/evolutionary approaches (ACO, GA, PSO) and Voronoi-diagram planning. Local planning spans PID, DWA, APF, LQR and MPC controllers, and a curve-generation module implements Dubins, Reeds-Shepp, Bezier and spline paths. Learning-based planners (e.g. DDPG-based RL navigation) round out the set. Docker images, extensive per-algorithm animations and a matching Python visualization repo make it equally useful as a courseware reference and as a starting point for production planner development.

Why it matters

This is the most complete single implementation of the classic motion-planning canon in working ROS code: the textbook algorithms that are usually pseudocode in papers all run here in one consistent stack, which is why it has become the go-to reference for navigation engineers and robotics students alike.

Problem it solves

Comparing path planners fairly requires implementing each one inside the same navigation stack — months of plugin engineering. ros_motion_planning has already done it for 40+ algorithms, turning planner selection and teaching into a configuration change.

Key takeaways

  • 40+ planners: graph search, sampling-based, evolutionary, curve generation, learning-based
  • All implemented as standard ROS nav plugins runnable in the same Gazebo/RViz setup
  • ROS 1 and ROS 2 support with Docker images for quick start
  • Local planners include DWA, APF, PID, LQR and MPC controllers
  • Companion Python repo provides matching algorithm visualizations for study

Who it is for

  • Navigation engineers selecting planners for AMRs/AGVs
  • Robotics students learning path-planning algorithms
  • Researchers benchmarking new planners against classics
  • Educators building motion-planning coursework

Limitations

  • Breadth over depth — individual planners are reference implementations, not tuned production controllers
  • GPL-3.0 license restricts closed-source reuse
  • Primarily targets 2D wheeled-robot navigation (no manipulation planning)

This website requires JavaScript to function properly. Please enable JavaScript to explore our collection of open source robotics projects.