石憲閃, 苗鴻賓, 張偉
(中北大學(xué)機(jī)械工程學(xué)院,山西太原 030051)
隨著社會(huì)的迅猛發(fā)展,工業(yè)生產(chǎn)逐漸走向智能化,機(jī)械臂已經(jīng)成為改善生產(chǎn)力結(jié)構(gòu)、提高生產(chǎn)力的有力工具。六自由度機(jī)械臂擁有極高的靈活性,能夠完成抓取、搬運(yùn)、打磨等簡單或復(fù)雜的動(dòng)作。隨著工業(yè)機(jī)器人的快速發(fā)展,其應(yīng)用范圍已經(jīng)擴(kuò)大到了醫(yī)療衛(wèi)生、航空制造、國防科技、民生服務(wù)等領(lǐng)域,是工業(yè)發(fā)展面向智能化未來不可缺少的重要環(huán)節(jié)。軌跡規(guī)劃是機(jī)械臂軌跡控制的基礎(chǔ)[1],而時(shí)間最優(yōu)軌跡規(guī)劃關(guān)系到是否滿足企業(yè)生產(chǎn)對(duì)時(shí)間的限制和要求以及機(jī)械臂的作業(yè)效率[2],所以也是軌跡規(guī)劃問題中最熱門的研究點(diǎn)。針對(duì)機(jī)械臂軌跡規(guī)劃問題的研究有很多,代瑞恒等[3]通過引入正態(tài)分布概率密度函數(shù)改進(jìn)量子遺傳算法,對(duì)關(guān)節(jié)運(yùn)動(dòng)軌跡進(jìn)行最短時(shí)間優(yōu)化;ZHAO等[4]提出了一種改進(jìn)的鯨魚優(yōu)化算法來解決時(shí)間抖動(dòng)最優(yōu)軌跡規(guī)劃問題,機(jī)器人的軌跡由關(guān)節(jié)空間的五次B樣條插值構(gòu)造,代價(jià)函數(shù)由時(shí)間和平均加加速度構(gòu)成;普亞松等[5]針對(duì)工業(yè)機(jī)器人關(guān)節(jié)運(yùn)動(dòng)規(guī)劃存在的問題,提出一種三次多項(xiàng)式與四次多項(xiàng)式混合規(guī)劃方法,提高機(jī)器人的使用性能和壽命。
基于上述內(nèi)容,作者在4-3-4混合多項(xiàng)式插值函數(shù)的基礎(chǔ)上結(jié)合改進(jìn)粒子群算法對(duì)六自由度串聯(lián)機(jī)械臂進(jìn)行時(shí)間最優(yōu)軌跡規(guī)劃,通過引入自適應(yīng)慣性權(quán)重和非線性學(xué)習(xí)因子,解決傳統(tǒng)粒子群算法收斂速度慢、迭代尋優(yōu)差的問題,保證全局搜索和局部探索能力的平衡。通過MATLAB仿真實(shí)驗(yàn)驗(yàn)證該方法的有效性和優(yōu)越性。
文中所用實(shí)驗(yàn)機(jī)械臂為廣州巨輪智能公司生產(chǎn)的JL8-600型串聯(lián)機(jī)械臂[見圖1(a)],該機(jī)械臂由6個(gè)轉(zhuǎn)動(dòng)關(guān)節(jié)組成,結(jié)構(gòu)精巧,適用于智能制造與自動(dòng)化生產(chǎn),因此用于文中實(shí)驗(yàn)十分合適。
完備性、參數(shù)最少化和連續(xù)性是機(jī)械臂運(yùn)動(dòng)學(xué)模型需要保證的條件[6]。因此采用D-H參數(shù)法進(jìn)行運(yùn)動(dòng)學(xué)建模,該方法只需要θi(關(guān)節(jié)轉(zhuǎn)角)、di(連桿偏移)、ai-1(連桿長度)、αi-1(連桿扭轉(zhuǎn)角)4個(gè)運(yùn)動(dòng)學(xué)參數(shù)就能表征機(jī)械臂關(guān)節(jié),各關(guān)節(jié)D-H坐標(biāo)系見圖1(b),具體D-H參數(shù)如表1所示。
圖1 JL8型機(jī)械臂(a)及其D-H坐標(biāo)系(b)Fig.1 JL8 manipulator (a) and its D-H coordinate system(b)
表1 JL8-600型串聯(lián)機(jī)械臂D-H參數(shù)Tab.1 D-H parameter of JL8-600 serial manipulator
多項(xiàng)式插值的方法能夠確保機(jī)械臂在軌跡規(guī)劃中位移、速度、加速度在相關(guān)時(shí)間內(nèi)連續(xù)可控[7],利用多項(xiàng)式函數(shù)設(shè)置隨時(shí)間變化的路徑點(diǎn),以逐步靠近或內(nèi)插確定開始位置到目標(biāo)位置之間的路徑[8]。在函數(shù)構(gòu)造的過程中,低階插值函數(shù)不能保證加速度曲線平滑、連續(xù),會(huì)產(chǎn)生沖擊;高階插值函數(shù)雖能保證平滑、連續(xù),但是比較難求且凸包性差[9]。因此文中采用4-3-4次混合多項(xiàng)式函數(shù),其中在第一、三段采用4次多項(xiàng)式插值函數(shù),第二段采用3次多項(xiàng)式插值函數(shù)。
4-3-4混合多項(xiàng)式插值函數(shù)為
(1)
其中:hi1(t、hi2(t、hi3(t分別為第i個(gè)關(guān)節(jié)第一、第二、第三時(shí)間段的軌跡函數(shù),i=1,2,3,…,6;ai1j、ai2j、ai3j分別為第i個(gè)關(guān)節(jié)軌跡第1、2、3段多項(xiàng)式插值的第j個(gè)系數(shù)。
根據(jù)混合多項(xiàng)式的約束條件,可以求出多項(xiàng)式中的未知系數(shù)a,根據(jù)約束條件和約束邊界可以列出矩陣A,由矩陣表達(dá)式可以看出約束條件和約束邊界只與時(shí)間t有關(guān),具體推導(dǎo)過程如式(2)—式(4) 所示:
(2)
(3)
(4)
粒子群算法(Particle Swarm Optimization,PSO)是一種模擬鳥類覓食過程中群體活動(dòng)規(guī)律的全局搜索算法[10]。在PSO中,把待求解問題解區(qū)域視為鳥類搜尋區(qū)域,問題的解就是粒子在搜索區(qū)域中的位置,每個(gè)粒子都有獨(dú)自的位置和速度,來確定它們的當(dāng)前位置、飛行方向和距離,并且都通過適應(yīng)度的變化來不斷尋找最優(yōu)位置。
粒子速度和位置更新公式為
(5)
(6)
式中:w為慣性權(quán)重;i為粒子;k為迭代次數(shù);c1、c2為學(xué)習(xí)因子;r1、r2為[0,1]中隨機(jī)數(shù);xid為粒子的位置;vid為粒子的速度;pid為粒子個(gè)體最優(yōu)位置;pgd為粒子群體最優(yōu)位置。
傳統(tǒng)粒子群算法由于慣性權(quán)重w和學(xué)習(xí)因子c1、c2等參數(shù)固定,在迭代求解過程中有時(shí)候會(huì)出現(xiàn)收斂速度慢、陷入局部最優(yōu)陷阱、尋優(yōu)能力弱的問題[11],造成全局搜索和局部探索能力的失衡,因此文中通過引入自適應(yīng)慣性權(quán)重和非線性學(xué)習(xí)因子來優(yōu)化改進(jìn)粒子群算法。
慣性權(quán)重是粒子群算法中調(diào)節(jié)全局搜索與局部搜索能力平衡的重要參數(shù)[12],通過調(diào)整其取值可有效地對(duì)搜索區(qū)域的大小進(jìn)行相應(yīng)的控制。當(dāng)權(quán)重較大時(shí),算法搜索全局的能力就會(huì)得到加強(qiáng),相反當(dāng)權(quán)重較小時(shí),得到增強(qiáng)的就是算法的局部搜索能力。但由于傳統(tǒng)粒子群算法慣性權(quán)重的調(diào)整只是隨迭代次數(shù)的變化單純地減小或遞增,無法及時(shí)滿足算法在搜索過程中的變化需求[13],因此文中提出一種自適應(yīng)慣性權(quán)重,它能根據(jù)搜索過程的各個(gè)階段采用相應(yīng)大小的權(quán)重,即在搜索迭代早期,慣性權(quán)重較大,有利于保證算法的全局尋優(yōu)效果;搜索迭代后期,慣性權(quán)重較小[14],有利于跳出局部最優(yōu)陷阱,保持粒子群多樣性。
其表達(dá)式如下:
w=wmax-(wmax-wmin)[1-e-(2k/Kmax)3]
(7)
式中:wmax、wmin分別為w的最大值和最小值;k、Kmax分別為迭代次數(shù)的當(dāng)前值和最大值。
傳統(tǒng)粒子群算法的學(xué)習(xí)因子c1、c2是固定值,這樣會(huì)影響到算法的尋優(yōu)速度和求解精度[15]。文中引入非線性學(xué)習(xí)因子。由式(5)可知:學(xué)習(xí)因子c1影響粒子“自我認(rèn)知”能力,應(yīng)隨著搜索迭代次數(shù)增加而逐漸衰減;學(xué)習(xí)因子c2影響粒子“社會(huì)認(rèn)知”能力,應(yīng)隨著搜索迭代次數(shù)增加而逐漸增大。因此改進(jìn)之后的算法在搜索尋優(yōu)前期c1>c2保證了粒子在初期充滿整個(gè)解區(qū)域且不會(huì)陷入局部極值,而在搜索迭代的后期c1 具體表達(dá)式如下: (8) 式中:k為當(dāng)前迭代次數(shù);Kmax為最大迭代次數(shù)。 在機(jī)械臂時(shí)間最優(yōu)軌跡規(guī)劃中恰當(dāng)?shù)臅r(shí)間間隔是確保規(guī)劃成功的重點(diǎn)[17],先對(duì)機(jī)械臂各個(gè)關(guān)節(jié)進(jìn)行時(shí)間優(yōu)化,挑選插值時(shí)間間隔的最大值,以確保機(jī)械臂所有關(guān)節(jié)都能同步運(yùn)動(dòng)起來并達(dá)到某一點(diǎn),當(dāng)然機(jī)械臂同時(shí)需要滿足運(yùn)動(dòng)學(xué)約束,文中旨在提高機(jī)械臂工作效率和保證其平穩(wěn)運(yùn)行的前提下,機(jī)械臂所有關(guān)節(jié)運(yùn)動(dòng)的時(shí)間最短。第i個(gè)關(guān)節(jié)的適應(yīng)度函數(shù)及運(yùn)動(dòng)約束為 (9) 式中:vij為第i個(gè)關(guān)節(jié)的速度的實(shí)際值;vijmax為第i個(gè)關(guān)節(jié)的速度的最大值。 改進(jìn)粒子群算法的機(jī)械臂規(guī)劃流程如圖2所示。 圖2 改進(jìn)粒子群算法的機(jī)械臂規(guī)劃流程 為驗(yàn)證改進(jìn)粒子群算法在機(jī)械臂軌跡規(guī)劃中的有效性和優(yōu)劣性,文中以JL8-600型串聯(lián)機(jī)械臂為實(shí)驗(yàn)對(duì)象,在MATLAB中進(jìn)行仿真實(shí)驗(yàn),對(duì)機(jī)械臂在笛卡爾空間中進(jìn)行軌跡規(guī)劃,確定機(jī)械臂末端經(jīng)過的4個(gè)路徑節(jié)點(diǎn),再通過逆運(yùn)動(dòng)學(xué)將它轉(zhuǎn)換為關(guān)節(jié)空間中各關(guān)節(jié)對(duì)應(yīng)的角度值如表2所示。 表2 各關(guān)節(jié)角度值 單位:rad 在MATLAB中將改進(jìn)粒子群算法與傳統(tǒng)粒子群算法進(jìn)行對(duì)比仿真驗(yàn)證,粒子群算法初始參數(shù)設(shè)置為:初始粒子種群規(guī)模n為20,慣性權(quán)重wmax為0.9,wmin為0.4,學(xué)習(xí)因子c1、c2的大小在0.02~0.05之間,3個(gè)階段時(shí)間的初始值大小都是1.5 s,最大迭代次數(shù)Kmax為100。得到目標(biāo)函數(shù)適應(yīng)度變化曲線對(duì)比如圖3所示。 圖3 適應(yīng)度曲線變化Fig.3 Comparison of fitness curves change 通過圖3可以看出:改進(jìn)粒子群算法在第26次迭代之后收斂達(dá)到穩(wěn)定,比傳統(tǒng)粒子群算法第48次迭代要提前46%收斂,可知改進(jìn)粒子群算法在收斂速度上得到了極大的提升,且改進(jìn)粒子群算法的適應(yīng)度大小比傳統(tǒng)粒子群算法的要小38%,能夠更快達(dá)到全局最優(yōu),得到更好的尋優(yōu)效果。對(duì)比適應(yīng)度變化規(guī)律能夠證明改進(jìn)的粒子群算法勝于原始算法。 結(jié)合4-3-4混合多項(xiàng)式插值函數(shù),改進(jìn)后的粒子群算法對(duì)機(jī)械臂進(jìn)行以時(shí)間為目標(biāo)的最優(yōu)軌跡規(guī)劃,以JL8-600型串聯(lián)機(jī)械臂的關(guān)節(jié)1為例,得到關(guān)節(jié)1在3段插值時(shí)間的迭代變化過程如圖4所示。對(duì)其余5個(gè)關(guān)節(jié)采取相同方法規(guī)劃,得到所有關(guān)節(jié)在各個(gè)階段的最優(yōu)運(yùn)行時(shí)間如表3所示。同時(shí)也可得到經(jīng)過優(yōu)化后的各關(guān)節(jié)角位移、角速度以及角加速度的變化曲線分別如圖5—圖7所示。 圖4 關(guān)節(jié)1最優(yōu)粒子位置迭代Fig.4 Position iterative with optimal particle of joint 1 表3 各關(guān)節(jié)最優(yōu)運(yùn)行時(shí)間 單位:s 圖5 各關(guān)節(jié)角位移變化曲線Fig.5 Angular displacement curves of each joint 圖6 各關(guān)節(jié)角速度變化曲線Fig.6 Curves of angular velocity of each joint 圖7 各關(guān)節(jié)角加速度變化曲線Fig.7 Curves of angular acceleration of each joint 為了保證機(jī)械臂關(guān)節(jié)平穩(wěn)的運(yùn)行,各關(guān)節(jié)的運(yùn)動(dòng)應(yīng)保持時(shí)間同步,可取表3中關(guān)節(jié)最優(yōu)運(yùn)行時(shí)間的最大值,這3個(gè)階段時(shí)間分別為 0.934 0、1.092 3、0.843 4 s,相加起來總時(shí)間為2.869 7 s,與優(yōu)化前初始值相比減少了1.630 3 s,時(shí)間上縮短大約36%,證明改進(jìn)粒子群算法對(duì)提升機(jī)械臂的工作效率,優(yōu)化工作時(shí)間是有效的。 由圖5—圖7可以發(fā)現(xiàn):機(jī)械臂各關(guān)節(jié)的角位移、角速度和角加速度變化曲線平滑無突變,并且整個(gè)變化過程保持在一個(gè)比較理想的連續(xù)性的區(qū)間之內(nèi),有效地證明了該軌跡規(guī)劃算法在保證機(jī)械臂正常平穩(wěn)運(yùn)行的同時(shí)縮短了機(jī)械臂末端的運(yùn)行時(shí)間,進(jìn)一步驗(yàn)證了其對(duì)機(jī)械臂進(jìn)行時(shí)間最優(yōu)軌跡規(guī)劃的可靠性。 文中以六自由度串聯(lián)機(jī)械臂為研究對(duì)象,在4-3-4混合多項(xiàng)式插值函數(shù)的基礎(chǔ)上,結(jié)合改進(jìn)粒子群算法進(jìn)行時(shí)間最優(yōu)軌跡規(guī)劃,通過仿真實(shí)驗(yàn)得到以下結(jié)論: (1)采用4-3-4混合多項(xiàng)式插值函數(shù),有效地解決了在函數(shù)構(gòu)造過程中低階插值函數(shù)曲線不平滑、高階插值函數(shù)比較難求且凸包性差的問題。 (2)通過引入自適應(yīng)慣性權(quán)重和非線性學(xué)習(xí)因子,避免了傳統(tǒng)粒子群算法收斂速度慢、易陷入局部最優(yōu)陷阱的問題,保證了全局開發(fā)和局部開采能力的平衡。 (3)以縮短軌跡規(guī)劃時(shí)間為預(yù)期目標(biāo),實(shí)驗(yàn)結(jié)果證明軌跡規(guī)劃時(shí)間縮短了36%,且整個(gè)變化過程保持在一個(gè)比較理想的連續(xù)性的區(qū)間之內(nèi),驗(yàn)證了該軌跡規(guī)劃算法對(duì)機(jī)械臂進(jìn)行時(shí)間最優(yōu)軌跡規(guī)劃的可靠性。3.3 軌跡規(guī)劃目標(biāo)問題描述
4 仿真實(shí)驗(yàn)結(jié)果與分析
5 結(jié)論