王齊超,杜海林,張杭鋮
基于云通信的智能車輛行駛狀態(tài)監(jiān)測系統(tǒng)分析
王齊超,杜海林,張杭鋮
(長安大學(xué) 汽車學(xué)院,陜西 西安 710018)
只依靠單車智能很難實(shí)現(xiàn)高階自動駕駛,但通過將車、云、路、人結(jié)合起來,可大幅提高車輛的環(huán)境感知和控制決策能力,從而給出智能車輛行駛過程中的全局最優(yōu)方案。文章搭建了基于云通信的車輛行駛狀態(tài)監(jiān)測系統(tǒng)。先用車載端機(jī)器人操作系統(tǒng)(ROS)對各傳感器的數(shù)據(jù)進(jìn)行整合,然后通過WebSocket協(xié)議上傳至云端,并在云端使用Redis緩存中間件對數(shù)據(jù)高效存儲。云端系統(tǒng)通過基于Token的安全驗(yàn)證技術(shù)進(jìn)行安全訪問,并對數(shù)據(jù)再次整合??蛻舳送ㄟ^HTTP協(xié)議來進(jìn)行監(jiān)測數(shù)據(jù)的請求,并且在客戶端設(shè)計出了每種監(jiān)測數(shù)據(jù)的展示頁面。最后,在實(shí)車上布置相應(yīng)傳感器進(jìn)行監(jiān)測系統(tǒng)驗(yàn)證,結(jié)果表明,該系統(tǒng)具有良好的可靠性和穩(wěn)定性。
車聯(lián)網(wǎng);云端監(jiān)測;高效數(shù)據(jù)存儲;云通信;智能車輛;行駛狀態(tài)
在信息化背景下,汽車也在飛速的智能化,但前期快速發(fā)展的僅僅是單車智能,相較而言車聯(lián)網(wǎng)的發(fā)展有些滯后[1],然而最近幾年隨著國家利好政策的陸續(xù)出臺,國內(nèi)智能網(wǎng)聯(lián)汽車產(chǎn)業(yè)正在不斷加快發(fā)展步伐[2-3]。智能網(wǎng)聯(lián)汽車相對于單車智能而言最大的優(yōu)勢就是可以結(jié)合整個車聯(lián)網(wǎng)系統(tǒng)中其他車輛的路況信息,做到云端信息的實(shí)時共享,從而給出當(dāng)前車輛行駛的全局最優(yōu)解,而與車聯(lián)網(wǎng)相輔相成的云計算技術(shù),可以提升整個系統(tǒng)的資源分配和快速部署的能力[4-5]。
早在20世紀(jì)80年代,歐洲就啟動項(xiàng)目研究車車通信、車路通信和輔助駕駛等先進(jìn)技術(shù)[6]。日本在20世紀(jì)90年代建立了道路交通情報通信系統(tǒng)(Vehicle Information and Communication System, VICS),可將處理后的交通信息狀況與衛(wèi)星定位、電子地圖等有機(jī)結(jié)合并提供給車輛駕駛者參考使用[7]。美國于2004年創(chuàng)造了“車載隨意移動網(wǎng)絡(luò)(Vehicular ad-hoc network, VANET)”一詞,即車聯(lián)網(wǎng)。
國內(nèi)車聯(lián)網(wǎng)的研究起步較晚,但在通信層面采用的是比專用短程通信技術(shù)(Dedicated Short Range Communication, DSRC)更為先進(jìn)的蜂窩車聯(lián)網(wǎng)(Cellular Vehicle to Everything, C-V2X)[8]技術(shù),因此,近兩三年里正在慢慢追趕上美國、歐洲和日本。在國內(nèi)政策的支持下,各大車企和互聯(lián)網(wǎng)頭部科技公司紛紛開始聯(lián)手研發(fā)車聯(lián)網(wǎng),如百度的Apollo計劃,阿里和上汽合作研發(fā)的車聯(lián)網(wǎng)智能系統(tǒng)AliOS等[9]。
本文通過結(jié)合車聯(lián)網(wǎng)和云服務(wù),開發(fā)出了基于云通信的智能網(wǎng)聯(lián)汽車行駛狀態(tài)監(jiān)測系統(tǒng),并且經(jīng)過實(shí)驗(yàn)驗(yàn)證,該監(jiān)測系統(tǒng)能夠準(zhǔn)確接收、解析、分享高效存儲車載端各傳感器上傳的數(shù)據(jù),客戶端也可正常實(shí)現(xiàn)智能網(wǎng)聯(lián)汽車行駛狀態(tài)的監(jiān)測及數(shù)據(jù)可視化。
本文中的監(jiān)測系統(tǒng)通過無線網(wǎng)絡(luò)云通信來進(jìn)行信息傳輸,因此,采用的是傳輸控制協(xié)議/網(wǎng)際協(xié)議(Transmission Control Protocol/Internet Protocol, TCP/IP),即傳輸控制/網(wǎng)絡(luò)協(xié)議,TCP/IP協(xié)議屬于操作系統(tǒng)底層已經(jīng)規(guī)范好的協(xié)議,上層有Socket接口讓用戶來使用TCP/IP協(xié)議,本系統(tǒng)并沒有自定義Socket通信協(xié)議規(guī)范,而是使用的HTTP協(xié)議和WebSocket協(xié)議[10]。這兩種協(xié)議可以完成文中車載端、云端、瀏覽器客戶端系統(tǒng)的相互通信,并且這兩種應(yīng)用層的協(xié)議在完成度和可靠性上都表現(xiàn)較好,可以在整個系統(tǒng)中屏蔽掉底層最原始的TCP/IP協(xié)議中的通信細(xì)節(jié)問題。
在互聯(lián)網(wǎng)通信中,應(yīng)用層的協(xié)議基本都是以TCP/IP協(xié)議簇作為基石而發(fā)展起來的。在TCP/IP協(xié)議簇的應(yīng)用層PC端開發(fā)中有兩種開發(fā)方式:一種是B/S方式,這種實(shí)際上就是Browser/Server方式,即瀏覽器客戶端/服務(wù)器模式;另外一種是C/S方式,也就是Client/Server方式,即專用客戶端/服務(wù)器模式。因?yàn)锽/S架構(gòu)有著跨平臺、客戶端零維護(hù)和可擴(kuò)展性高等優(yōu)勢,所以本系統(tǒng)選擇了這種開發(fā)模式。
操作系統(tǒng)底層在使用網(wǎng)絡(luò)通信的時候,會使用輸入輸出(Input Output, IO)來進(jìn)行通信,為了不讓同步阻塞影響系統(tǒng)的運(yùn)行,本文中使用同步非阻塞IO技術(shù),即IO多路復(fù)用來提升系統(tǒng)的IO通信效率。模型如圖1所示。
本文中的系統(tǒng)使用了SpringBoot框架代替?zhèn)鹘y(tǒng)的JavaWeb來實(shí)現(xiàn)基于云通信的車聯(lián)網(wǎng)系統(tǒng)的云端系統(tǒng),SpringBoot框架是由Java語言編寫,用來代替配置比較繁重的Spring而出現(xiàn)的框架,可以做到與其他框架的快速整合,本質(zhì)屬于一個模型/視圖/控制器(Model, View, Controller, MVC)式的框架。
本文中系統(tǒng)的客戶端應(yīng)用了LayUI框架,該框架有個極大的優(yōu)點(diǎn)就是其定義了很多客戶端與云端交互的樣式接口,如分頁表格,只需在客戶端配置好接口,云端則按照定義好的接口規(guī)則返回數(shù)據(jù),即可完成頁面的展示,極大減少了云端開發(fā)人員的開發(fā)成本。本系統(tǒng)在LayUI中集成了jQuery的JS庫[11],利用這個庫簡化Ajax的方式可以使用比較短的代碼來實(shí)現(xiàn)異步請求。本文中在兩種情形下需要使用Ajax,其一是在客戶端獲取來自云端的實(shí)時數(shù)據(jù)時,這里出于系統(tǒng)復(fù)雜度的考慮使用Ajax輪詢的方式來進(jìn)行實(shí)時數(shù)據(jù)的獲取,其二是在用戶提交請求數(shù)據(jù)時,需要使用Ajax方式對云端進(jìn)行提交,這種提交方式會提高數(shù)據(jù)請求效率,并也可作為前后端分離系統(tǒng)的基礎(chǔ)[12]。
圖1 IO多路復(fù)用
本文中的系統(tǒng)在存儲端有Redis和MySQL兩種選擇,由于車載端使用GPS、激光等傳感器采集的數(shù)據(jù)是實(shí)時變化的,如果全部寫進(jìn)持久化的MySQL數(shù)據(jù)庫中,會導(dǎo)致云端硬盤存儲不足,從而需要清理歷史數(shù)據(jù),不利于對車輛歷史狀態(tài)的監(jiān)測,并且當(dāng)系統(tǒng)中車輛數(shù)較多時,也會導(dǎo)致較大的IO堵塞,不利于客戶端的及時響應(yīng)。
Redis[13]是一種由C語言編寫的鍵值對數(shù)據(jù)庫。其存儲特點(diǎn)是將數(shù)據(jù)以鍵值對的方式存儲到云端的內(nèi)存中,可以將云端接收來自車載端的數(shù)據(jù),以鍵值對的形式存進(jìn)云端系統(tǒng)的內(nèi)存中,車載端不斷傳來的數(shù)據(jù)可以依靠鍵值對的覆蓋特性進(jìn)行內(nèi)存數(shù)據(jù)的實(shí)時刷新,同時,可以有選擇性地將數(shù)據(jù)也存進(jìn)MySQL中進(jìn)行可靠的持久化存儲,并且由于數(shù)據(jù)是存在內(nèi)存中,因此,在客戶端發(fā)起數(shù)據(jù)查詢請求的時候,可以將數(shù)據(jù)直接從內(nèi)存中讀出來,可以極大提高整個系統(tǒng)的響應(yīng)速度。因此,在獲取實(shí)時數(shù)據(jù)和歷史數(shù)據(jù)時,云端將采用不同的存取策略,如圖2所示。
圖2 Redis緩存策略
本文主要通過SpringBoot框架來完成云端應(yīng)用系統(tǒng)的搭建,此框架進(jìn)行Web應(yīng)用搭建時可以簡化配置。在車載端通過WebSocket協(xié)議與云端建立連接時需要對不同的車輛數(shù)據(jù)進(jìn)行分類,因此,本系統(tǒng)在連接時附上路徑變量,Redis通過鍵值對存儲時,其鍵不僅需要存儲對應(yīng)信息的描述名,還需要存儲對應(yīng)的車輛id。為了做到這點(diǎn),首先需要在客戶端登錄時先獲取Session,后在車載端與云端建立WebSocket連接后,將車輛id存入到云端Session中,此時對于每一個客戶端都對應(yīng)其唯一的Session,用戶在發(fā)起HTTP請求監(jiān)測車輛狀態(tài)信息時,可先從Session中獲取到車輛id,再去Redis中得到對應(yīng)車輛id的各種車輛狀態(tài)信息,而其車輛id是在車輛加入車聯(lián)網(wǎng)系統(tǒng)時已分配好,如圖3所示。
圖3 Redis信息分類策略
在整個云端系統(tǒng)應(yīng)用中,主要是通過云端將整個數(shù)據(jù)鏈路打通,其中包括對于各種數(shù)據(jù)的訪問。其次云端還需通過接收來自客戶端的HTTP請求來響應(yīng)客戶端的請求,此時在云端返回指定的數(shù)據(jù)即可。對于客戶端方面,云端存放著很多對客戶端所響應(yīng)的頁面,這些頁面需要一定的安全規(guī)則才可以進(jìn)行訪問,只有得到這些頁面的訪問權(quán),才可以使用頁面中的訪問規(guī)則去云端請求對應(yīng)的數(shù)據(jù)。
Token即令牌[14],在客戶端登錄時,服務(wù)端會向客戶端簽發(fā)Token,以此讓客戶端在進(jìn)行請求時,能夠使云端得知其是否有進(jìn)行請求的權(quán)限,其整體登錄請求如圖4所示。
圖4 Token驗(yàn)證登錄
本文采用基于Token的JWT(JSON Web Token)技術(shù)[15]來完成令牌登錄驗(yàn)證的功能。在系統(tǒng)中使用JWT之后,可在云端得到客戶端請求中的JWT信息之后,即可直接解密得到用戶信息,以此來判斷訪問權(quán)限,而不需要像Token需要再去數(shù)據(jù)庫中進(jìn)行比對。在系統(tǒng)經(jīng)過JWT驗(yàn)證之后,客戶端即可訪問位于云端的各種資源,并可使云端顯示出所監(jiān)測的頁面。
在云端進(jìn)行數(shù)據(jù)監(jiān)測的時候,出于系統(tǒng)的實(shí)時性和高并發(fā)性考慮,從Redis中獲取數(shù)據(jù),而登錄時的賬號密碼因其相對固定從MySQL中獲取。
在客戶端進(jìn)行數(shù)據(jù)監(jiān)測時,主要是使用設(shè)計相應(yīng)的頁面及進(jìn)行合理的布局,隨后再將數(shù)據(jù)取出來進(jìn)行監(jiān)測,因此,在本部分將主要使用LayUI框架及原生的超文本標(biāo)記語言(Hyper Text Mar kup Language, HTML)及 層疊樣式表(Cascading Style Sheets, CSS)對頁面進(jìn)行設(shè)計與布局,另外在數(shù)據(jù)交互時,主要是使用Ajax這種無頁面刷新的方式來進(jìn)行請求參數(shù)的提交及監(jiān)測數(shù)據(jù)的提取,由于原生的Ajax不方便進(jìn)行操作,因此,在本文中主要使用jQuery來進(jìn)行Ajax的操作。
本文對基于云通信的智能網(wǎng)聯(lián)汽車行駛狀態(tài)監(jiān)測系統(tǒng)在校內(nèi)道路進(jìn)行了實(shí)車實(shí)驗(yàn),實(shí)驗(yàn)的軟硬件環(huán)境為實(shí)驗(yàn)車輛麗馳V5-T、車載電腦、控制器局域網(wǎng)(Controller Area Network, CAN)數(shù)據(jù)采集模塊、GPS數(shù)據(jù)采集模塊、激光雷達(dá)距離數(shù)據(jù)采集模塊、圖像數(shù)據(jù)采集模塊、車內(nèi)網(wǎng)絡(luò)設(shè)備、車載供電設(shè)備、實(shí)驗(yàn)電腦、機(jī)器人操作系統(tǒng)(Robot Operating System, ROS)、IDEA、云服務(wù)器及遠(yuǎn)程安全外殼(Secure Shell, SSH)登錄工具和瀏覽器等。
GPS設(shè)備開啟后,車載電腦將接收到數(shù)據(jù)并上傳到云端存入Redis中,客戶端訪問時,進(jìn)行高德地圖應(yīng)用程序接口(Application Programming Interface, API)的可視化及經(jīng)緯度的逆地址編碼操作,繼而得到客戶端頁面,運(yùn)行過程頁面如圖5、圖6所示。
圖5 GPS數(shù)據(jù)上傳
圖6 GPS數(shù)據(jù)可視化頁面
激光雷達(dá)得到前方障礙物距離后,進(jìn)行數(shù)據(jù)解析,并上傳到云端Redis中,客戶端實(shí)時讀取數(shù)據(jù),通過隊(duì)列結(jié)構(gòu)顯示前15 s的歷史距離數(shù)據(jù)和當(dāng)前實(shí)時數(shù)據(jù),運(yùn)行過程頁面如圖7、圖8所示。
對前方的車道線目標(biāo)進(jìn)行圖像檢測后,將車道線坐標(biāo)數(shù)據(jù)變換后得到世界坐標(biāo)系對應(yīng)的實(shí)際距離數(shù)據(jù),車載電腦處理后發(fā)往云端存入Redis中,車輛左邊為負(fù)方向,右邊為正方向,客戶端訪問時,將通過對canvas進(jìn)行對應(yīng)的數(shù)據(jù)設(shè)置,得到實(shí)時的車輛位置圖,運(yùn)行頁面如圖9、圖10所示。
圖7 前方距離數(shù)據(jù)上傳
圖8 前方距離頁面
圖9 左右車道線距離數(shù)據(jù)上傳
圖10 左右車道線距離實(shí)時頁面
本文采用以Java語言編寫的SpringBoot框架來完成整個云端系統(tǒng),整合了WebSocket對于Java的支持來完成云端對于車載端和瀏覽器客戶端的WebSocket通信,最后采用JWT來完成對頁面的安全訪問。本文使用B/S架構(gòu)設(shè)計出系統(tǒng)的瀏覽器客戶端監(jiān)測頁面來展示監(jiān)測數(shù)據(jù),采用的是LayUI瀏覽器客戶端框架,結(jié)合jQuery的JS(JavaScript)框架使用Ajax異步刷新數(shù)據(jù),來將云端的數(shù)據(jù)展示在瀏覽器客戶端頁面上。本文中的系統(tǒng)采用MySQL關(guān)系型數(shù)據(jù)庫來對數(shù)據(jù)進(jìn)行持久化存儲,但是在并發(fā)高、數(shù)據(jù)量大時會導(dǎo)致系統(tǒng)擁堵,所以在瀏覽器客戶端進(jìn)行數(shù)據(jù)實(shí)時監(jiān)測時,采用緩存中間件Redis來提升系統(tǒng)的整體IO效率。最后實(shí)車試驗(yàn)表明,本文中的云通信監(jiān)測系統(tǒng)能夠正常工作。
[1] 崔志斌.面向智能網(wǎng)聯(lián)汽車的云數(shù)據(jù)平臺的設(shè)計與實(shí)現(xiàn)[D].成都:電子科技大學(xué),2020.
[2] 徐勇.工業(yè)和信息化部發(fā)放四張5G牌照我國5G時代正式開啟[J].中國無線電,2019(6):1.
[3] 湯立波,康陳.車聯(lián)網(wǎng)產(chǎn)業(yè)融合發(fā)展趨勢[J].電信科學(xué), 2019,35(11):96-100.
[4] 張一衡,沈剛.重點(diǎn)營運(yùn)車輛動態(tài)數(shù)據(jù)在智慧高速中的應(yīng)用[J].中國交通信息化,2015(S1):22-24.
[5] 李克強(qiáng),戴一凡,李升波,等.智能網(wǎng)聯(lián)汽車(ICV)技術(shù)的發(fā)展現(xiàn)狀及趨勢[J].汽車安全與節(jié)能學(xué)報,2017,8 (1):1-14.
[6] 王一鳴.一文看懂“車聯(lián)網(wǎng)”的前世今生[J].物聯(lián)網(wǎng)技術(shù),2018,8(6):6-8.
[7] 李宏海,劉冬梅,王晶.日本VICS系統(tǒng)的發(fā)展介紹[J].交通標(biāo)準(zhǔn)化,2011(15):107-113.
[8] SHANZHI C,QIANG L,YONG W,et al.C-V2X Equi- pment Identification Management and Authentication Mechanism[J].中國通信,2021,18(8):297-306.
[9] 郭王虎.BAT全面布局,搶占智慧出行先機(jī)[J].智能網(wǎng)聯(lián)汽車,2020(4):78-81.
[10] 席佩瑤,陳森林,周子偉,等.數(shù)據(jù)實(shí)時通信與可視化系統(tǒng)的設(shè)計與實(shí)現(xiàn)[J].自動化與儀表,2022,37(1):55-59.
[11] 曾玉紅.基于j Query的電子工資條前端頁面設(shè)計與開發(fā)[J].電腦知識與技術(shù),2021,17(10):79-80.
[12] 臧金梅.基于AJAX異步處理的疫情JSON數(shù)據(jù)查詢[J].信息技術(shù)與信息化,2021(5):120-122.
[13] 秦溧,艾青.基于Redis技術(shù)的頁面緩存研究[J].科技風(fēng),2021(12):74-76.
[14] 漆瑞豐,周建中,劉懿.基于token令牌的水資源管理決策支持系統(tǒng)網(wǎng)絡(luò)安全體系研究[J].水力發(fā)電,2021, 47(11):125-130.
[15] 陳佳.一種基于JWT令牌認(rèn)證的電力系統(tǒng)微服務(wù)認(rèn)證授權(quán)方案[J].電工技術(shù),2021(16):151-154.
Analysis of Intelligent Vehicle Driving Condition Monitoring System Based on Cloud Communication
WANG Qichao, DU Hailin, ZHANG Hangcheng
( School of Automobile, Chang'an University, Xi'an 710018, China )
It is difficult to realize high-order autonomous driving only by relying on single-vehicle intelligence. However, the combination of vehicle, cloud, road and human can greatly improve the vehicle's environmental perception and control decision-making ability, so as to give the global optimal scheme in the process of intelligent vehicle driving. In this paper, a vehicle driving condition monitoring system based on cloud communication was built. Firstly, the on-board Robot Operating System (ROS) system was used to integrate the data of each sensor, then the data were uploaded to the cloud through WebSocket protocol and stored efficiently by Redis cache middleware in the cloud. The cloud system used Token-based security verification technology for secure access and data re-integration.The client requested monitoring data through the HTTP protocol and designed a display page for each monitoring data on the client. Finally, the corresponding sensors were deployed on the real vehicle to verify the monitoring system. The results showed that the system had good reliability and stability.
Car networking; Cloud monitoring; Efficient data storage;Cloud communication;Intelligent vehicle;Driving condition
TN915.81
A
1671-7988(2022)23-51-05
TN915.81
A
1671-7988(2022)23-51-05
10.16638/j.cnki.1671-7988.2022.023.010
王齊超(1999—),男,碩士研究生,研究方向?yàn)闊o人駕駛,E-mail:1720783615@qq.com。