13.3.1.1.1. 3D 위치 표준편차 임계값(Standard Deviation Threshold) 도달을 위한 누적 평균 및 공분산 행렬(Covariance Matrix) 계산 로직

13.3.1.1.1. 3D 위치 표준편차 임계값(Standard Deviation Threshold) 도달을 위한 누적 평균 및 공분산 행렬(Covariance Matrix) 계산 로직

베이스 스테이션(Base Station)이 자신의 위치를 측량(Survey-in)하는 과정은 본질적으로 다변량 통계학(Multivariate Statistics)의 문제이다. 하늘에서 수신되는 개별 GPS 신호는 대기 지연과 다중경로(Multipath)에 의해 랜덤 워크(Random Walk) 형태로 흔들리는 노이즈 뭉치이다. PX4-Autopilot 의 EKF2와 교신하기 전, 베이스 모듈은 이 노이즈 구름의 3차원적 분포(Spread)가 사용자가 지정한 ‘표준편차 임계값(Standard Deviation Threshold)’ 내로 수렴했는지 수학적으로 증명해야 한다.

본 절에서는 그 증명의 핵심 뼈대가 되는 **누적 평균(Cumulative Mean)**과 **공분산 행렬(Covariance Matrix)**의 실시간(On-line) 갱신 알고리즘을 로우레벨(Low-level) C++ 로직 관점에서 깊이 있게 분석한다.

1. Welford의 알고리즘 기법을 수용한 누적 평균 연산

하드웨어 제약이 심한 마이크로컨트롤러(MCU)에서 수천 초 동안 쌓이는 GPS X, Y, Z 좌표를 모두 배열(Array) 버퍼에 담아두고 평균을 내는 것은 메모리 낭비이자 오버플로우(Overflow)를 유발한다. 따라서 이전 상태의 평균값과 현재 스텝의 데이터만을 취하는 재귀적(Recursive) 방식이 동원된다.

위도(Lat), 경도(Lon), 고도(Alt) 각각의 좌표계 축 방향 원시 데이터가 x_k 라 할 때, k 번째 샘플이 들어온 시점의 이동 평균 \mu_k 는 다음과 같이 도출된다.

\mu_k = \mu_{k-1} + \frac{x_k - \mu_{k-1}}{k}

  • 잔차(Residual)의 감쇄: 우항의 x_k - \mu_{k-1} 는 직전 평균값에서 새롭게 들어온 위치 관측치가 얼마나 벗어나 있는지 그 ’잔차(Innovation)’를 구한다. 이 잔차를 누적 카운트 k 로 나눔으로써, 시간이 흐를수록(즉 k 가 무한대로 갈수록) 단일 노이즈 스파이크가 전체 위치 추정치에 미치는 물리적 파괴력을 부드럽게 감쇄시킨다.

2. 3D 공간 공분산 행렬(Covariance Matrix)의 갱신 로직

좌표의 평균점이 구해지면, 그 평균점을 중심으로 노이즈가 어느 방향으로 얼마나 뚱뚱하게(분산되어) 퍼져있는지 측정해야 한다. 이를 위해서는 3 \times 3 크기의 공분산 행렬 \mathbf{P} 가 필요하다.

베타적 계산이 아닌 실시간 갱신을 위해 Welford 알고리즘을 확장 행렬식에 활용한다. 궤적 중간에 누적되는 분산의 합을 S_k 라 하자.

S_k = S_{k-1} + (x_k - \mu_{k-1})(x_k - \mu_k)

이후 이 누적합을 계측 횟수 k 로 나누면 우리가 그토록 갈구하는 실시간 분산 \sigma_k^2 을 획득한다.

\sigma_k^2 = \frac{S_k}{k}

3차원 공간(E, N, U 좌표 기저)에 배속시키면, 공분산 행렬에서 주대각선 상의 원소(Diagonal elements)들은 각각 동(East), 북(North), 상(Up) 방향을 향하는 단변량 분산 벡터 집합을 형성한다.

\mathbf{P}_k = \begin{bmatrix} \sigma_{E}^2 & \sigma_{E,N} & \sigma_{E,U} \\ \sigma_{N,E} & \sigma_{N}^2 & \sigma_{N,U} \\ \sigma_{U,E} & \sigma_{U,N} & \sigma_{U}^2 \end{bmatrix}

  • 여기서 diag(\mathbf{P}_k) 만을 추출해 합산하여 제곱근을 씌우면 3차원 위치 표준편차(3D Standard Deviation) 혹은 Mean 3D Accuracy 가 도출된다.

Accuracy_{3D} = \sqrt{\sigma_{E}^2 + \sigma_{N}^2 + \sigma_{U}^2}

이 값이 베이스 수신기 내부 메모리 레지스터(예: u-blox의 UBX-NAV-SVIN 페이로드 중 meanAcc)에 실시간으로 매초 포장되어 밖으로 튀어나온다.

3. 임계값 비교 및 QGroundControl 연동 로직

로컬 베이스 스테이션이 Survey-in 루틴에서 진정한 3D 원점 확정(Fixed Mode Transition)을 달성하기 위한 마지막 심판대는 바로 이 공분산 행렬 기반의 Accuracy_{3D} 가 사용자가 지정한 임계값(Threshold)을 하향 돌파(Break-down)했느냐의 여부이다.

3.1 임계 조건 결합 (And-Gate) 모델

보통 QGroundControl의 Survey-in 설정 탭에서 다음과 같은 두 개의 파라미터를 강제한다.

  • 지속 시간 (Duration Threshold): k \cdot \Delta t \ge T_{min}
  • 위치 정밀도 (Accuracy Threshold): Accuracy_{3D} \le \epsilon_{limit}

이 두 부등식이 동시에 참(True)이 된 순간의 \mu_k (최종 3D 평균 좌표)가 지구상에서 베이스 스테이션의 단일 기준 등대로서 절대 위치로 영구히 고정(Freeze)된다.

3.2 실무적 오해석과 무한 오실레이션(Oscillation) 방어

아마추어 엔지니어들은 \epsilon_{limit} 값을 0.5\text{ m} 처럼 파격적으로 낮게 잡는 실수를 범한다. 도심지 환경이나 안테나 그라운드 플레인이 취약한 상황에서는 고조화파 형태의 다중경로가 수렴식을 왜곡시킨다.
분산의 정의 상 x_k 에 일관된 형태의 바이어스(Bias)가 계속 밀려 들어올 경우, 공분산 행렬의 축소율은 한계치(Bottom Line)에 부딪힌 채 상하로 요동치게 되며 수십 시간이 흘러도 목표 임계값을 통과하지 못해 이륙 대기가 무한정 지연되는 참사가 벌어진다.

위의 공분산 행렬 기반 추정 방식을 명확히 이해한다는 것은, 다변량 노이즈 구름의 확률적 크기를 조율하고, 베이스 스테이션을 합리적 시간 안에 Fixed 상태로 끌어올리는 현실적 파라미터(예: 1.5\text{ m} \sim 2.5\text{ m}) 타협을 이끌어 낼 수 있는 공학적 직관을 얻었음을 의미한다.