李詣坤,韋思亮
(1.東北大學 信息科學與工程學院,沈陽 110819;2.中國電力工程顧問集團 華北電力設(shè)計院有限公司,北京 100120)
由于機器人在感知和操作上的快速發(fā)展能夠在最大程度上滿足倉庫搬運作業(yè)的自動化要求,因此將搬運機器人應用到倉庫環(huán)境中,以實現(xiàn)倉庫的無人化管理與運行,提高整個倉庫工作的可擴展性和穩(wěn)健性。無人倉就是利用自動立體存儲、3D視覺識別、自動包裝、人工智能、物聯(lián)網(wǎng)等先進技術(shù),達成各種設(shè)備、機器、系統(tǒng)間的高效協(xié)同。無人倉的普及提高了倉庫的管理與運行效率,同時也為機器人提供了工作條件[1]。用于無人倉搬運工作的機器人是一種新型移動機器人,在倉庫中鋪設(shè)磁軌、導航路線、定位信標等指示裝置,結(jié)合運動控制、任務規(guī)劃、傳感器等技術(shù)手段,根據(jù)所提供的信息精確定位與規(guī)劃路徑,從而順利運輸可移動貨架,使工作人員與貨架之間的聯(lián)系更加緊密。
為了完成復雜的無人倉搬運工作,降低單個機器人的任務量,在無人倉采用多搬運機器人協(xié)同工作的模式。與單個搬運機器人相比,多搬運機器人能夠開展大量的機器人協(xié)同工作,對不完全、不確定的信息進行處理,從而完成更復雜的工作任務。在工作環(huán)境改變或系統(tǒng)局部失效的情況下,多個搬運機器人可以通過自身的組織功能和協(xié)同機制,重新建立起彼此間的協(xié)同關(guān)系。多搬運機器人之間的協(xié)同更符合現(xiàn)代先進制造系統(tǒng)對柔性、智能化、網(wǎng)絡(luò)化的需求,使其自動化水平得到了全面的提升。
為了避免多搬運機器人在工作過程中發(fā)生碰撞,需要對每個搬運機器人的工作軌跡進行規(guī)劃,設(shè)計無人倉多搬運機器人協(xié)同作業(yè)軌跡自動控制方法,保證各個搬運機器人的實際軌跡與規(guī)劃軌跡一致?,F(xiàn)階段發(fā)展較為成熟的無人倉使用的多搬運機器人協(xié)同作業(yè)軌跡自動控制方法也有很多,例如文獻[2]提出多倉儲機器人協(xié)同路徑規(guī)劃與作業(yè)避碰控制方法,以蟻群算法為基礎(chǔ)設(shè)計新啟發(fā)式函數(shù),結(jié)合路徑實際參數(shù)與可選節(jié)點的數(shù)量設(shè)計多倉儲機器人協(xié)同作業(yè)避障規(guī)則,并對信息素進行更新,以此尋找最優(yōu)避障路徑,根據(jù)尋優(yōu)結(jié)果控制機器人在該條路徑上行進。文獻[3]提出基于Udwadia-Kalaba理論的協(xié)作機器人軌跡跟蹤控制方法。利用Udwadia-Kalaba理論設(shè)置協(xié)作機器人運動軌跡尋優(yōu)過程中的約束條條件,以此確定協(xié)作機器人運動過程中存在的不確定因素,以此設(shè)計一個產(chǎn)生近似約束的控制器,利用該控制器實現(xiàn)協(xié)作機器人軌跡跟蹤控制。文獻[4]提出雙機協(xié)同作業(yè)機器人的協(xié)作工作空間設(shè)計與軌跡控制方法,該方法利用D-H法建立機器人坐標系,并對空間位姿進行變化處理,結(jié)合運動學模型求解結(jié)果與蒙特卡羅法實現(xiàn)協(xié)作工作空間設(shè)計,通過確定軌跡控制影響因素進行軌跡控制。
然而在實際控制過程中存在明顯的控制效果不佳的問題,主要體現(xiàn)在搬運機器人碰撞以及搬運軌跡運行偏差兩個方面,為此需要對無人倉多搬運機器人協(xié)同作業(yè)軌跡自動控制方法進行優(yōu)化設(shè)計,以期能夠提高控制方法的控制效果,間接地提高無人倉搬運工作的執(zhí)行效率。
無人倉多搬運機器人協(xié)同作業(yè)軌跡的規(guī)劃與控制以實際環(huán)境為背景,將路徑信息、障礙物和移動機器人的位置等信息提取出來,并將其建模成數(shù)學語言,從而為下一步的路徑搜索和路徑平滑奠定基礎(chǔ)。為了解決多搬運機器人的路徑規(guī)劃問題,構(gòu)建無人倉庫的環(huán)境情景是非常有必要的。在優(yōu)化設(shè)計的軌跡自動控制方法中采用柵格圖建模法,即將無人倉的工作環(huán)境分成若干塊大小相等的格子,并對有障礙物和沒有障礙物的網(wǎng)格進行賦值,然后再根據(jù)這些網(wǎng)格進行路徑搜索。柵格圖建模的核心是網(wǎng)格的分辨率,如果網(wǎng)格的分辨率太低,很難對障礙物進行清晰描述,如果網(wǎng)格的分辨率過高,則會增加計算量,所以需要將網(wǎng)格的分辨率設(shè)定在一個合理的區(qū)間內(nèi)[2]。網(wǎng)格模型的建立方法簡單,且能更精確地獲得路徑信息。以無人倉任意一角作為原點建立直角坐標系,坐標系的水平和豎直方向分別表示的是無人倉的長度和寬度,設(shè)組成無人倉環(huán)境場景的柵格邊長為lgrid,則橫豎兩個坐標系上設(shè)置的柵格數(shù)量分別為:
(1)
式中,lx和ly分別為無人倉的長度和寬度數(shù)據(jù),INT()為取整函數(shù)。在確定無人倉環(huán)境柵格數(shù)量后,對構(gòu)建直角坐標系中的柵格進行編號,編號過程可以量化表示為:
(2)
其中:(xi,yi)為無人倉環(huán)境中的任意一點,xmax和ymax為坐標系中柵格坐標最大值在水平和豎直兩個方向上的分量[3]。根據(jù)無人倉環(huán)境場景中各個坐標位置上貨架與貨物的放置情況,對各個柵格空間進行賦值,賦值結(jié)果可以表示為:
(3)
式(3)中,P為無人倉中貨架與貨物放置空間集合。若計算得出任意坐標位置的p(xi,yi)取值為1,則證明當前柵格表示的是障礙區(qū)域,也就是無人倉中的貨架位置,否則為空閑位置,也就是多搬運機器人的可通行區(qū)域。
從組成結(jié)構(gòu)來看,搬運機器人由移動裝置、驅(qū)動器和各種類型的傳感器組成,每一個移動裝置都有3個方向的完全自由度,能完成前后平移、左右平移和任意角度轉(zhuǎn)動[4]。無人倉移動機器人采用麥克納姆輪結(jié)構(gòu),內(nèi)部有4個麥克納姆輪,它使車輪左右滾動,從而使每個車輪產(chǎn)生一個與輪基對角軸基本呈直角的作用力,改變轉(zhuǎn)速和轉(zhuǎn)動方向,進而使機器人能夠在任意方向上運動。圖1為搬運機器人的基本組成結(jié)構(gòu)。
圖1 無人倉搬運機器人組成結(jié)構(gòu)圖
搬運機器人控制系統(tǒng)工作流程可以分為兩個部分:第一部分是利用可視化的方法識別貨物的前部和邊角,將目標貨物的位置信息傳輸給控制器,然后由控制器確定相應的控制策略,控制連接移動機器人的轉(zhuǎn)鎖與貨柜的拐角[5]。第二部分是在搬運機器人將貨物提升后,由可視化系統(tǒng)進行識別和判斷,由控制器根據(jù)車輛行駛路線進行控制,最后將貨物運送到指定位置。結(jié)合機器人的運動與搬運操作原理,構(gòu)建對應的運動學模型并進行正逆運動學的分析。無人倉搬運機器人在XYZ坐標系下的運動學方程可以表示為:
(4)
式(4)中,x和y表示的是搬運機器人各個組成部件在水平和豎直方向上的位置坐標,φ為部件的姿態(tài)角,另外變量ν表示的是搬運機器人的速度指令。在電機的驅(qū)動下,搬運機器人及被搬運貨物的動力學模型可以描述為:
(5)
式中,變量H(q)、Fcentr(q)和μ(q)分別表示的是機器人的慣性矩陣、離心力矢量以及關(guān)節(jié)摩擦力矢量,Grobot(q)為搬運機器人重力矢量,γa表示的是驅(qū)動關(guān)節(jié)的力矩矢量,JT為關(guān)節(jié)轉(zhuǎn)矩,F(xiàn)Contact為搬運機器人末端執(zhí)行器與環(huán)境之間的接觸力,Ho為貨物目標的慣性矩陣,F(xiàn)centr(x)和Ggoods對應的是貨物目標的離心力矢量和重力矢量,F(xiàn)Contact,robot和FContact,env表示的是貨物目標與機器人以及環(huán)境之間的接觸力矢量[6]。融合運動學模型與動力學模型的構(gòu)建結(jié)果,將其導入到搬運機器人組成結(jié)構(gòu)中,得出無人倉內(nèi)單個搬運機器人數(shù)學模型的構(gòu)建結(jié)果,將多個搬運機器人數(shù)學模型進行組合。
從搬運機器人位置和姿態(tài)兩個方面確定搬運機器人的初始狀態(tài),利用搬運機器人內(nèi)置的測距傳感器設(shè)備進行定位[7]。測距傳感器分別向水平和豎直兩個方向發(fā)射定位信號,得出的測距結(jié)果可以表示為:
(6)
其中:vc為定位信號在無人倉環(huán)境中的傳播速度,而Δt表示的是測距傳感器接收到反饋信號的時間,計算結(jié)果角標i的取值對應的是定位信號的傳播方向。當i取值為x時,得出結(jié)果即為當前搬運機器人位置的橫坐標,同理i取值為y時得出機器人縱坐標的具體取值[8]。由于無人倉環(huán)境中存在多個搬運機器人和貨架,因此在搬運機器人位置檢測過程中需要確定定位信號的傳輸終端位置,以保證位置檢測結(jié)果的準確度。搬運機器人的姿態(tài)也就是機器人各個組成關(guān)節(jié)的角度,其中俯仰角和橫滾角的檢測結(jié)果如下:
(7)
其中:δx和δy分別為角度傳感器在兩個方向上的測量值,θpitch和θroll對應的是任意一個搬運機器人關(guān)節(jié)俯仰角和橫滾角的檢測結(jié)果[9]。由于搬運機器人處于實時工作的狀態(tài),其實時位置和姿態(tài)角呈現(xiàn)出動態(tài)變化趨勢,因此在位姿檢測結(jié)果中設(shè)置傳感器的自動檢測時間間隔和工作頻率,完成實時位姿的自動檢測工作。
搬運任務分配是多作業(yè)機器人在無人倉環(huán)境中的組織形式和運行機制的集中體現(xiàn),是完成搬運作業(yè)的基本依據(jù)。多搬運機器人的配置機制是否合理,對其完成任務的效率高低產(chǎn)生重要的影響[10]。遵循就近原則將搬運任務分配給多個搬運機器人,利用式(8)計算貨物當前位置與多個搬運機器人之間的距離。
(8)
其中:(xrobot,yrobot)為搬運機器人當前位置坐標的檢測結(jié)果,(xgoods,ygoods)為待搬運貨物的位置,將式(8)的最終計算結(jié)果按照降序順序進行排列。在實際的任務分配過程中,判斷距離貨物最近搬運機器人的工作狀態(tài),具體的判斷內(nèi)容包括:搬運機器人是否能夠正常執(zhí)行搬運任務、當前搬運機器人待執(zhí)行的搬運任務量是否高于機器人最高任務容量的80%,若距離最近的搬運機器人存在運行故障,或已有的搬運任務量達到飽和狀態(tài),則選擇下一個搬運機器人作為執(zhí)行設(shè)備,按照上述內(nèi)容進行判斷,重復執(zhí)行上述操作,直到完成所有搬運任務的分配[11]。在任務分配過程中,實時更新搬運任務集合,對新增任務進行分配,并添加到搬運機器人執(zhí)行任務隊列末端。
在工作狀態(tài)下,搬運機器人接收到搬運指令后,在避免碰撞其他搬運機器人和貨架的情況下,機器人移動到待搬運貨物當前位置,將其移動到機器人存儲倉中,搬運機器人移動至貨物的目的地,完成搬運工作[12]。因此需要規(guī)劃的多搬運機器人協(xié)同作業(yè)軌跡包括機器人到達目標貨品位置的軌跡和到達貨品移動目的地的軌跡,保證多個搬運機器人作業(yè)軌跡之間不存在重合,且不與貨架位置重合[13]。為了保證多搬運機器人協(xié)同作業(yè)軌跡的規(guī)劃質(zhì)量,采用蟻群算法進行軌跡規(guī)劃,具體的規(guī)劃流程如圖2所示。
圖2 多搬運機器人協(xié)同作業(yè)軌跡規(guī)劃流程圖
蟻群算法模擬螞蟻覓食,可以根據(jù)路徑上的信息素的濃度來進行啟發(fā)式的運動,在初始狀態(tài)下無信息素的干擾,隨意地選擇一條路線去覓食,而螞蟻的數(shù)目越多,所走的路線就越多[14]。假設(shè)兩種螞蟻的信息素濃度一致,在相同的環(huán)境中,信息素的揮發(fā)速率也一致,在相同的情況下,螞蟻在短途中所保留的信息素的揮發(fā)程度要比在長路徑上低,因此,在短途中信息素的含量會更高,而在其他路線上的信息素含量則會降低,從而使蟻群在短路線上選擇最佳路線[15]。總之,蟻群中的螞蟻都會朝最短的方向聚集,這是一種積極的反饋,而最佳的路徑就是由這些信息素的積極反饋作用而產(chǎn)生的。假設(shè)螞蟻從無人倉環(huán)境模型中的柵格j移動到柵格k的概率為:
(9)
為了保證多個搬運機器人能夠按照規(guī)劃的作業(yè)軌跡執(zhí)行,為協(xié)同作業(yè)軌跡自動控制方法提供硬件支持,需設(shè)計一個控制器設(shè)備,控制器的基本結(jié)構(gòu)如圖3所示。
圖3 搬運機器人協(xié)同作業(yè)軌跡控制器
圖3表示的作業(yè)軌跡控制器用來完成接收控制命令、接收計數(shù)脈沖、生成速度信息以及發(fā)出PWM信號等任務。從圖3中可以直觀看出,控制器內(nèi)部設(shè)有CPU控制、電機驅(qū)動與速度檢測、地址編碼、重置與低電壓檢測與無線通信等模塊,其中中央處理器則是以單片機為中心,對通信模塊傳送的訊息進行處理,轉(zhuǎn)換為指令字,并接受編碼器發(fā)出的計數(shù)脈沖,通過運算得到目前的速度。該控制模塊還可劃分為編碼器和驅(qū)動程序兩部分,其中編碼模塊的主要功能是提供計數(shù)脈沖、電機旋轉(zhuǎn)方向等,并提供PID控制器的反饋,以確保電機在系統(tǒng)所需的條件下運行。而驅(qū)動模塊的功能是把CPU輸出的PWM信號轉(zhuǎn)化為模擬電壓,從而驅(qū)動DC電動機的工作[17]。在控制器中增加通信模塊,以確保協(xié)同工作軌跡控制器能接收到控制命令。通信模塊的設(shè)計主要包括兩個方面,分別為路徑規(guī)劃通信和任務協(xié)同通信。在路徑規(guī)劃中,采用點對點通信,以實現(xiàn)在機器人個體之間的狀態(tài)信息的交流。根據(jù)機器人的優(yōu)先順序,確定移動方向,并進行相應的路線規(guī)劃。任務協(xié)同通信過程中,在任務發(fā)現(xiàn)之前,將所有機器人數(shù)據(jù)存入公共存儲區(qū)中,當任一機器人發(fā)現(xiàn)任務且不能獨立完成時進行廣播通信,告知所有搬運機器人任務的地點,處于空閑狀態(tài)的機器人會接收到廣播來的信息,在任務接收成功后執(zhí)行相應任務[18]。當單個搬運機器人的負載能力能夠完成這個較大任務時,利用控制器中的通信機制,調(diào)整多個搬運機器人進行躲避障礙使任務順利完成。最終將優(yōu)化設(shè)計的協(xié)同作業(yè)軌跡控制器安裝在多搬運機器人的關(guān)節(jié)位置上。
將搬運機器人的實時位姿檢測結(jié)果與規(guī)劃的協(xié)同作業(yè)軌跡進行比對,得出機器人軌跡控制量的計算結(jié)果為:
(10)
計算得出Δχposition和Δχangle分別為位置控制量和姿態(tài)角控制量,(xtrajectory,ytrajectory)為規(guī)劃軌跡中的節(jié)點,另外θtarget,pitch和θtarget,roll對應的是規(guī)劃軌跡節(jié)點俯仰角和橫滾角的目標值。將式(10)的控制量計算結(jié)果輸入到搬運機器人協(xié)同作業(yè)軌跡控制器中,根據(jù)控制量輸入數(shù)據(jù)生成多搬運機器人的控制指令,保證多搬運機器人始終在規(guī)劃的作業(yè)軌跡上[19]。若式(10)的計算結(jié)果為負值,則機器人的位置控制方向為實際行進方向的反方向,姿態(tài)角的控制方向為逆時針方向,而控制量計算結(jié)果為正值,則向機器人的行進方向以及順時針方向分別調(diào)整機器人的位置坐標和姿態(tài)角。根據(jù)實時位姿的調(diào)整結(jié)果調(diào)整控制指令,直到多搬運機器人完成搬運任務為止。則控制指令調(diào)度監(jiān)測算法流程如圖4所示。
圖4 控制指令調(diào)度監(jiān)測算法
實驗選擇的無人倉為某零售企業(yè)的貨物存儲倉庫,該倉庫共設(shè)置7個貨架,100個儲位,每個儲位大小相同,均為40 cm*40 cm。無人倉環(huán)境的初始布設(shè)情況如圖5所示。
圖5 無人倉作業(yè)環(huán)境
在忽略動態(tài)障礙物以及貨物的情況下,可確定無人倉中可供通行的路線,也就是搬運機器人作業(yè)軌跡的規(guī)劃范圍。為了保證搬運機器人的正常運行,實驗環(huán)境中設(shè)置了5個充電插口,能夠同時給5個搬運機器人提供電力支持。另外,無人倉環(huán)境實現(xiàn)了無線通信網(wǎng)絡(luò)的全覆蓋,保證搬運指令、控制指令能夠被成功接收[20]。企業(yè)采用周期性補充庫存方式,在上一周期結(jié)束時,依據(jù)當前庫存與預期庫存之間的差異,決定下一階段的庫存儲備,以及每一批產(chǎn)品所占的庫存空間。
在實驗環(huán)境中設(shè)置5臺型號為LB3150-H-6的搬運機器人作為控制對象,該型號的搬運機器人頂部安裝了電動云臺和深度相機,用來輔助完成搬運任務。選擇搬運機器人的車身長度為0.46 m,自重約為8.5 kg,其安全行駛距離為2.0 m。在工作狀態(tài)下,搬運機器人的行駛速度、拐彎速度和停車速度分別為1 m/s、0.25 m/s和0.5 m/s,允許在揀選臺停留的最長時間為45 s,一次能夠完成10 kg以下貨物的搬運。
根據(jù)無人倉的作業(yè)內(nèi)容,分別從入庫、出庫以及貨物轉(zhuǎn)移3個方面設(shè)置機器人的搬運任務,其中部分任務的生成情況如表1所示。
表1 無人倉搬運任務明細
表1中入口與出口位置為同一位置。根據(jù)無人倉搬運任務的設(shè)置內(nèi)容,生成搬運機器人作業(yè)軌跡的規(guī)劃結(jié)果,其中部分作業(yè)軌跡的規(guī)劃結(jié)果如圖6所示。
圖6 多搬運機器人協(xié)同作業(yè)規(guī)劃軌跡
以圖6表示的規(guī)劃作業(yè)軌跡作為機器人的控制目標。
充分考慮無人倉的運作狀態(tài),在測試實驗中設(shè)置兩個實驗場景,場景一中無人倉內(nèi)除貨架和多搬運機器人外無其他障礙物,而場景二在場景一的基礎(chǔ)上,模擬貨物掉落現(xiàn)象,設(shè)置3個靜態(tài)障礙物,障礙物大小均為12 cm*12 cm,障礙物所在位置坐標分別為(70,290)、(90,30)和(210,170)。在上述兩個場景下執(zhí)行相同的搬運任務,同時啟動多搬運機器人及其協(xié)同作業(yè)軌跡自動控制程序,得出最終的控制結(jié)果,如圖7所示。
圖7 多搬運機器人協(xié)同作業(yè)軌跡控制結(jié)果
按照上述流程驅(qū)動多搬運機器人完成所有的搬運任務,并記錄各個機器人的軌跡數(shù)據(jù)。
實驗設(shè)置多搬運機器人位置控制偏差、姿態(tài)角控制偏差以及碰撞次數(shù)作為反映優(yōu)化設(shè)計方法控制效果的測試指標,其中控制誤差指標的數(shù)值結(jié)果如下:
(11)
式中,(xactual,yactual)為優(yōu)化設(shè)計方法控制下搬運機器人的實際軌跡節(jié)點坐標,θactual為控制對象的實際運行角度。另外碰撞次數(shù)指標的數(shù)值結(jié)果為:
(12)
其中:nh、nr和nz對應的是搬運機器人與貨架、其他搬運機器人以及靜態(tài)障礙物之間的碰撞次數(shù),變量nrobot和nnode分別為設(shè)置的搬運機器人數(shù)量和軌跡節(jié)點數(shù)量。為保證無人倉多搬運機器人協(xié)同作業(yè)軌跡自動控制方法的優(yōu)化設(shè)計效果,要求控制方法下多搬運機器人的位置控制偏差不得大于5 cm,姿態(tài)角控制偏差不得高于1°,碰撞次數(shù)不得高于8次。
通過相關(guān)數(shù)據(jù)的統(tǒng)計,得出兩個實驗場景下設(shè)計方法控制誤差的測試結(jié)果,如表2所示。
表2 優(yōu)化設(shè)計方法作業(yè)軌跡自動控制誤差測試數(shù)據(jù)表
將表2中的數(shù)據(jù)代入到式(11)中,計算得出場景一中位置控制誤差與姿態(tài)控制誤差的平均值分別為3.4 cm和0.05°,而場景二中位置與姿態(tài)的平均控制誤差分別為1.14 cm和0.05°,均低于預設(shè)值。另外通過式(12)的計算得出控制方法下多搬運機器人碰撞次數(shù)的測試結(jié)果,如圖8所示。
圖8 控制方法下多搬運機器人碰撞次數(shù)測試結(jié)果
從圖8中可以直觀看出,通過無人倉多搬運機器人協(xié)同作業(yè)軌跡自動控制方法的應用,多搬運機器人的實際碰撞次數(shù)的最大值為6次,低于預設(shè)值。
將文獻[2]方法、文獻[3]方法、文獻[4]方法以及本文方法作為實驗對比方法,通過比較不同方法的多搬運機器人碰撞率,以驗證不同方法的實際應用效果。其中多搬運機器人碰撞率比較結(jié)果如表3所示。
分析表3中的數(shù)據(jù)可知,文獻[2]方法的多搬運機器人碰撞率最大值為57.6%,平均值為49.6%,最小值為42.9%;文獻[3]方法的多搬運機器人碰撞率最大值為37.4%,平均值為35.9%,最小值為34.3;文獻[4]方法的多搬運機器人碰撞率最大值為58.6%,平均值為42.4%,最小值為35.8;本文方法的多搬運機器人碰撞率最大值為7.2%,平均值為4.9%,最小值為3.5;與實驗對比方法相比,本文方法的多搬運機器人碰撞率最低,能夠最大程度保證多搬運機器人協(xié)同作業(yè)過程中的安全性。
表3 多搬運機器人碰撞率 %
無人倉以及搬運機器人的應用對于貨物的自動化管理具有積極意義,通過無人倉多搬運機器人協(xié)同作業(yè)軌跡自動控制方法的優(yōu)化設(shè)計,保證機器人的實際運行軌跡與規(guī)劃軌跡一致,最大程度保障搬運機器人的移動安全,減少設(shè)備故障次數(shù),對于延長設(shè)備使用壽命具有現(xiàn)實意義。