ROS Motion Planning
Un seul dépôt implémentant plus de 40 planificateurs de trajectoire classiques et par apprentissage comme plugins ROS
Licence
GPL-3.0
Aperçu
ros_motion_planning est une collection exhaustive d'algorithmes de planification de mouvement pour robots, implémentés comme plugins de la stack de navigation ROS : des planificateurs globaux allant de A, Theta, D et JPS à RRT, Informed RRT* et aux planificateurs de Voronoï ; des planificateurs locaux incluant DWA, de type TEB, PID, LQR et MPC ; la génération de courbes (Bézier, Dubins, Reeds-Shepp, B-spline) ; et des planificateurs par apprentissage tels que DDPG. Chaque algorithme tourne dans le même environnement Gazebo/RViz, ce qui en fait une référence pratique unique pour comparer les planificateurs à armes égales.
Le dépôt regroupe des dizaines de planificateurs derrière les interfaces de plugins nav_core standard de ROS, de sorte que n'importe quel algorithme peut être branché dans move_base (ROS 1) — avec une implémentation ROS 2 compagnon — et testé contre les mêmes costmaps, robots et mondes Gazebo. La planification globale couvre la recherche dans les graphes (Dijkstra, A, D, LPA, D Lite, Theta, Lazy Theta, JPS, GBFS), les méthodes par échantillonnage (RRT, RRT, Informed RRT, RRT-Connect), les approches intelligentes/évolutionnaires (ACO, GA, PSO) et la planification par diagramme de Voronoï. La planification locale couvre des contrôleurs PID, DWA, APF, LQR et MPC, et un module de génération de courbes implémente les chemins de Dubins, Reeds-Shepp, Bézier et splines. Des planificateurs par apprentissage (p. ex. navigation RL basée sur DDPG) complètent l'ensemble. Des images Docker, de nombreuses animations par algorithme et un dépôt Python de visualisation assorti le rendent aussi utile comme support de cours que comme point de départ pour le développement de planificateurs de production.
Pourquoi c'est important
C'est l'implémentation unique la plus complète du canon classique de la planification de mouvement en code ROS fonctionnel : les algorithmes des manuels, habituellement du pseudocode dans les articles, tournent tous ici dans une stack cohérente, ce qui en a fait la référence incontournable des ingénieurs en navigation comme des étudiants en robotique.
Le problème résolu
Comparer équitablement des planificateurs de trajectoire exige d'implémenter chacun dans la même stack de navigation — des mois d'ingénierie de plugins. ros_motion_planning l'a déjà fait pour plus de 40 algorithmes, transformant la sélection de planificateurs et l'enseignement en un simple changement de configuration.
Points clés
- Plus de 40 planificateurs : recherche dans les graphes, échantillonnage, évolutionnaire, génération de courbes, apprentissage
- Tous implémentés comme plugins de navigation ROS standard exécutables dans le même environnement Gazebo/RViz
- Prise en charge de ROS 1 et ROS 2 avec des images Docker pour un démarrage rapide
- Les planificateurs locaux incluent des contrôleurs DWA, APF, PID, LQR et MPC
- Un dépôt Python compagnon fournit les visualisations d'algorithmes correspondantes pour l'étude
Pour qui
- Ingénieurs en navigation sélectionnant des planificateurs pour AMR/AGV
- Étudiants en robotique apprenant les algorithmes de planification de trajectoire
- Chercheurs comparant de nouveaux planificateurs aux classiques
- Enseignants construisant des cours de planification de mouvement
Limites
- L'étendue prime sur la profondeur — les planificateurs individuels sont des implémentations de référence, pas des contrôleurs de production réglés
- La licence GPL-3.0 restreint la réutilisation en code fermé
- Cible principalement la navigation 2D de robots à roues (pas de planification de manipulation)