Separación de launcher en dos, uno para el robot y otro para el mundo.

Semana 3 ·

Objetivos

En esta parte del trabajo se ha abordado la reestructuración del sistema de lanzamiento en Gazebo Harmonic, separando la inicialización del robot y del entorno en dos launchers independientes. El objetivo principal ha sido mejorar la modularidad, flexibilidad y mantenibilidad del sistema, permitiendo ejecutar y depurar de forma aislada cada uno de los componentes de la simulación.

Tareas realizadas:

- Análisis del launcher original

En primer lugar, se ha analizado el launcher inicial, en el que tanto el robot como el mundo de simulación se lanzaban conjuntamente en un único archivo. Este enfoque dificultaba la reutilización de componentes y complicaba la depuración, ya que cualquier cambio requería reiniciar toda la simulación completa.

- Separación en launcher de mundo

Se ha creado un launcher específico encargado únicamente de iniciar Gazebo Harmonic con el entorno de simulación. Este launcher se encarga de cargar el mundo, los modelos estáticos y los objetos del escenario, sin incluir la lógica del robot. De este modo, se puede validar el entorno de forma independiente y reutilizarlo con distintos robots o configuraciones.

- Separación en launcher de robot

Paralelamente, se ha desarrollado un launcher independiente para el robot, encargado de cargar la descripción (URDF/XACRO), los controladores de ros2_control y la integración con MoveIt2. Este launcher permite inicializar únicamente el robot sobre un entorno ya existente, facilitando pruebas específicas de cinemática, control y planificación de movimiento sin necesidad de relanzar el mundo completo.

- Integración entre ambos launchers

Se ha definido un mecanismo de coordinación entre ambos launchers, de forma que el robot pueda conectarse correctamente al entorno de Gazebo ya en ejecución. Esto incluye la correcta sincronización de namespaces, parámetros y controladores, así como la gestión de tiempos de espera para asegurar que el simulador esté completamente inicializado antes de cargar el robot.

- Ventajas de la arquitectura modular

La separación del sistema en dos launchers independientes aporta múltiples ventajas. Por un lado, permite una mayor reutilización de componentes, ya que el mismo mundo puede emplearse con distintos robots. Por otro, facilita la depuración y el desarrollo incremental, al poder trabajar sobre el robot o el entorno de forma aislada. Además, esta arquitectura es más escalable y se adapta mejor a sistemas complejos o distribuidos.

← Volver a Semana 3

- robot.launch.py

- world.launch.py