跳至主要内容

2D LiDAR Navigation

此範例示範在 AMR 上搭配 2D LiDAR 與 Nav2 進行導航與避障。


安裝​

注意

目標系統需符合:研華平台、剩餘空間 ≥ 3 GB、Ubuntu 英文介面、可連網。

  • 依照安裝程式說明選擇並安裝 2D LiDAR Navigation 後,可在以下位置找到 2d-nav2-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 版本而有所不同。

  • 2D LiDAR Navigation 會自動顯示:

提示

第一次執行此程式時,系統可能需要下載或準備必要檔案,因此可能需要一些時間。


設定指南​

本範例示範以 2D LiDAR 為基礎的導航基本工作流程,包含:

  • 安裝於 AMR 上的 2D LiDAR
  • 使用 Nav2 作為導航 Stack
  • 使用 RViz 進行視覺化與操作

本範例的目的是協助您了解整體導航流程,以及主要 Nav2 元件如何彼此配合,而不是提供一套可以不經修改就直接套用到任何 AMR 或環境的設定。


使用方式​

在 Advantech Robotic Suite 中,Nav2 已預先安裝於 Host 環境,因此不需要額外進行安裝。 本範例主要作為概念與設定參考,並使用符合內部範例配置的預先定義 Robot Setup 與 Map。由於大多數使用者會使用不同的 AMR 硬體,且實際操作環境也不同,因此不應預期可以:

  • 在不修改設定的情況下,直接將此範例執行於自己的 AMR 上,或
  • 只啟動此 Demo,就能在自己的實際環境中看到真實機器人移動。

您可以改為使用此範例來:

  • 在 RViz 中觀察典型的 Nav2 Bring-up,包括 Map、Robot Pose、Costmap 與 Planned Path。

  • 了解 Nav2 所需的主要 Topic 與 Frame,例如:

    • /map – 靜態地圖
    • /scan – 2D LiDAR 資料
    • /tf – map、odom、base_link 與 Sensor Frame 之間的座標轉換
    • /odom – Odometry 資訊(若有提供)
    • /cmd_vel – Nav2 傳送至 Robot Base 的速度指令

執行範例後:

  1. RViz 會依照範例設定載入地圖。
  2. Nav2 會透過 Planner、Controller 與 Costmap 計算 Global Path 並模擬導航行為,您可以在 RViz 中觀察整個過程。

若要將相同概念套用至自己的 AMR,需要:

  • 提供自己的 Robot Description、TF Tree 與 Sensor Setup。
  • 確認 Topic(/scan、/odom、/tf 等)與 Frame 符合 Nav2 的需求。
  • 依照自己的機器人與環境調整 Nav2 參數,例如 Costmap、Planner 與 Controller。

此範例設定主要作為了解各元件如何整合的「範本」,而不是可直接套用到任意硬體的即用型設定。

如需詳細的參數說明與進階設定,請直接參考官方 Nav2 文件與教學。


適用情境​

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

  • 剛開始接觸 Nav2,希望了解完整的 2D LiDAR 導航流程
  • 想了解實際 Nav2 Launch 與 RViz 設定的典型樣貌
  • 需要了解必要的 Topic、Frame 與主要元件,例如 Map Server、Localization、Planning、Control 與 Behavior Tree

本範例著重於以下概念流程:

  1. 載入 2D 地圖並啟動 Nav2 Stack
  2. 在地圖上定位機器人,例如使用 AMCL
  3. 在 RViz 中送出導航目標
  4. 觀察 Nav2 如何計算路徑,並利用 2D LiDAR 進行障礙物迴避

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

  • 將 Nav2 設定(Robot Model、Costmap、Planner、Controller)調整為適合自己的 AMR。
  • 使用由「2D LiDAR Mapping」範例或自己的 Mapping Pipeline 所建立的地圖。
  • 整合其他 Sensor,例如 IMU、Wheel Encoder,以改善定位與導航效能。

GitHub​

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