APP下载

基于云通信的智能车辆行驶状态监测系统分析

2022-12-28王齐超杜海林张杭铖

汽车实用技术 2022年23期
关键词:云端车载页面

王齐超,杜海林,张杭铖

基于云通信的智能车辆行驶状态监测系统分析

王齐超,杜海林,张杭铖

(长安大学 汽车学院,陕西 西安 710018)

只依靠单车智能很难实现高阶自动驾驶,但通过将车、云、路、人结合起来,可大幅提高车辆的环境感知和控制决策能力,从而给出智能车辆行驶过程中的全局最优方案。文章搭建了基于云通信的车辆行驶状态监测系统。先用车载端机器人操作系统(ROS)对各传感器的数据进行整合,然后通过WebSocket协议上传至云端,并在云端使用Redis缓存中间件对数据高效存储。云端系统通过基于Token的安全验证技术进行安全访问,并对数据再次整合。客户端通过HTTP协议来进行监测数据的请求,并且在客户端设计出了每种监测数据的展示页面。最后,在实车上布置相应传感器进行监测系统验证,结果表明,该系统具有良好的可靠性和稳定性。

车联网;云端监测;高效数据存储;云通信;智能车辆;行驶状态

在信息化背景下,汽车也在飞速的智能化,但前期快速发展的仅仅是单车智能,相较而言车联网的发展有些滞后[1],然而最近几年随着国家利好政策的陆续出台,国内智能网联汽车产业正在不断加快发展步伐[2-3]。智能网联汽车相对于单车智能而言最大的优势就是可以结合整个车联网系统中其他车辆的路况信息,做到云端信息的实时共享,从而给出当前车辆行驶的全局最优解,而与车联网相辅相成的云计算技术,可以提升整个系统的资源分配和快速部署的能力[4-5]。

早在20世纪80年代,欧洲就启动项目研究车车通信、车路通信和辅助驾驶等先进技术[6]。日本在20世纪90年代建立了道路交通情报通信系统(Vehicle Information and Communication System, VICS),可将处理后的交通信息状况与卫星定位、电子地图等有机结合并提供给车辆驾驶者参考使用[7]。美国于2004年创造了“车载随意移动网络(Vehicular ad-hoc network, VANET)”一词,即车联网。

国内车联网的研究起步较晚,但在通信层面采用的是比专用短程通信技术(Dedicated Short Range Communication, DSRC)更为先进的蜂窝车联网(Cellular Vehicle to Everything, C-V2X)[8]技术,因此,近两三年里正在慢慢追赶上美国、欧洲和日本。在国内政策的支持下,各大车企和互联网头部科技公司纷纷开始联手研发车联网,如百度的Apollo计划,阿里和上汽合作研发的车联网智能系统AliOS等[9]。

本文通过结合车联网和云服务,开发出了基于云通信的智能网联汽车行驶状态监测系统,并且经过实验验证,该监测系统能够准确接收、解析、分享高效存储车载端各传感器上传的数据,客户端也可正常实现智能网联汽车行驶状态的监测及数据可视化。

1 通信协议和云端框架

1.1 相关协议技术

本文中的监测系统通过无线网络云通信来进行信息传输,因此,采用的是传输控制协议/网际协议(Transmission Control Protocol/Internet Protocol, TCP/IP),即传输控制/网络协议,TCP/IP协议属于操作系统底层已经规范好的协议,上层有Socket接口让用户来使用TCP/IP协议,本系统并没有自定义Socket通信协议规范,而是使用的HTTP协议和WebSocket协议[10]。这两种协议可以完成文中车载端、云端、浏览器客户端系统的相互通信,并且这两种应用层的协议在完成度和可靠性上都表现较好,可以在整个系统中屏蔽掉底层最原始的TCP/IP协议中的通信细节问题。

在互联网通信中,应用层的协议基本都是以TCP/IP协议簇作为基石而发展起来的。在TCP/IP协议簇的应用层PC端开发中有两种开发方式:一种是B/S方式,这种实际上就是Browser/Server方式,即浏览器客户端/服务器模式;另外一种是C/S方式,也就是Client/Server方式,即专用客户端/服务器模式。因为B/S架构有着跨平台、客户端零维护和可扩展性高等优势,所以本系统选择了这种开发模式。

操作系统底层在使用网络通信的时候,会使用输入输出(Input Output, IO)来进行通信,为了不让同步阻塞影响系统的运行,本文中使用同步非阻塞IO技术,即IO多路复用来提升系统的IO通信效率。模型如图1所示。

1.2 系统框架技术

