摘 要: 目前由于機(jī)載設(shè)備的容量和處理能力有限,機(jī)器人完成復(fù)雜任務(wù)的能力受到限制。隨著無線網(wǎng)絡(luò)技術(shù)的快速發(fā)展,遠(yuǎn)程控制機(jī)器人成為了可能。以云平臺為基礎(chǔ),設(shè)計了一種具有海量處理能力的多機(jī)器人遠(yuǎn)程實時控制系統(tǒng),通過機(jī)載攝像頭實時捕獲畫面并通過無線網(wǎng)絡(luò)傳給搭建在云平臺上的后臺處理系統(tǒng),后臺處理系統(tǒng)按照設(shè)定的規(guī)則對畫面做出判斷,并將控制指令返回給機(jī)器人執(zhí)行相應(yīng)動作。
關(guān)鍵詞: 機(jī)器人遠(yuǎn)程控制;云平臺;后臺控制系統(tǒng);實時性
0 引言
近年來由于技術(shù)發(fā)展和任務(wù)需要,仿人機(jī)器人的應(yīng)用越來越廣泛[1-2]。隨著無線技術(shù)的快速發(fā)展,無線網(wǎng)絡(luò)傳輸數(shù)據(jù)的速度和穩(wěn)定性越來越高,使機(jī)器人的遠(yuǎn)程控制成為可能。國內(nèi)外學(xué)者對仿人機(jī)器人做了大量研究。參考文獻(xiàn)[3]詳細(xì)介紹了國內(nèi)外仿人機(jī)器人的研究及理論現(xiàn)狀,提出了發(fā)展趨勢;參考文獻(xiàn)[4]實現(xiàn)了基于網(wǎng)絡(luò)的機(jī)器人遠(yuǎn)程控制系統(tǒng),操作者通過網(wǎng)絡(luò)傳輸?shù)默F(xiàn)場實時畫面實現(xiàn)對遠(yuǎn)程機(jī)器人的控制;參考文獻(xiàn)[5]以環(huán)境感知為前提,提出了多機(jī)器人系統(tǒng)的合作即時定位與地圖創(chuàng)建的方法;參考文獻(xiàn)[6]介紹了多機(jī)器人在多個研究領(lǐng)域的進(jìn)展;參考文獻(xiàn)[7]以實時性和可靠性為前提,設(shè)計了一套遠(yuǎn)程控制系統(tǒng)和開發(fā)庫;參考文獻(xiàn)[8]提出了一種基于Linux的新的遠(yuǎn)程機(jī)器人控制系統(tǒng)的軟件體系結(jié)構(gòu)并對遠(yuǎn)程機(jī)器人的原理以及狀態(tài)監(jiān)控技術(shù)進(jìn)行了詳細(xì)闡述。
當(dāng)機(jī)器人遇到復(fù)雜情況時,由于機(jī)載設(shè)備容量和處理能力有限而顯得能力不足。將機(jī)器人感知的當(dāng)前環(huán)境實時傳輸給遠(yuǎn)程服務(wù)器,通過遠(yuǎn)程服務(wù)器對信息實時處理并做出響應(yīng)是克服該困難的有效方法。當(dāng)多個機(jī)器人同時完成任務(wù)時,簡單的后臺處理器無法滿足計算需求,云計算為解決該問題提供了可能。
云計算[9-10]是指通過互聯(lián)網(wǎng)技術(shù)、虛擬化技術(shù)將大量異構(gòu)的軟硬件資源結(jié)合起來,以服務(wù)的形式提供給用戶使用。
本文采用的設(shè)備是Darwin-op高級版—達(dá)爾文機(jī)器人,該機(jī)器人是一款高智能仿人機(jī)器人,自帶Ubuntu9.10操作系統(tǒng),包含高清攝像頭、陀螺儀、麥克風(fēng)等專業(yè)傳感器,能夠穩(wěn)步行走和保持自身的平衡性,可以通過無線網(wǎng)訪問系統(tǒng)的資源,具有很好的視覺跟蹤和人機(jī)交互能力。
本文擬通過機(jī)載攝像頭將監(jiān)控信息實時傳輸給搭建在云計算平臺上的后臺集群,后臺集群通過對畫面的探測,搜索出目標(biāo)信息,進(jìn)而搜索數(shù)據(jù)庫中保存的指令序列傳給機(jī)器人,機(jī)器人做出相應(yīng)的動作。
1 系統(tǒng)整體設(shè)計
1.1 系統(tǒng)組成
本系統(tǒng)有以下5部分組成,系統(tǒng)框架結(jié)構(gòu)如圖1所示。

