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 |
| OS | Linux 前提 (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 経験だけでは足りない。日本語資料はゲーム開発向けが大半で、ロボット用途は英語資料中心。
物理エンジン
| Gazebo | Unity | |
|---|---|---|
| 物理エンジン | DART (デフォルト) / ODE / Bullet | PhysX (デフォルト) / Havok |
| ArticulationBody 精度 | 剛体・関節の同定・制御に十分 (ロボットアーム、四輪、脚) | PhysX ArticulationBody は近年改善したが、Gazebo/MuJoCo/Isaac に比べ細かい調整が必要 |
| 固定 dt | 可 (RTF 制御可能) | 可 (Time.fixedDeltaTime) |
レンダリング
| Gazebo | Unity | |
|---|---|---|
| エンジン | OGRE 2 | URP / HDRP |
| 品質 | ロボット・環境の識別に足る (実写風は苦手) | 実写に近い (Sim2Real、CG 生成学習データ向き) |
| Asset | モデル数少ない (Gazebo Fuel) | Asset Store が桁違いに豊富 |
Unity を選ぶべき条件
以下のいずれかに該当するなら Unity を検討する価値がある:
- カメラ画像入力で強化学習し、実機と見た目を近づけたい (Sim2Real、Domain Randomization)
- 都市・室内・人物などのアセットを大量に配置したい (Perception Package で自動ラベル生成)
- Windows / macOS で動かす必要がある
- 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]]
最終更新: