劉鈺銘,黃海松,2+,范青松,朱云偉,陳星燃,韓正功
(1.貴州大學(xué) 現(xiàn)代制造技術(shù)教育部重點(diǎn)實(shí)驗(yàn)室,貴州 貴陽 550025;2.重慶機(jī)電職業(yè)技術(shù)大學(xué) 信息工程學(xué)院,重慶 402760)
機(jī)器人移動(dòng)作業(yè)過程中,能源容量的多少?gòu)母旧蠜Q定了其執(zhí)行給定任務(wù)的持久性,目前主要通過增加能源容量與補(bǔ)給次數(shù)完成,但提升效果有限且增加了資源成本[1]。在能源攜帶有限、補(bǔ)給不及時(shí)的情況下,機(jī)器人可通過節(jié)能、有效的路徑規(guī)劃方法,減少能源的損耗,提升復(fù)雜環(huán)境下的作業(yè)能力[2]。
常見的路徑規(guī)劃方法有遺傳算法[3]、A*算法[4]、快速隨機(jī)樹搜索法[5]、動(dòng)態(tài)窗口法[6](Dynamic Window Approach,DWA)、人工勢(shì)場(chǎng)法[7]等,其中A*算法應(yīng)用最廣泛。勞彩蓮等[8]改進(jìn)A*算法的選取策略,消除多余轉(zhuǎn)折點(diǎn),生成平滑路徑。LIN等[9]在A*的啟發(fā)函數(shù)引入父節(jié)點(diǎn)信息并改變權(quán)重,減少搜索的節(jié)點(diǎn)數(shù)量與時(shí)間。然而,上述方法規(guī)劃的路徑非節(jié)能路徑。在節(jié)能路徑規(guī)劃的相關(guān)研究中,張浩杰等[2]基于改進(jìn)實(shí)時(shí)動(dòng)態(tài)A*(Anytime Dynamic A*,AD*)算法對(duì)路徑規(guī)劃的能耗和效率方面進(jìn)行改進(jìn),但其路徑不平滑,不利于機(jī)器人運(yùn)動(dòng)平穩(wěn)性。LIU等[10]提出基于距離—能耗搜索準(zhǔn)則的A*算法規(guī)劃節(jié)能路徑,但路徑存在冗余轉(zhuǎn)折點(diǎn),未考慮頻繁轉(zhuǎn)彎帶來額外能量的損耗。PAL等[11]提出高效節(jié)能A*(Energy efficient A*,EA*)算法,通過減少移動(dòng)機(jī)器人轉(zhuǎn)彎次數(shù)降低能量損耗,但僅考慮轉(zhuǎn)彎時(shí)的能量消耗,沒考慮地面摩擦等環(huán)境因素對(duì)節(jié)能路徑規(guī)劃的影響,不足以規(guī)劃出能耗最優(yōu)路徑。LIU等[12]考慮地面摩擦,在A*的成本函數(shù)中引入基于能量鄰接矩陣搜索節(jié)能路徑,并對(duì)路徑進(jìn)行平滑處理進(jìn)一步降低能耗,但只適用于平坦路面環(huán)境下的節(jié)能規(guī)劃。在上述能耗研究中,所構(gòu)建的能耗模型沒能全面考慮地面摩擦、坡道等環(huán)境因素對(duì)節(jié)能路徑規(guī)劃的影響,也未能考慮規(guī)劃路徑不平滑、多轉(zhuǎn)折、轉(zhuǎn)折角度大造成的能量損耗,且上述方法只適用于靜態(tài)環(huán)境下的路徑規(guī)劃,不具備動(dòng)態(tài)環(huán)境下的避障能力。
DWA算法具備動(dòng)態(tài)環(huán)境下的避障能力,但易陷入局部解。為此,學(xué)者們將A*算法與DWA融合,ZHU等[13]構(gòu)建了全局最優(yōu)路徑評(píng)價(jià)函數(shù),將A*算法與DWA融合,避免陷入局部解的同時(shí)保持路徑全局最優(yōu)。鄒文等[14]建立拓?fù)鋵拥貓D來刪除A*的冗余節(jié)點(diǎn)提高路徑平滑度,同時(shí)為機(jī)器人增加運(yùn)動(dòng)狀態(tài)優(yōu)化DWA,將兩者融合提升路徑規(guī)劃效率的同時(shí)增強(qiáng)動(dòng)態(tài)環(huán)境下的靈活性。王彬等[15]將基于啟發(fā)函數(shù)權(quán)重可動(dòng)態(tài)調(diào)節(jié)的改進(jìn)A*算法與基于環(huán)境自適應(yīng)改進(jìn)策略的動(dòng)態(tài)窗口法相融合,不但解決了傳統(tǒng) A*和DWA冗余點(diǎn)多、效率低、路徑冗余等問題,而且提高了路徑安全性和實(shí)時(shí)性,更符合移動(dòng)機(jī)器人的運(yùn)動(dòng)特性。
上述方法從不同角度對(duì)A*算法與DWA進(jìn)行了改進(jìn),但都沒考慮復(fù)雜狹窄環(huán)境下機(jī)器人節(jié)能路徑的規(guī)劃與動(dòng)態(tài)避障。為此,本文提出一種節(jié)能A*算法(Energy-Saving A*algorithm,ESA*)與改進(jìn)DWA算法(Improved DWA algorithm,IDWA)相融合的路徑規(guī)劃方法?;诘孛婺Σ痢⑵露取⑤d重量等關(guān)鍵因素,構(gòu)建出機(jī)器人能耗模型,提出以能耗成本為搜索新準(zhǔn)則的ESA*算法規(guī)劃節(jié)能路徑,同時(shí)通過動(dòng)態(tài)基準(zhǔn)轉(zhuǎn)彎懲罰和三角剪枝法避免因冗余路徑、轉(zhuǎn)折點(diǎn)產(chǎn)生額外能量損耗并利用弦定弧過渡法對(duì)路徑平滑處理得到光滑、連續(xù)的全局節(jié)能路徑。在此基礎(chǔ)上融合改進(jìn)DWA并提出航向角自適應(yīng)調(diào)整策略對(duì)融合算法進(jìn)行優(yōu)化,提升機(jī)器人在復(fù)雜、狹窄環(huán)境下的動(dòng)態(tài)避障能力,與此同時(shí),設(shè)計(jì)全局節(jié)能路徑偏離評(píng)價(jià)與能耗評(píng)價(jià)子函數(shù)進(jìn)行局部能耗最優(yōu)路徑軌跡規(guī)劃。
A*算法常用于靜態(tài)環(huán)境下最優(yōu)路徑的求解,其根據(jù)代價(jià)函數(shù)在靜態(tài)環(huán)境下選擇一條從起點(diǎn)到終點(diǎn)距離最優(yōu)的路徑。傳統(tǒng)A*算法的代價(jià)函數(shù)如下:
f(n)=g(n)+h(n)。
(1)
式中:g(n)表示起點(diǎn)到節(jié)點(diǎn)n的實(shí)際距離代價(jià),h(n)表示節(jié)點(diǎn)n到目標(biāo)點(diǎn)的預(yù)估距離代價(jià)。距離代價(jià)采用歐式距離來進(jìn)行計(jì)算,如式(2)所示:
h(n)=sqrt[(xgoal-xn)2+(ygoal-yn)2],
g(n)=sqrt[(xn-xstart)2+(yn-ystart)2]。
(2)
其中(xn,xn)、(xstart,ystart)、(xgoal,ygoal)分別表示節(jié)點(diǎn)n、起點(diǎn)start、終點(diǎn)goal的坐標(biāo);
DWA算法通過機(jī)器人運(yùn)動(dòng)學(xué)模型對(duì)其速度約束空間進(jìn)行采樣,模擬機(jī)器人預(yù)測(cè)時(shí)間內(nèi)的運(yùn)動(dòng)軌跡,再利用評(píng)價(jià)函數(shù)在多組運(yùn)動(dòng)軌跡中擇選出評(píng)分最優(yōu)的軌跡。機(jī)器人的運(yùn)動(dòng)學(xué)模型為:
θt=θt-1+ω(t)Δt。
(3)
其中:x(t)、y(t)、θt為機(jī)器人t時(shí)刻的位姿信息;x(t-1)、y(t-1)、θt-1為t-1時(shí)刻的位姿信息。DWA對(duì)模擬出機(jī)器人的若干運(yùn)動(dòng)軌跡進(jìn)行評(píng)估擇優(yōu),其評(píng)估函數(shù)為:
G(v,ω)=σ[αhead(v,ω)+βdist(v,ω)+γvel(v,ω)]。
(4)
式中:head(v,ω)、dist(v,ω)、vel(v,ω)分別為方位角、距離、速度評(píng)價(jià)子函數(shù);σ為平滑函數(shù);α、β、γ為各評(píng)價(jià)子函數(shù)的加權(quán)系數(shù)。
2.1.1 基于能耗成本的搜索準(zhǔn)則
移動(dòng)機(jī)器人的能量耗損主要為電子設(shè)備工作消耗的能量Eequipment和運(yùn)動(dòng)過程中所消耗的能量Emotion[16]。移動(dòng)機(jī)器人的總能耗方程如下:
Erobot=Eequipment+Emotion=
(5)
式中:Pmotion為運(yùn)動(dòng)過程中的功率耗損,Pequipment為機(jī)器人電子設(shè)備的功率耗損。
由圖1所示移動(dòng)機(jī)器人運(yùn)動(dòng)過程的受力情況可知,移動(dòng)機(jī)器人在運(yùn)動(dòng)過程中克服牽引阻力所損耗的能量為:
圖1 移動(dòng)機(jī)器人運(yùn)動(dòng)過程的受力情況
W=Pmotion×Δt=Ftraction×Δs=
(Ff+Fair+Fg)×L。
(6)
式中:W為運(yùn)動(dòng)過程的總功;Ftraction為運(yùn)動(dòng)過程的總牽引力;Ff、Fair、Fg為運(yùn)動(dòng)過程中的摩擦力、空氣阻力以及重力斜面水平分力;L為移動(dòng)距離;移動(dòng)機(jī)器人在運(yùn)動(dòng)過程始終保持勻速行駛且速度低。因此,由式(5)和式(6)可知機(jī)器人在運(yùn)動(dòng)過程中的總能耗
Erobot=1+k[mgsin(φ)×s+μmgcos(φ)×s]。
(7)
為了表征復(fù)雜環(huán)境下機(jī)器人的移動(dòng)距離和能量消耗,MEJRI等[17]構(gòu)建了基于距離的鄰接矩陣AD與基于能量的鄰接矩陣AE。本文以能量矩陣AE(i,j)為ESA*算法的搜索準(zhǔn)則:
AE(i,j)=Erobot=1+k[sin(φ)+
μi,jcos(φ)]mgAD(i,j)。
(8)
其中:μi,j為位置i到位置j的平均摩擦系數(shù);考慮現(xiàn)實(shí)坡度對(duì)機(jī)器人移動(dòng)的能耗影響,提出基于地面水平的鄰接矩陣Aφ(i,j),如圖2所示,具體公式如下:
圖2 基于地面水平的鄰接矩陣Aφ
Aφ(i,j)=φj-φi。
(9)
其中:Aφ(i,j)表示位置i到位置j的坡度大小以及坡度狀態(tài),相鄰位置i與j數(shù)值差的絕對(duì)值表示對(duì)應(yīng)區(qū)域間的坡度,正負(fù)表示移動(dòng)機(jī)器人爬坡與下坡兩種狀態(tài)。結(jié)合式(1)、式(8)和式(9)可得基于能耗成本的路徑搜索新準(zhǔn)則:
E(k)=g′(k-1)+AE(k-1,k)+AE(k,goal)。
(10)
2.1.2 轉(zhuǎn)折懲罰與剪枝
為解決ESA*算法因冗余節(jié)點(diǎn)多、路徑多轉(zhuǎn)折、轉(zhuǎn)折角度大帶來額外能量耗損的問題,本文提出兩階段優(yōu)化方法。一階段在節(jié)點(diǎn)擴(kuò)展中引入基于動(dòng)態(tài)轉(zhuǎn)角基準(zhǔn)的轉(zhuǎn)彎懲罰因子避免轉(zhuǎn)折點(diǎn)的產(chǎn)生,先由父節(jié)點(diǎn)與當(dāng)前節(jié)點(diǎn)的坐標(biāo)關(guān)系確定機(jī)器人的移動(dòng)方向并以移動(dòng)方向?yàn)檗D(zhuǎn)角基準(zhǔn),如圖3所示;然后根據(jù)擴(kuò)展節(jié)點(diǎn)與轉(zhuǎn)角基準(zhǔn)的位置關(guān)系,在能耗評(píng)價(jià)函數(shù)中利用轉(zhuǎn)彎懲罰因子對(duì)其懲罰處理。引入懲罰因子的能耗評(píng)價(jià)函數(shù)為:
圖3 動(dòng)態(tài)轉(zhuǎn)角基準(zhǔn)示意圖
(11)
二階段為了減少冗余路徑、路徑轉(zhuǎn)折角度大造成的能量損耗,對(duì)初始規(guī)劃路徑節(jié)點(diǎn)進(jìn)行三角剪枝處理,其通過表1算法實(shí)現(xiàn)。該方法示意圖如圖4所示。
表1 三角剪枝處理
圖4 路徑三角剪枝示意圖
2.1.3 基于動(dòng)態(tài)弦定弧過渡的路徑平滑處理方法
針對(duì)路徑出現(xiàn)的急轉(zhuǎn)折或角轉(zhuǎn)折造成機(jī)器人能量損耗,影響機(jī)器人運(yùn)行的平穩(wěn)性和作業(yè)的持久性,本文通過表2算法對(duì)轉(zhuǎn)折點(diǎn)進(jìn)行平滑處理,得到光滑連續(xù)、低耗能的路徑。平滑處理示意圖如圖5所示。
表2 轉(zhuǎn)折平滑處理
圖5 路徑轉(zhuǎn)折平滑處理示意圖
傳統(tǒng)DWA局部路徑規(guī)劃時(shí),沒有考慮路徑軌跡所消耗的能量,最優(yōu)的軌跡不一定是能耗損耗少的。為此,設(shè)計(jì)能耗評(píng)價(jià)子函數(shù),對(duì)局部路徑軌跡進(jìn)行能耗評(píng)價(jià)。RIAZI等[18]將加速度與速度的乘積定義為偽功率,偽功率的減少能有效降低能耗與峰值功率。設(shè)計(jì)的能耗評(píng)價(jià)子函數(shù)為:
(12)
G(v,ω)=σ[αhead(v,ω)+βdist(v,ω)+
γvel(v,ω)+δEnergy(v,ω)]。
(13)
其中δ為能耗評(píng)價(jià)子函數(shù)的加權(quán)系數(shù)。
ESA*算法在靜態(tài)環(huán)境下能規(guī)劃出光滑連續(xù)的全局節(jié)能路徑,但在狹窄、動(dòng)態(tài)的環(huán)境下面對(duì)移動(dòng)障礙物往往不能及時(shí)躲避,發(fā)生碰撞;IDWA算法能在動(dòng)態(tài)環(huán)境中成功躲避障礙物,但易陷入局部解。為此,將兩者進(jìn)行融合,如圖6所示。先從ESA*算法規(guī)劃的全局節(jié)能路徑中提取子目標(biāo)點(diǎn);然后讓IDWA在相鄰子目標(biāo)點(diǎn)間進(jìn)行局部路徑軌跡規(guī)劃,直至目標(biāo)點(diǎn)。融合算法規(guī)劃的路徑對(duì)全局節(jié)能路徑偏離較大,非最優(yōu)節(jié)能路徑,同時(shí)規(guī)劃過程中機(jī)器人會(huì)因航向角調(diào)整問題常導(dǎo)致路徑冗余、陷入局部解,尋路失敗等問題,為此,本文將通過全局節(jié)能路徑偏離評(píng)價(jià)和航向角自適應(yīng)調(diào)整策略對(duì)融合算法進(jìn)行改進(jìn)。
圖6 融合算法流程圖
為避免額外能量損耗,設(shè)計(jì)全局節(jié)能路徑偏離評(píng)價(jià)子函數(shù)Globdist(v,ω),使融合算法規(guī)劃的路徑更貼近全局節(jié)能路徑。Globdist(v,ω)評(píng)價(jià)子函數(shù)結(jié)合全局節(jié)能路徑信息,計(jì)算局部運(yùn)動(dòng)軌跡與全局路徑的距離,其示意圖如圖7所示,計(jì)算公式為:
圖7 節(jié)能路徑偏離評(píng)價(jià)子函數(shù)示意圖
Globdist(v,ω)=
(14)
融合算法優(yōu)化后的評(píng)價(jià)函數(shù)為:
G(v,ω)=σ[αhead(v,ω)+βdist(v,ω)+γvel(v,ω)+
δEnergy(v,ω) +εGlobdist(v,ω)]。
(15)
其中ε為Globaldist(v,ω)評(píng)價(jià)子函數(shù)的加權(quán)系數(shù)。
在窄空間中,當(dāng)機(jī)器人與動(dòng)態(tài)障礙物相向而行時(shí),如圖8a所示,融合算法隨機(jī)向左或向右選擇方向,不考慮前方空間能否通過,容易導(dǎo)致機(jī)器人原地打圈調(diào)整航向角或與動(dòng)態(tài)障礙物發(fā)生碰撞;當(dāng)機(jī)器人與動(dòng)態(tài)障礙物同向而行時(shí),如圖8b所示,融合算法可能會(huì)陷入局部解中,只能跟隨動(dòng)態(tài)障礙物緩慢前行,耗費(fèi)大量時(shí)間;融合算法在相鄰子目標(biāo)點(diǎn)間進(jìn)行局部路徑軌跡規(guī)劃時(shí)會(huì)因航向角產(chǎn)生累計(jì)誤差,如圖8c所示,導(dǎo)致路徑冗余、陷入局部解。針對(duì)上述問題,本文對(duì)融合算法中航向角參數(shù)通過自調(diào)整策略優(yōu)化。具體步驟如下:
圖8 航向角調(diào)整情況示意圖
步驟1計(jì)算子目標(biāo)點(diǎn)hi-1、hi傾斜角度,計(jì)算公式為:
(16)
其中:arctan2()函數(shù)的值域?yàn)閇-π,π];Δxi=xhi-xhi-1、Δyi=yhi-yhi-1為橫、縱坐標(biāo)的增量;φ為hi-1hi的傾斜角度;yawi-1i為hi-1hi段移動(dòng)的理想航行角yawidea。
步驟2對(duì)hi-1hi進(jìn)行動(dòng)態(tài)障礙物檢查,若有,則轉(zhuǎn)步驟3執(zhí)行航向角調(diào)整策略1;否則,轉(zhuǎn)步驟4執(zhí)行航向角調(diào)整策略2。
步驟3判斷機(jī)器人與動(dòng)態(tài)障礙物間左右區(qū)域內(nèi)是否有靜態(tài)障礙物,若有,則以yawidea為基準(zhǔn)向右偏離yawout調(diào)整,更新狀態(tài)參數(shù)(x,y,yawout,v,w);反之,則向左偏離yawout調(diào)整,轉(zhuǎn)步驟6。yawout為航向角偏離閾值。
步驟4根據(jù)狀態(tài)參數(shù)(x,y,yaw,v,w)獲取機(jī)器人的實(shí)時(shí)航向角yawnow,將yawnow與yawidea進(jìn)行比較,若yawin≤|yawnow-yawidea|,則轉(zhuǎn)步驟5;反之,則不調(diào)整,轉(zhuǎn)步驟6。其中yawin為航向角誤差閾值。
步驟5若yawnow>yawidea,則對(duì)航向角參數(shù)進(jìn)行動(dòng)態(tài)減少,更新狀態(tài)參數(shù)(x,y,yawnew,v,w),反之,則動(dòng)態(tài)增大航行角參數(shù)。航向角參數(shù)動(dòng)態(tài)調(diào)整的公式為:
yawnew=
(17)
其中:yawnew為動(dòng)態(tài)調(diào)整的航向角,也為下一狀態(tài)的起始航向角;κ為機(jī)器人轉(zhuǎn)彎能力系數(shù)。
步驟6航向角調(diào)整結(jié)束。
本文采用柵格法構(gòu)建實(shí)驗(yàn)環(huán)境地圖。為簡(jiǎn)化真實(shí)環(huán)境中的坡度、不規(guī)則障礙物在地圖中的表達(dá),作如下假設(shè):
(1)在地圖中忽略障礙物形狀、高度等信息;
(2)非水平面上的區(qū)域以其投影地面的區(qū)域替代;
(3)機(jī)器人在非水平面上移動(dòng)時(shí)的傾斜角與坡度角相等。
4.2.1 平滑處理有效性驗(yàn)證與分析
為驗(yàn)證路徑平滑方法的有效性,通過貝塞爾曲線平滑法[19](Bezier Curve Smoothing Method,BCSM)、過渡圓弧法[20](Transition Arc Method,TAM)以及本文動(dòng)態(tài)弦定弧過渡法(String-Definite Arc transition Method,SDAM)進(jìn)行對(duì)比驗(yàn)證,結(jié)果如圖9所示,數(shù)據(jù)如表3所示。采用彎曲能量(Bending Energy,BE)和路徑長(zhǎng)度能量(The Bending Energy,TBE)[21]作為機(jī)器人路徑平滑性的評(píng)價(jià)指標(biāo)。
表3 路徑平滑方法的實(shí)驗(yàn)結(jié)果對(duì)比
圖9 路徑轉(zhuǎn)折點(diǎn)平滑處理結(jié)果
由圖9a可知,同一環(huán)境下,BCSM、TAM和SDAM都完成了對(duì)轉(zhuǎn)折尖峰的平滑處理,得到光滑連續(xù)的路徑,但由表1和圖10中可知,BCSM的路徑曲率是最大的,TAM和SDAM的路徑曲率相差不大但均遠(yuǎn)小于BCSM,其中BE和TBE值較BCSM分別減少了92.62%、93.41%,88.89%、90.07%;BCSM、TAM和SDAM處理后的路徑長(zhǎng)度較原路徑均有減少,其中SDAM的減幅最大;由于BCSM平滑處理后的曲率和路徑長(zhǎng)度是最大的,從而導(dǎo)致TBE指標(biāo)值較大。通過圖9b的路徑局部細(xì)節(jié)圖可知,TAM方法平滑的路徑會(huì)與障礙物發(fā)生碰撞,因?yàn)檫^渡圓弧半徑的選取原則為轉(zhuǎn)折點(diǎn)最短臨邊的比例定值,平滑處理過程不能動(dòng)態(tài)改變圓弧半徑,而BCSM和SDAM方法能保證優(yōu)化路徑的安全。綜上分析,SDAM方法能設(shè)計(jì)出光滑連續(xù)、曲率合適、安全性高的路徑。
圖10 路徑平滑處理方法的性能指標(biāo)對(duì)比
4.2.2 ESA*算法綜合性能對(duì)比與分析
仿真環(huán)境如圖11所示,其中柵格里的數(shù)字表示地面摩擦系數(shù)μ,綠色方框表示坡度為8°,紅色的為12°。使用ACO算法、Dijkstra算法、傳統(tǒng)A*算法、基于文獻(xiàn)[8]、文獻(xiàn)[10]、文獻(xiàn)[22]和文獻(xiàn)[23]的算法與ESA*算法進(jìn)行機(jī)器人的全局路徑規(guī)劃,其規(guī)劃軌跡如圖12所示、性能指標(biāo)結(jié)果如表4所示。為了能更直觀地對(duì)比ESA*算法與其他方法在這些性能指標(biāo)上的表現(xiàn),對(duì)性能指標(biāo)進(jìn)行歸一化以直方圖形式進(jìn)行表示,如圖13所示。
表4 移動(dòng)機(jī)器人不同路徑規(guī)劃方法的實(shí)驗(yàn)結(jié)果對(duì)比
圖11 實(shí)驗(yàn)仿真環(huán)境
圖12 不同算法的路徑規(guī)劃軌跡
圖13 多指標(biāo)歸一化分析
由圖12的路徑軌跡可知,上述算法在復(fù)雜度不同的環(huán)境下均能成功規(guī)劃出路徑,而由表4和圖13中可知,ESA*算法的整體性能比其他算法要好。在能耗與路徑長(zhǎng)度方面,以路徑長(zhǎng)度為優(yōu)化目標(biāo)的ACO算法、Dijkstra算法、傳統(tǒng)A*算法和文獻(xiàn)[8]算法規(guī)劃路徑的長(zhǎng)度與ESA*算法規(guī)劃的路徑長(zhǎng)度相差不多,但在能量方面較ESA*算法耗費(fèi)得多,在15×15、30×30與60×60環(huán)境中至少要多耗費(fèi)68.609 8 J、265.174 7 J和204.851 9 J的能量,甚至于更多;與以能耗為優(yōu)化目標(biāo)的文獻(xiàn)[10]、文獻(xiàn)[22]和文獻(xiàn)[23]算法相比,ESA*算法規(guī)劃路徑所耗費(fèi)的能量最少,在15×15、30×30與60×60環(huán)境中至少減少了2.78%、8.47%和2.58%。相較于文獻(xiàn)[22]沒有考慮轉(zhuǎn)彎能耗,ESA*算法不但在能耗上平均減少了316.138 6 J,而且路徑轉(zhuǎn)折數(shù)量也降低了43.55%,有效減少轉(zhuǎn)彎帶來的能量損耗。對(duì)于文獻(xiàn)[23]中僅考慮爬坡能耗變化,ESA*算法全面考慮了坡度對(duì)機(jī)器人能耗的影響,能耗相比平均減少了190.324 8 J。ESA*算法較文獻(xiàn)[10]相比,能量損耗和路徑長(zhǎng)度方面平均減少了6.93%和4.81%,從而有效提升了路徑質(zhì)量;從表4單位距離能耗數(shù)據(jù)可知,ESA*算法能為機(jī)器人規(guī)劃出一條單位距離能耗較優(yōu)路徑,尤其是在規(guī)模不大的環(huán)境中。
在路徑的平滑性上,ESA*算法較傳統(tǒng)A*算法平均減少了22.72%的轉(zhuǎn)向次數(shù)和70.41%的指令次數(shù),同時(shí)路徑累計(jì)轉(zhuǎn)彎角度也平均減少了38.67%,明顯提高了路徑的平滑性;與文獻(xiàn)[8]的路徑平滑方法相比較,在轉(zhuǎn)折點(diǎn)數(shù)量與指令節(jié)點(diǎn)數(shù)量相近的情況下,路徑平均轉(zhuǎn)折角度從600°減少到404.8°,有效減少了轉(zhuǎn)彎的角度;而與ACO、Dijkstra等其他算法相比,ESA*算法無論在轉(zhuǎn)折點(diǎn)數(shù)量、指令節(jié)點(diǎn)數(shù)量還是轉(zhuǎn)折角度方面都有極大的提高。綜合來看,ESA*算法在靜態(tài)環(huán)境中能為機(jī)器人規(guī)劃出一條低能耗且較為平滑的路徑。
4.3.1 融合算法的仿真實(shí)驗(yàn)與分析
為驗(yàn)證改進(jìn)融合算法的可行性,在空曠和密集兩種復(fù)雜度不同的環(huán)境下分別用ESA*算法、IDWA算法、ESA*算法與傳統(tǒng)DWA未改進(jìn)的融合算法(傳統(tǒng)融合算法)、ESA*算法與IDWA算法改進(jìn)的融合算法(改進(jìn)融合算法)作對(duì)比仿真實(shí)驗(yàn),其結(jié)果如圖14和圖15所示。
圖14 空曠環(huán)境下規(guī)劃的路徑軌跡
圖15 密集環(huán)境下規(guī)劃的路徑軌跡
由圖14a和圖15a可知,在空曠與密集環(huán)境下,ESA*算法都能規(guī)劃出連續(xù)平滑的全局路徑,但由于ESA*算法本身不具備局部路徑規(guī)劃的特性,無法在動(dòng)態(tài)環(huán)境中實(shí)時(shí)躲避隨機(jī)的動(dòng)—靜態(tài)障礙物;在圖14b和15b中可看出,IDWA算法在空曠的環(huán)境中能成功抵達(dá)目標(biāo)點(diǎn),但路徑彎曲,不太平滑,當(dāng)在密集復(fù)雜的環(huán)境中時(shí),IDWA算法陷入了局部解,路徑規(guī)劃失敗。由圖14c、圖14d和圖15c、圖15d分析可知,傳統(tǒng)融合算法與改進(jìn)融合算法在空曠環(huán)境下都能成功抵達(dá)目標(biāo)點(diǎn),但傳統(tǒng)融合算法規(guī)劃的路徑對(duì)全局節(jié)能路徑的偏離程度明顯大于改進(jìn)融合算法的,容易造成額外能量損耗;在密集環(huán)境下,改進(jìn)融合算法能成功抵達(dá)目標(biāo)點(diǎn),而傳統(tǒng)融合算法因航向角累計(jì)偏差陷入局部解,尋路失敗。綜合來看,相較于傳統(tǒng)融合算法,改進(jìn)融合算法更貼近全局節(jié)能路徑,能有效減少額外能量的損耗,自適應(yīng)調(diào)整航向角,避免產(chǎn)生冗余路徑以及防止陷入局部解。
4.3.2 融合算法的避障實(shí)驗(yàn)與分析
為檢驗(yàn)改進(jìn)融合算法在窄空間中躲避動(dòng)—靜態(tài)障礙物的有效性和優(yōu)越性,通過改進(jìn)人工勢(shì)法場(chǎng)(Improved Artificial Potential Field method,IAPF)[24]、改進(jìn)Q學(xué)習(xí)算法(Improved Q-Learning Algorithm,IQLA)[25]以及基于A*和DWA優(yōu)化的算法(The Improved A*and Dynamic Window Approach algorithm,TIA*-DWA)[26]與本文基于ESA*與IDWA的改進(jìn)融合算法(the improved ESA*and IDWA algorithm,ESA*-IDWA)進(jìn)行仿真對(duì)比實(shí)驗(yàn),仿真結(jié)果如圖16和圖17所示,數(shù)據(jù)如表5所示。
表5 仿真結(jié)果
圖16 靜態(tài)環(huán)境下的避障結(jié)果對(duì)比
圖17 動(dòng)態(tài)環(huán)境下的避障結(jié)果對(duì)比
在窄空間環(huán)境下,藍(lán)色、黃色分別為靜、動(dòng)態(tài)障礙物。從圖16a和圖17a可知,IAPF算法避障路徑規(guī)劃失敗,因?yàn)镮APF算法通過引入水流場(chǎng)改變斥力方向重新規(guī)劃合力方向來調(diào)整前進(jìn)方向解決路徑振蕩、陷入局部極小點(diǎn)、無法抵達(dá)目標(biāo)點(diǎn)等問題,但在狹窄、單通道時(shí)面對(duì)長(zhǎng)一字型、U型障礙物時(shí)斥力方向引起合力方向突變,導(dǎo)致路徑振蕩、陷入局部極小點(diǎn)。當(dāng)在進(jìn)行動(dòng)態(tài)避障時(shí)機(jī)器人會(huì)從動(dòng)態(tài)障礙物運(yùn)動(dòng)方向的前方運(yùn)動(dòng),導(dǎo)致機(jī)器人與動(dòng)態(tài)障礙物碰撞,避障失敗。
從圖16b、圖16d和圖17b、圖17d中可知,IQLA、TIA*-DWA和ESA*-IDWA算法都成功避開動(dòng)—靜態(tài)障礙物,規(guī)劃出從起始點(diǎn)到目標(biāo)點(diǎn)的無碰撞路徑,但從圖16b、圖17b和表5可知,IQLA的避障路徑較長(zhǎng)且存在轉(zhuǎn)折點(diǎn),路徑不平滑,不利于機(jī)器人運(yùn)動(dòng)的平穩(wěn)性。由圖16c和圖17c分析可知,機(jī)器人在窄空間中與動(dòng)態(tài)障礙物同向而行且動(dòng)態(tài)障礙物的速度小于移動(dòng)機(jī)器人的速度時(shí),TIA*-DWA算法會(huì)陷入局部解中,只能跟隨動(dòng)態(tài)障礙物緩慢移動(dòng),不能跳出;而當(dāng)移動(dòng)機(jī)器人與動(dòng)態(tài)障礙物相向而行時(shí),機(jī)器人不能正確調(diào)整自己的航向角,通過原地打圈調(diào)整航向角,造成冗余路徑。根據(jù)圖16d、圖17d和表5可知,本文ESA*-IDWA算法的避障路徑平滑且長(zhǎng)度較短,較IQLA、TIA*-DWA的路徑平均短6.14%、4.43%。在窄空間的動(dòng)態(tài)環(huán)境中能有效躲避動(dòng)態(tài)障礙物,自適應(yīng)調(diào)整航向角,避免生成冗余路徑,防止陷入局部解??傮w來看,本文ESA*-IDWA算法能在窄空間的環(huán)境下完成動(dòng)-靜態(tài)障礙物的避障,且路徑連續(xù)、平滑,更符合機(jī)器人的運(yùn)動(dòng)特性。
針對(duì)移動(dòng)機(jī)器人因能量受限導(dǎo)致任務(wù)完成率低和在動(dòng)態(tài)環(huán)境下避障靈活性差的問題,本文提出一種新的基于全局能耗最優(yōu)路徑下的局部能耗路徑規(guī)劃思路,并討論了其可行性與有效性。本文主要貢獻(xiàn)如下:
(1)考慮機(jī)器人運(yùn)動(dòng)過程中的耗能因素,建立能耗模型,提出基于能耗成本優(yōu)化策略的ESA*算法并通過動(dòng)態(tài)基準(zhǔn)轉(zhuǎn)折懲罰、三角剪枝與弦定弧過渡法相結(jié)合的路徑優(yōu)化方法解決因路徑冗余、轉(zhuǎn)折、轉(zhuǎn)折角度大造成能量損耗的問題,得到全局能量損耗最優(yōu)的平滑路徑。
(2)將ESA*與IDWA算法相融合,并提出基于全局節(jié)能路徑的航向角自調(diào)整策略優(yōu)化傳統(tǒng)動(dòng)態(tài)窗口法,增強(qiáng)移動(dòng)機(jī)器人避障能力,讓其在動(dòng)態(tài)、狹窄的環(huán)境下成功躲避動(dòng)-靜態(tài)障礙物。
(3)設(shè)計(jì)了全局節(jié)能路徑偏離評(píng)價(jià)與能耗評(píng)價(jià)子函數(shù)改進(jìn)融合算法,在基于全局能耗最優(yōu)路徑的基礎(chǔ)上初步進(jìn)行局部能耗最優(yōu)路徑規(guī)劃的探索。
目前,全局能耗路徑最優(yōu)規(guī)劃方法求解的能耗值是個(gè)預(yù)估值,機(jī)器人的真實(shí)能耗與局部運(yùn)動(dòng)規(guī)劃息息相關(guān)。因此,后續(xù)的研究將圍繞機(jī)器人局部能耗最優(yōu)路徑規(guī)劃展開。