위치 찾기: 삼변 측량과 TDoA
공장 천장에 UWB 앵커를 달면 지게차와 작업자의 위치가 지도 위에 10~30 cm로 찍힌다. 휴대폰 하나와 태그 하나는 “거리와 방향”만 알지만, 위치를 아는 앵커가 여럿 있으면 “어디에”를 알 수 있다. 방법은 두 가지다. 앵커마다 거리를 재서 원의 교점을 찾는 삼변 측량, 그리고 앵커들에 도착한 시각의 차이로 쌍곡선의 교점을 찾는 TDoA다.
- 거리 셋 이상으로 위치를 구하는 삼변 측량을 최소 제곱으로 풀어 본다.
- 같은 거리 오차라도 앵커 배치에 따라 위치 오차가 달라지는 DOP를 지도로 본다.
- TDoA가 거리 대신 거리의 차이를 써서 태그의 송신 횟수를 줄이는 원리를 안다.
- DL-TDoA와 UL-TDoA, TWR의 쓰임과 맞바꿈을 비교한다.
원 셋의 교점
앵커 A까지 3 m라면 태그는 A를 중심으로 하는 반지름 3 m 원 위 어딘가에 있다. 앵커 B까지의 거리로 원이 하나 더 생기면 후보가 두 점으로 줄고, C가 있으면 한 점이 된다(평면). 3차원이면 앵커가 넷 필요하다. 실제 거리에는 오차가 있어 원들이 한 점에서 만나지 않으므로, 모든 원에서 “가장 덜 어긋나는” 점을 찾는다. 이것이 최소 제곱 풀이다. 앵커가 많을수록, 그리고 잘 퍼져 있을수록 오차가 줄어든다.
운동장에 선 세 친구가 각자 “너는 나한테서 몇 m”라고 외친다. 한 친구 말만으로는 그 친구를 중심으로 한 원 위 어딘가다. 둘이면 원 두 개가 만나는 두 점, 셋이면 한 점으로 좁혀진다. 친구들이 한 줄로 서 있으면 원들이 비슷하게 겹쳐 점이 또렷하지 않다.
앵커 3개를 한쪽 벽에 일직선으로 붙였다. 방 안 위치는?
직선 위의 원들은 그 직선에 대해 대칭이다.
삼변 측량과 DOP 지도
DOP: 배치가 오차를 키운다
두 원이 거의 같은 방향에서 스치듯 만나면, 반지름이 조금만 바뀌어도 교점이 크게 미끄러진다. 원들이 수직에 가깝게 만나면 교점이 단단하다. 이 기하학적 증폭을 DOP(Dilution of Precision)라 한다. 위치 오차 ≈ DOP × 거리 오차. GPS에서 위성 배치가 나쁠 때 위치가 튀는 것과 같은 원리다. 실내 측위 설계(14장)에서 앵커를 둘러싸듯 배치하라는 이유다. 앵커들로 둘러싸인 볼록한 영역 밖으로 나가거나 앵커들이 한 줄에 가까워지면 DOP가 빠르게 커진다.
TDoA: 거리 대신 거리의 차이
TWR은 태그와 앵커 하나하나가 핑퐁을 해야 한다. 앵커가 넷이면 프레임이 여덟 개 이상이다. 태그가 많은 창고에서는 공중 시간과 태그 배터리가 감당이 안 된다. TDoA(Time Difference of Arrival)는 앵커들의 시계를 서로 맞춰 두고 한 번의 송신만 쓴다.
- UL-TDoA(상향): 태그가 짧은 신호(blink)를 보내기만 한다. 여러 앵커가 받은 시각을 서버로 보내고, 서버가 시각의 차이로 위치를 구한다. 태그는 받을 필요가 없어 전력이 아주 적다. 창고 자산 추적에 맞다.
- DL-TDoA(하향): 앵커들이 정해진 순서로 신호를 보내고, 태그(휴대폰)는 듣기만 한다. 태그가 스스로 위치를 계산하므로 아무도 태그의 위치를 모른다(프라이버시). 듣는 태그 수에 제한이 없어 GPS처럼 쓸 수 있다.
앵커 i와 j에 도착한 시각 차이 × c = 두 앵커까지 거리의 차이. 거리 차이가 일정한 점들은 쌍곡선을 이룬다. 앵커 쌍 둘(앵커 셋)이면 평면에서 쌍곡선 둘의 교점으로 위치가 나온다. 대신 앵커 시계를 1 ns만 틀리게 맞춰도 30 cm 오차라, 앵커 동기(유선 시계 분배나 UWB 동기 메시지)가 TDoA 시스템의 핵심 비용이다.
쌍곡선의 교점
측정 방식 이름: Android FiraParams.java의 RANGING_ROUND_USAGE_UL_TDOA = 0, RANGING_ROUND_USAGE_DL_TDOA = 5, RANGING_DEVICE_ROLE_ADVERTISER·_OBSERVER · 앵커 동기형 역방향 TDoA 구현: Decawave uwb-core의 lib/rtdoa, apps/tdoa_sync_tag
핵심 정리
- 삼변 측량: 앵커별 거리 → 원의 교점. 평면 3개, 공간 4개 이상. 오차가 있으므로 최소 제곱으로 푼다.
- 위치 오차 ≈ DOP × 거리 오차. 앵커로 둘러싼 안쪽은 DOP ≈ 1, 바깥·일렬 배치는 크다.
- NLOS 측정 하나가 위치를 끌어당긴다. 측정 품질 표시로 비중을 줄인다.
- TDoA: 동기된 앵커들의 도착 시각 차이 → 쌍곡선. UL(태그가 보내기만, 저전력), DL(태그가 듣기만, 프라이버시·무제한).
- TDoA의 대가는 앵커 시계 동기. 1 ns 틀리면 30 cm.
확인 퀴즈
평면에서 거리만으로 위치를 하나로 정하려면 앵커가 최소 몇 개?
DOP가 3인 곳에서 거리 오차가 10 cm면 위치 오차는 대략?
휴대폰이 앵커 신호를 듣기만 하고 자기 위치를 스스로 계산하는 방식은?
TDoA 시스템에서 가장 중요한 기반은?