Por que preciso de um filtro Kalman?

61

Estou projetando um veículo aéreo não tripulado, que incluirá vários tipos de sensores:

  • Acelerômetro de 3 eixos
  • Giroscópio de 3 eixos
  • Magnetômetro de 3 eixos
  • sensor de horizonte
  • GPS
  • ultra-som voltado para baixo.

Um amigo meu me disse que precisarei colocar todos esses dados do sensor através de um filtro Kalman, mas não entendo o porquê. Por que não consigo colocar isso direto no meu micro controlador? Como o filtro Kalman me ajuda sobre meus dados de sensor?

Rocketmagnet
fonte

Respostas:

52

Você não conectar todos esses sensores diretamente a um microcontrolador. O filtro Kalman não é um filtro eletrônico como um filtro LRC que fica entre os sensores e o microcontrolador. O filtro Kalman é um filtro matemático implementado como rotina de software dentro do microcontrolador.

Os sensores que você listou fornecem ao microcontrolador 14 ou 15 números brutos cada vez que são atualizados.

Quando piloto um pequeno avião, o que realmente quero saber é sua posição e orientação e a que distância está do solo - 7 números.

Eu preciso de algo que me dê esses 7 números.

Idealmente, quero uma nova estimativa desses 7 números todas as vezes através do meu loop de controle. As atualizações de uma vez por segundo que recebo do meu GPS barato não são rápidas o suficiente. (As pessoas em que frequência meu loop de atualização de saída com sentido e cálculo de saída com quadricóptero precisam permanecer estáveis? Estão me dizendo que mesmo 50 vezes por segundo não será rápido o suficiente).

De alguma forma, vou ter que reduzir os 14 ou 15 números brutos que tenho, alguns dos quais apenas ocasionalmente atualizados, em (estimativas) dos 7 números que eu realmente quero.

Como Josh apontou, existem muitas maneiras ad-hoc de converter esses números brutos em dados utilizáveis. Qualquer rotina que converta 15 números em 7 números pode ser descrita como um "filtro".

Você não precisa usar o filtro ideal. Mas você usará algum tipo de filtro - ou seja, algo que converta dos 15 números de dados brutos que você possui (estimativas) dos 7 números que você realmente deseja.

O filtro Kalman é, em algumas condições, o filtro "ideal", a melhor maneira de converter esses dados brutos nos 7 números que eu realmente quero.

Pode levar menos trabalho da sua parte usar um filtro Kalman que outra pessoa já tenha escrito e depurado, do que escrever outro filtro a partir do zero, depurá-lo e continuar adicionando coisas até que seja utilizável - um filtro que inevitavelmente se mostra abaixo do ideal.

David Cary
fonte
28

A resposta curta e sarcástica é "tente sem uma". A melhor resposta é um exemplo: quando seus acelerômetros dizem que você está a 10 graus da vertical, mas seu giroscópio diz que você não girou para longe da vertical, e seus magnetômetros estão relatando um deslocamento de 30 graus do norte, mas seu giroscópio 32 graus. Qual é o rumo e a inclinação atuais?

Você provavelmente encontrará um milhão de maneiras ad-hoc que parecem funcionar em um exemplo, mas falham em outros. O Filtro Kalman (Filtro Kalman Estendido (EKF) para esta tarefa!) Fornecerá a você uma maneira rigorosa de responder a essas perguntas. A qualidade das respostas ainda está sendo pesquisada - embora o histórico do EKF seja muito bom -, mas pelo menos todos concordarão quais são as respostas .

Josh Vander Hook
fonte
1
Exatamente a resposta que eu estava procurando. "O que aconteceria se eu não usasse o Kalman Filter". Obrigado!
precisa
22

Os dados do sensor estão com ruído. Se você não filtrá-lo, seu veículo agiria pelo menos de maneira irregular se fosse estável o suficiente para voar. A filtragem, por meio de um filtro Kalman ou de outra forma, pode reduzir o ruído quando feita corretamente, melhorando a estabilidade.

Um filtro Kalman é um filtro particularmente poderoso. É necessário um modelo do sistema e modelos de ruído para o sistema e seus sensores. Em seguida, estima o estado do veículo com base em uma estimativa de estado fornecida e nos controles aplicados a qualquer momento. Esse estado estimado será mais preciso do que o relatado pelos sensores.

DaemonMaker
fonte
8

Você também pode usar filtros de partículas. Para a introdução básica aos Filtros de Partículas, você pode dar uma olhada nos vídeos do Professor Thrun em Programming a Robotic Car.

http://www.youtube.com/watch?v=H0G1yslM5rc

http://www.youtube.com/watch?v=QgOUu2sUDzg

Os filtros de partículas são mais robustos e têm uma probabilidade muito menor de erro de fechamento do loop, o que geralmente ocorre durante a implementação de um EKF.

Os vídeos descrevem o funcionamento de um filtro de partículas.

Naresh
fonte
Geralmente, as respostas que contêm não mais que um link não são as preferidas. Se você pode escrever um parágrafo ou dois sobre a essência do vídeo, que seria bom ..
Manishearth
fale por você mesmo. Vejo pouco ganho ao atualizar as informações em outro link. O link pode conter informações de que eu não estava ciente e alguém não precisa digitá-lo novamente para me informar. Eu posso clicar e ler com muita facilidade, obrigado.
Spiked3
8

Um filtro Kalman é um algoritmo comumente usado em UAVs para fundir várias medições de sensores para fornecer uma estimativa "ideal" da posição e / ou orientação do UAV. Por exemplo, um filtro Kalman pode fundir medições de acelerômetro, giroscópio e magnetômetro com uma estimativa de velocidade para estimar a guinada, inclinação e rotação do UAV.

Para obter mais informações sobre os sensores e algoritmos usados ​​na estimativa do estado do UAV, tente o artigo autônomo Fundamentos do voo de pequenas aeronaves não tripuladas .

O artigo também vincula o código Matlab que acompanha a implementação dos algoritmos de estimativa de estado do UAV do Kalman Filter descritos.

user486
fonte