2025年7月3日 星期四

ROS 現在支援兩套 Gazebo 系列模擬器

 ROS 現在支援兩套 Gazebo 系列模擬器,它們的關係如下:

名稱簡稱傳統名稱開發組織與 ROS 整合備註
Gazebo Classicgazebogzserver, gzclientOpen Robotics(舊)gazebo_ros(ROS 1/2)老牌穩定、仍廣用
Gazebo (Ignition)Gazebo (Sim)gazebo simign-gazebo, gz-simOpen Robotics → GazeboDevros_gz(新版橋接)新一代、支援物理擴充、架構模組化

🆚 比較:Gazebo Classic vs Gazebo Sim (Ignition)

項目Gazebo Classic (v11)Gazebo Sim / Ignition
最新版本v11 (最終版)Gazebo Sim (Garden, Harmonic...)
套件名gazebo_rosros_gz (以前叫 ros_ign)
程式啟動指令gzserver, gzclientign gazebogz sim
核心格式.sdf, .world.sdf, .world(但支援更多 plugin 模組)
支援物理引擎ODE 為主支援 ODE、Bullet、DART、Simbody、NVIDIA PhysX
模組架構單體模組化架構(Transport / Rendering / Physics 分離)
渲染支援OGRE1.xOGRE2、Vulkan、WebGL(Gazebo Web)
ROS 2 整合性穩定(ROS 2 Humble 內建)更先進但需要橋接(如 ros_gz_bridge
發展狀態已停止開發(安全維護)積極開發中,官方推薦使用
適合對象想穩定使用、有大量舊專案想用新功能、複雜模擬、多機系統

⛓️ ROS 2 整合方式比較

模擬器ROS 套件常見指令啟動 launch
Gazebo Classicgazebo_rosros2 launch <pkg> <file>.launch.py
spawn_entity.py
<launch>.py 啟動 gazebo_ros
Gazebo Simros_gz, ros_gz_bridgeros2 launch ros_gz_sim gazebo.launch.py類似,但需設定 bridge / sdf 檔路徑

✅ 你該用哪一個?

需求建議版本
用 ROS 教學範例、資源多、穩定Gazebo Classic v11gazebo_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)

沒有留言:

張貼留言