본 포스트는 필자가 Kalman filter 공부하면서 배운 내용을 정리한 포스트이다.
다음 포스팅 칼만 필터(Kalman filter) 개념 정리 Part 2에서 더 많은 내용을 확인할 수 있다.
Kalman filter를 이해하는데 필요한 기반 지식은 확률 이론(Probability Theory) 개념 정리 포스팅을 참조하면 된다.
Particle filter에 대해 알고 싶으면 파티클 필터(Particle Filter) 개념 정리 포스팅을 참조하면 된다.
arXiv preprint
English version
Notes on Kalman Filter (KF, EKF, ESKF, IEKF, IESKF)
The Kalman Filter (KF) is a powerful mathematical tool widely used for state estimation in various domains, including Simultaneous Localization and Mapping (SLAM). This paper presents an in-depth introduction to the Kalman Filter and explores its several e
arxiv.org
Preliminaries
칼만 필터(Kalman filter)는 시간에 따라 변하는 시스템의 상태를 추정하는 방법 중 하나로써 시스템 모델의 예측값과 노이즈가 포함된 관측값을 바탕으로 현재 상태를 재귀적으로 예측하고 업데이트하는 알고리즘을 말한다.
해당 섹션에서는 칼만 필터를 본격적으로 설명하기 앞서 기반이 되는 지식들을 간단히 소개한다.
Estimation theory
추정 이론(estimation theory)은 관측된 데이터를 바탕으로 모델의 파라미터나 상태를 예측하는 다양한 방법을 정리한 이론이다. 데이터 분석, 신호처리, 기계학습, 금융, 로봇공학 등 다양한 분야에서 널리 쓰이고 있으며 주로 불확실성을 다루는 과정에서 정확한 결정을 내리기 위한 필수적인 도구로 사용되고 있다. 보다 자세한 내용은 해당 포스팅을 참조하면 된다.

예를 들어 위 그림과 같이 평균 몸무게가 70kg인 사람을 1년 동안 측정한 데이터가 주어졌다고 가정하자. 그래프를 이루고 있는 초록색 데이터들은
위와 같이 관측된 데이터
-
-
-
Bayesian philosophy
추정 이론에는 추정해야 하는 파라미터
- Frequentist: 추정해야 하는 파라미터
가 미지의 결정론적(deterministic) 파라미터로 보는 빈도주의적 관점 - Bayesian: 추정해야 하는 파라미터
가 사전 확률분포(prior)를 가지는 확률 변수(random variable, r.v.)로 간주하는 관점
베이지안 철학은 만약 우리가 파라미터
베이지안 철학 관점에서는 파라미터
-
-
-
-
Estimation problem
추정 문제는 일반적으로 다음과 같이 도식화하여 나타낼 수 있다.

추정 문제의 목적은 주어진 데이터

- Filtering : 필터링은 관측 데이터
가 주어졌을 때 을 추정하는 문제를 말한다. 최적의 파라미터를 추정함으로써 우리는 신호에서 노이즈를 필터링하고자 한다. 필터링에서는 파라미터가 현재와 과거 데이터에만 의존하는 것에 유의하자.} - Smoothing: 스무딩은 관측 데이터
이 주어졌을 때 중간에 있는 을 추정하는 경우를 말한다. 예를 들어 을 추정하기 위해 모든 관측 데이터가 사용된다. 당연하게도 스무딩은 모든 데이터가 관측되기 전에는 수행할 수 없다. - Prediction: 예측은 관측 데이터
가 주어졌을 때 을 추정하는 경우를 말한다. 이 때, 은 임의의 양수이다. - Interpolation: 보간은 관측 데이터
이 주어졌을 떄 을 추정하는 경우를 말한다.
Dynamic system
시간에 따라 상태 변수가 변하는 시스템은 다음과 같이 모델링할 수 있다.
-
-
-
-
-
-
-
위 표기법을 사용하여 앞서 추정 문제를 다시 그려보면 다음과 같다.

위와 같은 동적 시스템을 그래프로 그려보면 다음과 같다.

동적 시스템은 일반적으로 상태 예측(prediction) 단계와 업데이트(update, 또는 correction) 단계로 나뉜다. 예측 단계는 다음과 같이 현재까지 측정한 모든 관측값

업데이트 단계는 다음과 같이 다음 상태

Recursive bayes filter
제어입력과 관측값이 주어졌을 때 현재 상태
-
-
-
-
이전 섹션에서 언급한 그래프로 설명하면 다음 부분이

