코딩 및 기타/이미지
칼만 필터
정지홍
2025. 5. 25. 08:40
칼만 필터란?
- "잡음이 포함된 관측 데이터"로부터 어떤 시스템의 상태를 추정하는 최적의 알고리즘
- 여기서 최적이란, 시스템과 센서의 잡음이 "가우시안(정규 분포)확률 분포"를 따른 다는 가정 하에 '최소 분산 추정( minimum mean square error , MMSE )'을 제공한다는 뜻이다.
- 입력 : 이전 상태의 추정 값 , 센서로부터의 측정값 , 시스템/센서 잡음의 통계적 특성(분산)
- 출력 : 현재 상태의 최적 추정값(평균)과 추정 오차의 공분산
- 언제 사용하나?
- 위치 추정
- 센서 융합
- 자유 주행
- 장점
- 실시간으로 동작
- 이론적으로 가장 정확하다
- 계산량이 적으며, 하드웨어에 실시간으로 쉽게 탑제 가능
- 한계
- 선형 시스템에만 정확하다.
- 가우시안 잡음이어야 수학적 최적 성질을 보장
- 칼만 필터의 기본 수식
- 칼만 필터는 선형 동적 시스템에 대해서 아래와 같은 모델 가정을 한다.
- 1. 상태 전이 모델
- 상태 전이 행렬 : ( "이전 시점의 상태"가 "다음시점 상태"로 어떻게 변화하는지를 수학적으로 표현하는 행렬 )
- 제어 입력 모델 : ( 외부 제어 입력이 상태에 어떻게 영향을 주는지를 행렬로 수식화한 것. 즉, 명령이 실제로 상태 변화에 어떤 식으로 반영되는지를 나타냄 ). 즉, 외부 제어 명령이 시스템에 얼마나 어떻게 반영되는지를 결정.
- 외부 제어 입력 : 시스템에 외부에서 가하는 명령 , 힘 , 입력이다. 즉, 시스템에 넣는 명령이다.

- 2. 관측 ( 측정 ) 모델
- 이는 "지금의 나의 상태가 센서에서는 어떻게 관측이 되는지를 나타내는 공식"이다. 즉, 센서의 결과값을 의미.

===> 상태 전이 모델은 "내가 명령(제어 입력)을 넣었더니, 물리 법칙에 따라서 내 상태가 시간에 따라서 이렇게 변해"를 의미.
===> 관측 모델은 "바뀐 내 상태가 센서로 측정하면 이렇게 보여"를 의미한다.
칼만 필터 알고리즘의 단계
- 칼만 필터는 기본적으로 예측(prediction) --> 갱신(update) 두 단계를 반복한다.
- 1. 예측 단계 ( prediction )
- 예측 오차 공분산 행렬은 "불확실성을 나타내는 예측 오차 공분산"이 어떻게 변화하는지 그리고 프로세스 잡음이 어떻게 들어가는지를 보여준다.
(즉, 이는 "예측이 얼마나 신뢰도 있나? 얼마나 오차가 클까?"의 척도이다.)
- 예측 오차 공분산 행렬은 "불확실성을 나타내는 예측 오차 공분산"이 어떻게 변화하는지 그리고 프로세스 잡음이 어떻게 들어가는지를 보여준다.

- 2-1. 갱신 단계 ( update , correction ) - 칼만 이득 계산
- 칼만 이득이 크다면, 센서값을 많이 반영 (예측은 불확실/센서는 신뢰도 높음)
- 칼만 이득이 잘다면, 예측값을 많이 반영 (센서 노이즈 큼/예측이 신뢰도 높음)
- 즉, 칼만 이득은 “센서를 얼마나 신뢰할지”를 수학적으로 결정하는 가중치

- 2-2. 갱신 단계 - 상태 추정치 갱신
- 최종적으로 상태를 어떻게 보정할까를 나타낸다.

- 2-3. 갱신 단계 - 오차 공분산 갱신
- 최종적으로 상태 추정치의 신뢰도(불확실성)가 센서 보정 이후에 얼마나 남아 있는지를 계산하는 공식

칼만 필터의 직관
- 예측단계에서는 모델을 믿고 다음 상태를 예측한다.
- 갱신단계에서는 센서 측정값을 참고해 예측을 보정한다.
- 센서가 신뢰도 높으면 측정값에 더 가중치를 두고(칼만 이득↑),
센서 노이즈가 크면 예측값에 더 가중치를 둔다(칼만 이득↓).
즉, 두 가지 불확실성(모델, 센서)의 신뢰도를 동적으로 반영해서,
항상 "최적"에 가까운 상태 추정치를 구하는 과정입니다.