楊建海 王金碩 劉明陽 余江 鞏榮芬
摘要:針對倉儲物流自動分揀領(lǐng)域,設(shè)計了一個基于機(jī)器人操作系統(tǒng)(robot operating system,ROS)的倉儲物流自分揀車,采用了同時定位與地圖構(gòu)建(simultaneous localization and mapping,SLAM)技術(shù)進(jìn)行地圖構(gòu)建和路徑規(guī)劃,使其具備自主導(dǎo)航能力,結(jié)合多角度機(jī)械臂實現(xiàn)靈活抓取。實驗測試表明,設(shè)計的自分揀車可以應(yīng)用于物流分揀,能準(zhǔn)確、高效地完成分揀任務(wù),提高物流分揀效率和降低分揀成本。
關(guān)鍵詞:ROS 物流車;物流分揀;視覺識別;SLAM
中圖分類號:TP271;TP13 文獻(xiàn)標(biāo)識碼:A
0 引言
隨著電商、物流行業(yè)的迅速發(fā)展,倉儲物流分揀作為現(xiàn)代物流處理的重要組成部分,對提高物流效率、準(zhǔn)確性以及降低成本具有關(guān)鍵意義。在這個背景下,基于機(jī)器人操作系統(tǒng)(robot operatingsystem,ROS)的倉儲物流自分揀車應(yīng)運而生。
本文旨在探討基于ROS 的倉儲物流自分揀車的設(shè)計與實現(xiàn),利用ROS 強(qiáng)大的功能和靈活性,結(jié)合自動化設(shè)備和智能算法,實現(xiàn)貨物的自動分揀和處理。該自分揀車的設(shè)計目標(biāo)包括提高分揀效率、準(zhǔn)確性和靈活性,降低運營成本。其還提供簡潔明了的用戶界面和良好的操作體驗,確保安全性和可靠性,并與分揀車進(jìn)行集成,實現(xiàn)智能、高效運營。此外,自分揀車的應(yīng)用場景涵蓋電商倉庫、物流中心、快遞站點和配送中心等領(lǐng)域。
本文將介紹ROS 的基本概念,探討倉儲物流自分揀車的相關(guān)技術(shù)與方法,詳細(xì)闡述倉儲物流自分揀車的設(shè)計與實現(xiàn),為倉儲物流自分揀車領(lǐng)域的發(fā)展提供有益的參考和借鑒。
1 系統(tǒng)設(shè)計
本系統(tǒng)采用樹莓派作為上位機(jī)主控,Arduino和STM32 作為下位機(jī)控制,利用激光雷達(dá)的同時定位與地圖構(gòu)建(simultaneous localization andmapping ,SLAM)技術(shù)進(jìn)行地圖構(gòu)建和路徑規(guī)劃。該系統(tǒng)使用通用串行總線(universal serial bus,USB)攝像頭捕獲圖像,并通過開源計算機(jī)視覺庫(open source computer vision library,OpenCV) 進(jìn)行圖像處理。機(jī)械臂采用舵機(jī)云臺結(jié)構(gòu),通過智能機(jī)器人(smart intelligent robot,somtbot)控制板處理機(jī)械臂抓取的逆解,系統(tǒng)結(jié)構(gòu)框架如圖1 所示。
本系統(tǒng)能夠自動識別快遞并根據(jù)地區(qū)信息對快遞進(jìn)行分類,實現(xiàn)高效的快遞分揀。其整合了多種先進(jìn)技術(shù)和硬件結(jié)構(gòu),提高了倉儲物流管理的自動化水平,為物流行業(yè)提供了智能化解決方案。
1.1 硬件系統(tǒng)介紹
硬件系統(tǒng)使用樹莓派4B 來控制自分揀車。將計算機(jī)與搭載樹莓派4B 的車輛配置在同一個局域網(wǎng)絡(luò)中,確立主從連接。其中,機(jī)載樹莓派4B 作為主機(jī),計算機(jī)作為從機(jī)。該系統(tǒng)還使用陀螺儀傳感器進(jìn)行姿態(tài)解算[1],用于測量物流車在活動走廊內(nèi)行駛軌跡的對齊情況。
此外,Arduino 作為運動控制主節(jié)點,連接Arduino 與光電轉(zhuǎn)速計。將光電轉(zhuǎn)速計提供的計數(shù)數(shù)據(jù)通過串口傳輸至 Arduino 主板,然后利用比例積分微分(proportional integral derivative,PID)控制算法實現(xiàn)對電機(jī)的精確驅(qū)動。
機(jī)械臂采用somtbot 主板控制結(jié)合攝像機(jī)的視覺機(jī)械臂,視覺機(jī)械臂結(jié)構(gòu)如圖2 所示。
1.2 傳感器介紹
(1)深度相機(jī)。與激光雷達(dá)搭配的深度相機(jī)可提供深度數(shù)據(jù),用于生成二維柵格地圖。此外,該相機(jī)還可以掃描貨物箱上的條形碼以提取貨物信息,進(jìn)而控制機(jī)械臂的運動[1]。
(2)USB 攝像頭。USB 攝像頭可以連接到計算機(jī)或其他設(shè)備上的攝像頭,并且通過USB 接口進(jìn)行數(shù)據(jù)傳輸和控制。USB攝像頭可應(yīng)用于視頻會議、監(jiān)控、圖像識別等領(lǐng)域。在物流車前部安裝USB攝像頭可以采集周圍環(huán)境信息,為神經(jīng)網(wǎng)絡(luò)提供輸入數(shù)據(jù)源。
(3)激光雷達(dá)。通過發(fā)射激光束并測量激光束的反射來獲取目標(biāo)物體的距離和位置信息。激光雷達(dá)通常應(yīng)用于環(huán)境感知、避障、距離測量和地圖構(gòu)建等。
(4)慣性測量單元(inertial measurement unit,IMU)傳感器。IMU 傳感器可以測量物體的加速度和角速度,其還包括磁強(qiáng)計,用于檢測物體所處的方向。IMU 傳感器廣泛應(yīng)用于航空航天、汽車、物流車、虛擬現(xiàn)實等領(lǐng)域,提供姿態(tài)估計和運動跟蹤等功能。
(5)壓力傳感器。壓力傳感器是一種適用于測量壓力值的傳感器設(shè)備。其功能在于將壓力轉(zhuǎn)化為電信號,通常呈現(xiàn)為電壓、電流或頻率等輸出形式,進(jìn)而實現(xiàn)對壓力的監(jiān)測和控制。在機(jī)械臂的操作中,壓力傳感器位于前爪內(nèi)側(cè),貨物抓取中,壓力傳感器值升高,達(dá)到設(shè)定閾值時,代表貨物被夾緊,從而引發(fā)機(jī)械臂的搬運動作。
1.3 控制系統(tǒng)介紹
(1) 決策控制。考慮到ROS 的使用, 運行于輔助機(jī)器上的英偉達(dá)(NVIDIA)電腦與板載NVIDIA 電腦組合成決策控制系統(tǒng)。NVIDIA 電腦主要負(fù)責(zé)獲取底盤和傳感器數(shù)據(jù),并執(zhí)行部分算法操作。而ROS 從機(jī)在經(jīng)過配置后,通過主從方式與NVIDIA 電腦協(xié)同工作,在執(zhí)行高級算法中扮演關(guān)鍵角色。
(2)運動控制。驅(qū)動自分揀車運動控制的主控制器為Arduino?;赑ID 控制的穩(wěn)健性和易實現(xiàn)性的特點,運動控制單元采用PID 閉環(huán)控制。在PID 調(diào)整之前,光電編碼器可精確檢測航程。
1.4 執(zhí)行系統(tǒng)介紹
執(zhí)行系統(tǒng)主要分為驅(qū)動系統(tǒng)和抓取系統(tǒng)兩部分。驅(qū)動系統(tǒng)采用了4 個全向輪電機(jī),每個電機(jī)連接1 個全向輪。這種設(shè)計利用4 個驅(qū)動器,每個驅(qū)動器控制1 個電機(jī),可以實現(xiàn)物流車的全方位、多角度位移,從而提高了物流車在各種環(huán)境下的適應(yīng)性。抓取系統(tǒng)由多個舵機(jī)組成,搭配壓力傳感器,從而實現(xiàn)穩(wěn)定、準(zhǔn)確的貨物抓取。
2 軟件系統(tǒng)設(shè)計
在ROS 的下位控制器上, 含有兩個核心算法組件, 涵蓋了機(jī)器視覺和卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural networks,CNN)領(lǐng)域。這兩個算法組件通過調(diào)用位于工作目錄下相應(yīng)的軟件包以及手動修改相關(guān)設(shè)置文件,實現(xiàn)系統(tǒng)在貨架區(qū)域的自主移動[1],并在下位控制器插件中插入顯示屏進(jìn)行可視化顯示。OpenCV 內(nèi)置了圖像檢測組件,可用于訓(xùn)練QR 碼(二維碼)檢測模型。
3 主程序和算法
系統(tǒng)的主程序由軌跡識別模塊和建圖模塊構(gòu)成。在軌跡識別模塊中,基于邊緣路徑距離的概念,精細(xì)調(diào)整分類權(quán)重,從而提高路徑識別的精度和穩(wěn)定性。建圖模塊能夠充分利用 ROS 中的Gmapping 功能包,采用 Rao-Blackwellized 粒子濾波算法,結(jié)合激光、姿態(tài)數(shù)據(jù),以高效地創(chuàng)建準(zhǔn)確的二維網(wǎng)格地圖。通過整合這一算法,系統(tǒng)能夠在復(fù)雜環(huán)境中實現(xiàn)精確的地圖構(gòu)建和路徑規(guī)劃,為物流車的導(dǎo)航和定位提供穩(wěn)定的支持。
建圖完成后可以進(jìn)行自主導(dǎo)航巡向目的地。需要調(diào)用的功能包是move_base [1]。它是一個 ROS 導(dǎo)航工具包,用于導(dǎo)航的配置和執(zhí)行。
在 ROS 使用 TensorFlow 編寫 Python 程序來建立神經(jīng)網(wǎng)絡(luò)時,通常會遵循以下步驟。
(1)導(dǎo)入必要的庫和模塊。包括 TensorFlow 和ROS 相關(guān)的庫和模塊。
(2) 定義 ResNet 的結(jié)構(gòu)。通過 TensorFlow的應(yīng)用程序編程接口(application programminginterface,API) 創(chuàng)建神經(jīng)網(wǎng)絡(luò)模型。ResNet 是一種經(jīng)典的深度神經(jīng)網(wǎng)絡(luò)架構(gòu),通過殘差連接解決了梯度消失問題[2]。系統(tǒng)根據(jù)需要選擇合適的 ResNet版本,如 ResNet-50、ResNet-101 等。
(3)初始化網(wǎng)絡(luò)參數(shù)??梢允褂?TensorFlow 的內(nèi)置函數(shù)或手動編寫代碼生成指定范圍內(nèi)的正態(tài)分布隨機(jī)數(shù),從而完成參數(shù)初始化。
(4)編寫損失函數(shù)和優(yōu)化器。在訓(xùn)練時,使用TensorFlow 提供的優(yōu)化器來更新網(wǎng)絡(luò)參數(shù)以最小化損失函數(shù)[3]。
(5)加載訓(xùn)練數(shù)據(jù)和標(biāo)簽。開始訓(xùn)練模型。通??梢允褂肦OS 提供的數(shù)據(jù)采集節(jié)點來獲取傳感器數(shù)據(jù),并實時反饋給神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練。
在神經(jīng)網(wǎng)絡(luò)系統(tǒng)啟動后,確保ROS 從機(jī)與ROS 主機(jī)進(jìn)行無縫通信集成,實現(xiàn)ROS 從機(jī)與自動駕駛車輛底盤的實時連接,以便獲取與道路狀況相關(guān)的環(huán)境數(shù)據(jù)。每一個經(jīng)過標(biāo)注的訓(xùn)練樣本都會被分批發(fā)送到ROS 主機(jī),并進(jìn)行處理。這些經(jīng)過標(biāo)注的訓(xùn)練數(shù)據(jù)集會被有條不紊地引導(dǎo)穿過輸入層,然后經(jīng)過一系列復(fù)雜的卷積層、池化層和全連接層。
通過梯度下降算法不斷優(yōu)化卷積核和全連接層的權(quán)重,進(jìn)行迭代調(diào)整以達(dá)到系統(tǒng)最佳性能水平。如果準(zhǔn)確度與貝葉斯錯誤率之間存在重大偏差,則必須精細(xì)調(diào)整超參數(shù)并改進(jìn)算法。各種優(yōu)化算法如動量法、均方根傳遞(root mean squarepropagation,RMSprop) 算法和自適應(yīng)矩估計(adaptive moment estimation,Adam)算法等,可以進(jìn)一步優(yōu)化和增強(qiáng)整體性能指標(biāo)。
一旦神經(jīng)網(wǎng)絡(luò)的架構(gòu)設(shè)計達(dá)到最優(yōu)狀態(tài),其拓?fù)浣Y(jié)構(gòu)將呈現(xiàn)出極致的完備性,精心制作的權(quán)重文件將被順利傳輸至NVIDIA 計算平臺,準(zhǔn)備部署,并進(jìn)行精準(zhǔn)、高效的推理任務(wù)。
通過緊密集成的中央處理器(central processingunit,CPU)加速計算引擎,神經(jīng)網(wǎng)絡(luò)可以對實時傳入的環(huán)境數(shù)據(jù)進(jìn)行快速的推理和預(yù)測。這種高度并行化的計算能力使得系統(tǒng)能夠在毫秒級的時間內(nèi)對復(fù)雜的道路情況做出響應(yīng),確保車輛在各種復(fù)雜交通場景下能夠安全、準(zhǔn)確地行駛。
在運行時,神經(jīng)網(wǎng)絡(luò)將實時接收來自車輛傳感器的數(shù)據(jù),并配合ROS 系統(tǒng)完成數(shù)據(jù)處理、預(yù)測和決策。這種端到端的集成體現(xiàn)了深度學(xué)習(xí)在自動駕駛系統(tǒng)中的關(guān)鍵作用,使得車輛能夠快速、準(zhǔn)確地做出決策,以確保行駛的安全性和效率。
在整個過程中,系統(tǒng)將一直保持密切的監(jiān)控和反饋,實時檢測和解決潛在的問題,確保系統(tǒng)的穩(wěn)定性和可靠性。
4 實驗測試
4.1 物品識別實驗
基于ROS 的倉儲物流自分揀車開發(fā)完成后,首先進(jìn)行了識別環(huán)節(jié)的測試,確保攝像頭識別部分能夠穩(wěn)定、準(zhǔn)確地識別物品,從而為后續(xù)實驗測試做準(zhǔn)備。其次,在方形物塊上寫下不同字樣,代表不同物品,然后進(jìn)行識別測試。再次,為了確保識別精準(zhǔn)度達(dá)標(biāo),本文還測試了更多物品種類和識別次數(shù),以確保精準(zhǔn)性。最后,記錄并整理了整個識別測試過程中的數(shù)據(jù)情況,如表1 所示。通過對這些數(shù)據(jù)進(jìn)行分析,能夠評估攝像頭識別部分的性能表現(xiàn),及時發(fā)現(xiàn)問題并進(jìn)行調(diào)整優(yōu)化。這些數(shù)據(jù)對于后續(xù)實驗測試的順利進(jìn)行至關(guān)重要,可以幫助系統(tǒng)不斷改進(jìn)物品識別的準(zhǔn)確性和穩(wěn)定性,從而提高自分揀車的整體運行效率。經(jīng)過測試和數(shù)據(jù)分析,基于ROS 的倉儲物流自分揀車的識別精準(zhǔn)度達(dá)到了預(yù)期標(biāo)準(zhǔn),可以順利投入實際應(yīng)用。
4.2 物流分揀實驗
在識別精準(zhǔn)度達(dá)到預(yù)期后,本文進(jìn)行了物流分揀實驗。在本實驗中,研究人員給物塊標(biāo)注了名字,并使用盒子作為識別分揀區(qū)域。在實驗過程中,擺放了不同距離的物品,這些距離對應(yīng)的分揀區(qū)域位置也各不相同。研究發(fā)現(xiàn)自分揀車能夠成功完成分揀任務(wù),并且任務(wù)完成時間合理。圖3、圖4 分別為物品投放和識別分揀區(qū)域。
5 結(jié)論
本文設(shè)計的基于ROS 的倉儲物流自分揀車旨在提高物流業(yè)務(wù)的效率和準(zhǔn)確性。通過對上位機(jī)和下位機(jī)的合理配置,結(jié)合SLAM 技術(shù)、激光雷達(dá)路徑規(guī)劃,以及視覺識別技術(shù),設(shè)計了智能化的自分揀車系統(tǒng)。該系統(tǒng)可廣泛應(yīng)用于電商倉庫、物流中心等場景,為提升物流行業(yè)的自動化水平做出了貢獻(xiàn)。
在設(shè)計和實驗的過程中,自分揀車的性能受到硬件設(shè)備、軟件算法和系統(tǒng)交互的綜合影響。因此,針對倉儲物流自分揀車,未來的研究方向可以集中在提升硬件設(shè)備的穩(wěn)定性和靈活性、采用優(yōu)化算法以提高識別和規(guī)劃的精度,以及改進(jìn)用戶界面和交互體驗等方面。此外,通過不斷改進(jìn)自分揀車的功能和性能,可以滿足不斷變化的市場需求,進(jìn)而提升物流效率、降低成本,實現(xiàn)智能化管理,促進(jìn)物流行業(yè)的進(jìn)步和發(fā)展。
參考文獻(xiàn)
[1] 王昱琪,熊紹托,齊巖松,等. 物流分揀機(jī)器人設(shè)計[J]. 科技風(fēng),2022(36):1-3.
[2] 章軻. 基于弱監(jiān)督學(xué)習(xí)的細(xì)粒度圖像分類算法研究[D]. 杭州:杭州電子科技大學(xué),2022.
[3] 陳澤川. 潛在句子層級結(jié)構(gòu)的自適應(yīng)表征學(xué)習(xí)方法研究[D]. 廣州:廣東工業(yè)大學(xué),2020.