Introducción al algoritmo MSCKF

Gracias a: Rábano de camote morado https://zhuanlan.zhihu.com/p/76341809

Documento: https://arxiv.org/abs/1712.00036
Código: https://github.com/KumarRobotics/msckf_vio   

( Muy bien, se recomienda leer la teoría primero ) Explicación general: http://www.xinliang-zhong.vip/msckf_notes/

 

1. ¿Qué es MSCKF?

El nombre completo de MSCKF es Filtro de Kalman de restricción de múltiples estados ( Filtro de Kalman bajo restricciones de múltiples estados ). Es un algoritmo VIO basado en filtros. Fue introducido por primera vez por Mourikis en 2007 en "Un filtro de Kalman de restricción de múltiples estados para la visión". -Navegación Inercial Asistida". proponen. MSCKF integra IMU e información visual bajo el marco EKF. En comparación con el algoritmo VO simple, MSCKF puede adaptarse a movimientos más intensos, pérdida de textura durante un cierto período de tiempo, etc., y tiene mayor robustez, en comparación con el VIO basado en optimización. Algoritmo (VINS, OKVIS), MSCKF tiene una precisión comparable y una velocidad más rápida, y es adecuado para ejecutarse en plataformas integradas . En los campos de robots, drones y AR/VR, MSCKF se usa ampliamente. Por ejemplo, Google Project Tango usa MSCKF para estimar la pose.

Ventajas de VIO sobre VO:

  1. Restauración de la escala : IMU puede proporcionar información de escala (acelerómetro) para resolver el problema de la imposibilidad de restaurar la escala del VO monocular.
  2. Lidiando con la rotación pura : En el caso de la rotación pura, la solución de la postura VO parecerá extraña. VIO puede usar el giroscopio (medidor de velocidad angular) de la IMU para estimar el movimiento de rotación pura.
  3. Para hacer frente a la pérdida a corto plazo de características de la imagen : VO no podrá funcionar cuando la imagen esté sobreexpuesta, la imagen sea demasiado oscura o la textura del entorno sea insuficiente. VIO puede usar integrales IMU para realizar estimaciones de movimiento cuando VO falla , y puede hacer frente a efectos visuales a corto plazo. Faltan funciones (cuanto más tiempo esté integrada la IMU, mayor será el error acumulado) y es más robusto que VO.
  4. Mayor precisión : VIO fusiona información de dos sensores y la precisión de la estimación de la pose es mayor.

 

2. Materiales de aprendizaje relacionados con MSCKF

El trabajo pionero de MSCKF

https://www-users.cs.umn.edu/~stergios/papers/ICRA07-MSCKF.pdf

Información relacionada con la teoría matemática.

http://mars.cs.umn.edu/tr/reports/Trawny05b.pdf

http://www.iri.upc.edu/people/jsola/JoanSola/objectes/notes/kinematics.pdf

Serie de artículos del profesor Li Mingyang, MSCKF2.0, FEJ

http://citeseerx.ist.psu.edu/viewdoc/download;jsessionid=188A46DC6DD79B40220CE2E9CCB42647?doi=10.1.1.261.1422&rep=rep1&type=pdf

Estimación del error de sincronización del reloj.

https://intra.ece.ucr.edu/~mourikis/papers/Li2014IJRR_timing.pdf

Análisis de Observabilidad, FEJ

https://intra.ece.ucr.edu/~mourikis/papers/Li2013IJRR.pdf

Tesis de maestría de Shelly (TUM CVG), ejecutando MSCKF en iPhone, los pasos de implementación son muy detallados

https://vision.in.tum.de/_media/spezial/bib/shelley14msc.pdf

Binocular MSCKF y artículos de respaldo de código abierto del laboratorio Vijay Kumar en github

https://github.com/KumarRobotics/msckf_vio

https://github.com/KumarRobotics/msckf_vio

 

3. Ideas centrales de MSCKF

El objetivo de MSCKF es resolver el problema de explosión de dimensionalidad de EKF-SLAM . El EKF-SLAM tradicional agrega puntos característicos al vector de estado y estima el estado de IMU juntos. Cuando el entorno es grande, habrá muchos puntos característicos y la dimensión del vector de estado se volverá muy grande. MSCKF no agrega puntos característicos al vector de estado, pero agrega las poses de la cámara (posición P y cuaternión de pose Q) en diferentes momentos al vector de estado. Los puntos característicos serán vistos por múltiples cámaras, de modo que en múltiples estados de cámara Restricciones geométricas (Restricción) se forman entre (Multiestado), y luego las restricciones geométricas se utilizan para construir un modelo de observación para actualizar el EKF. Dado que el número de poses de la cámara será mucho menor que el número de puntos característicos, la dimensión del vector de estado MSCKF se reduce considerablemente en comparación con EKF-SLAM. Los estados históricos de la cámara se eliminarán continuamente y solo un número fijo de poses de la cámara ( Deslizamiento) se mantendrá. Ventana), limitando así la cantidad de cálculo del backend de MSCKF.

3.1 Vector de estado IMU e INS

coordinar

