英特爾OpenVINO在自主移動機器人的邊緣視覺推論上的應用(EI for AMR)



這個怎麼運作

Edge Insights for Autonomous Mobile Robots (EI for AMR) 模塊通過 Docker* 容器部署,以增強開發人員體驗 (DX)、支持持續集成和持續部署 (CI/CD) 實踐以及在包括機器人在內的不同執行環境中靈活部署、開發PC、服務器和雲。
本節概述了 Edge Insights for Autonomous Mobile Robots 的模塊和服務。

模塊和服務

英特爾® oneAPI Base Toolkit (Base Kit) 和英特爾® Distribution of OpenVINO™ toolkit (OpenVINO™) 中的中間件分層架構從算法實現中抽像出硬件依賴關係。
具有數據分發服務 (DDS) 的 ROS 2 用作消息總線。這種基於 ROS 2 主題的發布者-訂閱者架構將數據提供者與消費者分離。
相機和激光雷達傳感器數據使用 ROS 2 主題進行抽象。

GStreamer* 支持視頻流處理管道。它通過 OpenVINO™ 工具包 DL Streamer 框架將傳感器攝取、視頻處理和 AI 對象檢測解耦。
此外,可以使用 ROS 2 主題註冊來實現將 Sense-Plan-Act 自主移動機器人應用程序解耦的更複雜的計算圖。
此圖顯示了 EI for AMR 軟件包中包含的軟件組件。軟件堆棧隨著其他算法、應用程序和第三方生態系統軟件組件不斷迭代發展。



用於 AMR 軟件堆棧的 EI 基於底層硬件平台支持的軟件及其一部分、它們各自的基於統一可擴展固件接口 (UEFI) 的引導,以及它們支持的 Linux* 操作系統。有關要求的詳細信息,請參閱:

AMR 驅動程序的 EI

面向自主移動機器人的 Edge Insights 依賴於標準英特爾® 架構 Linux* 驅動程序,該驅動程序包含在 kernel.org 的 Linux* 內核中並在上游,並包含在 Ubuntu* 發行版中。這些驅動程序不包含在 EI for AMR 包中。對 AMR 的 EI 特別重要的一些值得注意的驅動因素包括:
  • 用於 5G 和 LTE 連接的 5G/LTE 設備驅動程序。
  • 電池橋內核模塊,它允許用戶空間應用程序將電池和電源信息輸入 Linux 內核的電源子系統。它被設計為與 ROS 2 Battery Bridge 一起使用,以允許基於 ROS 2 的 AMR 軟件堆棧將電池信息從 AMR 的微控制器轉發到 Linux 內核。
  • MIPI CSI IMX390 設備驅動程序,適用於使用 Sony* IMX390 傳感器並通過 MIPI CSI 連接連接到 Tiger Lake 平台 SoC 的相機。
  • 適用於英特爾® Movidius™ Myriad™ X VPU 的設備驅動程序。

AMR 中間件的 EI

EI for AMR 在 AMR 上集成了以下中間件包:
  • AAEON* ROS 2 接口,AAEON AMR 的 ROS 2 驅動程序節點
  • GStreamer*,包括對 libv4l2 視頻源的支持、用於視頻和音頻的 GStreamer* “好”插件以及用於在窗口中顯示視頻流的 GStreamer* 插件
  • Kobuki,Cogniteam 的 Pengo AMR 的 ROS 2 驅動程序節點
  • 英特爾® oneAPI Base Toolkit,能夠執行英特爾® oneAPI Base Toolkit 示例應用程序。英特爾® oneAPI Base Toolkit 是一套核心工具和庫,用於開發跨不同架構的高性能、以數據為中心的應用程序。它具有行業領先的 C++ 編譯器和數據並行 C++ (DPC++) 語言,是 C++ 的演變,適用於異構計算。有關英特爾® oneAPI Base Toolkit 培訓和 CUDA* 轉換器演示,請參閱:
     
  • OpenCV(開源計算機視覺庫),一個包含數百種計算機視覺算法的開源庫
  • 英特爾® Distribution of OpenVINO™ toolkit是一個綜合性工具包,用於快速開發應用程序和解決方案,以解決各種任務,包括模擬人類視覺、自動語音識別、自然語言處理、推薦系統等。該工具包基於最新一代的人工神經網絡,包括卷積神經網絡 (CNN)、循環和基於注意力的網絡,將計算機視覺和非視覺工作負載擴展到英特爾硬件,最大限度地提高性能。它通過從邊緣部署到雲端的高性能、人工智能和深度學習推理來加速應用程序。
  • Intel® RealSense™ ROS 2 Wrapper 節點,用於帶有 ROS 2 的 Intel® RealSense™ 攝像頭
  • 英特爾® 實感™ SDK,用於為英特爾® 實感™ 攝像頭實施軟件
  • ROS 2 ros1_bridge,它提供了一個網橋,允許在 ROS1 和 ROS 2 之間交換消息。這讓用戶可以評估 AMR 上的 AMR SDK 的 EI,或者使用僅存在 ROS1 驅動節點的傳感器。
  • ROS 2,機器人操作系統(ROS),它是一組用於構建機器人應用程序的開源軟件庫和工具
    ROS 2 依賴於其他中間件,例如使用發布-訂閱模式的對像管理組 (OMG) 數據分發服務 (DDS) 連接框架。標準 ROS 2 發行版包括 eProsima Fast DDS 實施。
  • ROS 2 Battery Bridge,它利用 Battery Bridge 內核模塊將電池信息從 AMR 的微控制器轉發到 Linux 內核
  • RPLIDAR ROS 2 Wrapper 節點,用於將 RPLIDAR LIDAR 傳感器與 ROS 2 配合使用
  • SICK Safetyscanners ROS 2 驅動程序,從 SICK Safety Scanners 讀取原始數據並將數據作為laser_scan msg 發布

