Kalman Filter and Sensor Fusion #1 How it work
sensor fusion은 여러개의 센서로부터 수집된 데이터를 결합하여 보다 정확하고 신뢰할 수 있는 데이터를 생성하는 기술을 의미한다. 이 과정에서 각 센서의 장점을 최대한 사용하면서 단일 센서가 가지는 오류나 한계를 보완할 수 있다.
만약 우리가 자율 주행 로봇을 개발한다고 상상해보자. 로봇은 탐색을 위해 자신의 위치를 정확히 알아야한다.
그렇기에 로봇은 상태를 가질 필요가 있다. 상태는 무엇이든 될 수 있다. 위치나 속도 뿐아니라 탱크의 유체 양, 엔진의 온도, 터치패드의 손가락 위치 데이터도 상태가 될 수 있다.
만약 로봇이 GPS 센서에만 의존하여 이동한다면 절벽에서 추락하거나 장애물을 만날 수 있다. GPS 데이터는 10m 정도의 오차가 존재하고 위치를 완벽하게 추정하기에는 불충분하다.
시스템 상태에 대한 정확한 추정치를 요구하는 이유는 시스템을 변경하는 방법을 결정하기 위해 피드백 제어가 필요하기 때문이다. 하나이상의 센서로 시스템을 직접 측정하고 센서 자체가 측정하는 것 이상의 추가 정보를 제공하여 추정을 개선한다면 더 정확한 결과값을 도출할 수 있을 것이다.
kalman filter는 센서의 노이즈 측정과 process model 의 잘못된 예측을 결합해 시스템의 상태를 추정한다.
측정 noise를 가우시안 분포로 모델링할 수 있고 프로세스 모델을 가우시안 오차 분포가 있는 선형으로 모델링할 수 있는 경우, 선형 칼만 필터는 최적의 상태 추정치를 생성한다.
최적의 추정은 두 개의 가우시안 분포의 곱으로 밝혀졌다. 따라서 선형 칼만 필터 방정식은 예측 단계에 가우스 곱셈을 더한 것으로 생각할 수 있다.
공분산
공분산 행렬은 상태 변수 간의 분산과 공분산을 포함하며, 이를 통해 상태 변수들 간의 상관관계를 표현할 수 있다.
상관관계가 없는 경우, 공분산 행렬은 대각선 요소들만 존재하게 된다.
상관관계가 있는 경우, 비대각선 요소들이 나타나며, 이는 공분산을 통해 두 상태 변수 간의 관계를 나타낸다.
- μ : 확률 분포의 평균
- σ² : 확률 분포의 분산
아래 그래프에서 위치, 속도는 상관 관계가 없다. 즉, 한 변수는 다른 변수에 대해 아무것도 알려주지 않는다.
두 변수 간의 상관관계가 없기 때문에 타원은 대각선 형태가 아닌 독립적인 축을 따라 그려진다.
분산은 모든 정보를 포함하지 않는다. 공분산을 쓰는 이유는 고려해야할 두 상태가 상호 연관될 수 있다는 점 때문이다.
아래 그래프에서 위치와 속도는 서로 연관되어 있다. 위치는 속도에 따라 달라질 수 있다. 이는 공분산 행렬의 비대각 요소가 0이 아니라는 것을 의미한다.
이전 위치를 기반으로 새 위치를 추정할 때, 속력이 높았다면 더 멀리 이동했을 가능성이 있다는 점을 나타낸다.
공분산은 두 상태간의 상관관계를 보여주는 방식으로 타원을 왜곡한다. (대각선 방향으로 기울어짐)
이 상관 관계는 공분산 행렬로 표현할 수 있다.
대각선 항은 각 상태의 자체 분산이고 비대각선 항은 각 상태와 다른 모든 상태의 공분산이다. 상관관계가 없는 상태변수일 경우 공분산 행렬은 대각선이 된다.
Measurement Model
References
- https://engineeringmedia.com/controlblog/the-kalman-filter
- https://www.bzarg.com/p/how-a-kalman-filter-works-in-pictures/