使用 ROS 2 元件簡化 AMR 和 AGV 的整合

作者:Kenton Williston

資料提供者:DigiKey 北美編輯群

自主移動機器人 (AMR) 和自動導引車 (AGV) 需要跨多個子系統進行緊密協調,包括感測器、馬達、導航以及基於人工智慧 (AI) 的決策。要將這些子系統全部整合,對開發人員來說具有挑戰。

機器人作業系統 (ROS) 可提供克服此複雜性的方法。ROS 屬於開源的機器人中介軟體,提供標準化的通訊框架和龐大的可重複使用套件生態系統。挑選具有原生 ROS 支援的元件,設計人員就可使用帶有可軟體定址功能的預製硬體模組,縮短上機時間並提升互通性。

本文將概略回顧 AMR 和 AGV 設計人員面臨的挑戰,以及 ROS 如何提供協助。接著會介紹來自 Analog Devices (ADI) 的 ROS 相容硬體,包括馬達控制器、慣性測量單元 (IMU) 和飛時測距 (ToF) 感測器,並說明這些元件如何與 ROS 軟體堆疊整合,以加速產品開發。

AMR 與 AGV 的整合挑戰

在 AMR 或 AGV 設計中,整合工作會主導初期的排程。在硬體層面,團隊必須挑選元件、設計介面,並對訊號完整性與時序進行驗證。在軟體層面,則必須載入驅動程式、定義資料流,並確保系統在現實環境中達到預期的行為。

有才能的團隊可以透過內部設計達成這些目標,但這通常表示要重新建立現成的功能。這項工作可能難以證明其合理性,尤其是傳統作法導致團隊受到專有介面綁定時。若需求有所演變,替換元件可能就要重新處理軟體堆疊的大部分內容。

ROS 如何因應整合挑戰

ROS 就是為了解決這些問題而打造。儘管名稱如此,ROS 並非傳統意義上的作業系統。相反地,這是一個開源框架,可提供豐富的工具、函式庫和慣例。

ROS 的核心概念在於將複雜的機器人應用程式結構整理成模組化的節點 (圖 1)。這些小型流程可執行特定任務,例如讀取感測器資料或控制馬達速度。

ROS 的基本構建模塊包括套件、節點、訊息和服務示意圖圖 1:ROS 的基本構建模塊包括套件、節點、訊息和服務。(圖片來源:Analog Devices,經 Kenton Williston 修改)

節點可透過兩種主要機制進行通訊:

  • 主題:適用於持續數據串流 (如感測器饋流) 的發佈訂閱模型
  • 服務:一種請求回應模型,最適合非頻繁作業,例如裝置組態和初始化

多重節點及其相依性 (包括相關主題與服務) 可以組合成一個套件,以提供更完整的功能。例如,Analog Devices 就針對其專為 AGV 和 AMR 設計的感測器與致動器模組,打造了 ROS 驅動套件。這些套件納入節點、訊息定義和組態檔,都是將硬體整合到 ROS 架構系統所需的要件。

ROS 如何簡化 AMR 和 AGV 的設計

這種模組化架構可促成互通性並加速開發。在硬體層面,ROS 能為相機和馬達控制器等元件提供標準化的介面。這可加快整合速度,同時讓設計人員擺脫供應商綁定和授權費用的束縛。

在軟體層面,ROS 可提供工具和中介軟體,有助於設計人員開發、測試、部署及維護複雜的機器人。目前的框架版本 ROS 2,提供對 AMR 和 AGV 特別有用的功能。包括:

  • Nav2 導航堆疊,可支援行為樹、禁止區域、速度限制等功能
  • 精細的定位演算法,包括能讓 AMR 和 AGV 理解所在環境的地圖繪製與定位工具
  • 整合了模擬、視覺化及記錄工具,有助於開發與診斷

ROS 2 通常在 Linux 架構電腦上運作,但也有支援其他作業系統。ROS 2 也支援 micro-ROS,這是一種在微控制器單元 (MCU) 上原生運作的版本,並具有即時作業系統 (RTOS),如 Zephyr 和 FreeRTOS。

