notes
Ros

ROS 2 3D シミュレータの選定 — Gazebo vs Unity

導入コストと学習コストで比較。制御・ROS ネイティブ機能重視なら Gazebo、レンダリング品質やアセット重視なら Unity。

要点#

導入コストと学習コストが評価軸なら Gazebo が有利。ROS 2 とのブリッジが公式提供され、URDF / SDF がそのまま動く。Unity は Editor + C# の学習が追加で必要。

導入コスト#

項目Gazebo (Harmonic / Fortress)Unity (2022 LTS 以降)
本体インストールsudo apt install ros-${ROS_DISTRO}-ros-gz (数分)Unity Hub → Editor 6〜10 GB DL、初回起動 30 分〜
ROS 連携ros_gz_bridge (apt に同梱)ROS-TCP-Connector (Unity 側 Package) + ROS-TCP-Endpoint (ROS 側 pkg) を別途セットアップ
ロボット記述URDF / SDF ネイティブURDF Importer (Unity Robotics Hub)。SDF 非対応、mesh / joint 調整が必要な場合あり
センサLiDAR / Camera / Depth / IMU / GPS / Force-Torque 標準プラグイン一部標準 (Perception Package)、多くは自作 or Asset Store
OSLinux 前提 (Ubuntu 22.04 / 24.04)。Windows は非推奨Windows / macOS / Linux
ライセンスApache-2.0 (無料)個人・小規模無料 (Personal)、収益 $200k 超で有料

学習コスト#

  • Gazebo: ROS 2 の launch / TF / topic / URDF を知っていれば延長線上。追加項目は gz topic, gz service, bridge YAML の書き方程度。日本語資料 (公式チュートリアル和訳、Zenn、Qiita) が多い。
  • Unity: 前提知識として (1) Unity Editor の Scene / GameObject / Prefab / Component、(2) C# スクリプト、(3) Physics (Rigidbody / ArticulationBody)、(4) URP / HDRP のレンダリング設定 が必要。ROS 経験だけでは足りない。日本語資料はゲーム開発向けが大半で、ロボット用途は英語資料中心。

物理エンジン#

GazeboUnity
物理エンジンDART (デフォルト) / ODE / BulletPhysX (デフォルト) / Havok
ArticulationBody 精度剛体・関節の同定・制御に十分 (ロボットアーム、四輪、脚)PhysX ArticulationBody は近年改善したが、Gazebo/MuJoCo/Isaac に比べ細かい調整が必要
固定 dt可 (RTF 制御可能)可 (Time.fixedDeltaTime)

レンダリング#

GazeboUnity
エンジンOGRE 2URP / HDRP
品質ロボット・環境の識別に足る (実写風は苦手)実写に近い (Sim2Real、CG 生成学習データ向き)
Assetモデル数少ない (Gazebo Fuel)Asset Store が桁違いに豊富

Unity を選ぶべき条件#

以下のいずれかに該当するなら Unity を検討する価値がある:

  1. カメラ画像入力で強化学習し、実機と見た目を近づけたい (Sim2Real、Domain Randomization)
  2. 都市・室内・人物などのアセットを大量に配置したい (Perception Package で自動ラベル生成)
  3. Windows / macOS で動かす必要がある
  4. VR / AR / MR と組み合わせたい

制御則の検証 (PID / MPC / TOPP)、ロボットモデルの動作確認、CAN / トピック配線の統合試験など「見た目が最低限で足りる」用途は Gazebo で十分。

参考: 他の候補#

  • Isaac Sim (NVIDIA): GPU 加速の PhysX、高品質レンダリング、ROS 2 Bridge あり。GPU (RTX 世代) と大容量 (数十 GB) が必要で導入コストは高い。詳細は [[isaac-sim-install]]、[[isaac-sim-ros2-bridge]]。
  • MuJoCo: 剛体・関節同定の精度が高い。ROS 2 連携は mujoco_ros2_control などサードパーティ。
  • Webots: Cyberbotics 製、C/C++/Python API。教育向けドキュメントが厚い。

関連#

  • [[isaac-sim-install]]
  • [[isaac-sim-ros2-bridge]]
  • [[urdf-listener-pattern]]
最終更新:

On this page