李 航,王朝耀
(1.長(zhǎng)春職業(yè)技術(shù)學(xué)院,吉林 長(zhǎng)春 130000;2.西安科技大學(xué),陜西 西安 710054)
隨著機(jī)器人在感知和操縱方面獲得越來(lái)越多的能力,相關(guān)行業(yè)領(lǐng)域希望機(jī)器人解決日益復(fù)雜和更高相關(guān)性的任務(wù),機(jī)器人行為設(shè)計(jì)和組合變得更加復(fù)雜。在倉(cāng)庫(kù)搬運(yùn)的需求中盡可能地實(shí)現(xiàn)自動(dòng)化搬運(yùn)過(guò)程,這將改善整個(gè)倉(cāng)庫(kù)工作的可擴(kuò)展性和穩(wěn)健性。在倉(cāng)庫(kù)搬運(yùn)的過(guò)程中,開(kāi)發(fā)與人密切合作的機(jī)器人的關(guān)鍵挑戰(zhàn)是創(chuàng)建一個(gè)用戶界面,允許用戶快速,輕松地向機(jī)器人傳達(dá)復(fù)雜的指令。我們考慮使用倉(cāng)庫(kù)搬運(yùn)機(jī)器人實(shí)現(xiàn)物流的貨站傳遞功能,該機(jī)器人設(shè)計(jì)采用輪式或履帶式車(chē)輛用于將重載運(yùn)送到難以到達(dá)的位置。在該應(yīng)用中,用戶界面的主要任務(wù)是使機(jī)器人在整個(gè)組中以正確的形式行進(jìn)。介紹了反光標(biāo)記和激光雷達(dá),允許特定用戶將自己指定為機(jī)器人的控制者,并沿著所需的路徑引導(dǎo)機(jī)器人。在各種照明和運(yùn)動(dòng)條件下通過(guò)無(wú)約束和雜亂的倉(cāng)庫(kù)環(huán)境來(lái)檢測(cè)和跟蹤機(jī)器人。倉(cāng)庫(kù)搬運(yùn)機(jī)器人按照傳統(tǒng)自動(dòng)控制系統(tǒng)的定義,系統(tǒng)的主要組件可分為控制器、傳感器、規(guī)劃器以及執(zhí)行器四大部分,現(xiàn)代智能移動(dòng)機(jī)器人摒棄了陳舊的控制系統(tǒng)結(jié)構(gòu),基于網(wǎng)絡(luò)控制系統(tǒng)(Network Control System)來(lái)實(shí)現(xiàn)執(zhí)行器群、傳感器群以及總控系統(tǒng)間的數(shù)據(jù)傳輸以及集中控制[4]。規(guī)劃系統(tǒng)將是開(kāi)發(fā)復(fù)雜機(jī)器人行為的自然組件。
移動(dòng)搬運(yùn)機(jī)器人的控制系統(tǒng)架構(gòu):控制平臺(tái)通過(guò)ECAT 總線建立硬實(shí)時(shí)環(huán)境,NCS 中提供多種硬件接口諸如:I2C、PCI-E、USB 以及RJ45 等,保障了多種傳感器與控制核心的實(shí)時(shí)通訊。NCS 分為輸入、輸出雙通道,多種傳感器的反饋數(shù)據(jù)與伺服驅(qū)動(dòng)電機(jī)的控制信號(hào)并行于控制網(wǎng)絡(luò)內(nèi)部[5]。搬運(yùn)機(jī)器人運(yùn)動(dòng)的過(guò)程中,通過(guò)激光傳感器完成環(huán)境中的偽定位,輔以電機(jī)位置傳感器來(lái)記錄機(jī)器人的里程信息,根據(jù)當(dāng)前的路徑、運(yùn)動(dòng)方向等信息,可實(shí)現(xiàn)最優(yōu)路徑的規(guī)劃以及地圖信息的匹配,最終實(shí)現(xiàn)響應(yīng)迅速、控制靈活的導(dǎo)航。在搬運(yùn)機(jī)器人行走過(guò)程中,還需要對(duì)底盤(pán)的輪子進(jìn)行軌跡規(guī)劃,介紹了計(jì)算NURBS 曲線和曲面偏移的算法?;痉椒òㄋ膫€(gè)步驟:(1)識(shí)別特殊曲線和曲面;(2)根據(jù)二階導(dǎo)數(shù)的界限對(duì)偏移曲線或曲面進(jìn)行采樣;(3)插入這些點(diǎn);(4)使用偏移公差去除所有不需要的結(jié)點(diǎn)。該方法提供了對(duì)錯(cuò)誤控制的良好處理。
倉(cāng)庫(kù)中,需要對(duì)很多物品進(jìn)行搬運(yùn),需要把物體按類(lèi)、按號(hào)、按項(xiàng)目進(jìn)行分類(lèi)搬運(yùn),工作人員厭倦了拖著沉重的材料長(zhǎng)途跋涉。這些工人的行走距離在他們班次期間達(dá)到10km,運(yùn)輸任務(wù)每周發(fā)生195h。倉(cāng)庫(kù)進(jìn)行搬運(yùn)的機(jī)器人不間斷進(jìn)行信息的傳遞,從而幫助搬運(yùn)工交付貨物到指定的工作站。倉(cāng)庫(kù)搬運(yùn)機(jī)器人每周7天,每天24h 工作,能夠在倉(cāng)庫(kù)內(nèi)的任何地方無(wú)人駕駛,無(wú)需人工地標(biāo),避開(kāi)人們共存的障礙,6 臺(tái)機(jī)器人可以節(jié)省2.8 名全職員工。
圖1 倉(cāng)庫(kù)搬運(yùn)機(jī)器人平臺(tái)示意圖Fig.1 Schematic Diagram of Warehouse Handling Robot Platform
搬運(yùn)機(jī)器人按照以下順序移動(dòng):(1)從基座開(kāi)始,(2)到達(dá)拾取位置,(3)移動(dòng)到下降位置,(4)返回到基座。有時(shí)底座和拾取位置可以處于相同位置。為交貨任務(wù)分配了可用的機(jī)器人。但是,即使所有機(jī)器人都未送達(dá),交付請(qǐng)求也會(huì)持續(xù)發(fā)生。如果沒(méi)有最佳分配算法,則機(jī)器人一次只能執(zhí)行一項(xiàng)任務(wù)。在這種情況下,如果所有機(jī)器人都忙,則稍后請(qǐng)求的交付應(yīng)該等到機(jī)器人完成其任務(wù)并變得可用。這種方法很簡(jiǎn)單,使用多個(gè)機(jī)器人效率不高。該方法稱(chēng)為單任務(wù)分配(STA)。
因此,我們引入了一種多任務(wù)分配(MTA)方法來(lái)提高生產(chǎn)率。此方法為機(jī)器人分配多個(gè)任務(wù)。要為已經(jīng)交付的機(jī)器人分配多個(gè)任務(wù),必須考慮行程距離,剩余電量和最大負(fù)載能力。然后,它選擇適當(dāng)?shù)臋C(jī)器人(當(dāng)前正在交付機(jī)器人)來(lái)分配多個(gè)任務(wù)。它還具有重新規(guī)劃路徑與當(dāng)前任務(wù)和新分配任務(wù)的關(guān)聯(lián)過(guò)程。該方法將縮短拾取位置的等待時(shí)間并提高整體效率。
為了評(píng)估機(jī)器人的性能,開(kāi)發(fā)了一種模擬器來(lái)測(cè)試使用多個(gè)機(jī)器人進(jìn)行倉(cāng)庫(kù)后勤的各種情況。模擬器由參數(shù)設(shè)置,任務(wù)調(diào)度器,核心和數(shù)據(jù)分析器組成。任務(wù)調(diào)度程序是用戶定義的任務(wù)計(jì)劃列表,包括貨物類(lèi)型,時(shí)間段以及提貨和下車(chē)的位置。環(huán)境參數(shù)在參數(shù)設(shè)置模塊中定義,該模塊影響核心的模擬。核心是機(jī)器人在線運(yùn)行并根據(jù)任務(wù)調(diào)度程序調(diào)用傳遞請(qǐng)求的位置。核心內(nèi)的任務(wù)分配器在考慮約束的同時(shí)將新接收的任務(wù)分配給機(jī)器人。數(shù)據(jù)分析器顯示交付任務(wù)的結(jié)果,包括等待時(shí)間,總交付時(shí)間以及每個(gè)機(jī)器人的已完成任務(wù)的數(shù)量。
模擬器由參數(shù)設(shè)置,任務(wù)調(diào)度程序,核心和數(shù)據(jù)分析器模塊組成。在設(shè)置參數(shù)和安排交付任務(wù)之后,核心運(yùn)行抽象的9 小時(shí),其中調(diào)用交付請(qǐng)求并且機(jī)器人以其速度移動(dòng)。模擬完成后,用戶可以在數(shù)據(jù)分析器中獲得模擬的性能結(jié)果。
采用雙輪差動(dòng)方式運(yùn)動(dòng)的移動(dòng)機(jī)器人,其左右輪輪速分別為Vl,Vr,車(chē)體寬度為d,整車(chē)運(yùn)動(dòng)軌跡的圓半徑為r,在Vl<=Vr的情況下,由左右輪差速所構(gòu)造的運(yùn)動(dòng)軌跡分析如下:
當(dāng)Vl>Vr時(shí),情況與此相同,則公式變?yōu)橼呄蛘?fù)無(wú)窮的時(shí)候,車(chē)走直線,r=0 時(shí)車(chē)原地旋轉(zhuǎn),r>0 時(shí)車(chē)體向左側(cè)旋轉(zhuǎn),r<0 時(shí)車(chē)體向右側(cè)旋轉(zhuǎn)。
此公式用于理想情況下的機(jī)器人運(yùn)動(dòng)軌跡估算,但在實(shí)際應(yīng)用時(shí),還有機(jī)器人運(yùn)動(dòng)左右輪轉(zhuǎn)動(dòng)方向的摩擦力,機(jī)器人左右輪裝配加工的誤差,機(jī)器人軸向受力時(shí),機(jī)器人軸向被擠壓時(shí),機(jī)器人軸向被拉伸,只有當(dāng)時(shí),機(jī)器人軸向力會(huì)消失),機(jī)器人質(zhì)量分布不均勻(導(dǎo)致機(jī)器人左右輪所受摩擦力不同),溫濕度等因素的影響(材質(zhì)摩擦系數(shù)變化),所以需要根據(jù)實(shí)際情況調(diào)整Vl和Vr的值,并非是理論給定的輪速。以上為計(jì)算碼盤(pán)位姿公式,根據(jù)讀取的碼盤(pán)值,計(jì)算出位姿中各個(gè)成員的增量。每次對(duì)地圖類(lèi)中的各個(gè)數(shù)據(jù)進(jìn)行更新。
交付任務(wù)包括提貨位置和下車(chē)位置。通常,每個(gè)位置都是興趣點(diǎn)。(POI)發(fā)生傳遞請(qǐng)求時(shí),控制服務(wù)器中的任務(wù)分配器為請(qǐng)求選擇適當(dāng)?shù)臋C(jī)器人。通常,選擇基站中的備用機(jī)器人進(jìn)行傳送。但是,由于傳送請(qǐng)求是連續(xù)發(fā)生的,因此可能存在沒(méi)有備用機(jī)器人的情況。在這種情況下,任務(wù)分配器應(yīng)決定是否等待有可用的機(jī)器人,或者選擇當(dāng)前正在工作的機(jī)器人并再添加一個(gè)任務(wù)。前者是單任務(wù)分配(STA),后者是多任務(wù)分配(MTA)。在MTA 中,任務(wù)分配器還應(yīng)該重新計(jì)劃所選機(jī)器人的路徑以最小化行進(jìn)距離。選定的機(jī)器人具有當(dāng)前任務(wù)的POI 和需要添加新的POI。任務(wù)分配器必須關(guān)聯(lián)兩個(gè)POI 以找到最佳路徑。這里我們只考慮了尋找最佳路徑的距離。未來(lái)的工作將考慮電池和容量。
在MTA 中,通過(guò)窮舉計(jì)算所有機(jī)器人從其當(dāng)前位置到新添加的拾取位置的路徑來(lái)選擇接收新任務(wù)的機(jī)器人,如圖2 所示。該一階搜索路徑是從計(jì)算從當(dāng)前姿勢(shì)到當(dāng)前航向POI(圖2(c))或新增加的拾取POI 的最短距離得出的。(圖2(d))從兩者中選擇最短路徑。然后,它再次計(jì)算距離,即從選定的一個(gè)到另一個(gè)。最終選擇給出最短距離的機(jī)器人來(lái)添加新任務(wù)。然后,再次,通過(guò)窮舉搜索,通過(guò)關(guān)聯(lián)當(dāng)前剩余任務(wù)的POI 和新添加的任務(wù)的POI來(lái)完成所選機(jī)器人的最短路徑。路徑應(yīng)遵循下降位置不能超過(guò)拾取位置的約束。這樣,MTA 選擇了一個(gè)可以完成兩項(xiàng)任務(wù)的機(jī)器人。為了測(cè)試STA 和MTA 的性能,設(shè)計(jì)了一個(gè)模擬器。它模擬倉(cāng)庫(kù)環(huán)境,機(jī)器人和頻繁交付任務(wù)的時(shí)間表。
圖2 找到選擇機(jī)器人進(jìn)行多任務(wù)分配的路徑的方法。Fig.2 The Method of Finding Path to Select a Robot for Multi-task Allocation
在(60*70)m 的地圖中使用10 個(gè)機(jī)器人,具有8 個(gè)交付位置,如圖所示。機(jī)器人可以接受的最大交付任務(wù)數(shù)量為2。模擬運(yùn)行抽象9 小時(shí)以及每個(gè)機(jī)器人的頻繁按需任務(wù)用于測(cè)試的POI,如表1 所示。每5min 調(diào)用從第7 個(gè)POI 到第1 個(gè)POI 的遞送請(qǐng)求。從基站到第7 個(gè)POI 的持續(xù)時(shí)間約為8min,速度為1m/s。STA 和MTA 算法的性能在模擬器中進(jìn)行測(cè)試。通過(guò)分配時(shí)間,等待時(shí)間和總交付時(shí)間來(lái)比較性能。分配時(shí)間是遞送請(qǐng)求和機(jī)器人分配之間的時(shí)間。在STA 中,當(dāng)存在新的遞送請(qǐng)求時(shí)所有機(jī)器人當(dāng)前正在執(zhí)行任務(wù)時(shí),機(jī)器人的分配被延遲直到機(jī)器人完成其任務(wù)。等待時(shí)間是從請(qǐng)求交付時(shí)間到機(jī)器人到達(dá)POI 以獲取包裹的時(shí)間??偨回洉r(shí)間是提貨和下車(chē)之間的時(shí)間。
圖3 在60m*70m 的地圖上有8 個(gè)POI 和10 個(gè)機(jī)器人Fig.3 There are 8 POI and 10 Robots on the 60 by 70 Meter Map
單任務(wù)分配(STA)和多任務(wù)分配(MTA)的結(jié)果,如圖3 所示。藍(lán)線是STA,紅線是MTA。圖中的x軸是按順序編號(hào)的交付任務(wù)ID,y軸是等待時(shí)間(以分鐘為單位)。由于其他機(jī)器人都在忙著執(zhí)行已經(jīng)分配好的交付任務(wù),所以分配給STA 的機(jī)器人的等待時(shí)間隨著時(shí)間的推移而增加,如圖4(a)所示。同樣的,STA的一次叫車(chē)后機(jī)器人到達(dá)取貨的等待時(shí)間增加,而MTA 的等待時(shí)間相對(duì)較短,如圖3(b)所示。
表1 交貨時(shí)間表Fig.1 Delivery Schedule
如果要加入其他約束,比如關(guān)節(jié)起始、終止加速度的約束,就要使用5 次多項(xiàng)式。原理是與3 次多項(xiàng)式計(jì)算類(lèi)似的。對(duì)于需要精確經(jīng)過(guò)某些位姿點(diǎn)的情形,利用多項(xiàng)式插值就比較麻煩,且多項(xiàng)式的冪次也要增加,這里就不再贅述。
這里需要指出的是利用多項(xiàng)式進(jìn)行軌跡規(guī)劃的時(shí)候,有時(shí)候會(huì)將多項(xiàng)式寫(xiě)成正則的形式。正則多項(xiàng)式一般形式如公式所示。
式中:T—軌跡規(guī)劃時(shí)間;t—機(jī)械手運(yùn)行時(shí)間。
新松公司的6 自由度機(jī)器人多用多項(xiàng)式經(jīng)行軌跡規(guī)劃,利用七次多項(xiàng)式插值得到的機(jī)器人輪子的軌跡規(guī)劃曲線,下面是按七次多項(xiàng)式插值的關(guān)節(jié)運(yùn)動(dòng)軌跡曲線,如圖4(b)、圖4(c)所示。這組速度和加速度曲線是在圖4(a)軌跡的基礎(chǔ)上得到的。但真空機(jī)械手需要經(jīng)過(guò)多個(gè)中間位姿,多項(xiàng)式規(guī)劃就不太實(shí)用了。
圖4 關(guān)節(jié)運(yùn)動(dòng)軌跡曲線圖Fig.4 Curve of Joint Motion Track
利用非均勻有理b樣條生成的基函數(shù)構(gòu)造精確的幾何模型,幾何分析是一種基于表示幾何的函數(shù)的計(jì)算力學(xué)技術(shù)。其思想是建立一個(gè)幾何模型,而不是建立一個(gè)近似幾何的有限元模型,而是在分析中直接使用描述幾何的函數(shù)。這意味著與有限元方法相比,自適應(yīng)網(wǎng)格細(xì)化技術(shù)可以在不連接CAD(計(jì)算機(jī)輔助設(shè)計(jì))數(shù)據(jù)庫(kù)的情況下使用。這似乎是一個(gè)明顯的優(yōu)勢(shì),等幾何分析超過(guò)有限元分析。此外,在每個(gè)自由度的基礎(chǔ)上,等幾何分析與有限元分析相比具有更高的精度和魯棒性。
因?yàn)锽樣條曲線的每個(gè)控制點(diǎn)的作用域是有限的,我們將整個(gè)參數(shù)域用knot 劃分成多個(gè)小的區(qū)域,在每個(gè)區(qū)域中,只有一部分不為空;我們令U為m+1 個(gè)按非降順序組成的數(shù)字集合,U={U0,U1,…,Um},U0<=U1<=…<=Um,其中Ui稱(chēng)為knot,U稱(chēng)為knot vector,每個(gè)B樣條有一個(gè)degreep,這個(gè)degree 決定了N(u)受幾個(gè)控制點(diǎn)影響(p+1 個(gè)),B樣條的basis 函數(shù)的遞歸定義為公式,即Cox-de Boor 遞歸方程。
NURBS 曲線軌跡的矩陣計(jì)算法及矩陣表示。若曲線采用三次NURBS 形式表示(三次與K次計(jì)算方法相同,只是表達(dá)式有所不同),則我們可以將第i段曲線可以寫(xiě)成下列矩陣形式,如公式所示,t∈[0,1],i=3,4…n:
整理可得,公式,t∈[0,1],i=3,4…n:
由于控制點(diǎn)pi及權(quán)因子ri均已知,而Mi僅與節(jié)點(diǎn)向量有關(guān),也是確定的,Ci與Mi、ri、pi有關(guān),即也是確定的。對(duì)于曲線上坐標(biāo)X、Y、Z分別有公式,t∈[0,1],i=3,4…n:
為了測(cè)試STA 和MTA 算法的性能,我們開(kāi)發(fā)了一個(gè)實(shí)現(xiàn)倉(cāng)庫(kù)環(huán)境和機(jī)器人的模擬器。當(dāng)模擬器運(yùn)行時(shí),任務(wù)分配器分配機(jī)器人以執(zhí)行傳遞任務(wù),并且機(jī)器人通過(guò)自主規(guī)劃路徑移動(dòng)到地圖內(nèi)的傳遞位置。參照倉(cāng)庫(kù)搬運(yùn)機(jī)器人所處的環(huán)境地圖以及交付物品時(shí)間表,搬運(yùn)管理層可以決定在倉(cāng)庫(kù)部署多少機(jī)器人以滿足所需的交付績(jī)效。在多機(jī)協(xié)調(diào)任務(wù)分配過(guò)程進(jìn)行測(cè)試,調(diào)度多任務(wù)進(jìn)行搬運(yùn)任務(wù)時(shí),如圖5 所示。搬運(yùn)機(jī)器人相互直接如果發(fā)生碰撞,采用最優(yōu)控制來(lái)決定那臺(tái)機(jī)器人繼續(xù)執(zhí)行,另外一臺(tái)采用避讓的策略。分配的總體結(jié)果,如表2 所示。在給定的仿真時(shí)間內(nèi),MTA 的完成任務(wù)數(shù)大于STA,為104.67%,等待時(shí)間顯著減少,為32.96%。
圖5 搬運(yùn)機(jī)器人多機(jī)協(xié)調(diào)Fig.5 Handling Robots Coordinate with Each Other
表2 分配任務(wù)的結(jié)果Fig.2 The Result of Assigning Tasks
對(duì)搬運(yùn)機(jī)器人進(jìn)行行走避障的測(cè)試,如圖6(a)、圖6(b)所示。搬運(yùn)機(jī)器人避障依靠激光,激光采集周?chē)h(huán)境信息,發(fā)現(xiàn)必經(jīng)的路程中有障礙物,從旁邊饒過(guò)去,繼續(xù)行走。
圖6 搬運(yùn)機(jī)器人行走避障Fig.6 Carrying Robot Walks on the Barrier
對(duì)搬運(yùn)機(jī)器人它既能幫助渡過(guò)運(yùn)動(dòng)不確定位置,又能增加最大啟動(dòng)牽引,搬運(yùn)機(jī)器人的運(yùn)動(dòng)要求確定。圖3~圖7 是路徑規(guī)劃方案的示意圖。這里選取N=3 和N=10,規(guī)劃達(dá)到4-5-6-7 正則多項(xiàng)式的路徑規(guī)劃效果的實(shí)驗(yàn)圖,如圖7(a)~圖7(d)所示。x=t/T,其中,T為路徑規(guī)劃的時(shí)間,p(x)表示4-5-6-7 正則多項(xiàng)式的取值,從仿真圖可以看出誤差e(x)=s(x)-p(x)及其一階、二階導(dǎo)數(shù)都在可以接受的范圍。
圖7 多項(xiàng)式路徑規(guī)劃效果實(shí)驗(yàn)圖Fig.7 Experimental Diagram of Polynomial Path Planning Effect
從圖中,我們可以看到每增加一次求導(dǎo),誤差也會(huì)增加一個(gè)量級(jí),一般加速度誤差會(huì)比位移誤差高兩個(gè)數(shù)量級(jí),這在實(shí)際設(shè)計(jì)中是不能忽略的。
倉(cāng)庫(kù)內(nèi)部提供了許多不同的材料,并引入了自主導(dǎo)航移動(dòng)機(jī)器人來(lái)取代這種重型移動(dòng)工作。
(1)首先,詳細(xì)的介紹了倉(cāng)庫(kù)搬運(yùn)機(jī)器人的概念和機(jī)器人的控制仿真平臺(tái)。
(2)其次,對(duì)機(jī)器人的雙輪差動(dòng)控制和多任務(wù)協(xié)調(diào)分配進(jìn)行了研究,(STA)不是使用機(jī)器人一次傳送一個(gè)包,而是可以將多個(gè)任務(wù)分配給機(jī)器人(MTA)以提高使用多個(gè)機(jī)器人的效率。因此,引入任務(wù)分配算法以實(shí)現(xiàn)多機(jī)器人—多任務(wù)分配。
(3)再次,對(duì)機(jī)器人如何能夠在倉(cāng)庫(kù)搬運(yùn)中找到目標(biāo)位置,提出了導(dǎo)航運(yùn)動(dòng)控制方案。
(4)最后,提出了一種NURBS 算法,該方法依賴于基于導(dǎo)數(shù),插值和結(jié)去除的點(diǎn)采樣。幾乎所有先前的方法都以幾個(gè)段開(kāi)始,并添加點(diǎn)直到近似收斂。
實(shí)驗(yàn)表明,與使用相同數(shù)量的機(jī)器人時(shí)的單任務(wù)分配相比,MTA 的效率顯著提高。并且機(jī)器人能夠在無(wú)人的環(huán)境下精確導(dǎo)航,把物體移動(dòng)到目標(biāo)位置點(diǎn)。同時(shí)大量的采樣點(diǎn)可以產(chǎn)生相當(dāng)好的參數(shù)化插值曲線,這反過(guò)來(lái)又可以消除很多結(jié)點(diǎn)。使得搬運(yùn)機(jī)器人能夠平穩(wěn)導(dǎo)航運(yùn)行,以便保持誤差并且參數(shù)化表現(xiàn)良好。