UWB + IMU Fusion Camera Tracking
Radio + inertial fallback tracking for LED-wall sets, time-locked to LTC for frame-true capture at 25 Hz.
Why it matters
On LED-wall stages, optical systems (e.g., OptiTrack) can jitter or drop when markers get occluded by crew/rigs. I prototyped a radio + inertial fallback that keeps pose stable during those gaps and produces research-grade logs for model training.
My role
- Built end-to-end pipeline: UWB anchors + tag, dual-IMU, edge compute, UDP telemetry, Unreal ingest.
- Reverse-engineered UWB byte streams; normalized to ASCII/JSON with on-demand mode switching.
- Designed a bounded time-window “catch” matcher to pair UWB/IMU packets deterministically.
- Implemented LTC “chase” sync to align (UWB+IMU) with OptiTrack frames for dataset generation.
System overview
- Hardware: UWB anchor network & on-camera tag, dual IMUs, Raspberry Pi edge node, LTC generator, OptiTrack reference.
- Software: Concurrent serial + UDP I/O, packet pairing, jitter buffer, 25 Hz stream, ASCII/JSON logs, LTC retiming.
On-rig combo: UWB + dual IMUs + markers
Technical Challenges & Solutions
-
Challenge: OptiTrack frequently lost tracking when reflective markers were blocked by crew or equipment.
- Solution: Prototyped a UWB-assisted fallback system to complement optical tracking and maintain continuous pose estimation during occlusions.
- Outcome: Short dropouts no longer interrupted camera tracking, ensuring stable and uninterrupted motion capture.
-
Challenge: UWB vendor documentation lacked details on frame layouts, with anchors reporting only relative distances instead of absolute positions.
- Solution: Reverse-engineered the communication protocol through differential probing and systematic logging, mapping byte fields to physical values and exporting standardized ASCII/JSON data.
- Outcome: Achieved a transparent, normalized data stream compatible with other sensor inputs and fusion scripts.
-
Challenge: UWB data alone exhibited severe vertical drift, even with a well-distributed 3D anchor setup.
- Solution: Integrated dual IMUs to provide quaternion orientation, angular rate, and acceleration data for vertical stabilization and motion priors.
- Outcome: The system maintained stable Z-axis readings and realistic movement profiles, significantly improving overall tracking fidelity.
-
Challenge: Edge computing on ESP32 required complex multithreading and caused race conditions, slowing iteration and debugging.
- Solution: Migrated computation to a Raspberry Pi running Python, enabling threaded serial and UDP I/O with lightweight concurrency control.
- Outcome: Increased iteration speed, improved stability, and simplified live debugging during on-set testing.
-
Challenge: Timestamp drift between UWB and IMU modules led to inconsistent cross-sensor pairing.
- Solution: Developed a bounded time-window matching algorithm that only emits fused data when packets align temporally, discarding partial records.
- Outcome: Achieved consistent, drift-free synchronization across heterogeneous sensors suitable for data logging and model training.
-
Challenge: Raw binary packets caused instability and inconsistent data rates during streaming.
- Solution: Implemented rate control and structured UDP telemetry at 25 Hz with sequence IDs, validity flags, and a jitter buffer.
- Outcome: Delivered smooth, reliable telemetry suitable for real-time visualization and dataset generation.
-
Challenge: Multi-sensor data streams required precise frame-true synchronization for motion analysis and training datasets.
- Solution: Adopted LTC (Linear Time Code) as the global master clock, with automatic retiming whenever drift exceeded the set threshold.
- Outcome: Established frame-accurate timing across all capture systems, aligning with professional film and virtual production standards.
Results
- 25 Hz fused telemetry (UDP) aligned to LTC/OptiTrack; clean UE ingestion.
- Deterministic integrity: complete-or-drop policy via “catch” matcher.
- Low drift: ~1 frame average over 30-minute captures at 25 Hz with LTC chase.
- Production resilience: practical tracking continuity when optics degrade.