What is Galactic?

ROS2 Galactic: Un Salto Gigante para la Robótica

20/11/2007

Valoración: 4.28 (15025 votos)

El mundo de la robótica está en constante evolución, y con cada nueva herramienta y actualización, las posibilidades se expanden exponencialmente. En mayo de 2021, la comunidad recibió una de las actualizaciones más esperadas: ROS2 Galactic Geochelone. Esta no es una simple mejora incremental; Galactic representa la séptima versión del Robot Operating System (ROS) 2.0 y un paso firme hacia la consolidación de un estándar de producción para el desarrollo de robots complejos. Construido sobre la robusta base de DDS, ROS2 fue rediseñado desde cero para superar las limitaciones de su predecesor, abordando desafíos del mundo real como redes inestables, seguridad en flotas de múltiples robots y operación en sistemas embebidos de bajo consumo. Galactic Geochelone llega para potenciar estas capacidades y añadir un arsenal de nuevas funcionalidades que prometen cambiar la forma en que construimos y desplegamos sistemas robóticos.

What is Galactic?
Galactic is the 7th release of the new Robot Operating System (ROS) 2.0, built on DDS to be the production grade middleware for robotics with all of the amazing tools you came to love in ROS.
Índice de Contenido

¿Qué es ROS2 Galactic Geochelone?

Lanzado oficialmente el 23 de mayo de 2021, Galactic es una versión de ROS2 con un ciclo de vida proyectado hasta noviembre de 2022. Aunque no es una versión de Soporte a Largo Plazo (LTS) como su predecesor Foxy Fitzroy, introdujo cambios fundamentales y mejoras que han sido adoptadas masivamente por la comunidad y la industria. Su propósito es actuar como un puente de innovación, probando y estabilizando características que se volverían estándar en futuras versiones LTS, como la entonces futura "H-Turtle".

ROS2 fue concebido para ser el middleware de grado industrial que la robótica moderna demandaba. A diferencia de ROS1, que a menudo luchaba con redes poco fiables o la comunicación segura entre múltiples agentes, ROS2 utiliza el estándar DDS (Data Distribution Service) para garantizar una comunicación en tiempo real, escalable y robusta. Galactic refina esta base, haciendo que el desarrollo sea más estable, flexible y potente.

Mejoras Fundamentales Bajo el Capó

Más allá de las nuevas funcionalidades visibles, el verdadero valor de Galactic reside en las mejoras estructurales que aportan estabilidad y eficiencia al núcleo del sistema. Estos cambios, aunque técnicos, tienen un impacto directo en la fiabilidad y el rendimiento de cualquier robot que lo utilice.

Cyclone DDS como Estándar por Defecto

Una de las decisiones más notables en Galactic fue la adopción de Eclipse Cyclone DDS como el RMW (ROS MiddleWare) por defecto. El RMW es la capa que implementa el estándar DDS y gestiona toda la comunicación entre los nodos de ROS. Cyclone DDS, donado por ADLINK a la Eclipse Foundation, se ganó rápidamente la preferencia de la comunidad por su excelente rendimiento "out-of-the-box" y, sobre todo, por su capacidad de comunicación de copia cero (zero-copy) en un mismo procesador gracias a su integración con el proyecto Eclipse Iceoryx. Esto significa que los datos pueden compartirse entre procesos sin necesidad de copiarlos en la memoria, reduciendo drásticamente la latencia y el consumo de CPU.

Aunque Cyclone DDS se convirtió en el predeterminado, ROS2 mantiene su filosofía de flexibilidad. Otros proveedores de DDS de Nivel 1, como eProsima's Fast-DDS (el anterior por defecto) y RTI's Connext DDS, siguen estando completamente soportados y disponibles para una fácil instalación. Cambiar entre ellos es tan simple como establecer una variable de entorno, permitiendo a los desarrolladores elegir la implementación que mejor se adapte a sus necesidades específicas.

