1
UWB Follow-Me System
seb edited this page 2026-03-01 00:12:31 -05:00

UWB Follow-Me System

Overview

Precision person-following using Ultra-Wideband (UWB) two-way ranging. Enables SaltyLab to follow Tee during outdoor EUC rides at 20-30 km/h.

Hardware

MaUWB ESP32-S3 (DW3000)

Specs

Parameter Value
UWB Chip Qorvo DW3000 + PA
MCU ESP32-S3 (WiFi + BLE 5.0)
Co-processor STM32 (TWR scheduling firmware)
Range 500m outdoor
Accuracy ±10cm
Max anchors 8 (auto-select nearest)
Max tags 64
Interface AT commands via UART, USB
Display 0.96" OLED
Power USB 5V, ~200-250mA active
Channels UWB Ch5 (6.5 GHz) + Ch9 (8 GHz)
Apple U1 Interoperable (per Qorvo)

System Layout

[Tag - on Tee]          [Anchor A - left stem]     [Anchor B - right stem]
  MaUWB ESP32-S3          MaUWB ESP32-S3             MaUWB ESP32-S3
  18650 battery            USB → Orin Nano            USB → Orin Nano
  OLED shows range         ~25cm apart for bearing estimation

How It Works

  1. Tag (Tee) and Anchors (bot) perform Two-Way Ranging (TWR) at ~10-100Hz
  2. STM32 firmware handles time-slot scheduling (no signal conflicts)
  3. ESP32-S3 reports range via AT commands over UART/USB
  4. Two anchors spaced 25cm apart → TDoA gives bearing angle
  5. ROS2 node publishes /uwb/target (distance + angle in base_link frame)
  6. Fused with camera person detection for identity confirmation

Tag Battery (12hr runtime)

  • 3000mAh 18650 cell (e.g., Samsung 35E)
  • TP4056 USB-C charger board
  • Mini boost converter to 5V
  • 3D-printed enclosure with belt clip

Software Integration

  • ROS2 package: saltybot_uwb
  • Subscribes to anchor serial ports
  • Publishes: /uwb/target (geometry_msgs/PoseStamped)
  • Fused in person_follower_node as primary position source
  • Camera serves as secondary (identity confirmation + obstacle avoidance)

References