滕政哲 林士飏 王界欽 張?zhí)祉?穆虎
(山東理工大學(xué),淄博 255022)
目前,國(guó)內(nèi)對(duì)于車(chē)輛遠(yuǎn)程駕駛技術(shù)的研究大多集中在遠(yuǎn)程獲取車(chē)輛的信息以及對(duì)簡(jiǎn)單電器設(shè)備的控制,包括遠(yuǎn)程控制車(chē)輛起動(dòng)、打開(kāi)和關(guān)閉車(chē)門(mén)、車(chē)輛定位等[1]。白云偉等人設(shè)計(jì)和開(kāi)發(fā)出了一款遠(yuǎn)程控制車(chē)輛的APP,采用XMPP通信協(xié)議進(jìn)行手機(jī)端和車(chē)載系統(tǒng)的通信[2]。曹正策等人提出基于車(chē)聯(lián)網(wǎng)技術(shù)的分時(shí)租賃系統(tǒng)方案和分時(shí)租賃控制系統(tǒng)方案[3]。李治民等人提出了一種基于硬件在環(huán)半實(shí)物仿真平臺(tái)的遠(yuǎn)程控制系統(tǒng)的測(cè)試方法[4]。
智能網(wǎng)聯(lián)汽車(chē)研究目前主要集中在車(chē)輛的換道、超車(chē)、避碰,以及交叉路口附近車(chē)輛的協(xié)同控制。Nie等人提出了一種分布式自動(dòng)駕駛車(chē)輛換道決策框架[5]。Michael Düring等人提出了自動(dòng)駕駛汽車(chē)協(xié)同運(yùn)動(dòng)規(guī)劃的方法[6]。Huang等人提出了一種新型混合控制系統(tǒng)[7],利用人工勢(shì)場(chǎng)的方法實(shí)現(xiàn)對(duì)車(chē)輛路徑的規(guī)劃和運(yùn)動(dòng)控制。然而,對(duì)于窄路場(chǎng)景下車(chē)輛的協(xié)同運(yùn)動(dòng)卻鮮有研究,可以預(yù)見(jiàn),若無(wú)相應(yīng)機(jī)制,當(dāng)兩對(duì)向行駛的無(wú)人駕駛車(chē)輛進(jìn)入窄路段,可能會(huì)觸發(fā)前向避碰機(jī)制,使車(chē)輛停于窄路導(dǎo)致會(huì)車(chē)死結(jié)情況的發(fā)生。
為滿足窄路場(chǎng)景下車(chē)輛協(xié)調(diào)通行需求,本文提出一種基于Android的車(chē)輛遠(yuǎn)程駕駛系統(tǒng),通過(guò)Socket通信、藍(lán)牙Socket通信、九針串口連接的方式建立從控制端到汽車(chē)CAN 網(wǎng)絡(luò)的連接,使用戶通過(guò)控制界面實(shí)現(xiàn)對(duì)車(chē)輛的加速、制動(dòng)、轉(zhuǎn)向的遠(yuǎn)程控制,使得窄路兩側(cè)車(chē)輛形成集群,以有效避免會(huì)車(chē)死結(jié)的發(fā)生,并對(duì)該系統(tǒng)集成于云端對(duì)于窄路場(chǎng)景下車(chē)輛通行效率的影響進(jìn)行研究。
電腦端的控制程序以Eclipse 2019 作為開(kāi)發(fā)平臺(tái),控制界面(Server)通過(guò)Socket通信的方式實(shí)現(xiàn)與手機(jī)端(Client)之間信息的傳遞。本文選用JDK11作為編譯和執(zhí)行Java 程序的Java 開(kāi)發(fā)環(huán)境,同時(shí)引入JavaFX11 作為外部依賴Java集開(kāi)發(fā)控制界面。
手機(jī)端的控制程序以Android Studio 作為開(kāi)發(fā)平臺(tái),利用藍(lán)牙Socket 的通信方式實(shí)現(xiàn)手機(jī)與GCAN-203之間通信的連接,手機(jī)端的應(yīng)用程序?qū)碾娔X端獲得的控制字節(jié)流轉(zhuǎn)傳給GCAN-203。
操作人員通過(guò)電腦端的控制界面發(fā)送控制車(chē)輛運(yùn)動(dòng)的指令給手機(jī)端APP,指令是由13 個(gè)字節(jié)組成的數(shù)據(jù)幀。手機(jī)端的APP 獲取電腦端控制指令后將其轉(zhuǎn)傳給設(shè)備GCAN-203,GCAN-203 將該數(shù)據(jù)幀通過(guò)DB9 連接器傳送到汽車(chē)的CAN 總線,從而實(shí)現(xiàn)對(duì)車(chē)輛運(yùn)動(dòng)的控制。系統(tǒng)總體設(shè)計(jì)方案如圖1所示。
圖1 遠(yuǎn)程駕駛系統(tǒng)總體方案
該系統(tǒng)硬件由筆記本電腦、Android 手機(jī)、設(shè)備GCAN-203、汽車(chē)4 個(gè)部分組成,其中,筆記本電腦選用惠普星14,搭載Windows 10系統(tǒng),擁有16 GB運(yùn)行內(nèi)存,使用Intel Core i7處理器,滿足電腦端Android控制主程序的需求。Android 手機(jī)選用華為Mate20x 5G 版手機(jī),其操作系統(tǒng)為基于Android 9的EMUI 9.0,搭載麒麟980處理器,擁有8 GB 運(yùn)行內(nèi)存,可以使用5G 網(wǎng)絡(luò)。GCAN-203 為沈陽(yáng)廣成科技有限公司的藍(lán)牙轉(zhuǎn)CAN 總線設(shè)備。汽車(chē)選用哈弗H7,該車(chē)輛經(jīng)改造,后備箱內(nèi)搭載dSPACE 公司的MicroAutoBox,有外接汽車(chē)CAN 總線的DB9連接器,以及為后備箱設(shè)備供電的超威12 V、60 A·h 的汽車(chē)蓄電池,轉(zhuǎn)向盤(pán)下加裝步進(jìn)電機(jī)用于接收來(lái)自CAN總線的報(bào)文后進(jìn)行轉(zhuǎn)向動(dòng)作。設(shè)備GCAN-203 是將電腦端的控制指令發(fā)送到汽車(chē)CAN 總線上的關(guān)鍵硬件,如圖2所示。
圖2 GCAN-203設(shè)備
目前,GCAN-203 已廣泛應(yīng)用于現(xiàn)場(chǎng)總線實(shí)驗(yàn)室、智能小區(qū)、工業(yè)控制、CAN 總線網(wǎng)絡(luò)領(lǐng)域中的數(shù)據(jù)處理、CAN總線網(wǎng)絡(luò)控制節(jié)點(diǎn)的數(shù)據(jù)采集等方面,該設(shè)備具有CAN-Bus通信波特率在5 Kb/s~1 Mb/s間任意可編程、使用9~24 V 直流供電、工作溫度范圍為-40~85 ℃、最高數(shù)據(jù)流量為300 幀/s 等性能特點(diǎn),其6 個(gè)引腳的定義如表1所示。
表1 GCAN-203各引腳定義
為了保證設(shè)備GCAN-203 與汽車(chē)CAN 總線在車(chē)輛行駛過(guò)程中連接的穩(wěn)定性,消除物理連接不良導(dǎo)致數(shù)據(jù)發(fā)送失敗的可能性,制作九針串口的DB9連接器(公頭)與連接汽車(chē)CAN 總線的九針串口母頭相連。為使設(shè)備GCAN-203正常與汽車(chē)上的CAN 總線進(jìn)行控制信息傳遞,需要將GCAN-203 的4 號(hào)引腳(CAN_L)與DB9連接器的2 號(hào)引腳(CAN_L)以及GCAN-203 的6 號(hào)引腳(CAN_H)與DB9 連接器的7 號(hào)引腳(CAN_H)用導(dǎo)線連接。
3.2.1 電腦端軟件的設(shè)計(jì)
本文將電腦端作為車(chē)輛運(yùn)動(dòng)的控制終端,利用Eclipse 開(kāi)發(fā)平臺(tái),引入JDK11 以及JavaFX11 作為開(kāi)發(fā)環(huán)境,進(jìn)行程序的開(kāi)發(fā),該程序主要完成控制界面的設(shè)計(jì)、Socket 通信架構(gòu)的搭建(服務(wù)端)、按鈕點(diǎn)擊事件的構(gòu)建3個(gè)部分。
3.2.1.1 控制界面的設(shè)計(jì)
電腦端控制界面設(shè)計(jì)了上、下、左、右4 個(gè)鍵位,分別對(duì)應(yīng)車(chē)輛的加速、制動(dòng)、左轉(zhuǎn)和右轉(zhuǎn)控制。此控制界面的開(kāi)發(fā)用到了JavaFX11 中一些jar 包中的方法,所以在Java編程的初始階段需要導(dǎo)入javafx.*.*包,保證界面設(shè)計(jì)調(diào)用方法能夠被正確使用。
3.2.1.2 Socket通信架構(gòu)搭建
Socket 是一種相對(duì)底層的網(wǎng)絡(luò)編程方式,是支持TCP/IP 協(xié)議的網(wǎng)絡(luò)通信中的基本操作單元。在TCP/IP協(xié)議的5層模型中,Socket位于應(yīng)用層和傳輸層之間,是抽象層。Socket的通信模型如圖3所示。
圖3 Socket通信模型
由該通信模型可以明確電腦端(Server)與手機(jī)端(Client)建立Socket 通信的編程流程。Server 服務(wù)端初始化時(shí)設(shè)置一個(gè)端口,本文選用端口55533,然后建立一個(gè)ServerSocket 綁定該端口號(hào)并對(duì)該端口進(jìn)行監(jiān)聽(tīng),之后調(diào)用accept()方法為ServerSocket 接收請(qǐng)求并返回一個(gè)Socket對(duì)象??蛻舳顺跏蓟瘯r(shí)需設(shè)置端口和IP,并建立一個(gè)Socket 綁定該端口和IP。本文雙方建立連接后用getInputStream()和getOutputStream()的方法獲得輸入字節(jié)流和輸出字節(jié)流,并建立緩沖區(qū)對(duì)數(shù)據(jù)進(jìn)行讀取。由于本文使用了Socket通信以及getInputStream()和getOutputStream()等方法,需要在程序編寫(xiě)的初始階段導(dǎo) 入 java.net.Socket、java.net.ServerSocket、java.io.OutputStream、java.io.InputStream等jar包。
3.2.1.3 按鈕點(diǎn)擊事件的構(gòu)建
完成控制界面的構(gòu)建以及Socket 通信架構(gòu)搭建后,為了在點(diǎn)擊按鈕時(shí)能夠傳遞相應(yīng)的控制指令,需要對(duì)按鈕點(diǎn)擊事件進(jìn)行設(shè)計(jì),事件構(gòu)建流程如圖4所示。
圖4 點(diǎn)擊事件流程
其中,計(jì)算機(jī)時(shí)鐘內(nèi)時(shí)間的獲取使用Calendar.getInstance() 中 的get(Calendar.MINUTE) 方 法 以 及get(Calendar.SECOND)方法。按鍵按下與抬起時(shí)間的差值作為汽車(chē)加速、制動(dòng)及轉(zhuǎn)向動(dòng)作幅度的依據(jù),將取得的數(shù)值轉(zhuǎn)化為對(duì)應(yīng)的16進(jìn)制數(shù)寫(xiě)入Socket通信模塊中服務(wù)端的輸入字節(jié)流,按鍵抬起時(shí)將對(duì)應(yīng)的控制指令從電腦端發(fā)送到手機(jī)端。
3.2.2 手機(jī)端軟件的設(shè)計(jì)
本文將手機(jī)作為控制信息從電腦發(fā)送到GCAN-203的中間設(shè)備,其作為客戶端接收來(lái)自電腦服務(wù)端的字節(jié)流,同時(shí)將其通過(guò)藍(lán)牙Socket 進(jìn)行轉(zhuǎn)傳。手機(jī)端Android 主程序以Android Studio 為開(kāi)發(fā)平臺(tái),該程序主要完成手機(jī)APP 主界面的設(shè)計(jì)、藍(lán)牙Socket 通信的構(gòu)建、Socket通信客戶端程序的編寫(xiě)3個(gè)部分。
3.2.2.1 手機(jī)APP主界面設(shè)計(jì)
手機(jī)端主界面運(yùn)用layout 中的activity_main.xml 文件設(shè)計(jì)Button 控件和TextView 控件。Button 控件完成對(duì)藍(lán)牙的搜索連接任務(wù),向Server服務(wù)端發(fā)送連接請(qǐng)求任務(wù),TextView控件完成對(duì)來(lái)自客戶端的控制指令的顯示。手機(jī)端主界面如圖5所示。
圖5 手機(jī)端主界面
3.2.2.2 藍(lán)牙Socket通信的構(gòu)建
為實(shí)現(xiàn)手機(jī)APP 與設(shè)備GCAN-203 之間的藍(lán)牙Socket 通信,需在配置文件中添加相關(guān)權(quán)限,包括允許程序連接到已配對(duì)的藍(lán)牙設(shè)備、允許程序發(fā)現(xiàn)和配對(duì)藍(lán)牙設(shè)備、允許程序打開(kāi)網(wǎng)絡(luò)套接字。手機(jī)端藍(lán)牙Socket通信的程序設(shè)計(jì)流程如圖6所示。
圖6 藍(lán)牙Socket程序設(shè)計(jì)流程
通過(guò)Socket 通信及藍(lán)牙Socket 的方式傳送的控制信息(報(bào)文),需遵循車(chē)輛的控制接口協(xié)議以及GCAN-203使用的CAN2.0B協(xié)議幀格式,才能保證傳輸?shù)膱?bào)文被各節(jié)點(diǎn)正確接收。CAN2.0B 協(xié)議幀格式?jīng)Q定了一條CAN 幀包含13 個(gè)字節(jié),其中包括1 個(gè)字節(jié)的幀信息,4個(gè)字節(jié)的幀ID以及8個(gè)字節(jié)的幀數(shù)據(jù),幀信息指明了該幀的幀類型和數(shù)據(jù)長(zhǎng)度。所使用的車(chē)輛的控制接口協(xié)議決定了本文中幀信息設(shè)為0X08,表示該幀為數(shù)據(jù)幀和標(biāo)準(zhǔn)幀,數(shù)據(jù)長(zhǎng)度為8個(gè)字節(jié);幀ID為0X238表明該幀用于主動(dòng)加速、減速以及轉(zhuǎn)向請(qǐng)求;波特率為500 Kb/s,同時(shí)使用Motorola 的編碼格式。車(chē)輛的控制接口協(xié)議如表2所示。
表2 車(chē)輛控制接口協(xié)議
為了保證傳輸?shù)狡?chē)CAN 總線上數(shù)據(jù)的準(zhǔn)確性,排除因數(shù)據(jù)幀錯(cuò)誤導(dǎo)致相應(yīng)節(jié)點(diǎn)無(wú)法接收而造成的車(chē)輛遠(yuǎn)程控制失敗,需要在實(shí)車(chē)測(cè)試前進(jìn)行通信測(cè)試。具體方法是通過(guò)12 V 的蓄電池為設(shè)備G-CAN203 供電,使其與USB-CAN 適配器通過(guò)DB9 連接器相連,USBCAN適配器再通過(guò)USB接口與電腦連接。
USB-CAN 適配器可以作為一個(gè)標(biāo)準(zhǔn)的CAN 節(jié)點(diǎn),帶有USB2.0 接口和2 路CAN 接口,其與電腦連接后可通過(guò)USB-CAN Tool 對(duì)接收到的數(shù)據(jù)進(jìn)行解析,判斷從電腦端發(fā)送的數(shù)據(jù)是否正確,測(cè)試軟件如圖7所示。
圖7 通信測(cè)試軟件
由圖7所示軟件,可獲取從電腦端控制界面發(fā)送的數(shù)據(jù),包括ID 號(hào)、幀類型、幀格式、長(zhǎng)度,由此判斷通信鏈路可行性。
理論上,當(dāng)設(shè)備GCAN-203 與汽車(chē)的CAN 總線連接后,電腦端的控制界面就可以向汽車(chē)發(fā)送控制信息,本文將設(shè)備GCAN-203置于汽車(chē)后備箱,使用DB9連接器將其與汽車(chē)CAN總線的外接DB9連接器CAN1相連,從電腦端發(fā)送控制信息進(jìn)行驗(yàn)證,如圖8所示。
圖8 車(chē)輛設(shè)備
電腦端控制界面點(diǎn)擊“上”鍵后,電腦端通過(guò)通信鏈路向汽車(chē)發(fā)送0x080000023844000000**000000 數(shù)據(jù)幀,其中**代表1 個(gè)字節(jié)的目標(biāo)驅(qū)動(dòng)加速度;點(diǎn)擊“下”按鍵后,向汽車(chē)發(fā)送數(shù)據(jù)幀0x08000002384800000000##0000,其中##代表1 個(gè)字節(jié)的目標(biāo)制動(dòng)減速度;點(diǎn)擊“左”“右”按鍵后,向汽車(chē)發(fā)送數(shù)據(jù)幀0x0800000238420000000000XXXX,其中XXXX代表2個(gè)字節(jié)的目標(biāo)轉(zhuǎn)向盤(pán)轉(zhuǎn)角,向左轉(zhuǎn)向數(shù)值范圍為0~32 767,向右轉(zhuǎn)向數(shù)值范圍為32 768~65 535。通過(guò)電腦端控制車(chē)輛的加速、制動(dòng)、轉(zhuǎn)向動(dòng)作,可實(shí)現(xiàn)對(duì)車(chē)輛的遠(yuǎn)程控制。
文獻(xiàn)[8]提出了合作速度協(xié)調(diào)(Cooperative Speed Harmonization,CSH)的方法,證明了2 條不同道路的車(chē)輛交替通過(guò)交叉口的可行性。為了做到這一點(diǎn),CSH將同一道路車(chē)輛分組,使其像波浪一樣向交叉口移動(dòng),對(duì)于2 條交匯的道路,CSH 分別運(yùn)用不同的波長(zhǎng),以集中控制的方法使車(chē)輛接近最近的虛擬波,不同道路上的波浪會(huì)在不同的時(shí)間輪流到達(dá)交叉口。但是這種方法只適用于到達(dá)交叉口后車(chē)輛同向行駛的情況,對(duì)于窄路對(duì)向行駛的車(chē)輛不完全適用。因此,本文只借鑒其方法,使車(chē)輛到達(dá)到窄路段前形成集群,車(chē)輛集群過(guò)程如圖9所示。
圖9 車(chē)輛集群過(guò)程示意
由圖9 可以看出,道路左側(cè)的車(chē)輛由虛線波引導(dǎo),道路右側(cè)的車(chē)輛由實(shí)線波引導(dǎo),車(chē)輛會(huì)通過(guò)對(duì)自身速度的調(diào)整使其向最接近的虛擬波靠攏,同一運(yùn)行方向的車(chē)輛在道路上形成分組集群。如圖10 所示,以道路右側(cè)被實(shí)線波引導(dǎo)的車(chē)輛B為例,車(chē)輛運(yùn)行速度由以下過(guò)程獲得:
圖10 車(chē)速取得過(guò)程示意
首先取得窄路段中心位置與車(chē)輛前波間的距離dw:
式中,lw為波長(zhǎng);dt為目前車(chē)輛與窄路中心的距離;vw為虛擬波向窄路端行進(jìn)的速度;t為系統(tǒng)時(shí)間。
為了使窄路兩側(cè)的車(chē)輛到達(dá)窄路的時(shí)間不同,窄路左側(cè)的車(chē)輛增加1/2波長(zhǎng)。然后計(jì)算車(chē)輛與其前波的距離et:
最后,車(chē)輛的速度可以估算為:
式中,P、I、D、T為控制器參數(shù);vmin為車(chē)輛運(yùn)行的最小速度;Δet為et的差值;最大運(yùn)算符可使差值et過(guò)低時(shí)有合適的控制器輸出速度。
進(jìn)入窄路段前,車(chē)輛會(huì)根據(jù)上述速度控制方式形成集群,當(dāng)車(chē)輛將要進(jìn)入窄路段,中止該速度控制方式,改由以下方式對(duì)車(chē)輛進(jìn)行速度的控制:
車(chē)輛進(jìn)入窄路段時(shí)會(huì)提前得到對(duì)向集群的信息以及道路信息,如集群內(nèi)車(chē)輛運(yùn)行速度、集群的規(guī)模、集群內(nèi)車(chē)輛的間隙、窄路段的長(zhǎng)度。車(chē)輛依據(jù)當(dāng)前獲取的信息,合理規(guī)劃進(jìn)入窄路的行車(chē)速度,其過(guò)程見(jiàn)圖10。
圖11所示為窄路通行過(guò)程。窄路左側(cè)集群中的主車(chē)為V1,長(zhǎng)度為L(zhǎng)V1,其后的跟隨車(chē)輛為V2,V1 與V2 的距離為L(zhǎng)g1,窄路端的長(zhǎng)度為L(zhǎng)W,目標(biāo)車(chē)輛與窄路段的距離為L(zhǎng)r。由此可以得出:
圖11 窄路通行過(guò)程示意
式中,LC為集群的長(zhǎng)度;n為窄路一側(cè)車(chē)輛的數(shù)量。
由此可得:
式中,v為集群運(yùn)行的速度;LC+LW為集群通過(guò)窄路行駛的總長(zhǎng)度。
進(jìn)而得到目標(biāo)車(chē)輛的建議速度vs:
窄路右側(cè)的目標(biāo)車(chē)以建議速度vs運(yùn)行時(shí),理論上可以在主車(chē)通過(guò)窄路后,不停車(chē)通過(guò)窄路段。
本文打通了車(chē)輛遠(yuǎn)程控制的通信鏈路,在可期的未來(lái)將系統(tǒng)完善后置于云端,可以遠(yuǎn)程控制區(qū)域內(nèi)車(chē)輛的聯(lián)合運(yùn)動(dòng)。本文針對(duì)窄路場(chǎng)景,云端收集該區(qū)域內(nèi)的道路環(huán)境信息后對(duì)車(chē)輛遠(yuǎn)程控制,理論上可以使行車(chē)更加高效。窄路場(chǎng)景如圖12所示。
圖12 窄路場(chǎng)景
為了驗(yàn)證車(chē)輛在窄路處的通行效率,使用SUMO搭建窄路場(chǎng)景進(jìn)行仿真。利用NETEDIT對(duì)仿真所需路網(wǎng)文件(net.xml)、車(chē)流文件(rou.xml)以及附加文件進(jìn)行設(shè)計(jì)。其中路網(wǎng)文件中構(gòu)筑長(zhǎng)度為60 m 的狹窄路段,車(chē)流文件設(shè)計(jì)車(chē)輛的數(shù)量、行駛路徑以及車(chē)輛本身的屬性,附加文件中設(shè)置瞬時(shí)感應(yīng)線圈以記錄車(chē)輛進(jìn)入和離開(kāi)窄路的時(shí)間。本文共設(shè)計(jì)了3組對(duì)照仿真工況,分別使50輛、75輛、100輛汽車(chē)從窄路段通過(guò),每組進(jìn)行2次仿真,其中一次使車(chē)輛在遠(yuǎn)程駕駛下通過(guò)窄路,另一次使車(chē)輛依據(jù)自身的駕駛模型自由通過(guò)窄路段用來(lái)模擬人工駕駛。
通過(guò)SUMO-GUI 運(yùn)行搭建的仿真場(chǎng)景獲得車(chē)輛運(yùn)行整體情況以及各探測(cè)器的取得的結(jié)果,對(duì)取得的數(shù)據(jù)進(jìn)行處理,得到了3組通過(guò)窄路段汽車(chē)的數(shù)量與時(shí)間的關(guān)系以及車(chē)輛整個(gè)運(yùn)行過(guò)程的平均速度與時(shí)間的關(guān)系,分別如圖13和圖14所示。
圖13 汽車(chē)通過(guò)窄路段數(shù)量與時(shí)間的關(guān)系
圖14 汽車(chē)平均行駛速度與時(shí)間的關(guān)系
由圖13 可知,在人工駕駛的方式下,3 種不同數(shù)量的汽車(chē)全部通過(guò)窄路段所需時(shí)間均大于遠(yuǎn)程控制方式所需時(shí)間,同時(shí)可以看出,遠(yuǎn)程控制的方式汽車(chē)通行過(guò)程較為規(guī)律,因此在遠(yuǎn)程控制下汽車(chē)的通行效率更高。在遠(yuǎn)程控制下,出現(xiàn)75 輛汽車(chē)通過(guò)窄路所需時(shí)間大于100 輛汽車(chē)通過(guò)窄路所需時(shí)間的情況。這與仿真軟件SUMO中車(chē)輛出現(xiàn)的時(shí)間點(diǎn)相關(guān),由于車(chē)輛出現(xiàn)的時(shí)間點(diǎn)隨機(jī),若某一時(shí)段內(nèi)車(chē)輛出現(xiàn)較少,按照該機(jī)制對(duì)車(chē)輛速度進(jìn)行控制,形成的集群內(nèi)車(chē)輛的數(shù)量將相對(duì)較少,因此車(chē)輛全部出現(xiàn)時(shí)將形成更多的集群,使得交替通過(guò)窄路的次數(shù)增多,通過(guò)窄路所需的時(shí)間增加,這與現(xiàn)實(shí)中路口處車(chē)流密度實(shí)時(shí)變化情況相符。
由圖14可知,在人工駕駛的方式下,汽車(chē)在整個(gè)運(yùn)行過(guò)程中速度的波動(dòng)較大,出現(xiàn)過(guò)停車(chē)的狀況,其運(yùn)行過(guò)程大致分為3 個(gè)階段,以圖14c 為例:在第0~210 s 時(shí)由于沒(méi)有集群同行的機(jī)制,存在一側(cè)車(chē)輛在窄路前等待的狀況;第210~302 s 時(shí)等待一側(cè)的車(chē)輛找準(zhǔn)時(shí)間間隙開(kāi)始通過(guò)窄路;第302~373 s窄路處車(chē)輛開(kāi)始通行順暢,車(chē)輛整體平均速度提升。而在遠(yuǎn)程控制下,車(chē)輛運(yùn)行速度平穩(wěn),速度維持在約20 m/s。由于每次經(jīng)過(guò)窄路段的車(chē)輛數(shù)量隨機(jī),75 輛汽車(chē)一組在遠(yuǎn)程控制下由于通過(guò)窄路次數(shù)較多,導(dǎo)致其時(shí)間略長(zhǎng)于100輛汽車(chē)在遠(yuǎn)程控制下通過(guò)窄路段所需時(shí)間。
綜合圖13 和圖14 可以得出,在遠(yuǎn)程控制的方式下車(chē)輛通過(guò)窄路段效率更高,因?yàn)樗熊?chē)輛被集中控制,這允許車(chē)輛間有更小的距離,同時(shí)收集到的窄路范圍內(nèi)的道路環(huán)境信息使得車(chē)輛能夠以合適的速度通過(guò)路口而無(wú)需停車(chē),避免了車(chē)輛在路口起停的時(shí)間損耗。
本文設(shè)計(jì)了一種基于Android 的車(chē)輛遠(yuǎn)程控制系統(tǒng),使用支持TCP協(xié)議的Socket 以及支持OBEX 協(xié)議的藍(lán)牙Socket 的通信方式實(shí)現(xiàn)了字節(jié)流的傳輸,利用GCAN-203將字節(jié)流信息傳輸?shù)狡?chē)CAN總線,實(shí)現(xiàn)了對(duì)車(chē)輛的遠(yuǎn)程操縱,通過(guò)SUMO 構(gòu)筑窄路場(chǎng)景,驗(yàn)證了遠(yuǎn)程駕駛系統(tǒng)集成在云端可以大幅提高車(chē)輛通行效率。本文未完成云端系統(tǒng)的構(gòu)建,未來(lái)將通過(guò)路側(cè)設(shè)備、車(chē)載傳感以及通訊設(shè)備完成對(duì)道路環(huán)境信息的獲取,在云端進(jìn)行信息處理后,通過(guò)本文設(shè)計(jì)的車(chē)輛遠(yuǎn)程控制系統(tǒng)完成決策的執(zhí)行,實(shí)現(xiàn)從云端整體控制窄路處車(chē)輛的通行。