熊思淇,陳緒兵,張 聰,戴耀南
武漢工程大學(xué)機電工程學(xué)院,武漢 430205
自焊接機器人問世以來,在制造業(yè)的多個領(lǐng)域當中應(yīng)用越來越廣泛,包括汽車工業(yè)、航天航空以及船舶等行業(yè)。經(jīng)過50 多年的發(fā)展,焊接機器人的焊接質(zhì)量越來越穩(wěn)定,對于改善勞動條件和提高生產(chǎn)效率起到了重要的作用,尤其是在焊接領(lǐng)域,已經(jīng)逐漸取代了原始的人工焊接,從提高和優(yōu)化焊接質(zhì)量和效率的角度出發(fā),提出多機器人協(xié)調(diào)焊接的方法[1-2]。在研究多機器人的協(xié)調(diào)焊接之前,首先需要對單個焊接機器人進行運動學(xué)問題研究。其中,機器人的運動學(xué)建模是通過機器人的正向運動學(xué)分析來理解角度參數(shù)轉(zhuǎn)換成坐標的具體過程;通過機器人的逆向運動學(xué)來理解位置坐標是如何轉(zhuǎn)化成角度參數(shù)的,同時在這個過程中還需要對奇異解進行分析判斷,選擇正確合理的解;按照作業(yè)要求明確機器人的軌跡規(guī)劃,掌握其末端運動狀態(tài)(末端點運動軌跡)。大部分專家學(xué)者在進行機器人運動仿真研究的時候都選擇應(yīng)用MATLAB 環(huán)境中的Robotics Toolbox[3-4]并借助于仿真參數(shù)進行機器人研究,包括其正、逆運動學(xué)和軌跡規(guī)劃等內(nèi)容。譬如,左富勇等[5]對四自由度的SCARA 機器人進行了運動學(xué)仿真,得到了該機器人平滑的運動軌跡,但是對六自由度的機器人適用性不足;王智興[6]、干敏耀[7]分別對Standford和Puma 機器人進行仿真研究,但都只是針對特定型號的機器人進行研究;陸家皓等[8]在研究當中,以6R 關(guān)節(jié)型ER3A-C60 機器人為對象,對其相關(guān)參數(shù)的合理性進行了仿真研究和驗證,不足之處在于沒有進行正、逆運動學(xué)仿真驗證,導(dǎo)致無法獲得完整的仿真結(jié)果;李瑾等[9]直接調(diào)用工具箱中的逆解函數(shù)來對Puma250 機器人求逆解,由于逆解函數(shù)是運用迭代法來求解逆運動,存在著局限性,導(dǎo)致出現(xiàn)了漏解的情況,因此不能對逆運動學(xué)進行逆解驗證。針對上述問題,本研究以應(yīng)用較為廣泛的ABBIRB1600 型號機器人為研究對象,針對其正逆運動學(xué)進行了研究和分析,借助于標準Denavit-Hartenberg(D-H)建模法,構(gòu)建機器人模型以及正逆運動學(xué)方程,并通過調(diào)用工具箱正逆解函數(shù)的方式對正逆運動學(xué)結(jié)果進行求解,然后分別比對計算值和實際實驗值,對本研究構(gòu)建的運動學(xué)模型和正逆運算結(jié)果的正確性進行科學(xué)的驗證,為今后研究焊接機器人軌跡提供了必不可少的理論基礎(chǔ)和運動學(xué)模型。
機器人運動學(xué)指的是,對機器人的每個關(guān)節(jié)點和大地坐標系之間的相對位姿進行全面的分析,最終獲取其末端執(zhí)行器與大地坐標系相對應(yīng)的位姿、速度和加速度情況。其整體分析過程可以分成兩個不同的類型,分別是正、逆運動學(xué),具體分析過程如圖1 所示。
圖1 運動學(xué)分析流程圖Fig.1 Flowchart of kinematics analysis
ABBIRB1600 型工業(yè)機器人是一款6R 關(guān)節(jié)串聯(lián)機器人,其仿真模型如圖2 所示,它的主體組成包括基座、腰部、大小臂以及手腕等部分,各相鄰關(guān)節(jié)之間都是通過轉(zhuǎn)動關(guān)節(jié)來聯(lián)接,在焊接、碼垛等領(lǐng)域均有廣泛的應(yīng)用。
根據(jù)圖3 中機器人的結(jié)構(gòu)構(gòu)型以及相關(guān)尺寸參數(shù),通過標準D-H 參數(shù)建模方法,建立機器人坐標系,其建模步驟如下:
1)繞zi-1軸旋轉(zhuǎn)θi,使得xi-1與xi互相平行,記為旋轉(zhuǎn)矩陣R;
圖2 Robotstudio 中ABBIRB1600 仿真模型圖Fig.2 Diagram of ABBIRB1600 simulation model in Robotstudio
圖3 ABBIRB1600 結(jié)構(gòu)構(gòu)型和尺寸參數(shù)(單位:mm)Fig.3 Structural configuration and dimension parameters of ABBIRB1600(Unit:mm)
2)沿zi-1軸 平移di距離,使得xi-1與xi共線;
3)沿xi軸平移ai距離,使得xi-1與xi的原點重合,記為平移矩陣T;
4)將zi-1軸繞xi軸旋轉(zhuǎn)αi,使得zi-1軸與zi對準。
構(gòu)建的機器人坐標系如圖4 所示,獲得的連桿參數(shù)以及關(guān)節(jié)變量如表1 所示,其中ai和di分別表示相鄰關(guān)節(jié)間的連桿長度和連桿偏移量,αi代表相連坐標系間的扭轉(zhuǎn)角度,θi代表關(guān)節(jié)旋轉(zhuǎn)角度制。在各參數(shù)之中,只有θi為可變參數(shù),其余參數(shù)均為定值。
圖4 ABBIRB1600 機器人坐標系Fig.4 ABBIRB1600 robot coordinate system
表1 ABBIRB1600-10/1.45 機器人D-H 參數(shù)Tab.1 ABBIRB1600-10/1.45 Robot D-H parameter
已知機械臂每個關(guān)節(jié)的角度參數(shù)之后,可以根據(jù)關(guān)節(jié)和末端執(zhí)行器間的坐標變化關(guān)系,對末端執(zhí)行器的位置以及姿態(tài)進行正確的求解。相鄰坐標系與能夠通過齊次變換矩陣進行表述[10]:
對應(yīng)于機器人連桿坐標系的描述,可以得到機器人相鄰兩個關(guān)節(jié)之間的齊次變換矩陣分別為[11-13]:
ABBIRB1600 機器人末端坐標系{ }6 與基坐標系{ }0 之間的變換矩陣為且有:
將機器人的每個坐標轉(zhuǎn)換矩陣帶入式(2),即可得到機器人正向運動學(xué)方程:
為 簡 化 公 式,使 用si代 表 sinθi,ci代 表cosθi,s23代表代表故式(3)化簡得到:
機器人逆運動學(xué),就是通過機器人末端笛卡爾空間來求解機器人關(guān)節(jié)空間,即在知道末端位置和姿態(tài)的情況下,求出各個關(guān)節(jié)的旋轉(zhuǎn)角度。求逆解具有多種不同的方法,然而在實際應(yīng)用當中,一般使用兩種封閉解法來獲取有效封閉解:一是代數(shù)解法,另一種是幾何解法。幾何解法需要將D-H 參數(shù)表的空間幾何參數(shù)轉(zhuǎn)換到平面幾何參數(shù)上去,并求解;代數(shù)解法是運用變換矩陣就得到求解的三角函數(shù)方程式。相比于幾何解法,雖然代數(shù)解法過程復(fù)雜,但能夠得到全部的解,且所求角度均處在適當?shù)南笙蘩铮适褂么鷶?shù)解法。在機器人運動方程(3)的兩端分別乘上對應(yīng)的逆矩陣,分離變量,并根據(jù)各個關(guān)節(jié)變量的值來求解矩陣的相等元素[14]。
1)計算θ1
令式(4)兩端(3,3)和(3,4)相等,得:
由于機械臂的旋轉(zhuǎn)對應(yīng)的不同的姿態(tài),則θ1會有兩組解:
2)計算θ3
令式(4)兩端(2,3)和(2,4)相等,得:
其中,
由于m中含有關(guān)于θ1的三角函數(shù),因此θ3的大小與θ1的取值有關(guān),并且θ3也會因為機械臂的旋轉(zhuǎn)對應(yīng)著不同的姿態(tài),所以θ3存在著兩組解。
3)計算θ2
根據(jù)步驟2 可推出θ23,其中θ2的值與θ1、θ3的取值相關(guān),θ1的值會產(chǎn)生兩個θ3的值,每一組θ1和θ3對應(yīng)產(chǎn)生一個θ2的值,所以可以通過式(9)得到四組θ2的解:
4)計算θ5
令式(9)兩端(3,3)相等,得:5)計算θ4
令式(9)兩端(1,3)和(2,3)相等,得:
6)計算θ6
令式(9)兩端(3,1)和(3,2)相等,得:
至此,關(guān)節(jié)角θ1~θ6已經(jīng)通過計算全部求出,完成了ABBIRB1600 焊接機器人的逆解求取過程。
通過圖5 逆運動學(xué)求解過程可以看出θ1、θ2、θ3存在著多組逆解,并且相互組合可以產(chǎn)生八組逆解。多個逆解的存在讓機器人的末端位姿可以有多種姿態(tài)選擇,但在實際運動過程中,需要考慮整個運動過程以及機械參數(shù)的約束,因此部分逆解可能處于機械臂不可達空間內(nèi),或者某些位姿不符合具體的任務(wù)要求,所以對得到的逆解必須進行驗證。
圖5 逆運動學(xué)求解過程Fig.5 Inverse kinematics solution
在MATLAB 軟件當中,有專門服務(wù)于工業(yè)機器人的工具箱Robotics Toolbox,它能夠提供多種機器人所需的運動學(xué)函數(shù)??梢砸罁?jù)表2 的數(shù)據(jù),利用Robotics Toolbox 工具箱完成機器人建模[15-16],獲取到的初始位姿如圖6 所示。
圖6 MATLAB 中ABBIRB1600 的初始位姿Fig.6 Initial pose of ABBIRB1600 in MATLAB
按照隨機的方式挑選一組關(guān)節(jié)變量,將其應(yīng)用于正運動學(xué)方程求解正確性的驗證;使用公式(3)所示的正運動學(xué)方程當作計算值,選擇末端執(zhí)行器位姿當作真值。 隨機選取關(guān)節(jié)變量q1=[0 0 0 0 0 0],將計算值與真值進行數(shù)據(jù)對比。
通過1.2 節(jié)機器人正運動學(xué)方程,帶入q1的值,求得末端位姿矩陣T1:
使用Robotics Toolbox 求解正運動學(xué),可以獲取末端位姿矩陣G:
對比計算值T1與真值G,驗證了機器人正運動學(xué)方程與運動學(xué)模型的正確性。
根據(jù)Robotics Toolbox 工具箱可以對關(guān)節(jié)變量為q2=[45 30 60 90 15 22.5]的機器人進行求解,可得其末端位姿矩陣T2:
將求解得到的T2代入(1.3)節(jié)中的逆運動學(xué)公式可以計算出機器人多組運動學(xué)逆解Q2=[θ1θ2θ3θ4θ5θ6]。通 過MATLAB 編 寫 計 算 程序?qū)δ娼膺M行計算,如表2 所示。
根據(jù)表2 可知,每個位姿都能夠得到八組解,然而在實際的應(yīng)用中,在機械機構(gòu)約束和不同桿件運動干涉的影響下,機器人能夠真正到達的關(guān)節(jié)角度只有其中的一部分。將數(shù)據(jù)進行比對之后發(fā)現(xiàn),表2 當中第4 組的取值等同于q2,由此可以對逆運動學(xué)的正確性進行有效的驗證。
軌跡規(guī)劃方法是對機器人在運動狀態(tài)下的位移、角速度及角加速度進行規(guī)劃,得到其運動曲線,并觀察機器人具體的運動狀態(tài)[17-18]。本文選擇的是關(guān)節(jié)空間軌跡規(guī)劃法,在空間中選擇任意兩點,調(diào)用工具箱在關(guān)節(jié)空間內(nèi)對機器人進行軌跡規(guī)劃。設(shè)關(guān)節(jié)空間中初始點對應(yīng)的關(guān)節(jié)轉(zhuǎn)角為末端點對應(yīng)的關(guān)節(jié)轉(zhuǎn)角為得到的運動軌跡如圖7所示。
本研究需要同時針對6 個關(guān)節(jié)進行研究,分別針對其角位移、角速度和角加速度進行規(guī)劃。為了對所有關(guān)節(jié)的運動曲線進行清晰準確的觀察,本文使用MATLAB 繪制了所有關(guān)節(jié)的仿真曲線,如圖8 所示。
表2 位姿T 的運動學(xué)逆解Tab.2 Inverse kinematics of pose T (°)
圖7 ABBIRB1600 初始點到末端點的運動過程:(a)運動軌跡,(b)末端三維軌跡Fig.7 Motion process of ABBIRB1600 from initial point to end point:(a)motion trajectory,(b)three-dimensional trajectory map of end
通過觀察圖8 可以得知,機器人在整體運動過程中,6 個關(guān)節(jié)都能夠保持平穩(wěn)的運動狀態(tài)進行正常工作。所有關(guān)節(jié)的角位移曲線都呈現(xiàn)為光滑無突變,由此可知,每個桿件間都沒有出現(xiàn)錯位沖突;角速度和加速度的曲線都呈現(xiàn)為連續(xù)的狀態(tài),且變化緩和,由此可知,機械臂在工作中能夠保持平穩(wěn)運行,產(chǎn)生的振動幅度較小,對運動學(xué)模型連桿參數(shù)設(shè)計的合理性以及運動學(xué)方程的正確性進行了有效的驗證,也說明了機器人能夠順利到達預(yù)設(shè)位置。
圖8 ABBIRB1600 各關(guān)節(jié)仿真曲線:(a)角位移,(b)角速度,(c)角加速度Fig.8 Simulation curves of each joint of ABBIRB1600:(a)angular displacement,(b)angular velocity,(c)angular acceleration
在本文的研究中,以ABBIRB1600 型號機器人作為研究對象,從運動學(xué)的角度分析了6R 焊接機器人,并對其進行了軌跡規(guī)劃的仿真,根據(jù)仿真結(jié)果得出結(jié)論如下:
1)基于標準D-H 法,建立了ABBIRB1600 機器人的D-H 坐標系,在此基礎(chǔ)上分別求出相鄰連桿間的位姿變換矩陣以及機器人的正逆運動學(xué)方程。借助于運動學(xué)方程的求解過程,分別從正、逆運動學(xué)方面對機器人進行了科學(xué)的分析,然后在MATLAB 環(huán)境當中完成程序編寫,并從理論的層面得出了8 組位姿逆解。將計算值和實際實驗值進行了比對,完成了正逆運動學(xué)方程正確性的驗證工作。
2)借助MATLAB 中的Robotics Toolbox 工具箱完成相關(guān)程序的編寫,然后在關(guān)節(jié)空間內(nèi),進行了機器人運動軌跡的仿真,分別獲取每個關(guān)節(jié)的角位移、角速度以及角加速度和時間變化之間產(chǎn)生的平滑運動曲線,驗證了機器人參數(shù)的合理性。