劉博,楊斌
(西南交通大學信息科學與技術學院,成都610031)
遠程可視化遙控偵察定位機器人系統設計
劉博,楊斌
(西南交通大學信息科學與技術學院,成都610031)
遠程可視化遙控偵察定位機器人系統共由兩部分構成。第一部分為機器人,與PC遠程控制終端建立網絡連接,獲取控制命令,解析命令后控制機器人的運動電機、轉向舵機和立體視頻云臺。機器人將自己的GPS位置信息和環境圖像傳輸到PC控制終端。第二部分為PC遠程控制終端,獲取北通遙控手柄的命令數據并打包后,通過網絡傳輸給機器人,實現機器人運動狀態控制。PC遠程控制終端通過網絡獲取機器人的GPS位置數據和視頻數據,將數據解析后分別顯示到圖像監控窗口和地圖定位窗口。
遙控機器人;PandaBoard;圖像壓縮;GPS定位
科學技術的飛速發展推動了機器人技術的不斷發展和廣泛應用。在現代社會生活中復雜的應用需求越來越多,如軍事偵查、高危環境巡邏、特殊環境拍攝等。遠程遙控偵察定位機器人系統可以勝任特殊環境中的特殊需求。本系統以PandaBoard開發板作為機器人的控制核心,能夠實現網絡通信、機器人姿態控制、機器人位置信息處理。遠程遙控終端由PC機和北通阿修羅遙控手柄構成,PC機獲取遙控手柄的遙控數據并打包,通過網絡發送給機器人,并且獲取視頻圖像數據和機器人地理位置信息,實現機器人的控制、視頻監控和地理位置監視。
系統硬件部分主要由PandaBoard開發板、GPS定位開發板、立體視頻監控云臺、PC機構成。
1.1 機器人整體結構
機器人整體由機器人車體、攝像頭云臺、電源控制板、電機驅動控制板、PandaBoard核心控制板5部分組成。機器人車體為飛思卡爾智能車競賽指定車模。攝像頭云臺有兩組MG946R舵機構成,可以實現上下左右四維角度調節。攝像頭為奧尼ANC網絡攝像頭,可以采集YUV和RGB格式的圖像數據。電源模塊主要完成將8 V電池電壓降為5 V和6 V電壓,分別供給PandaBoard開發板和MG946R舵機。電機驅動模塊用BTS7960電機驅動芯片設計。機器人整體結構如圖1所示。
1.2 PandaBoard開發板
PandaBoard開發板是TI公司的SoC開發板,其內部主要包括4個處理引擎,包括基于ARMv7I指令集的SMP Cortex-A9 1 GHz雙核處理器、可編程多媒體硬件加速引擎IVA-HD及協處理器 Cortex-M3、圖像顯卡 Power SGX540及提供圖像視頻并行計算的ISP。其中IVA-HD多媒體加速引擎內部有7個針對各種視頻編解碼而設計的加速引擎,能夠實現對720P視頻的實時編解碼,并且擁有1 GB的RAM,可以流暢運行Ubuntu開源操作系統。PandaBoard開發板如圖2所示。

圖2 PandaBoard開發板
1.3 北通神鷹阿修羅遙控手柄
北通神鷹阿修羅遙控手柄用來控制機器人的運動狀態,可以前進、后退、加速、減速,還可控制攝像頭云臺的角度控制,如搖擺頭、點頭、抬頭。北通神鷹阿修羅遙控手柄如圖3所示。

圖3 北通神鷹阿修羅遙控手柄
1.4 系統硬件架構圖
系統硬件架構圖如圖4所示,游戲手柄通過USB接口同PC連接,PC通過無線熱點與遙控機器人建立通信連接。PC機將游戲手柄的數據打包后通過網絡發送給移動機器人,這樣就可以控制機器人的運動行為。機器人獲取的GPS地圖數據和攝像頭數據打包壓縮后通過無線網絡傳送到PC控制終端,這樣PC就可以獲得機器人當前環境狀況和地理位置信息。

圖4 系統硬件架構圖
系統軟件設計包括PC控制服務程序和PandaBoard開發板應用程序。PC控制服務程序包括視頻數據處理軟件設計、GPS地理位置信息處理軟件設計和遙控移動手柄軟件設計。PandaBoard開發板應用程序,包括視頻服務軟件設計、機器人運動狀態控制軟件設計和GPS地理位置信息服務軟件設計。系統軟件架構如圖5所示。

