《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > 基于Windows Mobile的個人移動導(dǎo)航系統(tǒng)
基于Windows Mobile的個人移動導(dǎo)航系統(tǒng)
來源:微型機與應(yīng)用2013年第2期
丁曉明,劉偉永,李 瑾
(山東科技大學(xué) 信息與電氣工程學(xué)院,山東 青島266590)
摘要: 借鑒現(xiàn)有導(dǎo)航產(chǎn)品優(yōu)點,結(jié)合GPS、GIS以及嵌入式開發(fā)技術(shù),開發(fā)了個人移動導(dǎo)航系統(tǒng)。導(dǎo)航系統(tǒng)以微軟的Windows Mobile 6.5為操作系統(tǒng),采用ST-92 GPS模塊接收GPS數(shù)據(jù)。軟件開發(fā)采用Visual Studio 2005開發(fā)環(huán)境,嵌入Mapx Mobile組件,通過RS232接口接收并處理模塊數(shù)據(jù),實現(xiàn)了實時定位、路徑記錄等功能。對地圖匹配算法進行了分析,并對系統(tǒng)功能進行了驗證。
關(guān)鍵詞: 軟件 Mapx Mobile 嵌入式 GPS
Abstract:
Key words :

摘  要: 借鑒現(xiàn)有導(dǎo)航產(chǎn)品優(yōu)點,結(jié)合GPS、GIS以及嵌入式開發(fā)技術(shù),開發(fā)了個人移動導(dǎo)航系統(tǒng)。導(dǎo)航系統(tǒng)以微軟的Windows Mobile 6.5為操作系統(tǒng),采用ST-92 GPS模塊接收GPS數(shù)據(jù)。軟件開發(fā)采用Visual Studio 2005開發(fā)環(huán)境,嵌入Mapx Mobile組件,通過RS232接口接收并處理模塊數(shù)據(jù),實現(xiàn)了實時定位、路徑記錄等功能。對地圖匹配算法進行了分析,并對系統(tǒng)功能進行了驗證。
關(guān)鍵詞: Mapx Mobile;嵌入式;GPS

    如今,隨著交通工具的普及和交通狀況的改善,人們的移動性逐漸增強,對于空間信息的依賴更大。全球定位系統(tǒng)GPS(Global Positioning System)能有效解決此類問題,為出行提供便捷服務(wù)[1]。目前車載導(dǎo)航產(chǎn)業(yè)蓬勃發(fā)展,然而車載GPS系統(tǒng)受到道路限制,不能隨時隨地提供位置信息。個人移動導(dǎo)航系統(tǒng)基于移動終端(如手機、掌上電腦等)設(shè)計,可以彌補車載GPS系統(tǒng)受地形限制的不足,為個人用戶提供方便可靠的位置信息,幫助用戶在陌生環(huán)境中快速地找到目的地,具有體積小、便于攜帶等優(yōu)點。
1 系統(tǒng)構(gòu)成與功能
    個人移動地理信息系統(tǒng)GIS(Geographic Information System)是在傳統(tǒng)GIS基礎(chǔ)上利用空間定位手段結(jié)合嵌入式技術(shù),以數(shù)字地圖為顯示背景、與個人手持設(shè)備相結(jié)合,通過無線通信網(wǎng)絡(luò)提供移動目標(biāo)實時位置及周圍信息的系統(tǒng)。本文根據(jù)大多數(shù)用戶需求及我國網(wǎng)絡(luò)通信現(xiàn)狀開發(fā)個人移動導(dǎo)航系統(tǒng),系統(tǒng)主要由五部分組成,如圖1所示。

    系統(tǒng)從GPS模塊獲取數(shù)據(jù),根據(jù)NMEA-0183協(xié)議對數(shù)據(jù)進行篩選處理;由地圖匹配模塊將獲取的位置信息與電子地圖進行匹配;位置顯示模塊在完成地圖匹配的前提下,將位置信息實時地在地圖上顯示出來,它是路徑記錄模塊的基礎(chǔ);路徑記錄模塊將行進位置記錄下來,將之前和當(dāng)前位置同時顯示出來,并不斷更新,從而實現(xiàn)行進軌跡顯示功能;將地圖的縮放及移動功能設(shè)計于輔助功能模塊中。
    本系統(tǒng)可根據(jù)用戶需求實現(xiàn)地圖縮放、平移、實時定位、路徑顯示等功能,有效地適用于個人移動定位。
