ros2 pkg list | grep gazebo 的輸出結果。
這個結果 ros_ign_gazebo 和 ros_ign_gazebo_demos 清楚地顯示,您當前使用的 Docker 映像檔 (osrf/ros:humble-desktop-full)
預設安裝的是 Ignition Gazebo (也稱為 Gazebo Sim) 的 ROS 2 橋接套件,
而不是傳統的 Gazebo Classic (即 ROS 1 時代常用的 Gazebo)。
這就是為什麼您會看到 Package 'gazebo_ros' not found 的錯誤訊息。gazebo_ros 套件是用於整合 Gazebo Classic 和 ROS 2 的,而您的系統上只有 Ignition Gazebo 相關的橋接套件。
解決方案:使用 ros_ign_gazebo 啟動 Ignition Gazebo
既然您已經在 ros_ign_gazebo 的環境下,我們就需要使用它的啟動檔案來開啟 Gazebo Sim,並載入您的世界。
以下是操作步驟:
1. 確認 ros_ign_gazebo 的啟動檔案
通常,ros_ign_gazebo 會提供一個通用的啟動檔案來啟動 Ignition Gazebo。
2. 修改您的世界檔案路徑
Ignition Gazebo 處理世界檔案的方式與 Gazebo Classic 略有不同。最簡單的方法是確保您的世界檔案 maze.world 位於 GAZEBO_MODEL_PATH 可以搜尋到的位置。
由於您已經將 my_maze_world/models 加入 GAZEBO_MODEL_PATH,我們來確保 worlds 資料夾也能被找到。您可以透過以下兩種方式之一達成:
選項 A (推薦):將 worlds 資料夾也加入 GAZEBO_MODEL_PATH
這是在啟動 Gazebo Sim 之前最直接的方式,讓它能找到您的世界檔案。
Bash
# 確保在 ros2_ws 目錄下
cd ros2_ws
# 再次 source ROS 2 官方安裝的路徑 (這一步很重要!)
source /opt/ros/humble/setup.bash
# 然後再 source 您的工作區
source install/setup.bash
# 設定 GAZEBO_MODEL_PATH,這次包含 models 和 worlds
export GAZEBO_MODEL_PATH=$GAZEBO_MODEL_PATH:$(ros2 pkg prefix my_maze_world)/share/my_maze_world/models:$(ros2 pkg prefix my_maze_world)/share/my_maze_world/worlds
選項 B (替代):直接指定世界檔案的絕對路徑
沒有留言:
張貼留言