13.6.2.1.2. 테스트 비율(Test Ratio) 플롯 분석을 통한 필터 발산(Filter Divergence) 사전 감지
EKF2(확장 칼만 필터)가 최악의 파국 즉, 기체가 물리적 제어 불능 상태(Flyaway)가 되거나 치명적 추락(Crash)에 직면하는 상태인 **필터 발산(Filter Divergence)**에 이르는 현상은 결코 아무런 예고 없이 즉각적으로 일어나는 것이 아니다. 반드시 사전 전조 증상이 존재하며, 이를 데이터 증거로 포착해 낼 수 있는 가장 예민하고 강력한 바이오마커(Biomarker)가 바로 estimator_status 내의 **테스트 비율(Test Ratio)**이다.
테스트 비율 선도(Test Ratio Plot)를 세밀하게 분석하는 것은, 마치 의사가 환자의 심전도(ECG) 데이터를 해석하여 며칠 뒤에 나타날 수도 있는 급성 심근경색을 조기 진단하는 것과 동일한 분석학적 가치를 지닌다.
0.1 EKF2 테스트 비율(Test Ratio)의 분석학적 의미
앞서 수학적 기반에서 살펴보았듯, Test Ratio는 측정치의 혁신(Innovation)과 EKF가 스스로 허용하는 불확실성(Innovation Variance, S) 간의 비율이다. 값이 1.0을 넘어가면 해당 센서 피드백을 버리게(Reject) 된다.
Flight Review나 PlotJuggler에서 이 패러미터를 Y축으로 두고 시간(t)에 대해 플로팅(Plotting)해 보면, 비행 내내 잔잔하게 0.1 \sim 0.3 사이를 오가는 이상적인 형태가 아니라, 특정 고도 변경 커맨드나 자기장 외란 지점에서 급격한 스파이크(Spike)나 지속적인 우상향 트렌드(Trend)를 그리는 것을 발견할 수 있다.
이러한 거동 패턴이야말로 센서 오차가 “점진적으로” 누적되어, 이윽고 필터 모델의 수리적 붕괴(발산)를 초래할 준비를 하고 있는 명백한 ’사전 신호’이다.
0.2 자기장 분산(Mag Test Ratio)의 잠행성 발산
가장 빈번하게 일어나는 필터 발산의 원인 중 하나는 기체 프레임 내부 배선 구조나 외부 강자성체 환경 변화에 의한 자기장 간섭이다.
조종사가 기체를 요동(Yawing)할 때마다 mag_test_ratio가 0.5 이상으로 크게 요동치거나, 심지어 0.8 선상에 머무르며 “임계값 1.0“을 지속해서 두드리고(Knocking) 있다면 이는 매우 심각한 경고다.
- 진단: 이 플롯 거동은 하드웨어적인 나침반 캘리브레이션 불량(Mag Inconsistency)이나, 전원 케이블 인덕턴스로 인한 전류 간섭일 확률이 높다.
- 결과: 당장 추락하지는 않더라도, 결국 선회 과정 중 Test Ratio가 1.0을 초과하게 되고, EKF2가 자력계 데이터를 차단(Timeout)하면서 관성 센서만으로 헤딩을 추정하다 급격한 회전(Toilet Bowling) 발산으로 이어진다.
0.3 가속도/속도(Velocity Test Ratio)의 진동 노이즈(Vibration Noise) 결합 분석
비행 고도 및 위치 제어 실패를 진단할 때는 vel_test_ratio와 pos_test_ratio를 한 화면에 동기화(Synchronization)하여 띄워야 한다. 특히 고정된 위치(Hold)에 있음에도 불구하고 이 두 플롯의 톱니바퀴 모형(Sawtooth) 등락이 심하다면, EKF 내부 상태 방정식이 원시 관성 데이터의 고주파(High-frequency) 진동(Vibration)에 의해 오염되고 있는 중이다.
- 추가 연동 튜닝: 이 패턴이 보이면 기계적인 진동 흡수 시스템(Anti-vibration Mount)을 재점검하거나,
src/modules/sensors단에서의 소프트웨어 로우패스 필터(Low-pass filter) 컷오프(Cutoff) 주파수(IMU_GYRO_CUTOFF,IMU_ACCEL_CUTOFF) 튜닝이 필수적으로 동반되어야 한다.
0.4 이상 징후 조기 포착을 위한 GCS 스크립팅 (응용)
숙련된 엔지니어들은 이 Test Ratio 팩터들을 오프라인 ULog 분석에만 국한하지 않는다. 커스텀 QGroundControl이나 MAVSDK 클라이언트를 이용하여 MAVLink 실시간 텔레메트리(Telemetry)를 구독할 때, 이 Test Ratio가 0.8 이상인 상태가 3초 이상 지속(Moving Average Filtering)되는 알고리즘을 추가한다.
이러한 알람(Alarm)을 구성해 두면, 필터가 완전히 발산하기 전 조종사나 자율 에이전트에게 선제적 수동 이관(Manual Override)이나 즉각적인 보조 위치 제어 센서(예: Optical Flow 강제 유도) 개입을 지시할 수 있는, 강력한 Failsafe 아키텍처를 세울 수 있다.