與 ROS 2 整合的馬達控制

為了說明 ROS 2 的潛力,可以試想驅動控制的複雜性。大多數 AMR 和 AGV 皆使用差動驅動配置,其有兩組獨立控制的滾輪可達到前進動作和轉向。此架構需要的馬達控制器,要能同時驅動滾輪,也要接收來自導航系統的協調命令。

ADI 的 TMCM-2611-AGV (圖 2) 可直接因應這個需求。此板件隸屬於 Trinamic 馬達控制器模組 (TMCM) 系列,是一款雙軸伺服驅動平台,適用於三相無刷直流 (BLDC) 馬達,專為 AGV 與 AMR 牽引應用而設計。每個軸可驅動最大 14 A RMS、電壓為 48 V 的馬達,並可透過增量式正交編碼器或數位霍爾效應感測器達到位置回饋。

Analog Devices 的 TMCM-2611-AGV 雙軸控制器/驅動器圖片圖 2:TMCM-2611-AGV 是一款用於三相 BLDC 馬達的雙軸控制器/驅動器。(圖片來源:Analog Devices)

adi_tmcl ROS 2 驅動程式主要會透過主題 (圖 3) 將此硬體連接至 ROS 2 生態系統。例如,導航堆疊可以透過 /cmd_vel_X 主題向每組滾輪發佈速度命令。adi_tmcl 驅動程式會訂閱這些主題,將命令轉譯成 Trinamic 運動控制語言 (TMCL) 訊框,然後透過 Linux 原生的 SocketCAN 介面由 CAN 匯流排進行傳送。

Analog Devices 的 TMCLROS2 驅動程式套件圖片 (按此放大)圖 3:TMCL ROS2 驅動程式套件包含一組強大的介面。(圖片來源:Analog Devices)

在相反方向上,adi_tmcl 驅動程式會將馬達回饋訊息發佈到 /tmc_info_X 主題,以提供速度、位置、扭力和狀態資訊。其他節點可以訂閱此資料,用於里程計算、診斷或應用層級的閉迴路控制。

此雙向流程可說明 ROS 2 如何促成模組化系統設計。導航演算法並不需要對 TMCL 或 CAN 匯流排有任何瞭解;只需發佈標準速度訊息並接收回饋即可。

adi_tmcl 驅動程式也使用服務來執行初始化和參數存取等任務。例如,/tmcl_gap_all 會取得所有軸參數值,而 /tmcl_ggp_all 則會取得控制板的所有全域參數值。

慣性測量可用於位置追蹤

雖然滾輪編碼器能讓系統依據滾輪行程來估算位置,但僅靠滾輪里程表通常不足以達到精確的位置追蹤。滾輪打滑和不平整的路面會隨著時間帶來顯著的誤差。這在許多室內環境中特別需要關注,因為 GPS 訊號並不可靠,且無法提供持續校正。

IMU 可提供獨立的運動參考,AMR 和 AGV 可用此提升航位推算的準確性。有個典型的例子就是 ADIS16500/05/07 系列,可透過三軸陀螺儀和三軸加速度計提供六自由度的精密慣性感測,且全部整合在一個 15 × 15 × 5 mm 的 BGA 封裝中。工廠校準可對各個感測器進行靈敏度、偏差、對齊和溫度補償層面的特性化,以便減輕系統設計人員的整合負擔。

ADIS16500AMLZ 就是具有代表性的範例之一 (圖 4)。此零件具有每秒 ±2000° (˚/s) 的陀螺儀量程,陀螺儀運轉偏差穩定性為每小時 8.1° (˚/hr),且角度隨機游走為每平方根小時 0.29° (°/√hr)。這些規格有助於減少隨時間產生的漂移、改善每次外部校正之間的航位推算效能。

Analog Devices 的 ADIS16500AMLZ 精密 MEMS IMU 圖片圖 4:ADIS16500AMLZ 是一款精密的 MEMS IMU,採用緊湊型 BGA 封裝。(圖片來源:Analog Devices)

