摘要:便攜式移動(dòng)機(jī)器人手持監(jiān)控系統(tǒng),基于嵌入式PC/104plus總線結(jié)構(gòu),由視頻圖像監(jiān)視、狀態(tài)信息監(jiān)測(cè)、遙控指令、無(wú)線通信、數(shù)字地圖交互及全局路徑規(guī)劃六大模塊組成。各模塊通過(guò)接口實(shí)現(xiàn)信息交換與數(shù)據(jù)共享。系統(tǒng)軟件操作系統(tǒng)平臺(tái)為Windows CE(WinCE),包括鍵盤(pán)掃描串口通信視頻處理數(shù)字地圖路徑規(guī)劃等模塊。并以履帶結(jié)構(gòu)便攜式移動(dòng)機(jī)器人實(shí)驗(yàn)平臺(tái)上的應(yīng)用實(shí)例,驗(yàn)證了該手持監(jiān)控系統(tǒng)。
關(guān)鍵詞:便攜式移動(dòng)機(jī)器人;手持監(jiān)控系統(tǒng)PC/104plus 總線;Windows CE
引言
目前,便攜式移動(dòng)機(jī)器人全自主控制方式尚不成熟,其監(jiān)控系統(tǒng)普遍采用人在環(huán)半自主控制方式設(shè)計(jì)。為滿足攜帶、系統(tǒng)小型化、嵌入式的結(jié)構(gòu)特點(diǎn),故設(shè)計(jì)便攜式移動(dòng)機(jī)器人手持監(jiān)控系統(tǒng),并將其用于履帶結(jié)構(gòu)便攜式移動(dòng)機(jī)器人實(shí)驗(yàn)平臺(tái)。
功能設(shè)計(jì)
手持監(jiān)控系統(tǒng)對(duì)便攜式移動(dòng)機(jī)器人起到監(jiān)視與控制的全局性作用。手持監(jiān)控系統(tǒng)可劃分為視頻圖像監(jiān)視模塊、狀態(tài)信息監(jiān)測(cè)模塊、遙控指令模塊、無(wú)線通信模塊、數(shù)字地圖交互模塊、全局路徑規(guī)劃模塊六大功能模塊(見(jiàn)圖1)。
視頻圖像監(jiān)視模塊對(duì)便攜式移動(dòng)機(jī)器人所處環(huán)境進(jìn)行視頻監(jiān)視;狀態(tài)信息監(jiān)測(cè)模塊對(duì)機(jī)器人自身狀態(tài)信息的監(jiān)測(cè);遙控指令模塊實(shí)現(xiàn)基本的運(yùn)動(dòng)指令編碼以及發(fā)送;無(wú)線通信模塊實(shí)現(xiàn)運(yùn)動(dòng)指令、狀態(tài)信息、視頻信號(hào)等數(shù)據(jù)的無(wú)線傳輸;數(shù)字地圖交互模塊實(shí)現(xiàn)環(huán)境地理信息的數(shù)字化顯示及人機(jī)交互功能;全局路徑規(guī)劃模塊實(shí)現(xiàn)點(diǎn)到點(diǎn)的最優(yōu)路徑搜索功能。
硬件系統(tǒng)
手持監(jiān)控系統(tǒng)的硬件系統(tǒng)可劃分為若干模塊,各個(gè)模塊實(shí)現(xiàn)自身相對(duì)獨(dú)立的功能。
硬件結(jié)構(gòu)與接口
手持監(jiān)控系統(tǒng)硬件系統(tǒng)采用基于嵌入式系統(tǒng)的PCI 總線的PC/104plus 總線結(jié)構(gòu),分為無(wú)線通信、嵌入式圖像采集、中央處理、遙控器、液晶顯示等五大模塊。無(wú)線通信模塊又劃分為無(wú)線數(shù)據(jù)傳輸和無(wú)線視頻傳輸模塊。無(wú)線數(shù)據(jù)傳輸模塊實(shí)現(xiàn)運(yùn)動(dòng)指令、狀態(tài)信息等窄帶數(shù)據(jù)無(wú)線傳輸;無(wú)線視頻傳輸模塊實(shí)現(xiàn)視頻圖像信號(hào)等寬帶數(shù)據(jù)無(wú)線傳輸。
硬件系統(tǒng)各模塊通過(guò)接口實(shí)現(xiàn)信息交換與數(shù)據(jù)共享。中央處理模塊通過(guò)PC/104plus 總線與嵌入式圖像采集模塊接口,實(shí)現(xiàn)模塊之間視頻圖像數(shù)據(jù)的傳輸。中央處理模塊與無(wú)線數(shù)據(jù)傳輸模塊及遙控器模塊通過(guò)串口連接。中央處理模塊通過(guò)TTL 接口與液晶顯示模塊連接。嵌入式圖像采集模塊與無(wú)線視頻傳輸模塊通過(guò)RCA 接口實(shí)現(xiàn)復(fù)合視頻信號(hào)的傳輸(見(jiàn)圖2)。
硬件模塊實(shí)現(xiàn)
無(wú)線數(shù)據(jù)傳輸模塊采用微功率無(wú)線數(shù)據(jù)傳送單元實(shí)現(xiàn)。嵌入式圖像采集模塊采用PC/104plus總線結(jié)構(gòu)的嵌入式圖像采集卡實(shí)現(xiàn)。中央處理模塊采用PC/104plus 總線結(jié)構(gòu)的單板機(jī)實(shí)現(xiàn)。遙控器模塊通過(guò)自行設(shè)計(jì)電路板實(shí)現(xiàn)按鍵掃描、指令編碼以及串口發(fā)送等功能。液晶顯示模塊采用小型彩色液晶屏實(shí)現(xiàn)。以上各硬件模塊實(shí)現(xiàn)符合手持設(shè)備小型化、便攜式的硬件要求。
軟件系統(tǒng)
手持監(jiān)控系統(tǒng)的軟件系統(tǒng)選用Windows CE(WinCE)作為嵌入式操作系統(tǒng)平臺(tái),監(jiān)控系統(tǒng)軟件包括:操作系統(tǒng)定制、設(shè)備驅(qū)動(dòng)程序開(kāi)發(fā)、應(yīng)用程序。應(yīng)用程序又分為:鍵盤(pán)掃描模塊、串口通信模塊、視頻處理模塊、數(shù)字地圖模塊、路徑規(guī)劃模塊五大模塊(見(jiàn)圖3)。
操作系統(tǒng)定制
操作系統(tǒng)定制主要根據(jù)系統(tǒng)需要建立操作系統(tǒng)平臺(tái)并對(duì)其進(jìn)行相應(yīng)的配置。通過(guò)平臺(tái)裁剪工具Platform Builder(簡(jiǎn)稱PB)完成。
設(shè)備驅(qū)動(dòng)程序開(kāi)發(fā)
WinCE的驅(qū)動(dòng)程序分為:本機(jī)設(shè)備驅(qū)動(dòng)程序和流接口驅(qū)動(dòng)程序[5]。本機(jī)設(shè)備是指集成到目標(biāo)平臺(tái)的設(shè)備,其驅(qū)動(dòng)程序由原設(shè)備制造商(OEM)提供。流接口驅(qū)動(dòng)程序是指連接到WinCE平臺(tái)的外部設(shè)備驅(qū)動(dòng)程序,由用戶自行開(kāi)發(fā)。流接口驅(qū)動(dòng)程序把外部設(shè)備看作文件系統(tǒng)的特殊文件,通過(guò)文件讀取函數(shù)間接地訪問(wèn)外部設(shè)備。
嵌入式圖像采集卡驅(qū)動(dòng)程序分為三部分:
(1) 內(nèi)核部分
實(shí)現(xiàn)中斷服務(wù)例程(ISR)。內(nèi)核函數(shù)實(shí)現(xiàn)了物理中斷號(hào)與邏輯中斷標(biāo)識(shí)之間的映射關(guān)系,并調(diào)用中斷服務(wù)例程,中斷服務(wù)例程在中斷發(fā)生后向內(nèi)核返回中斷邏輯標(biāo)識(shí)。
(2) 驅(qū)動(dòng)程序部分
實(shí)現(xiàn)WinCE 流接口驅(qū)動(dòng)模型所需要的文件操作接口函數(shù),包括:采集卡初始化、數(shù)據(jù)讀取和采集卡句柄關(guān)閉。
(3) 應(yīng)用程序部分
通過(guò)調(diào)用設(shè)備注冊(cè)函數(shù)將嵌入式圖像采集卡中斷驅(qū)動(dòng)程序加載到系統(tǒng)內(nèi)存,并根據(jù)采集卡初始化參數(shù)設(shè)置修改WinCE 系統(tǒng)注冊(cè)表文件。
應(yīng)用程序設(shè)計(jì)
鍵盤(pán)掃描模塊及串口通信模塊單片機(jī)程序在單片機(jī)集成開(kāi)發(fā)環(huán)境uVision2 下用C 語(yǔ)言開(kāi)發(fā)外,其余模塊均在EVC(Windows CE Embedded VisualC++)下開(kāi)發(fā)。
(1) 鍵盤(pán)掃描模塊
鍵盤(pán)掃描模塊主要實(shí)現(xiàn)單片機(jī)對(duì)薄膜鍵盤(pán)的按鍵識(shí)別及鍵值顯示功能。薄膜鍵盤(pán)屬于行列式非編碼鍵盤(pán),按鍵的識(shí)別通常采用逐行掃描查詢法實(shí)現(xiàn)。程序采用軟件延時(shí)的方法處理抖動(dòng)。鍵值顯示則通過(guò)單片機(jī)對(duì)液晶屏串行數(shù)據(jù)口編程實(shí)現(xiàn)。
(2) 串口通信模塊
串口通信模塊主要實(shí)現(xiàn)單板機(jī)與單片機(jī)之間的串行數(shù)據(jù)通信功能。該模塊包括單板機(jī)串口通信程序、單片機(jī)串口通信程序、串口通信協(xié)議三部分。
① 單板機(jī)串口通信程序。由于WinCE 不支持串口通信控件的使用,所以EVC 下的單板機(jī)串口通信程序開(kāi)發(fā)只能通過(guò)調(diào)用文件操作函數(shù)實(shí)現(xiàn)。
② 單片機(jī)串口通信程序。單片機(jī)串口通信程序設(shè)計(jì)必須根據(jù)通信雙方約定設(shè)置串口工作方式及串口通信波特率。
③ 串口通信協(xié)議。串口數(shù)據(jù)包括:雙向通信測(cè)試數(shù)據(jù)、下行指令數(shù)據(jù)、上行傳感數(shù)據(jù),而傳感數(shù)據(jù)又劃分為:速度、加速度、位置、傾角等狀態(tài)信息。為了在串口通信中正確分離和識(shí)別各種數(shù)據(jù),通過(guò)對(duì)各種數(shù)據(jù)添加相應(yīng)標(biāo)志字節(jié)的方法編制串口通信協(xié)議。
(3) 視頻處理模塊
視頻處理模塊通過(guò)在EVC 下調(diào)用嵌入式圖像采集卡驅(qū)動(dòng)函數(shù)實(shí)現(xiàn)視頻顯示與視頻控制功能。視頻顯示作為監(jiān)控系統(tǒng)子窗口嵌入到軟件系統(tǒng)用戶界面。視頻顯示主要實(shí)現(xiàn)便攜式移動(dòng)機(jī)器人平臺(tái)所處環(huán)境信息的實(shí)時(shí)視頻顯示與更新。視頻控制主要實(shí)現(xiàn)對(duì)視頻采集過(guò)程的控制,其中包括:視頻采集窗口尺寸設(shè)置、視頻源制式設(shè)置、視頻數(shù)據(jù)格式選擇及視頻數(shù)據(jù)存儲(chǔ)等。
WinCE 不支持任何視頻加速驅(qū)動(dòng)程序和底層函數(shù),所以無(wú)法直接調(diào)用DirectX 函數(shù),則WinCE設(shè)備上動(dòng)態(tài)視頻的顯示與回放,必須開(kāi)發(fā)新的設(shè)備無(wú)關(guān)位圖(DIB)快速顯示函數(shù)。采用從DGdiObject類派生的方法,使用CreateDIBSection 函數(shù)創(chuàng)建DIB 位圖,可以直接使用圖形設(shè)備接口(GDI)函數(shù)來(lái)操作DIB 位圖,以有效提高位圖顯示速度。
(4) 數(shù)字地圖模塊
數(shù)字地圖是地理信息系統(tǒng)(GIS)中的概念。數(shù)字地圖模塊實(shí)現(xiàn)便攜式移動(dòng)機(jī)器人平臺(tái)所處地理環(huán)境信息的數(shù)字化顯示,并在此基礎(chǔ)上實(shí)現(xiàn)對(duì)數(shù)字地圖放大、縮小、漫游、查找等交互操作功能。
數(shù)字地圖模塊通過(guò)在EVC 下嵌入MapXMobile 組件實(shí)現(xiàn),并最終作為監(jiān)控系統(tǒng)子窗口集成到軟件系統(tǒng)用戶界面。MapX Mobile 是基于對(duì)象鏈接嵌入(OLE)技術(shù)的ActiveX 控件,在EVC 下設(shè)置該控件的屬性、方法及響應(yīng)事件即可實(shí)現(xiàn)地圖顯示與操作功能。
應(yīng)用程序通過(guò)MapX Mobile 組件實(shí)現(xiàn)地圖顯示與操作,同時(shí)管理地圖數(shù)據(jù)文件。并可以單獨(dú)在嵌入式設(shè)備上運(yùn)行,也能和WinCE 操作系統(tǒng)兼容。MapX Mobile 允許用戶把地圖數(shù)據(jù)帶到自身所在的任何位置,實(shí)現(xiàn)了移動(dòng)的GIS 組件。
(5) 路徑規(guī)劃模塊
路徑規(guī)劃模塊實(shí)現(xiàn)基于數(shù)字地圖的點(diǎn)到點(diǎn)全局路徑規(guī)劃功能。該模塊是在數(shù)字地圖模塊查找交互操作功能的基礎(chǔ)上運(yùn)用迪杰斯特拉(Dijkstra)算法實(shí)現(xiàn)最優(yōu)路徑搜索。操作者在數(shù)字地圖上選取起始點(diǎn)和目標(biāo)點(diǎn),程序通過(guò)Dijkstra 算法搜索得出兩點(diǎn)之間可以通行的最優(yōu)路徑,并在數(shù)字地圖上標(biāo)識(shí)該最優(yōu)路徑。
Dijkstra 算法是解決最短路徑問(wèn)題的理論基礎(chǔ)。該算法適合于計(jì)算帶權(quán)有向圖中兩節(jié)點(diǎn)之間的最短路徑。將數(shù)字地圖上的道路和地點(diǎn)抽象為有向圖的邊與節(jié)點(diǎn),道路的長(zhǎng)度作為有向圖邊的權(quán)值,從而實(shí)現(xiàn)數(shù)字地圖到帶權(quán)有向圖的抽象(見(jiàn)圖4)。
Dijkstra 算法步驟:
Step1:設(shè)集合S存放已求出最短路徑的終節(jié)點(diǎn),初始狀態(tài)時(shí),S集合只有源節(jié)點(diǎn)v[sub]0[/sub],即S={v[sub]0[/sub]}。
Step2:令k=1,對(duì)于節(jié)點(diǎn)v[sub]k[/sub],計(jì)算v[sub]0[/sub]到v[sub]k[/sub]的距離
代價(jià)函數(shù):
Length(k)是v[sub]0[/sub]和v[sub]k[/sub]之間可達(dá)連接權(quán)值之和,如果v[sub]0[/sub]和v[sub]k[/sub]之間不可達(dá),則距離代價(jià)函數(shù)值無(wú)窮大。
Step3:取dist[k]值最小的節(jié)點(diǎn)序列保存在path[k]中,并添加v[sub]k[/sub]到集合S中,即S={v[sub]0[/sub],v[sub]k[/sub]}。且令k=k+1。
Step4:若v[sub]k[/sub]即為目標(biāo)節(jié)點(diǎn),則算法結(jié)束;否則,跳轉(zhuǎn)至Step2。
則path[k]中即為源節(jié)點(diǎn)與目標(biāo)節(jié)之間的最短路徑序列,最小dist[k]值即為源節(jié)點(diǎn)與目標(biāo)節(jié)點(diǎn)之間的最短路徑距離。
設(shè)計(jì)實(shí)例
該手持監(jiān)控系統(tǒng)已應(yīng)用到履帶結(jié)構(gòu)便攜式移動(dòng)機(jī)器人實(shí)驗(yàn)平臺(tái)。在室外實(shí)驗(yàn)場(chǎng)地測(cè)試取得較好的效果,測(cè)試過(guò)程中軟件系統(tǒng)用戶界面如圖5。用戶界面分為三部分:機(jī)器人自身狀態(tài)信息顯示、視頻圖像數(shù)據(jù)顯示、數(shù)字地圖顯示。
結(jié)論
便攜式移動(dòng)機(jī)器人手持監(jiān)控系統(tǒng)在履帶結(jié)構(gòu)便攜式移動(dòng)機(jī)器人實(shí)驗(yàn)平臺(tái)上通過(guò)測(cè)試。嵌入式硬件結(jié)構(gòu)和嵌入式操作系統(tǒng)的引入符合移動(dòng)智能終端設(shè)備體積小、重量輕、實(shí)時(shí)性強(qiáng)、可靠性高的設(shè)計(jì)要求。
隨著高技術(shù)武器裝備研究的發(fā)展,便攜式移動(dòng)機(jī)器人將越來(lái)越多地應(yīng)用在軍事領(lǐng)域。手持監(jiān)控系統(tǒng)作為便攜式移動(dòng)機(jī)器人的子系統(tǒng),逐步成為軍用機(jī)器人研究領(lǐng)域的重要課題之一。