圖5 系統軟件架構
PC視頻數據處理軟件將實時接收機器人通過網絡傳輸過來的mjpeg視頻數據,通過ffmpeg解壓縮成為位圖后繪制到屏幕上。GPS地理位置信息處理軟件將實時接收機器人的GPS數據,解析之后在開源網絡地圖中進行標定。遙控移動手柄軟件主要負責接收北通神鷹手柄的命令信息,并且將機器人控制命令和攝像頭云臺控制命令通過網絡傳輸到機器人并控制機器人。
機器人核心控制板搭載Ubuntu系統。視頻服務軟件采集USB攝像頭YUV422數據,壓縮成mjpeg通過無線網絡傳輸到PC控制終端。機器人運動狀態控制通過Panda-Board開發板中的5路PWM端口分別控制機器人的前進、后退、方向舵機控制、攝像頭云臺的左右搖頭控制和攝像頭云臺的點頭抬頭控制。GPS地理位置信息服務通過串口獲取GPS地理位置信息,分析打包后傳輸到PC控制終端。
2.1 PC控制終端軟件設計
2.1.1 北通神鷹手柄按鍵處理
對于遙控手柄數據采集處理,在Linux下的編程框架為JoyStick。JoyStick可以直接采集北通手柄事件,將手柄的事件值賦予特定的命令含義后就可以控制機器人的運動狀態。將北通手柄接入PC后,在Linux系統下就成生了/dev/input/js0設備,js0就是遙控手柄設備,為了操作js設備,編寫設計了tagJoyStickEvent結構體,這個結構體中擁有手柄按鍵發生時間、鍵值、按鍵類型、按鍵號碼4個成員結構,如下所示:
typedef struct tagJoyStickEvent{
unsigned int time; /*發生時間毫秒級*/
short value; /*鍵值*/
unsigned char type; /*鍵值類型*/
unsigned char number; /*鍵位Num*/
tagJoyStickEvent&operator=(const tagJoyStickEvent& JseTemp){
this->time=JseTemp.time;
this->value=JseTemp.value;
this->type=JseTemp.type;
this->number=JseTemp.number;
return*this;
}
}stJoyStickEvent;
北通神鷹手柄按鍵類型一共有兩種,Type=1和Type =2,共14個按鍵。一共需要4個按鍵來控制機器人的前進、后退、轉向、攝像頭云臺擺動。同Linux下其他設備一樣,首先打開js設備文件,建立按鍵設備監聽函數,當手柄按鍵按下后,觸發設備監聽函數,讀取stJoyStickEvent結構體,解析按鍵結構體并通過網絡發送給機器人。
2.1.2 mjpeg視頻數據處理
ffmpeg是一個開源免費跨平臺的視頻和音頻流方案,屬于自由軟件,采用LGPL或GPL許可證(依據選擇的組件),提供了解碼、編碼、錄制、轉換以及流化音視頻的完整解決方案。mjpeg圖像解碼過程:讀入mjpeg圖像→解碼→逆量化→反離散余弦變換→原圖像。ffmpeg解碼過程如下:
①調用avcodec_init(),這個庫函數只需調用一次。avcodec_init主要包括dsp_static_init函數,負責靜態查找表結構的初始化。
②avcodec_register_all(),注冊所有的編碼器,使它們處于工作狀態。
③avcodec_find_decoder()函數用于查找一個與codec ID相匹配的已注冊的解碼器。
④avcodec_alloc_context()函數用于分配一個AVCodecContext并設置默認值,如果失敗返回NULL,并可用av _free()進行釋放。
⑤avcodec_alloc_frame()函數用于分配一個AVFrame并設置默認值,如果失敗返回NULL,并可用av_free()進行釋放。
⑥avcodec_open()函數用給定的AVCodec來初始化AVCodecContext。
⑦video_decode_video2()函數用于視頻解碼,所有的解碼工作都在該函數內完成。
解碼完成之后形成位圖,即可直接顯示在計算機屏幕上。
2.1.3 GPS數據處理
在QT下QWebView類提供了一個可以展現和編輯網頁文檔的widget。QWebView是QtWebKit網頁瀏覽模塊的一個主要widget組件,可以用它來展現互聯網網頁。在Qt Designer中創建一個QWebView,可以使用QWebView 的load()方法來加載一個網站,如 load(QUrl(" googlemap.html")),和其他所有QT的widget一樣,需要調用show()方法才會顯示出QWebView。QWebView除了用load()方法設定網頁路徑外,也可以使用setHtml()方法加載HTML格式的網頁,如setUrl(QUrl("baidumap.html"))。網頁文件加載之后,開啟QWebView的JS功能,就可以同網頁文件進行JS交互應用了。機器人通過網絡將GPS地理位置數據傳輸到PC控制終端,解析GPS數據包后,在地圖中標定機器人的位置信息。
2.2 機器人軟件設計
2.2.1 機器人運動狀態控制
機器人運動狀態控制包括前進、后退、轉向、攝像頭云臺轉動。而這些動作的共同之處在于都需要應用PWM信號進行控制。脈寬調制(PWM)是利用微處理器的數字輸出來對模擬電路進行控制的一種技術,廣泛應用在測量、通信、功率控制與變換等許多領域中。舵機主要由外殼、電路板、無核心馬達、齒輪與位置檢測器構成。其工作原理是接收機發出信號給舵機,經由電路板上的IC判斷轉動方向,再驅動無核心馬達開始轉動,通過減速齒輪將動力傳至擺臂,同時由位置檢測器送回信號,判斷是否已經到達定位。整個機器人一共有3個舵機,其中兩個舵機作為攝像頭云臺,第3個舵機控制機器人的轉向。機器人的前后運動由電機提供動力,電機的驅動由電機驅動電路管理控制,電機驅動電路需要PWM控制信號來控制電機的前后轉動。配置PandaBoard開發板PWM信號驅動功能,利用Linux設備樹技術將相應的設備引腳配置成PWM功能,使設備引腳在 Linux中形成設備文件,這樣操作PWM設備文件就可以產生PWM輸出信號。
2.2.2 視頻圖像獲取
視頻圖像獲取需要借助V4L2編程框架,應用ffmpeg壓縮成mjpeg圖像,通過WiFi網絡傳輸到PC控制終端,V4L2設置過程如下:
①打開設備文件int fd=open(”/dev/video0″,O_RDWR);
②取得設備的capability,看看設備具有哪些功能,比如是否具有視頻輸入,或者音頻輸入輸出等,VIDIOC_ QUERYCAP,struct v4l2_capability;
③設置視頻的制式和幀格式,制式包括PAL、NTSC,幀的格式包括寬度和高度等,VIDIOC_S_STD,VIDIOC_S_ FMT,struct v4l2_std_id,struct v4l2_format;
④向驅動申請幀緩沖,一般不超過5個;
⑤將申請到的幀緩沖映射到用戶空間,就可以直接操作采集到的幀了,而不必去復制;
⑥將申請到的幀緩沖全部入隊列,以便存放采集到的數據;
⑦開始視頻采集;
⑧出隊列以取得已采集數據的幀緩沖,取得原始采集數據;
⑨將緩沖重新入隊列尾,這樣可以循環采集;
⑩停止視頻的采集;
?關閉視頻設備。
2.2.3 GPS地圖數據獲取
打開串口,讀取SIM908開發板的GPS數據并解析,獲取有用的GPS經度緯度數據,通過無線網絡發送給PC控制終端。
實驗證明,遠程遙控巡邏偵察機器人系統可以將實時視頻圖像和GPS地理位置數據流暢地傳輸到PC遠程控制終端,而PC遠程控制終端將控制命令發送給機器人以靈活控制機器人的運動,達到了設計要求。PC控制終端運行效果如圖6所示。

