Robot Operating System

Robot Operating System (ROS) es un conjunto de bibliotecas de software y herramientas que facilitan el desarrollo de robots. Incluye desde drivers hasta algoritmos, es multiplataforma y soporta Linux, macOS, Windows, así como plataformas incrustadas a través de micro-ROS.

ROS 1 fue la primera versión ampliamente adoptada y se diseñó principalmente para investigación y prototipado en robótica.

ROS 2 es la evolución de ROS, rediseñado desde cero para uso industrial, comercial y en sistemas críticos.

Características principales de ROS 2:

  • Arquitectura descentralizada (sin master).

  • Basado en DDS (Data Distribution Service) para la comunicación.

  • Soporte nativo para tiempo real.

  • Funciona en múltiples sistemas operativos: Linux, Windows, macOS, RTOS (FreeRTOS, Zephyr, ThreadX, etc.).

  • Seguridad integrada (autenticación, cifrado, control de acceso).

  • Mejor soporte para sistemas distribuidos y escalables.

ROS 2 sí puede usarse con Zephyr y otros RTOS, pero no de la misma forma que en Linux. La integración está pensada para microcontroladores y sistemas con recursos limitados. Para esto se utiliza micro-ROS.

  1. Zephyr ejecuta el micro-ROS client.

  2. El micro-ROS Agent corre en un PC o SBC (Linux).

  3. La comunicación usa DDS de ROS 2 a través del agente.

Conexión entre ROS2 y Zephyr
┌────────────────────────────┐
│        ROS 2 (PC / SBC)    │
│   Linux / Windows / etc.   │
└───────────┬────────────────┘
            │ DDS
┌───────────▼────────────────┐
│     micro-ROS Agent        │
│   (Linux / PC / SBC)      │
└───────────┬────────────────┘
            │ Serial / UDP
┌───────────▼────────────────┐
│ micro-ROS Client           │
│ Zephyr RTOS                │
│ MCU (Cortex-M, RISC-V)     │
└────────────────────────────┘

Plataformas como Nvidia Isaac están basadas en ROS2.

Beam Bots

Una alternativa del ecosistema Elixir a ROS2 es Beam Bots. Ya que la máquina virtual de Erlang proporciona todos los componentes necesarios para la creación de complejas orquestaciones de movimientos en robots.

Puedes leer el tutorial para saber más de Beam Bots.

Referencias