ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • EKF 확장 칼만 필터
    항법연구실/칼만필터 2026. 4. 8. 11:43

    확장 칼만 필터를 사용해서 위성 궤도를 추정한다. 그럼 지금까지 배웠던 선형 칼만 필터와 확장 칼만 필터의 차이점이 무엇일까 ?

    티스토리에 굉장히 정리가 잘 되어 있는 글이 있지만 내 것으로 만들기 위해 다시 작성해보겠다. 

    아, 본격적으로 들어가기 전, 칼만 필터의 개념을 다시 짚고 가자. 

     

    칼만 필터 정의

    과거의 정보와 새로운 측정값을 버무려 현재의 상태를 가장 정확하게 추측하는 알고리즘

     

    잡음(Noise)이 섞인 데이터들 속에서 시스템의 상태를 실시간으로 추정하는 최적의 필터이다. 예측(Predict)와 보정(Update)단계로 나누어져 있으며 각각 이런 역할을 수행한다. 

    • 예측(Predict): 이전의 데이터들을 반영해봤을 때 .. 지금쯤 이 상태겠지?
    • 보정(Update): 실제 측정값을 봤는데, 예측값과 비교한 오차가 이만큼이네 ? 

    이 과정을 반복하며 정확도를 높여나간다! 

     

     

     

    선형 칼만 필터 vs 확장 칼만 필터 

     

    선형 칼만 필터와 확장 칼만 필터의 차이는 딱 하나다. 선형이냐, 비선형이냐 

     

    선형 칼만 필터에서는 상태 천이 행렬 STM이 이전 추정값에 곱해져 예측한 반면, 

    확장 칼만 필터는 다음 값을 예측하기 위한 식이 비선형 방정식이다. 

     

    선형은 STM이 일정한 상수로 고정되어 밖으로 드러났지만 

    비선형은 매 순간 곡선의 기울기를 계산해야 하므로, 함수 속에 숨어 있다가 미분(Jacobian)을 통해서만 계산할 수 있는 것이다. 

     

    STM 관계가 복잡해서 이해하기 어려웠는데, 아까 말한 정리가 잘 되어 있는 글에서 이 내용을 보고 이해할 수 있었다 !! 

    • 선형 칼만 필터: 이미 선형화된 STM → 칼만 필터 적용 
    • 확장 칼만 필터: 비선형 STM 매 순간마다 미분(Jacobian)하여 선형 근사 칼만 필터 적용 

    * jacobian은 매순간 모든 변수들에 대해 미분을 해주어 선형화된 값을 얻어내는 것이고, 

    확장 칼만 필터는 어? 비선형이 있네? 그럼 매 순간마다 미분(Jacobian)하자는 개념이다. 

     

    선형 칼만 필터 - 비선형 칼만 필터

     

     

    확장 칼만 필터

    비선형 식에 대해서는 그때그때마다, 매 순간마다 미분해서 선형으로 만들어 계산하자 ! 

     

    그럼 확장 칼만 필터에 대해 자세히 알아보자. 

    사실 첫번째 식이 잘 이해가 가지 않았다. 행렬, STM과 각종 미분식이 뒤섞이면서 개념 정리가 어려웠다. 

    특히 기계 전공이 아닌 필자가 이해하는 데 시간이 많이 걸렸다. 그래도 비전공자의 시선에서 차근차근 정리해보겠다 ! 

     

    더보기

    Q. f(x)가 의미하는 것 

     

    제어 공학(칼만 필터)에서 시스템 모델을 세울 때, x' = f(x)라고 쓴다. 

    이는 현재 상태가 x일 때, x가 변하는 속도(기울기)라는 것을 의미한다. 

    EKF에서도 마찬가지이다. f(x)가 x의 미분값 역할이 되는 셈이다. 

     

    다음값을 예측할 때, 미분값 x 시간으로 다음 상태를 예측한다. :: 다음 상태 ≒ 현재 상태 + (변화율 x 시간) 이를 수식으로 표현하면 다음과 같다.

    식 1

     

    음 .. 그런데 앞서 말한 바와 같이 f는 x'이라고 했다. 그런데 이해가 가지 않는 부분이 있었다. 

    f가 미분한 함수인데, 어떻게 미분한 함수에 이전 값을 넣으면 바로 다음 값이 나올 수 있는거지? 

     

    나는 표기법의 함정에 빠진 것이었다 !

     

    • 연속 시간 모델(시스템 모델), 자동차의 현재 속도계랄까 .. 
      • 수식 : x' = f(x)
      • 측정한 지금 이 순간 속도계가 가르키는 '순간 속도' 그 차제이다! 
    • 이산 시간 모델(알고리즘 구현), 네비게이션의 도착 예정 위치
      • 수식: x(t=k) = f(x(t=k-1))  * f는 다음 단계의 상태를 알려주는 함수, 전파 함수 
      • 지금 속도로 10분동안 달리면 여기에 도착해 라고 알려주는 최종 결과값 
      • f에는 현재 위치 + 속도x시간이라는 계산 과정(적분)이 이미 다 들어가있음 

     

    위 사진 속 수식은 이미 컴퓨터가 계산하기 좋게 적분이 포함된 결과물을 f라고 이름 지은 것이다. 사진 속의 f는 내부적으로 식 1과 같은 계산을 하고 있을 것이다. 즉, 이전 값에서 변화량을 더해 다음 위치를 만들어라 라는 동작 전체를 f기호로 표시한 것이다. 

     

    정리해보자면, 미분 함수(x')은 매 순간 어떻게 변하는가? (속도, 가속도 식) , 예측 함수(f)는 미분 함수를 적분해서 이전 값에 더해준 최종 결과물(이전값 + 적분기)을 주는 것이다. 

     

     

    아웅 어렵다

     

     

     

     

    보통 수식으로 전개하면 이런 느낌인데.. 간단히 풀어서 설명해보자면 

     

    EKF는 비선형인 세상(f)에서 미분(A)를 가지고

    아주 짧게 쪼갠 곡선을 직선인 척(선형화) 계산하면서 최적의 위치를 찾아가는 과정을 의미한다. 

     

    실제 물리 법칙을 따라 어디쯤 있을까?를 예측한다. 

     

    예측한 값과 실제 측정값이 들어왔을 때,

    예측값과 실제값에 가중치를 다르게 주어서 최종 위치를 확정한다. 

    여기서 등장하는 칼만 이득(K)내 예측이 맞을까, 센서의 측정이 정확할까?를 결정하는 가중치이다. 

     

    그럼 최종적으로 예측값에 잔차와 칼만 이득을 곱해 보정하고 측정값을 반환한다. 


     

    그럼 다음 포스팅에선 이 비선형 칼만 필터의 예제로 개념을 굳히는 시간을 가지도록 하겠다 !! 

     

Designed by Tistory.