はじめに
こんにちは。まっちゃ。です。
今回は、物理シミュレータで話題となっている「Genesis」の環境構築についてまとめていきます。
なぜ重要か
環境構築において、エラーが発生した箇所の対応策を共有するため
目次
- Genesisとは
- 環境構築
- パッケージのインストール
- リポジトリの複製
- サンプルコードの実行
- エラー対応
- まとめ
Genesisとは
汎用的な物理プラットフォームです。以下のような特徴をもちます。
- 多種多様な物理現象がシミュレート可能
- 軽量かつ超高速
- ユーザーが入力する自然言語の説明を様々な形式のデータに変換
環境構築
以下に示す4つの手順で進めていきます。ここでは、wsl上に環境構築を行い、公式のレポジトリにある"hello_genesis.py"をサンプルコードとして実行していきます。
- パッケージのインストール
- リポジトリの複製
- サンプルコードの実行
- エラー対応
【前提】
環境を構築する上で、以下に示す2つを前提としています。
- wsl環境上にpyenv, poetryが導入済であること
- GPUが使用できる環境を構築済であること(本記事では、CUDA12.1で構築済とします。)
パッケージのインストール
- 任意の空きフォルダを作成
- pyenvでインストールされているPythonのバージョンを確認
pyenv versions
- 1.で作成したフォルダに移動し、構築環境のPythonのバージョンを指定(2.で確認したバージョンを入力)
pyenv local 3.XX.XX
- pyproject.tomlを作成
poetry init
- フォルダ内に仮想環境を作成(2.で確認したバージョンを入力)
poetry env use 3.XX.XX
- GPU版Pytorchをインストール
poetry source add torch_cu121 --priority=explicit https://download.pytorch.org/whl/cu121
poetry add torch torchvision torchaudio --source torch_cu121
【参考】
GPU版のPytorchのインストール - genesisパッケージをインストール
poetry add genesis-world
リポジトリの複製
- Genesisのレポジトリを複製
git close https://github.com/Genesis-Embodied-AI/Genesis.git
サンプルコードの実行
- 「パッケージのインストール」5.で作成した仮想環境をactivateして、Genesisフォルダに移動し、サンプルコードを実行
python examples/tutorials/hello_genesis.py
エラーの発生がなく、アームが自然に倒れる画面が表示されれば、ここで環境構築完了です。
エラー対応
ここでは、サンプルコードを実行した際に遭遇した2つのエラーと解決方法について記載します。
エラー① 実行時に画面がポップアップされるが、黒い画面で何も映らない
ターミナル上では"OpenGL.error.GLError"が発生
- pyopenglを3.1.5にダウングレード(genesis-worldを入れた時点で3.1.7が導入されていました。)
poetry add pyopengl==3.1.5
【参考】
エラー② GPU使用時(gs.init(backend=gs.gpu)
)にプロセスが中断される
ターミナル上では以下のエラーが発生
[cuda_driver.h:operator()@92] CUDA Error CUDA_ERROR_NO_DEVICE: no CUDA-capable device is detected while calling init (cuInit)
- パスを追加
"~/.bashrc"にexport LD_LIBRARY_PATH=/usr/lib/wsl/lib:$LD_LIBRARY_PATH
を記載
【参考】
まとめ
今回は「Genesis」実行環境の構築について、まとめてきました。
ロボットのシミュレーションというと専用のハード-ソフトを用いて行う認識だったので、「Genesis」を用いることで専用の機器を準備せず実行することが可能となり、かつ制御が簡単であるというのは驚きました。
次回以降で、Genesisの詳細な使用方法をキャッチアップしていこうと思います。