国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于GPS的自主移動(dòng)機(jī)器人導(dǎo)航定位系統(tǒng)的實(shí)現(xiàn)

2011-07-13 06:02:38宋玉龍常然然
電子設(shè)計(jì)工程 2011年20期
關(guān)鍵詞:經(jīng)緯度移動(dòng)機(jī)器人串口

宋玉龍,常然然

(1.西北工業(yè)大學(xué) 電子信息學(xué)院 陜西 西安 710129;2.西北工業(yè)大學(xué) 管理學(xué)院 陜西 西安 710129)

移動(dòng)機(jī)器人是一種在復(fù)雜的環(huán)境下工作的,具有自規(guī)劃、自組織、自適應(yīng)能力的機(jī)器人。在移動(dòng)機(jī)器人的相關(guān)技術(shù)研究中,導(dǎo)航技術(shù)可以說(shuō)是其核心技術(shù),也是其實(shí)現(xiàn)真正的智能化和完全的自主移動(dòng)的關(guān)鍵技術(shù)。移動(dòng)機(jī)器人的導(dǎo)航方式很多,有慣性導(dǎo)航、視覺(jué)導(dǎo)航、基于傳感器數(shù)據(jù)導(dǎo)航、衛(wèi)星導(dǎo)航等[1]。對(duì)于室外環(huán)境來(lái)說(shuō),GPS衛(wèi)星導(dǎo)航是首選,而且為了提高機(jī)器人導(dǎo)航定位精度以及應(yīng)變復(fù)雜環(huán)境的能力,可以與視覺(jué)導(dǎo)航和傳感器數(shù)據(jù)導(dǎo)航相結(jié)合,這樣機(jī)器人就可以獨(dú)立完成導(dǎo)盲、勘探、自動(dòng)貨運(yùn)等復(fù)雜任務(wù)。

這里我們讓機(jī)器人事先采集行進(jìn)路徑上某些點(diǎn)的位置坐標(biāo)構(gòu)建路線(xiàn),行進(jìn)過(guò)程中實(shí)時(shí)獲取當(dāng)前坐標(biāo)和移動(dòng)方向,并與構(gòu)建的路線(xiàn)作比較,從而指導(dǎo)機(jī)器人運(yùn)動(dòng)。

圖1 系統(tǒng)結(jié)構(gòu)Fig.1 System structure

1 系統(tǒng)介紹

2 硬件部分

如圖1所示,本系統(tǒng)采用以GPS導(dǎo)航為主,以攝像頭和超聲波傳感器為輔的方式來(lái)實(shí)現(xiàn)機(jī)器人的自主移動(dòng)。不過(guò)要想自主移動(dòng),只有實(shí)時(shí)GPS導(dǎo)航數(shù)據(jù)是不夠的,機(jī)器人要到達(dá)某地還必須知道該目的地的位置,以及可走的路徑,這就需要有地圖作為參照??梢允褂镁哂薪?jīng)緯度信息的電子地圖來(lái)作匹配,也可以采用更簡(jiǎn)單的辦法,即事先在行進(jìn)路徑上用GPS接收裝置測(cè)得幾個(gè)點(diǎn)的經(jīng)緯度信息,從而構(gòu)成簡(jiǎn)易的行進(jìn)路線(xiàn)圖,這種方法適用于目的地比較固定且數(shù)量較少的情況。

本設(shè)計(jì)以Samsang公司的ARM芯片S3C6410為處理器,嵌入Windows CE 6.0操作系統(tǒng),外圍除了常用的顯示(LCD、LED)、接口(串口、USB接口、網(wǎng)絡(luò)接口、電源接口)資源外,還連接了GPS模塊(包括GPS天線(xiàn))、攝像頭和超聲波傳感器。以這塊電路板作為機(jī)器人的上位機(jī),綜合3個(gè)模塊獲取的數(shù)據(jù)來(lái)指導(dǎo)機(jī)器人的運(yùn)動(dòng)。下面將主要介紹GPS模塊部分。

2.1 GPS模塊簡(jiǎn)介

