(57)【要約】【課題】自律式移動ロボットを提供する。【解決手段】自律式移動ロボット（１００）は、ロボット本体（１１０）、駆動システム（１２０）、センサシステム（５００）、及びコントローラ（１２０）を含む。駆動システムは、ロボット本体を支持し、かつ床面（１０）にわたってロボットを操縦する。センサシステムは、ロボットの姿勢を測定するための慣性測定ユニット（５１０ｄ）を含み、かつロボットの姿勢に関する情報を有するデータを含むセンサ信号を発令する。挙動システム（２１０ａ）は、センサシステムからセンサ信号を受信し、かつ挙動（３００）を実行する。また、挙動システムは、抗停滞挙動（３００ａ）を実行して拘束状態を評価すると共に、抗傾斜挙動（３１０ｂ）を実行して傾斜状態を評価する。【選択図】図１
2018101444.tif 000002
【特許請求の範囲】
【請求項１】
自律式移動ロボット（１００）であって、
前方駆動方向（Ｆ）を定めるロボット本体（１１０）と、
前記ロボット本体（１１０）を支持し、かつ床面（１０）にわたって前記ロボット（１００）を操縦するように構成された駆動システム（１２０）と、
ホイール符号器（１２１ａ、１２１ｂ）とロボット（１００）の姿勢を測定するための慣性測定ユニット（５１０ｄ）とを含み、ロボット（１００）の該姿勢を示すセンサ（５１０）信号を発するセンサシステム（５００）と、
前記駆動システム（１２０）及び前記センサシステム（５００）と通信し、挙動システム（２１０ａ）を実行するコンピュータプロセッサ（１５２）を有するコントローラ（１５０）であって、該挙動システム（２１０ａ）が、該センサシステム（５００）から前記センサ（５１０）信号を受信し、かつ該センサ（５１０）信号に基づいて少なくとも１つの挙動（３００）を実行する前記コントローラ（１５０）と、
を含み、
前記挙動システム（２１０ａ）は、前記ロボット（１００）が拘束されていることを示すセンサ（５１０）信号に応答して抗停滞挙動（３００ａ）を実行して、拘束の状態を評価し、
前記挙動システム（２１０ａ）は、前記ロボット（１００）が重力の方向に対して傾斜していることを示すセンサ（５１０）信号に応答して抗傾斜挙動（３００ｂ）を実行して、傾斜の状態を評価する、
ことを特徴とするロボット（１００）。
【請求項２】
前記駆動システム（１２０）は、前記センサシステム（５００）と共に、第１蛇行角（θ）を有する第１蛇行指令を実行することによって前記拘束状態を評価し、該第１蛇行指令は、該第１蛇行角（θ）だけ互いに対して傾斜した交替する左及び右駆動方向に駆動する駆動指令を含む、ことを特徴とする請求項１に記載のロボット（１００）。
【請求項３】
前記コントローラ（１５０）が、前記ロボット（１００）が指令通りに蛇行駆動運動を示していないことを表す少なくとも１つの信号を前記慣性測定ユニット（５１０ｄ）又は前記ホイール符号器（１２１ａ、１２１ｂ）から受信すると、前記ロボット（１００）は、前記第１蛇行角（θ）よりも大きい第２蛇行角（θ）を有する第２蛇行指令を実行する、ことを特徴とする請求項２に記載のロボット（１００）。
【請求項４】
前記慣性測定ユニット（５１０ｄ）及び／又は前記ホイール符号器（１２１ａ、１２１ｂ）の信号が、ロボット（１００）移動を指し示すための許容範囲にない場合に、前記コントローラ（１５０）は、前記駆動システム（１２０）に抗停滞指令を発する、ことを特徴とする請求項３に記載のロボット（１００）。
【請求項５】
前記拘束状態は、前記ロボット（１００）が、物体（１２）に対して挟まり込む位置に入るか又は居ることを含む、ことを特徴とする請求項１に記載のロボット（１００）。
【請求項６】
前記センサ（５１０）信号は、
前記ロボット（１００）の前記物体（１２）との接触を示す衝突信号と、
前記ロボット本体（１１０）から離れる前記駆動システム（１２０）のホイール（１２４ａ、１２４ｂ）の移動を示すホイール落下信号と、
を含む、
ことを特徴とする請求項５に記載のロボット（１００）。
【請求項７】
前記抗停滞挙動（３００ａ）は、前記ロボット（１００）を障害から離して後退させるか又は前記ロボット（１００）が拘束を受けている側から離して前記ロボット（１００）の向きを変える駆動指令の実行を引き起こす、ことを特徴とする請求項１に記載のロボット（１００）。
【請求項８】
前記抗停滞挙動（３００ａ）は、前記ロボット（１００）を円弧軌道（６００ａ、６００ｂ）に駆動する駆動指令の実行を更に引き起こす、ことを特徴とする請求項７に記載のロボット（１００）。
【請求項９】
前記挙動システム（２１０ａ）は、前記ロボット（１００）が少なくとも閾値期間にわたって前記重力の方向に対して傾斜している時に前記抗傾斜挙動（３００ｂ）を実行する、ことを特徴とする請求項１に記載のロボット（１００）。
【請求項１０】
前記抗傾斜挙動（３００ｂ）は、前記ロボット（１００）が前記重力の方向及び前記前方駆動方向（Ｆ）に対してピッチアップしている時に前方駆動指令の実行を引き起こし、かつ前記ロボット（１００）が該重力の方向及び該前方駆動方向（Ｆ）に対してピッチダウンしている時に逆駆動指令の実行を引き起こす、ことを特徴とする請求項９に記載のロボット（１００）。
【請求項１１】
前記挙動システム（２１０ａ）は、前記ロボット（１００）が閾値角（αT）よりも大きい角度で前記重力の方向に対して傾斜している時に前記抗傾斜挙動（３００ｂ）を実行する、ことを特徴とする請求項１に記載のロボット（１００）。
【請求項１２】
前記抗傾斜挙動（３００ｂ）は、前記ロボット（１００）が前記重力の方向及び前記前方駆動方向（Ｆ）に対してピッチアップしている時に前方駆動指令の実行を引き起こし、かつロボット（１００）が該重力の方向及び該前方駆動方向（Ｆ）に対してピッチダウンしている時に逆指令の実行を引き起こす、ことを特徴とする請求項１１に記載のロボット（１００）。
【請求項１３】
前記駆動システム（１２０）の駆動ホイール（１２４ａ、１２４ｂ）の前方の前記ロボット（１００）の底面（１１６）上に配置された機械式スイッチ（５３０）を更に含み、  前記機械式スイッチ（５３０）は、障害物（１８）が該機械式スイッチ（５３０）に接触する時に起動される、
ことを特徴とする請求項１に記載のロボット（１００）。
【請求項１４】
前記挙動システム（２１０ａ）は、前記機械式スイッチ（５３０）が起動された時に前記停滞挙動（３００、３００ｍ）を実行して、停滞の状態を評価する、ことを特徴とする請求項１３に記載のロボット（１００）。
【請求項１５】
前記床面（１０）を掃除するか又は処理するための掃除システム（１６０）を更に含む、ことを特徴とする請求項１４に記載のロボット（１００）。
【請求項１６】
前記挙動システム（２１０ａ）は、前記機械式スイッチ（５３０）が起動され、かつ前記センサシステム（５００）が運動を検知した時に、抗吸込み挙動（３００ｃ）を実行し、該抗吸込み挙動（３００ｃ）は、掃除挙動（３００ｅ）を停止させるための掃除停止指令の発令と蛇行角（θ）を有する蛇行指令の発令とを引き起こし、該蛇行指令は、前記蛇行角（θ）だけ互いに対して傾斜した交互する左及び右駆動方向に駆動する駆動指令を含む、ことを特徴とする請求項１５に記載のロボット（１００）。
【請求項１７】
前記挙動システム（２１０ａ）は、前記コントローラ（１５０）が、前記ロボット（１００）の前記ホイール（１２４ａ、１２４ｂ）が失速閾値速度未満の失速速度で失速していることを示す前記センサシステム（５００）からの信号を受信した時に、ホイール−ジャム挙動（３００ｄ）を実行し、該ホイール−ジャム挙動（３００ｄ）は、前記ロボット（１００）の失速したホイール（１２４ａ、１２４ｂ）を解除するための前記蛇行指令の発令を引き起こす、ことを特徴とする請求項１６に記載のロボット（１００）。
【請求項１８】
床表面（１０）に接触するように横断Ｘ軸線に平行に延びて前記ロボット本体（１１０）によって回転可能に支持された従動ローラブラシ（１６２）を更に含み、該従動ローラブラシ（１６２）は、該Ｘ軸線の周りを第１の方向に回転し、
前記抗吸込み挙動（３００ｃ）は、前記第１の方向とは反対の第２の方向に受動的に回転するように前記ローラブラシ（１６２）の付勢を引き起こす、
ことを特徴とする請求項１７に記載のロボット（１００）。
【請求項１９】
前記センサシステム（５００）は、障害物検知障害物回避センサ（１５０）、通信センサ（１５０）、ナビゲーションセンサ（１５０）、近接センサ（１５０）、接触センサ（１５０）、カメラ（１５０）、ソナー（１５０）、レーダー（１５０）、ＬＩＤＡＲ（１５０）、又はＬＡＤＡＲ（１５０）のうちの少なくとも１つを含む、ことを特徴とする請求項１に記載のロボット（１００）。
【請求項２０】
自律式移動ロボット（１００）のための制御システム（２１０）であって、
コンピュータプロセッサ（１５２）上で実行され、かつ前記ロボット（１００）のリソース（２４０）に指令を発する制御調停システム（２１０ｂ）と、
左及び右駆動ホイール（１２４ａ、１２４ｂ）を含む駆動システム（１２０）であって、ロボット本体（１１０）を支持し、かつ床面（１０）にわたって前記ロボット（１００）を操縦するように構成された前記駆動システム（１２０）と、
両方の駆動ホイール（１２４ａ、１２４ｂ）の回転を追跡するホイール符号器（１２１ａ、１２１ｂ）と前記ロボット（１００）の姿勢を測定する慣性測定ユニット（５１０ｄ）とを含み、該ロボット（１００）の該姿勢を示すセンサ（５１０）信号を発するセンサシステム（５００）と、
前記駆動システム（１２０）及び前記センサシステム（５００）と通信し、挙動システム（２１０ａ）を実行するコンピュータプロセッサ（１５２）を有するコントローラ（１５０）であって、該挙動システム（２１０ａ）が、該センサシステム（５００）からの前記センサ（５１０）信号を受信し、かつ該センサ（５１０）信号に基づいて少なくとも１つの挙動（３００）を実行する前記コントローラ（１５０）と、
を含み、
前記挙動システム（２１０ａ）は、前記ロボット（１００）が拘束されていることを示すセンサ（５１０）信号に応答して抗停滞挙動（３００ａ）を実行して、拘束の状態を評価し、
前記挙動システム（２１０ａ）は、前記ロボット（１００）が重力の方向に対して傾斜していることを示すセンサ（５１０）信号に応答して抗傾斜挙動（３００ｂ）を実行して、傾斜の状態を評価する、
ことを特徴とする制御システム（２１０）。
【請求項２１】
前記コントローラ（１５０）が、前記ロボット（１００）が指令通りの蛇行駆動運動を示していないことを表す少なくとも１つの信号を前記慣性測定ユニット（５１０ｄ）又は前記ホイール符号器（１２１ａ、１２１ｂ）から受信すると、該ロボット（１００）は、第１蛇行角（θ）よりも大きい第２蛇行角（θ）を有する第２蛇行指令を実行する、ことを特徴とする請求項２０に記載の制御システム（２１０）。
【請求項２２】
自律式移動ロボット（１００）を作動させる方法（１４００）であって、
コンピュータプロセッサ（１５２）において、走行距離計測信号と前記ロボット（１００）の姿勢を示す慣性測定信号とを含むセンサ（５１０）信号を該ロボット（１００）のセンサシステム（５００）から受信する段階と、
挙動システム（２１０ａ）を前記コンピュータプロセッサ（１５２）上で実行する段階と、
を含み、
前記挙動システム（２１０ａ）は、前記センサシステム（５００）から前記センサ（５１０）信号を受信して、前記ロボット（１００）が拘束されていることを示すセンサ（５１０）信号に応答して拘束の状態を評価する抗停滞挙動（３００ａ）と、前記ロボット（１００）が重力の方向に対して傾斜していることを示すセンサ（５１０）信号に応答して傾斜の状態を評価する抗傾斜挙動（３００ｂ）とを実行する、
ことを特徴とする方法（１４００）。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の開示は、自律式移動ロボット停滞検知に関する。
【背景技術】
【０００２】
真空掃除機は、一般的に空気ポンプを用いて典型的には床面から、並びに任意的に他の表面からも塵埃を持ち上げるために部分的な真空を生成する。真空掃除機は、典型的には、後の処分のために集塵袋又はサイクロンのいずれかに塵埃を集める。家庭と共に産業に使用される真空掃除機は、小型バッテリ作動手持ち式デバイス、家事中心の真空掃除機、空にする前に数百リットルの塵埃を処理することができる巨大な据え置き型産業用電気機器、並びに大量流出物の回収又は汚染土壌の除去のための自走式バキュームトラックのような様々なサイズ及びモデルで存在する。
【０００３】
自律式ロボット真空掃除機は、一般的に、通常の作動条件下では床を掃除しながら居住空間と普通の障害物をナビゲートする。自律式ロボット真空掃除機は、一般的に、壁、家具、又は段差のような障害物を回避することを可能にするセンサを有する。ロボット真空掃除機は、障害物に衝突すると、その駆動方向を変えることができる（例えば、向きを変えるか又は後退する）。ロボット真空掃除機はまた、床面に並外れて汚れた場所を検知した状態で、駆動方向又は駆動パターンを変えることができる。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明の開示の一態様は、ロボット本体、駆動システム、センサシステム、及びコントローラを有する自律式移動ロボットを提供する。ロボット本体は、前方駆動方向を定める。駆動システムは、ロボット本体を支持し、床面にわたってロボットを操縦するように構成される。センサシステムは、ホイール符号器（encoder）とロボットの姿勢を測定するための慣性測定ユニットとを含み、かつセンサ信号を発令する。センサ信号は、ロボットの姿勢を示している。コントローラは、駆動システム及びセンサシステムと通信し、かつ挙動システムを実行するコンピュータプロセッサを有する。挙動システムは、センサシステムからのセンサ信号を受信し、センサ信号に基づいて少なくとも１つの挙動を実行する。挙動システムは、任意的に、ロボットが拘束されていることを示すセンサ信号に応答して抗停滞挙動（anti-stasis behavior）を実行し、拘束状態を評価する。これに加えて、挙動システムは、任意的に、ロボットが重力方向に対して傾斜していることを示すセンサ信号に応答して抗傾斜挙動を実行し、傾斜状態を評価する。一部の例では、挙動システムは、任意的に、ロボットが障害物の下に割り込んでいることを示すセンサ信号に応答して抗割り込み挙動を実行する。
【０００５】
本発明の開示の実施は、以下の任意的な特徴のうちの１又は２以上を含むことができる。一部の実施では、制御システムは、コンピュータプロセッサ上で実行し、かつロボットのリソースに指令を発令する制御調停システムを有する。制御システムは、蛇行角を有する蛇行指令の実行を引き起こすことができる。蛇行指令は、互いに対して蛇行角だけの角度を成して交互に左右駆動方向へ駆動する駆動指令を含む。これに加えて、ロボットが第１蛇行角を有する第１蛇行指令を実行していないことを示すセンサ信号をコントローラが受信した場合に、コントローラは、第１蛇行角を超える第２蛇行角を有する第２蛇行指令の実行を引き起こす。これに加えて、慣性測定ユニット及び／又はホイール符号器の信号がロボットの動きを示す許容範囲にない場合に、コントローラは、駆動システムに対して抗停滞指令を発令する。
【０００６】
一部の例では、拘束状態には、ロボットが物体に対して割り込む位置に入るか又は居ることが含まれる。これに加えて、センサ信号は、ロボットの物体との接触を示す衝突信号と、駆動システムのホイールがロボット本体から離れる動きを示すホイール落下信号とを含むことができる。
【０００７】
一部の実施では、抗停滞挙動は、ロボットを障害から後退させるか又はロボットの拘束を受けている側からロボットを方向転換させる駆動指令の実行を引き起こす（例えば、旋回状態において）。これに加えて、抗停滞挙動は、ロボットを正確な軌道で駆動する駆動指令の実行を引き起こす。
【０００８】
一部の実施では、挙動システムは、ロボットが重力方向に対して少なくとも閾値期間にわたって傾斜している時に、上述の傾斜挙動を実行する。抗傾斜挙動は、ロボットが重力方向及び前方駆動方向に対してピッチアップしている時に、前方駆動指令の実行を引き起こすことができる。更に、抗傾斜挙動は、ロボットが重力方向及び前方駆動方向に対してピッチダウンしている時に、逆駆動指令の実行を引き起こすことができる。
【０００９】
一部の実施では、挙動システムは、ロボットが重力方向に対して閾値角よりも大きい角度で傾斜している時に、抗傾斜挙動を実行する。抗傾斜挙動は、ロボットが重力方向及び前方駆動方向に対してピッチアップしている時に前方駆動指令の実行を引き起こし、ロボットが重力方向及び前方駆動方向に対してピッチダウンしている時に逆駆動指令の実行を引き起こすことができる。一部の実施では、センサシステムは、障害物検知／障害物回避（ＯＤＯＡ）センサ、通信センサ、ナビゲーションセンサ、近接センサ、接触センサ、カメラ、ソナー、レーダー、ＬＩＤＡＲ、又はＬＡＤＡＲのうちの少なくとも１つを含むことができる。
【００１０】
一部の実施では、自律式移動ロボットは、駆動システムの駆動ホイール前方のロボット底面に配置された機械式スイッチを更に含む。機械式スイッチは、障害物又は物体との接触で作動する。挙動システムは、機械式スイッチが作動してセンサシステムが動かないロボットを検知すると、抗停滞挙動を実行することができる。
【００１１】
一部の例では、自律式移動ロボットは、床面を掃除するか又は処理するための掃除システムを更に含む。挙動システムは、機械式スイッチが作動してセンサシステムが運動を検知すると、抗吸込み挙動（anti-ingestion behavior）を実行することができる。抗吸込み挙動は、掃除挙動を停止させるための掃除停止指令の発令と、蛇行角を有する蛇行指令の発令とを引き起こす。蛇行指令は、互いに対して蛇行角だけの角度を成して交互に左右駆動方向へ駆動する駆動指令を含む。これに加えて又はこれに代えて、挙動システムは、ロボットのホイールが失速閾値未満の失速速度で失速していることを示すセンサシステムからの信号をコントローラが受信すると、ホイール−ジャム挙動を実行することができる。ホイール−ジャム挙動は、ロボットの失速したホイールを解除するための蛇行指令の発令を引き起こす。ロボットは、横方向軸線Ｘに平行に延びて床面に接触するようにロボット本体に回転可能に支持された従動ローラブラシを更に含むことができる。従動ローラブラシは、Ｘ軸周りを第１の方向に回転する。抗吸込み挙動は、第１の方向とは反対の第２の方向に受動的に回転するようにローラブラシに付勢を引き起こし、例えば、ロボットが後退するか又は立ち去る際に巻き付いたコードがローラブラシからほどけることが可能になる。
【００１２】
本発明の開示の別の態様は、自律式移動ロボットのための制御システムを提供する。制御システムは、制御調停システム、駆動システム、センサシステム、及びコントローラを有する。制御調停システムは、コンピュータプロセッサ上で実行し、ロボットのリソースに指令を発令する。駆動システムは、左右の駆動ホイールを有する。これに加えて、駆動システムは、ロボット本体を支持し、床面にわたってロボットを操縦するように構成される。センサシステムは、両駆動ホイールの回転を追跡するホイール符号器とロボットの姿勢を測定する慣性測定ユニットとを有する。センサシステムは、ロボットの姿勢を示すセンサ信号を発令する。コントローラは、駆動システム及びセンサシステムと通信状態にある。これに加えて、コントローラは、挙動システムを実行するコンピュータプロセッサを有する。挙動システムは、センサシステムからのセンサ信号を受信し、センサ信号に基づいて少なくとも１つの挙動を実行する。挙動システムは、任意的に、ロボットが拘束されていることを示すセンサ信号に応答して抗停滞挙動を実行して拘束状態を評価し、ロボットが重力方向に対して傾斜していることを示すセンサ信号に応答して抗傾斜挙動を実行して傾斜状態を評価する。
【００１３】
本発明の開示の別の態様は、自律式移動ロボットを作動させる方法を提供する。本方法は、コンピュータプロセッサでセンサシステムからのセンサ信号を受信する段階を含む。センサ信号は、ロボットの慣性測定値又は角度方位を含む。本方法はまた、コンピュータプロセッサ上で挙動システムを実行する段階を含む。挙動システムは、センサシステムからのセンサ信号を受信し、センサ信号に基づいて少なくとも１つの挙動を実行する。挙動システムは、ロボットが拘束されていることを示すセンサ信号に応答して抗停滞挙動を実行し、拘束状態を評価する。これに加えて、挙動システムは、ロボットが重力方向に対して傾斜していることを示すセンサ信号に応答して抗傾斜挙動を実行して、傾斜状態を評価する。
【００１４】
一部の実施では、抗停滞挙動は、蛇行角を有する蛇行指令の発令を含む。蛇行指令は、互いに対して蛇行角だけの角度を成して交互に左右駆動方向へ駆動する駆動指令を含む。本方法は、コンピュータプロセッサでセンサシステムから第２センサ信号を受信する段階を更に含むことができる。第２センサ信号が、第１蛇行角を有する第１蛇行指令を実行した後にロボット１００が停滞していることを示す場合に、抗停滞挙動は、第１蛇行角を超える第２蛇行角を有する第２蛇行指令を発令し、センサシステムはロボットの慣性姿勢及びホイールの回転に対するセンサをモニタする。センサ信号が許容範囲にない場合に、ロボットは抗停滞挙動を実行する。
【００１５】
一部の例では、本方法は、ロボットが重力方向に対して少なくとも閾値期間にわたって傾斜している時に抗傾斜挙動を実行する段階を含む。本方法は、ロボットが重力方向及び前方駆動方向に対してピッチアップしている時に前方駆動指令を実行する段階と、ロボットが重力方向及び前方駆動方向に対してピッチダウンしている時に逆駆動指令を実行する段階とを含むことができる。
【００１６】
一部の例では、本方法は、ロボットが重力方向に対して閾値角よりも大きい角度で傾斜している時に抗傾斜挙動を実行する段階を含む。本方法は、ロボットが重力方向及び前方駆動方向に対してピッチアップしている時に前方駆動指令を実行する段階と、ロボットが重力方向及び前方駆動方向に対してピッチダウンしている時に逆駆動指令を実行する段階とを含むことができる。
【００１７】
一部の実施では、本方法は、駆動システムの駆動ホイール前方でロボットの底面に配置された機械式スイッチを作動させる段階を更に含む。これに加えて、本方法は、機械式スイッチが作動してセンサシステムが動かないロボットを検知した場合に抗停滞挙動３００ａを実行する段階を含むことができる。
【００１８】
一部の実施では、本方法は、掃除システムを用いて床面を掃除するか又は処理する段階を含む。本方法は、機械式スイッチが作動してセンサシステムが運動を検知した場合に抗吸込み挙動を実行する段階を含むことができる。抗吸込み挙動は、掃除挙動を停止させるための掃除停止指令の発令と、蛇行角を有する蛇行指令の発令とを引き起こす。蛇行指令は、互いに対して蛇行角だけの角度を成して交互に左右駆動方向へ駆動する駆動指令を含む。一部の例では、本方法は、ロボットのホイールが失速閾値未満の失速速度で失速していることを示すセンサシステムからの信号をコントローラが受信するとホイール−ジャム挙動を実行する段階を含む。ホイール−ジャム挙動は、ロボットの失速したホイールを解除する蛇行指令の発令を引き起こす。
【課題を解決するための手段】
【００１９】
本発明の開示の１又は２以上の実施の詳細は、添付図面及び以下の説明において明らかにされる。他の態様、特徴、及び利点は、本明細書及び図面、並びに請求項から明らかになるであろう。
【００２０】
様々な図面における同様の参照符号は同様の要素を示している。
【図面の簡単な説明】
【００２１】
【図１】例示的な自律移動式ロボットの斜視図である。
【図２】図１に示す例示的な自律式移動ロボットの側面図である。
【図３】図１に示す例示的な自律式移動ロボットの底面図である。
【図４】自律式掃除のための移動ロボットの例示的なシステム構成を示す図である。
【図５】自律式掃除のための移動ロボットの例示的な挙動システムを示す図である
【図６Ａ】例示的な自律式移動ロボットの抗停滞挙動の流れ図である。
【図６Ｂ】停滞状態脱出挙動を実行する例示的な自律式ロボットの斜視図である。
【図６Ｃ】割り込んだ状態にある例示的な自律式ロボットの側面図である。
【図７Ａ】Ｚ軸周りに蛇行する例示的な自律式ロボットの斜視図である。
【図７Ｂ】Ｚ軸周りに蛇行する例示的な自律式ロボットの斜視図である。
【図８】例示的な自律式移動ロボットの抗停滞挙動の流れ図である。
【図９Ａ】２つの異なる床面を横断する時の例示的な自律式ロボットの正面図である。
【図９Ｂ】ある区域を進む時の例示的な自律式ロボットの上面図である。
【図１０Ａ】例示的な自律式移動ロボットの抗傾斜挙動の流れ図である。
【図１０Ｂ】例示的な自律式移動ロボットの抗傾斜挙動の流れ図である。
【図１１Ａ】例示的な自律式掃除のための移動ロボットの斜視図である。
【図１１Ｂ】例示的な自律式掃除のための移動ロボットの正面図である。
【図１２】例示的な自律式移動ロボットの抗吸込み挙動の流れ図である。
【図１３】例示的な自律式移動ロボットのホイール−ジャム挙動の流れ図である。
【図１４】自律式移動ロボットを作動させるための例示的な作動配置の概略図である。
【発明を実施するための形態】
【００２２】
移動可能に支持される自律式ロボットは、床面をナビゲートすることができる。一部の例では、自律式ロボットは、表面を横断しながら表面を掃除することができる。ロボットは、デブリを撹拌させること、及び／又は表面の上に負圧（例えば、部分真空）を加えることにより表面からデブリを持ち上げること、並びに表面からデブリを集めることにより、表面からデブリを除去することができる。
【００２３】
図１−３を参照すると、一部の実施では、ロボット１００は、例えば、ｘ、ｙ、及びθ成分を有する駆動指令に基づいて、床面１０にわたってロボット１００を操縦可能な駆動システム１２０により支持される本体を有する。ロボット本体１１０は、前方部分１１２及び後方部分１１４を有する。駆動システム１２０は、左及び右の駆動ホイールモジュール１２０ａ、１２０ｂを有する。ホイールモジュール１２０ａ、１２０ｂは、本体１１０によって定められる横断Ｘ軸線に沿って実質的に対向し、それぞれのホイール１２４ａ、１２４ｂを駆動するそれぞれの駆動モータ１２２ａ、１２２ｂを有する。駆動モータ１２２ａ、１２２ｂは、本体１１０に解除可能に接続することができ（例えば、ファスナ又は工具不要接続を通して）、駆動モータ１２２ａ、１２２ｂは、任意的に、実質的にそれぞれのホイール１２４ａ、１２４ｂの上に位置付けられる。ホイールモジュール１２０ａ、１２０ｂは、本体１１０に解除可能に取り付けられ、それぞれのバネによって掃除面１０と係合するように強制することができる。一部の例では、ホイールモジュール１２０ａ、１２０ｂは、ホイール符号器１２１ａ、１２１ｂを含み、それらは、ホイール１２４ａ、１２４ｂの回転運動をホイール１２４ａ、１２４ｂの回転及び／又は位置を示すアナログ又はデジタル信号へ変換する。一部の例では、ホイール１２４ａ、１２４ｂは、それぞれ、ホイールモジュール１２０ａ、１２０ｂに解除可能に接続される。ホイール１２４ａ、１２４ｂは、下方付勢のサスペンションシステムを有することができ、それによって滑りやすい床（例えば、硬材、濡れた床）にわたってホイールモジュール１２０ａ、１２０ｂの牽引力が改善する。ロボット１００は、ロボット本体１１０の前方部分１１２を支持するために配置されたキャスターホイール１２６を有することができる。ロボット本体１１０は、ロボット１００のあらゆる電気構成要素に対する電源１０２（例えば、バッテリ）を担持する。
【００２４】
ロボット１００は、本体１１０によって定められる互いに直交する３つの軸線、すなわち、横断Ｘ軸線、前後軸線Ｙ、及び中心垂直軸線Ｚに対する移動の様々な組合せにより掃除面にわたって移動することができる。前後軸線Ｙに沿った前方への駆動方向は、Ｆ（以下「前方」として言及する場合もある）で示され、前後軸線Ｙに沿った後方への駆動方向は、Ａ（以下「後方」として言及する場合もある）で示される。横断Ｘ軸線は、ホイールモジュール１２０ａ、１２０ｂの中心点によって定められる軸線に実質的に沿ってロボット１００の右側Ｒと左側Ｌの間を延びている。
【００２５】
ロボット１００は、Ｘ軸線の周りで傾斜することができる。ロボット１００が南側位置に傾斜すると、ロボット１００は後方部分１１４に向けて傾斜し（以下「ピッチアップ」として言及する場合もある）、ロボット１００が北側位置に傾斜すると、ロボット１００前方部分１１２に向けて傾斜する（以下「ピッチダウン」として言及する場合もある）。これに加えて、ロボット１００はＹ軸線の周りに傾斜する。ロボット１００は、Ｙ軸線の東に傾斜する（以下「右ロール」として言及する場合もある）、又はロボット１００がＹ軸線の西に傾斜する（以下「左ロール」として言及する場合もある）ことができる。従って、ロボット１００のＸ軸線の周りの傾斜の変化はピッチ角の変化であり、及びロボット１００のＹ軸周りの傾斜の変化はロール角の変化である。これに加えて、ロボット１００は、右、すなわち、東側位置に、又は左、すなわち、西側位置のいずれにも傾斜することができる。一部の例において、ロボット１００は、北東、北西、南東、及び南西のような傾斜位置を有するＸ軸線及びＹ軸線の周りに傾斜する。ロボット１００が床面１０を横断している時に、ロボット１００は、Ｚ軸線の周りで左転回又は右転回（以下「ヨー方向の変化」として言及する場合もある）することができる。ヨー方向の変化により、ロボット１００は、移動しながら左転回又は右転回を生じる。従って、ロボット１００は、ピッチ角、ロール角、又はヨー角のうちの１又は２以上の変化を同時に有することができる。
【００２６】
本体１１０の前方部分１１２はバンパー１３０を担持することができ、バンパーは、例えば、ホイールモジュール１２０ａ、１２０ｂが掃除ルーチン中に掃除面にわたってロボット１００を推進させる時に、ロボット１００の駆動経路における１又は２以上の事象を（例えば、１又は２以上のセンサを通して）検知する。ロボット１００は、事象に応答してロボット１００を操縦する（例えば、障害物１８から離す）ためにホイールモジュール１２０ａ、１２０ｂを制御することにより、バンパー１３０によって検知された事象（例えば、障害物１８、段差、及び／又は壁面２０）に応答することができる。一部のセンサは、バンパー１３０上に配置されるとして本明細書では説明するが、これらのセンサは、これに加えて又はその代わりに、ロボットの底面１１６を含むがこれに限定することなく、ロボット１００上の様々な異なる位置のいずれかに配置することができる（例えば、機械式スイッチ５３０）。
【００２７】
ロボット１００は、床面１０を掃除するか又は処理するための掃除システム１６０を有することができる。掃除システム１６０は、乾式掃除システム１６０ａ及び／又は湿式掃除システム１６０ｂを含むことができる。乾式掃除システム１６０ａは、床表面１０に接触するように横断Ｘ軸線に平行に延びてロボット本体１１０により回転可能に支持される従動ローラブラシ１６２（例えば、剛毛及び／又は叩きフラップを有した）を含むことができる。従動ローラブラシ１６２は、デブリを床面１０から撹拌させて、撹拌させたデブリを収集容器１６３に投げ込む又は案内する。掃除システム１６０はまた、デブリを掃除システム１６０の掃除帯状領域に移動するために、床面１０に対してある角度の回転軸を有するサイドブラシ１６４を有するこができる。湿式掃除システム１６０ｂは、横断Ｘ軸線に沿って延びて床面上に洗浄液を分注する流体アプリケータ１６６を有することができる。乾式及び／又は湿式掃除システム１６０ａ，１６０ｂは、掃除面をガス引きする１又は２以上のスキージーバキューム１６８（例えば、空気ポンプを通してその間に部分的な真空を加える離間したブレード）を有することができる。
【００２８】
本体１１０の最上部に配置されたユーザインタフェース１４０は、１又は２以上のユーザ指令を受信し、及び／又はロボット１００のステータスを表示する。ユーザインタフェース１４０は、ロボット１００によって担持されるロボットコントローラ１５０と通信し、ユーザインタフェース１４０が受信する１又は２以上の指令が、ロボット１００による掃除ルーチンの実行を開始することができるようにする。ロボットコントローラ１５０は、非一時的メモリ１５４（例えば、ハードディスク、フラッシュメモリ、ランダムアクセスメモリ）と通信状態にあるコンピュータプロセッサ１５２（例えば、中央演算処理装置）を含む。
【００２９】
ロボットコントローラ１５０（制御システム２１０を実行する）は、壁に追従するような操縦、床を磨き洗浄するような操縦、又は障害物１８（例えば、椅子１８ａ、テーブル１８ｂ、ソファー１８ｃなど）が検知された時の進行方向変更のような作動をロボット１００に取らせる挙動３００を実行することができる。ロボットコントローラ１５０は、各ホイールモジュール１２０ａ、１２０ｂの回転速度及び方向を独立して制御することにより、掃除面にわたってあらゆる方向でロボット１００を操縦することができる。例えば、ロボットコントローラ１５０は、ロボット１００を前方Ｆ及び逆（後方）Ａ方向に操縦し、又はロボット１００を右Ｒ又は左Ｌ方向に向けることができる。
【００３０】
図４及び５を参照すると、信頼性のあるロバストな自律移動を達成するために、ロボット１００は、複数の異なるタイプのセンサ５１０を有するセンサシステム５００を有することができ、これらセンサを互いに連携して用いて、ロボット１００がその環境において行うべき作動について知的判断を下すことを可能にするに足るロボット環境の認識を作り出すことができる。センサシステム５００は、ロボット本体１１０によって担持される１又は２以上のタイプのセンサ５１０を有することができ、これらのセンサは、障害物検知／障害物回避（ＯＤＯＡ）センサ、通信センサ、ナビゲーションセンサなどを含むことができる。例えば、これらのセンサ５１０は、以下に限定されないが、近接センサ、接触センサ、カメラ（例えば、ボリューメトリック点群画像処理、３次元（３Ｄ）画像処理、又は深度図センサ、可視光カメラ及び／又は赤外線カメラ）、ソナー、レーダー、ＬＩＤＡＲ（光検知及び測距、これは散乱光の特性を測定して遠方目標の距離及び／又は他の情報を求める光学的遠隔測定を必要とする場合がある）、ＬＡＤＡＲ（レーザ検知及び測距）などを含むことができる。一部の実施では、センサシステム５００は、測距ソナーセンサ、近接段差検知器、接触センサ、レーザスキャナ、及び／又は撮像ソナーを含む。
【００３１】
一部の例では、センサシステム５００は、ロボット１００の加速度及びロボット１００全体の重心ＣＧRに対するロボット１００の向きを測定しモニタするためにコントローラ１５０と通信状態にある慣性測定ユニット（ＩＭＵ）５１０ｄを有する。ＩＭＵ５１０ｄは、空間におけるロボット１００の相対的な向きを測定するために１又は２以上のジャイロスコープ（以下、「ジャイロ」）及び１又は２以上の直線加速度計を有する。コントローラ１５０は、ＩＭＵ５１０ｄからのフィードバックにおいて、正常な妨げのない作動に対応する閾値信号からのあらゆる偏差をモニタすることができる。例えば、ロボット１００が直立位置から縦揺れを始める場合に、ロボット１００は、乗り上げている、重心が高い、旋回している、割り込んでいるか又は他の妨げを受けている可能性があり、又は誰かが急に重い積載荷重を加えた可能性がある。これらの例では、ロボット１００の安全な作動を確保するために、緊急措置（以下に限定されないが、回避操縦、再較正、及び／又は音声的／視覚的警告の発令を含む）を取ることが必要な場合がある。
【００３２】
停滞から加速する時には、コントローラ１５０は、ロボットの転倒を防止するために、全体の重心ＣＧRからの慣性モーメントを考慮することができる。コントローラ１５０は、現在の慣性モーメントを含むロボットの姿勢モデルを用いることができる。積載荷重を支えている場合に、コントローラ１５０は、全体の重心ＣＧRへの負荷影響を評価し、ロボットの慣性モーメントの動きをモニタすることができる。これが不可能な場合に、コントローラ１５０は、実験的に安全限界を決定するために、駆動システム１２０に試験トルク指令を適用して、ＩＭＵ５１０ｄ用いてロボット１００の実際の直線及び角加速度を測定することができる。
【００３３】
ＩＭＵ５１０ｄは、相対値に基づいてロボット１００のピッチ角、ロール角、ヨー角を測定し、かつモニタすることができる。一部の実施では、更に、ある時間にわたって一定の移動によりＩＭＵ５１０ｄをドリフトさせることができる。コントローラ１５０は、リセット指令を実行し、ＩＭＵ５１０ｄを再較正してゼロにリセットする。ＩＭＵ５１０ｄを再較正する前に、コントローラ１５０は、ロボット１００が傾斜しているか否かを決定して、ロボット１００が平面上にある場合にのみリセット指令を発令する。
【００３４】
一部の実施では、ロボット１００が障害物１８に衝突せず、又は階段から落ちることなく床面１０をナビゲートすることができ、並びに掃除のために比較的汚れた床領域を知能的に認識することができるように構成されたナビゲーションシステム６００をロボット１００は含む。これに加えて、ナビゲーションシステム６００は、床面１０にわたって決定論的パターン及び擬似ランダムパターンでロボット１００を操縦することができる。ナビゲーションシステム６００は、ロボットコントローラ１５０上に格納され、及び／又はその上で実行される挙動ベースシステムとすることができる。ナビゲーションシステム６００は、センサシステム５００と通信して、駆動システム１２０に対して駆動指令を決定して発令することができる。ナビゲーションシステム６００は、ロボット挙動３００に影響を与え、並びにそれを構成し、従って、ロボット１００が体系的な事前計画的な動きで機能することを可能にする。一部の例では、ナビゲーションシステム６００は、センサシステム５００からデータを受信し、ロボット１００が進むべき望ましい経路を計画する。
【００３５】
一部の実施では、コントローラ１５０（例えば、１又は２以上のコンピュータプロセッサ１５２を有するデバイスであって、そのコンピュータプロセッサはその上で実行可能な指令を格納することができる非一時的メモリ１５４と通信状態にある）は、互いに通信状態にある挙動システム２１０ａと制御調停システム２１０ｂとを含む制御システム２１０を実行する。制御調停システム２１０ｂは、ロボットアプリケーション２２０を制御システム２１０に対して動的に追加及び削除することを可能にし、各アプリケーション２２０がいずれかの他のアプリケーション２２０について知ることを必要とせずにロボット１００を制御可能にすることを容易にする。言い換えれば、制御調停システム２１０ｂは、アプリケーション２２０とロボット１００のリソース２４０の間の簡単な優先制御機構を提供する。
【００３６】
アプリケーション２２０は、メモリに格納され、又はロボット１００と通信して、（例えば、プロセッサ上で）並行して実行され、同時にロボット１００を制御することができる。アプリケーション２２０は、挙動システム２１０ａの挙動３００にアクセス可能である。独立して配備されたアプリケーション２２０は、実行時に動的に組み合わされて、ロボットリソース２４０（例えば、駆動システム１２０及び／又は掃除システム１６０、１６０ａ、１６０ｂ）を共有する。実行時にアプリケーション２２０間でロボットリソース２４０を動的に共有するために、低水準ポリシーが実施される。このポリシーは、どのアプリケーション２２０が当該アプリケーション２２０により必要とされるロボットリソース２４０を支配するか（例えば、アプリケーション２２０間の優先度階層）を決定する。アプリケーション２２０は、動的に開始し及び停止し、互いに完全に独立して実行することができる。制御システム２１０はまた、共に組み合わせて互いに補助することができる複合的な挙動３００を可能にする。
【００３７】
制御調停システム２１０ｂは、制御アービター２６０と通信する１又は２以上のアプリケーション２２０を含むことができる。制御調停システム２１０ｂは、アプリケーション２２０のために制御調停システム２１０ｂに対するインタフェースを提供する構成要素を含むことができる。このような構成要素は、認証、分散リソース制御アービター、指令バッファの複雑さを解消してまとめ、アプリケーション２２０の優先順位付けを調整するなどを行うことができる。制御アービター２６０は、あらゆるアプリケーション２２０から指令を受信し、アプリケーションの優先度に基づいて単一指令を生成し、これを関連するリソース２４０に通知する。制御アービター２６０は、その関連するリソース２４０から状態フィードバックを受信し、これをアプリケーション２２０にまで送り返すことができる。ロボットリソース２４０は、１又は２以上のハードウエアコントローラを有した機能モジュール（例えば、アクチュエータ、駆動システム、及びこれらの群）のネットワークとすることができる。制御アービター２６０の指令は、特定の作動を実行するリソース２４０に独特のものである。コントローラ１５０上で実行可能な力学モデル２３０は、現在のロボットの状態を評価するために、ロボット１００の重心（ＣＧ）、慣性モーメント、及び様々な部分の慣性の外積を計算するように構成される。
【００３８】
一部の実施では、挙動３００は、センサシステム５００のような複数のソースからの検知フィードバックを先験的限界及び情報を用いてロボット１００の許容作動に関する評価フィードバックに結合させる階層的状態完全評価機能を提供する接続構成要素である。挙動３００は、アプリケーション２２０にプラグ可能である（例えば、アプリケーション２２０の内部又は外部にある）ので、アプリケーション２２０又は制御システム２１０の他のいずれかの部分を修正することなく削除及び追加することができる。各挙動３００は、独立したポリシーである。挙動３００をより強力にするために、複数の挙動３００の出力を別の挙動の入力に取り付けて、複雑な組合せ機能を有することができるようにすることができる。挙動３００は、ロボット１００の全体的認識の管理可能部分を実施することを目的とする。
【００３９】
図示の例では、挙動システム２１０ａは、センサ５１０によって検知された障害物１８に基づいて、応答的ロボット作動（例えば、方向転換、Ｕターン、障害物１８前での停止など）を決定するための障害物検知／障害物回避（ＯＤＯＡ）挙動３００ｆを含む。別の挙動３００には、検知した壁面２０に隣接して（例えば、壁面２０に向けて及び壁面から離れて駆動する蛇行パターンで）駆動するための壁面追従挙動３００ｇを含めることができる。別の挙動３００には、汚れ捜索挙動３００ｈ（そこでは、センサが床面１０上の汚れスポットを検知し、ロボット１００は掃除するスポットに向けて向きを変える）、スポット掃除挙動３００ｅ（例えば、ロボット１００は特定スポットを掃除するためにコーンロウパターンを辿る）、段差挙動３００ｊ（例えば、ロボット１００は段差を検知して段差から落ちるのを回避する）、抗停滞挙動３００ａ、抗傾斜挙動３００ｂ、抗吸込み挙動３００ｃ、及びホイール−ジャム挙動３００ｄを含めることができる。
【００４０】
一部の例では、挙動システム２１０ａは、ロボット１００のステータスを検知する状態挙動３１０を含み、ロボット１００がそのバキューム１６８に吸い込んだ物体を克服するのを補助するために、又はロボット１００が割り込み、傾斜し、乗り上げかけているか又は旋回している時に（例えば、一方のホイールは回っているが、他方のホイールが引っ掛かっている時に）、脱出挙動３００ｉを起こすことができる。一部の例では、状態挙動３１０は、抗停滞挙動３００ａ、抗傾斜挙動３００ｂ、及び抗吸込み挙動３００ｃを含む。
【００４１】
図６Ａを参照すると、ロボット１００の抗停滞挙動３００ａを実行する流れ図６５０が示されている。ロボット１００がブロック６５２で駆動指令を実行／発令するコントローラ１５０によって床面１０を進む時に、ロボット１００は、ブロック６５４で、ロボット１００の姿勢を決定するＩＭＵ５１０ｄからの信号を定期的に受信する。コントローラ１５０は、判断ブロック６５６で、受信されたＩＭＵ信号に基づいてロボット１００が移動しているか又は立ち往生している及び傾斜しているか否かを決定して、どの挙動３００を実行すべきかを決定する。ロボット１００が駆動指令の後にも動かない場合に、コントローラ１５０は、ブロック６５８で抗停滞挙動３００ａを実行して、ロボット１００を解除しようと試みる。ロボット１００は静止していない（すなわち、動いている）が傾斜している時に、コントローラ１５０は、抗傾斜挙動３００ｂを実行してロボット１００をその正常面に戻す。一部の例では、センサ信号は、ロボット１００が重力方向に対して傾斜していることを指示する。挙動システム２１０ａは、拘束状態を評価するために抗傾斜挙動３００ｂを実行することができる。
【００４２】
ロボット１００は、ホイール１２４ａ、１２４ｂが移動することなく回転しているか又はロボット１００が割り込んでいるなどのホイール１２４ａ、１２４ｂの状態を検知するために複数のパラメータを（例えば、同時又は連続的に）モニタする。これらのモニタされるパラメータは、１）指令された駆動速度、２）符号器のホイール回転速度、及び３）ＩＭＵ（ジャイロ）の回転速度を含む。例えば、コントローラ１５０がロボット１００に対して前方駆動方向Ｆに進むように指令を発令したか否か、並びにロボット１００が実際に前方駆動方向Ｆに進んでいるか否かをロボット１００は検知する。ロボット１００は、ブロック６５４で、ジャイロ及びホイール符号器をモニタして１２４ａ、１２４ｂのいずれのホイールが回転していないのかを決定する。ロボット１００は、３つのモニタされるパラメータ（指令速度、符号器速度、及びロボット１００の向きに関するジャイロの変化速度）が許容範囲内であるか否かを決定する。ロボット１００が速く向きを変えるほど、ロボット１００は３つのモニタパラメータ間の変動に対して許容範囲を大きくする。許容範囲値はまた、ジャイロ及びホイール符号器１２１ａ、１２１ｂの較正、並びにロボットの形状がホイール１２４ａ、１２４ｂの方向転換及び滑りに耐えるか否かに依存する。
【００４３】
例えば、ロボット１００が旋回している場合に、片方のホイール１２４ａ又は１２４ｂは、引っ掛かっている可能性がある。コントローラ１５０がロボット１００に対して前方駆動方向Ｆに進むように指令を発令したか否か、並びにロボット１００が実際に前方駆動方向Ｆに進んでいるか否かをロボット１００のセンサシステムは決定する。ロボット１００がコントローラ１５０に指令されたように前方駆動方向Ｆに移動していない場合に、ロボット１００は、ホイール１２４ａ、１２４ｂの内いずれのホイールが回転していないかを決定し、ホイール符号器１２１ａ、１２１ｂ及びＩＭＵ５１０ｄのジャイロの回転速度をモニタしながら、定められた速度で反時計回りに向きを変える。判断ブロック６５６で、ロボット１００は、指令された回転速度（コントローラ１５０から受信した）、符号器回転速度、及びＩＭＵ回転速度を比較して、ロボット１００の実際の動きがコントローラ１５０によって発令された指令と一致していることを確認する。３つのパラメータ値が指令された動きとの一致に関してパラメータの許容範囲閾値内にない場合に、ロボット１００は停滞を検知する。従って、ロボットは、判断ブロック６５６で符号器変化速度及びＩＭＵ変化速度が指令された駆動速度と比較して許容変化速度内にあるか否かを決定する。符号器変化速度及びＩＭＵ変化速度が指令された駆動速度と比較して許容変化速度内にある場合に、ロボット１００は、ブロック６５８で、ロボット１００の拘束された側から円弧状に離れさせることにより、抗停滞挙動３００ａを実行する。しかし、変更の符号器変化速度及びＩＭＵ変化速度が指令された駆動速度と比較して許容変化速度内にない場合に、ロボットは、ブロック６５２で、床面１０をロボットに進ませる駆動指令を発令し続ける。判断ブロック６６０は、ロボット１００がブロック６５２で駆動指令を発令し続ける必要の有無を決定する。一部の実施では、拘束状態から脱出するために、ロボット１００は、障害から後退し、動かないホイール（拘束を受けている側）から９０度向きを変え、かつ前方駆動方向Ｆに進み、システム全体へ影響する注意不足を防止するために約−１３５度から＋１３５度の間の軌道を前方に動く。図６Ｂに示すように、円弧状の移動６００ａ、６００ｂは、いずれの方向にも同じ半径を有するが、進む距離は、円弧状移動６００ａ、６００ｂの軌道に沿う様々なランダムに選択される点６０５ａ−６０５ｊでの円弧状移動６００ａ、６００ｂの停止により変化する。ランダムに延びる円弧軌道６００ａ、６００ｂを進むことにより、ロボット１００は、カバレッジを最大化し、直ちにまた障害物１８に遭遇する可能性を最小にする。
【００４４】
一部の実施では、バンパー１３０が障害物１８に遭遇している一方でロボット１００が図６Ｃに示すように床面１０と突出部６２０の間に割り込んだ状態に入っていることを示してホイールモジュール１２０ａ、１２０ｂが下降している及び／又は圧力センサを押しているということを検知するために、追加のセンサ５１０を用いることができる。コントローラ１５０は、割り込みに対する圧縮センサ及び／又はホイール下降センサをモニタし、抗停滞指令を発令してキャビネットの突出部６２０のような割り込み状態からロボット１００を後退させる。ロボット１００は、結果として割り込みの初期段階を検知し、ロボット１００が完全に割り込んで脱出不能になる前に脱出挙動を実行する。抗停滞脱出挙動３００ａは、ロボット１００が完全に割り込んで動けなくなる前に、障害からロボット１００を後退させる段階、又はロボット１００の拘束を受けている側からロボット１００を方向転換する段階を含む。一部の例では、挙動システム２１０ａは、ロボットが障害物の下に割り込んでいることを示すセンサ信号に応答して、抗割り込み挙動を実行する。抗割り込み挙動は、駆動システム１２０に対してフルパワーの逆駆動指令を発令する段階を含むことができる。これに加えて、逆駆動指令は、ロボット１００の拘束側Ｒ、Ｌから向きを変える段階を必要とする場合がある。
【００４５】
図７Ａ及び７Ｂを参照すると、一部の実施では、コントローラ１５０は、「立ち往生−検査−急転回」ルーチンを実行してロボット１００が乗り上げたか否かを決定する。「立ち往生−検査−急転回」ルーチンは、少なくとも２つの反対方向への連続する「蛇行」又は方向転換を実行する。図７Ａは円形のバンパー１３０を有するロボット１００を示すが、一方、図７Ｂは正方形のバンパー１３０を有するロボット１００を示している。ロボット１００が実質的に前後軸線Ｙに沿って移動する時に、ロボット１００が中心垂直軸Ｚの周りを後方に及び前方に回転するように、ロボット１００は交互に繰り返される右及び左の方向転換を行うことができる（以降、蛇行運動として言及する）。ロボット１００の蛇行軌道は、非常に小さい円弧である。一部の例では、ロボット１００は、１０ｃｍの前方Ｆ駆動ドライブにわたって約５度から１０度だけ向きを変える。ロボット１００は、定期的に蛇行運動を行って乗り上げによって生じる停滞を検査することができる。ロボット１００が最初に蛇行運動を行う時に、コントローラ１５０は、回転中に３つのパラメータ、指令された駆動速度、符号器ホイール回転速度、及びＩＭＵ（ジャイロ）回転速度をモニタする。蛇行運動中、３つの測定を一緒に追跡しなければならない。３つのパラメータが特定期間にわたってそのパラメータの許容閾値内を辿っていない場合に、コントローラ１５０は、ロボット１００が（コントローラ１５０により）指令された最初の蛇行運動を実行しなかったことを示す信号を受信する。ロボット１００は、その状態を「乗り上げの疑い」に変更して、最初の蛇行角度θよりも大きい第２蛇行角度θ（例えば、より明白な円弧角）を実行する。
【００４６】
コントローラ１５０は、ロボット１００が「乗り上げの疑い」状態で前方方向Ｆに進んでいる時には、増加した蛇行に関してＩＭＵ５１０ｄ及びホイール符号器１２１ａ、１２１ｂをモニタする。ＩＭＵ５１０ｄ及びホイール符号器１２１ａ、１２１ｂのセンサ信号が、ロボット１００が第２の蛇行運動（それは最初の蛇行運動よりも大きい）を実行していることを確認しない場合に、ロボット１００は、指令通りに第２の蛇行運動を実行しなかったことになり、乗り上げていることになる。その時にはロボット１００は、脱出挙動３００ｉ、例えば、一部の実施では円弧に沿ったランダム選択の長さに関して円弧軌道を示して進む段階を伴うスピン−イン−プレースを開始することができる。
【００４７】
一部の実施では、蛇行運動は、ロボット１００が前方駆動方向Ｆに移動している間、３つの方向転換から構成される。第１の方向転換は、ロボット１００の向きを前方進行軌道から角度ｄθだけ変える。第２の方向転換は、ロボット１００の向きを角度−２ｄθだけ変え、第３方向転換は、ｄθの方向転換でロボット１００を元の経路に再び合わせる。蛇行運動により、ロボット１００を掃除作動中のスクラバーとして作動可能にすることができる。これに加えて、乗り上げ状態の検知に関して上述したように、ロボットコントローラ１５０は、蛇行運動を用いてロボット停滞を検知することができる。これに加えて又はこれに代えて、ロボットコントローラ１５０は、ロボット１００を操縦してほぼ適切に回転させることができ、ロボット１００が、例えば、コーナから又は障害物１８から巧みに脱出することができるようにする。ロボットコントローラ１５０は、掃除面１０を進みながら、実質的にランダムな（例えば、擬似ランダム）経路上にロボット１００を向けることができる。ロボットコントローラ１５０は、ロボット１００の周りに配置された１又は２以上のセンサ５１０（例えば、隆起、近接、壁面、停滞、及び段差センサ）に応答することができる。ロボットコントローラ１５０は、センサ５１０から受信した信号に応答して、ホイールモジュール１２０ａ、１２０ｂを向け直すことができ、掃除表面を処理しながら、ロボット１００に障害物１８や散らかった物を回避させる。ロボット１００が作動中に立ち往生した又は引っ掛かった場合に、ロボットコントローラ１５０は、一連の脱出挙動３００ｉを通してホイールモジュール１２０ａ、１２０ｂに指令を発令することができるので、ロボット１００は脱出して通常の作動（例えば、掃除作動）を再開することができる。
【００４８】
図８を更に参照すると、抗停滞挙動３００ａの流れ図８００は、ロボット１００が乗り上げて動かなくなっているか否かを決定する。抗停滞挙動３００ａは、ロボット１００をＩＭＵ５０１ｄにより検知可能な方法で進ませる。乗り上げは、ロボット１００が十分に高い障害物１８（例えば、絨毯１０ｂ、ランプの土台）の上に突進して、ロボット１００のホイール１２４ａ、１２４ｂがロボット１００を駆動するに十分な牽引力を持たない（少なくとも１つのホイールは床面１０に触れていない）場合に起こる。図７Ａ及び７Ｂに戻って参照すると、抗停滞挙動３００ａは、駆動システム１２０にロボット１００の経路をその直線的な経路から蛇行角θに変えるように指示して、ロボット１００の経路を湾曲した経路６２に変え、その後に元の直線的な経路６０に戻る。図８に示すように、抗停滞挙動３００ａは、ブロック８０２で蛇行角θを設定し、ブロック８０４でロボットの経路を変えるために駆動システム１２０に蛇行角θを有する駆動指令を発令し、かつブロック８０６でＩＭＵ５１０ｄの信号及び符号器１２１ａ、１２１ｂの信号を受信する。一部の例では、蛇行運動は、ロボット１００が前方駆動方向Ｆに動いている間に、３つの方向転換を含む。第１の方向転換は、ロボット１００の向きを前方進行軌道から角度ｄθだけ変える。第２の方向転換は、ロボット１００の向きを角度−２ｄθだけ変え、第３方向転換は、ｄθの方向転換でロボット１００を元の経路に再び合わせる。蛇行運動は、ロボット１００の進行方向を変え、従って、ＩＭＵ５１０ｄはその運動を検知する。蛇行運動が行われると、ＩＭＵ５１０ｄはその運動を検知して、センサシステム５００は制御システム２１０が受信するセンサ信号を発令する。制御システム２１０は、受信したセンサ信号を発令された抗停滞挙動３００ａに対して予期される応答と比較する。ロボット１００が最初に蛇行する時に、コントローラ１５０は、指令された駆動速度、符号器のホイール回転速度、及びＩＭＵ（ジャイロ）の回転速度をモニタする。蛇行運動の間、３つの測定は合わせて行うべきである。従って、コントローラ１５０は、判断ブロック８０８で符号器変化速度及びＩＭＵ変化速度が指令された駆動速度と比較して許容変化速度内にあるか否かを決定する。この３つのパラメータが特定期間にわたってそのパラメータの許容閾値内を辿っている（例えば、判断ブロック８０８が「イエス」である）場合に、コントローラ１５０はブロック８２０でロボット１００が停滞状態にないことを示す信号を受信し、ロボット１００はブロック８２２で経路を進み続けることができる。この３つのパラメータが特定期間にわたってそのパラメータの許容閾値内を辿っていない（例えば、判断ブロック８０８が「ノー」である）場合に、コントローラ１５０は、ロボット１００が指令通りに最初の蛇行運動を実行しなかったことを示す信号を受信する。ロボット１００は、その状態を「乗り上げの疑い」に変更し、最初の蛇行角度θよりも大きい第２蛇行角度θ（例えば、より明白な円弧角）を有するブロック８１０で第２蛇行を実行して、ロボット１００が停滞状態にあることを確認する。コントローラ１５０は、指令された進行速度、符号器のホイール回転速��、及びＩＭＵ（ジャイロ）の回転速度をモニタして、その３つの値が判断ブロック８１２でパラメータ許容範囲又は閾値内でない場合（例えば、判断ブロック８１２は「ノー」である）には、ロボット１００は、後退する、ロボット１００の拘束を受けた側から方向転換する、及び円弧軌道又はランダムな範囲を移動するなどの抗停滞挙動３００ａを実行する。しかし、この３つのパラメータが判断ブロック８１２でそのパラメータの許容範囲又は閾値内にある（例えば、判断ブロック８１２が「イエス」である）場合に、コントローラ１５０は、ブロック８１６でロボット１００が停滞状態にないことを検知し、ロボット１００はブロック８１８で経路を進み続けることができる。
【００４９】
上述のように、一部の実施では、コントローラ１５０は、ロボット１００の運動を検知するＩＭＵ５１０ｄからのセンサ信号を受信するまで、従って、ロボット１００を停滞位置から解除するまで、抗停滞挙動３００ａを実行することができる。一部の例では、角度θは予め設定されている。制御システム２１０は、ロボット挙動３００とロボットが傾斜する頻度とをモニタして、結果として角度を増減させることによって角度θを調整する。
【００５０】
一部の実施では、ロボット１００が、北、南、東、西、北東、北西、南東、南西の位置のうちの１方向に閾値角を超えて（例えば、１５度を超えて）、かつ閾値期間を超えて（例えば、３秒を超えて）傾斜する場合に、抗傾斜挙動３００ｂをトリガすることができる。閾値期間は、０．１〜１０秒とすることができる。
【００５１】
一部の例の中で、図９Ａ、１０Ａ、及び１１Ａを参照すると、ロボット１００は第１表面１０ａ（例えば、硬い表面）から第２表面１０ｂ（例えば、絨毯）へ、又はその逆に移動し、そこでは各床面１０は他方の床面１０とは異なる高さを有する。ＩＭＵからの信号を用いて、ロボット１００の背景挙動３００は、ロボット１００の傾斜及びロールをモニタして、ロボット１００が所定時間（傾斜期間閾値）、例えば、２分の１秒を超えて床面から離れないようにする。この傾斜期間閾値は、駆動の最初に４分の１秒の閾値で始まり、駆動の終わりに近づく時に増加し、例えば、１秒まで増加する。ロボット１００が立ち往生することなくその任務（掃除駆動）を終える場合に、傾斜期間閾値は、次の駆動ではより高い値で始まる。例えば、傾斜期間閾値は１秒で始まり、そこに留まる。ロボット１００が駆動中に立ち往生した（すなわち、停滞状況に遭遇した）場合に、傾斜期間閾値は、次の駆動ではより低い値、例えば、８分の１秒で始まり、ロボット１００が停滞状況なしに前進する時に駆動全体を通して増加する。別の実施では、ロボット１００を時限式に発進させる（すなわち、無人で計画的な）場合に、ロボット１００の傾斜期間閾値はより高い値で始まることができ、ユーザのボタン押しによりロボット１００を駆動に送り出す場合に、傾斜期間閾値はより低い値で始まることができる。
【００５２】
このような状況では、コントローラ１５０は、ロボット１００に平面１０へ復帰させる脱出挙動３００ｉを発令するために、（例えば、高くした出入口の敷居で）ロボット１００が傾斜しているか否かを決定する。ロボット１００が特定期間（すなわち、傾斜期間閾値）の間、閾値角αTを超えて傾斜（ピッチ又はロール）していることをＩＭＵ５１０ｄが検知すると、抗傾斜挙動３００ｂをトリガさせることができる。閾値角αTはプログラマブルにすることができる。一部の実施では、コントローラ１５０は、ロボットの性能をモニタして、その性能に基づいて閾値角αTを調整する。同様に、上述のように、傾斜期間閾値もロボット１００の性能に基づいて調整可能にすることができる。
【００５３】
図１０Ａの流れ図を参照すると、一部の例では、コントローラ１５０は、ブロック１００１でＩＭＵ５１０ｄから信号を受信し、判断ブロック１００２で、受信した信号はロボット１００が傾斜していることを示すか否かを決定する。ロボット１００が傾斜していない（例えば、判断ブロック１００４は「ノー」である）場合に、ロボット１００は、ブロック１００６でその意図する活動を続ける（例えば、ロボット活動を再開する）。しかし、ロボット１００が傾斜している（例えば、判断ブロック１００４は「イエス」である）場合に、コントローラ１５０は、判断ブロック１００８で傾斜角αが閾値傾斜角度αTを超えるか否かを決定する。傾斜角αが閾値傾斜角度αTを超える（例えば、判断ブロック１００８が「イエス」である）場合に、コントローラ１５０は、ブロック１０１２で脱出挙動３００ｉを実行して、ロボット１００をその傾斜状況から解除し、平面での活動を再開させる。しかし、傾斜角αが閾値傾斜角度αT未満の（例えば、判断ブロック１００８が「ノー」である）場合に、コントローラ１５０は、判断ブロック１０１０で、ロボット１００が閾値期間を超える時間にわたって傾斜し続けているか否かを決定する。ロボット１００が閾値期間より短い時間にわたって傾斜し続けている（例えば、判断ブロック１０１０は「ノー」である）場合に、ロボット１００は、ブロック１０１４でその活動を再開する。しかし。ロボット１００が閾値期間Ｔより長い時間にわたって傾斜し続けている（例えば、判断ブロック１０１０は「イエス」である）場合に、コントローラ１５０は、ブロック１０１２で脱出挙動３００ｉを実行して、ロボット１００をその傾斜状況から解除する。従って、コントローラ１５０は、以下の条件の下でロボットが傾斜しているか否かを決定する。
【００５４】
α＜αT、かつｔ＜Ｔ；傾斜なし            （１）
【００５５】
α＜αT、かつｔ＞Ｔ；ロボット傾斜あり            （２）
【００５６】
ロボット１００は、Ｘ軸及びＹ軸周りの組合せ傾斜で傾斜することができ、すなわち、ロボット１００はピッチ及びロールを行うことができる。閾値傾斜角αTは、Ｘ軸及びＹ軸周りの各傾斜のベクトル和である。従って、ロボット１００がピッチしているだけの場合に、閾値傾斜角αTはピッチ角に等しい。同様に、ロボット１００がロールしているだけの場合に、閾値傾斜角αTはロール角に等しい。
【００５７】
図９Ａに示すように、ロボット１００は硬い床１０ａ（例えば、タイルや硬材）と絨毯１０ｂとの間を移動することができ、一部の事例では、絨毯１０ｂと硬い床１０ａ間の移行は滑らかな移行でなく、硬い床１０ａから絨毯１０ｂへの移動の場合は上昇であり、又は絨毯１０ｂから硬い床１０ａへの移動の場合は下降である。従って、ロボット１００は、北位置（すなわち、ピッチダウン）又は南位置（すなわち、ピッチアップ）の傾斜を受ける可能性が最も高く、ロボット１００は、短時間で傾斜位置から移行することができる。この場合に、その短時間が、抗傾斜挙動３００ｂを発令を決定するために制御システム２１０を使用する閾値期間（すなわち、傾斜期間閾値）未満であるために、制御システム２１０は、抗傾斜挙動３００ｂを実行することができない。
【００５８】
図９Ａ及び１０Ｂを参照すると、一部の実施では、ロボット１００は、掃除ロボット１００である。図１０Ｂの流れ図１０５０に示すように、コントローラ１５０は、ブロック１０５２でＩＭＵ５１０ｄから信号を受信し、ブロック１０５４で、受信した信号はロボット１００が傾斜していることを示すか否かを決定する。ロボット１００が傾斜していない（例えば、判断ブロック１０５４は「ノー」である）場合に、ロボット１００はブロック１０８２でその掃除活動を続ける。しかし、ロボット１００が傾斜している（例えば、判断ブロック１０５４が「イエス」である）場合に、コントローラ１５０は、判断ブロック１０５６で傾斜角αが閾値傾斜角度αTを超えるか否かを決定する。傾斜角αが閾値傾斜角度αTを超える（例えば、判断ブロック１０５６が「イエス」である）場合に、コントローラ１５０は、ブロック１０６０で脱出挙動３００ｉを実行して、ロボット１００をその傾斜状況から解除し、その後にブロック１０８０で平面での活動を再開させる。しかし、傾斜角αが閾値傾斜角度αT未満の（例えば、判断ブロック１０５６が「ノー」である）場合に、コントローラ１５０は、判断ブロック１０５８で、ロボット１００が閾値期間を超える時間にわたって傾斜し続けているか否かを決定する。ロボット１００が閾値期間より短い時間にわたって傾斜し続けている（例えば、判断ブロック１０５８が「ノー」である）場合に、ロボット１００はブロック１０８２でその掃除活動を再開する。しかし。ロボット１００が閾値期間（すなわち、傾斜期間閾値）を超える時間にわたって傾斜し続けている（例えば、判断ブロック１０１０が「イエス」である）場合に、コントローラ１５０は、ブロック１０６０で脱出挙動３００ｉを実行して、ロボット１００をその傾斜状況から解除する。脱出挙動３００ｉは、ブロック１０６２でロボット１００のブラシ１６２及びバキューム１６８を停止する段階を含むことができ、ロボット１００がピッチアップしている（すなわち、南に傾斜している）場合に、ロボット１００はブロック１０６６で、自身を傾斜させた障害物１８から後退する。判断ブロック１０６８でロボット１００がピッチダウンしている（すなわち、北に傾斜している）場合に、ブロック１０７０でロボット１００は前進する。ロボット１００が片側（すなわち、左又は右）にロールしている（例えば、判断ブロック１０６４、１０６８が「ノー」である）状況では、ロボット１００は、ブロック１０７２でロール角が閾値ロール角度（例えば、１〜５度）又は代わりに閾値傾斜角度αT以内になるまで、障害物１８から向きを変え、その後にロボット１００は前進し掃除を再開する。ロボット１００は閾値傾斜角度αTを超えて傾斜しているが、抗傾斜挙動３００ｂを実行すべき閾値期間未満の場合に、ロボット１００は、間に凸凹の分かれ目を有する２つの異なる表面から移行しており、従って潜在的な停滞に遭遇してない可能性がある。
【００５９】
一部の例では、ロボット１００は、例えば、壁面２０に固定されたひも又はコード１８ｅ（図１１Ａ）（例えば、ブラインドのひも、ドレープのひも、カーテンのひも、シェードのひもなど）を吸い込んだ場合に、掃除をしながら傾斜する。ロボット１００がひも１８ｅを吸い込んだ場合に、ひもは従動ローラブラシ１６２に巻き付いて、ロボット１００を傾斜させる。ＩＭＵ５１０ｄは、ロボット１００の傾斜を検知して、その結果、抗傾斜挙動３００ｂをトリガすることができる。コントローラ１５０は、ローラブラシ１６２（例えば、ローラブラシ）を駆動するモータ１２２ａ、１２２ｂに僅かに逆付勢を設定する抗タッセル挙動３００ｋを実行することができ、従動ローラブラシ１６２は逆方向に積極的に回転する（これはひも１８を再び絡ませる場合がある）のではなく、ロボット１００が吸い込んだひも１８ｅから後退する際に従動ローラブラシ１６２の逆回転を補助するようにする。ロボット１００はまた、バキューム１６８を停止して傾斜状況を生じた位置から離れようと試み、ロボット１００がひも１８ｅをほどいて脱出することができるようになる。
【００６０】
図９Ｂを参照すると、一部の実施では、制御システム２１０は、例えば、非一時的メモリ１５４に経由ポイントを格納することにより、ロボット１００の駆動経路６１０を記録する。制御システム２１０は、ある時間（例えば、０．５秒、１秒、２秒など）の間、駆動経路６１０の履歴を保持することができる。一部の例では、抗傾斜挙動３００ｂが実行された状態で、ロボット１００は、それ以前に記録された経路６１２を辿って安全な領域へ行き、再び立ち往生することを回避する。一部の例では、コントローラ１５０は、ロボットリソース２４０に対する、時間的に最後に記録された経由ポイントで始まる格納された経由ポイントを辿る指令の発令を生じる遡及的進行挙動３００ｍを実行する。遡及的進行挙動３００ｍは、様々な以前通過した座標を相互に接続する復路に沿って、自律式移動ロボット１００を操縦して戻す。一部の例では、停滞状態の回避又は抗傾斜挙動３００ｂの後で、ロボット１００は、傾斜を引き起こした障害物１８から定められた距離になって初めてこの最後の実行操縦を試みる。
【００６１】
図１１Ａ−１２を参照すると、一部の実施では、挙動システム２１０ａは抗吸込み挙動３００ｃを含み、抗吸込み挙動３００ｃは、ロボット１００が大きい物体１２（例えば、靴下、スカーフ）を拾い上げないようにする。図３に戻って参照すると、一部の実施では、ロボット１００は、駆動ホイール１２４ａ、１２４ｂの前方でロボット１００の前方底面部分１１６上に配置された機械式スイッチ５３０を有する。機械式スイッチ５３０は、ロボット１００が拾い上げるべきではない物体１２、１８を検知する。スイッチ５３０は、互いに隣接して配置することができ、又はある距離だけ（等距離的に）引き離すことができる。機械式スイッチ５３０は、本体１１０により定められる横断Ｘ軸線に沿って実質的に対向させることができる。ロボット１００は、床面１０からロボット１００の底面１１６までのクリアランス距離Ｃを有する。機械式スイッチ５３０は、ロボット１００の底面１１６から距離ＣMを有する。ＣTは、ロボット１００が機械式スイッチ５３０を作動させることなく進行することができるクリアランス距離閾値である。
【００６２】
Ｃ＝ＣM＋ＣT            （３）
【００６３】
ＣT＝Ｃ−ＣM            （４）
【００６４】
ロボット１００が閾値高さＣTを超える高さＣ0を有する障害物１８を横切ると、物体１２はスイッチ又は複数のスイッチ５３０を物理的に作動させることができる。しかし、障害物１８が閾値高さＣT未満の高さＣ0を有する場合に、物体１２はスイッチ又は複数のスイッチ５３０を物理的に作動させない。
【００６５】
例えば、物体１２との接触は回路の閉鎖を生じ、スイッチ５３０を作動させる。閾値期間を超える時間にわたってスイッチ５３０が同時に作動すると、挙動システム２１０ａは、抗吸込み挙動３００ｃを実行することができる。閾値期間は、調整可能及び／又は可変とすることができる。抗吸込み挙動３００ｃはバキューム１６８を停止させ、及び／又はローラブラシ１６２に逆付勢を掛けることができる（例えば、逆方向に積極的に回転させて、ローラブラシ１６２に巻き付いたコードが、ロボットが後退する際にほどけることが可能になるように）。これに加えて又はこれに代えて、ロボット１００は、特定期間（例えば、０．５秒、０．６秒など）の間、そのＺ軸周りを小角移動することによって蛇行する。その場合に、コントローラ１５０は、ローラブラシ１６２の回転を停止させる指令を発令して、別の時間（例えば、１．８秒）の間、ロボット１００が蛇行するように指令する。その後に、ロボット１００は挙動３００を再開する。
【００６６】
図１２の流れ図１２００を参照すると、一部の例では、機械式スイッチ５３０は、ロボット１００が拾い上げる必要がある大きいデブリ片によってブロック１２０２で作動する。このような場合に、コントローラ１５０は、デブリ検知器５１０ａが作動したか否かを決定する。もしそうであれば、コントローラ１５０は、ローラブラシ１６２を作動させてデブリ１４を拾い上げる。しかし、デブリ検知器５１０ａが作動しなかった場合に、コントローラ１５０は判断ブロック１２０４で、ＩＭＵ５１０ｄ及び／又はホイール符号器１２１ａ、１２１ｂが慣性モーメントの変化を検知したか否かを決定する。ＩＭＵ５１０ｄ及び／又はホイール符号器１２１ａ、１２１ｂが運動を検知した（例えば、判断ブロック１２０４が「イエス」である）場合に、ロボット１００は、自身が停滞状態にあるか否かを決定し、もしそうならば、図８Ａ及び８Ｂに関して上述したように、ブロック１２２０で抗停止挙動３１０ａを実行する。ＩＭＵ５１０ｄ及び／又はホイール符号器１２１ａ、１２１ｂが運動を検知しなかった（例えば、判断ブロック１２０４が「ノー」である）場合に、挙動システム２１０ａは、ブロック１２２０で抗吸込み挙動３００ｃを実行する。抗吸込み挙動３００ｃは、ロボットを停止させる段階（ブロック１２０８）、ブラシを逆回転させる段階（ブロック１２１０）、ロボットを蛇行させる段階（ブロック１２１２）、ブラシを停止させる段階（ブロック１２１４）、及び／又は、ブラシ停止後にブロック１２１８で掃除を再開する前にロボットを蛇行させる段階（ブロック１２１６）を含むことができる。その結果、ロボット１００が傾斜しているというＩＭＵ５１０ｄによる指示は、抗吸込み挙動に優先する。一部の例では、機械式スイッチ５３０が閾値期間にわたって作動すると、コントローラ１５０は、抗吸込み挙動３００ｃを開始する。
【００６７】
図１３の流れ図１３００を参照すると、一部の実施では、挙動システム２１０ａは、ホイール−ジャム挙動３００ｄを含む。挙動システム２１０ａは、ホイールモジュール１２０ａ、１２０ｂのホイール１２４ａ、１２４ｂがホイール１２４ａ、１２４ｂに嵌まり込んだ物体１２のために動かなくなると、ホイール−ジャム挙動３００ｄを実行する。コントローラ１５０はブロック１３０２で、ホイール１２４ａ、１２４ｂが閾値を超える比率で失速しているというセンサシステム５００からの信号を受信する。挙動システム２１０ａは、脱出挙動３００ｉを実行してロボット１００の活動を再開することができる。例えば、コントローラ１５０は、ブロック１３０４で蛇行角を有する指令を発令し、ブロック１３０４でＩＭＵ５１０ｄ及びホイール符号器１２１ａ、１２１ｂから信号を受信して、判断ブロック１３０８でロボット１００が蛇行しているか否かを決定することができる。コントローラ１５０がロボット１００は蛇行している（例えば、判断ブロック１３０８が「イエス」である）場合に、コントローラ１５０は、ブロック１３１０でロボット１００に非停滞と決定することができる。しかし、コントローラ１５０がロボット１００は蛇行していない（例えば、判断ブロック１３０８が「ノー」である）場合に、コントローラ１５０は、ブロック１３１２でロボット１００に停滞と決定し、ブロック１３１４で脱出挙動３００ｉを実行することができる。一部の例では、挙動システム２１０ａは、物体１８ｄ（例えば、靴下）が取り除かれてホイール１２４ａ、１２４ｂがもはや失速しなくなるまで、右及び左のホイール１２４ａ、１２４ｂに対して交互に逆駆動指令を発令させる蛇行挙動３００ｌを実行する。
【００６８】
図１４は、自律式移動ロボット１００を作動させる方法１４００のための作動の例示的配置を与える。方法１４００は、センサシステム５００からセンサ信号を受信する段階１４１０を含む。センサ信号は、慣性測定値又は角度方向を含む。方法１４００は、コンピュータプロセッサ１５２上で挙動システム２１０ａを実行する段階１４２０を更に含む。挙動システム２１０ａは、センサシステム５００からのセンサ信号を受信し、センサ信号に基づいて少なくとも１つの挙動３００を実行する。センサ信号が、ロボット１００が静止していることを示す場合１４３０に、挙動システム２１０ａは、抗停滞挙動３００ａを実行して停滞状態（例えば、割り込み、乗り上げ、又は旋回）を評価し、センサ信号が、ロボット１００が接地面１０（例えば、床面）に対して傾斜していることを示す場合に、挙動システム２１０ａは、抗傾斜挙動３００ｂを実行して拘束状態を評価する。
【００６９】
一部の実施では、抗停滞挙動３００ａは、蛇行角θを有する蛇行指令の発令を含む。蛇行指令は、互いに対して蛇行角θだけの角度を成して交互に左右駆動方向へ駆動する駆動指令を含む。方法１４００は、コンピュータプロセッサ１５２でセンサシステム５００から第２センサ信号を受信する段階を更に含む。第２センサ信号が、第１蛇行角θを有する第１蛇行指令を実行した後にロボット１００が停滞していることを示す場合に、抗停滞挙動３００ａは、第１蛇行角を超える第２蛇行角を有する第２蛇行指令を発令する。
【００７０】
一部の例では、方法１４００は、ロボット１００が重力方向に対して少なくとも閾値期間Ｔにわたって傾斜している時に抗傾斜挙動３００ｂを実行する段階を含む。方法１４００は、ロボット１００が重力方向及び前方駆動方向Ｆに対してピッチアップしている時に前方駆動指令を実行する段階と、ロボット１００が重力方向及び前方駆動方向Ｆに対してピッチダウンしている時に逆駆動指令を実行する段階とを含むことができる。
【００７１】
一部の例では、方法１４００は、ロボット１００が重力方向に対して閾値角αTよりも大きい角度で傾斜している時に抗傾斜挙動３００ｂを実行する段階を含む。方法１４００は、ロボット１００が重力方向及び前方駆動方向Ｆに対してピッチアップしている時に前方駆動指令を実行する段階と、ロボット１００が重力方向及び前方駆動方向Ｆに対してピッチダウンしている時に逆駆動指令を実行する段階とを含むことができる。
【００７２】
一部の実施では、方法１４００は、駆動システム１２０ａ、１２０ｂの駆動ホイール１２４ａ、１２４ｂ前方のロボット１００の底面１１６に配置された機械式スイッチ５３０を作動させる段階を更に含む。機械式スイッチ５３０は、障害物１８が機械式スイッチ５３０に接触する時に起動する。これに加えて、方法１４００は、機械式スイッチ５３０が作動してセンサシステム５００が停滞したロボット１００を検知した場合に抗停滞挙動３００ａを実行する段階を含むことができる。図１１Ｂに戻って参照すると、機械式スイッチ５３０は、ロボット１００の底面１１６から距離ＣMを有する。ＣTは、ロボット１００が機械式スイッチ５３０を作動させることなく進行することができるクリアランス距離閾値である（図３及び４参照）。ロボット１００が、閾値高さＣTを超える高さＣ0を有する障害物１８を横切ると、物体１２はスイッチ又は複数のスイッチ５３０を物理的に作動させることができる。しかし、障害物１８が閾値高さＣT未満の高さＣ0を有する場合に、物体１２はスイッチ又は複数のスイッチ５３０を物理的に作動させない。
【００７３】
一部の実施では、方法１４００は、掃除システム１６０を用いて床面１０を掃除するか又は処理する段階を含む。方法１４００は、機械式スイッチ５３０が作動してセンサシステム５００が運動を検知した場合に抗吸込み挙動３００ｃを実行する段階を含むことができる。抗吸込み挙動３００ｃは、掃除挙動（例えば、スポット掃除挙動３００ｅ、汚れ捜索挙動３００ｈ）を停止させるための掃除停止指令の発令を引き起こし、蛇行角θを有する蛇行指令を発令する。蛇行指令は、互いに対して蛇行角θだけの角度を成して交互に左右駆動方向へ駆動する駆動指令を含む。蛇行指令により、ロボット１００はホイール１２４ａ、１２４ｂの失速を引き起こす物体１８ｄ（例えば、靴下）を解除することができる。一部の例では、方法１４００は、ロボット１００のホイール１２４ａ、１２４ｂが失速閾値未満の失速速度で失速していることを示すセンサシステム５００からの信号をコントローラ１５０が受信するとホイール−ジャム挙動３００ｄを実行する段階を含み、ホイール−ジャム挙動３００ｄは、ロボット１００の失速したホイール１２４ａ、１２４ｂを解除する蛇行指令の発令を引き起こす。
【００７４】
本明細書に説明したシステム及び技術の様々な実施は、デジタル電子回路及び／又は光学回路、集積回路、特別に設計されたＡＳＩＣ（特定用途向け集積回路）、コンピュータハードウエア、ファームウエア、ソフトウエア、及び／又はその組合せで達成することができる。これらの様々な実施は、少なくとも１つのプログラマブルプロセッサを含むプログラマブルシステム上で実行可能及び／又は逐次解釈実行可能な１又は２以上のコンピュータプログラムにおける実装を含むことができるが、そのプログラマブルプロセッサは、専用又は汎用とすることができ、ストレージシステム、少なくとも１つの入力デバイス、及び少なくとも１つの出力デバイスとの間でデータ及び指令を受信、並びに送信するように接続されている。
【００７５】
これらのコンピュータプログラム（プログラム、ソフトウエア、ソフトウエアアプリケーション、又はコードとしても公知）は、プログラマブルプロセッサのための機械指令を含み、高レベル手続き型及び／又はオブジェクト指向プログラミング言語、及び／又はアセンブリ言語／機械語で実装することができる。本明細書に用いる「機械可読媒体」及び「コンピュータ可読媒体」とは、機械指令及び／又はデータをプログラマブルプロセッサに提供するのに使用されるあらゆるコンピュータプログラム製品、非一時的コンピュータ可読媒体、装置、及び／又はデバイス（例えば、磁気ディスク、光ディスク、メモリ、プログラマブル論理部デバイス（ＰＬＤ））を指し、機械可読信号として機械指令を受信する機械可読媒体を含む。用語「機械可読信号」とは、機械指令及び／又はデータをプログラマブルプロセッサに提供するのに使用されるあらゆる信号を指す。
【００７６】
本明細書に説明した主題及び機能的作動の実施は、デジタル電子回路又はコンピュータソフトウエア、ファームウエア、又はハードウエアに実施することができ、かつ本明細書に開示された構成及びこれらの構成均等物又はこれらの１又は２以上の組合せを含む。これに加えて、本明細書に説明した主題は、１又は２以上のコンピュータプログラム製品、すなわち、データ処理装置によって実行するために又はデータ処理装置の作動を制御するためにコンピュータ可読媒体上に符号化されたコンピュータプログラム指令の１又は２以上のモジュールとして実装することができる。コンピュータ可読媒体は、機械可読ストレージデバイス、機械可読ストレージ基板、メモリデバイス、機械可読伝播信号を発生させる構成物、又はこれらの１又は２以上の組合せとすることができる。用語「データ処理装置」、「コンピュータデバイス」、及び「コンピュータプロセッサ」は、データを処理するあらゆる装置、デバイス、及び機械を包含し、例えば、プログラマブルプロセッサ、コンピュータ、又は複数のプロセッサ又は複数のコンピュータを含む。装置は、ハードウエアに加えて、対象のコンピュータプログラムに対する実行環境を生成するコード、例えば、プロセッサファームウエア、プロトコルスタック、データベース管理システム、オペレーティングシステム、又はこれらの１又は２以上の組合せを構成するコードを含むことができる。伝播信号は、人工的に生成される信号、例えば、好ましい受信装置に送信する情報を符号化するのに生成される機械生成電気信号、光信号、又は電磁信号である。
【００７７】
同様に、図面において作動を特定の順序に示しているが、これは、このような作動を図示の特定順序で又は順次実行すること、又は望ましい結果を得るために例示の全作動を実行することを要求するものであると解釈すべきではない。特定の状況では、マルチタスク及び並列処理を有利とすることができる。これに加えて、上述の実施形態における様々なシステム構成要素の分離は、全ての実施形態においてこのような分離を必要とすると解釈すべきでなく、また、説明したプログラム構成要素及びシステムは、一般的に、単一ソフトウエア製品に統合することができ、又は複数のソフトウエア製品にパッケージ化することができる。
【００７８】
多くの実施形態を説明した。それでも尚、本発明の開示の精神及び範囲から逸脱することなく様々な修正を行うことができる点を理解しなければならない。従って、他の実施形態も特許請求の範囲にある。例えば、特許請求の範囲に列挙するアクションは、異なる順序で実行可能であり、依然として望ましい結果を達成することができる。
【符号の説明】
【００７９】
１００  自律式移動ロボット
１１０  ロボット本体
１４０  ユーザインタフェース
１６４  サイドブラシ
５００  センサシステム
【図１】
2018101444.tif 000003
【図２】
2018101444.tif 000004
【図３】
2018101444.tif 000005
【図４】
2018101444.tif 000006
【図５】
2018101444.tif 000007
【図６Ａ】
2018101444.tif 000008
【図６Ｂ】
2018101444.tif 000009
【図６Ｃ】
2018101444.tif 000010
【図７Ａ】
2018101444.tif 000011
【図７Ｂ】
2018101444.tif 000012
【図８】
2018101444.tif 000013
【図９Ａ】
2018101444.tif 000014
【図９Ｂ】
2018101444.tif 000015
【図１０Ａ】
2018101444.tif 000016
【図１０Ｂ】
2018101444.tif 000017
【図１１Ａ】
2018101444.tif 000018
【図１１Ｂ】
2018101444.tif 000019
【図１２】
2018101444.tif 000020
【図１３】
2018101444.tif 000021
【図１４】
2018101444.tif 000022
【手続補正書】
【提出日】平成30年3月14日(2018.3.14)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
自律式移動ロボットであって、
床面にわたってロボットを操縦するように構成された駆動システムと、
ホイール符号器と前記ロボットの姿勢を測定するように構成された慣性測定ユニットとを含み、前記ロボットの姿勢を示す信号を発するように構成されたセンサシステムと、
前記駆動システム及び前記センサシステムと通信するコントローラと、
を含み、
前記コントローラは、前記ロボットが拘束されていることを示す、前記センサシステムからの少なくとも１つの信号に応答して、抗停滞挙動を実行するよう前記駆動システムを制御するように構成され、
前記コントローラは、前記ロボットが重力方向に対して傾斜していることを示す、前記センサシステムからの少なくとも１つの信号に応答して、抗傾斜挙動を実行するよう前記駆動システムを制御するように構成されている、
ことを特徴とするロボット。
【請求項２】
前記コントローラは、第１蛇行角を有する第１蛇行指令を実行することによって拘束状態を評価するように構成され、前記第１蛇行指令は、この第１蛇行角だけ互いに対して傾斜した交替する左及び右駆動方向に駆動する駆動指令を含む、ことを特徴とする請求項１に記載のロボット。
【請求項３】
前記コントローラは、前記ロボットが指令通りに蛇行駆動運動を示していないことを表す少なくとも１つの信号を前記慣性測定ユニット又は前記ホイール符号器から受信すると、前記ロボットは、前記第１蛇行角よりも大きい第２蛇行角を有する第２蛇行指令を実行するように構成されている、ことを特徴とする請求項２に記載のロボット。
【請求項４】
前記コントローラは、前記慣性測定ユニット及び／又は前記ホイール符号器の信号が前記ロボットの移動を指し示すための許容範囲にない場合に、前記駆動システムに抗停滞指令を発するように構成されている、ことを特徴とする請求項３に記載のロボット。
【請求項５】
前記拘束状態は、前記ロボットが物体に対して挟まり込む位置に入るか又は居ることを含む、ことを特徴とする請求項２に記載のロボット。
【請求項６】
前記センサシステムからの少なくとも１つの信号は、
前記ロボットの前記物体との接触を示す衝突信号と、
前記ロボット本体から離れる前記駆動システムのホイールの移動を示すホイール落下信号と、
を含む、
ことを特徴とする請求項５に記載のロボット。
【請求項７】
前記抗停滞挙動は、前記ロボットを障害から離して後退させるか又は前記ロボットが拘束を受けている側から離して前記ロボットの向きを変える駆動指令の実行を含む、ことを特徴とする請求項１に記載のロボット。
【請求項８】
前記抗停滞挙動は、前記ロボットを円弧軌道に駆動する駆動指令の実行を更に含む、ことを特徴とする請求項７に記載のロボット。
【請求項９】
前記コントローラは、前記ロボットが少なくとも閾値期間にわたって前記重力の方向に対して傾斜している時に、前記抗傾斜挙動を実行するよう前記駆動システムを制御するように構成されている、ことを特徴とする請求項１に記載のロボット。
【請求項１０】
前記抗傾斜挙動は、前記ロボットが前記重力の方向及び前記前方駆動方向に対してピッチアップしている時になされる逆駆動指令の実行を含み、また、前記ロボットが前記重力の方向及び前記前方駆動方向に対してピッチダウンしている時になされる前方駆動指令の実行を含む、ことを特徴とする請求項９に記載のロボット。
【請求項１１】
前記コントローラは、前記ロボットが閾値角よりも大きい角度で前記重力の方向に対して傾斜している時に、前記抗傾斜挙動を実行するよう前記駆動システムを制御するように構成されている、ことを特徴とする請求項１に記載のロボット。
【請求項１２】
前記抗傾斜挙動は、前記ロボットが前記重力の方向及び前記前方駆動方向に対してピッチアップしている時になされる逆駆動指令の実行を含み、また、前記ロボットが前記重力の方向及び前記前方駆動方向に対してピッチダウンしている時になされる前方駆動指令の実行を含む、ことを特徴とする請求項１１に記載のロボット。
【請求項１３】
前記センサシステムは、前記駆動システムの従動ホイールの前方の前記ロボットの底面上に配置された複数の機械式スイッチを更に含み、
前記機械式スイッチは、障害物がこの機械式スイッチに接触する時に起動されるよう構成される、
ことを特徴とする請求項１に記載のロボット。
【請求項１４】
前記コントローラは、前記機械式スイッチが起動された時に前記抗停滞挙動を実行するよう前記駆動システムを制御するように構成されている、ことを特徴とする請求項１３に記載のロボット。
【請求項１５】
前記床面を掃除するか又は処理するための掃除システムを更に含み、この掃除システムは従動ローラブラシ及びサイドブラシを含む、ことを特徴とする請求項１４に記載のロボット。
【請求項１６】
前記コントローラは、前記機械式スイッチが起動され、かつ前記センサシステムが運動を検知した時に、抗吸込み挙動を実行するよう前記駆動システムを制御するように構成され、この抗吸込み挙動は、掃除挙動を停止させるための掃除停止指令の発令と蛇行角を有する蛇行指令の発令とを含み、この蛇行指令は、前記蛇行角だけ互いに対して傾斜した交互する左及び右駆動方向に駆動する駆動指令を含む、ことを特徴とする請求項１５に記載のロボット。
【請求項１７】
前記コントローラは、前記ロボットの前記ホイールが失速閾値速度未満の失速速度で失速していることを示す前記センサシステムからの信号を受信した時に、ホイール−ジャム挙動を実行するよう前記駆動システムを制御するように構成され、このホイール−ジャム挙動は、前記ロボットの失速したホイールを解除するための前記蛇行指令の発令を引き起こす、ことを特徴とする請求項１６に記載のロボット。
【請求項１８】
床表面に接触するように構成され、横断Ｘ軸線に平行に延びる従動ローラブラシを更に含み、この従動ローラブラシは、前記Ｘ軸線の周りを第１の方向に回転するように構成され、
前記抗吸込み挙動は、前記第１の方向とは反対の第２の方向に受動的に回転するように前記ローラブラシを付勢することを含む、
ことを特徴とする請求項１７に記載のロボット。
【請求項１９】
自律式移動ロボットであって、
左右の駆動ホイールを駆動し、床面にわたってロボットを操縦するように構成された駆動システムと、
前記ロボットの姿勢を測定するように構成された慣性測定ユニットを含むセンサシステムと、
前記駆動システム及び前記センサシステムと通信するコントローラと、
を含み、
前記コントローラは、前記ロボットが重力方向に対して傾斜していることを示す、前記センサシステムからの少なくとも１つの信号に応答して、抗傾斜挙動を実行するよう前記駆動システムを制御するように構成されている、
ことを特徴とするロボット。
【請求項２０】
前記抗傾斜挙動は、前記ロボットが前記重力の方向及び前記前方駆動方向に対してピッチアップしている時になされる逆駆動指令の実行を含み、また、前記ロボットが前記重力の方向及び前記前方駆動方向に対してピッチダウンしている時になされる前方駆動指令の実行を含む、ことを特徴とする請求項１９に記載のロボット。
【請求項２１】
前記コントローラは、前記ロボットが閾値角よりも大きい角度で前記重力の方向に対して傾斜している時に、前記抗傾斜挙動を実行するよう前記駆動システムを制御するように構成されている、ことを特徴とする請求項１９に記載のロボット。
【請求項２２】
前記センサシステムは、前記駆動システムの従動ホイールの前方の前記ロボットの底面上に配置された複数の機械式スイッチを更に含み、
前記機械式スイッチは、障害物がこの機械式スイッチに接触する時に起動されるよう構成される、
ことを特徴とする請求項１９に記載のロボット。
【請求項２３】
前記コントローラは、前記機械式スイッチが起動され、かつ前記センサシステムが運動を検知した時に、抗吸込み挙動を実行するよう前記駆動システムを制御するように構成され、この抗吸込み挙動は、掃除挙動を停止させるための掃除停止指令の発令と蛇行指令の発令とを含み、この蛇行指令は、交互する左及び右駆動方向に駆動する駆動指令を含む、ことを特徴とする請求項２２に記載のロボット。
【請求項２４】
床表面に接触するように構成され、横断Ｘ軸線に平行に延びる従動ローラブラシを更に含み、この従動ローラブラシは、前記Ｘ軸線の周りを第１の方向に回転するように構成され、
前記抗吸込み挙動は、前記第１の方向とは反対の第２の方向に受動的に回転するように前記ローラブラシを付勢することを含む、
ことを特徴とする請求項２３に記載のロボット。