王昱琪 熊紹托 齊巖松 韋隆圣 張紫軒
上海工程技術(shù)大學(xué)機械與汽車工程學(xué)院 上海 201600
隨著網(wǎng)絡(luò)的普及以及電商平臺的建立,信息化使如今的物流行業(yè)飛速發(fā)展,包裹分揀環(huán)節(jié)的任務(wù)量和錯誤率逐漸上升。因此,設(shè)計一種可以自動分揀包裹的機器人對實現(xiàn)物流行業(yè)的智能化具有重要意義。目前,依賴多傳感器進行自主移動的機器人的研究體系已較為成熟,人工智能算法不斷被提出并優(yōu)化。與軟件系統(tǒng)發(fā)展相協(xié)調(diào)的,是體積小、算力高的嵌入式硬件系統(tǒng)持續(xù)更新。
在過去的研究中,眾多文獻都提到了自主移動機器人。文獻[1]研究提出了一種基于高斯分布重采樣的Rao-Blackwellized粒子濾波SLAM算法,改善了因缺乏粒子多樣性而造成的估計不精確問題。文獻[2]研究得出將機器人SLAM和目標狀態(tài)估計作為整體進行粒子濾波估計,進而提高了目標狀態(tài)估計的準確性。文獻[3]研究得出改變采樣方式和濾波條件對蒙特卡洛算法進行改進后實時定位精度較高、抗干擾性較強。文獻[4]研究得出在每個卷積層后面添加BN層可以增強規(guī)范性,通過遷移學(xué)習(xí)可以有效提升模型的泛化能力。文獻[5]研究得出根據(jù)機器人所運輸?shù)奈锪骷馁|(zhì)量和機械臂上各連桿的尺寸可以逆向計算求得連桿所受的力和力矩。文獻[6]探討了激光雷達測距與建圖方法,并提出了兩種改進算法。文獻[7]提出了從雷達點云中提取面元表達環(huán)境以實現(xiàn)室內(nèi)精確定位和建圖的方法。文獻[8]研究分析了傳統(tǒng)的三種路徑跟蹤方式,提出了改進后的基于神經(jīng)網(wǎng)絡(luò)的移動機器人路徑識別方法,通過實驗表明控制機器人使其按照所識別的路徑曲率進行跟蹤,可以提高機器人的路徑跟蹤精度。
圖1為系統(tǒng)硬件概述。分揀站點內(nèi)部有多臺計算機和機器人,機器人以NVIDIA Jetson TX2作為控制系統(tǒng)。計算機與機載NVIDIA Jetson TX2配置在同一局域網(wǎng)絡(luò)下并建立主從關(guān)系,計算機作為從機,機載NVIDIA Jetson TX2作為主機。
圖1
將NVIDIA Jetson TX2與用于測量障礙物點云數(shù)據(jù)的激光雷達,用于收集深度信息、進行圖像識別以及二維碼識別的視覺傳感器,用于提供外部視覺位姿估計的IMU傳感器,用于測量機器人在運動通道上與通道邊緣距離的超聲波傳感器,用于測量機械臂夾持狀態(tài)的壓力傳感器連接。由Arduino充當運動控制中心,Arduino與光電碼盤相連,光電碼盤通過串口為板載計算機提供里程計數(shù)據(jù),程序通過PID(比例積分微分)運動控制算法實現(xiàn)對電機的精準驅(qū)動。該機器人配備了一個電源系統(tǒng),用于電能分配并為決策單元、運動控制單元以及執(zhí)行單元供電。
機器人系統(tǒng)包括:(1)深度相機,與激光雷達相配合的深度攝像頭可以為創(chuàng)建二維柵格地圖提供深度信息。此外,在匹配貨物時通過掃描貨箱上的二維碼提取貨物信息,進而控制機械臂動作。(2)USB相機,機器人機身前方固定的USB相機可以收集環(huán)境信息作為神經(jīng)網(wǎng)絡(luò)輸入端數(shù)據(jù)。(3)激光雷達,當機器人在快遞站點的貨架間移動時,激光雷達用于建立地圖并根據(jù)地圖進行自主定位和規(guī)劃路徑。(4)IMU傳感器,作用是提供位姿估計,其內(nèi)由三個三軸傳感器構(gòu)成,分別是加速度計、陀螺儀和磁力計,能夠感應(yīng)線性加速度、角旋轉(zhuǎn)速度和磁場矢量。(5)超聲波傳感器,提供機器人距離道路邊緣的距離信息。由于神經(jīng)網(wǎng)絡(luò)在達到最優(yōu)化之前會經(jīng)歷神經(jīng)元權(quán)重與卷積核不斷迭代調(diào)整的過程,因此提高初期的分類正確率尤為關(guān)鍵。根據(jù)實驗結(jié)果人為調(diào)整一個距離閾值,當距離大于該閾值時,增加直行結(jié)果的權(quán)重;當距離小于等于該閾值的時候,增加轉(zhuǎn)向結(jié)果的權(quán)重,可以提高神經(jīng)網(wǎng)絡(luò)分類的準確率。(6)壓力傳感器,當機械臂前爪內(nèi)側(cè)的壓力傳感器達到閾值并被觸發(fā)后,視為貨物被夾緊,機械臂開始搬運。
控制系統(tǒng)主要由兩部分組成。(1)決策控制:由運行ROS的從機與板載的NVIDIA計算機組成,NVIDIA計算機主要負責采集底盤與傳感器信息,并實現(xiàn)部分算法,而ROS從機經(jīng)過配置之后與NVIDIA計算機以主從方式工作,并負責執(zhí)行高級算法。(2)運動控制:以Arduino為主控制器的運動控制系統(tǒng)。由于PID控制具有較好的魯棒性并且易于實現(xiàn),因此運動控制單元采用PID閉環(huán)控制,光電碼盤在PID調(diào)節(jié)之前可以精確測量里程信息。
執(zhí)行系統(tǒng)主要包含兩部分。一是三軸全向輪電機驅(qū)動系統(tǒng),即驅(qū)動單元由一個驅(qū)動器和三個電機組成,每個電機連接一個全向輪。該方式可以控制機器人的前進、后退、轉(zhuǎn)向、旋轉(zhuǎn)、平移,增加了機器人運動的靈活性。二是抓取貨物的多自由度機械臂,由多個舵機通過連接擴展板上不同的端口,在壓力傳感器的幫助下,穩(wěn)定抓取不同尺寸的貨物。
該機器人由可充電鋰聚合物電池供電,并通過一種簡單的電池管理系統(tǒng)實現(xiàn)。電源系統(tǒng)可以合理地進行電能分配并保證兩組24V、2600mAh的電池均勻放電,保證機器人在較長時間內(nèi)運行。它們被安置在固定于機器人載物臺下方的電池箱中,以便從機身上拆卸。其中一個電池組連接到電源模塊,另外一個電池組連接到電機驅(qū)動器。
如圖2所示,提出了系統(tǒng)的軟件概述。首先,在ROS從機上,有兩個控制高級算法的部分,分別是計算機視覺和卷積神經(jīng)網(wǎng)絡(luò)。其中,通過調(diào)用工作空間下的對應(yīng)功能包和手動更改相關(guān)配置文件實現(xiàn)在貨架區(qū)域自主移動,其效果可以在從機的插件中可視化顯示。TensorFlow的內(nèi)置函數(shù)簡化了搭建和調(diào)整神經(jīng)網(wǎng)絡(luò)的過程。OpenCV庫中內(nèi)置了圖像識別模塊,可以訓(xùn)練二維碼識別模型。在主機上應(yīng)用了如下的功能包,分別是用于激光雷達數(shù)據(jù)采集的rplidar_ros,用于攝像頭數(shù)據(jù)采集的astra_camera和usb_camera,用于imu數(shù)據(jù)采集的9 dof_imu,用于里程計數(shù)據(jù)采集的ros_arduino。Arduino通過PID進行調(diào)速。
圖2
如圖3概括了機器人的主程序。該程序由兩個主要模塊構(gòu)成,分別是SLAM模塊和路徑識別模塊。路徑識別模塊中將與道路邊緣距離作為調(diào)整分類權(quán)重的依據(jù)。SLAM模塊通過調(diào)用相應(yīng)功能包完成自主導(dǎo)航。
兩種主要算法的實現(xiàn)過程:首先說明創(chuàng)建柵格地圖的方式。該機器人利用ROS提供的Gmapping包來生成地圖。該功能包集成了Rao-Blackwellized粒子濾波算法,可以根據(jù)激光數(shù)據(jù)和姿態(tài)數(shù)據(jù)建立一個由網(wǎng)格構(gòu)成的2D地圖。
建圖完成之后可以進行自主導(dǎo)航。自主導(dǎo)航需要調(diào)用的功能包是move_base,move_base提供了ROS導(dǎo)航的配置和運行接口。它主要分為全局路徑規(guī)劃和本地路徑規(guī)劃兩個部分。該功能包可以配置四個文件,分別是:(1)通用地圖配置文件,該文件可以設(shè)置檢測障礙物以及自由空間的最大范圍,與障礙物的最小距離以及代價參數(shù)等。(2)全局規(guī)劃配置文件,該文件可以設(shè)置全局代價地圖的參考系、地圖更新頻率和分辨率等信息。(3)本地規(guī)劃配置文件,該文件用來設(shè)置本地代價地圖的相關(guān)參數(shù)。(4)本地規(guī)劃器設(shè)置,該文件可以設(shè)置行進轉(zhuǎn)彎速度以及速度和加速度的閾值。導(dǎo)航過程中,我們需要調(diào)用amcl功能包完成自主定位功能,amcl功能包提供了自適應(yīng)蒙特卡洛定位算法,可以根據(jù)建成的地圖模型使用粒子濾波器估計機器人位置姿態(tài)。
以下說明建立神經(jīng)網(wǎng)絡(luò)的方式,在ROS從機上,以TensorFlow為框架編寫Python程序,該任務(wù)中擬采用經(jīng)典的ResNet網(wǎng)絡(luò)進行損失迭代,初始化過程中的所有參數(shù)由特定域內(nèi)的正態(tài)分布的隨機數(shù)構(gòu)成。
初始化神經(jīng)網(wǎng)絡(luò)后,需通過ROS從機控制機器人底盤收集路況環(huán)境信息并人為給予每個訓(xùn)練數(shù)據(jù)標簽,將所有帶標簽的訓(xùn)練集分成若干束發(fā)送到ROS主機上。訓(xùn)練集首先進入輸入層中,之后經(jīng)過卷積——池化——全連接層。算法會利用梯度下降法不斷迭代調(diào)整卷積層的卷積核以及全連接層的神經(jīng)元權(quán)重,若最終準確率與貝葉斯錯誤率相差較大,需要調(diào)整超參數(shù)和優(yōu)化算法。優(yōu)化算法可以參考Momentum、RMSprop以及Adam等。超參數(shù)調(diào)整則包括正則化、歸一化、卷積、激活等過程。神經(jīng)網(wǎng)絡(luò)建立完畢后,權(quán)重文件會被發(fā)送給NVIDIA計算機,使機器人具備路徑識別能力。
圖3
本文設(shè)計了一種可以在物流分揀站點自動化搬運貨物的機器人。這種設(shè)計方式結(jié)合了傳統(tǒng)的多傳感器協(xié)同與新興的人工智能算法,使機器人效率達到最大化,為物流分揀這一流程提供了新的思路。不足的是機器人成本稍高,且算法的優(yōu)化需要周期進行調(diào)整。因此,在實際應(yīng)用前需評估其經(jīng)濟價值并思考提高前期識別準確率的方式。