Obtendo uma trajetória do acelerômetro e giroscópio (IMU)

Estou bem ciente da existência deessa questão mas o meu será diferente. Sei também que pode haver erros significativos nessa abordagem, mas quero entender a configuração também teoricamente.

Tenho algumas perguntas básicas que acho difíceis de responder claramente. Há muita informação sobre acelerômetros e giroscópios, mas ainda não encontrei uma explicação "dos primeiros princípios" de algumas propriedades básicas.

Então, eu tenho um sensor de placa que contém um acelerômetro e giroscópio. Há também um magnetômetro que eu pulo por enquanto.

O acelerômetro fornece informações a cada momento t sobre o vetor de aceleração temporário a = (ax, ay, az) em m / s ^ 2, de acordo com o sistema de coordenadas fixo do sensor.O giroscópio fornece um vetor 3D em graus / s, que indica a velocidade de rotação temporária dos três eixos (Ox, Oy e Oz). A partir desta informação, pode-se obter uma matriz de rotação que corresponde a uma rotação infinitesimal do sistema de coordenadas (de acordo com o momento anterior).Aqui é uma explicação de como obter um quaternion, que representa R.

Portanto, sabemos que o movimento infinitesimal pode ser calculado considerando que a aceleração é a segunda derivada da posição.

Imagine que seu sensor está conectado à sua mão ou perna. No primeiro momento, podemos considerar seu ponto no espaço 3D como (0,0,0) e o sistema de coordenadas inicial também anexado nesse ponto físico. Então, pela primeira vez, teremos

r(1) = 0,5a(0) dt ^ 2

Onder é o vetor de movimento infinitesimal,a(0) é o vetor de aceleração.

Em cada uma das etapas a seguir, usaremos os cálculos

r(t + 1) = 0,5a(t) dt ^ 2 +v(t) dt +rt)

Ondev(t) é o vetor de velocidade que será estimado de alguma forma, por exemplo, como (r(t) -r(t-1)) / dt.

Além disso, após cada movimento infinitesimal, teremos que levar em consideração os dados do giroscópio. Vamos usar a matriz de rotação para girar o vetorr(t + 1).

Dessa forma, provavelmente com tremendo erro, terei uma trajetória de acordo com o sistema de coordenadas inicial.

Minhas consultas são:

Estou principalmente correto com este algoritmo? Se não, onde estou errado?Eu apreciaria muito alguns recursos com um exemplo de trabalho em que os primeiros princípios não são ignorados.Como devo proceder com o uso do filtro de Kalman para obter uma melhor trajetória? De que maneira exatamente passo todos os dados da IMU (acelerômetro, giroscópio e magnetômetro) para o filtro Kalman?

questionAnswers(1)

yourAnswerToTheQuestion