Qual é a melhor maneira de fundir medições de informações de IMU, LIDAR e codificador em algum filtro bayesiano recursivo?

8

Estou fazendo SLAM com um robô de tração diferencial de quatro rodas (tração nas duas rodas) dirigindo por algum corredor. O corredor não é plano em todos os lugares. E o robô gira girando no lugar, depois viajando na direção resultante. O algoritmo SLAM não precisa ser executado online.

O robô faz medições a partir de uma medição IMU / giroscópio (ax,ay,az,wx,wy,wz), onde axse refere à aceleração na direção x e wxmede a aceleração angular em torno do eixo x. O LIDAR percorre o corredor com um arco de 270 graus e mede faixas e ângulos. No entanto, até onde eu sei, o corredor não possui características discerníveis, exceto quando

Preciso encontrar a melhor maneira de fundir a ação proposta, medida pelo codificador, com dados IMU e LIDAR. Faz sentido para mim que eu possa fundir a guinada do IMU com os dados do codificador para ter uma melhor noção do rumo, mas como devo incorporar os dados do LIDAR?

Em essência, qual é o modelo de medição apropriado e como devo incorporar o ruído no modelo de movimento ? Além de adicionar algum ruído gaussiano em alguns (0,σ)?

Termo aditivo

Isso é um tanto ortogonal à pergunta, mas igualmente confuso para mim. Atualmente, estou usando um filtro de partículas para fazer SLAM, e estou um pouco confuso sobre a possibilidade de representar incerteza na aceleração angular nas próprias partículas. Eu vejo duas opções:

  1. Um filtro de navegação separado usando EKF (ou qualquer coisa realmente) para encontrar um vetor de "melhor estimativa" da matriz de aceleração angular primeiro, depois use essa matriz como verdade absoluta para o filtro de partículas. De modo que qualquer deriva nas partículas não provém da incerteza na aceleração angular.

  2. Incorporar a incerteza no desvio de partículas. Essa opção parece mais sensata, mas não sei ao certo qual é a maneira correta de fazer isso.

chibro2
fonte
Se eu puder fazer uma correção técnica, o giroscópio em uma IMU está medindo a taxa angular . O acelerômetro mede a aceleração linear .
21714 Sean

Respostas:

2
  • Como você possui um sensor 2D que não pode ser rotacionado de maneira controlada, você só pode executar o SLAM em um plano 2D.

  • Sua melhor aposta é usar o IMU para estimativa de atitude (somente rotação e inclinação, já que você não tem bússola) e corrigir cada digitalização a laser 2D levemente girada de acordo. Se a sua IMU ainda não fornecer uma estimativa de atitude, eu calcularia as estimativas de atitude usando um filtro complementar não linear, pois elas precisam apenas do ajuste de uma única constante.

  • Embora seja teoricamente possível usar o Particle Filters for SLAM com digitalizações a laser (consulte gmapping), o estado da arte atual é o SLAM baseado em gráficos, ou seja, otimização de mínimos quadrados do gráfico SLAM ou, no seu caso, otimização de gráficos de pose. Dê uma olhada no karto no ROS como uma implementação de código aberto exemplar.

sebsch
fonte