Science

칼만필터(Kalman Filter) 쉽게 이해하기

불곰atoz 2023. 6. 18. 13:48

대부분의 칼만 필터 튜토리얼은 칼만 필터가 어떻게 유도되는지 이해하기 위해 고급 수학적 기술이 필요하기 때문에 이해하기 어렵다는 점에서 어려움을 겪습니다.

만약 루돌프 E. 칼만의 1960년 칼만 필터 논문을 읽어보셨다면, 이 개념이 얼마나 혼란스러울 수 있는지 알고 계실 것입니다.

하지만 칼만 필터를 사용하기 위해 칼만 필터를 유도하는 방법을 이해해야 할까요?

 

아닙니다. 

 

그저 칼만 필터가 어떻게 작동하는지 이해하면 됩니다.

사실, 칼만 필터는 소화 가능한 작은 단위로 설명된다면 누구나 이해할 수 있습니다. 이 글에서는 간단히 칼만 필터를 설명하고, 시스템의 상태를 추정하는 방법에 대해 설명합니다.

 

 

칼만 필터의 큰 그림

 

칼만 필터를 블랙박스로 살펴보겠습니다.

칼만 필터에는 입력과 출력이 있습니다.

입력은 잡음이 많고 때때로 측정이 부정확합니다.

출력은 잡음이 적고 때로는 더 정확한 추정치입니다.

추정치는 측정되거나 관찰되지 않은 시스템 상태 매개변수일 수 있습니다.

이 마지막 문장은 칼만 필터의 초능력을 설명합니다.

다시 칼만 필터는 관찰되거나 측정되지 않는 시스템 매개변수를 추정합니다.

 

 

간단히 말해서 칼만 필터는 관찰 가능한 매개변수와 관찰 불가능한 매개변수를 실시간으로 매우 정확하게 추정할 수 있는 알고리즘으로 생각할 수 있습니다.

 

 

정확도가 높은 추정치는 정확한 예측과 결정을 내리는 데 사용됩니다.

이러한 이유로 칼만 필터는 신뢰할 수 있는 정보가 필요한 로봇 및 실시간 시스템에 사용됩니다.

 

 

칼만 필터란?

간단히 말해서 칼만 필터는 시스템 매개변수를 추정하는 데 사용되는 일반 알고리즘입니다. 부정확하거나 노이즈가 많은 측정을 사용하여 해당 변수 또는 관찰할 수 없는 다른 변수의 상태를 더 정확하게 추정할 수 있습니다. 예를 들어 칼만 필터링은 다음을 수행하는 데 사용됩니다.

  • 객체 추적 - 객체의 측정된 위치를 사용하여 해당 객체의 위치와 속도를 보다 정확하게 추정합니다.
  • 디지털 저울의 체중 추정 – 표면에 측정된 압력을 사용하여 해당 표면에 있는 물체의 무게를 추정합니다.
  • 안내, 내비게이션 및 제어 – IMU(관성 측정 장치) 센서를 사용하여 물체의 위치, 속도 및 가속도를 추정합니다. 그 추정치를 사용하여 물체의 다음 이동을 제어합니다.

칼만 필터의 진정한 힘은 평활화 측정이 아닙니다. 정확하게 측정하거나 관찰할 수 없는 시스템 매개변수를 추정하는 능력입니다. 실시간으로 작동하는 시스템에서 향상된 정확도로 추정하면 시스템이 더 잘 제어할 수 있으므로 더 많은 기능을 사용할 수 있습니다.

 

칼만 필터 알고리즘 개요

칼만 필터 알고리즘 프로세스 다이어그램

위의 프로세스 다이어그램은 칼만 필터 알고리즘을 단계별로 보여줍니다.

 

이 과정을 한 번에 한 단계씩 살펴보겠습니다. 참조용으로 아래 전체에서 참조될 정의 표가 있습니다.

 

칼만필터(Kalman Filter) 변수 정의

 

 

칼만 필터 레이더 추적 자습서

 

이 튜토리얼에서는 공항 근처의 비행기와 물체를 추적하는 데 사용되는 칼만 필터의 단계별 프로세스를 살펴봅니다. 출력 추적 상태는 공역을 모니터링하는 항공 교통 관제사에게 표시하는 데 사용됩니다.

 

 

칼만 필터 튜토리얼 표기법

