鄭福民,段 敏
(遼寧工業(yè)大學(xué) 汽車與交通工程學(xué)院, 遼寧 錦州 121000)
近年來,我國(guó)汽車市場(chǎng)不斷壯大,國(guó)內(nèi)車輛的數(shù)量急劇上升,隨之而來的是泊車環(huán)境的日益復(fù)雜化,對(duì)駕駛員泊車技術(shù)的要求愈加苛刻[1]。因此,現(xiàn)階段研究開發(fā)自動(dòng)泊車系統(tǒng)對(duì)布局智能駕駛輔助技術(shù)具有重要意義。路徑規(guī)劃是自動(dòng)泊車?yán)碚撗芯康闹匾画h(huán),目前,國(guó)內(nèi)外學(xué)者已進(jìn)行了大量的研究工作。Kim等[2]基于R-S曲線,將在停車場(chǎng)場(chǎng)景內(nèi)規(guī)劃出的48條軌跡公式應(yīng)用在實(shí)際場(chǎng)景中,對(duì)泊車路徑進(jìn)行規(guī)劃。Tazaki等[3]提出以停車場(chǎng)信息為基礎(chǔ),設(shè)計(jì)多分辨率路線圖進(jìn)行自動(dòng)泊車軌跡規(guī)劃。Das等[4]設(shè)計(jì)了一個(gè)自動(dòng)泊車輔助系統(tǒng),使車輛通過控制運(yùn)動(dòng)先探測(cè)外部空間找到泊車位再進(jìn)行泊車的路徑規(guī)劃。Su等[5]提出了一種基于遺傳算法的終點(diǎn)分區(qū)二次并行自動(dòng)停車方法對(duì)泊車軌跡進(jìn)行規(guī)劃。李紅等[6]以B樣條路徑曲線控制點(diǎn)為變量,以泊車終點(diǎn)處車身方位角最小化為目標(biāo),進(jìn)行了多個(gè)泊車工況平行泊車軌跡規(guī)劃。李想[7]同樣基于B樣條理論,針對(duì)商用車垂直泊車場(chǎng)景進(jìn)行軌跡規(guī)劃。張家旭等[8]提出一種基于回旋曲線的垂直泊車軌跡規(guī)劃方法規(guī)劃曲率連續(xù)的垂直泊車路徑。郭夜啼[9]提出了庫(kù)內(nèi)雙步調(diào)整平行泊車路徑規(guī)劃方法,并采用五階多項(xiàng)式對(duì)所設(shè)計(jì)的圓弧相切路徑進(jìn)行優(yōu)化改進(jìn)。
差分進(jìn)化算法作為一種性能優(yōu)越的智能優(yōu)化算法,被成功應(yīng)用于不同科學(xué)技術(shù)領(lǐng)域。Wu等[10]提出了一種基于差分進(jìn)化算法的混合模擬退火算法,解決分布式裝配柔性作業(yè)車間調(diào)度問題。黃良輝等[11]提出了一種基于約束規(guī)則協(xié)同差分進(jìn)化算法的建筑BIM施工進(jìn)度優(yōu)化方法。董亞明[12]使用差分進(jìn)化方法進(jìn)行模型求解,應(yīng)用于美國(guó)PJM電力市場(chǎng)的報(bào)價(jià)問題。吳文海等[13]提出一種基于改進(jìn)約束差分進(jìn)化算法的動(dòng)態(tài)航跡規(guī)劃方法,以解決三維復(fù)雜環(huán)境下無人機(jī)動(dòng)態(tài)航跡規(guī)劃問題。田野等[14]提出了一種動(dòng)態(tài)的差分進(jìn)化算法對(duì)直升機(jī)空間利用率最大化為目標(biāo)的人員裝載模型進(jìn)行求解。
本文根據(jù)實(shí)際泊車工況,對(duì)泊車路徑進(jìn)行規(guī)劃,提出了基于差分進(jìn)化算法尋優(yōu)的自動(dòng)垂直泊車路徑規(guī)劃方法。依據(jù)阿克曼轉(zhuǎn)向原理建立車輛運(yùn)動(dòng)學(xué)模型,綜合分析垂直泊車過程中的碰撞情況,建立避障約束函數(shù)。規(guī)劃了一種庫(kù)外兩段圓弧式泊車路徑,確定泊車起始區(qū)域。然后根據(jù)約束條件建立差分進(jìn)化算法的適應(yīng)度函數(shù)進(jìn)行二次尋優(yōu)。結(jié)合仿真平臺(tái)得出,差分進(jìn)化算法尋優(yōu)后的路徑在路徑長(zhǎng)度和道路橫向占用空間方面均優(yōu)于遺傳算法尋優(yōu)后的路徑。驗(yàn)證了提出的路徑規(guī)劃及尋優(yōu)方案的安全性和有效性。
泊車時(shí)以車輛后軸中心作為參考中心進(jìn)行建模,車輛運(yùn)動(dòng)學(xué)模型如圖1所示。其中,車輛后軸中心點(diǎn)N坐標(biāo)記為(xN,yN)。
圖1 泊車運(yùn)動(dòng)學(xué)模型
由于車輛自動(dòng)泊車車速一般低于5 km/h,是一個(gè)低速過程,故可以忽略泊車過程中車輪側(cè)向滑動(dòng),在研究車輛泊車運(yùn)動(dòng)中選取等效車輛后輪軸中心作為參考點(diǎn)。根據(jù)圖1,得到如下微分方程:
(1)
由式(1)得出等效后軸中心點(diǎn)的運(yùn)動(dòng)學(xué)方程,可以表示為:
(2)
式中:θ為車輛的航向角;φ為車輛的阿克曼轉(zhuǎn)角,即車輛前輪轉(zhuǎn)向角;L為車輛軸距;v為車輛后軸中心點(diǎn)的速度。
由式(2)可知,車輛后軸中心點(diǎn)坐標(biāo)以及車身航向角由前一時(shí)刻向車輛輸入的速度和前輪等效轉(zhuǎn)角決定。
此外,在進(jìn)行避障分析之前,對(duì)所用泊車環(huán)境參數(shù)及車輛參數(shù)進(jìn)行說明,如表1所示。
表1 泊車環(huán)境參數(shù)及車輛參數(shù)說明
規(guī)劃合理的無碰撞的泊車路徑是泊車成功的前提,也是研究泊車問題的基礎(chǔ)。車輛的起始位置不同也就有不同的路徑規(guī)劃方法。為降低泊車過程中車輛的執(zhí)行難度,本文中規(guī)劃的路徑都是基于車輛最小轉(zhuǎn)彎半徑Rmin實(shí)現(xiàn)的。車輛處于遠(yuǎn)離車位側(cè)車道工況時(shí),可采取單步泊車方案,如圖2所示。此時(shí),車輛受道路上下邊界、泊車位左右邊界限制[15]。為了避免碰撞,車輛需要與可能發(fā)生的碰撞點(diǎn)預(yù)留一定安全距離,從圖2可看出,由4個(gè)安全參數(shù)d1、d2、d3和d4共同決定。本文規(guī)定d1=d3=d4=0.1 m,d2=Wl/2+0.1=3.1 m。
圖2 單步泊車避障示意圖
以車位右上方點(diǎn)O為圓心建立直角坐標(biāo)系,點(diǎn)O1為最小轉(zhuǎn)彎半徑圓心。根據(jù)車輛與道路和目標(biāo)車位邊界的碰撞情況可得到約束關(guān)系:
(3)
將泊車環(huán)境參數(shù)和車輛參數(shù)代入上式可得單步泊車起始范圍(如圖3深色區(qū)域所示)。
圖3 單步泊車起始區(qū)域
車輛處于遠(yuǎn)離車位側(cè)車道工況時(shí)調(diào)整至圖3的起始泊車區(qū)域即可開始泊車。
顯而易見,上述起始泊車區(qū)域和道路邊界距離不滿足此工況,無法進(jìn)行單步泊車,此時(shí)規(guī)劃多步泊車策略。
2.2.1路徑規(guī)劃
為減少庫(kù)內(nèi)碰撞風(fēng)險(xiǎn),規(guī)劃庫(kù)外兩段圓弧式泊車路徑。如圖4所示,外部傳感器檢測(cè)到目標(biāo)車輛處于靠近車位側(cè)車道工況時(shí),將啟用多步泊車方案。車輛通過外部傳感器可獲取后軸中心點(diǎn)的起始坐標(biāo),調(diào)整至目標(biāo)起始泊車點(diǎn)N1處開始泊車,將方向盤向左打至極限位置,以最小轉(zhuǎn)彎半徑Rmin前進(jìn)至點(diǎn)N2,后軸中心點(diǎn)到達(dá)點(diǎn)N2時(shí),掛入倒擋并將方向盤快速向右打至極限位置后退至處于泊車位中心線的點(diǎn)N3,然后回正方向盤,繼續(xù)垂直后退,當(dāng)后軸中心點(diǎn)退至點(diǎn)N4時(shí)結(jié)束泊車。
圖4 庫(kù)外兩段圓弧式泊車路徑
2.2.2避障分析
同樣,多步泊車過程中,為了避免車輛與道路和車位發(fā)生碰撞,也需預(yù)留一定安全距離,如圖5所示,由5個(gè)安全參數(shù)d5、d6、d7、d8和d9共同決定。規(guī)定d5=d6=d7=d8=0.1 m,d9=Wl/2+0.1=3.1 m。
圖5 多步泊車避障示意圖
以車位右上方點(diǎn)O為圓心建立直角坐標(biāo)系,點(diǎn)O2、點(diǎn)O3為最小轉(zhuǎn)彎半徑圓心。泊車起始點(diǎn)N1的坐標(biāo)記為(xN1,yN1)。泊車拐點(diǎn)N2的坐標(biāo)記為(xN2,yN2)。泊車回正點(diǎn)N3的坐標(biāo)記為(xN3,yN3)。第1段圓弧對(duì)應(yīng)的弧度為θ1,第2段圓弧對(duì)應(yīng)的弧度為θ2。
點(diǎn)O3坐標(biāo)為:
(xO3,yO3)=(xN1,yN1+Rmin)
(4)
點(diǎn)O2坐標(biāo)為:
(5)
點(diǎn)N2坐標(biāo)為:
(6)
結(jié)合圖2和圖5易知,點(diǎn)Q為點(diǎn)N的等效點(diǎn)。由式(8)可知點(diǎn)Q坐標(biāo)為:
(7)
可以得出道路邊界對(duì)車輛的約束關(guān)系式為:
(8)
2.2.3起始位置確定
合理的起始位置決定了多步泊車的安全性和可行性,所以確定起始點(diǎn)是泊車路徑規(guī)劃中的關(guān)鍵環(huán)節(jié)。
結(jié)合上述避障約束關(guān)系式,為保證車輛結(jié)束泊車時(shí)后軸中心點(diǎn)在泊車位中線上,由幾何關(guān)系進(jìn)一步可以求得θ1的余弦:
(9)
并且有如下關(guān)系:
xN1=Rmin-Wp/2-2Rminsinθ1
(10)
所以求得泊車起始點(diǎn)軌跡為:
(11)
將車輛及車位參數(shù)代入式(8)和式(11)中可求得起始范圍如圖6深色區(qū)域所示。
圖6 多步泊車起始區(qū)域
規(guī)劃安全的路徑是車輛完成泊車的前提,然而精確、高效的泊車系統(tǒng)是以最優(yōu)化后的泊車路徑為基礎(chǔ)的。泊車路徑長(zhǎng)度和道路寬度占用都是須注意的優(yōu)化目標(biāo)??紤]到前文提及的泊車結(jié)束時(shí)車輛后軸中心停在車位中心線的約束條件過于苛刻,故放寬此條件至車輛后軸中心停在車位中心線的±0.2 m。
差分進(jìn)化算法是一種基于群體差異的啟發(fā)式隨機(jī)搜索算法。與遺傳算法相同,作為智能優(yōu)化算法,主要包括變異、交叉和選擇3個(gè)基本操作,通過隨機(jī)生成起始種群,以種群中每個(gè)個(gè)體的適應(yīng)度值為選擇標(biāo)準(zhǔn)不斷地進(jìn)化,保留優(yōu)勝的個(gè)體,引導(dǎo)搜索過程向最優(yōu)解逼近。不同之處在于,遺傳算法根據(jù)適應(yīng)值來控制單一的父代染色體雜交,在其遺傳變異后的子代中進(jìn)行選擇,淘汰方式為劣者概率淘汰,在最大化問題中,往往選擇適應(yīng)值大的個(gè)體向量。而差分進(jìn)化算法每個(gè)新個(gè)體向量是由父代差分向量生成,直接與其父代個(gè)體進(jìn)行選擇,淘汰方式為劣者絕對(duì)淘汰。顯然,與遺傳算法相比,差分進(jìn)化算法逼近效果更為顯著[16]。故本文中采用差分進(jìn)化算法對(duì)路徑進(jìn)行二次尋優(yōu),參數(shù)選取如表2所示。
表2 差分進(jìn)化算法參數(shù)
由圖7可知,差分進(jìn)化算法中隨機(jī)生成初始種群后,通過適應(yīng)度函數(shù)對(duì)種群個(gè)體進(jìn)行評(píng)價(jià)計(jì)算,再在循環(huán)中進(jìn)行種群個(gè)體的變異、交叉和選擇操作,直到滿足終止條件時(shí),跳出循環(huán)體,輸出最優(yōu)結(jié)果。
圖7 差分進(jìn)化算法流程圖
結(jié)合前文約束條件,可得到本文差分進(jìn)化算法的適應(yīng)度函數(shù):
FDE(x)=max(min(Wl-yN1-Rmin-(Wc/2-Rmin)cosθ1-
(L+La)sinθ1,xN1+Wp+
(12)
在Matlab中編寫相應(yīng)的M文件,實(shí)現(xiàn)輸入泊車起始點(diǎn)便可得到尋優(yōu)前后的泊車路徑相關(guān)信息。
為了突出所提出的差分進(jìn)化算法路徑尋優(yōu)的優(yōu)越性,本節(jié)通過選取兩邊界起始點(diǎn),給出尋優(yōu)前、遺傳算法尋優(yōu)后和差分進(jìn)化算法尋優(yōu)后的路徑仿真比較。
在解決遺傳算法中的約束優(yōu)化問題時(shí),通常使用懲罰函數(shù)法來將其轉(zhuǎn)化為無約束優(yōu)化問題。懲罰函數(shù)法主要思想為通過對(duì)目標(biāo)函數(shù)f(x)增加懲罰項(xiàng)P(x)來構(gòu)造適應(yīng)度函數(shù)F(x)。其中個(gè)體違背了約束條件的程度由懲罰函數(shù)來確定,大多采用如下懲罰項(xiàng)函數(shù)來表示個(gè)體x與第i個(gè)約束條件的距離[17]:
(13)
可知個(gè)體x與可行域邊界的距離總和為:
(14)
式中:ni(x)為第i個(gè)不等式約束,ei(x)為第i個(gè)等式約束,m為不等式約束條件的個(gè)數(shù),s為等式約束條件與不等式約束條件的個(gè)數(shù)總和。確定了懲罰函數(shù)后,結(jié)合目標(biāo)優(yōu)化函數(shù),建立相應(yīng)的最優(yōu)化求解問題自適應(yīng)函數(shù):
(15)
式中,λi為第i個(gè)約束函數(shù)的懲罰系數(shù)。
將避障約束條件和目標(biāo)函數(shù)相結(jié)合,得到本文遺傳算法的適應(yīng)度函數(shù):
FGA(x)=αS(x)+λ1max(0,Wl-yN1-Rmin-
(Wc/2-Rmin)cosθ1-(L+La)sinθ1)+
λ2max(0,xN1+Wp+2Rminsinθ1-
λ3max(0,Rmin-Wc/2-
(16)
在Matlab中編寫相應(yīng)的M文件,其中相關(guān)參數(shù)選取如表3所示。
表3 遺傳算法參數(shù)
根據(jù)建立的車輛運(yùn)動(dòng)學(xué)模型,在Matlab/Simulink中搭建仿真平臺(tái),仿真結(jié)果如圖8~圖15所示。
圖8 起始點(diǎn)(-3.466,1.015)尋優(yōu)前仿真圖
圖9 起始點(diǎn)(-3.466,1.015)遺傳算法尋優(yōu)后仿真圖
圖10 起始點(diǎn)(-3.466,1.015)差分進(jìn)化算法尋優(yōu)后仿真圖
圖11 起始點(diǎn)(-2.353,1.985)尋優(yōu)前仿真圖
圖12 起始點(diǎn)(-2.353,1.985)遺傳算法尋優(yōu)后仿真圖
圖13 起始點(diǎn)(-2.353,1.985)差分進(jìn)化算法尋優(yōu)后仿真圖
圖14 起始點(diǎn)(-3.466,1.015)尋優(yōu)前后路徑對(duì)比圖
圖15 起始點(diǎn)(-2.353,1.985)尋優(yōu)前后路徑對(duì)比圖
選取兩邊界點(diǎn)(-3.466,1.015)和(-2.353,1.985)作為目標(biāo)車輛的泊車起始點(diǎn),由圖8 ~圖13的仿真結(jié)果可知,尋優(yōu)前后目標(biāo)車輛在完成庫(kù)外兩段圓弧式垂直泊車的整個(gè)過程中,均未與車位和道路邊界發(fā)生碰撞。圖14為泊車起始點(diǎn)(-3.466,1.015)的尋優(yōu)前后路徑對(duì)比圖,可以發(fā)現(xiàn),泊車過程中,當(dāng)目標(biāo)車輛位于點(diǎn)N2時(shí),差分進(jìn)化算法路徑尋優(yōu)后,車輛左前端點(diǎn)與道路邊界的縱向偏差比尋優(yōu)前擴(kuò)大了0.465 m,比遺傳算法尋優(yōu)后擴(kuò)大了0.175 m,即經(jīng)過差分進(jìn)化算法尋優(yōu)后,車輛所需要的一側(cè)道路寬度得到了進(jìn)一步減小。泊車結(jié)束時(shí),后軸中心點(diǎn)與車位中心線的橫向偏差為0.170 m,滿足車輛后軸中心停在車位中心線±0.2 m的約束條件。二次路徑尋優(yōu)前的泊車路徑總和為11.328 m,遺傳算法尋優(yōu)后的泊車路徑總和為10.959 m,差分進(jìn)化算法尋優(yōu)后的泊車路徑總和為10.736 m,泊車路徑總和較尋優(yōu)前縮短了5.2%,較遺傳算法尋優(yōu)后縮短了2.0%。
圖15為泊車起始點(diǎn)(-2.353,1.985)的尋優(yōu)前后路徑對(duì)比圖,同樣可以發(fā)現(xiàn),泊車過程中,當(dāng)目標(biāo)車輛位于點(diǎn)N2時(shí),差分進(jìn)化算法路徑尋優(yōu)后車輛左前端點(diǎn)與道路邊界的縱向偏差比尋優(yōu)前擴(kuò)大了0.256 m,比遺傳算法尋優(yōu)后擴(kuò)大了0.169 m,即經(jīng)過差分進(jìn)化算法尋優(yōu)后,車輛所需要的一側(cè)道路寬度得到了進(jìn)一步減小。泊車結(jié)束時(shí),后軸中心點(diǎn)與車位中心線的橫向偏差為0.114 m,滿足車輛后軸中心停在車位中心線±0.2 m的約束條件。二次路徑尋優(yōu)前泊車路徑總和為11.322 m,遺傳算法尋優(yōu)后的泊車路徑總和為11.201 m,差分進(jìn)化算法尋優(yōu)后的泊車路徑總和為11.044 m,泊車路徑總和較尋優(yōu)前縮短了2.5%,較遺傳算法尋優(yōu)后縮短了1.4%。
結(jié)合車輛運(yùn)動(dòng)學(xué)約束分別建立了2種泊車工況的邊界避障約束。針對(duì)車輛處于靠近車位側(cè)車道工況規(guī)劃了庫(kù)外兩段圓弧式泊車路徑,并采用差分進(jìn)化算法進(jìn)行二次尋優(yōu)。利用Matlab/Simulink,通過與尋優(yōu)前路徑和遺傳算法尋優(yōu)后路徑進(jìn)行仿真分析對(duì)比。結(jié)果表明:此方案的泊車路徑在長(zhǎng)度和道路寬度占用方面均有改善,能使車輛安全有效地泊入車位。驗(yàn)證了所提出的泊車路徑規(guī)劃方法的高效性和可行性。