칼만필터는 어렵지 않아 정리

칼만 필터
1. 칼만 필터의 기본 구조
NeoStudio에서는 측정값 zk가 주어졌을 때 시스템 변수 x̂k를 추정하는 구조로 칼만 필터를 정리한다.
측정값
z_k
│
▼
┌───────────────┐
│ 시스템 │
│ │
│ A, H, Q, R │
│ P_k │
└───────────────┘
│
▼
x̂_k
x̂_k : 추정값
z_k : 입력값
(센서 측정)
2. 칼만 필터의 주요 변수
NeoStudio에는 A, H, Q, R, P를 다음과 같이 기록하고 있다.
- A, H : 시스템 변수를 설명하는 Matrix
- Q : 시스템 Noise
- R : 센서 Noise
- P : 공분산
- zk : 센서 측정값
- x̂k : 추정값
3. 초기값 설정
칼만 필터의 첫 단계는 초기 추정값과 초기 오차 공분산을 설정하는 것이다.
4. 추정값 예측
이전 시점의 추정값에 시스템 Matrix A를 곱하여 현재 시점의 값을 예측한다.
NeoStudio에서는 이전 측정값 또는 이전 추정값을 이용하여 k 시점의 상태를 예측하는 과정으로 기록한다.
5. 오차 공분산 예측
상태를 예측할 때 오차 공분산도 함께 예측한다.
NeoStudio에는 이전 P를 전달하고 여기에 Q를 더하는 흐름으로 메모되어 있다.
6. 예측 단계
칼만 필터의 첫 번째 반복 단계는 추정값과 오차 공분산을 함께 예측하는 과정이다.
이전 추정값
x̂_(k-1)
│
▼
A
│
▼
x̂_k^-
이전 공분산
P_(k-1)
│
▼
A P Aᵀ + Q
│
▼
P_k^-
7. 칼만 이득 계산
예측된 오차 공분산과 센서 Noise를 이용하여 Kalman Gain Kk를 계산한다.
8. Q와 R에 따른 Kalman Gain
NeoStudio에서는 Q와 R의 크기에 따라 Kalman Gain이 변하는 방향을 기록한다.
필기에는 K의 크기를 직관적으로 설명하기 위해 Q와 R의 비율을 이용한 메모도 남겨져 있다.
9. 측정값을 이용한 추정값 계산
예측값에 실제 센서 측정값을 반영하여 최종 추정값을 계산한다.
괄호 안의 항은 실제 측정값과 예측된 측정값의 차이를 나타낸다.
10. Kalman Gain의 역할
NeoStudio에서는 측정값과 예측값의 차이를 어느 정도 반영할 것인지를 K가 결정하는 구조로 정리한다.
11. LPF와의 비교
NeoStudio에서는 칼만 필터의 보정 구조를 LPF와 유사한 구조로 비교한다.
이전 값과 현재 값을 일정 비율로 섞는 LPF와 같이, 칼만 필터도 예측값과 측정값을 가중하여 사용하는 흐름으로 메모되어 있다.
12. 오차 공분산 계산
측정값을 반영한 뒤에는 오차 공분산을 다시 계산한다.
이 값은 다음 반복에서 다시 예측 오차 공분산 계산에 사용된다.
13. 칼만 필터 반복 순서
0. 초기값 선정
x̂_0, P_0
│
▼
1. 추정값 예측
x̂_k^- = A x̂_(k-1)
│
▼
오차 공분산 예측
P_k^- = A P_(k-1) Aᵀ + Q
│
▼
2. Kalman Gain 계산
K_k =
P_k^- Hᵀ
(H P_k^- Hᵀ + R)^-1
│
▼
3. 추정값 계산
x̂_k =
x̂_k^- +
K_k(z_k - Hx̂_k^-)
│
▼
4. 오차 공분산 계산
P_k =
P_k^- - K_k H P_k^-
│
└─────────────┐
│
▼
다음 k 반복
14. 일반 이미지의 칼만 필터 알고리즘
페이지의 일반 이미지도 NeoStudio와 동일한 반복 구조를 보여준다.
초기값 선정
x̂_0, P_0
│
▼
추정값 / 공분산 예측
│
▼
Kalman Gain 계산
│
z_k ─────┤
▼
추정값 계산
│
├──────→ x̂_k
│
▼
오차 공분산 계산
│
└──────→ 반복
15. 일반 이미지의 예측식
일반 이미지에는 예측 단계를 다음과 같이 표시한다.
16. 일반 이미지의 Kalman Gain
17. 일반 이미지의 추정값 계산
18. 일반 이미지의 공분산 계산
19. Q 증가의 의미
NeoStudio 마지막 페이지에서는 Q가 증가하는 경우를 다음과 같이 기록한다.
시스템 측의 불확실성을 크게 보면 Kalman Gain이 증가하여 센서 측정값을 더 많이 반영하는 방향으로 메모되어 있다.
20. R 증가의 의미
R이 증가할 경우에는 Kalman Gain이 감소하는 방향으로 기록되어 있다.
NeoStudio에는 센서 Noise가 크면 기존 예측값 쪽으로 가중되는 흐름으로 기록되어 있다.
21. Q와 R의 관계
| 변화 | Kalman Gain | NeoStudio의 해석 |
|---|---|---|
| Q 증가 | K 증가 | 센서 측정값 반영 증가 |
| R 증가 | K 감소 | 기존 예측값 비중 증가 |
22. 필터링 흐름
시스템 Model
A, H
│
▼
상태 예측 x̂_k^-
│
│
Q ─────┤
▼
공분산 예측 P_k^-
│
│ R
├───────┤
▼
Kalman Gain K_k
│
│
z_k ─────┤
▼
추정값 x̂_k
│
▼
공분산 P_k 갱신
│
└────→ 다음 반복
23. 이미지 · NeoStudio 핵심 정리
| 항목 | 원본 내용 |
|---|---|
| 측정값 | zk |
| 추정값 | x̂k |
| A, H | 시스템을 설명하는 Matrix |
| Q | 시스템 Noise 관련 공분산 |
| R | 센서 Noise 관련 공분산 |
| P | 오차 공분산 |
| 예측 | x̂k– = A x̂k-1 |
| 공분산 예측 | Pk– = APk-1AT + Q |
| Kalman Gain | Kk = Pk–HT(HPk–HT+R)-1 |
| 추정값 보정 | x̂k = x̂k– + Kk(zk-Hx̂k–) |
| 공분산 보정 | Pk = Pk– – KkHPk– |
| Q 증가 | K 증가 → 측정값 반영 증가 |
| R 증가 | K 감소 → 기존 예측값 비중 증가 |