Configuración del entorno en ROS 2

Introducción a la Estructura de Espacios de Trabajo en ROS 2. Workspaces
Bienvenidos a la primera entrada de nuestra serie sobre ROS2 en ROSTutorial. Antes de sumergirnos en los aspectos técnicos y prácticos de ROS2, es esencial entender cómo se estructura y organiza. Una de las características clave de ROS 2 es su dependencia en la noción de combinar espacios de trabajo utilizando el entorno del shell.
El término «espacio de trabajo» en ROS se refiere al lugar en tu sistema donde estás desarrollando con ROS 2. El espacio de trabajo principal de ROS 2 se denomina «underlay», mientras que los espacios de trabajo locales subsiguientes se llaman «overlays». Al trabajar con ROS 2, es común tener varios espacios de trabajo activos al mismo tiempo.
Esta estructura de espacios de trabajo facilita el desarrollo con diferentes versiones de ROS 2 o con diferentes conjuntos de paquetes. Además, permite la instalación de varias distribuciones de ROS 2 (o «distros», como Dashing y Eloquent) en la misma computadora y cambiar entre ellas según sea necesario.
Para que todo funcione correctamente, es crucial inicializar el entorno adecuadamente. Esto se logra al ejecutar archivos de configuración cada vez que abres un nuevo shell o al agregar el comando de inicialización a tu script de inicio del shell. Sin esta inicialización, no podrás acceder a los comandos de ROS 2 ni encontrar o usar paquetes de ROS 2. En otras palabras, ROS 2 no funcionará.
Ejecutar los archivos de configuración: Esto debe hacerse para cada nuevo shell para acceder a los comandos de ROS 2. El comando para esto es source /opt/ros/iron/setup.bash, pero el comando exacto puede variar según la ruta de instalación de tu ROS 2.
Si no deseas ejecutar el archivo de configuración para cada nuevo shell, puedes agregar el comando a tu script de inicio del shell usando echo:
"source /opt/ros/iron/setup.bash" >> ~/.bashrc.
En las próximas entradas, exploraremos más a fondo cómo trabajar con estos espacios de trabajo y cómo aprovechar al máximo las características de ROS 2. ¡Acompáñanos en este emocionante viaje!
Verificar las variables de entorno: Después de ejecutar los archivos de configuración de ROS 2, se establecen varias variables de entorno, vitales para el funcionamiento de ROS 2. Puedes verificarlas usando:
printenv | grep -i ROS
Asegúrate de que variables como ROS_DISTRO y ROS_VERSION estén configuradas correctamente.
Otras variables a tener en cuenta:
ROS_DOMAIN_ID:
- Esta variable se refiere al «ID del dominio» en ROS 2.
- ROS 2 utiliza un middleware llamado DDS (Data Distribution Service) para la comunicación entre nodos. DDS utiliza el concepto de «dominios» para segmentar y aislar grupos de nodos, de modo que los nodos en un dominio no puedan comunicarse con los nodos en otro dominio.
- La variable
ROS_DOMAIN_ID
se utiliza para asignar un ID de dominio específico a un grupo de nodos. Al establecer esta variable, estás especificando en qué dominio operarán tus nodos de ROS 2. Es especialmente útil cuando tienes múltiples redes o grupos de nodos y deseas evitar interferencias entre ellos. - Para establecer esta variable, usarías un comando como:
export ROS_DOMAIN_ID=<tu_id_de_dominio>
ROS_AUTOMATIC_DISCOVERY_RANGE:
- Esta variable se refiere al «rango de descubrimiento automático» en ROS 2.
- Por defecto, la comunicación en ROS 2 no está limitada a localhost. La variable de entorno
ROS_AUTOMATIC_DISCOVERY_RANGE
te permite limitar el rango de descubrimiento de ROS 2. - Usar esta variable es útil en ciertos escenarios, como aulas, donde múltiples robots pueden publicar en el mismo tema, causando comportamientos inesperados.
- Esta variable ayuda a limitar el alcance del descubrimiento automático, lo que puede ser útil para evitar interferencias o comportamientos no deseados en redes con múltiples dispositivos o nodos.
Ambas variables son esenciales para configurar y controlar cómo los nodos en ROS 2 descubren y se comunican entre sí, especialmente en entornos con múltiples nodos o redes.
En resumen, para un entorno ROS 2 funcional, es crucial configurarlo correctamente. Esto se puede lograr ejecutando los archivos de configuración en cada nuevo shell o agregando el comando de origen a tu script de inicio.
En las próximas entradas, exploraremos más a fondo cómo trabajar con estos espacios de trabajo y cómo aprovechar al máximo las características de ROS 2. ¡Acompáñanos en este emocionante viaje!