本發(fā)明一般涉及移動設(shè)備的導(dǎo)航。具體地,本發(fā)明涉及可用在例如移動機(jī)器人地移動設(shè)備中的定位和制圖技術(shù)。
背景技術(shù):
移動機(jī)器人的定位技術(shù)可以包括允許機(jī)器人相對于其周邊確定其位置和導(dǎo)向(或“姿態(tài)”)的過程??梢詷?gòu)件其周邊地圖的機(jī)器人可以在地圖中定位其本身,以展示自主程度。該構(gòu)件地圖的過程和使用所生成的地圖被稱作同步定位和制圖(SLAM)。SLAM涉及地圖的構(gòu)建(制圖)以及地圖的使用(定位),因此包括與定位相關(guān)的過程和與制圖相關(guān)的過程。機(jī)器人可同步地或以多元方式執(zhí)行這些過程。SLAM技術(shù)可包括使用測距,機(jī)械接觸傳感器,或非接觸測距傳感器例如激光測距儀或基于圖像傳感器來構(gòu)建地圖。
技術(shù)實現(xiàn)要素:
本發(fā)明的一方面特征在于機(jī)器人配制成在至少部分地由墻壁包圍的區(qū)域內(nèi)導(dǎo)航。所述機(jī)器人以跟隨模式操縱,其中,所述機(jī)器人被控制為沿著鄰近障礙物的路徑區(qū)段行進(jìn),同時記錄指示所述路徑區(qū)段的數(shù)據(jù)。所述機(jī)器人以覆蓋模式中操縱,其中,所述機(jī)器人被控制為穿過所述區(qū)域同時執(zhí)行功能。在以覆蓋模式操縱機(jī)器人的同時,產(chǎn)生指示所述區(qū)域的物理布局的數(shù)據(jù),至少基于機(jī)器人測距數(shù)據(jù),更新指示計算的機(jī)器人姿態(tài)的數(shù)據(jù),并且計算機(jī)器人姿態(tài)置信水平。指示所述區(qū)域的物理布局的數(shù)據(jù),包括在執(zhí)行所述功能時探測到的區(qū)域邊界和障礙物周長。所述計算的機(jī)器人姿態(tài)包括在所述區(qū)域內(nèi)機(jī)器人的計算的地點和導(dǎo)向。所述機(jī)器人響應(yīng)于所述機(jī)器人姿態(tài)置信水平,其低于預(yù)定置信界限,基于所述計算的機(jī)器人姿態(tài)和指示所述區(qū)域的物理布局的數(shù)據(jù),操縱所述機(jī)器人至所述路徑區(qū)段的可疑地點,響應(yīng)于在所述路徑區(qū)段的可疑地點在預(yù)定距離內(nèi)探測鄰近所述障礙物的所述路徑區(qū)段,更新指 示所述計算的機(jī)器人姿態(tài)的數(shù)據(jù)和指示所述區(qū)域的物理布局的數(shù)據(jù)中的至少一個,從而更新在區(qū)域內(nèi)所述機(jī)器人的相對姿態(tài)。
在一些實例中,所述機(jī)器人還選擇所述路徑區(qū)段的所述可疑地點,其被操縱以便基于來自所述路徑區(qū)段的可疑地點的第一穿越的時間差。所述機(jī)器人還選擇所述路徑區(qū)段的所述可疑地點,其被操縱以便基于來自所述路徑區(qū)段的可疑地點的第一穿越的距離差。所述機(jī)器人可構(gòu)建在所述墻壁跟隨模式中路徑區(qū)段的庫,并且其中,響應(yīng)于下降到低于所述預(yù)定置信界限的所述機(jī)器人姿態(tài)置信水平,所述機(jī)器人被操縱至路徑區(qū)段的可疑地點,所述可疑地點根據(jù)關(guān)于所述機(jī)器人的其可疑相對位置來被選定。
在某些情況下,所述機(jī)器人基于所述指示所述區(qū)域的物理布局的數(shù)據(jù),構(gòu)建路徑區(qū)段的庫,并且其中,響應(yīng)于下降到低于所述預(yù)定置信界限的所述機(jī)器人姿態(tài)置信水平,所述機(jī)器人被操縱至路徑區(qū)段的可疑地點,所述可疑地點根據(jù)關(guān)于所述機(jī)器人的其可疑相對位置來被選定。所述機(jī)器人在更新所述指示計算的機(jī)器人的地點的數(shù)據(jù)和指示所述區(qū)域的物理布局的數(shù)據(jù)的任一個之后,再次以覆蓋模式操縱所述機(jī)器人。所述機(jī)器人響應(yīng)于探測到的障礙物同時以覆蓋模式操縱,啟動所述跟隨模式。
在一些實例中,相對于指示所述區(qū)域的物理布局的數(shù)據(jù)更新指示所述計算的機(jī)器人姿態(tài)的數(shù)據(jù),使兩個或多個區(qū)段重新定位至所述指示所述區(qū)域的物理布局的數(shù)據(jù)。相對于指示所述區(qū)域的物理布局的數(shù)據(jù)更新指示所述計算的機(jī)器人姿態(tài)的數(shù)據(jù),使所述指示所述機(jī)器人姿態(tài)的數(shù)據(jù)重新定位至所述指示所述區(qū)域的物理布局的數(shù)據(jù)。記錄指示所述路徑區(qū)段的數(shù)據(jù)包括:從在所述機(jī)器人上的傳感器收集數(shù)據(jù)。比較所述數(shù)據(jù)包括:比較路徑長度、所述數(shù)據(jù)的開始姿態(tài)、所述數(shù)據(jù)的結(jié)束姿態(tài)、行進(jìn)的直線路程、以及曲率中的至少一個。探測所述障礙物包括物理地接觸所述探測到的障礙物
在某些情況下,所述傳感器是里程表、輻射收發(fā)器、碰撞傳感器、壓力傳感器、以及接近傳感器。
在某些情況下,所述功能包括清掃所述區(qū)域內(nèi)的地板。
在一些實施中,在操縱所述機(jī)器人至所述路徑區(qū)段的可疑地點后,所述機(jī)器人以跟隨模式操縱所述機(jī)器人以跟隨所述探測到的障礙物,同時記錄機(jī)器人姿態(tài)數(shù)據(jù),從所述記錄的機(jī)器人姿態(tài)數(shù)據(jù),產(chǎn)生指示沿所述探測到的障礙物的所述機(jī)器人的路徑的數(shù)據(jù)。更新所述指示計算的機(jī)器人姿態(tài)的數(shù)據(jù)可 包括,將所述指示沿著所述探測到的障礙物的所述機(jī)器人的路徑的數(shù)據(jù)與指示在所述跟隨模式中記錄的所述路徑區(qū)段的數(shù)據(jù)相比較,以確定沿著所述探測到的障礙物的所述機(jī)器人的路徑是否與在所述跟隨模式中記錄的所述路徑區(qū)段充分匹配,并且在確定充分匹配時,按照充分匹配的路徑區(qū)段,更新所述指示計算的機(jī)器人地點的數(shù)據(jù)和所述指示所述區(qū)域的物理布局的數(shù)據(jù)的任一個。
機(jī)器人系統(tǒng)的實施例可包括以下一個或多個特征。機(jī)器人系統(tǒng)可以通過跟蹤測距估算機(jī)器人的姿態(tài)并且可使用其它機(jī)載傳感器估算它的在姿態(tài)推算的置信。機(jī)器人系統(tǒng)然后通過使用姿態(tài)推算來產(chǎn)生環(huán)境的地圖。然后機(jī)器人的驅(qū)動系統(tǒng)的測距可被用于推算姿態(tài)。因為測距數(shù)據(jù)可能受到偏移和誤差,在機(jī)器人上的其它傳感器可以用來校正偏移和誤差或推算偏移和誤差。在機(jī)器人上的加速度計和陀螺儀可以感應(yīng)線性和角加速度以在機(jī)器人導(dǎo)航時推算誤差累積。機(jī)器人系統(tǒng)可以為機(jī)器人系統(tǒng)推算姿態(tài)的每個情況計算置信。因此,隨著時間的推移,所述機(jī)器人系統(tǒng)可確定適當(dāng)?shù)臅r間來通過對環(huán)境重新定位恢復(fù)置信。
機(jī)器人可以使用在導(dǎo)航期間與環(huán)境物理相互作用而產(chǎn)生數(shù)據(jù),用以對環(huán)境對其本身重新定位。例如,當(dāng)機(jī)器人在周圍環(huán)境中導(dǎo)航并且執(zhí)行行為以覆蓋并清掃環(huán)境時,機(jī)器人可以碰到障礙物,跟隨墻壁,或以其它方式與環(huán)境的物理元件進(jìn)行相互作用。機(jī)器人可以記錄這些物理相互作用,它們隨著機(jī)器人導(dǎo)航行為的一部分發(fā)生,用來指定存在于環(huán)境中的獨(dú)特的物理地標(biāo)。然后,當(dāng)機(jī)器人確定其姿態(tài)置信已下降到低于預(yù)定置信界限時,獨(dú)特的地標(biāo)可以被用于重新定位機(jī)器人。
以上機(jī)器人系統(tǒng)的特征可以包括一個或更多的優(yōu)點。使用傳統(tǒng)地已經(jīng)存在于移動機(jī)器人上的傳感器,如編碼器,碰撞傳感器,陀螺儀,以及加速度計,降低了機(jī)器人系統(tǒng)的成本,并增加了整體可制造性。例如,機(jī)器人系統(tǒng)使用用于導(dǎo)航的傳感器產(chǎn)生SLAM的數(shù)據(jù),從而避免對于SLAM特定的額外傳感器的需要。由于更少的部件,機(jī)電系統(tǒng)保持更加簡單。
此外,由傳感器收集的數(shù)據(jù)在計算上是低成本的。例如,相對于使用大的文件大小的VSLAM圖像類型,在機(jī)器人系統(tǒng)中實施的SLAM系統(tǒng)需要的存儲更少。在常規(guī)的SLAM機(jī)器人系統(tǒng)中,可能有用于制圖、定位和導(dǎo)航的單獨(dú)的傳感器。由這些傳感器生成和存儲的數(shù)據(jù)量在計算上可能是昂貴的。 事實上,這些系統(tǒng)可能只能夠存儲機(jī)器人使用時所收集的數(shù)據(jù)量的一小部分。在本申請中所描述的SLAM系統(tǒng)可以有利地以更好的效率收集更大量的數(shù)據(jù)。所述系統(tǒng)還可以通過在重新定位期間比較不太復(fù)雜的數(shù)據(jù)而有效地促進(jìn)機(jī)器人重新定位。
一個或多個實施的細(xì)節(jié)在附圖和書面描述中闡述。從說明書,附圖和權(quán)利要求書,其它特征,目的和優(yōu)點將變得顯而易見。。
附圖說明
圖1A示出了自主機(jī)器人的透視圖。
圖1B示出了圖1A的自主機(jī)器人的仰視圖。
圖1C示出了在圖1A-B所示的自主機(jī)器人上執(zhí)行的控制系統(tǒng)的框圖。
圖2示出導(dǎo)航自主機(jī)器人的流程圖。
圖3示出具有自主機(jī)器人的區(qū)域的俯視圖。
圖4A-C示出了房間和圖3的自主機(jī)器人,自主機(jī)器人跟隨的不同的路徑,以及對應(yīng)于房間的虛擬地圖。
在各個附圖中,相同附圖標(biāo)記表示相同的元件。
具體實施方式
自主機(jī)器人使用同步定位與繪圖(SLAM)圍繞房間智能地導(dǎo)航。機(jī)器人可以通過感測房間的自然特征停留在一個地方。機(jī)器人可以使用一個或多個視覺傳感器以及一個或多個航位推算傳感器來處理數(shù)據(jù)SLAM有關(guān)的并且自主地生成和更新地圖。機(jī)器人的控制器操作傳感器系統(tǒng),以隨著機(jī)器人來回移動連續(xù)地推算房間內(nèi)的機(jī)器人的姿態(tài),并接收關(guān)于房間的信息?!白藨B(tài)”在本文中包括機(jī)器人在房間內(nèi)的位置(例如,x,y坐標(biāo)地點),以及相對于例如在房間中的墻壁或基本方向的所述機(jī)器人的角度導(dǎo)向。感應(yīng)的“特征”在本文中描述從環(huán)境的物理元件收集的信息和數(shù)據(jù)。例如,一特征可以對應(yīng)于隨著機(jī)器人繞環(huán)境的物理元件行駛由機(jī)器人感應(yīng)的幾何輪廓。
在機(jī)器人的智能導(dǎo)航一些實例中,機(jī)器人生成模板,或地標(biāo),對應(yīng)于機(jī)器人可以探測的環(huán)境中的一個或多個特征,使用,例如,在機(jī)器人上的傳感器。機(jī)器人構(gòu)件環(huán)境的物理布局的地圖(例如,一個或多個房間或房間內(nèi)的部分),物理布局包括獨(dú)特的地標(biāo)(在本文中也稱為“標(biāo)識”),其包括一個或 多個特征。機(jī)器人推算其在環(huán)境中的姿態(tài),并使用產(chǎn)生的模板減少姿態(tài)推算中的誤差。隨著機(jī)器人跟隨環(huán)境中的障礙物(例如,家具和固定裝置)和墻壁,機(jī)器人可以生成對應(yīng)于特征的獨(dú)特組合的路徑區(qū)段的模板,其識別障礙和/或墻壁的特定布置和位置。存儲在模板中的特征包括來自傳感器的傳感器數(shù)據(jù)的匯編,其識別每個獨(dú)特的路徑區(qū)段。
例如,傳感器數(shù)據(jù)可以包括幾何(由非接觸式測距傳感器,例如體積點云傳感器,IR點和線測距傳感器和聲納感應(yīng)的),碰撞傳感器數(shù)據(jù),圖像數(shù)據(jù),和由傳感器系統(tǒng)的傳感器產(chǎn)生的其它數(shù)據(jù)。第二,隨著機(jī)器人繞房間移動,所述機(jī)器人生成控制器使用的指示房間的物理布局的數(shù)據(jù),以產(chǎn)生存儲在存儲器存儲元件上的虛擬地圖或占用網(wǎng)格。隨著占用網(wǎng)格生成,控制器追蹤不斷更新指示占用網(wǎng)格內(nèi)的機(jī)器人的姿態(tài)的數(shù)據(jù)。指示姿態(tài)的數(shù)據(jù)可以是推算值,隨著機(jī)器人繼續(xù)繞房間移動該推算值誤差增加。在一些實例中,機(jī)器人以誤差代表與所推算的姿態(tài)相關(guān)聯(lián)的置信度量。在其它實例中,機(jī)器人以與所推算的姿態(tài)相關(guān)聯(lián)的不確定性的量度代表誤差。最后,通過移動機(jī)器人到上述路徑區(qū)段中的可疑地點,機(jī)器人可以減少不確定性,或增加在其姿態(tài)上的置信。在到達(dá)路徑區(qū)段時,機(jī)器人的傳感器系統(tǒng)可產(chǎn)生對應(yīng)于它的圍繞路徑區(qū)段的可疑地點的運(yùn)動的信號。機(jī)器人執(zhí)行模板匹配算法以確定所生成的傳感器數(shù)據(jù)是否與較早產(chǎn)生的相應(yīng)的路徑區(qū)段的模板匹配。如果傳感器數(shù)據(jù)與模板匹配,則控制器通過基于房間內(nèi)模板的位置確認(rèn)機(jī)器人的姿態(tài)或重新定位機(jī)器人,可以重新定向占用網(wǎng)格,從而恢復(fù)在姿態(tài)推算上的置信。
機(jī)器人概述
參照圖1A,機(jī)器人100包括主體102,前向部分104和后向部分106。通過相對于由主體102限定的三個互相垂直的軸線的各種運(yùn)動組合,機(jī)器人100可移動穿過物理環(huán)境的地板表面:橫向軸線X,前后軸線Y,中央垂直軸線Z。沿著前后軸線Y的前向驅(qū)動方向被指定F(以下稱為“前向”),并且沿著所述前后軸線Y的后驅(qū)動方向指定為A(以下稱為“后向”)。橫向軸線Y在機(jī)器人100的右側(cè)R和左側(cè)L之間延伸,其大致上沿著由輪子模塊108a、108b的中心點限定的軸線,簡要參考圖1B。在一些實施中,機(jī)器人100具有圓形外周。在其它實施中,前向部分104基本上具有矩形橫截面,并且后向部分106基本上是圓形的,具有半圓形橫截面。機(jī)器人主體102的其它幾 何形狀可以預(yù)期,例如勒洛三角形或等寬多邊形。
設(shè)置在主體102的頂部的用戶界面110接收一個或多個用戶命令并且/或者顯示機(jī)器人100的狀態(tài)。設(shè)置在前向部分104上的一個或多個障礙物探測傳感器111評估障礙物距離機(jī)器人100的距離。在一個實施中,一個或多個傳感器是飛行傳感器點測距時間,線測距傳感器,或體積點云傳感器。在另一實施中,一個或多個障礙物探測傳感器111是設(shè)置在前向部分104上的聲納傳感器,用作超聲波傳感器的換能器,以評估障礙物到機(jī)器人100的距離。在機(jī)器人100右側(cè)的墻壁跟隨傳感器113是IR傳感器,可以確定機(jī)器人100何時跟隨墻壁。機(jī)器人100的左側(cè)L也可具有墻壁跟隨傳感器。主體102的前向部分還承載緩沖器115,其探測在機(jī)器人100的驅(qū)動路徑上的障礙物。
參照圖1B,機(jī)器人100的底表面107包括帶有發(fā)動機(jī)109a-b的輪子模塊108a-b,該發(fā)動機(jī)差動地驅(qū)動輪子110a-b中。發(fā)動機(jī)109a-b聯(lián)接到旋轉(zhuǎn)編碼器112a-b。機(jī)器人100的底表面107進(jìn)一步包括清掃頭120,帶有前滾輪122a和后滾輪122b,邊刷125,腳輪130,間隙調(diào)節(jié)器132a-b,光學(xué)鼠傳感器133,慣性測量單元(IMU)134,和懸壁傳感器135a-135d
沿著橫向軸線X的輪子模塊108a和108b,在常規(guī)清掃程序期間推動機(jī)器人100穿過地板表面。發(fā)動機(jī)109a-b驅(qū)動各自的輪子110a-b。隨著發(fā)動機(jī)109a-b驅(qū)動輪子110a-b中,旋轉(zhuǎn)編碼器112a-b測量發(fā)動機(jī)109a-b的發(fā)動機(jī)軸的位置。如將在下面所討論的,測距系統(tǒng)采用了旋轉(zhuǎn)編碼器112a-b,來推算機(jī)器人100所行進(jìn)的距離。
隨著機(jī)器人在前向方向F上移動,并且接觸環(huán)境中的障礙物,設(shè)置在機(jī)器人100的前向部分104上的緩沖器115探測接觸并且產(chǎn)生響應(yīng)于接觸障礙物的信號。在一些實施方式中,緩沖器115是固態(tài)觸覺傳感緩沖器,其在接觸障礙物時可以探測物理或電學(xué)特性。在一些情況下,緩沖器115可以環(huán)繞機(jī)器人的全部側(cè)面和后向部分。例如,所述緩沖器115可包括接觸傳感器膜,其感應(yīng)所施加的力,并且接觸傳感器膜可以圍繞機(jī)器人100的周邊的一部分或全部施加,使得與環(huán)境的物理結(jié)構(gòu)的接觸可以在任何運(yùn)動方向上感應(yīng)到。在這些實施方式中,機(jī)器人100可以利用沿緩沖器115的接觸傳感器膜的接觸的地點,以避開障礙物或執(zhí)行墻壁跟隨行為。在另一個實施中,緩沖器115包括沿緩沖器115的前表面和側(cè)表面設(shè)置的電容緩沖器傳感器。在一些情況 下,電容緩沖器傳感器可沿緩沖器115的頂表面向上設(shè)置,使得所述電容緩沖器傳感器可以從另外的方向(例如,從機(jī)器人以上)感應(yīng)到接觸。緩沖器的實例是美國專利申請公開號14/277270,標(biāo)題為“Compliant Solid-State Bumper for Robot”,其通過引用將其整體并入本文。
在另一個實施中,緩沖器115是可動件,并包括一個或多個機(jī)械開關(guān),以使得與環(huán)境中的障礙物接觸觸發(fā)緩沖器開關(guān)117L和117R。緩沖器開關(guān)117R位于機(jī)器人100的右側(cè)。緩沖器開關(guān)117L位于機(jī)器人100的左側(cè)。兩個緩沖器開關(guān)117L和117R相對于前向驅(qū)動方向F位于輪子110a-b的前向中。在某些情況下,當(dāng)機(jī)器人100接觸地標(biāo)時,一個以上的緩沖器的開關(guān)117L和117R可以順序被觸發(fā)。機(jī)器人100可以使用緩沖器開關(guān)117R和117L的順序致動,以避開障礙物,或執(zhí)行墻壁跟蹤行為。
可移動清掃頭120被安裝在底盤的前向部分上并且包括安裝在其中的兩個反向旋轉(zhuǎn)滾輪,前滾輪122a和后滾輪122b,用于從清掃表面重新獲得碎屑。機(jī)器人主體102包括邊刷125,或角刷,其設(shè)置在機(jī)器人主體102的底部后向部分104上。邊刷125位于主體102的前向部分104的橫向側(cè)。前滾輪122a與后滾輪122b與邊刷125合作清掃區(qū)域的地板,通過用邊刷125(其伸出機(jī)器人主體10的周界)吸入被重新引導(dǎo)至前滾輪122a和后滾輪122b的路徑中的碎屑,以捕獲在裂縫中的以及沿著超出清掃頭120所及的邊緣的碎屑。
腳輪130支撐機(jī)器人主體102的后向部分106,使得懸臂清掃頭120向清掃表面偏置。在一些實施中,腳輪130旋轉(zhuǎn)并且被垂直地彈簧加載以使腳輪130偏置,以保持與地板表面接觸,并且,在腳輪130中的傳感器可以探測機(jī)器人100是否不再與地板表面接觸(例如,當(dāng)機(jī)器人100后退離開臺階,使得垂直地彈簧加載的旋轉(zhuǎn)家腳輪130可以跌落)。由機(jī)器人主體102可旋轉(zhuǎn)地支撐的間隙調(diào)節(jié)器132a-b,保持主體102的底表面和地板表面之間的最小間隙高度(例如,至少2mm)。
機(jī)器人主體102的底部包括光學(xué)鼠標(biāo)傳感器133。光學(xué)鼠標(biāo)傳感器包括光源和低分辨率相機(jī)。在機(jī)器人繞環(huán)境航行時光源照射所述機(jī)器人主體102下方的地板,并且低分辨率相機(jī)連續(xù)記錄和比較地板的順序的低分辨率圖像(例如,約20×20像素)。如后面將要描述的,隨著機(jī)器人100繞環(huán)境航行,機(jī)器人100使用光學(xué)鼠標(biāo)傳感器133來推算偏移在x和y方向的偏移。
機(jī)器人主體102還容納IMU 134。在實施中,IMU包含3軸加速計和3軸陀螺儀。3軸加速度計測量x,y和z加速度,3軸陀螺儀測量圍繞x,y和z軸的旋轉(zhuǎn)(例如,俯仰,偏轉(zhuǎn)和滾動)。如將在下面描述的,IMU 134的加速器可以用于推算在x和y方向上的偏移,IMU 134的陀螺儀可以用來推算在機(jī)器人100的導(dǎo)向θ上的偏移。
機(jī)器人100包括在驅(qū)動輪110a-b后一段距離、靠近機(jī)器人主體102的前邊緣和后邊緣的多個懸壁傳感器135a-d,其能夠使機(jī)器人100接收懸壁傳感器信號并且在離開感應(yīng)到的下降之前停止輪子110a-b。懸壁傳感器135b和134c位于鄰近所述機(jī)器人的前表面的前向部分104,并且懸壁傳感器135a和135d的位于后向部分106上。每個懸壁傳感器135a-d設(shè)置靠近其中一個側(cè)表面,以便使機(jī)器人100可以從其主體102的任一側(cè)探測到即將到來的下降或懸壁。每個懸壁傳感器135a-d發(fā)出輻射,例如紅外光,并且兩探測所述輻射的反射,來確定在懸壁探測器135a-d之下從懸壁傳感器135a-d至表面的距離。比地板和懸壁傳感器135a-d之間與其的間隙更大的距離,例如大于2mm,指示出懸壁傳感器135a-d已探測到在地板地形上類似懸壁的障礙物或者環(huán)境元件。
在本文中機(jī)器人的硬件可包括在申請?zhí)朠CT/US2014/025665,申請日2014年3月13日,題為“Roller brush for surface cleaning robots”,以及美國申請13/460261,提交日2012年4月30日,題為“Robotic Vacuum”的所公開的機(jī)器人系統(tǒng)的各方面,這兩者都通過引用全部并入本文。
控制系統(tǒng)硬件
現(xiàn)在還參照圖1C,機(jī)器人102的主體100容納控制系統(tǒng)149,其包括電源系統(tǒng)150,清掃系統(tǒng)155,驅(qū)動系統(tǒng)160,導(dǎo)航系統(tǒng)170,傳感器系統(tǒng)180,控制器電路190(在此也稱為“控制器190”),以及存儲器存儲元件195。電力系統(tǒng)150,其包括電源,提供電力至可與機(jī)器人100操作的系統(tǒng)。電力系統(tǒng)150可以進(jìn)一步包括電源系統(tǒng)150內(nèi)的充電系統(tǒng),其可連接到外部充電基座,以給電源充電。清掃系統(tǒng)155使用滾輪122a-b,邊刷125,以及裝在機(jī)器人主體102中的碎屑盒風(fēng)扇123以吸入碎屑。
所述驅(qū)動器160可以基于具有x,y和θ分量的驅(qū)動命令操縱機(jī)器人100穿過地板表面(圖1A中示出)。所述驅(qū)動器160控制發(fā)動機(jī)109a、109b來 驅(qū)動輪子模塊108a-b的輪子110a-b,使得輪組件108a-b可以沿地板表面的任何驅(qū)動方向機(jī)器人100。輪子模塊可差動操作,使得機(jī)器人可以基于提供給每個驅(qū)動輪110a-b的驅(qū)動水平轉(zhuǎn)動。輪子模塊108a-b的獨(dú)立發(fā)動機(jī)109a,109b驅(qū)動各輪子110a-b,使得輪子110a-b可以彼此獨(dú)立地旋轉(zhuǎn)。其結(jié)果是,輪子110a-b的獨(dú)立的旋轉(zhuǎn)可以使機(jī)器人100的前向驅(qū)動方向F旋轉(zhuǎn)至新的導(dǎo)向。
導(dǎo)航系統(tǒng)170,在控制器190上執(zhí)行的基于行為的系統(tǒng),可以發(fā)送指令到驅(qū)動系統(tǒng)160,使得機(jī)器人100可以使用驅(qū)動器160來導(dǎo)航環(huán)境。導(dǎo)航系統(tǒng)170與傳感器系統(tǒng)180進(jìn)行通信,以發(fā)出驅(qū)動命令到驅(qū)動器160。
在實施例中,傳感器系統(tǒng)180包括設(shè)置在機(jī)器人100上的傳感器,例如障礙物探測傳感器111,輪子編碼器112a-b,緩沖器開關(guān)117L和117R,光學(xué)鼠標(biāo)傳感器133,IMU 134和懸壁傳感器135a-e。傳感器系統(tǒng)180的一些或全部傳感器產(chǎn)生與在環(huán)境中的結(jié)構(gòu)元件的特征有關(guān)的數(shù)據(jù),從而能夠使導(dǎo)航系統(tǒng)170確定使用的模式或行為,以便繞環(huán)境導(dǎo)航,用于房間或小屋的完全覆蓋或用于避免潛在的危險,例如會呈現(xiàn)楔形狀態(tài)的低懸或?qū)⒊尸F(xiàn)擱淺狀態(tài)的燈座。傳感器系統(tǒng)180的各種傳感器的一個或多個可以被用于產(chǎn)生與一個或多個特征或地標(biāo)有關(guān)的數(shù)據(jù)。傳感器系統(tǒng)180創(chuàng)建機(jī)器人的環(huán)境的感知,其足以以允許機(jī)器人100做出關(guān)于在環(huán)境中動作(例如,導(dǎo)航動作,驅(qū)動器動作)的智能決策。傳感器系統(tǒng)180收集數(shù)據(jù),以允許機(jī)器人100執(zhí)行SLAM技術(shù),如將在后面描述的。
傳感器系統(tǒng)180可包括障礙探測避障(ODOA)傳感器,測距聲納傳感器,接近傳感器,雷達(dá)傳感器,LIDAR(光探測和測距,其可以帶來測量散射光的屬性來查找范圍和/或遙遠(yuǎn)目標(biāo)的其它信息的光學(xué)遙感)傳感器,可以與所述間隙調(diào)節(jié)器132a-b操作的間隙傳感器,照相機(jī)(例如,體積點云成像,三維(3D)成像或深度地圖傳感器,可見光相機(jī)和/或紅外線相機(jī)),可以與所述腳輪130操作能夠探測所述腳輪130的運(yùn)動的輪子下降傳感器。傳感器系統(tǒng)還可以包括通信傳感器,導(dǎo)航傳感器,接觸傳感器,激光掃描儀和其它傳感器,以方便導(dǎo)航、探測障礙物和機(jī)器人的其它任務(wù)100。接近傳感器可以采取接觸傳感器的形式(例如,探測在帶有物理屏障的機(jī)器人上的緩沖器的影響的傳感器,例如電容傳感器或機(jī)械開關(guān)傳感器),和/或LIDAR傳感器,其探測機(jī)器人何時接近附近的物體。
控制器190通過與每個系統(tǒng)通信,提供和接受輸入和輸出參數(shù)操作機(jī)器人100的其它系統(tǒng)??刂破?90有利于電力系統(tǒng)150,清掃系統(tǒng)155,驅(qū)動系統(tǒng)160,導(dǎo)航系統(tǒng)170,傳感器系統(tǒng)180,和存儲器存儲元件195之間的通信。例如,控制器190可以指示電力系統(tǒng)150提供電力給驅(qū)動系統(tǒng)160的發(fā)動機(jī)來在前向驅(qū)動方向F移動機(jī)器人100??刂破?90還可以指示對電力系統(tǒng)150進(jìn)入充電模式。控制器190可以指示電力系統(tǒng)150提供特定電力水平(例如,全電力的百分比)到各個系統(tǒng)。
控制器190可以響應(yīng)于,例如,從導(dǎo)航系統(tǒng)170和傳感器系統(tǒng)180接收的信號重定向驅(qū)動系統(tǒng)160的模塊108a-b。控制器190操作導(dǎo)航系統(tǒng)170來操縱機(jī)器人100以路徑或路線通過環(huán)境。導(dǎo)航系統(tǒng)170可以提供指令給機(jī)器人控制器190,通過獨(dú)立地控制驅(qū)動系統(tǒng)160的各輪子模塊108a的-b,來操縱機(jī)器人100在整個環(huán)境中的任何方向穿過環(huán)境。例如,機(jī)器人控制器190可以操縱機(jī)器人100以前向方向F、后向方向A,右方向R,和左方向L。機(jī)器人控制裝置190可以操縱機(jī)器人100基本原地旋轉(zhuǎn),使得機(jī)器人100可以操縱遠(yuǎn)離或沿著障礙物,墻壁,或環(huán)境的其它結(jié)構(gòu)元件。機(jī)器人控制器190可以指示機(jī)器人100在穿過地板表面時在基本上隨機(jī)的(例如,偽隨機(jī)的)路徑上,以SLAM或VSLAM啟用的機(jī)器人,并且以確定的清掃模式。
使用控制器190,機(jī)器人100可以響應(yīng)由緩沖器115探測到的事件,如在區(qū)域內(nèi)接觸障礙物和墻壁。響應(yīng)可以包括使用導(dǎo)航系統(tǒng)170和驅(qū)動系統(tǒng)160控制輪子模塊108a-b操縱機(jī)器人100,以響應(yīng)所述事件。機(jī)器人100可以,例如,離開障礙物或沿著鄰近所述障礙物的路徑。
在一些實施中,控制器190可以包括障礙物探測,規(guī)避方法和行為,其實施以響應(yīng)于所述緩沖器開關(guān)117L和117R的致動。機(jī)器人可以使用緩沖器開關(guān)117L和117R來探測基本在機(jī)器人100附近的障礙物的位置,使得機(jī)器人100可確定轉(zhuǎn)動方向以避開障礙物。使用設(shè)置在機(jī)器人100的前向部分的緩沖器開關(guān)117L和117R,所述控制器190可確定機(jī)器人合適接觸障礙物并傳達(dá)指令給導(dǎo)航系統(tǒng)170和驅(qū)動系統(tǒng)160,以避開障礙物。當(dāng)機(jī)器人100接觸使緩沖器開關(guān)117L和117R致動的障礙物時,除了確定機(jī)器人100何時已接觸到障礙物,控制器190可進(jìn)一步通過計算左右緩沖器117L和117R的致動之間的時間差,推算相對于機(jī)器人100和障礙物之間的接觸點的角度,如果兩者都被致動的話。機(jī)器人然后能夠推算在形成接觸的角度。當(dāng)緩沖器115 被從右側(cè)接觸,右緩沖器開關(guān)117R首先探測碰撞,其次是左緩沖器開關(guān)117L,這時由于緩沖器115的合規(guī)性和緩沖器開關(guān)117R和117L的位置。這樣,碰撞角度可以僅用兩個緩沖器開關(guān)117R和117L來近似。機(jī)器人100還可以使用墻壁跟隨傳感器113來估算為了平行于障礙物移動機(jī)器人100轉(zhuǎn)動的角度。墻壁跟隨傳感器113是飛行時間傳感器,可以從障礙物識別距離??刂破?這將在下面更詳細(xì)地描述)可以對墻壁跟隨傳感器的數(shù)據(jù)作出響應(yīng),使得機(jī)器人100的橫向側(cè)L和R的任一個是隨著機(jī)器人100在前向正向F上移動的與障礙物的設(shè)定距離。
雖然緩沖器115已被示為包括緩沖器開關(guān)117R和117L,收集有關(guān)與障礙物接觸的信息,但在其它實施中,應(yīng)當(dāng)理解的是,替代緩沖器可用于接觸在環(huán)境中的障礙和物理結(jié)構(gòu)。例如,如上面所簡要描述的,在緩沖器115接觸環(huán)境的物理結(jié)構(gòu)時,電容性接觸式傳感器可用于探測緩沖器115的接觸點?;谒鼋佑|,機(jī)器人100可以重新定向以執(zhí)行墻墻壁跟隨行為,如將在下面更詳細(xì)地描述。
控制系統(tǒng)制圖和定位計算
為執(zhí)行SLAM技術(shù),存儲器存儲元件195可包括獲取與SLAM有關(guān)的數(shù)據(jù)的模塊。例如,存儲器存儲元件195包括姿態(tài)模塊198a,制圖模塊198b以及標(biāo)識模塊198c。每個模塊使用環(huán)境內(nèi)可探測地標(biāo)和存儲有關(guān)制圖和定位機(jī)器人100的數(shù)據(jù)。如將對各模塊進(jìn)行描述,由模塊生成的數(shù)據(jù)包括指示可識別為地標(biāo)的(例如,用于重新定位的獨(dú)特的地標(biāo))、在環(huán)境內(nèi)行進(jìn)的獨(dú)特路徑區(qū)段的數(shù)據(jù),指示所述環(huán)境的物理布局(例如,占用網(wǎng)格)的數(shù)據(jù),以及指示計算的機(jī)器人姿態(tài)(例如,推算的姿態(tài))的數(shù)據(jù)。所述數(shù)據(jù)可以包括從例如,編碼器112a-b,光學(xué)鼠標(biāo)傳感器133和IMU 134的測距數(shù)據(jù)。模塊還可以包括預(yù)編程的數(shù)據(jù),例如預(yù)加載的地圖和地標(biāo)模板。
控制系統(tǒng)149允許機(jī)器人100使用姿態(tài)模塊198a推算其在環(huán)境中的姿態(tài)。在一個實例中,在姿態(tài)模塊198a執(zhí)行過程中,控制系統(tǒng)149的控制器190實現(xiàn)了航位推算過程來推算機(jī)器人100的姿態(tài)。
簡要參考回到圖1B,控制器190可以使用編碼器112a-b追蹤機(jī)器人100所行進(jìn)的距離。通過結(jié)合光學(xué)鼠標(biāo)傳感器133和/或IMU 134,控制器190可提高與航位推算(dead reckoning)數(shù)據(jù)相關(guān)聯(lián)的偏移或輪子打滑。光學(xué)鼠 標(biāo)傳感器133估算在x和y方向上的偏移。控制器190可利用來自IMU 134的3軸加速度計感測的線性加速度來推算在x和y方向上的偏移以及可利用IMU 134的3軸陀螺儀來推算機(jī)器人100在導(dǎo)向或取向θ的便宜??刂破?90可以因此結(jié)合由旋轉(zhuǎn)編碼器112a-b,IMU 134,光學(xué)鼠標(biāo)傳感器133所收集的數(shù)據(jù)以在給定時間產(chǎn)生機(jī)器人100的姿態(tài)的改進(jìn)推算。
在相對短距離上的精確度,航位推算容易隨時間偏移而偏移。偏移誤差可以在航位推算測量上積累。累積偏移可以影響距離計算和航向計算。對控制器190使用姿態(tài)模塊198a推算的每個姿態(tài),控制器190分配不確定的值,置信值(反比于確定性值),或不確定性協(xié)方差矩陣,或代表累積誤差的一些其它值。例如,當(dāng)機(jī)器人100行進(jìn)更遠(yuǎn)的直線距離時,控制器190分配增加的不確定性給機(jī)器人100的推算(X,Y)的位置,并且隨著機(jī)器人100重新定向其本身,控制器190分配增加的不確定性給機(jī)器人100的取向θ。對于姿態(tài)的每個推算,推算包括機(jī)器人100的位置和方向,以及帶有推算的不確定性。機(jī)器人100通常大約每10毫秒,更新其姿態(tài)的推算以及在其推算上的不確定性。
制圖模塊198B允許控制器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)境的邊界和其中障礙物的邊界,以及機(jī)器人100穿越的內(nèi)部地板空間。機(jī)器人100使用姿態(tài)模塊198a推算其姿態(tài),控制器190確定并保存機(jī)器人100的其運(yùn)動過程中網(wǎng)格坐標(biāo)。所述控制器190還講不確定性值與每個姿態(tài)關(guān)聯(lián)。在占用網(wǎng)格中的每個單元可以被分配一個值,指示所述單元是否被理解為非可穿越地板空間和可穿越地板空間?;谠诃h(huán)境中選擇的原點(0,0)單元,網(wǎng)格的每個單元可以被分配(X,Y)坐標(biāo)。所選擇的原點可以是,例如,在機(jī)器人100的或充電座或房間中的特定位置。每個單元可以呈現(xiàn)具有四個側(cè)邊的方形區(qū)域。單元的兩側(cè)與其它單元的側(cè)邊重合。所述單元可具有1至100厘米之間的側(cè)邊長。例如,網(wǎng)格可以是單元的網(wǎng)格,每個10cm×10cm。機(jī)器人100存儲由機(jī)器人100穿過的每個單元的坐標(biāo)(x,y)。在墻壁跟隨行為中,例如,控制器190可以將機(jī)器人100的足跡之下的所有單元標(biāo)記為可穿越單元,并且將對應(yīng)于被跟隨的墻壁的單元標(biāo)記為非可穿越。如后面將要描述的,控制器190可以識別特定序列,組合,群,等, 它們表示在環(huán)境中(例如,墻壁,障礙物等)的結(jié)構(gòu)元件的特征和地標(biāo)。在一個實施中,確定在網(wǎng)格中的單元的值之前,控制器190可以預(yù)先設(shè)置所有單元格的值為未知。然后,隨著機(jī)器人100在墻壁跟隨行為期間驅(qū)動,所有單元沿其路徑的值被設(shè)置為可穿越,所述單元的地點由到原點的距離來確定。
在一項實施例中,在行走邊界之后,作為制圖模塊198b的一部分,控制器190可以執(zhí)行大量注入(flood fill),以將由可穿越單元構(gòu)成的邊界內(nèi)的所有單元的值設(shè)置為可被穿越的可穿越單元。制圖模塊198B可以在周期性基礎(chǔ)上更新地圖,例如行駛閾值距離(例如,由機(jī)器人100行進(jìn)每米或者半米一次)之后,閾值時間段之后(例如,每1-3秒一次),或收集姿態(tài)點的閾值數(shù)量(例如,大于20分)之后。姿態(tài)的置信度值可以從VSLAM系統(tǒng)或從穿越的距離或機(jī)器人地旋轉(zhuǎn)量,或通過測距與其它傳感器(例如,光學(xué)鼠標(biāo),陀螺儀)給出的信息的失配,或這些的任意組合。
在一些實施方式中,制圖模塊198b基于由傳感器系統(tǒng)180積累的傳感器數(shù)據(jù)進(jìn)一步識別地標(biāo)和特征。盡管制圖模塊198b被描述為預(yù)先設(shè)定在網(wǎng)格中的單元為未知,但在某些情況下,在制圖模塊198b可預(yù)先設(shè)定單元為非可穿越或可穿越,并且在機(jī)器人100繞環(huán)境的物理布局發(fā)現(xiàn)另外的制圖數(shù)據(jù)時,更新單元。
標(biāo)識模塊198c存儲有關(guān)障礙物和墻壁的邊緣的地點的數(shù)據(jù),并且將環(huán)境中穿越的路徑區(qū)段的模板存儲為獨(dú)特標(biāo)識或地標(biāo)。隨著機(jī)器人100繞環(huán)境航行并且使用姿態(tài)模塊198a存儲其姿態(tài),機(jī)器人100可以從它的傳感器系統(tǒng)180接收數(shù)據(jù),其指示構(gòu)成地標(biāo)的獨(dú)特路徑區(qū)段,這標(biāo)識模塊198c存儲以供將來參考。每一個獨(dú)特的標(biāo)識可以包括在沿著地標(biāo)航行開始時的機(jī)器人100的姿態(tài)。獨(dú)特的標(biāo)識還可以包括隨著機(jī)器人100沿地標(biāo)形式所收集的姿態(tài)數(shù)據(jù)。如將稍后描述的,相對于重新定位行為,唯一標(biāo)識是可識別的地標(biāo),所述機(jī)器人100使用地標(biāo)在占用網(wǎng)格內(nèi)重新定位,并降低在推算機(jī)器人姿態(tài)上的誤差。
在實施中,在墻壁跟隨行為期間隨著機(jī)器人100跟隨環(huán)境中的障礙物和墻壁,機(jī)器人100存儲標(biāo)識路徑區(qū)段,或地標(biāo)。在實施中,墻壁跟隨行為構(gòu)成結(jié)構(gòu)元件的表面的機(jī)器人跟隨部分,從而限定占用地圖上的在環(huán)境中的墻壁,家具或其它障礙物,并且在其它實施中,墻壁跟隨行為構(gòu)成房間的所有 周緣,追蹤限定空間的墻壁。如后面將要描述的,隨著機(jī)器人100沿環(huán)境內(nèi)的表面跟隨,墻壁跟隨行為執(zhí)行姿態(tài)模塊198a以存儲機(jī)器人100的推算姿態(tài)。在一個實例中,機(jī)器人100可沿南北對齊的墻壁行進(jìn),并且控制器190可以執(zhí)行標(biāo)識模塊198c以分配對應(yīng)于指示南北墻壁的姿態(tài)的地標(biāo)。在另一示例中,機(jī)器人100可以沿外角落行駛并且存儲對應(yīng)于指示外角落姿態(tài)的地標(biāo)。
在實施中,機(jī)器人100還可以從檢查制圖模塊198b所產(chǎn)生的占用網(wǎng)格來獲得地標(biāo)。例如,在使用制圖模塊198b給環(huán)境的一部分制圖之后,控制器190可以執(zhí)行占用網(wǎng)格上的模板匹配算法來尋找物理地標(biāo)并且產(chǎn)生指示那些地標(biāo)的獨(dú)特標(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)于墻壁獨(dú)特標(biāo)識。在另一個實例中,標(biāo)識模塊198c可將三個非穿越單元識別為角落,在此,一個單元的兩個相鄰側(cè)邊每一個接觸其他兩個單元的其中一個。如果每個單元還接觸可穿越單元,那么標(biāo)識模塊198c將三個單元標(biāo)簽化為對應(yīng)于外角落的獨(dú)特標(biāo)識。如果其中一個單元的側(cè)邊不接觸可穿越單元,標(biāo)識模塊198c可將三個單元標(biāo)簽化對應(yīng)于內(nèi)角落的獨(dú)特的標(biāo)識。從制圖模塊198b的占用網(wǎng)格,控制器190可產(chǎn)生對應(yīng)于環(huán)境內(nèi)的路徑區(qū)段的獨(dú)特標(biāo)識的列表,這些路徑區(qū)段代表在在例如墻壁跟隨行為或覆蓋行為期間機(jī)器人100已經(jīng)遇到的環(huán)境中的地標(biāo)。其他的單元的組合,包括更多或更少單元群,可以指示房間的其它特征,例如彎曲的墻壁或尖銳的角落。
簡單地參見圖4B,其示出了已被部分填充的實例占用網(wǎng)格400a,白色正方形表示可穿越單元421,陰影方塊代表非可穿越單元422。既沒有被分類為可穿越或非可穿越的單元表示為空白空間,雖然可以理解的是,空白空間可包括單元以表示未知單元423。如上所述,三個非可穿越單元422可被識別為多個獨(dú)特標(biāo)識的其中一個,例如內(nèi)角落426a,外角落426b,X軸線路徑426c,Y軸線路徑426d。在某些情況下,三個非可穿越單元422可以在角落426a內(nèi)。由S1標(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è)接的可穿越單元。
返回參考圖1C,在標(biāo)識模塊198c上,控制器190與每個獨(dú)特標(biāo)識相關(guān)聯(lián)的傳感器數(shù)據(jù)可包括數(shù)據(jù)庫域,例如標(biāo)識ID,地標(biāo)級,和特征列表。標(biāo)識ID域可以是用于獨(dú)特地識別存儲在標(biāo)識模塊198c中的其它標(biāo)識的標(biāo)識。
地標(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。
特征列表可包括傳感器數(shù)據(jù)。在實施中,特征可對應(yīng)于SIFT特征。機(jī)器人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)被機(jī)器人觀察到時可被用于存儲標(biāo)識的計算機(jī)操縱系統(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可存儲機(jī)器人的取向(θ),作為標(biāo)識的一部分。例如,在全局參考系中被參考的地標(biāo)的姿 態(tài)的初始推算可對應(yīng)于機(jī)器人100的姿態(tài),當(dāng)機(jī)器人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)識,可以被用來重新定位機(jī)器人100以減少在姿態(tài)模塊198a所推算的姿態(tài)上機(jī)器人100具有的不確定性。
在本文中公開和示出的機(jī)電系統(tǒng)和模塊可以包括在以下文獻(xiàn)中公開的系統(tǒng)和模塊:美國公開號20110167574,申請日2010年11月5日,題為“Methods and systems for complete coverage of a surface by an autonomous robot”;美國專利申請No.13/460261,提交日2012年4月30日,題為“Robotic Vacuum”;美國專利申請No.11/688213,提交日2007年3月19日,題為“Robot Confinement”,以及US 14/512098,提交日2014年10月10日,題為“Robotic Lawn Mowing Boundary Determination”,它們的全部公開在此通過引用并入本文。
機(jī)器人行為
所述存儲器存儲單元195還包括機(jī)器人100的與模塊198a-198c協(xié)作來執(zhí)行SLAM技術(shù)的行為??刂破?90可以執(zhí)行實現(xiàn)模塊一個或組合的行為,并使用由模塊收集的數(shù)據(jù)來給環(huán)境制圖并且規(guī)律地重新定位機(jī)器人100至環(huán)境的地圖。這些行為包括墻壁跟隨行為,覆蓋行為,和重新定位行為。
1.墻壁跟隨行為
在一般情況下,在墻壁跟隨期間,機(jī)器人100使用緩沖器115探測環(huán)境中的墻壁,障礙物(例如,家具,早餐吧,櫥柜踢腳等),或其它結(jié)構(gòu)(例如,壁爐爐膛,樓梯邊等),跟隨墻壁,障礙物或其它結(jié)構(gòu)的輪廓,然后使用對應(yīng)于在機(jī)器人100跟隨結(jié)構(gòu)元件的部分或全部時所收集的數(shù)據(jù)的標(biāo)識模塊198c產(chǎn)生標(biāo)識地標(biāo)。收集的數(shù)據(jù)可以代表來自姿態(tài)模塊198a的特征或地標(biāo)。在一些實例中,機(jī)器人100執(zhí)行墻壁跟隨傳感器113來執(zhí)行墻壁跟隨行為。在與墻壁,障礙物或其它結(jié)構(gòu)元件初始接觸時,機(jī)器人100可以轉(zhuǎn)動, 直到機(jī)器人100被定向成使得機(jī)器人100的前向驅(qū)動方向F與障礙物的表面平行。在一些情況下,墻壁,障礙物,或結(jié)構(gòu)元件可以是彎曲的,使得機(jī)器人100在沿著結(jié)構(gòu)元件的表面移動時跟隨彎曲的路徑。在這樣的實例中,機(jī)器人100可被定向成使得它相切于機(jī)構(gòu)元件的表面。隨著機(jī)器人100跟隨結(jié)構(gòu)元件,控制器190與姿態(tài)模塊198a接合。所記錄的傳感器數(shù)據(jù),其可以包括結(jié)構(gòu)元件的特征(例如,幾何特征),被存儲為對應(yīng)于結(jié)構(gòu)元件的幾何輪廓的標(biāo)識的一部分,從而成為在標(biāo)識模塊198c數(shù)據(jù)庫的地標(biāo)條目。
使用緩沖器傳感器,控制器190可以實現(xiàn)墻壁跟隨行為,其中所述機(jī)器人100可以與環(huán)境中的障礙物進(jìn)行物理接觸,并重新定向機(jī)器人100,使得機(jī)器人100的前向驅(qū)動方向F平行或切向于障礙物的表面。墻壁跟隨行為允許機(jī)器人100跟隨對應(yīng)于障礙物邊緣的路徑。例如,如前面所描述的,控制器190可以解釋左右緩沖器開關(guān)117L和117R的致動之間的時間差來確定接觸角。接觸角提供了機(jī)器人100需要轉(zhuǎn)動以對齊其前向驅(qū)動方向F與障礙物的量的推算量??刂破?90可以指示機(jī)器人100轉(zhuǎn)動所需的轉(zhuǎn)動角度的一小部分,然后繼續(xù)在前進(jìn)驅(qū)動方向F。再次接觸障礙物在此觸發(fā)緩沖器開關(guān)117L和117R。然后,控制器190可推算接觸角,并繼續(xù)調(diào)節(jié)機(jī)器人的方向。一旦接觸角低于某一量時,控制器190可以指示機(jī)器人轉(zhuǎn)動充分的角度,使前進(jìn)驅(qū)動方向F平行于障礙物。所述機(jī)器人然后繼續(xù)以墻壁跟隨行為跟隨墻壁。在墻壁跟隨行為的一些實施中,控制器190使用墻壁跟隨傳感器,以確定在什么方向使機(jī)器人100停止旋轉(zhuǎn)。當(dāng)墻壁跟隨傳感器確定機(jī)器人100的側(cè)面基本平行于障礙物,所述控制器190停止旋轉(zhuǎn)。在另一實施中,控制器190使用墻壁跟隨傳感器確定機(jī)器人100的導(dǎo)向,這將導(dǎo)致機(jī)器人100有大致切向于障礙物的表面的前向驅(qū)動方向。在彎曲的表面的情況下,控制器190可以使用切向?qū)?,以允許機(jī)器人100沿著曲線表面(例如,圓柱形柱,彎曲形墻壁,落地?zé)?,或其它結(jié)構(gòu)元件)跟隨。
在墻壁跟隨行為期間,機(jī)器人100可以接觸第二障礙物,隨著機(jī)器人跟隨一個第一障礙物。例如,當(dāng)機(jī)器人100跟隨在前進(jìn)驅(qū)動方向F的第一墻壁,機(jī)器人100可以接觸第二墻壁,其中第一墻壁在內(nèi)側(cè)角落遇到第二墻壁。在到達(dá)所述角落時,控制器190重新定向的機(jī)器人100(例如,后退和轉(zhuǎn)90度),以使機(jī)器人100繼續(xù)沿著第二墻壁在前進(jìn)驅(qū)動方向F移動。
當(dāng)控制器190實施墻壁跟隨時,控制器190可以連續(xù)地執(zhí)行姿態(tài)模塊 198a,制圖模塊198b,和標(biāo)識模塊198c。隨著姿態(tài)模塊198a推算機(jī)器人100的姿態(tài),制圖模塊198b可以用對應(yīng)于機(jī)器人100之下的穿越區(qū)域的可穿越單元和對應(yīng)于機(jī)器人100跟隨的障礙物(一個或多個)的非可穿越單元填充占用網(wǎng)格。標(biāo)識模塊198c可以進(jìn)一步識別機(jī)器人100已經(jīng)跟隨的獨(dú)特的路徑區(qū)段,在可被識別為地標(biāo)的墻壁跟隨期間。例如,如果機(jī)器人100在墻壁跟隨期間繞外角落走動,在完成鄰近外角落的路徑穿越時,控制器190可產(chǎn)生對應(yīng)于感應(yīng)輪廓的標(biāo)識(例如角度的數(shù)量和布置,彎曲的數(shù)量和布置),以及路徑的其它可測量物理參數(shù),(例如,路徑長度,路徑導(dǎo)向等),該標(biāo)識時可用于機(jī)器人100的重新定位的可識別地標(biāo)。
2.覆蓋行為
通過概述,覆蓋行為指示機(jī)器人100覆蓋并且清掃環(huán)境地板。機(jī)器人100可使用本領(lǐng)域已知的覆蓋路徑技術(shù)覆蓋環(huán)境的地板表面,例如,左右交錯或排鞭的型式,螺旋型式,或偽隨機(jī)反彈覆蓋。隨著機(jī)器人100覆蓋地板,控制器190可實施姿態(tài)模塊198a和制圖模塊198b以推算機(jī)器人100的姿態(tài),產(chǎn)生占據(jù)網(wǎng)格(例如,圖4A-4C的占據(jù)網(wǎng)格400a-400c,接下來將會具體描述),并且推算姿態(tài)推算的不確定性。覆蓋型式可以是一個,其中機(jī)器人被導(dǎo)航以順序的通過覆蓋區(qū)域,其中每個順序的通過跟隨在前一通過上被清掃的區(qū)域的邊緣(例如,作為螺旋或排辮型式),而不是偽隨機(jī)反彈型式。
隨著機(jī)器人100以覆蓋行為導(dǎo)航環(huán)境,在機(jī)器人100的姿態(tài)中控制器190的不確定性(示于圖1C),可能會隨著時間或行駛距離而增加。如果由控制器190計算的不確定性協(xié)方差在x,y,或θ方向整體或單獨(dú)地增大到高于預(yù)先確定的閾值,控制器190可以禁用制圖模塊198b,其修改并更新占用網(wǎng)格。確定性的預(yù)先確定的閾值的可以是,例如,在x-y方向上相對于機(jī)器人的直徑。預(yù)先確定的閾值可基于所述機(jī)器人的位置的標(biāo)準(zhǔn)偏差或協(xié)方差。例如,由于標(biāo)準(zhǔn)偏差的單位與機(jī)器人的位置的單位相同,所述預(yù)定閾值可以基于機(jī)器人的直徑來計算。在一些情況下,不確定性的協(xié)方差矩陣的閾值可以相對于機(jī)器人地直徑和最窄的預(yù)期走廊和門口設(shè)定一值,以確保機(jī)器人可正確地航行至給定地標(biāo)以重新定位。超過預(yù)先確定的閾值可以引起控制器190禁用覆蓋行為和制圖模塊198b。其結(jié)果是,制圖模塊198b的占用柵格以最后已知的狀態(tài)變得固定并且這種方式直到機(jī)器人100能夠在其姿態(tài)上減少不確定 性,在此時控制器190可沖洗開始將占用數(shù)據(jù)添加到制圖模塊198b。在一些實施中,機(jī)器人100將占用網(wǎng)格或其部分轉(zhuǎn)移以與可靠地再相遇的地標(biāo)對齊。
3.重新定位行為
當(dāng)機(jī)器人100的姿態(tài)不確定性增加到超過預(yù)先確定的閾值時,控制器190可以實現(xiàn)重新定位行為來降低姿態(tài)估算的不確定性,并通常計算機(jī)器人100的姿態(tài)校正。重新定位行為可以由SLAM處理使用以校正在航位推算信息中的偏移。
在初始化重新定位行為時,控制器190
(i)選定在標(biāo)識模塊198c中發(fā)現(xiàn)的地標(biāo)以用于重新定位;
(ii)引導(dǎo)機(jī)器人100至地標(biāo)的可疑物理地點;
(iii)在探測到與地標(biāo)的幾何輪廓相一致的緩沖器傳感器事件時,調(diào)整機(jī)器人的姿態(tài)以對環(huán)境重新定位機(jī)器人100。。
控制器190可以考慮多個因素以選擇地標(biāo)用于重新定位。例如,控制器190可以計算在機(jī)器人100的當(dāng)前推算地點和最近地標(biāo)的地點之間的可疑距離,例如,測地距離或?qū)Ш骄嚯x,并且選擇在最短距離的地標(biāo)??刂破?90可考慮已經(jīng)過去的持續(xù)時間,因為控制器190已經(jīng)記錄每個地標(biāo)并且選擇最近記錄的地標(biāo)??刂破?90還可考慮每個地標(biāo)對比其他地標(biāo)地獨(dú)特性并且選定最獨(dú)特的地標(biāo)。獨(dú)特性可以通過具有相同地標(biāo)級的其它地標(biāo)的數(shù)量來測定。當(dāng)控制器190選定地標(biāo),控制器190可計算至地標(biāo)的推算距離以及與地標(biāo)的幾何特征或輪廓的進(jìn)入推算角度。進(jìn)入角度可對應(yīng)于與包括幾何特征或地標(biāo)的障礙物接觸的預(yù)期角度。取決于在給定方向機(jī)器人的相對不確定性,控制器190還可選定地標(biāo),例如,如果不確定性高于在x方向的閾值,那么機(jī)器人可能選定將減少在該方向上不確定性的地標(biāo),例如正交于x方向的墻壁。
機(jī)器人控制裝置190可以使用本領(lǐng)域公知的路徑規(guī)劃算法,例如A*算法或Dijkstra算法,以將機(jī)器人100引導(dǎo)到地標(biāo)的可疑物理位置。這些算法允許機(jī)器人100,避開可能在機(jī)器人100的當(dāng)前位置的地標(biāo)之間干涉的結(jié)構(gòu)或墻壁。在一個實施中,機(jī)器人100具有可移動的緩沖器115,隨著機(jī)器人100移向可疑物理位置,控制器190可以基于在緩沖器115接觸地標(biāo)所代表的結(jié)構(gòu)時與緩沖器接觸的角度計算接觸角。使用地標(biāo)的接觸角和已知的輪 廓,控制器190然后可以計算機(jī)器人100的姿態(tài)。控制器190可將該計算的姿態(tài)與機(jī)器人100的推算姿態(tài)相比較。基于推算姿態(tài)和計算姿態(tài)之間的差別,控制器190調(diào)整機(jī)器人100的推算姿態(tài)以在環(huán)境內(nèi)并且相對于整體占用網(wǎng)格坐標(biāo)重新定位機(jī)器人100。計算姿態(tài)和推算姿態(tài)之間的差異然后可被用于以該新信息更新地圖。這可以設(shè)計轉(zhuǎn)換最近部分的占用網(wǎng)格或GraphSLAM地圖。更新地圖的實例在美國專利申請no.13/632997,申請日2012年10月1日,題為“Adaptive mapping with spatial summaries of sensor data”中描述,其全部內(nèi)容在此通過引用并入本文。
可替代或另外地,機(jī)器人100可以執(zhí)行墻壁跟隨行為跟隨在可疑物理位置的幾何輪廓和產(chǎn)生對應(yīng)于這些探測到的輪廓重新定位路徑數(shù)據(jù)。機(jī)器人100隨后的重新定位路徑數(shù)據(jù)進(jìn)行比較,以記錄的地標(biāo)和功能列表重新定位機(jī)器人100基于所述重新定位路徑數(shù)據(jù)和一個劃時代的匹配所確定的幾何輪廓之間的差的環(huán)境。聯(lián)系地標(biāo)式后,控制器190可以繼續(xù)墻壁跟隨行為。當(dāng)保險開關(guān)117L和117R被觸發(fā),控制器190可進(jìn)一步記錄的接觸角。機(jī)器人100進(jìn)行到追隨觸發(fā)緩沖器開關(guān)117L和117R,并產(chǎn)生可用于確定是否障礙物,墻壁或結(jié)構(gòu)對應(yīng)于一個劃時代重新定位路徑數(shù)據(jù)的障礙物,墻壁或結(jié)構(gòu)的表面或邊緣。控制器190可以開始觸發(fā)緩沖器傳感器系統(tǒng)135的第一時間之后發(fā)生的重新定位路徑。作為控制器190前進(jìn)通過路徑相鄰的障礙物,觸發(fā)緩沖器傳感器系統(tǒng)135的第二時間可以指示給控制器190以完成生成的重新定位路徑。控制器可以記錄的接觸角為第一和觸發(fā)緩沖器的第二實例開關(guān)117R,117L。
控制器190,生成重新定位路徑之后,可以比較響應(yīng)于地標(biāo)位置的推算值與控制器190產(chǎn)生的重新定位路徑時計算的實際值。所述控制器190可以分析通向?qū)?yīng)于地標(biāo)的結(jié)構(gòu)件的方式和沿著該結(jié)構(gòu)件的導(dǎo)航。在分析方式中,控制器190可以比較使用緩沖器傳感器系統(tǒng)(使用,例如,在緩沖器115)計算出的接觸角的推算方法的角度。例如,所述控制器190可以基于所述地標(biāo)的位置和機(jī)器人100的推算的當(dāng)前姿態(tài)推算接觸角度。當(dāng)機(jī)器人100接觸地標(biāo)時,控制器190可以使用所述緩沖器傳感器計算的問題的角度接近角度??刂破?90可以比較這兩個角度和利用這兩個角度在全局坐標(biāo)系內(nèi)重新定位所述機(jī)器人100的方向θ。在本方法中,控制器190可進(jìn)一步跟蹤測距,并將該測距與通向使用機(jī)器人100的推算位置計算的結(jié)構(gòu)單元的推算距離進(jìn)行 比較。機(jī)器人100可以碰到由比預(yù)期更早的特征所表示的結(jié)構(gòu)單元??刂破?90可以使用測距和推算的差之間的差別來重新定位的(X,Y)的機(jī)器人100的位置。
在分析導(dǎo)航時,機(jī)器人100可將產(chǎn)生重新定位路徑時推算的姿態(tài)與存儲在地標(biāo)數(shù)據(jù)庫中的姿態(tài)相比較。在包括x,y和θ差之間的差,可被用來將每個坐標(biāo)定位到環(huán)境的全局坐標(biāo)系統(tǒng)。沿著重新定位路徑的測距還可以和與地標(biāo)數(shù)據(jù)庫中的地標(biāo)相關(guān)聯(lián)的測距數(shù)據(jù)相比較。如果墻壁,障礙物或結(jié)構(gòu)元件在與另一個墻壁,障礙物或結(jié)構(gòu)元件的交叉點處終止,在與隨后障礙物的機(jī)器人之間的接觸角可以同與代表這兩個障礙物的交叉點的地標(biāo)相關(guān)聯(lián)的角相比較。例如,機(jī)器人100可選定代表第一墻壁的地標(biāo)。在產(chǎn)生沿著第一墻壁的重新定位路徑之后,機(jī)器人100接觸第二墻壁并且使用例如緩沖器115確定接觸角。然后機(jī)器人確定接觸角與第一第二墻壁之間的角之間的差(在墻壁跟隨行為期間在控制器190實施標(biāo)識模塊198c時確定)。
在一些重新定位行為的實施中,控制器190可將重新定位路徑與地標(biāo)相比較并且確定重新定位路徑和地標(biāo)之間的百分比匹配低于預(yù)先確定的閾值。百分比匹配可考慮對于構(gòu)成地標(biāo)的路徑區(qū)段的接近以及沿著該路徑區(qū)段的導(dǎo)航。如果百分比匹配低于匹配閾值,控制器190可初始化重新定位行為,用于另一個地標(biāo)。匹配閾值可基于用于禁用覆蓋行為和啟用重新定位行為的置信閾值(或,在一些實例中,不確定性閾值)。例如,匹配閾值和置信閾值可直接地成比例,使得低置信閾值導(dǎo)致低匹配閾值,高置信閾值導(dǎo)致高匹配閾值。匹配閾值可以是,例如,在75%和95%之間。當(dāng)控制器190重新定位機(jī)器人100時,機(jī)器人100的位置可被修改以匹配重新定位方案。
在成功地重新定位機(jī)器人100至第一地標(biāo)后,機(jī)器人100可第二次初始化重新定位行為,用于已知正交于第一地標(biāo)的第二地標(biāo)。例如,第一地標(biāo)可與x或y軸線對齊。這樣的對齊可導(dǎo)致對于一個或兩個方向的更好的重定位。其結(jié)果是,在重新定位至第一地標(biāo)時,控制器可設(shè)置位置的一個條目以匹配重新定位方案。對于正交于第一地標(biāo)的第二標(biāo)識重復(fù)重新定位方案可以允許控制器190重新定位機(jī)器人100,以更好地考慮在其它坐標(biāo)中的累積誤差或偏移,例如x,y和θ坐標(biāo)。正交的標(biāo)識給重新定位機(jī)器人100的推算取向θ提供了90°參考。每個標(biāo)識還提供用于重新定向推算位置坐標(biāo)x,y的每一個的參考。在一些情況下,機(jī)器人100可選定代表外角落或內(nèi)角落的地標(biāo)。 控制器190然后可以選擇不重復(fù)重新定位,因為在使用兩個正交地標(biāo)時,地標(biāo)已經(jīng)可被用于實現(xiàn)相同的姿態(tài)置信復(fù)原。
本文中公開和示出的機(jī)器人行為可包括以下文獻(xiàn)中公開的常規(guī)程序和行為,美國專利申請序列No.13/790643,提交日2013年3月8日,題為“Simultaneous Localization and Mapping for a Mobile Robot”,其在此通過引用全部并入本文。例如,該公開的姿態(tài)推算,墻壁跟隨和姿態(tài)置信計算也可以可替代在本申請的機(jī)器人系統(tǒng)中實施。
導(dǎo)航流程圖
圖2的流程圖200表示在至少部分地由墻壁包圍的區(qū)域內(nèi)導(dǎo)航自主機(jī)器人100的方法。該方法可包括上述參考圖1A-C的導(dǎo)航,制圖,定位,以及其它SLAM有關(guān)的軟件和硬件。
在步驟S205中,控制器以跟隨模式操縱機(jī)器人100以控制機(jī)器人沿著鄰近障礙物的路徑區(qū)段行進(jìn)并且記錄指示路徑區(qū)段的數(shù)據(jù)。為了以跟隨模式操縱機(jī)器人100,控制器可執(zhí)行跟隨行為,其利用緩沖器傳感器系統(tǒng)使機(jī)器人繞區(qū)域中的障礙物和物理元件航行。跟隨行為,可包括執(zhí)行姿態(tài)模塊198a,制圖模塊198b,以及標(biāo)識模塊198c。如前所述,這些模塊198a-c可協(xié)作以允許機(jī)器人100記錄指示鄰近障礙物的路徑區(qū)段的輪廓,長度和/或方向性。
在步驟S210中,控制器(例如圖1C的控制器190)以覆蓋行為操縱機(jī)器人以控制機(jī)器人100的穿越區(qū)域,同時執(zhí)行機(jī)器人的功能??刂破鬟€產(chǎn)生指示區(qū)域物理布局的數(shù)據(jù),包括在機(jī)器人執(zhí)行功能使探測到的區(qū)域邊界和障礙物周界。控制器可執(zhí)行覆蓋模式從而以覆蓋行為操縱機(jī)器人。結(jié)果是,機(jī)器人可以有關(guān)覆蓋行為的前述覆蓋型式的其中一個穿越區(qū)域。機(jī)器人所執(zhí)行的功能可包括清掃功能,其通過例如圖1C的清掃系統(tǒng)155來執(zhí)行。在覆蓋行為期間,控制器可命令機(jī)器人執(zhí)行姿態(tài)模塊198a和制圖模塊198b??刂破骺衫弥茍D模塊198b產(chǎn)生指示區(qū)域物理布局的數(shù)據(jù),其可以響應(yīng)于存儲在機(jī)器人地存儲器存儲元件上的占用網(wǎng)格。占用網(wǎng)格可以使用指示可穿越或非可穿越的記號表示區(qū)域邊界和障礙物周界,如有關(guān)制圖模塊198b中所示。
在執(zhí)行步驟S210時,控制器執(zhí)行步驟S215和S220。在步驟S215中,控制器更新指示區(qū)域內(nèi)當(dāng)前機(jī)器人姿態(tài)的數(shù)據(jù)。當(dāng)前機(jī)器人姿態(tài)包括機(jī)器人相對于區(qū)域全局坐標(biāo)的當(dāng)前地點和導(dǎo)向?;谥辽贆C(jī)器人測距數(shù)據(jù),控制器 更新指示當(dāng)前機(jī)器人姿態(tài)的數(shù)據(jù)。姿態(tài)模塊198a可允許控制器推算區(qū)域內(nèi)機(jī)器人地姿態(tài)。作為更新指示機(jī)器人姿態(tài)的數(shù)據(jù)的一部分,控制器可以通過將指示沿著路徑區(qū)段的機(jī)器人路徑的數(shù)據(jù)與指示記錄在跟隨模式中的路徑區(qū)段的數(shù)據(jù)相比較,更新指示當(dāng)前機(jī)器人地點的數(shù)據(jù)。該比較可以允許機(jī)器人確定,機(jī)器人沿著路徑區(qū)段的路徑是否充分匹配步驟S205中執(zhí)行的在跟隨模式中記錄的路徑區(qū)段。控制器,在確定充分匹配時,還可以更新指示計算機(jī)器人地點的數(shù)據(jù)和指示區(qū)域物理布局的數(shù)據(jù)的任一個,根據(jù)充分匹配的路徑區(qū)段。在步驟S220中,控制器計算機(jī)器人姿態(tài)置信水平?;谠跈C(jī)器人運(yùn)動期間可能已經(jīng)累計的推算的偏移和誤差,置信水平可被計算出。控制器繼續(xù)執(zhí)行步驟S215和S220,直至機(jī)器人姿態(tài)置信水平降到預(yù)定置信界限之下。
在步驟S225中,相應(yīng)于低于預(yù)定置信界限的機(jī)器人姿態(tài)置信水平,控制器操縱機(jī)器人至路徑區(qū)段的可疑地點,基于當(dāng)前機(jī)器人姿態(tài)。隨著控制器計算步驟S220中的機(jī)器人姿態(tài)置信水平,控制器可連續(xù)地將機(jī)器人姿態(tài)置信水平與預(yù)定的置信水平相比較。在探測降到預(yù)定置信界限之下的機(jī)器人姿態(tài)置信水平時,控制器可執(zhí)行重新定位行為以重新定位機(jī)器人。重新定位行為可命令機(jī)器人選定一標(biāo)識,其包括控制器可用于操縱機(jī)器人至路徑區(qū)段可疑地點的路徑區(qū)段的地點和導(dǎo)向。當(dāng)控制器操縱機(jī)器人至路徑區(qū)段的可疑地點時,控制器可追蹤軌道,接近路徑,以及,與障礙物的接觸(如果機(jī)器人接觸障礙物)。操縱機(jī)器人至路徑區(qū)段的可疑地點后,控制器進(jìn)一步以跟隨模式操縱機(jī)器人,以跟隨路徑區(qū)段,同時控制器記錄機(jī)器人姿態(tài)數(shù)據(jù)??刂破饕部梢杂涗浘彌_器傳感器數(shù)據(jù)。從記錄的機(jī)器人姿態(tài)數(shù)據(jù),控制器可產(chǎn)生指示沿著路徑區(qū)段的機(jī)器人路徑的數(shù)據(jù)。
在步驟S230中,響應(yīng)于探測到路徑區(qū)段的可疑地點,相對于指示區(qū)域物理布局的數(shù)據(jù),控制器更新指示計算的機(jī)器人姿態(tài)的數(shù)據(jù)。重新定位機(jī)器人100之后,控制器可指引機(jī)器人返回到其推算的姿態(tài)置信降至預(yù)定置信界限之下的位置,使得覆蓋從該點重新開始。
使用方法
上述方法,行為和模塊可以執(zhí)行用于各種情況和環(huán)境中的機(jī)器人設(shè)備。例如,雖然機(jī)器人100已經(jīng)描述為是帶有清掃系統(tǒng)的清掃機(jī)器人,但是,在 其它實施中,機(jī)器人可以是推算其自身地點并且產(chǎn)生其航行地區(qū)地圖的機(jī)器人剪草機(jī)或其它自主機(jī)器人。圖3-4所示的實例示出關(guān)于圖1-2所討論的機(jī)器人和控制系統(tǒng)的實施。
參照圖3所示,機(jī)器人100導(dǎo)航通過具有墻壁305a-l和書架310的房間300。全局坐標(biāo)系是由X軸和Y軸限定。墻壁305a,305c,305e,305g,305i,和305k平行于X軸,墻壁305b,305d,305f,305h,305j,和305l平行于Y軸。書架310抵靠墻壁305j。機(jī)器人可以利用參考圖1C所討論的姿態(tài)模塊198a推算其在全局坐標(biāo)系內(nèi)的姿態(tài)。推算的姿態(tài)包括機(jī)器人100的位置和導(dǎo)向。機(jī)器人100在全局坐標(biāo)系內(nèi)的位置由x和y限定。機(jī)器人的導(dǎo)向由θ限定,相對于x軸線測得。
圖4A表示隨著其沿著墻壁305a-l執(zhí)行墻壁跟隨行為圖3的房間300中的機(jī)器人100,以及在墻壁跟隨行為中,機(jī)器人100的控制器(例如圖1C的控制器190)產(chǎn)生的相應(yīng)的占用網(wǎng)格400a。虛擬機(jī)器人402是在占用網(wǎng)格400a內(nèi)機(jī)器人100的虛擬表示。虛擬機(jī)器人402的中心表示機(jī)器人100的推算的(x,y)位置,并且從虛擬機(jī)器人402的中心到圓周的線表示虛擬機(jī)器人402的推算的取向θ。
機(jī)器人繞房間300跟隨路徑410a,以標(biāo)記房間的非可穿越邊界。墻壁305a-l限定這些邊界。簡要參考回圖1C,機(jī)器人100的控制器執(zhí)行制圖模塊198b,以產(chǎn)生占用網(wǎng)格400a。占用網(wǎng)格400a包括陰影標(biāo)記的單元,以表示非可穿越單元,以及白色單元,以表示可穿越單元。
隨著機(jī)器人100執(zhí)行墻壁跟隨行為,控制器在圖4A的占用網(wǎng)格400a中產(chǎn)生由符號S1,S2,S3,或S4標(biāo)記的單元。由S1標(biāo)記的單元對應(yīng)于鄰近房間300內(nèi)角落的路徑的起始。由S2標(biāo)記的單元對應(yīng)于鄰近房間300的外角落的路徑的起始。由S3標(biāo)記的單元對應(yīng)于鄰近平行于X軸線的房間300的地標(biāo)的路徑的起始。由S4標(biāo)記的單元對應(yīng)于鄰近平行于Y軸線的房間300的地標(biāo)的路徑的起始。
在一些實施方式中,通過跟隨遠(yuǎn)離墻壁的障礙物的邊緣,機(jī)器人標(biāo)記房間的非可穿越邊界。例如,在房間內(nèi)但離墻壁不遠(yuǎn)的障礙物或固定對象可被用作地標(biāo),用于重新定位。
圖4B表示執(zhí)行覆蓋行為的機(jī)器人100。機(jī)器人100跟隨路徑410b。簡要參考圖1C,隨著機(jī)器人繞房間300航行,機(jī)器人100的控制器執(zhí)行姿態(tài) 模塊198a和制圖模塊198b以更新占用網(wǎng)格400b。機(jī)器人100的控制器還執(zhí)行姿態(tài)模塊198a,以計算機(jī)器人100沿著路徑410b的推算姿態(tài),以及與推算姿態(tài)的置信。置信可以被計算為機(jī)器人與其姿態(tài)的每個元素的置信的平均。
在占用網(wǎng)格400b中的點415a-c表示隨著機(jī)器人100沿著路徑410b航行,機(jī)器人100的x,y地點的推算。點415a-c僅表示沿著路徑410b所產(chǎn)生的電的子集。在每個點415a-c處,機(jī)器人100具有姿態(tài)和姿態(tài)置信值(x,y,θ,C,t),其中x和y對應(yīng)于全局坐標(biāo)系中機(jī)器人100的推算位置,θ對應(yīng)于相對于全局坐標(biāo)系統(tǒng)的機(jī)器人100的導(dǎo)向,C對應(yīng)于機(jī)器人100的平均置信。點415a-c還可以具有可被用來計算測距的相應(yīng)的時間戳。
點415C對應(yīng)于路徑410b的終點419。在點415c處,機(jī)器人100的控制器推算機(jī)器人100的姿態(tài),如在占用網(wǎng)格400b中的虛擬機(jī)器人402所示出的。機(jī)器人100的位置可推算為(2.1m,0.31m)??刂破魍扑銠C(jī)器人相對于X軸線的導(dǎo)向為0°(零度)。機(jī)器人在房間300內(nèi)的實際位置是(2.6m,0.29m)。機(jī)器人100相對于X軸線的實際導(dǎo)向是8°。如圖4B所示,在點415c處的置信為89.7%,其低于預(yù)定的置信閾值(在本示例中是90%)。因為在路徑410b的終點419處,姿態(tài)置信水平降到閾值之下,因此機(jī)器人100脫離覆蓋行為并且進(jìn)行重新定位行為,將要參考圖4C描述。
圖4C表示機(jī)器人100執(zhí)行重新定位行為以恢復(fù)機(jī)器人100在其推算姿態(tài)上的置信。簡要地參考圖1C,隨著控制器(例如圖1C的控制器190)實施重新定位行為,機(jī)器人100使用姿態(tài)模塊198a來推算機(jī)器人100的當(dāng)前姿態(tài)。機(jī)器人100的控制器還可以禁用制圖模塊198b使得在姿態(tài)置信低于置信閾值時控制器不再繼續(xù)更新占用網(wǎng)格。機(jī)器人100的控制器訪問標(biāo)識模塊198c以發(fā)現(xiàn)對應(yīng)于控制器可導(dǎo)航機(jī)器人100的地標(biāo)的優(yōu)選地標(biāo)數(shù)據(jù)庫條目。
在圖4C所示的實例中,機(jī)器人100物理地位于房間300中所示的地點,并且機(jī)器人100的控制器將機(jī)器人100的位置推算為虛擬機(jī)器人402所在,其在占用網(wǎng)格400c中示出。在圖4C中,在開始重新定位行為之前,虛擬機(jī)器人402對應(yīng)于虛擬機(jī)器人地初始位置?;谔摂M機(jī)器人402的位置,機(jī)器人100的控制器推算五個地標(biāo)420a-e(在圖4B中標(biāo)簽化)為最接近虛擬機(jī)器人402的位置?;谏鲜隼缈梢删嚯x和獨(dú)特性的因素,控制器選定地標(biāo) 420c,其物理地顯示為房間300中的外角落425。在墻壁跟隨期間控制器產(chǎn)生地標(biāo)420c,當(dāng)控制器在其姿態(tài)上具有高置信的時候。其結(jié)果是,地標(biāo)路徑430與鄰近外角落425的物理路徑良好匹配。沿著外角落425的地標(biāo)路徑430包括開始點430a,轉(zhuǎn)向點430b,和結(jié)束點430c。
基于虛擬機(jī)器人402的地點和地標(biāo)路徑430,隨著機(jī)器人100接近墻壁305c,控制器可推算可疑的接近接觸角θs。使用先前提到的路徑規(guī)劃算法,控制器選定軌道435以向前移動至地標(biāo)路徑430的開始點430a?;诒煌扑阋蔀殚_始點430a、以及被推算要成為虛擬機(jī)器人402,控制器以軌道435為基礎(chǔ)。機(jī)器人100沿著實際軌道437移動。當(dāng)機(jī)器人100接觸墻壁305c時,控制器可使用機(jī)器人100的緩沖器傳感器系統(tǒng)計算實際的接近接觸角θA。
控制器將與墻壁305c的接觸點標(biāo)記為重新定位路徑440的開始點440a。機(jī)器人100轉(zhuǎn)向沿著墻壁305c朝向外角落425移動。當(dāng)控制器確定,機(jī)器人100已經(jīng)穿越墻壁305c時,機(jī)器人100轉(zhuǎn)向平行于墻壁305d移動??刂破骺纱_定,機(jī)器人100通過,例如,使用機(jī)器人100的緩沖器作為感應(yīng)到墻壁305c不再鄰近墻壁305c的處決方式,已經(jīng)穿越了墻壁305c。隨著機(jī)器人100沿著墻壁305c前進(jìn),機(jī)器人100可故意地轉(zhuǎn)向墻壁305c以檢查墻壁305c是否仍然鄰近。
控制器將轉(zhuǎn)向點44b標(biāo)記為在此機(jī)器人100轉(zhuǎn)向沿著墻壁305d移動的點。隨著地標(biāo)的標(biāo)識路徑430已經(jīng)指示出墻壁304c大致垂直于墻壁305d,控制器命令機(jī)器人轉(zhuǎn)動90°。控制器然后命令機(jī)器人100沿著墻壁305d前進(jìn)。很多時間可觸發(fā)控制器以指引機(jī)器人100停止沿墻壁305d前進(jìn)。例如,如果作為從開始點440a所測量的行進(jìn)距離已經(jīng)超出了外角落425的標(biāo)識中存儲的路徑長度,那么,控制器可停止前進(jìn)??刂破饔媒K止重新定位路徑440的結(jié)束點440c來標(biāo)記停止地點。
控制器可以將從重新定位路徑440計算出得參數(shù)與地標(biāo)路徑430的參數(shù)相比較。控制器可將假設(shè)的接近接觸角θs與實際的接近接觸角θA比較,并且可使用在假設(shè)的接近接觸角θs與實際的接近接觸角θA中的差別來恢復(fù)機(jī)器人100的導(dǎo)向推算的置信??刂破骺捎嬎?i)在重新定位路徑440的開始點440a和轉(zhuǎn)向點440b之間的距離,以及(ii),在標(biāo)識路徑430的開始點430a和轉(zhuǎn)向點430b之間的距離。控制器可比較這兩個距離并且使用這兩個距離 之間的差來恢復(fù)在機(jī)器人100的x位置的推算中的置信??刂破骺捎嬎?i)在重新定位路徑440的開始點440a和標(biāo)識路徑430的開始點430a之間的位置差,或(ii)在重新定位路徑的轉(zhuǎn)向點440b和標(biāo)識路徑430的轉(zhuǎn)向點430b之間的位置差。控制器可使用兩個位置之間的位差來恢復(fù)在機(jī)器人100的y位置的推算上的置信。
從上面的比較,控制器可以校正虛擬機(jī)器人402的姿態(tài)(X,Y,θ)和恢復(fù)的置信C。圖4C中示出的虛擬機(jī)器人450a-b對應(yīng)于虛擬機(jī)器人的最終位置。虛擬機(jī)器人的預(yù)先定位最終位置450a和后定位最終位置450b在占用網(wǎng)格400c中示出。后定位最終位置450b更好地與機(jī)器人100的實際最終位置460匹配??刂破魅缓罂筛碌貓D的部分以更好地與新校正的位置匹配。在一個實施中,其中完全占用網(wǎng)格包括很多重疊的子網(wǎng)格,這些子網(wǎng)格的相對位置可被更新。在另一個實施中,控制器可更新在GralphSLAM姿態(tài)約束圖中機(jī)器人地位置。這些技術(shù)在美國專利申請no.13/632997,申請日2012年10月1日,題為“Adaptive mapping with spatial summaries of sensor data”中描述。然后,控制器可將機(jī)器人100重新定位至禁用覆蓋行為的位置,如圖4B所示。機(jī)器人100可繼續(xù)覆蓋行為和重新定位行為的循環(huán),直至控制器已經(jīng)確定機(jī)器人100已經(jīng)覆蓋了房間300。
可替代的實施
以上描述的方法和系統(tǒng)可以包括賦予了不同特征和優(yōu)勢的若干替代或添加。
機(jī)器人還可以包括本領(lǐng)域中已知的,有利于移動機(jī)器人的其它傳感器。例如,所述緩沖器傳感器可以有利地包括基于壓力或基于電容的傳感器,如公開在美國專利申請PCT/US2013/031264,申請日為2013年3月14日,題為“Compliant Solid-State Bumper for Robot”中的,其全部內(nèi)容通過引用并入本文。機(jī)器人還可以包括相機(jī)捕捉環(huán)境中的3D特征圖像。所述圖像可用于VSLAM。
雖然墻壁跟隨行為已經(jīng)描述為通過使用緩沖器開關(guān)117L和117R的差動致動而被簡便化,但是在其它實施中,機(jī)器人可另外地或可替代地使用特定墻壁跟隨光學(xué)傳感器。隨著機(jī)器人沿墻壁移動,墻壁跟隨傳感器確定機(jī)器人平行于墻壁移動。
雖然覆蓋地板區(qū)域已經(jīng)被描述成使用左右交錯型式,排辮型式,或偽隨機(jī)路徑實現(xiàn),但是在其它實施中,機(jī)器人可使用螺旋型式。機(jī)器人可使用這些型式的組合。在一個實例中,機(jī)器人將這些區(qū)域分解成多個地區(qū)并且在每個地區(qū)實施不同的型式。
雖然標(biāo)識的特征列表已經(jīng)被描述為包括姿態(tài)、時間戳和置信,但特征列表還包括“最后觀察時間”,使得機(jī)器人可確定合適產(chǎn)生最近標(biāo)識。標(biāo)識還可包括存儲時間戳的域,時間戳指示了相應(yīng)的地標(biāo)信息被更新的最后時間。標(biāo)識可包括分開的“地標(biāo)姿態(tài)”域,其存儲對應(yīng)于地標(biāo)被創(chuàng)建或更新至數(shù)據(jù)庫時的全局參考機(jī)器人姿態(tài)。
特征列表可進(jìn)一步包括由機(jī)器人上的其它傳感器所收集的信息。例如,在一些情況下,機(jī)器人可重新定位至房間中的懸壁或下降處。其結(jié)果是,標(biāo)識可包括將懸壁或跌落與房間中其它結(jié)構(gòu)區(qū)分開的懸壁傳感器數(shù)據(jù)。雖然房間的障礙物已經(jīng)被描述成墻壁或結(jié)構(gòu)元件,但是應(yīng)當(dāng)理解的是,如果懸壁傳感器數(shù)據(jù)被進(jìn)一步結(jié)合到SLAM系統(tǒng)中,那么物理元件可包括在機(jī)器人之下的沒有地板(例如,懸壁),地板特性改變(例如,從地毯到瓷磚),或是懸壁傳感器可探測到的其它特征。
在一個實施中,SLAM系統(tǒng)可停止將新地標(biāo)加入到數(shù)據(jù)可中,以響應(yīng)于條目的預(yù)定數(shù)目,條目的預(yù)定密度,或時間的預(yù)定量。例如,至少部分地響應(yīng)于地標(biāo)密度已經(jīng)超過預(yù)定閾值,例如每平方米5-10個地標(biāo),SLAM系統(tǒng)可停止在環(huán)境的一部分中或整個環(huán)境中創(chuàng)造地標(biāo)。例如,當(dāng)對于環(huán)境的數(shù)據(jù)庫在環(huán)境的一部分中展示出相對高的地標(biāo)密度并且在環(huán)境的另一部分中展示出相對低的地標(biāo)密度時,對于對應(yīng)于數(shù)據(jù)庫中相對高地標(biāo)密度的那部分環(huán)境,向數(shù)據(jù)庫添加新地標(biāo)可以被禁用,并且低于對應(yīng)于相對低地標(biāo)密度的那部分環(huán)境,添加新地標(biāo)可被啟用。
當(dāng)控制器重新定位機(jī)器人時,一旦一個或更多個標(biāo)識匹配發(fā)生,重新定位已經(jīng)被描述為調(diào)整姿態(tài)(x,y,和θ)??商娲?,占用網(wǎng)格或地圖的單元可被調(diào)整,使得它們旋轉(zhuǎn)以與新的定位方案對準(zhǔn)。例如,在基于GraphSLAM地圖中,在單元之間的邊緣可基于標(biāo)識匹配來調(diào)整。
占用網(wǎng)格已經(jīng)描述為包括可穿越和非可穿越單元。在一些實施中,占用網(wǎng)格可以進(jìn)一步包括代表在可穿越和非可穿越區(qū)之間的單元的邊界單元。這些單元一般可對應(yīng)于在墻壁跟隨行為期間所覆蓋的單元。
雖然已經(jīng)描述了被覆在三個單元(例如,對于墻壁的三個單元,內(nèi)角落,或外角落)上的模板,但是在一些實施中,模板可包括四個或更多個單元。模板可包括可穿越,非可穿越,以及,邊界單元(假如占用網(wǎng)格使用邊界單元的情況下)。
雖然已經(jīng)描述控制器190在選擇機(jī)器人100重新定位的地標(biāo)時的許多參數(shù),但是在一些實施中,控制器任意地從標(biāo)識模塊中選擇地標(biāo)。在其它實施中,控制器可考慮其它因素,例如機(jī)器人姿態(tài)的置信水平,在控制器產(chǎn)生地標(biāo)的時候。
如前面提到的,在某些情況下,如果由控制器進(jìn)行的比較導(dǎo)致低于百分比匹配閾值的大差異,那么控制器指示機(jī)器人尋找地標(biāo)。在這樣的實例中,機(jī)器人可減少置信水平和匹配閾值以增加控制器發(fā)現(xiàn)重新定位路徑和定位路徑之間合適匹配的可能性。
雖然重新地位行為已經(jīng)描述以引導(dǎo)機(jī)器人至地標(biāo)路徑的開始點,但在一些實施中,重新定位行為可引導(dǎo)機(jī)器人至標(biāo)識的結(jié)束點。在這樣的實施中,控制器可重新計算沿著對應(yīng)于地標(biāo)路徑的預(yù)期姿態(tài)。例如,控制器可能需要修改機(jī)器人沿路徑的預(yù)期導(dǎo)向。
而置信已被描述為機(jī)器人的地點和導(dǎo)向坐標(biāo)(X,Y,θ)的置信的組合推算,在一些實現(xiàn)中,置信可被分配給所推算的機(jī)器人姿態(tài)的每個元件。例如,如果元件中的一個的置信減小到低于預(yù)先確定的置信度閾值,則機(jī)器人可以禁用制圖模塊和覆蓋行為并且進(jìn)行重新定位行為。在其它情況下,置信由兩個元件推算。
而姿態(tài)已被理解為包括x,y,θ,在一些實施中,機(jī)器人可以能夠確定海拔z。所述環(huán)境可具有高度特征,并且,機(jī)器人可以使用這些特征來重新定位機(jī)器人。
本文所公開的SLAM系統(tǒng)可包括本領(lǐng)域中已知的其它的SLAM系統(tǒng)的各方面。例如,來自美國申請10/739902,申請日為2003年12月17日,題為“Systems and methods for using multiple hypotheses in a visual simultaneous localization and mapping system”的用在本公開中的VSLAM系統(tǒng)的算法和結(jié)構(gòu),可以實施到本申請中描述的SLAM系統(tǒng)。本公開通過在本申請中引用作為參考。
盡管許多的實例都被描述用于說明的目的,前面的描述不旨在限制本文 所公開的實施方案的范圍。有與將在以下權(quán)利要求書的范圍內(nèi)的其它實施例和修改。