Visão Geral

"Se você não consegue explicar algo de modo simples é porque não entendeu bem a coisa"

Albert Einstein

Sobre este tutorial

O Filtro de Kalman é um tópico fácil. Entretanto, muitos tutoriais não são fácieis de entender. A maioria deles requer uma base matemática extensa que torna difícil de entender. Além disso, a maioria dos tutoriais carecem de exemplos numéricos práticos.

Eu decidi escrever um tutorial que é baseado em exemplos numéricos e proporcionam explicações fáceis e intuitivas.

Algum dos exemplos são no uso dos radares, onde a Filtragem de Kalman é usada extensivamente (principalmente para o rastreamento de alvos), no entanto, os princípios que são apresentados aqui podem ser aplicados em qualquer campo onde a estimativa e predição são necessárias.

O tutorial inclue três partes:

  • Parte 1 – Uma introdução ao filtro de Kalman. Esta parte é baseada em oito exemplos numéricos. Não há nenhum requisito matemático prévio. Todo o conhecimento matemático necessário é fornecido no tutorial, e inclui termos como média, variância e desvio padrão. É isso. Você pode chamá-lo de "O Filtro de Kalman para Leigos", se preferir. Depois de ler a primeira parte, você será capaz de entender o conceito do Filtro de Kalman e desenvolver a "intuição do Filtro de Kalman". Você também será capaz de projetar um Filtro de Kalman unidimensional.
  • Parte 2 – Filtro de Kalman Multidimensional (Filtro de Kalman em notação matricial). É um pouco mais avançado. A maioria das implementações do Filtro de Kalman da vida real são multidimensionais e requer conhecimento básico de Álgebra Linear (apenas operações com matriz). A base matemática necessária também é fornecida no tutorial. A derivação matemática do Filtro de Kalman e a modelagem de sistemas dinâmicos também estão incluídos. Depois de ler a segunda parte, você será capaz de entender a matemática por trás do Filtro de Kalman. Você também será capaz de projetar um Filtro de Kalman multidimensional.
  • Parte 3 – Tópicos avançados. Esta parte é para leitores avançados e requer algum conhecimento matemático, principalmente na área de estatística. Atualmente, esta parte está em processo de planejamento. É suposto incluir Filtro de Kalman Estendido, Filtro de Kalman Unscented, implementação do Filtro de Kalman em diferentes aplicações da vida real e muito mais.

"Longo é o caminho através de regras e normas, curto e eficaz através do exemplo."

Lucius Seneca

Sobre o autor

Meu nome é Alex Becker. Eu sou de Israel. Sou engenheiro com mais de 15 anos de experiência na área de tecnologias wireless. Como parte do meu trabalho, tive que lidar com Filtros de Kalman, principalmente para aplicações de rastreamento.

Críticas construtivas são sempre bem vindas. Eu apreciaria muito seus comentários e sugestões. Por favor, me mande um e-mail.

Os exemplos neste tutorial não exemplificam quaisquer modos, metodologias, técnicas ou parâmetros empregados por qualquer sistema operacional conhecido pelo autor.
Alex Becker

Sobre o Filtro de Kalman

A maioria dos sistemas modernos são equipados com vários sensores que fornecem estimativas de variáveis ocultas (desconhecidas) com base em uma série de medições. Por exemplo, o receptor GPS fornece a estimativa de localização e velocidade, onde a localização e a velocidade são as variáveis ocultas e o tempo diferencial de chegada dos sinais do satélite são as medições.

Um dos maiores desafios do sistema de rastreamento e controle é fornecer uma estimativa exata e precisa das variáveis ocultas na presença de incerteza. No receptor GPS, a incerteza das medições depende de muitos fatores externos, como ruído térmico, efeitos atmosféricos, pequenas mudanças nas posições dos satélites, precisão do relógio do receptor e muitos mais.

