この記事の目的
この記事では、私が大学の研究室(情報工学系)にて3年間扱ってきたIsaac Sim(他Omniverse関連ソフトを含む)の特徴、またUbuntuに導入するまで紹介します。(使い方などは今後投稿していく予定です。)
日本の3D界隈ではまだそれほど認知度の高くないIsaac Simを、皆さんに知っていただけると嬉しいです。(もちろん、使ってくれたらもっと嬉しいです。)
筆者の環境
サーバー1
CPU | GPU | メモリ | ストレージ | OS | NVIDIA Driver | |
---|---|---|---|---|---|---|
名称 | Intel Xeon Silver 4215R | NVIDIA RTX 6000 Ada | 96GB | 2TB | Ubuntu 20.04 LTS | 550.54.15 |
個数 | 2 | 1 |
サーバー2
CPU | GPU | メモリ | ストレージ | OS | NVIDIA Driver | |
---|---|---|---|---|---|---|
名称 | Intel Xeon Gold 6132 | NVIDIA RTX A6000, A4500 | 160GB | 4.5TB | Ubuntu 20.04 LTS | 560.35.03 |
個数 | 1 | 各1 |
どちらもローカルかつGUI環境
はじめに
Isaac Simとは?
Isaac Sim is a software platform built from the ground up to support the increasingly roboticized and automated world.
(What is Isaac Sim?より引用)
要するにIsaac Simとは、
"ロボティクス"と"自動化"を推進することを目的とした、「3Dモデル統合ソフトウェア」
のことです。
現在は統合プラットフォーム「NVIDIA Omniverse」内のソフトの1つとして提供されています。
OmniverseはIsaac Simを含むソフトやSDK、API等の統合プラットフォーム
別記事で解説予定
ここで、Isaac Simのことをわざわざ「3Dモデル統合ソフトウェア」と呼称したことに疑問を持たれた方もいらっしゃると思います。その理由についてはこの後解説でお分かりいただけるでしょう。
Isaac Simの特徴、「できること」と「できないこと」
Isaac Simは天下のNVIDIA様の謹製ソフトということで、一見なんでもできそうに見えます。当然多機能なソフトですが無論なんでもできるわけではなく、「わざわざIsaac Simを選ばなくていい」用途も多分に存在します。
よってここではそんなIsaac Simの特徴について、「できること(Isaac Simが得意なこと)」と「できないこと(不得意なこと)」に分けてそれぞれ説明します。
私自身の所感による部分もあります。ご容赦ください。
できること
- ファイルフォーマットに依らない3Dモデルの統合
- 一般的に使用されるフォーマットのほとんどに対応
- すべてを統合し、USD(Universal Scene Description)形式のファイルとして保存できる
- 高負荷な3Dシミュレーション
- Python APIやIsaac Sim APIを利用
- ホットリロード(スクリプトを編集、保存すると即座に3Dシーンへ適用される)対応でスムーズな開発ができる
- GPUを活用した高速かつ高品質なレンダリングが可能
- 高精細でリアルな3DCG映像の作成、表示
- 皆さんご存じレイトレーシングをはじめ、様々なグラフィック技術を活かした映像美を実現
- 物理シミュレーション
- PhysXを用いた物理演算とグラフィック技術を組み合わせた、物理現象をリアルに再現
-
複数人での同一シーンの同時操作 ※Ubuntuでは安定動作しない可能性があります
- 「NVIDIA NUCLEUS」を用いて同一シーンを複数人で同時に編集、確認することができる(らしい)
NUCLEUSはUSDファイルの共有フォルダ
プライベートクラウドストレージのようなもの
できないこと
- 3Dモデルの作成
- 3Dモデル自体の作成には向かない
- 単純なオブジェクト(立方体や球など)は配置可能
- 代替ソフト: Blender, Fusion360, etc.
- 3Dアニメーションの作成
- "Action Graph"や"Animation Graph"というノーコードツール(Extension)を使うが、ドキュメントが不足しており扱いにくい
- 物理演算を用いないのであれば、わざわざIsaac Simを使う必要はない
- 代替ソフト: Unity, Cinema 4D, AfterEffect, etc.
- ゲーム制作
- Isaac Simはゲーム制作を想定して作られていない
- 代替ソフト: Unity, Unreal Engine 5, etc.
私の経験では、Isaac Simも以上のように「できること」と「できないこと」があります。
これらを総合すると、Isaac Simは3Dモデルを統合し、高精細な映像や高速なシミュレーションを行うための「3Dモデル統合ソフトウェア」と考えることができるでしょう。
3D系ソフトを導入する際はぜひこれを参考に、Isaac Simを使うか否かの選択をしてみてください。
Isaac Simの導入方法
それでは、実際にIsaac Simを導入してみましょう。
導入前に確認して欲しいこと
システム要件
CPU | GPU | RAM | OS(Linux) | NVIDIA Driver | |
---|---|---|---|---|---|
最小 | Intel i7 第7世代, AMD Ryzen | Geforce RTX 3070 | 32GB | Ubuntu 20.04 LTS | 535.129.03 |
推奨 | Intel Xeonシリーズ | NVIDIA RTX A5000 | 128GB | Ubuntu 20.04 LTS | 535.129.03 |
最小構成はOmniverse Materials and Rendering >> Technical Requirementsより引用
推奨構成は著者の経験則、およびOmniverse >> 推奨システムより引用
パフォーマンス参考
Isaac Sim起動時黒画面でのFPSを参考とする
- サーバー1(6000 Ada):~150FPS
- サーバー2(A6000+A4500):~150FPS
- Xeon Silver 4215Rx2 + A6000:~90FPS
- Xeon Gold 6132 + Quadro RTX 5000x2:~50FPS
注意点
- Ubuntuは20.04と22.04のみサポート(他Linuxディストリビューション、他バージョンはサポート外)
- NVIDIA以外のGPUはサポート外
-
1台のローカルサーバー上で「複数人での同時操作」環境を無償で構築することは不可能
- サーバーの増設、vGPU(GPU仮想化)環境の構築、Teradici等のリソース仮想化技術が別途必要
導入手順
NVIDIA Driverインストール
-
Nouveau(Ubuntuデフォルトのグラフィックドライバ)無効化用Configファイル生成
sudo vim /etc/modprobe.d/blacklist-nouveau.conf
-
Configファイル編集
blacklist-nouveau.confblacklist nouveau options nouveau modeset=0
ZZ
で保存し、以下を実行sudo update-initramfs -u
-
推奨NVIDIA Driverの検索
sudo ubuntu-drivers list
以下のようなリストが表示される
nvidia-driver-535 nvidia-driver-535-open nvidia-driver-535-server nvidia-driver-535-server-open nvidia-driver-550 nvidia-driver-550-open nvidia-driver-550-server nvidia-driver-550-server-open
-
インストール
以下の基準に従ってリストからドライバーを選び、インストール- 基本的になるべく新しいもの
-open
や-server
がついていないもの
nvidia-driver-550を選択sudo add-apt-repository ppa:graphics-drivers/ppa sudo apt update sudo apt install nvidia-driver-550
-
再起動
sudo reboot
-
確認
nvidia-smi
以下のような出力が得られればインストール完了
Sat Nov 2 11:17:42 2024 +-----------------------------------------------------------------------------------------+ | NVIDIA-SMI 550.54.15 Driver Version: 550.54.15 CUDA Version: 12.4 | |-----------------------------------------+------------------------+----------------------+ | GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. | | | | MIG M. | |=========================================+========================+======================| | 0 NVIDIA RTX 6000 Ada Gene... Off | 00000000:17:00.0 On | Off | | 55% 78C P2 222W / 300W | 13380MiB / 49140MiB | 73% Default | | | | N/A | +-----------------------------------------+------------------------+----------------------+ +-----------------------------------------------------------------------------------------+ | Processes: | | GPU GI CI PID Type Process name GPU Memory | | ID ID Usage | |=========================================================================================| | |
Omniverse Launcherインストール
■ 無償版(クリエイター版)の場合
-
omniverse-launcher-linux.Appimage
のダウンロード
NVIDIA Omniverse for Developersにアクセスし、画像の赤矢印をクリックしてダウンロード
-
実行権限の付与
cd /<omniverse-launcher-linux.Appimageがダウンロードされたディレクトリ> sudo chmod +x omniverse-launcher-linux.Appimage
■ 有償版(Omniverse Enterprise)の場合
-
サービスプロバイダを選定し、Enterprise契約を締結
-
NVIDIA Enterprise Accountの登録
NVIDIA Omniverse Enterprise Licensing Quick Start Guideの手順に従って登録
(Create your NVIDIA Enterprise Accountの項を参考に) -
"NVIDIA Application Hub"にログイン
NVIDIA Application Hub Loginにアクセスし、NVIDIA Enterprise Accountでログイン
-
omniverse-launcher-linux.Appimage
のダウンロード
"NVIDIA Licensing Portal"にアクセス
"SOFTWARE DOWNLOADS"に遷移し、PRODUCT FAMILYから"Omniverse"を選択
Linux版"NVIDIA Omniverse Workstation Launcher"の最新版をダウンロード
※画像の場合、omniverse-launcher-linux-1.9.10.Appimage
がダウンロードされる -
実行権限の付与
cd /<omniverse-launcher-linux.Appimageがダウンロードされたディレクトリ> sudo chmod +x omniverse-launcher.Appimage
-
起動
omniverse-launcher-linux.Appimage
をダブルクリックor右クリックから起動
Omniverse cacheインストール
NUCLEUSインストール、セットアップ
-
Omniverse LauncherのNUCLEUSに遷移
※これはセットアップ後の画像です。 -
Nucleus Overviewに従ってインストールとセットアップ
NUCLEUSをセットアップすると、Omniverseが用意したAssetsやEnvironment、Materialなどが使える
Isaac Simインストール
Isaac Sim起動
-
Omniverse LauncherのLIBRARYに遷移し、LAUNCHをクリック
-
ポップアップから"Isaac Sim"を選択し、STARTをクリック
-
ターミナルがポップアップし、Isaac Simが起動する
以下のように「"Isaac Sim" is not responding」が出ても、スペックが足りていればしばらく待つと起動する
起動後の画面
起こりうる問題と対処法
■ NUCLEUSが"not accessible"となる問題
様々な方法(Omniverse Launcher再起動、Driver再インストールなど)試したが効果なし
NVIDIAの開発者にバグ報告をしたが、3年間改善されていない状況
■ Isaac SimでUSDファイルが一切開けなくなる問題
- 症状:ファイルの保存場所に関わらず、一切のファイルが開けなくなる
- 対処法:Isaac Simのバージョンダウン
Isaac Sim ver.3.x.xの頃に発生していたバグ
現在のver.4.x.xでは発生していない
おわりに
Isaac Simは要求スペックも高く、日本語のドキュメントも少ないためなかなか個人に普及していない(Unityなどの主要ソフトに比べて)ように感じられます。
実際、私も4年次に研究室に配属されていきなり「うちはOmniverseを始めます。あとはあなたに任せます。」と言われましたが、ドキュメント不足のためセットアップにすら半年もかかりました。
その半年で私は以下の通り、考えられる限りすべての悪行を繰り返してきました。
- 事例1:Omniverse黎明期だったこともあって公式ドキュメントに書いてあることが1ミリも分からなかった
- 事例2:同時操作環境をセットアップしようとしてX11やgdmを破壊した結果強制CUI環境になった
- 事例3:ufwの設定をミスってすべてのユーザーを締め出した
その結果、環境が汚染された総額100万円近いサーバーを初期化し、Ubuntuのクリーンインストールからやり直すことになりました!!!!!最高!!!!!!
皆さんもぜひIsaac Simを知って、十分なスペックがある人は使ってみてくれると嬉しいです。数多くの企業が導入し始めているOmniverseの波に、みんなも乗ろう!!!