Arduino RouterBridge ROS es una biblioteca nueva de Arduino, publicada en versión de trabajo en curso, para armar proyectos de Robot Operating System 2 (ROS 2) en sus computadoras de placa única de "doble cerebro", la Arduino UNO Q y la VENTUNO Q. Por ahora solo funciona en la VENTUNO Q y el soporte para la UNO Q está planificado, informó Hackster.io.

El equipo de Arduino explica así el problema que la biblioteca intenta resolver.

"Si alguna vez construiste un robot con ROS 2, conoces la división clásica de la arquitectura: un computador potente con Linux se encarga de la navegación, el mapeo y la planificación de alto nivel, mientras un microcontrolador externo hace el trabajo determinista y en tiempo real de conmutar GPIO, leer sensores y mover motores", escribió el equipo de Arduino.

Lograr que esos dos mundos se hablen suele obligar a pelear con protocolos serie hechos a medida, controladores dedicados o capas de middleware pesadas. Según Arduino, la VENTUNO Q se diseñó para que esa frontera desaparezca.

¿Qué es la arquitectura de doble cerebro?

La Arduino VENTUNO Q y su hermana bastante más barata, la Arduino UNO Q, combinan un SoC de clase aplicación Qualcomm Dragonwing, que corre una distribución Linux propia, con un procesador de tiempo real STM32 de STMicroelectronics. Los dos se comunican mediante Arduino RouterBridge, que deja que programas de Linux escritos en Python hablen con sketches de Arduino que corren sobre el sistema operativo de tiempo real Zephyr en el lado del microcontrolador, y al revés.

PlacaLado LinuxLado tiempo realRouterBridge ROS
Arduino VENTUNO QQualcomm DragonwingSTM32 con ZephyrDisponible, en desarrollo
Arduino UNO QQualcomm DragonwingSTM32 con ZephyrPlanificado

¿Qué hace la biblioteca?

Como dice su nombre, RouterBridge ROS lleva ese mismo puente a los proyectos de ROS 2. La biblioteca funciona como un proxy que conecta un sketch de Arduino que corre en el microcontrolador con un grafo de ROS. Imita la sintaxis de ROS 2 en C++, así que la curva de aprendizaje es "prácticamente plana", según Arduino.

"Ahora tu código de tiempo real en el microcontrolador puede interactuar directamente con ROS 2 sin que tengas que configurar nodos puente adicionales", explicó el equipo de Arduino, "lo que ayuda a simplificar el desarrollo de aplicaciones de robótica. Por ejemplo, puedes enviar la telemetría de la IMU directamente a un tópico /imu/data o escuchar comandos de velocidad de los motores en /cmd_vel".

¿Dónde se descarga?

Arduino publicó una guía de inicio de ROS 2 en la UNO Q y la VENTUNO Q en su sitio de documentación. La biblioteca está en GitHub bajo la licencia permisiva Mozilla Public License 2. Arduino advierte que debe considerarse un trabajo en curso y que, aunque la compatibilidad con la UNO Q está planificada, la versión actual solo funciona con la VENTUNO Q, la más cara de las dos.