Skip to content
Switch branches/tags

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

IT&E Hexapod Experiments

Limbo experiment: IT&E code for developing hexapod experiments similar to Cully et al. (2015), Nature. This code is not replicating the exact experiments of the Nature paper, but can be seen as a more modern implementation of the underlying algorithm.

Citing this code

If you use our code for a scientific paper, please cite:

Antoine Cully, Jeff Clune, Danesh Tarapore, and Jean-Baptiste Mouret. "Robots that can adapt like animals." Nature 521, no. 7553 (2015): 503-507.

In BibTex:

    title = {Robots that can adapt like animals},
    volume = {521},
    pages = {503--507},
    number = {7553},
    journal = {Nature},
    author = {Cully, Antoine and Clune, Jeff and Tarapore, Danesh and Mouret, Jean-Baptiste},
    year = {2015}


  • Author/Maintainer: Konstantinos Chatzilygeroudis
  • Other contributors: Vassilis Vassiliades, Antoine Cully, Jean-Baptiste Mouret

How to compile


Setting up the ResiBots environment

We use the environmental RESIBOTS_DIR variable for easy configuration and library finding (it basically points to one folder where every local installation happens that is related to the project). Thus, before installing/compiling anything, make sure that you add this line to your ~/.bashrc or ~/.zshrc file:

export RESIBOTS_DIR=/path/to/resibots/installation/folder

From now on, we assume that the RESIBOTS_DIR variable is set.

Installing DART

To simulate our hexapod we are using the DART simulator. To install use the following procedure:

sudo apt-add-repository ppa:libccd-debs/ppa
sudo apt-add-repository ppa:fcl-debs/ppa
sudo apt-add-repository ppa:dartsim/ppa
sudo apt-get update

sudo apt-get install build-essential cmake pkg-config git
sudo apt-get install libeigen3-dev libassimp-dev libccd-dev libfcl-dev libboost-regex-dev libboost-system-dev libode-dev
sudo apt-get install libopenscenegraph-dev

sudo apt-get install libtinyxml-dev libtinyxml2-dev
sudo apt-get install liburdfdom-dev liburdfdom-headers-dev

cd /path/to/tmp/folder
git clone git://
cd dart
git checkout v6.3.0

mkdir build
cd build
make -j4
sudo make install

Installing the hexapod common files

In order to simulate the hexapod you nead to get the URDF file and the controller library:

cd /path/to/tmp/folder
git clone
cd hexapod_common/hexapod_models
./waf configure --prefix=$RESIBOTS_DIR
./waf install
cd ../hexapod_controller
./waf configure --prefix=$RESIBOTS_DIR
./waf install

Installing the DART wrapper

To facilitate the simulation we have created a simple wrapper over the DART simulator that is specific to our hexapod robot:

cd /path/to/tmp/folder
git clone
cd hexapod_simu/hexapod_dart
./waf configure --prefix=$RESIBOTS_DIR
./waf install

Installing limbo's dependencies

sudo apt-get update
sudo apt-get install libeigen3-dev libboost-serialization-dev libboost-filesystem-dev libboost-test-dev libboost-program-options-dev libboost-thread-dev libboost-regex-dev libboost-graph-dev
sudo apt-get install libtbb-dev

Compiling the experiment

  • Get limbo: git clone
  • Go to your limbo root directory
  • Create an experiment folder (if there's none) and cd to it: mkdir exp && cd exp
  • Clone ite_v2: git clone
  • Go back to your limbo root directory
  • Configure the experiment: ./waf configure --exp ite_v2
  • Compile the experiment: ./waf --exp ite_v2

How to run

  • Compile the experiment (as shown above)
  • Run it (assuming you are on limbo root dir and the RESIBOTS_DIR folder is set properly):
    • ./build/exp/ite_v2/hexapod_simu path_to_archive [-l id_of_to_be_removed] [-n number_of_BO_iterations]
    • ./build/exp/ite_v2/hexapod_graphic path_to_archive [-l id_of_to_be_removed] [-n number_of_BO_iterations] for the graphics version
    • the ids of the legs are zero-based; i.e., they span from 0 to 5
  • Some already generated archives (to save you time) are in the archives folder. You can use map_elites_hexapod_v2 to generate new ones.


This work has been funded by the European Research Council (ERC) under the European Union’s Horizon 2020 research and innovation programme (grant agreement number 637972 - ResiBots).




Intelligent Trial & Error Algorithm for Robot Adaptation



No releases published


No packages published