Contents — find the section you need

로봇은 필요한 상태 정보를 직접 읽는 경우가 드뭅니다. 엔코더는 위치 정보는 제공하지만 속도는 제공하지 않을 수 있고, IMU는 가속도와 각속도에 편향을 포함하며, 카메라 위치 정보는 늦게 도착하거나 아예 사라지기도 합니다. 상태 관측기는 플랜트 모델과 예측 출력과 측정 출력 간의 차이를 이용하여 숨겨진 상태를 추정합니다. 선형 칼만 필터(KF)는 오차 공분산을 가지며, 가정된 프로세스 및 측정 노이즈를 기반으로 예측과 측정 중 어느 것을 더 신뢰할지 결정하는 표준 관측기입니다.

핵심은 "센서 평균값"을 사용하는 것이 아닙니다. 데이터가 나타내는 물리적 시간, 가정된 오차 모델, 그리고 센서 간 불일치가 발생할 때 어떻게 처리하는지를 명확히 하는 것입니다. 추정치가 확실히 잘못되면 PID, LQR, MPC 등의 제어기가 잘못된 방향으로 작동하게 됩니다. ROS 2의 타이밍 및 실행 경계에 대해서는 ROS 2 Primer를, 더 폭넓은 센서 통합에 대해서는 Sensor Fusion Primer를 참조하십시오.

실질적인 결론

  • 관측기는 모델 예측과 혁신을 통해 \hat{x}을 업데이트합니다. 관측 불가능한 상태는 단순히 더 효율적인 필터를 선택하는 것만으로는 고유하게 재구성할 수 없습니다.

  • 칼만 필터(KF)는 상태 오차 공분산 P을 전달하고, 프로세스 공분산 Q 및 측정 공분산 R을 사용하여 칼만 이득 K을 계산합니다.

  • Q,R은 모델 및 센서 오차에 대한 가정이며, 임의의 "정확도 조절 변수"가 아닙니다. 혁신, 공분산, 타임스탬프 및 오류 데이터를 사용하여 이를 검증하십시오.

  • 추정치가 오래되었거나, 공분산이 과도하거나, 혁신이 비정상적이거나, 변환이 실패하는 경우, 저하된 상태를 제어기에 전달하고 위험도에 따라 동작을 줄이거나 중지하십시오.

상태 공간 관측기와 관측 가능성

이산 선형 시스템의 경우,

x_{k+1}=A_dx_k+B_du_k+w_k,\qquad z_k=Cx_k+v_k

x은 실제 상태, u은 알려진 입력, z은 측정값, w은 공정 외란, 그리고 v은 측정 잡음입니다. 루엔버거 관측기는 다음과 같은 형태를 가집니다.

\hat{x}_{k+1}=A_d\hat{x}_k+B_du_k+L(z_k-C\hat{x}_k)

마지막 항은 혁신(innovation)입니다. 관측기 이득이 높으면 L은 측정값을 빠르게 추종하지만 더 많은 잡음을 전달합니다. 반대로 L이 낮으면 모델을 더 오랫동안 신뢰하지만 외란을 느리게 보정합니다.

Diagram 1 · Use the button to switch views
Kalman filter predict-update loopThe preceding estimate and covariance are predicted by a model, then corrected from sensor innovation and covariance before being supplied to a controller.prior x̂ₖ₋₁, Pₖ₋₁state and uncertaintypredictA, B, Q → x̂⁻, P⁻updateinnovation, K, R → x̂⁺, P⁺measurement zₖIMU / encoder / cameracontrollerLQR/MPC/PID

다이어그램: Duskcoil, 측정된 것이 아니라 개념적인 것입니다. 추정치와 공분산은 내부 모델 양이며, 센서에서 직접 관측한 값이 아닙니다.

이상적인 선형 사례에서 모든 상태를 재구성하려면 관측 가능성 행렬 \mathcal O=[C^T,(CA)^T,\ldots]^T이 완전 랭크를 가져야 합니다. 이중 코일의 위치만 측정합니다. 적분기는 시간 이력을 통해 속도를 관측 가능하게 만들 수 있지만, 샘플링 속도, 양자화, 지연 및 드롭아웃은 결과 추정치의 유용성을 결정합니다. "관측 가능"은 최대 지연 시간 및 정확도 요구 사항을 대체하는 것이 아닙니다.

칼만 예측 및 업데이트

평균이 0인 백색 가우시안 분포 w\sim\mathcal N(0,Q) 및 v\sim\mathcal N(0,R)을 가정하면 사전 분포는 다음과 같습니다.