在 ROS 2 整合上,ADIS16500/05/07 系列可由 imu_ros2 驅動程式提供支援。此驅動程式可透過 LibIIO 利用 Linux 工業 I/O 子系統。其輸出相容於常見的 ROS 2 感測器融合套件,例如 robot_localization,其可實作延伸卡爾曼濾波法以結合 IMU 和里程計的資料。

有興趣嘗試 IMU 的設計人員可以從 ADIS16500/PCBZ 評估板開始 (圖 5)。此板件可透過一個 16 引腳的排針座提供 IMU 的 SPI 介面,且此排針座相容於標準 2 mm 間距的帶狀纜線。

Analog Devices 的 ADIS16500 /PCBZ 評估板圖片圖 5:ADIS16500/PCBZ 評估板可透過 16 引腳排針座提供 SPI 介面。(圖片來源:Analog Devices)

深度感測可達到障礙物偵測

障礙物偵測是 AMR/AGV 的另一項標準功能。雖然 LiDAR 擅長偵測較遠距離的障礙物,但許多應用也需要近距離感測,以偵測低矮障礙物、地板不連續處,或位於 LiDAR 掃描平面外的物體。ToF 深度相機就可彌補此缺失,可在寬廣的視野範圍內提供密集的深度影像。

ADTF3175BMLZ ToF 模組 (圖 6) 就非常符合這些需求。此模組結合了 CMOS 深度感測器與照明光學元件,能在 75˚ × 75˚ 視野下,擷取高達 1024 × 1024 解析度的深度和主動亮度 (AB) 影格。因為兼具解析度與覆蓋範圍,因此非常適合用於倉庫和製造環境中的安全區域監測及地板偵測,因為障礙物可能會以不同的高度出現。

Analog Devices 的 ADTF3175BMLZ ToF 模組圖片圖 6:ADTF3175BMLZ ToF 模組整合了 CMOS 深度感測器與照明光學元件。(圖片來源:Analog Devices)

adi_3dtof_adtf31xx 驅動程式可利用標準 ROS 2 訊息格式發佈深度和 AB 影格,因此可輕鬆存取相機數據。這些輸出可直接整合常見的感知套件,以用於點雲生成、地板偵測及安全區域監測等任務。此驅動程式亦支援檔案回放模式,因此無需實體硬體連接,就可進行演算法的開發與測試。

若要進行開發和原型設計,EVAL-ADTF3175D-NXZ 套件 (圖 7) 可提供完整的感測器平台。此套件最顯著的特點就是運行 Linux 的 Arm® 架構機板,且可直接代管 ROS 2 節點。此外,感測器可透過乙太網路將深度資料串流傳輸到獨立的 ROS 2 主機,以提供不同系統架構的靈活性。

Analog Devices 的 EVAL-ADTF3175D-NXZ 評估套件圖片圖 7:EVAL-ADTF3175D-NXZ 評估套件包含一個 Arm 架構的 Linux 主機。(圖片來源:Analog Devices)

Analog Devices Autonomous Mobot (ADAM) 的參考平台可展示這些 ROS 相容元件如何與其他解決方案整合,以達到電池管理、電力轉換及通訊,藉此構成完整的 AMR 系統。

結論

挑選 ROS 相容元件,就可大幅降低 AMR 和 AGV 設計與開發的複雜度。透過像是 ADI 的可靠元件貨源,就可提供適合多種感測器和致動器的 ROS 2 驅動程式,還可建立寶貴的合作關係。

DigiKey logo

聲明:各作者及/或論壇參與者於本網站所發表之意見、理念和觀點,概不反映 DigiKey 的意見、理念和觀點,亦非 DigiKey 的正式原則。

關於作者

Image of Kenton Williston

Kenton Williston

Kenton Williston 於 2000 年獲得電氣工程學士學位,並開始處理器基準分析師的職業生涯。從那時起,他在 EE Times 集團擔任編輯,協助推出和引導電子產業的多項刊物與會議。

關於出版者

DigiKey 北美編輯群