Add "UWB Follow-Me System"

seb 2026-03-01 00:12:31 -05:00
parent 617520fe04
commit 8be57b11ac

63
UWB Follow-Me System.-.md Normal file

@ -0,0 +1,63 @@
# 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)
- **Vendor:** Makerfabs
- **URL:** https://www.makerfabs.com/mauwb-esp32s3-uwb-module.html
- **Price:** $54.80 USD each
- **SKU:** MAUWBS3CA1
- **Qty needed:** 3 (1 tag + 2 anchors)
### 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
- Makerfabs GitHub: https://github.com/Makerfabs/Makerfabs-ESP32-UWB-DW3000
- MaUWB AT command docs: https://www.makerfabs.com/blog/post/mauwb-new-firmware-upgrade_v112
- Gitea issue: #57