🦊

NVIDIA Isaac Sim: Isaac SimのWorkflow

2022/03/05に公開

概要

Isaac SimのWorkflowを紹介します。

Issac Simのtutorialに上記の内容が記載されており、この内容に沿って進めます。
https://docs.omniverse.nvidia.com/app_isaacsim/app_isaacsim/tutorial_required_workflows.html

実行環境

  • インストール実行環境
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について紹介します。

  1. Extensionsにおける操作
  2. 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に次のコードを記述します。

Python3
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)を行うということを意味してます。

ターミナルで次のコマンドを実行します。

bash

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