打造機器人安全新維度,詳析實(shí)時(shí)安全氣泡探測架構
機器人的普及程度越來(lái)越高,目前正在逐漸提高在各行各業(yè)的效率和生產(chǎn)力。然而,為了確保周邊人員和資產(chǎn)的安全,機器人必須配備碰撞檢測和停止功能,安全氣泡探測器可以探測指定安全區域內是否存在物體或人員。
本文引用地址:http://dyxdggzs.com/article/202504/469880.htm本文重點(diǎn)介紹如何使用ADI公司的EVAL-ADTF3175D-NXZ飛行時(shí)間(ToF)平臺實(shí)現安全氣泡探測器應用。ADTF3175模塊具有75°的視場(chǎng)(FoV)。如需在實(shí)際應用中覆蓋更寬的視場(chǎng),則可以組合使用多個(gè)傳感器。例如,為了覆蓋270°的視場(chǎng),則需使用四個(gè)模塊。安全氣泡探測算法在EVAL-ADTF3175D-NXZ平臺的i.MX8MP處理器上運行,可以捕獲來(lái)自傳感器的深度圖像,并探測安全氣泡半徑內的任何物體。為了便于集成到機器人應用中,通常借助機器人操作系統(ROS)框架來(lái)實(shí)現安全氣泡探測應用。該算法經(jīng)過(guò)高度優(yōu)化,在此平臺上實(shí)現了30 FPS幀率。安全氣泡探測器是自動(dòng)導引車(chē)(AGV)和自主移動(dòng)機器人(AMR)的基本組成部分。相關(guān)安全區通常用AGV/AMR周?chē)奶摂M圓形區域表示,如圖1中的紅色圓圈所示。
圖1. 安全氣泡探測器
安全氣泡探測器是AGV/AMR系統必不可少的組成部分。圖2中的安全氣泡探測器由四個(gè)EVAL-ADTF3175DNXZ模塊構成,覆蓋278°的視場(chǎng)。這些模塊呈水平分布,飛行時(shí)間(ToF)模塊之間彼此相隔67.5°,這種配置有助于減少盲點(diǎn),呈現278°的視場(chǎng)。
圖2. 水平設置。(a)頂視圖;(b)前視圖
為了方便ToF模塊和主機系統之間的通信,系統采用ROS發(fā)布者訂閱者模型,如圖3所示。此設置使用Ethernet over USB進(jìn)行通信,以確保數據完整性并提高通信速度。
圖3. 主機作為訂閱者、ROS 節點(diǎn) 作為發(fā)布者的架構
系統采用安全氣泡探測算法來(lái)探測安全氣泡半徑內的物體。探測標志以ROS 話(huà)題(Topic)的形式傳輸,主機可以訂閱所有模塊的話(huà)題,并合并各個(gè)探測結果。此外,這些模塊還可發(fā)布深度圖像、紅外圖像和輸出圖像以供進(jìn)一步分析。ROS提供了有效的可視化工具,例如rviz,它可以將發(fā)布的話(huà)題可視化。該應用設計為高度可配置的,將參數傳遞給ROS節點(diǎn)即可調整攝像頭位置、旋轉角度和其他配置值。
該應用實(shí)現了多線(xiàn)程架構,如圖4所示。輸入、處理、輸出三個(gè)線(xiàn)程并行運行。該設計旨在有效減少延遲,確保持續對最新可訪(fǎng)問(wèn)幀運行算法模塊。輸入線(xiàn)程從ToF模塊讀取圖像并更新輸入隊列,而處理線(xiàn)程獲取輸入隊列并運行安全氣泡探測算法,發(fā)布探測到的標志并將輸出推送到輸出隊列。輸出線(xiàn)程讀取輸出隊列并發(fā)布話(huà)題以實(shí)現可視化。在實(shí)時(shí)場(chǎng)景中,當算法模塊的幀速率低于輸入線(xiàn)程時(shí),先前未來(lái)得及處理的的幀將被丟棄,從而以最小延遲優(yōu)先處理最新的幀。
圖4. 多線(xiàn)程程序
主機和ToF模塊之間的通信采用TCP/IP協(xié)議,通過(guò)ROS發(fā)布者-訂閱者模型進(jìn)行。主機將來(lái)自ROS節點(diǎn)(ToF模塊)的已發(fā)布輸出圖像合并,并發(fā)布合并后的輸出。
如圖5所示,主機是NVIDIA ? Jetson Xavier NX,利用Ethernet over USB協(xié)議為所有四個(gè)ToF模塊供電并與之通信。安全氣泡的默認半徑為一米,這可以在ROS啟動(dòng)文件中進(jìn)行配置。如果在該區域內探測到物體,則會(huì )觸發(fā)設置中的物體探測標志,并通過(guò)ROS主題發(fā)送到主機。主機訂閱每個(gè)ToF模塊的物體探測話(huà)題。結果通過(guò)簡(jiǎn)單的邏輯工作范圍OR(或)運算合并。如果任何一個(gè)傳感器在安全氣泡內探測到物體,合并后的結果就會(huì )指示存在物體。
圖5. 采用NVIDIA Jetson Xavier NX的水平設置
為了實(shí)現可視化,傳感器將獲取的圖像轉換為頂視圖,并根據物體位于安全氣泡內部還是外部,用綠色和紅色像素標記物體。各傳感器也會(huì )將此圖像作為ROS話(huà)題發(fā)布,隨后主機將它們合并成組合圖像。圖6為所有已發(fā)布輸出圖像主題的組合圖像。
圖6. 四個(gè)TOF模塊的組合頂視圖
為了實(shí)現可視化,在左上角繪制一個(gè)方框來(lái)顯示物體探測狀態(tài)(綠色:未探測到物體;紅色:探測到物體)。參見(jiàn)圖7。
圖7. 可視化。(a)未探測到物體;(b)探測到物體
這些圖像可以通過(guò)ROS工具rviz進(jìn)行可視化。此外,NVIDIA Jetson Xavier NX可以通過(guò)HDMI線(xiàn)連接到顯示器,以便查看輸出。為了進(jìn)行分析,我們可以啟用輸入圖像的深度圖像、點(diǎn)云和頂視圖等可視化功能。這些可視化功能為探測到的物體及其空間關(guān)系提供更詳細的信息和洞察。參見(jiàn)圖8。
圖8. 可視化(用于分析的調試圖像)
所用SQA流程
采用標準軟件質(zhì)量保證(SQA)方法來(lái)確保軟件的安全性和質(zhì)量。
單元測試:ROS支持多級別的單元測試。
庫單元測試:測試獨立于ROS的庫。
ROS節點(diǎn)單元測試:節點(diǎn)單元測試啟動(dòng)節點(diǎn)及其外部API,即已發(fā)布話(huà)題、已訂閱話(huà)題和服務(wù)。
代碼覆蓋率:代碼覆蓋率分析由ROS的一個(gè)工具包完成,有助于消除從未被執行的“死代碼”并提高單元測試質(zhì)量。
文檔:ROS有一個(gè)工具包ros_doc_lite,它能為源文件生成doxygen格式的文檔。
使用Clang格式來(lái)格式化代碼,并使用Clang-tidy來(lái)維護ROS編碼風(fēng)格指南。
安全氣泡探測器能夠可靠地探測各種形狀、顏色和尺寸的物體,包括厚度僅5毫米的電纜。
算法的延遲非常低,只有30 ms,可確保實(shí)時(shí)探測物體并作出響應。
由于充分利用了ROS框架來(lái)構建用戶(hù)界面和提供可視化功能,該應用具有高度可移植性,可兼容任何使用ROS的主機,幫助縮短客戶(hù)產(chǎn)品的上市時(shí)間。
對于透明和低反射物體,ToF傳感器的準確度較低。因此,對玻璃瓶和塑料球等物體,會(huì )出現探測滯后。例如,圖9顯示了算法探測到物體的距離(安全半徑設置為100 cm)。y軸代表測試對象。玻璃瓶(12, 7)表示玻璃瓶高12 cm,寬7 cm。如果括號中只有一個(gè)參數,則它表示物體的半徑或立方體的邊長(cháng)。表1總結了安全氣泡探測器的規格。
圖9. 探測準確度
表1. 安全氣泡探測器規格
結論
這款由ADTF3175D和EVAL-ADTF3175DNXZ ToF平臺組成的安全氣泡探測器具有許多優(yōu)勢。它針對i.MX8MP平臺進(jìn)行了高度優(yōu)化,實(shí)現了30 FPS的流暢性能;而且采用多線(xiàn)程方法來(lái)有效減少延遲,確??焖夙憫?;此外還實(shí)施了SQA方法來(lái)確保軟件安全并維護質(zhì)量標準。
評論