2 開發(fā)平臺搭建
2.1 硬件平臺

    本系統(tǒng)采用Goeget公司生產(chǎn)的ST-92系列GPS模塊,該模塊使用SIFR III芯片組,可以同時追蹤20個衛(wèi)星信號,具有靈敏度高(-159 dBm)、定位坐標(biāo)精度高(可達5 m(1 Ω))、體積小、支持NMEA-0183協(xié)議等特點。GPS數(shù)據(jù)通過RS232接口傳遞給搭載有Windows Mobile系統(tǒng)的開發(fā)板,進行數(shù)據(jù)提取利用。系統(tǒng)結(jié)構(gòu)示意圖如圖2所示。

2.2 軟件開發(fā)平臺
    Windows Mobile操作系統(tǒng)是微軟專門為手持移動設(shè)備推出的“移動版Windows”,它將Windows桌面擴展到個人設(shè)備,使用Windows Mobile操作系統(tǒng)的設(shè)備主要有手機、PDA等[2]。導(dǎo)航系統(tǒng)采用微軟的Windows Mobile 6.5操作系統(tǒng)以及Windows Mobile 6 Professional SDK。開發(fā)平臺選用Visual Studio 2005,它針對.net開發(fā),并且提供了智能設(shè)備模擬器,可真實地模擬物理機器代碼,把軟件安裝在這個模擬器上運行,可使開發(fā)更加方便。
2.3 Mapx Mobile組件的嵌入
    Mapx Mobile是Mapinfo公司提供的一種基于OLE(Object Linking and Embedding)的嵌入式GIS組件,可以嵌入在Pocket PC、Windows Mobile平臺下的應(yīng)用程序中,運用Mapx Mobile建立的軟件可單獨在設(shè)備上運行,并且可以與Pocket PC的Windows CE操作系統(tǒng)兼容[3]。
    對Mapx Mobile組件的嵌入,首先需要在PC機安裝Mapx Mbile,在VS2005工具箱選項窗口中,選擇COM組件欄,勾選Mapinfo Mapx Mobile V5選項,然后在工具箱中可看到新增的Mapx工具。對地圖操作時需要將組件拖到對話框窗口中,然后在VS2005界面中可對地圖屬性進行操作,選擇載入需要的地圖。
    Mapx Mobile是移動GIS的高性能低成本的解決方案,具有標(biāo)準(zhǔn)用戶控制功能,可有效地嵌入到個人移動導(dǎo)航系統(tǒng)中[4]。
3 系統(tǒng)實現(xiàn)過程分析
3.1 定位數(shù)據(jù)流獲取與分析

    GPS模塊與應(yīng)用程序間通過RS232接口交互信息,因此需要在VS2005平臺上編寫對串口的驅(qū)動。
    m_hComm=CreateFile(Port,GENERIC_READ|GENERIC_WRITE,0,0,OPEN_EXISTING,0,0); //打開串口
    dcb.BaudRate=9600; //設(shè)置波特率為9 600
    dcb.ByteSize=8; //數(shù)據(jù)長度為8 B
    dcb.Parity=0; //無校驗位
    dcb.StopBits=0; //無停止位
    通過進入函數(shù)LRESULT CwindowsmobileDlg::OnData-
ArrivedMsg(WPARAM wParam,LPARAM lParam)來處理收到的數(shù)據(jù)。因為讀到的數(shù)據(jù)不是CString型,所以需要做進一步處理。
    unsigned char *data=(unsigned char*)wParam;
    m_strDataReceived=CString(data).Left(length);
    以下數(shù)據(jù)是GPS模塊接收到的部分?jǐn)?shù)據(jù)。
    $GPGGA,014717.000,3600.1142,N,12007.3654,E,
