EKF 를 공부하기 위해서는 기본적인 KF에 대한 지식이 당연히 필요하겠죠 ? 

오늘은 kalman filter에 대해서 간단하게 review하는 글을 써보겠습니다.

 

참고자료 

-  제어공학 수업자료

Probabilistic Robotics

 

칼만아 조금만 기다려 ~

 

 

Kalman filter는 선형 가우시안 시스템의 연속 상태 공간에서 사후 확률 분포 (Posteriors)를 정확하게 계산하기 위한 필터입니다.

말이 어려울 수 있는데, 아래의 3가지 조건을 만족하면 우리가 알고자하는 시스템의 state의 확률 분포를 알 수 있다는 말입니다.

 

1)  상태 전이 시스템이 선형

2)  관측 시스템이 선형 

3)  초기 상태 분포가 가우시안 + 관측, 상태 noise가 가우시안이라는 전제 

 

앞의 3가지 전제를 만족하면,

모든 시간 t에서 belief( = Posteriors , t시간에서의 state의 확률 분포)는 가우시안으로 생각할 수 있고

따라서 재귀적인 방법으로 시간 t에서의 평균과 공분산을 계속하여 구함으로써 

칼만 필터는 우리가 알고자하는 state의 확률 분포를 추정합니다.

 

다시 한번 위의 각 요소에 대하여 다시 확인하며 넘어가겠습니당

 


 

쉽게 설명해보자.

우선 기본적으로 시스템에 대해서 , 선형인 전제를 하는 것이 1) 2) 이다. 당연하게도 시스템이 선형이면 해당 시스템을 해석하기가 매우 간단하다.

 

상태공간 방정식에서 X가 포함된 상을 이산적으로 표현한 식이 여기서 말하는 1) 상태 전이 방정식이고, Y가 포함된 식이 2) 관측 시스템이다. 생각해보면 Y는 output이라고 배웠고, x는 state라고 배웠다. 당연한 사실이다. 

 

선형 상태공간 방정식

 

* 위에서는 x에 대한 미분으로 표현되어있지만, 실제 시스템에서 sampling된 time으로 생각하면 xn - xn-1/ td = x dot임을 알 수 있고 넘기면 아래와 같은 수식으로 표현 가능하다.

 


 

현실 시스템의 sensor와 측정에서는 당연하게도 noise가 있고, 위 식은 해당 사항을 반영하지 않고 있다 . 이를 반영한 것이 아래의 1),2) 수식이다. 

 

1
2

 

1에서 noise를 제외한 부분은 기존 상공방과 동일하게 state와 제어기 입력이다. 

여기서 나오는 noise는 제어기 입력으로 인해 생기는 noise ( input noise ) 이다.

당연하게도, 우리가 실제로 입력한 제어기 입력과 다르게 조금은 다른 값이 input으로 들어갈 것이기에 해당 noise를 가정한다.

 

kalman filter에서는 해당 noise가 평균이 0이고, 공분산이 Q인 가우시안을 따른다고 가정하고, input noise라고 한다.

 

동일하게 아래 식 2에서 있는 delta는 measurement noise라고 부르며 센서 측정에 있어서 나오는 실제 y와 측정 y간의 간격을 noise로 표현한다. 동일하게 평균이 0이고 공분산이 R인 가우시안을 따른다고 가정한다.

 

* 또한 추가적으로 t = 0일때의 초기 변수에 대한 확률분포도 가우시안 분포를 따른다고 가정한다.

 

 


 

 

앞서 말했다시피 해당 조건을 만족하면 모든 시점 t에 대해서 Posteriors 사후 확률분포는 가우시안 분포를 만족합니다 여기서, 

 

가우시안 분포는 평균mean과 공분산covariance로  완전히 표현되므로
이 최소 파라미터들을 구하는 방식으로 확률 분포 전체를 계산하는 것을 대체한다.

 

이렇게 재귀적인 방법으로 매 시간 t에 대한 상태변수의 mean과 covariance를 구하는 것이 kalman filter인 것이다.

