Revolve2 is a Python package for optimization, geared towards modular robots and evolutionary computing. Its primary features are a modular robot framework, wrappers around physics simulators, and evolutionary optimizers. It consists of multiple smaller python packages and optional supplementary packages that contain varying functionality that is not always required.
If you are using the Isaac Gym environment supplementary library, it requires exactly python 3.8. It's working on Linux and windows only.
Assuming that you have downloaded isaacgym and installed virtualenv, simple steps to install are:
cd revolve2/
python3.8 -m virtualenv .venv
or virtualenv -p python3.8 .venv
source .venv/bin/activate
pip install ~/isaacgym/python/
./dev_requirements.sh
check the installation
pip list |grep revolve2
- Install virtual enviroment. 1) virtualenv or 2)conda.
- if you choose virtualenv, install virtualenv:
pip3.8 install virtualenv
Create a directory for your project, then create a virtual environment:
python3.8 -m virtualenv .venv
Activate the virtual environment:
source .venv/bin/activate
- if you choose conda, install anaconda:
Download [anaconda] package (https://docs.conda.io/projects/conda/en/latest/user-guide/install/linux.html)
Go to the directory where you've stored the package (e.g. cd ~/Download)
bash Anaconda-latest-Linux-x86_64.sh (make sure it's matching the pageckage name you downloaded)
test if conda is installed correctly:
conda list
Activate the virtual environment:
conda activate [virtual env name]
if you don't know which virtual env to activate, check your virtual env list by
conda info --env
- Clone the Revolve2 project locally:
git clone https://github.com/ci-group/revolve2.git --recursive
- Install core
Core has only PyPI dependencies and is a pure python library:
pip install <revolve_path>/core
-
Obtain a copy of Isaac Gym version rc3. At the time of writing it is available at https://developer.nvidia.com/isaac-gym.
-
Next, make sure you are in your virtual environment and install Isaac Gym:
pip install <isaacgym_path>/python
- Install the Isaacgym library as a python package:
pip install <revolve_path>/runners/isaacgym
- Install boost (Ubuntu)
sudo add-apt-repository universe
sudo apt-get update
sudo apt-get install libboost-all-dev
- Intall cppnwin
pip install <revolve_path>/genotypes/cppnwin
Ubuntu user:
sudo apt install libcereal-dev
cd ~/isaacgym/python/examples/
python joint_monkey.py
cd ~/revolve2/examples/optimize_modular
python optimize.py
cd ~/revolve2/core/revolve2/analysis/core
python plot_ea_fitness.py ~/revolve2/examples/optimize_modular/database/
In the newest version: +database +process_id
~/revolve2$ revolve2_plot_ea_fitness_float ./examples/simple_optimization/database 0
- Fork Revolve2
- Add the forked repo as a submodule under your working direcotry. e.g.:
git submodule add --force [email protected]:onerachel/revolve2.git
or checkout to the existing one:
git checkout remote/xxx
- Remote to the original revolve2
cd revolve2
git remote add ci_revolve2 [email protected]:ci-group/revolve2.git
Check if it's added by
git remote -v
- Get the content from the original CI revolve2
git fetch ci_revolve2
- Rebase the master branch of the original revolve2 as the root
git rebase ci_revolve2/master
- Push twice under revolve2 directory and your working directory
git push --force-with-lease
3749374 (Update README.md)