SLAM: Navegando y Mapeando lo Desconocido

25/12/2021

Valoración: 4.22 (7757 votos)

La capacidad de un sistema autónomo, ya sea un robot móvil, un vehículo sin conductor o incluso un dispositivo de realidad aumentada, para operar con éxito en un entorno desconocido depende fundamentalmente de su habilidad para responder a dos preguntas cruciales de forma simultánea: ¿Dónde estoy? y ¿Cómo es mi entorno? Este problema interdependiente se conoce como SLAM, acrónimo de Simultaneous Localization and Mapping (Localización y Mapeo Simultáneo).

SLAM es el proceso computacional por el cual un agente construye o actualiza un mapa de un entorno desconocido mientras, al mismo tiempo, mantiene un seguimiento de su propia ubicación dentro de dicho mapa. Es un desafío inherentemente complejo porque la precisión del mapa depende del conocimiento preciso de la ubicación del agente, y la precisión de la ubicación del agente depende de la calidad del mapa. Sin un conocimiento previo del entorno, ambos deben estimarse conjuntamente, lo que crea un bucle de retroalimentación.

Formalmente, dado una serie de controles o comandos de movimiento (ut) aplicados al agente y una serie de observaciones sensoriales (ot) recopiladas en pasos de tiempo discretos (t), el problema de SLAM consiste en calcular una estimación del estado del agente (xt, que generalmente incluye su posición y orientación, es decir, su pose) y un mapa del entorno (mt). En la mayoría de los casos, todas estas cantidades se tratan de manera probabilística, buscando estimar la distribución de probabilidad posterior de la pose del robot y los parámetros del mapa.

Técnicas Estadísticas y de Optimización en SLAM

Para abordar la complejidad de estimar simultáneamente la pose y el mapa, se han desarrollado diversas técnicas computacionales. Muchas de estas técnicas buscan aproximar las ecuaciones de probabilidad subyacentes, a menudo utilizando enfoques iterativos que alternan entre mejorar la estimación de la pose y mejorar la estimación del mapa, de manera similar a un algoritmo de Expectation-Maximization.

Entre las técnicas estadísticas más utilizadas se encuentran los filtros de Kalman y los filtros de partículas. Los filtros de Kalman, especialmente el Extended Kalman Filter (EKF-SLAM) y el Unscented Kalman Filter (UKF-SLAM), modelan la distribución de probabilidad como una Gaussiana y son computacionalmente eficientes para mapas de tamaño moderado, aunque sus suposiciones de linealidad pueden limitar su precisión. Los filtros de partículas, también conocidos como algoritmos Monte Carlo (como el algoritmo detrás de Monte Carlo Localization, MCL), representan la distribución de probabilidad mediante un conjunto de muestras (partículas), lo que les permite manejar distribuciones no Gaussianas y no lineales. Sin embargo, los filtros de partículas pueden requerir un gran número de partículas para entornos grandes o complejos, lo que aumenta la carga computacional.

Para aplicaciones a gran escala, donde la complejidad algorítmica puede ser un problema, se han explorado métodos que evitan suposiciones de independencia estadística, como los que utilizan la intersección de covarianzas. Otros métodos buscan mejorar la eficiencia computacional utilizando representaciones de incertidumbre más simples y acotadas, a menudo basadas en técnicas de pertenencia a conjuntos.

Las técnicas de pertenencia a conjuntos se basan principalmente en la propagación de restricciones de intervalo. En lugar de proporcionar una distribución de probabilidad, estos métodos definen un conjunto que garantiza contener la pose real del robot y una aproximación del mapa dentro de límites definidos.

Otra técnica muy popular, especialmente en el ámbito del SLAM visual (VSLAM) y utilizando datos de imagen, es el Bundle Adjustment. Junto con la estimación de Máxima a Posteriori (MAP), el Bundle Adjustment estima conjuntamente las poses de la cámara y las posiciones de los puntos de interés (landmarks) en el entorno. Este enfoque busca la configuración de pose y mapa que mejor se ajusta a todas las observaciones. A diferencia de los métodos de filtrado que estiman la distribución de probabilidad completa, los estimadores MAP calculan la explicación más probable (el pico de la distribución) dadas las observaciones. Sistemas comerciales de SLAM, como ARCore de Google, utilizan técnicas basadas en MAP y Bundle Adjustment para lograr alta fidelidad en el mapeo.

