### 0.0.1 반송파 위상(Carrier Phase) 및 코드 위상(Code Phase) 기반 의사거리(Pseudorange) 측정 원리
GNSS 수신기가 위성과의 거리를 산출하는 방식에는 크게 코드 위상(Code Phase) 측정과 반송파 위상(Carrier Phase) 측정이라는 두 가지 기술적 층위가 존재한다. 일반적인 드론용 GPS는 코드 위상 방식을 주로 사용하지만, 고정밀 비행 제어를 위한 RTK 기술은 반송파 위상 측정을 필수적으로 요구한다.
0.1 코드 위상(Code Phase) 측정과 의사거리(Pseudorange)
코드 위상 측정은 위성에서 송신한 PRN(Pseudo Random Noise) 코드와 수신기 내부에서 생성한 복제 코드 사이의 시간 차이(Time Shift)를 계산하는 방식이다.
- 동작 원리: 수신기는 복제 코드를 조금씩 지연시키며 위성 신호와 ’최대 상관 관계(Maximum Correlation)’가 발생하는 지점을 찾는다. 이때의 지연 시간이 전파의 도달 시간(\tau)이 된다.
- 의사거리(\rho)의 정의: 산출된 도달 시간에 광속(c)을 곱한 값이다. 수신기의 시계 오차(\delta t_u)가 포함되어 있으므로 ’실제 거리’가 아닌 ’의사(Pseudo) 거리’라 칭한다.
\rho = c \cdot (\tau + \delta t_u) - 특징: 신호 포착이 빠르고 안정적이지만, 코드 자체의 해상도 한계로 인해 수 미터 단위의 오차가 발생한다.
2. 반송파 위상(Carrier Phase) 측정
반송파 위상 측정은 코드 속에 숨겨진 L1/L2 반송파(Carrier Wave) 자체의 위상을 측정하여 거리를 산출한다.
- 동작 원리: 반송파의 파장(L1의 경우 약 19cm)을 하나의 ’자(Ruler)’로 사용하여, 위성과 수신기 사이의 파장 개수를 센다.
- 정밀도: 비트 단위의 코드보다 훨씬 짧은 파장을 측정하므로 밀리미터(mm) 단위의 미세한 거리 변화를 감지할 수 있다.
- 정수 모호성(Integer Ambiguity): 수신기를 처음 켰을 때, 현재 수신된 위상 뒤에 몇 개의 파장이 더 있는지(Integer Number of Cycles) 알 수 없는 상태가 된다. 이를 해결하는 과정이 RTK 알고리즘의 핵심이며, ‘Fixed’ 상태가 되어야만 cm급 정밀도가 확보된다.
3. PX4에서의 활용 및 데이터 처리
PX4의 GPS 드라이버와 EKF2 에스팀메이터는 수신기가 제공하는 측정값의 종류에 따라 항법 전략을 수정한다.
- 일반 GPS 모드: 코드 위상 기반의 의사거리와 도플러(Doppler) 속도 데이터를 주로 사용한다.
- RTK 모드: 반송파 위상 데이터를 처리하여 센티미터 단위의 상대 위치를 계산한다.
sensor_gps토픽의fix_type필드가6(RTK Fixed)으로 보고되면 제어기는 이를 신뢰하여 정밀한 호버링 및 자동 착륙을 수행한다. - 오차 필터링: PX4는 반송파 위상의 불연속성(Cycle Slip)을 감지하기 위한 로직을 포함하고 있다. 만약 위상 추적에 실패하면 즉시 코드 위상 모드로 폴백(Fallback)하여 급격한 위치 튐을 방지한다.
이러한 측정 원리에 대한 이해는 드론이 왜 특정 환경(예: 금속 구조물 근처)에서 정밀도가 떨어지는지, 그리고 RTK 장비를 사용할 때 왜 ‘Initial Lock’ 시간이 필요한지를 기술적으로 설명하는 근거가 된다.