물론 실제 시스템에서 noise나 초기 상태가 가우시안이라는 전제 등 다양한 전제를 사용하여 실제 값과 오차가 있을 수 있지만 , 이러한 방식으로 다양한 시스템에서 효과적인 상태 추정을 하게 도와줍니다 ㅎㅎ

 


이제 칼만 필터가 어떻게 재귀적으로 상태변수의 mean 과 covariance를 업데이트하는지 알아보겠습니다.

 

Probabilistic Robotics

 

칼만 필터는 크게 2번의 step으로 최종적인 공분산과 평균을 구합니다. 

 

첫번째는 prediction입니다.

 

prediction은 말 그대로 한 스탭 전의 상태변수의 평균과 공분산을 사용해, 이미 알고있는 시스템 식에 적용해 어떤 값이 나올지 예상하는 것입니다. 

이미 알고 있는 모델로 미래를 예측 !

 

이는 table 3.1의 2 : 식으로 표현되며 식을 자세히 살펴보면 단순히 시스템 식에서 상태변수 대신 , 이전 스탭의 평균이 들어간 것을 확인할 수 있습니다. 여기서 제어기 입력은 우리가 의도한 값이 들어간다고 가정하기에 t시간에서의 ut를 그대로 사용합니다.

 

이어서 식 3: 을 통해서 prediction error에 대한 공분산을 계산합니다. (수학적인 유도는 생략)

 

이로써 prediction이 종료되고 , 결과론적으로 t-1의 평균과

error에 대한 공분산을 사용해서 시스템 모델과 제어기 입력값을 통해 t시점에서의 

평균과 공분산을 구했음을 알 수 있습니다.

 


 

그 다음은 Correction ( Measurement Update ) 입니다.

 

prediction이 모델의 정보를 통해 미래를 예측했다면, Correction은 해당 값을 참조하여 최종적으로 real value를 추정하는 과정입니다. 

 

5: 의 식을 주목하여 보면 식의 형태가 Observer의 수식과 굉장히 유사함을 확인할  수 있습니다.

측정 output인 zt를 prediction 된 값을 사용해 최적화된 Observer gain, 즉 Kalman gain이라고 불리는 4번 식을 통하여

이 전에 prediction했던 t시간에서의 평균을 correction합니다. 

 

이는 이번에 측정한 z값을 얼마나 믿을건지 ? 를 Kalman gain을 참조하여 본다고 보면 됩니다.

결과적으로 모델을 통해 예측한 값과 실제로 측정된 값을 합쳐 noise를 제거한 실제 값을 추정하는 과정 이라고 보면 됩니다.

 

즉, Kalman filter의 correction step은
확률적으로 최적화된 observer를 사용하는 상태 추정 과정이라고 볼 수 있습니다.

 

6: 식도 Kalman gain을 사용하여 error에 대한 공분산을 계산합니다.

이렇게 최종적으로 시간 t에서의 평균과 공분산을 구하고 해당 파라미터들은 다음 time step에서의 값들로 재귀적으로 사용됩니다.

 

 

행복하세요

 

 

해당 과정에서의 증명은 생략하였지만 찾아보면 재미있습니다 ㅎㅎ

또한 correction에서 하는 과정이 이해가 가지 않으면 observer에 대한 기초 개념을 한번 더 리뷰하면 좋을 것 같습니다.

 

다음 글에서는 이러한 선형 가정을 완화하여,
비선형 시스템에서도 Kalman filter를 적용할 수 있도록 확장한 EKF에 대해 정리해보겠습니다.

 

오류나 지적 환영합니다 감사합니다

 

 

 

 

'robotics' 카테고리의 다른 글

PnP : Perspective-n-Point  (1) 2026.02.27
EKF  (0) 2026.01.28
EKF_ 사전지식 ( covariance matrix , Jacobian , Gaussian )  (1) 2026.01.27

+ Recent posts