機器人安全創新突破:安全氣泡探測器的強大功能

作者:ADI 資深經理Rajesh Mahapatra, 首席工程師Anil Sripadarao, 工程師Prasanna Bhat, 資深工程師Colm Prendergast, 資深經理Shane O’Meara, 總監Dara O’Sullivan, 首席專家Anders Frederiksen, 及工程師Sagar Walishetti


摘要

本文介紹即時安全氣泡探測的架構,同時涵蓋以下幾個重點,包括: 在開發模組化解決方案、優化高資料頻寬應用以實現每秒30幀(FPS)運行、設計多執行緒應用和演算法以精準探測靠近地面的物體等方面所面臨的挑戰。

簡介

機器人的普及程度越來越高,目前正在逐漸提高在各行各業的效率和生產力。然而,為了確保周邊人員和資產的安全,機器人必須配備碰撞檢測和停止功能。安全氣泡探測器可以探測指定安全區域內是否存在物體或人員。

本文重點介紹如何使用 實現 安全氣泡探測器應用。ADTF3175模組具有75°的視場(FoV)。如需在實際應用中覆蓋更寬的視場,則可以組合使用多個感測器。例如,為了覆蓋270°的視場,則需使用四個模組。安全氣泡探測演算法在EVAL-ADTF3175D-NXZ平台的i.MX8MP處理器上運行,可以捕捉來自感測器的深度圖像,並探測安全氣泡半徑內的任何物體。為了便於整合到機器人應用中,通常會借助機器人作業系統(ROS)框架來實現安全氣泡探測應用。該演算法經過高度優化,在此平台上可實現30 FPS幀率。安全氣泡探測器是自動導引車(AGV)和自主移動機器人(AMR)的基本組成部分。相關安全區通常用AGV/AMR周圍的虛擬圓形區域表示,如圖1中的紅色圓圈所示。

Figure 1. A safety bubble detector.
圖1. 安全氣泡探測器

安全氣泡探測器是AGV/AMR系統必不可少的組成部分。圖2中的安全氣泡探測器由四個EVAL-ADTF3175DNXZ模組構成,覆蓋278°的視場。這些模組呈水準分佈,飛時測距(ToF)模組之間彼此相隔67.5°,此種配置有助於減少盲點,呈現278°的視場。

Figure 2. A horizontal setup. (a) Top view. (b) Front view.
圖2. 水準設定。(a)頂視圖;(b)前視圖

為了方便ToF模組和主機系統之間的通訊,系統採用ROS發佈-訂閱模型,如圖3所示。此設定使用Ethernet over USB進行通訊,以確保資料完整性並提高通訊速度。

Figure 3. Host as a subscriber and ROS nodes as publisher’s architecture.
圖3. 主機作為訂閱者、ROS節點作為發佈者的架構

系統採用安全氣泡探測演算法來探測安全氣泡半徑內的物體。探測標誌以ROS 話題(Topic)的形式傳輸,主機可以訂閱所有模組的話題,並合併各個探測結果。此外,這些模組還可發表深度圖像、紅外線圖像和輸出圖像以供進一步分析。ROS提供了有效的視覺化工具,例如rviz,其可以將發表的話題視覺化。該應用設計為高度可配置的,將參數傳遞給ROS節點即可調整攝影機位置、旋轉角度和其他配置值。

該應用實現了多執行緒架構,如圖4所示。輸入、處理、輸出三個執行緒並行運行。該設計目的在有效減少延遲,確保持續對最新可存取幀運行演算法模組。輸入執行緒從ToF模組讀取圖像並更新輸入佇列,而處理執行緒獲取輸入佇列並執行安全氣泡探測演算法,發表探測到的標誌並將輸出推送到輸出佇列。輸出執行緒讀取輸出佇列並發表話題以實現視覺化。在即時場景中,當演算法模組的畫面播放速率低於輸入執行緒時,先前未來得及處理的幀將被丟棄,進而以最小延遲優先處理最新的幀。

Figure 4. A multithreaded program.
圖4. 多執行緒程式

主機和ToF模組之間的通訊採用TCP/IP協議,通過ROS發佈者-訂閱者模型進行。主機將來自ROS節點(ToF模組)的已發表輸出圖像合併,並發表合併後的輸出。

