27.7.2. 주요 EKF 강제 리셋 및 복구 소스 흐름
본 소절에서는 PX4-Autopilot의 확장 칼만 필터(EKF) 모델이 비행 중 센서의 물리적 한계를 초과하는 외란(Disturbance)이나 장기적인 수치 누적 오차에 직면했을 때, 시스템의 완전한 붕괴를 막고 항법 무결성을 재건하기 위해 발동하는 ‘강제 리셋(Forced Reset)’ 및 ’에러 복구 파이프라인(Recovery Pipeline)’의 저수준(Low-level) 소스 흐름을 분석한다.
1. 필터 강제 리셋의 제어공학적 필요성
시계열 추정기(Time-series Estimator)인 EKF는 이전 프레임의 상태 벡터(State Vector, \hat{x}_{t-1})에 누적된 오차 공분산을 바탕으로 현재 프레임(\hat{x}_{t})을 예측하는 재귀적(Recursive) 속성을 지닌다. 따라서 GPS 락(Lock)이 터널 구간에서 10초 이상 상실되거나, 기압계가 기구학적 양압에 의해 일시적으로 마비될 경우, 관성 전항법(Dead Reckoning)에만 의존하게 된 필터의 예측 오차는 시간의 제곱 또는 세제곱 단위로 극심하게 발산(Divergence)한다.
이러한 상태에서 다시 위성 신호가 유입되거나 기압이 정상화되더라도, 기각 게이트(Innovation Gate) 한계를 이미 아득히 벗어난 새로운 ‘정확한’ 측정치들은 필터 입장에서 오히려 ’이상점(Outlier)’으로 간주되어 지속적으로 기각(Reject)당하는 모순적 데드락(Deadlock)에 빠지게 된다. PX4 코어 아키텍처는 이 교착 상태를 타파하기 위해 특정한 타임아웃(Timeout) 및 분산 임계 조건을 만족할 경우, EKF 내부 상태 변수의 일부 또는 전체를 해당 시점의 절대 관측치(Absolute Observation) 궤도로 물리적으로 강제 이동시키는 리셋 메커니즘(Reset Mechanism) 을 가동한다.
2. 주요 리셋 서브시스템 분석 및 트리거 로직
PX4의 EKF2 래퍼 아키텍처(주로 src/modules/ekf2/EKF/control.cpp 영역) 내에 구현된 대표적인 상태 융합 복구 파이프라인은 다음과 같은 제약식을 따른다.
2.1 위치 및 속도(Position & Velocity) 단기 리셋
GPS 신호가 빌딩 숲(상호 간섭)에서 상실된 후 재인가(Re-acquisition)되었을 때 주로 발생한다. 위치 혁신(Position Innovation)의 기각 플래그(innovation_check_flags의 reject_hor_pos 등)가 시스템 파라미터(EKF2_REQ_NSATS, EKF2_REQ_EPH 타임아웃 룰)에 지정된 한계 초(Seconds) 이상 지속될 경우, 필터는 기존의 발산 중이던 위치/속도 공분산 행렬을 완전히 파기한다.
재초기화 흐름은 현재 들어오는 GPS 관측 지표 위로 기체의 내부 위치 상태(X, Y 벡터)를 단숨에 워프(Warp)시키며, 공분산 매트릭스의 해당 도메인 대각 원소들을 초기 불확실성 상수로 팽창시킨 뒤 융합을 재개한다.
2.2 고도(Height) 강제 융합 복구
장시간의 전진 비행(Forward Flight) 시 프로펠러와 기체 프레임 구조에서 발현되는 벤추리(Venturi) 계열의 정압 오류로 기압계 고도가 실제 위치와 상당한 이격을 보일 때 구동된다. 고도 혁신 테스트 비율이 지속적으로 1.0을 돌파한 상태로 N프레임 이상 머무르면, 고도 융합 로직은 1차적으로 비전(VIO)이나 GPS의 보조 고도 센서로 백업(Fallback)을 시도하며, 만약 이마저 여의치 않을 경우 강제 리셋을 통해 메인 센서 측으로 고도 상태 변수(Z)를 끌어내린다.
2.3 요 방위각(Yaw/Heading) 정렬 리셋
전자기장의 지배력이 강한 철탑 주변 등에서 지자기 센서가 치명적 교란을 받을 경우, 방향성(Heading) 공분산은 급속히 수축/왜곡된다. 간섭 지역을 탈출한 후에도 정상 방위를 되찾지 못할 시 무인항공기는 ‘Toilet Bowl(변기통 회전 현상)’ 역학을 겪는다.
지자계 융합 타임아웃이 만료되면 EKF 모듈은 자기장 상태 변수를 일체 리셋(Mag Reset)시키며, GPS 기반 측위나 외부 모션 캡처 시스템이 제공하는 요(Yaw) 정보를 우선하여 지향각(Heading)을 강제 동기화시킨다.
3. MAVLink 이벤트 트리거 및 비행 제어기 보상 아키텍처
로봇 운영체제(ROS 2) 및 GCS(QGroundControl) 중심 통신 하에서, 단일 EKF 인스턴스 내부의 리셋 행위는 매우 거친 불연속성을 수반하므로 외부 제어계에서 반드시 인지해야만 한다.
PX4 시스템은 리셋 함수가 호출되는 정확한 마이크로초(us) 시점에 estimator_event_flags uORB 토픽 내 특정 비트(예: reset_pos_to_gps, reset_vel_to_gps 등)를 1로 트리거한다. 더불어 중요한 것은 리셋 전후의 좌표 변화량 폭, 즉 ‘리셋 오프셋(Reset Offset)’ 을 산출하여 독립적인 벡터 스토리지에 발행한다는 점이다.
비행 제어기 루프(위치 제어기, Position Controller)는 ఈ 발행된 이벤트 플래그와 리셋 오프셋을 구독(Subscribe)한다. EKF 내부로는 5\text{m}의 공간적 점프가 일어났더라도, 위치 제어기는 리셋 전후의 시점 데이터를 스무딩(Smoothing)하는 오프셋 상쇄 보상 로직을 작동시켜 드론의 추진 모터에 갑작스러운 피드백 스파이크(Spike)가 전달되는 것을 구조적으로 억제한다.
결과적으로 조종사나 자동 비행 알고리즘 관점에서는(Ardupilot 시스템 대비 더욱 엄격히 통제된 환경 속에서) 시스템이 물리적으로 요동치지 않고 유려하게 에러를 삼키고 좌표계 정합성을 복구(Recovery)해내는 탄력성(Resilience)을 체감하게 된다.