器人100的推算取向Θ提供了 90°參考。每個(gè)標(biāo)識(shí)還提供用于重新定向推算位置坐標(biāo)x,y的每一個(gè)的參考。在一些情況下,機(jī)器人100可選定代表外角落或內(nèi)角落的地標(biāo)??刂破?90然后可以選擇不重復(fù)重新定位,因?yàn)樵谑褂脙蓚€(gè)正交地標(biāo)時(shí),地標(biāo)已經(jīng)可被用于實(shí)現(xiàn)相同的姿態(tài)置信復(fù)原。
[0088]本文中公開(kāi)和示出的機(jī)器人行為可包括以下文獻(xiàn)中公開(kāi)的常規(guī)程序和行為,美國(guó)專利申請(qǐng)序列N0.13/790643,提交日 2013年3 月8 日,題為 “Simultaneous Local izat1nand Mapping for a Mobile Robot”,其在此通過(guò)引用全部并入本文。例如,該公開(kāi)的姿態(tài)推算,墻壁跟隨和姿態(tài)置信計(jì)算也可以可替代在本申請(qǐng)的機(jī)器人系統(tǒng)中實(shí)施。
[0089]導(dǎo)航流程圖
[0090]圖2的流程圖200表示在至少部分地由墻壁包圍的區(qū)域內(nèi)導(dǎo)航自主機(jī)器人100的方法。該方法可包括上述參考圖1A-C的導(dǎo)航,制圖,定位,以及其它SLAM有關(guān)的軟件和硬件。
[0091]在步驟S205中,控制器以跟隨模式操縱機(jī)器人100以控制機(jī)器人沿著鄰近障礙物的路徑區(qū)段行進(jìn)并且記錄指示路徑區(qū)段的數(shù)據(jù)。為了以跟隨模式操縱機(jī)器人100,控制器可執(zhí)行跟隨行為,其利用緩沖器傳感器系統(tǒng)使機(jī)器人繞區(qū)域中的障礙物和物理元件航行。跟隨行為,可包括執(zhí)行姿態(tài)模塊198a,制圖模塊198b,以及標(biāo)識(shí)模塊198c。如前所述,這些模塊198a-c可協(xié)作以允許機(jī)器人100記錄指示鄰近障礙物的路徑區(qū)段的輪廓,長(zhǎng)度和/或方向性。
[0092]在步驟S210中,控制器(例如圖1C的控制器190)以覆蓋行為操縱機(jī)器人以控制機(jī)器人100的穿越區(qū)域,同時(shí)執(zhí)行機(jī)器人的功能??刂破鬟€產(chǎn)生指示區(qū)域物理布局的數(shù)據(jù),包括在機(jī)器人執(zhí)行功能使探測(cè)到的區(qū)域邊界和障礙物周界。控制器可執(zhí)行覆蓋模式從而以覆蓋行為操縱機(jī)器人。結(jié)果是,機(jī)器人可以有關(guān)覆蓋行為的前述覆蓋型式的其中一個(gè)穿越區(qū)域。機(jī)器人所執(zhí)行的功能可包括清掃功能,其通過(guò)例如圖1C的清掃系統(tǒng)155來(lái)執(zhí)行。在覆蓋行為期間,控制器可命令機(jī)器人執(zhí)行姿態(tài)模塊198a和制圖模塊198b??刂破骺衫弥茍D模塊198b產(chǎn)生指示區(qū)域物理布局的數(shù)據(jù),其可以響應(yīng)于存儲(chǔ)在機(jī)器人地存儲(chǔ)器存儲(chǔ)元件上的占用網(wǎng)格。占用網(wǎng)格可以使用指示可穿越或非可穿越的記號(hào)表示區(qū)域邊界和障礙物周界,如有關(guān)制圖模塊198b中所示。
[0093]在執(zhí)行步驟S210時(shí),控制器執(zhí)行步驟S215和S220。在步驟S215中,控制器更新指示區(qū)域內(nèi)當(dāng)前機(jī)器人姿態(tài)的數(shù)據(jù)。當(dāng)前機(jī)器人姿態(tài)包括機(jī)器人相對(duì)于區(qū)域全局坐標(biāo)的當(dāng)前地點(diǎn)和導(dǎo)向?;谥辽贆C(jī)器人測(cè)距數(shù)據(jù),控制器更新指示當(dāng)前機(jī)器人姿態(tài)的數(shù)據(jù)。姿態(tài)模塊198a可允許控制器推算區(qū)域內(nèi)機(jī)器人地姿態(tài)。作為更新指示機(jī)器人姿態(tài)的數(shù)據(jù)的一部分,控制器可以通過(guò)將指示沿著路徑區(qū)段的機(jī)器人路徑的數(shù)據(jù)與指示記錄在跟隨模式中的路徑區(qū)段的數(shù)據(jù)相比較,更新指示當(dāng)前機(jī)器人地點(diǎn)的數(shù)據(jù)。該比較可以允許機(jī)器人確定,機(jī)器人沿著路徑區(qū)段的路徑是否充分匹配步驟S205中執(zhí)行的在跟隨模式中記錄的路徑區(qū)段??刂破鳎诖_定充分匹配時(shí),還可以更新指示計(jì)算機(jī)器人地點(diǎn)的數(shù)據(jù)和指示區(qū)域物理布局的數(shù)據(jù)的任一個(gè),根據(jù)充分匹配的路徑區(qū)段。在步驟S220中,控制器計(jì)算機(jī)器人姿態(tài)置信水平?;谠跈C(jī)器人運(yùn)動(dòng)期間可能已經(jīng)累計(jì)的推算的偏移和誤差,置信水平可被計(jì)算出。控制器繼續(xù)執(zhí)行步驟S215和S220,直至機(jī)器人姿態(tài)置信水平降到預(yù)定置信界限之下。
[0094]在步驟S225中,相應(yīng)于低于預(yù)定置信界限的機(jī)器人姿態(tài)置信水平,控制器操縱機(jī)器人至路徑區(qū)段的可疑地點(diǎn),基于當(dāng)前機(jī)器人姿態(tài)。隨著控制器計(jì)算步驟S220中的機(jī)器人姿態(tài)置信水平,控制器可連續(xù)地將機(jī)器人姿態(tài)置信水平與預(yù)定的置信水平相比較。在探測(cè)降到預(yù)定置信界限之下的機(jī)器人姿態(tài)置信水平時(shí),控制器可執(zhí)行重新定位行為以重新定位機(jī)器人。重新定位行為可命令機(jī)器人選定一標(biāo)識(shí),其包括控制器可用于操縱機(jī)器人至路徑區(qū)段可疑地點(diǎn)的路徑區(qū)段的地點(diǎn)和導(dǎo)向。當(dāng)控制器操縱機(jī)器人至路徑區(qū)段的可疑地點(diǎn)時(shí),控制器可追蹤軌道,接近路徑,以及,與障礙物的接觸(如果機(jī)器人接觸障礙物)。操縱機(jī)器人至路徑區(qū)段的可疑地點(diǎn)后,控制器進(jìn)一步以跟隨模式操縱機(jī)器人,以跟隨路徑區(qū)段,同時(shí)控制器記錄機(jī)器人姿態(tài)數(shù)據(jù)。控制器也可以記錄緩沖器傳感器數(shù)據(jù)。從記錄的機(jī)器人姿態(tài)數(shù)據(jù),控制器可產(chǎn)生指示沿著路徑區(qū)段的機(jī)器人路徑的數(shù)據(jù)。
[0095]在步驟S230中,響應(yīng)于探測(cè)到路徑區(qū)段的可疑地點(diǎn),相對(duì)于指示區(qū)域物理布局的數(shù)據(jù),控制器更新指示計(jì)算的機(jī)器人姿態(tài)的數(shù)據(jù)。重新定位機(jī)器人100之后,控制器可指引機(jī)器人返回到其推算的姿態(tài)置信降至預(yù)定置信界限之下的位置,使得覆蓋從該點(diǎn)重新開(kāi)始。
[0096]使用方法
[0097]上述方法,行為和模塊可以執(zhí)行用于各種情況和環(huán)境中的機(jī)器人設(shè)備。例如,雖然機(jī)器人100已經(jīng)描述為是帶有清掃系統(tǒng)的清掃機(jī)器人,但是,在其它實(shí)施中,機(jī)器人可以是推算其自身地點(diǎn)并且產(chǎn)生其航行地區(qū)地圖的機(jī)器人剪草機(jī)或其它自主機(jī)器人。圖3-4所示的實(shí)例示出關(guān)于圖1A、圖1B、圖1C和圖2所討論的機(jī)器人和控制系統(tǒng)的實(shí)施。
[0098]參照?qǐng)D3所示,機(jī)器人100導(dǎo)航通過(guò)具有墻壁305a_l和書(shū)架310的房間300。全局坐標(biāo)系是由X軸和Y軸限定。墻壁305a,305c,305e,305g,305i,和305k平行于X軸,墻壁305b,305d,305f,305h,305 j,和3051平行于Y軸。書(shū)架310抵靠墻壁305 j。機(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)向由Θ限定,相對(duì)于X軸線測(cè)得。
[0099]圖4A表示隨著其沿著墻壁305a_l執(zhí)行墻壁跟隨行為圖3的房間300中的機(jī)器人100,以及圖4A’表示在墻壁跟隨行為中,機(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的推算的取向Θ。
[0100]機(jī)器人繞房間300跟隨路徑410a,以標(biāo)記房間的非可穿越邊界。墻壁305a-l限定這些邊界。簡(jiǎn)要參考回圖1C,機(jī)器人100的控制器執(zhí)行制圖模塊198b,以產(chǎn)生占用網(wǎng)格400a。占用網(wǎng)格400a包括陰影標(biāo)記的單元,以表示非可穿越單元,以及白色單元,以表示可穿越單
J L ο
[0101]隨著機(jī)器人100執(zhí)行墻壁跟隨行為,控制器在圖4A’的占用網(wǎng)格400a中產(chǎn)生由符號(hào)SI,S2,S3,或S4標(biāo)記的單元。由SI標(biāo)記的單元對(duì)應(yīng)于鄰近房間300內(nèi)角落的路徑的起始。由S2標(biāo)記的單元對(duì)應(yīng)于鄰近房間300的外角落的路徑的起始。由S3標(biāo)記的單元對(duì)應(yīng)于鄰近平行于X軸線的房間300的地標(biāo)的路徑的起始。由S4標(biāo)記的單元對(duì)應(yīng)于鄰近平行于Y軸線的房間300的地標(biāo)的路徑的起始。
[0102]在一些實(shí)施方式中,通過(guò)跟隨遠(yuǎn)離墻壁的障礙物的邊緣,機(jī)器人標(biāo)記房間的非可穿越邊界。例如,在房間內(nèi)但離墻壁不遠(yuǎn)的障礙物或固定對(duì)象可被用作地標(biāo),用于重新定位。
[0103]圖4B表示執(zhí)行覆蓋行為的機(jī)器人100。機(jī)器人100跟隨路徑410b。簡(jiǎn)要參考圖1C,隨著機(jī)器人繞房間300航行,機(jī)器人100的控制器執(zhí)行姿態(tài)模塊198a和制圖模塊198b以更新占用網(wǎng)格400b。機(jī)器人100的控制器還執(zhí)行姿態(tài)模塊198a,以計(jì)算機(jī)器人100沿著路徑410b的推算姿態(tài),以及與推算姿態(tài)的置信。置信可以被計(jì)算為機(jī)器人與其姿態(tài)的每個(gè)元素的置信的平均。
[0104]在圖4B’中,在占用網(wǎng)格400b中的點(diǎn)415a_c表示隨著機(jī)器人100沿著路徑410b航行,機(jī)器人100的x,y地點(diǎn)的推算。點(diǎn)415a-c僅表示沿著路徑410b所產(chǎn)生的電的子集。在每個(gè)點(diǎn)415&-(3處,機(jī)器人100具有姿態(tài)和姿態(tài)置信值(1,7,0,(:,0,其中1和7對(duì)應(yīng)于全局坐標(biāo)系中機(jī)器人100的推算位置,Θ對(duì)應(yīng)于相對(duì)于全局坐標(biāo)系統(tǒng)的機(jī)器人100的導(dǎo)向,C對(duì)應(yīng)于機(jī)器人100的平均置信。點(diǎn)415a-c還可以具有可被用來(lái)計(jì)算測(cè)距的相應(yīng)的時(shí)間戳。
[0105]點(diǎn)415C對(duì)應(yīng)于路徑410b的終點(diǎn)419。在點(diǎn)415c處,機(jī)器人100的控制器推算機(jī)器人100的姿態(tài),如在占用網(wǎng)格400b中的虛擬機(jī)器人402所示出的。機(jī)器人100的位置可推算為(2.lm,0.31m)。控制器推算機(jī)器人相對(duì)于X軸線的導(dǎo)向?yàn)?° (零度)。機(jī)器人在房間300內(nèi)的實(shí)際位置是(2.6m,0.29m)。機(jī)器人100相對(duì)于X軸線的實(shí)際導(dǎo)向是8°。如圖4B所示,在點(diǎn)415c處的置信為89.7%,其低于預(yù)定的置信閾值(在本示例中是90%)。因?yàn)樵诼窂?10b的終點(diǎn)419處,姿態(tài)置信水平降到閾值之下,因此機(jī)器人100脫離覆蓋行為并且進(jìn)行重新定位行為,將要參考圖4C描述。
[0106]圖4C表示機(jī)器人100執(zhí)行重新定位行為以恢復(fù)機(jī)器人100在其推算姿態(tài)上的置信。簡(jiǎn)要地參考圖1C,隨著控制器(例如圖1C的控制器190)實(shí)施重新定位行為,機(jī)器人100使用姿態(tài)模塊198a來(lái)推算機(jī)器人100的當(dāng)前姿態(tài)。機(jī)器人100的控制器還可以禁用制圖模塊198b使得在姿態(tài)置信低于置信閾值時(shí)控制器不再繼續(xù)更新占用網(wǎng)格。機(jī)器人100的控制器訪問(wèn)標(biāo)識(shí)模塊198c以發(fā)現(xiàn)對(duì)應(yīng)于控制器可導(dǎo)航機(jī)器人100的地標(biāo)的優(yōu)選地標(biāo)數(shù)據(jù)庫(kù)條目。
[0107]在圖4C所示的實(shí)例中,機(jī)器人100物理地位于房間300中所示的地點(diǎn),并且機(jī)器人100的控制器將機(jī)器人100的位置推算為虛擬機(jī)器人402所在,其在占用網(wǎng)格400c中示出。在圖4C’中,在開(kāi)始重新定位行為之前,虛擬機(jī)器人402對(duì)應(yīng)于虛擬機(jī)器人地初始位置?;谔摂M機(jī)器人402的位置,機(jī)器人100的控制器推算五個(gè)地標(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)上具有高置信的時(shí)候。其結(jié)果是,地標(biāo)路徑430與鄰近外角落425的物理路徑良好匹配。沿著外角落425的地標(biāo)路徑430包括開(kāi)始點(diǎn)430a,轉(zhuǎn)向點(diǎn)430b,和結(jié)束點(diǎn)430c。
[0108]基于虛擬機(jī)器人402的地點(diǎn)和地標(biāo)路徑430,隨著機(jī)器人100接近墻壁305c,控制器可推算可疑的接近接觸角Os。使用先前提到的路徑規(guī)劃算法,控制器選定軌道435以向前移動(dòng)至地標(biāo)路徑430的開(kāi)始點(diǎn)430a?;诒煌扑阋蔀殚_(kāi)始點(diǎn)430a、以及被推算要成為虛擬機(jī)器人402,控制器以軌道435為基礎(chǔ)。機(jī)器人100沿著實(shí)際軌道437移動(dòng)。當(dāng)機(jī)器人100接觸墻壁305c時(shí),控制器可使用機(jī)器人100的緩沖器傳感器系統(tǒng)計(jì)算實(shí)際的接近接觸角ΘΑ。
[0109]控制器將與墻壁305c的接觸點(diǎn)標(biāo)記為重新定位路徑440的開(kāi)始點(diǎn)440a。機(jī)器人100轉(zhuǎn)向沿著墻壁305c朝向外角落425移動(dòng)。當(dāng)控制器確定,機(jī)器人100已經(jīng)穿越墻壁305c時(shí),機(jī)器人100轉(zhuǎn)向平行于墻壁305d移動(dòng)??刂破骺纱_定,機(jī)器人100通過(guò),例如,使用機(jī)器人100的緩沖器作為感應(yīng)到墻壁305c不再鄰近墻壁305c的處決方式,已經(jīng)穿越了墻壁305c。隨著機(jī)器人100沿著墻壁305c前進(jìn),機(jī)器人100可故意地轉(zhuǎn)向墻壁305c以檢查墻壁305c是否仍然鄰近。
[0110]控制器將轉(zhuǎn)向點(diǎn)44b標(biāo)記為在此機(jī)器人100轉(zhuǎn)向沿著墻壁305d移動(dòng)的點(diǎn)。隨著地標(biāo)的標(biāo)識(shí)路徑430已經(jīng)指示出墻壁304c大致垂直于墻壁305d,控制器命令機(jī)器人轉(zhuǎn)動(dòng)90°??刂破魅缓竺顧C(jī)器人100沿著墻壁305d前進(jìn)。很多時(shí)間可觸發(fā)控制器以指引機(jī)器人100停止沿墻壁305d前進(jìn)。例如,如果作為從開(kāi)始點(diǎn)440a所測(cè)量的行進(jìn)距離已經(jīng)超出了外角落425的標(biāo)識(shí)中存儲(chǔ)的路徑長(zhǎng)度,那么,控制器可停止前進(jìn)。控制器用終止重新定位路徑440的結(jié)束點(diǎn)440c來(lái)標(biāo)記停止地點(diǎn)。
[0111]控制器可以將從重新定位路徑440計(jì)算出得參數(shù)與地標(biāo)路徑430的參數(shù)相比較??刂破骺蓪⒓僭O(shè)的接近接觸角Qs與實(shí)際的接近接觸角ΘΑ比較,并且可使用在假設(shè)的接近接觸角Θ s與實(shí)際的接近接觸角Θ A中的差別來(lái)恢復(fù)機(jī)器人100的導(dǎo)向推算的置信??刂破骺捎?jì)算
(i)在重新定位路徑440的開(kāi)始點(diǎn)440a和轉(zhuǎn)向點(diǎn)440b之間的距離,以及(ii),在標(biāo)識(shí)路徑430的開(kāi)始點(diǎn)430a和轉(zhuǎn)向點(diǎn)430b之間的距離??刂破骺杀容^這兩個(gè)距離并且使用這兩個(gè)距離之間的差來(lái)恢復(fù)在機(jī)器人100的X位置的推算中的置信??刂破骺捎?jì)算(i)在重新定位路徑440的開(kāi)始