¿Cuál es la mejor manera de fusionar las mediciones de la información de IMU, LIDAR y codificador en algún filtro bayesiano recursivo?

8

Estoy haciendo SLAM con un robot de tracción diferencial de cuatro ruedas (2 ruedas) que conduce por algún pasillo. El pasillo no es plano en todas partes. Y el robot gira girando en su lugar, luego viaja en la dirección resultante. El algoritmo SLAM no necesita ejecutarse en línea.

El robot toma medidas desde una correa de medición IMU / giroscopio (ax,ay,az,wx,wy,wz), donde se axrefiere a la aceleración en la dirección xy wxmide la aceleración angular alrededor del eje x. El LIDAR escanea el pasillo con un arco de 270 grados y mide rangos y ángulos. Sin embargo, hasta donde yo sé, el pasillo no tiene características discernibles, excepto cuando hace esquina

Necesito encontrar la mejor manera de fusionar la acción propuesta medida por el codificador con datos IMU y LIDAR. Para mí tiene sentido que pueda fusionar el guiñada de la IMU con los datos del codificador para tener una mejor idea del rumbo, pero ¿cómo debo incorporar los datos LIDAR?

En esencia, ¿cuál es el modelo de medición apropiado y cómo debo incorporar el ruido en el modelo de movimiento ? ¿Además de agregar un poco de ruido gaussiano a algunos (0,σ)?

Apéndice

Esto es algo ortogonal a la pregunta pero igual de confuso para mí. Actualmente estoy usando un filtro de partículas para hacer SLAM, y estoy un poco confundido acerca de si representar la incertidumbre en la aceleración angular en las propias partículas. Veo dos opciones:

  1. Un filtro de navegación separado que usa EKF (o algo realmente) para encontrar primero un vector de matriz de aceleración angular de "mejor estimación", luego use esta matriz como verdad absoluta para el filtro de partículas. De modo que cualquier deriva en las partículas no se deba a la incertidumbre en la aceleración angular.

  2. Incorporar la incertidumbre en la deriva de partículas ellos mismos. Esta opción parece más sensata, pero no estoy seguro de cuál es una forma de principio para hacerlo.

chibro2
fuente
Si puedo hacer una corrección técnica, el giroscopio en una IMU está midiendo la velocidad angular . El acelerómetro mide la aceleración lineal .
Sean

Respuestas:

2
  • Como tiene un sensor 2D que no puede rotar de forma controlada, solo puede esperar realizar SLAM en un plano 2D.

  • Su mejor opción es usar la IMU para la estimación de actitud (solo balanceo y cabeceo, ya que no tiene una brújula) y corregir cada escaneo láser 2D ligeramente girado en consecuencia. Si su IMU ya no le proporciona una estimación de actitud, calcularía las estimaciones de actitud utilizando un filtro complementario no lineal, ya que solo necesitan sintonizar una sola constante.

  • Aunque es teóricamente posible usar filtros de partículas para SLAM con escaneos láser (ver gmapping), el estado actual de la técnica es SLAM basado en gráficos, es decir, la optimización de mínimos cuadrados del gráfico SLAM, o en su caso, la optimización del gráfico de pose. Eche un vistazo a karto en ROS como una implementación ejemplar de código abierto.

sebsch
fuente