Issac sim4.0.0技術紹介

1.はじめに

2024年にメジャーアップデートされたIsaac Sim 4.0.0では、ROS2との連携が大幅に強化されました。当社は、物理シミュレーション技術であるIsaac Simとロボット制御システムであるROS2に、リリース当初から力を入れており、今回のメジャーアップデートにも大変注目しています。本記事では、Isaac Sim 4.0.0の概要とROS2との連携についてご紹介します。

2.Isaac Sim4.0.0の新機能

今回のアップデートでは、以下の点が大きく改善されました。

① PIPによるインストール
これまでは、Isaac Simをインストールするために、様々な手順が必要だったが、4.0.0より、PIPを用いたインストールが可能になり、セットアップが簡素化された。

② アセットの増加
多く のアセットを所持しているというIsaac Simの特徴をさらに強化するため、今回のアップデートでセンサ、環境、ロボット、ヒューマノイドなど様々な種類のアセットが追加され、シミュレーションの幅が広がった。

③ Isaac Lab追加による機械学習の強化
強化学習(Reinforcement Learning)や模倣学習(Imitation Learning)、およびシミュレーションから実環境への転移学習(Transfer Learning)をサポートし、ロボットの設計や機能を探求するための多様なトレーニング環境を提供するIsaac Labが導入された。

④ ROS2連携の強化
Isaac SimとROS2のチュートリアルやIsaac Sim上で扱えるROS2機能が増加し、シミュレーション環境でROS2をより活用できるようになった。

3.Isaac Sim 4.0.0とROS2連携の強化

Isaac Simは従来からROS2と連携しており、今回のIsaac Sim 4.0.0へのメジャーアップデートで、ROS2連携がさらに強化されました。Isaac SimとROS2のチュートリアルドキュメントやIsaac Sim上で扱えるROS2機能が追加されており、シミュレーション環境でのROS2の活用が飛躍的に向上しました。以下が追加機能一覧となります。

ROS2追加機能一覧

  • Performance improvements for image based publishers
  • Support CycloneDDS for Linux
  • Deprecation: ROS and ROS 2 Foxy
  • Improved ROS 2 launch support end-to-end workflow.
  • Added ROS 2 Internal Libraries option and ROS 2 sourcing validation within the App Selector
  • Add a QoS for publishers and subscribers
  • Introduced static publisher option for TF publishers
  • Omnigraph node to expose articulation states (joint position, velocity, effort)
  • Generic ROS 2 publisher and subscriber for any available message type
  • Generic ROS 2 service server and client for any available message type
  • ROS 2 service omnigraph node to list prims and their attributes, as well as read and write a specific attribute
  • Render the ROS 2 TF transformation tree in the viewport
  • Publishing the robot description topic
  • Import URDF from ROS 2 publisher
  • Use of system time in all publishers and helper nodes
  • New Common Omnigraph shortcut to auto-generate preset ROS2 Action Graphs.

様々な機能が追加されていますが、注目すべき点は、ROS, ROS2 foxyが非推奨になったことや、Isaac Sim上でROS2の詳細なカスタマイズが簡単にできるようになったことです。ここでは、その機能の1つであるROS2通信のフレームレート設定とQoSの設定を簡単にご紹介しようと思います。

ROS2通信のフレームレート設定

Isaac Simでは、OmnigraphというGUIプログラミングツールを設定することで、直感的にロボットの制御を設定できます。Omnigraphは、ノードと、ノード同士をつなぐラインで構成されます。

Omnigraph
フレームレートの設定としては、Omnigraphでフレームレートを設定したいノードの前に「Isaac Simulation Gate」というというノードを挟み、プロパティ(パラメータ)にてstepを設定することで、シミュレーションの設定フレームに対して、フレームレートを設定できます。また、LiDARやカメラなどのセンサデバイスには、OmnigprahノードにframeSkipCountというフレームレート設定が直接準備されています。
例) 「Isaac Simulation Gate」のstepでは、2フレームごとに公開するのであれば、60FPS→30FPS、センサデバイスのframeSkipCountでは、2フレームごとにスキップ=3フレームごとに公開することと同じであるため、60FPS→20FPSとなる。

Isaac Simulation Gateのstep

センサデバイスのノードのframeSkipCount
実際に上記のstepやframeSkipCountの値を設定し、シミュレーション環境を起動すると、シミュレーション環境のフレームレートに対して、ノード毎のフレームレートを設定できていることがわかります。

「Isaac Simulation Gate」で設定したIMUのフレームレート

センサデバイスのノードで設定したフレームレート

ROS2通信のQoSの設定

QoSの設定もOmnigraphにてパラメータを設定することで設定することができます。例えば、「ROS2 Publisher」というノードを準備して、こちらにQoSを設定したい場合、「ROS2 QoS Profile」を繋げます。

Omnigraph : QoS設定
「ROS2 QoS Profile」のプロパティ(パラメータ)内にて、QoSを設定することができます。
パラメータ詳細は、ROS2のQoSポリシー(https://docs.ros.org/en/rolling/Concepts/Intermediate/About-Quality-of-Service-Settings.html#qos-policies)に従います。

QoSのパラメータ設定
以上のROS2通信のフレームレートやQoSの設定をIsaac Sim上からGUIでコントロールできることにより、シミュレーション環境で実践的な通信を簡単に行えるようになっております。

4.まとめ

NVIDIA社が提供するロボットシミュレーションプラットフォームであるIsaac Simの概要と、Isaac SimとROS2連携の新機能の一部をご紹介させていただきました。デジタルツインが重要になっていく中で、Isaac Simは、ロボットシミュレーションの分野でますます強力なツールとなっており、ROS2との連携強化により、ロボット開発の効率化が期待されます。

当社では、Isaac SimとROS2を連携した研究・開発へさらに力を入れ、ロボティクス分野における新たなソリューションを提供してまいります。

ロボットシミュレータにお困りの方はぜひ、
富士ソフトにご用命ください!

お問い合わせはこちら