LoginSignup
29
13

Isaac Sim ってどうなの?

Last updated at Posted at 2022-12-11

はじめに

この記事ではIsaac SimやOmniverseを導入したいと考えている人に向けてIsaac Simで出来ることや要求される環境について解説していきます。

注意:Isaac Simの使い方やインストール方法はこの記事では解説していません。

そもそも Isaac Sim とは?

NVIDIAが開発しているロボットシュミレーション向けのOmniverse App(ここ重要)です。RTXを利用したフォトリアルなグラフィックスやROS2への対応など様々な特徴があります。

IsaacSim以外にもIsaacROSやIsaacSDKがありますが全て別物です。

検証環境

  • インストール実行環境
    CPUはHyper Threadingや省電力系の機能を無効化し、クロックは3.2GHzに固定しています。
unit specification
CPU i9 7980XE
GPU RTX3090
RAM 128GB
SSD WD BLACK SN750
OS Ubuntu 22.04
  • NVIDIA Driver バージョン
    • 535
  • Isaac Sim バージョン
    • 2022.2.1
  • ROS2 バージョン
    • ROS 2 Humble

Isaac Simで利用できる機能

各種センサのシュミレート

  • IMU
  • LIDAR
  • 接地センサ
    • 4足ロボットなどに使うような足裏センサ
  • 超音波センサ

ROS2

ROS2メッセージをpub/subすることができます。コードを書いて実装することはなくOmniGraphというVisual Scripting Toolを利用する形になります。Pythonで書くisaac sim launchファイルのようなもので指定することもできます。

デフォルトで用意されているPublish可能なメッセージ
この他にも多数あります。

  • Point Cloud
  • Laser Scan
  • IMU
  • Image

Subscribe可能なメッセージ
この他にも多数あります。

  • Joint State
  • Twist

Replicator

機械学習に必要なデータセットを生成できます。実際にNVIDIAが出しているAIモデルにはReplicatorを使って生成されたデータを使って学習したモデルがあります。

  • Depth Map
  • SemanticSegmentation用のマスク画像
  • 3D Bounding Box
  • 2D Bounding Box
  • RGB画像

Profiler

アクチュエータの動きなどを記録し再生することができます。イメージはRosbag。

Isaac Assets

高品質なロボットモデルが利用できます。この他にもOmniverse側のAssetsも利用できます。

Screenshot from 2022-12-10 21-54-35.jpg

  • Unitree Go1 (4歩行ロボット)
  • Franka (ロボットアーム)
  • O3Dyn (4輪メカナムロボット)
  • Transporter (4輪台車ロボット)
  • Kaya (小型3輪オムニロボット)
  • Carter V2 (2輪ロボット)

Isaac Example

demo.jpg
IsaacSimの機能を試せるDemoが用意されています。(画像Leonardo Demo)

  • Import Robots (URDFを読み込む)
  • Sensors (各種センサーを試せる)
  • Input Devices (Gamepatやキーボードからの入力を試せる)
  • Manipulation (経路計画や動作計画(IsaacSDK関連のDemo))
  • Multi-Robot
  • ROS
  • Quadruped (4足歩行ロボット(A1)の動作サンプル)

各種ファイルのインポート

読み込めるファイル形式

  • USD
  • URDF

要求されるPC性能

RTX3090 Power limit = 350W & RTX-Real-Time

Leonardo Demo
ロボットアームのシュミレーション。環境に対する負荷は平均的。

Viewport解像度 フレームレート(FPS) VRAM使用量(GiB) RAM使用量(GiB)
1280x720 82 3.8 23.2
1920x1080 73 4 23.4
3840x2160 26 5.7 23.7

BrownstoneDemopark
3Dオブジェクトが大量にあるシーン。

Viewport解像度 フレームレート(FPS) VRAM使用量(GiB) RAM使用量(GiB)
1280x720 53 8.8 23.3
1920x1080 30 9.2 23.4
3840x2160 9 12.1 31.9

Quadruped Example
A1の動作サンプル。物理演算が多いシーン。

Viewport解像度 フレームレート(FPS) VRAM使用量(GiB) RAM使用量(GiB)
1280x720 13 3.8 23.2
1920x1080 13 4 23.3
3840x2160 13 5.6 23.8

考察

  • 全体的に4K解像度にすると一気にパフォーマンスが低下します。
  • Leonardo DemoはView Portの解像度を192x1080程度にすれば、ほとんどの環境で動作することがわかりました。
  • Quadruped Exampleでは、4脚の制御がボトルネックになっていると考えられます。

シーンの読み込み時間

Omniverse関連は読み込み時間が長いのでフリーズしたかと不安になる。だがNVIDIAを信じてゆっくり待とう。

読み込んだもの 読み込み時間(s)
Leonardo Demo 11.7
UR10 Palletizing 30.4
ROS/Office Scene 114.6
BrownstoneDemopark_Night 66.13

まとめ

IsaacSimとは
NVIDIAが推進するOmniverseを用いて構築されたロボットシミュレーションアプリです。NVIDIAによると、"Omniverseを使用すれば、多彩な機能を活用できます"とのこと。

IsaacSimの対象者は?
主にロボット研究を行っている人々が対象なのかなと思います。VRAMの使用量が増加するとフレームレートが下がる傾向があり、大規模なシーンでの使用は現実的とは言えません(この傾向がOVXなどのサーバーでは変わると思います)。しかし、ロボットと機械学習を組み合わせた研究や、制御理論を現実に適用する研究を行っている人々にとっては、大変有効なツールとなります。また、機械学習のデータを生成したい方にもおすすめです。

企業はどうすべきか?
企業には、リソースがあるならばOmniverseAppを一から構築することも視野に入れた方がいいと思いますがIsaac Simをそのまま使うor拡張するでもありだと思います。個人的にはUnityやUEよりも、シミュレータとしての相性は良いと思います(UnityやUEはゲーム向けの機能が多すぎるため)。

必要なPC性能

  • VRAMが8GB以上あれば、初めて使う人でも問題ないでしょう。フレームレート制限やAsyncシミュレーションのオプションを使用すれば、VRAMが少ない環境やGPU性能が低い環境でも利用可能です。
  • 自動運転や大規模な施設等をシミュレーションする場合は、NVIDIA OVX ServerNVIDIA RTX A6000の導入を検討すべきです(旧Tesla系GPU環境のDGX Stationでは動作しません)。
  • 物理演算が非常に多い、四足歩行ロボットのシミュレーションなどでは、CPUのパワーが不足する可能性があるため、高価なGPUは必要ありません。クロック周波数の高いCPUを選択するとより良い結果が得られます。
  • 補足として、筆者の環境では、RTX3090とRTX3060 Max-Qの両方で動作確認を行っています。
29
13
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
29
13