基于PanoSim仿真开发平台LDW验证以及LDP的构想
一、PanoSim簡(jiǎn)介
PanoSim是一款面向汽車(chē)自動(dòng)駕駛技術(shù)與產(chǎn)品研發(fā)的一體化仿真與測(cè)試平臺(tái),集高精度車(chē)輛動(dòng)力學(xué)模型、高逼真汽車(chē)行駛環(huán)境與交通模型、車(chē)載環(huán)境傳感器模型和豐富的測(cè)試場(chǎng)景于一體,支持與Matlab/Simulink聯(lián)合無(wú)縫仿真,提供包括離線仿真、實(shí)時(shí)硬件在環(huán)仿真(MIL/SIL/HIL/VIL)和駕駛模擬器等在內(nèi)的一體化解決方案;支持包括ADAS和自動(dòng)駕駛環(huán)境感知、決策規(guī)劃與控制執(zhí)行等在內(nèi)的算法研發(fā)與測(cè)試。PanoSim具有很強(qiáng)的開(kāi)放性與拓展性,支持定制化開(kāi)發(fā),操作簡(jiǎn)便友好,已在美國(guó)通用汽車(chē)、德國(guó)戴姆勒汽車(chē)、上汽集團(tuán)和東風(fēng)汽車(chē)等企業(yè)和科研院所廣泛使用。
PanoSim汽車(chē)智能駕駛一體化仿真測(cè)試平臺(tái)具備功能強(qiáng)大且齊全的模型庫(kù)和仿真測(cè)試工具鏈,結(jié)合靈活開(kāi)放的云端一體軟件架構(gòu),為自動(dòng)駕駛行業(yè)測(cè)試機(jī)構(gòu)和產(chǎn)業(yè)鏈正向開(kāi)發(fā)提供全流程實(shí)踐支撐。
二、LDW簡(jiǎn)介
汽車(chē)車(chē)道偏移預(yù)警系統(tǒng),LDW英文全稱為:Lane Departure Warning,縮寫(xiě)為L(zhǎng)DW。車(chē)道偏離預(yù)警LDW通過(guò)攝像頭監(jiān)測(cè)前方道路車(chē)道線,當(dāng)判斷發(fā)生駕駛員無(wú)意識(shí)狀態(tài)下、車(chē)輛偏離車(chē)道線情況,系統(tǒng)將通過(guò)聲音、振動(dòng)等方式向駕駛員發(fā)出預(yù)警。 這是繼車(chē)道偏離預(yù)警(LDW)旨在幫助駕駛員在高速公路、快速道路等類(lèi)似主干道上減少因?yàn)檐?chē)身偏移而造成各種危險(xiǎn)事故,當(dāng)車(chē)速大于或等于60km/h且道路標(biāo)線清晰可見(jiàn)時(shí),車(chē)道偏離預(yù)警功能啟用,車(chē)道偏離預(yù)警(LDW)將通過(guò)視覺(jué)、聽(tīng)覺(jué)和觸覺(jué)的方式警告駕駛員。如果轉(zhuǎn)向信號(hào)指示燈處于開(kāi)啟狀態(tài)或駕駛員有明顯的轉(zhuǎn)向意圖(如快速轉(zhuǎn)動(dòng)方向盤(pán)等),車(chē)道偏離預(yù)警(LDW)將不會(huì)發(fā)出警示。
這種系統(tǒng)的主要作用,就是當(dāng)汽車(chē)偏離原車(chē)道時(shí),能夠迅速判斷該動(dòng)作是否屬于駕駛者的無(wú)意識(shí)行為,從而在0.5秒內(nèi)作出反應(yīng)。在對(duì)駕駛者進(jìn)行明確警示的基礎(chǔ)上,提醒駕駛者盡快糾正錯(cuò)誤的駕駛行為,從而減少汽車(chē)因車(chē)道偏離而發(fā)生交通事故。
三、LDW開(kāi)發(fā)背景
據(jù)交通部統(tǒng)計(jì),約有50%的汽車(chē)交通事故是因?yàn)槠?chē)偏離正常的行駛車(chē)道引起的。究其原因,主要有駕駛員情緒不穩(wěn)定、注意力不集中或駕駛疲勞等幾種情形。另?yè)?jù)統(tǒng)計(jì),23%的汽車(chē)駕駛者一個(gè)月內(nèi)至少在轉(zhuǎn)向盤(pán)上睡著一次;66%的卡車(chē)駕駛者在駕駛過(guò)程中會(huì)有打瞌睡的經(jīng)歷;而28%的卡車(chē)駕駛者在一個(gè)月內(nèi)會(huì)有在轉(zhuǎn)向盤(pán)上睡著的經(jīng)歷。如此驚人的比例足以證明防止車(chē)道偏離的重要意義。
另外,根據(jù)美國(guó)聯(lián)邦公路局的估計(jì),美國(guó)2002年所有致命的交通事故中44%是跟車(chē)道偏離有關(guān)的,同時(shí)車(chē)道偏離也被看成車(chē)輛側(cè)翻事故的主要原因。四個(gè)駕駛員中就有一個(gè)駕駛員經(jīng)歷過(guò)車(chē)道偏離引起的傷亡事故。
這些數(shù)據(jù)表明,搭載車(chē)道偏離預(yù)警系統(tǒng)(LDW)后,由于減少了非正常的車(chē)道偏離,汽車(chē)行駛的安全性將大大提高,交通事故的發(fā)生率也將顯著下降。故此,LDW系統(tǒng)正逐漸成為汽車(chē)安全技術(shù)的重要組成部分。
四、LDW控制系統(tǒng)接口
下圖為PanoSim傳感器配置SensorBuilderUI界面,能夠直接將所需要的模塊直接拖至圖中即可搭載對(duì)應(yīng)的傳感器,并且在Simulink中完成鏈接,LDW主要需要用到車(chē)道傳感器,完成鏈接后,即可在總線中讀取相應(yīng)數(shù)據(jù)(車(chē)道線數(shù),車(chē)道線ID,左右車(chē)道線距車(chē)距離,車(chē)道線曲率以及多次項(xiàng)的系數(shù))用以擬合車(chē)道多項(xiàng)式的參數(shù),并且將其所得數(shù)據(jù)做為數(shù)組通過(guò)numpy的計(jì)算進(jìn)行運(yùn)算和判斷,從而優(yōu)化左右車(chē)道線距離車(chē)輛的距離最終用于算法的計(jì)算去做判斷。
而主要的控制信號(hào)同樣封裝于Simulink當(dāng)中,需要從總線中讀出,主要包括有throttle(油門(mén)),brake(剎車(chē)),steer(方向盤(pán)),mode(擋位),gear(齒輪)等多種控制方式,用于控制車(chē)本身的狀態(tài),并且在設(shè)計(jì)過(guò)程中考慮到部分變量需要做為全局變量用以調(diào)用,所以PanoSim在開(kāi)發(fā)時(shí)候預(yù)留了八個(gè)全局變量(GlobalVariable)用于參數(shù)調(diào)用,在LDW開(kāi)發(fā)過(guò)程中就是將第八個(gè)全局變量做為了報(bào)警信號(hào)交互的通道
五、LDW車(chē)道線擬合
MonoDetection傳感器 :Type、 Distance 、C0、 C1、 C2、 C3
車(chē)輛信息:Vx(縱向車(chē)速)、Ax(縱向加速度)、Vy(橫向車(chē)速)、Ay(橫向加速度)
disToLeft_0 (左側(cè)車(chē)道線距離)
disToRight_0 (右側(cè)車(chē)道線距離)
VX (轉(zhuǎn)向車(chē)速)
攝像頭識(shí)別,4條車(chē)道線,三條車(chē)道。2、3分別是靠近主車(chē)左、右兩側(cè)的車(chē)道線,該算法封裝于車(chē)道線傳感器內(nèi)部,用擬合多項(xiàng)式去計(jì)算出最近車(chē)道離車(chē)重心點(diǎn)的距離用于汽車(chē)偏向的判斷,當(dāng)然在行駛過(guò)程中自身的速度,姿態(tài),也是LDW開(kāi)發(fā)過(guò)程中的一個(gè)重要節(jié)點(diǎn),所以在設(shè)計(jì)過(guò)程中也需要將車(chē)身的狀態(tài)讀取下來(lái),用以下部分算法的開(kāi)發(fā)當(dāng)中去。
六、偏移速度計(jì)算
在LDW的開(kāi)發(fā)過(guò)程中,經(jīng)典的算法是通過(guò)車(chē)道線多項(xiàng)式擬合后所得到車(chē)重心距離最近車(chē)道線的左右距離做為判斷變量去做決策的,但是這樣的算法可能會(huì)略微簡(jiǎn)單。規(guī)范的LDW算法需要考慮車(chē)身姿態(tài)角(航偏角yaw),自身車(chē)速Vx以及在左右轉(zhuǎn)向時(shí)候的變化率綜合其三最終做出決策。
姿態(tài)角主要用于判斷用戶是否是主動(dòng)轉(zhuǎn)向還是無(wú)意識(shí)車(chē)頭的偏移,所以在設(shè)計(jì)時(shí)候需要將車(chē)道做為y軸,而垂直于車(chē)道向右延申的直線做為x軸通過(guò)計(jì)算,如果其車(chē)身航偏角在85-95°表示是由于駕駛員無(wú)意識(shí)的偏轉(zhuǎn),而如果航偏角不在該范圍內(nèi),意為用戶主動(dòng)控制方向盤(pán)而導(dǎo)致角度變化,該狀態(tài)下不予以觸發(fā)。
自身車(chē)速是用以判斷駕駛員駕駛過(guò)程中是否達(dá)到速度閾值,如果車(chē)速小于60km/h即為16.7m/s,在安全車(chē)速中不會(huì)觸發(fā)LDW,如果大于該車(chē)速下,完成其他判斷條件即會(huì)觸發(fā)。
轉(zhuǎn)向的變化率,在原始的LDW判斷當(dāng)中,通過(guò)去計(jì)算車(chē)身重心距離最近車(chē)道線的左右距離去做判斷,如果小于固定閾值即會(huì)觸發(fā)報(bào)警,該算法應(yīng)用可行性較高,觸發(fā)較為精確,但是在應(yīng)用中也應(yīng)該考慮到車(chē)身重心距離最近車(chē)道線的變化率,將該值用于判斷能夠更好更靈敏的表現(xiàn)出其變化的效果,并且考慮到轉(zhuǎn)向過(guò)程中重心的轉(zhuǎn)移會(huì)導(dǎo)致變化率會(huì)出現(xiàn)負(fù)值等各種情況,在設(shè)計(jì)該部分時(shí)候,需要考慮到往某一方向偏移時(shí)候,該方向車(chē)道線的偏移量會(huì)變小,但是另一方向的偏移量會(huì)變大,因?yàn)檐?chē)身呈現(xiàn)出一種圓形旋轉(zhuǎn)的姿態(tài),外向車(chē)輪的變化率必定大于內(nèi)向車(chē)輪的變化率。
在該試驗(yàn)當(dāng)中每次仿真回調(diào)周期Ts是10ms,該時(shí)間需要針對(duì)不同模型進(jìn)行改進(jìn)。其基本思想也是較為簡(jiǎn)單的通過(guò)設(shè)計(jì)disToLeft_1和disToRight_1去讀取上一回調(diào)周期的偏移量,而disToLeft_0和disToRight_0讀取該回調(diào)周期的偏移量,兩者做差除以回調(diào)周期即可得到該回調(diào)周期的變化率通過(guò)該變化率去做判斷工作。這里用到了高數(shù)中簡(jiǎn)單的導(dǎo)數(shù)定義式的方法去計(jì)算,其大致數(shù)學(xué)公式如下。
# 版本1.1 用距離車(chē)道偏移的距離去計(jì)算變化率 # 通過(guò)每次回調(diào)前后回調(diào)后的距離差除以回調(diào)時(shí)間就可以得到一個(gè)變化速度,該速度即可類(lèi)似于轉(zhuǎn)彎速度 disToLeft_1 = disToLeft_0 disToRight_1 = disToRight_0 disToLeft_0 = lane_DistanceTo[0][0] disToLeft_d=disToLeft_0-disToLeft_1 disToLeft_v=abs(disToLeft_d//Ts) disToRight_0 = lane_DistanceTo[0][1] disToRight_d=disToRight_0-disToRight_1 disToRight_v=abs(disToRight_d//Ts)設(shè)函數(shù)y=f(x)在點(diǎn)x0的某個(gè)鄰域內(nèi)有定義,當(dāng)自變量x在x0處有增量Δx,(x0+Δx)也在該鄰域內(nèi)時(shí),相應(yīng)地函數(shù)取得增量Δy=f(x0+Δx)-f(x0);如果Δy與Δx之比當(dāng)Δx→0時(shí)極限存在,則稱函數(shù)y=f(x)在點(diǎn)x0處可導(dǎo),并稱這個(gè)極限為函數(shù)y=f(x)在點(diǎn)x0處的導(dǎo)數(shù),即
或者也可以等價(jià)為
disToRight_v是個(gè)相對(duì)距離的變化率,如果汽車(chē)朝著左邊開(kāi),右邊的距離變化就大,所以該值就大,故只需要反向判斷就可以較好第得到汽車(chē)的運(yùn)動(dòng)狀態(tài),如果汽車(chē)右轉(zhuǎn)左邊的相對(duì)變化量較大,所以同一回調(diào)周期內(nèi)disToLeft_V就會(huì)較大說(shuō)明在右轉(zhuǎn)。在判斷時(shí)候只需要該變化率大于某個(gè)固定值,并且上速度VX大于60km/h即(16.6m/s),同時(shí)車(chē)身航偏角(即車(chē)頭與水平線的距離)在1.5弧度到1.7弧度內(nèi),即86°至97.4°內(nèi)表示車(chē)身是用戶無(wú)意識(shí)偏移,非主動(dòng)偏移,是駕駛員未注意到的轉(zhuǎn)向信號(hào),該時(shí)刻需要給總線發(fā)出警告信號(hào)。
通過(guò)文章簡(jiǎn)介中可以看到LDW觸發(fā)的位置調(diào)整至HUD抬頭數(shù)字顯示,并且在HUD顯示中還包括有車(chē)速,車(chē)輪轉(zhuǎn)速和擋位等多種信息非常有利于交互和體驗(yàn),并且在該場(chǎng)景下我們加入了隨機(jī)交通流,該算法集成于PanoSim內(nèi)部,可以通過(guò)在PanoEXP中UI界面中打開(kāi)或者關(guān)閉交通流也可以通過(guò)在WordlBuilder中設(shè)置合適的交通信息,包括有車(chē)輛密度,行人密度,車(chē)輛類(lèi)型,駕駛員駕駛情況等多個(gè)參數(shù)設(shè)置為靜態(tài)參數(shù),當(dāng)然在PanoEXP中也可以直接放置車(chē)輛和行人等各種干擾物做為動(dòng)態(tài)參數(shù),在圖中的行人和正前方車(chē)輛就是自己放置的。
七、LDP算法簡(jiǎn)介以及開(kāi)發(fā)
LDP算法功能定義車(chē)道偏離預(yù)防LDP通過(guò)攝像頭實(shí)時(shí)監(jiān)測(cè)車(chē)輛與車(chē)道邊線的相對(duì)位置,在判斷車(chē)輛即將發(fā)生車(chē)道偏離時(shí)控制車(chē)輛橫向運(yùn)動(dòng),輔助駕駛員將車(chē)輛保持在原車(chē)道內(nèi)行駛。其算法的開(kāi)發(fā)依賴于上述的LDW算法,當(dāng)車(chē)輛在車(chē)道內(nèi)行駛,如果有偏離出本車(chē)道的趨勢(shì)以及已經(jīng)偏出本車(chē)道一部分時(shí),LDP系統(tǒng)會(huì)觸發(fā)并使方向盤(pán)自動(dòng)響應(yīng),使車(chē)輛駛回車(chē)道中心附近。
方向盤(pán)期望轉(zhuǎn)角計(jì)算模塊方向盤(pán)期望轉(zhuǎn)角是根據(jù)車(chē)輛與當(dāng)前車(chē)道的相對(duì)位置關(guān)系得到的,具體是根據(jù)車(chē)輛阿克曼運(yùn)動(dòng)模型計(jì)算得到。車(chē)輛以圓弧曲線運(yùn)動(dòng)來(lái)確定前輪中點(diǎn)轉(zhuǎn)角的方法是選取車(chē)輛前方一定距離d處期望路徑上的坐標(biāo)點(diǎn)(x_t,y_t)。
確定前輪轉(zhuǎn)角假設(shè)以固定轉(zhuǎn)角θ進(jìn)行圓弧轉(zhuǎn)彎運(yùn)動(dòng)會(huì)剛好到達(dá)那個(gè)目標(biāo)點(diǎn),那么這個(gè)前輪轉(zhuǎn)角θ就是當(dāng)前時(shí)刻應(yīng)該發(fā)出的期望轉(zhuǎn)角,并在下一個(gè)采用時(shí)間用同樣的方法進(jìn)行更新。確定圓弧半徑R的方法為:如果車(chē)身朝向正對(duì)著預(yù)瞄點(diǎn),那么R為無(wú)窮大,期望前輪轉(zhuǎn)角為0;如果車(chē)身沒(méi)有正對(duì)著預(yù)瞄點(diǎn),則定義車(chē)輛第二軸的中點(diǎn)坐標(biāo)為(x_0,y_0),預(yù)瞄點(diǎn)坐標(biāo)為(x_t,y_t),這兩對(duì)坐標(biāo)值為已知,并且圓弧中心的坐標(biāo)(x_c,y_c)一定是在第二軸兩輪連線的延長(zhǎng)線上,那么圓心坐標(biāo)應(yīng)滿足:
上式中,k和b由第二軸兩輪的坐標(biāo)來(lái)決定。
當(dāng)?shù)玫綀A心坐標(biāo)后,圓弧半徑為:
則此時(shí)前輪中點(diǎn)期望轉(zhuǎn)角為:
將上式計(jì)算結(jié)果變成角度值,再考慮方向盤(pán)轉(zhuǎn)角與前輪轉(zhuǎn)角之間的傳動(dòng)比,即可得到方向盤(pán)的期望轉(zhuǎn)角。
在開(kāi)發(fā)過(guò)程中選擇用一個(gè)較為簡(jiǎn)單的方法去模擬LDP的算法進(jìn)行,通過(guò)在LDW的判斷過(guò)程后,加入油門(mén)和方向盤(pán)的控制,即可模擬達(dá)到LDP算法的控制功能,最終達(dá)到較好的控制效果。首先轉(zhuǎn)彎時(shí)候會(huì)有速度損失,并且在LDW的設(shè)計(jì)中速度要大于60km/h才能進(jìn)入判斷加速,所以在每次LDP控制需要對(duì)速度進(jìn)行判斷,如果速度小于68左右,即需要加速,在命令中使throttle置1,而在方向控制中如果出現(xiàn)了左偏或者右偏的情況,需要進(jìn)行右轉(zhuǎn)或者左轉(zhuǎn),就比如說(shuō)disToRight_V大于80時(shí)候說(shuō)明右邊偏移率很大,說(shuō)明在左偏,這時(shí)候即要控制方向盤(pán)右轉(zhuǎn),只需要對(duì)steer賦值然后將命令發(fā)給總線即可。
在上述的分析過(guò)程中主要介紹了LDW的原理,LDW簡(jiǎn)介,LDW應(yīng)用背景,軟硬件開(kāi)發(fā)所需,以及對(duì)應(yīng)LDW算法的驗(yàn)證,能夠一定程度上優(yōu)化該算法的實(shí)際應(yīng)用能力,而為了能夠更好順應(yīng)ADAS開(kāi)發(fā)的進(jìn)程,也對(duì)LDP算法進(jìn)行了嘗試,希望能夠在將來(lái)能夠?qū)⒏嗟乃惴ㄟM(jìn)行應(yīng)用與開(kāi)發(fā),并且非常感謝PanoSim便利的自動(dòng)駕駛仿真平臺(tái),能夠?qū)⑺O(shè)計(jì)的算法快速應(yīng)用于實(shí)地場(chǎng)景以檢驗(yàn)算法的可靠性以及可行性,對(duì)于自動(dòng)駕駛算法開(kāi)發(fā)來(lái)說(shuō)是一個(gè)舉足輕重的平臺(tái)。
總結(jié)
以上是生活随笔為你收集整理的基于PanoSim仿真开发平台LDW验证以及LDP的构想的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: ubuntu桌面版打开终端Termina
- 下一篇: 微信小程序swiper实现轮播图,可触发