Home > Projects > Six-legged robot gait on a DE1-SoC

Six-legged robot gait on a DE1-SoC

EECE 2160 · Embedded Design: Enabling Robotics

Final lab

Controlling an 18-servo hexapod from the ARM side of a DE1-SoC through memory-mapped I/O. The course supplied the servo driver and a forward tripod gait; I added walking backward, turning left and right in place, and a smoother stand-up sequence so the robot no longer lurches upright.

Tools: C++ · DE1-SoC (Cyclone V SoC FPGA) · memory-mapped I/O · 18 servos

More info

The robot

Six legs, three servos each (hip, knee, ankle), driven by the DE1-SoC's FPGA fabric and commanded from a C++ program on the ARM processor through memory-mapped registers (the MMap and ServoMotor classes). The legs are grouped into two tripods (right-front, left-middle, right-back and the mirror set), and walking alternates between them: lift one tripod's knees, swing its hips forward while the other tripod's hips swing back, lower the knees, repeat with the other group. WaitReady() blocks until every servo reports it has finished so the groups never drift out of sync.

What I added

The gait and timing follow the original forward-walking structure, so the additions are a few dozen lines rather than a rewrite.


« Back to all projects