Calidad y Confianza de Nivel 1

Para que una tecnología sea adoptada en entornos críticos (industriales, médicos, automotrices), debe ser predecible y fiable. En este sentido, Galactic marcó un hito: la biblioteca cliente de C++ (rclcpp) y todas sus dependencias recursivas (como rcl, rmw, etc.) alcanzaron el Nivel de Calidad 1, según lo definido en el documento REP 2004. Este es el nivel más alto posible y garantiza aspectos como:

  • Cobertura de pruebas unitarias y de integración exhaustiva.
  • Políticas estrictas sobre la calidad del código y la documentación.
  • Control de versiones y procesos de lanzamiento estables.
  • Estabilidad de la API a largo plazo.

Este logro infunde una enorme confianza a los desarrolladores y empresas que apuestan por ROS2 para productos comerciales, asegurando que el núcleo del sistema es robusto y ha sido verificado rigurosamente. Además, para fomentar prácticas de desarrollo modernas, Galactic actualizó la versión por defecto del lenguaje de C++14 a C++17.

Funcionalidades que Cambian el Juego

Galactic no solo reforzó sus cimientos, sino que también introdujo herramientas y mejoras que resuelven problemas prácticos del día a día en el desarrollo robótico.

Configuración Dinámica de Calidad de Servicio (QoS)

La Calidad de Servicio (QoS) es un conjunto de políticas que definen cómo se comportan los publicadores y suscriptores (por ejemplo, si un mensaje debe ser entregado de forma fiable o si se prioriza la entrega más reciente). En versiones anteriores, estos perfiles de QoS debían ser definidos estáticamente en el código fuente. Galactic introdujo una de las características más solicitadas: la capacidad de configurar externamente los perfiles de QoS. Ahora, los desarrolladores pueden optar por permitir que estos ajustes se anulen en tiempo de ejecución a través de archivos de parámetros. Esta flexibilidad es inmensa, ya que permite ajustar el comportamiento de la comunicación de un robot para diferentes escenarios (por ejemplo, una red WiFi congestionada vs. una red cableada estable) sin necesidad de recompilar el código.

`rosbag2`: Grabación de Datos Confiable y Potente

La herramienta `rosbag` es esencial para cualquier desarrollador de robótica, ya que permite grabar y reproducir todos los datos que fluyen por el sistema, siendo crucial para la depuración y las pruebas. Sin embargo, `rosbag2` en Foxy y versiones anteriores tenía problemas de fiabilidad, perdiendo mensajes en entornos de red con mucho tráfico. Galactic transformó `rosbag2` en una herramienta robusta y profesional. En pruebas de estrés donde Foxy apenas lograba grabar el 30% de los mensajes, Galactic capturó el 100% con éxito. Además, se le añadieron numerosas funcionalidades nuevas, como compresión de datos integrada, control avanzado de la reproducción, utilidades de línea de comandos mejoradas y soporte para expresiones regulares (regex) para seleccionar qué temas grabar o reproducir.

El Ecosistema: El Verdadero Poder de ROS

Un sistema operativo es tan útil como las aplicaciones que se pueden ejecutar en él. El verdadero motor de ROS siempre ha sido su vibrante ecosistema de paquetes y herramientas. Con Galactic, la mayoría de los proyectos clave de la comunidad no solo fueron portados, sino que recibieron mejoras sustanciales. Entre ellos, destacan gigantes como Navigation2, MoveIt2 y ROS2 Control.

Navigation2 (Nav2): La Autonomía Inteligente

