CS 188 — Robotics
Baxter Robot Unbelievably Natural Onstage
Music-Synchronized Robot Motion via Beat Detection & PID Control
↓ scroll
01 — Overview
A music-synchronized dancing robot system built on Baxter — a dual-arm robot simulated in robosuite/MuJoCo. The system automatically extracts tempo from an audio track, generates time-aligned tutting motion patterns, and drives the robot's joints using a custom PID controller — all synchronized to Uptown Funk by Bruno Mars.
Librosa's beat tracker automatically detects BPM and beat timestamps from raw audio. Uptown Funk clocks in at ~117 BPM with 513 beats over 270 seconds.
A choreography system maps detected beat timestamps to a library of tutting poses — geometric, angular arm configurations that snap to each beat.
A custom PID controller drives all 14 of Baxter's arm joints toward target configurations, computing joint position commands every control timestep.
Timing error between detected beat timestamps and actual pose change events is measured and reported, demonstrating synchronization accuracy.
02 — Architecture
Five modular components work together to produce synchronized robot motion from a raw audio file.
librosa extracts BPM + beat timestamps
maps beats → pose names via cue list
14D joint angle arrays per pose
custom PID computes joint position commands
Baxter sim applies joint commands
03 — Demo
Baxter performing a tutting choreography synchronized to Uptown Funk by Bruno Mars.
04 — Stack
Robot simulation framework
Physics engine
Audio analysis + beat tracking
Dual-arm, 14 DOF
Joint position control
Audio playback