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?
Respuestas:
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.
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á".
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.
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.
Visual SLAM es exactamente esto. Es un estimador delta-P (cambio de pose), no un algoritmo de localización basado en mapas.
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:
¿Realmente están construyendo un mapa?
¿Están manteniendo una lista de características y ubicaciones?
Si es así, ¿qué "características" van en el mapa? ¿Líneas, puntos, características visuales?
¿Es probable que estas características se muevan?
Si es así, ¿cómo pueden manejar eso?
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.
fuente