Embedded LabFeatured
UWB Autonomous Carrier
A follow-me autonomous vehicle based on UWB trilateration. Mobile positioning with 2 ESP32s and 3 DWM3000s.
PersonalDuration 2 moContribution 100%2025-10 → 2025-12
★Key Metric: ±10cm, 10Hz, 4-phase roadmap
Engineering Role
Embedded

Embedded Lab
UWB Autonomous Carrier
HW
#Embedded#Robotics#Personal#C++
Overview
A UWB follow-me vehicle that works without fixed anchors. It combines an ESP32-S3 carrier, ESP32-C3 tag, 3 DWM3000 units, SPI multiplexing, trilateration, 10Hz positioning, Kalman filtering, 4-wheel differential motors, and ultrasonic avoidance.
My Work
- ▸Designed the ESP32-S3 dual-core plus shared-SPI control logic
- ▸Implemented the DWM3000 2-byte header protocol directly
- ▸Sequential TWR communication, distance measurement, and the trilateration algorithm
- ▸Kalman filter (position smoothing) plus PD control loop
- ▸4-wheel PWM motor control plus ultrasonic sensor sampling
- ▸DWA path planning plus avoidance prioritization
Features
- Real-time following of the tag (person) position
- 3-channel ultrasonic forward obstacle detection
- 12V 10Ah battery, about 2 hours of operation
- Maximum speed 1.0 m/s (safe speed)
- Maintains a 1.2m following distance via PD
- No installation required — usable in any space
Highlights
- 0 fixed anchors — a single carrier follows the user
- Shared SPI (one ESP32-S3 controls 3 DWM3000 units)
- Sequential TWR (100ms × 3 channels) → trilateration
- 10Hz position updates, ±10cm accuracy
- 4-wheel differential motors (BTS7960) plus 3-channel ultrasonic avoidance
Timeline
2025-10 → 2025-12
Role: Solo hardware and firmware
Contribution: 100%
Collaboration: Personal
Tech Stack
</>ESP32-S3 + DWM3000, sequential TWR, trilateration, PD/DWA
C++ArduinoPlatformIOESP32-S3ESP32-C3DWM3000 UWBFreeRTOSBTS7960