💪

深層強化学習のための物理シミュレーション環境構築(PyBullet)

2021/04/14に公開

深層強化学習のための物理シミュレーション環境

深層強化学習関連の本を読んで、PyBlletというライブラリの物理シミュレーション環境を構築したのでメモ。

https://amzn.to/2Qp0Vhe

Linux(Ubuntu)、Apple Silicon(M1) Macで環境構築しています。

Intel MacでのOpen AI Gymの環境構築に関しては以前、以下記事にまとめました。

https://qiita.com/karaage0703/items/9be1d5b7f4ca4b368bdc

自分環境構築ばっかしてますね…

PyBulletの環境構築

Ubuntu 18.04

以下実行すればOKです。簡単ですね。

$ pip3 install pybullet
$ pip3 install numpy

Mac(Intel/Apple Silicon)

Python環境をMiniForgeで構築します。理由と方法は以下記事参照ください。

https://zenn.dev/karaage0703/articles/f3254b14898b4d

MiniForgeをインストールしたら、以下実行してPython3.8の環境を構築してアクティベートします。

$ conda create --name python38 python=3.8
$ conda activate python38

続いて、以下コマンドでPyBulletをMiniForgeでインストールします。

$ conda install pybullet

もし、PackagesNotFoundErrorとパッケージが見つからないエラーが出たら、pipでインストールしてください。

$ pip install pybullet

PyBullet使い方

PyBulletを動かしてみましょう。

$ git clone --depth 1 https://github.com/bulletphysics/bullet3
$ cd bullet3/examples/pybullet/examples
$ python3 humanoid_manual_control.py

以下のような人の人形が表示されたらOKです。

PyBulletで深層強化学習

TensorFlow/TF-Agentsのインストール

PyBullet上で深層強化学習を動かすには、TensorFlow, TF-Agentsも必要です。Apple SiliconのTensorFlow/TF-Agentsに関しては少し複雑なのでこちらの記事参照ください。

UbuntuやIntel Macなら以下コマンドでTensorFlow/TF-Agentsをインストールします。

$ pip install tensorflow
$ pip install tf_agents

PyBulletでの深層強化学習サンプル動作

サンプルは以下の要領で動かせます。

$ python -m pybullet_envs.examples.enjoy_TF_HumanoidFlagrunHarderBulletEnv_v1_2017jul

無事起動すると、以下のようなやばいサンプルが動き出します(笑)

https://twitter.com/karaage0703/status/1382313651835531265

他のサンプルも試してみたいですね。サンプルプログラムの場所は以下コマンドで探せます。

$ find / -name 'enjoy_TF_Humanoid*'

Intel Macだと以下の場所にありました。
/Users/karaage/miniforge3/pkgs/pybullet-3.09-py38hbd83c44_2/lib/python3.8/site-packages/pybullet_envs/examples/

Apple Silicon Macだと以下になりました。
/Users/karaage/miniforge3/envs/python38/lib/python3.8/site-packages/pybullet_envs/examples/

以下実行して、enjoy_xxx.pyというプログラムを動かすと、楽しいです。

$ cd /Users/karaage/miniforge3/envs/python38/lib/python3.8/site-packages/pybullet_envs/examples/

その他、冒頭で紹介した「TensorFlowによる深層強化学習入門」という書籍のサンプルプログラムが以下にあります。

https://www.ohmsha.co.jp/book/9784274226731/

プログラムの詳細は、書籍を読むと理解が深まるかと思います。

まとめ

PyBullet、そこまで重くなく試せそうなので、書籍を読みながら色々遊んでみたいと思います。この次はUnity…かな?

https://amzn.to/2Qp0Vhe

参考

https://qiita.com/Conny_Brown_jp/items/b09928bea3d63ce2a68d

https://note.com/npaka/n/nce9c85eb253e

Discussion