馬健,俞揚
(南京大學(xué)計算機軟件新技術(shù)國家重點實驗室,江蘇南京 210023)
由于自主移動機器人在日常生活服務(wù)[1]、危險環(huán)境作業(yè)[2]、太空探索[3]等領(lǐng)域有廣泛的應(yīng)用,對機器人的自主行走和環(huán)境感知的研究吸引了越來越多的研究者關(guān)注。路標的發(fā)現(xiàn)及其位置的精確估計自主移動機器人在環(huán)境中的定位起到關(guān)鍵作用。當路標的位置信息已知時,通過對視線范圍內(nèi)路標的鑒別和距離的估計,機器人即可計算出自己的所在位置。因此如何有效地在未知環(huán)境中探索和估計路標的位置是自主移動機器人研究的重要問題。
在完全未知環(huán)境中自主探索和估計路標的方法主要基于同時定位與地圖構(gòu)建(simultaneous localization and mapping,SLAM)技術(shù)。SLAM最先由Self和Cheeseman[4]提出,它迭代的通過路標信息修正自身位置,同時通過自身位置的估計來修正路標信息,使得在機器人的移動過程中能夠逐漸提高其自身位置和路標的估計精度。由于其重要的理論與應(yīng)用價值,同時定位與地圖構(gòu)建(SLAM)被認為是自主移動機器人實現(xiàn)真正自主運動的關(guān)鍵,是智能移動機器人進入人類日常生活的必要基礎(chǔ),也成為近年來機器人和人工智能領(lǐng)域中一個非?;钴S的研究熱點[5-7]。
在以往的研究中,移動機器人在未知環(huán)境中游走,并在移動過程中使用SLAM技術(shù)對路標進行估計[8]。常用的游走方式包括隨機游走或啟發(fā)式的探索策略,目標是最大限度地、盡快地引導(dǎo)機器人向未探測區(qū)域運動,盡量避免在已探測區(qū)域內(nèi)運動,從而盡快減少未探測的區(qū)域。然而,基于SLAM的路標估計方法需要機器人重復(fù)探測已探測過的環(huán)境來提高對自身位置和路標位置的估計精度[9],過快移向未探測區(qū)域?qū)⑹沟靡烟綔y路標的精度過低,導(dǎo)致較大的定位誤差。
本文提出一種以全局定位誤差最小化為指導(dǎo)的探索策略,進一步提高路標位置的估計精度。本文中還將全局定位信息引入SLAM的位置估計中,有效地校正當移動變化過大時(例如速度發(fā)生變化或轉(zhuǎn)彎時)SLAM估計的誤差。在模擬環(huán)境中的初步實驗驗證了本文方法的有效性。
同時定位與地圖構(gòu)建的一個重要支撐技術(shù)是概率統(tǒng)計學(xué)。以貝葉斯濾波器為基本原理,研究人員先后提出了擴展卡爾曼濾波的SLAM算法(EKFSLAM)[7]期望值最大化的SLAM算法(EMEKF)[8]粒子濾波和擴展卡爾曼濾波的SLAM算法(FastSLAM)[9]等。EKF-SLAM 算法是用高斯分布表示后驗概率的貝葉斯濾波[10]。該算法作了3個近似。首先,運動模型近似為線性的,在環(huán)境為靜態(tài)的條件下,地圖特征狀態(tài)不變,僅有機器人狀態(tài)發(fā)生變化。根據(jù)擴展卡爾曼濾波狀態(tài)方程線性的要求,機器人的非線性運動模型近似為一個帶有高斯噪聲的線性函數(shù);其次,觀測模型近似為線性的。最后,初始的不確定量近似為高斯分布。EKF-SLAM方法已被廣泛地研究和應(yīng)用。Dissanayake等[11]通過在路邊架設(shè)雷達點路標并人工駕駛室外移動汽車,驗證了卡爾曼濾波在同時定位與地圖構(gòu)建方面的有效性。Castellanos等[12]利用擴展卡爾曼濾波研究室內(nèi)環(huán)境的同時定位與地圖構(gòu)建。悉尼大學(xué)的Williams等[13]將它應(yīng)用于水下環(huán)境。
EM-SLAM算法是一種由最大似然估計法發(fā)展而來的統(tǒng)計算法,由Thrun等[14]提出。應(yīng)用EM算法進行地圖構(gòu)建的主要觀點是當機器人路徑已知時,確定地圖是相對簡單的;同樣,對于一張給定的地圖,確定機器人位姿的概率估計也相對簡單。求解時交替執(zhí)行2個步驟,分別稱為期望步驟(expectation step,E步驟)和最大值化步驟(maximization step,M步驟).在E步驟中,根據(jù)當前最大可能性地圖估計各個時間點機器人位置的概率估計,在M步驟中,根據(jù)在E步驟所計算得到的位置估計最大可能性地圖。通過不斷重復(fù),機器人位置估計和地圖估計的精確性不斷提高。
針對EKF-SLAM方法在單峰高斯假設(shè)下難以解決數(shù)據(jù)對應(yīng)問題、無法構(gòu)建環(huán)行環(huán)境地圖的缺陷,以及EM-SLAM方法需要多次遍歷數(shù)據(jù)集、難以遞增地構(gòu)建環(huán)境地圖的缺陷,Hahnel等[15]提出了基于粒子濾波和卡爾曼濾波的混合SLAM方法,也稱為FastSLAM。FastSLAM算法的基本思想是通過樣本集合表示概率密度。每一個樣本是關(guān)于狀態(tài)真值的一個離散猜測,一組樣本描述出概率分布的代表性特性。這種基于樣本的表示方法使得粒子濾波可以表示各種概率密度,適用于在線的、非線性、非高斯分布的實時估計。FastSLAM面向路標特征地圖,將機器人位姿估計和地圖特征估計相分離,用粒子樣本描述機器人路徑的概率分布,每一個粒子對應(yīng)于一個可能的機器人路徑,每個粒子中維護著一張地圖,以該粒子所對應(yīng)的機器人路徑為條件,利用擴展卡爾曼濾波估計地圖中各個特征的高斯分布。通過將粒子濾波和擴展卡爾曼濾波的有機結(jié)合,F(xiàn)astSLAM極大地減少了粒子需求數(shù)[10]。
室內(nèi)未知環(huán)境的路徑規(guī)劃算法可分為3類:1)隨機遍歷策略,如迂回往復(fù)式、內(nèi)外螺旋式[18];2)沿邊學(xué)習(xí)加局部路徑規(guī)劃方法,主要應(yīng)用算法為細胞分解法,應(yīng)用的局部路徑規(guī)劃方法有人工勢場法、完全應(yīng)激式算法、模糊邏輯算法[17];3)漫步式探測路徑規(guī)劃[19],機器人根據(jù)自身傳感器探測周圍環(huán)境信息,并在可視區(qū)域根據(jù)一定的算法生成局部運動的規(guī)劃目標,將機器人的路徑規(guī)劃歸結(jié)為逐步尋找下一步最佳視點的遞歸。采用此種策略的完全遍歷規(guī)劃方法有強化學(xué)習(xí)方法、基于隨機樹結(jié)構(gòu)的方法、生物激勵的神經(jīng)網(wǎng)絡(luò)方法、探測路徑規(guī)劃[13]。
隨機遍歷策略有迂回往復(fù)式、內(nèi)外螺旋式、隨機轉(zhuǎn)向式、時間轉(zhuǎn)向式、模板模型法、隨機局部遍歷的方法。這些方法的共同點是:1)不采用現(xiàn)在通用的效益函數(shù);2)規(guī)劃算法簡單,方便低成本軟硬件設(shè)計實現(xiàn)??偟膩碚f,在不采用效益評價函數(shù),如工作時間、能量損耗、重復(fù)覆蓋率等的前提下,可以達到長時間上的大范圍覆蓋未知環(huán)境。簡單的隨機遍歷策略廣泛應(yīng)用于清潔機器人,如科沃斯地寶系列機器人。迂回往復(fù)法也經(jīng)常作為其他算法的底層策略,或算法判斷后所采取的方法[16]。
沿邊學(xué)習(xí)加局部路徑規(guī)劃方法中機器人在沿邊學(xué)習(xí)的過程中可以獲取室內(nèi)未知環(huán)境的全局信息進行建模,而后采用全局視角和局部路徑規(guī)劃相結(jié)合的方法,遍歷整個室內(nèi)的未知環(huán)境。其思想是機器人首先沿著未知室內(nèi)環(huán)境邊沿行走一周,然后選擇某個位置向四周觀察,確定合適的探測區(qū)域前進,并以此循環(huán)下去,典型的算法有MTCP[17]算法。進行局部路徑規(guī)劃時,機器人可以建立虛擬子目標,主要應(yīng)用算法為細胞分解法,該方法在機器人進行沿邊學(xué)習(xí)之后,算法將環(huán)境分解為多個細胞,每個細胞設(shè)置一個基點,機器人走遍了基點則完成了遍歷。人工勢場法、完全應(yīng)激式算法、模糊邏輯算法以及啟發(fā)式函數(shù)也可以作為路徑評價的判斷標準。
雖然沿邊學(xué)習(xí)方法可以獲得部分環(huán)境信息,但是由于一方面此方法需要對環(huán)境進行建模,另一方面?zhèn)鞲衅餍畔⒉煌耆?,因此該方法有局限性。而漫步式路徑?guī)劃算法則可以避免這些缺點,其方法有強化學(xué)習(xí)法、基于隨機樹結(jié)構(gòu)的方法、基于生物激勵的神經(jīng)網(wǎng)絡(luò)方法和探測路徑規(guī)劃方法。
對于探測路徑規(guī)劃方法,其規(guī)劃序列為首先選擇一組下一步觀測視點的候選位置,然后通過效用函數(shù)評估這些候選位置,選擇使效用函數(shù)最大化的位置作為下一個觀測視點。探測路徑規(guī)劃主要包括2個方面:候選視點的生成和評價。在機器人進行探測時,首先應(yīng)當考慮的是信息收益和路徑成本。
候選點的生成算法一般為前沿(Frontier)理論、隨機生成候選點理論以及這2種方法的混合算法。前沿理論基本思想是將下一步探測視點放置在已探測環(huán)境與未探測環(huán)境的交界線上,從而期望獲得最大化信息收益。隨機生成的方法是在傳感器掃描區(qū)域的圓或者圓環(huán)上以隨機的方式生成一定數(shù)量的候選視點。對候選視點的評價中,信息收益是一項重要指標,一般有2種方法進行衡量:一種是直接衡量傳感器探測空間的未知區(qū)域的幾何信息法;另一種是采用熵的概率信息法[16]。此外,路徑成本也是效益評價函數(shù)里的常見參數(shù),如何衡量定位不確定性,成為了目前研究的熱點。
本文提出的室內(nèi)未知環(huán)境機器人路徑規(guī)劃方法屬于漫步式探測路徑規(guī)劃,其目的是最小化全局定位誤差。機器人從室內(nèi)某一初始位置出發(fā)后先隨機游走直至發(fā)現(xiàn)一定數(shù)量的路標,而后選擇下一步的探測路徑。本文的思想是首先選擇一組下一步觀測視點的候選位置,然后通過效益評價函數(shù)評估這些候選位置,選擇使效益評價函數(shù)最大化的位置作為下一個觀測位置。由于在整個可達空間中搜索下一個最佳探測規(guī)劃位置意味著巨大的計算量,為減少計算量,一般對候選探測位置作一定的約束以提高計算效率。因此,探測規(guī)劃研究的討論主要集中在2個方面,一個是候選位置的生成,另一個是候選位置的評估。
本文方法將以當前自主移動機器人所在位置為圓心、r為半徑的圓上隨機生成的N個可達空間內(nèi)的位置作為候選視點,而后分別預(yù)估自主移動機器人在這N個候選位置對應(yīng)的N條路徑上可能觀測到的新路標的個數(shù)及位置、新路標的個數(shù)與該條路徑預(yù)估新探測的環(huán)境面積的比例、已經(jīng)探測的路標個數(shù)、已經(jīng)探測的環(huán)境面積的比例。新探測的路標的位置則用隨機的方法進行估計。候選位置的評價采用效用函數(shù)對候選視點進行量化評估,該方法考慮了全局定位誤差最小化,并對較大轉(zhuǎn)彎角度進行懲罰,以使機器人能夠在降低全局定位誤差的同時較為平滑地游走。該效用函數(shù)為
式(1)的目標函數(shù)表示全局定位誤差,其中i表示需要估計位置的路標,m表示環(huán)境中需要估計位置的路標的個數(shù),α表示機器人一步轉(zhuǎn)彎的角度,est_again_location(i)表示結(jié)合全局位置估計和卡爾曼濾波的SLAM算法得到的第i個路標的估計坐標,est_location(i)表示上次得到的第i個路標的估計坐標,這2個函數(shù)的具體估計方法見3.2小節(jié)。punish(α)表示轉(zhuǎn)彎角度的懲罰項,本文簡單地用機器人轉(zhuǎn)彎時的角度的弧度制大小表示。
機器人一步優(yōu)化路徑規(guī)劃的算法流程如下:
1)以預(yù)測的機器人所在位置為圓心、R為半徑的圓上隨機找N個在面板范圍內(nèi)的點;
2)分別預(yù)估機器人在這N條路徑上會觀測到的新路標的個數(shù)及位置;
3)通過模擬機器人在這N條路徑上游走,分別計算每條路徑對應(yīng)的效用函數(shù)值;
4)選取效用函數(shù)值最小路徑為下一步探測路徑。
在傳統(tǒng)的SLAM問題的相關(guān)的算法中,SLAM是一個濾波問題,是根據(jù)系統(tǒng)的初始狀態(tài)和從0到t時刻的觀測信息與控制信息估計系統(tǒng)的當前狀態(tài)??柭鼮V波算法就屬于這種思想,卡爾曼濾波器已經(jīng)被廣泛認為是實現(xiàn)SLAM的一種基本方法。然而,在實際情況中,當移動機器人移動變化過大時(例如速度發(fā)生變化或轉(zhuǎn)彎時),使用傳統(tǒng)的SLAM相關(guān)算法,機器人的位置和真實的位置的誤差會比較大,機器人轉(zhuǎn)彎越急誤差可能越大。基于此本文提出結(jié)合全局位置估計和卡爾曼濾波的SLAM算法,由于全局定位信息更少地依賴歷史運動軌跡,與卡爾曼濾波等傳統(tǒng)結(jié)合使用不僅可以減小機器人游走時的估計誤差,而且可以有效降低機器人在轉(zhuǎn)彎時估計的誤差。
不失一般性,本文假設(shè)機器人所在的真實物理位置為 (xi,yi),i∈ {1,2,...,n},選取的已觀測到的路標的真實位置為(xti,yti),路標的估計位置為(xsi,ysi),假設(shè)需要估計的機器人的位置為(xs,ys),優(yōu)化的目標函數(shù)為
記機器人與第i個路標的真實距離為
這樣,本文有n個這樣的式子,分別將第i個式子減去第n個式子得到n-1個如下的等式:
這是一個最小二乘問題,記A為n-1個式(3)的右邊部分,即n-1個[2(xsi-xsn)2(ysi-ysn)],則A為(n-1)×2的矩陣。記x為所求的[xsys]T,B為n-1個式(4)的左邊部分,即B為(n-1)×1的矩陣。需要估計的機器人的位置的最小二乘的最后結(jié)果 x'= [xs',ys']T=(ATA)-1ATB 。在機器人每一步行走過程中,本文用上述方法得出的估計位置和卡爾曼濾波得出的估計位置的平均值作為機器人最終的估計位置。
本文對2種規(guī)劃方法做了對比仿真,實驗隨機選擇候選點運動和一步最優(yōu)規(guī)劃算法。機器人運動模型為本實驗室全方位移動機器人模型,假設(shè)其可以感知半徑10 m范圍內(nèi)的路標.環(huán)境大小為80 m×80 m的正方形,其中隨機分布了30個路標,游走前機器人位于坐標(30 m,20 m)處,與x軸正方向成45o夾角,2種游走策略下自主移動機器人運行步數(shù)都是1 000步。對于本文的方法,在環(huán)境中均勻選取100個點,以估計全局誤差。
圖1給出了不同探索策略的機器人從相同位置和角度出發(fā)在相等的運行步數(shù)下生成的運動路徑。
圖1 運動軌跡與探索的路標結(jié)果對比Fig.1 The comparison of trajectory and road signs
其中,略大的點表示環(huán)境中的路標,虛線表示自主移動機器人真實的游走路線,實線表示自主移動機器人分別使用隨機游走策略和本文的方法的游走路線,略小的點表示估計的路標的位置,圓圈表示算法預(yù)計的路標的估計誤差。實驗結(jié)果表明:1)使用本文的游走策略探測到的路標更多,本文的游走策略未探測的路標有6個,而使用隨機游走后未探測到的路標有13個;2)在觀測到的路標上,使用隨機游走策略的最大誤差更大;3)使用本文策略后自主移動機器人游走的路線更平滑,在機器人位置的估計問題上,本文采用新算法后位置估計的誤差有較為顯著的減小。
3.2.1 全局路標定位誤差比較
圖2給出了自主移動機器人2種游走策略下的全局位置估計誤差的比較結(jié)果。其中橫坐標表示的是機器人游走的步數(shù),縱坐標表示2種游走策略對應(yīng)的在每一步的全局位置估計誤差。由于機器人游走開始時會隨機游走一段至發(fā)現(xiàn)一定數(shù)量的路標,所以橫坐標不是從0開始,而是從發(fā)現(xiàn)一定數(shù)量的路標的時刻180開始的。機器人隨機選擇候選點的全局誤差的均值和方差分別是1.821 2和1.062 4,而機器人采用基于路標的全局位置估計探索策略后的全局誤差的均值和方差分別是 1.532 0和0.943 2。
圖2 2種游走策略下的全局位置估計誤差比較結(jié)果Fig.2 The global position estimation error under two kinds of migration strategy
3.2.2 自主移動機器人自身定位誤差比較
圖3給出了卡爾曼濾波的SLAM算法和結(jié)合全局位置估計、卡爾曼濾波的SLAM算法在機器人使用本文的游走策略時每一步的機器人定位誤差的比較結(jié)果。其中橫坐標表示的是機器人游走的步數(shù),縱坐標表示每種算法在每一步對機器人自身位置估計誤差的平均值。從圖中可以看出在機器人游走初期,機器人探測到的路標不多,基于卡爾曼濾波的SLAM算法產(chǎn)生的誤差和本文的方法的位置估計誤差差別不大。同時,全局位置估計的誤差變化較大,從圖中可以看出,自主移動機器人在180~500步之間位置估計誤差抖動較大。但隨著機器人游走步數(shù)的增大,機器人探測到的路標增多,本文方法產(chǎn)生的誤差明顯減小。圖中誤差圖有峰值出現(xiàn),出現(xiàn)的原因是由于機器人轉(zhuǎn)彎時的誤差比平時大,從圖中可以看出本文方法在機器人轉(zhuǎn)彎時的誤差比卡爾曼濾波的SLAM算法產(chǎn)生的誤差明顯小。卡爾曼濾波的SLAM算法產(chǎn)生的誤差的均值和方差分別為1.046 7和0.842 7,結(jié)合全局位置估計和卡爾曼濾波的SLAM算法產(chǎn)生的誤差的均值和方差分別為0.791 0 和0.409 1。
圖3 2種SLAM算法的機器人定位誤差比較Fig.3 The robot positioning error under two kinds of SLAM algorithm
3.2.3 2種游走策略下移動機器人耗時的比較
由于移動機器人采用基于路標的全局位置估計探索策略后,每次轉(zhuǎn)彎等動作時需要較多的時間規(guī)劃下一步的游走路徑,所以相對于隨機游走,移動機器人游走的耗時增加。實驗表明移動機器人采用路標的全局位置估計探索策略時耗時為237.588 2 s,而移動機器人隨機游走時耗時為81.959 9 s。
實驗結(jié)果表明,相對于卡爾曼濾波的SLAM算法,采用結(jié)合全局位置估計和卡爾曼濾波的SLAM算法后機器人自身位置估計的精度有明顯提高,但耗時相對增加。改變初始條件,多次實驗,每次的誤差數(shù)據(jù)不盡相同,但得到的結(jié)論相同。
采用基于路標的全局位置估計探索策略后,相對于機器人隨機游走,機器人的全局定位誤差有了較為明顯的減小。結(jié)合全局位置估計和卡爾曼濾波的SLAM算法相對于基于卡爾曼濾波的SLAM算法,可以有效地減小機器人位置的估計誤差。更多的實驗分析以及機器人多步優(yōu)化路徑規(guī)劃問題等,值得進一步研究。
[1]DURRANT-WHYTE H F.An autonomous guided vehicle for cargo handling applications[J].International Journal of Robotics Research,1996,15(5):407-440.
[2]MONTEMERLO M,PINEAU J,ROY N,et al.Experiences with a mobile robotic guide for the elderly[C]//Proceedings of the 18th National Conference on Artificial Intelligence.Edmonton,Canada.2002:587-592.
[3]HUNTSBERGER T,AGHAZARIAN H,CHENG Y,et al.Rover autonomy for long range navigation and science data acquisition on planetary surfaces[C]//Proceedings of IEEE International Conference on Roboticsand Automation.Washington,DC,2002:3161-3168.
[4]SMITH R,SELF M,Cheeseman P.Estimating uncertain spatial relationships in robotics[M].Autonomous Robot Vehicles,1990:167-193.
[5]LI C,HUANG Y,KANG Y,et al.Monocular SLAM using verticalstraightlineswith inverse-depth representation[C]//Proceedings of 7th IEEE World Congress on Intelligent Control and Automation.Chongqing,China,2008:3015-3020.
[6]THRUN S,BURGARD W,F(xiàn)OX D.A probabilistic approach to concurrent mapping and localization for mobile robots[J].Autonomous Robots,1998,5(3/4):253-271.
[7]GRISETTI G,STACHNISS C,BURGARD W.Improved techniques for grid mapping with Rao-Blackwellized particle filters[J].IEEE Transactions on Robotics,2007,23(1):34-46.
[8]張恒,樊曉平.移動機器人同步定位與地圖構(gòu)建過程中的軌跡規(guī)劃研究[J].機器人,2006,28(3):285-290.ZHANG Heng,F(xiàn)AN Xiaoping.Mobile robot trajectory planning in simultaneous localization and mapping problem[J].Robot,2006,28(3):285-290.
[9]NEWMAN P.On the structure and solution of the simultaneous localisation and map building problem[D].Sydney:University of Sydney,1999:1-5.
[10]熊蓉.室內(nèi)未知環(huán)境線段特征地圖構(gòu)建[D].杭州:浙江大學(xué),2009:10-23.XIONG Rong.Line feature map building for unknown indoor environments[D].Hangzhou:Zhejiang University,2009:10-23.
[11]DISSANAYAKE M W M G,NEWMAN P,CLARK S,et al.A solution to the simultaneous localization and map building(SLAM)problem[J].IEEE Transactions on Robotics and Automation,2001,17(3):229-241.
[12]CASTELLANOS J A,MONTIEL J M M,NEIRA J,et al.The SPmap:A probabilistic framework for simultaneous localization and map building[J].IEEE Transactions on Robotics and Automation,1999,15(5):948-952.
[13]WILLIAMS S,DISSANAYAKE G,DURRANT-WHYTE H F.Towards terrain-aided navigation for underwater robotics[J].Advanced Robotics,2001,15(5):533-549.
[14]THRUN S.Probabilistic algorithms in robotics[J].AI Magazine,2000,21(4):93-109.
[15]HAHNEL D,BURGARD W,F(xiàn)OX D,et al.An efficient FastSLAM algorithm for generating maps of large-scale cyclic environments from raw laser range measurements[C]//Proceedings of 2003 IEEE/RSJ International Conference on Intelligent Robots and Systems.Las Vegas,NV,2003:206-211.
[16]李一波,張慶濤.室內(nèi)未知環(huán)境遍歷路徑規(guī)劃算法綜
述[J].計算機科學(xué),2012,39(11A):334-338.
LI Yibo,ZHANG Qingtao.Review of coverage path planning arithmetic in unknown indoor environment[J].Computer Science,2012,39(11A):334-338.
[17]ULRICH I,MONDADA F,NICOUD J D.Autonomous vacuum cleaner[J].Robotics and Autonomous Systems,1997,19(3):233-245.
[18]OH J S,PARK J B,CHOI Y H.Complete coverage navigation of clean robot based on triangular cell map[J].IEEE Transactions on Industrial Electronics,2004,51(3):718-726.
[19]JEBARI I,BAZEILLE S,F(xiàn)ILLIAT D.Informatics in control,automation and robotics[M].Berlin:Springer,2012:224-237.