采用廣州鑫圖科技有限公司的GPS模塊GS-91。這是一款體積小巧、高性能、低功耗的GPS引擎板,它使用SiRF Star III芯片組,可以一次跟蹤20顆衛(wèi)星,跟蹤靈敏度高達(dá)-159dBm。模塊具有兩個(gè)串口,4 MB的Flash,支持NMEA-0183數(shù)據(jù)格式輸出[2]。

2.2 應(yīng)用電路

圖2是GS-91模塊的應(yīng)用電路原理圖。其中,RXA是GS-91用于接收軟件指令的主要接收通道,TXA是用于輸出導(dǎo)航和測(cè)量數(shù)據(jù)的主要發(fā)送通道。

2.3 輸出電文格式[3]

GS-91模塊導(dǎo)航數(shù)據(jù)輸出采用NMEA-0183標(biāo)準(zhǔn),它是由 NMEA(National Marine Electronics Association,美國(guó)國(guó)家海事電子協(xié)會(huì))于1983年制定的。NMEA-0183數(shù)據(jù)采用ASCII標(biāo)準(zhǔn)。數(shù)據(jù)傳輸以“語(yǔ)句”的方式進(jìn)行,每個(gè)語(yǔ)句均以“$”開(kāi)頭,然后是兩個(gè)字母的“識(shí)別符”和三個(gè)字母的“語(yǔ)句名”組成的ID信息頭,接著就是以逗號(hào)分割的數(shù)據(jù)體,語(yǔ)句末尾為校驗(yàn)和,整條語(yǔ)句以回車(chē)換行符結(jié)束。

圖2 GS-91應(yīng)用電路原理圖Fig.2 GS-91 application circuit schematic

NMEA-0183的數(shù)據(jù)信息有十幾種,例如:$GPGGA、$GPGLL、$GPGSA、$GPGSV、$GPRMC 等,我們所關(guān)心的定位數(shù)據(jù)如經(jīng)緯度、速度、時(shí)間等均可以從“$GPRMC”開(kāi)頭的語(yǔ)句中獲得。下面是一條GPRMC語(yǔ)句實(shí)例,表1對(duì)該語(yǔ)句的各字段進(jìn)行了說(shuō)明。

$GPRMC,161229.487,A,3723.2475,N,12158.3416,W,0.130,309.62,120598,23.1,E*10

表1 GPRMC數(shù)據(jù)格式Tab.1 GPRMC data format

3 軟件部分

軟件部分以微軟的Visual Studio 2008為開(kāi)發(fā)工具,安裝完 WinCE6.0的 SDK(Software Development Kit,軟件開(kāi)發(fā)工具包)后,創(chuàng)建智能設(shè)備MFC工程,即可開(kāi)始軟件編寫(xiě)。這里的SDK可以使用標(biāo)準(zhǔn)的,也可以自己編譯生成。

3.1 軟件界面

圖3所示為本系統(tǒng)獲取GPS導(dǎo)航數(shù)據(jù)并處理的軟件界面。打開(kāi)界面后,選擇端口號(hào)和波特率,點(diǎn)擊“打開(kāi)串口”按鈕,然后點(diǎn)擊“開(kāi)始接收”按鈕,左側(cè)“接收區(qū)”的編輯框就會(huì)不斷地顯示從GS-91模塊輸出的NMEA格式導(dǎo)航數(shù)據(jù),并且在“經(jīng)度”、“緯度”編輯框中實(shí)時(shí)顯示相應(yīng)信息。

制作路線(xiàn)圖的方法為,將機(jī)器人帶到目標(biāo)路徑上的幾個(gè)位置,點(diǎn)擊“采點(diǎn)”按鈕,即可把當(dāng)前的經(jīng)度緯度信息保存,并顯示在“采點(diǎn)區(qū)”的列表框中。路線(xiàn)圖制作完成后,機(jī)器人在行進(jìn)過(guò)程中即可根據(jù)實(shí)時(shí)獲取的當(dāng)前位置信息和運(yùn)動(dòng)方向來(lái)判斷下一步的運(yùn)動(dòng)策略。

3.2 讀串口

獲取GPS導(dǎo)航數(shù)據(jù)實(shí)際上就是通過(guò)串口讀取GS-91輸出的NMEA格式數(shù)據(jù)的過(guò)程,下面將介紹WinCE下讀取串口程序的開(kāi)發(fā)過(guò)程。