AMR 算法的 EI

Edge Insights for Autonomous Mobile Robots 包括參考算法和深度學習模型,作為以下自動化機器人控制功能領域的工作示例:
  • DBSCAN (Density-Based Spatial Clustering of Applications with Noise) 是一種無監督聚類算法,根據高維點的分佈密度對其進行聚類。自適應 DBSCAN (ADBSCAN) 具有基於距離自適應的聚類參數,特別適用於處理 LIDAR 數據。它將物體檢測範圍平均提高了 20-30%。
  • Collaborative SLAM,一種用於服務機器人的協作視覺同步定位和映射 (SLAM) 框架。通過邊緣服務器維護地圖數據庫並執行全局優化,每個機器人都可以註冊到現有地圖、更新地圖或構建新地圖,所有這些都具有統一的界面以及低計算和內存成本。Collaborative SLAM 系統至少包含兩個元素:
  • 這跟踪器是一個視覺 SLAM 系統,支持慣性和里程計輸入。它實時估計相機位姿,並維護本地地圖。它可以在沒有服務器的情況下工作,但如果配置了服務器,它將與服務器通信以查詢和更新地圖。跟踪器代表一個機器人。可以同時運行多個跟踪器。
  • 這服務器維護地圖並與所有跟踪器通信。對於來自跟踪器的每個新關鍵幀,它會檢測可能的循環,包括地圖內和地圖間。一旦檢測到,服務器將執行地圖優化或地圖合併,並將更新的地圖分發給相應的跟踪器。
  •  有關協作 SLAM 的詳細信息,請參閱A Collaborative Visual SLAM Framework for Service Robots 論文
  • FastMapping 是一種基於英特爾® 實感™ 深度傳感器數據創建機器人周圍環境 3D 體素圖的算法。
  • OpenVINO™ Model Zoo、優化的深度學習模型和一組演示,以加快高性能深度學習推理應用程序的開發。開發人員可以使用這些預先訓練的模型而不是訓練自己的模型來加快開發和生產部署過程。
  • ROS 2 Cartographer,一個基於實時 2D LIDAR 傳感器數據提供實時同步定位和映射 (SLAM) 的系統。它用於以佔用網格的形式生成竣工平面圖。
  • ROS 2 Depth Image to Laser Scan,將深度圖像轉換為激光掃描,用於導航和定位。
  • ROS 2 導航堆棧,它尋求一種讓移動機器人從 A 點移動到 B 點的安全方式。這將完成動態路徑規劃、計算電機速度、檢測和避開障礙物以及結構恢復行為。Nav2 使用行為樹調用模塊化服務器來完成一個動作。動作可以是計算路徑、控制努力、恢復或任何其他與導航相關的動作。這些是通過 ROS 操作服務器與行為樹 (BT) 通信的獨立節點。
  • RTAB-Map (Real-Time Appearance-Based Mapping),一種 RGB-D、立體和基於激光雷達圖的 SLAM 方法,基於增量的基於外觀的回環檢測器。閉環檢測器使用詞袋方法來確定新圖像來自先前位置或新位置的可能性。當一個閉環假設被接受時,一個新的約束被添加到地圖的圖表中,然後一個圖表優化器最小化地圖中的錯誤。內存管理方法用於限制用於閉環檢測和圖優化的位置數量,以便始終遵守大規模環境的實時約束。RTAB-Map 可以單獨與手持 Kinect 一起使用,

用於 AMR 應用的 EI

  • 英特爾帶內可管理性,監控設備並遠程更新設備的軟件和固件。
  • 對象檢測 AI 應用程序使用 OpenVINO™ Model Zoo 中的深度學習神經網絡模型檢測視頻數據中的對象。
  • VDA5050 Sample Handler 處理來自 VDA5050 AMR/AGV 互操作性標準的選定命令,並轉發 AMR 的軟件組件以進行自主導航。
  • Wandering Application,包含在 AMR SDK 的 EI 中,用於演示中間件、算法和 ROS 2 導航堆棧的組合,以在房間內移動機器人避免撞到障礙物,實時更新作為 ROS 主題公開的本地地圖,以及發佈在另一個 ROS 主題中檢測到的基於 AI 的對象。它使用可從機器人硬件配置中獲得的機器人傳感器和執行器。

