馬兆圓,謝永強,張志浩,高林,武曉君
西安電子科技大學(xué) 機電工程學(xué)院,陜西 西安 710068
近年來,機器人產(chǎn)業(yè)蓬勃發(fā)展并日漸成熟,在各領(lǐng)域均得到廣泛應(yīng)用,可滿足多工種、高精度的工業(yè)生產(chǎn)需求[1]。為實現(xiàn)機器人與使用者實時交互,實現(xiàn)機器人狀態(tài)感知及使用者對機器人的實時控制,需設(shè)計專用的顯控系統(tǒng)。顯控系統(tǒng)作為機器人系統(tǒng)呈現(xiàn)圖像、文字等信息的綜合載體,與使用者進行直接交互并向機器人端傳遞指令信息,是機器人系統(tǒng)不可或缺的一部分。早期的單機器人系統(tǒng)一般由1 個主控設(shè)備控制1 個機器人,其系統(tǒng)結(jié)構(gòu)相對簡單,顯控軟件也易于設(shè)計實現(xiàn)。隨著物聯(lián)網(wǎng)[2]、智能制造[3]、機器人群組編隊[4-6]等技術(shù)的不斷發(fā)展,傳統(tǒng)的單機器人顯控系統(tǒng)已難以滿足新的需求。而國內(nèi)外對機器人群組系統(tǒng)的研究大多著重于機器人本身的自動識別、自動導(dǎo)航、自動避障等功能的發(fā)展,如:蔣紅梅等[7]提出基于機器人操縱系統(tǒng)的自動駕駛小車系統(tǒng)設(shè)計,提供了超高精度的導(dǎo)航地圖與超高精度的物體識別;李玉霞等[8]提出采摘機器人的路徑規(guī)劃系統(tǒng)動態(tài)優(yōu)化研究,優(yōu)化了采摘機器人路徑規(guī)劃系統(tǒng)的整體路徑搜索率與路徑平滑性;Kumar 等[9]在動態(tài)環(huán)境和靜態(tài)壞境下的多機器人系統(tǒng)中開發(fā)了一種混合控制器,提升了機器人路徑規(guī)劃與避障能力;Ye 等[10]提出一種基于極值的攻擊策略,使機器人的性能在障礙物較少且最大避障速度受限的情況下得到極大提升。
而關(guān)注于機器人群組系統(tǒng)顯控軟件設(shè)計的研究則較少,機器人群組控制要求顯控系統(tǒng)具備大規(guī)模多樣化信息接入與承載、動態(tài)靈活擴容與可視化管控以及實時穩(wěn)定可靠等能力[11],合理的顯控軟件對于機器人系統(tǒng)多種功能的實現(xiàn)也至關(guān)重要。本文基于對多個機器人的遙控、編隊等功能的控制需求,設(shè)計了一款機器人群組操控系統(tǒng)。該系統(tǒng)通過WinForm 窗體應(yīng)用程序設(shè)計,構(gòu)建交互界面,實現(xiàn)對多個機器人狀態(tài)切換和編隊等操作。該系統(tǒng)操控簡便、界面簡潔,在實際操控中具備良好的安全性、實時性、穩(wěn)定性。下文將從系統(tǒng)框架、操控系統(tǒng)功能設(shè)計與操控系統(tǒng)界面設(shè)計3 方面對機器人群組顯控系統(tǒng)進行介紹。
機器人群組系統(tǒng)總體框架如圖1 所示,顯控系統(tǒng)通過Mesh 組網(wǎng)與機器人端進行命令下達與數(shù)據(jù)交互,實現(xiàn)對A、B、C 這3 個機器人在停止模式、單機遙控模式、群組遙控模式、單機循跡模式、群組循跡模式等多種狀態(tài)下的控制。顯控端連接G29 遙控設(shè)備,系統(tǒng)讀取并傳遞方向盤信息給機器人端實現(xiàn)遙控功能;同時顯控端設(shè)有圖傳顯示器,顯示機器人端的圖傳攝像頭拍攝的高清畫面。機器人端連有北斗、激光雷達、毫米波雷達等參數(shù)傳感器,將位置、姿態(tài)、狀態(tài)等信息上傳至顯控端,由顯控端通過地圖、圖像、文字等方式顯示給使用者,使使用者獲得良好的操控體驗。為確保更全面地顯示機器人周圍環(huán)境,除圖傳攝像頭外,機器人端還連接著2 個??禂z像頭,拍攝的圖像在顯控系統(tǒng)中進行顯示。
圖1 系統(tǒng)總體框架
多機協(xié)同系統(tǒng)是集合多種功能于一體的復(fù)雜系統(tǒng)。在機器人群組顯控系統(tǒng)中,除去圖像顯示、命令的下達、數(shù)據(jù)的接收與發(fā)送、遙控、地圖顯示與數(shù)據(jù)存儲等基礎(chǔ)功能外,實時性、控制結(jié)構(gòu)的合理性、操控的動態(tài)性等問題也是系統(tǒng)設(shè)計的關(guān)鍵[12-13]。同時,顯控系統(tǒng)對3 個機器人進行狀態(tài)切換、編隊等操控時,如何保證系統(tǒng)高效、穩(wěn)定和安全運行也是考慮的重點[14]。
考慮到顯控系統(tǒng)需要實現(xiàn)多種功能,為了提高系統(tǒng)的實時性和控制結(jié)構(gòu)的合理性,將部分功能封裝成相對固定、易于調(diào)用的各種模塊。下面對各功能模塊的設(shè)計進行具體介紹。
在應(yīng)用中,Mesh 組網(wǎng)有部署速度快、安裝簡單、數(shù)據(jù)傳輸?shù)目煽啃愿?、覆蓋面積廣、高傳輸效能等優(yōu)點[15]。在系統(tǒng)中,顯控端與機器人端各自通過網(wǎng)線連接Mesh 電臺接入Mesh 組網(wǎng),實現(xiàn)顯控端向機器人端發(fā)送指令、顯控端與機器人端數(shù)據(jù)互傳的功能。
圖像傳輸流程如圖2 所示。為使使用者在操控機器人時更好地觀察到機器人周邊的環(huán)境,在機器人端設(shè)置1 個高清攝像機與2 個??禂z像頭。高清攝像頭通過HDMI 接入Mesh 組網(wǎng),將1080p 圖像傳輸至顯控端顯示器。海康攝像頭傳輸?shù)膱D像由顯控界面直接顯示,該界面在完成預(yù)覽的同時還具備抓圖和錄像功能,可將圖片或視頻存儲于指定位置。在機器人切換時,顯控端通過變更連接的攝像頭IP 與串口號進行3 個攝像頭的切換,及時給使用者顯示機器人端的周圍環(huán)境,使操控更加安全可靠。
圖2 圖像傳輸流程
為保證機器人狀態(tài)切換時的安全,在該模塊中需要進行2 個判斷指令。
1)判斷機器人選擇是否發(fā)生變化,如圖3 左側(cè)所示。該判斷在機器人切換時進行,目的是保證機器人切換后前一個操控機器人處于停止?fàn)顟B(tài)。
圖3 數(shù)據(jù)發(fā)送模塊流程
2)判斷機器人狀態(tài)是否發(fā)生變化,如圖3 右側(cè)所示。該判斷在機器人狀態(tài)切換時進行,目的是確保狀態(tài)切換間的機器人處于停止?fàn)顟B(tài)。
數(shù)據(jù)接收模塊接收機器人端發(fā)送的數(shù)據(jù)信息,包括機器人IP 地址、字節(jié)長度、位姿信息、速度、旋轉(zhuǎn)角度、編隊模式等。數(shù)據(jù)接收模塊將接收到的字節(jié)數(shù)組解析出相應(yīng)信息,并調(diào)用數(shù)據(jù)存儲模塊與數(shù)據(jù)顯示界面,將數(shù)據(jù)有效地顯示與存儲起來。
在機器人處于“采集路徑模式”、“單機遙控模式”和“群組遙控模式”時,需要在顯控端遠程控制機器人運動。在該模塊中,使用羅技G29 方向盤和踏板硬件,獲取轉(zhuǎn)向、油門、剎車等信息。在該模塊中,使用定時器控件配合數(shù)據(jù)傳輸速率讀取方向盤信息,實現(xiàn)遙控的實時效果。
數(shù)據(jù)存儲模塊使用MySQL 建立,該數(shù)據(jù)庫具有體積小、速度快、總體成本低和開源的特點,適用于小型數(shù)據(jù)庫的建立,并且支持多種操控系統(tǒng),方便開發(fā)者使用[16]。該數(shù)據(jù)庫主要實現(xiàn)存儲、讀取、刪除的功能,調(diào)用接收數(shù)據(jù)模塊與地圖顯示模塊。為提升數(shù)據(jù)庫的數(shù)據(jù)提取效率,在數(shù)據(jù)庫單機情況下對其性能進行調(diào)優(yōu)[17]。為方便管理,數(shù)據(jù)庫設(shè)計2 類表格,一類負責(zé)存儲循跡路線,方便后續(xù)下載和顯示;一類負責(zé)存儲各種模式下機器人的位姿信息。數(shù)據(jù)存儲的物理結(jié)構(gòu)如表1 所示。
表1 數(shù)據(jù)存儲的物理結(jié)構(gòu)
地圖顯示模塊采用Gmap 控件,該控件是一個強大、免費、跨平臺、開源的.NET 控件;地圖使用OpenCycleMap 地圖,該地圖在Gmap 控件中可直接使用,并且使用WGS-84 坐標(biāo)系,可直接使用北斗定位發(fā)送的經(jīng)緯度,減小了坐標(biāo)系轉(zhuǎn)換造成的誤差[18]。為保證離線地圖正常顯示,使用官方Demo 下載瓦片地圖,使用Gmap 類進行加載[19]。地圖可等級縮放、鼠標(biāo)拖動,并可使用圖標(biāo)實時顯示機器人位置,供使用者參考。
機器人群組操控系統(tǒng)的設(shè)計需滿足結(jié)構(gòu)的易維護性、界面的易用性、信息傳遞的準(zhǔn)確性和運行的穩(wěn)定性[20]。在考慮到上述性能需求后,基于C#編程語言、WinForm 應(yīng)用進行顯控系統(tǒng)設(shè)計開發(fā)。圖4 所示為機器人群組操控系統(tǒng)的主顯示界面,該界面主要由3 部分組成:第1 部分是使用者選擇部分,在該部分由使用者開啟對機器人的通訊,并選擇機器人和對該機器人下達的命令;第2 部分是地圖部分,在該部分顯示機器人所處位置;第3 部分是圖像部分,實時顯示機器人端的2 個??禂z像頭拍攝圖像,供使用者觀察機器人周圍環(huán)境。除此界面外,在主顯示界面選擇不同的機器人狀態(tài)時,會顯示出不同狀態(tài)的功能界面,機器人狀態(tài)選擇與各選擇下的功能如圖5 所示。其中,單機遙控模式與群組遙控模式下都在界面中使用儀表控件實時顯示機器人速度,并在圖4 所示的地圖上顯示機器人位置。采集路徑模式下,在該界面小地圖上顯示采集的路徑供使用者參考:單機循跡模式下,需要使用者輸入在循跡時機器人的速度與機器人的循跡方式(正向循跡或反向循跡),并下達命令,使機器人按照指定方式進行循跡;群組循跡模式下需要使用者輸入循跡時機器人的速度、循跡方式和機器人之間的距離。
圖4 操控系統(tǒng)主界面
圖5 不同狀態(tài)界面的功能框架
系統(tǒng)通過主界面與各狀態(tài)下的功能界面共同為使用者提供狀態(tài)切換、地圖顯示、機器人編隊、實時圖像顯示等功能,操控便捷、顯示清楚,易于使用者上手。
在機器人測試中運行文中設(shè)計的顯控系統(tǒng),該顯控端與3 輛機器人進行通訊與操控,測試內(nèi)容包括:
1)單機遙控、群組遙控。如圖6(a)單機遙控與群組遙控界面所示。在該模式下,顯控端通過羅技方向盤操縱機器人運動,使用者可以通過顯控端觀察機器人端周圍環(huán)境、機器人速度與機器人所處位置。
圖6 多種狀態(tài)下的操控界面
2)采集路徑模式。使用者點擊“開始采集”按鈕,通過方向盤操縱機器人留下循跡路線,如圖6(b)右下角所示,點擊“結(jié)束采集”按鈕,存儲采集到的路線,以便后面調(diào)用。
3)單機循跡模式。如圖6(c)單機循跡界面所示,在該模式下,顯控端提示使用者輸入機器人循跡速度、循跡執(zhí)行命令,輸入結(jié)束后根據(jù)采集路徑模式下存儲的路徑執(zhí)行循跡。
4)群組循跡。如圖6(d)群組循跡界面所示,在該模式下,顯控端提示使用者輸入機器人循跡速度、循跡執(zhí)行命令與機器人間距,輸入結(jié)束后根據(jù)采集路徑模式下存儲的路徑執(zhí)行循跡。
實驗證明,顯控端在多種模式下運行穩(wěn)定,并在模式切換間使機器人處于停止?fàn)顟B(tài),保證了機器人端運行時的安全;系統(tǒng)處理消息速度快,可實現(xiàn)位置、速度等信息的動態(tài)更新,實時顯示機器人位置、周圍環(huán)境信息。
本文設(shè)計了一套基于C#編程語言、WinForm應(yīng)用的顯控系統(tǒng)。該系統(tǒng)實現(xiàn)了多機通訊、狀態(tài)切換、地圖顯示、實時圖像顯示、數(shù)據(jù)保存等功能。經(jīng)過測試,該顯控系統(tǒng)操控簡單、運行穩(wěn)定,在多種狀態(tài)中滿足設(shè)計需求,具有良好的實時性,為今后的機器人群組顯控系統(tǒng)提供了參考依據(jù)。