沈國鋒,周明拓?,李劍,王華俊,李凱,楊旸
(1 中國科學(xué)院上海微系統(tǒng)與信息技術(shù)研究所, 上海 200050;2 中國科學(xué)院大學(xué), 北京 100049;3 上??萍即髮W(xué), 上海 201210) (2019年10月9日收稿; 2020年1月21日收修改稿)
目前移動(dòng)機(jī)器人已在各領(lǐng)域廣泛應(yīng)用,在很多場景中,需要多個(gè)機(jī)器人編隊(duì)運(yùn)動(dòng)[1-2]。例如,在運(yùn)輸作業(yè)中,多個(gè)機(jī)器人組成車隊(duì),隊(duì)首領(lǐng)航者配備功能齊全、性能優(yōu)越但價(jià)格相對(duì)昂貴的傳感器進(jìn)行自動(dòng)導(dǎo)航,編隊(duì)成員裝備基本的傳感器,跟隨領(lǐng)航者行駛,這樣可以降低整個(gè)系統(tǒng)的成本。
對(duì)于領(lǐng)航-跟隨模式的機(jī)器人編隊(duì)任務(wù),編隊(duì)控制算法的設(shè)計(jì)是硬件需求、限制條件和執(zhí)行性能多方面的權(quán)衡。已有文獻(xiàn)中,一些編隊(duì)控制的理論研究工作將已知各機(jī)器人的精確全局定位信息作為前提條件,例如文獻(xiàn)[3-5]提出的基于模糊 PID、滑??刂?、PD-滑模等方法的編隊(duì)控制理論。在實(shí)際應(yīng)用時(shí),這些依賴全局定位信息的方案在室外場景下要求每個(gè)機(jī)器人配備GPS接收機(jī)或三維激光雷達(dá),室內(nèi)則需要部署全局視覺定位[6]、無線電定位[7]、聲波定位等輔助設(shè)施,因此在運(yùn)用范圍和系統(tǒng)成本上存在不足,研究工作也多止步于仿真模擬。另有一些編隊(duì)控制的研究提出利用多機(jī)器人的相對(duì)位置信息,以解除全局定位的依賴。例如,Lü等[8]通過超寬帶(ultra-wideband,UWB)測距獲取機(jī)器人的相對(duì)姿態(tài),實(shí)驗(yàn)室環(huán)境下定位均方誤差約0.13 m,若要實(shí)現(xiàn)0.10 m以內(nèi)的定位精度,設(shè)備成本將大幅上升。Chueh等[9]提出基于行為暗示模型的機(jī)器人跟隨,跟隨者通過視覺持續(xù)觀察領(lǐng)航者的行為并預(yù)測其運(yùn)動(dòng)位置,引導(dǎo)跟隨者到達(dá)該位置。該方法可以實(shí)現(xiàn)跟隨控制,但跟蹤誤差較大。Wang等[10]提出一種自適應(yīng)的跟蹤控制器,通過多個(gè)任意位置無需校準(zhǔn)的相機(jī)數(shù)據(jù)和一個(gè)全局參考相機(jī)的數(shù)據(jù)來測量機(jī)器人位置,但該方法中的全局相機(jī)還是限制了機(jī)器人編隊(duì)的運(yùn)用范圍。
另一方面,日益復(fù)雜的機(jī)器人應(yīng)用對(duì)板載處理器性能以及數(shù)據(jù)交互提出了更高的要求,使得機(jī)器人系統(tǒng)的復(fù)雜度和造價(jià)增加。為此“云機(jī)器人”的概念被提出[11]:機(jī)器人僅裝備基本的計(jì)算板卡,借助云端的算力和共享數(shù)據(jù)執(zhí)行任務(wù)。Du等[12]提出服務(wù)導(dǎo)向(service-oriented architecture,SOA)的機(jī)器人系統(tǒng)架構(gòu),調(diào)用位于Google App Engine的服務(wù),提高了機(jī)器人中心(robots center)的效率。類似地,Kehoe等[13]使用Google 物體識(shí)別引擎來實(shí)現(xiàn)機(jī)器人抓取。Miratabzadeh等[14]提出基于OpenStack和Hadoop框架的云機(jī)器人架構(gòu),并通過合作SLAM應(yīng)用展示了其優(yōu)勢。但由于從終端到數(shù)據(jù)中心的網(wǎng)絡(luò)性能并不可控,傳統(tǒng)云計(jì)算架構(gòu)只適用于部分類型的服務(wù),而無法部署時(shí)延敏感的實(shí)時(shí)控制類應(yīng)用。
針對(duì)目前機(jī)器人編隊(duì)控制和“云機(jī)器人”模式的不足,本文提出基于霧計(jì)算的機(jī)器人編隊(duì)跟隨系統(tǒng)。編隊(duì)控制方案利用領(lǐng)航者的航速信息和跟隨者的視覺信息實(shí)現(xiàn)相對(duì)定位,降低系統(tǒng)復(fù)雜度并拓寬了運(yùn)用范圍。利用霧計(jì)算技術(shù)在網(wǎng)絡(luò)邊緣構(gòu)建小型虛擬化平臺(tái)[15],借助就近的算力及低跳數(shù)的網(wǎng)絡(luò)連接,將時(shí)延敏感的編隊(duì)控制程序卸載到邊緣節(jié)點(diǎn),克服了云計(jì)算的局限。
本文主要貢獻(xiàn)在于:1)提出一種無需全局定位設(shè)施的移動(dòng)機(jī)器人編隊(duì)跟隨控制方案,2)系統(tǒng)實(shí)現(xiàn)方面引入霧計(jì)算技術(shù),降低機(jī)器人硬件成本和計(jì)算能耗。本文設(shè)計(jì)的系統(tǒng)架構(gòu)中,軟件定義的無線網(wǎng)關(guān)作為霧計(jì)算節(jié)點(diǎn),為移動(dòng)機(jī)器人提供無線網(wǎng)絡(luò)接入,運(yùn)行容器化的跟隨控制程序。跟隨控制程序通過領(lǐng)航者的航速信息獲取期望跟蹤軌跡;利用跟隨者的車載攝像機(jī)數(shù)據(jù)解算相對(duì)位姿,進(jìn)而得到跟隨者的實(shí)時(shí)跟蹤誤差;采用航速重放和PD型迭代學(xué)習(xí)控制(PD-type iterative learning control,PD-ILC)相結(jié)合的策略,實(shí)現(xiàn)了軌跡跟蹤控制。通過實(shí)驗(yàn)論證控制方案的有效性,霧計(jì)算模式的可行性以及任務(wù)卸載帶來的優(yōu)勢。
本文提出的霧計(jì)算使能的機(jī)器人跟隨系統(tǒng)由霧計(jì)算節(jié)點(diǎn)和多個(gè)移動(dòng)機(jī)器人組成,如圖1所示。其中,霧計(jì)算節(jié)點(diǎn)(霧節(jié)點(diǎn))是基于通用處理器平臺(tái)的無線接入網(wǎng)關(guān),為機(jī)器人提供網(wǎng)絡(luò)接入能力及計(jì)算能力。機(jī)器人通過LTE網(wǎng)絡(luò)與霧節(jié)點(diǎn)互聯(lián)。執(zhí)行編隊(duì)跟隨任務(wù)時(shí),多個(gè)移動(dòng)機(jī)器人組成隊(duì)列,追蹤隊(duì)列首部領(lǐng)航機(jī)器人的航跡行駛。該隊(duì)首領(lǐng)航機(jī)器人配備激光雷達(dá)、慣性測量單元(inertial measurement unit,IMU)等傳感器,可由導(dǎo)航模塊控制自動(dòng)行駛,也可由人工遙控行駛。各機(jī)器人的尾部均搭載用于視覺識(shí)別的標(biāo)志板。隊(duì)列中的跟隨機(jī)器人裝備了單目相機(jī),用于測量與被跟隨機(jī)器人的相對(duì)姿態(tài)。
圖1 霧計(jì)算使能的機(jī)器人跟隨系統(tǒng)組成Fig.1 The components of fog computing-enabled robot tracking control system
多機(jī)器人編隊(duì)通過級(jí)聯(lián)擴(kuò)展實(shí)現(xiàn),分解為兩兩之間的領(lǐng)航-跟隨控制。運(yùn)行在霧節(jié)點(diǎn)上的跟隨控制應(yīng)用(控制App)負(fù)責(zé)數(shù)據(jù)處理和編隊(duì)保持控制。領(lǐng)航和跟隨機(jī)器人分別向控制App發(fā)送航速信息和相機(jī)視頻流數(shù)據(jù);控制App利用這些信息計(jì)算得到跟隨者應(yīng)執(zhí)行的航速指令并下發(fā)到機(jī)器人。上述數(shù)據(jù)流也表示在圖1中。
移動(dòng)機(jī)器人在二維平面上運(yùn)動(dòng),每個(gè)單位時(shí)間Δt內(nèi)由二元組航速指令(v,ω)控制,其中v為線速度,ω為角速度。機(jī)器人在每個(gè)Δt時(shí)間內(nèi)作圓弧或者直線運(yùn)動(dòng)。圖2展示了2Δt時(shí)間內(nèi)機(jī)器人l的運(yùn)動(dòng)軌跡。
圖2 機(jī)器人的運(yùn)動(dòng)模型和坐標(biāo)系Fig.2 Robot moving model and the coordinate system
以機(jī)器人初始航向?yàn)閥軸,建立全局坐標(biāo)系;對(duì)于第k個(gè)Δt時(shí)間產(chǎn)生的子軌跡,以上一時(shí)刻機(jī)器人航向?yàn)閥軸方向,建立局部坐標(biāo)系Xk-1-0-Yk-1。例如,圖2顯示了全局坐標(biāo)X0-0-Y0和局部坐標(biāo)X1-0-Y1,X2-0-Y2。在坐標(biāo)系Xi-0-Yi中,kΔt時(shí)刻機(jī)器人x的位姿記為px,i(k)=[xx,i(k),yx,i(k),αx,i(k)]T,其中xx,i(k),yx,i(k)是二維位置坐標(biāo),αx,i(k)是航偏角。簡化起見,在全局坐標(biāo)系X0-0-Y0中,機(jī)器人x的位姿px,0(k)記為
px(k)=[xx(k),yx(k),αx(k)]T.
(1)
航跡計(jì)算
領(lǐng)航者機(jī)器人(leader,l)每隔Δt發(fā)布一次航速(v,ω)??刂艫pp中保存了領(lǐng)航者最近N點(diǎn)歷史航速信息ul(k)=[vl(k),ωl(k)]T,1≤k≤N。
根據(jù)歷史航速信息ul,可以求得領(lǐng)航者在全局坐標(biāo)系X0-0-Y0中的航跡pl(k),1≤k≤N。具體的計(jì)算方法推導(dǎo)如下:
1)在第kΔt時(shí)間內(nèi),根據(jù)航速信息ul(k),可以得到領(lǐng)航者在坐標(biāo)系Xk-1-0-Yk-1下的單步運(yùn)動(dòng)位置pl,k-1(k)=F(ul(k),k),函數(shù)F(·)的定義為
(2)
2)根據(jù)各子坐標(biāo)系之間的仿射變換關(guān)系,得到pl的遞推關(guān)系式
pl(k+1)=D·pl,k(k+1)+pl(k)
=D·F(ul(k),k)+pl(k).
(3)
其中,
(4)
如圖 3所示,機(jī)器人尾部搭載了ArUco標(biāo)記板,中心軸上安裝有單目相機(jī)。標(biāo)記板到底盤中心的位移記為dm-l,底盤中心到攝像機(jī)的位移記為df-c,領(lǐng)航者和跟隨者機(jī)器人的歷史運(yùn)動(dòng)軌跡分別為pl和pf。在軌跡跟蹤任務(wù)中,設(shè)跟隨者機(jī)器人當(dāng)前的期望軌跡點(diǎn)為pl(-Nint),并以此為原點(diǎn)建立坐標(biāo)系,則此時(shí)領(lǐng)航者在坐標(biāo)系中的位姿為pl_c=pl(0),跟隨者的位姿為pf_c=pf(0)。
圖3 基于視覺的相對(duì)姿態(tài)測量Fig.3 Vision-based relative pose measurement
跟隨者相機(jī)與領(lǐng)航者標(biāo)志板之間的相對(duì)位姿pv通過視覺測量方法得到。對(duì)相機(jī)進(jìn)行標(biāo)定后,通過求解透視n點(diǎn)定位(perspective-n-point,PnP)問題,獲得相機(jī)旋轉(zhuǎn)矩陣和平移向量,組合得到pv。文獻(xiàn)[16]描述了基于ArUco標(biāo)志板的視覺測量技術(shù),文獻(xiàn)[17]給出一種O(n)復(fù)雜度的PnP求解算法。結(jié)合前述變量可得到跟隨者與當(dāng)前期望軌跡點(diǎn)的偏差
pe=pf_c=pl_c-[dm-l, 0]T-pv-[df-c, 0]T.
(5)
圖像延遲補(bǔ)償
圖像通過網(wǎng)絡(luò)傳輸存在不可避免的延時(shí),這使得視覺測量結(jié)果pv并非實(shí)時(shí)值,進(jìn)而影響跟蹤誤差pv的準(zhǔn)確性。基于視覺的位姿估計(jì)算法需要利用時(shí)間戳消除這一負(fù)面影響。
記圖像延遲為tdelay,則t時(shí)刻收到的圖像實(shí)際拍攝于t-tdelay時(shí)刻,如圖 3所示,拍攝時(shí)領(lǐng)航者機(jī)器人的位姿為p′l_c=pl(-n),跟隨者機(jī)器人位姿為p′f_c=pf(-n),測得相對(duì)姿態(tài)p′v=pv(-n),其中n=round(tdelay/Δt)。因而由式(5)計(jì)算所得的跟蹤誤差pe實(shí)際為n個(gè)軌跡點(diǎn)以前的跟蹤誤差p′e=pe(-n)。圖像延遲的補(bǔ)償利用跟隨者歷史航速信息uf(k),-(n-1)≤k≤0,以及領(lǐng)航者歷史航速信息ul(k),-(n-1)≤k≤0,預(yù)測pf(0),從而計(jì)算當(dāng)前的實(shí)際跟蹤誤差pe。計(jì)算步驟為:
1)根據(jù)式(3),利用歷史航速信息uf(k),由領(lǐng)航者t時(shí)刻位姿pl(0)計(jì)算t-tdelay時(shí)刻的位姿p′l_c=pl(-n);
2)利用p′v=pv(-n)、p′l_c=pl(-n),根據(jù)式(5)計(jì)算得到t-tdelay時(shí)刻跟隨者的位姿p′f_c;
3)根據(jù)式(3),以p′f_c為起始點(diǎn),利用uf(k)計(jì)算得到t時(shí)刻跟隨者實(shí)際位姿pf_c=pf(0),t時(shí)刻的跟蹤誤差即為pe=pf_c。
以下偽代碼描述了視覺測量模塊的實(shí)現(xiàn)。
算法1 視覺跟蹤誤差測量輸入 Img: 圖像矩陣Img_Stamp: 圖像采集時(shí)間戳輸出 pe: 當(dāng)前跟蹤誤差0) 準(zhǔn)備相機(jī)標(biāo)定,得到內(nèi)參A和畸變系數(shù)dist。1) 映射點(diǎn)提取處理Img圖像,提取ArUco標(biāo)志板角點(diǎn),獲得4組世界坐標(biāo)-像素點(diǎn)映射關(guān)系P'c-Pi。2) 求解透視n點(diǎn)定位利用A,dist,P'c-Pi,解PnP問題,獲得旋轉(zhuǎn)矩陣R和平移向量T,組合得到pv=[t1,t3,θy]T。3) 圖像延遲補(bǔ)償計(jì)算p'l_c=pl(-n);根據(jù)式(5)計(jì)算p'f_c;計(jì)算pe=pf_c。Return pe
在編隊(duì)跟隨任務(wù)中,機(jī)器人車隊(duì)追蹤頭車的航跡行駛。如前文所述,多機(jī)器人的跟隨可分解為兩兩之間的跟隨控制。跟隨者機(jī)器人以領(lǐng)航者過去Nint·Δt時(shí)間內(nèi)的航跡為期望軌跡,即pd(k)=pl(k-Nint)。軌跡跟蹤控制問題描述為:給定a)過去Nint個(gè)時(shí)刻的領(lǐng)航者航速指令ul(k)=[vl(k),ωl(k)]T,-Nint 當(dāng)實(shí)時(shí)誤差信息pe可用時(shí),軌跡跟蹤通過PD-ILC實(shí)現(xiàn),ILC通過迭代輸入控制量,可在有限時(shí)間內(nèi)追蹤期望信號(hào)[18]。在大幅度轉(zhuǎn)向或者障礙遮擋時(shí),領(lǐng)航者可能會(huì)脫離跟隨者相機(jī)視野,此時(shí)ILC無法運(yùn)行,跟蹤控制通過重放跟隨者航速指令實(shí)現(xiàn),這時(shí)令uf(Nint)=ul(0)。 圖1中提及的跟蹤控制應(yīng)用(控制App)設(shè)計(jì)原理如圖4所示。2個(gè)隊(duì)列數(shù)據(jù)結(jié)構(gòu)(FIFO)分別存儲(chǔ)領(lǐng)航者的歷史航速信息ul(k)和跟隨者未來的航速指令uf(k)。在同步時(shí)鐘的驅(qū)動(dòng)下,每個(gè)時(shí)刻有來自跟隨者的實(shí)時(shí)航速信息入隊(duì)列,同時(shí)跟隨者航速指令出隊(duì)列。相機(jī)視頻流信息經(jīng)過視覺姿態(tài)測量、圖像延遲修正,轉(zhuǎn)化為實(shí)時(shí)跟蹤誤差信息pe;領(lǐng)航者航速隊(duì)列中的信息經(jīng)過航速-航跡計(jì)算模塊,轉(zhuǎn)化為期望跟蹤軌跡。根據(jù)pe是否可用,選擇航速重放或PD-ILC方法調(diào)整跟隨者航速指令,更新到隊(duì)列uf(k)。 圖4 跟隨控制應(yīng)用(控制App)的設(shè)計(jì)原理Fig.4 The principle of tracking control application 迭代學(xué)習(xí)控制律設(shè)計(jì)迭代學(xué)習(xí)控制算法(ILC)中,跟隨機(jī)器人的運(yùn)動(dòng)指令uf(k)為系統(tǒng)的輸入,位姿y(k)為系統(tǒng)輸出,期望軌跡為pd(k)。為簡化計(jì)算,當(dāng)Δt足夠小時(shí),圓弧近似為線段,第i次迭代時(shí),式(3)表述的機(jī)器人運(yùn)動(dòng)模型改寫為 (6) 其中αi(k)為系統(tǒng)的狀態(tài)干擾,βi(k)為輸出測量噪聲。 對(duì)于存在初始迭代誤差且為固定非零值的場景,即yi(k)-pd(k)=pe,i=0, 1, 2,…,使用開環(huán)PD型迭代學(xué)習(xí)控制律,迭代形式寫為 Γ(k){[ei(k)-ei(k-1)]+Rei(k)}. (7) 其中Γ(k)為學(xué)習(xí)增益矩陣,R為增益系數(shù)矩陣,ei(k)=pd(k)-yi(k)為第i次迭代后輸出與期望值的誤差。 若矩陣B(pf,k)有界,并滿足Lipschitz條件 ‖B(pf,k)‖≤bB, ‖B(p1)-B(p2)‖≤cB‖p1-p2‖, (8) 其中bB,cB為正常數(shù)。假設(shè) b) 每次迭代的初始誤差有界,即‖pd(0)-yi(0)‖≤b0,b0為正常數(shù)。 (9) 其中運(yùn)算符‖A‖為矩陣A的導(dǎo)出范數(shù)(induced matrix norm) (10) 此時(shí),當(dāng)?shù)螖?shù)i→∞,系統(tǒng)輸出yi(k)趨近于期望軌跡,‖pd(k)-yi(k)‖有界且收斂于bα、bβ、b0的函數(shù);若忽略干擾,yi(k)在0≤k (11) 上述性質(zhì)的證明過程見文獻(xiàn)[19]。 (12) 進(jìn)一步地,由式(11)可見,當(dāng)R的取值滿足其特征值λ(R)<0時(shí),即使初始跟蹤誤差非零,迭代學(xué)習(xí)到的輸入值uf(k)仍可使跟隨者機(jī)器人隨著時(shí)間漸進(jìn)地跟蹤期望軌跡。 級(jí)聯(lián)車隊(duì)跟蹤誤差 (13) 上述討論表明,來自視覺位姿測量的實(shí)時(shí)誤差pe可用時(shí),通過PD-ILC可以縮小跟蹤誤差,而不使用pe信息的航速重放跟蹤方法會(huì)保持甚至擴(kuò)大跟蹤誤差。編隊(duì)中過多的級(jí)聯(lián)層數(shù)會(huì)使隊(duì)末機(jī)器人的跟蹤精度退化,這也成為機(jī)器人編隊(duì)數(shù)量上限的制約因素。 我們使用3個(gè)機(jī)器人組成的編隊(duì)和一個(gè)霧計(jì)算節(jié)點(diǎn)實(shí)現(xiàn)了上述機(jī)器人跟隨系統(tǒng)。跟隨控制應(yīng)用打包成容器鏡像,分發(fā)到霧計(jì)算節(jié)點(diǎn)運(yùn)行。圖5展示系統(tǒng)實(shí)現(xiàn)的細(xì)節(jié),下文作進(jìn)一步說明。 圖5 霧計(jì)算使能的機(jī)器人跟隨系統(tǒng)實(shí)現(xiàn)細(xì)節(jié)Fig.5 Implementation details of the fog computing enabled robot tracking control system 實(shí)驗(yàn)所用機(jī)器人為Rikiribot 4WD平臺(tái)[20]。機(jī)器人本地計(jì)算能力來自于Raspberry Pi 3b單板電腦和STM32 MCU。前者運(yùn)行上層應(yīng)用并進(jìn)行IP/TCP通信,后者主要負(fù)責(zé)底層硬件驅(qū)動(dòng)。 霧計(jì)算節(jié)點(diǎn)是基于Open Air Interface 項(xiàng)目的軟件定義LTE基站[21],通過SDR模塊收發(fā)射頻信號(hào)。霧計(jì)算節(jié)點(diǎn)基于x86平臺(tái),本質(zhì)上是一臺(tái)通用計(jì)算機(jī),因此可以協(xié)助運(yùn)行外部計(jì)算任務(wù)。霧計(jì)算節(jié)點(diǎn)為機(jī)器人提供4 G網(wǎng)絡(luò)接入和運(yùn)算能力。機(jī)器人上的Raspberry Pi電腦使用USB 4 G網(wǎng)卡接入霧節(jié)點(diǎn)網(wǎng)絡(luò)。 詳細(xì)的設(shè)備參數(shù)見表1。 機(jī)器人編隊(duì)跟隨系統(tǒng)的設(shè)計(jì)采用ROS框架,這是一個(gè)面向機(jī)器人領(lǐng)域的分布式元操作系,提供了發(fā)布-訂閱的通信機(jī)制。領(lǐng)航者機(jī)器人foo行駛時(shí),以5 Hz頻率在foo/cmd_vel話題(Topic)上廣播航速信息。跟隨者機(jī)器人bar監(jiān)聽bar/cmd_vel話題上的消息指令,并轉(zhuǎn)換為電機(jī)轉(zhuǎn)速。跟隨者的相機(jī)視頻流在話題bar/camera_raw上發(fā)布。 圖 4中的控制App使用以上話題作為接口,使用Python編寫為獨(dú)立的ROS Package,然后打包成Docker鏡像。該控制App的鏡像封裝了ROS運(yùn)行時(shí)環(huán)境,以及機(jī)器人編隊(duì)系統(tǒng)的所有運(yùn)算程序,包括視覺信號(hào)處理、航跡計(jì)算、跟隨控制等。執(zhí)行編隊(duì)跟隨任務(wù)時(shí),鏡像被分發(fā)到霧節(jié)點(diǎn)上實(shí)例化運(yùn)行。編隊(duì)中存在多個(gè)機(jī)器人時(shí),一對(duì)領(lǐng)航-跟隨關(guān)系對(duì)應(yīng)一個(gè)容器實(shí)例,因此霧節(jié)點(diǎn)的資源一定程度上決定了編隊(duì)中機(jī)器人的最大數(shù)量。 在設(shè)計(jì)細(xì)節(jié)方面另有一些額外考慮。首先,為保證指令的實(shí)時(shí)性,使用TCP_NODELAY方式訂閱航速相關(guān)的topic[22]。TCP_NODELAY的原理是停用Nagle算法,在發(fā)送頻繁的小分組時(shí),犧牲網(wǎng)絡(luò)吞吐性能換取低延遲效果[23]。需要指出,視頻流數(shù)據(jù)能容忍一定的延遲而無需作此處理,因?yàn)樗惴ㄖ幸呀?jīng)考慮了延時(shí)的修正。其次,控制App鏡像需要有時(shí)間同步和網(wǎng)絡(luò)穿透兩個(gè)額外的組件支持。機(jī)器人和控制App上的程序依賴統(tǒng)一時(shí)鐘,為此機(jī)器人通過霧節(jié)點(diǎn)上的NTP服務(wù)器定期校準(zhǔn)時(shí)間。ROS通信機(jī)制要求可雙向訪問的網(wǎng)絡(luò),但4 G核心網(wǎng)和LTE網(wǎng)卡設(shè)備進(jìn)行了兩次NAT轉(zhuǎn)換。為此,霧計(jì)算節(jié)點(diǎn)上運(yùn)行OpenVPN服務(wù)器,在機(jī)器人和控制App實(shí)例之間創(chuàng)建了L2TP隧道。 實(shí)驗(yàn)首先測試霧計(jì)算節(jié)點(diǎn)的網(wǎng)絡(luò)性能。隨后,量化表征機(jī)器人控制程序卸載到霧節(jié)點(diǎn)獲得的益處。最后,評(píng)價(jià)實(shí)驗(yàn)室環(huán)境下本文所設(shè)計(jì)編隊(duì)跟隨方案的效果。 在分布式控制系統(tǒng)中,網(wǎng)絡(luò)的通信能力需要保證系統(tǒng)運(yùn)行所需的時(shí)延和帶寬指標(biāo)。具體到本文的機(jī)器人編隊(duì)跟隨系統(tǒng),在典型流量負(fù)載下,控制App與機(jī)器人之間的控制指令延遲必須小于控制間隔0.2 s。為了測試霧節(jié)點(diǎn)的網(wǎng)絡(luò)性能,使用iperf工具向網(wǎng)絡(luò)中發(fā)送UDP數(shù)據(jù)包,制造不同大小的網(wǎng)絡(luò)流量;然后以5 Hz頻率,在ROS測試話題上發(fā)送帶有時(shí)間戳的簡短指令消息,在上行和下行2個(gè)方向上測試消息的延遲。 實(shí)驗(yàn)測試了網(wǎng)絡(luò)分別在空閑狀態(tài), 400、780、1 200 KB/s負(fù)載下,上行和下行2個(gè)方向的時(shí)延,其中780 KB/s是跟隨者機(jī)器人向霧計(jì)算節(jié)點(diǎn)傳輸一路視頻信號(hào)所占用的平均帶寬。測試持續(xù)采樣60 s,結(jié)果如圖6所示。 結(jié)果可見,在網(wǎng)絡(luò)帶寬以內(nèi),不同網(wǎng)絡(luò)負(fù)載下,消息延遲均能保持在毫秒級(jí)的水平,偶爾的突發(fā)抖動(dòng)在100 ms以下,網(wǎng)絡(luò)能滿足5 Hz控制頻率所需的200 ms最大延遲。其原因在于:1)LTE接入方式在物理層保障了穩(wěn)定的信道容量。2)控制指令使用TCP_NODELAY方式傳輸,在網(wǎng)絡(luò)協(xié)議層面降低了包延遲。 相比在機(jī)器人本地運(yùn)算的傳統(tǒng)方法,霧計(jì)算將機(jī)器人控制程序卸載到邊緣節(jié)點(diǎn)上運(yùn)行,優(yōu)勢在于:1)降低對(duì)機(jī)器人板載電腦處理能力的需求,進(jìn)而降低硬件成本;2)降低移動(dòng)機(jī)器人的運(yùn)行功耗,延長電池壽命;3)相對(duì)云計(jì)算而言,霧計(jì)算資源更加靈活可靠,運(yùn)算任務(wù)卸載得更加徹底,機(jī)器人只負(fù)責(zé)傳感和執(zhí)行,完全解耦合了控制面,利于軟件的維護(hù)和快速迭代。 實(shí)驗(yàn)首先測試跟隨控制程序分別在霧計(jì)算節(jié)點(diǎn)和機(jī)器人板載電腦上的運(yùn)行時(shí)間。其次,忽略運(yùn)行性能,關(guān)注機(jī)器人功率,通過供電電壓和電流測量得到控制程序卸載與本地運(yùn)算2種情況下機(jī)器人板載電腦的運(yùn)行功耗。 測試結(jié)果如圖 7所示。圖7(a)顯示控制App進(jìn)行一次跟隨者航速運(yùn)算所需要的時(shí)間。在霧節(jié)點(diǎn)上計(jì)算時(shí),單次運(yùn)算時(shí)間約30 ms左右;而在移動(dòng)機(jī)器人板載電腦上計(jì)算時(shí),運(yùn)算時(shí)間在400 ms以上,這對(duì)于5 Hz的控制頻率來說是不可行的。圖7(b)的功耗測試結(jié)果顯示,控制App從機(jī)器人本地卸載到霧節(jié)點(diǎn)后,機(jī)器人板載電腦的功耗從3.4 W降低到2.5 W左右,降幅約25%??紤]到若在本地運(yùn)算,實(shí)則需要更高級(jí)別的處理器才能滿足算力需求,因此實(shí)際節(jié)約的功耗將會(huì)更多。上述結(jié)果證實(shí),本系統(tǒng)中霧計(jì)算任務(wù)卸載的做法起到了預(yù)期效果。 為驗(yàn)證本文中編隊(duì)跟隨方案的有效性,使用3個(gè)機(jī)器人的編隊(duì)進(jìn)行不同項(xiàng)目的測試。完整啟動(dòng)上述霧計(jì)算機(jī)器人系統(tǒng)后,人工操縱隊(duì)首領(lǐng)航機(jī)器人,另外2個(gè)機(jī)器人分別由2個(gè)控制App實(shí)例自動(dòng)控制,跟蹤領(lǐng)航者的軌跡。實(shí)驗(yàn)在6 m×8 m的室內(nèi)場地進(jìn)行,測試3個(gè)項(xiàng)目,分別是:非零初始誤差的編隊(duì)修正能力、不同速度下的方形運(yùn)動(dòng)和長距離折線形運(yùn)動(dòng)。一個(gè)部署在房間頂部的攝像頭采集機(jī)器人編隊(duì)的運(yùn)動(dòng)錄像,并通過離線視覺測量方法得出機(jī)器人編隊(duì)在地面二維坐標(biāo)系上的運(yùn)動(dòng)軌跡。 3次實(shí)驗(yàn)中機(jī)器人編隊(duì)的運(yùn)動(dòng)軌跡如圖8所示,方形標(biāo)記為起始點(diǎn),三角形標(biāo)記為結(jié)束點(diǎn)。跟隨者的跟蹤誤差隨時(shí)間變化的曲線也在圖8中一并展示。表2進(jìn)一步分析跟蹤效果,包括運(yùn)動(dòng)距離,各級(jí)最小、最大跟蹤誤差,以及平均跟蹤誤差。其中運(yùn)行過程中的跟蹤誤差tra_err和平均跟蹤誤差mean_error使用下式計(jì)算。 表2 在不同運(yùn)動(dòng)軌跡下的移動(dòng)機(jī)器人跟蹤效果分析Table 2 Tracking performance analysis of mobile robots under different trajectories (14) 測試項(xiàng)目1中,編隊(duì)中各機(jī)器人初始時(shí)存在約0.23 m的誤差,但各級(jí)跟蹤誤差隨時(shí)間逐步下降,最終在5 m行駛距離以內(nèi)恢復(fù)到直線隊(duì)列。 測試項(xiàng)目2和3使用不同的直行、轉(zhuǎn)向速度,在長時(shí)間跟蹤過程中驗(yàn)證了方案的魯棒型。方形軌跡和折線形軌跡測試的最大跟蹤誤差均在0.15 m以內(nèi),平均跟蹤誤差約0.03 m。當(dāng)領(lǐng)航者在做轉(zhuǎn)彎等較大幅度動(dòng)作時(shí),跟隨者的視覺探測無法起作用,此時(shí)依靠控制App中跟隨者航速FIFO的緩存內(nèi)容和航速重放實(shí)現(xiàn)跟蹤。當(dāng)領(lǐng)航者重新回到跟隨者視覺探測范圍內(nèi)時(shí),視覺測量再次介入,跟蹤誤差被及時(shí)修正,跟隨者回歸預(yù)期的航線。測試結(jié)果證實(shí)了本文跟隨方案的有效性。 針對(duì)現(xiàn)有機(jī)器人編隊(duì)跟隨方案的不足以及云計(jì)算模式的限制,本文提出霧計(jì)算使能的機(jī)器人跟隨系統(tǒng)。所提出的系統(tǒng)中,避免了全局定位和成本較高的局部定位,跟隨控制方案僅需領(lǐng)航者的航速信息,以及跟隨者的相機(jī)視頻流信息。引入霧計(jì)算模式,霧節(jié)點(diǎn)為機(jī)器人提供無線網(wǎng)絡(luò)接入和運(yùn)算能力,降低了機(jī)器人硬件需求。原型系統(tǒng)實(shí)驗(yàn)證實(shí)了跟隨方案的有效性,平均跟蹤誤差在0.05 m以內(nèi),跟隨控制程序的卸載降低了25%的機(jī)器人計(jì)算能耗,具有工程參考意義。 本文實(shí)現(xiàn)了軌跡跟蹤的編隊(duì),在此基礎(chǔ)上擴(kuò)展到更普遍的編隊(duì)隊(duì)形(例如基于Shape理論描述的隊(duì)形[24])是下一步的研究方向。此外,單個(gè)霧節(jié)點(diǎn)的資源限制成為系統(tǒng)最大可支持機(jī)器人數(shù)量的制約因素之一,因此利用多個(gè)霧計(jì)算節(jié)點(diǎn)構(gòu)建資源池,優(yōu)化編排業(yè)務(wù)鏡像是潛在的研究方向。 簡 報(bào)2 系統(tǒng)實(shí)現(xiàn)
2.1 硬件平臺(tái)
2.2 軟件設(shè)計(jì)
3 性能測試
3.1 通信能力
3.2 任務(wù)卸載的優(yōu)勢
3.3 實(shí)際跟隨效果
4 結(jié)束語
中國科學(xué)院大學(xué)學(xué)報(bào)2021年4期