羅 成,陳淑榮,劇 季
(上海海事大學 信息工程學院,上海 201306)
?
基于GPRS傳輸的車輛遠程監控及行駛軌跡優化*
羅 成,陳淑榮,劇 季
(上海海事大學 信息工程學院,上海 201306)
為了遠程監控和管理行駛的車輛,提高車輛運行效率,保障車輛駕駛安全,利用GPRS網絡設計了基于C/S架構的車輛遠程監控系統。根據GPS車輛定位數據,通過無線網絡將數據傳輸至服務器。詳細說明了數據傳輸和數據處理的過程,在客戶端調用百度地圖,并實時顯示車輛位置和行駛軌跡。針對地圖中車輛彎道行駛折線軌跡的問題,引入了二次B樣條擬合算法,對車輛行駛軌跡進行有效擬合,改善折線軌跡的缺陷,反映車輛真實運動曲線。監控系統傳輸數據穩定,實現了實時顯示車輛地理位置、精確跟蹤的效果,達到了優化車輛折線軌跡的目的。
遠程監控;GPRS;車輛定位;二次B樣條;軌跡優化
當前,利用無線網絡遠程監控行駛中的運行設備已成為一種趨勢。對比GSM、GPRS、3G三種無線通信網絡,GPRS比GSM傳輸速度更快,比3G覆蓋面積更大,能滿足車輛遠程信息傳輸[1-2]。通過在車輛、移動機器人、飛行器、船舶上安裝GPS、GPRS模塊,實時檢測運行設備的位置信息,能方便地對設備進行監控和管理。
文獻[3]研究了無人駕駛智能車的遠程監控系統,將GPS定位數據與計算機系統的GIS地圖進行匹配,通過MapX圖層抽象形成電子地圖,實現位置監控。文獻[4]研究了基于百度地圖定位的車輛監控系統,在地圖上進行定位,畫出行駛軌跡。對比兩種電子地圖定位效果,百度地圖具有地圖展現、路線規劃、周邊檢索等優勢,直接調用API接口,開發簡單。但大多數地圖定位中,車輛行駛路線顯示的是折線軌跡,缺少精度,未能充分反映車輛真實的行駛狀態。
本文利用C/S架構,實現了車輛遠程監控系統并對其行駛軌跡進行優化。通過GPS技術獲取車輛定位數據,利用GPRS無線網絡將車輛定位數據傳輸到遠端監控系統,對數據保存和處理后,客戶端調用百度地圖并顯示車輛的位置;引入二次B樣條擬合算法[5],通過處理傳輸的定位數據點,對折線軌跡進行優化,達到精確擬合車輛的行駛軌跡,實現車輛遠程監控的目的。
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樣條算法,擬合車輛折線軌跡,反映車輛真實行駛路線。
數據傳輸過程如圖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.1 車輛實時定位顯示
客戶端調用百度地圖API[7],主要包括兩個關鍵點,即車輛定位數據標注到百度地圖上和解決百度地圖中大量信息數據造成內存溢出的問題。VB通過WebBrowser控件連接百度地圖網頁,實現車輛定位數據傳輸至地圖,處理過程如下:
(1)連接百度地圖
WebBrowser.NavigateApp.Path& "Baidumap.html"
(2)將經度和緯度數據加載到地圖中
WebBrowser.Document.parentWindow.execScript "labellong = """ &longitude&"""","javascript"http://經度加載
WebBrowser.Document.parentWindow.execScript "labellat = """ &latitude& """", "javascript"http://緯度加載
(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個擬合點,比原始的控制頂點密集。將擬合點標注在百度地圖上,修正折線軌跡,使擬合生成的軌跡曲線能更貼切地反映車輛行駛的真實路線。
針對上述系統方案和功能要求,在實現了車輛遠程監控系統后,對車輛實時定位和軌跡優化進行了性能測試。其中GPRS傳輸的波特率設置為9 600,GPS數據更新率為1 Hz。
實驗結果顯示,車輛行駛過程中,GPS能實時記錄車輛位置信息,通過GPRS網絡將數據包發送至遠程監控部分。服務器接收數據后傳輸至客戶端,進行經緯度糾偏處理,在百度地圖上精確定位車輛位置并實時繪制行駛軌跡。圖7顯示了百度地圖上車輛在校園中的行駛軌跡。經多次反復測試,車輛定位誤差較小,實時定位效果較真實地反映了車輛行駛路線。

圖7 車輛實時行駛軌跡圖
圖8顯示了百度地圖中車輛的原始運行軌跡,在彎道行駛中折線軌跡明顯,不能精確地描述車輛運行的真實路線。圖9引入二次B樣條算法,在彎道行駛過程中對原始的經緯度數據點進行處理,對折線軌跡進行擬合,實時優化了車輛行駛軌跡,使得運行軌跡變得圓滑,較真實地擬合了車輛的運動曲線,有效地解決了車輛在彎道行駛中的折線問題。

圖8 未加入B樣條的軌跡圖

圖9 加入二次B樣條的軌跡優化圖
基于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-),男,碩士,主要研究方向:車輛制動系統的穩定性研究。