Chapter 09

위치 계산: 넷의 미지수와 DOP

위성 좌표(8장)와 의사거리(6장)가 모였다. 이제 1장의 약속대로 위치 x, y, z와 수신기 시계 오차 b를 푼다. 방정식이 비선형이라 한 번에 풀리지 않고, “대충 여기”에서 출발해 조금씩 고쳐 간다. 이 장에서는 그 반복이 지구 중심에서 출발해도 몇 번 만에 m 단위로 수렴하는 것을 보고, 같은 측정 오차라도 위성 배치에 따라 위치 오차가 몇 배로 커지는 DOP를 계산한다.

고쳐 가며 풀기

위성 i에 대한 의사거리는 ρi = ‖si − r‖ + b + 오차다. ‖·‖(거리) 때문에 r에 대해 직선이 아니다. 그래서 현재 추정 r0, b0에서 “조금 움직이면 거리가 얼마나 바뀌는지”(위성 쪽 단위 벡터)를 계산해 직선으로 근사하고, 측정과 예측의 차이를 가장 잘 설명하는 수정량을 최소 제곱으로 구한다. 이것을 수정량이 충분히 작아질 때까지 반복한다(가우스-뉴턴). RTKLIB은 지구 중심(0, 0, 0)에서 출발해 최대 10번 반복한다.

Δx = (HᵀH)⁻¹ Hᵀ Δρ,   H의 행 = [−(si − r)/‖si − r‖, 1]
Δρ = 측정 의사거리 − 예측 의사거리. 위성이 넷이면 H가 정사각 행렬이라 딱 맞는 해, 다섯 이상이면 남는 측정을 평균한다.
SIMULATOR

지구 중심에서 출발하는 반복

수렴까지 반복—
최종 위치 오차—
찾은 시계 오차—
그래프: 반복 횟수(가로)에 따른 위치 오차(세로, 로그). 해볼 것: ① 지구 중심(오차 6,400 km)에서 출발해도 4~5번이면 m 단위로 수렴한다. ② 시계 오차를 바꿔도 결과 위치는 같다. 잡음을 0으로 두면 위치와 시계 오차가 mm 아래까지 정확히 나온다(b는 거리로 표시, 1 µs ≈ 300 m). 잡음이 있으면 시계 오차 추정도 흔들리는데, 높이 오차와 함께 움직인다. ③ 위성을 4기로 줄이면 잡음이 그대로 위치로 들어가 오차가 커진다. 모델: 서울(37.5°N, 127°E) 수신기, 하늘에 고루 퍼진 위성 12기 중 앞에서부터 N기(반지름 26,560 km), 정규 분포 잡음(고정 씨앗), 전리층 등 다른 오차 없음.

DOP: 배치가 오차를 몇 배로 키우나

최소 제곱의 공분산은 (HᵀH)⁻¹에 측정 오차의 분산을 곱한 것이다. 측정 오차를 1로 두면 (HᵀH)⁻¹의 대각 성분이 순수하게 기하 배치가 오차를 몇 배로 만드는지 알려 준다. 이것을 지역 좌표(동·북·위)로 보고 묶어 부른다.

위성이 하늘 곳곳(높은 위성 하나 + 지평선 근처 사방)에 퍼져 있을수록 DOP가 작다. 위성이 한쪽에 몰리거나 모두 높이 떠 있으면(빌딩 숲) DOP가 커진다. 위성은 모두 지평선 위에만 있으므로 위아래 방향은 늘 한쪽에서만 재는 셈이고, 그래서 VDOP가 HDOP보다 크다. GNSS 높이 오차가 수평 오차의 1.5~2배인 이유다.

두 사람이 가리키는 별

두 사람이 같은 별을 가리킬 때, 둘이 거의 같은 자리에 서 있으면 팔이 그리는 두 선이 거의 겹쳐 만나는 점이 흐릿하다. 멀리 떨어져 서서 직각에 가깝게 가리키면 만나는 점이 또렷하다. 위성도 하늘에 고루 흩어져 있어야 위치가 또렷하다. 몰려 있으면 같은 측정 오차가 큰 위치 오차가 된다. 이 배수가 DOP다.

예측해 보기

위성 4개가 모두 하늘의 한쪽 좁은 곳에 몰려 있다. DOP는 어떻게 될까?

방향이 비슷한 거리 측정은 서로 같은 정보를 준다.

방향 벡터가 비슷하면 행렬이 거의 특이해져 DOP가 수십까지 커진다. 같은 5 m 측정 오차가 수십~수백 m 위치 오차가 된다. 아래 시뮬레이터의 ‘한쪽에 몰림’ 배치를 눌러 보자.
SIMULATOR

위성을 켜고 끄며 보는 DOP

배치 예시
HDOP / VDOP—
PDOP / GDOP—
측정 오차 3 m일 때 수평 오차(1σ)—
스카이 플롯의 위성을 눌러 켜고 끌 수 있다(회색 = 꺼짐 또는 마스크 아래). 해볼 것: ① “고루 퍼짐”에서 HDOP ≈ 1 안팎. ② 지평선 근처 위성을 하나씩 끄면 DOP가 빠르게 커진다. ③ “빌딩 숲”은 위성이 6기나 있는데도 VDOP가 크다. ④ 위성이 넷 미만이 되면 계산할 수 없다. 계산은 RTKLIB dops()와 같다: H의 행 = [cos el·sin az, cos el·cos az, sin el, 1], Q = (HᵀH)⁻¹, GDOP = √(Q₁₁+Q₂₂+Q₃₃+Q₄₄), PDOP = √(Q₁₁+Q₂₂+Q₃₃), HDOP = √(Q₁₁+Q₂₂), VDOP = √Q₃₃.

DOP 계산: RTKLIB rtkcmn.c dops() · 단독 측위 반복(지구 중심 출발, 최대 10회): pntpos.c estpos()(MAXITR 10)

핵심 정리

  1. 의사거리 식을 현재 추정점에서 직선으로 근사하고 최소 제곱으로 고쳐 가기를 반복한다. 지구 중심에서 출발해도 몇 번이면 수렴한다.
  2. 위성 넷이면 딱 맞는 해, 다섯 이상이면 남는 측정이 잡음을 줄인다. 시계 오차 b도 함께 정확히 나온다.
  3. 위치 오차 ≈ DOP × 측정 오차. HDOP·VDOP·PDOP·TDOP·GDOP = (HᵀH)⁻¹의 대각합.
  4. 위성이 고루 퍼질수록 DOP가 작다. 위성이 모두 머리 위쪽에만 있어 VDOP > HDOP, 높이 오차가 더 크다.

확인 퀴즈

의사거리 방정식을 반복으로 푸는 이유는?

가우스-뉴턴 최소 제곱.

HDOP 1.2, 측정 오차 5 m면 수평 오차는 대략?

1.2 × 5 = 6 m.

GNSS 높이 오차가 수평보다 큰 이유는?

VDOP > HDOP.

DOP를 가장 크게 나쁘게 하는 배치는?

방향이 비슷한 측정은 서로를 보완하지 못한다.