吳子岳,高亢,高亞?wèn)|,王董測(cè)
(上海海洋大學(xué)工程學(xué)院,上海 201306)
?
基于北斗定位的兩棲機(jī)器人監(jiān)測(cè)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
吳子岳,高亢,高亞?wèn)|,王董測(cè)
(上海海洋大學(xué)工程學(xué)院,上海 201306)
本文介紹了一種用于遠(yuǎn)程測(cè)量繪制河流地圖的兩棲機(jī)器人,通過(guò)搭載大功率WIFI模塊可以遠(yuǎn)距離遙控機(jī)器人圍繞河岸線在水中行駛。同時(shí)通過(guò)北斗模塊采集實(shí)時(shí)定位信息后使用短報(bào)文傳輸服務(wù)傳輸?shù)竭h(yuǎn)程服務(wù)器,遠(yuǎn)程服務(wù)器接收后自動(dòng)根據(jù)定位信息繪制河流地圖。實(shí)驗(yàn)表明,該系統(tǒng)能準(zhǔn)確測(cè)量和繪制河流地圖,并且定位信息誤差達(dá)到米級(jí),對(duì)于地圖繪制系統(tǒng)的更新具有重大意義。
河流測(cè)繪;兩棲機(jī)器;北斗模塊;短報(bào)文傳輸
由于自然變化或者人為原因,河流形狀每隔一定周期都會(huì)產(chǎn)生變化,因此需要定期在地圖系統(tǒng)中更新河流信息。在地圖上更新河流信息傳統(tǒng)的測(cè)量繪制方法是通過(guò)人工圍繞各河流走一圈繪制大體河流形狀,然后把圖形更新到系統(tǒng)中。這種方法測(cè)量操作起來(lái)十分不便,往往耗費(fèi)大量人力和時(shí)間資源,同時(shí)由于個(gè)人因素人工繪制的河流圖形也不準(zhǔn)確[1-3]。為了解決這個(gè)問(wèn)題,本文設(shè)計(jì)了一款可以遠(yuǎn)程遙控其行走測(cè)量河流地圖數(shù)據(jù)的基于北斗系統(tǒng)的河流繪制兩棲機(jī)器人,通過(guò)Android手機(jī)或者平板連接上機(jī)器人所發(fā)射的大范圍WIFI網(wǎng)絡(luò)后,使用專(zhuān)門(mén)的Android APP接收機(jī)器人回傳實(shí)時(shí)視頻數(shù)據(jù),并控制機(jī)器人圍繞河岸行駛,行駛過(guò)程中機(jī)器人通過(guò)北斗模塊采集實(shí)時(shí)定位信息使用短報(bào)文遠(yuǎn)程發(fā)送到服務(wù)器繪制準(zhǔn)確的河流地圖。
基于北斗系統(tǒng)的河流繪制兩棲機(jī)器人系統(tǒng)組成如圖1所示,首先通過(guò)鋰電池電源結(jié)合電源管理模塊給整套硬件系統(tǒng)提供電源。Android系統(tǒng)終端設(shè)備通過(guò)WIFI模塊連接上兩棲機(jī)器人向外部發(fā)射的遠(yuǎn)距離WIFI網(wǎng)絡(luò),WIFI模塊運(yùn)行Linux系統(tǒng)驅(qū)動(dòng)USB攝像頭采集實(shí)時(shí)視頻流數(shù)據(jù)壓縮回傳到Android系統(tǒng)終端設(shè)備的遙控APP中。Android系統(tǒng)終端設(shè)備通過(guò)實(shí)時(shí)現(xiàn)場(chǎng)視頻向單片機(jī)最小系統(tǒng)傳達(dá)控制命令,單片機(jī)識(shí)別控制命令通過(guò)電機(jī)驅(qū)動(dòng)模塊控制直流電機(jī)運(yùn)轉(zhuǎn)[4],從而遠(yuǎn)程遙控兩棲機(jī)器人圍繞河岸在水中或者陸地行走。兩棲機(jī)器人在整個(gè)圍繞河岸行駛的過(guò)程中,北斗模塊中定位模塊將實(shí)時(shí)經(jīng)緯度數(shù)據(jù)傳輸給單片機(jī)系統(tǒng),單片機(jī)系統(tǒng)處理后再通過(guò)北斗模塊的短報(bào)文服務(wù)發(fā)送到遠(yuǎn)程監(jiān)測(cè)服務(wù)器,最后遠(yuǎn)程監(jiān)測(cè)服務(wù)器根據(jù)兩棲機(jī)器人的定位數(shù)據(jù)繪制準(zhǔn)確的河流地圖。
圖1 兩棲機(jī)器人系統(tǒng)硬件組成
2.1兩棲機(jī)器人結(jié)構(gòu)設(shè)計(jì)
穩(wěn)定的行進(jìn)結(jié)構(gòu)是兩棲機(jī)器人行走的基本保障,本文借鑒了行星齒輪的原理和動(dòng)蹼明輪的工作機(jī)制[5],并結(jié)合了船舶設(shè)計(jì)的相關(guān)理論,將兩棲機(jī)器人動(dòng)蹼明輪和行星齒輪有機(jī)結(jié)合起來(lái),并以船的結(jié)構(gòu)特點(diǎn)使其實(shí)現(xiàn)了水面運(yùn)動(dòng)的功能,從而實(shí)現(xiàn)水陸兩棲環(huán)境的運(yùn)動(dòng)功能[6]。兩棲機(jī)器人的行走機(jī)構(gòu)如圖2所示。
圖2 兩棲機(jī)器人行走機(jī)構(gòu)
2.2實(shí)時(shí)WIFI傳輸電路設(shè)計(jì)
WIFI模塊運(yùn)行Linux系統(tǒng),通過(guò)mjpg-streamer視頻服務(wù)器程序驅(qū)動(dòng)與其連接的USB攝像頭采集實(shí)時(shí)視頻流數(shù)據(jù),并進(jìn)行壓縮后通過(guò)Http協(xié)議向Android系統(tǒng)終端設(shè)備運(yùn)行的遙控APP回傳實(shí)時(shí)視頻數(shù)據(jù)[7]。同時(shí)WIFI模塊中Linux系統(tǒng)運(yùn)行TCP服務(wù)器,Android APP通過(guò)建立TCP客戶(hù)端向WIFI模塊傳達(dá)的機(jī)器人控制指令通過(guò)WIFI模塊的串口透明的傳輸?shù)絾纹瑱C(jī)。因此WIFI模塊的實(shí)際電路設(shè)計(jì)中需要將USB攝像頭與WIFI模塊通過(guò)USB進(jìn)行連接,將WIFI模塊的TXD和RXD串行數(shù)據(jù)接口接到單片機(jī)中的串行數(shù)據(jù)接口,同時(shí)完成與Android APP和單片機(jī)之間的通信,Wifi傳輸電路圖如圖3所示。
圖3 Wifi傳輸電路設(shè)計(jì)
2.3北斗模塊電路設(shè)計(jì)
北斗模塊在基于北斗系統(tǒng)的河流繪制兩棲機(jī)器人監(jiān)測(cè)系統(tǒng)中起著關(guān)鍵性作用,實(shí)現(xiàn)了經(jīng)緯度定位數(shù)據(jù)獲取以及短報(bào)文的遠(yuǎn)程傳輸,具體通過(guò)單片機(jī)對(duì)其進(jìn)行驅(qū)動(dòng)從而實(shí)現(xiàn)不同功能需求[8]。本文選用的北斗模塊型號(hào)為VK2217M3M5,核心芯片為MT3333.VK2217M3M5北斗模塊采用低功耗設(shè)計(jì),并且熱啟動(dòng)時(shí)間僅需1 s,定位精度在2.5 m內(nèi),能準(zhǔn)確采集兩棲機(jī)器人的實(shí)時(shí)經(jīng)緯度數(shù)據(jù)。VK2217M3M5北斗模塊與單片機(jī)之間的通信和WIFI模塊相同,均是使用串行通信的方式。由于WIFI模塊占用了單片機(jī)的串口1,因此VK2217M3M5北斗模塊與單片機(jī)連接為串口2,具體電路如圖4所示。
圖4 北斗模塊電路圖
3.1單片機(jī)下位機(jī)軟件設(shè)計(jì)
基于北斗系統(tǒng)的河流繪制兩棲機(jī)器人中單片機(jī)下位機(jī)軟件主要完成Android APP控制命令解析以及機(jī)器人行駛控制,定位數(shù)據(jù)采集以及短報(bào)文傳輸,下位機(jī)軟件流程如圖5所示。單片機(jī)上電后首先完成整個(gè)系統(tǒng)的初始化操作,其中初始化包括WIFI模塊的初始化和北斗模塊的初始化,兩者均是串口初始。由于WIFI模塊和北斗模塊的通信波特率均是9 600 bps,因此串口初始化中將單片機(jī)的串口1和串口2初始化成9 600 bps的通信波特率,并且單片機(jī)的兩個(gè)串口數(shù)據(jù)位與停止位等參數(shù)都按WIFI模塊與北斗模塊進(jìn)行設(shè)置。
初始化完成后檢測(cè)Android APP是否連接,如果已連接則通過(guò)單片機(jī)的串口2驅(qū)動(dòng)北斗模塊啟動(dòng)定位服務(wù)獲取當(dāng)前機(jī)器人所在位置的經(jīng)緯度定位數(shù)據(jù),獲取成功后同樣通過(guò)串口2驅(qū)動(dòng)北斗模塊啟動(dòng)短報(bào)文傳輸服務(wù)向遠(yuǎn)程服務(wù)器發(fā)送經(jīng)緯度定位數(shù)據(jù)。因此,任何時(shí)刻機(jī)器人的經(jīng)緯度數(shù)據(jù)都沒(méi)有經(jīng)過(guò)WIFI模塊傳輸至Android APP中。完成機(jī)器人定位數(shù)據(jù)的采集以及傳輸后判斷是否有Android APP傳達(dá)過(guò)來(lái)的機(jī)器人控制命令,如有則通過(guò)電機(jī)驅(qū)動(dòng)模塊驅(qū)動(dòng)直流電機(jī)運(yùn)轉(zhuǎn),從而使機(jī)器人按Android APP控制命令朝特定方向行駛。響應(yīng)操作完成后重新返回主循環(huán)的第一步采集定位數(shù)據(jù)上傳開(kāi)始下一輪循環(huán)[9]。
圖5 下機(jī)位軟件流程圖
3.2Android APP上位機(jī)軟件設(shè)計(jì)
基于北斗系統(tǒng)的河流繪制兩棲機(jī)器人中Android AP上位機(jī)軟件主要完成機(jī)器人中攝像頭采集到的實(shí)時(shí)視頻回傳的顯示以及遙控機(jī)器人在水中行駛,上位機(jī)軟件流程如圖6所示。
Android APP運(yùn)行后首先連接機(jī)器人發(fā)射的WIFI網(wǎng)絡(luò),然后建立專(zhuān)門(mén)的TCP客戶(hù)端再次連接WIFI模塊運(yùn)行TCP服務(wù)器。由于TCP采用面向連接的方式,因此需要保證連接與被連接的雙方均在線才能實(shí)現(xiàn)數(shù)據(jù)互傳。同時(shí)面向連接的方式也使得數(shù)據(jù)在傳輸過(guò)程中具有不易丟失的特性。機(jī)器人連接服務(wù)器成功后開(kāi)始通過(guò)Http協(xié)議獲取WIFI模塊中mjpg-streamer視頻服務(wù)器回傳的視頻流數(shù)據(jù)[10],并將每一幀數(shù)據(jù)顯示在Android APP的背景中。接著進(jìn)入APP的控制模式,檢測(cè)用戶(hù)是否按下機(jī)器人控制按鈕,如按下則通過(guò)TCP通道向WIFI模塊傳達(dá)控制命令,WIFI模塊中的TCP服務(wù)器接收后并不進(jìn)行任何識(shí)別處理,而是直接通過(guò)串口透明到單片機(jī)中,由單片機(jī)進(jìn)行具體的識(shí)別并控制機(jī)器人行進(jìn)。
圖6 上機(jī)位軟件流程圖
3.3視頻服務(wù)器軟件設(shè)計(jì)
機(jī)器人主控板中的視頻采集傳輸并不是通過(guò)單片機(jī)來(lái)實(shí)現(xiàn),因?yàn)楸疚倪x用的單片機(jī)只是一款8位的單片機(jī),無(wú)法處理視頻數(shù)據(jù),因此本設(shè)計(jì)通過(guò)WIFI模塊燒寫(xiě)的openwrt開(kāi)源linux操作系統(tǒng)后,使用mipg-streamer程序完成視頻數(shù)據(jù)的采集、壓縮和傳輸功能。mjpg-streamer視頻服務(wù)器程序在linux操作系統(tǒng)上通過(guò)與WIFI模塊連接的USB攝像頭軟件采集實(shí)時(shí)視頻流數(shù)據(jù),進(jìn)行視頻壓縮后再通過(guò)http協(xié)議共享實(shí)時(shí)的視頻圖像數(shù)據(jù),因此該部分不需要在主控板程序中進(jìn)行軟件編程,而是通過(guò)開(kāi)源系統(tǒng)openwrt完成。具體為:將USB攝像頭接入WIFI模塊后,WIFI模塊發(fā)射一個(gè)WIFI網(wǎng)絡(luò),安卓手機(jī)APP客戶(hù)端連接上該WIFI網(wǎng)絡(luò)后通過(guò)視頻流的IP地址和視頻服務(wù)器端口進(jìn)行查看,實(shí)現(xiàn)實(shí)時(shí)視頻監(jiān)控功能[11]。
4.1機(jī)器人系統(tǒng)運(yùn)行測(cè)試
基于北斗系統(tǒng)的河流繪制兩棲機(jī)器人實(shí)物模型如圖7所示,本文設(shè)計(jì)的兩棲機(jī)器人采用輪槳一體結(jié)構(gòu),因此既可在陸地行走,也可以在水中行駛,實(shí)現(xiàn)整個(gè)測(cè)量過(guò)程中無(wú)須人工幫助直接下水,實(shí)用性能強(qiáng)。整個(gè)兩棲機(jī)器人的電路結(jié)構(gòu)部分通過(guò)防水材料包裹,能在水中無(wú)慮的自由行駛。經(jīng)過(guò)大量的測(cè)試,得出本文設(shè)計(jì)的兩棲機(jī)器人搭載大功率發(fā)射天線后遙控距離長(zhǎng)達(dá)幾百米,能應(yīng)付部分河流的測(cè)繪。操作人員進(jìn)行適當(dāng)位置調(diào)整能實(shí)現(xiàn)更遠(yuǎn)距離的遙控測(cè)繪操作。
圖7 兩棲機(jī)器人模型圖
4.2Android APP遙控性能測(cè)試
本文研究的基于北斗系統(tǒng)的河流繪制兩棲機(jī)器人,其視頻傳輸作為衡量系統(tǒng)實(shí)用性的一個(gè)重要指標(biāo),首要進(jìn)行大量測(cè)試以及數(shù)據(jù)分析的是視頻監(jiān)控功能。在不同距離下對(duì)系統(tǒng)中的Android APP的視頻傳輸功能得出測(cè)試數(shù)據(jù)如表1所示,主要測(cè)試機(jī)器人與安裝Android APP手機(jī)在不同的通信距離下控制機(jī)器人行駛命令的正確性以及實(shí)時(shí)視頻幀率的變化。對(duì)表1進(jìn)行分析得出在500 m的通信距離以?xún)?nèi)攝像頭的控制命令百分百正確,采集到的實(shí)時(shí)視頻的幀率也達(dá)到最高的25幀/s,而在500 m以后隨著通信距離的不斷增加,正確的命令數(shù)越來(lái)越少以及視頻幀率也越來(lái)越低,特別是在通信距離800 m以后兩者大幅度下降。這說(shuō)明本課題設(shè)計(jì)的基于北斗系統(tǒng)的河流繪制兩棲機(jī)器人Android APP遙控的使用距離在500 m左右。
表1 Android APP視頻監(jiān)控測(cè)試數(shù)據(jù)
4.3北斗定位系統(tǒng)精度測(cè)試
基于北斗系統(tǒng)的河流繪制兩棲機(jī)器人最重要的功能是河流地圖的繪制,因此北斗模塊采集到的經(jīng)緯度定位數(shù)據(jù)在系統(tǒng)中舉足輕重。為了驗(yàn)證系統(tǒng)的精確性,本文在機(jī)器人上同時(shí)放置一個(gè)市場(chǎng)上成熟的GPS模塊,并通過(guò)專(zhuān)門(mén)上位機(jī)軟件實(shí)時(shí)查看GPS模塊的經(jīng)緯度數(shù)據(jù),然后把機(jī)器人處于不同地點(diǎn)時(shí)刻北斗模塊采集到的經(jīng)緯度數(shù)據(jù)與同時(shí)刻GPS模塊采集到的經(jīng)緯度數(shù)據(jù)進(jìn)行對(duì)比和記錄[12],因?yàn)樗涗浀降钠骄鶖?shù)值比較大,所以剔除了部分過(guò)高和過(guò)低的數(shù)值,部分誤差數(shù)據(jù)如表2所示。經(jīng)過(guò)對(duì)比發(fā)現(xiàn)本文設(shè)計(jì)的兩棲機(jī)器人通過(guò)北斗模塊采集到的定位數(shù)據(jù)與市場(chǎng)上成熟的GPS產(chǎn)品采集到的數(shù)據(jù)誤差在1~2 m之間,可以滿足河流地圖測(cè)繪需求。
表2 北斗定位模塊與成熟GPS模塊定位誤差對(duì)比
本文結(jié)合短報(bào)文傳輸、TCP傳輸以及Http傳輸控制協(xié)議,詳細(xì)論述了基于北斗定位的兩棲機(jī)器人監(jiān)測(cè)系統(tǒng)在河流地圖測(cè)繪的應(yīng)用,設(shè)計(jì)一款基于北斗系統(tǒng)的河流繪制兩棲機(jī)器人。并給出了整個(gè)設(shè)計(jì)所涉及到的關(guān)鍵硬件、軟件的設(shè)計(jì)。經(jīng)過(guò)測(cè)試基于北斗系統(tǒng)的河流繪制兩棲機(jī)器人能遠(yuǎn)距離的遙控行駛,并且采集到的視頻數(shù)據(jù)在Android終端設(shè)備的APP上顯示流暢,采集到的實(shí)時(shí)經(jīng)緯度定位數(shù)據(jù)經(jīng)過(guò)服務(wù)器處理成功繪制出準(zhǔn)確的河流形狀。若加以完善,通過(guò)4G通信技術(shù)提高遙控距離,該機(jī)器人設(shè)置能實(shí)現(xiàn)不限距離的超遠(yuǎn)程遙控以及測(cè)繪。
[1] 于海燕. 河流水下地形測(cè)量中水位的圖上處理[J]. 測(cè)繪與空間地理信息, 2009, 32(5):179-181.
[2] 吳小梅. 測(cè)繪自動(dòng)化技術(shù)在地形測(cè)量中的應(yīng)用[J]. 建筑工程技術(shù)與設(shè)計(jì), 2015(13):247.
[3] 方竹兵,秦曉剛. 數(shù)字化成圖技術(shù)在河流大型穿跨越地形圖測(cè)繪中的應(yīng)用[J]. 城市建設(shè)理論研究, 2013(16):39.
[4] 邱純鑫. 基于地形特征的移動(dòng)機(jī)器人定位[D]. 哈爾濱:哈爾濱工業(yè)大學(xué), 2009.
[5] 王睿豪,李慶浩,王洪躍,等. 一種船用高效明輪推動(dòng)器[J]. 科技經(jīng)濟(jì)市場(chǎng), 2015(8):18-18.
[6] 程龍. 輪槳一體式兩棲機(jī)器人的研制[D].哈爾濱: 哈爾濱工業(yè)大學(xué), 2013.
[7] 馬捷,鄂金龍. 基于近場(chǎng)通信的WiFi傳輸連接方案[J]. 計(jì)算機(jī)工程, 2013(6):1-6.
[8] 潘未莊,陳石平. 采用北斗模塊的車(chē)載監(jiān)控終端設(shè)計(jì)與實(shí)現(xiàn)[J]. 電子測(cè)試, 2013(16):45-47.
[9] 汪永松. 安卓手機(jī)APP開(kāi)發(fā)套路之信息處理[J]. 電腦編程技巧與維護(hù), 2014(20):57-62.
[10]汪永松. 安卓手機(jī)APP開(kāi)發(fā)套路之HTTP通信[J]. 電腦編程技巧與維護(hù), 2014(19):41-47.
[11]潘宇清. 網(wǎng)絡(luò)視頻服務(wù)器技術(shù)淺析[J]. China Public Security, 2009(5):18-20.
[12]唐旭,何秀鳳. 北斗衛(wèi)星導(dǎo)航系統(tǒng)高精度相對(duì)定位性能分析[J]. 導(dǎo)航定位學(xué)報(bào), 2013(3).:28-30,42
[13]黃開(kāi)勝.學(xué)做智能車(chē):挑戰(zhàn)“飛思卡爾”杯[M].北京:人民郵電出版社,2007.
[14]陳丁躍.現(xiàn)代汽車(chē)控制及其智能化[M].西安:西安交通大學(xué)出版社,2011.
[15]雷楚奇. 對(duì)安卓開(kāi)發(fā)相關(guān)技術(shù)的研究[J]. 電子技術(shù)與軟件工程, 2015(24):74-74.
[16]DARCEY L.Android移動(dòng)開(kāi)發(fā)一本就夠[M].北京:人民郵電出版社,2011.
吳子岳 (1963-), 男, 工學(xué)博士、博士后,副教授,碩士生導(dǎo)師,主要從事機(jī)械及工程裝備研究。
高亢(1989-),男,碩士生,主要研究方向?yàn)闄C(jī)電一體化。
高亞?wèn)|(1990-),男,碩士生,主要從事機(jī)電及機(jī)構(gòu)學(xué)研究。
王董測(cè)(1992-),男,碩士生,主要從事機(jī)電及機(jī)構(gòu)學(xué)研究。
Design and Implementation of an Amphibious Robot Monitoring System Based on Beidou Positioning
WU Ziyue,GAO Kang,GAO Yadong,WANG Dongce
(CollegeofEngineeringScienceandTechnology,ShanghaiOceanUniversity,Shanghai201306,China)
This paper introduces a remote measurement for amphibious robot drawing River map, with high power WIFI module can remotely control the robot around the shoreline in the water running. At the same time through the acquisition of real-time Beidou module positioning information using short message transmission service,transmit to the remote server, the remote server receives location information automatically according to the drawing of the river map. In practice, this system can accurately measure and draw the river map, and the positioning error information reach meter level high-precision, it is great meaningful to the map rendering system update.
River surveying and mapping; amphibious machine; Beidou module; short message transmission
10.13442/j.gnss.1008-9268.2016.04.018
2016-03-29
TP249
A
1008-9268(2016)04-0085-05
聯(lián)系人: 高亢 E-mail: gaokang2015@qq.com