MSCKF es esencialmente un EKF. Antes de presentar MSCKF, primero presentamos la estimación de EKF del estado de IMU en INS (Sistema de navegación inercial). El vector de estado de IMU en INS es

Insertar descripción de la imagen aquí

Los pasos EKF del INS son:

  • Predicción EKF: primero use la aceleración observada y la velocidad angular observada obtenidas por el sensor para estimar el estado. Obviamente, este paso hará que la incertidumbre / covarianza de la estimación sea cada vez mayor .
  • Actualización de EKF: luego utilice observaciones visuales para construir un modelo de observación, actualizar la media y la covarianza del vector de estado, corregir el error acumulativo en el proceso de predicción y reducir la incertidumbre.

 

3.2 Modelo de observación en MSCKF ( comprenda cuidadosamente su diferencia con la combinación suelta GPS/INS )

Para MSCKF, el paso de predicción de EKF es el mismo que el de INS, la diferencia es que la actualización de la observación de EKF requiere información visual para construir un modelo de observación para actualizar el estado predicho por la IMU. El GPS en INS puede proporcionar observaciones de posición directamente , mientras que la visión generalmente solo puede proporcionar restricciones en la relación de pose relativa entre múltiples cámaras. Entonces, ¿cómo construir el modelo de observación?

En visión, las restricciones suelen ser el error de reproyección de los puntos característicos de la cámara (el error entre un punto característico 3D en el espacio proyectado al plano de la cámara de acuerdo con la postura y posición de la cámara, y el punto característico observado real):

Esperamos utilizar esta ecuación de restricción del error de reproyección como modelo de observación, pero la premisa es que es necesario conocer las coordenadas 3D de los puntos característicos, y las coordenadas 3D de los puntos característicos se desconocen en las aplicaciones reales.

  • El enfoque de EKF-SLAM es agregar puntos característicos al vector de estado para su estimación, pero su vector de estado se volverá muy grande a medida que aumenta el número de puntos característicos.
  • El enfoque de MSCKF consiste en triangular y calcular las coordenadas 3D de puntos característicos basándose en observaciones y posturas históricas de la cámara. Esto plantea otra pregunta: ¿Cómo garantizar la precisión de la triangulación? Si el error de triangulación es demasiado grande, el modelo de observación será inexacto y, en última instancia, la precisión del VIO será demasiado pobre. El método MSCKF consiste en realizar una triangulación cuando se pierde el seguimiento de puntos característicos . La pérdida de puntos característicos indica que el número de observaciones de esta característica ya no seguirá aumentando. En este momento, todas las observaciones históricas se utilizan para la triangulación. Por lo tanto, el momento de la actualización de la observación en MSCKF es el seguimiento de los puntos característicos .

4. Pasos del algoritmo MSCKF

Los pasos del algoritmo MSCKF son los siguientes:

  1. Integración de IMU : Primero use la aceleración y la velocidad angular de IMU para predecir el estado de IMU en el vector de estado y, en general, procese datos de observación de IMU de múltiples cuadros.
  2. Expansión del estado de la cámara : después de que aparece cada imagen, el estado actual de la cámara se calcula y se agrega al vector de estado, y la covarianza del estado se expande al mismo tiempo.
  3. Triangulación de puntos característicos : los puntos característicos 3D se estiman en función de la triangulación histórica del estado de la cámara.
  4. Actualización de funciones : reutilice las restricciones de los puntos de características en múltiples estados históricos de la cámara para actualizar el vector de estado. Nota: No se trata solo de corregir el estado histórico de la cámara, porque existe una relación directa entre el estado histórico de la cámara y el estado de la IMU (parámetros externos de la cámara y la IMU) , por lo que el estado de la IMU también se corregirá al mismo tiempo. .
  5. Eliminación del estado histórico de la cámara : si el número de estados de la cámara excede N, se eliminarán el estado de la cámara más antiguo o más reciente y la covarianza correspondiente.

El proceso de propagación y actualización del estado de MSCKF se muestra en la siguiente figura:

En la figura, X representa el vector de estado, P representa la matriz de covarianza correspondiente y el rojo representa la cantidad de cambio en el paso actual .

  1. Primero inicialice el vector de estado y la covarianza.
  2. Luego realice la integración IMU y tanto el vector de estado como la covarianza cambian.
  3. Luego agregue el nuevo estado de la cámara al vector de estado y expanda la matriz de covarianza (la covarianza propia de la nueva cámara y la covarianza de)
  4. Cuando se actualiza una observación, todos los estados y covarianzas cambian. ( Nota: debido a que solo hay un estado de cámara por primera vez, no se pueden formar restricciones de reproyección, por lo que la primera actualización de observación no hará nada)
  5. Cuando el número de estados de la cámara excede el límite, se eliminan el estado de la cámara más histórico y su término de covarianza correspondiente.
  6. Repita 2-5.

 

 

Gracias a: Rábano de camote morado https://zhuanlan.zhihu.com/p/76341809

Documento: https://arxiv.org/abs/1712.00036
Código: https://github.com/KumarRobotics/msckf_vio   

