關於 ROS 2 (Humble) 中建置「迷宮環境(Maze)」模擬場景 的完整說明,
包含如何使用 .STL
格式建模物件、載入到 Gazebo 中,
以及整合 ROS 2 模組(如地圖、定位、導航)。
🔷 一、什麼是 STL 格式(Stereolithography)
-
.STL
是一種表示三角形網格的 3D 模型格式,常用於機構建模、3D 列印。 -
特點:
-
僅描述幾何形狀(不包含顏色 / 材質 / 質感)
-
可匯入到 Gazebo 作為靜態碰撞體或視覺模型
-
STL 在 Gazebo 中會透過
<mesh>
標籤載入成visual
和collision
組件。
🔷 二、建立迷宮 STL 並匯入 Gazebo
1️⃣ 建模(你可使用以下任一工具)
-
Blender:免費強大的 3D 建模軟體(可輸出
.stl
) -
Fusion 360 / FreeCAD:適合精密機械建模
-
TinkerCAD:簡易建模(教育用途)
匯出時請注意單位(cm / m),Gazebo 使用公尺為單位。
2️⃣ STL 模型放置到資源資料夾
建議結構如下(符合 ROS package):
3️⃣ 建立 model.sdf(用於 Gazebo 載入 STL)
4️⃣ 建立 model.config
🔷 三、建立 Gazebo 世界檔(maze.world)
🔷 四、ROS 2 Humble 中整合 Gazebo
1️⃣ 安裝 ROS 2 Gazebo 套件(如尚未安裝)
2️⃣ 建立 launch file
或使用
gazebo_ros
提供的gazebo.launch.py
,只需指定世界檔。
🔷 五、啟動迷宮模擬環境
🔷 六、常見延伸整合
功能 | 使用方式 |
---|---|
導入 SLAM 地圖建構 | 加入 SLAM node + SLAM toolbox (slam_toolbox ) |
AMCL 定位 | 使用 nav2_bringup ,載入 .pgm + .yaml 地圖並配置初始位姿 |
自走導航 | 使用 Nav2 的 lifecycle bringup、設定路徑、goal pose |
加入自走車模型 | 使用 URDF 或 XACRO 匯入機器人模型,搭配差速控制與 sensor plugin |
使用 Rviz2 配合觀察 | ros2 run rviz2 rviz2 ,載入機器人與地圖顯示,設定 Frame = map/base_link |
✅ 小結
模組 | 任務 |
---|---|
.stl | 建立迷宮模型 |
model.sdf | 將 STL 載入 Gazebo 物件模型 |
maze.world | 定義整個模擬場景 |
launch.py | 啟動 Gazebo + 模型 |
Nav2 | 導航與避障 |
RViz2 | 觀察 SLAM / AMCL / 路徑等結果 |
如需:
-
範例 STL 模型 + SDF + 世界地圖
-
輸出
.pgm/.yaml
地圖給 Nav2 用 -
加入機器人模型與差速控制器
我可以幫你整理完整的 ROS 2 專案架構與腳本,是否需要一份 zip 專案樣板或 Docker 化模擬環境?
沒有留言:
張貼留言