自主移動機器人的制作方法
【專利摘要】一種自主移動機器人(100)包含機器人主體(110)、驅動系統(120)、傳感器系統(500)及控制器(120)。所述驅動系統支撐所述機器人主體且在地板表面(10)上操縱所述機器人。所述傳感器系統包含用于測量所述機器人的姿勢的慣性測量單元(510d)且發布傳感器信號,所述傳感器信號包含具有關于所述機器人的姿勢的信息的數據。行為系統(210a)從所述傳感器系統接收所述傳感器信號且執行行為(300)。所述行為系統響應于傳感器信號指示所述機器人受到約束而執行防停滯行為(300a)以評估約束狀態。另外,所述行為系統響應于傳感器信號指示所述機器人相對于重力方向傾斜而執行防傾斜行為(310b)以評估傾斜狀態。
【專利說明】
自主移動機器人
技術領域
[0001 ]本發明涉及自主移動機器人停滯檢測。
【背景技術】
[0002]真空清潔器通常使用空氣栗來形成用于通常從地板且任選地也從其它表面提升灰塵及塵埃的部分真空。真空清潔器通常將塵埃收集于灰塵袋或旋風集塵器中以供稍后處置。在家庭中以及在工業中使用的真空清潔器以多種大小及型號存在,例如小型電池操作手持式裝置、家用中央真空清潔器、可在倒空之前處置數百公升灰塵的大型固定工業器具及用于回收大量溢出物或移除經污染土壤的自推進真空卡車。
[0003]自主機器人真空清潔器在正常操作條件下通常導航通過居住空間及常見障礙物同時在地板上進行真空吸塵。自主機器人真空清潔器通常包含允許其避開例如墻壁、家具或樓梯等障礙物的傳感器。機器人真空清潔器可在其碰到障礙物時變更其驅動方向(例如,轉向或后退)。機器人真空清潔器還可在檢測到地板上的異常污點時變更驅動方向或驅動模式。
【發明內容】
[0004]本發明的一個方面提供一種自主移動機器人,其包含機器人主體、驅動系統、傳感器系統及控制器。所述機器人主體界定前向驅動方向。所述驅動系統支撐所述機器人主體且經配置以在地板表面上操縱所述機器人。所述傳感器系統包含輪編碼器及用于測量所述機器人的姿勢的慣性測量單元且發布傳感器信號。所述傳感器信號指示所述機器人的所述姿勢。所述控制器與所述驅動系統及所述傳感器系統通信且具有執行行為系統的計算處理器。所述行為系統從所述傳感器系統接收所述傳感器信號且基于所述傳感器信號而執行至少一個行為。所述行為系統任選地響應于傳感器信號指示所述機器人受到約束而執行防停滯行為以評估約束狀態。另外,所述行為系統任選地響應于傳感器信號指示所述機器人相對于重力方向傾斜而執行防傾斜行為以評估傾斜狀態。在一些實例中,所述行為系統任選地響應于傳感器信號指示所述機器人擠住于障礙物下方而執行防擠住行為。
[0005]本發明的實施方案可包含以下任選特征中的一或多者。在一些實施方案中,所述控制系統在計算處理器上執行且包含向所述機器人的資源發布命令的控制仲裁系統。所述控制系統可致使執行具有擺動角度的擺動命令。所述擺動命令包含沿以所述擺動角度相對于彼此成角度的交替左及右驅動方向進行驅動的驅動命令。另外,如果所述控制器接收到指示所述機器人不執行具有第一擺動角度的第一擺動命令的傳感器信號,那么所述控制器致使執行具有大于所述第一擺動角度的第二擺動角度的第二擺動命令。另外,當所述慣性測量單元及/或所述輪編碼器的信號未處于用于指示機器人移動的可允許容限內時,所述控制器向所述驅動系統發布防停滯命令。
[0006]在一些實例中,所述約束狀態包含所述機器人相對于物體進入或處于擠住位置。另外,所述傳感器信號可包含:碰撞信號,其指示所述機器人與所述物體接觸;及輪下落信號,其指示所述驅動系統的輪移動遠離所述機器人主體。
[0007]在一些實施方案中,所述防停滯行為致使執行使所述機器人遠離阻礙物后退或使所述機器人遠離所述機器人的經歷約束(例如,處于扭轉狀態中)的一側轉向的驅動命令。另外,所述防停滯行為可進一步致使執行沿弧形軌跡驅動所述機器人的驅動命令。
[0008]在一些實施方案中,所述行為系統在所述機器人相對于所述重力方向傾斜達至少閾值時間周期時執行傾斜行為。所述防傾斜行為可在所述機器人相對于所述重力方向及所述前向驅動方向上仰時致使執行前向驅動命令。此外,所述防傾斜行為可在所述機器人相對于所述重力方向及所述前向驅動方向下俯時致使執行反向驅動命令。
[0009]在一些實施方案中,所述行為系統在所述機器人相對于所述重力方向傾斜成大于閾值角度的角度時執行所述防傾斜行為。所述防傾斜行為可在所述機器人相對于所述重力方向及所述前向驅動方向上仰時致使執行前向驅動命令,且可在所述機器人相對于所述重力方向及所述前向驅動方向下俯時致使執行反向命令。在一些實施方案中,所述傳感器系統包含以下各項中的至少一者:障礙物檢測障礙物避開(ODOA)傳感器、通信傳感器、導航傳感器、接近度傳感器、接觸傳感器、相機、聲納、雷達、LIDAR或LADAR。
[0010]在一些實施方案中,所述自主移動機器人進一步包含安置于所述機器人的底表面上且在所述驅動系統的驅動輪前向的機械開關。所述機械開關在與障礙物或物體接觸時即刻激活。所述行為系統可在所述機械開關被激活且所述傳感器系統檢測到固定不動的機器人時執行停滯行為。
[0011 ]在一些實例中,所述自主移動機器人進一步包含用于清潔或處理所述地板表面的清潔系統。所述行為系統可在所述機械開關被激活且所述傳感器系統檢測到運動時執行防攝入行為。所述防攝入行為致使發布用于停止清潔行為的清潔停止命令且發布具有擺動角度的擺動命令。所述擺動命令包含沿以所述擺動角度相對于彼此成角度的交替左及右驅動方向進行驅動的驅動命令。另外或替代地,所述行為系統可在所述控制器從所述傳感器系統接收到指示所述機器人的所述輪以小于停轉閾值的停轉速率停轉的信號時執行輪擠塞行為。所述輪擠塞行為致使發布用于釋放所述機器人的經停轉輪的所述擺動命令。所述機器人可進一步包含驅動輥刷,所述驅動輥刷平行于橫向軸X延伸且由所述機器人主體以可旋轉方式支撐以接觸地板表面。所述驅動輥刷沿第一方向圍繞所述X軸旋轉。所述防攝入行為致使偏置所述輥刷以沿與所述第一方向相反的第二方向被動地旋轉,舉例來說,以允許經纏繞的繩在所述機器人后退離開或驅動離開時從所述輥刷退繞。
[0012]本發明的另一方面提供一種用于自主移動機器人的控制系統。所述控制系統包含控制仲裁系統、驅動系統、傳感器系統及控制器。所述控制仲裁系統在計算處理器上執行且向所述機器人的資源發布命令。所述驅動系統包含右及左驅動輪。另外,所述驅動系統支撐所述機器人主體且經配置以在地板表面上操縱所述機器人。所述傳感器系統包含跟蹤兩個驅動輪的旋轉的輪編碼器及測量所述機器人的姿勢的慣性測量單元。所述傳感器系統發布指示所述機器人的所述姿勢的傳感器信號。所述控制器與所述驅動系統及所述傳感器系統通信。另外,所述控制器具有執行行為系統的計算處理器。所述行為系統從所述傳感器系統接收所述傳感器信號且基于所述傳感器信號而執行至少一個行為。所述行為系統任選地響應于傳感器信號指示所述機器人受到約束而執行防停滯行為以評估約束狀態,且任選地響應于傳感器信號指示所述機器人相對于重力方向傾斜而執行防傾斜行為以評估傾斜狀態。
[0013]本發明的另一方面提供一種操作自主移動機器人的方法。所述方法包含在計算處理器處從傳感器系統接收傳感器信號。所述傳感器信號包含所述機器人的慣性測量或角定向。所述方法還包含在所述計算處理器上執行行為系統。所述行為系統從所述傳感器系統接收所述傳感器信號且基于所述傳感器信號而執行至少一個行為。所述行為系統響應于傳感器信號指示所述機器人受到約束而執行防停滯行為以評估狀態約束。另外,所述行為系統響應于傳感器信號指示所述機器人相對于重力方向傾斜而執行防傾斜行為以評估傾斜狀態。
[0014]在一些實施方案中,所述防停滯行為包含發布具有擺動角度的擺動命令。所述擺動命令包含沿以所述擺動角度相對于彼此成角度的交替左及右驅動方向進行驅動的驅動命令。所述方法可進一步包含在計算處理器處從所述傳感器系統接收第二傳感器信號。如果所述第二傳感器信號指示所述機器人為固定不動的、在執行具有第一擺動角度的第一擺動命令之后不執行,那么所述防停滯行為驅動系統發布具有大于所述第一擺動角度的第二擺動角度的第二擺動命令,且所述傳感器系統監測機器人慣性姿勢及輪旋轉的傳感器。如果所述傳感器信號未處于容限內,那么所述機器人執行防停滯行為。
[0015]在一些實例中,所述方法包含在所述機器人相對于所述重力方向傾斜達至少閾值時間周期時執行所述防傾斜行為。所述方法可包含在所述機器人相對于所述重力方向及所述前向驅動方向上仰時執行前向驅動命令,且在所述機器人相對于所述重力方向及所述前向驅動方向下俯時執行反向驅動命令。
[0016]在一些實例中,所述方法包含在所述機器人相對于所述重力方向傾斜成大于閾值角度的角度時執行所述防傾斜行為。所述方法可包含在所述機器人相對于所述重力方向及所述前向驅動方向上仰時執行前向驅動命令,且在所述機器人相對于所述重力方向及所述前向驅動方向下俯時執行反向命令。
[0017]在一些實施方案中,所述方法進一步包含激活安置于所述機器人的底表面上在驅動系統的輪前向的機械開關,所述機械開關在障礙物接觸所述機械開關時被激活。另外,所述方法可包含在所述機械開關被激活且所述傳感器系統檢測到固定不動的機器人時執行停滯行為。
[0018]在一些實施方案中,所述方法包含使用清潔系統清潔或處理所述地板表面。所述方法可包含在所述機械開關被激活且所述傳感器系統檢測到運動時執行防攝入行為。所述防攝入行為致使發布用于停止清潔行為的清潔停止命令且發布具有擺動角度的擺動命令。所述擺動命令包含沿以所述擺動角度相對于彼此成角度的交替左及右驅動方向進行驅動的驅動命令。在一些實例中,所述方法包含在所述控制器從信號系統接收到指示所述機器人的輪以小于停轉閾值的停轉速率停轉的信號時執行輪擠塞行為。所述輪擠塞行為致使發布用于釋放所述機器人的經停轉輪的所述擺動命令。
[0019]在附圖及以下說明中陳述本發明的一或多個實施方案的細節。依據說明及圖式且依據權利要求書,其它方面、特征及優點將顯而易見。
【附圖說明】
[0020]圖1是示范性自主移動機器人的透視圖。
[0021 ]圖2是圖1中所展示的示范性自主移動機器人的側視圖。
[0022]圖3是圖1中所展示的示范性自主移動機器人的仰視圖。
[0023]圖4是用于清潔的示范性自主移動機器人的透視圖。
[0024]圖5是用于清潔的示范性自主移動機器人的透視圖。
[0025]圖6A是示范性自主移動機器人的防停滯行為的流程圖。
[0026]圖6B是執行停滯狀況躲避行為的示范性自主機器人的透視圖。
[0027]圖6C是處于擠住狀態中的示范性自主機器人的側視圖。
[0028]圖7A及7B是圍繞Z軸擺動的示范性自主機器人的透視圖。
[0029]圖8是示范性自主移動機器人的防停滯行為的流程圖。
[0030]圖9A是示范性自主機器人在其橫越兩個不同地板時的前視圖。
[0031]圖9B是示范性自主機器人在其橫越空間時的俯視圖。
[0032]圖1OA是示范性自主移動機器人的防傾斜行為的流程圖。
[0033]圖1OB是示范性自主移動機器人的防傾斜行為的流程圖。
[0034]圖1IA是示范性自主清潔移動機器人的透視圖。
[0035]圖1IB是示范性自主清潔移動機器人的前視圖。
[0036]圖12是示范性自主移動機器人的防攝入行為的流程圖。
[0037]圖13是示范性自主移動機器人的輪擠塞行為的流程圖。
[0038]圖14是用于操作自主移動機器人的操作的示范性布置的示意圖。
[0039]在各圖式中,相似的參考符號指示相似的元件。
【具體實施方式】
[0040]以可移動方式支撐的自主機器人可導航通過地板表面。在一些實例中,自主機器人可在橫越表面的同時清潔所述表面。機器人可通過以下操作從表面移除碎肩:扇動碎肩及/或通過在表面上方施加負壓力(例如,部分真空)而從表面提升碎肩,及從表面收集碎肩。
[0041]參考圖1-3,在一些實施方案中,機器人100包含由驅動系統120支撐的主體110,驅動系統120可基于具有(舉例來說)1、7及0分量的驅動命令而操縱機器人100跨越地板表面
10。機器人主體110具有前向部分112及后向部分114。驅動系統120包含右驅動輪模塊120a及左驅動輪模塊120b。輪模塊120a、120b沿著由主體110界定的橫向軸X基本上對置且包含驅動相應輪124a、124b的相應驅動電動機122a、122b。驅動電動機122a、122b可以可釋放方式連接到主體110 (例如,經由緊固件或免工具連接),其中驅動電動機122a、122b任選地基本上定位于相應輪124a、124b上方。輪模塊120a、120b可以可釋放方式附接到主體110且由相應彈簧迫使成與清潔表面10嚙合。在一些實例中,輪模塊120a、120b包含輪編碼器121a、121b,輪編碼器121a、121b將輪124a、124b的旋轉運動轉換為指示輪124a、124b的旋轉及/或位置的模擬或數字信號。在一些實例中,輪124a、124b分別以可釋放方式連接到輪模塊12(^、12013。輪1243、12413可具有偏置下落式(13丨38 6(1-1:0-(11'(^)懸掛系統,其改進輪模塊120a、120b在光滑地板(例如,硬木材、濕地板)上的牽引。機器人100可包含經安置以支撐機器人主體110的前向部分112的腳輪126。機器人主體110支撐用于給機器人100的任何電組件供電的電源102(例如,電池)。
[0042]機器人100可通過相對于由主體110界定的如下三個相互垂直軸的移動的各種組合而移動跨越清潔表面:橫向軸X、前后軸Y及中心垂直軸Z。沿著前后軸Y的前向驅動方向標示為F(下文中有時稱為“前向”),且沿著前后軸Y的向后驅動方向標示為A(下文中有時稱為“后向”)。橫向軸X基本上沿著由輪模塊120a、120b的中心點界定的軸在機器人100的右側R與左側L之間延伸。
[0043]機器人100可圍繞X軸傾斜。當機器人100傾斜到朝南位置時,其朝向后向部分114傾斜(下文中有時稱為“上仰”),且當機器人100傾斜到朝北位置時,其朝向前向部分112傾斜(下文中有時稱為改變“下俯”)。另外,機器人100圍繞Y軸傾斜。機器人100可向Y軸的東側傾斜(下文中有時稱為“右滾”),或機器人100可向Y軸的西側傾斜(下文中有時稱為“左滾”)。因此,機器人100圍繞X軸的傾斜的改變為其俯仰的改變,且機器人100圍繞Y軸的傾斜的改變為其滾動的改變。另外,機器人100可向右(S卩,東側位置)或向左(S卩,西側位置)傾斜。在一些實例中,機器人100圍繞X軸且圍繞Y軸傾斜,從而具有例如東北、西北、東南及西南等傾斜位置。在機器人100正橫越地板表面10時,機器人100可圍繞其Z軸進行左轉或右轉(下文中有時稱為偏轉的改變)O偏轉的改變致使機器人100在其正移動時進行左轉或右轉。因此,機器人100可同時具有其俯仰、滾動或偏轉中的一或多者的改變。
[0044]主體110的前向部分112承載緩沖器130,舉例來說,在于清潔例程期間輪模塊120a、120b推進機器人100跨越清潔表面時,緩沖器130檢測(例如,經由一或多個傳感器)機器人100的驅動路徑中的一或多個事件。機器人100可通過響應于由緩沖器130檢測到的事件(例如,障礙物18、陡壁及/或墻壁20)而控制輪模塊120a、120b操縱機器人100 (例如,遠離障礙物18)來對所述事件做出響應。盡管本文中將一些傳感器描述為布置于緩沖器130上,但這些傳感器可另外或替代地布置于機器人100上的各種不同位置中的任一者處,包含但不限于機器人的底表面116(例如,機械開關530)。
[0045]機器人100可包含用于清潔或處理地板表面10的清潔系統160。清潔系統160可包含干式清潔系統160a及/或濕式清潔系統160b。干式清潔系統160a可包含驅動輥刷162(例如,具有刷毛及/或攪拌片),驅動輥刷162平行于橫向軸X延伸且由機器人主體110以可旋轉方式支撐以接觸地板表面10。驅動輥刷162扇動碎肩離開地板表面10且將經扇動碎肩投擲或導引到收集箱163中。清潔系統160還可包含具有相對于地板表面10成角度的旋轉軸的側刷164以用于將碎肩移動到清潔系統160的清潔條帶區域中。濕式清潔系統160b可包含流體施涂器166,流體施涂器166沿著橫向軸X延伸且將清潔液體施配到表面上。干式清潔系統160a及/或濕式清潔系統160b可包含在清潔表面上進行真空吸塵的一或多個刮刷真空器件168(例如,其間具有經由空氣栗施加的部分真空的間隔開的柔性葉片)。
[0046]安置于主體110的頂部部分上的用戶接口140接收一或多個用戶命令及/或顯示機器人100的狀態。用戶接口 140與由機器人100承載的機器人控制器150通信使得由用戶接口140接收的一或多個命令可起始機器人100對清潔例程的執行。控制器150包含與非暫時性存儲器154(例如,硬盤、快閃存儲器、隨機存取存儲器)通信的計算處理器152(例如,中央處理單元)。
[0047]機器人控制器150(執行控制系統210)可執行致使機器人100采取行動(例如以墻壁沿循方式、地板擦洗方式操縱或在檢測到障礙物18(例如,椅子18a、桌子18b、沙發18c等等)時改變其行進方向)的行為300。機器人控制器150可通過獨立地控制每一輪模塊120a、120b的旋轉速度及方向而沿任何方向操縱機器人100跨越清潔表面。舉例來說,機器人控制器150可沿前向方向F及反向(向后)方向A操縱機器人100,或者沿向右方向R或向左方向L使機器人100轉向。
[0048]參考圖4及5,為了實現可靠且穩健的自主移動,機器人100可包含具有數個不同類型的傳感器510的傳感器系統500,所述傳感器可連同彼此一起使用以形成對機器人的環境的感知,其足以允許機器人100關于將在所述環境中采取的行動做出智能決策。傳感器系統500可包含由機器人主體110支撐的一或多個類型的傳感器510,其可包含障礙物檢測/障礙物避開(ODOA)傳感器、通信傳感器、導航傳感器等等。舉例來說,這些傳感器510可包含但不限于接近度傳感器、接觸傳感器、相機(例如,體積點云成像、三維(3D)成像或深度圖傳感器、可見光相機及/或紅外相機)、聲納、雷達、LIDAR(光檢測與測距,此可需要測量所散射光的性質以得出遙遠目標的范圍及/或其它信息的光學遠程感測)、LADAR(激光檢測與測距)等等。在一些實施方案中,傳感器系統500包含測距聲納傳感器、接近度陡壁檢測器、接觸傳感器、激光掃描儀及/或成像聲納。
[0049]在一些實例中,傳感器系統500包含與控制器150通信以測量并監測機器人100的加速度及機器人100相對于機器人100的總體重心CGr的定向的慣性測量單元(IMU)510d。IMU 510d包含用以測量機器人100在空間中的相對定向的一或多個陀螺儀(gyroscope,下文中“gyro”)及一或多個角加速度計及/或線性角加速度計。控制器150可監測來自IMU510d的反饋中與對應于正常不受阻礙操作的閾值信號的任何偏差。舉例來說,如果機器人100開始俯仰遠離直立位置,那么其可被困住、中心變高、扭轉、被擠住或以其它方式被阻礙,或者某人可突然添加重的有效負荷。在這些實例中,采取緊急行動(包含但不限于回避操縱、重新校準及/或發布音頻/視覺警告)以便確保機器人100的安全操作可為必要的。
[0050]當從一次停止加速時,控制器150可從機器人100的總體重心CGr考量機器人100的慣性矩以防止機器人傾倒。控制器150可使用機器人姿勢的模型,包含其當前慣性矩。當支撐有效負荷時,控制器150可測量對總體重心CGr的負荷沖擊且監測機器人慣性矩的移動。如果此為不可能的,那么控制器150可將測試扭矩命令施加到驅動系統120且使用頂U 510d測量機器人100的實際線性加速度及角加速度,以便以實驗方式確定安全限制。
[0051 ] IMU 510d可基于相對值測量及監測機器人100的俯仰、滾動及偏轉。在一些實施方案中且在一時間周期內,連續移動可致使MU 510d漂移。控制器150執行復位命令以重新校準頂U 510d且將其復位到零。在復位頂U 510d之前,控制器150確定機器人100是否傾斜且僅在機器人100在平坦表面上的情況下發布復位命令。
[0052]在一些實施方案中,機器人100包含導航系統600,導航系統600經配置以允許機器人100導航通過地板表面10而不撞向障礙物18或從樓梯跌落,且智能地辨識相對臟的地板區域以進行清潔。此外,導航系統600可以確定性及偽隨機模式操縱機器人100跨越地板表面10。導航系統600可為在機器人控制器150上存儲及/或執行的基于行為的系統。導航系統600可與傳感器系統500通信以確定驅動命令并向驅動系統120發布驅動命令。導航系統600影響并配置機器人行為300,因此允許機器人100以系統性預先計劃的移動而運轉。在一些實例中,導航系統600從傳感器系統500接收數據并計劃用于供機器人100橫越的所要路徑610。
[0053]在一些實施方案中,控制器150(例如,具有與非暫時性存儲器154通信的一或多個計算處理器152的裝置,所述存儲器能夠存儲可在所述計算處理器上執行的指令)執行控制系統210,控制系統210包含彼此通信的行為系統21 Oa及控制仲裁系統21 Ob。控制仲裁系統210b允許動態地向控制系統210添加及從控制系統210移除機器人應用程序220且促進允許應用程序220各自控制機器人100而不需要了解任何其它應用程序220。換句話說,控制仲裁系統210b提供應用程序220與機器人100的資源240之間的簡單優先化控制機制。
[0054]應用程序220可存儲于機器人100的存儲器中或被傳遞到機器人100以在機器人100上(例如,在處理器上)并行地運行且同時控制機器人100。應用程序220可存取行為系統210a的行為300。經獨立部署的應用程序220在運行時間動態地組合且用以共享機器人資源240(例如,驅動系統120及/或清潔系統160、160a、160b)。實施用于在運行時間在應用程序220當中動態地共享機器人資源240的低級策略。所述策略確定哪一應用程序220具有對機器人資源240的控制,這是按照所述應用程序220的需要(例如,應用程序220當中的優先級層次)。應用程序220可動態地開始及停止且完全獨立于彼此而運行。控制系統210還允許可組合在一起以彼此輔助的復雜行為300。
[0055]控制仲裁系統210b包含與控制仲裁器260通信的一或多個應用程序220。控制仲裁系統210b可包含為應用程序220提供到控制仲裁系統210b的接口的組件。此類組件可抽象化并封裝掉驗證、分布式資源控制仲裁器、命令緩沖的復雜性,協調應用程序220的優先化等等。控制仲裁器260從每個應用程序220接收命令、基于所述應用程序的優先級而產生單個命令并為其相關聯資源240公布所述命令。控制仲裁器260從其相關聯資源240接收狀態反饋且可將其發送回到應用程序220。機器人資源240可為具有一或多個硬件控制器的功能模塊(例如,致動器、驅動系統及其群組)的網絡。控制仲裁器260的命令為資源240特有的以執行特定行動。可在控制器150上執行的動力學模型230經配置以計算機器人100的重心(CG)、慣性矩及各部分的慣性交叉積以用于評估當前機器人狀態。
[0056]在一些實施方案中,行為300為提供層次、狀態全評估功能的插入式組件,所述功能將來自多個源(例如傳感器系統500)的感測反饋與先驗極限及信息一起耦合到關于機器人100的可允許行動的評估反饋中。由于行為300可插入到應用程序220中(例如,駐存在應用程序220的內部或外部),因此可在不必修改應用程序220或控制系統210的任何其它部分的情況下移除及添加行為300。每一行為300為獨立策略。為了使得行為300更強大,可將多個行為300的輸出一起附接到另一者的輸入中使得可具有復雜的組合功能。行為300既定實施機器人100的全部認知的可管理部分。
[0057]在所展示的實例中,行為系統210a包含用于基于由傳感器510感知的障礙物18而確定響應性機器人行動(例如,繞開;轉向;在障礙物18之前停止等等)的障礙物檢測/障礙物避開(ODOA)行為300f。另一行為300可包含用于鄰近所檢測到的墻壁20驅動(例如,以朝向及遠離墻壁20驅動的擺動模式)的墻壁沿循行為300g。其它行為300可包含塵埃搜尋行為300h(其中傳感器檢測到地板表面10上的污點且機器人100朝向所述點轉向以進行清潔)、點清潔行為300e(例如,機器人100沿循玉米條狀(cornrow)圖案以清潔特定點)、陸壁行為300j(例如,機器人100檢測到樓梯且避免從所述樓梯跌落)、防停滯行為300a、防傾斜行為300b、防攝入行為300c以及輪擠塞(wheel-jam)行為300d。
[0058]在一些實例中,行為系統210a包含狀態行為310,狀態行為310檢測機器人100的狀態且可觸發躲避行為300i以幫助機器人100克服吸入其真空器件168中的物體或者在機器人100被擠住且傾斜、被困住或扭轉時(例如,當一個輪124a或124b轉向而另一輪被鉤住時)幫助機器人100。在一些實例中,狀態行為310包含防停滯行為300a、防傾斜行為300b及防攝入行為300c。
[0059]參考圖6A,其展示用于執行機器人100的防停滯行為300a的流程圖650。當機器人100橫越地板表面10時,由于控制器150在框652處執行/發布驅動命令,因此機器人100在框654處有規律地從頂U 510d接收信號,從而確定機器人100的姿勢。控制器150在決策框656處基于所接收MU信號而確定機器人100是正在移動還是被卡住且傾斜,且接著確定執行哪一行為300。如果甚至在驅動命令之后機器人100仍不移動,那么控制器150在框658處執行防停滯行為300a以嘗試釋放機器人100。如果機器人100不是固定不動的(S卩,正在移動)但傾斜,那么控制器150執行防傾斜行為300b以使機器人100返回到其法向表面。在一些實例中,傳感器信號指示機器人100相對于重力方向傾斜。行為系統210a可執行防傾斜行為300b以評估約束狀態。
[0060]機器人100監測(例如,同時地或串行地)多個參數以檢測輪124a、124b的狀況,例如輪124a、124b是否正在不移動的情況下自旋或者機器人100是否被擠住。這些所監測參數包含:I)所命令行進速率;2)編碼器輪旋轉速率;及3HMU(陀螺儀)旋轉速率。舉例來說,機器人100檢測控制器150是否向機器人100發布了沿前向驅動方向F驅動的命令及機器人100是否實際上正沿前向驅動方向F驅動。機器人100在框654處監測陀螺儀及輪編碼器以確定哪一輪124a、124b未在旋轉。機器人100確定所述三個所監測參數(命令速率、編碼器速率及相對于機器人100的定向的陀螺儀改變速率)是否處于容限內。機器人100轉向越快,其允許的對所述三個所監測參數當中的變化的容限越大。容限值還取決于陀螺儀及輪編碼器121a、121b的校準,以及機器人100的幾何形狀是否抵抗轉向及輪124a、124b的滑動。
[0061 ]舉例來說,如果機器人100正扭轉,那么一個輪124a、124b可能被鉤住。機器人100的傳感器系統500確定控制器150是否向機器人100發布了沿前向驅動方向F驅動的命令及機器人100是否實際上正沿前向驅動方向F驅動。如果機器人100未按控制器150命令沿前向驅動方向F移動,那么機器人100確定輪124a、124b中的哪一者未在旋轉且以給定速率逆時針轉向,同時監測編碼器12Ia、12Ib及頂U 51d的陀螺儀的旋轉速率。在決策框656處,機器人100將所命令旋轉速率(從控制器150接收)、編碼器旋轉速率及IMU旋轉速率進行比較以驗證機器人100的實際運動符合由控制器150發布的命令。如果所述三個參數值未處于與所命令運動一致的參數容限閾值內,那么機器人100檢測到停滯。因此,機器人在決策框656處確定與所命令行進速率相比,編碼器改變速率及MU改變速率是否處于容限改變速率內。當與所命令行進速率相比編碼器改變速率及頂U改變速率處于容限改變速率內時,機器人100在框658處通過遠離機器人100的受約束側沿弧線移動而執行防停滯300a行為。然而,當與所命令行進速率相比編碼器改變速率及頂U改變速率未處于容限改變速率內時,機器人在框652處繼續發布使機器人100圍繞地板表面10橫越的驅動命令。決策框660確定機器人100是否應在框652處繼續發布驅動命令。在一些實施方案中,為了躲避受約束狀態,機器人100遠離阻礙物后退、遠離被卡住的輪(經歷約束的一側)轉向90度且接著沿前向方向F驅動,從而沿介于約-135度到+135度之間的弧線軌跡前向移動以防止系統性疏忽。如圖6B中所展示,弧線移動600a、600b具有沿任一方向相同的半徑,但所行進的距離通過在沿著弧線600a、600b的軌跡的各個隨機選擇的點605a到605j處中斷弧線移動600a、600b而改變。通過沿隨機范圍的走弧線軌跡600a、600b驅動,機器人100使覆蓋范圍最大化且使立即再次碰上障礙物18的可能性最小化。
[0062]在一些實施方案中,機器人100可米用額外傳感器510來在輪模塊120a、120b下落及/或壓在壓力傳感器上從而指示機器人100進入地板表面10與懸突部620之間的擠住狀態(如圖6C中所展示)時檢測緩沖器130碰上障礙物18。控制器150監測壓縮傳感器及/或輪下落傳感器以發現擠住,且發布防停滯命令以使機器人100遠離擠住狀況(例如櫥柜懸突部620)后退。因此,機器人100檢測被擠住的初始階段且在機器人100完全擠住并不能躲避之前執行躲避行為。防停滯躲避行為300a包含在100機器人變得完全擠住且被固定住之前,使機器人100遠離阻礙物后退或使機器人100遠離機器人100的經歷約束的一側轉向。在一些實例中,行為系統210a響應于傳感器信號指示機器人正擠住于障礙物下方而執行防擠住行為。防擠住行為可包含向驅動系統120發布全功率反向驅動命令。此外,反向驅動命令可需要遠離機器人100的受約束側R、L轉向。
[0063]參考圖7A及7B,在一些實施方案中,控制器150執行“卡住-檢查-轉彎”例程以確定機器人100是否被困住。“卡住-檢查-轉彎”例程實施沿相反方向的至少兩次后續“擺動”或轉向。圖7A展示具有圓形緩沖器130的機器人100,而圖7B展示具有正方形緩沖器130的機器人100。當機器人100基本上沿著前后軸Y移動時,機器人100可進行重復交替向右及向左轉向,使得機器人100圍繞中心垂直軸Z來回旋轉(下文中稱為擺動運動)。機器人100的擺動軌跡是非常小的弧線。在一些實例中,機器人100針對1cm的前向F驅動轉向約5度到10度。機器人100可周期性地擺動以檢查由困住導致的停滯。當機器人100第一次擺動時,控制器150在扭動期間監測三個參數:所命令行進速率;編碼器輪旋轉速率;及MU (陀螺儀)旋轉速率。在擺動運動期間,三個測量應一起跟蹤。如果所述三個參數在特定時間量內未于其參數容限閾值內跟蹤,那么控制器150接收指示機器人100未按命令(由控制器150發出)執行第一擺動運動的信號。機器人100將其狀態改為“被懷疑困住”且執行大于第一擺動角度Θ的第二擺動角度Θ(例如,更明顯弧角)。
[0064]當機器人100在“被懷疑困住”狀態中沿前向方向F驅動時,控制器150監測頂U510d及輪編碼器121a、121b以發現經增加擺動。如果頂U 510d及輪編碼器121a、121b的傳感器信號不確認機器人100正執行第二擺動(大于第一擺動),那么機器人100未按命令執行第二擺動且被困住。機器人100可接著起始躲避行為300i(舉例來說,原地自旋(spin-1n-place)),在一些實施方案中,其后續接著沿弧線軌跡行進沿著弧線的隨機選擇的行進長度。
[0065]在一些實施方案中,擺動運動由在機器人100正沿前向驅動方向F移動的同時的三個轉向組成。第一轉向使機器人100從前向行進軌跡偏向角度(1Θ。第二轉向使機器人100偏向-2d0,且第三轉向使機器人100在(1Θ的轉向的情況下與原始路徑重新對準。擺動運動可允許機器人100在清潔操作期間作為擦洗器操作。此外,擺動運動可由機器人控制器150用來檢測機器人停滯,如上文關于檢測困住狀態所描述。另外或替代地,舉例來說,機器人控制器150可操縱機器人100基本上原地旋轉使得機器人100可操縱離開拐角或遠離障礙物18。機器人控制器150可在機器人100橫越清潔表面10時在基本上隨機(例如,偽隨機)路徑上引導機器人100。機器人控制器150可對圍繞機器人100安置的一或多個傳感器510 (例如,碰撞傳感器、接近度傳感器、墻壁傳感器、停滯傳感器及陡壁傳感器)做出響應。機器人控制器150可響應于從傳感器510接收的信號而重新引導輪模塊120a、120b,從而致使機器人100在處理清潔表面時避開障礙物18及雜物。如果機器人100在操作期間被卡住或被纏住,那么機器人控制器150可通過一系列躲避行為300i向輪模塊120a、120b發布命令,使得機器人100可躲避且重新開始正常操作(例如,清潔操作)。
[0066]還參考圖8,防停滯行為300a的流程圖800確定機器人100是否被困住而致使其無運動。防停滯行為300a致使機器人100以可由頂U 510d檢測的方式驅動。困住在機器人100在提升足夠高的障礙物18 (例如,地毯I Ob、燈座)上向上驅動使得機器人100的輪124a、124b不具有足夠牽引來驅動機器人100(至少一個輪不接觸地板表面10)時發生。往回參考圖7A及7B,防停滯行為300a引導驅動系統120以使機器人100從其筆直路徑以擺動角度Θ轉向從而將機器人100的路徑改變為彎曲路徑62,且接著返回到其原始筆直路徑60。如圖8中所展示,防停滯行為300a在框802處設置擺動角度Θ、在框804處向驅動系統120發布具有擺動角度Θ的驅動命令以使機器人轉向,且在框806處接收MU 510d信號及編碼器信號121a、121b信號。在一些實例中,擺動運動包含在機器人100沿前向驅動方向F移動的同時的三個轉向。第一轉向使機器人100從前向驅動方向F偏向角度d0。第二轉向使機器人100從前向驅動方向F偏向-2d0,且第三轉向使機器人100在d0的轉向的情況下與原始路徑重新對準。擺動運動改變機器人100的前進方向,且因此,頂U 51Od檢測到移動。當擺動運動發生時,頂U 51Od檢測到移動且傳感器系統500發布由控制系統210接收的傳感器信號。控制系統210將所接收傳感器信號與對所發布防停滯行為300a的預期響應進行比較。當機器人100第一次擺動時,控制器150監測所命令行進速率、編碼器輪旋轉速率及頂U (陀螺儀)旋轉速率。在擺動運動期間,三個測量應一起跟蹤。相應地,控制器150在決策框808處確定與所命令行進速率相比,編碼器改變速率及MU改變速率是否處于容限改變速率內。如果所述三個參數在特定時間量內在其參數容限或閾值內跟蹤(例如,決策框808為“是”),那么控制器150在框820處接收指示機器人100不在停滯中的信號,且機器人100可在框822處繼續圍繞路徑操縱。如果所述三個參數在特定時間量內未在其參數容限或閾值內跟蹤(例如,決策框808為“否”),那么控制器150接收指示機器人100未按命令執行第一擺動運動的信號。機器人100將其狀態改變為“被懷疑困住”且在框810處執行具有大于第一擺動角度Θ的第二擺動角度Θ的第二擺動(例如,更明顯弧角)以驗證機器人100在停滯狀態中。控制器150監測所命令行進速率、編碼器輪旋轉速率及頂U(陀螺儀)旋轉速率,且如果在決策框812處所述三個值未處于其參數容限或閾值內(例如,決策框812為“否”),那么機器人100在框814處執行防停滯行為300a,例如后退、遠離機器人100的經歷約束的一側轉向及沿走弧線軌跡或隨機范圍移動。然而,如果在決策框812處所述三個值未處于其參數容限或閾值內(例如,決策框812為“是”),那么控制器150在框816處檢測到機器人100不在停滯中且機器人100可在框818處繼續沿著路徑操縱。
[0067]如上文所描述,在一些實施方案中,控制器150可繼續執行防停滯行為300a直到其接收到來自頂U 510d的檢測到機器人100的移動的傳感器信號為止,且因此將機器人100從其停滯位置釋放。在一些實例中,角度Θ是預定的。控制系統210監測機器人行為300及機器人100傾斜的頻率,且因此通過增加或減小角度Θ而調整所述角度。
[0068]在一些實施方案中,如果機器人100朝向北側、南側、東側、西側、東北、西北、東南或西南位置中的一者傾斜超過閾值角度(例如,大于15度)及超過閾值時間周期(例如,大于3秒),那么可觸發防傾斜行為300b。所述閾值時間可介于0.1秒與10秒之間。
[0069]參考圖9A、10A及11A,在一些實例中,機器人100從第一表面1a(例如,硬表面)向第二表面1b(例如,地毯)移動或反之亦然,其中每一地板表面10具有不同于另一地板表面10的高度。使用來自頂U 510d的信號,機器人100的后臺行為300監測機器人100的傾斜及滾動,使得機器人100從不離開平面超過預定時間周期(傾斜周期閾值),例如,半秒。此傾斜周期閾值在一次運行的開始處以四分之一秒(0.25秒)的閾值開始且隨著機器人100越來越接近于所述運行的結束而增加,舉例來說,傾斜周期閾值增加到I秒。如果機器人100在不被卡住的情況下完成其任務(即,清潔運行),那么傾斜周期閾值在下一次運行時以較高值開始。舉例來說,傾斜周期閾值以I秒開始且停在此處。如果機器人100在一次運行期間被卡住(即,碰上停滯狀況),那么傾斜周期閾值在下一次運行中以較低值開始(舉例來說,八分之一秒)且在機器人100在無停滯狀況的情況下前進時貫穿所述運行增加。在其它實施方案中,如果機器人100是定時啟動的(S卩,無人看管的且經調度的),那么機器人100的傾斜周期閾值可以較高值開始,且如果機器人100是通過來自用戶的按鈕按下而啟動以運行,那么所述傾斜周期閾值可以較低值開始。
[0070]在此類情況下,控制器150確定機器人100是否傾斜(例如,在經提高入門閾值上)以便發布躲避行為300i從而致使機器人100返回到平坦表面10。當頂U 510d檢測到機器人100傾斜(俯仰或滾動)超過閾值角度ατ達特定時間周期(S卩,“傾斜周期閾值”)時可觸發防傾斜行為300b。閾值角度ατ可為可編程的。在一些實施方案中,控制器150監測機器人性能且基于其性能而調整閾值角度ατ。類似地,如上文所描述,傾斜時間周期閾值還可為可基于機器人100的性能而調整的。
[0071]參考圖1OA的流程圖1000,在一些實例中,控制器150在框1002處從頂U 510d接收信號,且在決策框1004處確定所接收信號是否指示機器人100傾斜。如果機器人100未傾斜(例如,決策框1004為“否”),那么機器人100在框1006處繼續執行其既定活動(例如,重新開始機器人活動)。然而,如果機器人100傾斜(例如,決策框1004為“是”),那么控制器150在決策框1008處確定傾斜角度α是否大于閾值傾斜角度ατ。如果傾斜角度α大于閾值傾斜角度ατ(例如,決策框1008為“是”),那么控制器150在框1012處執行躲避行為300i以將機器人100從經傾斜處境釋放且使其在平坦表面上重新開始其活動。然而,如果傾斜角度α小于閾值傾斜角度ατ(例如,決策框1008為“否”),那么控制器150在決策框1010處確定機器人100是否已傾斜達大于閾值時間周期T的時間周期t。如果機器人100已傾斜達比閾值時間周期短的時間量(例如,決策框1010為“否”),那么機器人100在框1014處重新開始其活動。但如果機器人100已傾斜達比閾值時間周期T大的時間t(例如,決策框1010為“是”),那么控制器150在框1012處執行躲避行為300i以將機器人100從經傾斜位置釋放。相應地,控制器150在以下條件下確定機器人是否傾斜:
[0072](!〈町且“^^無傾斜(I)
[0073]α〈ατ且t>T;機器人傾斜 (2)
[0074]機器人100可以圍繞X軸及Y軸的組合傾斜的方式傾斜,S卩,機器人100可俯仰且滾動。閾值傾斜角度ατ是圍繞X軸及Y軸的每一傾斜的向量的和。因此,如果機器人100僅俯仰,那么閾值角度ατ等于俯仰角度。類似地,如果機器人100僅滾動,那么閾值角度ατ等于滾動角度。
[0075]如圖9Α中所展示,機器人100可在硬地板1a(例如,瓷磚或硬木材)與地毯1b之間迀移,且在一些情形下,地毯1b與硬地板1a之間的過渡并非平滑過渡而是在從硬地板1a向地毯1b移動的情況下處于提升或者在從地毯1b向硬地板1a移動的情況下處于降低。因此,機器人100可最可能沿朝北位置(S卩,下俯)或朝南位置(S卩,上仰)經歷傾斜,且機器人100可在短時間量中從傾斜位置過渡。在此情形下,控制系統210可不執行防傾斜行為300b,這是因為所述時間量小于控制系統210使用來確定防傾斜行為300b的發布的閾值時間周期(即,傾斜周期閾值)。
[0076]參考圖9A及10B,在一些實施方案中,機器人100為清潔機器人100。如圖1OB的流程圖1050中所展示,控制器150在框1052處從MU 510d接收信號,且在框1054處確定所接收信號是否指示機器人100傾斜。如果機器人100未傾斜(例如,決策框1054為“否”),那么機器人100在框1082處繼續執行其清潔活動。然而,如果機器人100傾斜(例如,決策框1054為“是”),那么控制器150在決策框1056處確定傾斜角度α是否大于閾值傾斜角度ατ。如果傾斜角度α大于閾值傾斜角度α(例如,決策框1056為“是”),那么控制器150在框1060處執行躲避行為300i以將機器人100從經傾斜處境釋放且在框1080處使其此后在平坦表面上重新開始其活動。然而,如果傾斜角度α小于閾值傾斜角度ατ(例如,決策框1056為“否”),那么控制器150在決策框1058處確定機器人100是否已傾斜達大于閾值時間周期的時間周期。如果機器人100已傾斜達比閾值時間周期短的時間周期(例如,決策框1058為“否”),那么機器人100在框1082處重新開始其清潔活動。但如果機器人100已傾斜達大于閾值時間(S卩,傾斜周期閾值)的時間周期(例如,決策框1058為“是”),那么控制器150在框1060處執行躲避行為300i以將機器人100從經傾斜位置釋放。躲避行為300i可包含在框1062處停止機器人100的刷162及真空器件168,接著如果機器人100在決策框1064處上仰(S卩,朝南傾斜),那么機器人100在框1066處遠離致使其傾斜的障礙物18后退。如果機器人100在決策框1068處下俯(即,朝北傾斜),那么機器人100在框1070處前向驅動。在其中機器人100滾動到一側(S卩,左或右)(例如,決策框1064、1068為“否”)的情況下,機器人100在框1072處遠離障礙物18轉向直到滾動處于閾值滾動角度(例如,I度到5度)或替代地閾值傾斜角度ατ內為止,接著機器人100前向驅動且重新開始清潔。如果機器人100以大于閾值傾斜角度α的角度但小于執行防傾斜行為300b的閾值時間周期傾斜,那么機器人100可能正從其間具有崎嶇不平的分離的兩個不同表面過渡且因此未碰上潛在停滯狀況。
[0077]在一些實例中,機器人100在真空吸塵時在機器人100攝入錨定(例如)到墻壁20的線或繩ISe(圖11A)(例如,百葉窗線、布簾線、窗簾線、遮陽簾線等等)時傾斜。當機器人100攝入線18e時,線18e可纏繞在驅動輥刷162上,此致使機器人100傾斜。MU510d檢測機器人100的傾斜且因此可觸發防傾斜行為300b。控制器150可執行防抽穗(ant1-tassel)行為300k,防抽穗行為300k對驅動輥刷162 (例如,輥刷)的電動機122a、122b設置輕微反向偏置,使得驅動輥刷162不主動沿反向方向旋轉(此可致使線ISe再次被纏住)而是在機器人100遠離所攝入線ISe后退時幫助驅動輥刷162反向旋轉。機器人100還可停止真空器件168且嘗試移動遠離導致傾斜處境的位置,從而允許機器人100松開線ISe且躲避。
[0078]參考圖9B,在一些實施方案中,控制系統210(例如)通過將道路點存儲于非暫時性存儲器154中而記錄機器人100的驅動路徑610。控制系統210可維持驅動路徑610的歷史達一時間周期(例如,0.5秒、I秒、2秒等等)。在一些實例中,當執行防傾斜行為300b時,機器人100沿循其先前記錄的路徑612進入安全區域中以避免再次被卡住。在一些實例中,控制器150執行向后橫越行為300m,向后橫越行為300m致使向機器人資源240發布從在時間上最后記錄的道路點開始沿循所存儲道路點的命令。向后橫越行為300m自主導航自主移動機器人100沿著互連各個先前橫越的坐標的返回路徑后退。在一些實例中,在躲避停滯狀態或防傾斜行為300b之后,機器人100不嘗試所執行的最后操縱直到其處于距導致傾斜的障礙物18預界定距離為止。
[0079]參考圖1IA到12,在一些實施方案中,行為系統210a包含防攝入行為300c,防攝入行為300c防止機器人100拾取大的物體12(例如,襪子、圍巾)。往回參考圖3,在一些實施方案中,機器人100包含安置于機器人100的前底表面116部分上在驅動輪124a、124b前面的機械開關530。機械開關530檢測不應由機器人100拾取的物體12、18。開關530可彼此鄰近地安置或分離開一距離(例如,等距地)。機械開關530可沿著由主體110界定的橫向軸X基本上對置。機器人100具有從地板表面10到機器人100的底表面116的空隙距離C。機械開關530具有距機器人100的底表面116的距離CmXt是其中機器人100可橫越而不激活機械開關的空隙距離閾值。
[0080]C = Cm+Ct(3)
[0081]Cx=C-CM(4)
[0082]當機器人100橫越具有大于閾值高度Ct的高度Co的障礙物18時,物體12可物理上致動一或若干開關530。然而,如果障礙物18具有小于閾值高度Ct的高度Co,那么物體12不在物理上致動一或若干開關530。
[0083]舉例來說,與物體12接觸可致使電路閉合,從而激活開關530。當開關530被同時激活達大于閾值時間周期的時間周期時,行為系統210a可執行防攝入行為300c。所述閾值時間周期可為可調整及/或可調諧的。防攝入行為300c可停止真空器件168及/或反向偏置輥刷162(例如,以沿反向方向被動地旋轉以允許纏繞在輥刷162上的繩在機器人100退離時退繞)。另外或替代地,機器人100通過以小角度圍繞其Z軸移動達特定時間周期(例如,0.5秒、0.6秒等等)而擺動。接著,控制器150發布停止輥刷162的旋轉的命令且命令機器人100擺動達另一時間周期(例如,1.8秒)。此后,機器人100重新開始行為300。
[0084]參考圖12的流程圖1200,在一些實例中,機械開關530在框1202處由需要被機器人100拾取的較大片的碎肩14激活。在此類實例中,控制器150確定碎肩檢測器510a是否被激活。如果如此,那么控制器150激活輥刷162以拾取碎肩14。然而,如果碎肩檢測器510a未被激活,那么控制器150在決策框1204處確定MU 510d及/或輪編碼器121a、121b是否檢測到慣性移動的改變。如果頂U 510d及/或輪編碼器121a、121b檢測到移動(例如,決策框1204為“是”),那么機器人100確定其是否處于停滯狀態中,且如果如此,那么在框1220處執行防停滯行為310a,如先前參考圖8A及8B所描述。如果頂U 510d及/或輪編碼器121a、121b未檢測到慣性移動的任何改變(例如,決策框1204為“否”),那么行為系統210a在框1206處執行防攝入行為300c。防攝入行為300c可包含停止機器人(框1208)、使刷反向(框1210)、使機器人擺動(框1212)、停止刷(框1214)及/或在停止刷之后在于框1218處重新開始清潔之前使機器人擺動(框1216)。因此,MU510d對機器人100傾斜的指示可越權控制防攝入行為。在一些實例中,控制器210在機械開關530被激活達閾值時間周期時起始防攝入行為300c。
[0085]參考圖13的流程圖1300,在一些實施方案中,行為系統210a包含輪擠塞行為300d。行為系統210a在輪模塊120a、120b的輪124a、124b由于物體12卡在輪124a、124b中而停轉時執行輪擠塞行為300d。控制器150在框1302處從傳感器系統500接收輪124a、124b以大于閾值的速率停轉的信號。行為系統210a可執行躲避行為300i以重新開始機器人100的活動。例如,控制器150可在框1304處發布具有擺動角度的驅動命令,且在框1304處從頂U 510d及輪編碼器121a、121b接收信號以在決策框1308處確定機器人100是否正擺動。如果控制器150確定機器人100正擺動(例如,決策框1308為“是”),那么控制器150可在框1310處確定機器人100上無停滯。然而,如果控制器150確定機器人100不擺動(例如,決策框1308為“否”),那么控制器150可在框1312處確定機器人100上的停滯且在框1314處執行躲避行為300i。在一些實例中,行為系統210a執行擺動行為3001,擺動行為3001致使向右輪124a及左輪124b發布交替反向驅動命令直到移除物體18d(例如,襪子)且輪124a、124b不再停轉為止。
[0086]圖14提供用于操作自主移動機器人100的方法1400的操作的示范性布置。方法1400包含從傳感器系統500接收1410傳感器信號。所述傳感器信號包含慣性測量或角定向。方法1400進一步包含在計算處理器152上執行1420行為系統210a。行為系統210a從傳感器系統500接收傳感器信號且基于所述傳感器信號而執行至少一個行為300。如果傳感器信號指示1430機器人100是固定不動的,那么行為系統210a執行防停滯行為300a以評估停滯狀態(例如,擠住、困住或扭動),且如果傳感器信號指示機器人100相對于支撐表面10(例如,地板)傾斜,那么行為系統210a執行防傾斜行為300b以評估約束狀態。
[0087]在一些實施方案中,防停滯行為300a包含發布具有擺動角度Θ的擺動命令。所述擺動命令包含沿以擺動角度Θ相對于彼此成角度的交替左及右驅動方向進行驅動的驅動命令。方法1400可進一步包含在計算處理器152處從傳感器系統500接收第二傳感器信號。如果第二傳感器信號指示在執行具有第一擺動角度Θ的第一擺動命令之后機器人100是固定不動的,那么防停滯行為300a發布具有大于第一擺動角度Θ的第二擺動角度的第二擺動命令。
[0088]在一些實例中,方法1400包含在機器人100相對于重力方向傾斜達至少閾值時間周期T時執行防傾斜行為300b。方法1400可包含在機器人100相對于重力方向及前向驅動方向F上仰時執行前向驅動命令,且在機器人相對于重力方向及前向驅動方向F下俯時執行反向驅動命令。
[0089]在一些實例中,方法1400包含在機器人100相對于重力方向傾斜成大于閾值角度ατ的角度時執行防傾斜行為300b。方法1400可包含在機器人100相對于重力方向及前向驅動方向F上仰時執行前向驅動命令,且在機器人100相對于重力方向及前向驅動方向F下俯時執行反向命令。
[0090]在一些實施方案中,方法1400進一步包含激活安置于機器人100的底表面116上在驅動系統120a、120b的驅動輪124a、124b前向的機械開關530。機械開關530在障礙物18接觸機械開關530時激活。另外,方法1400可包含在機械開關530被激活且傳感器系統500檢測到固定不動的機器人100時執行防停滯行為300a。往回參考圖11B,機械開關530具有距機器人100的底表面116的距離CmXt是其中機器人100可橫越而不激活機械開關530的空隙距離閾值(參見方程式3及方程式4)。當機器人100橫越具有大于閾值高度Ct的高度Co的障礙物18時,物體12可在物理上致動一或若干開關530。然而,如果障礙物18具有小于閾值高度Ct的高度Co,那么物體12不在物理上致動一或若干開關530。
[0091]在一些實施方案中,方法1400包含使用清潔系統160清潔或處理地板表面10。方法1400可包含在機械開關530被激活且傳感器系統500檢測到運動時執行防攝入行為300c。防攝入行為300c致使發布用于停止清潔行為(例如,點清潔行為300e、塵埃搜尋行為300h)的清潔停止命令且發布具有擺動角度Θ的擺動命令。所述擺動命令包含沿以擺動角度Θ相對于彼此成角度的交替左及右驅動方向進行驅動的驅動命令。擺動命令允許機器人100釋放導致輪124a、124b停轉的物體18d(例如,襪子)。在一些實例中,方法1400包含在控制器150從傳感器系統500接收到指示機器人100的輪124a、124b以小于停轉閾值的停轉速率停轉的信號時執行輪擠塞行為300d,輪擠塞行為300d致使發布用于釋放機器人100的經停轉輪124a、124b的擺動命令。
[0092]此處所描述的系統及技術的各種實施方案可以數字電子電路及/或光學電路、集成電路、專門設計的ASIC(專用集成電路)、計算機硬件、固件、軟件及/或其組合而實現。這些各種實施方案可包含可在可編程系統上執行及/或解譯的一或多個計算機程序中的實施方案,所述可編程系統包含可為專用或通用的至少一個可編程處理器(其經耦合以從存儲系統接收數據及指令且將數據及指令發射到存儲系統)、至少一個輸入裝置及至少一個輸出裝置。
[0093]這些計算機程序(還稱為程序、軟件、軟件應用程序或代碼)包含用于可編程處理器的機器指令且可以高級程序及/或對象導向的編程語言及/或以匯編/機器語言實施。如本文中所使用,術語“機器可讀媒體”及“計算機可讀媒體”是指用于將機器指令及/或數據提供到可編程處理器的任何計算機程序產品、非暫時性計算機可讀媒體、設備及/或裝置(例如,磁盤、光盤、存儲器、可編程邏輯裝置(PLD)),所述可編程處理器包含接收機器指令作為機器可讀信號的機器可讀媒體。術語“機器可讀信號”是指用于將機器指令及/或數據提供到可編程處理器的任何信號。
[0094]本說明書中所描述的標的物及功能性操作的實施方案可實施于數字電子電路中,或實施于包含本說明書中所揭示的結構及其結構等效物的計算機軟件、固件或硬件中,或者實施于其中的一或多者的組合中。此外,本說明書中所描述的標的物可實施為一或多個計算機程序產品,即,經編碼于計算機可讀媒體上的計算機程序指令的一或多個模塊,以供由數據處理設備執行或用以控制數據處理設備的操作。所述計算機可讀媒體可為機器可讀存儲裝置、機器可讀存儲襯底、存儲器裝置、實現機器可讀所傳播信號的物質的組合物或其中一或多者的組合。術語“數據處理設備”、“計算裝置”及“計算處理器”涵蓋用于處理數據的所有設備、裝置及機器,通過實例的方式,包含可編程處理器、計算機或者多個處理器或計算機。除硬件外,所述設備還可包含為所討論的計算機程序創建執行環境的代碼,例如,構成處理器固件、協議堆疊、數據庫管理系統、操作系統或其中的一或多者的組合的代碼。所傳播信號為經產生以編碼用于發射到適合接收器設備的信息的人工產生的信號,例如機器產生的電信號、光學信號或電磁信號。
[0095]類似地,盡管在圖式中以特定次序描繪操作,但不應將此理解為需要以所展示的特定次序或以按順序次序執行此類操作,或執行所有所圖解說明的操作以實現合意的結果。在特定情況下,多任務及并行處理可為有利的。此外,不應將在上文所描述的實施例中的各種系統組件的分離理解為在所有實施例中需要此分離,且應理解,通常可將所描述的程序組件及系統一起集成于單個軟件產品中或封裝到多個軟件產品中。
[0096]已描述若干個實施方案。不過,將理解,可在不背離本發明的精神及范圍的情況下做出各種修改。因此,其它實施方案也在所附權利要求書的范圍內。舉例來說,權利要求書中所引用的行動可以不同次序來執行且仍實現合意的結果。
【主權項】
1.一種自主移動機器人(100),其包括: 機器人主體(110),其界定前向驅動方向(F); 驅動系統(120),其支撐所述機器人主體(110)且經配置以在地板表面(10)上操縱所述機器人(100); 傳感器系統(500),其包括輪編碼器(121a、121b)及用于測量所述機器人(100)的姿勢的慣性測量單元(510d),所述傳感器系統(500)發布指示所述機器人(100)的所述姿勢的傳感器(510)信號;及 控制器(150),其與所述驅動系統(120)及所述傳感器系統(500)通信且具有執行行為系統(210a)的計算處理器(152),所述行為系統(210a)從所述傳感器系統(500)接收所述傳感器(510)信號且基于所述傳感器(510)信號而執行至少一個行為(300); 其中所述行為系統(210a)響應于傳感器(510)信號指示所述機器人(100)受到約束而執行防停滯行為(300a)以評估約束狀態;且 其中所述行為系統(210a)響應于傳感器(510)信號指示所述機器人(100)相對于重力方向傾斜而執行防傾斜行為(300b)以評估傾斜狀態。2.根據權利要求1所述的機器人(100),其中所述驅動系統(120)結合所述傳感器系統(500)通過執行具有第一擺動角度(Θ)的第一擺動命令而評估所述約束狀態,所述第一擺動命令包括沿以所述第一擺動角度(Θ)相對于彼此成角度的交替左及右驅動方向進行驅動的驅動命令。3.根據權利要求2所述的機器人(100),其中當所述控制器(150)從所述慣性測量單元(510d)或所述輪編碼器(121a、121b)接收到指示所述機器人(100)未按命令展現擺動驅動運動的至少一個信號時,所述機器人(100)執行具有大于所述第一擺動角度(Θ)的第二擺動角度(Θ)的第二擺動命令。4.根據權利要求3所述的機器人(100),其中當所述慣性測量單元(510d)及/或所述輪編碼器(121a、121b)的信號未處于用于指示機器人(100)移動的可允許容限內時,所述控制器(150)向所述驅動系統(120)發布防停滯命令。5.根據權利要求1所述的機器人(100),其中所述約束狀態包括所述機器人(100)相對于物體(12)進入或處于擠住位置。6.根據權利要求5所述的機器人(100),其中所述傳感器(510)信號包括: 碰撞信號,其指示所述機器人(100)與所述物體(12)接觸;及 輪下落信號,其指示所述驅動系統(120)的輪(124a、124b)移動遠離所述機器人主體(110).7.根據權利要求1所述的機器人(100),其中所述防停滯行為(300a)致使執行使所述機器人(100)遠離阻礙物后退或使所述機器人(100)遠離所述機器人(100)的經歷約束的一側轉向的驅動命令。8.根據權利要求7所述的機器人(100),其中所述防停滯行為(300a)進一步致使執行沿弧形軌跡(600a、600b)驅動所述機器人(100)的驅動命令。9.根據權利要求1所述的機器人(100),其中所述行為系統(210a)在所述機器人(100)相對于所述重力方向傾斜達至少閾值時間周期時執行所述防傾斜行為(300b)。10.根據權利要求9所述的機器人(100),其中所述防傾斜行為(300b)在所述機器人(100)相對于所述重力方向及所述前向驅動方向(F)上仰時致使執行前向驅動命令,且在所述機器人(100)相對于所述重力方向及所述前向驅動方向(F)下俯時致使執行反向驅動命令。11.根據權利要求1所述的機器人(100),其中所述行為系統(210a)在所述機器人(100)相對于所述重力方向傾斜成大于閾值角度(ατ)的角度時執行所述防傾斜行為(300b)。12.根據權利要求11所述的機器人(100),其中所述防傾斜行為(300b)在所述機器人(100)相對于所述重力方向及所述前向驅動方向(F)上仰時致使執行前向驅動命令,且在所述機器人(100)相對于所述重力方向及所述前向驅動方向下俯時致使執行反向命令。13.根據權利要求1所述的機器人(100),其進一步包括安置于所述機器人(100)的底表面(116)上在所述驅動系統(120)的驅動輪(124a、124b)前向的機械開關(530),所述機械開關(530)在障礙物(18)接觸所述機械開關(530)時被激活。14.根據權利要求13所述的機器人(100),其中所述行為系統(210a)在所述機械開關(530)被激活時執行停滯行為(300、300m)以評估停滯狀態。15.根據權利要求14所述的機器人(100),其進一步包括用于清潔或處理所述地板表面(10)的清潔系統(160)。16.根據權利要求15所述的機器人(100),其中所述行為系統(210a)在所述機械開關(530)被激活且所述傳感器系統(500)檢測到運動時執行防攝入行為(300c),所述防攝入行為(300c)致使發布用于停止清潔行為(300e)的清潔停止命令且發布具有擺動角度(Θ)的擺動命令,所述擺動命令包括沿以所述擺動角度(Θ)相對于彼此成角度的交替左及右驅動方向進行驅動的驅動命令。17.根據權利要求16所述的機器人(100),其中所述行為系統(210a)在所述控制器(150)從所述傳感器系統(500)接收到指示所述機器人(100)的所述輪(124a、124b)以小于停轉閾值速率的停轉速率停轉的信號時執行輪擠塞行為(300d),所述輪擠塞行為(300d)致使發布用于釋放所述機器人(100)的經停轉輪(124a、124b)的所述擺動命令。18.根據權利要求17所述的機器人(100),其進一步包含驅動輥刷(162),所述驅動輥刷(162)平行于橫向X軸延伸且由所述機器人主體(110)以可旋轉方式支撐以接觸地板表面(10),所述驅動輥刷(162)沿第一方向圍繞所述X軸旋轉,其中所述防攝入行為(300c)致使偏置所述輥刷(162)以沿與所述第一方向相反的第二方向被動地旋轉。19.根據權利要求1所述的機器人(100),其中所述傳感器系統(500)包含以下各項中的至少一者:障礙物檢測障礙物避開傳感器(150)、通信傳感器(150)、導航傳感器(150)、接近度傳感器(150)、接觸傳感器(150)、相機(150)、聲納(150)、雷達(150)、LIDAR(150)或LADAR(150)。20.—種用于自主移動機器人(100)的控制系統(210),所述控制系統(210)包括: 控制仲裁系統(210b),其在計算處理器(152)上執行且向所述機器人(100)的資源(240)發布命令; 驅動系統(120),其包括右驅動輪(124a)及左驅動輪(124b),所述驅動系統(120)支撐所述機器人主體(110)且經配置以在地板表面(10)上操縱所述機器人(100); 傳感器系統(500),其包括跟蹤兩個驅動輪(124a、124b)的旋轉的輪編碼器(121a、121b)及測量所述機器人(100)的姿勢的慣性測量單元(510d),所述傳感器系統(500)發布指示所述機器人(100)的所述姿勢的傳感器(510)信號;及 控制器(150),其與所述驅動系統(120)及所述傳感器系統(500)通信,所述控制器(150)具有執行行為系統(210a)的計算處理器(152),所述行為系統(210a)從所述傳感器系統(500)接收所述傳感器(510)信號且基于所述傳感器(510)信號而執行至少一個行為(300); 其中所述行為系統(210a)響應于傳感器(510)信號指示所述機器人(100)受到約束而執行防停滯行為(300a)以評估約束狀態;且 其中所述行為系統(210a)響應于傳感器(510)信號指示所述機器人(100)相對于重力方向傾斜而執行防傾斜行為(300b)以評估傾斜狀態。21.根據權利要求20所述的控制系統(210),其中當所述控制器(150)從所述慣性測量單元(510d)或所述輪編碼器(121a、121b)接收到指示所述機器人(100)未按命令展現擺動驅動運動的至少一個信號時,所述機器人(100)執行具有大于第一擺動角度(Θ)的第二擺動角度(Θ)的第二擺動命令。22.一種操作自主移動機器人(100)的方法(1400),所述方法(1400)包括: 在計算處理器(152)處從所述機器人(100)的傳感器系統(500)接收傳感器(510)信號,所述傳感器(510)信號包含里程計信號及指示所述機器人(100)的姿勢的慣性測量信號;及 在所述計算處理器(152)上執行行為系統(210a),所述行為系統(210a)從所述傳感器系統(500)接收所述傳感器(510)信號且執行: 響應于傳感器(510)信號指示所述機器人(100)受到約束而做出防停滯行為(300a)以評估約束狀態;及 響應于傳感器(510)信號指示所述機器人(100)相對于重力方向傾斜而做出防傾斜行為(300b)以評估傾斜狀態。
【文檔編號】A47L9/28GK105899112SQ201480072695
【公開日】2016年8月24日
【申請日】2014年12月30日
【發明人】M·施尼特曼, T·W·布什曼
【申請人】艾羅伯特公司