本文中的系统使用了SpringBoot框架代替传统的JavaWeb来实现基于云通信的车联网系统的云端系统,SpringBoot框架是由Java语言编写,用来代替配置比较繁重的Spring而出现的框架,可以做到与其他框架的快速整合,本质属于一个模型/视图/控制器(Model, View, Controller, MVC)式的框架。

本文中系统的客户端应用了LayUI框架,该框架有个极大的优点就是其定义了很多客户端与云端交互的样式接口,如分页表格,只需在客户端配置好接口,云端则按照定义好的接口规则返回数据,即可完成页面的展示,极大减少了云端开发人员的开发成本。本系统在LayUI中集成了jQuery的JS库[11],利用这个库简化Ajax的方式可以使用比较短的代码来实现异步请求。本文中在两种情形下需要使用Ajax,其一是在客户端获取来自云端的实时数据时,这里出于系统复杂度的考虑使用Ajax轮询的方式来进行实时数据的获取,其二是在用户提交请求数据时,需要使用Ajax方式对云端进行提交,这种提交方式会提高数据请求效率,并也可作为前后端分离系统的基础[12]。

图1 IO多路复用

1.3 Redis缓存对数据的高效处理

本文中的系统在存储端有Redis和MySQL两种选择,由于车载端使用GPS、激光等传感器采集的数据是实时变化的,如果全部写进持久化的MySQL数据库中,会导致云端硬盘存储不足,从而需要清理历史数据,不利于对车辆历史状态的监测,并且当系统中车辆数较多时,也会导致较大的IO堵塞,不利于客户端的及时响应。

Redis[13]是一种由C语言编写的键值对数据库。其存储特点是将数据以键值对的方式存储到云端的内存中,可以将云端接收来自车载端的数据,以键值对的形式存进云端系统的内存中,车载端不断传来的数据可以依靠键值对的覆盖特性进行内存数据的实时刷新,同时,可以有选择性地将数据也存进MySQL中进行可靠的持久化存储,并且由于数据是存在内存中,因此,在客户端发起数据查询请求的时候,可以将数据直接从内存中读出来,可以极大提高整个系统的响应速度。因此,在获取实时数据和历史数据时,云端将采用不同的存取策略,如图2所示。

图2 Redis缓存策略

2 云端系统的数据监测

2.1 云端应用系统搭建

本文主要通过SpringBoot框架来完成云端应用系统的搭建,此框架进行Web应用搭建时可以简化配置。在车载端通过WebSocket协议与云端建立连接时需要对不同的车辆数据进行分类,因此,本系统在连接时附上路径变量,Redis通过键值对存储时,其键不仅需要存储对应信息的描述名,还需要存储对应的车辆id。为了做到这点,首先需要在客户端登录时先获取Session,后在车载端与云端建立WebSocket连接后,将车辆id存入到云端Session中,此时对于每一个客户端都对应其唯一的Session,用户在发起HTTP请求监测车辆状态信息时,可先从Session中获取到车辆id,再去Redis中得到对应车辆id的各种车辆状态信息,而其车辆id是在车辆加入车联网系统时已分配好,如图3所示。

图3 Redis信息分类策略

在整个云端系统应用中,主要是通过云端将整个数据链路打通,其中包括对于各种数据的访问。其次云端还需通过接收来自客户端的HTTP请求来响应客户端的请求,此时在云端返回指定的数据即可。对于客户端方面,云端存放着很多对客户端所响应的页面,这些页面需要一定的安全规则才可以进行访问,只有得到这些页面的访问权,才可以使用页面中的访问规则去云端请求对应的数据。

2.2 云端的登录验证

Token即令牌[14],在客户端登录时,服务端会向客户端签发Token,以此让客户端在进行请求时,能够使云端得知其是否有进行请求的权限,其整体登录请求如图4所示。

图4 Token验证登录

本文采用基于Token的JWT(JSON Web Token)技术[15]来完成令牌登录验证的功能。在系统中使用JWT之后,可在云端得到客户端请求中的JWT信息之后,即可直接解密得到用户信息,以此来判断访问权限,而不需要像Token需要再去数据库中进行比对。在系统经过JWT验证之后,客户端即可访问位于云端的各种资源,并可使云端显示出所监测的页面。

2.3 云端监测

在云端进行数据监测的时候,出于系统的实时性和高并发性考虑,从Redis中获取数据,而登录时的账号密码因其相对固定从MySQL中获取。

在客户端进行数据监测时,主要是使用设计相应的页面及进行合理的布局,随后再将数据取出来进行监测,因此,在本部分将主要使用LayUI框架及原生的超文本标记语言(Hyper Text Mar kup Language, HTML)及 层叠样式表(Cascading Style Sheets, CSS)对页面进行设计与布局,另外在数据交互时,主要是使用Ajax这种无页面刷新的方式来进行请求参数的提交及监测数据的提取,由于原生的Ajax不方便进行操作,因此,在本文中主要使用jQuery来进行Ajax的操作。

