王 帥, 張?jiān)浦? 段 強(qiáng)
(東北大學(xué) 機(jī)器人科學(xué)與工程學(xué)院, 遼寧 沈陽(yáng) 110819)
服務(wù)機(jī)器人大多呈現(xiàn)為移動(dòng)型,需要在室內(nèi)環(huán)境靈活運(yùn)動(dòng)。視覺、激光、慣性導(dǎo)航等傳感器的廣泛應(yīng)用,極大地增強(qiáng)了移動(dòng)機(jī)器人對(duì)環(huán)境的認(rèn)知能力,同時(shí)也形成了沉重的運(yùn)算負(fù)擔(dān),對(duì)機(jī)器人的處理能力提出了更高的要求,產(chǎn)生了性能與成本之間的矛盾。為此,研究者提出將機(jī)器人與云計(jì)算相結(jié)合,把復(fù)雜的運(yùn)算卸載至云端,同時(shí)憑借云端的數(shù)據(jù)交互賦予機(jī)器人互相學(xué)習(xí)的能力,由此形成了“云機(jī)器人”的技術(shù)概念[1]。近年來(lái),研究者從體系架構(gòu)、通信協(xié)議、數(shù)據(jù)庫(kù)構(gòu)建等方面對(duì)云機(jī)器人開展了研究,出現(xiàn)了RoboEarth、GostaiNET等技術(shù)平臺(tái)[2-3],但大多數(shù)研究仍然停留在概念階段,缺乏實(shí)際應(yīng)用的案例。
本文針對(duì)移動(dòng)機(jī)器人構(gòu)圖,借助云計(jì)算解決同步定位與地圖構(gòu)建(SLAM)過(guò)程中密集型數(shù)據(jù)運(yùn)算的問(wèn)題,具有云機(jī)器人的典型技術(shù)特征。SLAM可以描述為:在未知環(huán)境中運(yùn)動(dòng)的機(jī)器人逐步構(gòu)建周圍環(huán)境的地圖,同時(shí)在該地圖確定自身的位置和姿態(tài)[4-5]。在機(jī)器人領(lǐng)域,SLAM被認(rèn)為是實(shí)現(xiàn)真正自主機(jī)器人的核心環(huán)節(jié)[6]。近年來(lái),基于Kinect的三維視覺SLAM方法憑借其成本低廉、環(huán)境信息描述豐富等特點(diǎn),在室內(nèi)移動(dòng)機(jī)器人領(lǐng)域迅速成為研究者關(guān)注的熱點(diǎn)[7-8]。
為了提高運(yùn)算效率,研究者引入了并行運(yùn)算、GPU編程等方法。文獻(xiàn)[9]將多核CPU用于視覺SLAM的特征匹配環(huán)節(jié),通過(guò)并行處理實(shí)現(xiàn)加速運(yùn)算;文獻(xiàn)[10]提出了一種三維VSLAM方法,建立環(huán)境的三維模型;文獻(xiàn)[11]提出了一種利用RGB-D數(shù)據(jù)進(jìn)行快速視覺里程計(jì)和地圖構(gòu)建的方法,使用Shi-Tomasi算法進(jìn)行角點(diǎn)檢測(cè),并通過(guò)卡爾曼濾波進(jìn)行模型更新。上述方法均依靠機(jī)器人本地的計(jì)算資源進(jìn)行實(shí)時(shí)求解,需要性能先進(jìn)的機(jī)載硬件支持,存在計(jì)算開銷大、執(zhí)行速度慢等缺陷。
為此,研究者開始借助云計(jì)算解決機(jī)器人SLAM過(guò)程的數(shù)據(jù)負(fù)擔(dān),在低成本機(jī)器人硬件的基礎(chǔ)上實(shí)現(xiàn)高性能運(yùn)算。Ayush K等[12]利用基礎(chǔ)設(shè)施即服務(wù)(Infrastructure as a service, IaaS)和并行運(yùn)算實(shí)現(xiàn)視覺SLAM,獲得了良好的實(shí)時(shí)性與魯棒性,但并未考慮在實(shí)際應(yīng)用時(shí)如何將機(jī)器人應(yīng)用到該框架下。Benavidez等[13]以多臺(tái)計(jì)算機(jī)節(jié)點(diǎn)組成了云計(jì)算平臺(tái),將視覺SLAM的復(fù)雜處理卸載于云端,通過(guò)并行處理在低成本硬件上實(shí)現(xiàn)了高性能運(yùn)算,實(shí)現(xiàn)了二維環(huán)境構(gòu)圖。Mohanarajah等人[14]采用云計(jì)算實(shí)現(xiàn)了多臺(tái)機(jī)器人的協(xié)同3D構(gòu)圖。上述研究,大多采用了私有云框架實(shí)現(xiàn)SLAM流程,其應(yīng)用范圍受到了較大的限制。
本文針對(duì)移動(dòng)機(jī)器人機(jī)載嵌入式控制器處理能力有限的問(wèn)題,依托公共云平臺(tái)提出了一種基于云計(jì)算的實(shí)時(shí)三維視覺SLAM實(shí)驗(yàn)系統(tǒng),利用金字塔Lucas-Kanade算法實(shí)現(xiàn)特征點(diǎn)的實(shí)時(shí)追蹤與匹配,通過(guò)將復(fù)雜運(yùn)算卸載于云端從而提高了執(zhí)行速度。實(shí)驗(yàn)結(jié)果表明,本文有效降低了視覺SLAM對(duì)硬件的依賴度,大幅降低了運(yùn)算時(shí)間,并且具有較好的實(shí)時(shí)性和構(gòu)圖精度。
本文采用基于圖優(yōu)化的SLAM方法,主要包括前端任務(wù)和后端任務(wù)兩部分。前端任務(wù)包括特征提取與匹配、配準(zhǔn)和閉環(huán)檢測(cè)等過(guò)程。特征提取與匹配是指順序數(shù)據(jù)關(guān)聯(lián)問(wèn)題,而配準(zhǔn)用于解決幀間位姿估計(jì)問(wèn)題,閉環(huán)檢測(cè)則根據(jù)觀測(cè)到的場(chǎng)景信息來(lái)判斷機(jī)器人是否回到之前訪問(wèn)過(guò)的區(qū)域。后端任務(wù)主要完成地圖的優(yōu)化,構(gòu)建全局一致的地圖。
1.1.1 金字塔Lucas-Kanade算法
Lucas-Kanade算法(LK)是光流法的經(jīng)典算法,
基于以下3個(gè)假設(shè):(1)亮度恒定;(2)時(shí)間連續(xù)或者小運(yùn)動(dòng);(3)空間一致。LK算法適用于小而連貫的運(yùn)動(dòng),但在實(shí)際應(yīng)用中跟蹤效果并不好。本文采用基于金字塔分層的LK算法[15],在圖像金字塔的最高層計(jì)算光流,將得到的運(yùn)動(dòng)估計(jì)結(jié)果作為下一層金字塔的起始點(diǎn),重復(fù)該過(guò)程直至到達(dá)金字塔的最底層。這樣可以有效解決小運(yùn)動(dòng)的限制問(wèn)題。
為了提高光流計(jì)算速度,可以僅對(duì)少量簡(jiǎn)單特征點(diǎn)進(jìn)行光流計(jì)算跟蹤。根據(jù)亮度恒定和時(shí)間連續(xù)假設(shè)可以得到對(duì)于相鄰兩幀圖像:
I(x,y,t)=I(x+dx,y+dy,t+dt)
(1)
對(duì)I(x+dx,y+dy,t+dt)進(jìn)行一階泰勒級(jí)數(shù)展開可以得到:
(2)
根據(jù)空間一致的假設(shè),在像素局部小鄰域內(nèi)可建立如下n個(gè)方程:
(3)
求解可以求得像素點(diǎn)處的概略光流矢量。
1.1.2 關(guān)鍵幀更新
假設(shè)移動(dòng)機(jī)器人在某一時(shí)刻的位姿為P=(x,y,zi,φ,θ,ψ),當(dāng)前關(guān)鍵幀與新幀的姿態(tài)分別為Pi和Pj,則兩幀之間的相對(duì)距離Di,j[15]為
(4)
式中,函數(shù)dis(·)和angle(·)分別代表轉(zhuǎn)換矩陣的平移與旋轉(zhuǎn)部分。當(dāng)Di j較小時(shí),表明機(jī)器人獲取當(dāng)前關(guān)鍵幀與新幀時(shí)的姿態(tài)Pi和Pj變化程度不足,放棄新幀;當(dāng)Di,j大于某個(gè)閾值時(shí),則將新幀替換為當(dāng)前關(guān)鍵幀。
本文采用RANSAC算法完成機(jī)器人位姿的初始估計(jì)。首先提取當(dāng)前關(guān)鍵幀的FAST特征點(diǎn),然后對(duì)這些特征點(diǎn)進(jìn)行跟蹤,利用跟蹤上的特征點(diǎn)估計(jì)機(jī)器人獲取當(dāng)前幀時(shí)的位姿,并判斷當(dāng)前幀是否為關(guān)鍵幀。為了解決跟蹤過(guò)程中特征點(diǎn)不斷減少的問(wèn)題,每提取一次關(guān)鍵幀,對(duì)跟蹤模板進(jìn)行一次更新。關(guān)鍵幀提取流程如圖1所示。
圖1 關(guān)鍵幀提取流程圖
1.2.1 ICP精確配準(zhǔn)
作為一種基于迭代的配準(zhǔn)算法,ICP算法[16]能夠配準(zhǔn)自由曲面和曲線以及各種點(diǎn)集。它每次迭代都在目標(biāo)數(shù)據(jù)集中找到最近的點(diǎn),將其作為控制點(diǎn)估計(jì)出變換矩陣參數(shù),直到滿足收斂準(zhǔn)則,使得兩次迭代的目標(biāo)函數(shù)值變化小于某個(gè)閾值,或者達(dá)到預(yù)設(shè)的迭代次數(shù)迭代計(jì)算才會(huì)停止。本文的目標(biāo)函數(shù)采用點(diǎn)到點(diǎn)距離平方和:
(5)
其中,M為源點(diǎn)集,N為目標(biāo)點(diǎn)集,R和T分別為旋轉(zhuǎn)矩陣和平移向量。
對(duì)于數(shù)據(jù)集M中的每個(gè)數(shù)據(jù)點(diǎn),可以在目標(biāo)數(shù)據(jù)集中找到相應(yīng)的最近點(diǎn),組成對(duì)應(yīng)點(diǎn)集N。
初始時(shí)令M0=M,R0=I,T0=0,k=0,則ICP算法迭代步驟為:
Step 1 計(jì)算最近點(diǎn):對(duì)Mk中的每個(gè)數(shù)據(jù)點(diǎn),估計(jì)在目標(biāo)數(shù)據(jù)集中的最近點(diǎn),組成數(shù)據(jù)集Nk;
Step 3 更新源集:用Step2得到的變換矩陣Hk根據(jù)公式(6):
Pk+1=Hk(P0)=Rk(P0)+Tk
(6)
對(duì)數(shù)據(jù)Pk進(jìn)行更新。
Step 4重復(fù)迭代:當(dāng)兩次估計(jì)得到的誤差變化小于閾值τ時(shí),迭代停止。
對(duì)于2個(gè)數(shù)據(jù)集A和B的配準(zhǔn),如果A是B的嚴(yán)格子集,則ICP算法能夠使其在全局上達(dá)到某種度量準(zhǔn)則下的最佳配準(zhǔn)。然而,從不同視角下獲得的物體表面深度數(shù)據(jù),通常僅存在部分的重疊,很容易導(dǎo)致ICP算法陷入局部的最小值。因此,對(duì)2個(gè)數(shù)據(jù)集的初始相對(duì)位置要求較高,否則初始誤差過(guò)大將導(dǎo)致匹配錯(cuò)誤。另外,如果考慮全部點(diǎn)集,不僅會(huì)影響尋找最近點(diǎn)的精度,還會(huì)影響ICP算法的運(yùn)算速率,從而嚴(yán)重妨礙算法的實(shí)時(shí)性。為了解決上述問(wèn)題,本文使用ORB特征對(duì)相鄰關(guān)鍵幀進(jìn)行特征匹配,然后將彩色圖像中的特征匹配對(duì)對(duì)應(yīng)到深度圖中,將匹配上的特征點(diǎn)對(duì)轉(zhuǎn)化為點(diǎn)云作為ICP算法的初始點(diǎn)集,從而在提高精度的同時(shí)滿足實(shí)時(shí)性的要求。
1.2.2 閉環(huán)檢測(cè)
對(duì)點(diǎn)云進(jìn)行逐步配準(zhǔn)時(shí),匹配誤差將逐漸累積,在最終閉合場(chǎng)景的匹配處會(huì)產(chǎn)生位姿漂移現(xiàn)象,形成閉環(huán)問(wèn)題。閉環(huán)檢測(cè)是指根據(jù)傳感器信息判斷機(jī)器人當(dāng)前是否處在之前已經(jīng)訪問(wèn)過(guò)的某個(gè)區(qū)域。準(zhǔn)確的閉環(huán)信息可以有效修正點(diǎn)云配準(zhǔn)誤差,得到信息一致的地圖。本文的閉環(huán)檢測(cè)方法如下:
根據(jù)兩幀圖像特征匹配對(duì)在總特征點(diǎn)中所占的比率,初步判斷是否為相同場(chǎng)景,然后利用兩幀的相對(duì)位姿變化程度進(jìn)一步確定是否形成閉環(huán)。
假設(shè)ni和nj分別為圖像Ii和Ij提取的特征點(diǎn)個(gè)數(shù),n為匹配上的特征對(duì)個(gè)數(shù),則兩幀圖像的距離可以用下式衡量[17]:
(7)
兩幀圖像的相似度定義為:
(8)
其中,Dmin和Dmax為自己設(shè)定的距離可以取的最小與最大閾值。
當(dāng)Sij大于某個(gè)閾值時(shí),初步認(rèn)為兩幀是同一個(gè)場(chǎng)景,然后利用ICP算法判斷幀間位姿變換程度,進(jìn)而確定是否回到先前位置。
SLAM過(guò)程中檢測(cè)到閉合回路后,可以利用閉環(huán)信息消除視覺里程計(jì)過(guò)程中的累積誤差,在SLAM中這被稱為圖優(yōu)化問(wèn)題,即根據(jù)已建立的約束關(guān)系求解最優(yōu)的位姿序列。
(9)
即:
(10)
在圖結(jié)構(gòu)建立之后,本文采用開源框架g2o對(duì)最小二乘問(wèn)題進(jìn)行優(yōu)化求解。
復(fù)雜室內(nèi)環(huán)境的視覺SLAM屬于計(jì)算密集型任務(wù),運(yùn)算量較大,對(duì)硬件的要求也比較高。對(duì)于機(jī)器人通常采用的嵌入式處理器,承擔(dān)SLAM任務(wù)時(shí)的運(yùn)算負(fù)擔(dān)較重、耗時(shí)過(guò)長(zhǎng),無(wú)法滿足移動(dòng)機(jī)器人的實(shí)際需求。本文結(jié)合云計(jì)算的優(yōu)勢(shì),在機(jī)載嵌入式系統(tǒng)的基礎(chǔ)上構(gòu)建了一種新的快速SLAM系統(tǒng),具體結(jié)構(gòu)如圖2所示。
圖2 云計(jì)算SLAM的系統(tǒng)架構(gòu)
本文云端平臺(tái)選用AWS公共云計(jì)算平臺(tái),以虛擬機(jī)的形式申請(qǐng)了計(jì)算資源,其性能相當(dāng)于2 GB內(nèi)存、2.5 GHz主頻的雙核計(jì)算機(jī)處理器,承擔(dān)機(jī)器人SLAM的閉環(huán)檢測(cè)和全局優(yōu)化任務(wù)。移動(dòng)機(jī)器人的機(jī)載嵌入式系統(tǒng)采用了i.MX6四核ARM處理器,其主頻為1.2 GHz,內(nèi)存為1 GB DDR3,構(gòu)成了低成本的數(shù)據(jù)處理平臺(tái)。云存儲(chǔ)采用了MySQL數(shù)據(jù)庫(kù),能夠?qū)Χ鄠€(gè)請(qǐng)求進(jìn)行多線程共同處理。在云平臺(tái)提供的計(jì)算服務(wù)包括VSLAM過(guò)程中的閉環(huán)檢測(cè)和全局優(yōu)化。隨著關(guān)鍵幀數(shù)量的增多,閉環(huán)檢測(cè)過(guò)程會(huì)極大地消耗計(jì)算資源,考慮到閉環(huán)檢測(cè)的處理過(guò)程是相互獨(dú)立的,適用于云端分布式處理的架構(gòu),因此機(jī)器人可以卸載復(fù)雜的運(yùn)算到云端,以提高構(gòu)圖的效率。
本文的SLAM系統(tǒng)主要包含本地和云端兩部分。在本地端,采用低成本的RGB-D傳感器Kinect獲取實(shí)際場(chǎng)景中的彩色圖和深度圖,在嵌入式ARM處理器上完成關(guān)鍵幀的提取過(guò)程,減少本地與云端的傳輸數(shù)據(jù)量以縮短執(zhí)行時(shí)間。在云端,使用云存儲(chǔ)和云計(jì)算處理傳感器數(shù)據(jù)并存儲(chǔ)視覺及圖像信息。在數(shù)據(jù)傳輸層采用C/S架構(gòu),機(jī)器人與云平臺(tái)分別作為客戶端與服務(wù)端,以TCP/IP協(xié)議的套接字(socket)進(jìn)行數(shù)據(jù)傳輸,數(shù)據(jù)通信流程圖圖3所示。
圖3 數(shù)據(jù)傳輸流程圖
云平臺(tái)作為服務(wù)端,提供構(gòu)建地圖的服務(wù)。本地端獲取的關(guān)鍵幀信息全部存儲(chǔ)在云端的MySQL數(shù)據(jù)庫(kù)中,云端利用分布式計(jì)算方法完成閉環(huán)檢測(cè)過(guò)程,然后利用優(yōu)化后的機(jī)器人位姿信息完成地圖的構(gòu)建,并對(duì)本地機(jī)器人的位姿進(jìn)行更新與修正。
TCP/IP協(xié)議是網(wǎng)絡(luò)通信的經(jīng)典協(xié)議之一,提供點(diǎn)對(duì)點(diǎn)的連接機(jī)制,對(duì)數(shù)據(jù)傳輸涉及的封裝、尋址、傳輸?shù)冗^(guò)程均加以標(biāo)準(zhǔn)化,在保證數(shù)據(jù)穩(wěn)定傳輸?shù)耐瑫r(shí)提高傳輸效率。
TCP協(xié)議的優(yōu)勢(shì)在于流量控制,能夠保證傳輸數(shù)據(jù)的完整性,這對(duì)于本地傳輸給云端的關(guān)鍵幀數(shù)據(jù)至關(guān)重要,因?yàn)殛P(guān)鍵幀在傳輸過(guò)程中丟失將影響地圖信息的完整性,甚至導(dǎo)致地圖構(gòu)建失敗。本文需要將Kienct獲取的場(chǎng)景信息發(fā)送到云端服務(wù)器,同時(shí)將更新后的機(jī)器人位姿返回給本地端,更新與修正機(jī)器人位姿,對(duì)數(shù)據(jù)的穩(wěn)定性要求較高。考慮到SLAM的效率和數(shù)據(jù)傳輸速度,本文選擇以TCP/IP協(xié)議進(jìn)行數(shù)據(jù)傳輸。
為了驗(yàn)證所提方法的有效性,本文分別在標(biāo)準(zhǔn)數(shù)據(jù)集和實(shí)際場(chǎng)景下進(jìn)行了實(shí)驗(yàn)。
3.1.1 TUM數(shù)據(jù)集
仿真所選用的標(biāo)準(zhǔn)數(shù)據(jù)集為慕尼黑工業(yè)大學(xué)的辦公室場(chǎng)景[19]。針對(duì)本地運(yùn)算和本文系統(tǒng)(云端-嵌入式系統(tǒng))運(yùn)算這兩種方式,執(zhí)行時(shí)間對(duì)比結(jié)果如表1所示。可以看出,引入云計(jì)算之后,雖然數(shù)據(jù)傳輸需要消耗一定的時(shí)間,但是計(jì)算效率卻提高了4~5倍。
表1 執(zhí)行時(shí)間對(duì)比(本地優(yōu)化)
如果本地運(yùn)算要達(dá)到本文系統(tǒng)的構(gòu)圖速度,則需要舍棄閉環(huán)檢測(cè)和全局優(yōu)化兩個(gè)過(guò)程,執(zhí)行時(shí)間對(duì)比如表2所示。在這種情況下,由于本地運(yùn)算不需要傳輸數(shù)據(jù)到云端,耗時(shí)少于本文云計(jì)算SLAM系統(tǒng),但是構(gòu)圖精度卻大幅下降。
表2 執(zhí)行時(shí)間對(duì)比(本地未優(yōu)化)
圖4和圖5分別為本地SLAM(未優(yōu)化)和本文系統(tǒng)在地圖構(gòu)建過(guò)程中移動(dòng)機(jī)器人的姿態(tài)和位置誤差對(duì)比,其中姿態(tài)包括俯仰角(Pitch)、偏航角(Yaw)和翻滾角(Roll)。實(shí)驗(yàn)所使用的關(guān)鍵幀是手持Kinect在大約10 m的移動(dòng)距離內(nèi)采集的??梢钥闯?經(jīng)過(guò)云端優(yōu)化,機(jī)器人姿態(tài)估計(jì)具有更小的誤差,偏航角的優(yōu)化效果尤為明顯,本文系統(tǒng)Yaw誤差保持在0.004 rad以內(nèi)。對(duì)于軌跡誤差,隨著時(shí)間推移,本地SLAM系統(tǒng)會(huì)引入大于0.12 m的定位誤差,而本文系統(tǒng)定位誤差大約為0.04 m,更貼合機(jī)器人移動(dòng)的真實(shí)路徑,具有較好的定位精度。
圖4 姿態(tài)誤差對(duì)比
圖5 位置誤差對(duì)比
圖6為機(jī)器人運(yùn)動(dòng)的真實(shí)路徑(groundtruth)以及本文系統(tǒng)和本地(未優(yōu)化)所估計(jì)出的機(jī)器人路徑??梢钥闯霰疚南到y(tǒng)所估計(jì)出的路徑與真實(shí)路徑(groundtruth)更為相近。圖7為本文系統(tǒng)構(gòu)建的數(shù)據(jù)集實(shí)驗(yàn)室場(chǎng)景點(diǎn)云地圖。該地圖是由1 000幀數(shù)據(jù)集中提取出的144幀關(guān)鍵幀拼接而成,可以看出已較完整地構(gòu)建出了實(shí)驗(yàn)室場(chǎng)景。根據(jù)上述誤差對(duì)比結(jié)果,也可看出本文系統(tǒng)構(gòu)建的地圖較為精確。
圖6 構(gòu)建的路徑對(duì)比
圖7 地圖構(gòu)建
3.1.2 NYUV1數(shù)據(jù)集
NYUV1數(shù)據(jù)集[17]提供了64個(gè)不同的室內(nèi)場(chǎng)景,本文采用其中的一個(gè)動(dòng)態(tài)場(chǎng)景,測(cè)試云計(jì)算SLAM系統(tǒng)的性能。首先對(duì)比機(jī)載處理器(未優(yōu)化)和本文系統(tǒng)的構(gòu)圖效果,如圖8所示。在這種情況下,兩種方法的構(gòu)圖效率大致相等,可以看出機(jī)載處理器自身構(gòu)建的地圖存在明顯的偏差,本文系統(tǒng)經(jīng)閉環(huán)檢測(cè)和全局優(yōu)化之后構(gòu)建出全局一致的地圖。
圖8 構(gòu)圖效果對(duì)比
為繼續(xù)驗(yàn)證本文系統(tǒng)的有效性,對(duì)機(jī)器人機(jī)載處理器SLAM過(guò)程同樣加入了閉環(huán)檢測(cè)和全局優(yōu)化部分,結(jié)果對(duì)比如圖9所示。可以看出,盡管在云端構(gòu)圖需要數(shù)據(jù)傳輸,而通信需要消耗一定的時(shí)間,但由于云端強(qiáng)大的計(jì)算能力,其構(gòu)圖與優(yōu)化過(guò)程仍然具有較高的效率。
圖9 本地與云端構(gòu)圖速度對(duì)比
為進(jìn)一步驗(yàn)證本文系統(tǒng)的效果,選取實(shí)驗(yàn)室環(huán)境進(jìn)行測(cè)試。機(jī)器人的運(yùn)動(dòng)平臺(tái)采用TurtleBot,傳感器為Kinect RGB-D傳感器,機(jī)器人實(shí)物及實(shí)際環(huán)境如圖10所示。本地與云端的構(gòu)圖過(guò)程均在機(jī)器人操作系統(tǒng)(ROS)框架下實(shí)現(xiàn)。
圖10 機(jī)器人實(shí)物及實(shí)際測(cè)試場(chǎng)景
機(jī)器人的移動(dòng)速度為0.3 m/s,實(shí)際的構(gòu)圖效果如圖11所示。其為實(shí)驗(yàn)室真實(shí)場(chǎng)景點(diǎn)云地圖的俯視圖,可以看出地圖符合全局一致的要求,并未出現(xiàn)明顯的由于累積誤差而導(dǎo)致的漂移現(xiàn)象,驗(yàn)證了本文系統(tǒng)的可行性和有效性。
圖11 實(shí)際環(huán)境構(gòu)圖效果
綜上所述,借助云端計(jì)算資源,本文為低成本機(jī)器人賦予了高性能的運(yùn)算能力。本文采用ARM嵌入式系統(tǒng),其經(jīng)濟(jì)成本遠(yuǎn)低于搭載工控機(jī)或便攜式計(jì)算機(jī)的常規(guī)方案;為執(zhí)行SLAM運(yùn)算所申請(qǐng)的公共云計(jì)算資源,其使用成本可以忽略不計(jì)(本文所申請(qǐng)的云計(jì)算資源使用成本為0.18元/h,而SLAM運(yùn)算過(guò)程僅持續(xù)數(shù)分鐘;即使以10 min計(jì)算,成本僅有0.03元/次)。因此,與配備高性能硬件的常規(guī)做法相比,本文可以有效地避免機(jī)器人硬件資源的浪費(fèi),形成更高的性價(jià)比。
基于RGB-D傳感器的機(jī)器人SLAM已成為國(guó)內(nèi)外的研究熱點(diǎn),然而由于數(shù)據(jù)計(jì)算量較大,依靠機(jī)器人的機(jī)載處理器很難執(zhí)行SLAM運(yùn)算。本文引入云計(jì)算構(gòu)建一種新的移動(dòng)機(jī)器人SLAM運(yùn)算架構(gòu),機(jī)器人本身不再需要進(jìn)行大量運(yùn)算,極大減輕機(jī)載處理器的負(fù)擔(dān),縮短地圖構(gòu)建時(shí)間,對(duì)機(jī)器人硬件資源的需求也大為降低。實(shí)驗(yàn)結(jié)果也表明,本文所提方法及算法的有效性。與通過(guò)機(jī)器人配備高性能硬件以提高性能的做法相比,本文所構(gòu)建的實(shí)驗(yàn)系統(tǒng)將低成本硬件與云端運(yùn)算相結(jié)合,不僅賦予機(jī)器人更為強(qiáng)大的運(yùn)算能力,而且可以大幅降低其對(duì)硬件資源的依賴,為未來(lái)高性價(jià)比機(jī)器人的發(fā)展提供了一種新的思路。