惠向暉,頓文濤,魏秀然
(河南農業大學信息與管理科學學院,河南 鄭州 450002)
隨著信息技術的長足進步,目標智能跟蹤廣泛應用在軍事、醫學、監控、交通等方面[1-3]。由于良好的目標跟蹤技術對機器人在運行過程中及時躲避障礙物和自主導航具有非常重要的意義。因此,為了有效地協調通信、對目標作出及時響應,機器人的目標智能跟蹤技術成為當代研究的熱點問題。
一些學者針對機器人的目標跟蹤提出了新的方法,文獻[4]采用激光傳感器完成目標的實時跟蹤,通過地形“峰—谷”計算方法,建立機器人的避障規則,結果表明該方法在跟蹤過程中,機器人可以與被跟蹤的目標保持一定的跟隨距離,但該方法的應用范圍較狹窄,對于近距離的跟蹤不適用。文獻[5]通過雷達與位置的數據信息,確定不同智能家居的目標跟蹤方法,實現機器人的避障功能,結果表明該方法具有較強的泛化能力,但對于實際存在障礙物的情況,該方法的跟蹤能力有待提升。文獻[6]根據3D跟蹤目標的定位結果,通過多行人跟蹤器估計的跟蹤目標運動狀態形成動態跟蹤目標的代價地圖,并生成機器人可以避障和跟隨全局路徑系統,結果表明該方法在密集人群環境中的有效性與安全性有待提高。
隨著跟蹤目標的復雜程度提高,很多場合下單個機器人的目標跟蹤已經不能滿足應用需求,需要多個機器人相互協調工作,并對目標進行跟隨。由于多機器人智能跟蹤需要對多維信息加以考慮,是一個反復計算的過程,與此同時多機器人智能跟蹤所獲得的目標特征不能被其機器人識別,因為本文提出基于云計算的多機器人目標智能跟蹤方法,從機器人對目標的檢測與持續跟蹤兩方面進行研究與分析,同時通過云操作系統對多個機器人與目標間的距離,在滿足最優條件下為機器人分配跟蹤任務。
由于現實環境的復雜性與可變性,機器人對目標進行智能跟蹤非常困難。并且由于跟蹤目標隨著時間的變化,其空間位置具有不確定性,導致機器人對目標的持續跟隨難上加難。因此本文從機器人對目標的跟蹤算法與目標狀態預估兩方面進行研究。
首先通過人機載距傳感器對多機器人進行全局地圖下的定位,并對需要跟蹤的目標位置進行定位。以各個機器人的中心位置為原點,建立二維坐標系的局部地圖。根據傳感器測得的障礙物距離,將障礙物的坐標轉換到局部地圖中,并將機器人與目標位置連線的方向作為機器人預跟隨的方向。機器人的實際運動方向角公式可表示為
φmov=φpre+φhid
(1)
其中,φpre表示機器人的預運動方向角;φhid表示機器人的避障方向角。在預運動方向角中分別引入變量安全縫偏角和對分角,公式表示為

(2)


