### 0.0.1 GPS 데이터 블렌딩(Blending) 아키텍처 및 수학적 모델

### 0.0.1 GPS 데이터 블렌딩(Blending) 아키텍처 및 수학적 모델

서로 다른 위치에 장착된 두 대의 GPS(Primary와 Secondary)로부터 좌표계가 쏟아져 들어올 때, 이 두 데이터를 어떻게 요리하여 결점을 가리고 장점을 극대화할 것인가는 센서 융합의 핵심 과제다.

PX4-Autopilot은 이 두 센서의 관측치를 단순하게 더해서 반으로 나누는 원시적인 방식(Arithmetic Mean)을 사용하지 않는다. 대신, 각 센서가 뱉어내는 ’불확실성(Uncertainty)’을 실시간 가중치(Weight)로 환산하여, 믿을 수 있는 센서의 데이터를 더 많이 반영하는 수학적이고 우아한 가중평균 블렌딩(Weighted Blending) 아키텍처를 채택하고 있다.

0.1 EKF2 모듈 외부의 전처리(Pre-processing) 융합 계층

초기 아키텍처에서는 EKF 센서 융합 알고리즘 내부에서 직접 여러 대의 GPS 데이터를 처리하려는 시도가 있었으나, 이는 필터의 차원을 거대하게 만들고 연산 부하를 가중시키는 결과를 낳았다.

  • 현대의 PX4 아키텍처는 “GPS 융합은 EKF 필터 바깥에서 미리 끝낸다“는 철학을 따른다.
  • ekf2 모듈 내부의 gps_blending.cpp (혹은 최신 버전의 센서 허브) 로직은, 0번 인스턴스와 1번 인스턴스로 들어온 두 개의 sensor_gps 토픽을 먼저 낚아챈다.
  • 그리고 두 데이터를 수학적으로 잘 버무린 다음, 오직 단일한 가상의 우량 GPS 데이터(Blended GPS Data) 하나만을 창조하여 EKF2 메인 칼만 필터의 관측 업데이트(Observation Update) 로터에 밀어 넣는다.
  • 이러한 전처리 아키텍처 분리 덕분에, EKF2 입장에서는 마치 세상에 완벽에 가까운 단 하나의 초정밀 GPS 센서만 존재하는 것처럼 느끼게 되며, 필터의 수학적 복잡성이 극적으로 단순해진다.

0.2 위치 및 속도 오차에 기반한 가중치(Weight) 산정 모델

블렌딩의 핵심은 “누구를 더 신뢰할 것인가“를 결정하는 가중치(W_1, W_2) 산출 방정식이다.

  1. 동적 공분산(Dynamic Covariance) 추출: 두 GPS 수신기는 자신의 현재 위성 수신 상대를 평가하여 3차원 위치 오차(epv, eph)와 3차원 속도 오차 분산(Variance, \sigma^2) 값을 텔레메트리로 올려보낸다.
  2. 역분산 가중치(Inverse-Variance Weighting): PX4의 블렌딩 알고리즘은 통계학의 역분산 가중치 방식을 사용한다. 오차가 클수록(분산이 클수록) 가중치는 기하급수적으로 작아진다.
    기본적인 수학적 모델은 다음과 같다.
    W_1 = \frac{\frac{1}{\sigma_1^2}}{\frac{1}{\sigma_1^2} + \frac{1}{\sigma_2^2}}\ ,\quad W_2 = \frac{\frac{1}{\sigma_2^2}}{\frac{1}{\sigma_1^2} + \frac{1}{\sigma_2^2}}
    여기서 W_1 + W_2 = 1.0 이 항상 성립한다.
  3. 최종 융합값 도출: 위치와 속도 등 모든 벡터 값에 이 가중치를 곱하여 최종 좌표를 합성해 낸다.
    P_{blended} = W_1 \cdot P_1 + W_2 \cdot P_2
    이를 통해 노이즈가 심한 센서의 영향력을 자연스럽게 축소하고, 환경이 좋은 센서 쪽으로 궤적을 부드럽게(Smooth) 견인(Pulling)하는 원리다.

0.3 시간축 정렬(Time Alignment)과 지연(Latency) 보상

두 GPS는 제조사가 다를 수도 있고(예: u-blox와 Trimble), 동일한 모델이라 하더라도 내부 연산 주기에 미세한 차이가 있어 동일한 시각에 정확히 데이터를 뱉어내지 않는다.

  • 위상 위축 타임스탬프 동기화: 블렌딩 알고리즘이 두 데이터를 수식에 대입하기 위해서는, 두 데이터가 공간상에서 완벽히 동일한 순간의 하늘을 찍은 스냅샷이어야 한다.
  • PX4는 두 GPS 데이터 블록 중 미세하게 시간적으로 뒤처진(지연된) 데이터의 타임스탬프를 기준으로 삼고, 더 먼저 도착하여 앞서 나간 GPS의 위치 좌표를 기체 고유의 속도 벡터 모델(IMU 적분 반환값)을 이용하여 과거로 롤백(Rollback) 하거나 외삽(Extrapolation)하여 시간축을 강제로 일치시킨다.
  • 이러한 지독할 만큼 정교한 1마이크로초(1\mu s) 단위의 타임-얼라인먼트(Time Alignment) 전처리가 없다면, 제아무리 우수한 역분산 가중치 알고리즘을 들이대더라도 빠른 속도로 비행하는 드론은 위치 오차의 모순으로 인해 공중에서 스스로 회전(Toilet-bowling)해 버리고 말 것이다.