丁亞林 朱云生 王 斌
(重慶郵電大學(xué)自動(dòng)化學(xué)院,中國(guó) 重慶400065)
作為車聯(lián)網(wǎng)主要組成部分,車路協(xié)同技術(shù)已經(jīng)成為當(dāng)今國(guó)際智能交通領(lǐng)域的前沿技術(shù),車路協(xié)同技術(shù)是解決道路交通安全、提高通行效率和減少交通污染的有效途徑。車路協(xié)同對(duì)車聯(lián)網(wǎng)的發(fā)展起到關(guān)鍵作用,而在車路協(xié)同系統(tǒng)開發(fā)過程中需要將各種針對(duì)其開發(fā)的算法應(yīng)用到實(shí)車測(cè)試中。但由于開發(fā)出算法的穩(wěn)定性、可靠性等存在的一系列問題以及實(shí)車測(cè)試時(shí)受到的各種客觀條件限制,比如車輛在高速路口時(shí)車流量較大,車輛在高速運(yùn)行時(shí)車速過快等問題,使得實(shí)車測(cè)試難度增大,存在很大安全隱患。大多仿真系統(tǒng)只針對(duì)某一算法原理進(jìn)行設(shè)計(jì),開放性差;沒有將虛擬現(xiàn)實(shí)技術(shù)運(yùn)用到車路協(xié)同仿真中,可視化效果差;仿真程序大都針對(duì)某一特定場(chǎng)景進(jìn)行設(shè)計(jì),不支持多場(chǎng)景仿真,通用性差等。因此,開發(fā)支持多場(chǎng)景、多算法的車路協(xié)同仿真與實(shí)驗(yàn)系統(tǒng)具有重要意義。
根據(jù)車路協(xié)同的仿真與實(shí)驗(yàn)系統(tǒng)的設(shè)計(jì)需求,該系統(tǒng)包括各個(gè)模塊間接口技術(shù),與車輛通信技術(shù)以及仿真技術(shù)以及軟件設(shè)計(jì)相關(guān)技術(shù)等。
程序之間的通信有多種方式,例如動(dòng)態(tài)鏈接庫(kù)、COM技術(shù)、API技術(shù)等。動(dòng)態(tài)鏈接庫(kù)(Dynamic Link Library,DLL)是微軟公司在微軟視窗操作系統(tǒng)中實(shí)現(xiàn)共享函數(shù)庫(kù)概念的一種方式。與DLL相比,COM技術(shù)學(xué)習(xí)難點(diǎn)大,不容易掌握,而且COM組件可以被重用,一個(gè)程序升級(jí)COM組件可能導(dǎo)致別的程序都無(wú)法使用。DLL技術(shù)具有容易掌握、擴(kuò)展了應(yīng)用程序特性、可以用多種編程語(yǔ)言、節(jié)省內(nèi)存、助于解決平臺(tái)差異等優(yōu)點(diǎn)。選取DLL技術(shù)作為車路協(xié)同仿真與實(shí)驗(yàn)系統(tǒng)與各個(gè)算法模塊間的接口技術(shù),可以降低系統(tǒng)開發(fā)技術(shù)難度,節(jié)省開發(fā)時(shí)間以及滿足系統(tǒng)開放性和通用性的特點(diǎn)。
車路協(xié)同的仿真與試驗(yàn)系統(tǒng)的通信主要是仿真與試驗(yàn)系統(tǒng)通過無(wú)線廣播的形式采集數(shù)據(jù),采用DSRC技術(shù)。車與車,車與路測(cè)設(shè)備之間用廣播通信的方式,通信協(xié)議就采用DSRC協(xié)議。DSRC即802.11p協(xié)議或WAVE(wireless access for vehicular environments)協(xié)議,DSRC通信協(xié)議依據(jù)開放系統(tǒng)互聯(lián)體系結(jié)構(gòu)(OSI)七層協(xié)議模型提出的三層的簡(jiǎn)單協(xié)議結(jié)構(gòu)。
本系統(tǒng)包括多場(chǎng)景設(shè)計(jì),因此軟件開發(fā)涉及到多文檔(Multiple Document Interface,MDI)技術(shù)和窗口之間的繼承技術(shù)。系統(tǒng)多窗口采用MDI設(shè)計(jì)模式,由一個(gè)主窗口和多個(gè)子窗口構(gòu)成,每個(gè)場(chǎng)景對(duì)應(yīng)相應(yīng)的子窗口,子窗口與子窗口之間相互獨(dú)立。每個(gè)子窗口都從父類窗口中繼承產(chǎn)生。這種設(shè)計(jì)方式減少了大量重復(fù)性工作,提高了工作效率。
本系統(tǒng)涉及了多個(gè)仿真與實(shí)驗(yàn)場(chǎng)景,每個(gè)場(chǎng)景都有自己的獨(dú)立特性,包括參數(shù)、報(bào)警方式等不同,同時(shí),每個(gè)場(chǎng)景的整體框架基本相同,都包括運(yùn)行場(chǎng)景、數(shù)據(jù)顯示和配置參數(shù)三個(gè)部分以及一個(gè)報(bào)警區(qū)和一個(gè)狀態(tài)顯示條。運(yùn)行場(chǎng)景頁(yè)面顯示車輛實(shí)時(shí)運(yùn)行狀態(tài),數(shù)據(jù)顯示頁(yè)面顯示在運(yùn)行場(chǎng)景下車輛WSU接收到的原始和解析后的數(shù)據(jù),配置參數(shù)頁(yè)面用來在仿真模式時(shí)配置車輛信息,報(bào)警區(qū)包括威脅指數(shù)顯示條、報(bào)警指示燈、報(bào)警閃爍圖標(biāo)等內(nèi)容,報(bào)警時(shí)報(bào)警指示燈閃爍,報(bào)警圖標(biāo)閃爍并發(fā)出聲音,狀態(tài)顯示條主要顯示本車和相鄰車輛的一些重要參數(shù)。
系統(tǒng)運(yùn)行模式分為仿真模式和實(shí)驗(yàn)?zāi)J?,仿真模式用來?duì)報(bào)警等算法進(jìn)行仿真、調(diào)試。用戶可以在每個(gè)場(chǎng)景的配置參數(shù)頁(yè)面中對(duì)車輛初始狀態(tài)相應(yīng)配置。仿真系統(tǒng)通過調(diào)用算法程序,手動(dòng)配置或者從外界文件中讀取參數(shù)的方式將相關(guān)數(shù)據(jù)傳輸給算法程序,由算法程序計(jì)算出威脅指數(shù),報(bào)警信息等參數(shù),并反映在仿真界面上。車輛根據(jù)配置的參數(shù)在運(yùn)行場(chǎng)景頁(yè)面的地圖上行駛。實(shí)驗(yàn)?zāi)J街饕獞?yīng)用于實(shí)際運(yùn)行系統(tǒng),獲取參數(shù)的方式與仿真模式不同:參數(shù)從車輛WSU獲得。程序?qū)SU獲取的信息進(jìn)行解析并顯示,車輛根據(jù)解析后的數(shù)據(jù)(如經(jīng)度、緯度、速度等信息)在實(shí)際地圖上行駛。多個(gè)威脅參數(shù)也是由算法程序計(jì)算得出。根據(jù)需求相關(guān)內(nèi)容,
本軟件需要搭建多個(gè)場(chǎng)景的仿真與實(shí)驗(yàn)平臺(tái),包括是十字路口、隧道和超車換道場(chǎng)景等。此外,由于實(shí)際實(shí)驗(yàn)場(chǎng)景非常復(fù)雜,為了解決這一問題,軟件設(shè)計(jì)了場(chǎng)景動(dòng)態(tài)生成功能,用戶可以根據(jù)需求自己搭建仿真場(chǎng)景,匹配相應(yīng)的仿真算法。動(dòng)態(tài)生成仿真場(chǎng)景的配置窗口的數(shù)據(jù)保存在XML文件中,每次需要生成場(chǎng)景時(shí),配置窗口的數(shù)據(jù)信息通過解析XML文件獲取。軟件架構(gòu)采用了MDI設(shè)計(jì)模式,每個(gè)仿真場(chǎng)景都是主窗口的子窗口,減少開發(fā)程序時(shí)的重復(fù)性工作,是設(shè)計(jì)更加靈活。每個(gè)場(chǎng)景都有仿真模式和實(shí)驗(yàn)?zāi)J?。?dāng)場(chǎng)景選擇了運(yùn)行模式(仿真或?qū)嶒?yàn)?zāi)J剑┖缶鸵獙?duì)參數(shù)進(jìn)行配置,參數(shù)配置方式可以有三種方式:手動(dòng)配置、從文件中導(dǎo)入以及接受無(wú)線傳輸數(shù)據(jù)包。
本系統(tǒng)將仿真模式和試驗(yàn)?zāi)J酱罱ǖ酵粋€(gè)軟件平臺(tái)上,減少很多重復(fù)性工作。系統(tǒng)在選擇場(chǎng)景之后就會(huì)選擇運(yùn)行模式為仿真模式或者是實(shí)驗(yàn)?zāi)J剑?dāng)選擇仿真模式時(shí),數(shù)據(jù)來源有兩種,一種是直接手動(dòng)配置,一種是系統(tǒng)從外界表格中讀取相關(guān)數(shù)據(jù)。實(shí)驗(yàn)?zāi)J降臄?shù)據(jù)來源是通過無(wú)線通信和車載CAN總線獲取的。明確數(shù)據(jù)來源之后就要選擇相應(yīng)的算法,軟件采用調(diào)用動(dòng)態(tài)鏈接庫(kù)的方式調(diào)用車路協(xié)同相關(guān)算法,使得算法調(diào)用非常靈活,方便算法升級(jí)。算法輸入?yún)?shù)即為配置參數(shù)時(shí)設(shè)置的。算法可以自動(dòng)選擇配置參數(shù)作為自身參數(shù)的輸入。仿真場(chǎng)景中車輛的運(yùn)行軌跡參數(shù)由配置參數(shù)確定,車輛行駛時(shí)的威脅指數(shù)和抱緊參數(shù)由威脅評(píng)估算法計(jì)算產(chǎn)生。場(chǎng)景仿真結(jié)束后,仿真算法生成的數(shù)據(jù)保存在表格中,數(shù)據(jù)保存采用OLE技術(shù),并對(duì)實(shí)驗(yàn)結(jié)果數(shù)據(jù)進(jìn)行分析,驗(yàn)證算法有效性。
軟件運(yùn)行場(chǎng)景可視化采用自己設(shè)計(jì)地圖和在線調(diào)用地圖(本軟件采用百度地圖)的方式實(shí)現(xiàn)。生成仿真場(chǎng)景后,用戶可以根據(jù)自己的需要選擇相應(yīng)的仿真模式。仿真時(shí),軟件從相應(yīng)渠道采集數(shù)據(jù),將數(shù)據(jù)輸入給仿真算法,仿真算法計(jì)算后將相應(yīng)參數(shù)輸出,軟件根據(jù)車輛的位置、速度、轉(zhuǎn)向等相關(guān)信息把相應(yīng)車輛標(biāo)記在仿真地圖上,并實(shí)時(shí)更新。并將相鄰車輛中最具威脅的車輛信息顯示在軟件下方的工具條上,在數(shù)據(jù)顯示模塊詳細(xì)的顯示了附近車輛的實(shí)時(shí)的相關(guān)信息,并將該信息保存下來,為實(shí)驗(yàn)分析提供仿真數(shù)據(jù)。
圖1 仿真軟件主界面及相應(yīng)場(chǎng)景
系統(tǒng)測(cè)試驗(yàn)證分為仿真模式測(cè)試和試驗(yàn)?zāi)J綔y(cè)試,主要包括調(diào)用算法模塊測(cè)試、通信模塊測(cè)試和整體功能測(cè)試。
軟件是在windows操作系統(tǒng)下,使用C++builder集成開發(fā)環(huán)境開發(fā)的,經(jīng)測(cè)試,仿真模式與實(shí)驗(yàn)?zāi)J降貓D調(diào)用正確,算法調(diào)用正確,數(shù)據(jù)保存正確,車輛顯示正確,報(bào)警信息顯示正確。各場(chǎng)景都能正常運(yùn)行,動(dòng)態(tài)生成場(chǎng)景運(yùn)行正確,總體實(shí)現(xiàn)了車路協(xié)同仿真與實(shí)驗(yàn)軟件開發(fā)的所有功能。本分測(cè)試如圖1所示。
大多仿真系統(tǒng)只針對(duì)某一算法原理進(jìn)行設(shè)計(jì),開放性差;沒有將虛擬現(xiàn)實(shí)技術(shù)運(yùn)用到車路協(xié)同仿真中,可視化效果差;仿真程序大都針對(duì)某一特定場(chǎng)景進(jìn)行設(shè)計(jì),不支持多場(chǎng)景仿真,通用性差等。本文針對(duì)以上問題開發(fā)了車路協(xié)同仿真與實(shí)驗(yàn)系統(tǒng)軟件,解決了多場(chǎng)景多算法仿真問題。
[1]褚彤宇,王家川,陳智宏.車聯(lián)網(wǎng)技術(shù)初探[J].交通工程,2011.
[2]董力偉.淺談中國(guó)Telematics產(chǎn)業(yè)鏈核心環(huán)節(jié)的發(fā)展選擇[J].汽車導(dǎo)航,2011.
[3]鄧志東,余士良,程振波.通用分布式虛擬現(xiàn)實(shí)軟件開發(fā)平臺(tái)的研究[J].系統(tǒng)仿真學(xué)報(bào),2008,20(12).
[4]張含,蔡伯根,上官偉,李四輝.基于多分辨率建模的車路協(xié)同系統(tǒng)仿真場(chǎng)景設(shè)計(jì)與實(shí)現(xiàn)[J].系統(tǒng)仿真技術(shù),2013,9(1).
[5]梁忠杰,思敏,李婷.COM技術(shù)和動(dòng)態(tài)鏈接庫(kù)技術(shù)的應(yīng)用研究[J].微計(jì)算機(jī)應(yīng)用,2006,27(6).