(3)
其中,Athe[0,1][·]表示飽和函數,對于任意的m (4) 在預運動方向角的基礎上,機器人躲避第i個障礙物的偏轉角度可表示為 θdef_i=athe_i·bmapd(φi,φpre) (5) 其中,bmap(·)表示角度映射函數;φi表示激光器獲取的角度。機器人在跟隨過程中控制量可由平移速度和旋轉角度表示,公式為: (6) 其中,υlim表示機器人跟隨過程中平移速度的約束值;drob_peo表示機器人與障礙物的距離;Drob_peo表示機器人與障礙物的期望保持距離;ωmax表示機器人跟隨過程中最大的旋轉角速度。 (7) (8) 其中,nx表示目標狀態Xtar_k-1的維度;δ表示散布調節點的尺寸參數。均值和協方差通過預測點表示為 (9) 其中,H表示噪音協方差矩陣。為了實現多機器人對目標進行智能跟蹤,通過感知模塊測得的數據對預測狀態進行修正。在tk時刻,觀測模型可表示為 (10) 根據tk時刻的觀測模型可以得到預測值,公式表示為 Star_k,j=g(ζk,j,0) (11) 進而可以計算出目標的預測值與環境噪聲的協方差矩陣,公式表示為 (12) 為了使數據成為最新狀態,需要對多個測量數據與跟蹤軌跡數據進行關聯,本文采用近鄰聯合概率的關聯方法[7]對數據進行關聯。假設tk時刻有M個機器人對目標進行跟蹤,測量數據用star_k,j(j∈[1,M])表示,且共存在N個跟蹤軌跡,那么測量數據star_k,j的跟蹤軌跡近似概率可表示為 (13) 在多機器人對目標進行跟蹤過程中,有時機器人的工作環境沒有固定的中心點,需要各個機器人相互協作、自組織的完成跟蹤任務,本文采用云計算的方式,協調各個機器人所執行的任務。 機器人云服務系統主要分為三個層次,分別為:基礎層、平臺層和服務層。基礎層是包含服務器、存儲和網絡資源的物理硬件層,其作用是完成資源的分配和平臺的擴展。平臺層是指為程序提供開發和運行的環境層,其目的是促進用戶進行應用開發和程序部署。服務層是指通過提供軟件的方式為用戶提供服務的層次,其主要作用是對資源進行封裝和部署,把抽象環境和現實世界連接到一起,提供不同層次的機器人云服務。用戶可通過VNC登錄到云平臺,將各個機器人的IP地址和云平臺的IP地址互相添加到對方的平臺上,并確保它們之間可以Ping成功,當機器人與云平臺建立好通信后,便可以調用算法對多機器人進行操作。 機器人云操作系統采用跨機器人通信的方式,通信消息由標準的基元數據和數組組成,采用自定義語言描述各個模塊間的消息。機器人云服務平臺可為機器人的工作環境提供通用服務以及專用服務,機器人與云服務平臺間的集成模型如圖1所示。 圖1 數據集成模型 云計算以虛擬化技術為核心內容,通過虛擬化技術可以創建出硬件平臺的抽象虛擬化模型,從而可以提高計算效率。為了滿足多機器人協作工作,需要對基礎層進行特殊設計,以達到支持機器人向云平臺托管的大量計算任務。根據多機器人的跟蹤需求,所設計的云平臺不僅可以提供額外的服務,還可以對數據進行保留以滿足歸檔要求,本文采用松散耦合架構設計對云服務平臺的基礎層進行設計,并選用相應的組件為上層應用提供服務。 微服務體系結構把機器人的應用程序拆分成多個小型服務,每個小服務都可以獨立部署和運行,這樣使系統的開發、測試更加便捷。本文采用分離服務組件與基礎結構的微服務體系來降低云服務系統的復雜性,使每個獨立的小服務開發起來更加方便。微服務采用容器批量部署的方式,將各個小服務的代碼與環境進行隔離,避免它們之間產生沖突,從而創建更加敏捷的開發流程。由于Docker可獨立運行在虛擬環境中,不需要用戶深入理解底層技術的特點,因此本文采用Docker對維服務器進行構建。 系統各組件采用分布式部署在服務器集群里,并結合網絡環境與硬件資源部署一個云,然后實現機器人云平臺的虛擬化。分別在3臺機架式服務器配置三個節點:控制節點、計算節點和存儲節點,通過核心交換機提供網絡。各節點的網絡規劃如圖2所示。 圖2 節點網絡規劃 控制節點可管理機器人的整個云平臺,包含網絡、調度和驗證等功能。計算節點可管理機器人云平臺的主機,起到提供計算資源的作用。存儲節點為云平臺提供機器人信息的存儲服務。交換機為整個云平臺提供網絡,并配置網段192.168.100.0/24為外部網絡通道,網段10.1.12.0/24為管理網絡。 為了驗證基于云計算的多機器人目標跟隨方法的可行性,需要搭建機器人云平臺系統。登陸云主機,安裝并運行hector算法,啟動Rviz界面與機器人。通過云端控制各個機器人的人機載距傳感器對周圍環境進行深度信息圖形的構建,并將數據保存到云端,利用地圖上的方向分別為各個機器人進行初始位置的定位。最后啟動導航,機器人會不斷的發送目標位置,并將數據上傳到云端,在云端完成復雜環境的建模、規劃與導航工作后,云主機會確定各個機器人與目標的位置,自動規劃機器人的路線,完成對目標的智能跟蹤。 本實驗選擇6臺機器人(編號分別為R1-R6)對環境內的人進行目標追蹤。機器人通過移動對目標進行跟隨并將傳感器采集的信息上傳到云端,云端將各個機器人采集的數據進行存儲,實驗的云端數據庫如表1所示。 表1 云端數據庫 云端根據每臺機器人位置與目標的距離進行綜合計算,使各臺機器人協作方式達到最優,然后輸出任務分配給每臺機器人。任務分配結果如圖3所示。 圖3 任務分配結果 以機器人R1和R2為例,對其目標跟蹤過程進行描述。根據機器人R1和R2所處的初始位置,R1和R2會分別獨自跟隨離自己距離近的目標。隨著男1與女1在運動過程中的先靠近后遠離,機器人R1和R2會根據云端對任務的重新分配結果,交換跟蹤目標。機器人R1在后續跟蹤女1的過程中直接調用機器人R2的跟蹤引擎,同理,機器人R2在后續跟蹤目男1的過程中直接調用機器人R1的跟蹤引擎。機器人R1和R2的跟蹤效果如圖5所示。 從圖4可以看出,當男1和女1同時出現在機器人R1和R2的有效跟隨范圍內,兩臺機器人可以準確的對移動目標進行區分,在基于云平臺的計算、規劃后,可以動態的為各個機器人分配恰當的跟蹤任務。因此基于云計算的多機器人目標智能跟隨系統具有實用性,可以滿足實時性的跟蹤需求。 圖4 跟蹤效果圖 為了驗證本文方法對目標跟蹤的有效性,仿真得到跟隨過程中,機器人與目標間的距離以及機器人之間的距離,結果分別如圖5和圖6所示。從圖中可以看出,機器人在對目標進行跟隨時,各個機器人均可以與跟蹤目標保持6m左右的距離,跟隨狀態穩定,即使跟蹤距離有變化,機器人也可以在很短的時間內做出調整。除此之外,機器人為了對環境空間進行廣泛的應用,各個機器人可保持7m左右的距離,也同樣保持良好的穩定性,從而有效地完成協作跟隨。 圖5 機器人與目標距離 圖6 鄰近機器人間距離 針對多機器人目標跟隨問題,本文提出一種基于云計算的目標智能跟隨系統,并對云平臺進行部署和開發。實驗結果表明,通過云平臺的計算與規劃可以完成多個機器人對目標的跟隨任務,在機器人跟蹤目標過程中,隨著目標與機器人距離的不斷改變,云平臺會根據計算、規劃結果為機器人重新分配任務,機器人可以在很短的時間內做出調整。本文方法不僅可以通過云平臺加強機器人的協作能力,還可以減少機器人在跟蹤目標過程中的重復學習。

2.2 目標狀態預估








3 基于云計算的平臺設計
3.1 云服務平臺架構

3.2 基礎層與微服務的設計
3.3 系統實現

4 實驗與結果分析
4.1 實驗環境搭建
4.2 實驗結果分析





5 結束語