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を連携した研究・開発へさらに力を入れ、ロボティクス分野における新たなソリューションを提供してまいります。