,由模塊生成的數(shù)據(jù)包括指示可識別為地標(biāo)的(例如,用于重新定位的獨特的地標(biāo))、在環(huán)境內(nèi)行進的獨特路徑區(qū)段的數(shù)據(jù),指示所述環(huán)境的物理布局(例如,占用網(wǎng)格)的數(shù)據(jù),以及指示計算的機器人姿態(tài)(例如,推算的姿態(tài))的數(shù)據(jù)。所述數(shù)據(jù)可以包括從例如,編碼器112a-b,光學(xué)鼠標(biāo)傳感器133和MU 134的測距數(shù)據(jù)。模塊還可以包括預(yù)編程的數(shù)據(jù),例如預(yù)加載的地圖和地標(biāo)模板。
[0051 ]控制系統(tǒng)149允許機器人100使用姿態(tài)模塊198a推算其在環(huán)境中的姿態(tài)。在一個實例中,在姿態(tài)模塊198a執(zhí)行過程中,控制系統(tǒng)149的控制器190實現(xiàn)了航位推算過程來推算機器人100的姿態(tài)。
[0052]簡要參考回到圖1B,控制器190可以使用編碼器112a_b追蹤機器人100所行進的距離。通過結(jié)合光學(xué)鼠標(biāo)傳感器133和/SlMU 134,控制器190可提高與航位推算(deadreckoning)數(shù)據(jù)相關(guān)聯(lián)的偏移或輪子打滑。光學(xué)鼠標(biāo)傳感器133估算在X和y方向上的偏移??刂破?90可利用來自頂U 134的3軸加速度計感測的線性加速度來推算在X和y方向上的偏移以及可利用頂U 134的3軸陀螺儀來推算機器人100在導(dǎo)向或取向Θ的便宜。控制器190可以因此結(jié)合由旋轉(zhuǎn)編碼器112a-b,MU 134,光學(xué)鼠標(biāo)傳感器133所收集的數(shù)據(jù)以在給定時間產(chǎn)生機器人100的姿態(tài)的改進推算。
[0053]在相對短距離上的精確度,航位推算容易隨時間偏移而偏移。偏移誤差可以在航位推算測量上積累。累積偏移可以影響距離計算和航向計算。對控制器190使用姿態(tài)模塊198a推算的每個姿態(tài),控制器190分配不確定的值,置信值(反比于確定性值),或不確定性協(xié)方差矩陣,或代表累積誤差的一些其它值。例如,當(dāng)機器人100行進更遠的直線距離時,控制器190分配增加的不確定性給機器人100的推算(X,Y)的位置,并且隨著機器人100重新定向其本身,控制器190分配增加的不確定性給機器人100的取向Θ。對于姿態(tài)的每個推算,推算包括機器人100的位置和方向,以及帶有推算的不確定性。機器人100通常大約每10毫秒,更新其姿態(tài)的推算以及在其推算上的不確定性。
[0054]制圖模塊198Β允許控制器190產(chǎn)生2D網(wǎng)格的單元-占用網(wǎng)格-來表示環(huán)境的物理布局。產(chǎn)生的占用網(wǎng)格包括指示區(qū)域的物理布局和指示開放區(qū)域和障礙的數(shù)據(jù)。指示區(qū)域的物理布局的數(shù)據(jù)可以理解為物理布局的虛擬地圖。占用網(wǎng)格包括環(huán)境的邊界和其中障礙物的邊界,以及機器人100穿越的內(nèi)部地板空間。機器人100使用姿態(tài)模塊198a推算其姿態(tài),控制器190確定并保存機器人100的其運動過程中網(wǎng)格坐標(biāo)。所述控制器190還講不確定性值與每個姿態(tài)關(guān)聯(lián)。在占用網(wǎng)格中的每個單元可以被分配一個值,指示所述單元是否被理解為非可穿越地板空間和可穿越地板空間?;谠诃h(huán)境中選擇的原點(0,0)單元,網(wǎng)格的每個單元可以被分配(X,Y)坐標(biāo)。所選擇的原點可以是,例如,在機器人100的或充電座或房間中的特定位置。每個單元可以呈現(xiàn)具有四個側(cè)邊的方形區(qū)域。單元的兩側(cè)與其它單元的側(cè)邊重合。所述單元可具有I至100厘米之間的側(cè)邊長。例如,網(wǎng)格可以是單元的網(wǎng)格,每個1cmX 10cm。機器人100存儲由機器人100穿過的每個單元的坐標(biāo)(x,y)。在墻壁跟隨行為中,例如,控制器190可以將機器人100的足跡之下的所有單元標(biāo)記為可穿越單元,并且將對應(yīng)于被跟隨的墻壁的單元標(biāo)記為非可穿越。如后面將要描述的,控制器190可以識別特定序列,組合,群,等,它們表示在環(huán)境中(例如,墻壁,障礙物等)的結(jié)構(gòu)元件的特征和地標(biāo)。在一個實施中,確定在網(wǎng)格中的單元的值之前,控制器190可以預(yù)先設(shè)置所有單元格的值為未知。然后,隨著機器人100在墻壁跟隨行為期間驅(qū)動,所有單元沿其路徑的值被設(shè)置為可穿越,所述單元的地點由到原點的距離來確定。
[0055]在一項實施例中,在行走邊界之后,作為制圖模塊198b的一部分,控制器190可以執(zhí)行大量注入(flood fill),以將由可穿越單元構(gòu)成的邊界內(nèi)的所有單元的值設(shè)置為可被穿越的可穿越單元。制圖模塊198B可以在周期性基礎(chǔ)上更新地圖,例如行駛閾值距離(例如,由機器人100行進每米或者半米一次)之后,閾值時間段之后(例如,每1-3秒一次),或收集姿態(tài)點的閾值數(shù)量(例如,大于20分)之后。姿態(tài)的置信度值可以從VSLAM系統(tǒng)或從穿越的距離或機器人地旋轉(zhuǎn)量,或通過測距與其它傳感器(例如,光學(xué)鼠標(biāo),陀螺儀)給出的信息的失配,或這些的任意組合。
[0056]在一些實施方式中,制圖模塊198b基于由傳感器系統(tǒng)180積累的傳感器數(shù)據(jù)進一步識別地標(biāo)和特征。盡管制圖模塊198b被描述為預(yù)先設(shè)定在網(wǎng)格中的單元為未知,但在某些情況下,在制圖模塊198b可預(yù)先設(shè)定單元為非可穿越或可穿越,并且在機器人100繞環(huán)境的物理布局發(fā)現(xiàn)另外的制圖數(shù)據(jù)時,更新單元。
[0057]標(biāo)識模塊198c存儲有關(guān)障礙物和墻壁的邊緣的地點的數(shù)據(jù),并且將環(huán)境中穿越的路徑區(qū)段的模板存儲為獨特標(biāo)識或地標(biāo)。隨著機器人100繞環(huán)境航行并且使用姿態(tài)模塊198a存儲其姿態(tài),機器人100可以從它的傳感器系統(tǒng)180接收數(shù)據(jù),其指示構(gòu)成地標(biāo)的獨特路徑區(qū)段,這標(biāo)識模塊198c存儲以供將來參考。每一個獨特的標(biāo)識可以包括在沿著地標(biāo)航行開始時的機器人100的姿態(tài)。獨特的標(biāo)識還可以包括隨著機器人100沿地標(biāo)形式所收集的姿態(tài)數(shù)據(jù)。如將稍后描述的,相對于重新定位行為,唯一標(biāo)識是可識別的地標(biāo),所述機器人100使用地標(biāo)在占用網(wǎng)格內(nèi)重新定位,并降低在推算機器人姿態(tài)上的誤差。
[0058]在實施中,在墻壁跟隨行為期間隨著機器人100跟隨環(huán)境中的障礙物和墻壁,機器人100存儲標(biāo)識路徑區(qū)段,或地標(biāo)。在實施中,墻壁跟隨行為構(gòu)成結(jié)構(gòu)元件的表面的機器人跟隨部分,從而限定占用地圖上的在環(huán)境中的墻壁,家具或其它障礙物,并且在其它實施中,墻壁跟隨行為構(gòu)成房間的所有周緣,追蹤限定空間的墻壁。如后面將要描述的,隨著機器人100沿環(huán)境內(nèi)的表面跟隨,墻壁跟隨行為執(zhí)行姿態(tài)模塊198a以存儲機器人100的推算姿態(tài)。在一個實例中,機器人100可沿南北對齊的墻壁行進,并且控制器190可以執(zhí)行標(biāo)識模塊198c以分配對應(yīng)于指示南北墻壁的姿態(tài)的地標(biāo)。在另一示例中,機器人100可以沿外角落行駛并且存儲對應(yīng)于指示外角落姿態(tài)的地標(biāo)。
[0059]在實施中,機器人100還可以從檢查制圖模塊198b所產(chǎn)生的占用網(wǎng)格來獲得地標(biāo)。例如,在使用制圖模塊198b給環(huán)境的一部分制圖之后,控制器190可以執(zhí)行占用網(wǎng)格上的模板匹配算法來尋找物理地標(biāo)并且產(chǎn)生指示那些地標(biāo)的獨特標(biāo)識。例如,標(biāo)識模塊198c可以將三個或更多個鄰近非可穿越單元識別為物理地標(biāo),其被作為標(biāo)識存儲在標(biāo)識模塊198c中。如果三個單元形成線,那么標(biāo)識模塊198c可以將單元的線之別為直線墻壁。單元的線的導(dǎo)向可對應(yīng)于墻壁的導(dǎo)向。標(biāo)識模塊198c可將單元的線標(biāo)簽為對應(yīng)于墻壁獨特標(biāo)識。在另一個實例中,標(biāo)識模塊198c可將三個非穿越單元識別為角落,在此,一個單元的兩個相鄰側(cè)邊每一個接觸其他兩個單元的其中一個。如果每個單元還接觸可穿越單元,那么標(biāo)識模塊198c將三個單元標(biāo)簽化為對應(yīng)于外角落的獨特標(biāo)識。如果其中一個單元的側(cè)邊不接觸可穿越單元,標(biāo)識模塊198c可將三個單元標(biāo)簽化對應(yīng)于內(nèi)角落的獨特的標(biāo)識。從制圖模塊198b的占用網(wǎng)格,控制器190可產(chǎn)生對應(yīng)于環(huán)境內(nèi)的路徑區(qū)段的獨特標(biāo)識的列表,這些路徑區(qū)段代表在在例如墻壁跟隨行為或覆蓋行為期間機器人100已經(jīng)遇到的環(huán)境中的地標(biāo)。其他的單元的組合,包括更多或更少單元群,可以指示房間的其它特征,例如彎曲的墻壁或尖銳的角落。
[0060]簡單地參見圖4B’,其示出了已被部分填充的實例占用網(wǎng)格400a,白色正方形表示可穿越單元421,陰影方塊代表非可穿越單元422。既沒有被分類為可穿越或非可穿越的單元表示為空白空間,雖然可以理解的是,空白空間可包括單元以表示未知單元423。如上所述,三個非可穿越單元422可被識別為多個獨特標(biāo)識的其中一個,例如內(nèi)角落426a,外角落426b,X軸線路徑426c,Y軸線路徑426d。在某些情況下,三個非可穿越單元422可以在角落426a內(nèi)。由SI標(biāo)記的單元對應(yīng)于鄰近房間300內(nèi)角落的路徑的起始。三個非可穿越單元422可以是外角落426b。由S2標(biāo)記的單元對應(yīng)于鄰近房間300的外角落的路徑的起始。由S3標(biāo)記的單元對應(yīng)于鄰近房間300的地標(biāo)的路徑的起始,這些地標(biāo)平行于X軸線。三個非可穿越單元422可以是Y軸線路徑426d。由S4標(biāo)記的單元對應(yīng)于鄰近房間300的地標(biāo)的路徑的起始,這些地標(biāo)平行于Y軸線。雖然已經(jīng)描述了標(biāo)識以包括三個非可穿越單元,但是在一些實施中,標(biāo)識可包括更少或更多的非可穿越單元。在某些情況下,標(biāo)識可包括可穿越單元。例如,環(huán)境中狹窄的路徑可以是在可穿越單元的任一側(cè)由非可穿越單元側(cè)接的可穿越單元。
[0061]返回參考圖1C,在標(biāo)識模塊198c上,控制器190與每個獨特標(biāo)識相關(guān)聯(lián)的傳感器數(shù)據(jù)可包括數(shù)據(jù)庫域,例如標(biāo)識ID,地標(biāo)級,和特征列表。標(biāo)識ID域可以是用于獨特地識別存儲在標(biāo)識模塊198c中的其它標(biāo)識的標(biāo)識。
[0062]地標(biāo)級是將標(biāo)識所代表的地標(biāo)分類的分類值。例如,地標(biāo)級可包括南北墻壁,東西墻壁,斜墻壁,內(nèi)角落,外角落,圓形墻壁,突出障礙,和可以通過環(huán)境中的障礙物結(jié)構(gòu)元件來形成的其它的曲線和幾何形狀。在實施方案中,這些地標(biāo)級可以代表在占用網(wǎng)格中限定的的單元的特定構(gòu)造。在一些實例中,標(biāo)識模塊198c上可以預(yù)先加載在環(huán)境中被發(fā)現(xiàn)的特定模板庫。如上所述,特定的模板可以包括表示尖角,內(nèi)角,X軸路徑,以及Y軸路徑模板。在其它情況下,模板庫可以包括代表彎曲墻壁,狹窄路徑,銳角墻壁,鈍角墻壁,和在環(huán)境中可被發(fā)現(xiàn)的其它形狀的模板。在某些情況下,預(yù)加載的模板可以是用戶上載或從先前清掃操作保存的。其結(jié)果是,在實施標(biāo)識模塊198c時,控制器190利用,例如,模板匹配算法來搜索占用網(wǎng)格以發(fā)現(xiàn)對應(yīng)于模板庫中發(fā)現(xiàn)的模板的單元的群??刂破?90分配標(biāo)識碼ID給使用模板匹配算法發(fā)現(xiàn)的單元的每個群并且基于用于識別標(biāo)識的模板庫中的模板將地標(biāo)級分配給每個標(biāo)識ID。
[0063]特征列表可包括傳感器數(shù)據(jù)。在實施中,特征可對應(yīng)于SIFT特征。機器人100使用傳感器系統(tǒng)180,并且在特定實施中,緩沖器傳感器,用于觀察物理地標(biāo)并且產(chǎn)生對應(yīng)于與墻壁,角落,障礙物表面輪廓,邊緣,曲線以及可在環(huán)境中由障礙物和結(jié)構(gòu)元件形成的幾何形狀相關(guān)聯(lián)的傳感器數(shù)據(jù)。特征列表可包括與來自姿態(tài)模塊198a的處理數(shù)據(jù)的關(guān)聯(lián),來自例如當(dāng)?shù)貥?biāo)被機器人觀察到時可被用于存儲標(biāo)識的計算機操縱系統(tǒng)時間,以及當(dāng)標(biāo)識被加到標(biāo)識模塊198c時的時間戳。當(dāng)控制器190產(chǎn)生地標(biāo)標(biāo)識時,隨著傳感器收集與對應(yīng)于地標(biāo)的物理結(jié)構(gòu)元件相關(guān)聯(lián)的數(shù)據(jù),控制器190可存儲機器人的取向(Θ),作為標(biāo)識的一部分。例如,在全局參考系中被參考的地標(biāo)的姿態(tài)的初始推算可對應(yīng)于機器人100的姿態(tài),當(dāng)機器人100開始啟動墻壁跟隨模式以跟隨結(jié)構(gòu)元件(例如,墻壁),障礙物(例如,家具),或結(jié)構(gòu)元件和障礙物的集合的邊緣的時候。用于地標(biāo)的特征列表還可包括長度,距離,單元數(shù)量,單元位置,或代表地標(biāo)的單元的(x,y)坐標(biāo)的特性的其它值。其結(jié)果是,如果控制器190識別具有相同地標(biāo)級地多個地標(biāo),用于特定地標(biāo)的特征列表可以區(qū)分這些地標(biāo)。如后面將會描述的,對于標(biāo)識模塊198c產(chǎn)生并且存儲的每個地標(biāo)的標(biāo)識,可以被用來重新定位機器人100以減少在姿態(tài)模塊198a所推算的姿態(tài)上機器人100具有的不確定性。
[0064]在本文中公開和示出的機電系統(tǒng)和模塊可以包括在以下文獻中公開的系統(tǒng)和模塊:美國公開號20110167574,申請日2010年11月5日,題為“Methods and systems forcomplete coverage of a surface by an autonomous robot” ;美國專利申請N0.13/460261,提交日2012年4月30日,題為"Robotic Vacuum” ;美國專利申請N0.11/688213,提交日 2007年3月19 日,題為 “Robot Conf inement”,以及US 14/512098,提交日 2014年 10月 10日,題為“Robotic Lawn Mowing Boundary Determinat1n”,它們的全部公開在此通過引用并入本文。
[0065]機器人行為
[0066]所述存儲器存儲單元195還包括機器人100的與模塊198a_198c協(xié)作來執(zhí)行SLAM技術(shù)的行為??刂破?90可以執(zhí)行實現(xiàn)模塊一個或組合的行為,并使用由模塊收集的數(shù)據(jù)來給環(huán)境制圖并且規(guī)律地重新定位機器人100至環(huán)境的地圖。這些行為包括墻壁跟隨行為,覆蓋行為,和重新定位行為。
[0067]1.墻壁跟隨行為