?。?) 機(jī)載攝像頭,每隔一定時間間隔采集一次當(dāng)前所處的環(huán)境畫面并傳遞給預(yù)處理模塊。
?。?) 預(yù)處理模塊,為減小傳輸帶寬,對畫面進(jìn)行一定比例的壓縮。
?。?) 通信模塊,負(fù)責(zé)機(jī)器人與后臺之間的交互,包括信息上傳和指令接收。
?。?) 控制模塊,根據(jù)后臺發(fā)出的指令做出相應(yīng)動作。
?。?) 后臺數(shù)據(jù)處理集群,負(fù)責(zé)圖像的解析,并根據(jù)解析結(jié)果查詢數(shù)據(jù)庫,調(diào)取相應(yīng)的指令信息反饋給機(jī)器人。
1.2 后臺數(shù)據(jù)處理集群
為了方便各個節(jié)點(diǎn)之間的協(xié)調(diào)工作,后臺處理集群采用master-worker架構(gòu)。master節(jié)點(diǎn)主要負(fù)責(zé):計算節(jié)點(diǎn)的管理和任務(wù)的接收與分配。
在計算節(jié)點(diǎn)管理方面,master節(jié)點(diǎn)維持一個計算節(jié)點(diǎn)列表,列表中的節(jié)點(diǎn)采用“心跳機(jī)制”,每隔一段時間向master節(jié)點(diǎn)報告其存活狀況,只有處于存活狀態(tài)的計算節(jié)點(diǎn)才參與任務(wù)的執(zhí)行。為增強(qiáng)適應(yīng)性,后臺集群不僅要滿足當(dāng)前所需,還要滿足將來不斷增加的負(fù)載需求,另外,本設(shè)計希望集群能夠在不停機(jī)的條件下擴(kuò)展計算資源。為此,將計算節(jié)點(diǎn)設(shè)計為注冊機(jī)制,當(dāng)新計算節(jié)點(diǎn)加入時首先向master節(jié)點(diǎn)申請加入,master節(jié)點(diǎn)接受后將該計算節(jié)點(diǎn)的信息(名稱、IP等)添加到計算節(jié)點(diǎn)列表中并反饋確認(rèn)信息。
算法1 (master節(jié)點(diǎn)運(yùn)行算法):
while true do
receive a task Ti
check next level process units’ workload
find a minimum workload unit Uj
allocate the task Ti to Uj
end while
在任務(wù)接收與分配方面,master通過TCP/IP協(xié)議與機(jī)器人進(jìn)行通信。當(dāng)master節(jié)點(diǎn)收到某個機(jī)器人上傳的信息時,master節(jié)點(diǎn)根據(jù)各個計算節(jié)點(diǎn)的負(fù)載情況將信息分配給負(fù)載最小的計算節(jié)點(diǎn)處理以達(dá)到負(fù)載均衡的目的,如算法1所示。各個節(jié)點(diǎn)的負(fù)載用CPU和內(nèi)存的利用率評定:

