□ 張秀林
甘肅廣播電視大學(xué) 蘭州 730050
目前,工業(yè)機(jī)器人的使用已非常普遍。但在實(shí)際應(yīng)用中,機(jī)械臂在作業(yè)時(shí)會(huì)面臨許多難題,如機(jī)械臂在啟動(dòng)和停止時(shí)手部出現(xiàn)嚴(yán)重抖動(dòng),機(jī)械臂末端到達(dá)指定位置不夠精確等[1],如果情況比較嚴(yán)重,那么會(huì)引起機(jī)械臂機(jī)構(gòu)嚴(yán)重受損[2]。機(jī)械臂的工作性能以工作效率和工作可靠性為衡量標(biāo)準(zhǔn),所以當(dāng)務(wù)之急是如何提高機(jī)械臂的工作效率及工作可靠性。
機(jī)械臂在沿軌跡運(yùn)行過(guò)程中,要盡量避免角速度及角加速度突變,即運(yùn)行軌跡曲線(xiàn)應(yīng)盡量平滑連續(xù),這樣機(jī)械臂的運(yùn)行就會(huì)比較平穩(wěn)。但是在現(xiàn)實(shí)中,有時(shí)不能保證完全消除運(yùn)動(dòng)突變和抖動(dòng),機(jī)械臂在運(yùn)行過(guò)程中構(gòu)件的振動(dòng)也無(wú)法完全避免,只能盡量減小。
為了能夠提高機(jī)械臂的工作效率和工作可靠性,對(duì)機(jī)械臂的運(yùn)動(dòng)軌跡進(jìn)行提前規(guī)劃非常有必要。一般做法是,在對(duì)機(jī)械臂進(jìn)行運(yùn)行控制之前,提前規(guī)劃好機(jī)械臂末端的運(yùn)行軌跡,并采用仿真技術(shù)模擬試驗(yàn),由模擬結(jié)果來(lái)分析機(jī)械臂的運(yùn)行是否平穩(wěn),然后將預(yù)定軌跡信息輸入控制系統(tǒng),來(lái)控制機(jī)械臂的運(yùn)行[3]。筆者對(duì)六關(guān)節(jié)機(jī)械臂進(jìn)行軌跡規(guī)劃。
機(jī)械臂軌跡規(guī)劃指在機(jī)械臂運(yùn)動(dòng)學(xué)和動(dòng)力學(xué)的基礎(chǔ)上,討論在關(guān)節(jié)空間或笛卡兒空間中生產(chǎn)機(jī)械臂運(yùn)動(dòng)軌跡的方法,描述機(jī)械臂在多維空間中的運(yùn)動(dòng)路線(xiàn),是運(yùn)動(dòng)學(xué)逆解的實(shí)際應(yīng)用。在知道末端位姿的前提下,通過(guò)運(yùn)動(dòng)學(xué)逆解得到各個(gè)關(guān)節(jié)在相應(yīng)時(shí)刻的轉(zhuǎn)動(dòng)量或平移量,合理規(guī)劃出角位移曲線(xiàn)、角速度曲線(xiàn)、角加速度曲線(xiàn),從而有效控制機(jī)械臂在運(yùn)動(dòng)過(guò)程中的沖擊和振動(dòng),使機(jī)械臂的工作壽命得以延長(zhǎng)。
機(jī)械臂運(yùn)行軌跡端點(diǎn)既可以用關(guān)節(jié)坐標(biāo)給定,也可以用笛卡兒坐標(biāo)給定。筆者以六關(guān)節(jié)機(jī)械臂為研究對(duì)象,首先分析對(duì)比在關(guān)節(jié)空間和笛卡爾空間中進(jìn)行機(jī)械臂軌跡規(guī)劃的優(yōu)缺點(diǎn),選擇合適的軌跡規(guī)劃坐標(biāo)空間;然后通過(guò)查閱大量文獻(xiàn)資料總結(jié)分析多種軌跡規(guī)劃插值函數(shù),選定B樣條插值計(jì)算進(jìn)行六關(guān)節(jié)機(jī)械臂的軌跡規(guī)劃;最后將得到的數(shù)據(jù)導(dǎo)入ADAMS軟件,進(jìn)行六關(guān)節(jié)機(jī)械臂軌跡規(guī)劃仿真。
在關(guān)節(jié)空間中進(jìn)行機(jī)械臂的軌跡規(guī)劃,將關(guān)節(jié)變量表示為時(shí)間的函數(shù),這一函數(shù)的一階、二階導(dǎo)數(shù)分別表示機(jī)械臂運(yùn)行的速度和加速度,由此確定各關(guān)節(jié)的位置、速度、加速度隨時(shí)間變化的規(guī)律,具有計(jì)算快、容易實(shí)現(xiàn)等優(yōu)點(diǎn),但機(jī)械臂末端的運(yùn)動(dòng)軌跡不直觀[4]??傮w而言,在關(guān)節(jié)空間進(jìn)行軌跡規(guī)劃有三方面優(yōu)點(diǎn):容易實(shí)現(xiàn),直接用運(yùn)動(dòng)時(shí)間的受控變量規(guī)劃運(yùn)動(dòng)軌跡,軌跡規(guī)劃可接近實(shí)時(shí)運(yùn)行進(jìn)行,缺點(diǎn)是難以確定運(yùn)動(dòng)中各桿件的位置。
在笛卡爾空間中進(jìn)行機(jī)械臂的軌跡規(guī)劃,應(yīng)用某種定義的函數(shù)來(lái)規(guī)劃?rùn)C(jī)械臂末端執(zhí)行器的運(yùn)動(dòng)軌跡,將末端執(zhí)行器位置、速度、加速度表示為時(shí)間的函數(shù),其它各關(guān)節(jié)的位置、速度、加速度由末端執(zhí)行器導(dǎo)出。通常通過(guò)運(yùn)動(dòng)學(xué)逆解得出關(guān)節(jié)位移,應(yīng)用逆雅可比求出關(guān)節(jié)速度,應(yīng)用逆雅可比及其導(dǎo)數(shù)求出關(guān)節(jié)加速度。在笛卡爾空間中進(jìn)行規(guī)劃軌跡,末端執(zhí)行器的運(yùn)動(dòng)軌跡清晰、直觀[5]。由于各關(guān)節(jié)的控制驅(qū)動(dòng)是在關(guān)節(jié)空間中進(jìn)行的,因此需要將笛卡爾空間約束轉(zhuǎn)換至關(guān)節(jié)空間,而控制器所需要的關(guān)節(jié)參數(shù)通過(guò)大量運(yùn)算得到,由此造成計(jì)算量較大。同時(shí),計(jì)算結(jié)果也很難保證不存在奇異點(diǎn),如所求軌跡在工作空間之外、關(guān)節(jié)變量值發(fā)生突變等。
由上述分析可見(jiàn),在關(guān)節(jié)空間進(jìn)行軌跡規(guī)劃,不需要考慮笛卡爾空間中兩個(gè)路徑點(diǎn)之間的軌跡曲線(xiàn),僅以關(guān)節(jié)變量表示為時(shí)間的函數(shù)來(lái)描述機(jī)械臂的軌跡,計(jì)算簡(jiǎn)單、容易。由于關(guān)節(jié)空間與笛卡爾空間并不是連續(xù)的對(duì)應(yīng)關(guān)系,關(guān)節(jié)空間內(nèi)不會(huì)產(chǎn)生機(jī)構(gòu)奇異的現(xiàn)象,因此避免了在笛卡爾空間中規(guī)劃時(shí)所出現(xiàn)的關(guān)節(jié)失控問(wèn)題。綜合分析后,筆者選用關(guān)節(jié)空間進(jìn)行六關(guān)節(jié)機(jī)械臂的軌跡規(guī)劃。
在關(guān)節(jié)空間中進(jìn)行機(jī)械臂軌跡規(guī)劃時(shí),需要給定起始點(diǎn)和終止點(diǎn)機(jī)械臂末端的位姿,對(duì)關(guān)節(jié)變量進(jìn)行插值運(yùn)算。采用逆運(yùn)動(dòng)學(xué)程序?qū)⒏麝P(guān)節(jié)路徑點(diǎn)轉(zhuǎn)換為各關(guān)節(jié)矢量角度值,根據(jù)每個(gè)關(guān)節(jié)路徑點(diǎn)擬合出一條光滑曲線(xiàn),使軌跡從起始點(diǎn)開(kāi)始,依次通過(guò)所有關(guān)節(jié)路徑點(diǎn),最后到達(dá)終止點(diǎn),完成軌跡規(guī)劃。對(duì)于每一段軌跡,各關(guān)節(jié)運(yùn)動(dòng)時(shí)間均相同,各關(guān)節(jié)函數(shù)之間相互獨(dú)立,這樣保證所有關(guān)節(jié)同時(shí)到達(dá)關(guān)節(jié)路徑點(diǎn)和終止點(diǎn),從而得到機(jī)械臂各關(guān)節(jié)應(yīng)有的位置和姿態(tài)。
對(duì)關(guān)節(jié)路徑點(diǎn)進(jìn)行插值時(shí),應(yīng)滿(mǎn)足一系列約束條件,各個(gè)關(guān)節(jié)的位移、速度、加速度在整個(gè)時(shí)間間隔內(nèi)需滿(mǎn)足連續(xù)性要求,其極值必須在各個(gè)關(guān)節(jié)變量允許范圍之內(nèi)。在約束條件下,可以選取不同類(lèi)型的關(guān)節(jié)插值函數(shù),生成不同的軌跡。
假設(shè)關(guān)節(jié)變量的時(shí)間函數(shù)采用多項(xiàng)式序列給定,某關(guān)節(jié)點(diǎn)軌跡應(yīng)用P個(gè)多項(xiàng)式,要滿(mǎn)足初始和終止條件,保證變量在多項(xiàng)式銜接處的連續(xù)性,就需要確定3(P+1)個(gè)參數(shù)。這種規(guī)劃稱(chēng)為兩點(diǎn)式軌跡規(guī)劃?;镜膬牲c(diǎn)式軌跡規(guī)劃方法有三次多項(xiàng)式規(guī)劃[6]、五次多項(xiàng)式規(guī)劃[7]、帶拋物線(xiàn)過(guò)濾的線(xiàn)性規(guī)劃、過(guò)中間點(diǎn)的軌跡規(guī)劃[8]等。
若額外給定附加的中間條件,如位置,則對(duì)于每個(gè)中間條件,需要增加一個(gè)參數(shù),這種規(guī)劃稱(chēng)為帶中間點(diǎn)的兩點(diǎn)式軌跡規(guī)劃。通常,可以給定兩個(gè)中間位置,一個(gè)靠近起始位置,另一個(gè)靠近終止位置。這樣除了可以較好地控制運(yùn)動(dòng)外,還能夠保證以適當(dāng)?shù)姆较螂x開(kāi)起始點(diǎn)和接近終止點(diǎn)。因此,對(duì)于連接初始位置和終止位置的每個(gè)關(guān)節(jié)變量,一個(gè)奇次多項(xiàng)式就足夠了,或采用兩段四次多項(xiàng)式軌跡加一段三次多項(xiàng)式軌跡[9]、兩段三次軌跡加一段五次軌跡[10]、五段三次軌跡[11]、B樣條曲線(xiàn)規(guī)劃[12]。經(jīng)過(guò)分析各種軌跡規(guī)劃方法,進(jìn)行對(duì)比,筆者采用B樣條曲線(xiàn)進(jìn)行六關(guān)節(jié)機(jī)械臂的軌跡規(guī)劃。
B樣條函數(shù)定義式為:
(1)
式中:u為第i段內(nèi)的增量參數(shù);Bi,k(u)為第i段k次B樣條基函數(shù),k>1,i=1,2,…,k-1。
設(shè)機(jī)械臂在關(guān)節(jié)空間中有型值點(diǎn)P1、P2、…、Pm,由連續(xù)條件及邊界條件可以求出m+2個(gè)控制點(diǎn)V0、V1、V2、…、Vm+1,每相鄰兩型值點(diǎn)之間用B樣條曲線(xiàn)連接,整個(gè)軌跡由m-1段B樣條曲線(xiàn)拼接而成。第i段B樣條曲線(xiàn)連接Pi與Pi+1,第i段B樣條曲線(xiàn)由Vi-1、Vi、Vi+1、Vi+2四個(gè)控制點(diǎn)控制,且控制點(diǎn)的坐標(biāo)為Vi-1(vi-1,qi-1)、Vi(vi,qi)、Vi+1(vi+1,qi+1)、Vi+2(vi+2,qi+2),四階三次均勻B樣條曲線(xiàn)在第i段B樣條曲線(xiàn)u處的矢量表達(dá)式θi(u)為:
θi(u)=X0(u)Vi-1+X1(u)Vi+X2(u)Vi+1
+X3(u)Vi+2
(2)
式中:Xi(u)為含有參數(shù)u的三次多項(xiàng)式。
根據(jù)連續(xù)性要求,相鄰兩段B樣條曲線(xiàn)在連接處的矢量θi(u)、θi+1(u)應(yīng)分別在u=0和u=1處滿(mǎn)足條件:
θi(1)=θi+1(0)
(3)
同理,相鄰兩段B樣條曲線(xiàn)在連接處的速度矢量、加速度矢量、加速度變化率矢量應(yīng)分別在u=0和u=1處滿(mǎn)足連續(xù)性條件。
此外,還必須滿(mǎn)足柯西關(guān)系,即坐標(biāo)變換后不變性條件:
X0(u)+X1(u)+X2(u)+X3(u)=1
(4)
由上述連續(xù)性條件和式(4),可以求出Xi(u)多項(xiàng)式為:
(5)
(6)
(7)
(8)
可得第i段B樣條曲線(xiàn)u處矢量θi(u)為:
(9)
參數(shù)u取值為0~1之間,就可以得到第i段B樣條曲線(xiàn)。但是,要對(duì)型值點(diǎn)進(jìn)行軌跡規(guī)劃,就必須先根據(jù)已知的型值點(diǎn)來(lái)求出控制點(diǎn)。P1,P2,…,Pm為關(guān)節(jié)空間的型值點(diǎn),滿(mǎn)足以下條件:
θi-1(1)=θi(0)=Pii=1,2,…,m-1
(10)
θi-1(1)=θi(0)=(Vi-1+4Vi+Vi+1)/6
(11)
式(10)、式(11)中有m+2個(gè)未知數(shù),但實(shí)際只有m個(gè)方程,因此必須要有另外兩個(gè)附加條件,即邊界條件:
V1=V0
(12)
(13)
由式(13)可以確定唯一一組Vi值,由此可以確定三次B樣條曲線(xiàn)。
在第i段B樣條曲線(xiàn)上,任意取一個(gè)點(diǎn),其橫坐標(biāo)vi(u)為:
(14)
在第i段B樣條曲線(xiàn)上,任意取一個(gè)點(diǎn),其縱坐標(biāo)qi(u)為:
(15)
B樣條曲線(xiàn)軌跡規(guī)劃具有分段處理、計(jì)算速度較快、占用計(jì)算機(jī)內(nèi)存較少等優(yōu)點(diǎn)。
以空間圓曲線(xiàn)為預(yù)設(shè)軌跡,空間圓方程為:
(16)
式中:(x,y,z)為空間圓路徑點(diǎn)坐標(biāo);(x0,y0,z0)為空間圓圓心坐標(biāo);R為空間圓半徑:θ為空間圓圓心至路徑點(diǎn)連線(xiàn)與X軸正方向的夾角;α為空間圓圓心至路徑點(diǎn)連線(xiàn)在YOZ平面上投影與Y軸正方向的夾角。
在空間圓上均勻取12個(gè)路徑點(diǎn),見(jiàn)表1。
表1 空間圓路徑點(diǎn)坐標(biāo)
在對(duì)六關(guān)節(jié)機(jī)械臂進(jìn)行ADAMS軟件仿真之前,基于逆運(yùn)動(dòng)學(xué),應(yīng)用MATLAB軟件求解出到達(dá)表1中12個(gè)路徑點(diǎn)所對(duì)應(yīng)的六關(guān)節(jié)機(jī)械臂的各關(guān)節(jié)角度[13],見(jiàn)表2。
在ADAMS軟件中進(jìn)行仿真時(shí),為六關(guān)節(jié)機(jī)械臂各個(gè)關(guān)節(jié)添加驅(qū)動(dòng)函數(shù)。
表2 空間圓路徑點(diǎn)對(duì)應(yīng)機(jī)械臂關(guān)節(jié)角度
仿真步數(shù)設(shè)為50步。在仿真過(guò)程中,可以看到六關(guān)節(jié)機(jī)械臂運(yùn)動(dòng)過(guò)程軌跡比較平穩(wěn)。各關(guān)節(jié)的角位移、角速度、角加速度曲線(xiàn)依次如圖1、圖2、圖3所示。
▲圖1 六關(guān)節(jié)機(jī)械臂各關(guān)節(jié)角位移曲線(xiàn)
▲圖2 六關(guān)節(jié)機(jī)械臂各關(guān)節(jié)角速度曲線(xiàn)
由圖1、圖2、圖3可以看出,各關(guān)節(jié)的角位移曲線(xiàn)平滑,角速度曲線(xiàn)變化平順,但是角加速度曲線(xiàn)有突變點(diǎn),說(shuō)明六關(guān)節(jié)機(jī)械臂末端執(zhí)行器在工作過(guò)程中存在振動(dòng)現(xiàn)象,因此,對(duì)六關(guān)節(jié)機(jī)械臂還需要進(jìn)一步進(jìn)行優(yōu)化。
筆者以六關(guān)節(jié)機(jī)械臂為研究對(duì)象,在關(guān)節(jié)空間采用B樣條曲線(xiàn)進(jìn)行軌跡規(guī)劃。在軌跡規(guī)則中,對(duì)關(guān)節(jié)空間和笛卡爾空間進(jìn)行轉(zhuǎn)換,在笛卡爾坐標(biāo)系下插補(bǔ)獲得軌跡上的型值點(diǎn),然后采用逆運(yùn)動(dòng)學(xué)將這些型值點(diǎn)轉(zhuǎn)換至關(guān)節(jié)空間中的各關(guān)節(jié)角度,再應(yīng)用B樣條曲線(xiàn)擬合得到各關(guān)節(jié)的運(yùn)動(dòng)軌跡。將得到的數(shù)據(jù)導(dǎo)入ADAMS軟件進(jìn)行仿真,得到六關(guān)節(jié)機(jī)械臂各關(guān)節(jié)角位移、角速度、角加速度變化曲線(xiàn),結(jié)果顯示各關(guān)節(jié)的角速度變化平緩,角加速度曲線(xiàn)有明顯突變點(diǎn),因此,對(duì)六關(guān)節(jié)機(jī)械臂還需要進(jìn)一步優(yōu)化。
▲圖3 六關(guān)節(jié)機(jī)械臂各關(guān)節(jié)角加速度曲線(xiàn)