Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


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

Intelligent Trial & Error (Limbo experiment)

ITE code for the experiments published in Cully et al. (2015), Nature.

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

Video (click on it to play):

Robots that can adapt like animals

Other parts of the experiments published in the paper:

  • limbo: A lightweight framework for Bayesian and model-based optimisation of black-box functions
  • Sferes2: A high-performance, multi-core, lightweight, generic C++98 framework for evolutionary computation.
  • map_elites_hexapod: MAP-Elites code for the hexapod


  • Original author : Antoine Cully
  • Other contributions: Jean-Baptiste Mouret, Konstantinos Chatzilygeroudis

How to compile


  • robdyn: Dynamic simulator
    • Get the code: git clone
    • Configure for compilation/installation: ./waf configure
    • Compile with ./waf
    • Install robdyn on your computer: sudo ./waf install
    • For more advanced options, look at robdyn's repo.
  • limbo: A lightweight framework for Bayesian and model-based optimisation of black-box functions
    • Get the code: git clone
    • For more advanced options, look at limbo's repo.
  • ROS (optional):
    • If you want to run the experiment on the real robot, you need to have ROS installed. Please check the official instructions to download and install ROS.
  • hexa_control (optional):
    • If you want to run the experiment on the real robot, you need to have the hexa_control ROS package to control the robot. See hexa_control's repo for instructions.


  • Make sure you have all the dependencies installed/downloaded.
  • Go to your limbo root directory
  • Configure for compilation: ./waf configure
  • Compile limbo with: ./waf
  • Create an experiment folder (if there's none) and cd to it: mkdir exp && cd exp
  • Clone ITE: git clone
  • Go back to your limbo root dir
  • Compile the ITE experiment: ./waf --exp ITE
    • You need to add --robot true if you want to run ITE on the real robot
    • You can add --disable-graphics true if you want to not build the graphic version (requires OSG)

How to execute an experiment

Nature version

./build/exp/ITE/hexa_bomean_variant path_to_archive [matern_kernel_l_value] [leg_indices]
  • Parameters:
    • [] means that the parameter is optional
    • the order must be followed
    • hexa_bomean_variant - there are 2 variants: hexa_bomean_robot (this exists only if you have compiled with --robot true) and hexa_bomean_graphic
    • path_to_archive - path for the MAP Elites archive to use
      • There are some available archives in the archives folder
    • matern_kernel_l_value - l value for the matern kernel (optional - 0.4 is the default)
    • leg_indices - leg_indices should not be more than 5 in number and in [0-5] range - this parameter is useful only when simulating
    • Example: ./build/exp/ITE/hexa_bomean_graphic ./exp/ite/archives/archive.dat 0.5 1
      • This will run a simulated robot using the "./exp/ite/archives/archive.dat", setting the l value to 0.5 and removing leg 1 from the robot.

Generated MAP Elites archives are located in the archives directory.


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




* Limbo experiment * Intelligent Trial & Error Algorithm for robot adaption






No releases published


No packages published