孫曉軍 宋代平 林敬周 韓偉航
1.重慶大學(xué)機(jī)械傳動(dòng)國(guó)家重點(diǎn)實(shí)驗(yàn)室,重慶,4000442.中國(guó)空氣動(dòng)力學(xué)研究與發(fā)展中心超高速空氣動(dòng)力研究所,綿陽(yáng),621000 3.遼寧石油化工大學(xué)信息與控制工程學(xué)院, 撫順,113001
機(jī)械臂的目標(biāo)軌跡往往先通過試教法確定,再通過軌跡規(guī)劃算法確定各個(gè)關(guān)節(jié)的速度曲線。傳統(tǒng)的軌跡規(guī)劃算法僅考慮了機(jī)械臂運(yùn)動(dòng)學(xué)模型的非線性及關(guān)節(jié)電機(jī)速度的限制,這使得規(guī)劃的軌跡不能充分發(fā)揮機(jī)械臂的工作效率。對(duì)目標(biāo)軌跡進(jìn)行二次規(guī)劃可提高機(jī)械臂的運(yùn)動(dòng)速度,縮短運(yùn)動(dòng)時(shí)間。與傳統(tǒng)的軌跡規(guī)劃算法相比,基于動(dòng)力學(xué)模型的軌跡規(guī)劃算法能夠充分考慮機(jī)械臂運(yùn)動(dòng)學(xué)模型、動(dòng)力學(xué)模型的非線性,以及關(guān)節(jié)速度、力/力矩的限制,規(guī)劃軌跡能夠充分發(fā)揮機(jī)械臂驅(qū)動(dòng)能力,但該算法存在計(jì)算量大、計(jì)算效率低的問題[1]。
目前考慮機(jī)械臂動(dòng)力學(xué)模型的軌跡規(guī)劃算法有3類。一是相平面法,通過引入路徑參數(shù),對(duì)機(jī)械臂的運(yùn)動(dòng)學(xué)模型、動(dòng)力學(xué)模型進(jìn)行參數(shù)化變換,得到以路徑參數(shù)二階微分方程表示的路徑參數(shù)化動(dòng)力學(xué)模型,再通過路徑參數(shù)化模型將關(guān)節(jié)速度、力/力矩等約束轉(zhuǎn)化為關(guān)于路徑參數(shù)的約束,最終將軌跡規(guī)劃問題轉(zhuǎn)化為關(guān)于路徑參數(shù)的二維優(yōu)化問題[2-4]。相平面法計(jì)算效率高,但通用性較差,約束增加困難,如考慮加加速度約束,相平面法解算將變得復(fù)雜[5]。二是直接優(yōu)化方法,通常將目標(biāo)軌跡劃分為n段,將規(guī)劃問題轉(zhuǎn)化為具有n個(gè)不等式約束(動(dòng)力學(xué)約束、運(yùn)動(dòng)學(xué)約束、關(guān)節(jié)力矩約束等)的優(yōu)化問題,然后采用如凸優(yōu)化法[6-10]等相對(duì)高效的優(yōu)化算法進(jìn)行優(yōu)化處理。凸優(yōu)化法具有較高的通用性,約束添加簡(jiǎn)單,但依賴于高效的優(yōu)化算法包,計(jì)算效率低于相平面法。三是采用最優(yōu)控制理論的時(shí)間最優(yōu)控制方法,通過求解最優(yōu)性必要條件的兩點(diǎn)邊值問題獲得最優(yōu)解[11],該方法在理論上比前兩種算法速度快,但規(guī)劃的軌跡易引起運(yùn)動(dòng)學(xué)奇異的問題[5]。
由于相平面法具有較高的計(jì)算效率,因此本文采用相平面法進(jìn)行速度曲線規(guī)劃,并對(duì)相平面法進(jìn)行優(yōu)化改進(jìn)以進(jìn)一步提高算法的計(jì)算效率,對(duì)規(guī)劃的軌跡進(jìn)行平滑處理以保證機(jī)械臂運(yùn)動(dòng)平穩(wěn)。相平面法優(yōu)化方法體現(xiàn)在以下三點(diǎn):①通過模糊推理計(jì)算路徑點(diǎn)數(shù)目,減小計(jì)算規(guī)模,采用0值加速度曲線乘以比例系數(shù)替代關(guān)節(jié)力/力矩約束最大速度曲線,提高算法的計(jì)算效率;②通過速度特征點(diǎn)法提取多重約束最大速度曲線的速度特征點(diǎn),再通過B樣條插值法對(duì)速度特征點(diǎn)插值,保證速度曲線連續(xù)光滑;③采用修型-射靶算法對(duì)速度曲線進(jìn)行修形,得到滿足多重約束的最大速度曲線。
機(jī)械臂的動(dòng)力學(xué)模型可以表示為
(1)
設(shè)機(jī)械臂在工作空間的目標(biāo)軌跡為s(P)(?s∈R+),P∈Rn×6為目標(biāo)軌跡的路徑點(diǎn)向量。目標(biāo)軌跡的時(shí)間參數(shù)化可表示為s(t):[0,T]→[ss,se],T為機(jī)械臂跟蹤目標(biāo)軌跡的運(yùn)動(dòng)時(shí)間,s為一維路徑參數(shù),ss為起始路徑參數(shù)值,se為末端路徑參數(shù)值。
在關(guān)節(jié)空間,根據(jù)機(jī)械臂運(yùn)動(dòng)學(xué)模型可得機(jī)械臂末端的正運(yùn)動(dòng)學(xué)特征:
p=Z(q)
(2)
(3)
(4)
在參考坐標(biāo)系,采用路徑s表示機(jī)械臂末端的正運(yùn)動(dòng)學(xué)特征:
p=f(s)
(5)
(6)
(7)
結(jié)合式(2)~式(4)可得關(guān)于路徑參數(shù)s的運(yùn)動(dòng)學(xué)模型:
q=Z-1(f(s))
(8)
(9)
(10)
將式(8)~式(10)代入式(1),可得關(guān)于路徑參數(shù)s的動(dòng)力學(xué)模型:
(11)
(12)
(13)
(14)
a4(s)=G(q(s))+JTτd(q(s))
(15)
機(jī)械臂目標(biāo)軌跡的路徑點(diǎn)向量P(P=(P1,P2,…,PK))一般提前設(shè)定,通過運(yùn)動(dòng)學(xué)逆解求解其對(duì)應(yīng)的關(guān)節(jié)向量q(q=(q1,q2,…,qK))。為了使機(jī)械臂平穩(wěn)通過路徑點(diǎn),采用B樣條等曲線對(duì)路徑點(diǎn)向量P進(jìn)行插值得到連續(xù)的目標(biāo)軌跡。軌跡二次規(guī)劃需要將目標(biāo)軌跡進(jìn)行離散化處理,進(jìn)而將軌跡規(guī)劃問題轉(zhuǎn)化為稀疏離散化優(yōu)化問題。若離散的位姿向量序列過大將導(dǎo)致優(yōu)化規(guī)模過大,降低軌跡規(guī)劃算法的效率;若位姿向量序列過小將丟失目標(biāo)軌跡的特征,甚至失真。在此采用目標(biāo)軌跡的路徑復(fù)雜程度與動(dòng)力學(xué)模型非線性程度作為提取目標(biāo)軌跡路徑特征點(diǎn)的依據(jù),使用模糊推理算法計(jì)算路徑特征點(diǎn)的間隔,等間距提取路徑特征點(diǎn)。
(16)
結(jié)合式(1)、式(8)、式(9)可得向心加速度/科氏加速度單位向量
(17)
結(jié)合式(1)、式(8)可得重力加速度單位向量
γg=a4=[JT]-1G(Z-1(f(s)))
(18)
路徑特征點(diǎn)算法流程圖見圖1,算法步驟如下。
圖1 路徑特征點(diǎn)算法流程圖
(1)根據(jù)下式計(jì)算路徑復(fù)雜度:
(19)
式中,Δs為迭代步長(zhǎng);Δqx、Δqy、Δqz為機(jī)器人末端在參考坐標(biāo)系下x、y、z方向的微分變化量;Δqα、Δqβ、Δqγ為機(jī)器人末端在參考坐標(biāo)系下繞x、y、z軸旋轉(zhuǎn)的角度微分變量;sum(·)為求和函數(shù)。
(2)計(jì)算動(dòng)力學(xué)模型非線性程度。令迭代步長(zhǎng)為Δs,計(jì)算路徑點(diǎn)si=ss的動(dòng)力學(xué)特征向量γm,i、γc,i、γg,i,再計(jì)算路徑點(diǎn)sj=si+Δs的動(dòng)力學(xué)特征向量γm,j、γc,j、γg,j,計(jì)算si與sj特征向量的夾角θn,刷新si=sj、sj=si+Δs,若sj=si+Δs>se,則θmax=max(θn)為動(dòng)力學(xué)模型變化程度。
(3)采用模糊推理計(jì)算路徑特征點(diǎn)間隔ds。利用路徑點(diǎn)間隔ds等間距提取路徑特征點(diǎn)序列,令得到的路徑特征點(diǎn)向量P′=(P1,P2,…,PN),N≥K,對(duì)應(yīng)的關(guān)節(jié)向量q′=(q1,q2,…,qN)。
(20)
將式(9)代入式(20)可得關(guān)節(jié)i速度邊界限制的最大速度:
(21)
通過式(21)依次求解機(jī)械臂各個(gè)自由度速度邊界限制的最大速度曲線,然后通過下式求解所有關(guān)節(jié)速度邊界限制得到的最大速度ζv:
(22)
依次求解路徑特征點(diǎn)的最大速度ζv,得到關(guān)節(jié)速度邊界限制的最大速度曲線V1:
V1={ζv(s),s∈[0,1]}
(23)
關(guān)節(jié)力矩約束表示為
Tmin≤τ(s)≤Tmax
(24)
其中,Tmin∈R6×1、Tmax∈R6×1,為機(jī)械臂關(guān)節(jié)力矩邊界。將式(11)代入式(24)可得
(25)
為了表述方便,式(25)可表示為
(26)
分析式(26)有以下三種情況:
(1)a1,i(s)>0時(shí),有
定義加速度的上邊界β為
(2)a1,i(s)<0時(shí),有
定義加速度的下邊界α為
(3)a1,i(s)=0時(shí)為零慣性點(diǎn),不予考慮。
依次求取各個(gè)關(guān)節(jié)力矩限制的加速度,可得路徑加速度邊界:
(27)
i=0,1,…,6
至此得關(guān)節(jié)力/力矩約束轉(zhuǎn)化為對(duì)路徑加速度的約束:
(28)
機(jī)械臂在啟動(dòng)時(shí)希望機(jī)械臂以最大的加速度沿著目標(biāo)路徑軌跡運(yùn)動(dòng),采用數(shù)值積分[12]方法求解啟動(dòng)速度,計(jì)算公式如下:
(29)
(30)
啟動(dòng)/停止最大速度曲線的獲取步驟如下:
(2)類似地,在停止運(yùn)動(dòng)時(shí)以最小的加速度減速運(yùn)動(dòng),采用逆向積分的方法求解停止最大速度曲線V5。
圖2 多重約束最大速度曲線的生成
由于2.5節(jié)求得的最大速度曲線Ve可能存在加速度不連續(xù)等問題,故需對(duì)Ve進(jìn)行優(yōu)化。最大速度曲線Ve的優(yōu)化分為速度特征點(diǎn)的獲取、速度特征點(diǎn)B樣條插值[13](或其他平滑插值算法)和修型-打靶算法修正速度特征點(diǎn)幅值三步。
最大速度曲線Ve速度特征點(diǎn)的提取方法為:提取最大速度曲線Ve的首尾速度Ve,0、Ve,K;令i←3,若Ve,i-1≥Ve,i≤Ve,i+1,則Ve,i為特征速度點(diǎn),否則令i←i+1,依此再進(jìn)行判斷,掃描所有最大速度曲線Ve離散點(diǎn);若速度特征點(diǎn)數(shù)目小于4,對(duì)速度特征點(diǎn)數(shù)進(jìn)行等間距插值。
圖3 B樣條插值速度特征點(diǎn)
修型-打靶算法流程圖見圖4,算法的流程如下:
圖4 修型-打靶算法流程圖
(1)對(duì)最大速度曲線Ve進(jìn)行分段采樣得到檢測(cè)序列S,采用差分方法計(jì)算檢測(cè)序列S對(duì)應(yīng)的加速度as。
(2)根據(jù)式(27)計(jì)算得到檢測(cè)序列S對(duì)應(yīng)的最大加速度序列amax、最小加速度序列amin。
(3)依次檢查加速度as是否滿足約束要求,將不滿足amin、amax的加速度保存在Sc,i=[Sc1,Sc2],其中Sc,i表示第i個(gè)相鄰速度特征點(diǎn)分段,Sc1表示小于amin序列所對(duì)應(yīng)的加速度,Sc2表示大于amax序列所對(duì)應(yīng)的加速度。
(4)若Sc1非空,則降低Sc1序列所對(duì)應(yīng)的速度特征點(diǎn)分段的起始速度幅值,增大終止速度幅值;若Sc2非空,則降低Sc2序列所對(duì)應(yīng)的速度特征點(diǎn)分段終止速度幅值,增大起始速度幅值。
(5)若Sc非空,則重復(fù)步驟(2)~步驟(4)修正速度幅值,直到Sc為空,若檢測(cè)序列S所對(duì)應(yīng)的速度非負(fù),則認(rèn)為修形后的最大速度曲線滿足關(guān)節(jié)速度、關(guān)節(jié)力矩/加速度要求,若檢測(cè)序列S所對(duì)應(yīng)的速度為負(fù),則規(guī)劃算法失效。
為驗(yàn)證速度曲線規(guī)劃算法的有效性,以六自由度上攻角機(jī)械臂為例驗(yàn)證軌跡規(guī)劃算法的有效性及計(jì)算效率。上攻角機(jī)械臂的結(jié)構(gòu)簡(jiǎn)圖見圖5,包括軸向X、法向Y、側(cè)向Z、俯仰α、偏航β、滾轉(zhuǎn)γ六個(gè)自由度,飛行器模型掛載在滾轉(zhuǎn)機(jī)構(gòu)末端,各個(gè)自由度的力矩/電流約束、速度約束如表1所示。
表1 關(guān)節(jié)力矩/電流約束、速度約束表
圖5 上攻角機(jī)械臂結(jié)構(gòu)簡(jiǎn)圖
軌跡規(guī)劃算法編寫在監(jiān)控PC(CPU 主頻為2.3 GHz、內(nèi)存為 7.9 GB)的MATLAB 2016軟件上,監(jiān)控PC上的人機(jī)交互界面軟件通過MATLAB接口調(diào)用軌跡規(guī)劃算法,并將規(guī)劃結(jié)果通過ADS通信傳輸給工控機(jī)。工控機(jī)運(yùn)行機(jī)械臂的運(yùn)動(dòng)控制軟件,完成機(jī)械臂的運(yùn)動(dòng)控制及各個(gè)關(guān)節(jié)位置、速度、電流等數(shù)據(jù)的采集。
4.1.1簡(jiǎn)單軌跡規(guī)劃實(shí)驗(yàn)
為了驗(yàn)證速度曲線規(guī)劃算法的有效性,進(jìn)行特定軌跡規(guī)劃實(shí)驗(yàn)。定義簡(jiǎn)單目標(biāo)軌跡的起始位姿(-500 mm,-100 mm,0,-8°,0°,0°)T與終點(diǎn)位姿(0,600 mm,0,0°,0°,0°)T,起始位姿與終點(diǎn)位姿采用B樣條插值得到連續(xù)的軌跡。通過動(dòng)力學(xué)特征向量法提取有限數(shù)目路徑特征點(diǎn),路徑特征點(diǎn)在各個(gè)自由度的分布如圖6所示。
圖6 X、Y、α軸的路徑特征點(diǎn)的分布
比例系數(shù)Kv=1.2,通過MATLAB計(jì)算得到關(guān)節(jié)速度約束、關(guān)節(jié)力矩約束、啟動(dòng)/停止約束等約束的最大速度曲線,對(duì)上述約束曲線取向下交集可得到多重約束下的最大速度曲線MV1,如圖7所示。不難看出最大速度曲線MV1存在突變,易引起上攻角機(jī)械臂振蕩而影響系統(tǒng)精度,因此需要對(duì)最大速度曲線MV1進(jìn)行平滑處理。
圖7 簡(jiǎn)單目標(biāo)軌跡相平面
提取最大速度曲線MV1的特征速度點(diǎn),然后采用B樣條插值[14]得到連續(xù)光滑的最大速度曲線MV2。B樣條插值可能導(dǎo)致最大速度曲線MV2在P1、P2處超過最大速度曲線邊界(圖8),超出最大速度曲線邊界的速度段不滿足關(guān)節(jié)速度或關(guān)節(jié)力矩/加速度的約束限制,為此采用修型-打靶算法矯正速度特征值,進(jìn)而實(shí)現(xiàn)對(duì)最大速度曲線MV2的修形,使得最終的速度曲線滿足關(guān)節(jié)速度、關(guān)節(jié)力矩/加速度等約束條件,如圖8所示。
圖8 修型-打靶算法修正速度特征點(diǎn)
通過數(shù)值計(jì)算可得到速度曲線MV2、加速度曲線MVA2在時(shí)間軸的表示,如圖9、圖10所示。不難看出,速度曲線變化連續(xù)平滑,不存在突變線性,加速度曲線除了在啟動(dòng)與停止時(shí)刻為滿足加速、減速特性加速度不為零外,其他時(shí)刻都連續(xù)平滑。綜上所述,規(guī)劃得到的速度曲線滿足對(duì)速度、加速度軌跡連續(xù)光滑的要求。
圖9 簡(jiǎn)單軌跡相平面
圖10 簡(jiǎn)單軌跡相平面
圖11 關(guān)節(jié)位置曲線
圖12 關(guān)節(jié)速度曲線
圖13 X軸關(guān)節(jié)電流曲線
圖14 Y、α軸關(guān)節(jié)電流曲線
4.1.2復(fù)雜軌跡規(guī)劃實(shí)驗(yàn)
為了進(jìn)一步驗(yàn)證速度曲線規(guī)劃算法對(duì)復(fù)雜軌跡規(guī)劃的有效性,圖15、圖16給出了復(fù)雜目標(biāo)軌跡對(duì)應(yīng)的上攻角機(jī)械臂關(guān)節(jié)曲線。
圖15 X、Y、Z自由度激勵(lì)軌跡曲線
圖16 α、β、γ自由度激勵(lì)軌跡曲線
圖17 復(fù)雜目標(biāo)軌跡相平面
圖18 修正后復(fù)雜目標(biāo)軌跡相平面 phase plan of complex trajectory after correction
4.2.1路徑特征點(diǎn)數(shù)目對(duì)算法計(jì)算效率的影響
合適數(shù)目的路徑特征點(diǎn)序列將影響軌跡規(guī)劃算法的計(jì)算效率與有效性。當(dāng)不采用路徑特征點(diǎn)算法時(shí)路徑特征點(diǎn)序列為依次經(jīng)過的路徑點(diǎn),與路徑復(fù)雜程度、機(jī)械臂非線性程度無關(guān)。路徑特征點(diǎn)算法以路徑的復(fù)雜程度、機(jī)械臂非線性程度為評(píng)價(jià)變量,模糊計(jì)算路徑特征點(diǎn)間距ds∈(0,1),再等間距提取路徑特征點(diǎn),與目標(biāo)軌跡路徑點(diǎn)數(shù)目無關(guān)。圖19所示為采用路徑特征點(diǎn)算法與不采用路徑特征點(diǎn)算法對(duì)復(fù)雜目標(biāo)軌跡進(jìn)行規(guī)劃的計(jì)算耗時(shí),從中不難看出,路徑點(diǎn)數(shù)目越多,算法越耗時(shí),當(dāng)路徑點(diǎn)數(shù)目過多時(shí),采用路徑特征點(diǎn)算法將大幅提高軌跡規(guī)劃算法的計(jì)算效率。
圖19 路徑離散點(diǎn)數(shù)目對(duì)算法效率的影響
速度曲線規(guī)劃算法可分為如下幾步:連續(xù)路徑軌跡的生成及路徑特征點(diǎn)的獲取T1、獲取多重約束最大速度曲線T2、最大速度曲線的優(yōu)化T3。表2所示為軌跡規(guī)劃算法優(yōu)化前后,對(duì)簡(jiǎn)單目標(biāo)軌跡與復(fù)雜目標(biāo)軌跡進(jìn)行規(guī)劃各步驟所占解算時(shí)間的比例,不難看出,優(yōu)化前獲取多重約束最大速度曲線T2為軌跡規(guī)劃算法的主要計(jì)算時(shí)間,并且它在復(fù)雜目標(biāo)軌跡規(guī)劃中所占用的比例大于簡(jiǎn)單目標(biāo)軌跡,優(yōu)化后,獲取多重約束最大速度曲線T2的占比大幅度縮小。因此采用加速度恒為0的速度曲線替代最大速度曲線V2,可極大地縮短軌跡規(guī)劃的耗時(shí)。
表2 軌跡規(guī)劃算法各步驟計(jì)算時(shí)間占比
4.2.2不同軌跡規(guī)劃算法/優(yōu)化算法的計(jì)算效率
在實(shí)際應(yīng)用中,采用軌跡規(guī)劃算法/優(yōu)化算法規(guī)劃目標(biāo)路徑軌跡的速度曲線所花費(fèi)的時(shí)間是衡量軌跡規(guī)劃算法計(jì)算效率的重要標(biāo)準(zhǔn)。為了研究本文軌跡規(guī)劃算法相對(duì)于其他軌跡規(guī)劃算法/優(yōu)化算法的性能,對(duì)比分析速度曲線規(guī)劃算法、遺傳算法[7-8]、凸優(yōu)化算法[3,9]對(duì)簡(jiǎn)單軌跡、復(fù)雜軌跡的計(jì)算效率,結(jié)果如表3所示。不難看出,本文軌跡規(guī)劃算法相對(duì)于其他兩種路徑規(guī)劃算法計(jì)算耗時(shí)最少,遺傳算法耗時(shí)最多,此外復(fù)雜軌跡的計(jì)算耗時(shí)長(zhǎng)于簡(jiǎn)單軌跡的計(jì)算耗時(shí)。
表3 優(yōu)化算法計(jì)算效率對(duì)比表
綜上所述,速度曲線規(guī)劃算法相對(duì)于凸優(yōu)化算法、遺傳算法在計(jì)算效率上具有一定的優(yōu)勢(shì),路徑的復(fù)雜程度影響軌跡規(guī)劃算法的計(jì)算效率,路徑越復(fù)雜,相應(yīng)規(guī)劃用時(shí)也越長(zhǎng);此外路徑點(diǎn)的數(shù)目對(duì)規(guī)劃算法影響最大,過多的路徑點(diǎn)將降低軌跡規(guī)劃的效率,但本文采用的路徑特征點(diǎn)法與速度特征點(diǎn)法可在一定程度上降低路徑特征點(diǎn)數(shù)目對(duì)速度曲線規(guī)劃算法計(jì)算效率的影響。
本文的軌跡規(guī)劃算法以相平面法為基礎(chǔ),并對(duì)相平面法進(jìn)行優(yōu)化,以提高算法的計(jì)算效率及保證規(guī)劃的軌跡連續(xù)光滑。
(1)算法計(jì)算效率的提高。通過模糊推理計(jì)算路徑點(diǎn)數(shù)目來減小計(jì)算規(guī)模;采用加速度恒為0的速度曲線替代最大速度曲線V2,簡(jiǎn)化最大速度曲線V2的求解,縮短計(jì)算時(shí)間。
(2)速度曲線連續(xù)光滑處理。通過速度特征點(diǎn)法提取多重約束最大速度曲線的速度特征點(diǎn),再通過B樣條插值法對(duì)速度特征點(diǎn)進(jìn)行插值,保證速度曲線連續(xù)光滑;采用修型-射靶算法對(duì)速度曲線進(jìn)行修形,使得到的速度曲線滿足約束要求。
最后通過實(shí)驗(yàn)驗(yàn)證了本文軌跡規(guī)劃算法對(duì)不同復(fù)雜程度目標(biāo)軌跡的有效性,目標(biāo)軌跡的復(fù)雜程度越大,其計(jì)算時(shí)間越長(zhǎng),此外驗(yàn)證了其計(jì)算效率與路徑特征點(diǎn)數(shù)目成正相關(guān)。通過對(duì)比驗(yàn)證了本文軌跡規(guī)劃算法相對(duì)于凸優(yōu)化算法、遺傳算法具有更高的計(jì)算效率。