### 0.0.1 WGS84 기준 타원체(Ellipsoid) 모델의 기하학적 정의 및 이심률(Eccentricity) 연산

### 0.0.1 WGS84 기준 타원체(Ellipsoid) 모델의 기하학적 정의 및 이심률(Eccentricity) 연산

위성 항법 시스템(GNSS)이 수신기로 제공하는 위도(Latitude), 경도(Longitude), 고도(Altitude)는 완벽한 구(Sphere)가 아닌 적도 부분이 살짝 부풀어 오른 타원체(Ellipsoid) 모델을 기준으로 정의된다. PX4-Autopilot은 전 세계 표준 측지계인 WGS84(World Geodetic System 1984) 타원체 모델을 채택하여 지구의 기하학적 형상을 수학적으로 근사(Approximation)하며, 이를 바탕으로 모든 위치 제어의 영점과 척도를 결정한다.

0.1 WGS84 타원체의 기하학적 정의

WGS84 타원체는 지구 자전에 의한 원심력으로 인해 적도 반경이 극 반경보다 미세하게 긴 회전 타원체(Oblate Spheroid)이다. PX4의 내부 좌표 변환 코드 라이브러리(src/lib/geo)는 이 타원체의 형태를 계산하기 위해 두 가지 주요 상수를 취급한다.

  • 적도 반경 (Semi-major axis, a): 6,378,137.0 \text{ m}
  • 극 반경 (Semi-minor axis, b): 약 6,356,752.3142 \text{ m}
  • 편평률 (Flattening, f): 타원체가 구에서 얼마나 벗어나 납작해졌는지를 나타내는 비율이다. f = \frac{a - b}{a} 로 정의되며, WGS84 기준 모델에서는 그 역수인 \frac{1}{f} \approx 298.257223563 이 쓰인다.

기체 제어기(Controller)가 수십 킬로미터 이상의 장거리 웨이포인트(Waypoint) 자율 비행을 수행할 때, 이 미세한 곡률 계수를 무시하고 지구를 단순한 구(Sphere)로 가정한다면 목표 지점 부근에서 수십에서 수 백 미터에 이르는 누적 오차가 발생할 수 있다. 따라서 PX4의 알고리즘은 비행 경로 궤적을 산출할 때 지구 곡률과 타원체 기반 정밀 모델을 엄격하게 적용한다.

0.2 이심률(Eccentricity) 연산 및 공식 유도

지구 타원체의 수학적 특성을 직교 좌표계인 ECEF(Earth-Centered, Earth-Fixed)와 연동하기 위해서는 제1 이심률의 제곱(e^2) 값을 반드시 도출해야 한다. 이 값은 지구 상의 로컬 위치에 따른 종횡 곡률 반경 산출 및 EKF2 필터 내 곡률 기반 상태 예측 방정식에 깊숙하게 관여하는 핵심 매개변수이다.

제1 이심률 e는 타원체의 초점 거리를 적도 반경으로 나눈 기하학적 비율이며, 근본적인 식으로는 e^2 = \frac{a^2 - b^2}{a^2} 로 표현된다. 그러나 계산 자원이 제한적인 비행 제어용 마이크로컨트롤러(MCU)에서 이 값을 효율적이고 정밀하게 처리하기 위해, 알고리즘 내부에서는 편평률 f를 이용한 수학적 전개식을 자주 활용한다.

e^2 = 2f - f^2

또한, 특정 고도(Altitude) 연산 수식이나 무인기의 수직 곡률 반경(Radius of Curvature) 산출 과정에서 종종 요구되는 **제2 이심률의 제곱({e'}^2)**은 EKF2 및 위치 변환 함수에서 간접적으로 활용되며 다음과 같이 정의된다.

{e'}^2 = \frac{a^2 - b^2}{b^2} = \frac{e^2}{1 - e^2}

0.3 소스 코드 아키텍처 내 적용 및 시스템 철학 차이

PX4는 수천 헤르츠(Hz)로 구동되는 비행 제어 루프의 실시간성(Real-time Constraints)을 저해하지 않기 위해 이러한 복잡한 지구역학적 상수들을 매 프레임 다이나믹하게 연산하지 않는다.

  • 초정밀 상수 매핑: EKF2 추정기 모듈 및 geo 라이브러리의 코어 헤더 파일에는 a, e^2 값들이 IEEE 754 배정밀도(Double Precision) 부동소수점 형식 변수로 하드코딩되거나 초기화 단계에서 미리 연산되도록 캐싱(Caching)되어 있다. 이는 Float 형변환 시 발생하는 미세한 위치 절단 오차(Truncation Error)가 누적되어 측위 튕김 현상을 유발하는 것을 구조적으로 차단하기 위함이다.
  • Ardupilot과의 아키텍처 비교: Ardupilot이 AP_Math 혹은 Location 클래스 라이브러리를 통해 수학적 원론에 가까운 범용 유틸리티 방식으로 접근한다면, PX4-Autopilot은 타원체 파라미터를 uORB 메시징 구조 내에서 최적화시키기 위해, LLA 데이터를 NED 오프셋 값으로 사전 변환해버리는 강력한 디커플링(Decoupling) 모델을 선호한다. 이로 인해 센서 드라이버가 넘겨준 원시 위성 위치 정보는 EKF2의 코어 파이프라인에 인입되기 직전에 이미 WGS84 이심률 연산이 가미된 로컬 직교 편이량(Delta Vector)으로 정제되어 컨트롤러의 연산 부하를 획기적으로 덜어낸다.