周明月
摘 要:以六軸工業(yè)機(jī)械臂的應(yīng)用為基礎(chǔ),,完成六軸工業(yè)機(jī)械臂的建模過程,對(duì)機(jī)械臂進(jìn)行設(shè)計(jì)。然后,對(duì)六軸工業(yè)機(jī)械臂進(jìn)行坐標(biāo)系建模,采用的為D-H參數(shù)法,以建立的坐標(biāo)系為基礎(chǔ)求解正運(yùn)動(dòng)學(xué)解的和逆運(yùn)動(dòng)學(xué)解。
關(guān)鍵詞:機(jī)械臂;六軸;軌跡規(guī)劃
以六軸工業(yè)機(jī)械臂的應(yīng)用為基礎(chǔ),圍繞六軸工業(yè)機(jī)械臂的可達(dá)空間進(jìn)行建模過程,建模采用三維軟件SolidWorks,完成六軸工業(yè)機(jī)械臂的建模過程,對(duì)機(jī)械臂進(jìn)行設(shè)計(jì)。然后,對(duì)六軸工業(yè)機(jī)械臂進(jìn)行坐標(biāo)系建模,采用的為D-H參數(shù)法,以建立的坐標(biāo)系為基礎(chǔ)求解正運(yùn)動(dòng)學(xué)解的和逆運(yùn)動(dòng)學(xué)解,為后續(xù)軌跡規(guī)劃和仿真做好前提準(zhǔn)備;利用MATLAB Robotics工具箱建立機(jī)械臂模型與工作空間之間的關(guān)系,對(duì)得到的每個(gè)關(guān)節(jié)的角度、速度和加速度曲線進(jìn)行分析。
一、MATLAB正逆運(yùn)動(dòng)學(xué)仿真分析
機(jī)械臂運(yùn)動(dòng)學(xué)主要是研究其在關(guān)節(jié)空間變量下,機(jī)械臂末端爪手位置以及姿態(tài)之間的關(guān)系,運(yùn)動(dòng)學(xué)問題主要包括運(yùn)動(dòng)學(xué)正解和逆解兩類,本章運(yùn)用MATLAB中的Robotic Toolbox工具箱的多個(gè)函數(shù)結(jié)合機(jī)械臂結(jié)構(gòu)體D-H參數(shù)表,進(jìn)行運(yùn)動(dòng)學(xué)正解和運(yùn)動(dòng)學(xué)逆解問題進(jìn)行仿真。
運(yùn)動(dòng)學(xué)正解:對(duì)已知結(jié)構(gòu)的機(jī)械臂,其桿件幾何形狀、參數(shù)及其各關(guān)節(jié)角度矢量是明確的,以此來求解其末端爪手相對(duì)于參考坐標(biāo)系的位姿。
機(jī)器人學(xué)中關(guān)于運(yùn)動(dòng)學(xué)和動(dòng)力學(xué)最常用的描述方法是矩陣法,這種數(shù)學(xué)描述是以四階方陣變換三維空間點(diǎn)的齊次坐標(biāo)為基礎(chǔ)的。如已知直角坐標(biāo)系{A}中的某點(diǎn)坐標(biāo),那么該點(diǎn)在另一直角坐標(biāo)系{B}中的坐標(biāo)可通過齊次坐標(biāo)變換求得。一般而言,齊次變換矩陣? ? ? ? ?是4×4的方陣,具有如下形式:
矩陣法、齊次變換等概念是機(jī)器人學(xué)研究中最為重要的數(shù)學(xué)基礎(chǔ)。由于旋轉(zhuǎn)變換通常會(huì)帶來大量的正余弦計(jì)算,復(fù)合變換帶來的多個(gè)矩陣相乘就更加難以手工計(jì)算,因此我們建議在仿真教學(xué)中通過計(jì)算機(jī)進(jìn)行相應(yīng)的坐標(biāo)變換計(jì)算。。利用MATLAB Robotics Toolbox工具箱中的transl、trotx、troty和trotz函數(shù)可以非常容易的實(shí)現(xiàn)用齊次變換矩陣表示平移變換和旋轉(zhuǎn)變換。
利用MATLAB中Robotics Toolbox工具箱中的transl、rotx、roty和rotz可以實(shí)現(xiàn)用齊次變換矩陣表示平移變換和旋轉(zhuǎn)變換。下面舉例來說明:
當(dāng)然,如果有多次旋轉(zhuǎn)和平移變換,我們只需要多次調(diào)用函數(shù)在組合就可以了。另外,可以和我們學(xué)習(xí)的平移矩陣和旋轉(zhuǎn)矩陣做個(gè)對(duì)比,相信是一致的。
建立一個(gè)旋轉(zhuǎn)連桿
L = Link([0 1.2 0.3 pi/2]);或 L = Link([0 1.2 0.3 pi/2 0])
L = Link([0 1.2 0.3 pi/2],revolute)
L = Link( ‘d, 1.2, ‘a(chǎn), 0.3, ‘a(chǎn)lpha, pi/2);
L = Link(‘revolute, ‘d, 1.2, ‘a(chǎn), 0.3, ‘a(chǎn)lpha, pi/2);
L = Revolute(‘d, 1.2, ‘a(chǎn), 0.3, ‘a(chǎn)lpha, pi/2);
對(duì)六軸機(jī)械臂仿真模型建立完成以后,在MATLAB中進(jìn)行求運(yùn)動(dòng)學(xué)正逆求解,在XY平面的點(diǎn)為起始零點(diǎn),到終點(diǎn)的求解和運(yùn)動(dòng)情況圖如下:
二、軌跡規(guī)劃
機(jī)器人軌跡規(guī)劃的任務(wù)就是根據(jù)機(jī)器人手臂要完成的一定任務(wù),例如要求機(jī)械手從一點(diǎn)運(yùn)動(dòng)到另一點(diǎn)或沿一條連續(xù)軌跡運(yùn)動(dòng),來設(shè)計(jì)機(jī)器人各關(guān)節(jié)的運(yùn)動(dòng)函數(shù)。目前進(jìn)行軌跡規(guī)劃的方案主要有兩種:基于關(guān)節(jié)空間方案和基于直角坐標(biāo)方案。出于實(shí)際運(yùn)用考慮,在教學(xué)中以講解關(guān)節(jié)空間求解為主,本文也只演示關(guān)節(jié)空間的求解方案。
假設(shè)機(jī)器人要在2秒內(nèi)從初始狀態(tài)qz(所有關(guān)節(jié)轉(zhuǎn)角為0)平穩(wěn)地運(yùn)動(dòng)到朝上的“READY”狀態(tài)qr,則在關(guān)節(jié)空間進(jìn)行軌跡規(guī)劃的過程如下:
首先創(chuàng)建一個(gè)運(yùn)動(dòng)時(shí)間向量,假定采樣時(shí)間為56毫秒,則有:
t=[0: 056:2]。
在關(guān)節(jié)空間中插值可以得到:
[q,qd,qdd]=j raj(qz,qr,t);
三、六軸機(jī)械臂MATLAB仿真
要建立機(jī)器人對(duì)象,首先我們要了解六軸機(jī)械臂的D-H參數(shù),之后我們可以利用Robotics Toolbox工具箱中的link和robot函數(shù)來建立六軸機(jī)械臂對(duì)象。
其中l(wèi)ink函數(shù)的調(diào)用格式:
L = LINK([alpha A theta D])
L =LINK([alpha A theta D sigma])
L =LINK([alpha A theta D sigma offset])
L =LINK([alpha A theta D], CONVENTION)
L =LINK([alpha A theta D sigma], CONVENTION)
L =LINK([alpha A theta D sigma offset], CONVENTION)
參數(shù)CONVENTION可以取‘standard和‘modified,其中‘standard代表采用標(biāo)準(zhǔn)的D-H參數(shù),‘modified代表采用改進(jìn)的D-H參數(shù)。參數(shù)‘a(chǎn)lpha代表扭轉(zhuǎn)角 ,參數(shù)‘A代表?xiàng)U件長度,參數(shù)‘theta代表關(guān)節(jié)角,參數(shù)‘D代表橫距,參數(shù)‘sigma代表關(guān)節(jié)類型:0代表旋轉(zhuǎn)關(guān)節(jié),非0代表移動(dòng)關(guān)節(jié)。另外LINK還有一些數(shù)據(jù)域:
LINK.alpha ? ? %返回扭轉(zhuǎn)角
LINK.A? ? ? ? ? ?%返回桿件長度
LINK.theta? ? ? ?%返回關(guān)節(jié)角
LINK.D? ? ? ? ? ?%返回橫距
LINK.sigma? ? ? ?%返回關(guān)節(jié)類型
LINK.RP ? ? ? ?%返回‘R(旋轉(zhuǎn))或‘P(移動(dòng))
LINK.mdh? ? ? ? ?%若為標(biāo)準(zhǔn)D-H參數(shù)返回0,否則返回1
LINK.offset ? ? %返回關(guān)節(jié)變量偏移
LINK.qlim ? ? ? ?%返回關(guān)節(jié)變量的上下限 [min max]
LINK.islimit(q) %如果關(guān)節(jié)變量超限,返回 -1, 0, +1
LINK.I %返回一個(gè)3×3 對(duì)稱慣性矩陣
LINK.m %返回關(guān)節(jié)質(zhì)量
LINK.r %返回3×1的關(guān)節(jié)齒輪向量
LINK.G? %返回齒輪的傳動(dòng)比
LINK.Jm %返回電機(jī)慣性
LINK.B %返回粘性摩擦
LINK.Tc %返回庫侖摩擦
LINK.dh return legacy DH row
LINK.dyn ? ? return legacy DYN row
其中robot函數(shù)的調(diào)用格式:
ROBOT ? ? ? ?%創(chuàng)建一個(gè)空的機(jī)器人對(duì)象
ROBOT(robot) ? ? %創(chuàng)建robot的一個(gè)副本
ROBOT(robot, LINK) %用LINK來創(chuàng)建新機(jī)器人對(duì)象來代替robot
ROBOT(LINK, ...) ? ? %用LINK來創(chuàng)建一個(gè)機(jī)器人對(duì)象
ROBOT(DH, ...) %用D-H矩陣來創(chuàng)建一個(gè)機(jī)器人對(duì)象
ROBOT(DYN, ...) %用DYN矩陣來創(chuàng)建一個(gè)機(jī)器人對(duì)象
四、總結(jié)
在機(jī)器人學(xué)的研究中,六自由度機(jī)械臂的復(fù)雜運(yùn)動(dòng)控制具有很大的研究價(jià)值和實(shí)用意義。而運(yùn)動(dòng)學(xué)分析對(duì)機(jī)械臂運(yùn)動(dòng)控制又尤為重要。關(guān)于機(jī)器人正運(yùn)動(dòng)學(xué)與逆運(yùn)動(dòng)學(xué)問題上,前人已經(jīng)做了大量的研究工作,現(xiàn)在也有了廣泛的參考資料。