Tipos de Mapas Utilizados en SLAM

La representación del entorno es una elección fundamental en el diseño de un sistema SLAM. Existen principalmente dos enfoques para la representación del mapa:

Mapas Topológicos: Estos mapas se centran en la conectividad del entorno, representando el espacio como un gráfico de nodos (lugares o estados) y aristas (conexiones o transiciones entre lugares). No buscan una precisión geométrica fina, sino capturar la estructura relacional del espacio. Los enfoques de SLAM topológico a menudo se utilizan para imponer consistencia global en algoritmos de SLAM métrico, ayudando a cerrar bucles y corregir errores acumulados.

Mapas de Cuadrícula (Grid Maps): Estos mapas discretizan el espacio en una cuadrícula de celdas (típicamente cuadradas o hexagonales). Cada celda almacena información sobre el estado del entorno en esa ubicación, como si está ocupada por un obstáculo, libre o desconocida. Las inferencias sobre la ocupación de las celdas se basan en las observaciones del sensor. Para simplificar los cálculos, a menudo se asume que las celdas son estadísticamente independientes. En este modelo, la probabilidad de un estado del mapa dadas la pose y la observación a menudo se simplifica: es 1 si las nuevas celdas del mapa son consistentes con la observación en la ubicación dada, y 0 si son inconsistentes.

En el contexto de los vehículos autónomos modernos, el problema del mapeo a menudo se simplifica drásticamente mediante el uso extensivo de datos de mapas muy detallados y recopilados previamente. Estos mapas preexistentes pueden incluir anotaciones extremadamente precisas, como la ubicación de segmentos de línea blanca o bordillos. También se pueden utilizar datos visuales geolocalizados, como los de servicios de StreetView. En esencia, estos sistemas reducen el problema SLAM a una tarea de localización mucho más sencilla, donde el mapa del entorno estático ya está dado, y solo se necesitan actualizar elementos dinámicos como otros vehículos o personas.

Tipo de MapaRepresentaciónPrecisiónEnfoque Principal
TopológicoGrafo de nodos y aristasRelativa (conectividad)Estructura y navegación relacional
De CuadrículaCuadrícula de celdas discretizadasMétrica (geométrica)Ocupación del espacio, planificación de rutas

Sensores en SLAM

La elección y las características de los sensores son determinantes para el diseño y el rendimiento de un sistema SLAM. La diversidad de sensores disponibles ha impulsado el desarrollo de nuevos algoritmos adaptados a sus particularidades. Una exigencia fundamental para manejar el sesgo métrico y el ruido en las mediciones es la independencia estadística entre las lecturas, aunque esta suposición a menudo se relaja o se maneja de forma diferente en métodos más avanzados.

Los modelos de sensores se dividen, en términos generales, en enfoques basados en landmarks (puntos de referencia) y enfoques basados en datos brutos. Los landmarks son objetos en el mundo que pueden ser identificados de forma única y cuya ubicación puede ser estimada por un sensor, como puntos de acceso Wi-Fi, balizas de radio o características visuales distintivas. Los enfoques de datos brutos, por otro lado, no asumen la existencia de landmarks identificables y modelan directamente la probabilidad de la observación dada la pose del robot como una función continua de la ubicación.

Los sensores ópticos son muy comunes, incluyendo telémetros láser unidimensionales (haz único) o 2D (barrido), sistemas Lidar (Light Detection and Ranging) de alta definición 3D o Lidar flash 3D, sensores de sonar 2D o 3D, y una o más cámaras 2D. Desde la invención de características visuales locales robustas, como SIFT (Scale-Invariant Feature Transform), ha habido una intensa investigación en SLAM visual (VSLAM), aprovechando la creciente ubicuidad de las cámaras en dispositivos móviles y robots. Tanto los sensores visuales como los Lidar son a menudo lo suficientemente informativos como para permitir la extracción de landmarks en muchos casos.

Otras formas recientes de SLAM incluyen SLAM táctil (detección por contacto local), SLAM de radar, SLAM acústico y Wi-Fi-SLAM (detección basada en la intensidad de las señales Wi-Fi cercanas). Enfoques más recientes aplican mediciones inalámbricas cuasi-ópticas para multilateración o multiangulación en conjunto con SLAM para compensar la naturaleza errática de las mediciones inalámbricas.