3 实车验证

本文对基于云通信的智能网联汽车行驶状态监测系统在校内道路进行了实车实验,实验的软硬件环境为实验车辆丽驰V5-T、车载电脑、控制器局域网(Controller Area Network, CAN)数据采集模块、GPS数据采集模块、激光雷达距离数据采集模块、图像数据采集模块、车内网络设备、车载供电设备、实验电脑、机器人操作系统(Robot Operating System, ROS)、IDEA、云服务器及远程安全外壳(Secure Shell, SSH)登录工具和浏览器等。

GPS设备开启后,车载电脑将接收到数据并上传到云端存入Redis中,客户端访问时,进行高德地图应用程序接口(Application Programming Interface, API)的可视化及经纬度的逆地址编码操作,继而得到客户端页面,运行过程页面如图5、图6所示。

图5 GPS数据上传

图6 GPS数据可视化页面

激光雷达得到前方障碍物距离后,进行数据解析,并上传到云端Redis中,客户端实时读取数据,通过队列结构显示前15 s的历史距离数据和当前实时数据,运行过程页面如图7、图8所示。

对前方的车道线目标进行图像检测后,将车道线坐标数据变换后得到世界坐标系对应的实际距离数据,车载电脑处理后发往云端存入Redis中,车辆左边为负方向,右边为正方向,客户端访问时,将通过对canvas进行对应的数据设置,得到实时的车辆位置图,运行页面如图9、图10所示。

图7 前方距离数据上传

图8 前方距离页面

图9 左右车道线距离数据上传

图10 左右车道线距离实时页面

4 结论

本文采用以Java语言编写的SpringBoot框架来完成整个云端系统,整合了WebSocket对于Java的支持来完成云端对于车载端和浏览器客户端的WebSocket通信,最后采用JWT来完成对页面的安全访问。本文使用B/S架构设计出系统的浏览器客户端监测页面来展示监测数据,采用的是LayUI浏览器客户端框架,结合jQuery的JS(JavaScript)框架使用Ajax异步刷新数据,来将云端的数据展示在浏览器客户端页面上。本文中的系统采用MySQL关系型数据库来对数据进行持久化存储,但是在并发高、数据量大时会导致系统拥堵,所以在浏览器客户端进行数据实时监测时,采用缓存中间件Redis来提升系统的整体IO效率。最后实车试验表明,本文中的云通信监测系统能够正常工作。

[1] 崔志斌.面向智能网联汽车的云数据平台的设计与实现[D].成都:电子科技大学,2020.

[2] 徐勇.工业和信息化部发放四张5G牌照我国5G时代正式开启[J].中国无线电,2019(6):1.

[3] 汤立波,康陈.车联网产业融合发展趋势[J].电信科学, 2019,35(11):96-100.

[4] 张一衡,沈刚.重点营运车辆动态数据在智慧高速中的应用[J].中国交通信息化,2015(S1):22-24.

[5] 李克强,戴一凡,李升波,等.智能网联汽车(ICV)技术的发展现状及趋势[J].汽车安全与节能学报,2017,8 (1):1-14.

[6] 王一鸣.一文看懂“车联网”的前世今生[J].物联网技术,2018,8(6):6-8.

[7] 李宏海,刘冬梅,王晶.日本VICS系统的发展介绍[J].交通标准化,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].智能网联汽车,2020(4):78-81.

[10] 席佩瑶,陈森林,周子伟,等.数据实时通信与可视化系统的设计与实现[J].自动化与仪表,2022,37(1):55-59.

[11] 曾玉红.基于j Query的电子工资条前端页面设计与开发[J].电脑知识与技术,2021,17(10):79-80.

[12] 臧金梅.基于AJAX异步处理的疫情JSON数据查询[J].信息技术与信息化,2021(5):120-122.

[13] 秦溧,艾青.基于Redis技术的页面缓存研究[J].科技风,2021(12):74-76.

[14] 漆瑞丰,周建中,刘懿.基于token令牌的水资源管理决策支持系统网络安全体系研究[J].水力发电,2021, 47(11):125-130.

[15] 陈佳.一种基于JWT令牌认证的电力系统微服务认证授权方案[J].电工技术,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—),男,硕士研究生,研究方向为无人驾驶,E-mail:1720783615@qq.com。

猜你喜欢

云端车载页面
刷新生活的页面
一种车载可折叠宿营住房
四海心连·云端汇聚
答案
让Word同时拥有横向页和纵向页
在云端永生
云端之城
奔驰S级48V车载电气系统(下)
车载冷发射系统多刚体动力学快速仿真研究
在云端