welcom ! Handel home

2025年2月6日 星期四

Gazebo 如何載入 SDF 文件( 四種方案)

 

 如何在 Gazebo 載入 SDF 文件

Gazebo 支援 SDF (Simulation Description Format),你可以使用 終端指令、

Gazebo GUI 或 ROS 2 來載入 .sdf 文件。


✅ 1️⃣ 直接使用 Gazebo 載入 SDF

方法 1️⃣:使用終端指令


gazebo my_world.sdf --verbose
  • my_world.sdf 是你的 SDF 世界文件。
  • --verbose 可讓 Gazebo 顯示詳細日誌,以利錯誤排除。

✅ 2️⃣ 在 Gazebo 中手動載入模型

如果你的 SDF 是一個模型 (model.sdf),可以放入 Gazebo models/ 資料夾,然後從 Gazebo 插入:

  1. 將模型放入 Gazebo 模型資料夾

    mkdir -p ~/.gazebo/models/mymodel mv model.sdf ~/.gazebo/models/mymodel/ mv model.config ~/.gazebo/models/mymodel/
  2. 開啟 Gazebo
    gazebo --verbose
  3. 在 GUI 插入模型
    • 點擊 "Insert",然後找到 "mymodel",拖曳至場景中。

✅ 3️⃣ 使用 ros2 launch 載入 SDF

如果你使用 ROS 2,可以用 gazebo_ros 來載入 SDF

  1. 啟動 Gazebo

    ros2 launch gazebo_ros gazebo.launch.py world:=my_world.sdf
  2. 使用 spawn_entity.py 載入模型

    ros2 run gazebo_ros spawn_entity.py -file my_robot.sdf -entity my_robot

✅ 4️⃣ world.sdf 內引入模型

如果你的 SDF 模型 (mymodel.sdf) 需要被載入 世界 (world.sdf),你可以在 world.sdf 中加上:

xml

<include> <uri>model://mymodel</uri> </include>

這樣 Gazebo 啟動時會自動載入 mymodel


✅ 5️⃣ 檢查 SDF 格式

如果 SDF 無法載入,請先確認 SDF 格式正確:

bash

sdf validate my_world.sdf

如果回傳:


Valid SDF file.

代表 SDF 沒問題。


🚀 你還需要什麼幫助?

  • SDF 無法載入?
  • 需要自動生成 SDF?
  • 需要讓 SDF 內的機器人移動?

沒有留言: