羅 成,陳淑榮,劇 季
(上海海事大學(xué) 信息工程學(xué)院,上海 201306)
?
基于GPRS傳輸?shù)能?chē)輛遠(yuǎn)程監(jiān)控及行駛軌跡優(yōu)化*
羅 成,陳淑榮,劇 季
(上海海事大學(xué) 信息工程學(xué)院,上海 201306)
為了遠(yuǎn)程監(jiān)控和管理行駛的車(chē)輛,提高車(chē)輛運(yùn)行效率,保障車(chē)輛駕駛安全,利用GPRS網(wǎng)絡(luò)設(shè)計(jì)了基于C/S架構(gòu)的車(chē)輛遠(yuǎn)程監(jiān)控系統(tǒng)。根據(jù)GPS車(chē)輛定位數(shù)據(jù),通過(guò)無(wú)線網(wǎng)絡(luò)將數(shù)據(jù)傳輸至服務(wù)器。詳細(xì)說(shuō)明了數(shù)據(jù)傳輸和數(shù)據(jù)處理的過(guò)程,在客戶(hù)端調(diào)用百度地圖,并實(shí)時(shí)顯示車(chē)輛位置和行駛軌跡。針對(duì)地圖中車(chē)輛彎道行駛折線軌跡的問(wèn)題,引入了二次B樣條擬合算法,對(duì)車(chē)輛行駛軌跡進(jìn)行有效擬合,改善折線軌跡的缺陷,反映車(chē)輛真實(shí)運(yùn)動(dòng)曲線。監(jiān)控系統(tǒng)傳輸數(shù)據(jù)穩(wěn)定,實(shí)現(xiàn)了實(shí)時(shí)顯示車(chē)輛地理位置、精確跟蹤的效果,達(dá)到了優(yōu)化車(chē)輛折線軌跡的目的。
遠(yuǎn)程監(jiān)控;GPRS;車(chē)輛定位;二次B樣條;軌跡優(yōu)化
當(dāng)前,利用無(wú)線網(wǎng)絡(luò)遠(yuǎn)程監(jiān)控行駛中的運(yùn)行設(shè)備已成為一種趨勢(shì)。對(duì)比GSM、GPRS、3G三種無(wú)線通信網(wǎng)絡(luò),GPRS比GSM傳輸速度更快,比3G覆蓋面積更大,能滿(mǎn)足車(chē)輛遠(yuǎn)程信息傳輸[1-2]。通過(guò)在車(chē)輛、移動(dòng)機(jī)器人、飛行器、船舶上安裝GPS、GPRS模塊,實(shí)時(shí)檢測(cè)運(yùn)行設(shè)備的位置信息,能方便地對(duì)設(shè)備進(jìn)行監(jiān)控和管理。
文獻(xiàn)[3]研究了無(wú)人駕駛智能車(chē)的遠(yuǎn)程監(jiān)控系統(tǒng),將GPS定位數(shù)據(jù)與計(jì)算機(jī)系統(tǒng)的GIS地圖進(jìn)行匹配,通過(guò)MapX圖層抽象形成電子地圖,實(shí)現(xiàn)位置監(jiān)控。文獻(xiàn)[4]研究了基于百度地圖定位的車(chē)輛監(jiān)控系統(tǒng),在地圖上進(jìn)行定位,畫(huà)出行駛軌跡。對(duì)比兩種電子地圖定位效果,百度地圖具有地圖展現(xiàn)、路線規(guī)劃、周邊檢索等優(yōu)勢(shì),直接調(diào)用API接口,開(kāi)發(fā)簡(jiǎn)單。但大多數(shù)地圖定位中,車(chē)輛行駛路線顯示的是折線軌跡,缺少精度,未能充分反映車(chē)輛真實(shí)的行駛狀態(tài)。
本文利用C/S架構(gòu),實(shí)現(xiàn)了車(chē)輛遠(yuǎn)程監(jiān)控系統(tǒng)并對(duì)其行駛軌跡進(jìn)行優(yōu)化。通過(guò)GPS技術(shù)獲取車(chē)輛定位數(shù)據(jù),利用GPRS無(wú)線網(wǎng)絡(luò)將車(chē)輛定位數(shù)據(jù)傳輸?shù)竭h(yuǎn)端監(jiān)控系統(tǒng),對(duì)數(shù)據(jù)保存和處理后,客戶(hù)端調(diào)用百度地圖并顯示車(chē)輛的位置;引入二次B樣條擬合算法[5],通過(guò)處理傳輸?shù)亩ㄎ粩?shù)據(jù)點(diǎn),對(duì)折線軌跡進(jìn)行優(yōu)化,達(dá)到精確擬合車(chē)輛的行駛軌跡,實(shí)現(xiàn)車(chē)輛遠(yuǎn)程監(jiān)控的目的。
1.1 監(jiān)控系統(tǒng)結(jié)構(gòu)
整個(gè)監(jiān)控系統(tǒng)分為3個(gè)部分:車(chē)載檢測(cè)部分、網(wǎng)絡(luò)傳輸部分和遠(yuǎn)程監(jiān)控部分,如圖1所示。其中車(chē)載檢測(cè)部分為硬件底層,包括GPS模塊、MC9S12X單片機(jī)、GPRS模塊和試驗(yàn)車(chē)輛。GPS模塊接收車(chē)輛定位數(shù)據(jù),上傳至12X單片機(jī),利用AT指令控制GPRS模塊,通過(guò)GPRS信道和TCP/IP通信協(xié)議將接收數(shù)據(jù)傳輸至遠(yuǎn)程監(jiān)控部分。遠(yuǎn)程監(jiān)控部分基于C/S架構(gòu),由服務(wù)器、客戶(hù)端和SQL Server后臺(tái)數(shù)據(jù)庫(kù)組成,實(shí)現(xiàn)實(shí)時(shí)管理車(chē)輛位置信息和軌跡跟蹤,對(duì)車(chē)輛進(jìn)行動(dòng)態(tài)監(jiān)控。
圖1 監(jiān)控系統(tǒng)整體結(jié)構(gòu)
1.2 監(jiān)控系統(tǒng)功能設(shè)計(jì)
如圖2所示,服務(wù)器主要實(shí)現(xiàn)接收GPRS傳輸?shù)臄?shù)據(jù),原始數(shù)據(jù)保存,與客戶(hù)端進(jìn)行數(shù)據(jù)交互的功能;客戶(hù)端作為監(jiān)控窗口,對(duì)服務(wù)器傳輸?shù)脑紨?shù)據(jù)進(jìn)行處理及保存,實(shí)現(xiàn)車(chē)輛實(shí)時(shí)定位、軌跡跟蹤和B樣條軌跡優(yōu)化等功能。
圖2 遠(yuǎn)程監(jiān)控功能圖
GPRS模塊根據(jù)TCP協(xié)議實(shí)現(xiàn)與服務(wù)器交互,客戶(hù)端通過(guò)Socket方式請(qǐng)求連接服務(wù)器[6],接收車(chē)輛的原始數(shù)據(jù),將數(shù)據(jù)進(jìn)行處理并轉(zhuǎn)化成標(biāo)準(zhǔn)的百度地圖格式數(shù)據(jù),標(biāo)注在地圖中,實(shí)現(xiàn)車(chē)輛實(shí)時(shí)定位和軌跡跟蹤。在地圖中需引入二次B樣條算法,擬合車(chē)輛折線軌跡,反映車(chē)輛真實(shí)行駛路線。
數(shù)據(jù)傳輸過(guò)程如圖1所示,包含三部分:GPS模塊接收車(chē)輛定位數(shù)據(jù);GPRS上傳定位數(shù)據(jù)至服務(wù)器;客戶(hù)端通過(guò)Socket方式與服務(wù)器通信。
GPRS網(wǎng)絡(luò)硬件基于SIM900A系列模塊,包括電源接口、串行接口和SIM卡槽接口。通過(guò)設(shè)置TCP/IP協(xié)議棧,單片機(jī)使用標(biāo)準(zhǔn)的AT指令控制SIM900A模塊,將車(chē)輛定位數(shù)據(jù)利用GPRS網(wǎng)絡(luò)發(fā)送到公網(wǎng)IP地址的服務(wù)器上,實(shí)現(xiàn)車(chē)輛定位數(shù)據(jù)的遠(yuǎn)程傳輸。
遠(yuǎn)程監(jiān)控部分基于VB軟件平臺(tái),采用C/S交互模式。如圖3所示,服務(wù)器和客戶(hù)端分別設(shè)置初始端口號(hào)和固定IP,服務(wù)器始終等待客戶(hù)端連接請(qǐng)求,當(dāng)通過(guò)sckListen.Listen方法監(jiān)聽(tīng)到連接請(qǐng)求時(shí),觸發(fā)服務(wù)器的sckListen_ConnectionRequest事件。當(dāng)服務(wù)器與客戶(hù)端Socket連接建立后,服務(wù)器采用sckServer(Index).GetData方法接收GPRS上傳的車(chē)輛原始定位數(shù)據(jù),調(diào)用sckServer(Index).SendData方法實(shí)現(xiàn)與客戶(hù)端的數(shù)據(jù)傳輸。當(dāng)客戶(hù)端接收到服務(wù)器傳輸?shù)臄?shù)據(jù)后,對(duì)原始GPS定位數(shù)據(jù)進(jìn)行處理,轉(zhuǎn)成百度地圖的坐標(biāo)系格式,保存到本地?cái)?shù)據(jù)庫(kù)中。
圖3 服務(wù)器客戶(hù)端Socket通信
3.1 車(chē)輛實(shí)時(shí)定位顯示
客戶(hù)端調(diào)用百度地圖API[7],主要包括兩個(gè)關(guān)鍵點(diǎn),即車(chē)輛定位數(shù)據(jù)標(biāo)注到百度地圖上和解決百度地圖中大量信息數(shù)據(jù)造成內(nèi)存溢出的問(wèn)題。VB通過(guò)WebBrowser控件連接百度地圖網(wǎng)頁(yè),實(shí)現(xiàn)車(chē)輛定位數(shù)據(jù)傳輸至地圖,處理過(guò)程如下:
(1)連接百度地圖
WebBrowser.NavigateApp.Path& "Baidumap.html"
(2)將經(jīng)度和緯度數(shù)據(jù)加載到地圖中
WebBrowser.Document.parentWindow.execScript "labellong = """ &longitude&"""","javascript"http://經(jīng)度加載
WebBrowser.Document.parentWindow.execScript "labellat = """ &latitude& """", "javascript"http://緯度加載
(3)將GPS坐標(biāo)系轉(zhuǎn)化為百度地圖坐標(biāo)系
WebBrowser.Document.parentWindow.execScript"BMap.Convertor.translate(newBMap.Point(labellong,labellat),0,translateCallback)", "javascript"
由于行駛車(chē)輛的位置信息不斷更新,監(jiān)控系統(tǒng)需處理大量實(shí)時(shí)定位數(shù)據(jù)并在地圖中標(biāo)注車(chē)輛位置,需要對(duì)實(shí)時(shí)接收的大量數(shù)據(jù)設(shè)計(jì)合理的數(shù)據(jù)結(jié)構(gòu)。如果采取數(shù)組方式存儲(chǔ)這些數(shù)據(jù),容易造成內(nèi)存溢出。設(shè)計(jì)中采用隊(duì)列的存儲(chǔ)結(jié)構(gòu),按照“先進(jìn)先出”的方式對(duì)數(shù)據(jù)進(jìn)行訪問(wèn)處理。為保證繪制車(chē)輛運(yùn)行軌跡的實(shí)時(shí)性,采用了長(zhǎng)度為2的數(shù)組,使用百度地圖中BMap.Polyline方法遍歷數(shù)組中的點(diǎn)繪制軌跡。當(dāng)?shù)谝粋€(gè)點(diǎn)傳入數(shù)組,進(jìn)行百度地圖定位,第二個(gè)點(diǎn)傳入數(shù)組開(kāi)始畫(huà)軌跡。之后每傳入一個(gè)點(diǎn),就將前一個(gè)點(diǎn)清除,始終保持?jǐn)?shù)組中兩個(gè)點(diǎn),可消除軌跡繪制中內(nèi)存溢出的問(wèn)題。
3.2 二次B樣條算法及車(chē)輛軌跡優(yōu)化
車(chē)輛在彎道行駛中,當(dāng)速度過(guò)大時(shí),兩點(diǎn)的定位距離拉大。百度地圖BMap.Polyline方法繪制出兩點(diǎn)直線,出現(xiàn)明顯的折線軌跡,不能真實(shí)反映車(chē)輛運(yùn)動(dòng)的曲線軌跡。因此,引入了二次B樣條算法,對(duì)折線軌跡進(jìn)行實(shí)時(shí)優(yōu)化。
3.2.1 B樣條算法原理
B樣條曲線由一組控制頂點(diǎn)確定,按順序連接形成控制多邊形,B樣條曲線逼近擬合多邊形,通過(guò)確定控制點(diǎn)的位置,可以控制曲線的形狀[8]。B樣條數(shù)學(xué)表達(dá)式為:
(1)
其中,k=0,1,…,m,表示為第k段n次B樣條曲線段,全體曲線段稱(chēng)為n次B樣條曲線;Pi+k表示第k段曲線的第i個(gè)控制點(diǎn)。其中,基函數(shù)定義為:
(2)
t∈[0,1],i=0,1,2…,n
令n=2,則二次B樣條曲線的基函數(shù)如下:
(3)
根據(jù)模擬車(chē)輛在彎道行駛的過(guò)程,如圖4所示,6個(gè)控制頂點(diǎn)相連接形成原始折線軌跡,為了選取合適的B樣條算法更真實(shí)地?cái)M合車(chē)輛實(shí)時(shí)運(yùn)行軌跡,實(shí)驗(yàn)中分別采用了二次B樣條和三次B樣條進(jìn)行擬合。在引入二次B樣條算法后,6個(gè)頂點(diǎn)分別控制生成了4段二次B樣條曲線段。圖中,每條曲線段由相鄰的3個(gè)頂點(diǎn)控制,分別與對(duì)應(yīng)的折線段相切。而三次B樣條曲線由相鄰的4個(gè)頂點(diǎn)控制,6個(gè)頂點(diǎn)分別形成3段曲線段。與二次B樣條相比,相同控制頂點(diǎn)生成的曲線段不同,擬合出的軌跡精度存在差距,可見(jiàn),二次B樣條擬合更準(zhǔn)確,更貼近原始折線軌跡。因此,設(shè)計(jì)中選用二次B樣條算法,在百度地圖中對(duì)車(chē)輛的行駛軌跡進(jìn)行實(shí)時(shí)優(yōu)化。
圖4 二次和三次B樣條曲線擬合對(duì)比圖
3.2.2 二次B樣條地圖軌跡優(yōu)化效果
在百度地圖軌跡優(yōu)化中,二次B樣條算法生成的曲線段由無(wú)數(shù)個(gè)點(diǎn)組成,通過(guò)合理控制B樣條公式中參數(shù)t循環(huán)的步長(zhǎng),選取step為1/10,每條曲線段擬合出10個(gè)點(diǎn)。如圖5所示,6個(gè)控制頂點(diǎn)形成4條曲線段,生成40個(gè)擬合點(diǎn)。
圖5 二次B樣條軌跡擬合效果
在監(jiān)控系統(tǒng)的客戶(hù)端,二次B樣條對(duì)輸入的經(jīng)緯度點(diǎn)進(jìn)行處理:
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)是二維數(shù)組中的3個(gè)控制頂點(diǎn),也表示原始數(shù)據(jù)的3個(gè)經(jīng)緯度點(diǎn);lon和lat分別為二次B樣條處理后的經(jīng)緯度點(diǎn)。num為所有控制頂點(diǎn)數(shù)。
圖6 二次B樣條軌跡優(yōu)化流程
二次B樣條算法對(duì)軌跡優(yōu)化的流程如圖6所示,首先初始化二次B樣條公式中的參數(shù)t、i、num,控制t的范圍在[0,1]。讀入經(jīng)緯度數(shù)據(jù)點(diǎn)后,判斷控制點(diǎn)個(gè)數(shù)num大小。因二次B樣條曲線需要3個(gè)頂點(diǎn)控制生成,當(dāng)num=3時(shí),形成3個(gè)控制點(diǎn),第一次進(jìn)入B樣條處理公式。num>3時(shí),根據(jù)B樣條局部性質(zhì)可知,改動(dòng)其中一個(gè)控制頂點(diǎn),只會(huì)對(duì)相鄰下一段曲線產(chǎn)生影響[9]。因此,客戶(hù)端每輸入一個(gè)控制點(diǎn)(經(jīng)緯度點(diǎn)),經(jīng)二次B樣條算法處理后,產(chǎn)生10個(gè)擬合點(diǎn),比原始的控制頂點(diǎn)密集。將擬合點(diǎn)標(biāo)注在百度地圖上,修正折線軌跡,使擬合生成的軌跡曲線能更貼切地反映車(chē)輛行駛的真實(shí)路線。
針對(duì)上述系統(tǒng)方案和功能要求,在實(shí)現(xiàn)了車(chē)輛遠(yuǎn)程監(jiān)控系統(tǒng)后,對(duì)車(chē)輛實(shí)時(shí)定位和軌跡優(yōu)化進(jìn)行了性能測(cè)試。其中GPRS傳輸?shù)牟ㄌ芈试O(shè)置為9 600,GPS數(shù)據(jù)更新率為1 Hz。
實(shí)驗(yàn)結(jié)果顯示,車(chē)輛行駛過(guò)程中,GPS能實(shí)時(shí)記錄車(chē)輛位置信息,通過(guò)GPRS網(wǎng)絡(luò)將數(shù)據(jù)包發(fā)送至遠(yuǎn)程監(jiān)控部分。服務(wù)器接收數(shù)據(jù)后傳輸至客戶(hù)端,進(jìn)行經(jīng)緯度糾偏處理,在百度地圖上精確定位車(chē)輛位置并實(shí)時(shí)繪制行駛軌跡。圖7顯示了百度地圖上車(chē)輛在校園中的行駛軌跡。經(jīng)多次反復(fù)測(cè)試,車(chē)輛定位誤差較小,實(shí)時(shí)定位效果較真實(shí)地反映了車(chē)輛行駛路線。
圖7 車(chē)輛實(shí)時(shí)行駛軌跡圖
圖8顯示了百度地圖中車(chē)輛的原始運(yùn)行軌跡,在彎道行駛中折線軌跡明顯,不能精確地描述車(chē)輛運(yùn)行的真實(shí)路線。圖9引入二次B樣條算法,在彎道行駛過(guò)程中對(duì)原始的經(jīng)緯度數(shù)據(jù)點(diǎn)進(jìn)行處理,對(duì)折線軌跡進(jìn)行擬合,實(shí)時(shí)優(yōu)化了車(chē)輛行駛軌跡,使得運(yùn)行軌跡變得圓滑,較真實(shí)地?cái)M合了車(chē)輛的運(yùn)動(dòng)曲線,有效地解決了車(chē)輛在彎道行駛中的折線問(wèn)題。
圖8 未加入B樣條的軌跡圖
圖9 加入二次B樣條的軌跡優(yōu)化圖
基于GPRS無(wú)線通信實(shí)現(xiàn)了車(chē)輛遠(yuǎn)程監(jiān)控系統(tǒng),定位數(shù)據(jù)成功從車(chē)載檢驗(yàn)部分傳輸至遠(yuǎn)程監(jiān)控部分,在客戶(hù)端引入二次B樣條算法優(yōu)化地圖的折線軌跡,并在百度地圖上實(shí)時(shí)擬合顯示了車(chē)輛的真實(shí)行駛路線。優(yōu)化后的監(jiān)控系統(tǒng)可運(yùn)用在車(chē)輛遠(yuǎn)程實(shí)時(shí)監(jiān)控、無(wú)人車(chē)軌跡規(guī)劃、機(jī)器人軌跡跟蹤等諸多方面。
[1] 馮曉星, 毛云祥. 基于GPRS/3G的遠(yuǎn)程通信實(shí)驗(yàn)系統(tǒng)組網(wǎng)方案實(shí)現(xiàn)[J]. 無(wú)線電通信技術(shù), 2015(4):96-99.
[2] 洪亮. 基于GPS/GPRS的嵌入式車(chē)載通信終端的設(shè)計(jì)與研究[D]. 石家莊:河北科技大學(xué), 2010.
[3] 趙丹丹.無(wú)人駕駛智能車(chē)遠(yuǎn)程監(jiān)控系統(tǒng)[D].西安:西安工業(yè)大學(xué), 2014.
[4] 堯應(yīng)平. 基于GPS、3G車(chē)輛定位及車(chē)載視頻監(jiān)控系統(tǒng)的設(shè)計(jì)與研究[D]. 昆明:昆明理工大學(xué), 2013.
[5] 王增波,彭仁忠,宮兆剛.B樣條曲線生成原理及實(shí)現(xiàn)[J].石河子大學(xué)學(xué)報(bào): 自然科學(xué)版,2009,27(1):118-121.
[6] 張?jiān)蕜?劉常春,劉偉,等.基于Socket和多線程的遠(yuǎn)程監(jiān)控系統(tǒng)[J]. 控制工程, 2006, 13(2):175-177.
[7] 賈振,韓印.基于百度地圖API的智能交通信息展示[J].物流工程與管理,2016,38 (7):211-213.
[8] 李林峰, 馬蕾. 三次均勻B樣條在工業(yè)機(jī)器人軌跡規(guī)劃中的應(yīng)用研究[J]. 科學(xué)技術(shù)與工程, 2013, 13(13):3621-3625.
[9] 郭懷天. B樣條曲線及曲面研究[D]. 合肥:合肥工業(yè)大學(xué), 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
國(guó)家自然科學(xué)基金(51505276)
TP277
A
10.19358/j.issn.1674- 7720.2017.11.018
羅成,陳淑榮,劇季.基于GPRS傳輸?shù)能?chē)輛遠(yuǎn)程監(jiān)控及行駛軌跡優(yōu)化[J].微型機(jī)與應(yīng)用,2017,36(11):60-63.
2017-01-08)
羅成(1992-),男,碩士,主要研究方向:車(chē)輛遠(yuǎn)程監(jiān)控系統(tǒng)及圖像處理。
陳淑榮(1972-),女,副教授,主要研究方向:視頻分析與處理,現(xiàn)代通信網(wǎng)絡(luò)及控制技術(shù)。
劇季(1992-),男,碩士,主要研究方向:車(chē)輛制動(dòng)系統(tǒng)的穩(wěn)定性研究。