李雪梅,崔菲菲,駱海濤,李 喆
(1.桂林電子科技大學 機電工程學院,桂林 541004;2.中國科學院沈陽自動化研究所,沈陽 110016)
隨著制造業(yè)的日益發(fā)展與進步,各行各業(yè)對產(chǎn)品的質(zhì)量和生產(chǎn)效率的要求也在不斷提高,然而人工作業(yè)很難滿足工業(yè)發(fā)展的需求[1]。為了解決這一問題,許多行業(yè)開始使用機器人代替人工作業(yè),從而促使工業(yè)機器人的需求量越來越大。同時,對機器人的控制精度、穩(wěn)定性以及生產(chǎn)效率的要求也在不斷提高[2],而機器人運動學分析是實現(xiàn)機器人運動控制與軌跡規(guī)劃,提高機器人控制精度、穩(wěn)定性以和生產(chǎn)效率的基礎(chǔ)[3]。
機器人的所有操作動作都靠其關(guān)節(jié)變化來實現(xiàn),關(guān)節(jié)數(shù)越多其靈活性越高,越能完成較復雜的動作[4]。目前使用最為廣泛的是6自由度工業(yè)器人,該類型機器人的運動學分析相對復雜。因此,對6自由度機器人的運動學進行研究很有必要。
以EFORT機器人作為分析模型,該模型是一個開式運動鏈機器人。它由7個連桿通過6個旋轉(zhuǎn)關(guān)節(jié)串聯(lián)而成,可以在工作空間以不同的方式運動。采用Denavit與Hartenberg兩位科學家提出的D-H參數(shù)法來描述連桿和關(guān)節(jié)的幾何關(guān)系。由于連桿0是機器人的基座,連桿6連接著末端執(zhí)行器。因此,在機座處建立基坐標系{0},在連桿6處建立工具坐標系{6},其他坐標系分別建在余下的各個關(guān)節(jié)處[5],如圖1所示。
圖1 機器人的D-H空間坐標系
根據(jù)圖1建立的機器人連桿坐標系,可以獲得EFORT機器人的D-H參數(shù)表,如表1所示。
表1 EFORT機器人參數(shù)
機器人正運動學分析是在已知機器人各個關(guān)節(jié)的轉(zhuǎn)角θi和關(guān)節(jié)偏移di的條件下,通過運動學方程求解出機器人末端執(zhí)行器任意時刻的位姿[6]。根據(jù)EFORT機器人坐標系和D-H參數(shù)表,可以計算出相鄰兩個坐標之間的變換矩陣nTn+1(i=1,2,…,6)。即:
由于該型機器人含有6個旋轉(zhuǎn)關(guān)節(jié),所以存在6個未知變量,即關(guān)節(jié)角θ1~θ6,將6個關(guān)節(jié)參數(shù)代入到式(1)中,然后依次相乘,得到六自由度機器人末端執(zhí)行器相對基坐標系的總變換矩陣:
為了檢驗機器人的正運動學方程是否正確,將表1中的數(shù)據(jù)代入式(2)中并利用MATLAB計算,計算的結(jié)果為:
0T6的左側(cè)3x3矩陣表示機器人的姿態(tài),可以發(fā)現(xiàn):機器人末端的x軸與基坐標系的y軸方向相反,y軸與基坐標系的x軸同向,z軸與基坐標系的z軸同向。第四列元素代表機器人末端的位置,可以發(fā)現(xiàn):機器人末端位置在基坐標系中沿x0軸平移了940mm的距離,沿z0軸平移了1290mm的距離[7]。計算結(jié)果與圖1所示的工具坐標系6的位姿完全相同,表明正運動學方程是正確的。
機器人的逆運動學分析是在已知機器人末端執(zhí)行器某一個期望點位置和姿態(tài)的條件下,求解機器人6個旋轉(zhuǎn)關(guān)節(jié)的參數(shù)。由于所研究的EFORT機器人滿足Piper準則,所以采用反變換法求解6個關(guān)節(jié)角度值。由式(1)可以發(fā)現(xiàn),矩陣中含有三角函數(shù),為了使角度解耦[8],可用單個矩陣的“逆”左乘末端執(zhí)行器的位姿矩陣0T6,于是可求得各關(guān)節(jié)變量θ1~θ6,依次求得結(jié)果如下:
由于在[-180°,180°]區(qū)間內(nèi),θ1有1個解,θ2、θ3分別有4個解,θ4、θ5、θ6分別有8個解,因此可以得到8組封閉解。
為了檢驗逆運動學算法是否正確,在機器人的工作空間中任意選取一個末端點的位姿,其矩陣為:
調(diào)用MATLAB工具箱中的robot.ikine(T)函數(shù),計算出各個連桿的關(guān)節(jié)角為:
q=[0,-1.5708,0.5236,0,1.0472,0]
用時0.043毫秒。由于機器人工具箱中自帶的ikine函數(shù)在求解時會出現(xiàn)迭代不收斂的情況,從而無法確定每次獲得的任意位姿下機器人的關(guān)節(jié)角度是否都是準確的、合理的[9]。因此,用MATLAB編寫出前文用反變換法計算出的逆解表達式的相應代碼,可求出機器人的8組封閉解:
用時0.006毫秒。將以上8組解分別代回MATLAB的fkine函數(shù)中,均能得到與式(4)相同的結(jié)果,從而對逆運動學算法的準確性進行了檢驗。
為了更直觀地觀察機器人在工作空間中的運動狀態(tài),采用MATLAB軟件對其進行運動學仿真。利用MATLAB Robotics Toolbox中的Link和robot函數(shù)對機器人的初始位姿進行建模。相關(guān)程序如下:
建立的模型如圖2所示。
圖2 機器人三維結(jié)構(gòu)圖
圖2顯示,將初始值(0,-pi/2,0,0,pi/2,-pi/2)分別輸入到q1~q6中,可以得到機器人末端的位姿,與圖1所示位姿相同,進一步檢驗了正運動學的正確性。也可以通過拖動q1~q6的值來觀察機器人在空間中的運動情況,方便實時模擬仿真。
當機器人的所有關(guān)節(jié)進行所有可能的運動時,機器人末端執(zhí)行器所能達到的所有點的集合稱為機器人的工作空間。對機器人的工作空間進行分析,常用的方法是蒙特卡羅法,該法是通過隨機抽樣來使機器人的關(guān)節(jié)取值多樣化,以便在笛卡爾空間中獲得大量的末端點,進而可獲得機器人工作空間的形狀。該法求解步驟如下:
1)由機器人的正運動學方程,可以求解到機器人末端參考點在笛卡爾坐標系中的位置向量為:
2)使用MATLAB中的RAND函數(shù),可以在0~1范圍內(nèi)得到一組偽隨機數(shù),得到各個關(guān)節(jié)變量的隨機值:
其中:θimax、θimin分別表示關(guān)節(jié)i運動轉(zhuǎn)角范圍的最大、小值;N為迭代次數(shù),這里N取值為20000。
3)將機器人各關(guān)節(jié)變量隨機生成的N個隨機數(shù)代入末端執(zhí)行器位置向量[px,py,pz]T中,可得機器人末端執(zhí)行器在笛卡爾空間中的位置坐標。
4)借助MATLAB中的plot3函數(shù)繪制出機器人末端的工作空間點狀云圖,如圖3所示。
圖3 三維工作空間
圖4、圖5分別為空間點云圖在xoy二維平面和xoz二維平面上的投影。機器人的三維空間隨機位置點數(shù)量足夠的多,獲得的空間的精確度就越高,空間輪廓也越清晰。
圖4 XOY平面投影
圖5 XOZ平面投影
通過分析機器人的工作空間點云圖可以發(fā)現(xiàn),機器人的工作空間沒有出現(xiàn)空腔和空洞,說明機器人整體上滿足作業(yè)要求[10]。
機器人的可操作性是一個相對重要的技術(shù)指標,它關(guān)系到機器人在工作過程中與操作目標之間的協(xié)調(diào)性,這對于提高生產(chǎn)效率及生產(chǎn)安全性都至關(guān)重要[11]。
分析機器人的可操作性,一般用雅克比矩陣J(q)的行列式是否為0來判別機器人是否處于奇異位置,用雅克比矩陣的奇異性來描述機器人的靈巧性[12]。速度可操縱性橢球體可以表示機器人任意改變末端執(zhí)行器位置和方向的能力。
末端執(zhí)行器速度空間橢球體方程為:
式(J(q)J(q)T)-1指工作空間中的某個橢球,也叫作機器人操作度橢球。末端執(zhí)行器可以以較高的速度沿著橢球的主軸方向運動,而以較慢的速度在副軸上運動。如果該橢球的形狀近似于球形,即它所有的半徑均在同一數(shù)量級,那么機器人末端可以達到任意的笛卡爾速度。如果其中一個或多個半徑相對較小,表明機器人末端不能達到那些小半徑所對應的速度。
當關(guān)節(jié)角為[0,-π/2,-π/2,0,π/6,-π/2]時,機器人是奇異的。然后用MATLAB 中的plot_ellipse(J*J’)函數(shù)繪制出末端執(zhí)行器平移速度橢球,如圖6所示,可以發(fā)現(xiàn),末端執(zhí)行器的平移速度橢球近似于一個厚度幾乎為零的厚板。這表明機器人不能繞小半徑對應的方向旋轉(zhuǎn),同時用MATLAB工具箱中的maniplty函數(shù)計算出此狀態(tài)下的機器人可操作度為0。
圖6 機器人末端平移速度橢球
當機器人處于標準位置時,末端執(zhí)行器的旋轉(zhuǎn)速度橢球如圖7所示。由圖7可以看出:機器人末端執(zhí)行器旋轉(zhuǎn)速度橢球近似于一個球體,所以末端執(zhí)行器可以在y軸和z軸方向?qū)崿F(xiàn)比x軸方向更高的速度,機器人的可操作度大一些。此時機器人旋轉(zhuǎn)操作度為0.475631,平移操作度為2.44949。
圖7 機器人末端旋轉(zhuǎn)速度橢球
以EFORT機器人作為研究目標,采用D-H方法完成了6R機器人的運動學分析。通過兩個相鄰連桿之間的變換矩陣順次相乘得到末端執(zhí)行器的位姿矩陣。根據(jù)反變換法求解出機器人的8組封閉解,并運用MATLAB軟件檢驗了其正、逆運動學方程的準確性和合理性。結(jié)果表明:用反變換編寫的函數(shù)求解速度要快于工具箱自帶函數(shù)求解速度。其次,依據(jù)蒙特卡羅法分析了機器人的工作空間,結(jié)果顯示,所得到的點云圖均勻且并不存在空腔等問題。最后,利用雅克比矩陣函數(shù),分析了機器人的靈活性,結(jié)果表明機器人具有良好的可操作性。