董慧穎 梁爽
摘 要:隨著機(jī)器人技術(shù)的發(fā)展和應(yīng)用,機(jī)器人在現(xiàn)代工業(yè)生產(chǎn)中扮演著越來(lái)越重要的角色。機(jī)器人誕生是科學(xué)技術(shù)與社會(huì)進(jìn)步的必然結(jié)果,從根本上改變了原來(lái)傳統(tǒng)的生產(chǎn)體系和生產(chǎn)方式。本文在MATLAB環(huán)境下,對(duì)PUMA560機(jī)器人進(jìn)行參數(shù)設(shè)計(jì),分析PUMA560機(jī)器人的運(yùn)動(dòng),討論機(jī)器人的正運(yùn)動(dòng)學(xué)、逆運(yùn)動(dòng)學(xué)、軌跡規(guī)劃及仿真。
關(guān)鍵詞:機(jī)器人運(yùn)動(dòng)學(xué);PUMA560;軌跡規(guī)劃;計(jì)算機(jī)仿真
對(duì)機(jī)器人進(jìn)行圖形仿真,可以將機(jī)器人仿真的結(jié)果以圖形的形式表示出來(lái),從而直觀地顯示出機(jī)器人的運(yùn)動(dòng)情況,得到從數(shù)據(jù)曲線或數(shù)據(jù)本身難以分析出來(lái)的許多重要信息,還可以從圖形上看到機(jī)器人在一定控制條件下的運(yùn)動(dòng)規(guī)律。一個(gè)新的機(jī)器人工作程序編制完成后,先在仿真軟件中觀察運(yùn)行結(jié)果,分析檢驗(yàn)軌跡規(guī)劃和作業(yè)規(guī)劃的正確性和合理性,為離線編程技術(shù)的研究提供有效的驗(yàn)證手段。本文在MATLAB環(huán)境下,對(duì)六自由度的PUMA560機(jī)器人進(jìn)行參數(shù)設(shè)計(jì),然后討論了正、逆運(yùn)動(dòng)學(xué)算法,軌跡規(guī)劃問(wèn)題,最后在MATLAB環(huán)境下,運(yùn)用機(jī)器人工具箱編制簡(jiǎn)單的程序語(yǔ)句,快速完成了機(jī)器人的運(yùn)動(dòng)學(xué)仿真。
1 PUMA560機(jī)器人參數(shù)設(shè)計(jì)
1.1 連桿參數(shù)和坐標(biāo)系
一般移動(dòng)關(guān)節(jié)及轉(zhuǎn)動(dòng)關(guān)節(jié)共同作用組成機(jī)器人的操作臂,各個(gè)關(guān)節(jié)都具有1個(gè)自由度。著重研究具有6個(gè)自由度的工業(yè)機(jī)器人。通常規(guī)定連桿O表示基座,還規(guī)定基座,即連桿O不在探討的6個(gè)連桿之中。關(guān)節(jié)1使基座與連桿1相接;關(guān)節(jié)2使連桿1與連桿2相接;關(guān)節(jié)3使連桿2與連桿3相接,以此類推。如圖1所示,為PUMA560機(jī)器人的關(guān)節(jié)和連桿坐標(biāo)系,該機(jī)器人通過(guò)六個(gè)關(guān)節(jié)及六個(gè)連桿組合而成。機(jī)器人的基座,即連桿O保持靜止不動(dòng),連桿6與手固定相連。
1.2 PUMA560機(jī)器人連桿坐標(biāo)系
在每個(gè)連桿上固接一個(gè)坐標(biāo)系,用來(lái)判斷機(jī)器人各連桿間的相對(duì)運(yùn)動(dòng)關(guān)系。規(guī)定{0}代表坐標(biāo)系與基座固接,{i}代表坐標(biāo)系與連桿i固接。
建立連桿坐標(biāo)系的步驟:1)尋得所有關(guān)節(jié)軸,在關(guān)節(jié)軸的軸線上畫出延長(zhǎng)線,以下步驟2)至5)中,只討論相鄰的兩個(gè)軸線,即關(guān)節(jié)軸i和關(guān)節(jié)軸i+1。2)尋得關(guān)節(jié)軸i和關(guān)節(jié)軸i+1之間的交點(diǎn)或關(guān)節(jié)軸i和關(guān)節(jié)軸i+1的公垂線,連桿坐標(biāo)系{i}的原點(diǎn)為關(guān)節(jié)軸i和關(guān)節(jié)軸i+1的交點(diǎn)或公垂線與關(guān)節(jié)軸i的交點(diǎn)。3)規(guī)定Zi軸的方向與關(guān)節(jié)軸i相同。4)規(guī)定Xi軸的方向與公垂線相同,如果關(guān)節(jié)軸i和關(guān)節(jié)軸i+1相交,則規(guī)定Xi軸與關(guān)節(jié)軸i和關(guān)節(jié)軸i+1所構(gòu)成的平面相垂直。5)規(guī)定Yi軸的方向以右手定則為準(zhǔn)。6)把0作為第一個(gè)關(guān)節(jié)變量時(shí),規(guī)定坐標(biāo)系{0}和坐標(biāo)系{1}相重合。坐標(biāo)系{N}的坐標(biāo)原點(diǎn)和XN的方向不固定,但在選擇時(shí)一般使連桿參數(shù)為0。
1.3 PUMA560機(jī)器人連桿參數(shù)
依據(jù)給定的連桿坐標(biāo)系,相關(guān)的連桿參數(shù)可規(guī)定如下:
1)ai為沿Xi軸,從Zi移動(dòng)至Zi+1的距離。
2)αi為繞Xi軸,從Zi旋轉(zhuǎn)至Zi+1的角度。
3)di為沿Zi軸,從Xi-1移動(dòng)至Xi的距離。
4)θi為繞Zi軸,從Xi-1旋轉(zhuǎn)至Xi的角度。
2 PUMA560機(jī)器人的運(yùn)動(dòng)學(xué)分析
機(jī)器人操作臂運(yùn)動(dòng)學(xué)方程的研究?jī)?nèi)容,為操作臂各個(gè)連桿間的位移關(guān)系、速度關(guān)系及加速度關(guān)系。連桿通過(guò)移動(dòng)或轉(zhuǎn)動(dòng)關(guān)節(jié)串聯(lián)形成機(jī)器人操作臂,可以作為一個(gè)開式運(yùn)動(dòng)鏈進(jìn)行研究。開式運(yùn)動(dòng)鏈一端固定在基座上,另一端不固定,利用末端執(zhí)行器來(lái)操縱物體以完成各種任務(wù)。驅(qū)動(dòng)器使關(guān)節(jié)運(yùn)動(dòng),并帶動(dòng)連桿運(yùn)動(dòng),使手爪到達(dá)所規(guī)定的位姿。
軌跡規(guī)劃的過(guò)程中,重點(diǎn)研究操作臂末端執(zhí)行器相對(duì)于固定參考系的空間描述問(wèn)題。在每個(gè)連桿上固接一個(gè)坐標(biāo)系,用來(lái)判斷機(jī)器人各連桿間的相對(duì)運(yùn)動(dòng)關(guān)系。Denavit 和Hartenberg在1955年提出的一種通用的方法,稱為D-H矩陣方法。該方法得到手爪坐標(biāo)系相對(duì)于參考系的等價(jià)齊次變換矩陣,使操作臂運(yùn)動(dòng)方程得以建立。
2.1 機(jī)器人正運(yùn)動(dòng)學(xué)
機(jī)器人的正向運(yùn)動(dòng)學(xué)。描述的就是機(jī)器人的關(guān)節(jié)空間到末端笛卡爾空間的映射關(guān)系,即給定連桿的各項(xiàng)參數(shù),求解末端連桿坐標(biāo)系相對(duì)于基坐標(biāo)系的位姿。
2.2 機(jī)器人逆運(yùn)動(dòng)學(xué)
機(jī)器人的逆運(yùn)動(dòng)學(xué),描述的是機(jī)器人的末端笛卡爾空間到關(guān)節(jié)空間的映射關(guān)系。即已知末端連桿的位姿,求解各關(guān)節(jié)變量.
3 軌跡規(guī)劃
機(jī)器人在運(yùn)動(dòng)過(guò)程中的速度、位移及加速度,稱為機(jī)器人運(yùn)動(dòng)軌跡。依據(jù)機(jī)器人工作任務(wù)要求,并給出預(yù)期的運(yùn)動(dòng)軌跡的過(guò)程,稱為軌跡規(guī)劃。軌跡規(guī)劃過(guò)程中,需要考慮機(jī)器人及機(jī)器人周圍環(huán)境模型,是否有障礙約束及是否有路徑約束等一連串的問(wèn)題。近年來(lái),己經(jīng)擁有眾多形式各異的軌跡規(guī)劃方法,各類方式方法優(yōu)點(diǎn)及缺點(diǎn)并存,其中包括對(duì)操作空間的規(guī)劃及對(duì)關(guān)節(jié)空間的規(guī)劃。在關(guān)節(jié)空間中的軌跡規(guī)劃問(wèn)題相對(duì)簡(jiǎn)單,而對(duì)在操作空間中的軌跡規(guī)劃問(wèn)題的研究相對(duì)較難解決,受到種種原因的限制,一直是軌跡規(guī)劃的一個(gè)難點(diǎn),至今還未有較好的解決方法。
關(guān)節(jié)空間的軌跡規(guī)劃:首先,運(yùn)用運(yùn)動(dòng)學(xué)逆方程把路徑點(diǎn)變?yōu)殛P(guān)節(jié)角度值。其次,使各個(gè)關(guān)節(jié)變量從起始點(diǎn)開始,順次經(jīng)過(guò)所有路徑點(diǎn)到達(dá)目標(biāo)點(diǎn),接著映射成一個(gè)光滑的時(shí)間函數(shù),最后得到在關(guān)節(jié)空間的軌跡規(guī)劃??傮w的運(yùn)動(dòng)時(shí)間相同,但各個(gè)關(guān)節(jié)的時(shí)間函數(shù)間相互獨(dú)立。主要運(yùn)用三次多項(xiàng)式時(shí)間函數(shù)和五次多項(xiàng)式時(shí)間函數(shù)對(duì)軌跡規(guī)劃結(jié)果進(jìn)行分析。
4 MATLAB運(yùn)動(dòng)仿真
按照一定的要求對(duì)PUMA560關(guān)節(jié)型機(jī)器人進(jìn)行了參數(shù)設(shè)計(jì),前邊討論了該機(jī)器人的運(yùn)動(dòng)學(xué),運(yùn)動(dòng)軌跡規(guī)劃問(wèn)題,在MATLAB環(huán)境下,機(jī)器人工具箱對(duì)該機(jī)器人的正運(yùn)動(dòng)學(xué),逆運(yùn)動(dòng)學(xué),軌跡規(guī)劃進(jìn)行了仿真。通過(guò)仿真,觀察到了機(jī)器人各個(gè)關(guān)節(jié)的運(yùn)動(dòng),并得到了所需的數(shù)據(jù),說(shuō)明了所設(shè)計(jì)的參數(shù)是正確的,從而能夠達(dá)到預(yù)定的目標(biāo)。
4.1 構(gòu)建機(jī)器人對(duì)象
利用機(jī)器人工具箱構(gòu)建機(jī)器人對(duì)象,首先需要對(duì)機(jī)器人的各個(gè)關(guān)節(jié)進(jìn)行構(gòu)建,然后再將這些關(guān)節(jié)組合起來(lái),這樣對(duì)機(jī)器人對(duì)象的整體構(gòu)建就完成了。構(gòu)建一個(gè)機(jī)器人對(duì)象需要關(guān)節(jié)質(zhì)量、關(guān)節(jié)類型、粘性摩擦、庫(kù)倫摩擦、齒輪傳動(dòng)比和D-H參數(shù)等數(shù)據(jù)。構(gòu)建好各個(gè)關(guān)節(jié)才能構(gòu)建機(jī)器人對(duì)象,在構(gòu)建機(jī)器人各關(guān)節(jié)時(shí),會(huì)用到工具箱中的LINK函數(shù)。
根據(jù)PUMA機(jī)器人的參數(shù)說(shuō)明等資料,見表4.1。
link函數(shù)中的參數(shù)從前到后分別代表D-H參數(shù)表中的α、a、θ、d。drivebot是構(gòu)建機(jī)械臂的相關(guān)函數(shù)?,F(xiàn)在將初始角的一些初值進(jìn)行設(shè)定:θ1=|0.63|θ2=0.5|θ3=|0.7|θ4=|0.63|θ5=0.91|θ6=0.06,采用RoboticSToolbox函數(shù)得到的結(jié)果如圖所示,其中x,y,z分別用來(lái)表示抓持器的位置,ax,ay,az表示抓持器的姿態(tài),是用RPY旋轉(zhuǎn)來(lái)表示的,ax表示偏航角,ay表示俯仰角,az表示滾動(dòng)角。q1,q2,q3,q4,q5,q6為六個(gè)關(guān)節(jié)角度值。
4.2 運(yùn)動(dòng)學(xué)仿真
正運(yùn)動(dòng)學(xué)的求解過(guò)程是根據(jù)已知關(guān)節(jié)變量θ123456,求末端抓持器相對(duì)于參考坐標(biāo)系的位姿的過(guò)程。利用機(jī)器人工具箱來(lái)求解機(jī)器人運(yùn)動(dòng)學(xué)的正問(wèn)題需要用到fkine函數(shù)。它的調(diào)用格式:TR=fkine(robot,q),參數(shù)robot為一個(gè)機(jī)器人對(duì)象,TR為由q定義的每個(gè)前向運(yùn)動(dòng)學(xué)的正解。
逆運(yùn)動(dòng)學(xué)的求解過(guò)程是根據(jù)已知的末端抓持器相對(duì)于參考坐標(biāo)系的位姿,求關(guān)節(jié)變量θ123456的過(guò)程。利用Robotics Toolbox來(lái)求解機(jī)器人運(yùn)動(dòng)學(xué)的逆問(wèn)題需要用到ikine函數(shù)。它的調(diào)用格式:q=ikine(robot,T),參數(shù)robot為一個(gè)機(jī)器人對(duì)象,T為運(yùn)動(dòng)學(xué)的正解。
下面使用工具箱中的函數(shù)對(duì)六自由度機(jī)械臂進(jìn)行正運(yùn)動(dòng)學(xué)和逆運(yùn)動(dòng)學(xué)仿真。
部分程序代碼如下:
fkine是求機(jī)械臂的正解函數(shù),q向量為機(jī)械臂的六個(gè)關(guān)節(jié)角變量,ikine是求逆解函數(shù),T為正運(yùn)動(dòng)學(xué)算出來(lái)的位姿,如果仿真結(jié)果正確,計(jì)算的q1應(yīng)該與q相同。運(yùn)行程序后:
從結(jié)果上看q與q1顯然不相等,但是把q1的弧度值換到[-pi,pi]之間時(shí),兩者是一樣的。
5 結(jié)論
本文以PUMA560機(jī)器人為研究對(duì)象,討論了機(jī)器人運(yùn)動(dòng)學(xué)、運(yùn)動(dòng)軌跡及控制的一些相關(guān)問(wèn)題,分析了機(jī)械臂的正運(yùn)動(dòng)學(xué)及逆運(yùn)動(dòng)學(xué)。介紹了機(jī)械臂在關(guān)節(jié)空間中軌跡規(guī)劃的實(shí)現(xiàn)方法:三次多項(xiàng)式和五次多項(xiàng)式兩種軌跡規(guī)劃方法。接著采用空間直線和空間圓弧插補(bǔ)算法,使機(jī)械臂能夠在預(yù)先設(shè)定連續(xù)路徑上完成作業(yè)。最后,應(yīng)用MATLAB中的機(jī)器人工具箱對(duì)機(jī)器人運(yùn)動(dòng)學(xué)進(jìn)行仿真,對(duì)機(jī)器人軌跡進(jìn)行跟蹤。
[參考文獻(xiàn)]
[1]譚民,徐德,侯增廣,等.先進(jìn)機(jī)器人控制[M].北京:高等教育出版社,2007.
[2]蔡自興.機(jī)器人學(xué)[M].北京:清華大學(xué)出版社,2000.
[3]羅家佳,胡國(guó)清.基于MATLAB的機(jī)器人運(yùn)動(dòng)仿真研究[J].廈門大學(xué)學(xué)報(bào):自然科學(xué)版,2005,44(5):640-644.
[4]干民耀,馬駿騎,等.基于Matlab的Puma機(jī)器人運(yùn)動(dòng)學(xué)仿真[J].昆明理工大學(xué)學(xué)報(bào)(理工版),28(6).