基于GPRS传输的车辆远程监控及行驶轨迹优化*
2017-06-19陈淑荣
罗 成,陈淑荣,剧 季
(上海海事大学 信息工程学院,上海 201306)
基于GPRS传输的车辆远程监控及行驶轨迹优化*
罗 成,陈淑荣,剧 季
(上海海事大学 信息工程学院,上海 201306)
为了远程监控和管理行驶的车辆,提高车辆运行效率,保障车辆驾驶安全,利用GPRS网络设计了基于C/S架构的车辆远程监控系统。根据GPS车辆定位数据,通过无线网络将数据传输至服务器。详细说明了数据传输和数据处理的过程,在客户端调用百度地图,并实时显示车辆位置和行驶轨迹。针对地图中车辆弯道行驶折线轨迹的问题,引入了二次B样条拟合算法,对车辆行驶轨迹进行有效拟合,改善折线轨迹的缺陷,反映车辆真实运动曲线。监控系统传输数据稳定,实现了实时显示车辆地理位置、精确跟踪的效果,达到了优化车辆折线轨迹的目的。
远程监控;GPRS;车辆定位;二次B样条;轨迹优化
0 引言
当前,利用无线网络远程监控行驶中的运行设备已成为一种趋势。对比GSM、GPRS、3G三种无线通信网络,GPRS比GSM传输速度更快,比3G覆盖面积更大,能满足车辆远程信息传输[1-2]。通过在车辆、移动机器人、飞行器、船舶上安装GPS、GPRS模块,实时检测运行设备的位置信息,能方便地对设备进行监控和管理。
文献[3]研究了无人驾驶智能车的远程监控系统,将GPS定位数据与计算机系统的GIS地图进行匹配,通过MapX图层抽象形成电子地图,实现位置监控。文献[4]研究了基于百度地图定位的车辆监控系统,在地图上进行定位,画出行驶轨迹。对比两种电子地图定位效果,百度地图具有地图展现、路线规划、周边检索等优势,直接调用API接口,开发简单。但大多数地图定位中,车辆行驶路线显示的是折线轨迹,缺少精度,未能充分反映车辆真实的行驶状态。
本文利用C/S架构,实现了车辆远程监控系统并对其行驶轨迹进行优化。通过GPS技术获取车辆定位数据,利用GPRS无线网络将车辆定位数据传输到远端监控系统,对数据保存和处理后,客户端调用百度地图并显示车辆的位置;引入二次B样条拟合算法[5],通过处理传输的定位数据点,对折线轨迹进行优化,达到精确拟合车辆的行驶轨迹,实现车辆远程监控的目的。
1 车辆远程监控系统方案
1.1 监控系统结构
整个监控系统分为3个部分:车载检测部分、网络传输部分和远程监控部分,如图1所示。其中车载检测部分为硬件底层,包括GPS模块、MC9S12X单片机、GPRS模块和试验车辆。GPS模块接收车辆定位数据,上传至12X单片机,利用AT指令控制GPRS模块,通过GPRS信道和TCP/IP通信协议将接收数据传输至远程监控部分。远程监控部分基于C/S架构,由服务器、客户端和SQL Server后台数据库组成,实现实时管理车辆位置信息和轨迹跟踪,对车辆进行动态监控。
图1 监控系统整体结构
1.2 监控系统功能设计
如图2所示,服务器主要实现接收GPRS传输的数据,原始数据保存,与客户端进行数据交互的功能;客户端作为监控窗口,对服务器传输的原始数据进行处理及保存,实现车辆实时定位、轨迹跟踪和B样条轨迹优化等功能。
图2 远程监控功能图
GPRS模块根据TCP协议实现与服务器交互,客户端通过Socket方式请求连接服务器[6],接收车辆的原始数据,将数据进行处理并转化成标准的百度地图格式数据,标注在地图中,实现车辆实时定位和轨迹跟踪。在地图中需引入二次B样条算法,拟合车辆折线轨迹,反映车辆真实行驶路线。
2 数据传输过程
数据传输过程如图1所示,包含三部分:GPS模块接收车辆定位数据;GPRS上传定位数据至服务器;客户端通过Socket方式与服务器通信。
GPRS网络硬件基于SIM900A系列模块,包括电源接口、串行接口和SIM卡槽接口。通过设置TCP/IP协议栈,单片机使用标准的AT指令控制SIM900A模块,将车辆定位数据利用GPRS网络发送到公网IP地址的服务器上,实现车辆定位数据的远程传输。
远程监控部分基于VB软件平台,采用C/S交互模式。如图3所示,服务器和客户端分别设置初始端口号和固定IP,服务器始终等待客户端连接请求,当通过sckListen.Listen方法监听到连接请求时,触发服务器的sckListen_ConnectionRequest事件。当服务器与客户端Socket连接建立后,服务器采用sckServer(Index).GetData方法接收GPRS上传的车辆原始定位数据,调用sckServer(Index).SendData方法实现与客户端的数据传输。当客户端接收到服务器传输的数据后,对原始GPS定位数据进行处理,转成百度地图的坐标系格式,保存到本地数据库中。
图3 服务器客户端Socket通信
3 系统关键技术
3.1 车辆实时定位显示
客户端调用百度地图API[7],主要包括两个关键点,即车辆定位数据标注到百度地图上和解决百度地图中大量信息数据造成内存溢出的问题。VB通过WebBrowser控件连接百度地图网页,实现车辆定位数据传输至地图,处理过程如下:
(1)连接百度地图
WebBrowser.NavigateApp.Path& "Baidumap.html"
(2)将经度和纬度数据加载到地图中
WebBrowser.Document.parentWindow.execScript "labellong = """ &longitude&"""","javascript"//经度加载
WebBrowser.Document.parentWindow.execScript "labellat = """ &latitude& """", "javascript"//纬度加载
(3)将GPS坐标系转化为百度地图坐标系
WebBrowser.Document.parentWindow.execScript"BMap.Convertor.translate(newBMap.Point(labellong,labellat),0,translateCallback)", "javascript"
由于行驶车辆的位置信息不断更新,监控系统需处理大量实时定位数据并在地图中标注车辆位置,需要对实时接收的大量数据设计合理的数据结构。如果采取数组方式存储这些数据,容易造成内存溢出。设计中采用队列的存储结构,按照“先进先出”的方式对数据进行访问处理。为保证绘制车辆运行轨迹的实时性,采用了长度为2的数组,使用百度地图中BMap.Polyline方法遍历数组中的点绘制轨迹。当第一个点传入数组,进行百度地图定位,第二个点传入数组开始画轨迹。之后每传入一个点,就将前一个点清除,始终保持数组中两个点,可消除轨迹绘制中内存溢出的问题。
3.2 二次B样条算法及车辆轨迹优化
车辆在弯道行驶中,当速度过大时,两点的定位距离拉大。百度地图BMap.Polyline方法绘制出两点直线,出现明显的折线轨迹,不能真实反映车辆运动的曲线轨迹。因此,引入了二次B样条算法,对折线轨迹进行实时优化。
3.2.1 B样条算法原理
B样条曲线由一组控制顶点确定,按顺序连接形成控制多边形,B样条曲线逼近拟合多边形,通过确定控制点的位置,可以控制曲线的形状[8]。B样条数学表达式为:
(1)
其中,k=0,1,…,m,表示为第k段n次B样条曲线段,全体曲线段称为n次B样条曲线;Pi+k表示第k段曲线的第i个控制点。其中,基函数定义为:
(2)
t∈[0,1],i=0,1,2…,n
令n=2,则二次B样条曲线的基函数如下:
(3)
根据模拟车辆在弯道行驶的过程,如图4所示,6个控制顶点相连接形成原始折线轨迹,为了选取合适的B样条算法更真实地拟合车辆实时运行轨迹,实验中分别采用了二次B样条和三次B样条进行拟合。在引入二次B样条算法后,6个顶点分别控制生成了4段二次B样条曲线段。图中,每条曲线段由相邻的3个顶点控制,分别与对应的折线段相切。而三次B样条曲线由相邻的4个顶点控制,6个顶点分别形成3段曲线段。与二次B样条相比,相同控制顶点生成的曲线段不同,拟合出的轨迹精度存在差距,可见,二次B样条拟合更准确,更贴近原始折线轨迹。因此,设计中选用二次B样条算法,在百度地图中对车辆的行驶轨迹进行实时优化。
图4 二次和三次B样条曲线拟合对比图
3.2.2 二次B样条地图轨迹优化效果
在百度地图轨迹优化中,二次B样条算法生成的曲线段由无数个点组成,通过合理控制B样条公式中参数t循环的步长,选取step为1/10,每条曲线段拟合出10个点。如图5所示,6个控制顶点形成4条曲线段,生成40个拟合点。
图5 二次B样条轨迹拟合效果
在监控系统的客户端,二次B样条对输入的经纬度点进行处理:
P(i+1,0)+(t2)×P(i+2,0)]
(4)
P(i+1,1)+(t2)×P(i+2,1)]
(5)
其中,P(i,0)、P(i+1,0)、P(i+2,0)是二维数组中的3个控制顶点,也表示原始数据的3个经纬度点;lon和lat分别为二次B样条处理后的经纬度点。num为所有控制顶点数。
图6 二次B样条轨迹优化流程
二次B样条算法对轨迹优化的流程如图6所示,首先初始化二次B样条公式中的参数t、i、num,控制t的范围在[0,1]。读入经纬度数据点后,判断控制点个数num大小。因二次B样条曲线需要3个顶点控制生成,当num=3时,形成3个控制点,第一次进入B样条处理公式。num>3时,根据B样条局部性质可知,改动其中一个控制顶点,只会对相邻下一段曲线产生影响[9]。因此,客户端每输入一个控制点(经纬度点),经二次B样条算法处理后,产生10个拟合点,比原始的控制顶点密集。将拟合点标注在百度地图上,修正折线轨迹,使拟合生成的轨迹曲线能更贴切地反映车辆行驶的真实路线。
4 实验结果及性能分析
针对上述系统方案和功能要求,在实现了车辆远程监控系统后,对车辆实时定位和轨迹优化进行了性能测试。其中GPRS传输的波特率设置为9 600,GPS数据更新率为1 Hz。
实验结果显示,车辆行驶过程中,GPS能实时记录车辆位置信息,通过GPRS网络将数据包发送至远程监控部分。服务器接收数据后传输至客户端,进行经纬度纠偏处理,在百度地图上精确定位车辆位置并实时绘制行驶轨迹。图7显示了百度地图上车辆在校园中的行驶轨迹。经多次反复测试,车辆定位误差较小,实时定位效果较真实地反映了车辆行驶路线。
图7 车辆实时行驶轨迹图
图8显示了百度地图中车辆的原始运行轨迹,在弯道行驶中折线轨迹明显,不能精确地描述车辆运行的真实路线。图9引入二次B样条算法,在弯道行驶过程中对原始的经纬度数据点进行处理,对折线轨迹进行拟合,实时优化了车辆行驶轨迹,使得运行轨迹变得圆滑,较真实地拟合了车辆的运动曲线,有效地解决了车辆在弯道行驶中的折线问题。
图8 未加入B样条的轨迹图
图9 加入二次B样条的轨迹优化图
5 结论
基于GPRS无线通信实现了车辆远程监控系统,定位数据成功从车载检验部分传输至远程监控部分,在客户端引入二次B样条算法优化地图的折线轨迹,并在百度地图上实时拟合显示了车辆的真实行驶路线。优化后的监控系统可运用在车辆远程实时监控、无人车轨迹规划、机器人轨迹跟踪等诸多方面。
[1] 冯晓星, 毛云祥. 基于GPRS/3G的远程通信实验系统组网方案实现[J]. 无线电通信技术, 2015(4):96-99.
[2] 洪亮. 基于GPS/GPRS的嵌入式车载通信终端的设计与研究[D]. 石家庄:河北科技大学, 2010.
[3] 赵丹丹.无人驾驶智能车远程监控系统[D].西安:西安工业大学, 2014.
[4] 尧应平. 基于GPS、3G车辆定位及车载视频监控系统的设计与研究[D]. 昆明:昆明理工大学, 2013.
[5] 王增波,彭仁忠,宫兆刚.B样条曲线生成原理及实现[J].石河子大学学报: 自然科学版,2009,27(1):118-121.
[6] 张允刚,刘常春,刘伟,等.基于Socket和多线程的远程监控系统[J]. 控制工程, 2006, 13(2):175-177.
[7] 贾振,韩印.基于百度地图API的智能交通信息展示[J].物流工程与管理,2016,38 (7):211-213.
[8] 李林峰, 马蕾. 三次均匀B样条在工业机器人轨迹规划中的应用研究[J]. 科学技术与工程, 2013, 13(13):3621-3625.
[9] 郭怀天. B样条曲线及曲面研究[D]. 合肥:合肥工业大学, 2012.
Vehicle remote monitoring and the optimization of driving trajectory based on transmission of GPRS
Luo Cheng, Chen Shurong, Ju Ji
(School of Information Engineering, Shanghai Maritime University, Shanghai 201306, China)
In order to monitor and manage the moving vehicles, improve the driving efficiency and ensure the safety of vehicle, the remote monitoring system based on C/S structure is designed by using GPRS network. Vehicle location data of GPS is transmitted to the server through the wireless network. In this paper, the process of data transmission and data processing is explained in detail. Baidu map which is called by the client, displays the vehicle position and track in real time. According to the problem of polyline of vehicle in the map, the quadratic B-spline algorithm is introduced to fit the vehicle trajectory effectively, which improved the defect of polyline and reflected the true motion curve of vehicle. The monitoring system transmits data stability, which has reached satisfied results of displaying of the vehicle location, accurately track and achieved the goal of optimizing the polyline of vehicle.
remote monitoring; GPRS; vehicle location; quadratic B-spline; trajectory optimization
国家自然科学基金(51505276)
TP277
A
10.19358/j.issn.1674- 7720.2017.11.018
罗成,陈淑荣,剧季.基于GPRS传输的车辆远程监控及行驶轨迹优化[J].微型机与应用,2017,36(11):60-63.
2017-01-08)
罗成(1992-),男,硕士,主要研究方向:车辆远程监控系统及图像处理。
陈淑荣(1972-),女,副教授,主要研究方向:视频分析与处理,现代通信网络及控制技术。
剧季(1992-),男,硕士,主要研究方向:车辆制动系统的稳定性研究。