\hat{x}_k^-=A_d\hat{x}_{k-1}^++B_du_{k-1},\qquad P_k^-=A_dP_{k-1}^+A_d^T+Q

P은 상태의 분산이 아니라 추정 오차의 불확실성입니다. 측정 중단 시 모델 전파로 인해 일반적으로 P^-은 Q까지 증가합니다.

도착하는 측정값에 대해 혁신 \nu_k=z_k-C\hat{x}_k^-과 그 공분산을 계산합니다.

S_k=CP_k^-C^T+R

그런 다음 다음과 같이 업데이트합니다.

K_k=P_k^-C^TS_k^{-1},\qquad \hat{x}_k^+=\hat{x}_k^-+K_k\nu_k,

P_k^+=(I-K_kC)P_k^-

유한 정밀도는 P의 대칭성 또는 양의 준정치성을 손상시킬 수 있습니다. 조셉 형식인 P^+=(I-KC)P^-(I-KC)^T+KRK^T이 종종 선호되며, 인수분해된 선형 시스템을 푸는 것이 명시적으로 역행렬을 구하는 것보다 안전한 경우가 많습니다. 공분산 행렬 P은 매 업데이트 후 확인해야 합니다.

Q와 R 선택

R은 카탈로그 정확도 수치뿐만 아니라 실제 진동, 온도, 조명, 거리, 패킷 재시도 및 양자화 조건에서 측정된 오차를 반영해야 합니다. Q은 한 기간 동안 모델이 얼마나 잘못될 수 있는지를 나타냅니다. 여기에는 알 수 없는 가속도, 편향된 랜덤 워크, 페이로드 변화 또는 모델링되지 않은 동역학이 포함됩니다. Q이 너무 작으면 모델을 과도하게 신뢰하는 것이고, Q이 너무 크면 잡음이 많은 측정값을 나타냅니다.

수치 예: 위치 측정값을 이용한 속도 추정

For 샘플링 주기 T를 갖는 1차원 등속 상태 x=[p\ v]^T,

A_d=\begin{bmatrix}1&T\\0&1\end{bmatrix},\quad B_d=\begin{bmatrix}T^2/2\\T\end{bmatrix},\quad C=\begin{bmatrix}1&0\end{bmatrix}

위치만 측정됩니다. 구체적인 무차원 업데이트로, T=1, \hat{x}^-=[0\ 0]^T, P^-=[[2,1],[1,1]], z=1, R=1, C=[1\ 0]를 가정합니다. 그러면 S=3, K=[2/3\ 1/3]^T, \hat{x}^+=[2/3\ 1/3]^T가 되며, 사후 공분산은 P^+=(I-KC)P^-=[[2/3,1/3],[1/3,2/3]]입니다. 이는 하나의 업데이트를 보여주는 예시이며 센서 정확도를 보장하는 것은 아닙니다. 큰 초기값 P_{vv}은 속도에 대한 불확실성을 나타냅니다. 반복적인 위치 혁신은 추정 속도 \hat v을 추론합니다. 데이터 손실이 발생하면 예측은 계속 실행되지만 불확실성이 증가합니다. 속도가 필요한 컨트롤러는 P_{vv}, 측정 기간 및 잔차 상태를 확인하고, 정의된 범위를 벗어나면 속도를 줄이거나 정지해야 합니다.

IMU를 추가하면 단기 가속도를 추적하는 데 도움이 되지만, 상태 변수에서 바이어스를 제외하면 적분 오차가 누적됩니다. 카메라 또는 LiDAR 관측값은 알려진 지도, 마커 또는 기타 기준점에 연결될 경우 절대 위치를 제한할 수 있지만, 상대 추적만으로는 전역 위치를 보장할 수 없습니다. GNSS는 위성 가시성, 다중 경로, 업데이트 속도, 지연 시간 및 프레임 정렬의 영향을 받습니다. 비선형 자세 또는 거리 관측값의 경우 확장 칼만 필터(EKF) 또는 UKF를 사용할 수 있지만, 선형 칼만 필터는 Q,R, 측정 공분산 R, 시간, 이상치 및 관측 가능성에 대한 문제를 여전히 고려합니다.

정규화된 혁신 제곱 \nu^TS^{-1}\nu는 예측 분포와 일치하지 않는 측정값을 감지하는 데 도움이 됩니다. 값이 크면 이상치, 잘못된 프레임 등을 의미할 수 있습니다. 타임스탬프 오류, 센서 결함 또는 모델 불일치. 데이터 게이팅은 오류를 숨기는 장치가 아닙니다. 진단 및 안전한 성능 저하 모드를 제공하기 위한 것입니다.

