Open-source software for robot simulation, integrated with OpenAI Gym.
Python C++ Other
Switch branches/tags
Nothing to show
Permalink
Failed to load latest commit information.
agent_zoo Initial commit May 15, 2017
roboschool Fix for rpath being broken by default on Ubuntu 17.04 May 30, 2017
.dockerignore Initial commit May 15, 2017
.gitignore Initial commit May 15, 2017
README.md Minor fixes May 20, 2017
setup.py Initial commit May 15, 2017

README.md

Roboschool

Release blog post is here:

https://blog.openai.com/roboschool/

Roboschool is a long-term project to create simulations useful for research. The roadmap is as follows:

  1. Replicate Gym MuJoCo environments.
  2. Take a step away from trajectory-centric fragile MuJoCo tasks.
  3. Explore multiplayer games.
  4. Create tasks with camera RGB image and joints in a tuple.
  5. Teach robots to follow commands, including verbal commands.

Environments List

The list of Roboschool environments is as follows:

  • RoboschoolInvertedPendulum-v0
  • RoboschoolInvertedPendulumSwingup-v0
  • RoboschoolInvertedDoublePendulum-v0
  • RoboschoolReacher-v0
  • RoboschoolHopper-v0
  • RoboschoolWalker2d-v0
  • RoboschoolHalfCheetah-v0
  • RoboschoolAnt-v0
  • RoboschoolHumanoid-v0
  • RoboschoolHumanoidFlagrun-v0
  • RoboschoolHumanoidFlagrunHarder-v0
  • RoboschoolPong-v0

To obtain this list: import roboschool, gym; print("\n".join(['- ' + spec.id for spec in gym.envs.registry.all() if spec.id.startswith('Roboschool')])).

Installation

First, define a ROBOSCHOOL_PATH variable in the current shell. It will be used in this README but not anywhere in the Roboschool code.

ROBOSCHOOL_PATH=/path/to/roboschool

If you have both Python2 and Python3 on your system, use python3 and pip3 commands.

The dependencies are gym, Qt5, assimp, tinyxml, and bullet (from a branch). For the non-bullet deps, there are several options, depending on what platform and package manager you are using.

  • Ubuntu:

    apt install cmake ffmpeg pkg-config qtbase5-dev libassimp-dev libpython3.5-dev libboost-python-dev libtinyxml-dev
  • Linuxbrew

    brew install boost-python --without-python --with-python3 --build-from-source
    export C_INCLUDE_PATH=/home/user/.linuxbrew/include:/home/user/.linuxbrew/include/python3.6m
    export CPLUS_INCLUDE_PATH=/home/user/.linuxbrew/include:/home/user/.linuxbrew/include/python3.6m
    export LIBRARY_PATH=/home/user/.linuxbrew/lib
    export PKG_CONFIG_PATH=/home/user/.linuxbrew/lib/pkgconfig:/usr/lib/pkgconfig:/usr/lib/x86_64-linux-gnu/pkgconfig

    (still use Qt from Ubuntu, because it's known to work)

  • Mac, homebrew python:

    # Will not work on Mavericks: unsupported by homebrew, some libraries won't compile, upgrade first
    brew install python3
    brew install cmake tinyxml assimp ffmpeg qt
    brew install boost-python --without-python --with-python3 --build-from-source
    export PATH=/usr/local/bin:/usr/local/opt/qt5/bin:$PATH
    export PKG_CONFIG_PATH=/usr/local/opt/qt5/lib/pkgconfig
  • Mac, Anaconda with Python 3

    brew install cmake tinyxml assimp ffmpeg
    brew install boost-python --without-python --with-python3 --build-from-source
    conda install qt
    export PKG_CONFIG_PATH=$(dirname $(dirname $(which python)))/lib/pkgconfig

Compile and install bullet as follows. Note that make install will merely copy files into the roboschool directory.

git clone https://github.com/olegklimov/bullet3 -b roboschool_self_collision
mkdir bullet3/build
cd    bullet3/build
cmake -DBUILD_SHARED_LIBS=ON -DUSE_DOUBLE_PRECISION=1 -DCMAKE_INSTALL_PREFIX:PATH=$ROBOSCHOOL_PATH/roboschool/cpp-household/bullet_local_install -DBUILD_CPU_DEMOS=OFF -DBUILD_BULLET2_DEMOS=OFF -DBUILD_EXTRAS=OFF  -DBUILD_UNIT_TESTS=OFF -DBUILD_CLSOCKET=OFF -DBUILD_ENET=OFF -DBUILD_OPENGL3_DEMOS=OFF ..
make -j4
make install
cd ../..

Finally, install project itself:

pip3 install -e $ROBOSCHOOL_PATH

Now, check to see if it worked by running a pretrained agent from the agent zoo.

Agent Zoo

We have provided a number of pre-trained agents in the agent_zoo directory.

To see a humanoid run towards a random varying target:

python $ROBOSCHOOL_PATH/agent_zoo/RoboschoolHumanoidFlagrun_v0_2017may.py

To see three agents in a race:

python $ROBOSCHOOL_PATH/agent_zoo/demo_race2.py