其中,ψ1和ψ2為權(quán)重,滿足ψ1+ψ2=1。
在集群master和計算節(jié)點(diǎn)之間通過φMQ通信中間件進(jìn)行通信[11],該中間件具有較高的通信速度和良好的穩(wěn)定性。為保證每個計算任務(wù)都能得到處理,采用REQ-REP通信模式。整個后臺處理集群的結(jié)構(gòu)如圖2所示。

1.3 系統(tǒng)實現(xiàn)方法
信息流進(jìn)入集群后以有向無環(huán)圖的形式在各個計算節(jié)點(diǎn)之間流動,每個計算節(jié)點(diǎn)視為一個處理單元。為了適應(yīng)大負(fù)載及快速響應(yīng)的需求,將整個系統(tǒng)設(shè)計為可橫向并行和縱向并行的形式。在橫向方面,將負(fù)責(zé)某個任務(wù)的處理單元設(shè)置為多份。當(dāng)信息接收模塊接收到機(jī)器人的監(jiān)控圖像時,系統(tǒng)根據(jù)各個處理單元的負(fù)載情況將計算任務(wù)分配到負(fù)載較輕的處理單元。在縱向并行方面,采用分而治之的思想,每個計算任務(wù)分為多個階段處理。本文將處理過程設(shè)計為兩部分:一級處理單元和二級處理單元。如圖3所示。

將一級處理單元設(shè)置為檢測圖片中是否有人,二級處理單元設(shè)置為檢測圖片中是否有汽車。并且預(yù)設(shè)機(jī)器人執(zhí)行指令情況如下:⑴圖片中既無人又無汽車,機(jī)器人不動作;⑵圖片中僅有人,機(jī)器人打招呼;⑶圖中有汽車,機(jī)器人向一側(cè)移動;⑷圖中既有人又有汽車,機(jī)器人先打招呼再向一側(cè)移動。例如,當(dāng)機(jī)器人將實時圖片上傳到后臺時,后臺系統(tǒng)根據(jù)各個處理單元的負(fù)載情況,將其分配到2號處理單元,2號處理單元調(diào)用人物探測功能,探測到有人存在,然后將結(jié)果和圖片傳遞到下游的二級處理單元中的6號,探測到?jīng)]有汽車存在,最后將兩個結(jié)果匯總提交給指令發(fā)送模塊,指令發(fā)送模塊查詢數(shù)據(jù)庫,向機(jī)器人發(fā)出打招呼指令。
此外,為了保證各個計算節(jié)點(diǎn)之間的負(fù)載均衡,一、二級處理單元之間為多對多的關(guān)系,如圖3所示。 在對機(jī)器人傳遞的圖片進(jìn)行處理時,挖掘出其中比較重要的元素(人、汽車),并根據(jù)圖像中是否存在目標(biāo)做出判斷。
圖像處理選用opencv作為工具箱。opnecv中圖像識別主要包括兩部分:訓(xùn)練分類器和根據(jù)分類器對輸入的圖像進(jìn)行檢測。以人臉識別為例,目前分類器大多基于Haar特征訓(xùn)練得來(算法2)。具體操作如下:
?。?)根據(jù)Haar特征使用大量樣本進(jìn)行訓(xùn)練(所有參與訓(xùn)練的樣本必須歸一化為同樣大小的圖片),得到一個分類器。樣本分為正樣本和反樣本,正樣本為含有待檢測目標(biāo)的樣本,反樣本為含有其他圖像的樣本。
(2)訓(xùn)練完成后根據(jù)訓(xùn)練產(chǎn)生的特征文件對感興趣的區(qū)域進(jìn)行檢測。在人臉識別中當(dāng)檢測區(qū)域有人臉時結(jié)果輸出1,表示含有目標(biāo)圖像;否則輸出0,表示不含有目標(biāo)圖像。
算法2(Haar訓(xùn)練分類器算法):
begin
create Haar characteristic
number_of_classifier←0
while true do
input positive samples
input negative sample
if false alarm rate > R then
break
end if
if number_of_classifier > N then
break
end if
calculate Haar eigenvalue
train a strong classifier
Store classifier information into temp file
end while
store cascade information to XML file
check the function of classifier
end
在算法2中首先創(chuàng)建一個Haar特征,然后重復(fù)輸入正反樣本,訓(xùn)練產(chǎn)生一個新的強(qiáng)分類器,此過程一直重復(fù)直到虛警率或產(chǎn)生分類器的數(shù)量達(dá)到規(guī)定的閾值為止。
系統(tǒng)后臺服務(wù)程序要對大量的物體進(jìn)行檢測,每個物體對應(yīng)一個訓(xùn)練的分類器XML文件。前面提到為了增強(qiáng)縱向并行性將整個檢測過程采用分而治之的思想。將后臺程序設(shè)置為一級和二級處理單元,一級處理單元負(fù)責(zé)掃描前[N/2]數(shù)量的物體,二級處理單元負(fù)責(zé)掃描后[N/2]數(shù)量的物體。為了增強(qiáng)動態(tài)性,對處理的物體也采用動態(tài)注冊的方式,當(dāng)有新的物體需要識別時,需要在物體列表中注冊,同時將XML文件放到指定的位置,將針對該物體的指令保存到數(shù)據(jù)庫中,如圖4所示。

