Saltar al contenido
Biblioteca GKUn lugar para las mentes curiosas
Español

Cartografiar un espacio desconocido de forma autónoma con la localización y el mapeo simultáneos (Simultaneous Localization and Mapping)

Imaginemos un robot que recorre por primera vez el pasillo de un edificio desconocido. No tiene un mapa ni sabe dónde está. Aun así, explora el entorno con sus sensores mientras avanza poco a poco, y al cabo de un rato averigua tanto la forma de la habitación como su propia ubicación. La técnica que permite trazar un mapa y estimar al mismo tiempo la propia ubicación se llama localización y mapeo simultáneos (Simultaneous Localization and Mapping, SLAM).

En términos sencillos, la localización y el mapeo simultáneos consisten en estimar a la vez el mapa del entorno y la posición y orientación del robot a partir de las observaciones que recogen sus sensores mientras se desplaza, sin partir de un mapa previo. Para localizarse, el robot necesita un mapa, y para trazarlo necesita conocer su posición con precisión. El enfoque resuelve este problema del huevo y la gallina ajustando ambas estimaciones de forma conjunta.

Primero veremos por qué el SLAM plantea un problema difícil. Después repasaremos su historia, sus componentes esenciales, la evolución de los métodos más representativos y las limitaciones que surgen en la práctica.


Una técnica para ajustar el mapa y la posición a la vez

¿Qué es la localización y el mapeo simultáneos?

Un pequeño robot móvil de interior con ruedas y un lidar se detiene un momento en medio de un pasillo de oficinas bien iluminado para explorar su entorno

En la navegación robótica tradicional bastaba con disponer de un mapa previo, como en una fábrica, o de puntos de referencia de posición conocida, como en la navegación por satélite. En lugares como el interior de una casa o un almacén subterráneo, donde no hay ni mapa ni GPS, el robot tiene que aprender por sí mismo cómo es el espacio. En esa situación, el SLAM reúne en un solo problema dos preguntas del robot, dónde está y cómo es su entorno.

  • Localización (Localization). Consiste en determinar la posición y la orientación del robot, es decir, su pose, tomando como referencia un mapa existente.
  • Mapeo (Mapping). Consiste en reunir las observaciones de los sensores para crear un mapa del entorno, partiendo de que se conoce la ubicación del robot.
  • Estimación simultánea (Simultaneous Estimation). Consiste en ajustar conjuntamente la posición y el mapa para que las observaciones de distintos momentos describan el mismo entorno, en vez de resolver por turnos cada una de las dos estimaciones.

La pose incluye las coordenadas en el plano y la dirección hacia la que apunta el robot. Por eso, los resultados del SLAM suelen incluir la trayectoria recorrida, elementos del mapa como paredes, esquinas y puntos característicos, y la incertidumbre de esas estimaciones.


Del problema del huevo y la gallina a una solución probabilística

Vista cenital del suelo de un laboratorio, con un recorrido sencillo marcado que vuelve al punto de partida y un pequeño robot de investigación junto a unas cajas situadas en las esquinas

En 1991, John Leonard y Hugh Durrant-Whyte formularon este problema en la Conferencia Internacional sobre Robots y Sistemas Inteligentes (IROS) como «localización global a largo plazo sin información previa». La sigla SLAM se usó por primera vez en un artículo de Durrant-Whyte, Rye y Nebot presentado en 1995 en el Simposio Internacional de Investigación en Robótica (ISRR). Los orígenes del problema se remontan a un debate de la Sociedad de Robótica y Automatización del IEEE celebrado en San Francisco en 1986. Los investigadores se dieron cuenta entonces de que las estimaciones de los puntos de referencia del mapa estaban fuertemente correlacionadas entre sí. Esto se debe a que el error de posición del robot se transmite a varias observaciones como un error común.

(1) Puntos de referencia y correlación de errores
Si el robot observa dos rasgos del entorno cuando su propia posición todavía se conoce con poca precisión, las posiciones estimadas de esos dos puntos comparten el mismo error de posición. A medida que se acumulan observaciones, conservar esa correlación en un modelo probabilístico resulta fundamental para mantener la coherencia del mapa.

(2) Corrección del error mediante el cierre de bucle
Cuando el robot vuelve a reconocer un lugar por el que ya pasó, puede corregir a la vez su posición actual, la trayectoria anterior y el mapa. Este «cierre de bucle» (Loop Closure) es un mecanismo fundamental para limitar la deriva, es decir, el crecimiento con el tiempo del error de posición acumulado al basarse solo en las ruedas o en mediciones inerciales.


De los filtros a la optimización de grafos

