Giter Site home page Giter Site logo

onerachel / revolve2 Goto Github PK

View Code? Open in Web Editor NEW

This project forked from ci-group/revolve2

0.0 0.0 0.0 547.09 MB

A python library for optimization, geared towards modular robots and evolutionary computing.

Home Page: https://ci-group.github.io/revolve2

Python 99.39% Shell 0.61%

revolve2's Introduction

Revolve2

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.

Prerequisites

If you are using the Isaac Gym environment supplementary library, it requires exactly python 3.8. It's working on Linux and windows only.

Installation

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

Step by step

  1. 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 

  1. Clone the Revolve2 project locally:

git clone https://github.com/ci-group/revolve2.git --recursive 

  1. Install core

Core has only PyPI dependencies and is a pure python library:


pip install <revolve_path>/core 

  1. Obtain a copy of Isaac Gym version rc3. At the time of writing it is available at https://developer.nvidia.com/isaac-gym.

  2. Next, make sure you are in your virtual environment and install Isaac Gym:


pip install <isaacgym_path>/python 

  1. Install the Isaacgym library as a python package:

pip install <revolve_path>/runners/isaacgym 

  1. Install boost (Ubuntu)

sudo add-apt-repository universe 

sudo apt-get update 

sudo apt-get install libboost-all-dev 

  1. Intall cppnwin

pip install <revolve_path>/genotypes/cppnwin 

Ubuntu user:


sudo apt install libcereal-dev 

Testing 1


cd ~/isaacgym/python/examples/ 

python joint_monkey.py  

isaacgym

Testing 2

cd ~/revolve2/examples/optimize_modular
python optimize.py
cd ~/revolve2/core/revolve2/analysis/core
python plot_ea_fitness.py ~/revolve2/examples/optimize_modular/database/

image

In the newest version: +database +process_id
~/revolve2$ revolve2_plot_ea_fitness_float ./examples/simple_optimization/database 0

Figure_1

Extra - if you'd like to rebase to the master branch of the original revolve2 version

  1. Fork Revolve2
  2. 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
  1. 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
  1. Get the content from the original CI revolve2
git fetch ci_revolve2
  1. Rebase the master branch of the original revolve2 as the root
git rebase ci_revolve2/master
  1. Push twice under revolve2 directory and your working directory
git push --force-with-lease

Documentation

ci-group.github.io/revolve2

3749374 (Update README.md)

revolve2's People

Contributors

surgura avatar daanz avatar onerachel avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.