1. 칼만 필터 (Kalman Filter)
ㅇ 불확실한 상황에서, 동적시스템의 상태를 추정하는, 효과적인 알고리즘/매커니즘/이론
- 상태를 예측하고, 관측으로 보정하며, 그 둘의 불확실성을 공분산과 칼만 이득으로 조절함
. 잡음이 많은 센서 측정 데이터로부터, 유용한 정보를 추출하여,
. 최적의 추정값을 동적으로 제공하는 필터 (동적 추정기)
ㅇ 작동 원리 : 현재 상태(위치 등)를 추정하기 위해,
- 예측 단계 (Prediction) : 현재 상태와 시스템 모델을 이용해 다음 상태를 예측
- 갱신 단계 (Update) : 실제 측정값과 비교하여 예측값을 보정
* 이 과정을 순차적으로 반복 : (즉, 반복적 동적 추정)
ㅇ 주요 용도
- 시스템 모델이 존재하고, 순차적인 상태 예측 및 측정이 가능한 경우에,
- 잡음(오차) 제거, 미 측정 상태 변수 추정, 센서 융합 능력 등
ㅇ 역사
- 개발자 : 루돌프 칼만 (Rudolf E. Kalman, 1930~2016)
- 대표 논문 : "A New Approach to Linear Filtering and Prediction Problems" (1960, ACME 저널)
※ (용어 상의 의미)
- 전통적으로, `필터`는, 신호에서 잡음을 걸러내는 의미로 사용되지만,
- `칼만 필터`는, 불확실성을 줄이기 위한, 동적 확률적 필터 (dynamic probabilistic filter) 임
. 시스템 모델과 측정값을 통합하여, 시간에 따라 변화하는 상태를, 확률적으로 추정함
- 따라서, 단순히 "잡음을 걸러낸다"는 의미를 넘어,
. 모델 기반의 최적 상태 추정기로 이해해야 함
- 즉, 여기서의 `필터`는, 통상의 `필터` 의미 보다 확장시켜,
. 불확실성을 걸러내며, 동적 추적과 상태 추정을 포함하는 개념임
2. 칼만 필터의 특징
ㅇ `루프(Feedback) 구조`를 갖는, 상태 추정기
ㅇ `최적화 알고리즘`으로 설계되어, 추정 오차 최소화
ㅇ 상태 방정식을 이용한, `동적 추정기`
- 시스템의 동적 모델과 측정 데이터를 결합하여 연속적으로 상태를 추정
3. 칼만 필터의 단계 및 목표
ㅇ 동작 단계
- 예측 단계 : 이전 상태를 바탕으로, 시스템 모델을 이용하여, 현재 상태를 예측하는 단계
- 갱신 단계 : 관측값을 사용해 상태를 보정하는 단계
. 실제 측정된 값과 예측 값을 비교하여 예측 값을 수정
* 이 두 단계를 반복하면서, 점차 정확한 상태 추정값을 얻을 수 있게됨
ㅇ 동작 목표
- 정확한 상태 추정 : 시스템의 현재 상태를 가능한 한 정확하게 추정
- 불확실성 최소화 : 오차 공분산을 줄이는 방향으로 필터가 작동
- 최적 추정 : 최소 분산 불편 추정 (MVUE)
. 가능한 모든 추정 방법 중에서, 추정 오차의 분산을 가장 작게 만드는 값을 선택
. 단, 다음 두 조건이 모두 성립할 때, 칼만 필터는 이론적으로 최적임을 보장
.. 시스템과 측정이 선형(Linear) 모델일 것
.. 잡음이 가우시안 (정규분포) 특성을 가질 것
. 이들 조건이 깨지면 (비선형,비 가우시안), EKF,UKF,파티클 필터 등으로 대체
4. 칼만 필터의 구성 요소
ㅇ 시스템 모델 : 시스템의 (운동) 동작을 수학적으로 모델링한 것
ㅇ 측정 모델 : 센서의 측정 오차를 모델링한 것
ㅇ 상태 벡터 : 시스템의 상태(위치,속도 등)를 나타내는 벡터
ㅇ 측정 벡터 : 센서로부터 얻은 측정값을 나타내는 벡터
ㅇ 칼만 이득 : 관측값과 예측값의 상대적인 신뢰도를 나타내는 가중치
- 측정값과 예측값의 신뢰도를 반영하여 두 값을 조합하는 비율
. 새 추정값 = 예측값 + K × (측정값 - 예측값)
- 즉, K (칼만 이득) = 센서를 얼마나 믿을지 결정하는 가중치
. K → 1 : 센서를 더 신뢰, K → 0 : 예측 모델을 더 신뢰
. K는 오차 공분산으로 자동 계산됨
5. 칼만 필터의 추정 방식
ㅇ 가용 정보로부터 미지량을 추정하게 됨
- 가용 정보 : 불확실하고 근사화된 수학적 모델식, 노이즈 모델식, 측정 데이터
. 수학적 모델식
. 노이즈(잡음) 모델식
. 측정 데이터 확률분포 : 측정값에 내재된 오류 정도를 확률적으로 묘사
- 미지량 : 시스템의 상태변수, 파라미터
. 상태변수 : 시시각각 변하는 변수 형태
. 파라미터 : 대체적으로 일정한 상수 형태 (때론, 변수도 가능)
ㅇ 3가지 추정 방식 모두를 지원하는 수학적 도구를 제공
- Estimation : 과거,현재 데이터를 기반으로 미래 특정 시각의 상태를 추정
- Filtering : 현재 상태의 실시간 추정 (Online)
- Smoothing : 축적된 과거,미래 측정 데이터의 후처리를 통한 추정 (Offline)
6. 칼만 필터의 계산 절차
ㅇ (사전 단계)
- 시스템 모델 설정
- 오차 공분산 (Q,R) 설정
ㅇ 초기화 (Initialization)
- 초기 상태 추정값 설정
- 초기 오차 공분산 행렬 설정
ㅇ 예측 단계 (Prediction)
- 이전 상태로부터 현재 상태 예측
- 오차 공분산 예측
ㅇ 잔차 (혁신값) 계산
- 실제 측정값과 예측 측정값의 차이 계산
ㅇ 칼만 이득 계산
- 예측값과 측정값의 신뢰도 비율 계산
ㅇ 상태 추정값 갱신 (Update)
- 측정값을 반영하여 상태 보정
ㅇ 오차 공분산 갱신
- 추정 오차의 불확실성 갱신
7. [참고사항]
ㅇ 시스템 모델
- 상태 벡터 : 시스템의 상태 변수(위치,속도,온도 등)들의 벡터 ({#x_k#})
- 상태 천이 행렬 : 이전 상태로부터 현재 상태를 예측하는 선형 변환 행렬 ({#T_k#})
. {# x_k = T_kx_{k-1} + w_k #} ({#w_k#} : 과정 잡음/불확실성)
- 관측 벡터 : 실제 측정값을 포함하는 벡터 ({#z_k#})
- 관측 행렬 : 상태 벡터를 관측값으로 변환하는 선형 변환 행렬 ({#H_k#})
. {# z_k = H_kx_{k-1} + v_k #} ({#v_k#} : 측정 잡음)
ㅇ 센서 융합 (Sensor Fusion)
- 예측과 갱신을 반복하며 상태 추정
. 시스템 모델로 현재 상태를 예측
. 여러 센서 측정값으로 오차를 보정
- 센서 신뢰도를 가중치처럼 반영함
. 잡음이 작은 센서는 더 크게 반영
. 잡음이 큰 센서는 덜 반영
- 결과적으로,
. 잡음 감소
. 추정 안정화
. 실시간 위치/속도/자세 등 추정 가능