GithubHelp home page GithubHelp logo

veniversum / roboschool Goto Github PK

View Code? Open in Web Editor NEW

This project forked from openai/roboschool

0.0 2.0 1.0 13.04 MB

Open-source software for robot simulation, integrated with OpenAI Gym.

License: Other

Python 86.61% Makefile 0.20% C++ 12.45% GLSL 0.73%

roboschool's Introduction

Status: Maintenance (expect bug fixes and minor updates)

NEWS

2018 July 9

Hi everyone! We wanted to let you know why we haven't pushed changes into this repo for a while: we're working on roboschool2, a new codebase with different priorities, which we hope will further accelerate robotics research. We continue to recommend the use of roboschool1 Hopper, Ant, Humanoid and Flagrun for evaluation and testing of algorithms. If you have fixes to make installation easier we'll be happy to merge it. We'll have more to share about roboschool2 in a while.

2017 July 17, Version 1.1

  • All envs version bumped to โ€œ-v1", due to stronger stuck joint punishment, that improves odds of getting a good policy.
  • Flagrun-v1 is much more likely to develop a symmetric gait,
  • FlagrunHarder-v1 has new "repeat-underlearned" learning schedule, that allows it to be trained to stand up, walk and turn without falling.
  • Atlas robot model, modified (empty links removed, overly powerful feet weakaned).
  • All -v1 envs are shipped with better zoo policies, compared to May versions.
  • Keyboard-controlled humanoid included.

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.

Some wiki pages:

Contributing New Environments

Help Wanted

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 libqt5opengl5-dev libassimp-dev libpython3.5-dev libboost-python-dev libtinyxml-dev

    Users report in issue #15 that sudo pip3 install pyopengl can make OpenGL errors go away, because it arranges OpenGL libraries in an Ubuntu system in the right way.

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

roboschool's People

Contributors

olegklimov avatar zhangwj618 avatar christopherhesse avatar jdarpinian avatar jingconan avatar veniversum avatar

Watchers

James Cloos avatar  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.