李 碩,劉相權(quán),黃 民,馬 飛,黃小龍
(北京信息科技大學 機電工程學院,北京 100192)
倉儲對物流活動的成本和效率都有著重大的影響。揀選機器人在物流倉儲行業(yè)中的應用可以加快智能化、信息化倉庫的成型速度。由于倉庫環(huán)境復雜且機器人設備昂貴,在控制程序研發(fā)階段,一旦發(fā)生碰撞,將會造成不可預估的損失。碰撞檢測也稱為相交測試或者干涉檢測,是虛擬現(xiàn)實系統(tǒng)交互性研究的核心問題之一[1]?;谔摂M環(huán)境的機器人仿真技術(shù)是否可以應用于實際環(huán)境,取決于虛擬環(huán)境中的機器人碰撞檢測結(jié)果。
目前工業(yè)機器人運動控制的編程方法分為兩種:示教編程和離線編程[2]。示教編程方法簡單、易于學習。此種方式下,機器人運動精度高,但不能連續(xù)工作,而且對作業(yè)環(huán)境要求高[3]。離線編程時,工作人員可以遠程控制機器人運動,減少機器人停機時間,提高了編程的安全性以及機器人工作的效率。因此,機器人離線編程軟件的使用日趨廣泛[4]。如瑞士ABB公司開發(fā)的RobotStudio,北京華航唯實機器人科技有限公司開發(fā)的Robot Art,德國西門子公司開發(fā)的ROBCAD等。但在對固定軌物流揀選機器人系統(tǒng)進行離線編程時,需要仿真的不僅是機器人,還有進行運輸?shù)拇┧筌?,以上常見的離線編程仿真軟件并不適用于此種情況。
本文以安川MH-24機器人和穿梭車組成的物流揀選機器人作為研究對象,在研發(fā)階段,利用Visual Studio與V-REP的聯(lián)合仿真模擬實際工作方式,通過在V-REP中進行碰撞檢測,來判斷路徑規(guī)劃是否存在問題,并通過比較真實環(huán)境與虛擬環(huán)境下的運動軌跡和碰撞情況判斷該方法的有效性。
由安川MH-24型機器人、Kinect相機、吸盤、氣泵、穿梭車等組成的固定軌物流揀選機器人如圖1所示。
圖1 固定軌物流揀選機器人
其中,穿梭車分為與MH-24機器人連結(jié)的主穿梭車以及負責運輸?shù)淖哟┧筌?。Kinect相機安裝在吸盤的支架上,并與吸盤共同處于機械臂的末端。氣泵通過導氣管與吸盤上的吸嘴相連,并通過氣壓差吸住貨物,以達到抓取貨物的目的。
固定軌物流揀選機器人系統(tǒng)首先接收數(shù)據(jù)庫的數(shù)據(jù),得到訂單信息,主穿梭車運動到貨物站臺,之后控制機械臂運動,攝像機開機,識別貨物并獲取位置信息。采用吸盤吸附貨物并放置在主穿梭車上,重復搬運直至該訂單完成或者達到4個貨物后,主穿梭車打開傳送帶將貨物運輸?shù)阶哟┧筌嚿?,由子穿梭車運輸?shù)蕉c,主穿梭車繼續(xù)完成該訂單或者處理下一個訂單。當訂單全部處理完畢后,機械臂回到起始位置。為了防止出現(xiàn)意外碰撞,在固定軌物流揀選機器人運動前,先將數(shù)據(jù)庫的信息傳輸?shù)椒抡嫫脚_上,進行碰撞檢測,如果發(fā)生碰撞,則進行數(shù)據(jù)反饋,重新進行路徑規(guī)劃。整個工作流程如圖2所示。
圖2 工作流程
本文采用的V-REP仿真平臺具有強大的仿真引擎,以及5種計算模塊:碰撞檢測模塊、最小距離計算模塊、正逆向運動學模塊、動力學模塊、路徑規(guī)劃模塊,同時具有良好的外部接口[5]。仿真過程如下:
首先使用SOLIDWORKS對系統(tǒng)進行建模,將三維模型導出為STL格式;然后將其導入到V-REP中,對機器人模型進行分解與重組;添加動力學屬性,進行動力學建模;創(chuàng)建機器人關(guān)節(jié);建立固定軌物流揀選機器人樹形結(jié)構(gòu);建立機器人運動學計算引擎模型;編寫控制器腳本文件與腳本編程控制。
其中機器人模型分解與重組步驟中,為了降低計算的復雜度,提高仿真效率,可以將螺絲、墊片等不影響仿真效果的零件刪除。固定軌物流揀選機器人仿真模型建立如圖3所示。
圖3 固定軌物流揀選機器人模型樹結(jié)構(gòu)與模型
安川MH-24型機器人各軸參數(shù)如表1所示。
表1 各軸參數(shù)
2.3.1 機器人正運動學分析
由于系統(tǒng)本體的穿梭車部分與MH-24部分是兩個分開的主體,沒有關(guān)節(jié)連接,所以在機器人運動學分析中,僅分析MH-24型機器人。
運動學求解過程就是采用四參數(shù)確定一個坐標系相對于另一個坐標系的位姿。這4個參數(shù)分別是:連桿長度a、偏距d、關(guān)節(jié)角度θ、轉(zhuǎn)角α。
在MH-24機器人模型上建立各關(guān)節(jié)的坐標系,如圖4所示。并根據(jù)尺寸信息和關(guān)節(jié)坐標系得出D-H參數(shù),如表2所示。
圖4 MH-24運動學坐標系模型
表2 MH-24機器人D-H參數(shù)
根據(jù)圖4和表2,可建立MH-24的運動學方程以及各連桿的變換矩陣。
MH-24的運動學方程為
6T0=0T11T22T33T44T55T6
(1)
式中,i-1Ti(i=1~6)為相鄰兩坐標系的齊次變換矩陣。令cθi=cosθi,sθi=sinθi,即:
(2)
將根據(jù)式(2)求得的0T1、1T2、2T3、3T4、4T5、5T6,代入式(1),可得MH-24運動學方程為
(3)
式中:
2.3.2 機器人逆運動學分析
當末端位姿px、py、pz給定時,需要反解出MH-24機器人的各關(guān)節(jié)變量,這一過程稱為運動逆解。利用驗證過的正運動學公式和D-H參數(shù)進行求解。
0T1-1(θ1)左乘式(3)得到式(4):
0T1-1(θ1)6T0=
1T2(θ2)2T3(θ3)3T4(θ4)4T5(θ5)5T6(θ6)
(4)
令矩陣方程式(4)中的元素(2,4)對應相等,可得θ1的兩組解為
θ1=-atan 2(d2+d3,
(5)
選定一個解后,令矩陣方程(4)中的元素(1,4)和(3,4)分別對應相等。選擇θ11可得θ3的兩組解為:
θ3=-atan 2(-a2a3,a2d4)+atan 2(A,
(6)
式中:
同理可求θ2、θ4、θ5、θ6的解:
θ2=atan 2(-pzt21+t22t1,-pzt22+t21t1)
(7)
其中:
θ4=atan 2(D/sinθ5,-E/sinθ5)
(8)
(9)
(10)
式中:
2.3.3 逆運動學最優(yōu)解分析
機器人運動反解可能存在8種解,在實際應用中應選取最優(yōu)解。本文的固定軌物流揀選機器人在揀選工作過程中需要每一個關(guān)節(jié)的移動量盡可能小,這樣也使得所消耗的能量最小。為了求得最優(yōu)解,采用最小二乘法,首先取第一組逆解作為最優(yōu)解,并設定初始誤差,然后將另一組解與這一組解進行對比,如果在另一組解中出現(xiàn)能保證所有關(guān)節(jié)運動距離最小的解,則作為新的最優(yōu)解,以此類推。
將8組解表示為qi(i=1~8),上一組最優(yōu)解表示為qbest,最小二乘法公式為
(11)
其中j為關(guān)節(jié)編號。
為了驗證模型的正確性,利用Matlab中機器人工具箱中的正運動學求解函數(shù)先求解出末端位姿,再將此末端位姿所對應的8組解求出。
首先設定θ1=90°、θ2=-90°、θ3=60°、θ4=60°、θ5=90°、θ6=90°,部分Matlab程序如下所示:
MH-24FK=robot.fkine([pi/2 -pi/2 pi/3 pi/3 pi/2 pi/2]);
MH-24IK = MH-24IKF (MH-24FK);
其中MH-24IKF為運動學逆解的求解函數(shù)。以上代碼實現(xiàn)了先求正解再求逆解的過程。
通過推導的逆運動學公式求出的8組解如圖5所示。
圖5 逆運動學結(jié)果
將V-REP中添加的Graph關(guān)聯(lián)到Floating view,得到各關(guān)節(jié)角運動曲線,以關(guān)節(jié)2和關(guān)節(jié)3為例,圖6為V-REP與Matlab仿真結(jié)果的比較。
圖6 V-REP與Matlab仿真結(jié)果比較
通過圖6可以看出,關(guān)節(jié)角2、3在V-REP仿真下的運動情況與Matlab仿真結(jié)果基本符合,說明本文所建立的運動學模型準確。
V-REP通過Scripts中的腳本文件進行仿真,對機器人仿真的控制不夠靈活,所以本文采用了VS2015來定制機器人仿真的控制方式。
V-REP提供了良好的外部接口——遠程API,通過VS2015編寫的外部控制程序可以以此與之連接。首先通過simxStart函數(shù)與V-REP端simRemoteApi.start函數(shù)進行端口號的設定,確保與VS2015外部控制程序進行連接。隨后使用simxGetObjectHandle、simxSetJointTargetPosition兩個函數(shù)來控制V-REP模型中的關(guān)節(jié)進行轉(zhuǎn)動或者移動。使用simxSetIntegerSignal函數(shù)將機械臂關(guān)節(jié)mode設置為IK;V-REP端使用sim.clearIntegerSignal函數(shù)對傳送帶進行命名;VS2015端使用simxSetIntegerSignal來調(diào)節(jié)傳送帶的速度,當速度為0時,傳動帶關(guān)閉,當速度不為0時,傳送帶開啟。
外部及控制程序使用VS2015中基于C++的MFC應用程序編寫,分為3個模塊:第一個模塊為機器人示教器,可以單獨控制MH-24機器人的關(guān)節(jié)進行轉(zhuǎn)動;第二個模塊為小車調(diào)試,可以控制穿梭車的移動以及穿梭車上的傳送帶開關(guān);最后一個模塊是機器人控制,通過設置示教位置、拍照位置、抓取位置、放貨位置以及發(fā)送抓取、放貨、聯(lián)動等命令對固定軌物流揀選機器人進行控制??刂平缑嫒鐖D7所示。
圖7 外部控制程序界面
對于機器人系統(tǒng)來說,精準有效的軌跡規(guī)劃可以大大提高運行的可靠性和工作效率。固定軌物流揀選機器人的關(guān)節(jié)運動采用三次多項式的插值方法進行規(guī)劃,可以防止機器人發(fā)生抖動,使關(guān)節(jié)運動更加平滑。笛卡爾空間坐標系下直線運動的實現(xiàn)算法包含位置插補和姿態(tài)插補:位置插補采用簡單線性插補,根據(jù)插補次數(shù),求得各軸步距然后累加[6];姿態(tài)插補運用四元數(shù)球面線性插補算法,使兩個表示旋轉(zhuǎn)的四元數(shù)之間進行平滑插補。
在V-REP里面添加Graph,關(guān)聯(lián)到這個仿真實驗中,仿真開始后,如果機器人和站臺立柱發(fā)生碰撞,Graph中會有從0到1的一個上升沿,記錄碰撞事件的發(fā)生,如圖8所示。一旦檢測到碰撞事件,則重新進行路徑規(guī)劃,然后再次檢測,直至沒有碰撞事件發(fā)生。
圖8 碰撞事件檢測信號
固定軌物流揀選機器人系統(tǒng)搭建完畢后,開始進行實驗。首先在數(shù)據(jù)庫中給定貨物信息。經(jīng)過計算,給出的抓取流程為:機器人和穿梭車在站臺1抓取數(shù)量為2的貨物,通過穿梭車上的傳送帶,將貨物從主穿梭車運輸?shù)阶哟┧筌嚿希勺哟┧筌噷⒇浳镞\輸?shù)秸九_末端進行卸貨,主穿梭車運動到站臺7抓取數(shù)量為4的貨物;子穿梭車卸貨完成后,移動到站臺7與主穿梭車匯合,進行卸貨工作;最后主穿梭車運動到站臺11抓取數(shù)量為6的貨物,由于穿梭車一次最多可裝取4個貨物,當機器人抓取4個貨物后,由子穿梭車先行卸貨,之后再來運輸最后2個貨物。
實驗開始,先運行V-REP,隨后在VS2015中點擊運行,直至歷史消息中出現(xiàn)“連接成功,可操作”的信息后,點擊聯(lián)動按鈕,外部程序?qū)⒅苯荧@取到訂單信息。發(fā)送指令至V-REP進行仿真運動。仿真實驗中機器人運行狀態(tài)如圖9所示。
圖9 仿真實驗
如果碰撞檢測實驗沒有0到1的上升沿,則表示沒有發(fā)生碰撞,數(shù)據(jù)庫將發(fā)送訂單信息到實驗樣機,進行實體實驗。當接收到訂單信息后,按照訂單順序取貨,機器人和穿梭車首先運動到1號貨位點抓取貨物,然后由機器人將貨物運送到揀選小車上,接著進行貨物轉(zhuǎn)移。揀選完1號貨位點貨物后,機器人和穿梭車依次去站臺1、7、11號貨位點進行取貨作業(yè),滿載后,兩輛小車分開,由子穿梭車將貨物送到站臺,與此同時,機器人和主穿梭車繼續(xù)執(zhí)行下一任務。樣機運行狀態(tài)如圖10所示。
圖10 實體驗證
實體驗證結(jié)果與仿真實驗結(jié)果相比,機器人運動軌跡基本一致,且并未發(fā)生碰撞事件。
本文針對物流揀選機器人特殊工作環(huán)境下的防碰撞提出了一種Visual Studio與V-REP聯(lián)合仿真的方法,模擬實際工作方式。首先建立固定軌物流揀選機器人運動學模型,通過Matlab數(shù)值仿真驗證了各關(guān)節(jié)的運動情況和運動學的正逆解,仿真結(jié)果與模型運動情況相符,模型準確。然后通過路徑規(guī)劃以及遠程API功能進行離線編程。在仿真軟件V-REP中添加Graph進行碰撞情況的監(jiān)測,最終在試驗樣機中進行測試。
實驗結(jié)果表明,本文方法可以有效避免機器人離線編程過程中碰撞事件的發(fā)生。相比于文獻[3]中的軟件,聯(lián)合仿真具有以下優(yōu)點:
1)通用性:適用于大部分型號機器人進行離線編程;
2)綜合性:可以做到全運動全過程的碰撞檢測,也可進行全生產(chǎn)線的仿真;
3)復用性:完成測試后,可將代碼直接下發(fā)到機械臂上使用,無需重新編寫代碼。
采用Visual Studio與V-REP聯(lián)合仿真的方法可以有效地判斷路徑的最優(yōu)性和準確性,從而減少因碰撞造成的損失,提高揀選效率,為這一類問題提供了一個新的解決思路。