Autonomous Hexapod — NASA Colorado Robotics Challenge
An 18-DoF walker with emergent Kuramoto-CPG gaits and IMU heading-hold autonomy — competed on the dunes, then learned to dance.
Role — Team lead — electrical system, autonomous firmware, locomotion simulation
- Sand is a hostile place for a walker: heading drifts, legs sink, and there's no operator in the loop. The robot needed self-contained autonomy — orientation, obstacle response, and gait control — on a microcontroller.
- Autonomous legged robot · embedded control
- Legged locomotion on unstructured terrain is the same problem the humanoid work faces, one level down the stack — and this version required owning every layer, from power distribution to gait dynamics.
- 4-person team. Chassis/IK geometry adapted from an open-source build; electrical system, firmware, and simulator were the team's own, led by Jangara.
Overview
End-to-end development of an autonomous hexapod rover for NASA's Colorado Robotics Challenge at Great Sand Dunes National Park, leading a 4-person team. The mechanical chassis and inverse-kinematics geometry started from an open-source design; everything else was rebuilt from the wiring up — the complete electrical system, the autonomous firmware, and a Python locomotion simulator where tripod, wave, and ripple gaits emerge from one Kuramoto coupled-oscillator system instead of hand-coded sequences. Fully open source, including a 34-test CI suite. After the competition, the team gave it a choreographed dance routine — six legs, 18 servos, no human input.
IMU and bump sensors feed an ATmega2560 running the heading-hold controller and behavior state machine, driving 18 servos through emergent CPG gaits. A Python Kuramoto simulator designed the gait dynamics before they ran on hardware.
- ICM-20948 IMU + bump sensors
- ATmega2560 firmware — P-control heading hold
- Behavior FSM — 8 autonomous modes
- 18 servos — tripod / wave / ripple gaits
- Kuramoto CPG simulator (design loop)



Contributions
- Designed the complete electrical system from scratch: Arduino Mega 2560, SparkFun ICM-20948 IMU, bump sensors, LiPo + SBEC power distribution, LED battery indicator, and a 3-bit command interface selecting between 8 autonomous behaviors.
- Built the autonomous firmware: closed-loop heading hold via a P-controller fusing gyro and magnetometer data, gyro bias auto-calibration at startup, and a bump-avoidance state machine.
- Developed a Python Kuramoto coupled-oscillator simulator where tripod, wave, and ripple gaits emerge from the same dynamical system.
- Open-sourced the full project — firmware, simulation, CAD, and a 34-test CI suite.
Evidence & evaluation
Evidence
Demo video
attachedEmbedded above — the choreographed routine, fully autonomous.
Open-source release
attachedFirmware, simulator, CAD, and 34-test CI suite on GitHub.
Competition field notes
pending[Add outcome and terrain lessons from the Great Sand Dunes run.]
Metrics
18
8
34-test CI suite
4 people
Limitations
- [Document competition performance and terrain failure modes — sand sink, heading drift limits, servo thermal behavior.]to fill
Lessons & tradeoffs
- Letting gaits emerge from one coupled-oscillator system replaced three hand-coded gait tables — dynamics did the work that sequencing couldn't.
- Heading hold on sand is a controls problem first and a sensing problem second; the P-controller only worked after gyro bias auto-calibration.