陳 桂,王建紅,湯玉東
(南京工程學院 自動化學院,南京 211167)
機器人的運動仿真是機器人技術(shù)的一個重要組成部分。通過建立機器人的運動學模型,進行機器人的運動學分析,逆運動學解算和軌跡規(guī)劃,從而分析機器人的運動性能,是機器人研究與應用的一個重要手段和工具。利用計算機可視化和面向?qū)ο蟮氖侄?,通過仿真來模擬機器人的動態(tài)特性,幫助研究人員了解機器人工作空間的形態(tài)及極限,驗證控制方案和算法的合理性,及時找出缺點和不足,進行改進,避免了直接操作實體可能造成的事故和不必要的損失,這必將使得機器人的研究、生產(chǎn)和研究進入一個可預知的新時代。
對于機器人運動學的研究,國內(nèi)外相關的文獻[1-3]中,大多停留在仿真研究階段。本文則選用目前在工業(yè)機器人中最常用的KUKA 六軸機器人作為模型對象,在MATLAB 環(huán)境下進行仿真,不僅以圖形和曲線直觀展示機器人各關節(jié)軸的運動狀態(tài),而且將仿真結(jié)果應用于KUKA KR6-2 機器人實際的運動控制,從而驗證控制方案和算法的有效性。
為了描述機器人相鄰桿件之間的旋轉(zhuǎn)和移動關系,Denvit 和Hartenberg 于1955 年提出了一種為關節(jié)鏈中的每一個桿件建立附體坐標系的矩陣方法― D-H方法。該方法是為每個關節(jié)處的桿件坐標系建立4 ×4 的齊次變換矩陣,以表示它與前一桿件坐標系的關系[4]。對于剛性桿件,其D-H 表示法取決于桿件的以下4 個參數(shù):繞Zi-1軸(按右手規(guī)則)由Xi-1軸轉(zhuǎn)向Xi軸的關節(jié)角θi;從Xi-1軸到Xi軸沿Zi-1軸的偏置距離di;從Zi-1軸到Zi軸沿Xi軸的偏置距離(連桿的長度)ai;以及繞Xi軸(按右手規(guī)則)由Zi-1軸轉(zhuǎn)向Zi軸的偏角(連桿的扭轉(zhuǎn)角)αi。
KUKA KR 6-2 機器人是德國庫卡公司生產(chǎn)的一種六軸工業(yè)機器人,由于它的靈活性,可以廣泛應用于搬運、組裝、機加工等多種領域。其結(jié)構(gòu)簡圖和相關參數(shù)如圖1。根據(jù)圖1 所示的結(jié)構(gòu)簡圖,依據(jù)機器人后置坐標的D-H 參數(shù)表示法,可得出該機器人的D-H 參數(shù)見表1。
圖1 KUKA KR6-2 機器人結(jié)構(gòu)簡圖及參數(shù)
表1 KUKA KR 6-2 機器人D-H 參數(shù)
根據(jù)表1 中的D-H 參數(shù),首先分別建立6 個旋轉(zhuǎn)關節(jié)模型:然后組合成含有此6 個旋轉(zhuǎn)關節(jié)的機器人,并命名為’kr6’。設定初始位置為(0,pi/2,0,0,pi,0),可以畫出表示該機器人位置的三維圖,如圖2。
圖2 KUKA KR6-2 機器人三維結(jié)構(gòu)圖
MATLAB 作為一種仿真工具,其強大的數(shù)值分析、矩陣計算能力和豐富的圖形界面功能,為在眾多科學領域進行科學研究、工程設計提供了全面的解決方案。同時Peter Corke 開發(fā)的基于MATLAB 環(huán)境的Robotics Toolbox 工具箱更為機器人的建模分析和仿真研究提供了更為便利的手段[6]。
根據(jù)機器人后置坐標變換法定義,相鄰兩個坐標系的變換可以分解成下列4 個子變換:
(1)繞Zi軸轉(zhuǎn)動θi;
(2)沿Zi軸移動di;
(3)沿Xi-1軸移動ai;
(4)繞Xi-1軸轉(zhuǎn)動αi;
運用矩陣變換的公式則可以表示為:
根據(jù)表1 中的ai,αi,di,θi四個參數(shù),由于該機器人關節(jié)均為旋轉(zhuǎn)關節(jié),因此θi為關節(jié)變量,ai,αi,di,為常量,由具體的機器人參數(shù)確定。從而,可以推導出相鄰兩個坐標系的齊次變換矩陣:
對于具有6 個旋轉(zhuǎn)關節(jié)的KUKA KR6-2 機器人而言,其末端執(zhí)行器的位置可以通過如下的變化得到:
如果已知機器人各個關節(jié)的運動參數(shù)(θ1,θ2,θ3,θ4,θ5,θ6),代入式(2)和(3)中,得到如式(4)所示的齊次矩陣,即可得出機器人的末端執(zhí)行器所在的姿態(tài)R(nx,ny,nz,ox,oy,oz,ax,ay,az)和位置P(px,py,pz),從而可以進行機器人運動的分析,這是機器人的運動學正解問題。
在MATLAB 中,給定關節(jié)角度,運行運動學正解函數(shù)fkine(),可得機器人的空間位姿。如設關節(jié)角度為(pi/4,pi/2,pi/8,pi/2,7*pi/6,pi/2),則求得空間位姿矩陣T2 如下:
表示機器人的位置為(0.6365,0.7178,1.6818),姿 態(tài) 是(- 0.2706,- 0.2706,0.9239,0.9390,-0.2857,0.1913,0.2122,0.9193,0.3314)。
從上面分析可知,機器人的運動學逆解問題就是已知機器人末端執(zhí)行器的位姿(nx,ny,nz,ox,oy,oz,ax,ay,az,px,py,pz),求出機器人各關節(jié)的關節(jié)變量(θ1,θ2,θ3,θ4,θ5,θ6)。也就是由笛卡爾空間到關節(jié)空間的非線性映射問題。求解運動學逆解問題的方法有幾何法、反變換法、數(shù)值迭代法以及神經(jīng)網(wǎng)絡算法等。在運動學逆解的求取過程中,要考慮到機器人關節(jié)運動的奇異位形問題。
對于機器人位姿矩陣,運行MATLAB 運動學逆解函數(shù)ikine(),可以得到在該位姿下機器人的各關節(jié)角度。如設機器人的空間位姿如圖2 所示,則其位姿齊次變換矩陣T 為:
運動學逆解后求得的關節(jié)角度為(以弧度為單位):
這個結(jié)果與圖2 設定的初始位置的關節(jié)角度(0,pi/2,0,0,pi,0)是一致的。
由于在運動學逆解的求取過程中,用到矩陣的逆運算和反三角函數(shù)運算,因此運動學逆解可能不唯一。同時,因為Robotics Toolbox 運用數(shù)值迭代法求解運動學逆問題,會出現(xiàn)迭代不收斂的情況,從而無法得出某一位姿下的機器人關節(jié)角度。運用神經(jīng)網(wǎng)絡和遺傳算法等智能算法進行機器人運動學逆解的求取也是近年來的研究趨勢[7-8]。
機器人的軌跡規(guī)劃是根據(jù)機器人要完成的任務,根據(jù)一定的約束條件,設計機器人在起點和終點之間各關節(jié)的運動規(guī)律,包括位姿、速度和加速度等,它是運動學反解(位姿反解、速度、加速度反解)的實際應用[4]。機器人的軌跡優(yōu)化是用樣條函數(shù)來擬合機器人的軌跡運動策略,也是研究的熱門領域[9-10]。
軌跡規(guī)劃主要有兩種形式:點到點運動(PTP)的軌跡規(guī)劃和連續(xù)點運動(CP)的軌跡規(guī)劃。軌跡規(guī)劃既可在關節(jié)變量空間中進行,也可在笛卡爾空間進行[11]。對于關節(jié)變量空間的規(guī)劃,要規(guī)劃關節(jié)變量的時間函數(shù)及其一階、二階時間導數(shù),以便描述末端執(zhí)行器的預定運動。在笛卡爾空間規(guī)劃中,要規(guī)劃機器人末端執(zhí)行器的位置、速度和加速度的時間函數(shù),而相應的關節(jié)位置、速度和加速度可根據(jù)末端執(zhí)行器的信息導出。
本仿真以點到點運動(PTP)的軌跡規(guī)劃為例,選用機器人的初始位姿A點為軌跡起始點,位姿矩陣為TA,B點為終點,位姿矩陣為TB。機器人在起始點的各關節(jié)角度如圖2 所示。在軌跡規(guī)劃時,需要得出機器人從A點運動到B點的過程中,各關節(jié)的角度、速度、加速度的變化情況以及機器人末端執(zhí)行器的運動軌跡。選取軌跡起點的初始位姿如圖2 所示,其位姿矩陣TA=T,軌跡終點的位姿矩陣TB=T2。
首先根據(jù)機器人的初始位姿TA運用運動學逆解算法,得出初始關節(jié)角度q0,再根據(jù)終點位姿TB得到終點關節(jié)角度qf,然后綜合考慮機器人運動中的一系列約束條件進行插值計算,可以得出機器人各關節(jié)的角度變化軌跡,分別進行一階和二階導數(shù)運算可以得出各關節(jié)的速度和加速度變化曲線。假設機器人自q0 到qf的時間為4.5s,插值步長取50ms。各關節(jié)角度、速度和加速度變化曲線分別如圖3,圖4 和圖5 所示。同理,若要在笛卡爾空間進行軌跡規(guī)劃,則用節(jié)點間的最簡單路徑法即在空間的一個直線移動和繞某定軸的轉(zhuǎn)動表示,從而得出機器人末端執(zhí)行器的位置變化軌跡如圖6。
圖3 各關節(jié)角度變化曲線
圖3 中的各關節(jié)角度變化曲線只有5 條,表明在該點到點的軌跡運動中,有兩個關節(jié)的角度變化相同,根據(jù)初始位姿和終點位置的運動學逆解可知,關節(jié)4和關節(jié)6 的角度變化相同。
圖4 各關節(jié)速度變化曲線
圖5 各關節(jié)加速度變化曲線
圖6 末端執(zhí)行器的運動軌跡
圖4 的各關節(jié)速度變化曲線和圖5 的加速度變化曲線都是連續(xù)的,表明機器人在從A點到B點的運動過程中,速度和加速度沒有突變,在整個軌跡運動過程中不存在奇異點。
在實驗室設置KUKA KR6-2 機器人按照上述仿真的初始點和終點進行實際的運動控制。將機器人的位置信息保存在‘. dat’文件中,在MATLAB 中讀取該文件,將實際機器人進行點到點運動的空間位置變化情況用曲線表現(xiàn)出來,并與MATLAB 中建立的模型軌跡運動進行比較。如圖7,黑色曲線表示仿真規(guī)劃中的運動軌跡,該規(guī)劃算法采用最短路徑規(guī)劃。紅色曲線則表示機器人實際運動軌跡。
圖7 模型與實際機器人的運動軌跡
由圖7 可知,機器人末端執(zhí)行器在初始位置和終點位置時刻仿真結(jié)果和實際機器人的位置完全一致,從而也驗證了機器人點到點的軌跡跟蹤運動只是在給定的路徑點上能夠保證機器人末端到達期望位姿,而在各個路徑點之間不能保證機器人末端到達期望位姿。
機器人運動學的研究與仿真技術(shù)一直是機器人領域研究的熱點問題,本文在MATLAB 環(huán)境下,運用Robotics Toolbox 工具箱構(gòu)建KUKA 機器人模型,進行運動學仿真、逆運動學求解和軌跡規(guī)劃,并且以圖形方式顯示機器人在笛卡爾空間和關節(jié)空間的運動規(guī)律,能夠在計算機上驗證機器人是否準確按照期望軌跡運動。通過實驗證明,所建立的機器人運動學方程正確,采用仿真分析的方法對減少機器人產(chǎn)品開發(fā)成本,縮短開發(fā)周期,具有非常高的現(xiàn)實意義。
[1]林立俊,柳和生,饒錫新,等. 基于MATLAB 的ARB-120型機器人運動學仿真研究[J]. 組合機床與自動化加工技術(shù),2013(3):67 -69.
[2]臧慶凱,李春貴,閆向磊. 基于MATLAB 的PUMA560 機器人運動仿真研究[J]. 廣西科學院學報,2010,26(4):397 -400.
[3]蘇學滿,孫麗麗,楊明,等. 基于MATLAB 的六自由度機器人運動特性分析[J]. 機械設計與制造,2013(1):78 -80.
[4]蔡自興. 機器人學[M]. 北京:清華大學出版社,2009.
[5]Serdar Kucuk ,Zafer Bingul. Robot Kinematics:Forward and Inverse Kinematics,Industrial Robotics Theory Modelling Control[C]. ISBN 3 - 86611 - 285 - 8,Germany,2006(12):117 -149.
[6]P.I. Corke. Robotics,Vision & Control:Fundamental Algorithms in MATLAB[M]. Springer,2011. ISBN 978 -3-642 -20143 -1.
[7]Thiang,Handry K.,Rendy P.. Artificial Neural Network with Steepest Descent Backpropagation Training Algorithm for Modeling Inverse Kinematics of Manipulator[C]. World Academy of Science,Engineering and Technology,2009,36:672 -675.
[8]吳振宇,姚明江,馮林,等. 基于遺傳粒子群的PUMA 機器人逆運動求解[J]. 計算機仿真,2011,28 (10):173 -176.
[9]張傳壘,葛為民,宋博. 機械手軌跡規(guī)劃中的BP 神經(jīng)網(wǎng)絡方法及仿真[J]. 組合機床與自動化加工技術(shù),2007(10):22 -24.
[10]劉能廣,任天然,柴蒼修,等.基于遺傳算法的噴漆機器人軌跡的二層規(guī)劃[J]. 機械設計與制造,2008(6):173 -175.
[11]勾治踐,牛永康,王成.基于B 樣條的6R 機器人軌跡規(guī)劃及仿真[J].煤礦機械,2013,34(2):49 -50.