skip to content
all projects
Drift hero
systems2025

Drift: Self-balancing robot that never quite balanced

Saw a video of a Segway-style balancing robot and thought it looked simple. It was not. The MPU6050 gives noisy angle estimates so I tried a complementary filter, then a Kalman filter I found on GitHub that I didn't fully understand. The NEMA 17 steppers were probably too slow for the reaction time needed - DC motors with encoders would have been better but I already had the steppers. The center of mass was too high because I stacked the battery on top. Best run was about 10 seconds of wobbly balance on the kitchen floor. Then the A4988 driver chip overheated and died, and I decided to work on Tideline instead.

  • MPU6050 angle estimation with complementary filter
  • PID loop on stepper speed, but steppers were too slow
  • Center of mass was too high - needed redesign
  • Best run: ~10 seconds before toppling