羅云云,田會(huì)方,吳迎峰
(武漢理工大學(xué) 機(jī)電工程學(xué)院,湖北 武漢 430070)
近年來,傳統(tǒng)制造方式不斷朝著智能制造轉(zhuǎn)型,工業(yè)機(jī)器人的應(yīng)用領(lǐng)域不斷拓展[1]。由于工業(yè)機(jī)器人自身結(jié)構(gòu)的復(fù)雜性以及應(yīng)用場景的限制,如何獲得高精度的運(yùn)動(dòng)軌跡成為機(jī)器人開發(fā)中的一個(gè)普遍難題[2-3]。
國內(nèi)外眾多學(xué)者對(duì)于機(jī)器人的軌跡優(yōu)化都做了很多研究,文獻(xiàn)[4]采用三次多項(xiàng)式函數(shù)對(duì)軌跡進(jìn)行規(guī)劃,計(jì)算簡單,過程易于實(shí)現(xiàn)。文獻(xiàn)[5] 對(duì)比了三次多項(xiàng)式和五次多項(xiàng)式插值方法對(duì)于機(jī)器人關(guān)節(jié)軌跡的規(guī)劃效果,得出了五次多項(xiàng)式插值法更能夠得到機(jī)器人在笛卡爾空間的平穩(wěn)軌跡的結(jié)論。但是單純的多項(xiàng)式插值方式并不涉及軌跡的優(yōu)化,因此近年來引進(jìn)智能算法對(duì)機(jī)器人軌跡進(jìn)行優(yōu)化成為趨勢,其中對(duì)最優(yōu)時(shí)間條件下的軌跡規(guī)劃算法的研究最為廣泛。文獻(xiàn)[6]采用了改進(jìn)螢火蟲算法、文獻(xiàn)[7]采用了遺傳算法對(duì)機(jī)器人軌跡進(jìn)行規(guī)劃,但在對(duì)插值點(diǎn)進(jìn)行編碼時(shí)可能會(huì)造成計(jì)算量上的增加。而文獻(xiàn)[8-9]與本文采用了相同粒子群算法進(jìn)行軌跡優(yōu)化,其中文獻(xiàn)[8]采用了3-5-3分段多項(xiàng)式插值法,文獻(xiàn)[9]則采用了4-3-4類型的分段方式。而在算法改進(jìn)時(shí),兩篇文章均只對(duì)粒子群算法中的學(xué)習(xí)因子做了改進(jìn)。雖解決了高次多項(xiàng)式函數(shù)難以優(yōu)化的問題,并得到了運(yùn)行時(shí)間更短的位置、速度、加速度曲線,但未對(duì)算法中的另一參數(shù)“慣性權(quán)重”加以研究。而慣性權(quán)重同樣會(huì)對(duì)算法的迭代的速度和參數(shù)精度產(chǎn)生影響。
筆者以水處理罐搬運(yùn)機(jī)器人為研究對(duì)象,依據(jù)機(jī)器人運(yùn)動(dòng)空間和搬運(yùn)工件的具體情況,采用3-5-3分段多項(xiàng)式對(duì)其運(yùn)動(dòng)軌跡進(jìn)行規(guī)劃。針對(duì)標(biāo)準(zhǔn)粒子群算法所存在的前期局部收斂性差,后期收斂速度慢等問題,采用了改進(jìn)的粒子群算法將標(biāo)準(zhǔn)粒子群算法中的學(xué)習(xí)因子和慣性權(quán)重由固定值改為隨著迭代次數(shù)自適應(yīng)變化的動(dòng)態(tài)值[10-11],有效彌補(bǔ)了標(biāo)準(zhǔn)粒子群算法的缺點(diǎn),并保證了效率與穩(wěn)定性的綜合要求。
所研究的水處理罐纏繞生產(chǎn)線上的搬運(yùn)機(jī)器人屬于傳統(tǒng)的六軸串聯(lián)臂式機(jī)器人,具體結(jié)構(gòu)如圖1所示。前3個(gè)關(guān)節(jié)用于確定機(jī)器人末端執(zhí)行器的位置,后3個(gè)關(guān)節(jié)用于確定其姿態(tài)。為了便于對(duì)機(jī)器人進(jìn)行運(yùn)動(dòng)學(xué)分析,有必要建立機(jī)器人的運(yùn)動(dòng)學(xué)方程。采用改進(jìn)D-H法建立連桿坐標(biāo)系,并通過平移、旋轉(zhuǎn)等方式得到關(guān)節(jié)坐標(biāo)系間的轉(zhuǎn)換矩陣。連桿坐標(biāo)系如圖1所示,D-H參數(shù)如表1所示。
圖1 水處理罐纏繞生產(chǎn)線上的搬運(yùn)機(jī)器人
表1 機(jī)器人D-H參數(shù)表
表1中αi-1為繞xi-1軸,從zi-1旋轉(zhuǎn)到zi的轉(zhuǎn)角;ai-1為沿xi-1軸,從zi-1移動(dòng)到zi的距離;di為沿著zi軸,從xi-1移動(dòng)到xi的距離;θi為繞著zi軸,從xi-1軸旋轉(zhuǎn)到xi的轉(zhuǎn)角(i=1,2,…,6)。
由D-H參數(shù)表可計(jì)算各軸間變換矩陣:
(1)
式中:i-1Ti為坐標(biāo)系i到坐標(biāo)系i-1的變換矩陣;cθi、sθi分別為cosθi、sinθi(i=1,2,…,6)。
將上述變換矩陣依次相乘,得到纏繞生產(chǎn)線機(jī)器人的綜合變換矩陣0T6:
0T6=0T11T22T33T44T55T6
(2)
關(guān)節(jié)空間常用的軌跡規(guī)劃方法包括多項(xiàng)式插值、樣條插值和拋物線過渡的線性插值等。在工業(yè)機(jī)器人使用場景中,次數(shù)越高的多項(xiàng)式,加速過程越慢,整個(gè)運(yùn)動(dòng)過程中的平均速度越小,影響效率。單純的三次多項(xiàng)式會(huì)導(dǎo)致加速度出現(xiàn)跳變的情況。而加速度曲線過于擬合又會(huì)導(dǎo)致機(jī)器人運(yùn)行中出現(xiàn)速度抖動(dòng)的龍格現(xiàn)象,相比較于一味地追求高平滑度而提高多項(xiàng)式階次或復(fù)雜度的方法,筆者采用分段插值的方式來擬合機(jī)械臂的運(yùn)動(dòng)軌跡,滿足所需的平滑插值效果,且插值過程易于理解,計(jì)算量相對(duì)較小。
假設(shè)機(jī)器人的點(diǎn)對(duì)點(diǎn)軌跡由多個(gè)段連接,中間路徑點(diǎn)具有連續(xù)的速度和加速度。根據(jù)實(shí)際工況以及各個(gè)工位之間的位置約束將整段軌跡分成3段(時(shí)間間隔t1,t2,t3),分別進(jìn)行多項(xiàng)式插值擬合軌跡。筆者采用3-5-3多項(xiàng)式插值函數(shù),即在第一和第三階段使用3次多項(xiàng)式進(jìn)行插值,第二階段使用五次多項(xiàng)式插值。
在起始點(diǎn)與終點(diǎn)的3段軌跡中,關(guān)節(jié)j(j=1,2,…,6)的運(yùn)動(dòng)位置與時(shí)間t的關(guān)系式為:
當(dāng)0≤t≤t1時(shí)
qj,1(t)=aj10+aj11t+aj12t2+aj13t3
(3)
當(dāng)t1 qj,2(t)=aj20+aj21(Δt2)+aj22(Δt2)2+ aj23(Δt2)3+aj24(Δt2)4+aj25(Δt2)5 (4) 當(dāng)t1+t2 qj,3(t)=aj30+aj31(Δt3)+aj32(Δt3)2 +aj33(Δt3)3 (5) 式中:待求解系數(shù)aj1i、aj2i、aj3i(j=1,2,…,6)分別為第j個(gè)關(guān)節(jié)在第1, 2, 3段插值函數(shù)的第i個(gè)系數(shù);qj1(t)、qj2(t)、qj3(t)分別為第j個(gè)關(guān)節(jié)第1,2,3段的多項(xiàng)式軌跡函數(shù),Δt2、Δt3分別表示第二段第三段的時(shí)間變量。 用Xji表示第j個(gè)關(guān)節(jié)插值的位置,i=0, 1,2,3為插值點(diǎn)序號(hào)。給定軌跡規(guī)劃的約束條件:①各個(gè)關(guān)節(jié)在每一分段的起始點(diǎn)角度值Xj0、中間路徑點(diǎn)角度值Xj1,Xj2和終點(diǎn)角度值Xj3;②起始點(diǎn)和終點(diǎn)的速度、加速度;③各個(gè)路徑點(diǎn)的速度和加速度連續(xù)。 根據(jù)上述約束條件,可推導(dǎo)各段插值函數(shù)中未知系數(shù)與插值點(diǎn)間的關(guān)系,并使用矩陣形式加以表示。 (6) (7) a=A-1·b=[aj10aj11aj12aj13aj20aj21aj22aj23aj24aj25aj30aj31aj32aj33]T (8) 式中:A為關(guān)系矩陣;b為常量矩陣;a為系數(shù)矩陣。 所要優(yōu)化的目標(biāo)是滿足水處理罐搬運(yùn)機(jī)器人運(yùn)動(dòng)學(xué)約束的所有關(guān)節(jié)的最短運(yùn)行時(shí)間。其函數(shù)表達(dá)式為: (9) 式中:f(t)為優(yōu)化目標(biāo)函數(shù)同時(shí)也為算法的適應(yīng)度函數(shù);tj1,tj2,tj3為關(guān)節(jié)j的各段路徑用時(shí)。 為了使所規(guī)劃的最優(yōu)軌跡是合理的,必須考慮機(jī)器人每個(gè)關(guān)節(jié)的運(yùn)動(dòng)學(xué)約束,包括最大角度、角速度和角加速度,因此,約束條件如下: (1)角度約束 |qji(t)|≤qjmax (10) 式中:qji(t)為第j(j=1,2,…,6)個(gè)關(guān)節(jié)在第i段路徑下的實(shí)時(shí)角度;qjmax為第j個(gè)關(guān)節(jié)的最大角度。 (2)速度約束 (11) (3)加速度約束 (12) 對(duì)于傳統(tǒng)的多項(xiàng)式規(guī)劃算法,機(jī)器人運(yùn)動(dòng)時(shí)間只作為已知條件參與運(yùn)算,沒有優(yōu)化空間。對(duì)關(guān)節(jié)軌跡進(jìn)行時(shí)間最優(yōu)規(guī)劃多采用智能算法。粒子群算法(particle swarm optimization, PSO)源自鳥類捕食問題的研究,相較于其他的智能優(yōu)化算法,粒子群算法具有結(jié)構(gòu)簡單、易于實(shí)現(xiàn)、參數(shù)少、求解全局最優(yōu)解效率高等優(yōu)點(diǎn)。鑒于此,許多學(xué)者已將其應(yīng)用于機(jī)器人的軌跡規(guī)劃中。 PSO算法的基本思想是:在可行解空間初始化一定數(shù)量的粒子,每個(gè)粒子代表優(yōu)化問題的一個(gè)可能最優(yōu)解,每個(gè)粒子根據(jù)自身的當(dāng)前最佳位置pbest和群在空間中的當(dāng)前最佳位置gbest確定其接近最佳區(qū)域的飛行路線。算法使用位置、速度和適應(yīng)度值3項(xiàng)指標(biāo)來表示各個(gè)粒子的特征。粒子在可行解空間中,通過跟蹤個(gè)體極值和群體極值更新個(gè)體位置。粒子每更新一次位置,適應(yīng)度值隨之被計(jì)算和更新。然后比較適應(yīng)度值的大小,從而更新個(gè)體極值和群體極值的位置。 在每次迭代中,每個(gè)粒子的位置和速度按式(13)和式(14)更新: (13) (14) 為了克服基礎(chǔ)粒子群算法存在的問題,平衡全局和局部搜索能力,得到良好的收斂效果,引入自適應(yīng)慣性權(quán)重和自適應(yīng)加速常數(shù),對(duì)粒子群算法進(jìn)行改進(jìn)。 (1)自適應(yīng)慣性權(quán)重。慣性權(quán)重ω過大或過小都會(huì)影響迭代的速度和參數(shù)精度。自適應(yīng)變權(quán)在迭代早期使用較大的權(quán)重值來提高粒子的移動(dòng)速度和全局搜索能力,在迭代后期使用較小的ω來降低粒子的移動(dòng)速度同時(shí)專注于局部搜索,從而提高粒子的精度。本文使慣性權(quán)重呈非線性遞減,即隨著迭代次數(shù)k的增加,ω非線性減小。 (15) 式中:ωmin和ωmax為預(yù)設(shè)的最小與最大慣性系數(shù),一般ωmin取0.4,ωmax取0.9;系數(shù)α、β>0;k為當(dāng)前迭代次數(shù);K為總迭代次數(shù)。 (2)自適應(yīng)學(xué)習(xí)因子。c1、c2作為學(xué)習(xí)因子,使粒子具有自我總結(jié)和向優(yōu)秀個(gè)體學(xué)習(xí)的能力,從而使得粒子向著領(lǐng)域中的最優(yōu)點(diǎn)靠近。c1、c2分別調(diào)節(jié)粒子向個(gè)體最優(yōu)和群體最優(yōu)靠近的最大步長,決定微粒個(gè)體經(jīng)驗(yàn)和群體經(jīng)驗(yàn)對(duì)微粒自身運(yùn)行軌跡的影響。學(xué)習(xí)因子較小時(shí),可能使微粒在遠(yuǎn)離目標(biāo)區(qū)域內(nèi)徘徊;學(xué)習(xí)因子較大時(shí),可使微粒迅速向目標(biāo)區(qū)域移動(dòng)。將算法中的學(xué)習(xí)因子改為自適應(yīng)變化參數(shù),使得粒子在優(yōu)化早期盡可能在整個(gè)搜索空間中移動(dòng),并在優(yōu)化后期提高接近最優(yōu)解的收斂速度。在基本算法的基礎(chǔ)上改進(jìn)c1、c2,使c1、c2隨著迭代次數(shù)的增加非線性變化,其變換公式如下: (16) (17) 式中:τ為控制系數(shù);cmax、cmin為學(xué)習(xí)因子的最大值和最小值,按照經(jīng)驗(yàn)分別設(shè)置為4和0;系數(shù)α、β1、β2>0。 用改進(jìn)的慣性權(quán)重和學(xué)習(xí)因子代替基礎(chǔ)粒子群算法中的原有項(xiàng)參與算法運(yùn)算。 在本文的優(yōu)化問題中,未知數(shù)分為兩部分:①3-5-3多項(xiàng)式的未知數(shù),共14個(gè);②每段多項(xiàng)式的插值時(shí)間,共3個(gè)。若將3-5-3中的未知數(shù)作為自變量,時(shí)間作為因變量,則粒子群算法的解算維度為14,計(jì)算量過于龐雜,不利于工程實(shí)現(xiàn)。為降低運(yùn)算量,直接將待優(yōu)化的對(duì)象時(shí)間作為自變量,將粒子群解算維度降為3維。未知數(shù)t1、t2、t3根據(jù)生產(chǎn)節(jié)拍設(shè)置其搜索空間大小。優(yōu)化粒子群算法求解最優(yōu)時(shí)間的迭代步驟如下: 步驟1初始化粒子群,在ti取值范圍 [0,1.8]內(nèi),隨機(jī)產(chǎn)生M(M=50)個(gè)粒子(每個(gè)粒子均由t1、t2、t3組成),構(gòu)成初始種群,并初始化粒子的位置和速度。 步驟2將M個(gè)粒子群分別帶入式(6)、式(7)求解出各段多項(xiàng)式的系數(shù),確定各段的運(yùn)動(dòng)方程。 步驟3根據(jù)求得的3段運(yùn)動(dòng)學(xué)方程以及粒子的參數(shù)計(jì)算適應(yīng)度,并且判斷位置、速度和加速度是否滿足約束條件,若每段中的速度或加速度都滿足則按照式(13)、式(14)更新位置與速度,否則將粒子適應(yīng)度值設(shè)為無窮大,以便后續(xù)去除。 步驟4更新當(dāng)前粒子和相應(yīng)位置的歷史最佳適應(yīng)度,以及群體的最佳適應(yīng)度。 步驟5經(jīng)過n次迭代后,適應(yīng)度最小的粒子即為最優(yōu)解。 在完成所有關(guān)節(jié)的時(shí)間優(yōu)化后,取各關(guān)節(jié)在每段運(yùn)動(dòng)中的最大時(shí)長作為最優(yōu)解,以確保機(jī)器人總體都能滿足運(yùn)動(dòng)學(xué)約束條件。 取水處理罐纏繞生產(chǎn)線機(jī)器人在生產(chǎn)線中將水處理罐芯模從水平旋轉(zhuǎn)臺(tái)搬運(yùn)至纏繞機(jī)的一段工作軌跡進(jìn)行仿真驗(yàn)證。 關(guān)節(jié)1~6的初始位置、中間路徑點(diǎn)和終點(diǎn)的笛卡爾坐標(biāo)轉(zhuǎn)換到關(guān)節(jié)空間的角度值如表2所示。表2中,Xi(i=0,1,2,3)為插值點(diǎn)的編號(hào)。 表2 關(guān)節(jié)空間的角度插值點(diǎn) 在Matlab中,結(jié)合3-5-3分段多項(xiàng)式軌跡插值方法和改進(jìn)粒子群算法編寫時(shí)間最優(yōu)軌跡規(guī)劃程序,經(jīng)過100次迭代后得到優(yōu)化結(jié)果。圖2為群體適應(yīng)度的優(yōu)化過程,圖3~圖5分別為第一個(gè)關(guān)節(jié)優(yōu)化前后的位置、速度和加速度曲線。 圖2 群體適應(yīng)度優(yōu)化曲線 圖3 關(guān)節(jié)1優(yōu)化前后位置曲線 圖4 關(guān)節(jié)1優(yōu)化前后速度曲線 圖5 關(guān)節(jié)1優(yōu)化前后加速度曲線 從圖2可知,隨著迭代的增加,各關(guān)節(jié)達(dá)到目標(biāo)位置的時(shí)間明顯減少并最終趨于穩(wěn)定。從圖3~圖5可知,算法很好地縮短了運(yùn)行時(shí)間并且保證了運(yùn)行的平穩(wěn)性。將優(yōu)化后的各關(guān)節(jié)運(yùn)行時(shí)間加以記錄,結(jié)果如表3所示。 表3 各關(guān)節(jié)最優(yōu)時(shí)間表 為了確保機(jī)器人各關(guān)節(jié)同時(shí)到達(dá)目標(biāo)點(diǎn)和中間路徑點(diǎn),選擇各個(gè)關(guān)節(jié)中插值時(shí)間的最大值,即t1=0.629 3、t2=1.248 7、t3=1.123 5。由此,機(jī)器人在優(yōu)化所得的時(shí)間內(nèi)各關(guān)節(jié)位置、速度和加速度曲線分別如圖6~圖8所示。 圖6 優(yōu)化后的位置變化曲線 圖7 優(yōu)化后的速度變化曲線 圖8 優(yōu)化后的加速度變化曲線 由以上仿真實(shí)驗(yàn)可知,改進(jìn)的軌跡規(guī)劃方法可以有效縮短機(jī)械手的運(yùn)行時(shí)間,同時(shí)保證規(guī)劃的位移、速度和加速度曲線的連續(xù)性,從而保證機(jī)械手的穩(wěn)定運(yùn)行。 為提高水處理罐纏繞生產(chǎn)線機(jī)器人的工作效率進(jìn)而提高整體生產(chǎn)效率,筆者提出了基于改進(jìn)粒子群算法的時(shí)間最優(yōu)軌跡規(guī)劃方法。該方法綜合考慮了機(jī)械手的運(yùn)行效率和運(yùn)動(dòng)的穩(wěn)定性,將3-5-3分段多項(xiàng)式插值擬合方法與改進(jìn)的粒子群優(yōu)化算法結(jié)合。在保證了機(jī)械手位置、速度和加速度連續(xù),避免了不連續(xù)加速度引起的碰撞問題,以及高階插值擬合方式可能出現(xiàn)的速度“龍格現(xiàn)象”的同時(shí),采用粒子群算法解決了傳統(tǒng)方法難以優(yōu)化高階多項(xiàng)式的問題,動(dòng)態(tài)地調(diào)整學(xué)習(xí)因子和慣性因子能夠快速準(zhǔn)確的收斂到最優(yōu)解。仿真結(jié)果表明,采用3-5-3分段多項(xiàng)式結(jié)合改進(jìn)粒子群算法對(duì)機(jī)械手運(yùn)動(dòng)軌跡進(jìn)行優(yōu)化,軌跡運(yùn)行時(shí)間縮短了45%左右。并且各關(guān)節(jié)運(yùn)行過程穩(wěn)定,達(dá)到了預(yù)期的優(yōu)化目的。3 基于粒子群算法的時(shí)間最優(yōu)路徑規(guī)劃
3.1 改進(jìn)PSO算法
3.2 優(yōu)化結(jié)果分析
4 結(jié)論