¿Cómo manejan los algoritmos SLAM un entorno cambiante?

13

Estoy haciendo algunas bases para un proyecto, y tengo una pregunta sobre el estado actual de las técnicas SLAM.

Cuando un dispositivo equipado con SLAM detecta un objeto, la posición de ese objeto se almacena. Si observa la nube de puntos que genera el dispositivo, verá puntos para este objeto y los modelos generados a partir de él incluirán aquí la geometría.

Si un objeto se coloca en un espacio previamente vacío, se detecta y se agregan puntos. Los modelos posteriores presentarán geometría que describe este nuevo objeto.

¿Cómo reacciona el dispositivo si se elimina ese objeto? Hasta donde he visto, los sistemas SLAM tenderán a dejar los puntos en su lugar, dando como resultado una geometría "fantasma". Hay algoritmos que ignorarán los puntos solitarios causados ​​por contactos transitorios, pero los objetos que permanecieron lo suficiente como para construir un modelo sólido permanecerán en la memoria del dispositivo. ¿Hay algún sistema que sea capaz de detectar que el espacio ocupado anteriormente ahora está vacío?

anaximandro
fuente
Esta pregunta no tiene mucho que ver con el aprendizaje automático.
Josh Vander Hook
Talvez no; No estaba 100% seguro de qué etiquetas encajarían. La aplicación que tengo en mente parece encajar, pero quizás sin ese contexto es menos aplicable ...
anaximander

Respuestas:

5

Eso depende mucho. Dado que SLAM es un problema (o al menos una técnica), no una solución, no existe un algoritmo SLAM definitivo. Semánticamente, debe decidir qué va en un "mapa" del entorno, y eso determina cómo su algoritmo debe manejar las señales transitorias (también conocidas como en movimiento). Pero eso es una digresión.

Mapas permanentes:

Los mapas permanentes deben contener suficiente información para ubicarse con respecto a la geometría conocida. Usado típicamente en edificios. Típicamente legible por humanos. Ver el trabajo de Willow-Garage. o cualquier cosa de Thrun en su famoso libro de texto. Si pierde este mapa, debe volver a construirlo con el tiempo.

  1. Retirar objetos. Sí, el objeto aparecerá en un mapa estático por un tiempo. Si no se toman medidas para eliminar objetos detectados previamente, entonces persistirá. Una representación típica basada en una cuadrícula 2D utilizará cada celda de la cuadrícula para representar la probabilidad de un objeto, por lo que con el tiempo el objeto se "desvanecerá".

  2. Añadiendo objetos. Lo mismo que arriba.

Mapas locales:

En realidad, SLAM generalmente se usa para localizar un robot a medida que se mueve, y el mapa no se mantiene permanentemente (o, se mantiene permanentemente, pero solo se usan las características Y más cercanas). Los mapas locales son lo que el robot necesita saber para determinar cómo se movió en los últimos X minutos, donde X depende de la aplicación. Si pierde el mapa, todavía puede volar bien utilizando cualquier característica que esté a la vista en este momento.

  1. Los métodos de lote, como el ajuste de paquete que usa características visuales, es una técnica muy común en esta dirección. Las características pueden conservarse con el tiempo e incluso revisarse, pero una característica en movimiento es solo una característica poco confiable, y se ignorará al intentar averiguar dónde está el robot.

  2. Visual SLAM es exactamente esto. Es un estimador delta-P (cambio de pose), no un algoritmo de localización basado en mapas.

  3. En resumen, mientras la mayoría de las cosas no se muevan actualmente , no importa si quita un objeto cuando el robot no lo "mira".

Ejemplo

Entonces haz esto. Cuando lea un artículo de SLAM, decida lo siguiente:

  1. ¿Realmente están construyendo un mapa?

  2. ¿Están manteniendo una lista de características y ubicaciones?

  3. Si es así, ¿qué "características" van en el mapa? ¿Líneas, puntos, características visuales?

  4. ¿Es probable que estas características se muevan?

  5. Si es así, ¿cómo pueden manejar eso?

  6. Finalmente, el ruido del sensor a menudo "se ve" como características móviles. ¿Cómo manejan el ruido del sensor? Porque esto a menudo determinará qué sucede con las características móviles.

Obtendrá una respuesta diferente para cada artículo / autor / libro / aplicación. En resumen, generalmente se omiten, ya que no ayudan al robot a localizar mucho, y se pueden evitar simplemente teniendo unos pocos planificadores de rutas de bajo nivel que solo usen información local.

Buena suerte, el slam es un gran tema.

Josh Vander Hook
fuente
¡Gracias! ¿Conoces alguna técnica que rastree dónde se "adquirieron" y "perdieron" los objetos? Estoy viendo aplicaciones de un subconjunto de algoritmos de tipo SLAM y un área de interés es la identificación de áreas de "transición" como puertas y esquinas ocluidas de donde pueden aparecer objetos. Esta aplicación convierte la métrica de probabilidad de desvanecimiento habitual en su cabeza: en lugar de hacer que los objetos se "desvanezcan" cuando están fuera de la vista, las áreas no observadas incrementan lentamente su valor para indicar que no sabemos qué hay aquí porque no hemos mirado recientemente, por lo que debe ser cauteloso cuando se mude a este espacio.
anaximandro
Mucho más difícil. La única forma de hacer esto correctamente es identificar objetos de manera única. Como, poner un código de barras en ellos. De lo contrario, el objeto A puede haberse movido a la ubicación B, o tal vez A y B intercambiados, etc. Lea sobre el mapeo semántico. Necesita un algoritmo que pueda "reconocer" que las cosas en movimiento son en realidad "puertas" que deberían estar unidas a las "paredes", pero solo cuando estoy "dentro", pero ¿qué significa "dentro" para un robot de todos modos? Creo que deberías leer más e informar.
Josh Vander Hook
Sí, la idea aquí es evitar el problema de la semántica simplemente resaltando "esta es un área donde sigo viendo cosas que antes no estaban allí, o dejando de ver cosas que estaban allí". Lo más probable es que esta área sea algún tipo de transición: puerta, caja, ventana, esquina ocluida. ¿Cuál de los que estamos tratando es menos importante? esto es solo para evitar colisiones, por lo que queremos evitar todas estas áreas. Del mismo modo, no necesitamos saber qué objeto es cuál; solo que hay un cambio significativo en la cantidad total de espacio ocupado por Stuff.
anaximander
Revisión. Literatura. Tal problema surge de A) Cosas en movimiento. B) robot en movimiento. C) El robot se pierde. D) mapas incorrectos. Cada una de esas 4 cosas tiene 4 soluciones correctas diferentes. Si no maneja los 4, construirá mapas completamente incorrectos. Es por eso que SLAM no está resuelto y sigue siendo difícil. Lea y regrese con preguntas específicas relacionadas con lo que ha aprendido.
Josh Vander Hook
1
Eso es lo que estoy haciendo; ¡Cuanto más leo, más se alarga mi lista de cosas para leer! Esta fue la primera de las muchas preguntas que ha planteado mi lectura. Disculpas por extender un poco la pregunta en los comentarios; No he recibido mucha respuesta, y SLAM es un tema tan grande ... parecía saber de qué estaba hablando, así que esperaba poder obtener algunos consejos. Tengo documentos de mapeo semántico en mi lista, pero hay algunos otros que necesito leer como base para eso ... De todos modos, supongo que es ahora la lectura.
anaximander