파이썬 칼만 필터 예제

칼만 필터 알고리즘은 입력으로 다음을 필요로 : Thrun의 과정이 도움이되었지만, 나는 여전히 칼만 필터가 작동하는 방법 이나 그들이 유용한 이유를 명확히 할 수없는 자신을 발견, 그래서 교수 Biezen에 의해 강의시리즈를 시청하기로 결정했다. 이 글의 대부분은 그의 강의를 기반으로하기 때문에 나는 매우 그들을 통해 가는 것이 좋습니다. 측정 오류가 예측 오류에 비해 작은 경우 앞에서 다시 한 번 기억하십시오(따라서 Kalman Gain이 1에 더 가까워짐). 그렇지 않으면 측정 오차가 예측 오차보다 크면 Kalman 게인은 예측과 측정 간의 차이에 덜 중점을 둡것입니다. 각 반복을 통해 모델은 실제 값에 더 가깝게 추정하여 칼만 게인을 더 작게 만듭니다. 새 데이터는 많은 불확실성을 가질 수 있으며 예측 모델을 버리고 싶지 않습니다. GPS 장치는 자전거의 $x $와 $y $ 위치를 직접 측정하기 때문에 $ bm{H}$ 매트릭스는 쉽게 구성 할 수 있습니다. 상태 벡터를 필터링하여 $x_{text{gps}}}와 $y_{text{gps}}만 있는 관측 벡터를 생성합니다. 칼만 필터의 작업은 분포를 히스토그램으로 표현하는 대신, 우리가 찾으려는 개체의 위치를 가장 잘 예측하는 것으로 서 뮤와 시그마를 제곱으로 유지하는 것입니다. 위의 수식에서 가장 중요한 것은 평균과 분산 사이의 관계를 알아차리는 것이기 때문에 정규화 상수를 c로 요약했습니다. 매트릭스 $ A 시그마 G `(G 시그마 G `+ R)^{-1} $ 종종 $ K_{Sigma} $로 작성하고 칼만 게인이라고합니다. off 대각선 용어가 0이면 한 변수에 기여하는 추정 오차가 다른 변수와 독립적임을 나타냅니다. 이 경우 다른 변수의 추정 오차로 인해 한 변수의 추정값을 조정하지 않습니다.

이 행렬에 상태 및 칼만 게인 업데이트와 같은 다른 행렬이 곱해지면 공분산이 프로세스에 영향을 미치지 않습니다. 일반 Kalman 필터의 한 가지 문제는 순전히 선형 관계가 있는 모델에서만 작동한다는 것입니다. 위의 GPS 전용 예제에서는 괜찮았지만 다른 두 센서의 데이터를 동화하려고하면 방법이 무너집니다. 왜? 속도 및 각도 속도 측정($s$및 $omega$)은 자전거 상태 벡터와 비선형 관계를 갖기 때문입니다.