邊緣服務器中間件

  • FIDO Device Onboarding,物聯網設備的自動載入協議。允許設備憑證的後期綁定,以便一個製造的設備可以在不修改的情況下載入許多不同的物聯網平台。
  • 英特爾® Smart Edge Open,一個用於構建邊緣平台的軟件工具包。它加快了邊緣解決方案的開發,該解決方案在人工智能、媒體處理和安全工作負載的同時託管網絡功能,參考解決方案針對常見用例進行了優化,這些用例由經過認證的 Kubernetes* 雲原生堆棧提供支持。

邊緣服務器算法

  • OpenVINO™ Model Zoo,其中包括優化的深度學習模型和一組演示,以加快高性能深度學習推理應用程序的開發。開發人員可以使用這些預先訓練的模型而不是訓練自己的模型來加快開發和生產部署過程。

邊緣服務器應用程序

  • OpenVINO™ 模型服務器 (OVMS),一種用於服務機器學習模型的高性能係統。它基於 C++ 以實現高可擴展性並針對英特爾解決方案進行了優化,因此您可以利用英特爾® 至強® 處理器或英特爾 AI 加速器的所有功能,並通過網絡接口將其公開。OVMS 使用與 TensorFlow Serving 相同的架構和 API,同時應用 OpenVINO 進行推理執行。推理服務通過 gRPC 或 REST API 提供,便於部署新算法和 AI 實驗。
  • ThingsBoard*,一個用於數據收集、處理、可視化和設備管理的開源物聯網平台。它通過行業標準物聯網協議(MQTT、CoAP 和 HTTP)實現設備連接,並支持雲和本地部署。

工具

ROS工具Edge Insights for Autonomous Mobile Robots 使用 ROS 2 節點進行驗證。ROS 1 與 AMR 組件的 EI 不兼容。包含一個 ROS 1 橋以允許 AMR 組件的 EI 與 ROS 1 組件接口。
  • 從受支持平台的硬件角度來看,ROS 1 組件沒有已知限制。
  • 有關將 ROS 1 應用程序移植到 ROS 2 的信息,這裡是來自 ROS 社區的指南
自主移動機器人的 Edge Insights 包括:
  • colcon(集體構建),一個命令行工具,用於改進構建、測試和使用多個軟件包的工作流程。它使流程自動化,處理排序,並設置環境以使用包。
  • rqt,ROS 2 的軟件框架,以插件的形式實現了各種 GUI 工具。
  • rviz2,一個用於可視化 ROS 2 主題的工具。

模擬

自主移動機器人的 Edge Insights 包括:
  • Gazebo* 機器人模擬器,可以使用真實場景快速測試算法、設計機器人、執行回歸測試和訓練 AI 系統。Gazebo 能夠在復雜的室內和室外環境中準確高效地模擬機器人種群。
  • Gazebo*的工業模擬室模型,開源機器人基金會 (OSRF) Gazebo 敏捷機器人環境 (GEAR) 工作單元,用於 2018 年的 ARIAC 競賽。

其他工具

自主移動機器人的 Edge Insights 包括:
  • Intel® oneAPI Base Toolkit,包括 DPC++ 編譯器和兼容性工具,以及調試和分析工具,如 VTune™ Profiler 等(以前稱為 Intel System Studio)。
  • OpenVINO™ 工具,包括模型優化工具。

部署

作為獨立進程執行的所有應用程序、算法和中間件組件都部署在它們自己的 Docker 容器中。這允許有選擇地將這些組件拉到 AMR 或邊緣服務器上並在那裡啟動它們。出於開發目的,中間件庫和所有工具都部署在一個名為完整的 SDK這個容器是通過擴展OpenVINO SDK容器,它本身擴展了ROS2 SDK容器。為了節省存儲空間,您可以根據應用程序的需要選擇運行任何容器。
  • 這ROS2 SDK容器包括 ROS 2 中間件和工具、英特爾® RealSense™ SDK 和 ROS 2 包裝器、GStreamer* 和構建工具、ROS 2 包(Cartographer、Navigation、RTAB_MAP)和快速映射應用程序(英特爾優化的 octomap 版本)。
  • 這OpenVINO SDK容器包括
    ROS2 SDK,以及 OpenVINO™ 開發工具包、OpenVINO™ DL GStreamer* 插件和 Wandering 演示應用程序。
  • 這完整的 SDK容器包括 OpenVINO™ 容器,以及英特爾® oneAPI Base Toolkit、數據並行 C++ (DPC++) 兼容性工具和分析器、分析器工具。

★博文內容參考自 網站,與平台無關,如有違法或侵權,請與網站管理員聯繫。

★文明上網,請理性發言。內容一周內被舉報5次,發文人進小黑屋喔~

評論