李明明 王吟松 盛鑫
星覓(上海)科技有限公司 上海市 201804
V2X技術(shù)將“人、車、路、云”等交通參與要素有機(jī)地聯(lián)系在一起,不僅可以支撐車輛獲得比單車感知更多的信息,促進(jìn)自動(dòng)駕駛技術(shù)創(chuàng)新和應(yīng)用;還有利于構(gòu)建一個(gè)智慧的交通體系,促進(jìn)汽車和交通服務(wù)的新模式新業(yè)態(tài)發(fā)展。在國家的發(fā)展戰(zhàn)略[1]、各部委的建設(shè)指南[2-3]以及產(chǎn)業(yè)的發(fā)展[4]指導(dǎo)下,V2X的各項(xiàng)標(biāo)準(zhǔn)也逐步完善并發(fā)布,V2X行業(yè)得以蓬勃發(fā)展。
隨之而來的V2X測(cè)試需求也越來越多,鑒于實(shí)車測(cè)試諸多問題,仿真測(cè)試的重要性日益凸顯。有一些學(xué)者或研究機(jī)構(gòu),提出基于PreScan或CarMaker在Simulink中搭 建車輛模型的V2X硬件在環(huán)仿真測(cè)試系統(tǒng)方案,以及根據(jù)實(shí)際測(cè)試場景選擇能夠反映車輛移動(dòng)特性的車輛移動(dòng)模型來進(jìn)行V2X的仿真測(cè)試。整體來說當(dāng)前生成V2X仿真測(cè)試所需的數(shù)據(jù)對(duì)其他軟件具有一定的依賴性,且操作復(fù)雜,所需技術(shù)門檻高,并忽略了道路的實(shí)際線形對(duì)車輛動(dòng)力學(xué)的影響;或者具有一定的局限性,僅能模擬一些軌跡下的V2X數(shù)據(jù)信息。
本文在考慮實(shí)際道路線形規(guī)律的前提下,并結(jié)合車輛動(dòng)力學(xué)特性,提出基于Bezier曲線的V2X仿真測(cè)試軌跡數(shù)據(jù)生成方法。在保證高效生成模擬車輛行駛軌跡數(shù)據(jù)的前提下,無依賴性、且符合車輛在真實(shí)環(huán)境下的運(yùn)動(dòng)狀態(tài)及特點(diǎn)。最后,通過軟件封裝及界面設(shè)計(jì),形成可視化且易操作的界面型V2X測(cè)試數(shù)據(jù)生成軟件,大大降低操作復(fù)雜度及使用的門檻,有助于V2X仿真測(cè)試的快速開展,推動(dòng)V2X的快速發(fā)展及大規(guī)模落地。
本V2X仿真測(cè)試軌跡數(shù)據(jù)生成方法是基于經(jīng)緯度點(diǎn)信息以及道路線形的特點(diǎn)進(jìn)行分段軌跡擬合,并在相鄰兩段連接處通過Bezier曲線的應(yīng)用,使得整個(gè)曲線的擬合符合車輛的實(shí)際行駛特性。再根據(jù)所需仿真的場景并根據(jù)V2X的車輛基本安全消息(Basic Safety Message,BSM)內(nèi)容進(jìn)行車輛運(yùn)行狀態(tài)及車輛操作信息的設(shè)置,最終生成可用于仿真測(cè)試V2X場景的模擬數(shù)據(jù)。本V2X仿真測(cè)試軌跡數(shù)據(jù)生成方法流程如圖1所示。
圖1 V2X仿真測(cè)試軌跡數(shù)據(jù)生成方法流程圖
本文的核心內(nèi)容在于分段軌跡擬合、Bezier的應(yīng)用確保分段軌跡連接處的平順性以及基于車輛運(yùn)動(dòng)狀態(tài)特性設(shè)計(jì)車輛行駛狀態(tài)并輸出車輛行駛狀態(tài)數(shù)據(jù)。車輛行駛軌跡點(diǎn)的獲取可通過采集實(shí)車的行駛軌跡或地圖上拾取一系列點(diǎn)實(shí)現(xiàn);經(jīng)緯度坐標(biāo)轉(zhuǎn)平面坐標(biāo),是為降低算法的復(fù)雜度做準(zhǔn)備;最終的平面坐標(biāo)轉(zhuǎn)經(jīng)緯度坐標(biāo),為滿足BSM消息中的坐標(biāo)數(shù)據(jù)格式。
對(duì)整段軌跡進(jìn)行擬合,會(huì)出現(xiàn)軌跡點(diǎn)與擬合曲線間存在較大偏差問題。本文采用分段擬合的方案解決此問題。
2.1.1 選取單次擬合點(diǎn)
從參與擬合的第一個(gè)點(diǎn)開始查找沿X和Y方向上的單向最大點(diǎn)數(shù),如圖2所示,具體實(shí)現(xiàn)如下:
圖2 單向最大點(diǎn)數(shù)示意圖
(1)散點(diǎn)A-L進(jìn)行描述單向最大點(diǎn)數(shù),如圖2所示,單向點(diǎn)數(shù)算法如下:
若N_1_x(/y)≥N_2_x(/y),則計(jì)算 滿 足N_i_x(/y)≥N_i+1_x(/y)的i最大值,i∈[2,n];
若N_1_x(/y)≤N_2_x(/y),則計(jì)算 滿 足N_i_x(/y)≤N_i+1_x(/y)的i最大值,i∈[2,n];
x(/y)方向的單向最大點(diǎn)數(shù)max_direc_x(/y)=i+1。
(2)由圖中散點(diǎn)的分布情況,可知散點(diǎn)坐標(biāo)情況如下:
A_x<B_x<C_x<D_x<E_x<F_x<G_x<H_x<I_x<J_x>K_x>L_x;
A_y<B_y<C_y<D_y>E_y<F_y<G_y<H_y<I_y<J_y<K_y>L_y;
(3)在X方向上A->J 10個(gè)點(diǎn)的坐標(biāo)值是單向變化的,故max_direc_x=10;同理,max_direc_y=4;故max_direc=max(max_direc_x,max_direc_y)=10。
2.1.2 單向最大點(diǎn)數(shù)的函數(shù)擬合
根據(jù)實(shí)際道路設(shè)計(jì)原理,設(shè)定擬合函數(shù)的階次不超過4階,選取出滿足設(shè)定偏差且點(diǎn)數(shù)最多的擬合。如圖3所示,具體實(shí)現(xiàn)如下:
圖3 單向最大點(diǎn)數(shù)擬合示意圖
(1)以2.1.1中求出的單向最大點(diǎn)數(shù)max_direc即A-J點(diǎn)進(jìn)行擬合;
(2)逐個(gè)增加點(diǎn)數(shù),進(jìn)行1-4階的軌跡擬合,如圖3中灰色線、綠色線、橙色線和藍(lán)色線分別為1、2、3和4階擬合曲線;
(3)計(jì)算擬合點(diǎn)與擬合軌跡的差值,如圖3的藍(lán)虛線,并選取最大差值≤可接受的偏差值且參與擬合點(diǎn)數(shù)最多的擬合,如圖3中橙色A-G點(diǎn)的3階擬合。
2.1.3 完成分段擬合
從上次擬合軌跡最后一個(gè)點(diǎn)的下一個(gè)點(diǎn)開始,重復(fù)2.1.1和2.1.2中的步驟,直至所有點(diǎn)均參與了擬合。如圖4所示,具體實(shí)現(xiàn)如下:
圖4 軌跡擬合起點(diǎn)選取及結(jié)束擬合條件
(1)圖4中G點(diǎn)為上段擬合結(jié)束點(diǎn),其下一個(gè)點(diǎn)H作為本段擬合的起始點(diǎn);
(2)循環(huán)小節(jié)2.1.1,即Y方向的單向最大點(diǎn)為H-L max_direc_y=5個(gè)點(diǎn);故單向最大點(diǎn)數(shù)max_direc = max_direc_y=5,且自變量坐標(biāo)為Y軸;
(3)循 環(huán) 小 節(jié)2.1.2,對(duì)H-L 5個(gè) 沿Y方向的單向變化點(diǎn)進(jìn)行軌跡擬合;
(4)直至最后一個(gè)點(diǎn)L或倒數(shù)第二個(gè)點(diǎn)K已經(jīng)參與擬合,則分段擬合完成。
應(yīng)用三階Bezier對(duì)相鄰兩段擬合軌跡的連接處進(jìn)行連接,保障相鄰兩段擬合軌跡的連續(xù)可導(dǎo)性。如圖5所示,具體實(shí)現(xiàn)如下:
圖5 三階Bezier曲線4個(gè)定點(diǎn)選取示意圖
(1)選取前段擬合曲線L1的終點(diǎn)B作為Bezier曲線的第一個(gè)定點(diǎn),后一段曲線L2的起點(diǎn)C作為Bezier曲線的第四個(gè)定點(diǎn);
(2)做輔助射線BE和FJ,BE為與L1曲線相切于B點(diǎn)的射線,方向?yàn)檐壽E的駛向;同理FJ為與L2曲線相切于C點(diǎn)的射線,方向?yàn)檐壽E的駛向;
(3)自B點(diǎn)起在BE射線的方向上選取一點(diǎn)E作為Bezier的第二個(gè)定點(diǎn);
(4)自C點(diǎn)起向FJ射線的反方向上選取一點(diǎn)F,作為Bezier的第三個(gè)定點(diǎn);
(5)根據(jù)B點(diǎn)坐標(biāo)(X_B,Y_B),E點(diǎn)坐標(biāo)(X_E,Y_E),F(xiàn)點(diǎn)坐標(biāo)(X_F,Y_F)以及C點(diǎn)坐標(biāo)(X_C,Y_C),求得Bezier曲線的方程為:
其中,t∈[0,1]
(6)計(jì)算Bezier曲線的起點(diǎn)到終點(diǎn)的弦長Lchord(直線長度)和弧長Larc,并將(弧長-弦長)/弦長的值Real_rate與可接受偏差A(yù)ccept_rate進(jìn)行比較;
(7)若Real_rate小于Accept_rate,則接受此Bezier曲線作為前后兩段軌跡的連接曲線。若Real_rate大于Accept_rate時(shí),則調(diào)整Bezier第二點(diǎn)和第三點(diǎn)位置,調(diào)整方法為逐漸縮短第一點(diǎn)和第二點(diǎn)以及第三點(diǎn)和第四點(diǎn)之間的距離。
根據(jù)設(shè)定的初始速度以及分段行駛狀態(tài),輸出以設(shè)定頻率的與實(shí)際行車數(shù)據(jù)相符的車輛坐標(biāo)(平面坐標(biāo))、速度、加速度、航向角、橫擺角速度等車輛行駛狀態(tài)數(shù)據(jù)。如圖6所示,具體實(shí)現(xiàn)如下:
圖6 車輛行駛狀態(tài)數(shù)據(jù)示意圖
(1)計(jì)算車輛行駛軌跡點(diǎn)的坐標(biāo):S=V0*t+0.5*a*t2;V=V0+a*t;
其中:V0為車輛初速度;V為當(dāng)前車速,a為車輛加速度,t為時(shí)間,S為車輛當(dāng)前累計(jì)行駛路程。
根據(jù)曲線長度計(jì)算公式,求軌跡點(diǎn)的平面坐標(biāo)(bx,by);
(2)如圖6中假設(shè)點(diǎn)a(綠色點(diǎn))為上一幀軌跡點(diǎn)的位置,b(紅色點(diǎn))為當(dāng)前軌跡點(diǎn)的位置,則當(dāng)前位置的行駛狀態(tài)參數(shù):
航向角為:γ(黃色虛線所示角度);橫擺角速度為:φ=(β-α)/t;
α為過a點(diǎn)的切線與X軸的夾角,β為過b點(diǎn)的切線與X軸的夾角;
(3)計(jì)算所有軌跡點(diǎn)上的車輛行駛狀態(tài)數(shù)據(jù),包括但不限于以下內(nèi)容:
點(diǎn)平面坐標(biāo) 航向角 速度 加速度 橫擺角速度 ……
將上表中數(shù)據(jù)的平面坐標(biāo)轉(zhuǎn)化為經(jīng)緯度坐標(biāo),并結(jié)合其他車輛行駛狀態(tài)數(shù)據(jù)經(jīng)過編碼生成用于仿真測(cè)試V2X場景的BSM模擬信息。
根據(jù)上述的V2X仿真測(cè)試軌跡數(shù)據(jù)生成方法實(shí)現(xiàn)車輛BSM數(shù)據(jù)制作,并按時(shí)序生成BSM數(shù)據(jù)文件,供V2X仿真測(cè)試使用。如圖7所示,具體操作流程如下:
圖7 V2X仿真測(cè)試軌跡數(shù)據(jù)生成系統(tǒng)流程圖
(1)選擇軌跡生成方式。即車輛行駛路徑點(diǎn),支持三種方式:選擇現(xiàn)有樣本軌跡數(shù)據(jù)、導(dǎo)入實(shí)車軌跡數(shù)據(jù)以及手動(dòng)繪制行車軌跡。
(2)生成軌跡信息。此階段包含兩部分內(nèi)容:顯示軌跡點(diǎn)和擬合軌跡;因此此部分是核心算法的實(shí)現(xiàn)內(nèi)容。圖8為生成的軌跡信息示例。
圖8 生成軌跡信息
(3)添加車輛信息。支持兩種方式:從已有車輛庫中直接選擇,或新增車輛信息。新增車輛信息時(shí),需編輯車輛的基本信息(車輛的屬性-HV/RV、車輛ID、車輛匹配的軌跡、車輛類型、車輛尺寸、車輛上OBU天線的位置等信息)。
(4)編輯行車數(shù)據(jù)。首先,選定一個(gè)已經(jīng)添加的車輛;其次,設(shè)計(jì)此車輛的分段行駛路段;最后,逐條編輯軌跡分段行車數(shù)據(jù)(上下游節(jié)點(diǎn)車速、下游節(jié)點(diǎn)持續(xù)靜止時(shí)長、加減速狀態(tài)、制動(dòng)狀態(tài)、車燈狀態(tài)、特殊狀態(tài)等)。
(5)導(dǎo)出行車軌跡數(shù)據(jù)。用戶根據(jù)測(cè)試需求,選擇“導(dǎo)出車輛”以及“數(shù)據(jù)頻率”,即可導(dǎo)出目標(biāo)車輛的行車軌跡數(shù)據(jù)。
本文提出一種基于Bezier曲線的V2X仿真測(cè)試軌跡數(shù)據(jù)生成方法,解決實(shí)車測(cè)試過程中存在操作復(fù)雜、危險(xiǎn)性高、高成本、效率低以及難以復(fù)現(xiàn)等問題。該系統(tǒng)不依賴交通仿真軟件,采用自研的車輛軌跡擬合算法,解決軌跡擬合過程中的偏差偏離較大、分段擬合不連續(xù)等問題,以及生成滿足車輛行駛動(dòng)力學(xué)的車輛行駛軌跡數(shù)據(jù)。
在本文研究的V2X仿真測(cè)試軌跡數(shù)據(jù)生成方法中,已經(jīng)實(shí)現(xiàn)生成模擬的V2X BSM消息,后續(xù)還將繼續(xù)實(shí)現(xiàn)生成V2X國標(biāo)一階段應(yīng)用場景里面提到的RSM、RSI、SPAT、MAP等其他V2X消息類型,以及生成V2X國標(biāo)二階段應(yīng)用場景里面提到的所有V2X消息類型。