如圖5所示,主機是NVIDIA® Jetson Xavier NX,利用Ethernet over USB協議為所有四個ToF模組供電並與之通訊。安全氣泡的默認半徑為一公尺,這可以在ROS開機檔案中進行配置。如果在該區域內探測到物體,則會觸發設定中的物體探測標誌,並透過ROS主題發送到主機。主機訂閱每個ToF模組的物體探測話題。結果透過簡單的邏輯工作範圍OR(或)運算合併。如果任何一個感測器在安全氣泡內探測到物體,合併後的結果就會指示存在物體。

圖5. 採用NVIDIA Jetson Xavier NX的水準設定

為了實現視覺化,感測器將獲取的圖像轉換為頂視圖,並根據物體位於安全氣泡內部還是外部,用綠色和紅色圖元標記物體。各感測器也會將此圖像作為ROS 話題發表,隨後主機將其合併成組合圖像。圖6為所有已發表輸出圖像主題的組合圖像。

圖6. 四個TOF模組的組合頂視圖

為了實現視覺化,在左上角繪製一個方框來顯示物體探測狀態(綠色:未探測到物體;紅色:探測到物體)。參見圖7。

Figure 7. Visualization. (a) Objects not detected. (b) Objects detected.
圖7. 視覺化。(a)未探測到物體;(b)探測到物體

這些圖像可以透過ROS工具rviz進行視覺化。此外,NVIDIA Jetson Xavier NX可以透過HDMI線連接到顯示器,以便查看輸出。為了進行分析,我們可以啟用輸入圖像的深度圖像、點雲和頂視圖等視覺化功能。這些視覺化功能為探測到的物體及其空間關係提供更詳細的資訊和洞察。參見圖8。

Figure 8. Visualization (debug images for analysis).
圖8. 視覺化(用於分析的除錯圖像)

所用SQA流程

採用標準軟體品質保證(SQA)方法來確保軟體的安全性和品質。

  • 單元測試:ROS支援多級別的單元測試。
  • 庫單元測試:測試獨立於ROS的庫。
  • ROS節點單元測試:節點單元測試啟動節點及其外部API,即已發表話題、已訂閱話題和服務。
  • 代碼覆蓋率:代碼覆蓋率分析由ROS的一個工具包完成,有助於消除從未被執行的「無效程式碼」並提高單元測試品質。
  • 文檔:ROS有一個工具包ros_doc_lite,其能為原始檔案產生doxygen格式的文檔。
  • 使用Clang格式來格式化代碼,並使用Clang-tidy來維護ROS編碼風格指南。

安全氣泡探測器能夠可靠地探測各種形狀、顏色和尺寸的物體,包括厚度僅5mm的電纜。

演算法的延遲非常低,只有30 ms,可確保即時探測物體並作出回應。

由於充分利用了ROS框架來構建使用者介面和提供視覺化功能,該應用具有高度可攜性,可相容任何使用ROS的主機,協助縮短客戶產品的上市時間。

對於透明和低反射物體,ToF感測器的精準度較低。因此,對玻璃瓶和塑膠球等物體,會出現探測滯後。例如,圖9顯示了演算法探測到物體的距離(安全半徑設定為100 cm)。y軸代表測試對象。玻璃瓶(12, 7)表示玻璃瓶高12 cm,寬7 cm。如果括弧中只有一個參數,則其表示物體的半徑或立方體的邊長。表1總結了安全氣泡探測器的規格。

Figure 9. The detection accuracy.
圖9. 探測準確度
表1. 安全氣泡探測器規格
指標 說明
探測延遲 30 ms 圖像解析度:512×512
探測區域 可配置面積的圓形/矩形 預設值:圓形區域,半徑1公尺
視場 75° 使用1個感測器

結論

此款由ADTF3175D和EVAL-ADTF3175DNXZ ToF平台組成的安全氣泡探測器具有許多優勢。其針對i.MX8MP平台進行了高度優化,實現了30 FPS的流暢性能,並且透過採用多執行緒方法有效減少延遲,確保快速回應;此外,還建置了SQA方法來確保軟體安全並維護品質標準。

參考電路

工業視覺技術」。ADI。

Analog Devices ToF”。GitHub, Inc.

Analog Devices 3DToF ADTF31xx”。GitHub, Inc.

Analog Devices 3DToF Safety Bubble Detector”。GitHub, Inc.

Analog Devices 3DToF Floor Detector”。GitHub, Inc.

Analog Devices 3DToF Image Stitching”。GitHub, Inc.