鄭雪芳,林 意
(1.江蘇信息職業(yè)技術(shù)學(xué)院 電子信息工程學(xué)院,江蘇 無錫 214153;2.江南大學(xué) 數(shù)字媒體學(xué)院,江蘇 無錫 214122)
隨著機(jī)器人技術(shù)、人工智能、傳感器技術(shù)、電子信息技術(shù)的發(fā)展,工業(yè)機(jī)器人在智能裝備制造領(lǐng)域發(fā)揮著越來越重要的作用。傳統(tǒng)的工業(yè)機(jī)器人已無法滿足更為精細(xì)、更為復(fù)雜的任務(wù)需求。作為一種擬人機(jī)械臂,冗余機(jī)器人具有較好的自運(yùn)動(dòng)特性,便于處理力矩優(yōu)化、避關(guān)節(jié)極限等問題,從而能更好地適應(yīng)復(fù)雜工況[1-3]。冗余機(jī)器人應(yīng)用的難點(diǎn)之一為如何通過軌跡規(guī)劃選擇一組合適的關(guān)節(jié)角完成特定的操作任務(wù),并計(jì)及位置跟蹤精度、關(guān)節(jié)角位移與角速度等指標(biāo)[4]。
據(jù)現(xiàn)有文獻(xiàn)報(bào)道,冗余機(jī)器人軌跡規(guī)劃的方法主要有數(shù)值迭代法[5]、幾何法[6]及代數(shù)解法[7]。其中,數(shù)值迭代法將機(jī)器人逆運(yùn)動(dòng)學(xué)問題轉(zhuǎn)換成函數(shù)優(yōu)化問題,采用人工智能算法進(jìn)行優(yōu)化計(jì)算,該方法操作簡單,但運(yùn)算量大、速度慢。例如,Luo等[8]利用免疫遺傳算法的尋優(yōu)優(yōu)勢(shì)較好地獲得了冗余機(jī)器人在汽車引擎蓋焊接時(shí)的預(yù)期路徑。其次,幾何法通過推導(dǎo)末端執(zhí)行器位姿與各關(guān)節(jié)角的關(guān)系,獲得特定條件下的解析解,具有計(jì)算速度快,解算精度高的優(yōu)點(diǎn),但數(shù)學(xué)建模過程繁鎖。針對(duì)一類具有廣泛適用性的七自由度冗余機(jī)器人,陳鵬等[9]提出了基于逆運(yùn)動(dòng)學(xué)的幾何法,在仿真環(huán)境中實(shí)現(xiàn)了不錯(cuò)的軌跡規(guī)劃效果。最后,代數(shù)解法采用雅克比矩陣及其變形求解關(guān)節(jié)速度與末端執(zhí)行器線速度及角速度之間的微分關(guān)系,常見策略的有閉環(huán)偽逆法(Closed-loop pseudoinverse,CLP)、梯度下降法等,但求解過程中的累計(jì)誤差會(huì)影響軌跡跟蹤的精度。考慮到代數(shù)解法通用性好、便于實(shí)時(shí)控制,本文擬采用該方法對(duì)冗余機(jī)器人實(shí)行軌跡規(guī)劃。
針對(duì)上述問題,本文提出采用改進(jìn)的螢火蟲算法(Improved Glowworm Swarm Algorithm,IGSO)來改進(jìn)CLP法的性能,進(jìn)而解決冗余機(jī)器人的軌跡規(guī)劃問題。另外,筆者采用廣義反向?qū)W習(xí)策略(Generalized Orientation Learning Strategies,GOBL)來提高原算法的收斂速度與魯棒性,并使算法能夠跳出局部最優(yōu)的束縛。最后,以模塊化肩腕關(guān)節(jié)偏置的SRS結(jié)構(gòu)的冗余機(jī)器人為對(duì)象,在Matlab仿真環(huán)境下對(duì)基于IGSO算法的CLP法在軌跡規(guī)劃上的有效性進(jìn)行了驗(yàn)證。
假設(shè)冗余機(jī)器人有n個(gè)自由度,其關(guān)節(jié)變量為q=[q1,q2,…,qn]T;操作空間變量的數(shù)目為m,且m x=f(q) (1) 對(duì)式(1)求關(guān)于時(shí)間的導(dǎo)數(shù),可得微分運(yùn)動(dòng)學(xué)方程為: (2) 利用式(2)可以反求出關(guān)節(jié)速度[11],即: (3) 其中,J+為雅克比矩陣的廣義逆。其解可使關(guān)節(jié)速度的模取得局部最小值。 進(jìn)而,對(duì)于n自由度冗余機(jī)器人,其動(dòng)力學(xué)方程可描述為[12]: (4) 對(duì)于冗余機(jī)器人任務(wù)空間內(nèi)的軌跡規(guī)劃,其實(shí)質(zhì)就是在末端執(zhí)行器的起始點(diǎn)與目標(biāo)點(diǎn)之間找出一條光滑可行的路徑。 在CLP法中,關(guān)節(jié)角可通過對(duì)下式積分計(jì)算獲得[13]: Δq=J+(q)(xref-x) (5) 其中,xref為操作空間中末端執(zhí)行器位姿的參考值。根據(jù)文獻(xiàn)[13]研究可知CLP法在積分時(shí)容易產(chǎn)生累積誤差而導(dǎo)致逆解誤差增大。因此,本文擬引入IGSO算法來提升CLP法的性能,更好地解決冗余機(jī)器人的軌跡規(guī)劃問題。 在本文研究的冗余機(jī)器人軌跡規(guī)劃問題中,考慮了4種約束條件,即: (1)通過目標(biāo)函數(shù)f1使得時(shí)域內(nèi)前后兩關(guān)節(jié)的最大關(guān)節(jié)變化最小化,即: f1=max{[qn(k+1)-qn(k)]2} (6) (2)通過目標(biāo)函數(shù)f2使得時(shí)域內(nèi)前后兩關(guān)節(jié)的關(guān)節(jié)角速度的平方和最小,即: (7) (3)通過目標(biāo)函數(shù)f3使得時(shí)域內(nèi)前后兩關(guān)節(jié)的關(guān)節(jié)角加速度的平方和最小,即: (8) (4)通過目標(biāo)函數(shù)f4使得時(shí)域內(nèi)前后兩關(guān)節(jié)的關(guān)節(jié)力矩的平方和最小,即: (9) 假設(shè)冗余機(jī)器人末端執(zhí)行器的當(dāng)前位置為Pc=(xc,yc,zc),目標(biāo)位置為Pf=(xf,yf,zf),則位置誤差Pe為: (10) 因此,冗余機(jī)器人軌跡規(guī)劃中的總目標(biāo)函數(shù)為: Fi=αPe+(1-α)fi,i=1,2,3,4 (11) 在本文中,α=0.5。 在GSO算法中[14],每只螢火蟲個(gè)體i的位置xi(t)用一個(gè)目標(biāo)函數(shù)f(xi(t))評(píng)價(jià),即機(jī)械臂軌跡規(guī)劃問題可轉(zhuǎn)換為求目標(biāo)函數(shù)的最小值問題。算法的詳細(xì)步驟描述如下: 步驟1:個(gè)體初始化。GSO算法通過式(12)隨機(jī)獲得螢火蟲i(i=1,…,M)的位置,即: xi(t)=xL+rand(0,1)·(xU-xL) (12) 式中,M為種群規(guī)模,rand為隨機(jī)函數(shù),xU與xL分別為待搜索空間的閾值。 步驟2:決策域更新。每個(gè)螢火蟲根據(jù)決策域大小向其領(lǐng)域內(nèi)其他同伴傳遞信息。決策域范圍根據(jù)式(13)更新,即: (13) (14) 式中,li(t)當(dāng)期個(gè)體的熒光素值,xj(t)和lj(t)分別為鄰域個(gè)體j的位置和熒光素值。 步驟3:位置更新。若鄰域個(gè)體的熒光素值大于當(dāng)前個(gè)體,則種群向鄰域個(gè)體移動(dòng)。螢火蟲i向螢火蟲j移動(dòng)的概率為: (15) 其中,螢火蟲i的位置根據(jù)下式更新: (16) 式中,s為移動(dòng)步長。 步驟4:熒光素更新。熒光素值的大小取決于目標(biāo)函數(shù)f(xi(t))的值,其更新公式為: li(t)=(1-ρ)li(t-1)+γf(xi(t)) (17) 式中,ρ∈(0,1)為熒光素?fù)]發(fā)值,γ為熒光素更新速度。 步驟5:跳出循環(huán)條件。螢火蟲i更新位置與熒光素值,直到算法迭代次數(shù)達(dá)到Tmax,記錄并輸出最優(yōu)解。 本文采用Wang[15]提出的廣義反向?qū)W習(xí)機(jī)制(Generalized opposite learning mechanism,GOLM)來克服傳統(tǒng)GSO算法中全局開采能力不足和容易陷入局部最優(yōu)值的問題。GOLM的思想是對(duì)于任意一個(gè)可行解,計(jì)算并評(píng)價(jià)其反向解,再從中選擇較優(yōu)解作為下一代個(gè)體。例如,在M維搜索空間中,xi為可行解,那么利用GOLM定義其反向解為: (18) 在螢火蟲位置更新時(shí),考慮到位置解的有界性xi∈[xL,xU],令Δ=k(xU-xL),則改進(jìn)算法中的GOLM搜索策略定義如下: (19) 式中,k為0~1之間的隨機(jī)數(shù)。 通常冗余機(jī)器人的本體結(jié)構(gòu)主要表現(xiàn)為SRS、RSS、UUS-A和UUS-B這4種形式[16]。其中,SRS結(jié)構(gòu)更能接近人類手臂結(jié)構(gòu)特點(diǎn),故本文選用模塊化肩腕關(guān)節(jié)偏置的SRS結(jié)構(gòu)的冗余機(jī)器人為研究對(duì)象,如圖1所示,其改進(jìn)DH參數(shù)如表1所示。這里需指出,根據(jù)文獻(xiàn)[11]很容易獲得冗余機(jī)器人的雅克比矩陣及其偽逆矩陣,其過程就不再贅述。本節(jié)將通過3個(gè)仿真算例來驗(yàn)證基于IGSO算法的SRS結(jié)構(gòu)冗余機(jī)器人軌跡規(guī)劃方法的有效性。 圖1 SRS結(jié)構(gòu)的冗余機(jī)器人 表1 SRS結(jié)構(gòu)冗余機(jī)器人的改進(jìn)DH參數(shù) 本算例中,選擇目標(biāo)函數(shù)為F4,目標(biāo)位置為xref=[-0.5,0.5,1]T,不考慮姿態(tài)影響,通過優(yōu)化算法來求解CLP法的解。仿真環(huán)境為Win 10 Intel(R) Core(TM) i7-4720HQ CPU@2.60GHz,Matlab 2018b軟件下。采用傳統(tǒng)的GSO算法與IABC(Improved artificial bee colony algorithm,IABC)算法[17]來與IGSO算法作比較分析。三種算法的參數(shù)設(shè)置如表2所示。每種算法各運(yùn)行10次,每次迭代50代,然后選取并記錄下最優(yōu)結(jié)果,如圖2和圖3所示。從圖中可以看出,三種算法均能使機(jī)器人末端執(zhí)行器較好地接近參考位置,其中IGSO算法獲得目標(biāo)函數(shù)值為0.00521,分別比GSO算法與IABC算法高出了83.50%和42.07%。同時(shí),GSO算法的仿真時(shí)間為1.63s,IABC算法的仿真時(shí)間為0.98s,IGSO算法的仿真時(shí)間為0.70s。本文所提算法比其他兩種算法優(yōu)化速率分別提高57.06%與28.57%。這表明本文所提算法收斂速度快,信息挖掘能力強(qiáng)。 表2 三種算法的參數(shù)設(shè)置 圖2 三種算法的求解結(jié)果 圖3 三種算法的求解結(jié)果 進(jìn)一步地,分別在三種算法上來比較四種目標(biāo)函數(shù)的優(yōu)化效果。仿真條件同前面一樣,結(jié)果如圖4所示。從圖可以看出,不管采用何種目標(biāo)函數(shù),IGSO算法均能幫助CLP法獲得最好的優(yōu)化結(jié)果。這說明了本文所提算法具有較好的魯棒性。 圖4 不同目標(biāo)函數(shù)的對(duì)比 本算例中,冗余機(jī)器人末端執(zhí)行器的起始點(diǎn)為[0,-1,0]T,目標(biāo)點(diǎn)為[-1,0,1]T。結(jié)合IGSO算法與CLP法對(duì)機(jī)器人進(jìn)行軌跡規(guī)劃,使末端執(zhí)行器走一條直線,中間共有20個(gè)路徑點(diǎn),仿真時(shí)間為2s。為了保證機(jī)器人在運(yùn)動(dòng)過程中的關(guān)節(jié)角變化連續(xù),選擇目標(biāo)函數(shù)為F1,軌跡規(guī)劃的結(jié)果如圖5所示。從圖中可以看出,冗余機(jī)器人能夠?qū)崿F(xiàn)點(diǎn)到點(diǎn)的平滑運(yùn)動(dòng)。圖6~圖8給出了各關(guān)節(jié)的角位移、角速度及角加速度的在時(shí)域內(nèi)的響應(yīng),變化過程均平坦連續(xù)。 圖5 軌跡規(guī)劃的結(jié)果 圖6 關(guān)節(jié)角的角位移變化 圖7 關(guān)節(jié)角的角速度變化 圖8 關(guān)節(jié)角的角加速度變化 本算例中,冗余機(jī)器人末端執(zhí)行器的起始點(diǎn)為[0.8,0.6,0.4]T,目標(biāo)點(diǎn)為[1,0,0.4]T,采用目標(biāo)函數(shù)F3,對(duì)其進(jìn)行圓弧軌跡規(guī)劃。在Robotics Toolbox對(duì)本文所提方法進(jìn)行可視化仿真,仿真時(shí)間為2s,結(jié)果如圖9所示。從圖中可以看出,在本文方法的幫助下,SRS結(jié)構(gòu)的冗余機(jī)器人能夠走出一條較為光滑連續(xù)的軌跡。同時(shí),表3給出了規(guī)劃的圓弧軌跡在X、Y與Z軸上的誤差。這些誤差指標(biāo)均在機(jī)器人實(shí)際操作的許可誤差范圍內(nèi)[18]。 圖9 圓弧軌跡規(guī)劃 表3 圓弧軌跡的誤差 (1)本文提出了一種基于改進(jìn)螢火蟲算法的閉環(huán)偽逆法,用于處理SRS結(jié)構(gòu)的冗余機(jī)器人的點(diǎn)到點(diǎn)運(yùn)動(dòng)、直線軌跡規(guī)劃及圓弧軌跡規(guī)劃。仿真結(jié)果證明,該方法具有較好的魯棒性與準(zhǔn)確性。 (2)用本文所提方法對(duì)SRS結(jié)構(gòu)的冗余機(jī)器人進(jìn)行直線插補(bǔ)與圓弧插補(bǔ),均能獲得光滑連續(xù)的軌跡,對(duì)實(shí)際操作具有一定的參考性。 (3)用廣義反向?qū)W習(xí)機(jī)制來改進(jìn)傳統(tǒng)螢火蟲算法,增強(qiáng)其搜索性能。仿真結(jié)果證明,本文所提算法的優(yōu)化能力要強(qiáng)于GSO算法與IABC算法。 (4)在今后的研究中,將本文所提方法用于實(shí)際的冗余機(jī)器人軌跡規(guī)劃中,驗(yàn)證其實(shí)時(shí)性與有效性。1.2 軌跡規(guī)劃
1.3 構(gòu)造目標(biāo)函數(shù)
2 改進(jìn)的螢火蟲算法
2.1 傳統(tǒng)的螢火蟲算法
2.2 廣義反向?qū)W習(xí)機(jī)制
3 仿真結(jié)果
3.1 仿真算例1
3.2 仿真算例2
3.3 仿真算例3
4 結(jié)論