Un ejemplo interesante de SLAM para peatones utiliza una unidad de medición inercial (IMU) montada en el zapato como sensor principal. Aprovecha la capacidad de los peatones para evitar paredes para construir automáticamente planos de edificios mediante un sistema de posicionamiento interior.

En ciertas aplicaciones exteriores, la necesidad de SLAM se reduce casi por completo gracias al uso de sensores GPS diferenciales de alta precisión. Desde la perspectiva de SLAM, estos pueden verse como sensores de ubicación cuya probabilidad es tan 'afilada' que dominan completamente la inferencia. Sin embargo, los sensores GPS pueden degradarse o fallar por completo (por ejemplo, en entornos interiores o durante conflictos militares), lo que hace que SLAM siga siendo relevante incluso en presencia de GPS.

Tipo de SensorTecnologíaInformación ClaveEjemplos de Uso en SLAM
Óptico / RangoLidar (2D, 3D), Telémetro LáserDistancia a superficies, Nube de puntosMapeo de entornos estructurados, extracción de características geométricas
VisualCámaras (Mono, Estéreo, RGB-D)Imágenes, Características visuales (SIFT, etc.)VSLAM, Mapeo denso, Reconocimiento de lugar
AcústicoSonarDistancia a objetos (reflexión de sonido)Entornos subacuáticos o con baja visibilidad
RadiofrecuenciaRadar, Wi-FiDistancia/Velocidad (Radar), Intensidad de señal (Wi-Fi)Detección en condiciones adversas (Radar), Posicionamiento interior (Wi-Fi-SLAM)
InercialIMU (Acelerómetro, Giroscopio)Aceleración, Velocidad angularEstimación de pose a corto plazo, Detección de movimiento (Odometría inercial)
ContactoSensores TáctilesInformación sobre puntos muy cercanosSLAM táctil en exploración de contacto

Modelado Cinemático

El término P(xt | x{t-1}) en la formulación probabilística de SLAM representa el modelo cinemático del agente. Este modelo describe cómo se espera que cambie el estado del agente en función de los comandos de control aplicados. Generalmente, incluye información sobre las acciones ordenadas al robot (como moverse hacia adelante o rotar) y cómo estas acciones se traducen en un cambio de pose, teniendo en cuenta el ruido inherente en los actuadores.

La inclusión del modelo cinemático es crucial para mejorar las estimaciones, especialmente en presencia de ruido en las mediciones sensoriales. El modelo dinámico ayuda a equilibrar las contribuciones de los diversos sensores y los errores parciales, contribuyendo a una representación más coherente y precisa, tanto de la ubicación del robot como del mapa. La representación final de este modelo es el mapa, que puede ser una representación visual o el término abstracto para el modelo interno del entorno y la pose.

Para robots 2D, la cinemática a menudo se modela como una combinación de comandos de rotación y movimiento lineal, implementados con ruido adicional. Aunque la distribución resultante del ruido en las direcciones angular y lineal no es estrictamente Gaussiana, a menudo se aproxima como tal para simplificar los cálculos en filtros como el EKF. Un enfoque alternativo es ignorar el término cinemático explícito y utilizar datos de odometría (mediciones de los encoders de las ruedas) después de cada comando. Estos datos de odometría pueden ser tratados entonces como una entrada sensorial adicional en lugar de parte del modelo cinemático.

Desafíos Clave en SLAM

A pesar de los avances significativos, SLAM presenta varios desafíos importantes que son objeto de investigación activa.

Objetos en Movimiento: Los entornos no estáticos, que contienen elementos dinámicos como otros vehículos, peatones o personas, siguen presentando dificultades. Los algoritmos SLAM tradicionales asumen un entorno estático. El problema de SLAM con detección y seguimiento de objetos en movimiento (SLAM with DATMO) aborda esto tratando los objetos dinámicos de manera similar a como se sigue al propio agente, estimando sus estados junto con la pose del agente y el mapa estático.

