Robot
OpenAIGym
roboschool

OpenAI roboschool をMac High Sierraにインストール

Open AI のロボットシミュレーション環境、RoboSchoolを、Mac High Sierra にインストールします。


環境


  • Mac High Sierra

  • Anaconda で、Python3 の環境がインストールされているとします。参考


必要なものをインストール

$ brew install cmake tinyxml assimp ffmpeg

$ brew install boost-python3
$ conda install qt
$ ln -s /usr/local/lib/libboost_python37.a /usr/local/lib/libboost_python3.a
$ ln -s /usr/local/lib/libboost_python37.dylib /usr/local/lib/libboost_python3.dylib
$ export PKG_CONFIG_PATH=$(dirname $(dirname $(which python)))/lib/pkgconfig
$ pip install future 'gym[atari]' 'gym[box2d]' 'gym[classic_control]'


roboschool のソースを取得

$ git clone https://github.com/openai/roboschool.git

$ cd roboschool
$ ROBOSCHOOL_PATH=`pwd`


bullet3 をインストール

bullet3 は物理演算エンジンです。

$ 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 ../..

上記の、make install では、$ROBOSCHOOL_PATH にインストールされます


roboschoolをインストール

以下の通り、roboschool/cpp-household/render-simple.cppを修正。

diff --git a/roboschool/cpp-household/render-simple.cpp b/roboschool/cpp-household/render-simple.cpp

index 1a3002c..10325d5 100644
--- a/roboschool/cpp-household/render-simple.cpp
+++ b/roboschool/cpp-household/render-simple.cpp
@@ -4,8 +4,8 @@
#include <QtOpenGL/QGLFramebufferObject>

#ifdef __APPLE__
-#include <gl3.h>
-#include <gl3ext.h>
+#include <OpenGL/gl3.h>
+#include <OpenGL/gl3ext.h>
#endif

// OpenGL compatibility:

$ pip install -e $ROBOSCHOOL_PATH


エラーが出た場合

    ./render-simple.h:6:10: fatal error: 'QtWidgets/QOpenGLWidget' file not found

などと出る場合は、以下のようにします。

python-3.7 の部分はバージョン番号に合わせてください。

$ brew install pkg-config

$ pkg-config --cflags Qt5Widgets Qt5OpenGL assimp python-3.7


サンプルを動かしてみる

tensorflowが必要なので、condaでインストールします。

$ conda install tensorflow

$ python $ROBOSCHOOL_PATH/agent_zoo/demo_race2.py

以下のように表示されます

スクリーンショット 2018-08-05 22.27.35.png


セグメンテーションフォルトが起こる場合

デモを実行するとセグメンテーションフォルトが起こる場合があります。

$ python $ROBOSCHOOL_PATH/agent_zoo/demo_race2.py

Segmentation fault: 11

これは、Pythonのバージョンによって起こるようです。

@kenrota に教えてもらったのですが、以下のような挙動となります。ただ、環境によっては動いたりするのでよく分かっていません。

3.6.8: x

3.6.6: x

3.6.5: x

3.6.0: o

3.5.5: x

3.5.2: o