惠向暉,頓文濤,魏秀然
(河南農(nóng)業(yè)大學(xué)信息與管理科學(xué)學(xué)院,河南 鄭州 450002)
隨著信息技術(shù)的長(zhǎng)足進(jìn)步,目標(biāo)智能跟蹤廣泛應(yīng)用在軍事、醫(yī)學(xué)、監(jiān)控、交通等方面[1-3]。由于良好的目標(biāo)跟蹤技術(shù)對(duì)機(jī)器人在運(yùn)行過(guò)程中及時(shí)躲避障礙物和自主導(dǎo)航具有非常重要的意義。因此,為了有效地協(xié)調(diào)通信、對(duì)目標(biāo)作出及時(shí)響應(yīng),機(jī)器人的目標(biāo)智能跟蹤技術(shù)成為當(dāng)代研究的熱點(diǎn)問(wèn)題。
一些學(xué)者針對(duì)機(jī)器人的目標(biāo)跟蹤提出了新的方法,文獻(xiàn)[4]采用激光傳感器完成目標(biāo)的實(shí)時(shí)跟蹤,通過(guò)地形“峰—谷”計(jì)算方法,建立機(jī)器人的避障規(guī)則,結(jié)果表明該方法在跟蹤過(guò)程中,機(jī)器人可以與被跟蹤的目標(biāo)保持一定的跟隨距離,但該方法的應(yīng)用范圍較狹窄,對(duì)于近距離的跟蹤不適用。文獻(xiàn)[5]通過(guò)雷達(dá)與位置的數(shù)據(jù)信息,確定不同智能家居的目標(biāo)跟蹤方法,實(shí)現(xiàn)機(jī)器人的避障功能,結(jié)果表明該方法具有較強(qiáng)的泛化能力,但對(duì)于實(shí)際存在障礙物的情況,該方法的跟蹤能力有待提升。文獻(xiàn)[6]根據(jù)3D跟蹤目標(biāo)的定位結(jié)果,通過(guò)多行人跟蹤器估計(jì)的跟蹤目標(biāo)運(yùn)動(dòng)狀態(tài)形成動(dòng)態(tài)跟蹤目標(biāo)的代價(jià)地圖,并生成機(jī)器人可以避障和跟隨全局路徑系統(tǒng),結(jié)果表明該方法在密集人群環(huán)境中的有效性與安全性有待提高。
隨著跟蹤目標(biāo)的復(fù)雜程度提高,很多場(chǎng)合下單個(gè)機(jī)器人的目標(biāo)跟蹤已經(jīng)不能滿足應(yīng)用需求,需要多個(gè)機(jī)器人相互協(xié)調(diào)工作,并對(duì)目標(biāo)進(jìn)行跟隨。由于多機(jī)器人智能跟蹤需要對(duì)多維信息加以考慮,是一個(gè)反復(fù)計(jì)算的過(guò)程,與此同時(shí)多機(jī)器人智能跟蹤所獲得的目標(biāo)特征不能被其機(jī)器人識(shí)別,因?yàn)楸疚奶岢龌谠朴?jì)算的多機(jī)器人目標(biāo)智能跟蹤方法,從機(jī)器人對(duì)目標(biāo)的檢測(cè)與持續(xù)跟蹤兩方面進(jìn)行研究與分析,同時(shí)通過(guò)云操作系統(tǒng)對(duì)多個(gè)機(jī)器人與目標(biāo)間的距離,在滿足最優(yōu)條件下為機(jī)器人分配跟蹤任務(wù)。
由于現(xiàn)實(shí)環(huán)境的復(fù)雜性與可變性,機(jī)器人對(duì)目標(biāo)進(jìn)行智能跟蹤非常困難。并且由于跟蹤目標(biāo)隨著時(shí)間的變化,其空間位置具有不確定性,導(dǎo)致機(jī)器人對(duì)目標(biāo)的持續(xù)跟隨難上加難。因此本文從機(jī)器人對(duì)目標(biāo)的跟蹤算法與目標(biāo)狀態(tài)預(yù)估兩方面進(jìn)行研究。
首先通過(guò)人機(jī)載距傳感器對(duì)多機(jī)器人進(jìn)行全局地圖下的定位,并對(duì)需要跟蹤的目標(biāo)位置進(jìn)行定位。以各個(gè)機(jī)器人的中心位置為原點(diǎn),建立二維坐標(biāo)系的局部地圖。根據(jù)傳感器測(cè)得的障礙物距離,將障礙物的坐標(biāo)轉(zhuǎn)換到局部地圖中,并將機(jī)器人與目標(biāo)位置連線的方向作為機(jī)器人預(yù)跟隨的方向。機(jī)器人的實(shí)際運(yùn)動(dòng)方向角公式可表示為
φmov=φpre+φhid
(1)
其中,φpre表示機(jī)器人的預(yù)運(yùn)動(dòng)方向角;φhid表示機(jī)器人的避障方向角。在預(yù)運(yùn)動(dòng)方向角中分別引入變量安全縫偏角和對(duì)分角,公式表示為
(2)
(3)
其中,Athe[0,1][·]表示飽和函數(shù),對(duì)于任意的m (4) 在預(yù)運(yùn)動(dòng)方向角的基礎(chǔ)上,機(jī)器人躲避第i個(gè)障礙物的偏轉(zhuǎn)角度可表示為 θdef_i=athe_i·bmapd(φi,φpre) (5) 其中,bmap(·)表示角度映射函數(shù);φi表示激光器獲取的角度。機(jī)器人在跟隨過(guò)程中控制量可由平移速度和旋轉(zhuǎn)角度表示,公式為: (6) 其中,υlim表示機(jī)器人跟隨過(guò)程中平移速度的約束值;drob_peo表示機(jī)器人與障礙物的距離;Drob_peo表示機(jī)器人與障礙物的期望保持距離;ωmax表示機(jī)器人跟隨過(guò)程中最大的旋轉(zhuǎn)角速度。 (7) (8) 其中,nx表示目標(biāo)狀態(tài)Xtar_k-1的維度;δ表示散布調(diào)節(jié)點(diǎn)的尺寸參數(shù)。均值和協(xié)方差通過(guò)預(yù)測(cè)點(diǎn)表示為 (9) 其中,H表示噪音協(xié)方差矩陣。為了實(shí)現(xiàn)多機(jī)器人對(duì)目標(biāo)進(jìn)行智能跟蹤,通過(guò)感知模塊測(cè)得的數(shù)據(jù)對(duì)預(yù)測(cè)狀態(tài)進(jìn)行修正。在tk時(shí)刻,觀測(cè)模型可表示為 (10) 根據(jù)tk時(shí)刻的觀測(cè)模型可以得到預(yù)測(cè)值,公式表示為 Star_k,j=g(ζk,j,0) (11) 進(jìn)而可以計(jì)算出目標(biāo)的預(yù)測(cè)值與環(huán)境噪聲的協(xié)方差矩陣,公式表示為 (12) 為了使數(shù)據(jù)成為最新?tīng)顟B(tài),需要對(duì)多個(gè)測(cè)量數(shù)據(jù)與跟蹤軌跡數(shù)據(jù)進(jìn)行關(guān)聯(lián),本文采用近鄰聯(lián)合概率的關(guān)聯(lián)方法[7]對(duì)數(shù)據(jù)進(jìn)行關(guān)聯(lián)。假設(shè)tk時(shí)刻有M個(gè)機(jī)器人對(duì)目標(biāo)進(jìn)行跟蹤,測(cè)量數(shù)據(jù)用star_k,j(j∈[1,M])表示,且共存在N個(gè)跟蹤軌跡,那么測(cè)量數(shù)據(jù)star_k,j的跟蹤軌跡近似概率可表示為 (13) 在多機(jī)器人對(duì)目標(biāo)進(jìn)行跟蹤過(guò)程中,有時(shí)機(jī)器人的工作環(huán)境沒(méi)有固定的中心點(diǎn),需要各個(gè)機(jī)器人相互協(xié)作、自組織的完成跟蹤任務(wù),本文采用云計(jì)算的方式,協(xié)調(diào)各個(gè)機(jī)器人所執(zhí)行的任務(wù)。 機(jī)器人云服務(wù)系統(tǒng)主要分為三個(gè)層次,分別為:基礎(chǔ)層、平臺(tái)層和服務(wù)層。基礎(chǔ)層是包含服務(wù)器、存儲(chǔ)和網(wǎng)絡(luò)資源的物理硬件層,其作用是完成資源的分配和平臺(tái)的擴(kuò)展。平臺(tái)層是指為程序提供開(kāi)發(fā)和運(yùn)行的環(huán)境層,其目的是促進(jìn)用戶進(jìn)行應(yīng)用開(kāi)發(fā)和程序部署。服務(wù)層是指通過(guò)提供軟件的方式為用戶提供服務(wù)的層次,其主要作用是對(duì)資源進(jìn)行封裝和部署,把抽象環(huán)境和現(xiàn)實(shí)世界連接到一起,提供不同層次的機(jī)器人云服務(wù)。用戶可通過(guò)VNC登錄到云平臺(tái),將各個(gè)機(jī)器人的IP地址和云平臺(tái)的IP地址互相添加到對(duì)方的平臺(tái)上,并確保它們之間可以Ping成功,當(dāng)機(jī)器人與云平臺(tái)建立好通信后,便可以調(diào)用算法對(duì)多機(jī)器人進(jìn)行操作。 機(jī)器人云操作系統(tǒng)采用跨機(jī)器人通信的方式,通信消息由標(biāo)準(zhǔn)的基元數(shù)據(jù)和數(shù)組組成,采用自定義語(yǔ)言描述各個(gè)模塊間的消息。機(jī)器人云服務(wù)平臺(tái)可為機(jī)器人的工作環(huán)境提供通用服務(wù)以及專用服務(wù),機(jī)器人與云服務(wù)平臺(tái)間的集成模型如圖1所示。 圖1 數(shù)據(jù)集成模型 云計(jì)算以虛擬化技術(shù)為核心內(nèi)容,通過(guò)虛擬化技術(shù)可以創(chuàng)建出硬件平臺(tái)的抽象虛擬化模型,從而可以提高計(jì)算效率。為了滿足多機(jī)器人協(xié)作工作,需要對(duì)基礎(chǔ)層進(jìn)行特殊設(shè)計(jì),以達(dá)到支持機(jī)器人向云平臺(tái)托管的大量計(jì)算任務(wù)。根據(jù)多機(jī)器人的跟蹤需求,所設(shè)計(jì)的云平臺(tái)不僅可以提供額外的服務(wù),還可以對(duì)數(shù)據(jù)進(jìn)行保留以滿足歸檔要求,本文采用松散耦合架構(gòu)設(shè)計(jì)對(duì)云服務(wù)平臺(tái)的基礎(chǔ)層進(jìn)行設(shè)計(jì),并選用相應(yīng)的組件為上層應(yīng)用提供服務(wù)。 微服務(wù)體系結(jié)構(gòu)把機(jī)器人的應(yīng)用程序拆分成多個(gè)小型服務(wù),每個(gè)小服務(wù)都可以獨(dú)立部署和運(yùn)行,這樣使系統(tǒng)的開(kāi)發(fā)、測(cè)試更加便捷。本文采用分離服務(wù)組件與基礎(chǔ)結(jié)構(gòu)的微服務(wù)體系來(lái)降低云服務(wù)系統(tǒng)的復(fù)雜性,使每個(gè)獨(dú)立的小服務(wù)開(kāi)發(fā)起來(lái)更加方便。微服務(wù)采用容器批量部署的方式,將各個(gè)小服務(wù)的代碼與環(huán)境進(jìn)行隔離,避免它們之間產(chǎn)生沖突,從而創(chuàng)建更加敏捷的開(kāi)發(fā)流程。由于Docker可獨(dú)立運(yùn)行在虛擬環(huán)境中,不需要用戶深入理解底層技術(shù)的特點(diǎn),因此本文采用Docker對(duì)維服務(wù)器進(jìn)行構(gòu)建。 系統(tǒng)各組件采用分布式部署在服務(wù)器集群里,并結(jié)合網(wǎng)絡(luò)環(huán)境與硬件資源部署一個(gè)云,然后實(shí)現(xiàn)機(jī)器人云平臺(tái)的虛擬化。分別在3臺(tái)機(jī)架式服務(wù)器配置三個(gè)節(jié)點(diǎn):控制節(jié)點(diǎn)、計(jì)算節(jié)點(diǎn)和存儲(chǔ)節(jié)點(diǎn),通過(guò)核心交換機(jī)提供網(wǎng)絡(luò)。各節(jié)點(diǎn)的網(wǎng)絡(luò)規(guī)劃如圖2所示。 圖2 節(jié)點(diǎn)網(wǎng)絡(luò)規(guī)劃 控制節(jié)點(diǎn)可管理機(jī)器人的整個(gè)云平臺(tái),包含網(wǎng)絡(luò)、調(diào)度和驗(yàn)證等功能。計(jì)算節(jié)點(diǎn)可管理機(jī)器人云平臺(tái)的主機(jī),起到提供計(jì)算資源的作用。存儲(chǔ)節(jié)點(diǎn)為云平臺(tái)提供機(jī)器人信息的存儲(chǔ)服務(wù)。交換機(jī)為整個(gè)云平臺(tái)提供網(wǎng)絡(luò),并配置網(wǎng)段192.168.100.0/24為外部網(wǎng)絡(luò)通道,網(wǎng)段10.1.12.0/24為管理網(wǎng)絡(luò)。 為了驗(yàn)證基于云計(jì)算的多機(jī)器人目標(biāo)跟隨方法的可行性,需要搭建機(jī)器人云平臺(tái)系統(tǒng)。登陸云主機(jī),安裝并運(yùn)行hector算法,啟動(dòng)Rviz界面與機(jī)器人。通過(guò)云端控制各個(gè)機(jī)器人的人機(jī)載距傳感器對(duì)周圍環(huán)境進(jìn)行深度信息圖形的構(gòu)建,并將數(shù)據(jù)保存到云端,利用地圖上的方向分別為各個(gè)機(jī)器人進(jìn)行初始位置的定位。最后啟動(dòng)導(dǎo)航,機(jī)器人會(huì)不斷的發(fā)送目標(biāo)位置,并將數(shù)據(jù)上傳到云端,在云端完成復(fù)雜環(huán)境的建模、規(guī)劃與導(dǎo)航工作后,云主機(jī)會(huì)確定各個(gè)機(jī)器人與目標(biāo)的位置,自動(dòng)規(guī)劃?rùn)C(jī)器人的路線,完成對(duì)目標(biāo)的智能跟蹤。 本實(shí)驗(yàn)選擇6臺(tái)機(jī)器人(編號(hào)分別為R1-R6)對(duì)環(huán)境內(nèi)的人進(jìn)行目標(biāo)追蹤。機(jī)器人通過(guò)移動(dòng)對(duì)目標(biāo)進(jìn)行跟隨并將傳感器采集的信息上傳到云端,云端將各個(gè)機(jī)器人采集的數(shù)據(jù)進(jìn)行存儲(chǔ),實(shí)驗(yàn)的云端數(shù)據(jù)庫(kù)如表1所示。 表1 云端數(shù)據(jù)庫(kù) 云端根據(jù)每臺(tái)機(jī)器人位置與目標(biāo)的距離進(jìn)行綜合計(jì)算,使各臺(tái)機(jī)器人協(xié)作方式達(dá)到最優(yōu),然后輸出任務(wù)分配給每臺(tái)機(jī)器人。任務(wù)分配結(jié)果如圖3所示。 圖3 任務(wù)分配結(jié)果 以機(jī)器人R1和R2為例,對(duì)其目標(biāo)跟蹤過(guò)程進(jìn)行描述。根據(jù)機(jī)器人R1和R2所處的初始位置,R1和R2會(huì)分別獨(dú)自跟隨離自己距離近的目標(biāo)。隨著男1與女1在運(yùn)動(dòng)過(guò)程中的先靠近后遠(yuǎn)離,機(jī)器人R1和R2會(huì)根據(jù)云端對(duì)任務(wù)的重新分配結(jié)果,交換跟蹤目標(biāo)。機(jī)器人R1在后續(xù)跟蹤女1的過(guò)程中直接調(diào)用機(jī)器人R2的跟蹤引擎,同理,機(jī)器人R2在后續(xù)跟蹤目男1的過(guò)程中直接調(diào)用機(jī)器人R1的跟蹤引擎。機(jī)器人R1和R2的跟蹤效果如圖5所示。 從圖4可以看出,當(dāng)男1和女1同時(shí)出現(xiàn)在機(jī)器人R1和R2的有效跟隨范圍內(nèi),兩臺(tái)機(jī)器人可以準(zhǔn)確的對(duì)移動(dòng)目標(biāo)進(jìn)行區(qū)分,在基于云平臺(tái)的計(jì)算、規(guī)劃后,可以動(dòng)態(tài)的為各個(gè)機(jī)器人分配恰當(dāng)?shù)母櫲蝿?wù)。因此基于云計(jì)算的多機(jī)器人目標(biāo)智能跟隨系統(tǒng)具有實(shí)用性,可以滿足實(shí)時(shí)性的跟蹤需求。 圖4 跟蹤效果圖 為了驗(yàn)證本文方法對(duì)目標(biāo)跟蹤的有效性,仿真得到跟隨過(guò)程中,機(jī)器人與目標(biāo)間的距離以及機(jī)器人之間的距離,結(jié)果分別如圖5和圖6所示。從圖中可以看出,機(jī)器人在對(duì)目標(biāo)進(jìn)行跟隨時(shí),各個(gè)機(jī)器人均可以與跟蹤目標(biāo)保持6m左右的距離,跟隨狀態(tài)穩(wěn)定,即使跟蹤距離有變化,機(jī)器人也可以在很短的時(shí)間內(nèi)做出調(diào)整。除此之外,機(jī)器人為了對(duì)環(huán)境空間進(jìn)行廣泛的應(yīng)用,各個(gè)機(jī)器人可保持7m左右的距離,也同樣保持良好的穩(wěn)定性,從而有效地完成協(xié)作跟隨。 圖5 機(jī)器人與目標(biāo)距離 圖6 鄰近機(jī)器人間距離 針對(duì)多機(jī)器人目標(biāo)跟隨問(wèn)題,本文提出一種基于云計(jì)算的目標(biāo)智能跟隨系統(tǒng),并對(duì)云平臺(tái)進(jìn)行部署和開(kāi)發(fā)。實(shí)驗(yàn)結(jié)果表明,通過(guò)云平臺(tái)的計(jì)算與規(guī)劃可以完成多個(gè)機(jī)器人對(duì)目標(biāo)的跟隨任務(wù),在機(jī)器人跟蹤目標(biāo)過(guò)程中,隨著目標(biāo)與機(jī)器人距離的不斷改變,云平臺(tái)會(huì)根據(jù)計(jì)算、規(guī)劃結(jié)果為機(jī)器人重新分配任務(wù),機(jī)器人可以在很短的時(shí)間內(nèi)做出調(diào)整。本文方法不僅可以通過(guò)云平臺(tái)加強(qiáng)機(jī)器人的協(xié)作能力,還可以減少機(jī)器人在跟蹤目標(biāo)過(guò)程中的重復(fù)學(xué)習(xí)。2.2 目標(biāo)狀態(tài)預(yù)估
3 基于云計(jì)算的平臺(tái)設(shè)計(jì)
3.1 云服務(wù)平臺(tái)架構(gòu)
3.2 基礎(chǔ)層與微服務(wù)的設(shè)計(jì)
3.3 系統(tǒng)實(shí)現(xiàn)
4 實(shí)驗(yàn)與結(jié)果分析
4.1 實(shí)驗(yàn)環(huán)境搭建
4.2 實(shí)驗(yàn)結(jié)果分析
5 結(jié)束語(yǔ)