Open Source Robotics

Una colección curada de proyectos, herramientas y software de robótica de código abierto de alta calidad.

ROS Motion Planning

Un solo repositorio que implementa más de 40 planificadores de rutas clásicos y basados en aprendizaje como plugins de ROS

Licencia

GPL-3.0

Resumen

ros_motion_planning es una colección exhaustiva de algoritmos de planificación de movimiento para robots implementados como plugins para el stack de navegación de ROS: planificadores globales desde A, Theta, D y JPS hasta RRT, Informed RRT* y planificadores de Voronoi; planificadores locales que incluyen DWA, estilo TEB, PID, LQR y MPC; generación de curvas (Bezier, Dubins, Reeds-Shepp, B-spline); y planificadores basados en aprendizaje como DDPG. Cada algoritmo se ejecuta en el mismo montaje de Gazebo/RViz, lo que lo convierte en una referencia excepcionalmente práctica para comparar planificadores en igualdad de condiciones.

El repositorio empaqueta docenas de planificadores tras las interfaces de plugins estándar nav_core de ROS, de modo que cualquier algoritmo puede insertarse en move_base (ROS 1) —con una implementación complementaria para ROS 2— y probarse contra los mismos costmaps, robots y mundos de Gazebo. La planificación global cubre búsqueda en grafos (Dijkstra, A, D, LPA, D Lite, Theta, Lazy Theta, JPS, GBFS), métodos basados en muestreo (RRT, RRT, Informed RRT, RRT-Connect), enfoques inteligentes/evolutivos (ACO, GA, PSO) y planificación por diagramas de Voronoi. La planificación local abarca controladores PID, DWA, APF, LQR y MPC, y un módulo de generación de curvas implementa trayectorias de Dubins, Reeds-Shepp, Bezier y splines. Los planificadores basados en aprendizaje (p. ej. navegación por RL basada en DDPG) completan el conjunto. Las imágenes de Docker, las extensas animaciones por algoritmo y un repositorio de visualización en Python a juego lo hacen igual de útil como referencia docente que como punto de partida para el desarrollo de planificadores de producción.

Por qué importa

Esta es la implementación única más completa del canon clásico de planificación de movimiento en código ROS funcional: los algoritmos de libro de texto que normalmente son pseudocódigo en los artículos se ejecutan todos aquí en un stack consistente, razón por la cual se ha convertido en la referencia de cabecera tanto para ingenieros de navegación como para estudiantes de robótica.

Qué problema resuelve

Comparar planificadores de rutas de forma justa requiere implementar cada uno dentro del mismo stack de navegación: meses de ingeniería de plugins. ros_motion_planning ya lo ha hecho para más de 40 algoritmos, convirtiendo la selección de planificadores y su enseñanza en un cambio de configuración.

Puntos clave

  • Más de 40 planificadores: búsqueda en grafos, basados en muestreo, evolutivos, generación de curvas, basados en aprendizaje
  • Todos implementados como plugins de navegación estándar de ROS ejecutables en el mismo montaje de Gazebo/RViz
  • Soporte para ROS 1 y ROS 2 con imágenes de Docker para un arranque rápido
  • Los planificadores locales incluyen controladores DWA, APF, PID, LQR y MPC
  • Un repositorio complementario en Python ofrece visualizaciones de los algoritmos para el estudio

Para quién es

  • Ingenieros de navegación que seleccionan planificadores para AMRs/AGVs
  • Estudiantes de robótica que aprenden algoritmos de planificación de rutas
  • Investigadores que comparan nuevos planificadores contra los clásicos
  • Educadores que preparan material docente de planificación de movimiento

Limitaciones

  • Amplitud sobre profundidad: los planificadores individuales son implementaciones de referencia, no controladores de producción afinados
  • La licencia GPL-3.0 restringe la reutilización en código cerrado
  • Se dirige principalmente a la navegación 2D de robots con ruedas (sin planificación de manipulación)

Este sitio web requiere JavaScript. Por favor, habilite JavaScript para explorar nuestros proyectos de robótica.