1,06,4.7,-4.3,M,4.4,M,,0000*44
    $GPGSA,A,3,27,15,26,02,09,29,,,,,,,6.7,4.7,4.8*39
    $GPRMC,014717.000,A,3600.1142,N,12007.3654,E,
0.00,20.45,220410,,,A*5F
    本系統(tǒng)只需要提取經(jīng)度、緯度和時間數(shù)據(jù),根據(jù)NMEA-0183協(xié)議,這里篩選接收GPGGA下的數(shù)據(jù)[5]。
3.2 定位點與路徑線的建立
    首先創(chuàng)建圖層,并將其設(shè)置為動態(tài)圖層,然后創(chuàng)建動態(tài)圖元,對其進行初始化,將其與mapx插件建立關(guān)聯(lián)。初始化中可設(shè)置定位點的大小、形狀及顏色。
    CMapX LayergpsLayer=m_ctrlMapX;
    GetLayers().CreateLayer(_T("GPSLayer"),NULL,1);
//創(chuàng)建動態(tài)圖層GPSLayer
    m_ctrlMapX.GetLayers().SetAnimationLayer(gpsLayer);
//設(shè)置圖層GPSLayer為動態(tài)圖層
    CMapXFeature  mobileFtr;//動態(tài)點圖元
    mobileFtr.CreateDispatch(mobileFtr.GetClsid());//初始化
    mobileFtr.Attach(m_ctrlMapX.GetDispatch());
//與m_ctrlMapX建立關(guān)聯(lián)
    通過語句mobile.GetPoint().Set(gpsLongitude, gpsLatitude)將當(dāng)前坐標(biāo)數(shù)據(jù)與電子地圖進行關(guān)聯(lián),然后通過mobile.Update()更新到地圖上并顯示出來。
    對于路徑線的創(chuàng)建,需要對之前的定位點進行儲存,獲得定位點集[6]。通過CMapX Feature中的CreateLine函數(shù)將儲存的點用直線連接起來,可利用CMapXStyle中提供的函數(shù)設(shè)置線的寬度、顏色等屬性。
3.3 地圖匹配算法分析
    GIS基礎(chǔ)數(shù)據(jù)主要來源于地形圖、航片、衛(wèi)片等。車載及個人導(dǎo)航系統(tǒng)主要數(shù)據(jù)源是地形圖,地形圖通過掃描矢量化將地圖轉(zhuǎn)換成矢量化數(shù)字地圖。就掃描矢量化而言,除了原圖質(zhì)量影響數(shù)據(jù)經(jīng)度外,在掃描過程中圖像預(yù)處理、矢量化過程等各個環(huán)節(jié)對數(shù)據(jù)質(zhì)量都有一定程度的影響[7]。為保證定位準(zhǔn)確性,在實際應(yīng)用中需要對地圖進行匹配研究。
    地圖匹配需要確定在給定定位數(shù)據(jù)和地圖信息的基礎(chǔ)上獲得最可能的路段,以及行人在該路段上最可能的位置。
    本文采用最短距離匹配算法[8],該算法根據(jù)道路屬性預(yù)先設(shè)置一個閾值,通過計算當(dāng)前GPS數(shù)據(jù)與各路段間的距離以及該數(shù)據(jù)在該路段上最短距離點,將在閾值范圍內(nèi)的各路段匹配距離進行比較,得到一條最短路徑。
    圖3表示基于投影的匹配算法基本原理,圖中V點表示行人當(dāng)前位置,L1和L2表示附近的兩條路,V1、V2表示V點在兩條路上的投影,投影距離表示為d1、d2。在候選道路中選擇距離最短的作為匹配道路,并將在該條道路上的投影點認(rèn)為是行人的當(dāng)前位置。該算法可以在很大程度上消除地圖匹配中的各種誤差產(chǎn)生的影響。

    地圖匹配算法具體實現(xiàn)過程如圖4所示。

