Tuesday, May 16, 2017

Roboschool

https://github.com/openai/roboschool


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

No comments:

Post a Comment