Skip to content
Robot evolution framework for the Triangle of Life project
Python C++ R CMake Shell C Dockerfile
Branch: master
Clone or download
Latest commit 5ed6955 Aug 8, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.circleci CIRCLECI: git clone submodules Jul 24, 2019
cpprevolve
docker Docker: update build to use custom gazebo-revolve Jul 24, 2019
docs Fix the `Doxyfile` Feb 22, 2019
experiments new folder for saving the experimental data Aug 7, 2019
models new models Jun 5, 2019
pyrevolve new folder for saving the experimental data Aug 7, 2019
test_py fix render_brain removing random files Jul 25, 2019
thirdparty added Real Time priority to systemd service Jun 17, 2019
tools fix BodyAnalyzer plugin and world files Aug 5, 2019
worlds small fixes Aug 5, 2019
.gitignore Merge remote-tracking branch 'origin/bayesian-optimization' into brai… Jun 13, 2019
.gitmodules Add limbo thirdparty library, fix dependencies in cmake Apr 23, 2019
CMakeLists.txt Added PIGPIO library in thirdparty Jun 14, 2019
Dockerfile Docker: update build to use custom gazebo-revolve Jul 24, 2019
README.md Update README.md Mar 18, 2019
RELEASE.md Create RELEASE.md Feb 12, 2019
requirements.txt Removed requirements error Jul 17, 2019
revolve.py reintroduced robot collision analyzer Aug 5, 2019
test_robots.py watch robots fix Jun 25, 2019

README.md

Revolve is an open source software framework for robot evolution providing C++ and Python libraries to create, simulate and manage robots in the Gazebo general-purpose robot simulator. Given a specification, a robot body can be constructed by Revolve from a tree structure, starting with a root node extending to other body parts through its attachment slots. Revolve also ships with some simple generator classes, which can generate arbitrary robot bodies from scratch given a set of constraints.

Revolve was originally developed and is maintained by researchers and engineers working at the Computational Intelligence Group within Vrije Universiteit Amsterdam for the purposes of conducting robot body and brain evolutionary-related research. The system is general enough to be applicable in a wide variety of other domains, as well.

Installation

The current system is supported for Linux and Mac OS X platforms. If all pre-requirements are satisfied, to install the current release run:

git clone https://github.com/ci-group/revolve.git
export SIM_HOME=`pwd` && cd $SIM_HOME/revolve
mkdir -p build && cd build
cmake ..
make -j4

Within the revolve/ root directory create Python virtual environment:

cd $SIM_HOME/revolve
virtualenv --python python3 .venv
source .venv/bin/activate
pip install -r requirements.txt

To verify the build, run following command to open the Gazebo simulator:

(.venv) ./revolve.py --simulator-cmd=gazebo

If you want to have an overview of all possible Revolve commands, run ./revolve.py --help.

See Installation Instructions for Revolve for detailed instructions, and how to build from source.

Try your first Revolve program

While ./revolve.py is running, in another terminal window start the same virtual environment:

cd ./revolve/
source .venv/bin/activate
(.venv) python
>>> import asyncio
>>> from pyrevolve.gazebo.manage import WorldManager as World
>>> async def run():
...     world = await World.create()
...     await world.pause(True)
...     print("Hello Revolve! I paused Gazebo.")
... 
>>> loop = asyncio.get_event_loop()
>>> loop.run_until_complete(run())
Hello Revolve! I paused Gazebo.

Learn more examples about how to do specific tasks in Revolve at the tutorials page of Revolve wiki.

Contribution guidelines

If you want to contribute to Revolve, be sure to review the contribution guidelines. By participating, you are expected to uphold this code.

We use GitHub issues for tracking requests and bugs.

The Revolve project strives to abide by generally accepted best practices in open-source software development: CII Best Practices CircleCI Codacy Badge

Contributors

We would like to thank all contributors of Revolve project!

Special thanks to Elte Hupkes who designed the codebase and professor Gusz Eiben whose energy is pushing the project forward. Many thanks to Milan Jelisavcic and Matteo De Carlo for redesigning and simplifying the codebase. For the complete list of contributors see AUTHORS.

For more information

License

Apache License 2.0

You can’t perform that action at this time.