( Muy bien, se recomienda leer la teoría primero ) Explicación general: http://www.xinliang-zhong.vip/msckf_notes/

 

1. ¿Qué es MSCKF?

El nombre completo de MSCKF es Filtro de Kalman de restricción de múltiples estados ( Filtro de Kalman bajo restricciones de múltiples estados ). Es un algoritmo VIO basado en filtros. Fue introducido por primera vez por Mourikis en 2007 en "Un filtro de Kalman de restricción de múltiples estados para la visión". -Navegación Inercial Asistida". proponen. MSCKF integra IMU e información visual bajo el marco EKF. En comparación con el algoritmo VO simple, MSCKF puede adaptarse a movimientos más intensos, pérdida de textura durante un cierto período de tiempo, etc., y tiene mayor robustez, en comparación con el VIO basado en optimización. Algoritmo (VINS, OKVIS), MSCKF tiene una precisión comparable y una velocidad más rápida, y es adecuado para ejecutarse en plataformas integradas . En los campos de robots, drones y AR/VR, MSCKF se usa ampliamente. Por ejemplo, Google Project Tango usa MSCKF para estimar la pose.

Ventajas de VIO sobre VO:

  1. Restauración de la escala : IMU puede proporcionar información de escala (acelerómetro) para resolver el problema de la imposibilidad de restaurar la escala del VO monocular.
  2. Lidiando con la rotación pura : En el caso de la rotación pura, la solución de la postura VO parecerá extraña. VIO puede usar el giroscopio (medidor de velocidad angular) de la IMU para estimar el movimiento de rotación pura.
  3. Para hacer frente a la pérdida a corto plazo de características de la imagen : VO no podrá funcionar cuando la imagen esté sobreexpuesta, la imagen sea demasiado oscura o la textura del entorno sea insuficiente. VIO puede usar integrales IMU para realizar estimaciones de movimiento cuando VO falla , y puede hacer frente a efectos visuales a corto plazo. Faltan funciones (cuanto más tiempo esté integrada la IMU, mayor será el error acumulado) y es más robusto que VO.
  4. Mayor precisión : VIO fusiona información de dos sensores y la precisión de la estimación de la pose es mayor.

 

2. Materiales de aprendizaje relacionados con MSCKF

El trabajo pionero de MSCKF

https://www-users.cs.umn.edu/~stergios/papers/ICRA07-MSCKF.pdf

Información relacionada con la teoría matemática.

http://mars.cs.umn.edu/tr/reports/Trawny05b.pdf

http://www.iri.upc.edu/people/jsola/JoanSola/objectes/notes/kinematics.pdf

Serie de artículos del profesor Li Mingyang, MSCKF2.0, FEJ

http://citeseerx.ist.psu.edu/viewdoc/download;jsessionid=188A46DC6DD79B40220CE2E9CCB42647?doi=10.1.1.261.1422&rep=rep1&type=pdf

Estimación del error de sincronización del reloj.

https://intra.ece.ucr.edu/~mourikis/papers/Li2014IJRR_timing.pdf

Análisis de Observabilidad, FEJ

https://intra.ece.ucr.edu/~mourikis/papers/Li2013IJRR.pdf

Tesis de maestría de Shelly (TUM CVG), ejecutando MSCKF en iPhone, los pasos de implementación son muy detallados

https://vision.in.tum.de/_media/spezial/bib/shelley14msc.pdf

Binocular MSCKF y artículos de respaldo de código abierto del laboratorio Vijay Kumar en github

https://github.com/KumarRobotics/msckf_vio

https://github.com/KumarRobotics/msckf_vio

 

3. Ideas centrales de MSCKF

El objetivo de MSCKF es resolver el problema de explosión de dimensionalidad de EKF-SLAM . El EKF-SLAM tradicional agrega puntos característicos al vector de estado y estima el estado de IMU juntos. Cuando el entorno es grande, habrá muchos puntos característicos y la dimensión del vector de estado se volverá muy grande. MSCKF no agrega puntos característicos al vector de estado, pero agrega las poses de la cámara (posición P y cuaternión de pose Q) en diferentes momentos al vector de estado. Los puntos característicos serán vistos por múltiples cámaras, de modo que en múltiples estados de cámara Restricciones geométricas (Restricción) se forman entre (Multiestado), y luego las restricciones geométricas se utilizan para construir un modelo de observación para actualizar el EKF. Dado que el número de poses de la cámara será mucho menor que el número de puntos característicos, la dimensión del vector de estado MSCKF se reduce considerablemente en comparación con EKF-SLAM. Los estados históricos de la cámara se eliminarán continuamente y solo un número fijo de poses de la cámara ( Deslizamiento) se mantendrá. Ventana), limitando así la cantidad de cálculo del backend de MSCKF.

3.1 Vector de estado IMU e INS

coordinar

MSCKF es esencialmente un EKF. Antes de presentar MSCKF, primero presentamos la estimación de EKF del estado de IMU en INS (Sistema de navegación inercial). El vector de estado de IMU en INS es

Supongo que te gusta

Origin blog.csdn.net/xiaojinger_123/article/details/127850925
Recomendado
Clasificación