機(jī)器人每隔一段時間通過機(jī)載攝像頭掃描當(dāng)前環(huán)境,將采集當(dāng)前環(huán)境的一幅圖片tar壓縮,然后通過TCP/IP協(xié)議傳輸?shù)胶笈_處理,等待該圖片對應(yīng)的指令。具體流程如圖5所示。

另外,在機(jī)器人中預(yù)先設(shè)定各種動作的代號及相關(guān)的動作代碼,當(dāng)一個指令序列到來時,機(jī)器人根據(jù)序列內(nèi)容解析出動作代號,并根據(jù)代號執(zhí)行相應(yīng)的動作。當(dāng)需要改變面對某種情況所執(zhí)行的動作時,只要修改后臺數(shù)據(jù)庫中代號序列就可以重新編排動作,增強(qiáng)了靈活性。
2 實驗
在本實驗中測試整個系統(tǒng)的性能。首先測試?yán)胦pencv的圖像識別技術(shù);然后通過模擬負(fù)載,測試后臺的處理性能;最后在真實環(huán)境中測試可行性。
實驗中使用Darwin-op機(jī)器人,后臺建立在由中國科學(xué)技術(shù)大學(xué)中科大-聯(lián)想云計算實驗室開發(fā)的瀚海星云云計算服務(wù)平臺上。該平臺目前提供IaaS層的服務(wù),可以提供多種配置的Linux虛擬機(jī)。
2.1 Opencv圖像識別測試
在圖像識別測試中,以人臉識別和車輛識別為例進(jìn)行測試。

在人臉識別中,使用opencv[12]示例中自帶的haarcascade_frontalface_alt.xml人臉識別分類器進(jìn)行測試。如圖6所示,分別在無背景、單人真實環(huán)境以及多人真實環(huán)境下進(jìn)行測試。通過對不同場景的測試,識別系統(tǒng)均可較好地識別出圖像中出現(xiàn)的人臉。
在對車輛進(jìn)行識別時,建立了一個規(guī)模較小、包含2 000個樣本的數(shù)據(jù)集來訓(xùn)練產(chǎn)生分類器,能識別圖片中出現(xiàn)的車輛(車輛識別中使用的訓(xùn)練集僅限于小汽車)。如圖7所示。

2.2 后臺負(fù)載測試
在該部分中,通過模擬負(fù)載,不停地向后臺系統(tǒng)批量傳送大量監(jiān)控圖像來模擬多機(jī)器人遠(yuǎn)程實時控制。在該實驗中,使用4臺單核處理器作為后臺服務(wù)集群,其中2臺負(fù)責(zé)人臉識別,2臺負(fù)責(zé)車輛識別。

