摘 要: 多關(guān)節(jié)機器人的工作空間是反映機器人運動能力的一個重要指標。提出了一種簡化的多關(guān)節(jié)機器人工作空間仿真方法,可以不用求解正運動學(xué)方程,只要根據(jù)簡單的機器人關(guān)節(jié)變換參數(shù)就可以通過仿真迅速得到其運動空間。以Brokk50機器人為例,首先建立其D-H變換坐標圖并確定變換參數(shù),然后以Matlab為仿真工具建立仿真模型并驗證參數(shù)正確性,最后運用提出的新方法快速求出其運動空間。從而能夠為多關(guān)節(jié)機器人的設(shè)計改進、遙操作和軌跡規(guī)劃等工作提供參考。
關(guān)鍵詞: 多關(guān)節(jié)機器人;工作空間仿真;Matlab仿真
多關(guān)節(jié)機器人是一種應(yīng)用非常廣泛的機器人,絕大部分工業(yè)機器人和智能移動機器人都是多關(guān)節(jié)機器人,擁有多關(guān)節(jié)機械臂。機器人在農(nóng)業(yè)上可以完成蔬菜和水果的采摘,在工業(yè)上的應(yīng)用更是比比皆是,如各種噴涂和焊接機器人。對機器人的應(yīng)用大大降低了工人勞動強度,降低了勞動成本,提高了工作效率,具有很大的應(yīng)用價值。多關(guān)節(jié)機械臂的靈活程度對其工作能力有著至關(guān)重要的作用[1-2]。關(guān)節(jié)臂的工作空間是多關(guān)節(jié)機器人靈活程度的重要指標之一,它是指其末端參考點所能達到的空間點集合。目前,機器人工作空間的仿真通常通過建立機器人的正運動學(xué)方程,然后求解機器人的末端坐標,最后將末端坐標點集合顯示在坐標圖中加以實現(xiàn),這通常需要大量的矩陣運算,步驟繁瑣工作量大,極易出錯。本文在Robotics Toolbox仿真工具箱的基礎(chǔ)上,提出了一種簡化的工作空間仿真方法,只要知道機械臂模型和相關(guān)參數(shù),不需要進行正運動學(xué)解,即可求出末端坐標,進而求出工作空間的仿真圖。可供設(shè)計者、操作員和運動規(guī)劃者分析工作問題,制定工作策略。
1 機器人模型建立和參數(shù)
本文以Brokk50為例,首先畫出其簡化的機械臂模型,然后確定關(guān)節(jié)間D-H變換參數(shù)[3-4],最后通過仿真驗證參數(shù)的正確性。Brokk50機器人的機械臂簡圖如圖1所示。
為了方便查看,圖1中將坐標系0和坐標系1的原點放在了一起。
oxyz:與固定坐標相連的固定參考坐標系,稱為基坐標系。
onxnynzn:與機器人的第n個桿件相固連,坐標原點在第n+1關(guān)節(jié)的中心點處。
確定和建立每個坐標系遵循以下3條規(guī)則:
(1)zn-1軸沿著第n關(guān)節(jié)的運動軸;
(2)xn軸垂直于zi軸及zi-1軸并指向離開zi-1軸的方向;
(3)yn軸按右手坐標系的要求建立。
同時,剛性桿件的D-H表示法取決于連桿的以下4個參數(shù):
(1)連桿長度an:表示沿xn軸方向zn-1軸與zn軸之間的距離;
(2)連桿扭角αn:表示繞xn軸線由zn-1軸到zn軸所旋轉(zhuǎn)的角度;
(3)連桿間距dn:表示沿zn軸方向xn-1軸到xn軸的距離;
(4)轉(zhuǎn)角變量θn:表示繞軸由xn-1軸到xn軸所旋轉(zhuǎn)的角度。
由圖1和機械臂參數(shù)可以確定連桿參數(shù)和變量,如表1所示。
其中,轉(zhuǎn)角變量θi為關(guān)節(jié)繞z軸的旋轉(zhuǎn)角度,是未知量;連桿間距為相鄰關(guān)節(jié)間公垂線的距離;連桿長度為已知;連桿扭角αn為相鄰兩個z軸的夾角。
2 Brokk50機器人建模仿真
對于機械臂的運動學(xué)、動力學(xué)以及軌跡規(guī)劃分析,可以使用基于Matlab平臺的機器人工具箱—Robotics Toolbox,此工具箱最新版本在2002年4月由Peter I.Corke更新。該工具箱函數(shù)可以在Matlbab7.1版本上運行。它提供給用戶一些常用的函數(shù),可以實現(xiàn)機械臂運動學(xué)、動力學(xué)仿真,是一款非常方便和容易上手的輔助工具[5-6]。
下面使用工具箱中的函數(shù)對Brokk機器人機械臂進行建模和正運動學(xué)仿真,具體實現(xiàn)函數(shù)如下:
L1=link([pi/2 0 0 40],'standard');
L2=link([0 60 0 0],'standard');
L3=link([0 80 0 0],'standard');
L4=link([0 60 0 0],'standard');
L5=link([-pi/2 50 0 0],'standard');
r=roBot({L1 L2 L3 L4 L5});
r.name='Brokk機械臂';
q=[0 0 0 0 0];
driveBot(r,q)
link函數(shù)中的參數(shù)從前到后分別代表D.H參數(shù)表中的α、a、θ、d;standard表示采用的是標準D.H建模方法;roBot函數(shù)作用是將機械臂各桿與關(guān)節(jié)連接起來;q表示關(guān)節(jié)變量的初始角度;driveBot是繪制機械臂的函數(shù)。這里取L1、L2、L3、L4、L5分別為40、60、80、60、50。采用工具箱函數(shù)得到的仿真結(jié)果如圖2所示。其中x、y、z分別表示抓持器的位置;ax、ay、az表示抓持器的姿態(tài),是用RPY旋轉(zhuǎn)來表示的,ax表示偏航角,ay表示俯仰角,az表示滾動角;q1、q2、q3、q4、q5為5個關(guān)節(jié)角度值。由圖2可以看出機械臂參數(shù)正確,可以進行工作空間分析。
3 機械臂工作空間仿真方法
本文采用一種不需要正運動解算的機器人末端坐標求取方法,改進了傳統(tǒng)的空間求取方法——蒙特卡洛方法??梢钥焖偾蟪鰴C器人的末端坐標并得到工作空間圖像,計算速度快,適合任何關(guān)節(jié)型機械臂工作空間求解,只需要具有大致模型和參數(shù)。具體求解步驟如下:
(1)根據(jù)機器人參數(shù)確定參數(shù)值和變化范圍;
(2)利用隨機函數(shù)RAND(j)(j=1,2,…,N)產(chǎn)生N個0~1之間的隨機值,由此產(chǎn)生的隨機步長為(qmaxi-qmini)×RAND(j),得到機械關(guān)節(jié)變量的偽隨機值為[7]:
qi=qmini+(qmaxi-qmini)RAND(j)
式中qmaxi、qmini為關(guān)節(jié)變量的上下限,i為關(guān)節(jié)數(shù)目;
(3)將N個關(guān)節(jié)變量組合帶入Robotics Toolbox公式 fkine(機器人名,c)中,得到機械臂末端運動矩陣,并提取x、y、z坐標分別存于矩陣X、Y、Z中;
(4)通過plot3(x,y,z)和plot(x,y)、plot(x,z)、plot(y,z)得到工作空間的點集云圖。
Brokk50機器人工作空間的仿真結(jié)果如圖3所示。
靈活運用基于Matlab平臺的機器人工具箱——Robotics Toolbox,可以在僅僅知道機械臂的部分參數(shù)的情況下快速建立機械臂仿真模型,并在不計算機械臂運動學(xué)正解的情況下得出工作空間,減少了大量復(fù)雜的矩陣運算,提高了工作效率??梢灾庇^地指導(dǎo)機械臂的設(shè)計工作,確定設(shè)計參數(shù);也可以為遙操作和軌跡規(guī)劃提供一些理論支持,減少實際調(diào)試時間,優(yōu)化運動軌跡,避免機構(gòu)干涉等問題。
參考文獻
[1] 郁邦永,茅獻彪.機械手工作空間分析與仿真系統(tǒng)探討[J].煤礦機械,2012,33(8):68-70.
[2] 梁喜鳳,王永維,苗香雯,等.番茄收獲機械手工作空間分析與仿真[J].浙江大學(xué)學(xué)報(農(nóng)業(yè)與生命科學(xué)版),2005,31(6):807-811.
[3] 任崇軒.五自由度機械臂運動和控制仿真分析[D].廣州:華南理工大學(xué),2012.
[4] 馬江.六自由度機械臂控制系統(tǒng)設(shè)計和運動學(xué)仿真[D].北京:北京工業(yè)大學(xué),2012.
[5] 馮飛,張洛平,張波.四自由度機器人Matlab仿真實例[J].河南科技大學(xué)學(xué)報(自然科學(xué)版),2008,29(3):24-26.
[6] 康嘉瑞,樊留群,LAURISCHKAT R.基于Matlab的機器人逆運動學(xué)研究[J].佳木斯大學(xué)學(xué)報(自然科學(xué)版),2008,29(3):24-26.
[7] 田海波,馬宏偉,魏娟.串聯(lián)機器人機械臂工作空間與結(jié) 構(gòu)參數(shù)研究[J].農(nóng)業(yè)機械學(xué)報,2013,44(4):196-201.