-
-
-
Recursive bayes filter는 위와 같이 이전 스텝의
Derivation of recursive bayes filter
Recursive bayes filter의 수식은 다음과 같이 유도된다.
Step 1:
Bayesian rule을 적용한다.
Step 2:
현재 상태는 바로 이전 상태에만 의존성을 지니는 Markov Assumption을 적용한다.
Step 3:
총합의 법칙(Law of total probability) 또는 Marginalization를 적용한다.
Step 4:
현재 상태는 바로 이전 상태에만 의존성을 지니는 Markov Assumption을 적용한다.
Step 5:
Step 6:
Step 7:
Gaussian belief case
평균과 분산은
Kalman filter (KF)
NOMENCLATURE of kalman filter
- 스칼라는 일반 소문자로 표기한다 e.g., a
- 벡터는 굵은 소문자로 표기한다 e.g.,
- 행렬은 굵은(bold) 대문자로 표기한다 e.g.,
- prediction:
: 스텝의 correction 값이 주어졌을 때 스텝의 평균. 일부 문헌은 로도 표기함. : 스텝의 correction 값이 주어졌을 때 스텝의 공분산. 일부 문헌은 로도 표기함.
- correction:
: 스텝의 prediction 값이 주어졌을 때 스텝의 평균. 일부 문헌은 로도 표기함. : 스텝의 prediction 값이 주어졌을 때 스텝의 공분산. 일부 문헌은 로도 표기함.

