Back to Projects

Embodied Evolution of Locomotion in Modular Robots

An embodied evolution project that evolves locomotion directly on a physical modular robot, using real-world distance travelled as fitness to reduce the simulation-to-reality gap in gait learning.

Embodied Evolution Setup

Highlights Video

Overview

This work implements an end-to-end embodied evolution setup for learning locomotion on a real Y-bot modular robot. Instead of evolving controllers only in simulation and transferring them later, candidate gaits are evaluated directly on the physical robot. The system combines custom Y1 robot hardware, actuator position estimation, camera-based tracking, a host-PC-to-robot communication protocol, and a hybrid evolutionary algorithm that optimizes sinusoidal gait parameters from real-world performance. The resulting system demonstrates that stable modular-robot locomotion can be evolved on hardware, while explicitly accounting for real-world effects such as actuator noise, surface friction, slippage, and mechanical constraints.

Methodology

  • Built a physical Y-bot modular robot platform from Y1 modules for evolving locomotion directly on real hardware.
  • Developed an actuator sensing pipeline using hacked servo potentiometer readings, linear regression, and Kalman filtering for actuator state estimation.
  • Implemented a 2D vision-based fitness system using an RGB webcam and colored marker to estimate robot displacement during real-world evaluations.
  • Designed a serial communication protocol linking the host PC’s high-level controller/evolution loop with the robot’s on-board SkyMega low-level controller.
  • Evolved a 13-parameter sinusoidal gait controller on the real Y-bot using a hybrid GA/ES-style evolutionary algorithm, producing stable caterpillar-like locomotion.

Why Embodied Evolution?

The "reality gap" between simulation and physical robots often causes controllers that work well in simulation to fail on real hardware. By evolving controllers directly on physical robots, we bypass this problem entirely.