Isaac SimとROSを連携する前に、Isaac Sim単体の機能を見ておこう。
Isaac Simには「Joint Monkey」というロボットシミュレーションのサンプルが標準で付属している。これはアームロボットの各関節を順番に動かすだけの簡易なものだが、操作が簡単で応用範囲も広いのでIsaac Simを理解するためにはちょうどよいだろう。
ここではJoint Monkeyの基本動作や可動範囲の変更、ロボットモデルの変更方法を説明する。
Joint Monkeyは、Stageの“/panda”の階層からモデルを取得し、関節のツリー構造を配列として保持する。そしてロボットの関節の根元から先端までを、各関節の可動範囲を考慮しながら順番に動かすという構成になっている。
では早速Joint Monkeyを動かしてみよう。
ロボットの関節の可動範囲を変更してみよう。
Stageには形状モデル、マテリアル、joint(関節)、通信モジュールなどが階層構造で表示される。jointもオブジェクトとして選択できるので、プロパティのDetailsで関節の動作範囲を変更できる仕組みだ。
Joint_Monkeyではロボットのモデルを変更することができる。
Joint_MonkeyはMove JointをクリックしたときにStageから“panda”という名称のオブジェクトを取得する仕組みになっている。そのため、別のロボットを“panda”という名前に変更すれば動作する。
ROSでは、“ロボットを取りあえず動かしてみる”ための「urdf_tutorial」というパッケージが提供されていて、任意のアームロボットをスライドバーで操作できる。このようなパッケージはIsaac Simでは提供していないが、この“panda”を書き換える手法を使用すれば、ロボットの3Dモデルの簡単な動作確認が可能だろう。
またIsaac Simでは、「URDF importer」を使うことでURDFのロボットモデルを読み込むことができる。ROSのアセット資産が活用できるのは大きな利点だろう。当社でこのツールを使用して複数メーカーのアームロボットを読み込んでみたところ、3社5種のモデルを動作させることができた。
メニューのIsaac Roboticsにはさまざまなサンプルが用意されている。
このサンプルの実ファイルは、Isaac SimをインストールしたサーバPCの“/_build/linux-x86_64/release/exts/”に格納されている。プログラムはPythonで書かれているので、興味があればサンプルを読んでみるとよいだろう。
なお、Joint Monkeyのプログラムは次の場所に保存されている。
/_build/linux-x86_64/release/exts/omni.isaac.dynamic_control/omni/isaac/dynamic_control/scripts/samples/joint_monkey.py
Copyright © ITmedia, Inc. All Rights Reserved.