레이더는 똑같이 만들어지지 않습니다. 각각은 서로 다른 기능을 가지고 있으므로 지원 시스템에 서로 다른 유형의 정보를 제공합니다.

이 예에서 레이더는 2D 데카르트 좌표인 x 및 y로 측정값을 출력합니다.

 

측정값은 2x1 열 벡터 z 로 표시됩니다 .

측정에 대한 관련 분산-공분산 행렬 R은 측정이 발생한 시간 t  에 대한 시간 태그와 함께 레이더에서도 제공됩니다. 아래첨자 m은  측정 매개변수를 나타냅니다. 그리고 k 아래 첨자는 측정 순서를 나타냅니다.

 

 

레이더 측정 방정식 - 칼만 필터

 

 

칼만 필터는 레이더 측정을 기반으로 물체의 위치와 속도를 추정합니다.

추정값은 4x1 열 벡터x 로 표현됩니다 .

추정값에 대한 관련 분산-공분산 행렬은 4x4 행렬 P 로 표시됩니다.

또한 상태 추정에는 T 로 표시된 시간 태그가 있습니다.

 

 

칼만 필터 객체 상태 방정식

 

 

1단계: 시스템 상태 초기화

칼만 필터의 시스템 상태 초기화는 애플리케이션마다 다릅니다. 이 자습서에서 Kalman 필터는 첫 번째 측정으로 시스템 상태를 초기화합니다.

xk 등식 1-1
Pk _ 등식 1-2

이 레이더 추적 예제에서 입력 측정에는 위치 정보만 포함됩니다. 출력 시스템 상태에는 객체의 위치와 속도가 포함됩니다.첫 번째 측정이 이루어지면 물체에 대해 알려진 유일한 정보는 해당 시점의 위치입니다. 시스템 상태 추정치는 첫 번째 추정 후 입력 위치로 설정됩니다. 시스템 상태 오류 공분산은 첫 번째 측정의 위치 정확도로 설정됩니다.

 

 

방정식에서 시스템 상태 초기화

이 방정식은 첫 번째 측정을 수신한 후 이 칼만 필터의 입력 및 출력 값을 보여줍니다.

레이더 측정 1 방정식 - 칼만 필터
상태 및 시간 태그 방정식 초기화 - 칼만 필터
상태 공분산 방정식 초기화 - 칼만 필터

 

2단계: 시스템 상태 다시 초기화

 

속도 추정에는 계산을 위한 두 번째 위치 측정이 필요하기 때문에 시스템 상태 추정이 다시 초기화됩니다.

xk 등식 2-1
Pk 등식 2-2

속도는 선형 근사로 추정됩니다. 고등학교 물리학에서 기억할 수 있듯이 속도는 이동한 거리를 해당 거리를 이동하는 데 걸린 시간으로 나눈 값과 같습니다.업데이트된 시스템 상태 추정치는 두 번째 측정의 위치와 계산된 속도입니다. 업데이트된 시스템 상태 오류 공분산은 두 번째 측정의 위치 정확도와 근사 속도 정확도입니다. 이 속도 정확도 근사치는 필터를 통해 데이터를 실행한 후 조정 및 조정할 수 있는 것입니다. 이러한 값을 근사화하는 방법에는 여러 가지가 있으므로 이것이 근사값과 일치하지 않더라도 괜찮습니다!

 

 

칼만 필터에 대한 방정식의 시스템 상태 재초기화

 

이 방정식은 두 번째 측정을 수신한 후 이 칼만 필터의 입력 및 출력 값을 보여줍니다.

상태 공분산 행렬 의 속도 분산 항에 유의하십시오 .

즉, 이 값은 속도 상태 값에 대한 큰 불확실성을 나타냅니다. 속도 단위는 초당 미터입니다.

측정 2 방정식
상태 벡터 및 시간 태그 방정식 다시 초기화
상태 공분산 행렬 방정식 다시 초기화

 

3단계: 시스템 상태 예측 예측

세 번째 측정값이 수신되면 시스템 상태 추정치가 전파되어 측정값과 시간을 맞춥니다. 이 정렬은 측정 및 상태 추정을 결합할 수 있도록 수행됩니다.

xp =k-1 등식 3-1
P p = AP k-1 A T + Q 등식 3-2

시스템 모델은 이 예측을 수행하는 데 사용됩니다. 이 예제에서는 일정 속도 선형 모션 모델을 사용하여 시간 간격에 따른 객체 위치 변화를 근사화합니다. 등속 모델은 가속도가 0이라고 가정합니다.

