Robocar · TFM · Fundamentos

Odometría, SLAM y navegación: cómo encajan para llegar a un destino

Tres piezas, una sola pregunta: «¿cómo lleva el robot su chasis desde aquí hasta un punto del mapa, sin chocar?». La respuesta no está en ninguna de las tres por separado, sino en cómo se encadenan.

Cada concepto responde a una pregunta distinta y produce una pieza distinta del sistema de coordenadas del robot. Ese sistema —el árbol TF— es el hilo que las cose. Verlo es entender la relación.

01 La columna vertebral compartida: el árbol TF

En ROS2 todo se ancla a una cadena de marcos de referencia. Leída de izquierda a derecha va del mundo al robot; cada flecha es una transformación, y cada concepto es dueño de una flecha.

map el mundo / mapa fijo
odom origen del recorrido
base_link centro del robot
laser · imu sensores atornillados

map → odom → base_link → sensores  ·  componer todas da la pose del robot en el mundo

La clave: nadie posee la cadena entera. La odometría produce odom→base_link (movimiento local, suave, pero que deriva). El SLAM produce map→odom (una corrección global que cancela esa deriva). Al componer las dos sale map→base_link: dónde está el robot en el mapa. Y eso es exactamente lo que la navegación necesita para trazar y seguir una ruta.

02 Las tres piezas, una por pregunta

Local · continua

Odometría

«¿Cuánto y cómo me he movido?»

  • Provee odom→base_link.
  • Fuentes: encoder (velocidad) + IMU (giro) + láser, fusionados por un EKF.
  • Suave y sin saltos, pero acumula deriva.
Global · correctiva

SLAM / Localización

«¿Dónde estoy en el mapa?»

  • Provee map→odom y el mapa.
  • Cartographer: casa el /scan del lidar con el mapa (scan-matching + cierre de bucle).
  • Corrige a saltos, sin deriva a largo plazo.
Decisión · acción

Navegación

«¿Cómo llego sin chocar?»

  • Consume map→base_link + el mapa + el /scan.
  • Nav2: planificador (ruta) + controlador TEB (Ackermann).
  • Emite /cmd_vel hacia los motores.

03 Cómo se relacionan: un bucle cerrado

No es una tubería recta, es un ciclo. La navegación decide, el robot se mueve, la odometría mide ese movimiento, el SLAM lo corrige contra el mapa, y la pose resultante vuelve a la navegación para replanificar. Una vuelta tras otra hasta llegar.

NAVNav2 planifica y controlaDe la pose y el mapa saca una ruta y genera /cmd_vel (avanza a X m/s, gira a Y rad/s).
ACTcar_control actúa (puente Ackermann)Traduce /cmd_vel a ángulo de servo + throttle del ESC. El coche se mueve.
ODOOdometría mide el movimientoEKF (encoder+IMU+láser) actualiza odom→base_link: cuánto se ha desplazado.
SLAMSLAM corrige contra el mapaCartographer casa el /scan y ajusta map→odom, cancelando la deriva → pose fiable.
↑ la pose corregida (map→base_link) vuelve a Nav2, que comprueba el avance, esquiva obstáculos y replanifica — y el ciclo se repite

04 Llegar a un destino, paso a paso

  1. Le das un destino: una coordenada (x, y) en el map.
  2. El planificador global de Nav2 traza una ruta sobre el mapa de Cartographer.
  3. El controlador local (TEB), que respeta el radio de giro Ackermann, genera /cmd_vel para seguir esa ruta.
  4. car_control convierte /cmd_vel en dirección + tracción, y el robot avanza.
  5. La odometría (EKF) va estimando el movimiento en tiempo real → odom→base_link.
  6. El SLAM compara el lidar con el mapa y corrige la deriva → map→odom. La pose real queda fijada.
  7. Nav2 usa esa pose para medir el progreso, sortear obstáculos (costmaps del /scan) y replanificar si hace falta.
  8. Se repite desde el paso 3 hasta que la pose coincide con el destino. Llegada.

05 Dónde vive cada pieza en robocar

Capa 0 · Fundamentos
Odometría
EKF fusionando encoder + IMU (+ láser y ángulo de dirección como mejoras). Es el cimiento: sin ella, nada arranca.
Capa 1 · Percepción
SLAM
RPLidar C1 → /scan → Cartographer 2D. Construye el mapa y localiza sobre él.
Capa 2 · Navegación
Nav2 + TEB
Planifica y sigue la ruta al destino respetando la cinemática del coche.
Una forma de recordarlo. La odometría es caminar con los ojos cerrados contando pasos: preciso a corto plazo, pero te acabas desviando. El SLAM es abrir los ojos y reconocer la sala para corregir dónde crees que estás. La navegación es decidir la ruta hasta la puerta y caminarla. Ninguna basta sola; el robot llega porque las tres se turnan, vuelta tras vuelta, sobre el mismo árbol TF.