← Selected work

Robotics · 2025

Timed-Vibration Quadruped Locomotion

A quadruped, loose terrain, and timed vibration.

View code on GitHub ↗
Top-down photo of the quadruped robot chassis with servos, control board, and battery.
Chassis top-down · Dynamixel servos, controller, Li-ion pack

The project

Embedded C++ firmware for a quadruped robot walking on granular terrain. I implemented a Buehler-clock gait and drove DRV2605L haptic actuators for timed vibration during leg swing phases — studying how vibration timing affects locomotion on loose substrate.

Hardware

  • 4x Dynamixel XL-320 servos (one DOF per leg)
  • 2x DRV2605L haptic motor drivers (front / rear pairs)
  • Arduino-compatible microcontroller, Li-ion battery pack
  • 3D-printed servo mounts and leg linkages

What I built

  • Buehler-clock gait generator with configurable phase offsets
  • Haptic actuation synchronized to the swing phase of each leg
  • Multiple gait modes (trot, walk, bound) selectable at runtime
  • Real-time power-consumption monitoring over serial debug

Testbed

A wooden box filled with beads as a repeatable granular substrate — the robot walked the box while we varied vibration timing and gait, watching which combinations kept it moving instead of digging in.

Full test run on the granular medium — the timed-vibration gait carrying the quadruped across the bead bed.
Early testbed run — the quadruped over the bead trough, before the full granular trials.
Quadruped chassis on the work mat
Full chassis on the bench — four Dynamixel XL-320 servos, Arduino-compatible controller, Li-ion pack.
Side view of leg linkages and servo mounts
Leg detail — 3D-printed servo mounts driving the linkages, one DOF per leg.
Team with the robot and the granular testbed
The team with the robot and the granular testbed — a wooden box of beads standing in for loose terrain.
Team holding the finished quadruped
Final build, in hand.

Built with

Embedded C++ · Robotics · Firmware