Humanoid systems · Undergraduate thesis
Making a GR00T–SONIC humanoid stack run in real time
I diagnosed and redesigned the interfaces that let an asynchronous VLA policy command a 50 Hz whole-body controller without allowing recording and perception workloads to destabilize control.
Problems diagnosed and systems built
Root-cause diagnosis
Recording, not control, was starving the real-time loop.
When synchronized recording degraded control, I instrumented resource use, loop timing, and LowState age to isolate the bottleneck. The evidence traced the failure to CPU software H.264 contention rather than SONIC or network transport.
Real-time redesign
I removed the bottleneck without breaking the data contract.
I migrated video to the Jetson hardware encoder while preserving the LeRobot schema, then added 50 Hz scheduling, event latching, process-priority isolation, thread limits, and reduced frame copying. The sustained loop reached 49.9 Hz with 10.32 ms mean and 27.59 ms P99 LowState age.
Kinematic correction
I fixed wrist targets at the coordinate-system boundary.
I implemented source-aware VR-3PT wrist calibration, corrected the spatial rotation composition, and added per-arm fallback behavior so inconsistent VR input could not silently propagate into motion targets.
System architecture
I helped separate semantic latency from balance control.
I co-designed and implemented the GR00T action-to-SONIC motion-target bridge, exposing testable module boundaries and isolating 208.15 ms mean Orin policy inference from the nominal 50 Hz whole-body loop.