Un lidar, una cámara de profundidad y un módulo de medición inercial colocados en orden junto a un cuaderno en blanco sobre un banco de trabajo de robótica

El SLAM clásico partió de un método que empleaba el filtro de Kalman extendido (Extended Kalman Filter) para tratar el estado del robot y los puntos de referencia como un único vector de estimación de gran tamaño. Más adelante, para abordar el coste computacional y la no linealidad, se generalizó el uso de métodos basados en filtros de partículas y de la optimización de grafos (Graph-based SLAM), que representa las poses del robot como nodos y las observaciones como aristas para minimizar el error.

  • Medición del desplazamiento (odometría, Odometry). Predice el movimiento en tramos cortos a partir del giro de las ruedas o de sensores inerciales. Cuando se usa por sí sola, el error se acumula.
  • Actualización por observación (Observation Update). Contrasta con el mapa los rasgos detectados mediante lidar, cámaras, ultrasonidos u otros sensores para corregir la posición y el mapa.
  • Asociación de datos (Data Association). Consiste en determinar si el punto que se acaba de observar corresponde a la misma pared que se vio antes o a un objeto nuevo. Una asociación errónea puede distorsionar considerablemente el mapa.

La elección de los sensores depende del entorno. Los robots de limpieza de interiores y los robots de logística suelen utilizar un lidar de 2 dimensiones o una cámara de profundidad, mientras que los dispositivos de realidad aumentada utilizan SLAM visual-inercial, que combina rasgos visuales con mediciones inerciales. Más que el nombre del sensor, importa que el sistema trate la incertidumbre de las observaciones de forma probabilística y corrija el mapa de manera coherente al volver a pasar por el mismo lugar.


Limitaciones del SLAM que conviene tener en cuenta en la práctica

Un largo pasillo blanco con paredes de vidrio y puertas idénticas que se repiten, donde un carro oculta parte de un lado y apenas se distinguen rasgos característicos

El SLAM ya se utiliza en robots domésticos, en la automatización de almacenes y en algunos módulos de conducción autónoma, pero todavía es pronto para decir que se trata de un «problema completamente resuelto».

(1) Es fácil suponer que el entorno es estático
Si alguien abre o cierra una puerta o mueve un carro, un rasgo que figuraba en el mapa puede desaparecer y hacer que falle el cierre de bucle. Se sigue investigando cómo interpretar las escenas dinámicas objeto por objeto y filtrar esos elementos del mapa.

(2) La estimación se vuelve inestable en lugares con pocos rasgos distintivos
En entornos con elementos repetitivos o difíciles de observar, como un pasillo blanco y largo, una pared de vidrio de gran tamaño o un espacio oscuro, la asociación de datos falla con frecuencia. En esos casos, hacen falta estrategias como fusionar la información de varios sensores o enriquecer la representación del mapa mediante nubes de puntos, cuadrículas u objetos con significado semántico.

(3) El reto de equilibrar la precisión y el coste computacional
Cuando el robot recorre un edificio grande durante mucho tiempo, el mapa crece y resulta difícil optimizarlo en tiempo real. Técnicas como conservar solo los fotogramas clave o gestionar por separado los mapas locales suelen ser decisivas para el rendimiento en la práctica.


El SLAM es un pilar de la navegación que permite al robot aprender al mismo tiempo «dónde estoy» y «cómo es este lugar», incluso en espacios desconocidos. La idea central es refinar conjuntamente el mapa y la posición conforme se acumulan observaciones inciertas, sin esperar a completar cada estimación por separado antes de moverse.

Corregir conjuntamente el mapa y la posición teniendo en cuenta los errores de observación es el primer paso para que un robot pueda navegar de forma autónoma por espacios desconocidos.

El SLAM alterna las observaciones del entorno y las estimaciones del movimiento para actualizar conjuntamente la posición del robot y el mapa. El cierre de bucle, que consiste en volver a reconocer un mismo lugar, ayuda a reducir los errores acumulados en la trayectoria y en el mapa.
Esquema simplificado de la estimación simultánea de la posición y el mapa y del cierre de bucle en SLAM. Fuente: MathWorks, documentación sobre SLAM y Lidar SLAM.

Guarda este artículo en PDF

Compra la edición en el idioma que has seleccionado del artículo que estás leyendo.

US$1.00
Idioma seleccionado: Español

US$1.00 · 1 artículo · 1 idioma

Una vez realizada la compra, puedes volver a descargar la edición que compraste iniciando sesión con la misma cuenta.

Ver una muestra del PDF ↗Puedes leer el artículo completo gratis. La muestra te permite ver la tipografía y la estructura del archivo.