圖6 PC控制終端運行效果圖
遠程遙控巡邏偵察機器人系統使用WiFi作為網絡通信手段,將視頻、GPS地理位置信息傳輸到PC遠程控制終端。PC遠程控制終端可以實時監控機器人所處的環境和地理位置信息。實驗證明,應用遙控手柄控制,操作簡單方便,機器人系統工作穩定,能夠完成巡邏偵察任務。
[1]李懷勇.一種新型全方位移動機器人的運動特性分析[D].沈陽:沈陽航空航天大學,2012.
[2]趙冬斌,易建強,鄧旭玥.全方位移動機器人結構和運動分析[J].機器人,2003(5).
[3]賈茜,王興松,周婧.基于多種控制方式的全方位移動機器人研制[J].電子機械工程,2010(4).
[4]秦志斌,錢徽,朱淼良.自主移動機器人混合式體系結構的一種Multi-agent實現方法[J].機器人,2006(5).
[5]李志鵬.服務機器人室內未知環境主動探索與特征地圖構建[D].哈爾濱:哈爾濱工業大學,2011.
[6]賈官帥.基于Mecanum輪全方位移動平臺的理論和應用研究[D].杭州:浙江大學,2012.
[7]邵杰.基于學習分類器的多機器人路徑規劃關鍵技術研究[D].南京:南京理工大學,2011.
[8]楊世強,傅衛平,張鵬飛.四輪全方位輪式移動機器人的運動學模型研究[J].機械科學與技術,2009(3).
劉博(碩士研究生),主要研究方向為嵌入式開發與應用;楊斌(教授),主要研究方向為嵌入式系統應用開發、實時與分布式系統。
Design of Remote Visual Control Reconnaissance Location Robot System
Liu Bo,Yang Bin
(School of Information Science&Technology,Southwest Jiaotong University,Chengdu 610031,China)
Remote visual control reconnaissance location robot system consists of two parts.The first part is the robot which establishes a network connection with the remote PC terminal,accesses control command,and controls the robot,steering engine,and stereo video head after analyzing command motion motor.At last the robot sends GPS position information and environmental image to the PC control terminal.The second part is the PC remote control terminal which gets command data from North remote control handle and packages it,then transmits to the robot through the network,finally achieves control of the robot's movement.PC remote control terminal obtains robot GPS position data and the video data through the network,and displays in image video monitor window and map location window after interpreted.
remote control robot;PandaBoard;image compress;GPS location
TP242
A
薛士然
2014-10-17)