# 센서 퓨전 알고리즘 (Sensor Fusion Algorithms)

#### Kalman 필터 (Kalman Filter)

Kalman 필터는 선형 역학 시스템에서의 상태 추정에 널리 사용되는 알고리즘으로, 특히 센서 퓨전에서 중요한 역할을 한다. Kalman 필터는 Gaussian 분포를 가정하여 현재 상태와 센서로부터 얻은 측정값을 바탕으로 다음 상태를 예측하고, 이를 통해 최적의 상태 추정을 수행한다. Kalman 필터는 상태 예측(Prediction) 단계와 업데이트(Update) 단계로 구성되며, 이 과정을 반복적으로 수행하면서 시스템 상태를 추적한다.

* **상태 예측 (Prediction Step)**: 이전 상태와 시스템 모델에 기반하여 현재 상태를 예측한다. 이 단계에서는 시스템의 동역학 모델을 사용하여 상태 변수와 공분산 행렬을 예측한다.
* **상태 업데이트 (Update Step)**: 실제 측정값과 예측된 상태를 비교하여 예측 오차를 계산하고, 이를 바탕으로 상태 추정을 업데이트한다. 여기서 Kalman 이득(Kalman Gain)은 예측과 측정값 간의 최적의 가중치를 결정하는 요소로, 상태 추정의 정확도를 크게 향상시킨다.

Kalman 필터는 그 계산 효율성 때문에 실시간 시스템에서 많이 사용되며, 센서 퓨전에서 특히 선형 시스템에 대해 매우 적합하다. 그러나 비선형 시스템에서는 성능이 저하될 수 있다.

#### 확장 Kalman 필터 (Extended Kalman Filter, EKF)

확장 Kalman 필터(EKF)는 Kalman 필터의 비선형 확장 버전으로, 비선형 시스템에서의 상태 추정을 가능하게 한다. EKF는 선형화(linearization) 기법을 사용하여 시스템의 비선형성을 처리한다. 이는 상태 예측과 업데이트 단계에서 비선형 시스템 모델을 일차 근사화(Taylor series expansion)하여 선형 모델로 변환한 후 Kalman 필터를 적용하는 방식으로 동작한다.

* **선형화**: 비선형 시스템 모델을 Taylor 급수를 사용하여 선형 근사화함으로써 EKF는 선형 Kalman 필터와 유사한 방식으로 동작할 수 있다. 이 때, Jacobian 행렬을 사용하여 시스템 모델의 선형화를 수행한다.
* **한계**: EKF는 선형화 과정에서 근사 오차가 발생할 수 있으며, 이는 필터의 성능 저하로 이어질 수 있다. 특히 강한 비선형성을 가진 시스템에서는 EKF의 정확도가 제한될 수 있다.

EKF는 비선형 시스템에서 가장 널리 사용되는 센서 퓨전 알고리즘 중 하나이며, 특히 로봇 공학과 자율주행 차량에서 많이 사용된다.

#### 무향 칼만 필터 (Unscented Kalman Filter, UKF)

무향 칼만 필터(UKF)는 EKF의 한계를 극복하기 위해 개발된 알고리즘으로, 비선형 시스템에서 보다 높은 정확도를 제공한다. UKF는 시스템의 비선형성을 처리하기 위해 Sigma Points라는 개념을 도입하여, 비선형 변환에 대한 선형화를 필요로 하지 않는다.

* **Sigma Points 생성**: UKF는 상태 변수의 분포를 대표하는 여러 개의 Sigma Points를 생성하고, 이들을 비선형 함수에 통과시켜 새로운 상태 분포를 추정한다. 이를 통해 비선형 변환 후의 상태 분포를 더 정확하게 모델링할 수 있다.
* **무손실 변환**: Sigma Points를 통해 상태 변수를 변환하기 때문에, EKF에서 발생할 수 있는 선형화로 인한 근사 오차가 발생하지 않는다. 이는 UKF가 비선형 시스템에서도 높은 정확도를 유지할 수 있게 한다.

UKF는 복잡한 비선형 시스템에서도 우수한 성능을 보이며, EKF보다 계산 복잡도가 약간 증가하지만 비선형성이 강한 시스템에서는 선호된다.

#### 입자 필터 (Particle Filter)

