### 0.0.1 다중 경로(Multipath) 오차 및 GPS Glitch(위치 튐) 감지 아키텍처

### 0.0.1 다중 경로(Multipath) 오차 및 GPS Glitch(위치 튐) 감지 아키텍처

위성 항법 시스템을 호도하는 가장 흔하고 끈질긴 적은 재밍이나 스푸핑 같은 인위적인 공격이 아니라, 불리한 비행 환경 그 자체가 만들어내는 자연스러운 물리적 현상인 다중 경로(Multipath) 다.

도심의 빌딩 숲(Urban Canyon)이나 깊은 계곡, 심지어 넓은 수면 위를 저공비행할 때, GPS 수신기는 우주공간에서 일직선(Line-of-Sight)으로 내리꽂히는 진짜 신호뿐만 아니라, 지형지물에 한 번 이상 튕겨져 들어오는 가짜 신호(반사파)까지 뒤섞여 수신하게 된다.

본 절에서는 이러한 다중 경로 간섭이 어떻게 수신기 내부에서 위치 점프(Glitch)라는 치명적인 증상으로 발현되는지 살펴보고, PX4의 EKF2 필터가 이를 감지하고 방어하기 위해 어떤 아키텍처를 구축하고 있는지 해부한다.

0.1 다중 경로 현상이 야기하는 ’GPS Glitch’의 물리적 수학적 원인

GPS 위성에서 출발한 전파는 빛의 속도(c, 약 3 \times 10^8 m/s)로 날아온다. 만약 이 전파가 유리창에 튕겨서 30미터(m)를 우회하여 드론의 안테나에 도착했다면, 수신기는 전파의 도착 시간이 10^{-7}초 지연된 것을 감지하고, 이 위성이 실제보다 30m 더 멀리 있다고 오판하게 된다.

방어막이 없는 원시(Raw) 추정 알고리즘에서는 이 반사파의 가중치가 높아지는 순간, 기체의 추정 위치 좌표계가 수 미터에서 수십 미터까지 순식간에 텔레포트(Teleport)하는 현상이 벌어진다. 이를 GPS Glitch(위치 튐) 라고 부른다.

  • 코드 위상(Code Phase) 추적의 혼란: 수신기의 상관기(Correlator)는 위성이 보낸 의사잡음코드(PRN Code)와 자신이 생성한 코드를 맞춰보며 도착 시간을 역산한다. 반사파가 섞여 들어오면 이 상관 피크(Correlation Peak)가 찌그러지거나 두 개로 분열되어 코드 위상 추적 루프(DLL, Delay Lock Loop)가 락(Lock)을 잃고 헤매게 된다.
  • 비행 제어 루프への 재앙: 만약 드론이 포지션 홀드(Position Hold) 모드로 제자리 비행 중이었는데, 동쪽으로 5미터 떨어진 위치로 Glitch가 발생했다고 가정하자. PX4의 위치 제어기(Position Controller)는 기체가 갑자기 서쪽으로 5m 날려갔다고 착각하고, 원래 위치(동쪽)로 돌아가기 위해 기체를 미친 듯이 기울여 가속한다. 조종사 입장에서는 기체가 갑자기 제멋대로 미친 듯이 튕겨 나가는 ‘Fly-away’ 사고로 직결된다.

0.2 EKF2의 방어벽: 혁신 기반(Innovation-based) Glitch 감지

PX4의 EKF2(Extended Kalman Filter)는 이 치명적인 Glitch 현상을 원천 차단하기 위해, 단순히 GPS가 던져주는 좌표를 맹신하는 대신 IMU(관성 측정 장치)의 적분 데이터를 든든한 등대로 삼아 철차한 검증을 거친다.

이 검증의 핵심이 바로 혁신(Innovation) 이다. EKF2는 다음의 두 가지 정보의 차이(잔차)를 수학적으로 비교한다.

  1. EKF 예측치 (Prediction): 지난 1초 동안 IMU의 가속도와 자이로스코프 데이터를 이중 적분하여 추측한 1초 뒤의 기체 위치 행렬. (매우 짧은 시간 동안은 IMU가 GPS보다 압도적으로 정확하다).
  2. GPS 관측치 (Observation): 방금 전 GPS 수신기가 계산해서 보내온 새로운 위치 좌표.
  • 혁신(Innovation)의 발생과 평가: GPS가 가져온 좌표가 IMU 적분값(예측치) 기반의 바운더리를 훌쩍 벗어나 엉뚱한 곳에 찍히면, 이 두 값의 차이인 ‘위치 혁신(Position Innovation)’ 수치가 급격히 치솟게 된다. 수학적으로는 3표준편차(3\sigma) 이상의 혁신이 발생하면 필터는 경보를 울린다.

0.3 게이트 거부(Gate Rejection)와 Glitch 방어 메커니즘

혁신이 임계값(Threshold)을 넘어서면 EKF2는 즉각적인 방어 기동(Defense Mechanism)에 돌입한다. 이것이 PX4가 Ardupilot과 철학을 공유하면서도 세부 구현에서 차이를 보이는 EKF 에러 헨들링의 정수다.

  1. 일시적 기각(Transient Rejection): 위치 혁신이 EKF2_GPS_V_GATE (속도 게이트) 또는 EKF2_GPS_P_GATE (위치 게이트)로 설정된 파라미터 계수를 초과하면, EKF2는 “이 데이터는 물리적으로 도달 불가능하다“고 판단하고 해당 GPS 샘플을 융합(Fusion) 과정에서 매몰차게 버린다. 기체는 오직 IMU 적분값만으로 자세와 위치를 유지하며 버틴다 (Coast Mode).
  2. 타임아웃(Timeout)과 결단: 무조건 버티는 것은 아니다. 다중 경로 환경을 빠져나오지 못해 타당성 검사(Gate) 실패가 파라미터에 정해진 시간(EKF2_REQ_VDRIFT 등과 연관) 이상 지속되면, EKF2는 “GPS가 완전히 미쳤거나, IMU가 고장 났거나 둘 중 하나다“라는 결론에 도달한다.
  3. 대체 센서 스위칭(Fallback): 이 순간 메인 GPS는 완전히 거부(Rejection)되며, 이중화 통신망에 엮여 있는 2번 GPS로 가중치를 스위칭하거나, 이마저도 실패하면 위치 제어를 포기하고 기체를 고도 모드(Altitude Mode)나 Failsafe(강제 착륙 등)로 강등시켜 치명적인 ‘Fly-away’ 충돌 사고를 물리적으로 예방한다.

결론적으로, EKF2의 Glitch 감지 아키텍처는 빛의 속도로 날아오는 전파의 거짓말을 물리적인 관성 법칙(IMU)의 철퇴로 검증해 내는 고도의 수학적 체스 게임이다.