馬國(guó)慶,劉 麗,于正林,曹?chē)?guó)華,陳李博
MA Guo-qing, LIU Li, YU Zheng-lin, CAO Guo-hua, CHEN Li-bo
(長(zhǎng)春理工大學(xué) 機(jī)電學(xué)院,長(zhǎng)春 130022)
隨著現(xiàn)代工業(yè)向智能化與自動(dòng)化發(fā)展,機(jī)器人逐漸融入社會(huì)各個(gè)領(lǐng)域,而機(jī)器人的運(yùn)動(dòng)學(xué)分析是機(jī)器人技術(shù)研究中的關(guān)鍵環(huán)節(jié)[1]。本文以UR10為實(shí)驗(yàn)平臺(tái),對(duì)機(jī)器人各關(guān)節(jié)與各連桿進(jìn)行分析并得到相關(guān)的模型參數(shù),并將其應(yīng)用于正逆運(yùn)動(dòng)學(xué)求解。用MATLAB進(jìn)行運(yùn)動(dòng)學(xué)仿真,通過(guò)數(shù)據(jù)對(duì)比分析驗(yàn)證模型與運(yùn)動(dòng)學(xué)正逆運(yùn)算的正確性。為機(jī)器人軌跡規(guī)劃研究提供必要的理論基礎(chǔ)。
要使機(jī)器人實(shí)現(xiàn)空間中某種運(yùn)動(dòng),首先需要建立一個(gè)基坐標(biāo)系,然后在此基坐標(biāo)系下研究機(jī)器人的相關(guān)參數(shù)和位姿。
在建立了基坐標(biāo)系后,可通過(guò)3×1的位置矢量表示空間中某一點(diǎn)的位置。假設(shè)基坐標(biāo)系{A}中任意一點(diǎn)p,其位置矢量可用Ap表示:
其中px,py,pz為p點(diǎn)在基坐標(biāo)系{A}中的位置分量。但對(duì)機(jī)器人進(jìn)行研究時(shí)不僅需要該點(diǎn)的位置坐標(biāo),還需要方位姿態(tài)。因此定義某一物體所在的坐標(biāo)系為{B},則物體B相對(duì)于坐標(biāo)系{A}的方位可用B的單位矢量相對(duì)于坐標(biāo)系{A}的方向余弦矩陣表示,具體如下:
其中ABR稱為旋轉(zhuǎn)矩陣,上下標(biāo)A、B分別表示坐標(biāo)系{A}與{B}。由于三個(gè)列矢量均為單位矢量且均互相垂直,因此為正交矩陣且滿足:
在空間坐標(biāo)系轉(zhuǎn)換中最為常見(jiàn)的為平移、旋轉(zhuǎn)以及既平移又旋轉(zhuǎn)的復(fù)合變換三種[2]??臻g點(diǎn)p在空間坐標(biāo)系{A}、坐標(biāo)系{B}和坐標(biāo)系{C}下的變換關(guān)系如圖1所示。
圖1 位姿變換示意圖
坐標(biāo)系{A}與坐標(biāo)系{B}在空間中相互平行但坐標(biāo)原點(diǎn)位置不同??梢园阉闯墒亲鴺?biāo)系的平移變換,用位移矢量ApB表示坐標(biāo)系{B}相對(duì)于坐標(biāo)系{A}的變換關(guān)系,通過(guò)矢量加運(yùn)算即可求解出空間點(diǎn)p相對(duì)于坐標(biāo)系{A}的位置矢量:
坐標(biāo)系{C}與坐標(biāo)系{B}在空間中方位角度不同但擁有相同的坐標(biāo)原點(diǎn),即空間點(diǎn)p的位置并未發(fā)生改變但其坐標(biāo)系發(fā)生了旋轉(zhuǎn),則可用旋轉(zhuǎn)矩陣BpC表示坐標(biāo)系的方位,即存在轉(zhuǎn)換關(guān)系:
坐標(biāo)系的變換往往不是單一平移與單一旋轉(zhuǎn)那么簡(jiǎn)單,通常都是平移與旋轉(zhuǎn)的復(fù)合變換,位置矢量ApB、旋轉(zhuǎn)矩陣BpC分別表示坐標(biāo)系{B}相對(duì)于坐標(biāo)系{A}的平移變換關(guān)系和坐標(biāo)系{C}相對(duì)于坐標(biāo)系{B}的旋轉(zhuǎn)變換關(guān)系,則空間點(diǎn)p在坐標(biāo)系{A}下的位置矢量Ap有:
在研究機(jī)器人運(yùn)動(dòng)學(xué)過(guò)程中并不考慮各種運(yùn)動(dòng)附加力對(duì)機(jī)器人的影響,只考慮機(jī)器人各連桿及關(guān)節(jié)的運(yùn)動(dòng)特性,機(jī)器人正運(yùn)動(dòng)學(xué)則可看成是已知機(jī)器人各個(gè)連桿的物理參數(shù)以及關(guān)節(jié)角度變量,求取末端執(zhí)行器相對(duì)基坐標(biāo)系的位姿關(guān)系[3]。
使用經(jīng)典D-H參數(shù)法,需要確定機(jī)器人各相鄰關(guān)節(jié)的坐標(biāo)系間的轉(zhuǎn)換關(guān)系,建立相鄰坐標(biāo)系間的轉(zhuǎn)換矩陣。坐標(biāo)系的創(chuàng)建如圖2所示。
圖2 D-H法各連桿關(guān)系示意圖
坐標(biāo)系的Z軸為各關(guān)節(jié)軸的中心軸線,坐標(biāo)原點(diǎn)為各軸線公垂線的交點(diǎn);X軸經(jīng)過(guò)各軸的公垂線,方向?yàn)橹赶螂x開(kāi)軸線的方向;而Y軸可用右手定則確定。并得出結(jié)構(gòu)參數(shù)桿長(zhǎng)di、扭轉(zhuǎn)角αi、關(guān)節(jié)長(zhǎng)度ai以及關(guān)節(jié)轉(zhuǎn)角θi。
UR10是六自由度串聯(lián)機(jī)器人,可實(shí)現(xiàn)高達(dá)10Kg的自動(dòng)化作業(yè),延伸半徑范圍1300mm,具備協(xié)作性與安全性[4]。根據(jù)其機(jī)械結(jié)構(gòu)參數(shù)采用D-H進(jìn)行連桿坐標(biāo)系的建立,如圖3所示。
圖3 UR10機(jī)器人D-H坐標(biāo)系
由于UR10機(jī)器人各關(guān)節(jié)均為轉(zhuǎn)動(dòng)關(guān)節(jié),因此在機(jī)器人系統(tǒng)中只有關(guān)節(jié)角θ為變量,其余三個(gè)參數(shù)均為固定值,D-H模型參數(shù)如表1所示。
表1 UR10機(jī)器人D-H模型參數(shù)
依據(jù)機(jī)器人連桿坐標(biāo)系以及D-H模型參數(shù)表,求解出連桿坐標(biāo)系之間的齊次變換矩陣:
將表1中參數(shù)代入式(13),利用各連桿的轉(zhuǎn)換矩陣進(jìn)行相乘即可求解機(jī)器人的末端位姿:
其中nx,ny,nz,ox,oy,oz,ax,ay,az為機(jī)器人的末端姿態(tài)分量,px,py,pz為機(jī)器人的末端位置分量。
在實(shí)際應(yīng)用中往往指定機(jī)器人末端位姿,通過(guò)計(jì)算求得機(jī)器人到該位姿情況下的各關(guān)節(jié)轉(zhuǎn)角變量,并驅(qū)動(dòng)機(jī)器人移動(dòng)到該位置下。這種求解各關(guān)節(jié)變量的過(guò)程即為機(jī)器人逆運(yùn)動(dòng)學(xué)分析[5]。
2.3.1 機(jī)器人逆運(yùn)動(dòng)學(xué)求解方法
一般情況下求取機(jī)器人逆解的方法主要有數(shù)值求解法與封閉法求解兩種。通常六自由度的機(jī)器人主要采取數(shù)值求解法,但在某些特殊情況下求得的結(jié)果不是唯一解。而封閉法又分為幾何求解法與代數(shù)求解法兩種,相比于幾何求解法,代數(shù)求解法計(jì)算更簡(jiǎn)單、通用性較強(qiáng),成為求取機(jī)器人逆解的基本方法[6]。
2.3.2 機(jī)器人逆運(yùn)動(dòng)學(xué)分析
因UR10機(jī)器人的第二、三、四關(guān)節(jié)軸均為平行狀態(tài),滿足逆解存在的條件,因此該機(jī)器人的逆解可通過(guò)數(shù)值求解法求得,求解結(jié)果如下:
上述求解機(jī)器人的相關(guān)逆解,但逆解的數(shù)量不是唯一的,可能會(huì)得到8組機(jī)器人的逆解,這就需要通過(guò)機(jī)器人的約束關(guān)系來(lái)選取逆解中最符合要求的一組作為機(jī)器人當(dāng)前位姿的解。
為了驗(yàn)證上述推導(dǎo)的數(shù)學(xué)關(guān)系是否正確,采用Robotics Toolbox工具箱對(duì)機(jī)器人進(jìn)行運(yùn)動(dòng)學(xué)仿真,依據(jù)表1所提供的數(shù)據(jù),對(duì)UR10型機(jī)器人進(jìn)行仿真如圖4所示,控制界面如圖5所示。
圖4 UR10機(jī)器人仿真
圖5 滑塊控制圖
為了驗(yàn)證機(jī)器人正運(yùn)動(dòng)學(xué)方程和運(yùn)動(dòng)學(xué)模型的正確性,隨機(jī)選取2組關(guān)節(jié)變量值,對(duì)圖6中滑塊控制器中各關(guān)節(jié)角度賦予變量值,讀取控制器中機(jī)器人末端執(zhí)行器的位姿;將隨機(jī)選取的關(guān)節(jié)值同表1中UR10型機(jī)器人的D-H參數(shù)一同代入到機(jī)器人正運(yùn)動(dòng)學(xué)方程中,解出末端執(zhí)行器的位姿;最終將滑塊值與計(jì)算值對(duì)比。隨機(jī)選取2組關(guān)節(jié)變量值,如下:q1=[0.2059 -1.2294 -2.6050-0.6161 2.4627 0.3317],q2=[1.8491 -1.3127 -1.4234-2.1205 1.1045 1.8834]。
表2 滑塊值與MATLAB計(jì)算值比較
上述方法得到的結(jié)果在表2中列出,可以看出理論值和計(jì)算值的誤差非常小,幾乎可以忽略不計(jì),證明了推導(dǎo)得出的機(jī)器人正運(yùn)動(dòng)學(xué)方程以及運(yùn)動(dòng)學(xué)模型是正確的。
根據(jù)2.3節(jié)機(jī)器人逆運(yùn)動(dòng)學(xué)求解方法,編寫(xiě)程序,定義機(jī)器人末端位姿W=[px,py,pz,ax,ay,az],將其代入程序即可求得機(jī)器人多組運(yùn)動(dòng)學(xué)逆解Qi=[θ1,θ2,θ3,θ4,θ5,θ6]。將兩末端位姿W1=[-158.321,181.853,157.927,-0.318,0.729,-0.607]與W2=[-109.925,-295.804,835.089,0.397,0.247,-0.884]代入程序,再根據(jù)機(jī)械結(jié)構(gòu)約束篩選出有效逆解,分別如表3,表4所示。
表3 位姿W1的運(yùn)動(dòng)學(xué)逆解
表3 (續(xù))
表4 位姿W2的運(yùn)動(dòng)學(xué)逆解
每個(gè)位姿可以獲取8組解,由于機(jī)器人機(jī)械結(jié)構(gòu)約束與各桿件運(yùn)動(dòng)時(shí)不存在干涉,因此求得的8組解均為機(jī)器人的逆解。通過(guò)數(shù)據(jù)對(duì)比可知,表3中的Q1與上一節(jié)的q1相等,表4中的Q1與上一節(jié)的q2相等,驗(yàn)證了逆運(yùn)動(dòng)學(xué)的正確性。
對(duì)UR10智能協(xié)作機(jī)器人進(jìn)行相關(guān)結(jié)構(gòu)建模,求解出機(jī)器人的D-H模型參數(shù),并對(duì)機(jī)器人的正逆運(yùn)動(dòng)學(xué)進(jìn)行分析,求解出正運(yùn)動(dòng)學(xué)中各連桿坐標(biāo)系的轉(zhuǎn)換關(guān)系以及逆運(yùn)動(dòng)學(xué)中各關(guān)節(jié)轉(zhuǎn)角的求解方法。并用MATLAB進(jìn)行了運(yùn)動(dòng)學(xué)的仿真與方程計(jì)算,通過(guò)數(shù)據(jù)對(duì)比分析驗(yàn)證了其運(yùn)動(dòng)學(xué)模型與運(yùn)動(dòng)學(xué)正逆運(yùn)算的正確性。