3.2.1 打開(kāi)串口

點(diǎn)擊“打開(kāi)串口”按鈕,進(jìn)入此按鈕的消息響應(yīng)函數(shù),函數(shù)中執(zhí)行打開(kāi)串口和串口參數(shù)配置等操作。

圖3 軟件界面Fig.3 Software interface

首先調(diào)用CreateFile()函數(shù)打開(kāi)指定的端口。

接著對(duì)串口進(jìn)行參數(shù)配置,如波特率、數(shù)據(jù)位、停止位、奇偶校驗(yàn)等。參數(shù)設(shè)置過(guò)程為:首先調(diào)用GetCommState()獲取串口的當(dāng)前配置,得到結(jié)構(gòu)體DCB(Device Control Block,設(shè)備控制塊)的指針,通過(guò)它給DCB結(jié)構(gòu)體賦值,然后傳給SetCommState()函數(shù)對(duì)串口進(jìn)行配置。

最后設(shè)置串口的超時(shí)參數(shù),設(shè)置方法與上述參數(shù)設(shè)置類(lèi)似,先通過(guò)GetCommTimeouts()得到一個(gè)結(jié)構(gòu)體指針,賦值后傳給SetCommTimeouts()進(jìn)行設(shè)置。

3.2.2 開(kāi)始接收

點(diǎn)擊“開(kāi)始接收”按鈕,進(jìn)入此按鈕的消息響應(yīng)函數(shù),函數(shù)中調(diào)用CreateThread()開(kāi)辟了一個(gè)線(xiàn)程,用于接收串口數(shù)據(jù)。由于接收過(guò)程需要調(diào)用WaitCommEven()函數(shù)來(lái)不停地等待數(shù)據(jù)到來(lái)事件,會(huì)致使程序無(wú)法響應(yīng)其他操作,因此用開(kāi)辟線(xiàn)程的辦法來(lái)防止信息擁堵。

3.2.3 接收線(xiàn)程

圖4所示為接收串口數(shù)據(jù)的線(xiàn)程中執(zhí)行的操作流程。程序?qū)崿F(xiàn)了串口數(shù)據(jù)的接收,并把接收到的數(shù)據(jù)傳遞給Dlg類(lèi),用于后期進(jìn)行定位信息提取及顯示等操作。

3.2.4 消息響應(yīng)函數(shù)

獲得串口接收線(xiàn)程中得到的數(shù)據(jù),進(jìn)行格式轉(zhuǎn)換后則開(kāi)始提取定位數(shù)據(jù)等有用信息,并將提取結(jié)果顯示到對(duì)話(huà)框界面上。

3.3 定位數(shù)據(jù)的提取

定位數(shù)據(jù)的提取過(guò)程專(zhuān)注于“$GPRMC”語(yǔ)句,表1中對(duì)該語(yǔ)句結(jié)構(gòu)作了詳細(xì)說(shuō)明,我們可以從中得到當(dāng)前的經(jīng)緯度信息。在3.2.4介紹的消息響應(yīng)函數(shù)中,得到NMEA導(dǎo)航數(shù)據(jù)后,按照?qǐng)D5所示的流程即可完成數(shù)據(jù)提取。

圖5 接收數(shù)據(jù)處理流程圖Fig.5 Flow chart of processing the received data

圖6是圖5中“尋找目標(biāo)ID頭‘$GPRMC’”子過(guò)程的流程圖。值得注意的是,程序中不可出現(xiàn)m_strRecv[i+k](k為大于0的整數(shù))這樣的表達(dá)式。有人會(huì)以(m_strDataReceived[i]== ’$’&&m_strDataReceived[i+3]== ’R’)為判斷條件來(lái)提取ID頭,看起來(lái)方便但會(huì)很容易造成超出數(shù)組元素個(gè)數(shù)的錯(cuò)誤。

圖6 尋找目標(biāo)ID頭流程Fig.6 Flow chart of finding wanted ID header

圖7是圖5中“提取經(jīng)緯度信息”子過(guò)程的流程圖,同樣也要應(yīng)遵循每次循環(huán)應(yīng)僅處理當(dāng)前一位數(shù)據(jù)m_strRecv[i]的原則。

4 試驗(yàn)結(jié)果

