## 0.1 비행 제어를 위한 지구 좌표계 및 고도 변환 알고리즘

## 0.1 비행 제어를 위한 지구 좌표계 및 고도 변환 알고리즘

비행 제어 시스템(Flight Control System)이 안정적인 자율 비행을 수행하기 위해서는 센서로부터 획득한 다양한 형태의 위치 데이터를 기체 중심의 물리적 제어 모델에 맞게 변환해야 한다. 위성 항법 시스템(GNSS)은 지구 중심을 원점으로 하는 전 지구적 좌표계를 사용하는 반면, PX4-Autopilot의 내부 제어기(Controller)는 기체의 현재 위치나 이륙 지점을 원점으로 하는 로컬 평면 좌표계를 기준으로 동작하기 때문이다.

이러한 근본적인 차이는 비행 제어 소프트웨어 내부에 고도로 최적화된 좌표 변환(Coordinate Transformation) 및 고도 변환(Altitude Conversion) 알고리즘의 탑재를 요구한다. PX4는 src/lib/geo 라이브러리를 통해 이러한 기하학적 연산을 수행하며, 이는 EKF2 추정기(Estimator)가 위경도 데이터를 받아들여 기동 제어를 위한 NED(North-East-Down) 속도 및 위치 프레임으로 융합(Fusion)하는 핵심 기반이 된다.

0.1.1 전 지구적 좌표계와 로컬 좌표계의 분리 구조

PX4 아키텍처는 센서 데이터의 수집 단계와 비행 제어 궤적 추종 단계 사이에 명확한 좌표계 분리 원칙을 적용한다.

  • 글로벌 좌표계(Global Coordinate System): ECEF(Earth-Centered, Earth-Fixed) 또는 LLA(Latitude, Longitude, Altitude)와 같이 지구 전체를 아우르는 절대 좌표계이다. GPS 수신기는 주로 타원체 모델 기반의 LLA 데이터를 출력하며, 이는 웨이포인트(Waypoint) 비행 경로를 설정하거나 기체의 절대적 위치를 QGroundControl과 같은 GCS(Ground Control Station)에 전시할 때 주로 사용된다.
  • 로컬 좌표계(Local Coordinate System): 기체의 이륙 지점(Home Position) 또는 현재 추정 위치를 원점(Origin)으로 하는 NED 평면 직교 좌표계이다. 기체의 자세(Roll, Pitch, Yaw) 제어 및 위치 제어(Position Control) 루프는 연산의 단순화와 가속도계/자이로스코프 데이터와의 직접적인 수식적 호환성을 위해 구면 좌표계 대신 이 평면 유클리드(Euclidean) 기하학 모델을 사용한다.

0.1.2 고도(Altitude) 기준의 물리적 모호성 해결

고도 데이터 역시 비행 제어에서 치명적인 모호성을 갖는 파라미터이다. 수신기가 출력하는 **타원체고(Ellipsoidal Height)**와 인간이 직관적으로 인식하는 해수면 기준의 정표고(Orthometric Height, AMSL: Above Mean Sea Level), 그리고 기압계가 측정하는 **기압 고도(Barometric Altitude)**는 물리적 척도와 영점(Zero Point)이 각기 다르다. PX4는 EKF2 알고리즘 내부에서 GPS의 수직 고도 데이터와 기압계 데이터를 융합하기 위해 지오이드(Geoid) 모델을 적용하여 이 기준면(Datum)을 일치시키는 과정을 필수적으로 거친다.

본 절에서는 PX4 시스템 내부에서 글로벌 타원체 모델이 어떻게 수학적으로 정의되고, ECEF와 LLA 간의 변환을 거쳐, 최종적으로 비행 제어 루프를 위한 NED 평면 좌표계로 도출되는지에 대한 수학적 알고리즘 체계를 상세하게 전개한다.