如圖8所示,由于后臺系統(tǒng)在分配任務(wù)時總是將其分配到負(fù)載較輕的計算節(jié)點(diǎn)上,因此在整個運(yùn)行過程中各個節(jié)點(diǎn)的負(fù)載保持在相對均衡的狀態(tài)。同時,由于使用多計算節(jié)點(diǎn)模式,從而能夠滿足同時控制多機(jī)器人的需求。
2.3 系統(tǒng)測試
在該部分根據(jù)預(yù)設(shè)指令測試整個系統(tǒng)的可行性。
在實驗過程中,使機(jī)器人1處于有人環(huán)境中,機(jī)器人2處于有汽車的環(huán)境中,這里用一個玩具車來代替。機(jī)器人1在遇到人時會做出打招呼的動作,機(jī)器人2在遇到車時會做出避讓動作。實驗表明兩個機(jī)器人都能夠完成預(yù)設(shè)的指令,整個過程檢驗了一個系統(tǒng)同時控制多個處于不同環(huán)境中的機(jī)器人的可行性。
3 結(jié)論
本文將機(jī)器人與云計算結(jié)合起來,把機(jī)器人作為信息的獲取媒介和任務(wù)的最終執(zhí)行者,將后臺處理系統(tǒng)架設(shè)在云平臺上,利用云平臺的海量處理能力來解決多機(jī)器人的控制問題,實驗表明本設(shè)計取得了良好的效果。但是,由于實驗條件所限,機(jī)器人采集的只有圖像信息,在未來的工作中會將其他傳感器獲得的信息加入到其中,使機(jī)器人能夠更加全面地感知周圍環(huán)境,并根據(jù)這些信息做出更加準(zhǔn)確的決定。
參考文獻(xiàn)
[1] 徐莉,劉振方,王建丞,等.仿生機(jī)器人綜述[J].黑龍江科學(xué),2013,4(7):57-61.
[2] 王田苗,陶永,陳陽.服務(wù)機(jī)器人技術(shù)研究現(xiàn)狀與發(fā)展趨勢[J].中國科學(xué),2012,42(9):1049-1066.
[3] 陳兵,駱敏舟,馮寶林,等.類人機(jī)器人的研究現(xiàn)狀及展望[J].機(jī)器人技術(shù)與應(yīng)用,2013(4):25-30.
[4] 張曉暉,劉丁,李攀.基于網(wǎng)絡(luò)的機(jī)器人遠(yuǎn)程控制系統(tǒng)的實現(xiàn)與研究[J].機(jī)械科學(xué)與技術(shù),2007,26(6):808-811.
[5] Cheng Liying, Xue Dingyu, Cong Yang, et al. The research of environment perception based on the cooperration of muti-robot [C]. Chinese Control and Decision Conference,2012:1914-1919.
[6] Arai T, Pagllo E, Parker L E. Advances in multi-robot systems [J]. IEEE Transctions on Robotics and Automation, 2002,18(5):655-661.
[7] 陳洋,陸宇平.機(jī)器人實時遠(yuǎn)程控制系統(tǒng)及其開發(fā)庫的設(shè)計與實現(xiàn)[J]. 電子技術(shù)應(yīng)用,2006,32(2):7-10.
[8] 薛廣濤,陳一民,張濤.基于Linux的遠(yuǎn)程機(jī)器人控制系統(tǒng)研究[J]. 機(jī)器人,2001, 23( 3):261-265.
[9] 王波.虛擬化與云計算[M].北京:電子工業(yè)出版社,2009.
[10]陳全,鄧倩妮.云計算及其關(guān)鍵技術(shù)[J].計算機(jī)應(yīng)用,2009,29(9):2562-2566.
[11] Hinthens P. ZeroMQ [M]. O’REILLY, 2013.
[12] Bradski G. Learning OpenCV [M]. O’REILLY, 2008.
