周 超,谷玉海,任 斌
(1.北京信息科技大學(xué) 現(xiàn)代測(cè)控教育部重點(diǎn)實(shí)驗(yàn)室,北京 100192;(2.北京航天長(zhǎng)征飛行器研究所,北京 100076)
隨著社會(huì)發(fā)展,機(jī)器人的應(yīng)用更為廣泛,移動(dòng)機(jī)器人的路徑規(guī)劃問(wèn)題[1]更是目前的一個(gè)研究熱點(diǎn)。該問(wèn)題可以描述為移動(dòng)機(jī)器人按照某種性能指標(biāo)在有障礙物的環(huán)境里從起點(diǎn)至終點(diǎn)間找到一條最短或最佳的安全無(wú)碰撞路徑[2]。常用的路徑規(guī)劃算法有RRT算法[3]、蟻群算法[4-5]、人工勢(shì)場(chǎng)算法[6]、SFLA[7]、A*算法[8]等。RRT算法搜索效率高,但得到的路徑往往和最優(yōu)路徑相差甚遠(yuǎn)。蟻群算法的收斂速度相對(duì)較慢且容易陷入局部最優(yōu)狀態(tài)。人工勢(shì)場(chǎng)算法雖然結(jié)構(gòu)簡(jiǎn)單易于實(shí)現(xiàn),但仍存在目標(biāo)不可達(dá)、障礙物前產(chǎn)生震蕩、規(guī)劃路徑不可達(dá)等問(wèn)題。相較于其他路徑規(guī)劃算法,A*算法構(gòu)建模型簡(jiǎn)單,搜索效率高,針對(duì)靜態(tài)場(chǎng)景所得到的解接近最優(yōu)解,對(duì)不同的場(chǎng)景具有很強(qiáng)的擴(kuò)展性和適應(yīng)性。A*算法同樣存在很多的不足之處,如生成路徑拐點(diǎn)較多、路徑不夠平滑、大范圍搜索情況下計(jì)算量大等問(wèn)題。針對(duì)這些問(wèn)題,國(guó)內(nèi)外研究人員從不同角度提出不同的改進(jìn)方案。Duchoň等[9]在文中總結(jié)了Basic theta*、Phi*、Jump Point Search這3種對(duì)A*算法的改進(jìn)方法。Basic theta*和Phi*解決了A*算法不能全方向搜索的問(wèn)題,最終得到的路徑長(zhǎng)度更接近最優(yōu)路徑,但計(jì)算效率低;Jump Point Search能夠提高搜索效率,但搜索方向仍受到限制,得到的路徑相較于另外2種搜索方法更長(zhǎng)。Guruji A K等[10]針對(duì)A*算法在動(dòng)態(tài)環(huán)境下計(jì)算量過(guò)大的問(wèn)題提出減少計(jì)算啟發(fā)函數(shù)值次數(shù)的方法,僅在碰撞發(fā)生前計(jì)算A*算法啟發(fā)函數(shù)的值,能夠有效提高算法處理效率。辛煜等[11]提出一種將搜索鄰域拓展至無(wú)限個(gè)的方法使得生成路徑更短,拐點(diǎn)數(shù)更少,但搜索效率會(huì)降低。單偉等[12]、王紅衛(wèi)等[13]通過(guò)引入平滑模型對(duì)生成路徑進(jìn)行二次優(yōu)化,有效減少了所得路徑的轉(zhuǎn)折次數(shù)和轉(zhuǎn)折角度。王殿君[14]、陳若男等[15]針對(duì)移動(dòng)機(jī)器人在室內(nèi)的路徑規(guī)劃問(wèn)題分別從提高移動(dòng)機(jī)器人調(diào)整自身姿態(tài)能力和面向障礙物搜索以提升路徑安全性對(duì)A*算法做出改進(jìn)。針對(duì)大規(guī)劃空間下機(jī)器人路徑規(guī)劃問(wèn)題,任曉兵等[16]提出一種基于Voronoi圖改進(jìn)的A*算法,對(duì)初次規(guī)劃的路徑進(jìn)行二次規(guī)劃,有效減少了空間規(guī)劃面積。趙曉等[17]在A*算法的基礎(chǔ)上結(jié)合了跳點(diǎn)法,有效提高了大規(guī)模搜索下生成路徑的速度。
總體分析,A*算法的改進(jìn)方法有很多,但在移動(dòng)機(jī)器人路徑規(guī)劃中仍存在以下問(wèn)題:沒(méi)有充分考慮移動(dòng)機(jī)器人的體積而造成的路徑安全性問(wèn)題;復(fù)雜地形環(huán)境下算法生成路徑合理性問(wèn)題。針對(duì)上述問(wèn)題,本文基于A*算法提出以下改進(jìn)方法:
1)通過(guò)在存在障礙物的柵格中拓展障礙物矩陣的方法改善移動(dòng)機(jī)器人易與障礙物邊緣發(fā)生碰撞的問(wèn)題。
2)引入坡度信息改進(jìn)代價(jià)函數(shù)計(jì)算方式,考慮到地形坡度對(duì)移動(dòng)機(jī)器人通過(guò)性的影響,解決算法生成路徑在復(fù)雜地形中過(guò)于陡峭的問(wèn)題。
研究路徑規(guī)劃問(wèn)題首先需要一個(gè)地圖環(huán)境模型,常見(jiàn)的環(huán)境地圖構(gòu)建方法有可視圖法[18]、柵格法[19]、拓?fù)鋱D法。其中柵格法是將機(jī)器人工作環(huán)境分成一系列具有二值信息的網(wǎng)格單元,模型建立簡(jiǎn)單,易于維護(hù),因此本文采用柵格法建立移動(dòng)機(jī)器人工作環(huán)境的三維地形圖。復(fù)雜環(huán)境下,移動(dòng)機(jī)器人的路徑規(guī)劃問(wèn)題應(yīng)更側(cè)重于如何得到一條可以安全通過(guò)的路徑,考慮到機(jī)器人自身的體積問(wèn)題,建立環(huán)境的柵格地圖時(shí)選取比移動(dòng)機(jī)器人自身體積稍大的柵格地圖。同一環(huán)境下,構(gòu)建相對(duì)更大的柵格地圖會(huì)減少算法中搜索鄰域節(jié)點(diǎn)的計(jì)算量,提高運(yùn)行效率。但柵格過(guò)大會(huì)影響搜索效果,到達(dá)目標(biāo)點(diǎn)的誤差也會(huì)更大。因此,設(shè)計(jì)柵格地圖時(shí)選取機(jī)器人投影面積和每一個(gè)柵格大小之比為2∶3的比例構(gòu)建柵格地圖。
本文選取25×25的平面柵格地圖作為平面環(huán)境地圖模型,認(rèn)為每一個(gè)柵格是一個(gè)節(jié)點(diǎn),將每個(gè)柵格劃分為4×4的小柵格。
由此方法劃分完成,得到一個(gè)100×100的二維平面地圖模型,在此基礎(chǔ)上在Matlab中生成1個(gè)100×100的高度信息矩陣,用mesh函數(shù)生成一個(gè)三維地圖模型,如圖1所示。
圖1 三維地圖模型
A*算法是一種啟發(fā)式搜索算法,結(jié)合了Dijkstra和BFS 2種算法各自的優(yōu)勢(shì),能夠在保證搜索效率的前提下得到最優(yōu)路徑[20]。其基本思想是通過(guò)一個(gè)代價(jià)函數(shù)[21]計(jì)算從起始節(jié)點(diǎn)開(kāi)始到其每個(gè)鄰域節(jié)點(diǎn)的代價(jià)值來(lái)確定搜索方向。用G(n)表示從起始節(jié)點(diǎn)到當(dāng)前節(jié)點(diǎn)n的實(shí)際代價(jià),H(n)表示從當(dāng)前節(jié)點(diǎn)n到目標(biāo)點(diǎn)的代價(jià)估計(jì)值,可得代價(jià)函數(shù)的計(jì)算方式為:A*算法的基本計(jì)算流程為:
a)初始化一個(gè)OPEN表和一個(gè)CLOSE表用于存儲(chǔ)節(jié)點(diǎn)信息。
b)將起點(diǎn)放入OPEN表中,設(shè)其F(n)值為0。
c)判斷OPEN表中存在節(jié)點(diǎn)則選取F(n)值最小節(jié)點(diǎn)N。
d)節(jié)點(diǎn)N是終點(diǎn),從終點(diǎn)開(kāi)始追溯每一個(gè)節(jié)點(diǎn)的父節(jié)點(diǎn)直到起點(diǎn),取出所有父節(jié)點(diǎn)即為路徑。
e)N不是終點(diǎn),將節(jié)點(diǎn)N從OPEN表中取出加入CLOSE表,遍歷N的鄰域節(jié)點(diǎn),若鄰域節(jié)點(diǎn)M不在CLOSE表中且不在OPEN表中,計(jì)算M的F(n)值,并將節(jié)點(diǎn)M加入OPEN表。
圖2是A*算法尋路過(guò)程的一個(gè)示例。在上述計(jì)算過(guò)程中,若節(jié)點(diǎn)的一側(cè)存在障礙物,即使其斜向?yàn)榉钦系K物節(jié)點(diǎn),其尋路方向也不可設(shè)定為斜向,這是為了避免移動(dòng)機(jī)器人與障礙物發(fā)生碰撞的問(wèn)題。
圖2 A*算法尋路過(guò)程示意圖
在圖2的尋路過(guò)程中是將機(jī)器人看作為一個(gè)質(zhì)點(diǎn)去進(jìn)行計(jì)算的,而實(shí)際上機(jī)器人自身是有一定體積大小的,在上圖計(jì)算過(guò)程中,認(rèn)定如節(jié)點(diǎn)的正右側(cè)存在障礙物,則當(dāng)前節(jié)點(diǎn)的右上和右下節(jié)點(diǎn)即為不可到達(dá)點(diǎn),通過(guò)這樣的方式避免移動(dòng)機(jī)器人與障礙物發(fā)生碰撞,但實(shí)際上這種方向并不可取,一是沒(méi)有考慮到柵格大小和機(jī)器人大小的關(guān)系,二是如果遇到如圖2中Nj的障礙物情況,是否將該點(diǎn)認(rèn)為是一個(gè)障礙物點(diǎn)。針對(duì)這一問(wèn)題,本文提出一種節(jié)點(diǎn)拓展障礙物矩陣的搜索方法。同時(shí)考慮在復(fù)雜地形環(huán)境下,地形坡度對(duì)路徑規(guī)劃的影響,對(duì)代價(jià)函數(shù)計(jì)算方式進(jìn)行改進(jìn)。
將移動(dòng)機(jī)器人在前進(jìn)過(guò)程中與周邊障礙發(fā)生碰撞的問(wèn)題進(jìn)行簡(jiǎn)化,將機(jī)器人自身體積在平面坐標(biāo)系的投影視作一個(gè)正方形,因此,僅需要考慮正方形的4個(gè)角與周邊環(huán)境是否發(fā)生碰撞來(lái)進(jìn)行判斷。為解決傳統(tǒng)路徑規(guī)劃算法產(chǎn)生的路徑會(huì)導(dǎo)致移動(dòng)機(jī)器人和障礙物發(fā)生碰撞的問(wèn)題,提出一種拓展柵格地圖節(jié)點(diǎn)障礙物矩陣的方法,即將柵格地圖中的每個(gè)節(jié)點(diǎn)劃分為n階的障礙物節(jié)點(diǎn),根據(jù)一個(gè)節(jié)點(diǎn)內(nèi)障礙物的分布情況劃分為完全障礙物節(jié)點(diǎn)、不完全障礙物節(jié)點(diǎn)和無(wú)障礙節(jié)點(diǎn)。
在每次鄰域搜索時(shí),如果當(dāng)前節(jié)點(diǎn)為不完全障礙節(jié)點(diǎn),需要根據(jù)節(jié)點(diǎn)中障礙物分布的情況判斷目標(biāo)鄰域節(jié)點(diǎn)是否滿足可通行條件。
本文設(shè)定機(jī)器人的投影和每一個(gè)柵格大小比例為2∶3,為了便于計(jì)算移動(dòng)機(jī)器人是否與障礙物邊緣存在碰撞可能性,選用4階矩陣來(lái)表示每個(gè)柵格的障礙物信息并提出如下規(guī)則對(duì)節(jié)點(diǎn)進(jìn)行分類(lèi):
a)若矩陣A中不存在非0點(diǎn)則認(rèn)為是無(wú)障礙節(jié)點(diǎn)。
b)若矩陣A中主對(duì)角線或次對(duì)角線上存在2個(gè)及以上非0點(diǎn)則認(rèn)為該節(jié)點(diǎn)為完全障礙物節(jié)點(diǎn)。
c)若矩陣A中第2、3列或第2、3行存在2個(gè)及以上非0點(diǎn)則認(rèn)為該節(jié)點(diǎn)為完全障礙物節(jié)點(diǎn)。
d)除上述情況以外的節(jié)點(diǎn)認(rèn)為是不完全障礙節(jié)點(diǎn)。
首先討論當(dāng)前節(jié)點(diǎn)自身的障礙物分布情況,已知每個(gè)節(jié)點(diǎn)都存在8個(gè)鄰域節(jié)點(diǎn),用坐標(biāo)的方式來(lái)表示,將當(dāng)前點(diǎn)視為[0,0],設(shè)定當(dāng)前點(diǎn)0°的方向?yàn)椋?,0],則其8個(gè)鄰域的表示方法如表1所示,每個(gè)鄰域搜索方向都有不同的判斷條件,判斷當(dāng)前節(jié)點(diǎn)在其鄰域搜索方向上是否滿足通行條件的順序如圖3所示。
圖3 障礙物矩陣順序示意圖
為方便表示,將節(jié)點(diǎn)自身的障礙物矩陣按照Nobs所示為每一項(xiàng)編號(hào),在進(jìn)行鄰域搜索時(shí),對(duì)應(yīng)搜索目標(biāo)鄰域需滿足除表1中對(duì)應(yīng)忽略項(xiàng)外其余項(xiàng)均為0,可認(rèn)定當(dāng)前節(jié)點(diǎn)在該方向上可以進(jìn)行搜索。
表1 節(jié)點(diǎn)自身障礙物矩陣忽略項(xiàng)
在滿足節(jié)點(diǎn)自身能夠搜索該鄰域的條件時(shí),判斷目標(biāo)鄰域節(jié)點(diǎn)是否滿足可通行條件。以目標(biāo)鄰域節(jié)點(diǎn)為右上節(jié)點(diǎn)時(shí)為例,N0為當(dāng)前節(jié)點(diǎn)的軌跡起始點(diǎn),在目標(biāo)鄰域節(jié)點(diǎn)不存在障礙物的情況下存在如圖4所示5種情況,此時(shí)除考慮N0和當(dāng)前目標(biāo)節(jié)點(diǎn)Ni的障礙物分布,同時(shí)也需要考慮其鄰域的障礙物分布情況是否滿足可通行條件,即如圖4中3條實(shí)線構(gòu)成的區(qū)域其障礙物矩陣項(xiàng)的值均為0。
圖4 目標(biāo)鄰域節(jié)點(diǎn)為無(wú)障礙節(jié)點(diǎn)時(shí)不同起始點(diǎn)的軌跡
當(dāng)目標(biāo)鄰域節(jié)點(diǎn)邊緣存在障礙物時(shí),需要判斷目標(biāo)鄰域節(jié)點(diǎn)的障礙物分布情況,由圖4分析,當(dāng)目標(biāo)鄰域節(jié)點(diǎn)為右上節(jié)點(diǎn)時(shí),考慮機(jī)器人在柵格地圖中移動(dòng)的軌跡,將滿足可通行條件的障礙物情況分為2種:
a)目標(biāo)鄰域節(jié)點(diǎn)障礙物分布為左上側(cè)時(shí):即Nobs中1,2,5區(qū)域的任意區(qū)域存在障礙,其余區(qū)域均不存在障礙時(shí),可將軌跡中心點(diǎn)進(jìn)行偏移以獲取可通行的路徑。
b)目標(biāo)鄰域節(jié)點(diǎn)障礙物分布為右下側(cè)時(shí):即Nobs中12,15,16區(qū)域的任意區(qū)域存在障礙,其余區(qū)域均不存在障礙時(shí),可將軌跡中心點(diǎn)進(jìn)行偏移以獲取可通行的路徑。
如圖5為節(jié)點(diǎn)左上側(cè)存在障礙區(qū)域,目標(biāo)鄰域節(jié)點(diǎn)Ni的障礙物矩陣中1,2,5為不可通行區(qū)域,而其余區(qū)域滿足可通行的條件,進(jìn)而再判斷相鄰鄰域節(jié)點(diǎn)是否具有可通行的條件,即N0右側(cè)和上方的節(jié)點(diǎn)的障礙物矩陣中被虛線劃過(guò)的區(qū)域均不存在障礙物,稱其滿足“借道條件”,則將目標(biāo)鄰域節(jié)點(diǎn)的“中心點(diǎn)”偏移,避開(kāi)邊角存在的障礙物,從而取得一條從起始點(diǎn)到終點(diǎn)代價(jià)較低的安全路徑。圖6為節(jié)點(diǎn)右下側(cè)存在障礙區(qū)域的情況。
計(jì)算三維坐標(biāo)系下的距離信息,對(duì)啟發(fā)值的計(jì)算通常采用歐式距離計(jì)算方法:
采用該方法計(jì)算時(shí),坡度信息沒(méi)有完全的體現(xiàn)在代價(jià)函數(shù)的計(jì)算值中,因此雖然得到了一條可行路徑,但路徑過(guò)于“坎坷”,在復(fù)雜地形環(huán)境下,移動(dòng)機(jī)器人的路徑規(guī)劃問(wèn)題更需要考慮坡度因素所帶來(lái)的影響,上坡和下坡都會(huì)一定程度影響機(jī)器人的運(yùn)動(dòng),因?yàn)樾枰x取一條更為平緩的路徑,為實(shí)現(xiàn)這一目標(biāo),對(duì)代價(jià)函數(shù)的計(jì)算方式進(jìn)行修改。
圖5 目標(biāo)鄰域節(jié)點(diǎn)障礙分布為“左上側(cè)”
圖6 目標(biāo)鄰域節(jié)點(diǎn)障礙分布為“右下側(cè)”
根據(jù)參考文獻(xiàn)[22]中提出的在山地行走時(shí)速度和坡度的關(guān)系:
式中:Slope為坡度信息,計(jì)算公式為
式中:H為當(dāng)前節(jié)點(diǎn)中最高的高度信息值;L為水平寬度。
對(duì)代價(jià)函數(shù)中G(n)和H(n)的計(jì)算方式進(jìn)行改進(jìn),仍選取歐式距離的計(jì)算方法
式中:ρ為2個(gè)節(jié)點(diǎn)間的平面歐式距離,對(duì)于存在坡度的路面計(jì)算其等效平面距離,根據(jù)式(3)中坡度和速度的關(guān)系,取其等效平面距離為
可得G(n)的計(jì)算公式:
相應(yīng)的H(n)也需要考慮和終點(diǎn)間的估計(jì)代價(jià)值,仍選取歐式距離作為代價(jià)函數(shù)的計(jì)算方式,在已知當(dāng)前節(jié)點(diǎn)和目標(biāo)點(diǎn)之間的平面歐式距離的基礎(chǔ)上,假設(shè)從當(dāng)前節(jié)點(diǎn)到目標(biāo)節(jié)點(diǎn)的坡度信息均為Slope(n),參照式(6)得到其等效平面距離:
在此基礎(chǔ)上再考慮目標(biāo)點(diǎn)的坡度信息和當(dāng)前節(jié)點(diǎn)坡度信息的差的等效平面距離,可得H(n)的計(jì)算方式:
無(wú)障礙情況下,在不考慮高度信息的情況下由傳統(tǒng)A*算法得到的最短路徑如圖7虛線所示,這條路徑雖然是理論上存在的最短路徑,但沒(méi)有考慮復(fù)雜地形對(duì)于移動(dòng)機(jī)器人行動(dòng)的影響,在此種地形環(huán)境中,路徑規(guī)劃問(wèn)題應(yīng)更多考慮到實(shí)際地形因素。如圖7實(shí)線所示為改進(jìn)了代價(jià)函數(shù)計(jì)算方式的A*算法,相較于前者,對(duì)地形條件的考慮更為充分,雖然路徑更長(zhǎng),但生成的路徑更為平緩,通過(guò)性更好。
圖7 改進(jìn)算法生成路徑
在改進(jìn)代價(jià)函數(shù)的基礎(chǔ)上,進(jìn)一步驗(yàn)證在考慮移動(dòng)機(jī)器人本身體積的情況下在該路徑下是否和障礙物發(fā)生碰撞的問(wèn)題,在目標(biāo)鄰域節(jié)點(diǎn)為水平方向和對(duì)角線方向時(shí)進(jìn)行討論,圖8為存在障礙物情況下的路徑規(guī)劃情況,虛線表示改進(jìn)代價(jià)函數(shù)的A*算法的避開(kāi)障礙物的路徑,實(shí)線為拓展障礙物矩陣方法改進(jìn)后生成的路徑,由結(jié)果分析,如果不考慮移動(dòng)機(jī)器人和障礙物體積而得到的規(guī)劃路徑是一條危險(xiǎn)路徑,且在斜方向?yàn)槟繕?biāo)鄰域節(jié)點(diǎn)的情況下,移動(dòng)機(jī)器人會(huì)與障礙物發(fā)生碰撞,現(xiàn)實(shí)情況中移動(dòng)機(jī)器人的路徑規(guī)劃問(wèn)題通常會(huì)采用局部路徑規(guī)劃和全局路徑規(guī)劃相結(jié)合的方式進(jìn)行實(shí)時(shí)避障,在遇到無(wú)法通過(guò)的障礙物的情況時(shí)會(huì)進(jìn)行局部的二次規(guī)劃,為減少重復(fù)規(guī)劃的次數(shù),在進(jìn)行全局的路徑規(guī)劃時(shí)應(yīng)得到一條當(dāng)前靜態(tài)環(huán)境下更為安全的路徑。
圖8 拓展障礙物矩陣方法生成路徑
由圖9能夠看出,采用節(jié)點(diǎn)拓展障礙物矩陣的方法之后生成的路徑和障礙物之間留有足夠的安全距離,按照設(shè)定移動(dòng)機(jī)器人本體大小和柵格地圖比例為2∶3,路徑為移動(dòng)機(jī)器人中心點(diǎn)的軌跡,圖中路徑與障礙物的最短距離為1個(gè)網(wǎng)格長(zhǎng)度,而機(jī)器人大小所占據(jù)面積的1/2長(zhǎng)度小于1個(gè)網(wǎng)格距離,改進(jìn)后的算法能夠解決在目標(biāo)鄰域節(jié)點(diǎn)為對(duì)角線方向時(shí),生成的路徑會(huì)與障礙物的邊界發(fā)生碰撞的問(wèn)題。
圖9 障礙物區(qū)域生成路徑對(duì)比
圖10為優(yōu)化前后生成的路徑節(jié)點(diǎn)的F(n)值變化曲線,可以看出優(yōu)化前后F(n)變化趨勢(shì)基本一致,坡度因素對(duì)F(n)的值影響較大,在后半部分的曲線基本重合(由于優(yōu)化后的路線搜索節(jié)點(diǎn)相比于優(yōu)化前多一個(gè),所以圖像后半部分后移一個(gè)單位),總體來(lái)看,優(yōu)化前后F(n)的變化趨勢(shì)基本一致,而優(yōu)化后的算法不會(huì)對(duì)總的路徑造成較大的影響,而是對(duì)存在障礙物的局部區(qū)域進(jìn)行重新規(guī)劃,提高生成路徑安全性的同時(shí)保證其路徑最優(yōu)。
圖10 生成路徑的代價(jià)估計(jì)值曲線
為進(jìn)一步驗(yàn)證算法在遇到柵格邊緣存在障礙物的情況,在原有路徑上添加不完全障礙物節(jié)點(diǎn),如圖11所示,實(shí)線部分為原路徑即不存在該不完全障礙物節(jié)點(diǎn)時(shí)所生成的路徑,虛線為添加不完全障礙物節(jié)點(diǎn)的情況下生成的路徑,相較于不存在該障礙物的情況下向下偏移一個(gè)網(wǎng)格的距離,使得生成路徑的安全性更高。
圖11 存在不完全障礙物節(jié)點(diǎn)情況路徑
對(duì)傳統(tǒng)A*算法在移動(dòng)機(jī)器人路徑規(guī)劃應(yīng)用中的問(wèn)題進(jìn)行改進(jìn),通過(guò)拓展柵格地圖節(jié)點(diǎn)的障礙物矩陣的方法解決了因忽略移動(dòng)機(jī)器人自身體積和柵格地圖劃分柵格大小造成的生成路徑安全性問(wèn)題,且生成的路徑更為合理。同時(shí)針對(duì)在復(fù)雜地形條件下,設(shè)計(jì)了新的代價(jià)函數(shù)計(jì)算方法,引入坡度信息,將陡坡上移動(dòng)的距離簡(jiǎn)化為平面等效距離計(jì)算每一個(gè)節(jié)點(diǎn)總的代價(jià)值,使得生成路徑更趨于平緩。通過(guò)仿真結(jié)果驗(yàn)證本文提出的改進(jìn)A*算法能夠在復(fù)雜地形條件下得到一條平緩的路徑且通過(guò)拓展節(jié)點(diǎn)障礙物矩陣的方法能夠有效減少移動(dòng)機(jī)器人與障礙物發(fā)生碰撞的概率。但最后生成的路徑不夠平滑,針對(duì)這一問(wèn)題,下一步工作將從路徑規(guī)劃效率和使生成路徑呈現(xiàn)出更平滑的曲線方面進(jìn)行優(yōu)化。