1. 칼만 필터의 기초 용어
ㅇ 상태 : 시스템이 현재 어떤 상태인지 나타내는 값 (위치,속도,자세 등)
ㅇ 관측(측정) : 센서가 직접 측정한 값 (잡음이 섞여 있을 수 있음)
2. 칼만 필터의 예측 / 추정 : 상태와 관측을 바탕으로 계산된, 가장 그럴듯한 값
ㅇ 예측 (Prediction) : 모델만 사용, 측정값 미반영 → 사전 추정값 → 예측 오차
- 현재까지의 데이터로 미래 시각의 상태를 예측 (예측 단계 출력)
ㅇ 추정 (Estimation) : (모델 + 측정값) 반영한 최종 결과 → 사후 추정값 → 추정 오차
- 기지의 데이터로 미지의 상태를 통계적으로 추론 (갱신 단계 출력)
※ 넓은 의미 : 추정이 상위 개념 → 예측,필터링,스무딩 모두 포함
※ 좁은 의미 : 예측(Prior) → 갱신 → 추정(Posterior)으로 구분
3. 칼만 필터의 추정 방식
ㅇ Prediction (예측) : 현재까지의 데이터로 미래 시각의 상태를 예측
ㅇ Filtering (필터링) : 현재 상태의 실시간 추정 (Online)
ㅇ Smoothing (스무딩) : 축적된 과거,미래 측정 데이터의 후처리를 통한 추정 (Offline)
※ Estimation (추정) : 기지의 데이터로 미지의 상태를 통계적으로 추론
- (위 예측,필터링,스무딩 모두 포함하는 상위의 개념)
4. 칼만 필터의 작동 원리 : 현재 상태(위치 등)를 동적 추정하기 위함
ㅇ 예측 단계 (Prediction) : 현재 상태와 시스템 모델을 이용해 다음 상태를 예측
ㅇ 갱신 단계 (Update) : 실제 관측값을 반영하여 상태 추정값을 보정
※ 이 과정을 순차적으로 반복 : (즉, 반복적 동적 추정기)
5. 칼만 필터의 갱신 단계
ㅇ 갱신 단계 (Update Step) : 측정값을 반영하여 상태를 보정하는 단계
ㅇ 혁신 단계 (Innovation/Residual) : 측정값과 예측값 간의 차이(잔차)를 드러냄
- 이 차이가 클수록 보정에 더 많은 가중치를 부여하게 됨
※ 측정 갱신 (Measurement Update) : 센서 데이터를 이용한 상태 수정
- 측정값 : 센서 측정값
- 예측값 / 사전 추정값 (Prior Estimate) : 측정값 반영 전, 예측 단계에서 구한 예측값
- 추정값 / 사후 추정값 (Posterior Estimate) : 측정 반영 후, 보정된 최종 상태 추정값
※ 칼만 이득 (Kalman Gain) : 측정값과 예측값의 신뢰도를 반영하여 두 값을 조합하는 가중치 비율
- 즉, (칼만 이득) = 센서를 얼마나 믿을지 결정하는 가중치
. 새 추정값 = 예측값 + K × (측정값 - 예측값)
- 만일, K → 1 : 센서를 더 신뢰, K → 0 : 예측 모델을 더 신뢰
- 한편, K는 오차 공분산(P)과 측정 잡음(R)으로 자동 계산됨
6. 칼만 필터의 내부 모델
ㅇ 시스템 모델 : 시스템의 (운동) 동작을 수학적으로 모델링한 것
- 상태가 시간에 따라 어떻게 변하는지를 기술 (例 : 등속도 운동 방정식)
ㅇ 측정 모델 : 상태 변수와 센서 관측값 사이의 관계를 모델링
- 상태 중 센서로 무엇을 볼 수 있는가를 정의 (관측 행렬 H)
7. 칼만 필터의 기지량과 미지량 : (기지량으로부터 미지량을 추정하게 됨)
ㅇ 기지량 : 불확실하고 근사화된 수학적 모델식, 잡음 모델식, 측정 데이터
- 시스템 모델에 대한 수학적 모델식
- 잡음 모델에 대한 수학적 모델식
- 측정 데이터 : 측정값에 내재된 오류 정도를 확률적으로 묘사
ㅇ 미지량 : 시스템의 상태변수, 파라미터
- 상태 변수 : 시시각각 변하는 상태에 대한 변수 형태 (위치,속도,온도 등)
- 파라미터 : 대체적으로 일정한 상수 형태 (주로, 필터의 입력 파라미터 Q,R)
8. 칼만 필터의 잡음, 오차, 불확실성(공분산 행렬)
ㅇ 잡음 (Noise) : 외부에서 시스템에 들어옴 → 불확실성의 원인
- 프로세스 잡음 (Q) : 시스템 모델 자체의 불완전함 (例 : 바람 등에 의한 경로 변화)
. Q 크게 설정 할수록 → 모델보다 측정값을 더 신뢰
- 측정 잡음 (R) : 센서 측정값에 섞인 오차 (例 : GPS 수신 오차, 레이더 거리 측정 오차)
. R 크게 설정 할수록 → 측정값보다 모델을 더 신뢰
* Q와 R은, 설계자가 사전에 설정하는 핵심 튜닝 파라미터
. 사전에 잡음 모델로 정의되며, 설계자가 Q, R 값으로 설정함
ㅇ 오차 (Error) : 추정값과 실제값의 차이 → 불확실성의 결과
- 잡음이 원인이라면, 오차는 그 결과물
- 필터가 매 단계 줄이려 노력하는 대상
ㅇ 불확실성 / 오차 공분산 행렬 (P) : 상태 추정값이 실제값에 벗어나는 정도 → 행렬(P)로 수치화
- 예측,갱신 단계마다 갱신되어 불확실성을 줄여나감
. 예측 단계 : 불확실성 증가 (P 커짐)
. 갱신 단계 : 불확실성 감소 (P 작아짐)
- 공분산 행렬 특징
. 대각 원소 : 각 상태 변수의 분산(퍼짐 정도)
. 비대각 원소 : 상태 변수 간 상관성
※ [ 잡음(Q, R) → 원인 ] => [ 불확실성(P) → 수치화 (현재 상태를 모르는 정도) ]
=> [ 오차(Error) → 결과 (줄이는 것이 목표) ]
9. 칼만 필터의 오차 유형
ㅇ 초기화 오차 : 초기 상태 추정값 및 공분산을 잘못 설정할 경우 발생하는 오차.
- 대개, 필터가 수렴하면서 자연히 줄어들지만, 초기값이 극단적이면 발산 가능
ㅇ 예측 오차 : 현재 상태를 예측할 때 발생하는 오차
ㅇ 추정 오차 (필터링 오차) : 예측값과 측정값을 융합하여 얻은, 최종 추정값과 실제 상태 간 오차
ㅇ 잔차 : 실제 측정값(관측값)과 예측 측정값의 차이 → 보정에 사용됨
ㅇ 모델 불일치 오차 : 시스템 모델이 실제 시스템과 완전히 일치하지 않아 발생하는 오차
ㅇ 오차 공분산 : 상태 추정 오차의 불확실성 (퍼짐 정도 및 상관성 표현)
- 오차 공분산 행렬 : 행렬로 표현한 것 (예측,갱신 과정에서 갱신됨)
10. 칼만 필터의 수학적 요소
ㅇ 상태 벡터 ({#x_k#}) : 추정하고 싶은 상태 변수들을 모아 놓은 벡터
ㅇ 상태 천이 행렬 ({#A#} 또는 {#F#}) : 이전 상태가 다음 상태로 어떻게 변하는지 나타냄
ㅇ 관측 행렬 ({#H#}) : 상태 벡터 중 어떤 부분이 측정과 연결되는지 나타냄
ㅇ 입력 벡터 ({#u#}), 입력 행렬 ({#B#} : 외부 제어 입력이 있을 때 이를 반영하는 요소
ㅇ 프로세스 잡음 ({#w#}), 공분산 ({#Q#}) : 시스템 모델 자체의 불확실성을 나타냄
ㅇ 측정 잡음 ({#v#}), 공분산 ({#R#}) : 센서 오차의 크기의 불확실성을 나타냄
ㅇ 오차 공분산 행렬 ({#P#}) : 상태 추정 오차의 불확실성을 나타내는 행렬
- 예측 단계 : P_pred = A·P·Aᵀ + Q
- 갱신 단계 : P = (I - K·H)·P_pred
ㅇ 확률 모델 (Probabilistic Model) : 상태와 잡음을 확률적으로 표현하는 모델
11. 칼만 필터의 알고리즘 유형
ㅇ 칼만 필터 (KF) : 선형 시스템 (기본)
ㅇ 확장 칼만 필터 (EKF) : 야코비안으로 선형화 (약한 비선형)
ㅇ 무향 칼만 필터 (UKF) : 시그마 포인트 사용 (강한 비선형)
ㅇ 파티클 필터 : 확률 분포 샘플링 (복잡한 비선형,비가우시안)
ㅇ 적응형 칼만 필터 (Adaptive Kalman Filter) : Q, R 실시간 조정 (시변 잡음)
ㅇ 칼만 스무더 (Kalman Smoother, RTS Smoother) : 전체 데이터를 후처리해 과거 상태를 재추정