ESEKF(Error State Extended Kalman Filter)

HyoSeok·2024년 8월 6일

EKF의 경우 state 자체를 구하는 것이 목적이고, ESKF의 경우 이전 state와 predict state의 Error term state를 0으로 만드는 것이 목적이다!

오차 상태 칼만 필터(Error State Kalman Filter, ES-EKF)는 명목 상태(예측 상태)와 실제 상태 간의 오차 상태를 추정하는 방식으로 동작합니다. 오차 상태를 추정하는 이유는 비선형 시스템에서 명목 상태와 실제 상태 간의 차이가 상대적으로 작다고 가정할 수 있을 때, 이 오차 상태를 선형 근사화하여 보다 정확하고 안정적인 상태 추정을 수행할 수 있기 때문입니다.

오차 상태 추정의 이유

  1. 오차 상태의 선형화:

    • ES-EKF에서는 실제 상태 (x)( x )를 명목 상태 (x^)( \hat{x} )와 오차 상태 (δx)( \delta x )의 합으로 나타냅니다:
      [x=x^+δx][ x = \hat{x} + \delta x ]
    • 여기서 ( \delta x )는 명목 상태와 실제 상태 간의 차이로, 보통 작은 값이라고 가정합니다. 이러한 가정은 오차 상태가 작을 때 비선형 시스템을 선형 근사화하는 데 도움이 됩니다.
  2. 공분산 행렬과 오차 상태:

    • 공분산 행렬 (P)( P )는 오차 상태 (δx)( \delta x )의 불확실성을 나타냅니다. EKF에서는 공분산 행렬이 오차 상태의 분포를 설명하며, 이는 상태 추정의 불확실성을 정량화하는 데 사용됩니다.
    • ES-EKF는 예측 단계와 업데이트 단계에서 공분산 행렬을 예측하고 업데이트합니다. 이 과정에서 시스템 모델의 자코비안(편미분)이 사용되며, 이는 오차 상태의 변화에 대한 선형 근사를 제공합니다.
  3. 선형화의 안정성:

    • 오차 상태를 기반으로 한 선형화는 명목 상태 주변의 작은 오차만을 고려하기 때문에, 비선형 시스템에서도 선형 근사의 정확성을 유지할 수 있습니다. 이는 특히 시스템 모델의 비선형성이 크지 않거나 오차 상태가 작은 경우에 유리합니다.

오차 상태 추정과 공분산 행렬의 관계

  • 예측 단계:
    [δxk+1k=Fkδxkk+Gkwk][ \delta x_{k+1|k} = F_k \delta x_{k|k} + G_k w_k ]
    여기서 ( F_k )는 상태 전이 행렬의 자코비안, (Gk)( G_k )는 잡음 입력에 대한 자코비안입니다.

  • 오차 공분산 예측:
    [Pk+1k=FkPkkFkT+GkQkGkT][ P_{k+1|k} = F_k P_{k|k} F_k^T + G_k Q_k G_k^T ]

  • 업데이트 단계:
    [δx^k+1k+1=Kk+1yk+1][ \delta \hat{x}_{k+1|k+1} = K_{k+1} y_{k+1} ]
    [Pk+1k+1=(IKk+1Hk+1)Pk+1k][ P_{k+1|k+1} = (I - K_{k+1} H_{k+1}) P_{k+1|k} ]

공분산 행렬 ( P )는 오차 상태 ( \delta x )의 불확실성을 나타내며, 시스템 모델과 관측 모델의 자코비안을 통해 이 오차 상태의 변화를 설명합니다. 이러한 자코비안은 오차 상태의 작은 변화를 근사화하여, 필터가 시스템의 비선형성에 대처할 수 있게 합니다.

따라서, ES-EKF는 공분산 행렬과 자코비안을 사용하여 오차 상태를 추정하고, 이를 통해 명목 상태를 보정하는 방식으로 작동합니다. 이 과정은 비선형 시스템에서도 상태 추정을 안정적이고 정확하게 만들 수 있습니다.

profile
hola!

0개의 댓글