(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-11-28
(45)【発行日】2022-12-06
(54)【発明の名称】移動ロボットの移動の制限
(51)【国際特許分類】
G05D 1/02 20200101AFI20221129BHJP
B25J 5/00 20060101ALI20221129BHJP
A47L 9/28 20060101ALI20221129BHJP
【FI】
G05D1/02 H
B25J5/00 A
A47L9/28 E
【外国語出願】
(21)【出願番号】P 2020085284
(22)【出願日】2020-05-14
(62)【分割の表示】P 2015240814の分割
【原出願日】2015-12-10
【審査請求日】2020-06-15
(32)【優先日】2015-04-09
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】313013863
【氏名又は名称】アイロボット・コーポレーション
(74)【代理人】
【識別番号】100188558
【氏名又は名称】飯田 雅人
(74)【代理人】
【識別番号】100154922
【氏名又は名称】崔 允辰
(72)【発明者】
【氏名】ウィリアムズ マーカス
(72)【発明者】
【氏名】ルゥ ピーン-ホーン
(72)【発明者】
【氏名】ジョンソン ジョセフ エム.
【審査官】松本 泰典
(56)【参考文献】
【文献】国際公開第2015/039621(WO,A1)
【文献】米国特許出願公開第2005/0287038(US,A1)
【文献】特表2013-510377(JP,A)
【文献】特開2012-106080(JP,A)
【文献】米国特許出願公開第2012/0265391(US,A1)
【文献】特開2003-228421(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G05D 1/02
B25J 5/00
A47L 9/28
(57)【特許請求の範囲】
【請求項1】
自律型移動ロボットであって、
前記自律型移動ロボットを床面上で動かす駆動システム;
移動式デバイスと通信するように構成されたワイヤレストランシーバ;及び、
操作を実行するように構成されたコントローラであって、
前記ワイヤレストランシーバで、かつ、前記移動式デバイスからの、1つまたは複数のユーザの命令を示すデータの受信に応じて仮想バリヤを生成するステップであって、前記仮想バリヤが、前記1つまたは複数のユーザの命令に基づいて選択される、ユーザが選択した長さを有する、ステップと;
自律型移動ロボットを床面上で移動させると、前記仮想バリヤを越える前記自律型移動ロボットの移動を制限するステップと;
を実行するように構成されたコントローラ;
を備えることを特徴とする自律型移動ロボット。
【請求項2】
前記1つまたは複数のユーザの命令を示すデータは、前記仮想バリヤの位置及び方向を示すデータを備える、請求項1に記載の自律型移動ロボット。
【請求項3】
前記1つまたは複数のユーザの命令を示すデータは、前記仮想バリヤの線分または形状のうちの少なくとも1つを示すデータを備える、請求項1に記載の自律型移動ロボット。
【請求項4】
前記操作が、前記仮想バリヤの生成に応じて視認できる標識または聞き取れる警告を提供することをさらに備える、請求項1に記載の自律型移動ロボット。
【請求項5】
前記操作は、
前記仮想バリヤを越える前記自律型移動ロボットの移動を制限しながら、前記床面上で前記自律型移動ロボットを移動させるステップと、
前記自律型移動ロボットを前記床面上で移動させると前記自律型移動ロボットによって収集されるマッピングデータを前記移動式デバイスに送信して、前記移動式デバイスに前記床面のマップ表示を示すステップと、
をさらに備える、請求項1に記載の自律型移動ロボット。
【請求項6】
前記仮想バリヤは、前記床面を第1のエリアと第2のエリアに分割し、前記操作は、
前記1つまたは複数のユーザの命令を示すデータに基づいて、前記第1のエリアを清掃する第1の清掃動作を開始するステップ、及び
前記1つまたは複数のユーザの命令を示すデータに基づいて、前記第1の清掃動作が完了した後で前記第2のエリアを清掃するための第2の清掃動作を開始するステップ、
をさらに備える、請求項1に記載の自律型移動ロボット。
【請求項7】
前記自律型移動ロボットの移動中に床面上を清掃するように構成された清掃システムをさらに備える、請求項1に記載の自律型移動ロボット。
【請求項8】
前記清掃システムは、前記自律型移動ロボットの前方部分上の清掃パッドを支持するように構成された湿式清掃システムを備える、請求項7に記載の自律型移動ロボット。
【請求項9】
移動式デバイスであって、前記移動式デバイスが
床面上を移動可能な自律型移動ロボットと通信するように構成されたワイヤレストランシーバ;
仮想バリヤを越える前記自律型移動ロボットの移動が制限される仮想バリヤを生成するための1つまたは複数のユーザの命令を提供するためにユーザによって操作可能なロボットユーザインタフェース;及び、
1つまたは複数のプロセッサであって、
前記1つまたは複数のユーザの命令を送信して、前記仮想バリヤを生成するステップであって、これにより、前記自律型移動ロボットの自律動作中に、前記仮想バリヤを越える前記自律型移動ロボットの移動が制限され、前記仮想バリヤが、前記1つまたは複数のユーザの命令に基づいて選択される、ユーザ選択した長さを有する、ステップ;
を備える操作を実行するように構成された1つまたは複数のプロセッサ;
を備えることを特徴とする移動式デバイス。
【請求項10】
前記1つまたは複数のユーザ命令を示すデータは、前記仮想バリヤの位置及び方向を示すデータを備える、請求項9に記載の移動式デバイス。
【請求項11】
前記1つまたは複数のユーザ命令を示すデータは、前記仮想バリヤの線分または形状のうちの少なくとも1つを示すデータを備える、請求項9に記載の移動式デバイス。
【請求項12】
ユーザインターフェースをさらに備え、前記操作は、
前記自律型移動ロボットが床面上で移動させると前記自律型移動ロボットによって収集されたマッピングデータを受信するステップ;及び、
前記マッピングデータに基づいて前記移動式デバイスに床面のマップ表示を
示すステップ;
を備える、請求項9に記載の移動式デバイス。
【請求項13】
前記仮想バリヤは、前記床面を第1のエリアと第2のエリアとに分割し、前記操作は、
前記第1のエリアを清掃する第1の清掃動作を開始させる、かつ
前記第1の清掃動作が完了した後で前記第2のエリアを清掃する第2の清掃動作を開始させる、
命令を前記自律型移動ロボットに送信するステップを備える、請求項9に記載の移動式デバイス。
【請求項14】
仮想バリヤを生成するように1つまたは複数のユーザの命令を示すデータを移動式デバイスによって送信するステップであって、これにより、自律型移動ロボットの自律動作中に、前記仮想バリヤを越える前記自律型移動ロボットの移動が制限され、前記仮想バリヤが、前記1つまたは複数のユーザの命令に基づいて選択される、ユーザ選択した長さを有する、ステップ;
を備えることを特徴とする方法。
【請求項15】
前記1つまたは複数のユーザの命令を示すデータが、前記仮想バリヤの位置及び方向のうちの少なくとも1つを示すデータを含む、請求項14に記載の方法。
【請求項16】
前記1つまたは複数のユーザの命令を示すデータが、前記仮想バリヤの線分または形状のうちの少なくとも1つを示すデータを備える、請求項14に記載の方法。
【請求項17】
前記自律型移動ロボットが床面上で移動されると前記自律型移動ロボットによって収集されたマッピングデータを受信するステップ、及び、
前記マッピングデータに基づいて前記移動式デバイスに前記床面のマップ表示を示すステップ、
をさらに備える、請求項14に記載の方法。
【請求項18】
前記仮想バリヤは、前記床面を第1のエリアと第2のエリアとに分割し、前記操作は、
前記第1のエリアを清掃する第1の清掃動作を開始させる、かつ
前記第1の清掃動作が完了した後で前記第2のエリアを清掃する第2の清掃動作を開始させる、
命令を前記自律型移動ロボットに送信するステップを備える、請求項9に記載の移動式デバイス。
【発明の詳細な説明】
【技術分野】
【0001】
本明細書は、概して、移動ロボットの移動を制限することに関する。
【背景技術】
【0002】
移動ロボットは、周辺にある物、障害物、壁及びその他の構造物によって規定される表面の周囲を移動することができる。いくつかの場合には、ロボットの移動を周辺の特定の領域に制限することが望ましいであろう。これを行う為に、ロボットが制限された領域に移ることを防止するようにバリヤを立てることができる。例えば、ロボットが検出することができるビーコンは、制限された領域にロボットが入ることを制限する為に環境に置くことができる。
【発明の概要】
【0003】
例示的なロボットは、壁、障害物又は他の表面といった進入を防ぐ為の構造的な境界はたとえ存在しなくても、環境の横断不可のエリアを識別することができる。ロボットは、これらエリアへの移動を防止する為の仮想バリヤを生成することができる。このような仮想バリヤを生成する為の様々な技術が本明細書に記載される。
【0004】
例示的なロボットは、表面に対して移動可能な本体と、本体内にあり、表面上の初期位置での本体の方向に基づく情報を出力する為の1以上の測定デバイスと、本体内にあり、情報に基づいて本体の方向を決定し、本体の方向及び初期位置に基づくバリヤを超える本体の移動を防止することによって、本体の移動をエリアに制限する為のコントローラと、を備える。例示的なロボットは、以下の特徴の1以上を、単独で又は組合せで備えていても良い。
【0005】
バリヤは出入口を通過して伸び、ロボットの初期位置は出入口内に存在し得る。ロボットは、前方部と後方部とを備え得る。バリヤは、ロボットの後方部に平行なラインに沿って伸び得る。ラインは、ロボットの後方部に接し得る。ラインは、ロボットの視認性の表示器によって示される位置でロボットの本体と交差し得る。バリヤは、ロボットの後方部と平行に伸びる第1のラインと、ロボットの後方部に垂直に伸びる第2のラインとを有することができる。ロボットの初期位置は、ロボットの後方部を第1のラインに隣接して位置付け、ロボットの側部を第2のラインに隣接して位置付け得る。コントローラは、初期方向に対してある角度で回転すること;及びバリヤに実質的に平行な経路に沿って表面のエリアを横断すること、を含む動作を実行するように本体を制御することによって、本体の移動を制限するようにプログラムされ得る。
【0006】
コントローラは、清掃すべきエリアを表すマップを生成すること;及び、ロボットが横切ることを禁止される位置を示す仮想バリヤをマップ上で指定すること、を含む動作を実行することによって本体の移動を制限するようにプログラムされ得る。バリヤは、バリヤに対応する座標を横断不可として指定することによって指定され得る。
【0007】
方向を決定する動作及び移動を制限する動作は、ハンドシェイクモードに入ると実行されても良い。コントローラは、ロボット上でユーザによって起動される1以上の動作に応答してハンドシェイクモードを認識するようにプログラムされ得る。
【0008】
他の例示的なロボットは、下方の表面に沿って移動可能な本体と、構造物に固定されたマーカの1以上の画像を撮像するように構成されたカメラであって、表面に対して上方に向くカメラと、1以上の画像に基づいてマーカの位置を識別し、少なくとも1以上の条件が満たされるまで、マーカの位置によって定義されるバリヤを越える表面のエリアへの本体の移動を防止する、本体内にあるコントローラと、を備える。例示的なロボットは、以下の特徴の1以上を、単独で又は組合せで備えていても良い。
【0009】
マーカは赤外線画像マーカを含み、カメラは赤外線カメラであり得る。マーカは、構造物に対応する位置の名称、構造物の名称、又は、構造物に対応する位置の名称及び構造物の名称の両方を表す機械読取り可能な情報を含み得る。位置の名称と構造物の名称の少なくとも1つは、移動式デバイスに送信され該移動式デバイス上で表示され得る。
【0010】
コントローラは、少なくとも表面の部分を表すマップを生成すること;マーカの位置に基づいてマップ上でマーカを識別すること;マップをコンピュータメモリに保存すること;及び、マップ上のマーカの位置を越える表面上のエリアへの本体の移動を禁止するように示すデータを、コンピュータメモリに保存すること、を含む動作を実行するようにプログラムされ得る。コントローラは、マーカの1以上の画像に基づいて、マーカの位置を識別し、1以上の画像に基づいて識別されたマーカの位置を越える、表面上のエリアへの本体の移動を防止するようにプログラムされ得る。コントローラは、1以上の条件が満足されると、画像のマーカの位置によって規定されるバリヤを越える表面上のエリアへの本体の移動を許可し、少なくとも1以上の条件が満たされるまでバリヤを横切って戻る本体の移動を防止するようにプリグラムされ得る。
【0011】
ロボットは、1以上の遠隔のコンピュータデバイスにコンピュータネットワーク経由でマップを送信する為に、コンピュータネットワークと無線で通信する為の送信器を更に備え得る。1以上の条件は、ロボットがバリヤの範囲内にある表面の面積の少なくともある割合を横断することを含み得る。1以上の条件は、ロボットが、バリヤの範囲内にある表面の面積の少なくともある割合を2回以上横断することを含み得る。
【0012】
ロボットにより横断可能な環境の少なくとも一部の占有グリッドを生成する例示的な方法は、ロボット内のコントローラによって、環境内のロボットの位置及び方向を決定すること;及び、コントローラによって、占有グリッドに横断不可のセルのバリヤを含ませること、を含む。横断不可のセルのバリヤは、少なくともロボットの位置及び方向に基づいている。
【0013】
環境内でのロボットの為の占有グリッドを生成する例示的な方法は、ロボットのカメラによって、環境内の1以上の構造物上の1以上の取り外し可能なマーカの1以上の特徴を検出すること;及び、ロボットのコントローラによって、1以上の特徴に基づいて、占有グリッド上に、セルのラインが横断不可であることを表示すること、を含む。例示的な方法は、以下の特徴の1以上を、単独で又は組合せで備えていても良い。
【0014】
方法は、1以上の特徴の1以上の画像を生成すること;1以上の画像にアフィン変換を適用し、1以上の変換された画像を生成すること;及び、変換された1以上の画像が、保存された1以上の画像に十分にマッチすることを確認すること、を更に含み得る。表示することは、変換された1以上の画像が、保存された1以上の画像に十分マッチすることを確認することに応答して実行され得る。
【0015】
上記についての有利な点は、以下の内容を非限定的に含む。ユーザは、ロボット及びロボットが移動するエリアを制御することができる。ロボットは、エリア内で物にダメージを与えるリスクを減少させつつロボットが移動することができるエリアに制限され得る。いくつかの実施において、ロボットは、自律的に機能し、ユーザは、ロボットを部屋の特定の領域の外に保つために、ロボットが部屋をカバーする際にロボットを監視する必要はない。
【0016】
本明細書で説明する、発明の概要に記載されている特徴を含む二つ以上の特徴を組み合わせることで、本明細書に具体的に記載されていない実施形態を形成することができる。
【0017】
本明細書で説明するロボット及び技術又はその一部は、一つ以上の非一時的機械可読記憶媒体に保存された指示を含み、且つ本明細書で説明する動作を制御する(例えば、調整する)ために一つ以上の処理装置で実行可能である、コンピュータプログラム製品による制御が可能である。本明細書で説明するロボット又はその一部は、様々な動作を実装するための一つ以上の処理装置及び実行可能な指示を保存するためのメモリを含むことができる装置又は電子システムの一部又は全てとして実施することができる。
【0018】
一つ以上の実施の詳細が、添付図面及び以下の説明に記載されている。その他の特徴及び長所は、明細書、図面、及び特許請求の範囲から明確になるであろう。
【図面の簡単な説明】
【0019】
【
図1】
図1は、部屋内にあるロボットを示す図である。
【
図4】
図4は、移動ロボットと共に用いられる例示的な制御システムを示す。
【
図5A】
図5Aは、移動ロボットがロボットの不可視又は仮想のバリヤを生成する過程を示す模式図である。
【
図5B】
図5Bは、移動ロボットがロボットの不可視又は仮想のバリヤを生成する過程を示す模式図である。
【
図5C】
図5Cは、移動ロボットがロボットの不可視又は仮想のバリヤを生成する過程を示すフローチャートである。
【
図6A】
図6Aは、移動ロボットがロボットの不可視又は仮想のバリヤを生成する別の過程を示す模式図である。
【
図6B】
図6Bは、移動ロボットがロボットの不可視又は仮想のバリヤを生成する別の過程を示す模式図である。
【
図6C】
図6Cは、移動ロボットがロボットの不可視又は仮想のバリヤを生成する別の過程を示すフローチャートである。
【
図7A】
図7Aは、移動ロボットがロボットの不可視又は仮想のバリヤを生成する別の過程を示す模式図である。
【
図7B】
図7Bは、移動ロボットがロボットの不可視又は仮想のバリヤを生成する別の過程を示す模式図である。
【
図7C】
図7Cは、移動ロボットがロボットの不可視又は仮想のバリヤを生成する別の過程を示すフローチャートである。
【
図8A】
図8Aは、移動ロボットがロボットの不可視又は仮想のバリヤを生成する更に別の過程を示す模式図である。
【
図8B】
図8Bは、移動ロボットがロボットの不可視又は仮想のバリヤを生成する更に別の過程を示す模式図である。
【
図8C】
図8Cは、移動ロボットがロボットの不可視又は仮想のバリヤを生成する更に別の過程を示すフローチャートである。 異なる図面中の類似の参照符号は類似の要素を表す。
【発明を実施するための形態】
【0020】
本明細書に記載されるのは、床、カーペット、芝、又は他の材質等の表面を横断して、吸引、湿式又は乾式清掃、研磨等を非限定的に含む様々な動作を実行するように構成され
た例示的なロボットである。本明細書に記載される例示的なロボットの動きは、制限されても良い。例えば、ロボットは、ロボットが横断することのできない境界を規定する仮想バリヤを立てても良い。例えば、ユーザは、ロボットが特定の空間に入ることを防止する為の仮想バリヤの位置を選択することができる。
図1に示されるように、ロボットは浴室に配置され、(網掛の四角で示された)仮想バリヤが、ロボットが寝室に進入することを防止するように生成される。本明細書に記載されるように、仮想バリヤは、(例えば、ロボットの方向及び位置に基づいて)ロボット自身によって生成されても良く、又は、ロボットが横断することができない仮想バリヤを規定するとロボットに認識可能なマーカなどの1以上の要素との併用で、ロボットによって生成されても良い。マーカは、最初の使用中にロボットが最初にマーカを検出した後に取り除くことができる。その結果、マーカは、ロボットの後の使用の為に環境内に留まる必要な無い。
【0021】
ロボットは、仮想バリヤを生成する為の他の処理を実施しても良い。いくつかの実施において、ロボットは、ロボットの環境のマップとしての役割を果たす占有グリッド上に仮想バリヤの位置を記録することができ、それにより、移動中に及び/又はミッション間に仮想バリヤの位置をメモリに保持することができる。占有グリッドは、各セルが確率値(例えば、セルが占有される確率)又はセルの状態を示す他の情報を持つ、5cm~50cmサイズのセルの配列としての環境のマップで有り得る。占有グリッドは、環境のマップを、それぞれが環境内でのその位置での障害物の存在を表す2値ランダム変数の均一に間隔をおかれたフィールドとして表すことができる。本明細書に記載される例のいくつかは、ロボットに環境のマップを提供する為に占有グリッドを用いるけれども、他のマッピング技術を用いることもできる。例えば、仮想バリヤが2以上の座標からなる線分、3以上の座標からなる仮想多角形、他の幾何学的形状、又は「投げ縄」形状で表されたグラフのような異なるマップ表現を、本明細書に記載される方法及びシステムと共に用いることができる。
【0022】
仮想バリヤは、ロボットが特定のエリアから出て行ったり特定のエリアに入ったりしないようにすること、例えば、清掃ロボットが浴室から居間に移動することを防止すること、ができる。例えば、ロボットが部屋全体を掃除し終えたと判定した場合、ロボットは、その部屋の出口にまたがって配置された仮想バリヤを横切ることが許可されても良い。この例では、ロボットは、(例えば、ロボットの充電ベースがその部屋に配置されていない限り)仮想バリヤにより、以前に掃除した部屋に戻ることが禁止されても良い。
【0023】
本明細書に記載される技術は、部屋を移動することによって部屋の床面を清掃することができる自律型移動ロボットを含む、あらゆる適切なタイプのロボット又は他の装置の動きを制限する為に用いることができる。このようなロボットの例は、
図2Aに示される床清掃ロボット100である。ロッボト100は、本体102、前方部104、及び後方部106を備える。ロボット100は、本体102によって規定される3つの相互に垂直な軸である横軸X、縦軸Y及び中心鉛直軸Zに対する様々な動きの組合せを通じて、物理的な環境の床面上を移動する。縦軸Yに沿った前方駆動方向は、Fで示されており(以下、前方と記す)、縦軸Yに沿った後方駆動方向はAで示されている(以下、後方と記す)。
横軸Xは、ロボット100の右側R及び左側L間で伸びている。
【0024】
ユーザインタフェース110は、本体102の上部に配置され、1以上のユーザコマンドを受け付け及び/又はロボットの状態を表示する。本体102の上部は、ロボット100が環境の画像を撮像する為に用いることができるカメラ109を備えていても良い。ロボットは、カメラ109で撮像した画像に基づいて環境中の特徴を検出することができる。カメラ109は、カメラ109が環境内の壁面の画像を撮像することができるように、ロボット109を支持する表面(例えば、床)に対して上方に角度づけることができる。本明細書に記載されるように、いくつかの実施において、カメラ109は、環境の壁(又は他の)面上のステッカーや他の視覚的な識別装置といった、ユーザが置くことができ且つ取り外し可能なバリヤ識別マーカを検出することができ、これらのバリヤ識別マーカに基づいて、ロボット100がそれを超えないように命令される仮想境界を生成することができる。
【0025】
ロボット100の右側の壁追従センサ113は、ロボット100がいつ壁に追従しているかを判定するのに用いられる信号を出力することができるIRセンサを備えていても良い。ロボット100の左側Lも、このタイプの壁追従センサを有する。本体102の前方部104は、ロボット100の走行経路中の障害物を検出するのに用いられるバンパ115を備える。バンパ115及び/又はロボット本体102は、障害物との接触に基づく圧迫等の、ロボット本体102に対するバンパ115の圧迫を検出するセンサを備えることができる。いくつかの実施において、ロボット100の上部は、環境内の物体から放射される赤外線放射を検出することができる全方位赤外線(IR)トランシーバ118を備える。これらのセンサは、ロボット100に対して環境内の境界又は障害物に関する命令を提供する為に、他のユーザ入力と協働することができる。
【0026】
図2Bを参照すると、前方ローラ122a及び後方ローラ122bは、清掃面からごみを回収する為に協働する。より詳細には、後方ローラ122bは反時計回り方向CCに回転し、前方ローラ122aは時計回り奉納Cに回転する。ロボット100は、更に、ロボット本体102の後方部106を支持するように配置されるキャスタ車輪130を備える。ロボット本体102の底部は、ロボット100が床面10を移動するときにロボット本体102を支持する車輪124を備える。車輪124が駆動されるとき、ロータリエンコーダ112は車輪を駆動するモータ軸の位置を測定し、その位置は、ロボット100が走行した距離を推定するのに用いることができる。
【0027】
ロボット本体102の底部は、光源と低解像度カメラを有する光学マウスセンサ133を備える。ロボット100は、ロボット100が環境内を移動するときに、x及びy方向のドリフトを推定する為に光学マウスセンサ133を用いることができる。
【0028】
ロボット本体102は、更に、例えば、(i)x,y,z加速度、及び(ii)x-軸、y-軸、z-軸(例えば、ピッチ、ロール、ヨー)それぞれの周りの回転を測定する為の3軸加速度センサ及び3軸ジャイロスコープである、内部測定部(IMU)134を収容する。IMU134の加速度センサは、x及びy方向におけるドリフトを推定する為に用いることができ、IMU134のジャイロスコープは、ロボットの方向θにおけるドリフトを推定する為に用いることができる。これらの測定デバイス、例えばIMU134、光学マウスセンサ133及びロータリエンコーダ112は、環境内でのロボット100のおおよその位置及び方向を決定する為にコントローラが使用する、ロボットの位置及び方向についての情報(例えば、信号として表される測定値)をコントローラに提供する為に協働する。いくつかの実施において、これらの測定デバイスは、単一のデバイス又は2つのデバイスに組み込まれても良い。
【0029】
図3A及び
図3Bは、本明細書に記載される例示的な技術により仮想バリヤを生成することができる移動ロボットの他の例を示している。
図3Aを参照すると、いくつかの実施において、移動ロボット200は、5ポンド未満の重さ(例えば、2.26kg未満)である。ロボット200は、床面を移動して清掃するように構成されている。ロボット200は、例えばx、y、θ成分を有する駆動コマンドに基づいて床面上を移動することができる駆動装置(不図示)によって支持される本体202を備える。図示されるように、ロボット本体202は、四角形の形状を有し、X軸及びY軸を規定する。X軸は、右方向R及び左方向Lを有する。Y軸は、ロボット200の後方向A及び前方向Fを規定する。
図3Bを参照すると、ロボット本体202の底部207は、ロボット200の前方部204を支持する、取り付けられた清掃パッド220を保持する。底部207は、ロボット200が床面を移動するときに、ロボット本体202の後方部206を回転可能に支持する車輪221を備える。移動ロボット200は、また、コントローラにロボットの現在の方向及び位置を表す情報を出力する為の、本明細書に記載されるような、IMU、光学マウスセンサ、及びロータリエンコーダを備えていても良い。
【0030】
本体202は、縦方向(A,F)又は横(L,R)方向における衝突を検出する為の移動式バンパ210を備える。つまり、バンパ210は、ロボットの本体202に対して移動可能であり、この移動は、バンパ210がいつ圧迫されたかを検出することにより衝突を検出する為に用いられても良い。
【0031】
ロボット200の上部208は、ユーザがロボット200を持ち運ぶのに用いるハンドル235を備える。ユーザは、ロボット200をオン又はオフし、清掃動作を開始し又はその占有グリッドにおける仮想バリヤをマークするように命令する為の清掃ボタン240を押下することができる。いくつかの実施において、上部208は、また、ライト242a及び242b、又は、ロボット本体202の後側202Aに平行なラインに沿って並べられた他の視認性表示器を備える。ライト242a及び242bは、発光ダイオード(LED)であっても良い。本明細書に記載されるように、ライト242a及び242bは、ロボット200の占有グリッドにおける仮想バリヤの配置をユーザが決定する為に用いられる基準ラインとしての役割を果たすことができる。
【0032】
図4を参照すると、ロボット(例えば、ロボット100、ロボット200、及び本明細書に記載されるものを含む他の好適な移動ロボット)は、電力システム350、駆動装置360、ナビゲーションシステム370、センサシステム380、通信システム385、制御回路390(以下、コントローラと記す)、及びメモリ記憶素子395を備える例示的な制御システム300を備える。
【0033】
駆動装置360は、床面上でロボットを動かすことができる。駆動装置360は、車輪が床面に沿ってあらゆる方向にロボットを進ませるように、車輪(例えば、車輪124、221)を駆動する為にモータを制御することができる。車輪は、各車輪に供給される駆動レベルに基づいてロボットが方向転換することができるように差動的に動作させられても良い。
【0034】
コントローラ390上で実行される挙動ベースのシステムであっても良いナビゲーションシステム370は、ロボットが環境内で移動する為に駆動装置360を使用することができるように、駆動システム360に命令を送ることができる。ナビゲーションシステム370は、駆動装置360に駆動命令を発行する為にセンサシステム380と通信する。
【0035】
いくつかの実施において、センサシステム380は、環境内での構造的な要素の特徴に関連するデータを示す信号を生成し、それによりナビゲーションシステム370が、部屋又はセルの完全なカバレッジを可能にするように環境内を移動する為に用いるべきモード又は挙動を決定することを可能にする、ロボット上に配置されたセンサ(例えば、障害物検出センサ、車輪エンコーダ112、光学マウスセンサ、IMU134)を備える。モード又は挙動は、壁面、障害物面、低い張り出し、棚、及び不均一な床面を含む、環境内での可能性のある障害物を避ける為に用いることができる。センサシステム380は、ロボットが環境内の占有グリッドを生成することができるようにデータを集める。
【0036】
いくつかの実施において、センサシステム380は、障害物検出障害物回避(ODOA)センサ、標定ソナーセンサ、近接センサ、レーダセンサ、LIDAR(遠隔の対象物の距離及び/又は他の情報を見出す為に拡散された光の特性を測定することができる光学遠隔感知を伴う光検出測距)センサ、カメラ(例えば、カメラ109、ボリューメトリックポイントクラウドイメージング(volumetric point cloud imaging)、3次元(3D)画像化又は奥行きマップセンサ、可視光カメラ及び/又は赤外線カメラ)、及びキャスタ車輪(例えば、キャスタ車輪130)と共に動作することができる車輪落下センサを含むことができる。センサシステム380は、通信センサ、ナビゲーションセンサ、接触センサ、レーザセンサ、及び/又はナビゲーション、障害物の検出、及びロボットの他のタスクを容易化することができる他のセンサを備えることもできる。近接センサは、接触センサ(例えば、容量センサ又は機械式スイッチセンサ等の、物理的なバリヤを持つロボット上のバンパのインパクトを検出することができるセンサ)及び/又はロボットが近くの対象物に接近している場合を検出することができる近接センサの形式をとることもできる。
【0037】
コントローラ390は、入力及び出力パラメータを提供し及び受信する為に各システムと通信することによりロボットの他のシステムと共に動作する。コントローラ390は、電力システム350、駆動システム360、ナビゲーションシステム370、センサシステム380、通信システム385、及びメモリ記憶素子395間での通信を容易化することができる。例えば、コントローラ390は、ロボットを前方駆動方向Fに移動させ、電力充電モードに入らせ、及び/又は個別のシステムに特定の電力レベル(例えば、フル電力に対する割合)を供給する為に、駆動システム360のモータに電力を供給するように電力システム350に命令することができる。コントローラ390は、移動デバイス又は中央コンピュータネットワークと通信することができる送信機を有するワイヤレストランシーバを備えることができる通信システム385を動作させることもできる。本明細書に記載されるように、コントローラ390は、ロボットの清掃動作中に生成された占有グリッドを、中央コンピュータネットワーク又は個別に移動デバイスにアップロードすることができる。通信システム385は、ユーザからの命令を受信することもできる。
【0038】
コントローラ390は、環境をマップ化し、ロボットが環境のマップに定期的に再位置付けされるように命令を実行することができる。挙動は、壁追従動作及びカバレッジ動作を含む。
【0039】
一般に、壁追従動作の間、ロボットは、壁、障害物(例えば、家具、朝食バー、キャビネットトーキック等)又は環境内の他の構造物(例えば、暖炉、炉辺、階段のへり等)を、(例えばバンパ115を用いて)検出し、壁、障害物又は他の構造物の輪郭に追従する。
【0040】
カバレッジ動作の間、コントローラは、ロボットに、環境の床面をカバーし(例えば、床面の範囲を横断し又は移動し)、清掃するように命令する。ロボットは、牛耕式又はコーンロー型のパターン、らせんパターン、又は擬似乱数バウンスパターン等のカバレッジ経路技術を用いて環境の床面をカバーすることができる。ロボットが床をカバーする際に、コントローラ390は、占有グリッドを生成することができる。
【0041】
いくつかの実施において、コントローラ390は、例えば、エンコーダ112、光学マウスセンサ133、及びIMU134からの情報(例えば、信号)を、ロボットの位置及び方向(姿勢)を決定する(例えば、推定する)為に用いることのできるオドメトリデータを生成する為に用いても良い。例えば、コントローラは、IMU134の3軸ジャイロスコープからのジャイロスコープ信号を受信することができる。ジャイロスコープ信号は、ロボットが床面上を移動する際のロボットの本体の方向と位置に基づき得る。コントローラは、ロボットが走行した距離に基づくエンコーダ信号を伝えるエンコーダ112からの信号を用いて推定を改善することもできる。同様に、光学マウスセンサ133は、ロボットが床面を移動する際のロボットのドリフト量を決定する為に用いることができる。
【0042】
メモリ記憶素子395は、ロボットが移動する一つ又は複数の部屋の占有グリッドを保存するマッピングモジュール397を備え得る。占有グリッドは、清掃動作の後に通信システム385を用いて遠隔のコンピュータデバイスにアップロードされ得る。いくつかの実施において、占有グリッドは、所定の境界、物理的境界、及び他の境界(例えば、仮想の又は使用で確立されたバリヤ又は境界)の範囲内でロボットを移動させるようにロボット100に命令する為に、コントローラ390によって生成され使用される仮想マップを含むことができる。占有グリッドは、環境の物理的レイアウトを含んでいても良い。例えば、占有グリッドは、エリアの物理的なレイアウトを示すデータを含み、エリアと障害物の両方を表しても良い。占有グリッドは、環境の境界、その中の障害物の境界、環境内の物理的障害物に相当し或いは相当しないかもしれない、清掃動作を開始する前に生成される境界、及び/又はロボットが横断する内部床空間を含むことができる。
【0043】
占有グリッドは、データベース技術を用いること、様々な連想型データ構造を用いること、又は他のあらゆるデータ編制方法を非限定的に含む、あらゆる好適なやり方で、特性の位置のマップとして、実施されても良い。したがって、結果として得られるマップは、目に見えるマップである必要はなく、非一時的なコンピュータ読取り可能なメモリ内に保存されるデータを通じて定義されても良い。マップは、異なる精密度と正確さを持つ実際の面に相当していても良い。精密度は、例えば表面の部分に対応する個別のマップセルの使用により影響されるであろう。表面の10cm×10cm部分又は表面の5cm×5cmの部分(例えば、それらの四角であることや、全て同じサイズである必要は無い)であるそれらのセルのサイズは、観察された特性の細分性に制限を課すことによって精密度に影響を与えるであろう。正確さは、センサ品質及び本明細書に記載される様々な他の要因を含むその他の事項により影響されるであろう。
【0044】
いくつかの実施において、占有グリッドは、各セルが横断又は清掃の為のエリアの状態を示す関連の変数を有する、セルの2次元グリッドを含む占有グリッドである。占有グリッド内の各セルは、セルが横断可能か又は横断不可かを示す値を割り当てられることができる。グリッドの各セルには、環境内の選択された原点(0,0)セルに基づく座標(x、y)を割り当てることができる。選択された原点は、例えば、ロボットの充電ドック、又は、部屋内の特定の位置である。各セルは、その4つの辺が他のセルの辺と一致する四角いエリアを表すことができる。いくつかの実施において、セルは、1~100cmの辺の長さを有することができる。例えば、グリッドは、各セルが10cm×10cmのセルのグリッドであり得る。占有グリッドのセルは、清掃動作の開始前に又は清掃動作中に集合させることができる。いくつかの場合には、1つの清掃動作から集合させられたセルは、保存され、その次の清掃動作に使用することができる。清掃動作の前に、占有グリッドのセルのサブセットは、横断不可であるとしてマークすることができる。いくつかの場合には、セルは、ロボットにとって横断不可の境界であることを表す、ユーザが確立した仮想バリヤ(例えば、仮想バリヤは占有グリッド内の横断不可のセルのラインによって定義されても良い)を形成する。本明細書に記載されるように、セルは、以前の清掃動作の一部としてマークすることができ、又は、ロボットは、占有グリッドのいくつかのセルを横断不可のセルとして予め集合させる為の命令を受信することができる。別の実施において、占有グリッドは、仮想バリヤが2以上の座標によって定義される線分、3以上の座標によって定義される仮想多角形、又は、複数の座標で定義される他の幾何学的形状又は「投げ縄」形状として表される占有グラフであり得る。
【0045】
清掃動作の間、コントローラ390は、ロボットが横断した各セルの座標(x,y)を保存する。壁追従挙動の間、例えば、コントローラ390は、ロボットの足跡の下の全てのセルを横断可能なセルとしてマークし、ロボットが壁を通過することができないことを示す為に、追従している壁に対応するセルを横断不可としてマークする。本明細書に記載されるように、コントローラ390は、環境内での構造的な要素(例えば、壁、障害物等)の特徴を表す、セルの特定のシーケンス、組合せ、グループ等を認識するように構成されていても良い。いくつかの実施において、マップ内のセルの値を決定する前に、コントローラ390は、セルの値を未知に設定する。次に、ロボットが壁追従挙動又はカバレッジ挙動中に移動する際に、その経路に沿ったセルの値が横断可に設定され、セルの位置は、原点からの距離によって決定される。清掃動作中、いくつかの場合には、センサシステム380は、追加として又は代替として部屋内に配置された特徴(例えば、マーカ)に応答し、コントローラ390は、特徴の感知に基づいて占有グリッド内に仮想バリヤを示しても良い。
【0046】
本明細書に記載されるようなセルを横断不可とマークすることに加えて、仮想バリヤ及び横断不可のセルを生成する為のいくつかの方法もまた本明細書に記載される。清掃動作の間、コントローラは、ロボットに、占有グリッド内で横断不可と指定されたエリアを回避するように命令することができる。占有グリッドがたびたびロボット内(例えば、メモリ記憶素子395)に保存される間、占有グリッドは、通信システム385を通して、ネットワークサーバ、移動式デバイス、又は他の遠隔のコンピュータデバイスに送信されても良い。
【0047】
ここに示される例は、環境、及び、環境の為の対応の占有グリッドについて記載する。
図5A、
図5B、
図6A、
図6B、
図7A、
図8A及び
図8Bにおける占有グリッドは、横断不可のエリアを識別する為の網掛のセル、横断可のエリアを識別する為のブランクセル、及び未知のセルを識別する為のマークを付されていないエリアを使用する。対応の占有グリッドに示されたロボットは、環境内でのロボットの現在の位置についてのコントローラの推定値を識別する。
【0048】
図5A、
図5B、
図6A、
図6B、
図7A、
図8A及び
図8Bに記載された占有グリッドは、環境の横断可及び横断不可のエリアを示す為のセルを含む占有グリッドの例を示すけれども、他に実施において、コントローラは、環境の範囲内での位置に対応する座標値に依存する占有グリッドを生成することができる。例えば、仮想バリヤは、ロボットが横断することのできるライン又は領域の頂点を示す2以上の2次元座標のセットであり得る。
【0049】
いくつかの実施において、ロボットは、環境内で複数の部屋を清掃する為の複数の清掃動作を実行しても良い。
図5Aを参照すると、ロボット400が(
図5Aの部分421に示される)第1の部屋412及び第2の部屋414を含む環境410の床面10を移動する際に、ロボット400のコントローラ390は、環境410についての対応の占有グリッド420(例えば、
図5Aの部分423に示されるような、メモリ記憶素子395に保存された占有グリッド)を生成する。出入口415は、第1の部屋412と第2の部屋414を分離する。本明細書により詳細に記載されるように、ロボット400は、第1の部屋412を最初に清掃し、次に、第1の部屋412に戻ることなしに第2の部屋414を清掃する為に進行する。
【0050】
ロボット400は、経路425に沿ってコーンロー型のパターンを実行する。経路425は、第1領域430aに概ね制限される。領域430a及び430bは、ロボット400が環境を分割する為に設定する等しい幅の領域であっても良い。この領域は、任意に選択されても良く、またそれゆえ、物理的な境界、障害物、又は環境内の構造物に相当しないものであっても良い。
【0051】
ロボット400が経路425に沿ってコーンロー型のパターンを実行することによってカバレッジ挙動に従っているとき、領域430aにロボット自身を制限する為に、ロボット400は、環境の領域430bにロボット自身が入るのをやめても良い。コントローラ390は、ロボット400に、領域430bに入るのを避けるように及びコーンロー型のパターンの列を実行する間旋回するように命令することができる。占有グリッド420において、コントローラ390は、環境の壁に相当する横断不可セルを表示し、及び、横断可のセルを、カバレッジ挙動中にロボット400がカバーすることができたエリアとして示す。
【0052】
コントローラ390がロボット400が領域430aの横断可のエリアをカバーすることができていたと判定する場合、ロボット400は、環境410の他の領域(例えば領域430b)に進む為に壁追従挙動を実行することができる。コントローラ390は、ロボット400が1以上の条件に適合したと判定することによって、ロボット400が第1の領域430aをカバーすることを完了したと判定することができる。
図5Bを参照すると、部分421に示されるように、ロボット400は、壁追従を実行する為に経路440を追従することができる。ロボット400は、ロボット400がカバレッジ挙動を完了したときの位置に対応する初期位置440aで動き始める。経路440上の位置440bにて、ロボット400は、第1の領域430aから第2の領域430bに横断する。この時点で、コントローラ390は、ロボット400が新たな領域に入ったと判定する。コントローラ390は、例えば、ロボット400が横断可のセルから未知のセルに移動したと判定することによって、この判定を成すことができる。コントローラ390は、ロボット400が第1の領域430aを出て第2の領域3430bに入ったと判定することもできる。
【0053】
ロボット400が清掃動作が既に実行された領域430aに戻ることを防止する為に、コントローラ390は、部分423に示されるようにロボット400が既に清掃を行った領域をマークする仮想バリヤを設けることができる。例えば、コントローラ390は、以前に清掃されたエリアの位置又は境界を識別し、そのエリアにロボットが戻ることを禁止する為に、占有グリッド420を更新することができる。(例えば、ドック入れを行わない)清掃動作中、コントローラ390は、ロボット400が清掃動作中にそれらのセルを再度清掃することを禁止する為に占有グリッド420中の清掃された全てのセルをマークすることができる。いくつかの例では、コントローラ390は、部屋412の周囲を構成する周辺セルを、占有グリッド42内において横断不可とマークすることができる。いくつかの場合には、コントローラ390は、ロボット400が既に清掃した領域にロボットが戻ることをやめさせる為に、領域430aの横断可のセルを取り囲むセルを、横断不可であるとしてマークすることができる。他の場合には、コントローラ390は、領域430a内の全てのセルを横断不可であるとして示すことができる。
【0054】
図5Cを参照すると、フローチャート460は、ロボットが第1のエリア及び第2のエリアを清掃する為の方法を図示している。動作462において、ロボットは、第1のエリア内で第1の清掃動作を実行する。ロボットは、ロボットのコントローラによって発行される命令に応答して第1の清掃動作を実行することができる。ロボットは、第1のエリアをカバーする為のコーンロー型のパターン又は他のパターンに追従することを含み得る、本明細書に記載されるカバレッジ挙動を実行することができる。ロボットがカバレッジ挙動を実行する際に、コントローラは、ロボットが横断した第1のエリアの部分に対応する、ロボット(例えば、コントローラにより操作することのできるメモリ記憶素子)に保存された占有グリッド内のセルを横断可であるとしてマークすることができる。清掃動作は、ロボット100のような乾式清掃ロボット、ロボット200のような湿式清掃ロボット、或いは環境上を移動するよう構成された他の移動式ロボットによって実行されても良い。
【0055】
動作464において、ロボットは、コントローラ経由で、第1の清掃動作が完了したと判定する。コントローラは、本明細書に記載される1以上の条件に基づいて完了を判定することができる。
【0056】
動作466において、ロボットは第2のエリアを移動する。いくつかの例において、ロボットは、第2のエリアを識別する為に第1のエリアの周囲を横断することができる。他の例において、第1のエリアは、(例えば、最大幅となるよう)人為的に境界を限られても良く、第2のエリアは第1のエリアに隣接したものとすることができる。コントローラは、ロボットが移動を実行するように命令することができる。概して、コントローラは、ロボットが既に清掃を行ったエリアを出て、まだ清掃を行っていないエリアに入ったと判定しようと動作することができる。コントローラは、ロボットが第1のエリアの清掃動作を完了した後で、周囲を横断するように命令することができる。コントローラは、ロボットが1以上の条件を満たすことを検出することに基づいて、清掃動作が完了したと判定することができる。いくつかの場合には、ロボットは、ロボットが第1の部屋の面積の、例えば、50%~75%、75%~100%、100%~150%、150%~200%、250%~300%の割合をカバーするまで、清掃動作を継続しても良い。所望の割合を完了すると、コントローラは、ロボットに仮想バリヤを横断するように命令し、第2の部屋内での第2の清掃動作を開始しても良い。
【0057】
いくつかの実施において、ロボットは、ロボットがある下限の充電割合、例えば10%、5%、又はそれ未満に到達するまで清掃動作を継続しても良い。下限の充電割合に達すると、コントローラは、ロボットのバッテリを再充電する為に充電ドック又は充電ステーションに戻るように、ロボットに命令することができる。いくつかの実施において、ロボットは、充電ドックに戻る為に、占有グリッド内に保存された仮想バリヤを横断することができても良い。
【0058】
いくつかの場合には、第1のエリアは部屋であり、したがって、第1のエリアの周囲は部屋の壁である。他の実施において、第1のエリアは(本明細書に記載されるように)領域であり、第1の領域の周囲は、第1の領域の広がりの縁に対応するであろう。
図5Aから
図5Bを参照して記載したように、ロボット400が壁追従挙動を実行するとき、コントローラ390は、例えば、(i)ロボット400が第1の領域430aを出たことを検出することによって、又は(ii)ロボット400が横断可のセルから未知のセルに移動したことを検出することによって、第1の部屋412又は第1の領域430aの周囲を横断したと判定することができる。ロボットは、コントローラからの命令に応答して第1のエリアの周囲を横断することができる。
【0059】
動作468において、コントローラは、例えば、第1のエリアと第2のエリアを分離する仮想バリヤを設けることができる。コントローラは、コントローラが操作することのできるメモリ記憶素子上に保存された占有グリッド上に仮想バリヤを表示することができる。例えば、いくつかの実施において、コントローラは、第1のエリアにおける横断可のセル(例えば、横断可のセルの行又は列、セルの行又は列を形成する2以上の横断可のセル)に隣接する未知のセルが横断不可(例えば、横断不可のセルが仮想バリヤを定義する)であることを、占有グリッド上で示す表示することができる。結果として、横断不可のセルは、横断不可のセルの行又は列を形成することができる。占有グリッドに依存しない境界を定義する他の方法を用いることもできる。いくつかの場合には、コントローラは、未知のセルに隣接する第1のエリアの横断可のセルが、現在、横断不可であることを表示することができる。
【0060】
動作470において、ロボットは、仮想バリヤを横断することなく、第2のエリアを清掃する為に第2の清掃動作を実行する。例えば、ロボットは、第1のエリアの周囲をマーキングする仮想バリヤを横断することなしに、第2のエリアを清掃する。コントローラは、ロボットに第2の清掃動作を実行する為の命令を発行することができる。第2の清掃動作は、カバレッジ動作の実行であり得る。ロボット自身が第1の領域に入ることを防止する為に、コントローラは、ロボットが、動作468で設けられた仮想バリヤを横断することを防止することができる。
【0061】
いくつかの例では、ユーザは、ロボットの為の仮想境界を設定することを望むであろう。例えば、ユーザは、ロボットが特定の部屋又はエリアから出ないことを望むであろう。ユーザに仮想境界の位置を設けることを可能とすることは、ロボットが清掃を行う場所についての追加の制御をユーザに与えるという有利さを提供する。いくつかの実施において、コントローラは、ロボットの移動を環境内のエリアに制限する為の命令をユーザから受信することができる。ユーザは、ロボット上でセンサを作動させること(例えば、1以上のボタンを押すこと)によって命令を伝達する。いくつかの場合には、ユーザは、仮想バリヤの位置を設ける為に無線接続を用いてコントローラに命令を送る為に、スマートフォン、タブレット又は他のコンピュータデバイスといった移動式デバイスを用いることができる。ユーザは、ロボットが出入口を通して部屋から出ないようにすることができ、したがって、ロボットが出入口を通して出て行くことを防止する、出入口に配置された仮想バリヤを生成するように、コントローラに命令することができる。いくつかの実施において、ユーザは、ロボットユーザインタフェースを介してロボットの動きを制限する情報を入力する。
【0062】
図6A~
図6Cに図示された例では、ユーザは、ロボット200が環境502の床面10を清掃する為の清掃動作を実行する前に、環境502内にロボット(例えば、
図3A~3Bを参照して説明したロボット200)を置く。ロボット200のコントローラは、環境502に対応する占有グリッド518を生成する。この例では、ユーザは、第1の清掃動作中に第1の部屋504を清掃し、第2の清掃動作中に第2の部屋506を清掃することを望むこともできる。ユーザは、一つの清掃動作において、ロボット200に、環境502内の第2の部屋506を清掃することなしに第1の部屋504を清掃させても良い。
【0063】
図6Aを参照すると、部分521に示されるように、ユーザは、ロボット200の本体202の後側202Aが環境502における壁512及び出入口517に平行になるように、ロボット200を環境502内に位置づける。ユーザは、次に、部分523に示されるように、占有グリッド518内に仮想バリヤ516を生成するようにコントローラ390に命令する。いくつかの例において、仮想バリヤ516は、占有グリッド518において、環境502内のロボット200の初期位置及び方向に基礎をおく横断不可のセルのライン(例えば、行又は列)として現れる。仮想バリヤ516は、ロボット200の後側202Aに平行であり得る。
【0064】
いくつかの例では、仮想バリヤ516は、ロボット200の後ろ側202Aを通過する。他の場合には、仮想バリヤ516はロボット本体と交わる(例えば、仮想バリヤは、ライト242a及び242bを通過し、ユーザがライトを仮想バリヤの位置と一直線に合わせることを可能にする)。したがって、ライト242a及び242bは、仮想バリヤ516の位置の視認できる標識となる。仮想バリヤ516は、ロボット200が第1の部屋504から環境502の部屋506へと出入口517を通過することを防ぐことができる。いくつかの実施において、ロボット200が出入口5176を通過することを防ぐ仮想バリヤ516をコントローラが生成するように、ロボットが出入口517に配置される。
【0065】
ユーザが仮想バリヤ516を生成するようにコントローラに命令することを完了した後、ユーザは、ロボットを再度配置することなく、部屋504内の清掃動作を開始することができる。ここで
図6Bを参照すると、ロボット200が清掃動作を開始するとき、ロボット200は、(例えば、
図6Bの部分523に示されるように)ロボット200の前方駆動方向Fが仮想バリヤ516と平行になるように90度回転することができる。90度の回転は、カバレッジ挙動においてロボット200が仮想バリヤ516に隣接するコーンロー型のパターンの第1の行を実行することを確実にする。いくつかの場合には、ドリフトによる、コーンロー型のパターンの第1の行への影響は最小限である。よって、ロボット200は仮想バリヤを横断することはなさそうであるから、ロボット200に仮想バリヤ516に平行な第1の行を実行させることは有利である。また、90度の回転は、コーンロー型パターンにおいて仮想バリヤ516で180度の回転が生じることを防ぐことができる。ロボット200が回転した後、ロボット200は、次に、カバレッジ挙動(例えば、コーンロー型パターン)を実行する。いくつかの場合には、ロボット200は、前方駆動方向に短い距離(例えば、2~5cm、5~10cm、10~15cm)移動し、次に、ロボット200の横側が仮想バリヤ516と平行となるように90度回転しても良い。例えば、ロボットは、視認できる標識(例えば、ライト242a、242b)とロボット200の後方側との間の距離だけ前方に移動しても良い。
【0066】
ユーザは、多数の方法及びメカニズムを通じて、ロボット200に命令を提供することができる。コントローラは、ロボットを、コントローラが占有グリッドに仮想バリヤを配置させるよう準備するハンドシェイク又は仮想バリヤモードに位置付けるトリガに応答することができる。ロボット200が、ハンドシェイクモードにあるとき、コントローラは仮想バリヤ516を配置する。トリガは、例えば、(例えば、本明細書に記載されるように適切なセンサを用いて地面を検知することによって決定されるように)ロボットが地面上に又はそれから離れている間に、ユーザがロボット200のバンパ210の圧迫とロボット200の清掃ボタン240の押下を同時に行うことである。ユーザは、トリガを切り換え、ハンドシェイクモードを開始する為に、他のやり方でロボット200を操作しても良い。たとえば、ユーザは、ロボット200を振ることによって、ロボット200の加速度センサ又はジャイロスコープを起動させても良く、振れが検出されると、ロボット200は仮想バリヤの一つ又は両方を置く為にハンドシェイクモードに入る。いくつかの場合には、ユーザは、移動式デバイスを用いてロボット200に命令しても良い。ユーザは、ロボット200を環境内に位置付け、移動式デバイスに読み込まれたアプリケーションを用いることにより、ロボット200に命令を行っても良い。いくつかの実施においては、ロボットをハンドシェイクモードに位置付けると、コントローラは、仮想バリヤを生成する為にユーザからの更なる命令を待つ。ロボットにハンドシェイクモードに入るように命令した後、ユーザは、仮想バリヤ516を占有グリッド内に配置するように他の命令を発行することができる。
【0067】
いくつかの実施において、コントローラは、第1の仮想バリヤ516に対して、垂直であるか又はそうでなければ角度をつけた第2の仮想バリヤを生成することもできる。第2の仮想バリヤは、清掃が困難なエリア又は壊れやすい家具や家庭のアイテムがあるエリアであろう領域に対しロボットを制限することができる。第2の仮想バリヤは、占有グリッド518内の横断不可セルの仮想バリヤであっても良い。仮想バリヤは、ロボット200の初期位置及び/又は方向に基づいて生成することができる。いくつかの例では、第1及び第2の仮想バリヤは、L字型の横断不可セルを形成することができる。いくつかの場合には、第2の仮想バリヤは、ロボット本体202の右側202R又は左側202Lと一致しても良い。他の例では、コントローラは、第2の仮想バリヤがライト242a及び242bを通過するように、第2の仮想バリヤを生成しても良い。コントローラは、第1の仮想バリヤを生成する為の命令に応答して第2の仮想バリヤを生成しても良い。他の実施において、コントローラは、ユーザからの仮想バリヤを生成する為の第2の命令に応答して第2の仮想バリヤを生成する。いくつかの場合には、コントローラは、ユーザが最初に又は2回目にロボットをハンドシェイクモードに位置付けるときに、第2の仮想バリヤを配置する。コントローラが2つの仮想バリヤを生成する場合には、ロボット200は、仮想バリヤ516と平行になるように方向転換することなしに、清掃動作を開始しても良い。いくつかの場合には、ロボット200は、ロボット200が生成された仮想バリヤと平行になるように方向転換することによって、清掃動作を開始しても良い。
【0068】
図6Cを参照すると、フローチャート560は、ロボットがユーザからの命令に基づいて仮想バリヤを生成する為の方法が図示されている。このフローチャートは、ユーザによって実行される動作に対応するユーザ動作565と、ロボットによって実行される動作に対応するロボット動作570とを含んでいる。
【0069】
動作572において、ユーザは、ロボットを環境の範囲内に位置付ける。ロボットの位置は、ロボットの開始位置及び仮想バリヤの位置の両方としての役割を果たすであろう。このように、ユーザは、ロボットの特徴が、ロボットが横切って欲しくないとユーザが望む環境内の縁端(それにまたがって仮想バリヤが設けられる)と一直線に合う(例えば、平行となる)ように、ロボットを位置付けることができる。例えば、本明細書に記載されるように、特徴は、ロボット上のライト又はロボット本体の表面であり得る。いくつかの場合には、ユーザは、ロボットが環境内で二つの縁端を横切らないように2つの(例えば、直交する)仮想バリヤを生成することを望むことができ、このような場合、ロボットは、それぞれが仮想バリヤの位置及び方向を示す2つの特徴を有することができる。
【0070】
動作574において、ユーザは、ロボットが仮想バリヤモードに入るように命令することができる。ユーザは、ロボットがハンドシェイクモードに入ることを引き起こす、本明細書に記載されるいずれかの方法、又は他の適切な方法を用いてこの命令を発行することができる。動作576において、ロボットのコントローラは、命令を受け、ロボットを仮想バリヤモードに位置付ける。
【0071】
動作578において、ユーザは、ロボットに仮想バリヤを生成するように命令する。仮想バリヤを生成する為の命令は、ロボットを仮想バリヤモードに位置付ける為の(例えば、ロボットをハンドシェイクモードに位置づける為の)命令であり得る。いくつかの場合には、ユーザは、ロボットを仮想バリヤモードに位置付ける為の命令のほかに、仮想バリヤを生成する為の引き続いての命令を発行しても良い。例えば、ユーザは、更なるセンサに、仮想バリヤを生成する為の命令を送信させても良い。
【0072】
動作580において、コントローラは、仮想バリヤを生成する為の命令を受信する。コントローラは、センサが本明細書に記載されるやり方で作動したことを検出することによって命令を受信しても良い。いくつかの場合には、ロボットは、コントローラがユーザから命令を受信する為に移動式デバイスと通信することを可能にする無線トランシーバを備えていても良い。
【0073】
動作582において、コントローラは、仮想バリヤを生成する。例えば、コントローラは、仮想グリッド内のセルを仮想バリヤの一部であるとして定義することができる。例えば、仮想バリヤは、横断不可として指定されている1以上のセルに対応し得る。いくつかの実施において、仮想バリヤは、占有グリッド内のセルと関連して定義されなくても良い。代わりに、仮想バリヤは、占有グリッド上の座標、又は占有グリッドという側面の範囲内又は範囲外の他のいくつかの特徴に基づいて定義されても良い。例えば、仮想バリヤは、ロボットの初期方向及び位置に基づいて定義される。これらの方向の測定値は、例えば、ロボットの本体の範囲内に収容されたジャイロスコープから出力された信号に基づいて取得されても良い。コントローラは、ハンドシェイクに続いてすぐに、占有グリッド内でのロボットの又はその一部の初期位置を知ることができる。この情報、特に方向及び位置、を用いて、コントローラは、ロボットが越えることのできない占有グリッド(又はいずれかの場所)上の境界(例えば、直線)を定義することによって仮想バリヤを生成しても良い。いくつかの場合には、コントローラは、本明細書に記載されるように、2以上の仮想バリヤを生成しても良い。いくつかの例では、ユーザは、ロボット上でダイレクトに又は遠隔のインタフェースを経由して、コントローラに適切なパラメータを提供することによって仮想バリヤの長さを選択することができる。例えば、ユーザは、ロボットがドアを通過することを禁止する為にフィート(0.9~1.6メートル)のバリヤ長さを選択することができる。いくつかの例では、ユーザは、空きのスペースを更に分割する為に完全な長さのセルのバリヤを行列の状態に位置付けるようにロボットに命令することができる。他の場合には、ユーザは、ロボットが越えるべきではない4つの仮想バリヤを形成する、ロボットを取り囲む四角い領域を選択することができる。
【0074】
動作584において、コントローラは、仮想バリヤの生成の視認できる標識を提供しても良い。例えば、コントローラは、ロボット上のライトに、聞き取れる警告を発行するように命令することができる、
【0075】
動作586において、ユーザは、ロボットに環境を清掃するように命ずる。ユーザは、ロボットの清掃ボタンを押下することによって、又は、ロボットを遠隔制御する為に移動式デバイスを用いることによって、ロボットに清掃を行うように命令することができる。仮想バリヤは、ユーザの移動式デバイス上に表示されたマップに表示され得る。
【0076】
動作588において、コントローラは、仮想バリヤを横断することなく環境を清掃する為の命令を受信する。ロボットは、環境の床面をカバーする為のコーンロー型挙動又は他の移動パターンを実行することによって環境を清掃する為の命令を実行することができる。コントローラは、ロボットの前方駆動方向が仮想バリヤと平行になるように、ロボットに方向転換するように命令しても良い。いくつかの実施において、コントローラは、ロボットを仮想バリヤに平行になるよう方向づける為に、ロボットに実質的に90度回転するように命令する。
【0077】
図6A~
図6Cに図示された例は、
図3A~
図3Bに記載されたロボット200を使用すると記載されてきたけれども、他の構成を有するロボット100及び他の移動式ロボットが、本明細書に記載される方法を容易に実施することができる。
図6A~
図6Cの方法を実施する為に用いられるロボットは、ユーザが仮想バリヤの配置の参照として用いることができる、他の特色のある表面又は特徴を有することができる。ロボット200は四角いロボットであるとして記載されてきたけれども、いくつかの場合には、本明細書に記載された方法を実施するロボットは、円形又は三角形のロボットであっても良い。その結果、生成された仮想バリヤは、ロボットの背後の表面に接しても良い。ロボットは、ユーザがコントローラに仮想バイヤを生成するように命令する為に作動させることができる追加の又は代替のセンサを有することもできる。
【0078】
仮想バリヤを生成する為の本明細書に記載される方法は、ロボットが清掃動作を開始する前に生じ得る。いくつかの実施において、ロボットは、ロボットが仮想バリヤを生成し、又は、追加の仮想バリヤが清掃中に生成される前に、清掃動作を開始し、環境を移動する。例えば、ロボットは、環境内に配置された特徴、マーカ、又は他の視認できる印を検出することができ、占有グリッドに仮想バリヤを位置させることによって、又はロボットが越えることのできない1以上の仮想バリヤを定義することによって、特徴に応答する。このような標識の例は、機械で識別することができ、環境内に位置付けることができるステッカー又はタグであり得る。
【0079】
上述したように、ロボット100は、環境の壁面を画像化するためのカメラ109を備える。一例として
図7Aを参照すると、ロボット100は、(例えば、部分621に示されるように)清掃動作の一部として環境602の床面10上でカバレッジ挙動を実行している。コーンロー型パターンを実行することで、ロボット100は、経路604に追従し、(例えば、部分623に示されるように)占有グリッド606内のセルを横断可又は横断不可として指定する。環境602は、第1の部屋607及び第2の部屋608を有する。ロボット100は、第1の部屋607を清掃する為の清掃動作を実行している。経路604に沿って、ロボット100は、カメラ109を用いて環境602の壁面609を感知する(例えば、壁面609の画像を撮像する)。
【0080】
経路604上の地点604aにおいて、ロボット100は、壁面609に配置されたマーカ610a、610bを検出する。ユーザは、ロボット100が、環境の、ある領域に入ることを制限する為に、壁面609上にマーカ610a、610bを配置しても良い。例えば、マーカ610a、610bは、ロボット100が横断可のエリアは、ロボット100の占有グリッド606内では横断不可としてマークされるべきであると示しても良い。マーカ610a、610bは、例えば接着剤又は静的な支持体を介して、壁面609に固定され得る。マーカ610a、610bは、環境602の表面にカップを固定する為の吸引力を生成することができる吸引カップを備えていても良い。いくつかの実施において、マーカ610a、610bは、通常の状態でヒトが感知できるものではない、ロボット100の赤外線トランシーバによって検出することができる赤外線ドット又はインクを含む。
【0081】
図7A~
図7Bに示された例において、特徴は、第1の部屋607を第2の部屋608に接続する出入口611である。ユーザは、ロボット100が壁面609に向けて上方に傾けられたカメラ609を用いてマーカ610a、610bを検出することができるように、マーカ610a、610bを壁面609の床面の上の約1m~2mに配置する。いくつかの例では、マーカ610a、610bは、出入口の上方に又は出入口の内部にあっても良い。例えば、ユーザは、上方に傾けられたカメラ109がマーカ610a、610bを検出することができるように、出入口の上方にあって床面に向かって下方に向いた水平面上に、マーカ610a、610bを配置しても良い。出入口611隣接したマーカ610a、610bの配置は、仮想バリヤの位置を設定し、ロボット100が第1の部屋のみを清掃し、第2の部屋608には入らないことを確実にする。
【0082】
ここで
図7Bも参照すると、経路604の地点604aにおいて、ロボット100は、カメラ109を用いて壁面609上のマーカ610a、610bを検出する。マーカ610a、610bは、カメラ109で検出することができる、特色のある特徴又は機械で読み取ることができる情報を含む。したがって、いくつかのマーカ610a、610bは、仮想バリヤの位置を示すことができ、他方、他のマーカは、他のタイプの情報をロボット100に中継する為に用いることができる。機械で読み取ることができる情報又は特徴は、環境内の構造物又は障害物に対応する位置の名前を表すことができる。いくつかの場合には、特徴又は機械で読み取ることができる情報は、色、画像、又はカメラ109で検出することができる他の情報である。いくつかの実施において、カメラ109は、可視光帯域の外側の放射に応答できても良く、したがって、例えば、マーカ610a、610bの赤外線特性を検出することができるようになっていても良い。カメラ109は、マーカ610a、610bを検出する為のセンサであるとして記載されてきたけれども、いくつかの実施において、ロボット100は、超音波、赤外線、及び他の方位ビームセンサのような、マーカ610a、610bを検出する為の他のセンサを用いても良い。
【0083】
特色のある特徴は、環境602の属性及び/又は壁面609を示すものであっても良い。これらの特徴は、仮想バリヤを設定すること加えて、又はその代替として、識別の目的のための用いられても良い。メモリ記憶素子395は、コントローラ390が画像化されたマーカ610a、610bと比較することのできる参照の特徴のライブラリを含むことができる。次に、コントローラ309は、マーカ610a、610bが、参照の特徴のライブラリ内にある特徴を含むか否かを判定することができる。
【0084】
いくつかの例では、マーカ610a、610bの特徴は、ロボット100が移動する環境602は、キッチン、浴室、居間等の特別な部屋であることを示しても良い。例えば、マーカ610a、610bは、第1の部屋607がキッチンであることを示す冷蔵庫のアイコンと第2の部屋が居間であることを示すテレビのアイコンを含んでいても良い。いくつかの場合には、マーカ610a、610bは、マーカ610a、610bの間に有る構造物のタイプを示しても良い。例えば、いくつかの場合には、マーカ610a、610bは、マーカ610a、610b間に出入口611があることを示しても良い。他の場合には、マーカ610a、610bは、ロボットが清掃が難しいエリア又は壊れやすい家具や家庭のアイテムがあるエリアに入らないように、環境602内に配置されても良い。マーカ610a、610bは、カメラ109で画像化可能な、ランプ、家具、又は他の家庭内の物の上に配置されても良い。例えば、一つのタイプのマーカは、マーカから所定の距離(例えば、0.25m~0.5m、0.5m~1m、1m~1.5m)の立ち入り禁止区域を設けることができる。マーカ610a、610bは、特定の属性についての特定の色、又は特別な部屋についての特別な画像を有することができる。いくつかの実施において、マーカ610a、610bは、マーカ610a、610bの特色のある特徴としての役割を果たす特色のある画像を含んでいても良い。
【0085】
特色のある特徴は、マーカ610a、610bがしるす部屋の名前、マーカ610a、610bがしるす障害物の名前、又はマーカ610a、610bがしるす位置の名前であっても良い。例えば、ロボット100が以前の清掃動作から生成されたマップを有する実施においては、マーカ610a、610bは、ロボット100がキッチンにいることを示し、また、次に、ロボット100は、以前に生成されたキッチンに対応するマップを使用しても良い。いくつかの場合には、ロボット100は、マーカ610a、610bを検出するまで、清掃動作を行わなくて良い。ロボット100がマーカ610a、610bを検出すると、ロボット100は、マーカ610a、610bからの情報に基づいて清掃動作を開始することができる。特色のある特徴によって提供される情報は、ユーザが情報を理解して、この情報に基づいてロボット100の動作を選択することができるように、移動式デバイスに送信されても良い。
【0086】
コントローラは、マーカ610a、610bを識別する前に、生成されたマーカ610a、610bの画像を後処理することができる。例えば、コントローラは、アフィン変換又は画像修正の為の他のいくつかのコンピュータ視覚処理を用いることによって画像を修正しても良い。マーカ610a、610bの画像の変換を行った後、コントローラは、コントローラがマーカ610a、610bを検出したことを確認する為に、画像を、保存された参照画像、例えば、ロボット100のメモリ記憶素子395上の参照画像のライブラリと比較することができる。比較は、コントローラ390が、マーカ610a、610bにより提供された情報のタイプ(例えば、環境602及び壁面609の属性)を決定することを可能にすることもできる。いくつかの実施において、マーカ610a、610bは、それぞれ、異なるタイプの情報を伝える複数の部分を有することができる。マーカ610a、610bのそれぞれの一つの部分は、ロボット100が現在入っている第1の部屋607のタイプを示し、マーカ610a、610bの他の部分は、出入口611に接続された第2の部屋608のタイプを示すことができる。
【0087】
マーカ610a、610bが仮想バリヤを設定する為に用いられる例において、マーカ610a、610bが検出され、ロボットがマーカ610a、610bを検出したことが確認されると、ロボット100は、マーカ610a、610bの位置に基づいて占有グリッド612(例えば、横断不可のセルのセット)を指定することができる。例えば、コントローラは、マーカ610aとマーカ610bの両方を通過するライン614を計算することができる。ライン614は、コントローラが占有グリッド606内で指定することができる仮想バリヤ612に平行である。占有グリッド606内の仮想バリヤ612は、マーカ610a、610bの間にあると示されているけれども、いくつかの実施において、マーカ610a、610bを検知することにより生成される仮想バリヤ612は、マーカ610a、610bを接続するライン614よりも大きな長さに広がっていても良い。
【0088】
マーカ610a、610bは、ロボット100に、出入口611がマーカ610a、610b間に存在することを示すことができる。このような場合には、第1の部屋607の清掃動作が終了したときに、ロボット100は、続く清掃動作において仮想バリヤ612に移動し、第2の部屋608を清掃する為に、続く清掃動作を開始する。仮想バリヤ612は、存在し続けても良いが、仮想バリヤ612の右側の第1の部屋607を清掃する代わりに、ロボット100は、第2の部屋608を清掃する。
【0089】
ロボット100は、1以上の条件が満たされるまで、仮想バリヤ612の境界及び物理的な壁面609の範囲内で第1の部屋607を清掃し続けることができる。1以上の条件は、例えば、規定された面積の、ある割合をカバーすること及び/又は本明細書に記載される他の条件である。
【0090】
いくつかの実施において、ロボット100は、続く清掃動作において(例えば、持続性の占有グリッド内において)仮想バリヤ612を覚えておいても良い。ユーザは、ロボット100がマーカ610a、610bを検出した場合、第1の清掃動作の後にマーカ610a、610bを取り外しても良く、仮想バリヤ612は、第1の清掃動作の一部として存在し続ける。ロボット100は、例えば、仮想バリヤ612を保存し、続く清掃動作の為にそれを使用する。第1の部屋607において続く清掃動作を開始すると、ロボット100は、第1の部屋607に留まり、出入口611を通って第2の部屋608に進むことはない。
【0091】
図7Cを参照すると、フローチャート660は、ロボット内に保存された占有グリッド内の仮想バリヤを生成するようにロボットに命令する為に、環境内のマーカを用いる方法を図示している。フローチャート660は、ユーザによって実行される動作に対応するユーザ動作665と、ロボットによって実行される動作に対応するロボット動作670とを含む。
【0092】
動作672において、ユーザは、環境内にマーカを配置する。ユーザは、出入口、敷居、又は他の開口部などのユーザが横断を望まない環境内の特定の特徴の側面にマーカが置かれるように、マーカを配置することができる。マーカは、部屋のアイテムを識別する為に環境内の表面に置くことができる。表面は、壁、障害物、又は環境内の他の物の表面であっても良い。
【0093】
動作674において、ユーザは、ロボットに第1の清掃動作を開始するように命令する。ユーザは、移動式デバイスを用いても良く、又は、ロボットに第1の清掃動作を開始するように命令する為にロボット上のボタンを押下しても良い。
【0094】
動作676において、ロボットのコントローラは、第1の清掃動作を開始する為の命令を受信する。動作678において、ロボットは、第1の清掃動作を実行する。いくつかの場合には、コントローラは、例えば、ロボットに清掃動作を開始するように命令することによって、第1の清掃動作を開始する。清掃動作中、ロボットは、本明細書に記載されるようなコーンロー型パターン、又は環境内の床面をカバーする為の他のいくつかのパターンを実行しても良い。
【0095】
動作680において、ロボットは、環境内のマーカを検出する。コントローラは、カメラ、超音波センサ、又はマーカを検出する為のロボット上の他のいくつかのセンサを用いることができる。本明細書に記載されるように、いくつかの場合には、カメラは、マーカの色、画像、又は他の特色のある特徴を検出しても良い。コントローラは、マーカの検出に応じてカメラから画像データを受信することができる。
【0096】
動作682において、コントローラは、検出されたマーカが仮想バリヤマーカであるか否かを判定する。コントローラは、検出されたマーカの画像データを後処理し、画像データが、コントローラがマーカの検出から予測することができる参照画像に対応するか否かの判定を行うことができる。コントローラは、画像データを、コントローラが操作することのできるメモリ記憶素子上に保存されたライブラリ内の参照画像と比較しても良い。コントローラは、検出されたマーカが仮想バリヤ、位置、又は環境についての他の情報を示すか否かを判定することができる。
【0097】
コントローラが、検出されたマーカが仮想バリヤマーカであると決定すると、動作684において、コントローラは、例えば検出されたマーカの位置に対応する占有グリッド内に仮想バリヤを生成する。本明細書に記載されるように、仮想バリヤは、占有グリッド上でマークされるべき横断不可のセルのセットに対応し得る。いくつかの場合には、横断不可のセルの長さ又は幅は、マーカ上で検出された特色のある特徴に依存しても良い。コントローラが検出されたマーカが仮想バリヤマーカではないと判定すると、動作686において、コントローラは、検出されたマーカに関連するデータを占有グリッド内に保存する。データは、例えば、部屋の名称、検出されたマーカの位置の名称である。いくつかの実施において、コントローラは、コントローラが検出されたマーカを識別し誤ったと判定し、検出されたマーカが環境についての情報を示していないと判定しても良い。いくつかの例において、コントローラは、検出されたマーカが仮想バリヤと、部屋の名称又は検出されたマーカの位置に関連するデータの両方を示すと決定しても良い。
【0098】
動作688において、コントローラは、第1の清掃動作が完了したか否かを判定する。コントローラは、ロボットが、本明細書に記載される1以上の条件を満たすか否かを評価することができる。コントローラが第1の清掃動作が完了したと判定すると、動作690において、ロボットは、第1の清掃動作を完了する。コントローラが、第1の清掃動作が完了していないと判定すると、動作692において、ロボットは第1の清掃動作を継続する。コントローラは、ロボットに第1の清掃動作を継続するように命令することができる。ロボットは、次に、環境内のマーカを検出し続けることができ、いくつかの場合には、ロボットは、第1の清掃動作を継続し、次に、追加のマーカを検出することなしに第1の清掃動作を完了し、動作690に進む。
【0099】
いくつかの実施において、コントローラは、続く清掃動作において用いられる仮想バリヤを保存しても良い。その結果として、動作694において、ユーザは、環境からマーカを取り除いても良い。いくつかの実施において、ユーザは、環境内にマーカを維持しても良く、ロボットのカメラによる引き続いてのマーカの検出は、カメラがマーカを検出したという信頼を向上させることができる。
【0100】
動作696において、ユーザは、ロボットに第2の清掃動作を開始するように命令することができる。いくつかの場合には、ユーザは、ロボットが第1の清掃動作中に清掃した、環境内で第2の清掃動作を開始するようにロボットに命令する。他の場合には、ユーザは、他の環境内で清掃動作を開始するようにロボットに命令する。動作698において、コントローラは、第1の清掃動作中に生成された占有グリッドを用いて第2の清掃動作を開始する為の命令を受信する。コントローラは、次に、ロボットに第2の清掃動作を開始するように命令する。ロボットが動作678及び動作692において清掃された環境内で第2の清掃動作を開始すると、ロボットは、同じエリアを清掃し、仮想バリヤを越えることはない。ロボットが他の環境内で第2の清掃動作を開始すると、ロボットは、第1の清掃動作中に清掃したエリアとは異なるエリアを清掃することができ、仮想バリヤは、ロボットが動作678及び動作692において清掃したエリアに戻ることを有効に防止する。
【0101】
図7A~
図7Cに図示された例は
図2A~
図2Bに記載されたロボット100に関して記載されてきたけれども、他の適切な構成を有する他の移動式ロボットが本明細書に記載される構成を有することもできる。例えば、ロボット200は、本明細書に記載される機能を実行することができる。いくつかの実施において、カメラ109は、コントローラが出入口の幾何学的特徴の特性を識別する為に用いる画像を撮像することができる(例えば、床から壁の部分に延びる四角い開口)。コントローラは、次に、カメラ109で検出した出入口構造の位置に対応する仮想バリヤを配置することができる。
【0102】
本明細書に記載されるように、ロボット100は、環境に放射される赤外線照射を検出する為の赤外線トランシーバ118を備える。
図8Aを参照すると、ゲートウェイビーコン701が、(例えば、
図8Aの部分721に示されるように)第1の部屋704と第2の部屋706を含む環境702の床面10に配置されている。出入口707は、第1の部屋704を第2の部屋706から分離する。ゲートウェイ701は、赤外線トランシーバ118で検出することができる赤外線ゲートウェイビーコン708を放射する。ユーザは、ゲートウェイビーコン701を環境702に配置することができ、ゲートウェイビーム708が特定の位置を向くように、ゲートウェイビーコン701を方向付づけることができる。例えば、ゲートウェイビーム708は、出入口707の端から端までさしわたすように方向づけることができる。
【0103】
第1の部屋704を清掃する間、ロボット100は、経路709の形状でコーンロー型パターンを実行しても良い。ロボット100が経路709に沿って第1の部屋704を移動する際、ロボット100は、ゲートウェイビーム708を通り過ぎるときに、例えば赤外線トランシーバ118を用いてゲートウェイビーム708を検出することができる。ロボット100は、ゲートウェイビーム708を検出し、ロボット100が、ロボット100の(例えば、
図8Aの部分723に図示される)占有グリッド712内でゲートウェイビーコン708を仮想バリヤ710(例えば、横断不可のセルのセット)として検出した場所を解釈することができる。
図8Aは、経路709がゲートウェイ708の近くを通過すると図示しているけれども、他の実施において、経路709は、ゲートウェイビーム708を通過しても良い。このように、ゲートウェイビーコン701及びそのゲートウェイビーム708は、ロボット100が出入口707を通過することを防止する。
【0104】
図8Bを参照すると、続く清掃動作において、ロボット100は、(例えば、
図8Bの部分723に記載されるように)仮想バリヤ710の位置を、例えば、メモリ又は遠隔のコンピュータデバイス中に、持続性マップの一部として保存することができる。その結果、
図8Aにおいて環境に配置されるゲートウェイビーコンが続く清掃動作の為に環境から取り除かれるときに、ロボット100は、自身が仮想バリヤ710を越えることをなおも防止することができる。いくつかの場合には、ロボット100は第1の部屋704に配置され、第2の部屋706内仮想バリヤ710を越えることなしに、第1の部屋704を再度清掃することができる。他の場合には、ロボット100は、第2の部屋706内に配置することができ、第1の部屋を再び清掃することなしに第2の部屋706を清掃することができる。
【0105】
図8Cを参照すると、フローチャート760は、ロボット上に保存された占有グリッド内において仮想バリヤを生成するようにロボットに命令する為に、環境においてゲートウェイビーコンを使用する方法を図示している。フローチャート760は、ユーザによって実行される動作に対応するユーザ動作765と、ロボットによって実行される動作に対応するロボット動作770とを含む。
【0106】
動作722において、ユーザは、環境内にゲートウェイビーコンを配置する。ユーザは、ゲートウェイビームが特定の特徴、又は、出入口、敷居、又は他の開口などの、ユーザがロボットに横断して欲しくない環境内の位置をしるすように、環境内の床面上にゲートウェイビーコンを配置する。
【0107】
動作774において、ユーザは、ロボットに第1の清掃動作を開始するように命令する。ユーザは、ロボットに第1の清掃動作を開始するように命令する為に、移動式デバイスを用いるか、或いは、ロボット上のボタンを押下しても良い。
【0108】
動作776において、ロボットのコントローラは、第1の清掃動作を開始する為の命令を受信する。動作778において、コントローラは、第1の清掃動作を開始する。
【0109】
動作780において、ロボットのトランシーバは、環境内でゲートウェイビーコンを検出する。トランシーバは、赤外線レシーバであっても良い。
【0110】
動作782において、コントローラは、占有グリッド又は他の持続性のマップ内に仮想バリヤを生成する。本明細書に記載されるように、仮想バリヤは、占有グリッド上にマークされるべき横断不可のセルのラインに対応していても良い。いくつかの実施において、仮想バリヤは、占有グリッド内における線や曲線を定義する座標のセットであっても良い。いくつかの場合には、横断不可のバリヤの長さ又は幅は、ロボットが動作780においてゲートウェイビーコンを検出するときに、ロボットが感知する信号の長さに依存していても良い。
【0111】
動作784において、コントローラは、第1の清掃動作を完了する。コントローラは、ロボットが、例えば、規定された面積の、ある割合をカバーすること及び/又は本明細書に記載される他の条件を満たすことなどの、1以上の条件を満たすと決定することによって、第1の清掃動作を完了することができる。
【0112】
いくつかの実施において、ロボットは、続く清掃動作で用いられる持続性のマップ内に仮想バリヤを保存しても良い。その結果として、動作786において、ユーザは、環境内からゲートウェイビーコンを取り外しても良い。次に、動作788において、ユーザは、ロボットに、第2の清掃動作を開始するように命令することができる。いくつかの場合には、ユーザは、ロボットに、第1の清掃動作中にロボットが清掃した環境内において第2の清掃動作を開始するように命令することができる。他の場合には、ユーザは、ロボットに他の環境内で清掃動作を開始するように命令する。動作790において、ロボットは、第1の清掃動作中に生成した占有グリッドを用いて第2の清掃動作を開始する。ロボットが動作788中に清掃した環境内で第2の清掃動作を開始する場合には、ロボットは、広く同じエリアを清掃し、仮想バリヤを越えることはない。ロボットが第2の清掃動作を開始する場合、ロボットは、第1の清掃動作中に清掃されたエリアとは異なるエリアを清掃することができ、仮想バリヤは、ロボットが動作788中に清掃されたエリアに戻ることを効果的に防止する。
【0113】
図8A~
図8Cに図示された例は、
図2A~
図2Bに記載されたロボット100を用いると記載されてきたけれども、他の適切な構成を有する他のロボットが、本明細書に記載される方法を実施することができる。例えば、ロボット200は、本明細書に記載される機能を実行することができる赤外線トランシーバを備えることができる。
【0114】
ここで生成される仮想バリヤは、まっすぐな壁であると記載されてきたけれども、いくつかの実施においては、仮想バリヤは、円形で合っても良い。例えば、
図6A~
図6Cを参照して記載したハンドシェイクモードにロボットを位置付けることは、ロボットを例えば円形エリアのじゅうたん内に制限することができる実質的に円形の仮想バリヤを、コントローラに生成させる。いくつかの場合には、ユーザは、ロボットの通信システムと通信することができる移動式のコンピュータデバイスを用いて円形の仮想バリヤを生成するように、コントローラに命令することができる。いくつかの場合には、ロボットは、規定された面積の、ある割合をカバーすること及び/又は本明細書に記載される他の条件を満たすことなどの、1以上の条件を満たすことをコントローラが決定するまで、円形のエリア内で清掃動作を続行しても良い。他の例では、仮想バリヤは、円形の立ち入り禁止区域を設けることができる。
【0115】
コントローラは、環境を別々にカバーされるべき2以上の領域に分割する為に仮想バリヤを用いても良い。例えば、仮想バリヤは環境を、一つの領域が、例えば、キッチン、浴室、カーペット等に対応し、第2の領域が寝室、居間、ハードウッドフロア等に対応する2つの領域に分割しても良い。コントローラは、ロボットに、一つの清掃動作において第1の領域を清掃し、次に、続く清掃動作において第2の領域を清掃するように命令することができる。いくつかの場合には、コントローラは、ロボットに、ロボットが領域で清掃動作を複数回繰り返す、より深い清掃モードで一つの領域を清掃するように命令することができる。いくつかの実施において、ユーザは、環境内の個別の領域を、キッチン、寝室、又は浴室といった、家の中の特定の部屋としてラベルを付すことができる。本明細書に記載されるように、コントローラは、コントローラが、環境内の領域にラベルを関連付けることを可能にすることができるマーカ610a、610b内の特徴を検出することもできる。ユーザは、次に、ロボットにラベルを付された領域を清掃するよう命令する為に、移動式のコンピュータデバイスを用いることができる。ユーザは、ロボットが他のラベルを付された領域を清掃する間、ロボットをラベルを付された領域の外部にいるように命令することもできる。
【0116】
本明細書に記載される例の少なくともいくつかにおいて、仮想バリヤはロボットによって位置特定の為に用いられる占有グリッド内に保存されるけれども、仮想バリヤは、位置特定及びナビゲーションの為にロボットによって用いられる他のタイプのマップ内に保存することができる。
【0117】
システムは、例えば、少なくとも部分的には、1以上のデータ処理装置(例えば、プログラマブルプロセッサ、コンピュータ、複数のコンピュータ、及び/又はプログラマブルロジック部品)による実行の為の又はその動作を制御する為の1以上の非一時的な機械読取り可能な媒体といった、1以上の情報キャリア内に確実に組み込まれた1以上のコンピュータプログラム等の、1以上のコンピュータプログラムプロダクトを用いて制御され或いは実施される。
【0118】
コンピュータプログラムは、コンパイル或いは解釈された言語を含む、あらゆる形式のコンピュータプログラミング言語で書くことができ、スタンドアロンプログラム、又はモジュール、コンポーネント、サブルーチン、又はコンピューティング環境での使用に好適な他のユニットを含む、あらゆる形式で配置することができる。
【0119】
本明細書に記載されるコントロールメカニズムの一部又はその全てを実施することに関する動作は、本明細書に記載される機能を実施する為の1以上のコンピュータプログラムを実行する1以上のプログラマブルプロセッサによって実行され得る。本明細書に記載されるコントロールメカニズムの一部又は全てが、例えば、FPGA(Field Programmable Gate Array)及び/又はASIC(Application-specific Integration Circuit)といった特定用途の論理回路を用いて実施することができる。
【0120】
コンピュータプログラムの実行に好適なプロセッサは、例証として、汎用又は特定目的両方のマイクロプロセッサ、及びあらゆるタイプのデジタルコンピュータのあらゆる1以上のプロセッサを含む。一般には、プロセッサは、読み込み専用記憶エリア又はランダムアクセス記憶エリア又はその両方から命令及びデータを受信する。コンピュータの素子は、命令を実行する1以上のプロセッサ、又は命令及びデータを記憶する為の1以上の記憶エリアを含む。一般には、コンピュータは、データを受信し、又は送信し又はその両方の為に操作可能に取り付けられた、例えば、磁気ディスク、光磁気ディスク、又は光ディスク等のデータを記憶する為の大容量のPCBといった、1以上の機械読取り可能な記憶メディアをも備えるであろう。コンピュータプログラム命令及びデータを具体化するのに好適な機械読取り可能な記憶メディアは、例えば、EPROM、EEPROM、フラッシュ記憶エリアデバイス等の半導体記憶エリアデバイス、内蔵ハードディスク又はリムーバルディスク等の磁気ディスク、光磁気ディスク、CD-ROM、DVD-ROMを含む、あらゆる形式の不揮発性記憶エリアを含む。
【0121】
本明細書中に記載された異なる実施の要素が、詳細には上述されていない他の実施形態を構成する為に組み合わされても良い。要素は、それらの動作に不利に影響することなく、本明細書に記載された構造の外部に置かれても良い。さらに、様々な分かれた要素が、本明細書に記載される機能を実行する為に1以上の独立の要素に組み込まれても良い。