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
以下のように表示されます
セグメンテーションフォルトが起こる場合
デモを実行するとセグメンテーションフォルトが起こる場合があります。
$ 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