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 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