Saltar al contenido principal

¿Qué es ROS 2?

ROS (Robot Operating System) es el conjunto de herramientas y librerías con el que se programan la mayoría de robots de investigación y muchos industriales. Su nombre engaña un poco: funciona sobre Linux, como una capa que organiza todos los programas de un robot y los hace hablar entre sí.

ROS 2 es su versión actual, más rápida, segura y preparada para robots reales. Es open source y gratuita.

La idea: piezas pequeñas que se hablan​

Un robot hace muchas cosas a la vez: leer el LiDAR, calcular dónde está, decidir por dónde ir, mover los motores. En ROS 2, cada una es un programa pequeño e independiente llamado nodo, y los nodos se pasan información mediante mensajes.

Grafo de un robot móvil: el LiDAR publica /scan, los motores publican /odom, la navegación publica /cmd_vel
  • El nodo del LiDAR publica las distancias en /scan
  • El nodo de los motores publica cuánto han girado las ruedas en /odom
  • El nodo de navegación escucha los dos, decide y publica la velocidad en /cmd_vel
  • El nodo de los motores escucha /cmd_vel y mueve las ruedas. Un mando puede publicar también en /cmd_vel para conducirlo a mano

Así funciona el Rover: cada pieza es un nodo, y cambiar el LiDAR o los motores solo implica cambiar su nodo.

Por qué se usa tanto​

  • No reinventas nada: hay paquetes listos para cientos de sensores, para hacer mapas, navegar o mover brazos robóticos
  • Herramientas: ver los datos en 3D, grabarlos y reproducirlos, dibujar gráficas, simular el robot
  • Python o C++: cada nodo en el lenguaje que prefieras, y se entienden entre ellos
  • Red: los nodos pueden estar en ordenadores distintos. El robot ejecuta los suyos y tú ves sus datos desde tu portátil, por Wi-Fi

Las palabras que vas a oír​

ConceptoQué es
Nodoun programa que hace una tarea concreta
Topicun canal con nombre por el que circulan mensajes, como /cmd_vel
Mensajeel tipo de dato que viaja: una velocidad, una imagen, una distancia
Serviciouna pregunta con respuesta entre dos nodos
Acciónuna tarea larga con progreso, como "navega hasta la cocina"
Parámetroun ajuste de un nodo que se cambia sin tocar el código
Paqueteuna carpeta con nodos relacionados, lista para compartir
Workspacela carpeta donde guardas y compilas tus paquetes

Versiones (distribuciones)​

Cada versión de ROS 2 va ligada a una versión de Ubuntu:

DistribuciónUbuntuSoporte hasta
Humble Hawksbill22.04mayo de 2027
Jazzy Jalisco24.04mayo de 2029

Estas guías usan Humble, la versión del Rover y la que trae una Jetson con JetPack 6. Todo el código funciona igual en Jazzy, cambiando humble por jazzy en los comandos.

En las siguientes secciones verás cómo instalarlo, nodos y topics en la práctica y tu primer paquete.