孫華,吳亞明,李偉
?。ü枮I工程大學(xué) 自動(dòng)化學(xué)院,黑龍江 哈爾濱 150001)
摘要:設(shè)計(jì)了一種移動(dòng)機(jī)器人無線局域網(wǎng)控制系統(tǒng),采用OpenWrt系統(tǒng)的無線路由器建立無線局域網(wǎng),與FPGA進(jìn)行數(shù)據(jù)轉(zhuǎn)換,設(shè)計(jì)了系統(tǒng)的人機(jī)交互界面。通過WiFi,操作人員可以對(duì)移動(dòng)機(jī)器人進(jìn)行遙操作控制。通過整體設(shè)計(jì)使得系統(tǒng)能通過無線局域網(wǎng)將移動(dòng)機(jī)器人控制器與上位機(jī)控制平臺(tái)聯(lián)系起來進(jìn)行數(shù)據(jù)交流,實(shí)現(xiàn)上位機(jī)對(duì)移動(dòng)機(jī)器人的遙操作控制功能以及對(duì)移動(dòng)機(jī)器人的監(jiān)測(cè)功能。
關(guān)鍵詞:OpenWrt;無線局域網(wǎng);FPGA;WiFi;人機(jī)交互
0引言
隨著無線數(shù)據(jù)傳輸協(xié)議的規(guī)范和無線局域網(wǎng)(Wireless Local Area Network,WLAN)傳輸速率和穩(wěn)定性的提高,無線局域網(wǎng)在機(jī)器人領(lǐng)域得到了應(yīng)用。當(dāng)機(jī)器人在惡劣的環(huán)境或者有毒、危險(xiǎn)的環(huán)境下工作時(shí),對(duì)操作人員的人身安全和身心健康造成極大的危害,因此很多機(jī)器人的控制方式已經(jīng)從傳統(tǒng)的現(xiàn)場(chǎng)控制發(fā)展到遠(yuǎn)程遙控的方式。操作人員的工作位置與機(jī)器人的作業(yè)位置可以在兩個(gè)不同的地方,保證了操作人員的人身安全[1]。
本文設(shè)計(jì)了基于OpenWrt系統(tǒng)的無線路由器的無線局域網(wǎng)。整個(gè)系統(tǒng)由上位機(jī)和下位機(jī)組成,通過基于OpenWrt系統(tǒng)的無線路由器進(jìn)行傳輸數(shù)據(jù)。下位機(jī)采用FPGA控制板作為控制器,將無線路由器的網(wǎng)口數(shù)據(jù)轉(zhuǎn)化為FPGA方便處理的串口數(shù)據(jù),使得在進(jìn)行數(shù)據(jù)編排時(shí)更加簡(jiǎn)單、快捷,降低了成本,縮短了開發(fā)時(shí)間。
1移動(dòng)機(jī)器人無線局域網(wǎng)實(shí)現(xiàn)
本文首先闡述了系統(tǒng)中無線局域網(wǎng)的通信原理,闡明了數(shù)據(jù)轉(zhuǎn)化的方式,然后對(duì)建立無線局域網(wǎng)的設(shè)備進(jìn)行了介紹,并對(duì)其內(nèi)部進(jìn)行了一些修改,最后對(duì)OpenWrt系統(tǒng)和其安裝配置進(jìn)行了簡(jiǎn)要說明。
1.1機(jī)器人無線局域網(wǎng)通信系統(tǒng)總體設(shè)計(jì)
本文實(shí)現(xiàn)的無線局域網(wǎng)方案是由無線路由器發(fā)出WiFi信號(hào),無線路由器可以基于人為定制的OpenWrt系統(tǒng)安裝。無線路由器發(fā)射的無線局域網(wǎng)完成的通信功能有兩個(gè):將網(wǎng)口數(shù)據(jù)轉(zhuǎn)化為串口數(shù)據(jù)實(shí)現(xiàn)與上位機(jī)通信;將攝像頭采集的數(shù)據(jù)發(fā)送給上位機(jī)處理。為滿足要求,在OpenWrt系統(tǒng)的無線路由器上安裝兩個(gè)軟件:ser2net和mjpgstreamer。
ser2net是網(wǎng)口串口數(shù)據(jù)互轉(zhuǎn)的軟件,上位機(jī)發(fā)送的控制指令以網(wǎng)口為路徑經(jīng)ser2net從串口轉(zhuǎn)發(fā)給移動(dòng)機(jī)器人的FPGA控制板,同樣FPGA控制板也可以將該路徑反過來反饋數(shù)據(jù)給上位機(jī)[2]。mjpgstreamer可用于通過網(wǎng)絡(luò)攝像頭采集圖像,把圖像數(shù)據(jù)以流的形式通過基于IP的網(wǎng)絡(luò)傳輸?shù)綖g覽器。移動(dòng)機(jī)器人無線局域網(wǎng)通信原理圖如圖1所示。
1.2無線路由器
本文采用的路由器型號(hào)為TPLINKWR703N,傳輸標(biāo)準(zhǔn)為IEEE 802.11b/g/n,無線傳輸率為150 Mb/s。該路由采用AR9331的方案,主控芯片為AR9331芯片,為方便串口通信,將該路由的數(shù)據(jù)輸入和數(shù)據(jù)輸出線引出作為TTL串口通信的RX和TX數(shù)據(jù)線,并引出接地線。
無線路由器的路由模式有3種:3G路由模式、無線路由模式、無線AP模式。本設(shè)計(jì)采用無線AP模式下的接入點(diǎn)模式。
1.3OpenWrt系統(tǒng)
OpenWrt是一個(gè)高度模塊化、高度自動(dòng)化的嵌入式Linux系統(tǒng),擁有強(qiáng)大的網(wǎng)絡(luò)組件和高擴(kuò)展性,常常被用于工控設(shè)備、電話、小型機(jī)器人、智能家居、路由器以及VOIP設(shè)備中。有一個(gè)稱作LuCI的Web交互接口用于配置路由器。這個(gè)Web接口有許多配置頁面,可以管理安裝可用的軟件包,但是有些軟件不能從網(wǎng)絡(luò)安裝,所以通過終端配置也是一種不可或缺的選擇[3]。
1.4OpenWrt系統(tǒng)定制
本文采用基于Linux的Ubuntu13.10操作系統(tǒng)定制OpenWrt系統(tǒng)。為定制OpenWrt系統(tǒng),需在Ubuntu13.10操作系統(tǒng)下安裝一定的編譯依賴包和OpenWrt系統(tǒng)源碼。
編譯依賴包具體安裝指令如下:先輸入sudo aptget update,再輸入sudo aptget install gcc g++ binutils patch bzip2 flex bison make autoconf gettext texinfo unzip sharutils subversion libncurses5dev ncursesterm zlib1gdev[4]。Ubuntu安裝編譯依賴包過程如圖2所示。
本設(shè)計(jì)選擇OpenWrt提供的backfire版,下載過程為:先輸入mkdir openWrt創(chuàng)建文件夾,再輸入cd openwrt確定,緊接著下載OpenWrt源碼(svn co svn://svn.openwrt.org/openwrt/branches/backfire/)。下載安裝backfire版系統(tǒng)源碼如圖3所示。
1.5Ser2net和Mipgstreamer
本文所使用的系統(tǒng)需要ser2net和mjpgstreamer兩個(gè)軟件來完成數(shù)據(jù)的轉(zhuǎn)化。
ser2net的作用是把接收到的網(wǎng)絡(luò)數(shù)據(jù)(TCP/IP格式)轉(zhuǎn)化為處理器可以處理的串口數(shù)據(jù),同時(shí)把串口數(shù)據(jù)打包成網(wǎng)絡(luò)格式(TCP/IP格式)發(fā)送出去。把此程序放入路由器的啟動(dòng)項(xiàng)程序中,每當(dāng)串口接收到來自FPGA的數(shù)據(jù)時(shí),便會(huì)觸發(fā)該程序,把串口數(shù)據(jù)自動(dòng)打包,再送到下一級(jí)處理。
mjpgstreamer的作用是將攝像頭采集的視頻流數(shù)據(jù)以mjpg流媒體協(xié)議輸出到路由器,然后通過ser2net將流媒體數(shù)據(jù)轉(zhuǎn)化為網(wǎng)絡(luò)格式(TCP/IP格式)發(fā)送出去[5]。
1.6無線路由器OpenWrt系統(tǒng)
本設(shè)計(jì)選擇設(shè)置頁面的升級(jí)接口方式進(jìn)行系統(tǒng)安裝。具體過程如下:設(shè)置進(jìn)行刷機(jī)的PC的網(wǎng)卡IP為 192.168.1.100,子網(wǎng)掩碼為255.255.255.0;用網(wǎng)線將無線路由器與PC連接,按住路由器reset按鈕,接電源,直到藍(lán)色指示燈亮起后松開reset按鈕;用瀏覽器打開192.168.1.1,進(jìn)入failsafe刷機(jī)界面;在刷機(jī)界面中選擇刷機(jī)的目的固件并確定,等待大約5 min直到指示燈不閃爍,隨后刷機(jī)完成,可以進(jìn)入固件界面。
2上位機(jī)與無線局域網(wǎng)通信
圖4ser2net工作流程圖上位機(jī)與移動(dòng)機(jī)器人控制板的無線局域網(wǎng)通信實(shí)際上是上位機(jī)數(shù)據(jù)通過網(wǎng)絡(luò)端口轉(zhuǎn)串口進(jìn)行發(fā)送。通過OpenWrt系統(tǒng)中安裝的軟件ser2net完成轉(zhuǎn)發(fā)功能。同時(shí)視頻數(shù)據(jù)傳輸?shù)缴衔粰C(jī)界面后通過綁定的端口號(hào)和IP將視頻進(jìn)行解碼。在上位機(jī)上運(yùn)用Socket編程和多線程編程將流媒體數(shù)據(jù)提取出來[6]。TCP網(wǎng)口數(shù)據(jù)轉(zhuǎn)發(fā)到串口的工作流程圖如圖4所示。
3上位機(jī)與無線局域網(wǎng)系統(tǒng)測(cè)試
調(diào)試過程中先將無線路由器通過串口轉(zhuǎn)USB線連接計(jì)算機(jī),然后將計(jì)算機(jī)接入無線路由器發(fā)射出的無線局域網(wǎng),如圖5所示。
接著打開上位機(jī)軟件接入網(wǎng)絡(luò),設(shè)置控制信號(hào)為不同值,如圖6所示?!?/p>
然后通過上位機(jī)發(fā)出控制指令,由串口調(diào)試助手監(jiān)測(cè)無線路由器是否轉(zhuǎn)發(fā)了該控制指令,如圖7所示。
4人機(jī)交互系統(tǒng)
本文開發(fā)的人機(jī)交互系統(tǒng)主要有兩個(gè)功能:視頻觀察、移動(dòng)機(jī)器人控制。視頻觀察是通過攝像頭將畫面顯示到人機(jī)交互界面,以便實(shí)時(shí)監(jiān)控移動(dòng)機(jī)器人的路況,防止移動(dòng)機(jī)器人在運(yùn)動(dòng)過程中碰到障礙物,發(fā)生損壞。在控制區(qū)有移動(dòng)機(jī)器人的操作指令和視頻關(guān)閉按鈕,可以對(duì)移動(dòng)機(jī)器人進(jìn)行遙操作。
5無線局域網(wǎng)系統(tǒng)整體調(diào)試
在調(diào)試完成并測(cè)試了各個(gè)模塊可以正常工作后,需要調(diào)試整體功能,最終經(jīng)過系統(tǒng)調(diào)試,整個(gè)系統(tǒng)可實(shí)現(xiàn)正常運(yùn)行。
6結(jié)論
本文通過將OpenWrt系統(tǒng)移植到無線路由器中,實(shí)現(xiàn)了網(wǎng)口數(shù)據(jù)轉(zhuǎn)化為串口數(shù)據(jù),通過FPGA進(jìn)行處理,并將圖像數(shù)據(jù)以流的形式通過基于IP的網(wǎng)絡(luò)傳輸?shù)缴衔粰C(jī)界面,構(gòu)成一個(gè)完整的無線局域網(wǎng)系統(tǒng)。
本文開發(fā)的人機(jī)交互界面具有較強(qiáng)的可移植性,對(duì)于不同的主控系統(tǒng)都可以很好地兼容。實(shí)驗(yàn)表明,該人機(jī)交互界面同以往無線數(shù)據(jù)傳輸開發(fā)工具相比,具有開發(fā)周期短、可移植性好、操作簡(jiǎn)單等優(yōu)點(diǎn)。
參考文獻(xiàn)
[1] 徐志暉,陸宇平. 無線局域網(wǎng)在移動(dòng)機(jī)器人遠(yuǎn)程控制中的應(yīng)用[J]. 信息技術(shù),2004,28(12):79,52.
?。?] 蔣嘉柔,蘇寒松,李婷. 基于手機(jī)終端無線通信系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J]. 電子測(cè)量技術(shù),2015,38(10):122130.
[3] 曹為華,凌強(qiáng),張雷,等. 基于OpenWrt系統(tǒng)路由器的模式切換與網(wǎng)頁設(shè)計(jì)[J]. 微型機(jī)與應(yīng)用,2015,34(23):9194.
?。?] 危思思. 基于OpenWrt開源平臺(tái)的移動(dòng)智能裝備[D].杭州:浙江大學(xué),2014.
[5] 李歡,魏衡華.基于仿人機(jī)器人的無線視頻監(jiān)控系統(tǒng)設(shè)計(jì)[J].微型機(jī)與應(yīng)用,2014,33(10):8891,94.
?。?] 李章俊,沈天怡,華嬌嬌,等. 基于WiFi技術(shù)的多功能小型搜救機(jī)器人[J]. 電子世界,2014,13(6):198199.