SLAM es la estimación de la pose de un robot y el mapa del entorno simultáneamente. SLAM es difícil porque se necesita un mapa para la localización y se necesita una buena estimación de pose para el mapeo
- Localización : inferir la ubicación dado un mapa.
- Mapeo : inferir un mapa de ubicaciones dadas.
- SLAM : aprendizaje de un mapa y localización del robot simultáneamente.
El problema de SLAM es difícil porque es una especie de paradoja, es decir:
- Para construir un mapa, necesitamos ahora la posición.
- Para determinar nuestra posición, necesitamos un mapa.
Es como un problema del huevo de la gallina.
SLAM tiene múltiples partes y cada parte se puede ejecutar de muchas maneras diferentes:
- Detección de puntos de referencia
- Asociación de datos
- Estimación estatal
- Actualización de estado
- Actualización de hitos
SLAM paso a paso
- El proceso SLAM consta de los siguientes pasos:
- En el primer paso, utiliza el entorno para actualizar la posición del robot. Podemos usar Odometría pero puede ser erróneo, no podemos basarnos solo directamente en la odometría.
- Podemos usar escaneos láser del entorno para corregir la posición del robot. Pero no funcionará en algunos entornos como bajo el agua.
- Por lo tanto, la posición del robot se puede identificar mejor extrayendo características del entorno.
Filtro Kalman extendido
El filtro de Kalman extendido (EKF) es el núcleo del proceso SLAM. Es una estimación de procesos no lineales o relaciones de medida. Es responsable de actualizar dónde cree que está el robot en función de los puntos de referencia.
Datos de láser y odometría
Los datos del láser son la lectura obtenida del escaneo, mientras que el objetivo de los datos de la odometría es proporcionar una posición aproximada del robot. La parte difícil de los datos de la odometría y los datos del láser es acertar con el tiempo.
Puntos de referencia: Los puntos de referencia son las características que se pueden volver a observar fácilmente y distinguir del entorno. Estos se utilizan para localizar el robot. Los puntos de referencia deben estar fácilmente disponibles, distinguirse entre sí, deben ser abundantes en el entorno y estacionarios.
Extracción de puntos de referencia
Después de seleccionar y decidir sobre los puntos de referencia, necesitamos extraer los puntos de referencia de las entradas de los sensores del robot. Los dos puntos básicos de extracción utilizados son Spikes y RANSAC.
- Picos
Los puntos de referencia de Spike se basan en que el paisaje cambia mucho entre dos rayos láser. Esto significa que el algoritmo fallará en entornos fluidos.
- RANSAC (Muestreo aleatorio y consenso):
RANSAC encuentra los puntos de referencia muestreando aleatoriamente las lecturas del láser y luego usando una aproximación de mínimos cuadrados para encontrar la mejor línea de ajuste que atraviesa estas lecturas.
La idea principal detrás de esto es clasificar cada uno de los puntos como valores atípicos y valores internos mientras solo se usan los valores internos para encontrar el mejor ajuste para la línea y se descartan los valores atípicos.
Asociación de datos
La asociación de datos o la coincidencia de datos es la de hacer coincidir los puntos de referencia observados de diferentes escaneos (láser) entre sí. Hay algunos desafíos asociados con la Asociación de Datos,
- Es posible que el algoritmo no vuelva a observar puntos de referencia en cada fotograma.
- El algoritmo asocia incorrectamente un punto de referencia a un punto de referencia observado previamente.
Hay algunos enfoques para realizar la asociación de datos, discutiremos primero el algoritmo del vecino más cercano:
- Primero, cuando obtenga los datos del escaneo láser, use la extracción de puntos de referencia para extraer todos los puntos de referencia visibles.
- Después de eso, asociamos todos los puntos de referencia extraídos al punto de referencia más cercano que se puede observar >N veces.
- Ahora, ingresamos la lista de puntos de referencia extraídos y la lista de puntos de referencia detectados previamente que están en la base de datos, si el punto de referencia ya está en la base de datos, aumentamos su conteo en N, y si no están presentes, establecemos su conteo en 1.
Después del paso anterior, debemos realizar los siguientes pasos de actualización:
- Estimación del estado: en este paso, usamos los datos del odómetro para obtener la estimación del estado actual.
- Actualización de estado: en esta etapa, actualizamos nuestro nuevo estado estimado al volver a observar los puntos de referencia.
- Actualización de puntos de referencia: en este paso, agregamos nuevos puntos de referencia que se detectan en la etapa actual.
Aplicaciones de SLAM
- El problema SLAM es fundamental para lograr que los robots sean autónomos. Tiene una amplia variedad de aplicaciones en las que queremos representar el entorno con un mapa, como Interior, Submarino, Espacio exterior, etc.