機器人的制作方法
【專利摘要】一種機器人,其包括可相對于表面移動的主體;在所述主體內的一個或多個測量設備,其基于所述主體在所述表面上的初始位置處的取向輸出信息;以及在所述主體內的控制器,其基于所述信息確定所述主體的取向,并且通過防止所述主體的運動超出基于所述主體取向和初始位置的屏障之外而將所述主體的運動限制到一個區域。
【專利說明】
機器人
技術領域
[0001 ]本說明書總體地涉及限制移動機器人的運動。
【背景技術】
[0002]—種移動機器人可以在由物體、障礙物、墻壁和在其環境中的其它結構限定的表面周圍機動。在某些情況下,可能需要將機器人的運動限制到其環境的特定區域。要做到這一點,可以豎起屏障以防止機器人突入受限區域。例如,可由機器人探測的信標可以被放置在環境中以限制機器人進入受限區域。
【實用新型內容】
[0003]—種示例機器人可以識別環境中不可穿越的區域,即使不存在防止進入這些區域的結構邊界,諸如墻壁、障礙物或其它表面。機器人可以生成虛擬屏障以防止移動進入這些區域。本文描述了用于產生這樣的虛擬屏障的各種技術。
[0004]—種不例機器人包括可相對于表面移動的主體,在所述主體內的一個或多個測量設備,其基于主體在表面上的初始位置處的取向輸出信息,以及在所述主體內的控制器,其基于該信息確定主體的取向,并且通過防止主體的運動超出基于主體取向和初始位置的屏障之外而將主體的運動限制到一個區域。所述示例機器人可包括一個或多個以下特征,其或者是單獨的或或者是組合的。
[0005]屏障可以延伸穿過門口,并且所述機器人的初始位置可以在門口內。主體可包括正部和背部。屏障可以沿著平行于機器人背部的線延伸。該線可以正切于機器人背部。線可以在由機器人上的視覺指示器指示的位置處與機器人主體相交。屏障可以包括平行于機器人背部延伸的第一線和垂直于機器人背部延伸的第二線。機器人的初始位置可以將主體背部鄰近第一線放置,并且將主體側部鄰近第二線放置。所述控制器可被編程為通過控制主體執行操作而限制主體的運動,所述操作包括相對于初始取向旋轉一定角度,以及沿大致平行于屏障的路徑穿越表面區域。
[0006]控制器可以被編程為通過執行操作而限制主體的運動,所述操作包括產生表現待清潔區域的地圖,以及在地圖上指定虛擬屏障,其可以指示機器人被禁止越過的位置。屏障可以通過將對應于屏障的坐標指定為不可穿越的而指定。
[0007]確定取向和限制運動的操作可以在進入握手模式時執行。控制器可以被編程為響應于在機器人上的一個或多個用戶啟動操作而識別握手模式。
[0008]另一不例機器人包括一個主體,其沿著在主體下方的表面是可移動的,相對表面朝上的相機,其中該相機被構造為拍攝固定到結構的標記物的一個或多個圖像,以及在主體內的控制器,以基于所述一個或多個圖像而識別標記物的位置,并且,至少在一個或多個條件得到滿足前,防止主體運動到超出由標記物位置限定的屏障之外的表面區域。示例機器人可以包括以下一個或多個特征,無論是單獨的或組合的。
[0009]所述標記物可以包括紅外圖像標記物,并且相機可以是紅外相機。這些標記物可以包括可機讀信息,其表示對應于結構的位置名稱、結構名稱、或對應于結構的位置名稱和結構名稱兩者。位置名稱和結構名稱中的至少一個可被發送到并顯示在移動設備上。
[0010]該控制器可以被編程以執行操作,所述操作包括產生表現表面的至少一部分的地圖,基于標記物的位置在地圖上識別標記,將地圖存儲在計算機存儲器中,并在計算機存儲器中存儲數據,所述數據指示禁止主體運動到在超出地圖上的標記位置之外的表面區域。控制器可被編程為基于標記物的一個以上的圖像識別標記物的位置,并防止主體運動到超出基于一個以上的圖像識別的標記物位置之外的表面區域。控制器可以被編程為,在滿足一個或多個條件時,允許主體運動到超出由圖像標記物的位置限定的屏障之外的表面區域,并且,至少在一個或多個的條件得到滿足前,防止主體跨過屏障回來的運動。
[0011]機器人可以包括與計算機網絡無線通信的發射器,以將地圖通過計算機網絡發送到一個或多個遠程計算設備。所述一個或多個條件可以包括機器人穿越在屏障內至少一定百分比的表面區域。所述一個或多個條件可以包括機器人兩次或多次穿越在屏障內至少一定百分比的表面區域。
[0012]本文所描述的機器人和技術或其一部分可以通過計算機程序產品進行控制,其包括存儲在一個或多個非臨時性可機讀存儲介質中的指令,并且可在一個或多個處理設備上執行以控制(例如,協調)本文所描述的操作。本文所描述的機器人或其一部分可以被實現為裝置或電子系統的全部或一部分,所述裝置或電子系統可以包括一個或多個處理設備和用于存儲可執行指令以實現各種操作的存儲器。
[0013]—個或多個實施方式的細節在本文的附圖和描述中闡述。其它的特征和優點從說明書和附圖中以及從權利要求書中將是顯而易見的。
【附圖說明】
[0014]圖1示出了在一個房間中的機器人的視圖。
[0015]圖2A示出了機器人的透視圖。
[0016]圖2B示出了圖2A中的機器人的剖切側視圖。
[0017]圖3A示出了另一機器人的透視圖。
[0018]圖3B示出了圖3A中的機器人的側視圖。
[0019]圖4是用于與移動機器人一起使用的示例控制系統。
[0020]圖5A至圖5C包括示圖和流程圖,其示出了移動機器人為機器人創建不可見或虛擬屏障的過程。
[0021]圖6A至圖6C包括示圖和流程圖,其示出了移動機器人為機器人創建不可見或虛擬屏障的另一過程。
[0022]圖7A至圖7C包括示圖和流程圖,其示出了移動機器人為機器人創建不可見或虛擬屏障的另一過程。
[0023]圖8A至圖SC包括示圖和流程圖,其示出了移動機器人為機器人創建不可見或虛擬屏障的又一過程。
[0024]在不同附圖中的相同參考標號表示相同的元件。
【具體實施方式】
[0025]本文所描述的是構造為穿越(或行駛)表面并執行各種操作的示例機器人,所述表面例如地板、地毯、草皮或其它材料,所述操作包括但不限于真空吸塵、濕式或干式清潔、拋光和類似操作。本文所描述的示例機器人的運動可能受到限制。例如,機器人可以豎立虛擬屏障,其限定該機器人不能越過的邊界。例如,用戶能夠為虛擬屏障選擇位置以防止機器人進入特定空間。如圖1所示,機器人被定位在衛生間中,并且虛擬屏障(以散列方塊示出)被產生以防止機器人進入臥室。如本文所述,虛擬屏障可以由機器人自身創建(例如,基于機器人的取向和位置),或由機器人與一種或多種元件組合創建,所述元件諸如可被機器人識別為限定機器人不能越過的虛擬屏障的標記物。在機器人于初始使用期間首次檢測到標記物之后,該標記物可以被除去。因此,對于機器人的后續使用,標記物不必保留在環境中。
[0026]機器人可以執行用于創建虛擬屏障的其它過程。在一些實施方式中,機器人可以在占用網格上記錄虛擬屏障的位置,所述占用網格用作機器人的環境的地圖,并因此在其行駛期間和/或在任務之間將虛擬屏障的位置保留在存儲器中。占用網格可以是作為尺寸從5cm至50cm的單元陣列的環境地圖,各單元擁有一個概率值(例如,該單元被占用的概率)或指示該單元狀態的其它信息。占用網格能夠將環境地圖表示為二元隨機變量的均勻間隔場,所述變量各自表示障礙物在環境中的該位置處的存在率。雖然本文描述的一些示例使用占用網格以將環境地圖提供給機器人,其它的制圖技術也可以使用。例如,諸如曲線圖的不同地圖表示能夠用于本文描述的方法和系統,其中虛擬屏障被表示為由兩個或更多坐標組成的線段,或者由三個或更多坐標組成的虛擬多邊形或任何其它幾何形狀或“套索”形狀。
[0027]虛擬屏障可以阻止機器人退出或進入特定區域,例如,防止清潔機器人從浴室區域移動到客廳區域。虛擬屏障可以是暫時的,這在于當一個或多個條件成立時,機器人可以被允許越過虛擬屏障。例如,如果機器人確定其已經清潔了整個房間,該機器人然后可被允許越過跨越該房間出口定位的虛擬屏障。在這個示例中,由于虛擬屏障,機器人可以被禁止穿越回到先前已清潔的房間(除非,例如機器人的充電基座位于該房間中)。
[0028]本文中所描述的技術可以被用來限制任何適當類型的機器人或其它裝置的運動,其包括能夠通過在房間里行駛而清潔房間的地板表面的自主移動機器人。這樣的機器人的一個示例是在圖2A中示出的地板清潔機器人100。機器人100包括主體102、前部104和后部106。機器人100可以通過相對于由主體102限定的三個相互垂直軸線的運動的各種組合而橫跨底板表面的物理環境運動,所述三個軸線是:橫向軸線X、前后軸線Y和中央垂直軸線Z。沿著前后軸線Y的正向驅動方向被指定為F(下文中稱之為向前),而沿著前后軸線Y的后向驅動方向被指定為A(下文中稱之為向后)。橫向軸線X在機器人100的右側R與左側L之間延伸。
[0029]用戶界面110位于主體102的頂部,并且被構造為接受一個或多個用戶的命令和/或顯示機器人的狀態。主體102的頂部還可以包括機器人100可用于拍攝環境圖像的相機109。機器人能夠基于由相機109所拍攝的圖像而探測在環境中的特征。相機109能夠相對于支撐所述機器人的表面(例如,地板)向上成角度,使得相機109能夠拍攝環境墻壁表面的圖像。如本文所述,在一些實施方式中,相機109能夠檢測用戶可定位并且可移除的屏障識別標記物,諸如在環境墻壁(或其它的)表面上的貼紙或其它視覺識別設備,并根據這些屏障識別標記物產生該機器人100被指示不要越過的虛擬邊界。
[0030]在機器人100右側上的墻壁跟隨傳感器113可包括紅外傳感器,其能夠輸出用于確定機器人100何時跟隨墻壁的信號。機器人100的左側L也能夠具有這種類型的墻壁跟隨傳感器。主體102的前部104包括緩沖器115,它被用來在檢測在機器人100的驅動路徑中的障礙物。緩沖器115和/或機器人主體102可包括探測該緩沖器115相對機器人主體102的壓縮的傳感器,所述壓縮諸如基于與障礙物接觸的壓縮。在一些實施方式中,機器人100的頂部包括全向紅外(IR)收發器118,其可以檢測環境中的對象發射的紅外輻射。這些傳感器可以與其它用戶輸入協作以對機器人100提供關于在環境中的邊界或障礙物的指令。
[0031]參照圖2B,前輥122a和后輥122b協作以從清潔表面檢取碎肩。更具體地,后輥122b以逆時針方向CC轉動,而前輥122a以順時針方向C轉動。機器人100還包括布置為支撐所述機器人主體102的后部106的腳輪130。機器人主體102的底部包括輪子124,其當機器人100在地板表面10周圍行駛時支撐機器人主體102。在輪子124被驅動時,旋轉編碼器112測量驅動輪子的電機軸的位置,這可以用來估計機器人100行進的距離。
[0032]機器人主體102的底部包括光學鼠標傳感器133,其包括光源和低分辨率相機。當機器人100在環境中行駛時,機器人100可以使用光學鼠標傳感器133估計在X和y方向上的漂移。
[0033]機器人主體102還容納慣性測量單元(MU) 134,例如三軸加速度計和三軸陀螺儀,其分別用來測量(i)x加速度、y加速度和z加速度,以及(ii)繞X軸、y軸和z軸(例如,俯仰、偏轉和滾動)的旋轉。所述IMUl 34的加速度計可以用來估計在X方向和y方向上的漂移,而IMU134的陀螺儀可以用來估計在機器人100的取向Θ中的漂移。這些測量設備(例如頂U 134、光學鼠標傳感器133和旋轉編碼器112)協作以對控制器提供關于機器人的位置和取向的信息(例如,表示為信號的測量),控制器使用所述信息確定機器人100在其環境中的大致位置和取向。在一些實施方式中,這些測量設備可以被組合為單個設備或兩個設備。
[0034]圖3A和圖3B示出了可以根據本文描述的示例技術創建虛擬屏障的移動機器人的另一不例。參照圖3A,在一些實施方式中,移動機器人200的重量小于5鎊(例如,小于2.26千克)。機器人200被構造為在地板表面上行駛并清潔地板表面。機器人200包括由驅動器(未示出)支撐的主體202,所述驅動器可以基于例如具有x、y和Θ分量的驅動命令在地板表面上機動機器人200。如圖所示,機器人主體202具有正方形的形狀,并限定了 X軸和Y軸。X軸限定了向右方向R和向左方向L J軸限定了機器人200的向后方向A和向前方向F。此外參照圖3B,機器人主體202的底部207保持附接的清潔墊220,其支撐機器人200的前部204。底部207包括車輪221,當機器人200在地板表面上行駛時,其可旋轉地支撐所述機器人主體202的后部206。如本文所述,移動機器人200還可以包括頂U、光學鼠標傳感器和旋轉編碼器,以輸出表示機器人的當前方向和位置的信息到控制器。
[0035]主體202包括用于探測在縱向(A、F)或橫向(L、R)方向上的碰撞的可動緩沖器210。也就是說,緩沖器210相對于機器人的主體202是可動的,并且此運動可以通過探測緩沖器210何時被壓縮而被用來探測碰撞。
[0036]機器人200的頂部208包括用戶用來攜帶機器人200的手柄235。用戶可以按下清潔按鈕240來開啟和關閉機器人200,并例如指示機器人200開始清潔操作或在其占用網格中標記虛擬屏障。在一些實施方式中,頂部208還包括燈242a和242b或其它可視指示器,其沿著平行于機器人主體202的背側202A的線對齊。燈242a和242b可以是發光二極管(LED)。如本文所述,燈242a和242b可以充當用戶用來確定虛擬屏障在機器人200的占用網格中的方位的基準線。
[0037]參照圖4,機器人(例如,機器人100、機器人200以及其它適當的移動機器人,包括本文所述的那些)包括示例控制系統300,其包括動力系統350、驅動器360、導航系統370、傳感器系統380、通信系統385、控制電路390(在此也被稱為控制器),以及存儲器存儲元件395。包括電源的動力系統350提供電力到可用機器人操作的系統。
[0038]驅動器360可以在地板表面上機動機器人。驅動器360可以控制電機以驅動輪子(例如,輪子124、221),使得輪子可以在沿地板表面的任何驅動方向上推動機器人。輪子可以差動操作,使得機器人可以基于提供到各驅動輪的驅動水平轉動。
[0039]導航系統370,其可以是在控制器390上執行的基于行為的系統,可以發送指令到驅動系統360,以使機器人可以使用驅動器360在環境中行駛。導航系統370與傳感器系統380通信以發出驅動指令到驅動器360。
[0040]在一些實施方式中,傳感器系統380包括設置在機器人上的傳感器(例如,障礙物探測傳感器、輪子編碼器112、光學鼠標傳感器133、MU134),其生成指示與環境中結構元件的特征相關的數據的信號,從而使得導航系統370能夠確定用于在環境中行駛的模式或行為,以使得能夠完全覆蓋房間或單元。所述模式或行為可以用來避免在環境中的可能障礙物,包括墻壁表面、障礙物表面、低懸物、壁架以及不平坦的地板表面。傳感器系統380產生對機器人環境的感知,其足以允許機器人做出關于在環境中采取的動作(例如,導航動作、驅動動作)的智能決策。傳感器系統380收集數據以允許機器人生成環境的占用網格。
[0041]在一些實施方式中,傳感器系統380可包括屏障探測避障(ODOA)傳感器、測距聲納傳感器、接近傳感器、雷達傳感器、LIDAR(光探測和測距,這可需要測量散射光屬性以發現遙遠目標的距離和/或其它信息的光學遙感)傳感器、相機(例如,相機109、容積點云成像、三維(3D)成像或深度圖傳感器、可見光相機和/或紅外相機),以及可與腳輪(如腳輪130) —起操作的車輪下降傳感器。傳感器系統380還可以包括通信傳感器、導航傳感器、接觸傳感器、激光掃描儀和/或其它傳感器,以便利于導航、障礙物檢測和機器人的其它任務。接近傳感器可以采取接觸傳感器的形式(例如,探測機器人上的緩沖器與物理屏障的撞擊的傳感器,諸如電容傳感器或者機械開關傳感器)和/或探測機器人何時緊密接近附近物體的接近傳感器。
[0042]通過與每個系統進行通信以提供和接收輸入和輸出參數,控制器390與機器人的其它系統一起操作。控制器390可便利于動力系統350、驅動系統360、導航系統370、傳感器系統380、通信系統385,以及存儲器存儲元件395之間的通信。例如,控制器390可以指示動力系統350提供電能到驅動系統360的電機,以在向前驅動方向F上移動機器人,從而進入電源充電模式,和/或提供特定水平的功率(例如,全功率的一定百分比)到單個系統。控制器390還可以操作能夠包括無線收發器的通信系統385,所述無線收發器包括發射器,其可以與移動設備或中央計算機網絡進行通信。如本文中所描述的,控制器390可以上傳在機器人的清潔操作期間產生的占用網格到中央計算機網絡或單個移動設備。通信系統385還可以從用戶接收指令。
[0043]控制器390可以執行指令以對環境制圖,并定期將所述機器人重新定位到環境的地圖中。這些行為包括墻壁跟隨行為和覆蓋行為。
[0044]一般地,在墻壁跟隨行為期間,機器人探測環境(例如,使用緩沖器115)中的墻壁、障礙物(例如,家具、早餐吧臺、櫥柜踢腳等),或其它結構(例如,壁爐爐膛、樓梯邊等),并跟隨墻壁、障礙物或其它結構的輪廓。
[0045]在覆蓋行為期間,控制器指示機器人覆蓋(例如,穿越或行駛的程度),并清潔環境的地板表面。機器人可以使用覆蓋路徑技術覆蓋環境的地板表面,所述覆蓋路徑技術諸如左行右行交互或玉米行圖案(a boustrophedon or cornrow pattern)、螺旋圖案、或偽隨機彈跳覆蓋。隨著機器人覆蓋地板,控制器390可以產生占用網格。
[0046]在一些實施方式中,控制器390可以例如使用來自編碼器112、光學鼠標傳感器133和IMU 134的信息(例如,信號),以產生可用于確定(例如,估計)機器人的位置和取向(姿態)的測距數據。例如,控制器可以接收來自MU 134的3軸陀螺儀的陀螺儀信號。當機器人在地板表面上行駛時,陀螺儀信號可以基于機器人主體的取向和位置。控制器還可以使用來自編碼器112的信號改進所述供給,其輸送基于所述機器人的移動距離的編碼器信號。類似地,當機器人在地板表面上行駛時,光學鼠標傳感器133生成可被用來確定機器人的漂移量的信號。
[0047]所述存儲器存儲元件395可包括制圖模塊397,其存儲機器人行駛的房間或多個房間的占用網格。在清潔操作之后,占用網格可以使用通信系統385上傳到遠程計算設備。在一些實施方式中,占用網格包括由控制器390產生的虛擬地圖,其被控制器390用來指示機器人100在預先確定的邊界、物理邊界和其它邊界(例如,虛擬的或使用建立的屏障或邊界)內行駛。占用網格可以包括環境的物理布局。例如,占用網格可以包括區域物理布局的數據指示,并且表現開放區域和障礙物兩者。占用網格可以包括環境的邊界、其中的障礙物的邊界、在開始環境清潔操作之前產生的可以對應或不對應物理障礙物的邊界,和/或被機器人穿越的內部地板空間。
[0048]占用網格可以以任何適當的方式實現為屬性的位置地圖,包括但不限于,使用數據庫技術、使用各種關聯數據結構,或組織數據的任何其它方法。由此,所得到的地圖不必是可見的地圖,而是也可由存儲在非臨時性計算機可讀存儲器中的數據限定。地圖可以以不同程度的精度和/或精確度對應于實際表面。例如,精度可能會受到所使用的對應于表面一部分的離散地圖單元的影響。那些單元的尺寸,其可各自對應于1cmX 1cm的表面部分,或5cmX 5cm的表面部分(例如,它們不需要是正方形的或者甚至不需要全部是相同尺寸的),可能通過對觀察屬性的粒度施加限制而影響精度。精確度可能會受到傳感器質量和類似因素(包括本文中提到的各種其它因素)的影響。
[0049]在一些實施方式中,占用網格是包括2D單元網格的占用網格,各單元具有指示區域狀態用于穿越或清潔的相關變量。在占用網格中的每個單元可被分配一個值,其指示該單元是可穿越的或是不可穿越的。網格的每個單元可以被分配基于環境中的選定原點(0,0)的(x,y)坐標。例如,選定原點可以是機器人的充電座或房間中的特定位置。每個單元可以代表有四個邊的正方形區域,所述邊與其它單元的邊重合。在一些實施方式中,單元可以具有I至100 cm的邊長。例如,網格可以是各自10cm X 1 cm的單元的網格。占用網格的單元可以在清潔操作之前和清潔操作期間被填充。在一些情況下,來自一次清潔操作的填充單元可以被存儲并用于隨后的清潔操作。在一次清潔操作前,占用網格的單元的一個子集可以被標記為不可穿越的。在一些情況下,單元形成用戶建立的虛擬屏障,它表示機器人不可穿越的邊界(例如,虛擬屏障可通過在占用網格中的不可穿越單元的線來限定)。如本文所述,該單元可以被標記為先前的清潔操作的一部分,或者機器人可以接收指令以將占用網格中的一些預填充為不可穿越的。在另一實施方式中,占用網格可以是占用曲線圖,其中虛擬屏障被表示為通過兩個或更多的坐標限定的線段、由三個或更多的坐標限定的虛擬多邊形,或由多個坐標限定的任何其它幾何形狀或“套索”形狀。
[0050]在清潔操作中,控制器390存儲被機器人穿越的每個單元的(x、y)坐標。例如,在墻壁跟隨行為中,控制器390可以將在機器人足跡下的所有單元標記為可穿越單元,并將對應于被跟隨墻壁的所有單元標記為不可穿越的,以指示機器人100不能通過墻壁。如本文所述,控制器390可構造為識別代表環境中結構元件(例如,墻壁、障礙物等)的特征的特定序列、組合、組等的單元。在一些實施方式中,在確定所述地圖中單元的值之前,控制器390可以將所有單元的值預先設置為未知的。然后,隨著機器人在墻壁跟隨行為期間或覆蓋行為期間被驅動,沿其路徑的所有單元的值被設置為可穿越的,該單元的位置由到原點的距離確定。在某些情況下,在清潔操作過程中,傳感器系統380可附加地或可選地響應于位于房間中的特征(例如,標記物),并且控制器390可以基于感測所述特征而指示占用網格中的虛擬屏障。
[0051]除了本文所描述的將單元標記為不可穿越的之外,本文還描述了幾種生成虛擬屏障和不可穿越單元的方法。在清潔操作中,控制器可以指示機器人避開在占用網格中指定為不可穿越的區域。雖然占用網格通常存儲在機器人上(例如,在存儲器存儲元件395上),但占用網格也可以通過通信系統385傳輸并存儲在網絡服務器、移動設備,或其它遠程計算設備上。
[0052]本文的不例描述了一種環境和用于該環境的對應占用網格。圖5A、圖5B、圖6A、圖6B、圖7A、圖8A和圖SB中的占用網格使用散列單元識別不可穿越區域,使用空白單元識別可穿越區域,并且使用未用單元標記的區域識別未知區域。在相應的占用網格中示出的機器人標識控制器對機器人在環境中的當前位置的估計。
[0053]雖然在圖5A、圖5B、圖6A、圖6B、圖7A、圖8A和圖8B中描述的占用網格示出了包括指示所述環境中的可穿越和不可穿越區域的單元的占用網格示例,但在其它實施方式中,控制器可以產生依賴于對應于環境內的位置坐標值的占用網格。例如,虛擬屏障可以是一組兩個或更多的二維坐標,其指示機器人不能跨越的線或區域的頂點。
[0054]在一些實施方式中,機器人可以執行多個清潔操作以清潔環境中的多個房間。參照圖5A,隨著機器人400在包括第一房間412和第二房間414的環境410 (例如,在圖5A的部分421中示出的)的地板表面10上行駛,機器人400的控制器390產生對應的占用網格420 (例如,存儲在存儲器存儲元件395中的占用網格,如在圖5A的部分423中示出的)。門口 415分離第一房間412與第二房間414。如在本文中更詳細地描述的,機器人400可首先清潔第一房間412,然后清潔第二房間414,而無需返回第一房間412。
[0055]機器人400沿路徑425執行玉米行圖案。路徑425可以大致限制于第一區域430a。區域430a和430b可以是機器人400設置以分割環境的相等寬度的區域。該區域可以任意選擇,并因此可以或可以不對應于環境內的物理邊界、障礙物、或結構。
[0056]隨著機器人400通過沿著路徑425執行玉米行圖案而遵循覆蓋行為,為了將其自身限制在區域430a中,機器人400可阻止其自身進入環境的區域430b。控制器390可以指示機器人400避免進入區域430b,并且在執行玉米行圖案的行列期間回轉。在占用網格420中,控制器390指示對應于環境的墻壁的不可穿越單元,并將可穿越單元指示為機器人400能夠在覆蓋行為期間覆蓋的區域。
[0057]當控制器390已經確定機器人400已經能夠覆蓋區域430a的可穿越區域時,機器人400可以執行墻壁跟隨行為,從而前進到環境410的另一區域,例如區域430b。通過確定機器人400已滿足一個或多個條件,控制器390能夠確定機器人400已經完成覆蓋第一區域430a。參照圖5B,如在部分421中所示,機器人400能夠遵循路徑440以執行墻壁跟隨。機器人400在初始位置440a處開始,其對應于機器人400在它完成覆蓋行為時的位置。在沿路徑440的位置440b處,機器人400從第一區域430a跨越到第二區域430b中。在這一點上,控制器390確定機器人400已經進入新的區域。通過例如確定所述機器人400已經從可穿越單元移動到未知單元,控制器390可以作出此判斷。控制器390也可確定機器人400已退出第一區域430a并進入第二區域430b。
[0058]為了防止機器人400返回到它已經執行了清潔操作的區域430a,控制器390可以建立用于標記該機器人400已清潔區域的虛擬屏障450,如在部分423中所示。例如,控制器390可以更新占用網格420以識別先前已清潔區域的位置或邊界,從而禁止機器人400返回該區域。在清潔(例如,非對接的)操作期間,和/或能夠在占用網格420中標記所有已清潔的單元以在清潔操作過程中禁止機器人400重新清潔那些單元。在一些示例中,控制器390可以將形成房間412周界的周界單元標記為占用網格420中的不可穿越單元。在一些情況下,控制器390將環繞可穿越單元區域430a的單元標記為不可穿越單元,以阻止機器人400返回該機器人400已經清潔的區域。在其它情況下,控制器390可以將在區域430a中的所有單元指示為不可穿越的。
[0059]參照圖5C,流程圖460示出了機器人用于清潔第一區域和第二區域的方法。在操作462中,機器人在第一區域中執行第一清潔操作。機器人可以響應于由機器人控制器發出的指令而執行第一清潔操作。機器人可以執行本文所描述的覆蓋行為,這可以包括遵循玉米行圖案或其它圖案以覆蓋第一區域。隨著機器人執行覆蓋行為,控制器可以將存儲在機器人上(例如,可用控制器操作的存儲器存儲元件)的占用網格中的對應于被機器人穿越的第一區域部分的單元標記為可穿越單元。清潔操作可以通過諸如機器人100的干式清潔機器人、諸如機器人200的濕式清潔機器人、構造為在環境中行駛的另一種移動機器人執行。
[0060]在操作464中,機器人通過控制器確定第一清潔操作已完成。控制器可以基于本文描述的一個或多個條件確定完成。
[0061]在操作466中,機器人行駛到第二區域。在一些示例中,機器人可以穿越第一區域的周界以識別第二區域。在其它示例中,第一區域可以被人為地界定(例如,是最大寬度的),并且第二區域可以是鄰近第一區域的區域。控制器可以指示機器人以執行行駛。通常,控制器可以尋求確定機器人已退出它已經清潔的區域,并且已進入它沒有清潔的區域。在機器人已經完成了第一區域的清潔操作后,控制器可以指示機器人穿越周界。基于檢測該機器人已實現一個或多個條件,控制器可以確定機器人已經完成了清潔操作。在一些情況下,機器人可以繼續進行清潔操作,直至機器人已覆蓋一定百分比的第一房間區域,例如,50%至75%、75%至100%、100 %至150%、150% 至200%、250% 至300%。在一些情況下,機器人可以繼續進行清潔操作,直至其已經多次清潔所述區域,例如一次、兩次、三次或四次。一旦完成所需覆蓋,則控制器可以指示機器人跨越虛擬屏障,并開始在第二房間中的第二清潔操作。
[0062]在一些實施方式中,機器人可以繼續進行清潔操作,直至機器人已經達到充電百分比的特定下限,例如,10%、5%或更小。一旦達到充電百分比的下限,控制器可以指示機器人返回到充電座或充電站,以對機器人的電池重新充電。在這樣的實施方式中,機器人可以能夠穿越存儲在占用網格中的虛擬屏障,以便返回到充電座。
[0063]在一些情況下,第一區域是一個房間,并且第一區域的周界由此可以對應于房間的墻壁。在其它實施方式中,第一區域是一個區域(如本文所述),并且第一區域的周界可以對應于第一區域延伸的邊緣。如關于圖5A至圖5B所描述的,當機器人400執行墻壁跟隨行為時,控制器390可確定它已穿越第一房間412或第一區域430a的周界,這例如通過(i)檢測到機器人400已經退出第一區域430a,或(ii)檢測到機器人400已經從可穿越單元移動到未知單元而確定。響應于來自控制器的指令,機器人可以穿過第一區域的周界。
[0064]在操作468中,控制器建立例如分離第一區域與第二區域的虛擬屏障。控制器可以在存儲于可用所述控制器操作的存儲器存儲元件上的占用網格上指示虛擬屏障。例如,在一些實施方式中,控制器可以在占用網格上指示鄰近第一區域中可穿越單元(例如,一排或一列可穿越單元,形成一排或一列可穿越單元的兩個或更多可穿越單元)的未知單元是不可穿越的(例如,不可穿越單元限定虛擬屏障)。其結果是,不可穿越單元可以形成一排或一列不可穿越單元。也可以使用不依賴于占用網格的限定邊界的其它方法。在一些情況下,控制器可以指示在第一區域中的鄰近未知單元的可穿越單元現在是不可穿越的。
[0065]在操作470中,機器人執行第二清潔操作以清潔第二區域,而無需穿越虛擬屏障。例如,機器人可以清潔第二區域,而不必穿越標記第一區域周界的虛擬屏障。控制器可以發出指令到機器人,以執行所述第二清潔操作。第二清潔操作可以是覆蓋行為的一次執行。為了防止其自身進入第一區域,控制器可以防止機器人穿越在操作468中建立的虛擬屏障。
[0066]在一些示例中,用戶可能希望為機器人設置虛擬邊界。例如,用戶可能希望將機器人保持在特定的房間或區域之外。允許用戶建立虛擬邊界的位置能夠為用戶提供對機器人清潔的額外控制的優點。在一些實施方式中,控制器可以接收來自用戶的指令,以限制機器人在環境的一個區域內的行駛。用戶可以通過觸發在機器人上的傳感器(例如,推動一個或多個按鈕)以傳遞指令。在某些情況下,用戶可使用移動設備(諸如智能電話、平板電腦或其它計算設備)以使用無線連接傳遞指令到控制器,從而建立虛擬屏障的位置。用戶可以尋求防止機器人通過門口離開房間,并由此可以指示控制器生成位于門口的虛擬屏障,其防止機器人通過門口離開。在一些實施方式中,用戶通過機器人的用戶界面輸入信息以限制機器人的運動。
[0067]在示出于圖6A至圖6C的示例中,在機器人200執行清潔操作以清潔環境502的地板表面10之前,用戶將機器人(例如,關于圖3A至圖3B描述的機器人200)放置在環境502中。機器人200的控制器(例如,控制器390)生成對應于環境502的占用網格518。在這個示例中,用戶可能希望順序地在第一清潔操作期間清潔第一房間504,并且在第二清潔操作期間清潔第二房間506。在一次清潔操作中,用戶可能尋求機器人200清潔第一房間504,而不清潔環境502中的第二房間506。
[0068]參照圖6A,用戶將機器人200放置在環境502中,使得機器人200的主體202的背側202A與環境502中的墻壁512和門口 517平行放置,如在部分521中示出的。用戶然后發出指令到控制器390,以在占用網格518中產生虛擬屏障516,如在部分523中示出的。在一些示例中,基于機器人200在環境502中的初始位置和取向,虛擬屏障516可以在占用網格518中表現為不可穿越單元的一條線(例如,一排或一列)。虛擬屏障516可以平行于機器人200的背側202A。
[0069]在一些情況下,虛擬屏障516穿過機器人200的背側202A。在其它情況下,虛擬屏障516與機器人主體交叉,例如虛擬屏障穿過燈242a和242b,使得用戶能夠對準燈與虛擬屏障的位置。燈242a和242b因此可以作為虛擬屏障516的位置的視覺指示。虛擬屏障516可以防止機器人200從第一房間504穿過門口 517進入環境502的房間506內。在一些實施方式中,機器人可以被放置在門口 517中,使得控制器產生虛擬屏障516,以防止機器人200穿過門口517。
[0070]在用戶已經完成了他到控制器的產生虛擬屏障516的指令后,無需重新定位機器人,用戶可以啟動在房間504中的清潔操作,當機器人200開始清潔操作時,現在參照圖6B,機器人200可以轉動90度,使得機器人200的向前驅動方向F平行于虛擬屏障516 (例如,如在圖6B部分523中示出的)。在該覆蓋行為中,90度轉動確保機器人200執行鄰近虛擬屏障516的玉米行圖案的第一行。在某些情況下,漂移對玉米行圖案第一行的影響最小,所以使得機器人200執行平行于虛擬屏障516的第一行是有利的,因為機器人200不太可能越過虛擬屏障。另外,90度轉動可防止在玉米行圖案中的180度轉動在虛擬屏障516處的發生。在機器人200的轉動后,機器人200然后可以前進以執行覆蓋行為(例如,執行玉米行圖案)。在一些情況下,機器人200可在向前驅動方向上移動短的距離(例如,2至5cm、5至10cm、10至15cm),然后轉動90度以將機器人200的一個橫向側調整為與虛擬屏障516平行。例如,機器人可以向前移動視覺指示器(例如,燈242a、242b)與機器人200的背側之間的距離。
[0071]用戶可以通過多種方法和機制提供指令到機器人200。控制器可以響應于將機器人200置于握手或虛擬屏障模式中的觸發,在所述模式中,控制器準備好用虛擬屏障填充占用網格。當機器人200處于握手模式時,控制器放置虛擬屏障516。例如,觸發可以是用戶同時地壓縮機器人200的緩沖器210并且按壓機器人200的清潔按鈕240,而機器人或者在地面上或者離開地面(例如,如本文所述,通過使用適當傳感器觀測地面而確定)。用戶也可以以其它方式操縱機器人200,以觸動觸發并啟動握手模式。例如,用戶可以通過搖動機器人200觸發機器人200的加速度計或陀螺儀,并且在檢測到震動時,機器人200進入握手模式以放置虛擬屏障中的一個或兩個。在某些情況下,用戶可使用移動設備指示所述機器人200。用戶可將機器人200放置在環境中,然后通過例如使用加載在移動設備上的應用程序指示機器人200。在一些實施方式中,一旦將所述機器人置于握手模式中,控制器等待來自用戶的進一步指令以產生虛擬屏障。在指示機器人進入握手模式后,用戶可以發出另一指令,以將虛擬屏障516放置在占用網格中。
[0072]在一些實施方式中,控制器可產生第二虛擬屏障,其可以相對于第一虛擬屏障516垂直或以其它方式成角度。第二虛擬屏障可以限制機器人進入可能是難以清潔的區域,或有易碎家具或家居用品的區域。第二虛擬屏障可以是占用網格518中的不可穿越單元的虛擬屏障。虛擬屏障可以基于機器人200的初始位置和/或取向而產生。在一些示例中,第一和第二虛擬屏障可形成L形的不可穿越單元。在一些情況下,第二虛擬屏障可與機器人主體202的右側202R或左側202L重合。在其它示例中,控制器可產生第二虛擬屏障,使得所述第二虛擬屏障穿過燈242a或燈242b。控制器可響應于產生第一虛擬屏障的指令而產生第二虛擬屏障。在其它實施方式中,控制器響應于來自用戶的產生虛擬屏障的第二指令產生第二虛擬屏障。在一些情況下,當用戶第一次或第二次將機器人置于握手模式時,控制器會放置第二虛擬屏障。在控制器產生兩個虛擬屏障的情況下,機器人200可以啟動清潔操作,而無需轉動以變得與虛擬屏障516平行。在某些情況下,機器人200可以通過轉動而啟動清潔操作,使得機器人200平行于所產生的虛擬屏障。
[0073]參照圖6C,流程圖560示出了機器人基于來自用戶的指令產生虛擬屏障的方法。該流程圖包括對應于由用戶執行的操作的用戶操作565,和對應于由機器人執行的操作的機器人操作570。
[0074]在操作572中,用戶將機器人放置在環境中。機器人的位置將既用作機器人的起始位置又用作所述虛擬屏障的位置。這樣,用戶可以放置機器人使得機器人上的特征與環境中用戶不希望機器人跨越(例如,虛擬屏障跨越其豎立)的邊緣對齊(例如,平行于)。例如,如本文所描述的,該特征可以是在機器人上的燈或機器人主體的表面。在一些情況下,用戶可能希望創建兩個(例如,垂直的)虛擬屏障,使得機器人不跨越環境中的兩個邊緣,并且在這樣的情況下,機器人可以具有兩個特征,各自指示一個虛擬屏障的位置和取向。
[0075]在操作574中,用戶指示機器人進入虛擬屏障模式。用戶可以使用本文所述的任何方法或任何其它適當方法發出這一指令,其觸發機器人進入握手模式。在操作576中,機器人控制器接收指令,并將機器人置于虛擬屏障模式。
[0076]在操作578中,用戶指示機器人產生虛擬屏障。產生虛擬屏障的指令可以是將機器人置于虛擬屏障模式(例如,將機器人置于握手模式)中的指令。在一些情況下,除了將機器人置于虛擬屏障模式的指令之外,用戶可發出后續指令以產生虛擬屏障。例如,用戶可以觸發額外的傳感器以發送創建虛擬屏障的指令。
[0077]在操作580中,控制器接收指令以創建虛擬屏障。控制器可以通過感測傳感器已經被以本文所描述的方式觸發而接收指令。在一些情況下,機器人可以包括無線收發器,其允許控制器與移動設備通信以接收來自用戶的指令。
[0078]在操作582中,控制器產生虛擬屏障。例如,控制器可將占用網格中的單元限定為虛擬屏障的一部分。例如,虛擬屏障可以對應于被指定為不可穿越的一個或多個單元。在一些實施方式中,虛擬屏障可不根據占用網格中的單元限定。相反,虛擬屏障可以基于占用網格上的坐標限定,或基于在占用網格背景內或在其外的某些其它特征限定。例如,虛擬屏障基于機器人的初始取向和位置限定。這些取向的測量可以基于例如容納在機器人主體內的陀螺儀的輸出信得到。控制器可以知道機器人或其一部分在占用網格中緊隨著握手的初始位置。使用此信息,即取向與初始位置,控制器可以通過在占用網格(或其它地方)上限定邊界(例如,一條直線)而創建機器人不能跨越的虛擬屏障。在某些情況下,控制器可以如本文所述地產生一個以上的虛擬屏障。在一些示例中,用戶可以通過直接在機器人上或通過遠程接口對控制器提供適當的參數而選擇虛擬屏障的長度。例如,用戶可以選擇3至5英尺(0.9至1.6米)的屏障長度,以禁止機器人穿過門。在一些示例中,用戶可以指示機器人將全長度的屏障單元放置在一行/列中,以細分開放空間。在另一種情況下,用戶可以選擇圍繞所述機器人的矩形區域,其形成機器人不應跨越的四個虛擬屏障。
[0079]在操作584中,控制器可以提供產生虛擬屏障的視覺指示。例如,控制器可以指示機器人上的燈發光或可以發出聲音警報。
[0080]在操作586中,用戶指示機器人清潔環境。用戶可以通過按壓在機器人上的清潔按鈕而指示機器人清潔,或通過使用移動設備來遠程控制機器人。虛擬屏障可以顯示于在用戶的移動設備上顯示的地圖上。
[0081]在操作588中,控制器接收指令以無需穿過虛擬屏障而清潔環境。機器人可以通過執行玉米行行為或覆蓋環境地板表面的其它運動模式而執行清潔環境的指令。控制器可以指示機器人轉動,使得機器人的前進驅動方向平行于虛擬屏障。在一些實施方式中,控制器指示機器人大致轉動90度,以平行于虛擬屏障定向機器人。
[0082]雖然示于圖6A至圖6C的上述實例已經被描述為使用圖3A至圖3B中所述的機器人200,機器人100和具有其它構造的其它移動機器人可容易地實現本文描述的方法。用于實現圖6A至圖6C的方法的機器人可以具有用戶可以用作放置虛擬屏障的參考的其它區別表面或特征。雖然機器人200已被描述為正方形機器人,在一些情況下,執行本文描述方法的機器人可以是圓形或三角形機器人。其結果是,所產生的虛擬屏障可以正切于機器人的背表面。機器人還可以具有用戶可以觸發的額外或可選傳感器,以便指示控制器生成虛擬屏障。
[0083]本文所描述的生成虛擬屏障的方法可在機器人啟動清潔操作之前發生。在一些實施方式中,在機器人產生虛擬屏障之前,機器人開始清潔操作和在環境中行駛,或者另外的虛擬屏障(多個虛擬屏障)可在清潔過程中產生。例如,機器人可以檢測特征、標記物或位于環境中的其它視覺標記,并且通過用虛擬屏障填充占用網格或以其它方式限定機器人不能越過的一個或多個虛擬屏障而響應所述特征。這樣的指示器的示例可以是機器可識別的貼紙或標簽,并且可以定位在環境中。
[0084]如前面所述的機器人100包括相機109以對環境的墻壁表面成像。參照圖7A,在一個示例中,作為清潔操作的一部分,機器人100正在執行沿環境602(例如,在部分621中示出的)的地板表面10的覆蓋行為。執行玉米行圖案,機器人100遵循路徑604,并將在占用網格606中的單元指定為可穿越的或不可穿越的(例如,在部分623中示出的)。環境602包括第一房間607和第二房間608。機器人100正在執行清潔操作以清潔第一房間607。沿路徑604,機器人100可以使用相機109感測(例如,拍攝其圖像)環境602的墻壁表面609。
[0085]在沿路徑604的點604a處,機器人100探測到位于墻壁表面609上的標記物610a、610b。用戶可以將標記物610a、610b放置在墻壁表面609上,以限制機器人10進入環境的一個區域。例如,標記物610a、610b可以指示可被機器人100穿越的區域應該在機器人100的占用網格606中被標記為不可穿越的,標記物610a、610b可以通過例如粘性或靜態背襯(static backing)固定到墻壁表面609。標記物610a、610b可包括吸盤,其可以產生吸力以將所述盤固定到環境602的表面。在一些實施方式中,標記物610a、610b包括紅外點或墨水,其可被機器人100的紅外收發器探測,而在正常條件下不能被人類感知。
[0086]在圖7A至圖7B所示的例子中,所述特征是將第一房間607連接到第二房間608的門口 611。用戶將標記物610a、610b在地板表面上方大約Im至2m處放置在墻壁表面609上,使得機器人100可以使用相機109檢測到標記物610a、610b,其朝向墻壁表面609向上成角度。在一些示例中,標記物610a、610b可以在門口上方或放置在門口的內側。例如,用戶可將標記物61Oa、61Ob沿水平面放置在門口上方,并向下朝向地板表面,使得向上成角度的相機109可檢測標記物61(^、61013。標記物61(^、61013靠近門口611的放置可以建立虛擬屏障的位置,并確保機器人100只清潔所述第一房間607,而不會進入第二房間608。
[0087]沿路徑604在點604a處,現在還參考圖7B,機器人100使用相機109探測在墻壁表面609上的標記物610a、610b。標記物610a、610b包括可以由相機109感測的獨特特征或機器可讀信息。由此,一些標記物610a、610b可以指示虛擬屏障的位置,而其它標記物可被用來將其它類型的信息傳遞到機器人100。可機讀信息或特征可以表示對應于環境中的結構或障礙物的位置的名稱。在一些情況下,可機讀信息可以表示對應于環境中的結構或障礙物的位置的名稱。特征或可機讀信息可以是色彩、圖像或者是能夠由相機109探測到的其它特性。并且,在一些實施方式中,相機109可響應于在可見光范圍之外的輻射,因此也可以能夠探測到例如標記物610a、610b的紅外特性。雖然相機109已經被描述為探測標記物610a、610b的傳感器,在一些實施方式中,機器人100可以使用其它傳感器來檢測所述標記物610a、610b,諸如超聲傳感器、紅外傳感器和其它定向波束傳感器。
[0088]區別特征可以指示環境602和/或墻壁表面609的屬性。除了建立虛擬屏障之外,或者代替建立虛擬屏障,這些特征可以用于識別目的。所述存儲器存儲元件395能夠包括參考特征的庫,控制器390能夠將被成像標記物610a、610b與其進行比較。然后,控制器390能夠確定標記物61 Oa、61 Ob是否包括在參考特征庫中的特征。
[0089]在一些示例中,標記物610a、610b的特征可以表明機器人100穿過其行駛的環境602是特定的房間,諸如廚房、浴室、臥室、客廳等等。例如,標記物610a、610b可包括表明第一房間607是廚房的冰箱圖標,和表明第二房間是客廳的電視圖標。在一些情況下,標記物610a、610b可以表明標記物610a、610b之間存在一種類型的結構。例如,在一些情況下,標記610a、610b可以表明門口 611位于標記610a、610b之間。在其它情況下,標記610a、610b可以被放置在環境602中,使得機器人不會進入難清潔的區域,或有易碎家具或家居用品的區域。標記物61 Oa、61 Ob可被放置在能夠由相機109成像的燈具、家具或其它家居用品上。例如,一種類型的標記物可以建立距標記物預定距離(如0.25m至0.5m、0.5m至lm、Im至1.5m)的避開區域(keep-out zone)。標記物610a、61b能夠對特定屬性具有特定色彩,或對特定房間具有特定圖像。在一些實施方式中,標記物610a、610b可以包括用作標記物610a、610b的區別特征的區別圖像。
[0090 ]區別特征也可以是標記物61 Oa、61 Ob標記的房間名稱、標記物61 Oa、61 Ob標記的障礙物名稱,或標記物610a、610b標記的位置名稱。例如,在機器人100具有從先前清潔操作中產生的地圖的實施方式中,標記物610a、610b可以表明機器人100是在廚房中,然后機器人100可以使用先前產生的對應于廚房的地圖。在一些情況下,機器人100可以不開始清潔操作,直到它檢測到標記物610a、610b。當機器人100檢測標記物610a、610b時,機器人100能夠基于來自標記物610a、610b的信息開始清潔操作。通過區別特征提供的信息可以被發送到移動設備,使得用戶可以看到該信息,并基于該信息選擇機器人100的操作。
[0091]在識別標記物610a、610b之前,控制器能夠對所產生的標記物610a、610b的圖像進行后期處理。例如,控制器可以使用仿射變換或用于圖像矯正的一些其它計算機視覺過程矯正圖像。在標記物610a、610b的圖像轉換之后,控制器可將圖像與例如參考特征庫中的存儲參考圖像進行比較,的,以便確認機器人100已經檢測到標記物610a、610b,所述參考特征庫在機器人100的存儲器存儲元件395上。所述比較也能夠允許控制器390確定由標記物610a、610b提供的信息的類型(例如,環境602和墻壁表面609的屬性)。在一些實施方式中,標記物610a、610b各自能夠具有傳達不同類型信息的多個部分。各標記物610a、610b的一部分能夠表明機器人100目前在其中的第一房間607的類型,并且標記物610a、610b的另一部分能夠表明連接到門口 611的第二房間608的類型。
[0092]在標記物610a、610b用于建立虛擬屏障的示例中,一旦檢測到標記610a、610b并且確認機器人已檢測到標記610a、610b,則機器人100可以基于所述標記610a、610b的位置在占用網格606中指定虛擬屏障612(例如,一組不可穿越單元)。例如,控制器可以計算穿過標記物610a、610b兩者的線614。線614平行于該控制器在占用網格606中指定的虛擬屏障612。雖然虛擬屏障612在占用網格606中被示出為在標記物610a、610b之間,在一些實施方式中,通過感測所述標記物610a、6 1b產生的虛擬屏障612可跨越比連接標記物610a、6 1b的線614更長的長度。
[0093]標記物61(^、61013能夠對機器人100表明在標記物61(^、61013之間存在門口611。在這樣的情況下,一旦完成第一房間607的清潔操作,機器人100能夠在后續的清潔操作中移動到虛擬屏障612,并開始后續清潔操作以清潔第二房間608。虛擬屏障612可以持續,但是代替在虛擬屏障612的右側清潔第一房間607,機器人100清潔第二房間608。
[0094]機器人100可以繼續在虛擬屏障612和物理墻壁表面609的范圍內清潔第一房間607,直到一個或多個條件得到滿足。例如,所述一個或多個條件可以包括覆蓋一定百分比的限定區域和/或本文所描述的其它條件。
[0095]在一些實施方式中,機器人100可在后續清潔操作中(例如,在持續性的占用網格中)記住虛擬屏障612。在第一清潔操作之后,用戶可以在機器人100檢測到標記物610a、610b時移除標記物610a、610b,而虛擬屏障612作為第一清潔操作的一部分仍然存在。例如,機器人100存儲虛擬屏障612,并將它用于后續清潔操作。當開始在第一房間607中的后續清潔操作時,機器人100保持在第一房間607中,并且不穿過門口611進入第二房間608。
[0096]參照圖7C,流程圖660示出了在環境中使用標記物指示機器人在存儲于機器人上的占用網格中產生虛擬屏障的方法。流程圖660包括對應于由用戶執行的操作的用戶操作665,和對應于由機器人執行的操作的機器人操作670。
[0097]在操作672中,用戶將標記物放置在環境中。用戶可以放置標記物,使得它們在環境中用戶不希望用戶穿越的特定特征的兩側,諸如門口、門檻或其它開口。標記物可以被放置在環境中的表面上,以識別房間物品。該表面可以是墻壁表面、障礙物表面、或環境中其它物體的表面。
[0098]在操作674中,用戶指示機器人開始第一清潔操作。用戶可以使用移動設備或可以按壓機器人上的按鈕來指示機器人開始所述第一清潔操作。
[0099]在操作676中,機器人的控制器接收到開始第一清潔操作的指令。在操作678中,機器人執行第一清潔操作。在一些情況下,所述控制器通過例如指示機器人開始清潔操作而開始所述第一清潔操作。在清潔操作過程中,如本文所述,機器人可以執行玉米行圖案,或者覆蓋環境地板表面的一些其它運動模式。
[0100]在操作680中,機器人探測環境中的標記物。控制器可以使用在機器人上的相機、超聲波傳感器或一些其它傳感器探測所述標記。在某些情況下,如本文所述,相機可檢測標記物的顏色、圖像或其它區別特征。該控制器可從相機接收對應于標記物探測的圖像數據。
[0101]在操作682中,控制器確定探測到的標記物是否是虛擬屏障標記物。所述控制器還可以對所探測標記物的圖像數據做后期處理,并做出圖像數據是否對應于控制器可通過檢測標記物所預期的參考圖像的判斷。控制器可將圖像數據與庫中的參考圖像進行比較,所述庫存儲在控制器可操作的存儲器存儲元件上。控制器能夠確定所探測的標記物是否指示虛擬屏障、位置或有關環境的其它信息。
[0102]如果控制器確定所檢測的標記物是虛擬屏障標記物,在操作684中,控制器在例如對應于所檢測標記物的位置的占用網格中產生虛擬屏障。如本文所述,所述虛擬屏障可對應于要標記在占用網格上的一組不可穿越單元。在一些情況下,不可穿越屏障的長度或寬度可以取決于在標記物上檢測到的區別特征。如果控制器確定所檢測到的標記物不是虛擬屏障標記物,在操作686中,控制器將與所檢測標記物有關的數據存儲在占用網格中。該數據可以例如是房間名稱、所檢測標記物的位置名稱。在一些實施方式中,控制器可確定控制器已經誤認了檢測到的標記物,并且所檢測到的標記沒有指示有關環境的信息。在一些示例中,控制器可確定檢測到的標記物既指示虛擬屏障,又指示與房間名稱或所檢測到的標記物位置有關的數據。
[0103]在操作688中,控制器確定第一清潔操作是否完成。控制器可以評估機器人是否已滿足本文所述的一個或多個條件。如果控制器確定第一清潔操作已完成,在操作690中,機器人完成第一清潔操作。如果控制器確定第一清潔操作未完成,在操作692中,機器人繼續第一清潔操作。控制器可以指示機器人繼續第一清潔操作。然后機器人可以繼續檢測環境中的標記物,或在某些情況下,機器人繼續第一清潔操作,然后完成第一清潔操作而無需檢測額外的標記物,并前進到操作690。
[0104]在一些實施方式中,控制器可以存儲將在后續清潔操作中使用的虛擬屏障。其結果是,在操作694中,用戶可以從環境中移除標記物。在一些實施方式中,用戶可以將標記物保留在環境中,并且通過機器人相機的后續標記物檢測可以增加相機已經檢測到標記物的?目心。
[0105]然后,在操作696中,用戶可以指示機器人開始第二清潔操作。在某些情況下,用戶指示機器人開始在機器人于第一清潔操作期間已清潔的環境中的第二清潔操作。在其它情況下,用戶指示機器人開始在另一環境中的清潔操作。在操作698中,控制器接收指令以使用第一清潔操作過程中產生的占用網格開始第二清潔操作。控制器然后指示機器人開始第二清潔操作。如果機器人在操作678和692期間已清潔的環境中開始第二清潔操作,機器人清潔同一區域并且不跨越虛擬屏障。如果機器人開始在另一環境中的第二清潔操作,機器人可以清潔于第一清潔操作期間的已清潔區域不同的區域,并且虛擬屏障有效地防止了機器人返回到在操作678和692期間已清潔的區域。
[0106]雖然在圖7Α至圖7C中示出的示例已經關于圖2Α至圖2Β描述的機器人100進行了描述,具有其它適當構造的其它移動機器人能夠執行本文描述的方法。例如,機器人200可以包括攝像頭,其可以執行本文描述的功能。在一些實施方式中,相機109可以拍攝控制器能夠用于識別門口幾何特征的特性的圖像(例如,從地板延伸穿過墻壁的一部分的矩形開口)。然后,控制器可以對應于相機109檢測的門口幾何形狀的位置放置虛擬屏障。
[0107]如本文所述,機器人100包括紅外收發器118以檢測發射到環境中的紅外輻射。參照圖8A,門口信標701位于包括第一房間704和第二房間706的環境702(例如,在圖8A的部分721中示出)的地板表面10上。門口 707分隔第一房間704與第二房間706。門口信標701發射由紅外收發器118探測的紅外門口束(gateway beam)708,用戶可以將門口信標701放置在環境702中,并且可以定向門口信標701使得門口束708指向特定方向。例如,門口束708能夠橫跨門口 707的長度定向。
[0108]在清潔所述第一房間704時,機器人100可以執行路徑709形式的玉米行圖案。隨著機器人100沿路徑709圍繞第一房間704行駛,機器人100可以在機器人100經過時使用例如紅外收發器118檢測門口束708。機器人100可以檢測門口束708,并將機器人100檢測到門口束708的位置解釋為機器人100的占用網格712(例如,在圖8A的部分723中示出)中的虛擬屏障710(例如,一組不可穿越單元)。盡管圖8A示出了路徑709在門口束708附近經過,在其它實施方式中,路徑709可穿過門口束708。門口信標701和它的門口束708由此防止機器人100穿過門口 707。
[0109]參照圖SB,在后續的清潔操作中,機器人100可以將虛擬屏障710的位置存儲在例如存儲器或遠程計算設備上作為持續地圖的一部分(例如,在圖SB的部分723中示出)。其結果是,當在圖8A中放置于環境702中的門口信標701被從環境中移除用于后續清潔操作時,機器人100仍然可以防止其自身越過虛擬屏障710。在一些情況下,機器人100可以被放置在第一房間704中并再次清潔所述第一房間704,而不會越過虛擬屏障710到第二房間706內。在其它情況下,機器人100可以被放置在第二房間706中,并且可以清潔所述第二房間706,而無需再次清潔第一房間704。
[0110]參照圖SC,流程圖760示出了在環境中使用門口信標以指示機器人在機器人的占用網格中產生存儲虛擬屏障的方法。流程圖760包括對應于由用戶執行的操作的用戶操作765,和對應于由機器人執行的操作的機器人操作770。
[0111]在操作772中,用戶將門口信標放置在環境中。用戶可以將門口信標放置在環境的地板表面上,使得門口束標記用戶不希望機器人穿越的環境中的特定特征或位置,諸如門口、門檻、或其它開口。
[0112]在操作774中,用戶指示機器人開始第一清潔操作。用戶可以使用移動設備或按下在機器人上的按鈕而指示所述機器人開始第一清潔操作。
[0113]在操作776中,機器人的控制器接收到開始第一清潔操作的指令。在操作778中,控制器開始第一清潔操作。
[0114]在操作780中,機器人的收發器檢測在環境中的門口束。所述收發器可以是紅外收發器。
[0115]在操作782,控制器在占用網格或其它持續地圖中產生虛擬屏障。如本文所述,虛擬屏障可對應于要被標記在占用網格上的一條不可穿越單元的線。在一些實施方式中,虛擬屏障可以是一組坐標,其在占用網格中限定一條線或曲線。在一些情況下,不可穿越屏障的長度或寬度可取決于該機器人在其于操作780中檢測門口束時感測到的信號強度。
[0116]在操作784中,控制器完成第一清潔操作。控制器可以通過例如確定機器人已滿足一個或多個條件而完成第一清潔操作,所述條件諸如覆蓋限定區域的一定百分比,和/或滿足本文所描述的其它條件。
[0117]在一些實施方式中,機器人可以將虛擬屏障存儲在持續地圖中以在后續清潔操作中使用。其結果是,在操作786中,用戶可以從環境中移除門口信標。然后,在操作788中,用戶可以指示機器人開始第二清潔操作。在某些情況下,用戶指示機器人開始該機器人于第一清潔操作期間已清潔的環境中的第二清潔操作。在其它情況下,用戶指示機器人開始在另一環境中的清潔操作。在操作790中,機器人開始使用第一清潔操作過程中所產生的占用網格第二清潔操作。如果機器人在操作778期間已清潔的環境中開始第二清潔操作,機器人清潔同一區域并且不跨越虛擬屏障。如果機器人開始在另一環境中的第二清潔操作,機器人可以清潔與第一清潔操作期間的已清潔區域不同的區域,并且虛擬屏障有效地防止了機器人返回到在操作778期間已清潔的區域。
[0118]雖然示于圖8A至圖SC中的上述示例已經被描述為使用圖2A至圖2B中描述的機器人100,具有其它適當構造的其它移動機器人能夠執行本文描述的方法。例如,機器人200可以包括紅外收發器,其能夠執行本文描述的功能。
[0119]雖然在這里產生的虛擬屏障已被描述為直壁,在一些實施方式中,虛擬屏障可以是圓形的。例如,將所述機器人置于關于圖6A至圖6C所描述的握手模式中可以使控制器產生基本上為圓形的虛擬屏障,其可以例如將機器人限制到圓形區域地毯。在某些情況下,用戶可使用能夠與機器人的通信系統進行通信的移動計算設備指示控制器產生圓形虛擬屏障。在一些情況下,機器人可以繼續在圓形區域中的清潔操作,直到控制器已確定機器人已實現一個或多個條件,諸如,覆蓋一定百分比的限定區域和/或實現本文所述的其它條件。在其它示例中,虛擬屏障可以建立圓形避開區域。
[0120]控制器可以使用虛擬屏障將環境分成要分別覆蓋的兩個或更多的區域。例如,虛擬屏障可將環境分成兩個區域,其中一個區域對應于例如廚房、浴室、地毯等,而第二區域對應于臥室、客廳、硬木地板等。控制器可以指示機器人在一個清洗操作中清潔第一區域,然后在后續清潔操作中清潔第二區域。在一些情況下,控制器可以指示機器人以更深的清潔模式清潔一個區域,在所述更深的清潔模式中,機器人將在該區域中多次重復清潔操作。在一些實施方式中,用戶可以將環境中的單個區域標記為房子中的特別房間,諸如廚房、臣卜室或浴室。如本文所述,控制器也能夠檢測標記物610a、610b中的特征,其可以允許控制器將標簽與環境的區域相關聯。然后,用戶可以使用移動計算設備指示所述機器人清潔被標記的區域。在機器人清潔另一標記區域時,用戶還可以指示機器人保持在標記區域之外。
[0121]雖然在本文所述的至少一些示例中,虛擬屏障存儲在被機器人用于定位的占用網格中,所述虛擬屏障可以存儲在被機器人用于定位和導航的其它類型的地圖中。
[0122]該系統可以至少部分地使用一個或多個計算機程序產品控制或實現,例如,有形地體現在一個或多個信息載體中的一個或多個計算機程序,其用于通過一個或多個數據處理設備執行或控制所述設備的操作,所述信息載體諸如一個或多個非臨時性可機讀介質,所述數據處理設備例如可編程處理器、計算機、多個計算機和/或可編程邏輯元件。
[0123]計算機程序可以用任何形式的編程語言編寫,包括編譯或解釋語言,并且其能夠以任何形式部署,包括作為獨立的程序或者作為模塊、組件、子程序,或適合于在計算環境中使用的其它單元。
[0124]與執行本文所述的全部或一部分控制機制相關聯的動作可以通過一個或多個可編程處理器執行,其執行一個或多個計算機程序以執行本文所述的功能。本文所述的全部或一部分控制機制可使用專用邏輯電路執行,例如,FPGA(現場可編程門陣列)和/SASIC(專用集成電路)。
[0125]通過舉例的方式,適合于執行計算機程序的處理器包括通用和專用微處理器兩者,以及任何類型的數字計算機的任何一個或多個處理器。通常,處理器將接收來自只讀存儲區或隨機存取存儲區或兩者的指令和數據。計算機元件包括一個或多個用于執行指令的處理器,以及一個或多個用于存儲指令和數據的存儲區設備。通常,計算機還將包括一個或多個可機讀存儲介質,或者與其可操作地耦合以接收來自所述存儲介質的數據,或將數據傳送到所述存儲介質,或兩者皆可,所述可機讀存儲介質諸如用于存儲數據的大規模PCBs,例如,磁盤、磁光盤或光盤。適合于包含計算機程序指令和數據的可機讀存儲介質包括所有形式的非易失性存儲區,以舉例的方式包括,半導體存儲區設備,例如,EPR0M、EEPROM和閃存存儲區設備;磁盤,例如,內部硬盤或可移動盤;磁光盤;以及,⑶-ROM和DVD-ROM 盤。
[0126]本文描述的不同實施方式的元件可被組合以形成上面未具體闡述的其它實施例。元件可被排除出本文描述的結構,而不會對其操作產生不利影響。此外,各種獨立的元件可以被組合為一個或多個單獨元件以執行本文描述的功能。
【主權項】
1.一種機器人,其特征在于,包括: 可相對于表面移動的主體; 在所述主體內的一個或多個測量設備,其基于所述主體在所述表面上的初始位置處的取向輸出信息;以及 在所述主體內的控制器,其基于所述信息確定所述主體的取向,并且通過防止所述主體的運動超出基于所述主體取向和初始位置的屏障之外而將所述主體的運動限制到一區域。2.根據權利要求1所述的機器人,其特征在于,所述屏障延伸穿過門口,并且所述機器人的初始位置在所述門口內。3.根據權利要求1所述的機器人,其特征在于,所述主體包括正部和背部;并且 其中,所述屏障沿著平行于所述機器人背部的線延伸。4.根據權利要求3所述的機器人,其特征在于,所述線正切于所述機器人的背部。5.根據權利要求3所述的機器人,其特征在于,所述線在由所述機器人上的視覺指示器指示的位置處與所述機器人的主體相交。6.根據權利要求1所述的機器人,其特征在于,所述主體包括正部和背部;并且 其中,所述屏障包括平行于所述機器人背部延伸的第一線和垂直于所述機器人背部延伸的第二線。7.根據權利要求6所述的機器人,其特征在于,所述機器人的初始位置將所述主體的背部鄰近所述第一線放置,并且將所述主體的側部鄰近所述第二線放置。8.根據權利要求6所述的機器人,其特征在于,還包括位于所述主體的底部的輪子,所述控制器通過驅動輪子而限制所述主體的運動,所述主體的運動包括: 相對于所述初始取向旋轉一角度;以及 沿大致平行于所述屏障的路徑穿越所述表面的區域。9.根據權利要求1所述的機器人,其特征在于, 所述控制器還包括制圖模塊,所述制圖模塊存儲機器人行駛的房間的占用網格, 所述占用網格包括所述控制器產生的表現待清潔區域的地圖;以及 所述占用網格還包括所述控制器產生的虛擬屏障,其指示禁止所述機器人越過的位置。10.根據權利要求8所述的機器人,其特征在于,所述屏障通過由控制器或用戶將對應于所述屏障的坐標指定為不可穿越的而被指定,所述屏障基于所述機器人的初始取向和初始位置限定。11.根據權利要求1所述的機器人,其特征在于,所述主體還包括用于探測在縱向或橫向方向上的碰撞的緩沖器,所述控制器在進入握手模式時執行確定所述取向和限制所述運動的操作,所述控制器響應于所述緩沖器的壓縮和清潔按鈕的按壓或者所述機器人的搖動而識別所述握手模式。12.—種機器人,包括: 主體,沿著在所述主體下方的表面可移動; 相對于所述表面朝上的相機,所述相機被構造為拍攝固定到一結構的標記物的一個或多個圖像;以及 在所述主體內的控制器,其基于所述一個或多個圖像而識別所述標記物的位置,并至少在一個或多個條件得到滿足前,防止所述主體運動到超出由所述標記物位置限定的屏障之外的表面的一區域。13.根據權利要求12所述的機器人,其特征在于,所述標記物包括紅外圖像標記物,并且所述相機是紅外相機。14.根據權利要求12所述的機器人,其特征在于,所述標記物包括可機讀信息,其表示對應于所述結構的位置名稱、所述結構的名稱、或對應于所述結構的位置名稱和所述結構的名稱兩者。15.根據權利要求14所述的機器人,其特征在于,所述機器人還包括無線收發器,用于將所述位置名稱和所述結構的名稱中的至少一個發送到并顯示在移動設備上,并允許所述控制器與移動設備通信以接收來自用戶的指令。16.根據權利要求12所述的機器人,其特征在于, 所述控制器還包括制圖模塊,所述制圖模塊存儲機器人行駛的房間的占用網格, 所述占用網格包括所述控制器產生的表現所述表面的至少一部分的地圖; 所述控制器還包括傳感器系統,所述傳感器系統基于所述標記物的位置在所述地圖上識別所述標記物; 所述占用網格還包括所述控制器產生的虛擬屏障,所述標記物的位置在所述占用網格中指定虛擬屏障,所述虛擬屏障禁止所述主體運動到超出所述標記物在所述地圖上的位置之外的表面的區域。17.根據權利要求16所述的機器人,還包括: 發射器,其與計算機網絡無線通信以將所述地圖通過所述計算機網絡發送到一個或多個遠程計算設備。18.根據權利要求12所述的機器人,其特征在于,所述主體的頂部包括用于拍攝所述標記物的相機,所述控制器基于所述標記物的一個以上的圖像識別所述標記物的位置,并防止所述主體運動到超出基于所述一個以上的圖像識別的所述標記物位置之外的表面的區域。19.根據權利要求12所述的機器人,其特征在于, 所述控制器還包括制圖模塊,所述制圖模塊存儲機器人行駛的房間的占用網格, 所述占用網格包括所述控制器產生的表現所述表面的至少一部分的地圖, 所述控制器還包括傳感器系統,所述傳感器系統基于所述標記物的位置在所述地圖上識別所述標記物, 所述占用網格還包括所述控制器產生的屏障, 所述標記物的位置在所述占用網格中指定屏障,并且 在滿足一個或一個以上的條件時,所述控制器允許所述主體運動到超出由所述標記物的位置限定的屏障之外的表面的區域,并至少在一個或多個條件得到滿足前,防止所述主體跨過所述屏障回來的運動。
【文檔編號】A47L11/40GK205458451SQ201520709677
【公開日】2016年8月17日
【申請日】2015年9月14日
【發明人】M.威廉斯, P-H.陸, J.M.約翰遜
【申請人】美國iRobot公司