于子航,王改云
(桂林電子科技大學(xué)花江校區(qū)電子工程與自動(dòng)化學(xué)院,廣西 桂林 541000)
隨著人類對(duì)機(jī)器人技術(shù)智能化本質(zhì)認(rèn)識(shí)的深入,這項(xiàng)技術(shù)就開始不斷應(yīng)用在人類工作以及生活的各個(gè)領(lǐng)域內(nèi)[1],在與這些領(lǐng)域應(yīng)用特點(diǎn)相結(jié)合,例如:軍事、建筑業(yè)、服務(wù)業(yè)、醫(yī)學(xué)、工業(yè)以及農(nóng)業(yè)等,都起到了至關(guān)重要的用途[2]。
為了使機(jī)器人可以完成各種各樣的任務(wù)以及動(dòng)作,所制定的控制手段,被稱為機(jī)器人控制技術(shù),包括的范圍非常廣泛,從機(jī)器人的智能、任務(wù)描述到運(yùn)動(dòng)控制以及伺服控制等,既包含了控制所需要的各種各樣硬件系統(tǒng),還包含了各種各樣的軟件系統(tǒng)。因?yàn)闄C(jī)器人的發(fā)展時(shí)間較短,所以很多技術(shù)都只是在起步階段,因此,如果需要機(jī)器人自主運(yùn)動(dòng)工作,在路徑上存在障礙等阻攔物,很容易導(dǎo)致其偏移目標(biāo)點(diǎn)甚至是失去目標(biāo)點(diǎn),使任務(wù)無法完成。為此,相關(guān)學(xué)者對(duì)機(jī)器人目標(biāo)導(dǎo)向運(yùn)動(dòng)控制做出了研究并取得了一定研究成果。
文獻(xiàn)[3]提出基于運(yùn)動(dòng)控制和頻域分析的移動(dòng)機(jī)器人能耗最優(yōu)軌跡規(guī)劃,通過對(duì)比期望軌跡與實(shí)際輸出軌跡,引入頻域分析得到軌跡線性能耗模型,搜索全局路徑規(guī)劃的局部目標(biāo)點(diǎn),確定能量消耗的最優(yōu)軌跡。文獻(xiàn)[4]提出基于路徑積分強(qiáng)化學(xué)習(xí)方法的蛇形機(jī)器人目標(biāo)導(dǎo)向運(yùn)動(dòng)。通過路徑積分強(qiáng)化學(xué)習(xí)得到機(jī)器人的步態(tài)方程參數(shù),避開障礙物到達(dá)目標(biāo)點(diǎn),實(shí)現(xiàn)機(jī)器人運(yùn)動(dòng)控制。上述方法均具有一定的有效性,但未能全方面考慮機(jī)器人工作路徑上的障礙干擾,機(jī)器人目標(biāo)導(dǎo)向運(yùn)動(dòng)控制存在一定誤差。為此本文提出一種基于路徑積分強(qiáng)化的機(jī)器人目標(biāo)導(dǎo)向運(yùn)動(dòng)控制方法,不但能夠有效的避開路徑上的障礙,且操作人員的期望值和實(shí)際值之間差距非常小,以此可以說明該方法效果良好。
隨機(jī)最佳控制主要應(yīng)用于控制隨機(jī)動(dòng)態(tài)的系統(tǒng),具體性能指標(biāo)的函數(shù)是損失函數(shù),機(jī)器人運(yùn)動(dòng)軌跡τi的定義公式為
(1)
式中:ti代表起始時(shí)刻,tN代表終止時(shí)刻,x(t)代表t時(shí)刻的狀態(tài),u(t)代表t時(shí)刻的控制量,φ[·]代表終止時(shí)刻tN位置損失函數(shù),L[·]代表立即的損失函數(shù)。具體隨機(jī)最佳的控制目地是為了找到控制量u(t),且具體評(píng)估函數(shù)最小公式為
(2)
式中:Eτi[·]代表全部起始狀態(tài)是xti軌跡的損失函數(shù)期望。具體隨機(jī)動(dòng)態(tài)系統(tǒng)的定義公式為
(3)
式中:xt∈Rn×1代表系統(tǒng)的狀態(tài)量,Gt=G(xt)∈Rn×p代表控制矩陣,ft=f(xt,t)∈Rn×1代表模型方程,ut∈Rn×1代表控制向量,具體即時(shí)回報(bào)的定義公式為
(4)
式中:qt=q(xt,t)代表隨意依賴于狀態(tài)損失的函數(shù),R代表半正定的權(quán)值矩陣[5]。具體的隨機(jī)最佳控制HJB方程公式如下
(5)
其中
Ft=f(xt,t)+G(xt)ut
(6)
將式(5)代入至式(6)內(nèi),可以獲得最佳控制量公式為
(7)
將式(7)代入至式(6)內(nèi),可以獲得非線性的二階偏微分方程公式為
(8)
式中:?x代表雅克比矩陣,?xx代表黑森矩陣。而直接求解HJB的方程非常復(fù)雜,所以要將HJB方程進(jìn)行轉(zhuǎn)變,變成線性的偏微分方程,依據(jù)邊界的條件,可以獲得
(9)
以此就能夠?qū)㈦S機(jī)最佳控制問題轉(zhuǎn)變成近似積分的問題,具體式(9)能夠轉(zhuǎn)換公式為
(10)
式中:τi=(xti,xti+1,…,xtN)代表樣本路徑中采樣的狀態(tài)點(diǎn),P(τi|xi)代表起始狀態(tài)是xi樣本路徑τi概率,概率求解為解析解,主要依賴于系統(tǒng)的模型ft,能夠采用路徑積分的方法完成數(shù)值求解,而路徑積分的方法不會(huì)要求已知的模型,在起始狀態(tài)xti就隨機(jī)生成K條路徑(τi,1,τi,2,…,τi,K),具體路徑τi,k概率公式為
(11)
而更新控制量為
(12)
經(jīng)過數(shù)值迭代,所得更新控制量就是損失函數(shù)的收斂[6]。
在凸體空間中搜索機(jī)器人目標(biāo)導(dǎo)向運(yùn)動(dòng)路徑可行解[7],能夠獲得多條可行的路徑,但由于搜索過程的時(shí)間復(fù)雜度比較大,而且搜索出的路徑缺少有效標(biāo)準(zhǔn)評(píng)價(jià),所以通過目標(biāo)點(diǎn)確認(rèn)參考平面,把復(fù)雜三維空間的規(guī)劃問題轉(zhuǎn)變至平面規(guī)劃上,以此能夠極大程度降低算法時(shí)間的復(fù)雜度[8]。如果目標(biāo)點(diǎn)的坐標(biāo)是(xt,yt,zt),利用目標(biāo)點(diǎn)向著系統(tǒng)坐標(biāo)系xOy的平面作投影,將平面x′Oy作為參考平面,具體如圖1所示。
圖1 目標(biāo)點(diǎn)確定參考平面
圖1內(nèi),參考平面是xOy平面圍繞著z軸來作旋轉(zhuǎn)角度φ,接著在參考平面中構(gòu)建坐標(biāo)系{x′Oy},構(gòu)建等效二維目標(biāo)點(diǎn)映射和三維目標(biāo)點(diǎn)關(guān)系,具體公式為
(13)
結(jié)合齊次的變換矩陣T,能夠把機(jī)器人結(jié)構(gòu)的隨機(jī)點(diǎn),利用二維坐標(biāo)的形式進(jìn)行描述,就能夠完成維度的變換[9]。
經(jīng)過維度的變換以后,僅需要完成對(duì)于彎曲角度遍歷,就能夠使算法的時(shí)間復(fù)雜度,降低成O(nk)。
利用目標(biāo)點(diǎn)確認(rèn)導(dǎo)向角度,可以縮小彎曲角度的搜索范圍,根據(jù)兩個(gè)方面來約束彎曲角度的搜索過程為:各個(gè)關(guān)節(jié)彎曲的角度θi搜索范圍是介于0和目標(biāo)導(dǎo)向角θ二者間,就是θi<θ<π。全部關(guān)節(jié)彎曲的角度和值為朝向角度[10],就是∑θi=θ。
在參考平面中單關(guān)節(jié)扭曲的角度是θ時(shí),那么關(guān)節(jié)彎曲末端的坐標(biāo)公式為
(14)
第一種:1區(qū)域的陰影部分:隨意取大于90度的θ,具體公式為
l/θ·(1-cosθ)=xt
(15)
式中,θ代表導(dǎo)向的角度。
第二種:1區(qū)域的非陰影部分:隨意取小于90度的θ,滿足式(21)。
(16)
式中,θ代表導(dǎo)向的角度。
(17)
式中,θ代表導(dǎo)向的角度。
利用目標(biāo)作為導(dǎo)向,減少?gòu)澢嵌鹊淖兓秶源司湍軌蜻M(jìn)一步使時(shí)間復(fù)雜度降低[11]。
采用機(jī)器人的中心位置作為控制點(diǎn),把運(yùn)動(dòng)簡(jiǎn)化成單點(diǎn)運(yùn)動(dòng)控制模式。因機(jī)器人的運(yùn)動(dòng)是通過直線運(yùn)動(dòng)以及圓弧運(yùn)動(dòng)所構(gòu)成的,所以要在控制點(diǎn)上作法向運(yùn)動(dòng)矢量以及切向運(yùn)動(dòng)矢量,在其中,切向運(yùn)動(dòng)的矢量,即是機(jī)器人的運(yùn)動(dòng)直線性——運(yùn)動(dòng)的方向,而法向運(yùn)動(dòng)的矢量即是機(jī)器人運(yùn)動(dòng)圓弧性。將機(jī)器人的起始位置坐標(biāo)P0設(shè)為(X0,Y0),起始朝向和入口中心切向的夾角是θ0,那么起始位置并垂直于起始朝向方程L0公式為
y-Y0=-ctgθ(x-X0)
(18)
軌跡的曲線是通過一段圓弧和一段直線所構(gòu)成的,將其簡(jiǎn)稱為R—L模式。
將圓弧圓心C坐標(biāo)設(shè)成(XC,YC),就能夠得出L0通過C點(diǎn),具體公式為
YC-Y0=-ctgθ(XC-X0)
(19)
(20)
即式(19)代表入口方向和運(yùn)動(dòng)圓弧同向相切,就是控制點(diǎn)走了一段圓弧,接著頭朝向入口處走直線來實(shí)現(xiàn)整體運(yùn)動(dòng)。而式(20)代表入口方向和運(yùn)動(dòng)圓弧逆向相切,就是控制點(diǎn)倒著走了一段圓弧,接著背向入口位置倒退走直線實(shí)現(xiàn)整體運(yùn)動(dòng)。
軌跡的曲線是通過兩段圓弧和一段直線所構(gòu)成,將其簡(jiǎn)稱為R—R—L模式。
1)機(jī)器人存在原地自轉(zhuǎn)的能力
在0≤θ<2arctg(Y0/X0)或者3θ/2<θ<2π時(shí),可以使機(jī)器人進(jìn)行原地自轉(zhuǎn)180度,就能夠滿足R—L的模式處理?xiàng)l件,轉(zhuǎn)化成R—L模式進(jìn)行處理。這時(shí)R—R—L內(nèi)第一段的圓弧,就是機(jī)器人進(jìn)行自轉(zhuǎn)180度圓弧運(yùn)動(dòng),而第二部分的R—L控制起始點(diǎn)(Y0,X0)不變,θ利用θ+π進(jìn)行代替。將其代入式(20)內(nèi)進(jìn)行計(jì)算,就能夠得出圓弧的圓心(XC,YC)坐標(biāo)值。
2)機(jī)器人不能夠原地自轉(zhuǎn),存在最小的轉(zhuǎn)彎半徑Rmin。
這時(shí),機(jī)器人會(huì)沿著最小的轉(zhuǎn)彎半徑Rmin行駛半個(gè)圓弧,通過這樣θ就能夠變成θ+π,同樣能夠滿足R—L處理的條件,將其轉(zhuǎn)化成R—L情節(jié)進(jìn)行處理。這時(shí)R—R—L內(nèi)第一段的圓弧,就代表機(jī)器人圍繞著最小的轉(zhuǎn)彎半徑行駛半個(gè)圓弧,具體的圓弧圓心坐標(biāo)(XC0,YC0)計(jì)算能夠獲得公式為
(21)
行駛完第一段的半圓弧之后坐標(biāo)(X1,Y1)公式為
(22)
接著機(jī)器人以(X1,Y1)作為起始點(diǎn),完成R—L控制,具體計(jì)算結(jié)果和式(21)相似,不過有所不同的是(X0,Y0)值利用(X1,Y1)進(jìn)行代替[12],θ值利用θ+π代替。以此即能夠完成機(jī)器人導(dǎo)向運(yùn)動(dòng)控制。
為了驗(yàn)證本文控制算法的有效性,在Matlab/Simulink的軟件內(nèi)搭建機(jī)器人與路面模型,設(shè)置障礙實(shí)施仿真。
以文獻(xiàn)[3]、文獻(xiàn)[4]方法作為實(shí)驗(yàn)對(duì)比方法,得到具體機(jī)器人導(dǎo)向運(yùn)動(dòng)曲線結(jié)果如圖2所示。
圖2 機(jī)器人的導(dǎo)向運(yùn)動(dòng)曲線
根據(jù)圖2能夠看出,在所提的目標(biāo)導(dǎo)向控制算法下,移動(dòng)機(jī)器人的實(shí)際軌跡和所期望的軌跡非常接近,而文獻(xiàn)方法與期望值存在一定偏差。所提方法的采用基貝爾曼的最優(yōu)準(zhǔn)則及HJB方程,能夠計(jì)算出最佳控制與路徑積分二者間的關(guān)系,通過目標(biāo)點(diǎn)確認(rèn)導(dǎo)向角度,因此得到的導(dǎo)向運(yùn)動(dòng)曲線與期望值十分接近,導(dǎo)向控制精度高。
在此基礎(chǔ)上驗(yàn)證機(jī)器人的軌跡曲率以及跟隨特性,得到實(shí)驗(yàn)對(duì)比結(jié)果如圖3所示。
圖3 機(jī)器人的軌跡曲率以及跟隨特性
分析圖3可知,隨著時(shí)間的增加,所提方法的機(jī)器人軌跡曲率波動(dòng)較小,在20s時(shí)曲率保持穩(wěn)定,且與期望值十分接近;而文獻(xiàn)對(duì)比方法的機(jī)器人軌跡曲率波動(dòng)大,且難以保達(dá)到穩(wěn)定狀態(tài)。所提方法利用降維策略縮小了搜索變量個(gè)數(shù),以機(jī)器人中心位置作為控制點(diǎn),簡(jiǎn)化運(yùn)動(dòng)控制方式為單點(diǎn)控制,實(shí)現(xiàn)了機(jī)器人軌跡的精準(zhǔn)控制。由此可見,所提方法的超調(diào)量比較小,穩(wěn)態(tài)的誤差小。
本文方法能夠有效使機(jī)器人繞過障礙物,到達(dá)目標(biāo)點(diǎn)完成工作,實(shí)際值和期望值之間的數(shù)值差距較小,效果良好。不過還是存在一些微小差距,在一些要求極其精細(xì)的場(chǎng)地還是無法使用,所以未來本文應(yīng)該爭(zhēng)取進(jìn)一步的對(duì)機(jī)器人控制算法進(jìn)行研究,使期望值和實(shí)際值之間的差距變得更小,甚至是消失。