일관성 (Consistency)
정확도는 추정기가 얼마나 틀렸는지를 알려주고, 일관성은 추정기가 자신이 얼마나 틀렸는지를 알고 있는지를 알려줍니다. SLAM 추정기는 상태 추정값 (자세, 랜드마크)와 그 확신을 표현하는 공분산 를 모두 출력합니다. 실제 추정 오차가 그 보고된 공분산과 통계적으로 양립 가능할 때 --- 즉 추정기가 과신하지도(공분산이 너무 작음) 과소신뢰하지도(공분산이 너무 큼) 않을 때 --- 추정기는 일관적입니다.
NEES: 표준 일관성 검정
일관성을 확인하는 표준 도구는 **NEES (Normalized Estimation Error Squared, 정규화된 추정 오차 제곱)**입니다:
여기서 는 시간 에서의 실제 참값(ground truth) 상태입니다. 추정기가 일관적이고 오차가 가우시안이라면, NEES는 자유도를 가진 카이제곱 분포를 따르므로, 그 기댓값은 상태 차원과 같습니다:
한 번의 실행에서의 NEES는 잡음이 있는 확률 변수이므로, 이 검정은 몬테카를로 실험으로 수행됩니다: 독립적인 잡음 실현으로 동일한 시나리오를 번 반복하고 평균을 냅니다,
그런 다음 가 분위수(quantile)로부터 유도된 신뢰 구간(을 으로 나눈 값) 내에 머무는지 확인합니다. 해석:
- 평균 NEES ≈ 상태 차원 --- 일관적.
- 평균 NEES가 훨씬 큼 --- 과신: 필터가 자신을 너무 신뢰하며, 결국 발산을 초래합니다(측정값이 다운웨이팅되거나 거부됨).
- 평균 NEES가 훨씬 작음 --- 보수적: 위험하지는 않지만 추정기가 정보를 낭비합니다.
상태의 위치 블록과 방향 블록을 별도로 평가하는 것이 일반적입니다. 그렇게 하면 하나의 정직한 블록이 과신하는 블록을 가리지 못합니다.
NIS: 참값 없이 검정하기
NEES는 실제 로봇에서는 거의 얻을 수 없는 참값을 필요로 합니다. 온라인으로 동작하는 동반 검정은 **NIS (Normalized Innovation Squared, 정규화된 이노베이션 제곱)**입니다: 이노베이션 와 이노베이션 공분산 를 가진 필터에 대해,
일관성 하에서 성립합니다. 여러분은 이미 이 이름을 모른 채로 이 개념을 항상 사용하고 있습니다: 측정값에 대한 카이제곱 게이팅(NIS가 분위수 임계값을 넘는 관측값을 거부하는 것)은 측정값별 일관성 검정입니다 --- 그리고 이는 여기에 입력되는 공분산이 정직할 때만 작동합니다.
SLAM 추정기가 비일관적이 되는 이유
일관성은 단순한 이론적 세부사항이 아니라 SLAM에서 실질적이고 실용적인 문제입니다:
- 변화하는 추정값에서의 선형화. 필터 기반 및 슬라이딩 윈도우 추정기는 비선형 모델을 선형화하며, 동일한 변수를 시간에 따라 다른 추정값에서 선형화하면 관측 불가능해야 할 방향(예: 시각-관성 오도메트리에서의 전역 위치와 방위각)으로 허위 정보가 주입됩니다. 그러면 실제 정보가 없는 방향으로 공분산이 줄어듭니다 --- 과신.
- 동결된 마지널화 사전 분포. 오래된 상태를 마지널화한 후, 남은 사전 분포는 오래된 추정값에서 선형화되며 재선형화될 수 없습니다; 이를 더 최신 추정값에서 계산된 새로운 야코비안과 혼합하는 것이 전형적인 “FEJ 문제”입니다 (마지널화 참조).
- 게이지 자유도(Gauge freedom). 완전한 SLAM에서 해는 전역 프레임(그리고 단안의 경우 스케일)까지만 정의됩니다. 공분산은 게이지 방향을 따라 특이(singular)하므로, 전체 상태에 대한 단순한 NEES는 잘 정의되지 않습니다 --- 게이지를 고정하거나(예: 첫 번째 자세를 고정) 게이지 불변 방식으로 오차를 평가하세요.
해결 방법
이후 레벨에서 만나게 될 해결 방법들:
- First-Estimate Jacobians (FEJ) --- 모든 정보가 일관된 방향으로 유입되도록 각 변수의 야코비안을 그 첫 번째 추정값에서 평가합니다.
- 관측 가능성 제약(Observability-constrained) 설계 --- (OpenVINS 스타일 필터에서처럼) 관측 불가능한 부분공간으로부터 허위 정보를 명시적으로 투영해 제거합니다.
- 동결된 사전 분포를 재선형화하지 않는 마지널화 방식, 또는 동결된 선형 사전 분포를 유지하는 대신 비선형 팩터를 복원하는 방식.
- 공분산이 양의 정부호성을 잃지 않도록 하는 제곱근 / 정보 형식(square-root / information-form) 구현, 수치적 건전성을 위해서입니다.
실용적인 절차
- 알려진 참값과 실제적인 잡음 파라미터를 가진 여러분의 센서 구성 시뮬레이션을 만드세요.
- 잡음 시드만 다르게 하여 수십 번의 몬테카를로 시행을 실행하세요.
- 위치와 방향 블록에 대해 별도로, 시간에 따른 평균 NEES를 카이제곱 경계와 대비하여 도표화하세요.
- 실제 데이터에서는 NIS와 카이제곱 게이트에 의해 거부되는 측정값의 비율을 모니터링하세요 --- 거부율의 상승은 과신하는 추정기의 현장 증상입니다.
SLAM에서의 의미
ATE/RPE 같은 궤적 지표는 평균 오차만을 측정하므로, 동일한 ATE를 가진 두 시스템이라도 이후 단계에서는 매우 다르게 동작할 수 있습니다: 비일관적인 시스템은 과신하는 공분산을 루프 클로저 게이팅, 센서 융합, 또는 플래너에 공급하여 잘못된 결정을 초래합니다. 확률적 SLAM 백엔드 --- 특히 마지널화가 있는 EKF나 고정 지연 스무더 ---를 평가하거나 설계할 때마다, 시뮬레이션된 데이터에서 NEES를 확인하는 것은 추정기가 자신의 불확실성에 대해 정직한지를 검증하는 표준적인 방법입니다.