機(jī)器人研究是當(dāng)今世界的一個前沿課題,它涉及電子、計(jì)算機(jī)和控制論等諸方面的知識。網(wǎng)絡(luò)機(jī)器人是一種人們能夠通過internet對其進(jìn)行遠(yuǎn)端控制的機(jī)器人。它除了具有傳統(tǒng)機(jī)器人的一些特點(diǎn)外,還具有傳統(tǒng)機(jī)器人所不具備的、能與外界進(jìn)行良好信息交互的特點(diǎn)。它除了有本地的內(nèi)部控制外,還有遠(yuǎn)程的外部控制,因而它能夠幫助人們較好地完成一些不易完成的工作,可以廣泛應(yīng)用于探險、醫(yī)療、軍事等多個領(lǐng)域,具有較好的應(yīng)用前景。pc機(jī)的bbbbbbs平臺是當(dāng)今較為通用的操作平臺,許多硬件廠商都提供了基于該平臺的硬件產(chǎn)品的api函數(shù)庫,為機(jī)器人硬件接口軟件的開發(fā)帶來了方便,因而它算是機(jī)器人研究上的一個可選的軟件平臺?;谝陨戏治觯覀冞x用相關(guān)硬件產(chǎn)品,組建了一個基于bbbbbbs平臺的網(wǎng)絡(luò)機(jī)器人基礎(chǔ)框架,設(shè)計(jì)了該網(wǎng)絡(luò)機(jī)器人的遠(yuǎn)程控制系統(tǒng),采用了ava語言進(jìn)行開發(fā)。
2理論依據(jù)要實(shí)現(xiàn)網(wǎng)絡(luò)機(jī)器人的遠(yuǎn)程控制,首先就要有一個暢通的網(wǎng)絡(luò)環(huán)境,以保證數(shù)據(jù)的實(shí)時、準(zhǔn)確傳輸。其中包括用于控制機(jī)器人運(yùn)動的指令數(shù)據(jù)、機(jī)器人運(yùn)動狀態(tài)的反饋信息和機(jī)器人所處三維環(huán)境的圖像信息數(shù)據(jù)。除了硬件的保證外,還需要有軟件的保證,要采用面向連接的協(xié)議(tcp協(xié)議)來封裝所需傳輸?shù)臄?shù)據(jù),進(jìn)一步保證數(shù)據(jù)的準(zhǔn)確、可靠。同時,由于網(wǎng)絡(luò)所固有的并發(fā)性特點(diǎn),使得如果沒有較好的判斷機(jī)制,就可能產(chǎn)生多用戶同時控制的控制沖突問題,因而在控制系統(tǒng)設(shè)計(jì)上就必須解決一致性的問題,即保證當(dāng)一個用戶在對此機(jī)器人實(shí)施控制時,其余用戶只可獲得其周圍環(huán)境的三維圖像信息,而不能對它進(jìn)行重復(fù)控制。
硬件方面,機(jī)器人應(yīng)有一個良好的與外界相連的網(wǎng)絡(luò)環(huán)境,并且由于其可運(yùn)動性,在本項(xiàng)目采用pc機(jī)配上無線網(wǎng)卡,與本校的高速校園網(wǎng)相連,以保證遠(yuǎn)程可控。
再加上用于進(jìn)行圖像采集的攝像頭和機(jī)器人所必須的步進(jìn)電機(jī)等就組成一個簡單網(wǎng)絡(luò)機(jī)器人硬件平臺。軟件設(shè)計(jì)方面,利用tcp的子協(xié)議http進(jìn)行數(shù)據(jù)的傳輸,利用rtp協(xié)議進(jìn)行圖像的傳輸。同時在服務(wù)器端采用專用的用戶跟蹤機(jī)制來解決控制的一致性問題。
為了使所開發(fā)的網(wǎng)絡(luò)機(jī)器人控制系統(tǒng)軟件具有通用性和開放性,我們采用b/s編程模式進(jìn)行開發(fā)。使得在控制端,只要使用通用的瀏覽器就可以輕松地實(shí)現(xiàn)機(jī)器人的遠(yuǎn)程控制。服務(wù)器端主要負(fù)責(zé)控制信號的解釋、運(yùn)動狀態(tài)信息的收集與反饋,圖像信息的采集和控制權(quán)的管理。它們之間的數(shù)據(jù)采用http協(xié)議的cgi標(biāo)準(zhǔn)進(jìn)行編碼和傳輸。圖像信息采用h. 261協(xié)議進(jìn)行壓縮后,用rtp協(xié)議進(jìn)行單向傳輸。其結(jié)構(gòu)如所示。
(session)來實(shí)現(xiàn)的。當(dāng)瀏覽器對服務(wù)器發(fā)出一個新的請求時,在服務(wù)器端就會為這個請求分配一個惟一的se-sion進(jìn)程號用來管理這個交互過程。僅當(dāng)這個交互過程完成后,相應(yīng)的進(jìn)程才被服務(wù)器程序收回。因而我們就可以利用這些session進(jìn)程號來進(jìn)行控制權(quán)的管理。
務(wù)器程序中定義兩1個全局'變量co啦泣electronic個是sun公司的avaapplet技術(shù)。由于大多數(shù)瀏覽器都自帶了ava虛擬機(jī)(avavtualmachine,vm),它能夠保證avaapplet的正常運(yùn)行。因而在此項(xiàng)目中使用applet技術(shù)開發(fā)控制臺,與此對應(yīng),在服務(wù)器端使用servlet技術(shù)來實(shí)現(xiàn)。由于ava語言在編寫硬件控制程序方面存在不足,使得步進(jìn)電機(jī)控制卡的程序只能采用c語言進(jìn)行編寫,因而就出現(xiàn)了兩種語言之間的互相調(diào)用的問題。對這個問題的解決,可用ava語言中的ni(ava 3軟件實(shí)現(xiàn)本控制系統(tǒng)包括三大部分:控制臺。它是一個用于在遠(yuǎn)程對機(jī)器人進(jìn)行控制的操作臺,負(fù)責(zé)控制指令的發(fā)送和接收從服務(wù)器端反饋來的信息,是網(wǎng)絡(luò)機(jī)器人與控制人員進(jìn)行交流的接口。在本項(xiàng)目中,我們使用ava語言的applet技術(shù)進(jìn)行控制臺的編寫。創(chuàng)建cortiolpanel類繼承applet類,在其上添加用于控制機(jī)器人前進(jìn)、后退等運(yùn)動狀態(tài)的按鈕。
這些按鈕的標(biāo)題分別對應(yīng)該按鈕的控制指令,其鼠標(biāo)事件處理程序與一個負(fù)責(zé)信息管理的函數(shù)相連。該函數(shù)利用一個bbb類對控制人員所發(fā)出的控制指令進(jìn)行編碼后發(fā)送到服務(wù)器端,并接收和顯示來自服務(wù)器的反饋數(shù)據(jù)。
控制服務(wù)器。它主要負(fù)責(zé)控制權(quán)的管理和相關(guān)信息的收發(fā)工作。創(chuàng)建一個contiolservei類以繼承httpservlet類,在這個類中分別用httpservletrequest和httpservletresponse來管理信息的父互。用httpsession類來實(shí)現(xiàn)用戶跟蹤,實(shí)現(xiàn)控制權(quán)的管理。具體是用兩個全局變量來處理的,一個用于記錄當(dāng)前進(jìn)行控制的進(jìn)程號,另一個用來記錄當(dāng)前電機(jī)的狀態(tài)(啟動或停止),在對從遠(yuǎn)端傳來的控制指令進(jìn)行處理的程序段中,用兩個臨時變量分別存儲當(dāng)前發(fā)出控制指令的進(jìn)程號與相應(yīng)的電機(jī)指令。再加上一系列的判斷語句就可以實(shí)現(xiàn)控制權(quán)的合理管理。
控制卡接口程序。用來向步進(jìn)電機(jī)控制卡發(fā)送指令的部分,它由一個ava類和一個c動態(tài)庫組成。ava類來接收由控制服務(wù)器發(fā)送的數(shù)據(jù),并用一個私有函數(shù)來調(diào)用按ni標(biāo)準(zhǔn)編寫的c動態(tài)庫,實(shí)現(xiàn)硬件控制。
本系統(tǒng)中還包括一個圖像傳輸部分,它是用ava中的mf(avamediaframe)來實(shí)現(xiàn)的。至此就完成了整個系統(tǒng)的實(shí)現(xiàn)。其系統(tǒng)結(jié)構(gòu)如所示。
4程序代碼在本系統(tǒng)中為了實(shí)現(xiàn)控制的一致性,首先在控制服bbbbbboldld;記錄具有控制權(quán)的進(jìn)程號slringoldslate;記錄電機(jī)當(dāng)前的狀態(tài)在初始化程序段nil(中,對這兩個變量進(jìn)行賦值odid=newslring(new);odslale=在處理客戶端請求的過程doget中定義兩臨時變量bbbbbbtmpld;記錄當(dāng)前控制臺端請求的進(jìn)程號bbbbbb記錄當(dāng)前控制臺請求的狀態(tài)指令調(diào)用hllpservletreqllsel的getsession方法取得當(dāng)前請求進(jìn)程,并用getld方法得到其進(jìn)程號。
而后書寫判斷語句v進(jìn)行電機(jī)控制,啟動電機(jī)odstate.lmpslale;進(jìn)行電機(jī)控制,停止電機(jī)給控制臺一個電機(jī)己被其它有控制的信息這樣就可以實(shí)現(xiàn)控制權(quán)的有效管理,保證控制的一致性問題。
5運(yùn)行效果將以上所述的一系列類和動態(tài)庫編譯、鏈接后置于支持avaservlet的服務(wù)器軟件所要求的相應(yīng)目錄中,其中動態(tài)庫置于bbbbbbs目錄或bbbbbbs/system32目錄下。啟動該servlet服務(wù)器和視頻采集編碼服務(wù)器。在客戶端的瀏覽器中調(diào)用控制臺網(wǎng)頁,便會在瀏覽器中出現(xiàn)一個控制臺和一個機(jī)器人所在環(huán)境的三維圖像。進(jìn)行測試發(fā)現(xiàn)能滿足設(shè)計(jì)要求。整個控制具有以下特點(diǎn):良好的交互性。本系統(tǒng)采用可視化的控制臺進(jìn)行遠(yuǎn)程控制,同時機(jī)器人的運(yùn)動狀態(tài)會顯示于瀏覽器的狀態(tài)欄上。這樣控制人員就可通過按下按鈕與放開按鈕來實(shí)現(xiàn)網(wǎng)絡(luò)機(jī)器人的運(yùn)動與停止。
控制的一致性。當(dāng)一個用戶在對機(jī)器人進(jìn)行控制時,另一用戶一旦發(fā)出控制指令,將會在其瀏覽器的狀態(tài)欄內(nèi)看到機(jī)器人已被其它用戶控制的信息提示。
控制系統(tǒng)的開放性。此系統(tǒng)采用ava語言進(jìn)行開發(fā)的,不同的類完成不同的功能,這樣就可以通達(dá)開發(fā)新的類來實(shí)現(xiàn)功能的擴(kuò)充與更新。










