### 0.0.1 주(Primary) 수신기 장애 판단 상태 머신: 타임아웃(Timeout), 위성 수 급감, EKF Innovation 임계치 초과 판별식

### 0.0.1 주(Primary) 수신기 장애 판단 상태 머신: 타임아웃(Timeout), 위성 수 급감, EKF Innovation 임계치 초과 판별식

PX4 센서 융합 모듈이 다중 GPS 중 현재 기체 제어권을 쥐고 있는 주 수신기(Primary Receiver)를 버리고 보조 수신기(Secondary Receiver)로 갈아타는 결정은 기체의 생사가 걸린 중대한 사안이다. 너무 민감하게 반응하면 핑퐁(Ping-pong) 현상이 발생하여 궤적이 너덜트려지고, 너무 둔감하면 기체가 이미 건물에 충돌한 뒤에야 스위칭이 발생한다.

이 섬세한 결단을 내리기 위해 ekf2 모듈 내부에는 여러 개의 치명적 결함 조건을 다단계로 감시하는 장애 판단 상태 머신(Fault Detection State Machine) 이 맹렬하게 돌아가고 있다. 본 절에서는 이 상태 머신을 구성하는 세 가지 기둥(Pillar)을 소스 코드의 논리에 맞추어 해부한다.

0.1 하드웨어적 단절: 타임아웃(Timeout) 판별

가장 원초적이고 직관적인 장애는 GPS 하드웨어 자체가 침묵하는 경우다.

  • PX4는 매 루프마다 마지막으로 성공적으로 파싱(Parsing)된 sensor_gps 토픽의 타임스탬프(timestamp)를 현재 시스템 시간과 비교한다.
  • 이 두 시간의 차이(\Delta t)가 파라미터로 설정된 임계치(예: EKF2_REQ_GPS_H 기반 통상 0.5초 ~ 1.0초)를 초과하면, 상태 머신은 1차 경보인 Timeout Flag를 발령한다.
  • 이는 케이블 핀 빠짐, CAN 버스 트래픽 폭주로 인한 패킷 드롭, 혹은 전원 모듈 불안정으로 인한 수신기 리부팅 등 철저히 하드웨어 및 수송 계층(Transport Layer) 로우 레벨의 결함을 잡아내는 가장 빠르고 즉각적인 차단기(Circuit Breaker)다.

0.2 위성 수 급감 및 HDOP 치솟음: 수신 환경 악화 판별

데이터는 주기적으로 잘 들어오고 있지만, 드론이 밀집된 고층 빌딩 숲(Urban Canyon)이나 깊은 계곡으로 진입하여 하늘 시야(Sky View)가 가려질 때 발생하는 장애다.

  • 상태 머신은 타임아웃 검사를 무사히 통과한 데이터에 대해 내용물 검사(Payload Inspection)를 실시한다.
  • 만약 satellites_used (필터링에 사용 가능한 위성 개수)가 급격히 하락하여 최소 요구치(통상 6개) 밑으로 떨어지거나, 위치 정밀도 저하율인 HDOP(Horizontal Dilution of Precision)가 2.5 이상으로 치솟아 ephepv 분산 값이 파라미터 임계치를 돌파하면 두 번째 경보인 Quality Degradation Flag가 켜진다.
  • 이 경우, 단순히 데이터가 나빠졌다고 바로 스위칭하는 것이 아니라 예비 수신기(Secondary)의 데이터 상태를 동시에 확인한다. 만약 예비 수신기가 더 밝은 하늘을 보고 있어서 위성 수가 넉넉하다면, 센서 셀렉터는 조종간을 Secondary로 부드럽게 넘겨준다.

0.3 논리적 기만(Spoofing/Glitch) 감지: EKF Innovation 폴트 판별

가장 교활하고 치명적인 장애는, 데이터 갱신도 빠르고 위성도 15대나 잡힌다고 보고하지만 그 좌표가 통째로 조작되어 기체를 엉뚱한 방향으로 끌고 가는 스푸핑(Spoofing) 공격이나 극단적인 글리치(Glitch) 상황이다.

이러한 논리적 기만을 잡아내는 것은 오직 IMU 기반의 추측 항법(Dead-reckoning)을 근간으로 하는 EKF(Extended Kalman Filter) Innovation 판별식뿐이다.

  1. Innovation(오차) 도출: EKF2는 과거의 가속도와 각속도를 적분하여 “현재 우리 드론은 X, Y 에 있어야 해“라고 스스로 예측(Prediction)한다. 그리고 방금 수신된 GPS의 실제 관측치(Observation)를 이 예측치와 빼서 그 격차인 이노베이션(Innovation) 벡터를 산출한다.
  2. 공분산 기반 확률 검증(Gate 통과 여부): 이 격차가 단순히 GPS 특유의 자잘한 허용 노이즈인지, 아니면 명백한 거짓말인지를 수학적으로 검증한다. 이를 정규화된 이노베이션 제곱(Normalized Innovation Squared, NIS)이라는 통계적 게이트(Gate) 테스트로 판별한다.
  3. Innovation Fault Flag 발령: GPS 좌표가 EKF의 물리적 예측 한계(예: 드론이 0.1초 만에 100m를 이동했다고 주장하는 경우)를 벗어나 게이트 테스트(Gate Test)를 통과하지 못하면, 상태 머신은 가장 치명적인 GPS Position/Velocity Innovation Fault Flag를 띄운다.
  4. 만약 이 결함이 일시적인 튀어 오름(Spike)이 아니라 수 초간 지속된다면, EKF2는 “Primary 수신기가 심각한 기만 상태에 빠졌다!“고 확정 판결을 내리고 스위칭 트리거를 격발(Strike)시킨다.

타임아웃, 수신 품질 저하, 그리고 최후의 논리적 모순율(Innovation) 판단까지, 이 세 겹의 상태 머신 그물이 촘촘하게 엮여 있기에 PX4 시스템은 거친 하늘에서도 결코 방향을 잃지 않는다.