feat: UWB follow-me system (3× MaUWB ESP32-S3 DW3000) #57

Closed
opened 2026-03-01 00:11:46 -05:00 by seb · 0 comments
Owner

Summary

Add UWB-based precision follow-me capability for outdoor EUC cruising (20-30 km/h).

Hardware

Allocation

Unit Role Location Power
1× with display Tag Tee (belt/pocket) 18650 + TP4056 (~12hrs)
Anchors SaltyLab stem, ~25cm apart USB from Orin Nano

Architecture

  1. Two anchors on the bot provide distance + bearing via TDoA
  2. ROS2 node subscribes to anchor UART, publishes /uwb/target (range + angle)
  3. Fused with camera person detection for identity confirmation
  4. Person follower node uses UWB as primary position source, camera as secondary

Why UWB over camera-only

  • Works in crowds (locks onto YOUR tag, not random people)
  • ±10cm vs ±30cm camera depth estimation
  • Works when occluded (behind objects, bad lighting)
  • 100Hz update rate vs 10-15Hz camera

Tasks

  • Order 3× MaUWB ESP32-S3 modules
  • Design 3D-printed tag enclosure (18650 + TP4056 + module)
  • Design anchor mounts for 25mm stem
  • ROS2 saltybot_uwb package: UART → /uwb/target
  • Fuse UWB + camera in person_follower_node
  • Test outdoor ranging at 20-30 km/h
## Summary Add UWB-based precision follow-me capability for outdoor EUC cruising (20-30 km/h). ## Hardware - **3× MaUWB ESP32-S3 UWB modules** ($54.80 USD each) - https://www.makerfabs.com/mauwb-esp32s3-uwb-module.html - DW3000 + PA, 500m range, ±10cm accuracy - STM32 handles TWR scheduling, ESP32-S3 reports via UART/USB - Supports 8 anchors + 64 tags, AT command interface ## Allocation | Unit | Role | Location | Power | |------|------|----------|-------| | 1× with display | Tag | Tee (belt/pocket) | 18650 + TP4056 (~12hrs) | | 2× | Anchors | SaltyLab stem, ~25cm apart | USB from Orin Nano | ## Architecture 1. Two anchors on the bot provide **distance + bearing** via TDoA 2. ROS2 node subscribes to anchor UART, publishes `/uwb/target` (range + angle) 3. Fused with camera person detection for identity confirmation 4. Person follower node uses UWB as primary position source, camera as secondary ## Why UWB over camera-only - Works in crowds (locks onto YOUR tag, not random people) - ±10cm vs ±30cm camera depth estimation - Works when occluded (behind objects, bad lighting) - 100Hz update rate vs 10-15Hz camera ## Tasks - [ ] Order 3× MaUWB ESP32-S3 modules - [ ] Design 3D-printed tag enclosure (18650 + TP4056 + module) - [ ] Design anchor mounts for 25mm stem - [ ] ROS2 `saltybot_uwb` package: UART → `/uwb/target` - [ ] Fuse UWB + camera in person_follower_node - [ ] Test outdoor ranging at 20-30 km/h
sl-jetson self-assigned this 2026-03-01 00:41:34 -05:00
seb closed this issue 2026-03-01 00:51:12 -05:00
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: seb/saltylab-firmware#57
No description provided.