跳至主要内容

3D LiDAR Mapping

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


安裝​

注意

請確認目標系統符合以下條件:

  • 研華平台
  • 至少 9 GB 的可用磁碟空間
  • 需要可正常使用的網路連線
  • Ubuntu OS 請使用英文語系環境
  • 依照安裝程式說明選擇並安裝 3D Mapping with LiDAR 後,可在以下位置找到 3d-slam-ros2 目錄:
/usr/local/Advantech/ros/container/ros-demokit/
  • 進入範例目錄後,指定 ROS 2 distribution 啟動:
./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 版本而有所不同。

  • 3D Mapping with LiDAR 會自動顯示:


設定指南​

本範例示範使用以下元件建立 3D 地圖的基本工作流程:

  • 安裝於 AMR 上的 3D LiDAR
  • lidarslam_ros2
  • 使用 RViz 進行視覺化

本範例的目的是協助您了解系統中執行的元件,以及如何透過移動機器人來建立 3D 地圖。


此範例會啟動的元件​

執行:

./launch.sh <ros_distro>

後,系統會啟動以下元件:

  • 一份 ROS bag,發布所需的 Topic,例如:

    • /points
    • /tf
    • /odom(若有使用 Odometry)
  • 一個 lidarslam_ros2 Node,負責:

    • 訂閱 3D LiDAR 資料與 Odometry
    • 估算機器人在 Map Frame 中的 Pose
    • 建立 3D 地圖,例如 Point Cloud
  • 一組 RViz 設定,用於視覺化:

    • 3D LiDAR Point
    • 估算的機器人軌跡
    • 累積建立的 3D 地圖

使用方式​

lidarslam_ros2 並未包含在 Advantech Robotic Suite 的安裝內容中。

使用者應依照官方 GitHub Repository 的說明,另外安裝 lidarslam_ros2。

本範例提供一個包含 lidarslam_ros2 及其相依套件的 Container Environment,執行範例時會自動啟動。

若要使用原生 lidarslam_ros2 建立 3D 地圖,基本上只需要:

  • 3D LiDAR

  • lidarslam_ros2

  • 正確連接的 ROS 2 Topic

    • 3D LiDAR Point Cloud,例如 /points_raw 或 /lidar_points
    • /tf
    • /odom

只要 3D LiDAR Point Cloud Topic、TF Tree,以及選用的 Odometry Topic 設定正確,並且與 lidarslam_ros2 參數一致,該 Node 就可以即時估算機器人 Pose 並建立 3D 地圖。

本範例已包含一份可直接使用的 ROS bag 檔案。

資訊

自2.1的版本開始,優化了 rosbag 數據,以減少檔案大小。
與先前的版本包含整個演示室的資料不同,現在僅包含部分錄製資料。
這顯著減小了 rosbag 檔案的整體大小。

執行範例時,ROS bag 會自動播放,因此即使沒有任何實體硬體,您仍可以觀察 lidarslam_ros2 建立 3D 地圖的過程。

如果您有自己的 3D LiDAR 與 AMR,可以使用相同的 Topic 錄製自己的 ROS bag,並替換本範例預設使用的 ROS bag。如此即可沿用相同的 ./launch.sh humble 工作流程,使用自己的資料快速驗證 Mapping 設定與參數調整結果。

或者,在無法使用實體硬體時,也可以持續使用提供的 ROS bag 作為「Golden Sample」,例如在可重複的條件下測試不同的 lidarslam_ros2 參數設定。

如需詳細的參數說明與進階設定,請直接參考官方 lidarslam_ros2 Repository。


適用情境​

在以下情況下,可以使用此範例:

  • 剛開始接觸基於 3D LiDAR 的 SLAM,希望了解一套簡單且可運作的 3D Mapping 設定
  • 擁有搭載 3D LiDAR 的 AMR,並希望快速視覺化周圍環境的 3D 表示
  • 想建立一份基準 3D 地圖,供後續導航或感知 Demo 使用

本範例著重於以下基本流程:

  1. 使用 3D LiDAR 啟動 lidarslam_ros2
  2. 在 RViz 中觀察 3D 地圖逐步建立
  3. 儲存完成的地圖

後續可在此基礎上進一步:

  • 依照自己的機器人、Sensor 與環境調整 lidarslam_ros2 參數
  • 評估不同的 Odometry 或 IMU Fusion 策略(如適用)
  • 將產生的 3D 地圖整合至更完整的導航或感知 Stack

GitHub​

詳細的配置可以參考Robotic suite GitHub