高 飛,王新杰
(鄭州輕工業(yè)學(xué)院 機電工程學(xué)院,鄭州 450002)
機器人遠程控制技術(shù)的研究開始于20世紀60年代,隨著人類對自然界的認識和機器人應(yīng)用領(lǐng)域的不斷擴大,不可避免出現(xiàn)一些相對比較惡劣的工作環(huán)境,比如,火山探險、深海探密、空間探索,軍事場地巡邏、偵察、監(jiān)視,在生物、化學(xué)、核試驗場地作業(yè)等。危險的環(huán)境,對操作人員的人身安全和身心健康造成極大危害,有時甚至導(dǎo)致死亡。因此很多在惡劣環(huán)境下對現(xiàn)場工作機器人的控制方式已從傳統(tǒng)的現(xiàn)場控制方式發(fā)展到無線遠程控制方式。
1980年出現(xiàn)了第一個基于互聯(lián)網(wǎng)的控制設(shè)備“cambridgecoffeepot”“劍橋咖啡壺”。它由劍橋大學(xué)的科研人員開發(fā)的,“劍橋咖啡壺”的出現(xiàn)以及后來Internet的快速發(fā)展,使得操作機器人網(wǎng)站和基于互聯(lián)網(wǎng)的可控設(shè)備在幾年內(nèi)大量涌現(xiàn)。在國內(nèi),中科院沈陽自動化研究所研制的主從異構(gòu)的監(jiān)控遠程控制系統(tǒng);哈爾濱工業(yè)大學(xué)開發(fā)的空間機器人共享系統(tǒng);北京航空航天大學(xué)開發(fā)的基于Internet的遠程控制系統(tǒng)等,都是機器人遠程控制系統(tǒng)的典型范例。
當前遠程控制系統(tǒng)模型基本都是基于互聯(lián)網(wǎng)點對點單一控制,當機器人遇到復(fù)雜環(huán)境或者需要多機器人協(xié)作的時候,這種控制方式就顯得力不從心?;跓o線局域網(wǎng)的控制方式能夠方便的把單一機器人擴展為機器人組并使之協(xié)調(diào)動作,同時保證數(shù)據(jù)傳輸?shù)募皶r性和穩(wěn)定性。因此本課題正是要在實驗室現(xiàn)今所具有的軟硬件條件的基礎(chǔ)上,設(shè)計一套基于無線局域網(wǎng)的機器人控制系統(tǒng),使之能半脫離主控端(PC),自主完成一些簡單動作,通過TCP/IP協(xié)議中的Socket(套接字)編程,使上位機(PC)能對機器人進行簡單控制指令的遙操作,利用人類的高級智能和機器人的低級智能,實現(xiàn)人監(jiān)控下的移動機器人半自主運動。
整套硬件設(shè)備圖如圖1所示,
上位PC機通過無線網(wǎng)卡與下位機器人進行無線通訊,為了保證兩個車間之間信號質(zhì)量、實現(xiàn)對移動機器人的遠程無線控制,在兩個車間中間增加了無線路由器,從而加強了信號強度、擴展了信號無線傳輸距離。
車載PC采用威盛 EPIA-P700 系列 Pico-ITX 嵌入式主板,擴展接口多,尺寸小,功耗低,采用嵌入式主板一方面節(jié)省了開發(fā)時間,另一方面增加了系統(tǒng)的穩(wěn)定性,在此主板上自行添加了視覺傳感器和超聲波傳感器,豐富移動機器人各方面的功能。
整個機器人系統(tǒng)可分為無線通信模塊,機身控制器模塊,電機控制器及驅(qū)動模塊,傳感器及圖像采集模塊。各個模塊結(jié)構(gòu)關(guān)系圖如圖2所示。
從圖中可以看出機身控制器模塊是整個系統(tǒng)的核心,也就是機器人的大腦部分,一方面通過無線模塊與上位機進行通訊,接受上面的指令,同時又通過自身的串口接口把收到的控制指令發(fā)送給下一層的控制器,從而對電機進行控制,另一方面接收圖像采集模塊傳送過來的視頻信息經(jīng)過處理反饋給上位機,使主控端能時時刻刻了解移動機器人所處的環(huán)境。
采用這種模塊化分布式控制的優(yōu)點在于,控制系統(tǒng)的每一層,每一個控制模塊幾乎都是相互獨立的,屬于層層調(diào)用模式,當出現(xiàn)問題時,很容易就找出是哪一部分出錯。同時也方便了系統(tǒng)移植,任何一個模塊都可以移植到其他系統(tǒng),只需改變與新系統(tǒng)相應(yīng)的底層函數(shù)即可。
車載機身控制器采用小型嵌入式控制主板,通過一塊無線網(wǎng)卡與無線路由及其上位控制PC機構(gòu)成無線局域網(wǎng)環(huán)境。
由于實現(xiàn)移動機器人遠程控制的任務(wù)主要是數(shù)據(jù)傳輸,所以在上位PC機與機身控制器無線通信采取Socket(套接字)通信方式,根據(jù)傳輸數(shù)據(jù)類型的不同,套接字可分為面向連接的數(shù)據(jù)流套接字(stream sockets)和無連接的數(shù)據(jù)報套接字(datagram sockets)兩種類型。本系統(tǒng)中我們采取面向連接的數(shù)據(jù)流式套接字,其編程模型如圖3所示。
在使用面向連接流式套接字通信時,應(yīng)注意先打開服務(wù)器端,否則當客戶端連接時將會出現(xiàn)錯誤。通信流程如圖3所示,車載機身控制器作為通信服務(wù)器端,啟動后首先調(diào)用socket()建立一個套接字,然后調(diào)用bind()將該套接字和本地網(wǎng)絡(luò)地址聯(lián)系在一起,再調(diào)用listen()使套接字做好偵聽的準備,并規(guī)定它的請求隊列的長度,之后就調(diào)用accept()來接收PC客戶機的連接。而遠程PC機在啟動建立套接字后就可調(diào)用connect()和服務(wù)器建立連接。連接一旦建立,機身控制器和遠程用戶PC機之間就可以通過調(diào)用系統(tǒng)定義的子功能函數(shù)send()和recv()來通過無線網(wǎng)絡(luò)發(fā)送和接收數(shù)據(jù)了。
在機身控制器接收到遠程上位機發(fā)來的指令(具體行走路線或步態(tài))將其保存,當數(shù)據(jù)接收完畢后關(guān)閉Socket,將其轉(zhuǎn)發(fā)給下位電機控制器,由電機控制器對其解釋和執(zhí)行,由機身控制器發(fā)送給電機控制器數(shù)據(jù)傳輸流程圖如圖4所示:
圖4 機器人控制系統(tǒng)數(shù)據(jù)傳輸流程圖
在進行機身控制器與電機控制器之間的串口通信之前,首先要對串口進行設(shè)置,在此我們調(diào)用電機控制器底層已有的函數(shù)庫,
VCS_OpenDevice(...,...,...,...,...) 打開設(shè)備,初始化用戶數(shù)據(jù);
VCS_OpenDeviceDlg (…) 初始化RS232串口,并顯示現(xiàn)有可用端口;
VCS_SetProtocolStackSettings (…,…,…) 初始化串口通信的波特率和超時;
VCS_ClearFault (…,…,…) 清除錯誤信息;
…
…
…
VCS_CloseAllDevices(…,…,…) 關(guān) 閉 所 有 端口,并解除對其的綁定;
當串口協(xié)議設(shè)置完成以后,機身控制器便可與電機控制器進行串口通信,傳送控制指令使機器人移動或做其他動作。
基于無線局域網(wǎng)的移動機器人遠程控制系統(tǒng)的應(yīng)用,使機器人擺脫了對上位控制PC端在地域上的依賴,機器人在工作中,遠程控制人員可時時刻刻觀察機器人的工作狀態(tài),并對工作環(huán)境改變或突發(fā)事件對機器人進行實時控制及處理,提高了移動機器人的靈活性,與此同時本方案采取了小巧嵌入式主板,增強了機器人自處理信息的速度,提高了感知環(huán)境的能力?;诜植际侥K化的思想增強了機器人各部件的可移植性。因此該方案具有廣闊的應(yīng)用前景。
本系統(tǒng)采用可重構(gòu)分布式控制系統(tǒng),使各個模塊相互獨立,有較好的移植性和擴展性,同時系統(tǒng)基于無線局域網(wǎng)保證了穩(wěn)定快速的傳輸速度,實現(xiàn)了機器人在人的控制下半自主式移動。
[1] 汪曉平,鐘軍.Visual C++網(wǎng)絡(luò)通信協(xié)議分析與實現(xiàn)[M].北京:人民郵電出版社,2003.
[2] 易君.Visual C++.NET網(wǎng)絡(luò)編程[M].北京:中國鐵道出版社,2003.
[3] Jim Geier.無線局域網(wǎng)(王群、李馥娟譯)[M].北京:人民郵電出版社,2001.
[4] 孫波,李文鋒,李斌,楊小鑄.基于無線網(wǎng)絡(luò)的嵌入式機器人控制系統(tǒng)[J].微計算機信息,2008,9.
[5] 付二寅.基于WLAN的移動機器人遠程控制系統(tǒng)研究[D].西安:西安理工大學(xué),2007.
[6] maxon EPOS控制器編程手冊[Z] .2007,8.