AWS Government, Education, & Nonprofits Blog

EPFL Designs Robots through Artificial Evolution

RoboGen™ is an open-source educational and research platform for the co-evolution of robot bodies and brains. It was developed at the Laboratory of Intelligent Systems at EPFL led by Professor Dario Floreano with the focus on evolving robots, which has a capability to introduce new body morphology and actuation that have never been imagined before. The team’s goal is to develop a low-cost, simple and versatile platform for research, answering questions around embodied cognition, crossing the reality gap, and learning via Darwinian principles.

Today, Robogen is an educational, hands-on learning tool that has been used for class projects by over 100 master students at École Polytechnique Fédérale de Lausanne (EPFL), a research institute and university in Lausanne, Switzerland. Robogen uses AWS Cloud Credits for Research. The AWS Promotional Credits are being used to perform large-scale experiments in distributing Evolutionary Robotics over the web.

The Robogen software is designed to perform artificial evolution of robots for the Robogen project. There are two major components of the software: the evolution engine and the simulator. The evolution engine is responsible for most of the conceptual part of the evolution process (e.g. population generation, selection, mutation, and reproduction), while the simulator is only there to do the fitness (i.e. robot performance) evaluation. The two components work together to perform artificial evolution of Robogen robots. They are executed as two independent processes that communicate over the network.

Watch the video to learn more.

The project’s evolution

The Robogen framework is made up of a physics simulation engine that matches the simulation environment to real-world physics, hence the evolved robots are able to work in the real world. These robots can be transformed into reality via 3D printing and a small set of low-cost, off-the-shelf electronic components.

The “brain” of the robot learns through evolution optimizing its algorithm. All the robots start their evolution with a standard un-optimized brain algorithm and a single cell or small structure body. The brain and body evolve over time based on adaptation and selection of the bet performing robot. For example, a RoboGen robot can learn to move faster in each generation (as seen in the video above). Robots with different shapes can be merged together to diversify the new population at each generation to explore new brain and body combinations. The computations get increasingly complicated with each input requiring processing.

This evolution is meant to mimic natural evolution – constantly changing and adapting the body and brain to its surroundings.

Just as RoboGen learns and adjusts course through evolutions, so did the research team.

The project began as a simple framework with a standalone application. As RoboGen evolved into a more complex education and research tool, the team ran out of compute power.

“We ran out of compute power very quickly. Once, evolving several robots at the same time for many generations, we began looking for an alternative solution,” said Anand Bhaskaran, Scientific Assistant and Engineer, EPFL.

With promising results, the team shifted to a web-based framework. While it was slow in the beginning, the team turned to AWS for distributed cloud computing. The simulator now runs on top of AWS. It is an open source tool, so anyone can use the algorithms.

“We chose AWS for its autoscaling capability. Now, whenever anyone is performing an evolution or multiple students are using the compute nodes, the AWS Cloud scales up automatically and gives us the computation we need in seconds,” said Anand. “We are now able to complete projects and research much faster. Without AWS, we couldn’t do this. We can now scale up to 15 instances during peak demand.”

RoboGen has been used to evolve dozens of robots and has run for thousands of generations. The current development team, Anand Bhaskaran and Davide Zappetti, keep working on it to improve the quality of the robots evolved with the help of one of the first developers, Josh Auerbach, but anyone can get involved and implement their own ideas through the RoboGen website here.