대표적인 GNSS 통합 IMU대표적인 IMU/INS
대표적인 심도 카메라대표적인 심도 카메라

이미지: Xsens MTi-G (Kallap85, CC BY-SA 4.0) 및 Intel RealSense D435 (Marc Auledas, CC BY-SA 4.0), Wikimedia Commons. 이 이미지는 대표적인 센서이며, 측정된 증거나 권장되는 결합 시스템을 나타내는 것은 아닙니다.

PID, LQR, MPC 입력

PID는 필터링된 원시 피드백을 사용할 수 있지만, 미분항과 내부 속도 루프는 종종 추정값을 활용하면 더 효율적입니다. LQR은 다중 상태 \hat{x}를 가정합니다. 분리 원리 조건 하에서 LQR 게인과 칼만 추정기는 LQG 아키텍처를 구성합니다. 포화, 지연 및 비선형성은 여전히 실제 환경에서의 강건성을 저해할 수 있습니다. MPC 또한 시의적절한 초기 상태 및 외란 추정에 의존합니다. 오래된 추정값이나 실제보다 작은 공분산을 기반으로 최적화하면 잘못된 환경에 대한 정교한 계획이 만들어집니다.

목표 일반적인 제어 필요한 추정기 출력 고장 응답
단일 속도/온도 루프 PID 필터링된 측정값 속도 추정 센서 손실 시 적분 중지

로컬 다중 상태 안정화 | LQR/LQG | 동기화된 \hat{x} 및 유효성 | 증가하는 공분산을 과도하게 신뢰하지 않음 |

제한된 경로/할당 | MPC | 상태, 지연, 외란, 신뢰도 | 오래된 상태/솔버 오류 시 속도 저하 또는 중지 |

로봇 타이밍 및 오류 방지 작동

ROS 2에서는 측정 시간과 메시지 도착 시간을 구분해야 합니다. 카메라 데이터가 지연되어 현재 시점으로 업데이트되는 경우 로봇이 과거로 되돌아가는 현상이 발생할 수 있습니다. 다음 정책 중 하나를 선택하고 문서화하십시오. 이력 되감기/재전파, 지연된 데이터 거부, 또는 저수준 주행 거리 측정과 느린 지도 보정 분리. ROS 2 입문 및 센서 융합 입문에 설명된 ROS 2 전송 및 좌표 변환은 필터 외부의 전제 조건입니다. 방정식.

타임아웃, 공분산 상한, 반복적인 혁신 게이트 실패, 발산 편향, 사용 불가능한 변환 및 마감 시간 초과를 모니터링합니다. 모든 측정값이 사라지면 예측만으로 무한정 실행하지 마십시오. 적용 분야에 따라 속도 제한, 중지, 중복 또는 운영자 인계 방식을 선택하십시오. 추정기 재설정은 상태를 점프시킬 수 있으므로 컨트롤러 참조, 적분 상태 및 출력은 점프 없이 처리해야 합니다.

구현 체크리스트

  1. 상태, 측정, 입력, 프레임, 측정 시간 및 수신 시간을 정의합니다.

  2. 각 상태에 대한 관측 가능성, 필요한 정확도 및 최대 지연 시간을 정량화합니다.

  3. 사양, 데이터 및 테스트에서 Q,R,P_0에 대한 증거를 기록합니다.

  4. P, 혁신, 게이트 및 타임아웃의 대칭성/명확성을 모니터링합니다.

  5. 드롭아웃, 이상치, 재위치화 및 편향 변화 사례를 주입합니다.

  6. 추정 품질이 저하될 때 PID/LQR/MPC가 수신하는 내용을 정의하고 독립적인 안전성을 검증합니다. 액션.

참고 자료

이해력 점검
측정값에 대한 신뢰도가 높아지면 어떻게 될까요?

동일한 예측 불확실성에서 측정값의 공분산이 낮을수록 업데이트가 측정값 쪽으로 이동합니다. 비현실적인 신뢰도는 추정치가 노이즈를 따르게 만들 수 있습니다.

Related reading

Explore another aspect of this fieldMPC 연구실 — 예측 범위와 조향 한계 내에서 곡률 수열을 다시 풀다Explore another aspect of this field경로 추종 비교 연구실 — 동일한 조건에서 PP, APP, RPP, Stanley, MPC 실행하기Explore another aspect of this fieldPure Pursuit 연구실 — 고정 선행거리 경로 추종 비교