周明月



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