입자 필터(Particle Filter)는 비선형 및 비Gaussian 시스템에서의 상태 추정에 사용되는 강력한 알고리즘이다. 입자 필터는 시스템의 상태를 다수의 파티클(입자)로 표현하며, 각 파티클은 상태 공간에서의 하나의 가설을 나타낸다.

* **입자 생성 및 초기화**: 초기 상태 분포에 따라 다수의 파티클을 생성하고, 각 파티클에 초기 가중치를 부여한다. 이 과정은 상태 공간을 대표할 수 있도록 설계된다.
* **입자 필터링**: 각 시간 단계에서, 파티클은 시스템의 동역학 모델에 따라 예측되고, 센서 데이터와 비교하여 가중치가 업데이트된다. 그 후, 중요도 재표본화(Resampling) 과정을 통해 높은 가중치를 가진 파티클을 유지하고, 낮은 가중치를 가진 파티클을 제거하여 상태 추정을 강화한다.
* **장점과 단점**: 입자 필터는 매우 유연하여 복잡한 비선형 시스템과 비Gaussian 분포를 처리할 수 있지만, 계산 비용이 높고 실시간 응답이 어려울 수 있다. 따라서 계산 자원이 제한된 시스템에서는 적용이 어려울 수 있다.

#### 베이즈 네트워크 (Bayesian Network)

베이즈 네트워크(Bayesian Network)는 확률적 그래픽 모델로, 센서 퓨전에서 복잡한 의사결정을 처리하기 위해 사용된다. 베이즈 네트워크는 확률변수 간의 조건부 의존성을 그래프로 표현하며, 이를 통해 복잡한 확률 관계를 명확하게 모델링할 수 있다.

* **조건부 확률 (Conditional Probability)**: 각 노드는 특정 상태의 확률을 나타내며, 엣지는 노드 간의 조건부 확률을 나타낸다. 이를 통해 다양한 센서 데이터 간의 의존 관계를 모델링하고, 주어진 증거에 따라 최적의 상태를 추론할 수 있다.
* **추론 과정**: 주어진 센서 데이터와 네트워크 구조를 기반으로, Bayes 정리를 사용하여 새로운 증거가 주어졌을 때의 상태를 추론한다. 이는 센서 퓨전에서의 상태 추정과 불확실성 관리를 가능하게 한다.

베이즈 네트워크는 복잡한 시스템에서 센서 간의 상호 의존성을 명확히 하여, 보다 정교한 센서 퓨전을 가능하게 하지만, 네트워크 구조의 설계가 복잡할 수 있다.

#### Dempster-Shafer 이론 (Dempster-Shafer Theory)

Dempster-Shafer 이론은 센서 퓨전에서 불확실한 정보를 결합하는 방법으로, 증거 이론(Evidence Theory)에 기반을 두고 있다. 이 이론은 각각의 센서로부터 얻은 증거를 결합하여 최종적인 상태를 추론하며, 특히 불확실성이나 모호성이 큰 상황에서 유용하다.

* **기본 신뢰 할당 (Basic Belief Assignment, BBA)**: 각 증거에 대해 신뢰도를 할당하고, 이를 통해 가능한 가설에 대한 신뢰를 계산한다.
* **결합 규칙 (Combination Rule)**: 여러 증거를 결합하여 최종 신뢰도를 계산한다. Dempster's Rule of Combination을 사용하여 각 증거의 신뢰도를 결합하고, 이로부터 최종 상태를 추론한다.
* **장점**: Dempster-Shafer 이론은 불완전하거나 모호한 정보에서도 상태 추론을 가능하게 하며, 다양한 가설에 대해 유연하게 대응할 수 있다. 그러나 계산 비용이 높고, 많은 센서로부터 복잡한 증거를 처리할 때 성능이 저하될 수 있다.

***

관련 자료:

1. Thrun, S., Burgard, W., & Fox, D. (2005). *Probabilistic Robotics*. MIT Press.
2. Li, X. R., & Jilkov, V. P. (2003). Survey of maneuvering target tracking: Part I. Dynamic models. *IEEE Transactions on Aerospace and Electronic Systems*, 39(4), 1333-1364.
3. Bar-Shalom, Y., & Li, X. R. (1995). *Multitarget-Multisensor Tracking: Principles and Techniques*. YBS Publishing.
4. Ristic, B., Arulampalam, S., & Gordon, N. (2004). *Beyond the Kalman Filter: Particle Filters for Tracking Applications*. Artech House.