連接GPS天線(xiàn),在空曠的場(chǎng)地給電路板上電,運(yùn)行開(kāi)發(fā)的軟件,獲得如圖8所示的運(yùn)行結(jié)果。可以看到,當(dāng)前的位置為東經(jīng) 108.458035°,北緯 34.018866°。

上面是摘取圖8中“接受區(qū)”編輯框里的一條語(yǔ)句,參照表1可以看出各項(xiàng)信息都合乎常理,系統(tǒng)成功運(yùn)行。

圖7 提取經(jīng)緯度信息流程Fig.7 Flow chart of picking up position information

圖8 軟件運(yùn)行結(jié)果Fig.8 Results of runnig

5 結(jié) 論

系統(tǒng)在ARM硬件平臺(tái)下,用ARM芯片的串口引腳連接GPS模塊GS-91,并在Visual Studio 2008下開(kāi)發(fā)了讀取串口以獲取導(dǎo)航數(shù)據(jù)的軟件,該軟件還實(shí)現(xiàn)了實(shí)時(shí)提取當(dāng)前經(jīng)緯度信息并顯示,以及采點(diǎn)構(gòu)建行進(jìn)路線(xiàn)的功能。本系統(tǒng)可為自主移動(dòng)機(jī)器人提供GPS導(dǎo)航定位服務(wù),簡(jiǎn)單可行,極具借鑒價(jià)值。

[1]鄧旭玥,王偉,易建強(qiáng),等.移動(dòng)機(jī)器人導(dǎo)航研究現(xiàn)狀及其發(fā)展趨勢(shì)展望[J].可編程控制器與工廠自動(dòng)化(PLC FA),2004(11):4-8.

DENG Xu-yue,WANG Wei,YI Jian-qiang,et al.Mobile robotnavigation and development trend research[J].Programmable Controller&Factory Automation,2004,11:4-8.

[2]廣州鑫圖科技有限公司.GPS Engine Board GS-91[EB/OL].Http://www.gzxintu.com.

[3]百 度 百 科.NMEA[EB/OL]. (2011-06-25).http://baike.baidu.com/view/1303668.htm.

[4]孫鑫,余安萍.VC++深入詳解[M].北京:電子工業(yè)出版社,2006.

[5]張歡,鈕文良.Windows CE系統(tǒng)開(kāi)發(fā)基礎(chǔ)與實(shí)例[M].北京:中國(guó)電力出版社,2009.

[6]李景峰,楊麗娜,潘恒,等.Visual C++串口通信技術(shù)詳解[M].北京:機(jī)械工業(yè)出版社,2010.

猜你喜歡
經(jīng)緯度移動(dòng)機(jī)器人串口
移動(dòng)機(jī)器人自主動(dòng)態(tài)避障方法
淺談AB PLC串口跟RFID傳感器的通訊應(yīng)用
基于Twincat的移動(dòng)機(jī)器人制孔系統(tǒng)
自制中學(xué)實(shí)驗(yàn)操作型經(jīng)緯測(cè)量?jī)x
澳洲位移大,需調(diào)經(jīng)緯度
USB接口的多串口數(shù)據(jù)并行接收方法探索
一種利用太陽(yáng)影子定位的數(shù)學(xué)模型
基于藍(lán)牙串口適配器的GPS接收機(jī)與AutoCAD的實(shí)時(shí)無(wú)線(xiàn)通信
基于并行控制的FPGA多串口拓展實(shí)現(xiàn)
極坐標(biāo)系下移動(dòng)機(jī)器人的點(diǎn)鎮(zhèn)定
嘉兴市| 汝州市| 陈巴尔虎旗| 玛沁县| 潼关县| 出国| 通渭县| 沙坪坝区| 浏阳市| 科技| 理塘县| 句容市| 河西区| 五大连池市| 昔阳县| 福安市| 义马市| 沁源县| 修水县| 克什克腾旗| 宁津县| 天峨县| 延川县| 平凉市| 曲水县| 惠州市| 来凤县| 延津县| 杭州市| 榆树市| 镇巴县| 延安市| 峡江县| 昭苏县| 高安市| 达尔| 合川市| 汶川县| 汕尾市| 宽甸| 于田县|