등속 선형 운동 모델은 고등학교 물리학 수업에서 기억할 수도 있는 것입니다. 방정식은 물체의 위치가 일정한 속도를 가정하여 지정된 시간 동안의 초기 위치에 변위를 더한 것과 같다고 말합니다.

상태 전이 행렬은 이러한 방정식을 나타냅니다. 이 행렬은 상태 추정 및 상태 오류 공분산 행렬을 적절하게 전파하는 데 사용됩니다. 상태 오류 공분산 행렬이 전파되는 이유가 궁금할 수 있습니다.

그 이유는 상태 추정이 시간에 따라 전파될 때 이 미래 시간 단계에서 해당 상태에 대한 불확실성이 본질적으로 불확실하여 오류 공분산이 커지기 때문입니다.

 

 

Q 매트릭스

Q 매트릭스는 시스템 모델의 프로세스 노이즈를 나타냅니다. 시스템 모델은 근사치입니다. 시스템 상태의 수명 동안 해당 시스템 모델은 정확도가 변동합니다. 따라서 Q 매트릭스는 이 불확실성을 나타내는 데 사용되며 상태의 기존 노이즈에 추가됩니다. 이 예에서는 시스템의 실제 가속 및 감속이 이 오류에 기여합니다.

 

 

H 매트릭스

칼만 필터는 상태 공간에서 측정 공간으로 시스템 상태 추정을 변환하기 위해 상태-측정 매트릭스 H를 사용합니다. 일부 응용 프로그램의 경우 이것은 0과 1의 행렬입니다. 확장 칼만 필터를 사용하는 다른 응용 프로그램의 경우 H 행렬이 미분 방정식으로 채워집니다. 

 

방정식에서 시스템 상태 예측

측정 3 방정식
측정 3 상태 시간 태그 및 델타 방정식
칼만 필터 상태 전이 및 프로세스 노이즈 방정식
칼만 필터 상태 벡터 예측 방정식
예측 공분산 방정식 - 칼만 필터

 

4단계: 칼만 이득 계산

 

칼만 필터는 입력 측정이 시스템 상태 추정에 얼마나 영향을 미칠지 결정하는 각각의 새로운 측정에 대한 칼만 게인을 계산합니다. 즉, 시스템 상태를 업데이트하기 위해 정말 잡음이 많은 측정이 들어오면 Kalman Gain은 이 새로운 부정확한 정보보다 현재 상태 추정치를 더 신뢰합니다.

이 개념은 칼만 필터 알고리즘의 근본이며 이것이 작동하는 이유입니다. 최적의 추정치를 형성하기 위해 현재 추정치와 새로운 측정 정보에 적절하게 가중치를 부여하는 방법을 인식할 수 있습니다.

K = P P H T (HP P H T + R ) -1 등식 4-1

 

 

5단계: 시스템 상태 및 시스템 상태 오류 공분산 행렬 추정

 

Kalman Filter는 Kalman Gain을 사용하여 입력 측정 시간에 대한 시스템 상태 및 오차 공분산 행렬을 추정합니다. Kalman Gain이 계산된 후 두 계산에서 적절하게 측정값에 가중치를 부여하는 데 사용됩니다.첫 번째 계산은 새로운 시스템 상태 추정치입니다. 두 번째 계산은 시스템 상태 오류 공분산입니다.

xk = xp + K( zkHxp ) 등식 5-1
P k = P P – KHP P 등식 5-2

칼만 필터 추정 방정식위에서 계산된 상태 추정은 Kalman 필터가 유지하는 유일한 상태 기록입니다. 결과적으로 칼만 필터는 메모리 제한이 적은 시스템에서 구현할 수 있습니다.

 

 


다음 단계

이 게시물을 통해 칼만 필터가 얼마나 놀라운지 알 수 있기를 바랍니다. 그리고 그것이 여러 부분으로 나뉘면 그렇게 위협적이지 않습니다.결론적으로 칼만 필터는 최적의 상태 추정을 위한 일반적인 프로세스입니다. 정확한 추정이 필요한 다양한 용도에 사용됩니다. 이제 그것이 무엇이며 어떻게 작동하는지 알았으니 나가서 프로젝트에 사용하십시오!

이 게시물을 재미있게 읽으셨다면 좋아하는 소셜 네트워크에서 친구들과 공유해주세요! 읽어 주셔서 감사합니다!