楊建海 王金碩 劉明陽(yáng) 余江 鞏榮芬



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