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 ax
refiere a la aceleración en la dirección xy wx
mide 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:
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.
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.