ROS 現在支援兩套 Gazebo 系列模擬器,它們的關係如下:
名稱 | 簡稱 | 傳統名稱 | 開發組織 | 與 ROS 整合 | 備註 |
---|---|---|---|---|---|
Gazebo Classic | gazebo | gzserver , gzclient | Open Robotics(舊) | gazebo_ros (ROS 1/2) | 老牌穩定、仍廣用 |
Gazebo (Ignition) → Gazebo (Sim) | gazebo sim | ign-gazebo , gz-sim | Open Robotics → GazeboDev | ros_gz (新版橋接) | 新一代、支援物理擴充、架構模組化 |
🆚 比較:Gazebo Classic vs Gazebo Sim (Ignition)
項目 | Gazebo Classic (v11) | Gazebo Sim / Ignition |
---|---|---|
最新版本 | v11 (最終版) | Gazebo Sim (Garden, Harmonic...) |
套件名 | gazebo_ros | ros_gz (以前叫 ros_ign ) |
程式啟動指令 | gzserver , gzclient | ign gazebo 或 gz sim |
核心格式 | .sdf , .world | .sdf , .world (但支援更多 plugin 模組) |
支援物理引擎 | ODE 為主 | 支援 ODE、Bullet、DART、Simbody、NVIDIA PhysX |
模組架構 | 單體 | 模組化架構(Transport / Rendering / Physics 分離) |
渲染支援 | OGRE1.x | OGRE2、Vulkan、WebGL(Gazebo Web) |
ROS 2 整合性 | 穩定(ROS 2 Humble 內建) | 更先進但需要橋接(如 ros_gz_bridge ) |
發展狀態 | 已停止開發(安全維護) | 積極開發中,官方推薦使用 |
適合對象 | 想穩定使用、有大量舊專案 | 想用新功能、複雜模擬、多機系統 |
⛓️ ROS 2 整合方式比較
模擬器 | ROS 套件 | 常見指令 | 啟動 launch |
---|---|---|---|
Gazebo Classic | gazebo_ros | ros2 launch <pkg> <file>.launch.py spawn_entity.py | <launch>.py 啟動 gazebo_ros |
Gazebo Sim | ros_gz , ros_gz_bridge | ros2 launch ros_gz_sim gazebo.launch.py | 類似,但需設定 bridge / sdf 檔路徑 |
✅ 你該用哪一個?
需求 | 建議版本 |
---|---|
用 ROS 教學範例、資源多、穩定 | Gazebo Classic v11(gazebo_ros ) |
使用物理更真實的車模/雙足/仿真器 | Gazebo Sim (Ignition) |
多機、Web 視覺化、NVIDIA GPU 模擬 | Gazebo Sim + PhysX/Omniverse |
使用 Jetson / GPU 運算加速 | Gazebo Sim + Vulkan 可行 |
教學使用、有時間學新橋接套件 | 可以選 Gazebo Sim |
🚀 開發建議(2025)
-
初學者 / 目前用 ROS 2 Humble / 預設套件:
→ 選 Gazebo Classic v11 + gazebo_ros,因為整合簡單、資源多。 -
中長期維護、新專案、用 ROS 2 Iron / Jazzy 以後:
→ 建議轉往 Gazebo Sim(Garden, Harmonic)+ ros_gz_sim,雖需橋接,但新功能多。
想看實戰比較(可提供):
-
兩種模擬器下
diff_drive
機器人的範例 launch 檔 -
ros_gz_bridge
的 topic/TF/service 映射範例 -
世界 / plugin 在新舊格式下的差異(例如 camera、imu、LIDAR)
沒有留言:
張貼留言