2D LiDAR Mapping
本範例使用安裝於 AMR 上的 2D LiDAR,搭配 slam_toolbox 示範如何建立 2D 地圖。

安裝
- 研華平台
- 至少 3 GB 的可用磁碟空間
- 需要可正常使用的網路連線
- Ubuntu OS 請使用英文語系環境
- 依照安裝程式說明選擇並安裝 2D LiDAR Mapping 後,可在以下位置找到
2d-slam-ros2目錄:
/usr/local/Advantech/ros/container/ros-demokit/
- 進入範例目錄後,指定 ROS 2 版本啟動:
./launch.sh <ros_distro>
請將 <ros_distro> 替換為 Robotic Suite 安裝過程中偵測並安裝的 ROS 2 版本。
| ROS 2 版本 | 啟動指令 |
|---|---|
| ROS 2 Humble | ./launch.sh humble |
| ROS 2 Jazzy | ./launch.sh jazzy |
例如,若要啟動 ROS 2 Jazzy 環境:
./launch.sh jazzy
指定的 ROS 2 版本必須與 Robotic Suite 實際安裝的版本一致。實際版本可能會依目標系統所支援的 ROS 2 版本而有所不同。
- 2D Mapping with LiDAR 會自動顯示:

第一次執行此程式時,系統需要下載必要檔案,因此可能需要一些時間。
設定指南
本範例示範使用以下元件建立 2D 地圖的基本工作流程:
- 安裝於 AMR 上的 2D LiDAR
- slam_toolbox
- 使用 RViz 進行視覺化
本範例的目的是協助您了解系統中執行的元件,以及如何透過移動機器人來建立地圖。
此範例會啟動的元件
執行:
./launch.sh <ros_distro>
後,系統會啟動以下元件:
-
一份 ROS bag,發布所需的 Topic,包括:
/scan/tf/odom
-
一個
slam_toolboxNode,負責:- 訂閱 LiDAR 資料與 Odometry
- 估算機器人在 Map Frame 中的 Pose
- 建立 2D Occupancy Grid Map
使用方式
在 Advantech Robotic Suite 中,slam_toolbox 已預先安裝於 Host 環境,因此不需要額外進行安裝。
若要使用原生 slam_toolbox 建立 2D 地圖,基本上只需要:
- 2D LiDAR
slam_toolbox- 正確連接的 ROS 2 Topic,例如
/scan、/tf、/odom
只要 LiDAR Scan Topic、TF Tree 與 Odometry Topic 設定正確,並且與 slam_toolbox 參數一致,該 Node 就可以即時估算機器人 Pose 並建立 2D Occupancy Grid Map。
本範例已包含一份可直接使用的 ROS bag 檔案。
執行範例時,ROS bag 會自動播放,因此即使沒有任何實體硬體,您仍可以觀察 slam_toolbox 建立地圖的過程。
如果您有自己的 2D LiDAR 與 AMR,可以使用相同的 Topic 錄製自己的 ROS bag,並替換本範例預設使用的 ROS bag。如此即可沿用相同的 ./launch.sh <ros_distro> 工作流程,快速驗證 Mapping 設定與參數調整結果。
或者,在無法使用實體硬體時,也可以持續使用提供的 ROS bag 作為「Golden Sample」,例如在可重複的條件下測試不同的 slam_toolbox 參數設定。
如需詳細的參數說明與進階設定,請直接參考官方 slam_toolbox Repository。
適用情境
在以下情況下,可以使用此範例:
- 剛開始接觸 ROS 2 Mapping,希望了解一套簡單且可運作的 2D SLAM 設定
- 擁有搭載 2D LiDAR 的 AMR,並希望快速視覺化周圍環境
- 想建立一份基準 2D 地圖,供後續導航範例使用
本範例著重於以下基本流程:
- 使用 2D LiDAR 啟動
slam_toolbox - 移動機器人
- 在 RViz 中觀察地圖逐步建立
- 儲存完成的地圖
後續可在此基礎上進一步:
- 依照自己的機器人與環境調整
slam_toolbox參數 - 從「Mapping」模式切換至「Localization」模式
- 將已儲存的地圖整合至完整的導航 Stack,例如 Nav2
GitHub
詳細的配置可以參考Robotic suite GitHub