許 哲,王慶誠(chéng),賈廣臣
(上海海洋大學(xué) 工程學(xué)院,上海 201306)
隨著生產(chǎn)力和機(jī)器人技術(shù)的提高,機(jī)器人的應(yīng)用領(lǐng)域越來(lái)越廣泛,包含噴涂、焊接、包裝等領(lǐng)域。機(jī)器人可以長(zhǎng)期高效率、高精度、安全可靠的工作,大大解放了勞動(dòng)力。研究機(jī)械臂的軌跡規(guī)劃有助于提高機(jī)械臂的可靠性,軌跡規(guī)劃的結(jié)果對(duì)機(jī)械臂的各項(xiàng)性能指標(biāo)具有重要影響。機(jī)械臂的應(yīng)用場(chǎng)合不同,優(yōu)化的目標(biāo)也有所不同。軌跡優(yōu)化以時(shí)間為優(yōu)化目標(biāo)[1]是為了提高機(jī)械臂的工作效率。以能量消耗作為軌跡優(yōu)化目標(biāo)[2,3]是為了降低能耗,滿足長(zhǎng)時(shí)間工作要求。降低脈動(dòng)沖擊軌跡優(yōu)化[4]是為了提高機(jī)械臂運(yùn)動(dòng)過(guò)程中軌跡的平滑性,減小沖擊,保護(hù)機(jī)器人本體結(jié)構(gòu)。
李林升[5]以時(shí)間作為軌跡優(yōu)化目標(biāo),用5-5-7-5次多項(xiàng)式對(duì)關(guān)節(jié)空間軌跡進(jìn)行插值,然后運(yùn)用懲罰函數(shù)法計(jì)算多項(xiàng)式插值時(shí)間,縮短了關(guān)節(jié)運(yùn)行時(shí)間。殷鳳健等[6]利用三次樣條插值進(jìn)行軌跡規(guī)劃,通過(guò)自適應(yīng)遺傳算法對(duì)運(yùn)動(dòng)軌跡進(jìn)行時(shí)間最短優(yōu)化。僅以時(shí)間作為優(yōu)化目標(biāo)對(duì)機(jī)械臂進(jìn)行軌跡優(yōu)化常常難以滿足實(shí)際應(yīng)用需求。徐海黎等[7]采用三次多項(xiàng)式曲線連接相鄰型值點(diǎn),通過(guò)免疫克隆算法對(duì)機(jī)械臂時(shí)間消耗和能量消耗這兩個(gè)指標(biāo)進(jìn)行綜合優(yōu)化,三次多項(xiàng)式構(gòu)造的機(jī)械臂運(yùn)動(dòng)軌跡不夠平滑。余陽(yáng)等[8]采用五次均勻B樣條插值方法結(jié)合混合遺傳算法對(duì)機(jī)械臂進(jìn)行時(shí)間-能量混合最優(yōu)軌跡規(guī)劃,這種算法受主觀影響較大。施祥玲[9]等采用五次NURBS對(duì)機(jī)械臂進(jìn)行多個(gè)目標(biāo)軌跡優(yōu)化,在降低軌跡規(guī)劃時(shí)間的同時(shí),減小了能量消耗和沖擊,但無(wú)法指定啟停時(shí)刻加加速度。
本文采用七次B樣條曲線構(gòu)造速度、加速度和加加速度都連續(xù)平滑的機(jī)械臂運(yùn)動(dòng)軌跡。將機(jī)械臂運(yùn)動(dòng)過(guò)程中消耗的時(shí)間、能量和軌跡沖擊性作為優(yōu)化目標(biāo),對(duì)這三個(gè)目標(biāo)進(jìn)行同時(shí)優(yōu)化。使用NSGA-Ⅱ算法得到一組Pareto最優(yōu)解集,多目標(biāo)優(yōu)化問(wèn)題的最終解可根據(jù)實(shí)際需要在Pareto最優(yōu)解集中選取。
機(jī)械臂軌跡規(guī)劃進(jìn)行優(yōu)化,首先需要對(duì)目標(biāo)路徑點(diǎn)序列進(jìn)行示教,結(jié)合指定的目標(biāo)路徑點(diǎn)和機(jī)械臂各關(guān)節(jié)運(yùn)動(dòng)參數(shù)約束,規(guī)劃出一條理想的運(yùn)行軌跡。規(guī)劃的軌跡符合各關(guān)節(jié)參數(shù)約束的同時(shí)能夠準(zhǔn)確通過(guò)示教的目標(biāo)路徑關(guān)鍵點(diǎn),并且滿足時(shí)間、能耗和平滑性這三個(gè)優(yōu)化目標(biāo)的最優(yōu)。多目標(biāo)優(yōu)化問(wèn)題的數(shù)學(xué)模型如式(1)所示[10]:
式(1)中,x=(x1,x2,x3,...,xn)T為決策變量,由n個(gè)決策子變量組成;fn(x)(n≥2)為子目標(biāo)函數(shù);gi(x)hi(x)為約束條件方程。
為了提高機(jī)械臂作業(yè)效率,降低機(jī)械臂能量消耗,使機(jī)械臂運(yùn)動(dòng)軌跡平滑,定義如下的優(yōu)化目標(biāo):
式中:T為機(jī)械臂沿一定的軌跡運(yùn)動(dòng)的總時(shí)間;ti+1,ti分別為第i段運(yùn)動(dòng)軌跡的時(shí)長(zhǎng)、運(yùn)動(dòng)起始時(shí)間、運(yùn)動(dòng)結(jié)束時(shí)間;ai、ji分別為第i個(gè)關(guān)節(jié)的運(yùn)動(dòng)加速度、加加速度;S1為運(yùn)動(dòng)時(shí)間,用來(lái)衡量機(jī)械臂運(yùn)動(dòng)效率。S2為關(guān)節(jié)平均加速度,用來(lái)衡量機(jī)械臂能量消耗;S3為關(guān)節(jié)平均加加速度,用來(lái)衡量機(jī)械臂運(yùn)動(dòng)軌跡的平滑度。
構(gòu)造機(jī)械臂運(yùn)動(dòng)軌跡時(shí),需要考慮速度、加速度和加加速度等約束,因此機(jī)械臂的運(yùn)動(dòng)受到以下約束:
關(guān)節(jié)位移q(t)≤qmax;關(guān)節(jié)速度v(t)≤vmax;關(guān)節(jié)加速度a(t)≤amax;關(guān)節(jié)加加速度:j(t)≤jmax。
在關(guān)節(jié)空間中對(duì)機(jī)械臂進(jìn)行多目標(biāo)軌跡優(yōu)化時(shí),一條K次B樣條曲線可由分段的有理多項(xiàng)式函數(shù)表示,具有良好的局部支撐性和連續(xù)可微性[11]。K次B樣條曲線方程為:
式(5)中dj(i=0,1...n)為B樣條曲線控制頂點(diǎn),Nj,k(u)為K次規(guī)范B樣條函數(shù)基函數(shù),定義在節(jié)點(diǎn)矢量U=[u0,u1,...un+k,un+k+1]上,根據(jù)德布爾-考克斯遞推公式求出,規(guī)定0/0=0。
為了使機(jī)械臂各關(guān)節(jié)軌跡經(jīng)過(guò)目標(biāo)路徑點(diǎn)pi(i=0,1...m),反求B樣條曲線軌跡的控制頂點(diǎn),使曲線的分段連接點(diǎn)與內(nèi)節(jié)點(diǎn)相對(duì)應(yīng)。di(i=0,1...n+k-1)控制頂點(diǎn)與節(jié)點(diǎn)矢量U=[u0,u1,...un+k,un+k+1]定義了該B樣條插值曲線。本文采用規(guī)范節(jié)點(diǎn)矢量,令u0=u1=...=uk=0;un+1=un+2=...un+k+1=1。對(duì)軌跡路徑點(diǎn)時(shí)間節(jié)點(diǎn)進(jìn)行歸一化時(shí)使用累計(jì)弦長(zhǎng)參數(shù)化方法,得到內(nèi)節(jié)點(diǎn)值:
于是可以得到滿足插值條件的n+1個(gè)方程:
采用切矢邊界條件約束可以得到k-1個(gè)附加方程。七次B樣條曲線切矢邊界條件可以取啟停速度vs、ve,啟停加速度as、ae,啟停加加速度js、je。此時(shí)增加的方程如下:
式中:p'、p''、p'''分別為B樣條曲線的一階、二階、三階導(dǎo)矢,表示各個(gè)關(guān)節(jié)的速度、加速度、加加速度。
根據(jù)德布爾遞推公式求出各階導(dǎo)矢:
式中:
根據(jù)上述公式就可以得到求解各關(guān)節(jié)B樣條曲線的控制頂點(diǎn)向量的n+k個(gè)線性方程。根據(jù)歸一化時(shí)間節(jié)點(diǎn)向量U,就可以求出各個(gè)關(guān)節(jié)在時(shí)間ti時(shí)經(jīng)過(guò)的位置pi。B樣條曲線具有凸包性質(zhì),且與曲線階次呈正相關(guān)。因此需對(duì)運(yùn)動(dòng)學(xué)約束乘以相應(yīng)的放大系數(shù)kv、ka、kj進(jìn)行適當(dāng)放大。軌跡的運(yùn)動(dòng)學(xué)約束轉(zhuǎn)化為B樣條曲線控制頂點(diǎn)約束[12]。
本文采用NSGA-Ⅱ算法對(duì)機(jī)械臂各關(guān)節(jié)軌跡進(jìn)行優(yōu)化,可以得到多目標(biāo)軌跡優(yōu)化問(wèn)題的Pareto最優(yōu)解集。多目標(biāo)優(yōu)化問(wèn)題中優(yōu)化的多個(gè)目標(biāo)往往相互沖突,傳統(tǒng)的加權(quán)系數(shù)法得到的是單一優(yōu)化解,采用NSGA-Ⅱ算法進(jìn)行多目標(biāo)優(yōu)化問(wèn)題求解得到的是一個(gè)解集,根據(jù)不同的需求在這個(gè)解集中選擇最優(yōu)解。
Pareto支配關(guān)系定義如下:n個(gè)目標(biāo)分量最小化多目標(biāo)向量F(x)=[minf1(x),minf2(x),minf3(x),...,minfn(x)],任意給定2個(gè)決策變量xu、xv∈x,當(dāng)且僅當(dāng)i∈{1,2,...,n},fi(xu)<,fi(xv)時(shí),xu支配xi,記作xuxi。Pareto最優(yōu)解集合中的所有解在整個(gè)解空間S中都不被其他解支配。Pareto最優(yōu)解的特點(diǎn)是在無(wú)法改進(jìn)任一目標(biāo)函數(shù)的同時(shí)不削弱至少一個(gè)其他目標(biāo)函數(shù)優(yōu)化結(jié)果。
NSGA-Ⅱ算法是遺傳算法的改進(jìn)算法,是常用的多目標(biāo)優(yōu)化問(wèn)題算法,算法的核心快速非支配排序降低了計(jì)算的復(fù)雜度,個(gè)體擁擠度距離計(jì)算保重了種群的多樣性,精英保存策略擴(kuò)大了采樣空間選擇出種群中較優(yōu)的個(gè)體。NSGA-II算法的進(jìn)化流程如下:
1)采用合適的方式隨機(jī)產(chǎn)生初始父代種群P0,種群規(guī)模為N,通過(guò)交叉變異產(chǎn)生種群大小也為N的子代種群Q0。
2)父代種群和子代種群共同組成種群Ri,采用快速非支配排序策略,將種群Ri的全部個(gè)體進(jìn)行分層,每一層為一個(gè)非支配集Fi;計(jì)算每一非支配集的全體局部擁擠度并排序。
3)按照排序順序陸續(xù)將非支配集包含的個(gè)體填充進(jìn)新的父代種群Pi+1,當(dāng)填充的某一級(jí)非支配集的全部個(gè)體將導(dǎo)致種群大小超過(guò)N時(shí),按個(gè)體擁擠度大小將部分個(gè)體優(yōu)先填充進(jìn)種群Pi+1,直至Pi+1的規(guī)模大小為N為止。
4)Pi+1經(jīng)過(guò)常規(guī)的遺傳操作生成子代種群Qi+1。
5)如果迭代次數(shù)G未達(dá)到設(shè)定值Gmax,則再進(jìn)行2)、3)、4)步的操作。
具體優(yōu)化流程如圖1所示。
圖1 NSGA-II算法優(yōu)化流程
以HSR-JR612型機(jī)械臂為研究對(duì)象,空間結(jié)構(gòu)如圖2所示。根據(jù)D-H參數(shù)機(jī)器人建模方法,給機(jī)器人建立必要的連桿坐標(biāo)系,如圖3所示。根據(jù)機(jī)械臂結(jié)構(gòu)和連桿坐標(biāo)系可得HSR-JR612型機(jī)器人的D-H參數(shù),如表1所示。
圖2 HSR-JR612型機(jī)械臂空間結(jié)構(gòu)圖
表1 HSR-JR612 型機(jī)器人的 D-H 參數(shù)
圖3 HSR-JR612型機(jī)械臂連桿坐標(biāo)系
連桿i在桿件坐標(biāo)系i-1下的相對(duì)位姿可用式(16)表示。
將表1各連桿參數(shù)代入式(17),利用各連桿轉(zhuǎn)換矩陣相乘得到機(jī)器人運(yùn)動(dòng)學(xué)方程:
為HSR-JR612型機(jī)械臂規(guī)劃一段作業(yè)路徑,給定末端連桿的位姿。首先通過(guò)逆運(yùn)動(dòng)學(xué)計(jì)算得到關(guān)節(jié)空間中各關(guān)節(jié)目標(biāo)路徑點(diǎn)序列,結(jié)合軌跡規(guī)劃運(yùn)動(dòng)學(xué)約束條件,將機(jī)械臂運(yùn)動(dòng)的時(shí)間消耗、能量消耗和軌跡沖擊性作為優(yōu)化目標(biāo),通過(guò)NSGA-II算法規(guī)劃得到通過(guò)指定關(guān)節(jié)序列的點(diǎn)的最優(yōu)軌跡集合。采用七次B樣條曲線構(gòu)造關(guān)節(jié)軌跡,啟停時(shí)刻的速度、加速度、加加速度均指定為0。
表2 各關(guān)節(jié)目標(biāo)路徑點(diǎn)序列
表3列出了NSGA-II算法的各項(xiàng)參數(shù)設(shè)置。
表3 運(yùn)動(dòng)學(xué)約束
表4 NSGA-II算法各項(xiàng)參數(shù)設(shè)置
以S1、S2、S3作為優(yōu)化目標(biāo)函數(shù),以每段時(shí)間t作為決策變量,對(duì)各個(gè)關(guān)節(jié)的速度、加速度、加加速度進(jìn)行約束,圖4為通過(guò)NSGA-II算法規(guī)劃得到多目標(biāo)綜合優(yōu)化Pareto前沿面。從圖4及表5可以看出,越接近A點(diǎn)時(shí)間消耗性能最好,能量消耗和軌跡沖擊性能越大。越接近B點(diǎn)能量消耗和軌跡沖擊性能越小,但時(shí)間消耗最大。軌跡沖擊性與能量消耗性能是同向的,與時(shí)間消耗性能是反向的。
圖4 機(jī)械臂軌跡優(yōu)化Pareto最優(yōu)前沿
圖2中Pareto前沿面中部分典型解如表5所示。
表5 多目標(biāo)優(yōu)化部分?jǐn)?shù)據(jù)點(diǎn)值
選取A點(diǎn)和B點(diǎn)之間的C點(diǎn)作為機(jī)械臂多目標(biāo)優(yōu)化問(wèn)題的最終解,相關(guān)性能指標(biāo)運(yùn)動(dòng)時(shí)間S1=27.4456s,關(guān)節(jié)平均加速度S2=12.497(°/s2),S3=15.2943(°/s3)。規(guī)劃出的時(shí)間節(jié)點(diǎn)向量Δt=[6.5317,1.6286,1.6508,4.8583,5.1096,3.755,3.9116]向量為,規(guī)劃前的運(yùn)行時(shí)間為49s,所選取的多目標(biāo)優(yōu)化最終解相比于規(guī)劃前運(yùn)行時(shí)間減少44%,各關(guān)節(jié)位移如圖5所示。
圖5 機(jī)械臂各關(guān)節(jié)位移變化曲線
圖6為優(yōu)化后機(jī)械臂各關(guān)節(jié)速度、加速度、加加速度曲線??梢钥闯霾捎闷叽蜝樣條曲線,可以得到機(jī)械臂速度、加速度、加加速度均連續(xù)平穩(wěn)的運(yùn)動(dòng)軌跡,滿足約束條件。且啟停時(shí)刻速度、加速度和加加速度都為0,與指定值相符。相比于文獻(xiàn)[5]將時(shí)間作為優(yōu)化指標(biāo),文獻(xiàn)[7]將時(shí)間-能量作為優(yōu)化指標(biāo)的優(yōu)化方法,NSGA-Ⅱ算法能較好的實(shí)現(xiàn)更多目標(biāo)的優(yōu)化問(wèn)題。采用七次B樣條曲線構(gòu)造關(guān)節(jié)運(yùn)動(dòng)軌跡,避免了文獻(xiàn)[11]采用三次B樣條曲線構(gòu)造關(guān)節(jié)運(yùn)動(dòng)軌跡造成的加速度不平滑問(wèn)題和文獻(xiàn)[9]采用的五次NURBS曲線構(gòu)造關(guān)節(jié)運(yùn)動(dòng)軌跡,但啟停時(shí)刻加加速度不可指定,仍可能造成機(jī)械臂啟停時(shí)刻產(chǎn)生沖擊引起機(jī)械臂振動(dòng)的問(wèn)題。
圖6 各關(guān)節(jié)速度、加速度及加加速度變化曲線
利用七次B樣條曲線在關(guān)節(jié)空間對(duì)機(jī)械臂進(jìn)行軌跡規(guī)劃,得到啟停速度、加速度、加加速度均可指定的連續(xù)運(yùn)動(dòng)軌跡。采用NSGA-Ⅱ算法,對(duì)機(jī)械臂的關(guān)節(jié)速度、加速度和加加速度施加約束條件,以時(shí)間消耗少、能量消耗低、平滑沖擊小這三個(gè)性能指標(biāo)作為優(yōu)化目標(biāo)對(duì)機(jī)械臂運(yùn)動(dòng)軌跡進(jìn)行多目標(biāo)優(yōu)化,得到Pareto最優(yōu)解的集合,實(shí)現(xiàn)了機(jī)械臂多目標(biāo)綜合優(yōu)化。根據(jù)實(shí)際需要選取的最終解,在減少機(jī)械臂運(yùn)動(dòng)時(shí)間的同時(shí),降低了運(yùn)動(dòng)過(guò)程中的消耗的能量,減小了沖擊。