NVIDIA Isaac Sim: Isaac SimのWorkflow
概要
Isaac SimのWorkflowを紹介します。
Issac Simのtutorialに上記の内容が記載されており、この内容に沿って進めます。
実行環境
- インストール実行環境
unit | specification |
---|---|
CPU | i9-11900H |
GPU | GeForce RTX 3080 Laptop |
RAM | 32GB |
OS | Ubuntu 20.04.3 LTS |
- Nvidia Driverバージョン
- 510.39.01
- Issac simバージョン
- 2021.2.1
概要
Isaac simでは、次の3種類の開発方式が用意されています。
- Extensionts
- Standalone Applications
- Jupyter Notebook
上記の内、ExtensionsとStandalone Applicationについて紹介します。
- Extensionsにおける操作
- Standalone Applicationにおける操作
以下内容のシーンファイルはこちらからダウンロードできます。
1. Extensionsにおける操作
ExtensionsはOmniverse kitのcore building blockです。
上記の様に、ExtensionsはOmniverse kitの要素として設計されている為、Issac simに限らず他のOmniverseのApplication内でも使用することが可能です。
Extensionsでは、Applicationは非同期に実行されるという特徴を持ちます。
これは、タイムステップの制御(例えば、phisics stepやrendering step)を行わないということを意味してます。
また、もう1つの特徴として、hot reloadingという機能があります。
Isaac simでは、Aplicationのソースコードを変更を、Aplicationのreloadによって確認することが可能です。
reloadはGUIの操作から実行することが可能であり、Issac sim自体のシャットダウンやリスタートは必要ありません。
今回はサンプルシーンをロードし、ロードしたシーン内にScript Editorからオブジェクトを追加します。
その後、サンプルシーンをリロードし、変更点の反映を確認します。
1.1 OmniverseからIssac Simを起動する
1.2 Hello Worldのロード
メニューバーのIsaac Examples > Hello Worldを選択します。
ポップアップしたHello Worldのウィンドウの中のLoadを選択します。
選択すると、シーンがロードされます。
このシーンのソースコードを変更する場合には、Hello Worldのウィンドウの右上にある3つのボタンの内、一番左側のボタンを選択します。
選択すると、VScodeが開き、Hello Worldのソースコードを編集することができます。
1.3 Script Editorからオブジェクトを追加
ポップアップしたHello WorldのウィンドウはViewportの下にドラッグアンドドロップで移動させます。
メニューバーのWindow > Script Editorを選択します。
ポップアップしたScript Editorのウィンドウを、Viewportの下にドラッグアンドドロップで移動させます。
Script Editorに次のコードを記述します。
from omni.isaac.core import World
from omni.isaac.core.objects import DynamicCuboid
my_world = World.instance()
my_world.scene.add_default_ground_plane()
my_world.scene.add(DynamicCuboid(prim_path='/World/random_cube', name='fancy_cube'))
追加後、実行すると、シーン内にCubeが追加されます。
また、Hello Worldのウィンドウにおいて、Resetを選択し、その後loadを選択すると、Cubeが追加されたシーンがロードされます。
2. Standalone Applicationにおける操作
Applicationは、PythonのScriptとしても実行することが可能です。
Standalone Applicationでは、Applicationは同期して実行されます。
Extensionsとは異なり、タイムステップの制御(例えば、phisics stepやrendering step)を行うということを意味してます。
ターミナルで次のコマンドを実行します。
cd ~/.local/share/ov/pkg/isaac_sim-2021.2.1
./python.sh standalone_examples/api/omni.isaac.franka/follow_target.py
実行すると、Isaac simが立ち上がり、FrankaのExampleシーンがロードされます。
Frankaのグリッパーの中心にあるTargetCubeを動かすと、Cubeの位置に合わせて、Frankaの手先が追従します。
Discussion