本發(fā)明屬于車(chē)輛路徑規(guī)劃和自主導(dǎo)航領(lǐng)域,具體是涉及一種基于飛蛾優(yōu)化勢(shì)場(chǎng)力增益系數(shù)的車(chē)輛局部路徑規(guī)劃方法。
背景技術(shù):
1、當(dāng)前,車(chē)輛自動(dòng)駕駛技術(shù)加速朝著智能化方向發(fā)展,其中局部路徑規(guī)劃是一種典型的自動(dòng)駕駛技術(shù),具體是指在已知全局地圖和環(huán)境的情況下,為車(chē)輛規(guī)劃從當(dāng)前位置到目標(biāo)位置的詳細(xì)行駛路線,其通常涉及到對(duì)障礙物避讓、地形特征考慮以及最短路徑選擇?,F(xiàn)有的局部路徑規(guī)劃方法種類(lèi)較多,如動(dòng)態(tài)窗口法、模型預(yù)測(cè)控制、深度學(xué)習(xí)及人工勢(shì)場(chǎng)法等。其中動(dòng)態(tài)窗口法通過(guò)在當(dāng)前速度范圍內(nèi)搜索最佳的速度和轉(zhuǎn)向組合來(lái)實(shí)現(xiàn)路徑規(guī)劃,但參數(shù)調(diào)整困難;模型預(yù)測(cè)控制能夠處理復(fù)雜的智能車(chē)輛動(dòng)力學(xué)和環(huán)境約束,然而計(jì)算成本較高;盡管深度學(xué)習(xí)技術(shù)能夠處理復(fù)雜的交通場(chǎng)景,卻需要大量訓(xùn)練數(shù)據(jù)。其中人工勢(shì)場(chǎng)法以其結(jié)構(gòu)簡(jiǎn)單、計(jì)算復(fù)雜度低以及避障能力強(qiáng)等優(yōu)勢(shì),獲得了眾多技術(shù)開(kāi)發(fā)者和工程師的青睞,并被廣泛用于車(chē)輛局部路徑規(guī)劃工程應(yīng)用中。然而,值得注意的是采用傳統(tǒng)人工勢(shì)場(chǎng)算法實(shí)施路徑規(guī)劃過(guò)程中,受到駕駛環(huán)境和算法缺陷等因素影響,車(chē)輛在勢(shì)場(chǎng)中某一位置受到的瞬時(shí)合力若為零,將導(dǎo)致車(chē)輛在此位置停車(chē)或出現(xiàn)在該點(diǎn)位置區(qū)域軌跡反復(fù)振蕩的情況,即陷入“局部最小值”問(wèn)題。
2、針對(duì)上述車(chē)輛局部路徑規(guī)劃過(guò)程中可能陷入“局部最小值”問(wèn)題,專(zhuān)利號(hào)202310995802x提出一種基于模糊邏輯算法的改進(jìn)人工勢(shì)場(chǎng)法的移動(dòng)機(jī)器人路徑規(guī)劃方法,該發(fā)明旨在滿(mǎn)足移動(dòng)機(jī)器人自身轉(zhuǎn)向約束前提下,引入虛擬目標(biāo)點(diǎn)來(lái)改變勢(shì)力場(chǎng)中的車(chē)輛受力,從而使車(chē)輛跳出局部最小值陷阱;專(zhuān)利號(hào)2022111071132發(fā)明了一種基于改進(jìn)人工勢(shì)場(chǎng)法的自動(dòng)駕駛車(chē)輛路徑規(guī)劃方法,該方法在斥力重分布過(guò)程中引入了雜草算法,以計(jì)算最優(yōu)子目標(biāo)地,從而確保車(chē)輛在陷入局部極小值點(diǎn)時(shí)能夠自動(dòng)逃離。上述方法均采用施加外力方法打破車(chē)輛所處平衡狀態(tài),但由于施加外力的方向和大小較難控制,導(dǎo)致上述方法存在計(jì)算量過(guò)大、復(fù)雜度較高等缺陷。
技術(shù)實(shí)現(xiàn)思路
1、為了克服現(xiàn)有技術(shù)存在的缺陷,本發(fā)明提供一種基于飛蛾撲火優(yōu)化勢(shì)場(chǎng)力增益系數(shù)的局部路徑規(guī)劃方法,若車(chē)輛陷入局部最小值,即車(chē)輛在局部最小值位置往復(fù)震蕩,則引入飛蛾撲火算法優(yōu)化斥力及引力增益系數(shù),改變車(chē)輛所受的勢(shì)場(chǎng)力大小,使其跳出局部最小值陷阱,同時(shí)引導(dǎo)車(chē)輛向靠近目標(biāo)點(diǎn)方向移動(dòng)。
2、本發(fā)明解決技術(shù)問(wèn)題所采用的技術(shù)方案是:
3、一種基于飛蛾撲火優(yōu)化勢(shì)場(chǎng)力增益系數(shù)的局部路徑規(guī)劃方法,包括車(chē)輛局部路徑規(guī)劃系統(tǒng),所述車(chē)輛局部路徑規(guī)劃系統(tǒng)包括傳感器單元、勢(shì)場(chǎng)力計(jì)算單元、下一步位置計(jì)算單元、局部最小值判斷單元、基于飛蛾撲火勢(shì)場(chǎng)力增益系數(shù)優(yōu)化單元和車(chē)輛達(dá)到目標(biāo)點(diǎn)判斷單元;
4、所述局部路徑規(guī)劃方法包括以下步驟:
5、所述傳感器單元采集道路信息,并傳遞給勢(shì)場(chǎng)力計(jì)算單元;勢(shì)場(chǎng)力計(jì)算單元根據(jù)設(shè)定的勢(shì)場(chǎng)力計(jì)算公式,計(jì)算出車(chē)輛在勢(shì)力場(chǎng)中的斥力frep和引力fatt,同時(shí)將傳感器單元識(shí)別的道路信息傳輸?shù)较乱徊轿恢糜?jì)算單元;下一步位置計(jì)算單元根據(jù)車(chē)輛當(dāng)前位置、航向角及步長(zhǎng)計(jì)算車(chē)輛下一步位置,信號(hào)傳輸?shù)骄植孔钚≈蹬袛鄦卧凰鼍植孔钚≈蹬袛鄦卧ㄟ^(guò)預(yù)先設(shè)定的判定規(guī)則判定車(chē)輛是否陷入局部最小值;若車(chē)輛陷入局部最小值,則輸出‘是’信號(hào)到基于飛蛾撲火勢(shì)場(chǎng)力增益系數(shù)優(yōu)化單元,若車(chē)輛未陷入局部最小值,則輸出‘否’信號(hào)到車(chē)輛達(dá)到目標(biāo)點(diǎn)判斷單元;所述基于飛蛾撲火勢(shì)場(chǎng)力增益系數(shù)優(yōu)化單元根據(jù)車(chē)輛的位置、障礙物位置和目標(biāo)點(diǎn)位置優(yōu)化斥力、引力的增益系數(shù),計(jì)算出增益系數(shù)值輸出到勢(shì)場(chǎng)力計(jì)算單元,勢(shì)場(chǎng)力計(jì)算單元重新計(jì)算勢(shì)場(chǎng)力;所述車(chē)輛達(dá)到目標(biāo)點(diǎn)判斷單元接收到車(chē)輛未陷入局部最小信號(hào),根據(jù)判定規(guī)則判斷車(chē)輛是否達(dá)到目標(biāo)點(diǎn),若達(dá)到目標(biāo)點(diǎn),則輸出‘是’信號(hào)結(jié)束,若未達(dá)到目標(biāo)點(diǎn),則輸出‘否’信號(hào)到勢(shì)場(chǎng)力計(jì)算單元,循環(huán)執(zhí)行以上操作。
6、進(jìn)一步,所述局部路徑規(guī)劃方法還包括以下步驟:
7、在勢(shì)場(chǎng)力計(jì)算單元中,對(duì)傳統(tǒng)的斥力場(chǎng)改進(jìn),改進(jìn)后障礙物對(duì)車(chē)輛的斥力分成了兩部分,一部分是由障礙物指向車(chē)輛,一部分是由車(chē)輛指向障礙物,改進(jìn)后斥力函數(shù)為:
8、
9、式中:ρ(p,pgoal)表示車(chē)輛與目標(biāo)點(diǎn)位置的歐氏距離,ρ(p,pobs)表示車(chē)輛與障礙物位置的歐氏距離,p表示智能車(chē)輛位置,pgoal表示目標(biāo)點(diǎn)位置,pobs表示障礙物位置,s為調(diào)節(jié)因子,s取1,krep為斥力增益系數(shù),ρ0為常數(shù),表示障礙物對(duì)車(chē)輛產(chǎn)生影響范圍的最大距離,frep1表示障礙物指向車(chē)輛的斥力,frep2表示車(chē)輛指向目標(biāo)點(diǎn)的斥力;
10、改進(jìn)后的障礙物合斥力為:
11、frep=frep1+frep2?(3)
12、傳統(tǒng)人工勢(shì)場(chǎng)法引力部分與車(chē)輛和目標(biāo)點(diǎn)位置距離隨距離越大而增大,當(dāng)汽車(chē)距離目標(biāo)點(diǎn)較遠(yuǎn)時(shí),引力部分過(guò)大,可能導(dǎo)致汽車(chē)與障礙物相撞。針對(duì)這一問(wèn)題,對(duì)引力場(chǎng)公式進(jìn)行改進(jìn)。引力場(chǎng)的大小由汽車(chē)與目標(biāo)點(diǎn)的距離決定,當(dāng)距離非常大時(shí),引力將會(huì)變得非常大,斥力相對(duì)于引力而言就會(huì)變得非常小,從而導(dǎo)致汽車(chē)與障礙物相撞。因此,對(duì)引力函數(shù)加以改進(jìn),公式如下:
13、
14、式中:ε為引力場(chǎng)調(diào)節(jié)因子,katt為引力增益系數(shù),d0為目標(biāo)點(diǎn)對(duì)車(chē)輛的影響距離極限值,當(dāng)汽車(chē)與目標(biāo)點(diǎn)距離≤d0時(shí),引力與距離成平滑直線;當(dāng)汽車(chē)與目標(biāo)點(diǎn)距離>d0時(shí),將引力視為常數(shù)。
15、再進(jìn)一步,所述下一步位置計(jì)算單元中,當(dāng)車(chē)輛運(yùn)動(dòng)到當(dāng)前位置(xi,yi)時(shí),車(chē)輛行駛步長(zhǎng)l設(shè)置為0.1,根據(jù)當(dāng)前路徑點(diǎn)合力角度值α與步長(zhǎng)l,下一步到達(dá)位置(xi+1,yi+1),則根據(jù)下一步位置計(jì)算單元計(jì)算車(chē)輛下一位置坐標(biāo)表達(dá)式為:
16、
17、再進(jìn)一步,所述局部最小值判斷單元中,設(shè)定陷入局部最小值規(guī)則:當(dāng)車(chē)輛在二維平面內(nèi)受到的斥力與引力大小相同,方向相反時(shí),則判定汽車(chē)陷入了局部最小值,反之,則車(chē)輛沒(méi)有陷入局部最小值,輸出信號(hào)進(jìn)入車(chē)輛達(dá)到目標(biāo)點(diǎn)判斷單元。
18、再進(jìn)一步,所述基于飛蛾撲火勢(shì)場(chǎng)力增益系數(shù)優(yōu)化單元中,基于判斷車(chē)輛是否陷入局部最小值單元中的判定規(guī)則,若車(chē)輛陷入局部最小值,則引入飛蛾撲火算法,根據(jù)車(chē)輛與目標(biāo)點(diǎn)的距離確定合適的適應(yīng)度函數(shù),優(yōu)化障礙物斥力、道路邊界斥力、引力的增益系數(shù),改變車(chē)輛在局部最小值位置的受力大小和方向,促使車(chē)輛跳出局部最小值位置,同時(shí)引導(dǎo)車(chē)輛向靠近目標(biāo)點(diǎn)的方向移動(dòng);
19、具體執(zhí)行分步驟如下:
20、步驟1:初始化飛蛾撲火算法:優(yōu)化對(duì)象為車(chē)輛在勢(shì)力場(chǎng)中所受障礙物斥力增益系數(shù)、道路邊界斥力增益系數(shù)、目標(biāo)點(diǎn)引力增益系數(shù),設(shè)置飛蛾的搜索空間維數(shù)為s維,搜索空間的上下界為車(chē)輛下一步可能的行駛范圍,上界為ub,下界為lb,種群規(guī)模為m=30,最大迭代次數(shù)為100,適應(yīng)度函數(shù)設(shè)置為:
21、
22、式中:xgoal、ygoal分別表示目標(biāo)點(diǎn)的橫縱坐標(biāo),xj+1、yj+1分別表示下一時(shí)刻車(chē)輛的橫縱坐標(biāo),表示第d只飛蛾適應(yīng)度函數(shù)值,表示第d+1只飛蛾適應(yīng)度函數(shù)值。
23、步驟2:在空間中隨機(jī)生成飛蛾位置,對(duì)飛蛾種群中的每一只飛蛾進(jìn)行適應(yīng)度評(píng)價(jià);飛蛾群由以下部分組成:
24、x=[x1,x2,x3......,xm]?(7)
25、第d個(gè)飛蛾的位置信息為:
26、x=[xd1,xd2,xd3......,xds]?(8)
27、飛蛾的適應(yīng)度值保存到矩陣od中:
28、
29、最優(yōu)適應(yīng)度函數(shù)為:
30、esumy-n=min{od}?(10)
31、步驟3:初始化火焰:針對(duì)解決局部最小值問(wèn)題,因此設(shè)置火焰數(shù)量為1能加快算法收斂,選擇第一個(gè)飛蛾位置作為初始火焰,將火焰構(gòu)造為:
32、
33、式中:表示初始火焰的位置,x1表示第一只飛蛾的位置;
34、步驟4:更新火焰位置:對(duì)所有飛蛾的適應(yīng)度值進(jìn)行評(píng)估,尋找最優(yōu)適應(yīng)度值的飛蛾,則更新火焰位置;
35、
36、式中:n表示最優(yōu)飛蛾是第n只;
37、步驟5:更新飛蛾位置:
38、計(jì)算d飛蛾與火焰之間的距離:
39、
40、式中:為飛蛾的位置,d=(1,2,...m),φf(shuō)j為火焰的位置;
41、飛蛾相對(duì)于火焰的位置描述如下:
42、φd+1=s(φd,f)?(14)
43、式中:φd表示第d只蛾的位置,f為火焰的特征值,s(·)為螺旋函數(shù);采用螺旋飛行法進(jìn)行檢測(cè),采用對(duì)數(shù)螺旋法計(jì)算飛蛾未來(lái)飛行的主要更新機(jī)制;螺旋函數(shù)為:
44、s(φd,f)=rd·ebσ·cos(2πt)+f?(15)
45、式中:b是一個(gè)常數(shù),σ表示在[r,1]范圍內(nèi)的當(dāng)前數(shù)字,r為從[-2,-1]范圍開(kāi)始的線性遞減的變化因子,t表示飛蛾飛行時(shí)間;
46、步驟6:判斷是否達(dá)到最大迭代次數(shù)或全局最優(yōu)不變:如果沒(méi)有達(dá)到最大迭代次數(shù)或全局最優(yōu)不變,則返回到步驟3進(jìn)一步更新優(yōu)化;如果達(dá)到最大迭代次數(shù)或全局最優(yōu)不變,則飛蛾撲火算法結(jié)束,輸出最優(yōu)的斥力增益系數(shù)和引力增益系數(shù),返回到勢(shì)場(chǎng)力計(jì)算單元。
47、更進(jìn)一步,所述車(chē)輛達(dá)到目標(biāo)點(diǎn)判斷單元中,根據(jù)車(chē)輛與目標(biāo)點(diǎn)的距離公式式中xgoal、ygoal分別表示目標(biāo)點(diǎn)的橫縱坐標(biāo),若值小于1,則車(chē)輛已到達(dá)目標(biāo)點(diǎn),若值大于1,車(chē)輛沒(méi)有到達(dá)目標(biāo)點(diǎn),則返回到勢(shì)場(chǎng)力計(jì)算單元,重新循環(huán)直至車(chē)輛到達(dá)目標(biāo)點(diǎn),完成路徑規(guī)劃。
48、與現(xiàn)有技術(shù)相比,本發(fā)明具有有益效果:
49、本發(fā)明基于傳統(tǒng)的人工勢(shì)場(chǎng)法,通過(guò)增加一個(gè)車(chē)輛指向目標(biāo)點(diǎn)的斥力對(duì)傳統(tǒng)斥力場(chǎng)改進(jìn),在此基礎(chǔ),當(dāng)車(chē)輛陷入局部最小值陷阱時(shí),引入飛蛾撲火算法優(yōu)化勢(shì)場(chǎng)力增益系數(shù),改變車(chē)輛在勢(shì)力場(chǎng)中的受力,促使車(chē)輛迅速的跳出局部最小值陷阱,拓寬了局部路徑規(guī)劃的應(yīng)用范圍。