3.4 地圖縮放及平移
    地圖縮放及平移包括地圖的縮小、放大及平移。實現(xiàn)函數(shù)為SetCur2rentTool( )。
    m_ctrlMapX.SetCurrentTool(miZoomOutTool);//縮小
    m_ctrlMapX.SetCurrentTool(miZoomInTool);//放大
    m_ctrlMapX.SetCurrentTool(miPanTool);//平移
    m_ctrlMap為Map對象設(shè)定了以上工具,分別是縮小、放大和平移工具,點擊鼠標(biāo)即可進行地圖瀏覽。
4 系統(tǒng)驗證
    在開發(fā)板(手機)上安裝MapX組件,該組件位于PC機的MapX安裝目錄下,將開發(fā)的軟件和對應(yīng)的地圖拷貝到開發(fā)板中的maps文件夾中,雙擊運行即可。拷貝過程使用的是微軟的ActiveSync同步工具,它允許PC機與設(shè)備之間傳輸數(shù)據(jù)文件。
    系統(tǒng)驗證時采用青島市區(qū)地圖,軟件運行界面示意圖如圖5所示。測試中端口號選擇為COM1,波特率為9 600 b/s,單擊右下角按鈕后啟動系統(tǒng)。GPS數(shù)據(jù)通過RS232接口進入開發(fā)板中,軟件進行處理后將位置坐標(biāo)與電子地圖進行匹配,將該點位置以紅色五星符號在地圖上顯示出來,同時用戶可在界面下方看到經(jīng)度及緯度數(shù)據(jù)。隨著位置的改變,定位點在地圖上會隨之實時移動,可準(zhǔn)確地進行實時定位顯示。

 

 

    經(jīng)過如上測試,系統(tǒng)可正確地、實時地獲取顯示位置信息并記錄行進軌跡,可滿足用戶基本導(dǎo)航需求。
    本文利用Visual Studio平臺,嵌入MapX Mobile地圖化組件,設(shè)計了一款基于Windows Mobile系統(tǒng)的導(dǎo)航軟件,并結(jié)合ST-92 GPS模塊,開發(fā)了一個移動導(dǎo)航定位系統(tǒng),同時對其具體實現(xiàn)過程進行了闡述。本系統(tǒng)搭載青島市地圖進行測試,通過串口獲取GPS數(shù)據(jù),完成了數(shù)據(jù)與電子地圖匹配,完成了地圖的顯示、縮放、平移,實現(xiàn)了定位導(dǎo)航功能。
參考文獻
[1] 孫兵.基于AGPS的智能導(dǎo)航系統(tǒng)軟件開發(fā)與研究[D]. 北京:北京郵電大學(xué),2010.
[2] 凌澤軍,魏文娟,孫震強.智能終端的主流平臺——Windows Mobile分析[J].移動通信,2010(9):78-82.
[3] MapInfo Corporation.MapInfo MapX Mobile production introduce[S].2003.
[4] 李凱鋒,呂志平.基于MapX Mobile開發(fā)的個人移動導(dǎo)航系統(tǒng)[J].海洋測繪,2006,26(9):99-103.
[5] 錢恭斌,尹文濤,王文富.基于WM6.0操作系統(tǒng)的智能手機定位監(jiān)控系統(tǒng)設(shè)計[J].電子技術(shù)應(yīng)用,2009,35(12):24-30.
[6] 馬紅皎,胡永輝,張志武.使用Mapx Mobile開發(fā)Pocket PC上導(dǎo)航軟件[C].全國時間頻率學(xué)術(shù)交流會,2005.
[7] 曾波,江資斌.GPS車載導(dǎo)航系統(tǒng)的地圖匹配算法[J].測繪工程,2004,13(3):65-67.
[8] 吳忻.基于GPS定位和電子地圖的最佳路徑搜索[D].西安:西安電子科技大學(xué),2006.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。