Cierre de Bucle (Loop Closure): Este es quizás uno de los desafíos más críticos para lograr la consistencia global en un mapa a gran escala. Ocurre cuando el agente regresa a una ubicación que ya ha visitado previamente. Debido a la acumulación gradual de errores en la estimación de la pose (deriva), el algoritmo SLAM puede 'olvidar' que la ubicación actual es la misma que una visitada anteriormente, creando un mapa inconsistente con duplicados o desalineaciones. El cierre de bucle es el problema de reconocer esta revisita y actualizar las estimaciones (pose y mapa) para corregir la deriva acumulada y garantizar la consistencia global. Los métodos típicos de cierre de bucle aplican un segundo algoritmo para calcular alguna medida de similitud entre las observaciones actuales y las almacenadas de ubicaciones previas. Cuando se detecta una coincidencia fuerte, se reinician o ajustan las estimaciones de pose y mapa. Un método común es almacenar y comparar vectores de características visuales (como bolsas de palabras de características SIFT) de cada ubicación visitada.

Exploración (Active SLAM): El problema de SLAM no solo implica construir un mapa, sino también decidir activamente hacia dónde moverse para construir el mapa de la manera más eficiente posible. El Active SLAM estudia el problema combinado de SLAM y la planificación de trayectorias óptimas para la exploración. La necesidad de exploración activa es particularmente pronunciada en regímenes de detección dispersa, como el SLAM táctil. Generalmente, el Active SLAM se realiza aproximando la entropía (o incertidumbre) del mapa bajo acciones hipotéticas futuras y eligiendo la acción que se espera que reduzca más la incertidumbre. El "Multi agent SLAM" extiende este problema al caso de múltiples robots que coordinan sus acciones para explorar y mapear de manera óptima.

Otros Aspectos Relevantes

El campo de SLAM también ha encontrado inspiración y aplicaciones en áreas diversas.

Inspiración Biológica: En neurociencia, el hipocampo en el cerebro de los mamíferos parece estar involucrado en cálculos similares a SLAM. Las 'células de lugar' en el hipocampo se activan cuando un animal está en una ubicación particular de su entorno, funcionando de manera análoga a un sistema de localización. Esta inspiración ha llevado al desarrollo de sistemas SLAM bioinspirados, como RatSLAM, que modela aspectos del sistema de navegación de las ratas.

SLAM Colaborativo: Este enfoque combina datos sensoriales de múltiples robots o usuarios para generar mapas 3D compartidos y más completos. Esta capacidad es fundamental para tareas como la exploración de grandes áreas o entornos complejos (como los subterráneos), donde un solo agente podría no ser suficiente. El SLAM colaborativo fue demostrado por varios equipos en el DARPA Subterranean Challenge de 2021.

Preguntas Frecuentes (FAQ)

¿Qué significa SLAM?
SLAM significa Simultaneous Localization and Mapping (Localización y Mapeo Simultáneo). Es el problema de un agente autónomo (como un robot) que construye un mapa de un entorno desconocido mientras, al mismo tiempo, determina su propia posición dentro de ese mapa.

¿Por qué es importante SLAM?
Es fundamental para la autonomía. Permite que robots, drones, vehículos autónomos e incluso aplicaciones de realidad aumentada naveguen y operen en entornos sin infraestructura de posicionamiento externa (como GPS en interiores) y sin un mapa preexistente.

¿Qué tipos de sensores se usan en SLAM?
Se utilizan una amplia variedad de sensores, incluyendo Lidar, cámaras (para VSLAM), sonar, radar, sensores táctiles, Wi-Fi, unidades de medición inercial (IMU), y en algunos casos, GPS diferenciales. La elección del sensor depende de la aplicación y el entorno.

¿Cuál es la diferencia entre mapas topológicos y de cuadrícula?
Los mapas topológicos se centran en la conectividad y las relaciones entre lugares, creando un gráfico. Los mapas de cuadrícula dividen el espacio en celdas discretas para representar la ocupación del espacio con precisión geométrica.

¿Qué es el cierre de bucle (Loop Closure)?
Es el problema de reconocer que el agente ha regresado a una ubicación previamente visitada. Es crucial para corregir la deriva acumulada en la estimación de la pose y crear un mapa globalmente consistente.

Si quieres conocer otros artículos parecidos a SLAM: Navegando y Mapeando lo Desconocido puedes visitar la categoría Radio.

Subir