OmniverseとIsaac-SimをProxy環境でも動かしたい!(docker)
概要
Isacc-Simのバージョン4.0.0リリースに伴い,Omniverse-launcherをProxy環境で動かせるdockerfileを作成しました.
会社PCにdockerでサクッと入れたいけど,プロキシやGUI関連で諦めたよーという方におすすめです.
Isaac-Simを動かしたいだけなら,Kitをダウンロードしてpythonスクリプトを叩けばいいですが,GUI操作ができないとなかなか不便ですし,他のアプリケーションも利用したいならOmniverse-launcher経由のほうが楽です.
公式のdocker-imageはOmniverseを動かすための諸々の設定がされておらず,解説記事などもみあたらないため,今回作成することとしました.(かなり苦戦しました...)
githubのreadmeにも同様の解説を書いているので,こちらが見にくい方は,以下のリンクに飛んでください.
実行環境
ホストPC:Ubuntu20.04
Docker Engineバージョン:27.0.3
*Docker Desktop for Windowsは未検証です.
環境構築の手順
1. ホストPCの設定
- ルートにアクセス権限を付与します.
xhost +local:root
- .bashrc にコマンドを追加します.
echo 'xhost +local:root > nul' >> ~/.bashrc
- プロセスを強制終了します.
fuser -k 33480/tcp
fuser -k 34080/tcp
- インストールガイドに従って,手順5まで実行する.
https://docs.omniverse.nvidia.com/isaacsim/latest/installation/install_container.html - 公式のIsaac-Simバージョン4.0.0のdocker-imageをダウンロードする.(最新版は4.1.0になっているため注意,差し替えは個人で行ってください.)
docker pull nvcr.io/nvidia/isaac-sim:4.0.0
- リポジトリをクローンしてディレクトリを移動します.
git clone https://github.com/kentar0kozai/omniverse-isaac-docker-proxy-gui.git
cd omniverse-isaac-docker-proxy-gui
- Dockerfileの8行目を独自のプロキシとポートに変更します.
*バージョン4.1.0をダウンロードした場合,Dockerfile内のバージョン記述を4.1.0に書き換えてください.
e.g.
ENV PROXY=***.***.***.***:**
↓
ENV PROXY=192.0.2.1:8080
- docker composeを実行します.
*ダウンロードとインストールには時間がかかるため,コーヒーブレイクしましょう.
docker compose up
-
「Container isaac-sim-enhanced Created / Attaching to isaac-sim-enhanced」と表示されれば,成功です.
-
別ターミナルを開き,以下のコマンドでコンテナに入ります.
docker exec -it isaac-sim-enhanced bash
2. Omniverse-launcherの実行方法
- dockerターミナルで以下のコマンドを実行します.
このコマンドは/root/.bashrc内にaliasで登録されています.
ov-launcher
-
NVIDIAアカウントを作成してログインします.
-
NUCLEUSタブを選択し,ローカルサーバーとそのアカウントを登録します.
このアカウントはNVIDIAのデベロッパのアカウントではなく,Omniverseのローカルで管理する情報になります.
-
「Connect to a Server」をクリックして,localhostサーバーに接続します.
*たまにローカルアカウントが登録されずログインできないことがあるようです.その場合は、ID: admin、パスワード: admin でログインしてください.
-
更新タブを選択し、「Cache」をインストールします.
-
同様に「Isaac-Sim」をインストールします.バージョンを適切に選択してください.
-
ライブラリタブを選択し、Isaac-Sim を実行します.
-
「Isaac Sim App Selector 4.0.0」が立ち上がるので,適宜設定してスタートを押す.
-
初期画面のロード後、Isaac Examplesのいずれかを実行してみてください.
-
ポップアップタブの「LOAD」を押して、環境を読み込みます.
*初回のロードにはかなり時間がかかるので気長に待ちましょう.2回目以降は、環境がキャッシュに保存されるため高速にロードできます.画面右上の表示が「Cache:OFF」となっていますが,公式のバグなので気にしなくて大丈夫です.
-
isaac-simディレクトリには Pythonスクリプトとサンプルコードも含まれているため,Pythonチュートリアルをすぐに始められます.
https://docs.omniverse.nvidia.com/isaacsim/latest/core_api_tutorials/tutorial_core_hello_world.html
終わりに
ホストPCはUbuntu20.04しか試していないため,追加設定しなければならない場合もあると思います.
こちらの記事にコメントいただくか,Githubのissueに記入していただければ,できるだけ検証しようと思いますので,気軽にご記入いただければ幸いです.
Discussion