張家旭 王志偉 郭 崇 趙 健
(1吉林大學(xué)汽車(chē)仿真與控制國(guó)家重點(diǎn)實(shí)驗(yàn)室, 長(zhǎng)春 130022)(2中國(guó)第一汽車(chē)集團(tuán)有限公司智能網(wǎng)聯(lián)研發(fā)院, 長(zhǎng)春 130011)
泊車(chē)入位一直被視為最具挑戰(zhàn)性的駕駛環(huán)節(jié),隨著城市車(chē)輛保有量增加,每輛車(chē)所分配到的車(chē)位更加緊湊,進(jìn)一步增加了泊車(chē)難度[1].從20世紀(jì)90年代開(kāi)始,相應(yīng)的泊車(chē)輔助功能研究逐漸增多,目前被動(dòng)泊車(chē)輔助功能已得到廣泛應(yīng)用,近年來(lái)逐漸出現(xiàn)了自動(dòng)泊車(chē)等主動(dòng)泊車(chē)輔助功能.代客泊車(chē)系統(tǒng)是自動(dòng)駕駛和自動(dòng)泊車(chē)技術(shù)的優(yōu)勢(shì)結(jié)合[2-3],其將停車(chē)位搜索和泊車(chē)操作集成,能夠代替駕駛員完成下車(chē)點(diǎn)到泊車(chē)位之間的駕駛?cè)蝿?wù)[4].
與傳統(tǒng)自動(dòng)泊車(chē)系統(tǒng)相比,代客泊車(chē)系統(tǒng)需應(yīng)對(duì)的場(chǎng)景更加復(fù)雜,其路徑規(guī)劃更具挑戰(zhàn)性.代客泊車(chē)系統(tǒng)路徑規(guī)劃可分為全局路徑規(guī)劃、局部路徑優(yōu)化和泊車(chē)路徑規(guī)劃3個(gè)階段.其中,全局路徑規(guī)劃和局部路徑規(guī)劃是代客泊車(chē)系統(tǒng)路徑規(guī)劃的核心.全局路徑規(guī)劃首先在已知靜態(tài)地圖的基礎(chǔ)上規(guī)劃出一條引導(dǎo)車(chē)輛從下車(chē)點(diǎn)到期望泊車(chē)起始位置的全局路徑,其核心問(wèn)題是地圖構(gòu)建和路徑搜索,全局路徑規(guī)劃多以無(wú)向圖建立停車(chē)場(chǎng)靜態(tài)地圖,以啟發(fā)式算法實(shí)現(xiàn)路徑搜索.局部路徑優(yōu)化著重于路徑的可跟隨性?xún)?yōu)化,基于全局路徑生成一條符合車(chē)輛運(yùn)動(dòng)學(xué)原理的路徑.
目前代客泊車(chē)系統(tǒng)路徑規(guī)劃的研究多集中于基于先驗(yàn)停車(chē)場(chǎng)地圖信息的全局規(guī)劃及局部路徑優(yōu)化.文獻(xiàn)[5]針對(duì)自主代客泊車(chē)場(chǎng)景中汽車(chē)轉(zhuǎn)彎運(yùn)動(dòng)過(guò)程,采用柵格搜索方法規(guī)劃該場(chǎng)景自主代客泊車(chē)路徑.文獻(xiàn)[6]首先利用A*算法規(guī)劃全局自主代客泊車(chē)路徑,隨后利用改進(jìn)動(dòng)態(tài)窗口算法規(guī)劃局部自主代客泊車(chē)路徑.文獻(xiàn)[7]以柵格化自主代客泊車(chē)地圖為基礎(chǔ),采用優(yōu)化方法規(guī)劃全局和局部自主代客泊車(chē)路徑.文獻(xiàn)[8]融合人工勢(shì)場(chǎng)法與隨機(jī)采樣樹(shù)算法來(lái)規(guī)劃全局自主代客泊車(chē)路徑.文獻(xiàn)[9]首先利用批處理先驗(yàn)知識(shí)樹(shù)算法構(gòu)建全局自主代客泊車(chē)路徑,再利用滾動(dòng)優(yōu)化算法構(gòu)建局部自主代客泊車(chē)路徑.文獻(xiàn)[10]基于Dijkstra算法規(guī)劃動(dòng)態(tài)場(chǎng)景的全局自主代客泊車(chē)路徑.文獻(xiàn)[11]以多車(chē)協(xié)同自主代客泊車(chē)場(chǎng)景為基礎(chǔ),將自主代客泊車(chē)路徑規(guī)劃問(wèn)題轉(zhuǎn)化為最優(yōu)控制問(wèn)題,并提出了一種基于初始化的計(jì)算框架來(lái)降低計(jì)算負(fù)擔(dān).
本文針對(duì)存在動(dòng)態(tài)障礙物場(chǎng)景的自主代客泊車(chē)路徑規(guī)劃問(wèn)題,提出一種基于D*算法和動(dòng)態(tài)窗口法的自主代客泊車(chē)路徑規(guī)劃方法.首先,利用柵格掃描算法構(gòu)建自主代客泊車(chē)場(chǎng)景的靜態(tài)環(huán)境地圖,并采用Dijkstra算法實(shí)時(shí)更新動(dòng)態(tài)障礙物影響的局部靜態(tài)環(huán)境地圖信息.隨后,利用D*算法將自主代客泊車(chē)場(chǎng)景靜態(tài)環(huán)境地圖轉(zhuǎn)化為靜態(tài)路徑場(chǎng),得到原始全局自主代客泊車(chē)路徑.最后,采用動(dòng)態(tài)窗口法和圓弧-直線(xiàn)組合方式規(guī)劃最優(yōu)的局部自主代客泊車(chē)路徑.
基于外部環(huán)境感知傳感器信息準(zhǔn)確實(shí)時(shí)地構(gòu)建動(dòng)態(tài)環(huán)境地圖是規(guī)劃自主代客泊車(chē)路徑的重要基礎(chǔ).本節(jié)首先利用柵格掃描算法構(gòu)建自主代客泊車(chē)場(chǎng)景的靜態(tài)環(huán)境地圖,再結(jié)合自主代客泊車(chē)場(chǎng)景中的動(dòng)態(tài)障礙物信息,利用Dijkstra算法實(shí)時(shí)更新靜態(tài)環(huán)境地圖,實(shí)現(xiàn)自主代客泊車(chē)場(chǎng)景動(dòng)態(tài)環(huán)境地圖的快速構(gòu)建.柵格掃描算法利用圖1所示的節(jié)點(diǎn)鄰域模板對(duì)自主代客泊車(chē)場(chǎng)景的柵格地圖從左到右逐行正向掃描和從右到左逐行反向掃描后來(lái)獲得任意可行節(jié)點(diǎn)到其最近障礙物節(jié)點(diǎn)的歐氏距離[12-13].
圖1 節(jié)點(diǎn)p的鄰域模板
定義如圖1所示的節(jié)點(diǎn)p與其相鄰節(jié)點(diǎn)q1,q2,…,q8間的平方歐氏距離偏差d(p,q)和相對(duì)坐標(biāo)偏差M(p,q)分別為
(1)
(2)
式中,C(q)=(Cx(q),Cy(q))為節(jié)點(diǎn)p的相鄰節(jié)點(diǎn)q∈{q1,q2,…,q8}的相對(duì)坐標(biāo).
①?gòu)淖蟮接抑鹦姓驋呙韫?jié)點(diǎn)p.設(shè)置f(p)=∞,對(duì)于任意的相鄰節(jié)點(diǎn)q={q1,q2,q3,q4},如果f(p)>f(q)+d(p,q),更新f(p)=f(q)+d(p,q),C(p)=C(q)+M(p,q).
②從右到左逐行反向掃描節(jié)點(diǎn)p.對(duì)于任意的相鄰節(jié)點(diǎn)q={q5,q6,q7,q8},如果f(p)>f(q)+d(p,q),更新f(p)=f(q)+d(p,q),C(p)=C(q)+M(p,q).
當(dāng)自主代客泊車(chē)場(chǎng)景中出現(xiàn)動(dòng)態(tài)障礙物時(shí),將障礙物占據(jù)的節(jié)點(diǎn)插入到Dijkstra算法的開(kāi)放列表中,并且從障礙物節(jié)點(diǎn)開(kāi)始逐層更新自主代客泊車(chē)場(chǎng)景的靜態(tài)環(huán)境地圖,直到擴(kuò)展到出現(xiàn)的動(dòng)態(tài)障礙物節(jié)點(diǎn)不為當(dāng)前節(jié)點(diǎn)的最近障礙物節(jié)點(diǎn)為止.自主代客泊車(chē)場(chǎng)景下動(dòng)態(tài)環(huán)境地圖構(gòu)建流程如下:
①將障礙物節(jié)點(diǎn)插入到開(kāi)放列表中,將其歐氏距離設(shè)置為0.
②重復(fù)以下過(guò)程直到開(kāi)放列表為空.
③將開(kāi)放列表中最小歐氏距離的節(jié)點(diǎn)取出作為當(dāng)前節(jié)點(diǎn),將其移至封閉列表.
④檢查當(dāng)前節(jié)點(diǎn)的8個(gè)相鄰節(jié)點(diǎn).若相鄰節(jié)點(diǎn)為障礙物節(jié)點(diǎn)或已在封閉列表中,不操作;若相鄰節(jié)點(diǎn)不在開(kāi)放列表中且當(dāng)前節(jié)點(diǎn)能減小其歐氏距離,將其加入開(kāi)放列表;若相鄰節(jié)點(diǎn)在開(kāi)放列表中且當(dāng)前節(jié)點(diǎn)能減小相鄰節(jié)點(diǎn)歐氏距離,更新相鄰節(jié)點(diǎn)的歐氏距離.
全局自主代客泊車(chē)路徑規(guī)劃的任務(wù)是根據(jù)動(dòng)態(tài)環(huán)境地圖信息規(guī)劃出從起始點(diǎn)到目標(biāo)點(diǎn)的無(wú)碰撞路徑.本節(jié)采用對(duì)動(dòng)態(tài)環(huán)境具有自適應(yīng)能力的D*算法規(guī)劃全局自主代客泊車(chē)路徑.采用開(kāi)放列表存儲(chǔ)待擴(kuò)展的節(jié)點(diǎn),K(X)和H(X)分別表示節(jié)點(diǎn)X的最小成本和當(dāng)前成本,將從未列入開(kāi)放列表中的節(jié)點(diǎn)狀態(tài)設(shè)置為NEW,將歷史列入開(kāi)放列表且當(dāng)前不在開(kāi)放列表中的節(jié)點(diǎn)狀態(tài)設(shè)置為CLOSED,將當(dāng)前在開(kāi)放列表中的節(jié)點(diǎn)狀態(tài)設(shè)置為OPEN,將滿(mǎn)足K(X) 圖2 D*算法主要流程 該算法通過(guò)5個(gè)模塊維護(hù)一個(gè)開(kāi)放列表,實(shí)現(xiàn)動(dòng)態(tài)環(huán)境下的全局自主代客泊車(chē)路徑規(guī)劃.模塊1通過(guò)相鄰節(jié)點(diǎn)優(yōu)化當(dāng)前節(jié)點(diǎn)X的H(X);模塊2為內(nèi)嵌的Dijkstra算法,用于將自主代客泊車(chē)場(chǎng)景靜態(tài)環(huán)境地圖轉(zhuǎn)化為一個(gè)靜態(tài)路徑場(chǎng);模塊3用于將父節(jié)點(diǎn)當(dāng)前成本變化信息傳遞給其子節(jié)點(diǎn),逐漸形成的傳遞路徑與靜態(tài)路徑場(chǎng)包含的原始規(guī)劃路徑方向相反;模塊4和模塊5用于處理當(dāng)前節(jié)點(diǎn)X相鄰且不相關(guān)節(jié)點(diǎn),通過(guò)將LOWER狀態(tài)的節(jié)點(diǎn)插入到開(kāi)放列表中來(lái)激活模塊2,使插入到開(kāi)放列表中的節(jié)點(diǎn)影響程度形成波浪傳播到其相鄰節(jié)點(diǎn),而不是僅影響某個(gè)節(jié)點(diǎn). 如圖2所示,D*算法首先采用模塊2描述的Dijkstra算法,從目標(biāo)節(jié)點(diǎn)開(kāi)始對(duì)自主代客泊車(chē)場(chǎng)景靜態(tài)環(huán)境地圖進(jìn)行反向搜索,確定出每個(gè)節(jié)點(diǎn)的父節(jié)點(diǎn),從而將自主代客泊車(chē)場(chǎng)景靜態(tài)環(huán)境地圖轉(zhuǎn)化為一個(gè)靜態(tài)路徑場(chǎng).如圖3所示,利用模塊2描述的Dijkstra算法可規(guī)劃出從節(jié)點(diǎn)31到目標(biāo)節(jié)點(diǎn)22的最短原始路徑為:節(jié)點(diǎn)31→節(jié)點(diǎn)25→節(jié)點(diǎn)20→節(jié)點(diǎn)21→節(jié)點(diǎn)22.當(dāng)自主代客泊車(chē)場(chǎng)景靜態(tài)環(huán)境地圖中原始路徑節(jié)點(diǎn)20變?yōu)檎系K物節(jié)點(diǎn)時(shí),需要在已得到的靜態(tài)路徑場(chǎng)基礎(chǔ)上,采用D*算法重新規(guī)劃從節(jié)點(diǎn)31到目標(biāo)節(jié)點(diǎn)22的路徑. 圖3 基于D*算法的原始路徑規(guī)劃示意圖 如圖4所示,由于節(jié)點(diǎn)25的父節(jié)點(diǎn)20變?yōu)檎系K物節(jié)點(diǎn),節(jié)點(diǎn)25狀態(tài)變?yōu)镽AISE并且被重新插入到開(kāi)放列表中,從開(kāi)放列表中取出節(jié)點(diǎn)25來(lái)激活模塊1,使得其父節(jié)點(diǎn)由障礙物節(jié)點(diǎn)20變?yōu)楣?jié)點(diǎn)19.對(duì)于重規(guī)劃路徑節(jié)點(diǎn)19,其父節(jié)點(diǎn)20變?yōu)檎系K物節(jié)點(diǎn),節(jié)點(diǎn)19狀態(tài)變?yōu)镽AISE并且被重新插入到開(kāi)放列表中,從開(kāi)放列表中取出節(jié)點(diǎn)19來(lái)激活模塊3和模塊5,分別將節(jié)點(diǎn)19的子節(jié)點(diǎn)25和節(jié)點(diǎn)19的不相關(guān)節(jié)點(diǎn)13插入到開(kāi)放列表中.隨后,從開(kāi)放列表中取出不相關(guān)節(jié)點(diǎn)13來(lái)激活模塊2,使得節(jié)點(diǎn)19的父節(jié)點(diǎn)變?yōu)楣?jié)點(diǎn)13.對(duì)于重規(guī)劃路徑節(jié)點(diǎn)13,其父節(jié)點(diǎn)20變?yōu)檎系K物節(jié)點(diǎn),節(jié)點(diǎn)13狀態(tài)變?yōu)镽AISE并且被重新插入到開(kāi)放列表中,從開(kāi)放列表中取出節(jié)點(diǎn)13來(lái)激活模塊3,將節(jié)點(diǎn)13的子節(jié)點(diǎn)7狀態(tài)變?yōu)镽AISE并插入到開(kāi)放列表中.對(duì)于重規(guī)劃路徑節(jié)點(diǎn)7,采用節(jié)點(diǎn)13的處理方式將節(jié)點(diǎn)2狀態(tài)變?yōu)镽AISE并插入到開(kāi)放列表中,由此原始規(guī)劃的子路徑節(jié)點(diǎn)2→節(jié)點(diǎn)7→節(jié)點(diǎn)13→節(jié)點(diǎn)20上的節(jié)點(diǎn)狀態(tài)均變?yōu)镽AISE.從開(kāi)放列表中取出節(jié)點(diǎn)2來(lái)激活模塊5,將節(jié)點(diǎn)3插入到開(kāi)放列表中.從開(kāi)放列表中取出節(jié)點(diǎn)3來(lái)激活模塊2,將節(jié)點(diǎn)2父節(jié)點(diǎn)變?yōu)楣?jié)點(diǎn)3.隨后,采用節(jié)點(diǎn)3的處理方式將節(jié)點(diǎn)7的父節(jié)點(diǎn)變?yōu)楣?jié)點(diǎn)2,將節(jié)點(diǎn)13的父節(jié)點(diǎn)變?yōu)楣?jié)點(diǎn)7,從而得到重規(guī)劃的路徑為:節(jié)點(diǎn)31→節(jié)點(diǎn)25→節(jié)點(diǎn)19→節(jié)點(diǎn)13→節(jié)點(diǎn)7→節(jié)點(diǎn)2→節(jié)點(diǎn)3→節(jié)點(diǎn)4→節(jié)點(diǎn)5→節(jié)點(diǎn)12→節(jié)點(diǎn)17→節(jié)點(diǎn)22. 圖4 基于D*算法的重規(guī)劃路徑示意圖 通過(guò)上述分析可知,D*算法運(yùn)行過(guò)程需要反復(fù)執(zhí)行開(kāi)放列表插入節(jié)點(diǎn)操作和提取最小節(jié)點(diǎn)操作,這2類(lèi)操作的運(yùn)行時(shí)間是影響D*算法搜索效率的重要因素.如圖5所示,設(shè)N為數(shù)組元素?cái)?shù)量,采用節(jié)點(diǎn)結(jié)構(gòu)體數(shù)組存儲(chǔ)自主代客泊車(chē)場(chǎng)景靜態(tài)環(huán)境地圖中的節(jié)點(diǎn)信息,并采用指針數(shù)組快速高效地操作節(jié)點(diǎn)結(jié)構(gòu)體數(shù)組元素.為了減小指針數(shù)組插入節(jié)點(diǎn)操作和提取最小節(jié)點(diǎn)操作的運(yùn)行時(shí)間,本節(jié)利用指針數(shù)組構(gòu)建優(yōu)先隊(duì)列數(shù)據(jù)結(jié)構(gòu)來(lái)實(shí)現(xiàn)D*算法中的開(kāi)放列表,使得指針數(shù)組插入節(jié)點(diǎn)操作和提取最小節(jié)點(diǎn)操作最壞情形運(yùn)行時(shí)間均為O(logN)[15]. 圖5 D*算法采用的數(shù)據(jù)結(jié)構(gòu) 局部自主代客泊車(chē)路徑規(guī)劃的任務(wù)是在全局路徑規(guī)劃的基礎(chǔ)上,綜合考慮汽車(chē)運(yùn)動(dòng)學(xué)約束和汽車(chē)機(jī)械約束,逐步規(guī)劃出可安全引導(dǎo)汽車(chē)進(jìn)入目標(biāo)泊車(chē)位的路徑.本節(jié)采用動(dòng)態(tài)窗口法和圓弧-直線(xiàn)組合方式規(guī)劃局部自主代客泊車(chē)路徑.如圖6所示,假設(shè)汽車(chē)自主代客泊車(chē)過(guò)程中所有車(chē)輪無(wú)側(cè)偏地繞同一瞬時(shí)圓心做圓周運(yùn)動(dòng),由此得到汽車(chē)運(yùn)動(dòng)學(xué)方程為[16] 圖6 汽車(chē)運(yùn)動(dòng)學(xué)模型 (3) 式中,xr和yr分別為汽車(chē)后軸中點(diǎn)橫坐標(biāo)和縱坐標(biāo);φ為汽車(chē)橫擺角;vr和δf分別為汽車(chē)后軸中點(diǎn)速度和汽車(chē)前輪轉(zhuǎn)向角;L為汽車(chē)軸距. 采用前向歐拉法將式(3)離散化為 (4) 式中,h為計(jì)算步長(zhǎng). 若汽車(chē)允許的最大加速度和最大前輪轉(zhuǎn)向角速度分別為amax和ωmax,依據(jù)k時(shí)刻汽車(chē)后軸中點(diǎn)速度預(yù)測(cè)設(shè)定值vr,p∈[Vmin,Vmax]和汽車(chē)前輪轉(zhuǎn)向角預(yù)測(cè)設(shè)定值δf,p∈[-δmax,δmax],可得k時(shí)刻汽車(chē)后軸中點(diǎn)速度和汽車(chē)前輪轉(zhuǎn)向角控制輸入為 (5) (6) 結(jié)合式(4)和式(5)、(6),可得到k時(shí)刻到k+N時(shí)刻的汽車(chē)預(yù)測(cè)軌跡.若均勻采樣汽車(chē)后軸中點(diǎn)速度可行空間[Vmin,Vmax]和汽車(chē)前輪轉(zhuǎn)向角可行空間[-δmax,δmax],可得到一簇k時(shí)刻到k+N時(shí)刻的汽車(chē)預(yù)測(cè)軌跡[17]. 本節(jié)首先融合幾何邊界碰撞檢測(cè)方法和柵格空間覆蓋枚舉方法,判斷汽車(chē)預(yù)測(cè)軌跡是否為無(wú)碰撞軌跡,再利用評(píng)價(jià)函數(shù)從無(wú)碰撞的汽車(chē)預(yù)測(cè)軌跡中篩選出最優(yōu)汽車(chē)預(yù)測(cè)軌跡,并將最優(yōu)汽車(chē)預(yù)測(cè)軌跡對(duì)應(yīng)的k時(shí)刻汽車(chē)后軸中點(diǎn)速度和汽車(chē)前輪轉(zhuǎn)向角控制輸入作為局部自主代客泊車(chē)路徑規(guī)劃的控制指令.如圖7所示,為了提高汽車(chē)碰撞檢測(cè)效率,首先采用簡(jiǎn)潔高效的幾何邊界碰撞檢測(cè)方法判斷汽車(chē)中心圓包絡(luò)是否與障礙物存在覆蓋.若汽車(chē)中心圓包絡(luò)覆蓋障礙物節(jié)點(diǎn),再通過(guò)柵格空間覆蓋枚舉方法判斷汽車(chē)占據(jù)的柵格節(jié)點(diǎn)是否為障礙物節(jié)點(diǎn),進(jìn)一步提高汽車(chē)碰撞檢測(cè)精度.其中,基于汽車(chē)后軸中點(diǎn)坐標(biāo)得到的汽車(chē)中心點(diǎn)坐標(biāo)為 圖7 汽車(chē)中心圓包絡(luò) (7) 式中,xO1(k)、yO1(k)分別為汽車(chē)中心點(diǎn)橫坐標(biāo)和縱坐標(biāo);Lc和Lr分別為汽車(chē)長(zhǎng)度和汽車(chē)后懸長(zhǎng)度;T為旋轉(zhuǎn)變換矩陣,可表示為 (8) 針對(duì)無(wú)碰撞的汽車(chē)預(yù)測(cè)軌跡,設(shè)計(jì)評(píng)價(jià)函數(shù)J(vr,p,δf,p)來(lái)篩選最優(yōu)汽車(chē)預(yù)測(cè)軌跡,即 J(vr,p,δf,p)=αJ1(vr,p,δf,p)+βJ2(vr,p,δf,p) (9) 式中,J1(vr,p,δf,p)為預(yù)測(cè)終止時(shí)刻汽車(chē)橫擺角與全局路徑目標(biāo)點(diǎn)處切線(xiàn)方向之間的角度偏差懲罰項(xiàng);J2(vr,p,δf,p)為預(yù)測(cè)終止時(shí)刻汽車(chē)預(yù)測(cè)軌跡與障礙物之間的最近距離懲罰項(xiàng);α和β分別為加權(quán)系數(shù). 在利用動(dòng)態(tài)窗口法將汽車(chē)引導(dǎo)到目標(biāo)泊車(chē)位附近后,采用圓弧-直線(xiàn)組合方式規(guī)劃垂直泊車(chē)路徑,引導(dǎo)汽車(chē)進(jìn)入目標(biāo)泊車(chē)位.如圖8所示,已知垂直泊車(chē)起始點(diǎn)G1和目標(biāo)點(diǎn)G3的坐標(biāo)分別為(xG1,yG1)和(-Wd/2,-Lf-L),Wd為垂直泊車(chē)位寬度,Lf為汽車(chē)前懸長(zhǎng)度,則基于圓弧-直線(xiàn)組合方式規(guī)劃垂向泊車(chē)路徑的具體流程如下: 圖8 垂向泊車(chē)路徑規(guī)劃 (10) (xO2,yO2)=(xG1,yG1-R1) (11) ③基于垂直泊車(chē)起始點(diǎn)G1的坐標(biāo)計(jì)算點(diǎn)G2的坐標(biāo),計(jì)算公式為 (xG2,yG2)=(xG1-R1,yG1-R1) (12) 本節(jié)在VC++6.0環(huán)境中實(shí)現(xiàn)基于D*算法和動(dòng)態(tài)窗口法的自主代客泊車(chē)路徑規(guī)劃方法,并且以圖9(a)所示的自主代客泊車(chē)場(chǎng)景靜態(tài)環(huán)境為基礎(chǔ)仿真驗(yàn)證所提方法的可行性和有效性.仿真驗(yàn)證參數(shù)設(shè)置為:h=0.1 s,Wd=2.400 m,Lc=4.155 m,L=2.405 m,Lr=0.950 m,W=1.645 m,δmax=0.53 rad,Vmin=1 m/s,Vmax=3 m/s,amax=2 m/s2,ωmax=0.53 rad/s,α=10和β=2.5,仿真地圖橫向長(zhǎng)度為79 m,縱向長(zhǎng)度為67 m,柵格節(jié)點(diǎn)間距為0.3 m,仿真結(jié)果如圖9(b)~(h)所示. (a)自主代客泊車(chē)場(chǎng)景靜態(tài)環(huán)境 在圖9(b)所示的自主代客泊車(chē)場(chǎng)景靜態(tài)環(huán)境地圖的基礎(chǔ)上,基于D*算法規(guī)劃的原始全局自主代客泊車(chē)路徑如圖9(c)所示,紅色圓圈表示路徑起始點(diǎn),紅色五角星表示路徑目標(biāo)點(diǎn).當(dāng)汽車(chē)沿著原始全局自主代客泊車(chē)路徑行駛過(guò)程中,發(fā)現(xiàn)圖9(d)所示的自主代客泊車(chē)場(chǎng)景存在動(dòng)態(tài)障礙物時(shí),則利用Dijkstra算法局部更新自主代客泊車(chē)場(chǎng)景靜態(tài)環(huán)境地圖,得到圖9(e)所示的自主代客泊車(chē)場(chǎng)景動(dòng)態(tài)環(huán)境地圖,并基于D*算法重規(guī)劃圖9(f)所示的全局自主代客泊車(chē)路徑,由于D*算法充分利用原始全局自主代客泊車(chē)路徑規(guī)劃過(guò)程中產(chǎn)生的靜態(tài)路徑場(chǎng),極大地提高了全局路徑重規(guī)劃的效率.在重規(guī)劃的全局自主代客泊車(chē)路徑基礎(chǔ)上,基于動(dòng)態(tài)窗口法和圓弧-直線(xiàn)組合方式規(guī)劃的局部自主代客泊車(chē)路徑如圖9(g)和(h)所示,該路徑滿(mǎn)足汽車(chē)運(yùn)動(dòng)學(xué)約束和汽車(chē)機(jī)械約束,并且可以安全無(wú)碰撞地引導(dǎo)汽車(chē)進(jìn)入目標(biāo)垂直泊車(chē)位. 1)利用柵格掃描算法快速準(zhǔn)確構(gòu)建出自主代客泊車(chē)場(chǎng)景的靜態(tài)環(huán)境地圖,并采用Dijkstra算法實(shí)時(shí)更新動(dòng)態(tài)障礙物影響的局部靜態(tài)環(huán)境地圖信息,降低了柵格掃描算法更新全局靜態(tài)環(huán)境地圖信息產(chǎn)生的高計(jì)算負(fù)荷. 2)利用D*算法將自主代客泊車(chē)場(chǎng)景靜態(tài)環(huán)境地圖轉(zhuǎn)化為靜態(tài)路徑場(chǎng),得到了原始全局自主代客泊車(chē)路徑,同時(shí)借助靜態(tài)路徑場(chǎng)重規(guī)劃動(dòng)態(tài)障礙物影響的全局自主代客泊車(chē)路徑,提高了動(dòng)態(tài)障礙物的處理效率. 3)綜合考慮汽車(chē)運(yùn)動(dòng)學(xué)約束和汽車(chē)機(jī)械約束,采用動(dòng)態(tài)窗口法和圓弧-直線(xiàn)組合方式規(guī)劃最優(yōu)的局部自主代客泊車(chē)路徑,并在規(guī)劃過(guò)程中融合幾何邊界碰撞檢測(cè)方法和柵格空間覆蓋枚舉方法,快速剔除不可行局部自主代客泊車(chē)路徑.仿真結(jié)果表明,所提出的自主代客泊車(chē)路徑規(guī)劃方法可以在動(dòng)態(tài)障礙物存在的自主代客泊車(chē)仿真場(chǎng)景中,安全無(wú)碰撞地引導(dǎo)汽車(chē)進(jìn)入目標(biāo)垂直泊車(chē)位.3 局部路徑規(guī)劃
4 仿真分析
5 結(jié)論