Guia básico do Filtro de Kalman » Histórico » Versão 1
Lucas Germano, 18/02/2019 13:57 h
1 | 1 | Lucas Germano | # Guia básico do Filtro de Kalman |
---|---|---|---|
2 | |||
3 | O tutorial que será ensinado aqui tem como base essa playlist do youtube: https://www.youtube.com/watch?v=CaCcOwJPytQ&list=PLX2gX-ftPVXU3oUFNATxGXY90AULiqnWT |
||
4 | |||
5 | O filtro funciona da seguinte maneira: |
||
6 | |||
7 | ![](diagrama.png) |
||
8 | |||
9 | Primeiramente faremos uma análise mais simples, depois partiremos para uma análise mais geral, onde haverá cálculos mais complicados. |
||
10 | |||
11 | O *Kalman Gain* é calculado por: |
||
12 | |||
13 | ![](kalman_gain.png) |
||
14 | |||
15 | Ele é calculado dessa forma para representarmos as seguintes características: |
||
16 | |||
17 | ![](fig1.png) |
||
18 | |||
19 | Do *Kalman Gain* tira-se o resultado para as estimativas: |
||
20 | |||
21 | ![](eq1.png) |
||
22 | |||
23 | Temos ainda que calcular o erro na estimativa atual, baseando-se no erro das estimativas anteriores, isto pode ser feito desta forma: |
||
24 | |||
25 | ![](eq2.png) |
||
26 | |||
27 | Então, em toda iteração nesta abordagem mais simples que fizemos, temos que repetir essas 3 equações (lembrando que o erro na medição é considerado constante): |
||
28 | |||
29 | ![](iteracao.png) |
||
30 | |||
31 | Neste vídeo é feito um exemplo com todas essas equações vistas até agora: https://www.youtube.com/watch?v=PZrFFg5_Sd0 |
||
32 | |||
33 | Agora vamos partir para o modelo de Kalman multi-dimensional, ou seja, onde queremos determinar e prever mais de uma variável. Para uma visão mais geral do modelo, que nem foi feito no começo, observe o seguinte fluxograma do kalman: |
||
34 | |||
35 | ![](picture489-1.png) |
||
36 | |||
37 | A matrix de estado, que é a X, pode ter a quantidade de atributos que desejarmos (geralmente posição e velocidade), como por exemplo: |
||
38 | |||
39 | ![](picture489-2.png) |
||
40 | |||
41 | As matrizes A e B vistos na determinação dos futuros estados são mudadas conforme o sistema, por exemplo, se estivermos querendo prever a altura e a velocidade de um objeto em queda livre, poderíamos atribuir os seguinte valores: |
||
42 | |||
43 | ![](new.png) |
||
44 | |||
45 | A partir disso trabalharíamos com a equação para gerar o próximo estado, que podemos relembrá-la aqui: |
||
46 | |||
47 | ![](picture489-4.png) |
||
48 | |||
49 | Daí, é fácil ver que chegamos nas equações que estudamos em física I, do MRUV: |
||
50 | |||
51 | ![](picture489-5.png) |
||
52 | |||
53 | Um exemplo feito passo-a-passo, com valores reais, pode ser visto aqui: https://www.youtube.com/watch?v=mRf-cL2mjo4&t=15s |
||
54 | |||
55 | Da mesma forma, podemos ver um exemplo aplicado em 2D, perceba que temos que mudar as matrizes A e B, principalmente porque aumentamos o número de variáveis: |
||
56 | |||
57 | ![](picture489-7.png) |
||
58 | |||
59 | Pode-se ver facilmente a analogia entre este exemplo acima e o anterior. Vemos novamente as equações de posição e velocidade do MRUV. Não irei escrever aqui sobre o exemplo em 3D, mas ele segue os mesmos passos do anterior, fica aqui o link para quem quiser conferir: https://www.youtube.com/watch?v=FFvQtplnnWc |
||
60 | |||
61 | Agora vamos passar para a parte das matrizes de covariância. |
||
62 | |||
63 | Temos essas novas equações que irão definir as matrizes de covariância e o *kalman gain*: |
||
64 | |||
65 | ![](picture30-1.png) |
||
66 | |||
67 | Uma explicação mais completa do que representa cada variável pode ser vista aqui: |
||
68 | |||
69 | ![](picture30-2.png) |
||
70 | |||
71 | Aqui está um exemplo de uma matriz de matriz de covariância em 2D, onde cada termo representa a variância (termos da diagonal) ou a covariância (termos das outras células): |
||
72 | |||
73 | ![](picture30-3.png) |
||
74 | |||
75 | A variância e a covariância são definidas por: |
||
76 | |||
77 | ![](picture30-4.png) |
||
78 | |||
79 | Um exemplo simples da aplicação destas últimas equações pode ser visto em: [exercicio 1](https://www.youtube.com/watch?v=xPu1m2xfhVc&t=3s), [exercicio 2 - parte 1](https://www.youtube.com/watch?v=zRHzMsV9yEo) e [exercicio 2 - parte 2](https://www.youtube.com/watch?v=LmZAwtQ6XzI&t=3s). |
||
80 | |||
81 | Aqui segue um exemplo de como calcular a matriz de covariância baseada em notas de um aluno: [exemplo](https://www.youtube.com/watch?v=9B5vEVjH2Pk) |
||
82 | |||
83 | Um fato importante sobre a matriz de covariância é que se a estimativa para uma variável, digamos *x*, é completamente independente de outra variável, digamos velocidade *v*, então nenhum ajuste é feito para as estimativas de uma variável em função do erro de outra. Ou seja, teríamos uma matriz de covariância com termos nulos fora da diagonal principal: |
||
84 | |||
85 | ![](picture30-5.png) |