El stack de navegación Nav2 recibió una de sus mayores actualizaciones en Galactic, expandiendo enormemente las capacidades de autonomía de los robots móviles. Las novedades incluyen:

  • Nuevos Algoritmos de Planificación y Control: Se introdujeron planificadores como Theta* (para rutas de cualquier ángulo en línea recta) y Hybrid-A* (para generar rutas cinemáticamente factibles para vehículos tipo coche). También se añadió el controlador Regulated Pure Pursuit, brindando por primera vez un soporte de primera clase a vehículos con dirección Ackermann y a robots con patas.
  • Árboles de Comportamiento Mejorados: El árbol de comportamiento por defecto fue rediseñado para ser más reactivo y ejecutar solo las recuperaciones necesarias ante un fallo, en lugar de probar todas las opciones. Se añadieron nodos que permiten cambiar dinámicamente de planificador o controlador en tiempo de ejecución.
  • Costmap Filters API: Esta nueva API permite crear capas de filtro sobre el mapa de costes. De serie, se incluyen filtros para crear Zonas de Exclusión (Keepout Zones) donde el robot no puede entrar y Zonas de Velocidad Restringida (Speed Restricted Zones).
  • Seguimiento Avanzado de Waypoints: El nuevo Waypoint Follower permite al robot seguir una secuencia de puntos de paso, detenerse en cada uno y ejecutar tareas específicas (como tomar una foto o activar un actuador). Además, la nueva acción "Navigate Through Poses" permite al robot pasar por una serie de puntos intermedios sin detenerse, creando una trayectoria suave y continua.

Tabla Comparativa: ROS2 Foxy vs. ROS2 Galactic

CaracterísticaROS2 Foxy (LTS)ROS2 Galactic
RMW por DefectoFast DDSCyclone DDS
Fiabilidad de `rosbag2`Baja (~30% en estrés)Muy Alta (100% en estrés)
Configuración QoSEstática (en código)Dinámica (archivos de config.)
Soporte de Vehículos (Nav2)Principalmente diferencialDiferencial, Ackermann, Patas
Versión C++C++14C++17
Nivel de Calidad (rclcpp)VariableNivel 1 (Máximo)

El Futuro: Mirando hacia Adelante

El desarrollo de ROS2 está guiado por el Comité Directivo Técnico (TSC), un grupo compuesto por líderes de la industria y la investigación como Samsung, LG, Microsoft, Amazon y Bosch. Esta fuerte inversión industrial garantiza que el desarrollo de ROS2 se centre en resolver problemas del mundo real y en mantener un alto estándar de calidad. Galactic fue un claro resultado de esta colaboración, sentando las bases para la siguiente versión LTS, H-Turtle, que llegó en la primavera de 2022 con aún más características y mejoras.

Preguntas Frecuentes (FAQ)

¿Debo actualizar de Foxy a Galactic?

Si bien Foxy es una versión LTS con un soporte más largo, la actualización a Galactic se justifica si necesitas la fiabilidad mejorada de `rosbag2`, las capacidades avanzadas de Navigation2 para vehículos no diferenciales, o la flexibilidad de la configuración dinámica de QoS. Para nuevos proyectos en su momento, Galactic era la opción recomendada para acceder a la última tecnología.

¿Qué es DDS y por qué es importante?

DDS son las siglas de Data Distribution Service. Es un estándar de middleware de comunicación de la OMG (Object Management Group) diseñado para sistemas en tiempo real, fiables y escalables. Es la columna vertebral de la comunicación en ROS2, permitiendo que los diferentes programas (nodos) de un robot intercambien datos de manera eficiente y robusta, incluso en condiciones de red adversas.

¿Qué es Nav2 y por qué es tan relevante en esta versión?

Nav2 es el stack de navegación de última generación para ROS2. Es el cerebro que permite a un robot móvil entender su entorno, localizarse en un mapa, planificar rutas para ir de un punto A a un punto B y evitar obstáculos. Las actualizaciones en Galactic fueron un salto cualitativo enorme, permitiendo la navegación autónoma de una gama mucho más amplia de robots y en escenarios mucho más complejos.

Si quieres conocer otros artículos parecidos a ROS2 Galactic: Un Salto Gigante para la Robótica puedes visitar la categoría Juegos.

Subir