Getting Started

Revolve2 is research software designed for the optimization of modular robot designs, both in terms of their physical structures (bodies) and their behaviour (brains). It primarily employs evolutionary algorithms for optimization, although other techniques can be used as well. Furthermore, Revolve2 offers capabilities to test these robots in simulation as well as in the real-world.

The software comes with several packages. Depending on your research needs, you may choose to work with a specific subset of these packages. This tutorial will guide you through the key steps to initiate your studies and research using Revolve2 efficiently.

Step 1: Installation

The first step is to install Revolve2. For this follow the detailed tutorial from Installation Guide. Keep in mind that installation can vary depending on the release you choose. This documentation matches the latest release of Revolve2.

Step 2: Play with the examples

Based on your research topic, certain functionalities in Revolve2 may be of interest to you. A good starting point to delve deeper into Revolve2’s inner workings is the example directory found in the repository. Some examples come in two versions: one with and one without a database. It is recommended to explore the examples without the database first to better grasp the significance of this addition. The examples are structured in order of progression. Starting from the beginning will give you a good understanding once you reached the part that is relevant to you. You will find a more thorough explanation of the examples in their respective readme`s.

Revolve2 examples

Example

Contents

Prerequisite examples

1 Simulator Basics

1a simulate single robot

Simulate and visualize a single modular robot.

-

1b custom terrain

Design your own terrain and test it in simulation

1a simulate single robot

2 Modular Robot Basics

2a custom brain

Design your own brain and test it in simulation.

1a simulate single robot

2b brain with feedback

Design a custom brain that takes sensory input.

1a simulate single robot, 2a custom brain

3 Experiment Foundation

3a experiment setup

Set up your first experiment.

-

3b evaluate single robot

Evaluate a robot by simulating it and calculating its displacement.

1a simulate single robot

3c evaluate multiple isolated robots

Evaluate multiple non-interacting robots concurrently.

3b evaluate single robot

3d evaluate multiple interacting robots

Evaluate multiple interacting robots.

3b evaluate single robot

4 Example Experiment Setups

4a simple ea xor

Use an evolutionary algorithm to train a neural network to perform XOR.

3a experiment setup

4b simple ea xor database

Similar to 4a simple ea xor, but now using a database to store experiment results. Learn how to read the database for e.g. plotting or recovering crashed experiments.

4a simple ea xor

4c robot bodybrain ea

Optimize the bodies and brains of modular robots using an evolutionary algorithm.

3c evaluate multiple isolated robots, 4a simple ea xor

4d robot bodybrain ea database

Similar to 4c robot bodybrain ea, but now using a database to store experiment results.

4c robot bodybrain ea, 4b simple ea xor database

4e robot brain cmaes

Optimize the brains of modular robots using CMA-ES.

3c evaluate multiple isolated robots, 4a simple ea xor

4f robot brain cmaes database

Similar to 4e robot brain cmaes, but now using a database to store experiment results.

4e robot brain cmaes, 4b simple ea xor database

5 Physical Modular Robots

5a physical robot remote

Learn how to use your evolved robots in the physical world.

1a simulate single robot

5b compare simulated and physical robot

Learn how to use your evolved robots in the physical world.

5a physical robot remote