O Filtro de Kalman é um dos algoritmos de estimativa mais importantes e comuns. O Filtro de Kalman produz estimativas de variáveis ocultas com base em medições imprecisas e incertas. Além disso, o Filtro de Kalman fornece uma predição do estado futuro do sistema, com base nas estimativas anteriores.

O nome do filtro é uma homenagem a Rudolf E. Kalman (19 de maio de 1930 - 2 de julho de 2016). Em 1960, Kalman publicou seu famoso artigo descrevendo uma solução recursiva para o problema de filtragem linear de dados discretos.

Hoje, o filtro de Kalman é usado em alvos de rastreamento (radar), sistemas de localização e navegação, sistemas de controle, computação gráfica e muito mais.

Rudolf E. Kálmán

O requisito de predição

Antes de adentrar na explicação do Filtro de Kalman, vamos primeiro entender a necessidade do algoritmo preditivo.

Como exemplo, vamos supor um algoritmo de rastreamento de um radar.

Tracking Radar

O radar envia um feixe cônico na direção do alvo. Suponha que o ciclo de rastreamento seja de 5 segundos. Assim, a cada 5 segundos, o radar revisita o alvo, enviando um feixe de rastreamento dedicado na direção desse alvo.

Depois de enviar o feixe, o radar estima a posição e a velocidade atual do alvo. Da mesma forma, o radar estima (ou prevê) a posição do alvo no próximo feixe de rastreamento.

A posição futura do alvo pode ser facilmente calculada usando as equações de movimento de Newton:

\[ x= x_{0} + v_{0} \Delta t+ \frac{1}{2}a \Delta t^{2} \]
Em que:
\( x \) é a posição do alvo
\( x_{0} \) é a posição inicial do alvo
\( v_{0} \) é a velocidade inicial do alvo
\( a \) é a aceleração do alvo
\( \Delta t \) é o intervalo de tempo (5 segundos em nosso exemplo)

Em três dimensões, as equações de movimento de Newton podem ser escritas como um sistema de equações:

\[ \left\{\begin{matrix} x= x_{0} + v_{x0} \Delta t+ \frac{1}{2}a_{x} \Delta t^{2}\\ y= y_{0} + v_{y0} \Delta t+ \frac{1}{2}a_{y} \Delta t^{2}\\ z= z_{0} + v_{z0} \Delta t+ \frac{1}{2}a_{z} \Delta t^{2} \end{matrix}\right. \]

Os parâmetros do alvo \( \left[ x, y, z, v_{x},v_{y},v_{z},a_{x},a_{y},a_{z} \right] \) são chamados de Estado do Sistema. O estado atual é a entrada para o algoritmo de predição e o próximo estado (os parâmetros do alvo no próximo intervalo de tempo) é a saída do algoritmo.

O conjunto de equações acima é chamado de Modelo Dinâmico (ou Modelo de Espaço de Estados). O Modelo Dinâmico descreve a relação entre entrada e saída.

Voltemos ao nosso exemplo. Como podemos ver, se o estado atual e o modelo dinâmico forem conhecidos, o próximo estado do alvo pode ser facilmente previsto.

Bem, não é. Em primeiro lugar, a medição do radar não é absoluta. Ela inclui um erro aleatório (ou incerteza). A magnitude do erro depende de muitos parâmetros, como calibração do radar, largura do feixe, magnitude do eco de retorno, etc. O erro incluído na medição é chamado de Ruído de Medição.

Além disso, o movimento do alvo não está estritamente alinhado às equações de movimento devido a fatores externos, como vento, turbulência do ar, manobras do piloto, etc. O erro do modelo dinâmico (ou incerteza) é chamado de Ruído do Processo.

Devido ao Ruído de Medição e ao Ruído do Processo, a posição estimada do alvo pode estar longe de sua posição real. Nesse caso, o radar enviará o feixe de rastreamento na direção errada e errará o alvo.

Para melhorar o desempenho do radar, é necessário um algoritmo de predição que leve em consideração a incerteza do processo e a incerteza da medição.

O algoritmo de predição mais amplamente utilizado é o Filtro de Kalman.

Próximo