시간
-
-
-
-
-
-
-
-
확률변수가 모두 가우시안 분포를 따른다고 가정하면
다음으로 칼만 필터를 통해 구해야 하는
칼만 필터는 prediction 스텝에서 이전 스텝의 posterior 값과 모션 모델을 사용하여 예측값
초기값
-
-
Prediction step
Prediction은
Correction step
Correction은
1D Kalman filter
지금까지 설명한 칼만 필터는 상태 변수가 벡터인(=
-
-
-
-
모션 모델과 관측 모델은 다음과 같다.
-
-
-
1D 칼만 필터의 precition 스텝은 다음과 같다.
다음으로 1D 칼만 필터의 correction 스텝은 다음과 같다.
-
-
식을 자세히 살펴보면 앞서 언급했던 벡터 버전 칼만 필터와 구조가 동일한 것을 확인할 수 있다.

Discussion
Discussion about KF and posterior pdf
다음과 같이 간단한 1차원에서 로봇의 위치

위 그림을 단계 별로 자세히 살펴보면 다음과 같다.
- 로봇은 이전 스텝의 위치
로부터 모션 모델에 의해 prediction을 수행하여 prior 를 예측한다. - 다음으로 로봇의 센서로부터 현재의 위치를 측정하여 likelihood
를 얻는다. - prior
와 likelihood 로부터 correction 스텝을 수행하여 posterior 를 얻는다. - 1
3 과정을 다음 스텝에 대해 반복하여 에 대한 posterior 를 얻는다.
따라서 KF의 한 스텝은 이전 상태 변수로부터 prior를 예측(=prediction)하고 관측값이 주어지면 이를 통해 likelihood를 구한 후 bayesian rule에 따라 posterior pdf를 구하는(=correction) 전형적인 Bayesian 필터의 특성을 지님을 알 수 있다. Bayesian 필터링을 가우시안 분포를 따르는 Belief에 대하여 재귀적으로 수행하는 것이 칼만 필터이다.
Discussion about Kalman gain
Correction 스텝을 자세히 살펴 보면 평균
- innovation: 관측값(
또한, 센서 노이즈
-
-
Summary
칼만 필터를 함수로 표현하면 다음과 같다.
Extended kalman filter (EKF)

칼만 필터는 모션 모델과 관측 모델이 선형이라는 가정 하에 상태를 추정한다. 하지만 현실세계의 대부분의 현상들은 비선형으로 모델링되므로 앞서 정의한 칼만 필터를 그대로 적용하면 정상적으로 동작하지 않는다. 비선형의 모션 모델과 관측 모델에서도 칼만 필터를 사용하기 위해 확장칼만필터(extended kalman filter, EKF)가 제안되었다. EKF는 테일러 1차 근사(talyor 1st approximation)을 사용하여 비선형 모델을 선형 모델로 근사한 후 칼만 필터를 적용하는 방법을 사용한다. EKF에서 모션 모델과 관측 모델은 다음과 같다.
-
-
-
-
-
-
-
위 식에서
이 때,
(
-
-
-
-
확률변수가 모두 가우시안 분포를 따른다고 가정하면
EKF 또한 KF와 동일하게 prediction에서 이전 스텝의 값과 모션 모델을 사용하여 예측값
초기값
-
-
Prediction step
Prediction은
Correction step
Correction은
Summary
확장칼만필터를 함수로 표현하면 다음과 같다.
Error-state kalman filter (ESKF)
NOMENCLATURE of error-state kalman filter
- prediction:
: 스텝의 correction 값이 주어졌을 때 스텝의 평균. 일부 문헌은 로도 표기함. : 스텝의 correction 값이 주어졌을 때 스텝의 공분산. 일부 문헌은 로도 표기함.
- correction:
: 스텝의 prediction 값이 주어졌을 때 스텝의 평균. 일부 문헌은 로도 표기함. : 스텝의 prediction 값이 주어졌을 때 스텝의 공분산. 일부 문헌은 로도 표기함.

에러상태 칼만필터(error-state kalman filter, ESKF)는 기존의 상태 변수
-
-
-
위 식을 해석하면 실제(true) 추정하고자 하는 상태 변수
기존의 EKF는 비선형성이 큰 true (nominal + error) 상태 변수를 선형화하여 필터링하기 때문에 속도가 느리고 시간이 지날수록 에러 값이 누적되는 반면에, ESKF는 에러 상태만을 선형화하여 필터링하기 때문에 속도 및 정확성이 더욱 빠른 장점이 있다. 기존 EKF와 비교했을 때 ESKF이 가지는 장점들을 정리하면 다음과 같다(Madyastha el tal., 2011):
- 방향(orientation)에 대한 에러 상태 표현법이 최소한의 파라미터를 가진다. 즉, 자유도만큼의 최소 파라미터를 가지기 때문에 over-parameterized로 인해 발생하는 특이점(signularity) 같은 현상이 발생하지 않는다.
- 에러 상태 시스템은 항상 원점(origin) 근처에서만 동작하기 때문에 선형화하기 용이하다. 따라서 짐벌락 같은 파라미터 특이점 현상이 발생하지 않으며 항상 선형화를 수행할 수 있다.
- 에러 상태는 일반적으로 값이 작기 때문에 2차항 이상의 값들은 무시할 수 있다. 이는 자코비안 연산을 쉽고 빠르게 수행할 수 있도록 도와준다. 몇몇 자코비안은 상수화하여 사용하기도 한다.
다만 ESKF는 prediction 속도는 빠르지만 nominal 상태에서 일반적으로 비선형을 가진 큰 값들이 처리되므로 nominal 상태가 처리되는 correction 스텝의 속도가 느린 편이다[2].
ESKF의 모션 모델과 관측 모델은 다음과 같다.
-
-
-
-
-
-
-
-
이 때, 두 자코비안
이 중 앞 부분
(
이전 correction 스텝에서 항상
nominal 상태 변수
-
관측 모델 함수도 동일하게 에러 상태 변수의 값을 0으로 치환하면 아래와 같이 전개된다.
-
-
확률 변수가 모두 가우시안 분포를 따른다고 가정하면
ESKF 또한 EKF와 동일하게 prediction에서 이전 스텝의 값과 모션 모델을 사용하여 예측값
초기값
-
-
Prediction step
Prediction은
위 식에서
Correction step
Correction은
위 식에서
Reset
nominal 상태가 정상적으로 업데이트되면 다음으로 에러 상태의 값을 0으로 리셋해야 한다. 리셋을 하는 이유는 새로운 nominal 상태에 대한 새로운 에러(new error)를 표현해야 하기 때문이다. 리셋으로 인해 에러 상태의 공분산
리셋 함수를
ESKF의 리셋 과정은 다음과 같다.
Summary
ESKF를 함수로 표현하면 다음과 같다.
Iterated extended kalman filter (IEKF)

Iterated extended kalman filter (IEKF)는 EKF에서 correction 스텝 부분을 반복적으로 수행하는 알고리즘이다. EKF는 비선형 함수를 선형화하여 상태 변수를 추정하기 때문에 선형화 과정에서 필연적으로 오차가 발생할 수 밖에 없다. IEKF는 이러한 선형화 오차를 줄이기 위해서 correction 스텝이 종료된 후 업데이트 변화량
이 때,
Compare to EKF
Commonality 1
IEKF에서 모션 모델과 관측 모델은 다음과 같다. 이는 EKF와 완전히 동일하다.
-
-
-
-
-
-
-
Commonality 2
다음으로 선형화 과정도 EKF의 (
-
-
-
-
Commonality 3
IEKF는 EKF와 동일하게
Difference 1 (Iterative nature)
EKF: prediction 값으로부터 한 번에 correction 값이 나온다.
IEKF: correction 값이 다시 prediction 값이 되어 correction 스텝을 반복적으로 진행한다.
-
Difference 2 (Different innovation term)
(
EKF의 경우 correction 스텝 (
EKF:
IEKF: 매 순간 correction 스텝을 반복하면서 새로운 상태(new operating point)에 대한 선형화를 수행하기 때문에 해당 부분이 소거되지 않는다.
만약 첫 번째 iteration
Prediction step
Prediction은
Correction step
Correction은
Summary
IEKF를 함수로 표현하면 다음과 같다.
Iterated error-state kalman filter (IESKF)

IEKF가 correction 스텝에서 true 상태 변수
-
-
-
반복적(iterative)으로 값이 업데이트 되는 IESKF 과정에서
Compare to ESKF
Commonality 1
IESKF의 모션 모델과 관측 모델은 다음과 같다. 이는 ESKF와 완전히 동일하다.
-
-
-
-
-
-
-
-
Commonality 2
IESKF의 두 자코비안
Commonality 3
선형화된 에러 상태 변수
-
Difference (MAP-based derivation)
ESKF derivation:
ESKF의 correction 스텝은 아래 수식을 전개하여 평균
-
-
IESKF derivation:
IESKF는 maximum a posteriori(MAP)을 사용하여 correction 스텝을 유도한다. 이 때, MAP 추정을 위해 Gauss-Newton 최적화 방식이 사용된다. 보다 자세한 내용은 해당 섹션을 참조하면 된다. 해당 유도 과정은 [6],[7],[8],[9],[10],[11] 을 참고하여 작성하였다. 이 중 [6]이 가장 자세하게 IESKF 유도 과정에 대해 설명하고 있다.
EKF를 MAP 방식으로 유도하면 최종적으로 아래와 같은 식을 최적화해야 한다.
위 식을 nominal 상태
Prediction 에러 상태 변수은 다음과 같이 정의한다.
Posterior(=correction) 에러 상태 변수는 다음과 같이 정의한다.
위 식을 이항하면 아래 공식이 성립한다.
(
위 식에서
이 때,
(
지금까지 계산한 (
IESKF는 이를 반복적으로(iterative)하게 추정함으로써 에러 상태 변수
위 수식으로부터 업데이트 수식을 유도하는 과정은 Derivation of IESKF update step 섹션을 참조하면 된다.
Prediction step
Prediction은
Correction step
Correction은
Summary
IESKF를 함수로 표현하면 다음과 같다.
Wrap-up
지금까지 설명한 KF, EKF, ESKF, IEKF, IESKF를 한 장의 슬라이드로 표현하면 다음과 같다. 클릭하면 큰 그림으로 볼 수 있다.
Kalman Filter (KF)

Extended Kalman Filter (EKF)

Error-state Kalman Filter (ESKF)

Iterated Extended Kalman Filter (IEKF)

Iterated Error-state Kalman Filter (IESKF)

References
[1] Kalman Filter - Wikipedia
[2] (Paper) Sola, Joan. "Quaternion kinematics for the error-state Kalman filter." arXiv preprint arXiv:1711.02508 (2017).
[3] (Youtube) Robot Mapping Coure - Freiburg Univ
[4] (Blog) [SLAM] Kalman filter and EKF(Extended Kalman Filter) - jinyongjeong
[5] (Blog) Error-State Kalman Filter understanding and formula derivation - CSDN
[6] (Paper) He, Dongjiao, Wei Xu, and Fu Zhang. "Kalman filters on differentiable manifolds." arXiv preprint arXiv:2102.03804 (2021).
[7] (Book) SLAM in Autonomous Driving book (SAD book)
[8] (Paper) Xu, Wei, and Fu Zhang. "Fast-lio: A fast, robust lidar-inertial odometry package by tightly-coupled iterated kalman filter." IEEE Robotics and Automation Letters 6.2 (2021): 3317-3324.
[9] (Paper) Huai, Jianzhu, and Xiang Gao. "A Quick Guide for the Iterated Extended Kalman Filter on Manifolds." arXiv preprint arXiv:2307.09237 (2023).
[10] (Paper) Bloesch, Michael, et al. "Iterated extended Kalman filter based visual-inertial odometry using direct photometric feedback." The International Journal of Robotics Research 36.10 (2017): 1053-1072.
[11] (Paper) Skoglund, Martin A., Gustaf Hendeby, and Daniel Axehill. "Extended Kalman filter modifications based on an optimization view point." 2015 18th International Conference on Information Fusion (Fusion). IEEE, 2015.
[12] (Blog) From MAP, MLE, OLS, GN to IEKF, EKF
[13] (Book) Thrun, Sebastian. "Probabilistic robotics." Communications of the ACM 45.3 (2002): 52-57.
'Fundamental' 카테고리의 다른 글
Quaternion kinematics for the error-state Kalman filter 내용 정리 Part 2 (5) | 2022.08.31 |
---|---|
Quaternion kinematics for the error-state Kalman filter 내용 정리 Part 1 (8) | 2022.08.27 |
선형대수학 (Linear Algebra) 개념 정리 Part 2 (1) | 2022.06.18 |
[SLAM] Optical Flow와 Direct Method 개념 및 코드 리뷰 (0) | 2022.06.16 |
[SLAM] Bundle Adjustment 개념 리뷰 (3) | 2022.06.10 |