1 of 9

Unity製ROS 2シミュレータの紹介

2025/1/23

Masaaki Hijikata

GitHub: hijimasa

X: @_toshizo

2 of 9

自己紹介

  • ひじー��REACT株式会社でロボットソフトウェアエンジニアをしています��趣味でもロボット関連の開発をしています� CoRE(チーム:TKG) UI開発�� ロボットシミュレータ開発(Unity, Isaac Sim)�� SpresenseマルチIMU位置推定 etc...

3 of 9

標準ツール(Gazebo)でいいのでは?

  • Ignitionが出たあたりで使い勝手が変わった(トピックの扱いなど)
  • オブジェクトが多いとリアルタイム性が非常に悪くなる

ディスク射出ロボットのシミュレーション例

4 of 9

何で代替しよう?

  • 最初に取り組んだのはIsaac Sim
  • フォトリアルな環境で規模が大きくてもリアルタイム性が良い

GPUの載ったデスクトップPCが必要になる...

ノートパソコンで各自でシミュレーションしたい!

5 of 9

Unityを使用した理由

メリット

  • 開発に関する情報が豊富
  • Isaac Simと同じPhysX物理エンジン
  • CPUのみでシミュレーション可能

デメリット

  • ロボットの導入が面倒(URDFインポートから追加の設定が要る)
  • 開発ライセンス費用

6 of 9

Unityでロボットの生成を楽にするには?

  • ROS 2から呼び出せるインターフェースを作成する�simulation_interface(https://github.com/ros-simulation/simulation_interfaces)�GazeboライクのROSサービス通信インターフェース�上記インターフェースに準拠することで再利用性を高める

  • 単純にURDFのインポート処理を行うだけでなく�別途URDFを解析してセンサやアクチュエータの設定を行う

7 of 9

開発ライセンス費用はどうする?

  • これまではUnityエディタを介しての開発が主流�→エディタを開くために人数分のライセンスが必要

  • シミュレータ開発者が実行ファイルにして配布�→開発者のライセンスのみに費用を抑えられる!

8 of 9

実際に動かしてみる

9 of 9

まとめ

  • 各自のノートパソコンで動作できるUnity製シミュレータを開発
  • Simulation_interface準拠のサービス通信を導入�→ROSコマンドからロボットを生成可能
  • 実行ファイル形式で配布することで開発費用を低減

  • 以下のリポジトリで配布しているのでぜひ使ってみてください!
  • https://github.com/REACT-ROBOT/Unity_ROS2_Robot_Simulator
  • Issueやプルリクエストもお待ちしています