### 0.0.1 기체 무게중심(CG) 기준 GPS 안테나 위상 중심(Phase Center)까지의 3차원 레버암(Lever Arm) 측정 및 `EKF2_GPS_POS_X, Y, Z` 입력

### 0.0.1 기체 무게중심(CG) 기준 GPS 안테나 위상 중심(Phase Center)까지의 3차원 레버암(Lever Arm) 측정 및 EKF2_GPS_POS_X, Y, Z 입력

초정밀 자동비행, 특히 카메라 매핑(Mapping)이나 농업용 방제 드론처럼 센티미터(cm) 단위의 궤적 제어가 필수적인 산업 현장에서는 GPS 안테나가 동체 어디에 달려있는지가 매우 중요하다. 이 거리를 보정하지 않으면 드론이 가리키는 ’현재 내 좌표’는 사실 드론의 정중앙(CG)이 아니라 GPS 안테나가 달려있는 ’기수 끝’이나 ’마스트 꼭대기’의 좌표가 되기 때문이다.

본 절에서는 PX4의 EKF2 필터가 물리적 거리를 수학적으로 보정하기 위해 사용하는 레버암(Lever Arm) 측정 기준과 EKF2_GPS_POS_* 파라미터 입력 실무를 다룬다.

0.1 기준점(Reference Point)과 기체 고정 좌표계(FRD)

PX4 EKF2의 모든 공간적 계산은 IMU(가속도/자이로) 센서의 중심점을 우주의 원점 (0,0,0) 으로 취급하는 것에서 출발한다. (이상적인 기체 설계라면 이 IMU의 중심점은 기체의 물리적 무게중심(CG)과 정확히 일치해야 한다).

여기로부터 안테나까지의 거리를 측정할 때는 항공우주 표준인 FRD (Forward-Right-Down) 좌표계를 절대적으로 준수해야 한다.

  • X축 (Forward): 기체의 앞쪽(기수 방향)이 양수(+), 뒤쪽(꼬리 방향)이 음수(-)다.
  • Y축 (Right): 기체의 우측이 양수(+), 좌측이 음수(-)다.
  • Z축 (Down): 중력 방향(아래쪽)이 양수(+), 하늘 방향(위쪽)이 음수(-)다.

0.2 안테나 위상 중심(Phase Center) 측정 실무

줄자를 들고 거리를 잴 때 초보자들이 가장 많이 하는 실수는 ’안테나 플라스틱 하우징의 바닥면’을 찍는 것이다. RF(무선 주파수) 관점에서 GPS 위성의 전파가 실제로 모이는 초점은 외형 케이스가 아니라 그 내부의 세라믹 패치(Patch Antenna)다.

  1. 제조사 데이터시트 확인: 고정밀 RTK 안테나(예: U-blox ‘Ann-MB’ 시리즈 또는 Tallysman)는 데이터시트에 안테나 밑면(Mounting Base)으로부터 위상 중심(Phase Center)까지의 수직오프셋(APC, Antenna Phase Center Offset)이 몇 mm인지 명시하고 있다.
  2. 3차원 거리 계산: IMU의 중심점(FC보드 중앙)에서 안테나의 Phase Center까지의 직선거리를 X, Y, Z 직교 좌표계에 투영하여 미터(meter) 단위의 소수점 셋째 자리(mm)까지 측정한다.

0.3 EKF2_GPS_POS_* 파라미터 입력 예시 및 함정

측정한 3차원 거리를 QGroundControl(QGC)을 통해 다음의 파라미터에 입력한다.

  • EKF2_GPS_POS_X
  • EKF2_GPS_POS_Y
  • EKF2_GPS_POS_Z

[실무 입력 예제]
드론의 픽스호크(FC)가 기체 정중앙에 있고, 간섭을 피하기 위해 GPS 안테나를 기수 뒷편(Tail) 30cm, 오른쪽 날개 쪽으로 10cm, 그리고 25cm 길이의 폴대(Mast) 위에 장착했다고 가정하자.

  • 뒤로 30cm: -0.30 m (X축)
  • 우측으로 10cm: +0.10 m (Y축)
  • [주의] 위로 25cm: -0.25 m (Z축)

가장 잦은 추락 원인: 여기서 많은 조종사가 Z축(위/아래) 부호를 헛갈린다. 보통 “위로 올렸으니 플러스(+)겠지?” 하고 +0.25를 입력한다. 하지만 FRD 좌표계에서 아래쪽(Down)이 +이므로, 위로 솟아오른 폴대는 반드시 음수(-0.25) 를 입력해야 한다. 만약 +0.25를 넣으면 EKF2는 “안테나가 드론 배 밑바닥으로 25cm 툭 튀어나와 있다“고 굳게 믿어버린다.

0.4 레버암(Lever Arm) 파라미터 입력의 효과

정확한 EKF2_GPS_POS_* 값이 입력되면, EKF2 필터 내부에서는 다음과 같은 변환 행렬 스크립트가 활성화된다.

\vec{Pos}_{cg} = \vec{Pos}_{gps\_antenna} - C_{body}^{earth} \cdot \vec{LeverArm}_{FRD}

즉, GPS 수신기가 “나의 현재 위도/경도는 여기야!“라고 외치면, EKF2는 파라미터로 입력받은 레버암 벡터와 자이로스코프로 측정한 현재 기체의 기울기 각도(Direction Cosine Matrix, C_{body}^{earth})를 역산하여 “그래 안테나 넌 거기 있겠지, 하지만 진짜 기체 중심(CG)의 위치는 거기서부터 X, Y, Z축으로 이만큼 빼서 저기야!“라고 안테나의 위치를 동체 중심의 위치로 스스로 환산(Translation)해 낸다. 이로써 IMU의 가속도 적분값과 GPS의 위치 데이터가 한 치의 공간적 오차 없이 수학적 동기화를 이루게 된다.