ROS Motion Planning
Ein Repo mit über 40 klassischen und lernbasierten Pfadplanern als ROS-Plugins
Lizenz
GPL-3.0
Überblick
ros_motion_planning ist eine umfassende Sammlung von Bewegungsplanungsalgorithmen für Roboter, implementiert als Plugins für den ROS-Navigations-Stack: globale Planer von A, Theta, D und JPS bis RRT, Informed RRT* und Voronoi-Planern; lokale Planer einschließlich DWA, TEB-artiger Ansätze, PID, LQR und MPC; Kurvengenerierung (Bezier, Dubins, Reeds-Shepp, B-Spline); sowie lernbasierte Planer wie DDPG. Jeder Algorithmus läuft im selben Gazebo-/RViz-Setup, was das Repo zu einer einzigartig praktischen Referenz macht, um Planer unter gleichen Bedingungen zu vergleichen.
Das Repository verpackt Dutzende Planer hinter den standardmäßigen nav_core-Plugin-Schnittstellen von ROS, sodass jeder Algorithmus in move_base (ROS 1) eingesetzt werden kann — mit einer begleitenden ROS-2-Implementierung — und gegen dieselben Costmaps, Roboter und Gazebo-Welten getestet wird. Die globale Planung umfasst Graphensuche (Dijkstra, A, D, LPA, D Lite, Theta, Lazy Theta, JPS, GBFS), samplingbasierte Methoden (RRT, RRT, Informed RRT, RRT-Connect), intelligente/evolutionäre Ansätze (ACO, GA, PSO) und Planung über Voronoi-Diagramme. Die lokale Planung reicht von PID-, DWA-, APF-, LQR- bis zu MPC-Reglern, und ein Kurvengenerierungsmodul implementiert Dubins-, Reeds-Shepp-, Bezier- und Spline-Pfade. Lernbasierte Planer (z. B. DDPG-basierte RL-Navigation) runden das Set ab. Docker-Images, umfangreiche Animationen pro Algorithmus und ein passendes Python-Visualisierungs-Repo machen es gleichermaßen nützlich als Referenz für die Lehre wie als Ausgangspunkt für die Entwicklung von Produktionsplanern.
Warum es wichtig ist
Dies ist die vollständigste Einzelimplementierung des klassischen Bewegungsplanungs-Kanons in funktionierendem ROS-Code: Die Lehrbuchalgorithmen, die in Papern meist Pseudocode bleiben, laufen hier alle in einem konsistenten Stack — deshalb ist es die bevorzugte Referenz für Navigationsingenieure und Robotikstudierende gleichermaßen.
Welches Problem es löst
Pfadplaner fair zu vergleichen erfordert, jeden einzelnen im selben Navigations-Stack zu implementieren — Monate an Plugin-Engineering. ros_motion_planning hat das für über 40 Algorithmen bereits erledigt und verwandelt Planerauswahl und Lehre in eine Konfigurationsänderung.
Wichtigste Punkte
- Über 40 Planer: Graphensuche, samplingbasiert, evolutionär, Kurvengenerierung, lernbasiert
- Alle als Standard-ROS-Nav-Plugins implementiert und im selben Gazebo-/RViz-Setup lauffähig
- Unterstützung für ROS 1 und ROS 2 mit Docker-Images für den Schnellstart
- Lokale Planer umfassen DWA-, APF-, PID-, LQR- und MPC-Regler
- Begleitendes Python-Repo bietet passende Algorithmus-Visualisierungen zum Studium
Für wen
- Navigationsingenieure, die Planer für AMRs/AGVs auswählen
- Robotikstudierende, die Pfadplanungsalgorithmen lernen
- Forscher, die neue Planer gegen die Klassiker benchmarken
- Lehrende, die Lehrmaterial zur Bewegungsplanung erstellen
Einschränkungen
- Breite statt Tiefe — einzelne Planer sind Referenzimplementierungen, keine abgestimmten Produktionsregler
- Die GPL-3.0-Lizenz schränkt die Closed-Source-Wiederverwendung ein
- Zielt primär auf 2D-Navigation radgetriebener Roboter (keine Manipulationsplanung)