RoboticsUpdated 2026-06-01

UWB 실내 측위 상세 가이드

Ultra-Wideband 기반 RTLS — DW3000 × ESP32-S3 × CtrlPlus 가이드

ESP32-S3PlatformIOFreeRTOS

1. 개념 (Concept)

1.1 UWB란?

UWB(Ultra-Wideband)는 500MHz 이상의 극광대역 주파수를 사용하는 무선 통신 기술로, 비행시간(ToF) 측정으로 ±10cm 수준의 정밀 실내 측위가 가능하다.

GPS : 실외 전용, 수 미터 오차 WiFi/BLE : 실내 가능, 1~3m 오차 (RSSI 기반) UWB : 실내 정밀, 10~30cm 오차 (ToF 기반) ← 핵심 우위

1.2 UWB vs 타 측위 기술 비교

기술정확도실내 적용갱신 주기전력비용
UWB10~30cm최적10~100Hz중간높음
BLE 5.1 AoA0.5~1m가능1~10Hz낮음중간
WiFi RTT1~3m가능1~5Hz높음낮음
RFID0.5~3m가능1Hz매우낮음낮음
LiDAR SLAM5~10cm최적10Hz매우높음매우높음
GPS3~5m불가1Hz중간낮음

1.3 핵심 용어

  • 앵커(Anchor): 고정 위치의 UWB 기준 노드 — 위치 좌표 사전 등록
  • 태그(Tag): 측위 대상(사람, 자산, 로봇)에 부착하는 이동 노드
  • ToF (Time of Flight): 전파 비행시간 → 거리 환산 (거리 = 시간 × 광속)
  • TWR (Two-Way Ranging): 앵커-태그 간 왕복 시간 측정 — 클록 동기화 불필요
  • TDoA (Time Difference of Arrival): 복수 앵커 도달 시간 차 — 태그 저전력
  • 삼변측량 (Trilateration): 3개 이상 앵커 거리로 2D/3D 좌표 계산
  • NLOS (Non Line of Sight): 비가시선 — 벽/장애물로 전파 경로 굴절 → 오차 원인
  • CIR (Channel Impulse Response): 채널 임펄스 응답 — NLOS 판별에 활용

2. 상세 내용 (Details)

2.1 TWR (Two-Way Ranging) 측거 원리

클록 동기화 없이 왕복 시간으로 거리 계산 — ESP32-S3 + DW3000 기본 방식.

2.2 TDoA (Time Difference of Arrival) 원리

태그가 1회 전송만 — 배터리 수명 극대화. 앵커 간 클록 동기화 필수.

2.3 삼변측량 (Trilateration) 계산

2.4 NLOS 감지 및 보정

2.5 DW3000 vs DW1000 비교

항목DW1000DW3000
UWB 채널CH1~7 (3.5/6.5GHz)CH5/9 (6.5/8GHz)
데이터 레이트6.8Mbps27Mbps
측거 정확도±10cm±5cm
전력 소비약 145mA Tx약 67mA Tx
IEEE 표준802.15.4-2011802.15.4z (HRP)
AoA 지원없음지원 (Pdoa)
SPI 속도20MHz38MHz
인터페이스SPISPI + SPI2

2.6 앵커 배치 최적화 기하학


3. 구조 설명 (Architecture)

3.1 CtrlPlus UWB RTLS 전체 아키텍처

3.2 ESP32-S3 + DW3000 하드웨어 결선

3.3 FreeRTOS 태스크 구조 (태그 펌웨어)

3.4 TWR 측거 상태 머신

3.5 Spring Boot 위치 서버 내부 구조

3.6 MQTT 토픽 네임스페이스 (UWB)

3.7 PostgreSQL 스키마

3.8 칼만 필터 위치 추정


4. 응용 (Applications)

4.1 CtrlPlus 생태계 UWB 적용 맵

4.2 시나리오별 모드 선택

4.3 XYFlow UWB 파이프라인 노드 구성

4.4 Next.js 실시간 맵 대시보드 구조

4.5 구역(Zone) 이탈 감지 플로우

4.6 로봇 + UWB 융합 측위

4.7 배포 구조 (CtrlPlus VPS)

4.8 트러블슈팅 플로우


부록. 빠른 참조

주요 수식 요약

TWR 비행시간: ToF = ((Rx_resp - Tx_poll) - (Tx_resp - Rx_poll)) / 2 거리 = ToF × 299,702,547 m/s (공기 중 광속) 삼변측량 (선형화): 2(x₂-x₁)x + 2(y₂-y₁)y = d₁² - d₂² - x₁² + x₂² - y₁² + y₂² → Ax = b → 최소자승 x = (AᵀA)⁻¹ Aᵀb GDOP 근사: GDOP ≈ √(trace((AᵀA)⁻¹)) 목표: GDOP < 3 (우수), < 5 (허용)

ESP32-S3 + DW3000 핀 배정

SPI2 버스: SCK → GPIO 12 MOSI → GPIO 11 MISO → GPIO 13 CS → GPIO 10 제어: RST → GPIO 9 IRQ → GPIO 8 WAKEUP → GPIO 7 전원: VCC → 3.3V (100nF + 10µF 디커플링)

CtrlPlus UWB 프리셋 복합키

프리셋복합키용도
기본 RTLSpositioning::manager::monitoring::map4앵커 자산 추적
로봇 측위positioning::manager::control::robot-navAMR 내비게이션
안전 구역positioning::manager::monitoring::zone위험 구역 감시
멀티태그positioning::manager::monitoring::multi-tag100태그 이상 TDoA

앵커 배치 권장 사양

최소 구성 : 앵커 3개 (2D, GDOP 높음) 권장 구성 : 앵커 4개 (2D, 사각형 배치) 정밀 구성 : 앵커 6~8개 (2D 복잡 공간 / 3D) 설치 높이 : 2.5~3.0m (바닥 다중경로 최소화) 앵커 간격 : 측위 공간 대각선의 60~80% 시야각 : 앵커 간 LOS 확보 권장 (직접 경로)