(58)【調査した分野】(Int.Cl.,DB名)
モバイルロボットが表面の前記領域の端の近くにあることを検出したことに応答して、表面の前記別の領域内でのモバイルロボットの移動の前に、モバイルロボットを仮想境界ボックス内の経路のランクへと移動させるべく駆動装置を機能させるように、制御回路が構成されている、請求項2記載のモバイルロボット。
表面の前記領域の前記所定のサイズが、一つまたは複数の固定寸法を含む静的なサイズを有し、制御回路が、表面の前記領域の中でのモバイルロボットの移動を該一つまたは複数の固定寸法以内に限定するべく駆動装置を機能させるように構成されている、請求項4記載のモバイルロボット。
表面の前記領域の前記所定のサイズが、一つまたは複数の初期寸法を有する動的なサイズを含み、制御回路が、モバイルロボットが表面を横断するに従い一つまたは複数の初期寸法を拡大させるように構成されている、請求項4記載のモバイルロボット。
表面が部屋に対応し、表面の前記領域が部屋の一つまたは複数の寸法を超えて延びる少なくとも一つの寸法を含み、制御回路が、位置確認センサによって検出された位置確認データに基づいてモバイルロボットが部屋の外にあることを検出するとともに、モバイルロボットが部屋の外にあることを検出したことに応答してモバイルロボットの方位を変えるべく駆動装置を機能させるように構成されている、請求項1記載のモバイルロボット。
制御回路が、モバイルロボットによって探索された表面の第一の領域とモバイルロボットによって探索されていない表面の第二の領域との間の辺縁を、現在姿勢から辺縁に到達するためのモバイルロボットの予想消費電力の計算に基づいて選択するように構成されている、請求項1記載のモバイルロボット。
制御回路が、表面の前記別の領域内でのモバイルロボットの移動に応答して、表面のカバーが完了したと決定するように構成されている、請求項1記載のモバイルロボット。
制御回路が、表面のカバーが完了したとの決定に応答して、モバイルロボットを充電ステーションへとナビゲートするべく駆動装置を機能させるように、および/または、監視アプリケーションへと可聴または可視無線通信を出力するべくインターフェースを機能させるように構成されている、請求項11記載のモバイルロボット。
制御回路が、表面のためのマップパラメータを含むマップを記憶するよう構成されたメモリ回路を含み、制御回路が、初期姿勢に相対的な前記所定のサイズおよび位置を有する表面の前記領域にマップの分析を限定するように構成されている、請求項1記載のモバイルロボット。
モバイルロボットの移動の前は、表面の前記領域のためのマップパラメータは空であるか未探索として印がつけられており、制御回路が、モバイルロボットが経路沿いに移動するに従って横断された位置および/または検出された障害物を含むようマップをアップデートするように構成されている、請求項13記載のモバイルロボット。
制御回路によって、表面の前記領域の前記所定のサイズを、一つまたは複数の固定寸法を有する静的なサイズとして確立するとともに、表面の前記領域の中でのモバイルロボットの移動を該一つまたは複数の固定寸法以内に限定する工程;または、
制御回路によって、表面の前記領域の前記所定のサイズを、一つまたは複数の初期寸法を有する動的なサイズとして確立するとともに、モバイルロボットが表面を横断するに従い該一つまたは複数の初期寸法を拡大させる工程
をさらに含む、請求項18記載の方法。
【発明の概要】
【0004】
概要
本出願で論じられるいくつかの態様は、参照によりその内容の全体が本明細書に組み入れられる、米国特許出願第2005/0213082号として2005年3月25日に出願された米国特許第7,720,554号に開示されているシステムおよび方法と共に使用することができる。同様に、本出願で論じられるいくつかの態様は、参照によりその内容の全体が本明細書に組み入れられる、2009年4月24日に出願された米国特許出願第12/429963号に開示されているシステムおよび方法と共に使用することができる。
【0005】
表面をナビゲートするように構成されたモバイル装置が開示され、モバイル装置は、モバイル装置を第1の位置および第1の方位を含む第1の姿勢から第2の位置および第2の方位を含む第2の姿勢まで移動させるように構成された移動機構と、表面に関するデータを表すマップを更新するように構成されたマッピングモジュールであって、マップが位置と一つまたは複数の特性を関連付け、特性が、「未探索(unexplored)」、「横断済み(traversed)」、「縁部(edge)」、および/または「占有済み(occupied)」を示すのに十分な特性を含む、マッピングモジュールと、初期位置および初期方位を含む初期姿勢を確立するように構成された初期化モジュールと、初期姿勢の少なくとも一つの成分に基づいて少なくとも部分的に定義された第1の領域をカバーするように移動機構に前記モバイル装置を移動させるように構成され、マッピングモジュールにマップを更新させるようにさらに構成された第1の領域カバーモジュールと、少なくとも一つの追加領域をそれぞれカバーするように移動機構にモバイル装置を移動させ、マッピングモジュールにマップを更新させるように構成され、第1の領域と少なくとも一つの追加領域とが重なり合っていない、第2の領域カバーモジュールと、一つまたは複数の未追跡の縁部を識別し、未追跡の縁部をそれぞれたどるように移動機構にモバイル装置を移動させ、たどられるときにマッピングモジュールに追跡済み縁部に印を付けさせ、縁部で発見される一つまたは複数の領域が発見された場合にこの領域をカバーするように移動機構にモバイル装置を移動させるように、第3の領域カバーモジュールがするように構成された縁部追跡モジュールと、を含む。
【0006】
表面をモバイル装置でナビゲートする方法も開示され、この方法は、一つまたは複数の境界を有しかつ一つまたは複数の障害物を含んでいる表面上でのモバイル装置の第1の姿勢の少なくとも一つの成分に基づいて、コンピューティング装置を使用して基準枠を定義する工程であって、第1の姿勢が第1の位置および第1の方位を含む、工程と、モバイル装置により表面の第1の領域を探索する工程であって、第1の領域が第1の姿勢の成分に少なくとも部分的に基づいて決定される、工程と、モバイル装置により、第1の領域を探索した後で表面の少なくとも一つの第1の追加領域を探索する工程と、表面に関する情報のマップをコンピュータ可読メモリ内に保持する工程であって、情報の少なくとも一部が第1の領域および追加領域を探索することによって得られる、工程と、マップの分析が、一つまたは複数の未追跡の周辺部分が存在することを示す場合に、一つまたは複数の未追跡の周辺部分を周辺追跡する工程と、周辺追跡する間に発見された未探索の第2の追加表面領域を探索する工程と、を含む。
【0007】
周辺追跡する工程は、モバイル装置を、たどられていない第1の周辺部分上の第1の位置までナビゲートすること、一つまたは複数のセンサに少なくとも部分的に依拠して第1の周辺部分をたどる方法を決定しながら、第1の周辺部分をたどること、マップを更新して、たどられる第1の周辺部分がたどられたことを示すこと、および、第1の周辺部分をたどる間に横断された一つまたは複数の位置に関する追加情報でマップを更新すること、を含む。領域を探索する工程は、領域内でモバイル装置をナビゲートすること、マップを更新して一つまたは複数の発見済み周辺を示し、周辺は、識別されているときは表面境界および障害物境界線を含むこと、および、マップを更新して表面の横断済み部分が探索されたことを示すこと、を含む。
[本発明1001]
表面をナビゲートするように構成されたモバイル装置(mobile device)であって、
該モバイル装置を、第1の位置および第1の方位を含む第1の姿勢から、第2の位置および第2の方位を含む第2の姿勢まで移動させるように構成された、移動機構と、
前記表面に関するデータを表すマップを更新するように構成されたマッピングモジュールであって、該マップが位置と一つまたは複数の特性を関連付け、該特性が、「未探索(unexplored)」、「横断済み(traversed)」、「縁部(edge)」、および「占有済み(occupied)」を示すのに十分な特性を含む、マッピングモジュールと、
初期位置および初期方位を含む初期姿勢を確立するように構成された、初期化モジュールと、
前記初期姿勢の少なくとも一つの成分に基づいて少なくとも部分的に定義された第1の領域をカバーする(cover)ように前記移動機構に前記モバイル装置を移動させるように構成され、かつ前記マッピングモジュールに前記マップを更新させるようにさらに構成された、第1の領域カバーモジュールと、
少なくとも一つの追加領域をそれぞれカバーするように前記移動機構に前記モバイル装置を移動させ、かつ前記マッピングモジュールに前記マップを更新させるように構成され、該第1の領域と該少なくとも一つの追加領域とが重なり合っていない、第2の領域カバーモジュールと、
一つまたは複数の未追跡の縁部を識別し、未追跡の縁部をそれぞれたどるように前記移動機構に前記モバイル装置を移動させ、たどられるときに前記マッピングモジュールに追跡済み縁部に印を付けさせ、かつ縁部で発見される一つまたは複数の領域が発見された場合に該領域をカバーするように前記移動機構に前記モバイル装置を移動させるように、第3の領域カバーモジュールがするように構成された、縁部追跡モジュールと
を備えるモバイル装置。
[本発明1002]
モジュールのそれぞれがコンピュータ化されたシステムを含む、本発明1001のモバイル装置。
[本発明1003]
コンピュータ化されたシステムを含み、かつ「横断済み」位置と「未探索」位置の間に辺縁(frontier)を含むマップ位置を識別し、かつ一つまたは複数の該辺縁が識別された場合、前記移動機構に、少なくとも一つの該辺縁に基づいて少なくとも部分的に定義された領域をカバーするように前記モバイル装置を移動させ、かつ前記マッピングモジュールに前記マップを更新させるように構成された、追加の領域カバーモジュールをさらに含む、本発明1001のモバイル装置。
[本発明1004]
モジュールがそれぞれ、単一の一般的なコンピュータ化されたシステムを含む、本発明1002または1003のモバイル装置。
[本発明1005]
移動機構が一つまたは複数の車輪を含む、本発明1001のモバイル装置。
[本発明1006]
移動機構が一つまたは複数の無限軌道を含む、本発明1001のモバイル装置。
[本発明1007]
移動機構が少なくとも一つの舵構成要素と少なくとも一つの推進構成要素とを含む、本発明1001のモバイル装置。
[本発明1008]
マッピングモジュールが、モバイル装置に結びついた一つまたは複数のセンサからの情報に少なくとも部分的に基づいて、位置と一つまたは複数の特性を関連付ける、本発明1001のモバイル装置。
[本発明1009]
センサが、モバイル装置がある位置にあるかまたは該位置を通って移動したことを示す場合、マッピングモジュールが該位置と「横断済み」を関連付ける、本発明1008のモバイル装置。
[本発明1010]
センサが、モバイル装置がある位置にまで移動できないことを示す場合、マッピングモジュールが該位置と「占有済み」を関連付ける、本発明1008のモバイル装置。
[本発明1011]
隣接する位置が「占有済み」である場合、マッピングモジュールが位置と「縁部」を関連付ける、本発明1001のモバイル装置。
[本発明1012]
ある位置が「横断済み」位置に隣接しておりかつ「占有済み」または「横断済み」でない場合、マッピングモジュールが該位置と「未探索」を関連付ける、本発明1001のモバイル装置。
[本発明1013]
領域のモバイル装置がアクセス可能な部分の少なくとも90%がマップ上の「横断済み」位置に関連付けられている場合に、該領域はカバーされている、本発明1001のモバイル装置。
[本発明1014]
領域のモバイル装置がアクセス可能な部分の少なくとも80%がマップ上の「横断済み」位置に関連付けられている場合に、該領域はカバーされている、本発明1001のモバイル装置。
[本発明1015]
領域が、表面の特性と無関係である定義を有する、本発明1001のモバイル装置。
[本発明1016]
各領域が表面の適正なサブセットである、本発明1001のモバイル装置。
[本発明1017]
領域が静的寸法を有する、本発明1001のモバイル装置。
[本発明1018]
領域が少なくとも一つの動的寸法を有する、本発明1001のモバイル装置。
[本発明1019]
領域が、第2の領域の少なくとも一つの寸法によって少なくとも部分的に決定された少なくとも一つの動的寸法を有する、本発明1018のモバイル装置。
[本発明1020]
第1の領域の10%未満が第2の領域内にある場合に、該第1の領域と該第2の領域は重なり合っていない、本発明1001のモバイル装置。
[本発明1021]
第1の領域の25%未満が第2の領域内にある場合に、該第1の領域と該第2の領域は重なり合っていない、本発明1001のモバイル装置。
[本発明1022]
第1の領域の50%未満が第2の領域内にある場合に、該第1の領域と該第2の領域は重なり合っていない、本発明1001のモバイル装置。
[本発明1023]
縁部が、「縁部」に関連付けられた一つまたは複数の位置と「縁部」に関連付けられていない一つまたは複数の位置とを含む、本発明1008のモバイル装置。
[本発明1024]
縁部追跡モジュールが、前記センサからのデータに少なくとも部分的に依拠して縁部をたどるようにさらに構成されている、本発明1008のモバイル装置。
[本発明1025]
縁部追跡モジュールが、マッピングモジュールに位置と「縁部」との間の関連付けを除去させるようにさらに構成されている、本発明1024のモバイル装置。
[本発明1026]
縁部追跡モジュールが、未追跡の縁部をたどる間に「縁部」に関連付けられていない少なくとも一つの位置が横断された場合に、縁部で発見された領域をカバーするように、移動機構がモバイル装置を移動させるように構成されている、本発明1001のモバイル装置。
[本発明1027]
一つまたは複数の境界を有しかつ一つまたは複数の障害物を含んでいる表面上でのモバイル装置の第1の姿勢の少なくとも一つの成分に基づいて、コンピューティング装置を使用して基準枠を定義する工程であって、該第1の姿勢が第1の位置および第1の方位を含む、工程;
前記モバイル装置により前記表面の第1の領域を探索する工程であって、該第1の領域が前記第1の姿勢の成分に少なくとも部分的に基づいて決定される、工程;
前記モバイル装置により、前記第1の領域を探索した後で前記表面の少なくとも一つの第1の追加領域を探索する工程;
前記表面に関する情報のマップをコンピュータ可読メモリ内に保持する工程であって、該情報の少なくとも一部が前記第1の領域および前記追加領域を探索することによって得られる、工程;
前記マップの分析が、一つまたは複数の未追跡の周辺(perimeter)部分が、
前記モバイル装置を、たどられていない第1の周辺部分上の第1の位置までナビゲートすること、
一つまたは複数のセンサに少なくとも部分的に依拠して前記第1の周辺部分をたどり、前記第1の周辺部分をたどる方法を決定すること、
前記マップを更新して、前記たどられる第1の周辺部分がたどられたことを示すこと、および
前記第1の周辺部分をたどる間に横断された一つまたは複数の位置に関する追加情報で前記マップを更新すること、
により存在することを示す場合に、一つまたは複数の未追跡の周辺部分を周辺追跡する工程;ならびに
周辺追跡する間に発見された未探索の第2の追加表面領域を探索する工程
を含む、モバイル装置で表面をナビゲートする方法であって、
領域を探索する工程が、
前記モバイル装置を前記領域内でナビゲートすること、
前記マップを更新して一つまたは複数の発見済み周辺を示すことであって、該周辺はそれが識別された場合に表面境界および障害物境界線を含むこと、および
前記マップを更新して前記表面の横断済み部分が探索されたことを示すこと
を含む、方法。
[本発明1028]
モバイル装置が、検出済み信号情報を用いる信号ベースの位置確認システムを用いて位置確認を行い、該信号が放送装置からの放送である、本発明1027の方法。
[本発明1029]
第1の周辺部分をたどる間に発見された未探索の追加表面領域を探索する工程が、マップが未追跡の周辺部分が存在しないことを示すときに実行される、本発明1027の方法。
[本発明1030]
第1の周辺部分をたどる間に発見された未探索の追加表面領域を探索する工程が、マップが未追跡の周辺部分が存在することを示している間に実行される、本発明1027の方法。
[本発明1031]
少なくとも一つの追加領域が、第1の姿勢の一部に少なくとも部分的に基づいて決定される、本発明1027の方法。
[本発明1032]
少なくとも一つの追加領域が、第1の領域に少なくとも部分的に基づいて決定される、本発明1027の方法。
[本発明1033]
本発明1027の工程をまず実行した後、
モバイル装置を表面上に第1の姿勢で構成する工程;および
本発明1027の工程を再度実行する工程
をさらに含み、
前記モバイル装置の挙動が、初回の実行および再実行の間、実質的に同じである、本発明1027の方法。
[本発明1034]
前記表面が第1の部屋の床である、本発明1027の方法。
[本発明1035]
第1の領域およびすべての追加領域が表面の90%超を集合的に構成する、本発明1027の方法。
[本発明1036]
モバイル装置を領域を通ってナビゲートすることが、該領域を通ってスネーキングすることを含む、本発明1027の方法。
[本発明1037]
モバイル装置を領域を通ってナビゲートすることが、該領域を通ってらせん状に移動することを含む、本発明1027の方法。
[本発明1038]
モバイル装置を領域を通ってナビゲートすることが、該領域を通って外側にらせん状に移動することを含む、本発明1037の方法。
[本発明1039]
第1の領域内にも第2の領域内にもある表面部分は実質的に存在しない、本発明1027の方法。
[本発明1040]
複数の領域内にある表面部分は実質的に存在しない、本発明1027の方法。
[本発明1041]
第1の領域の10%以下が第2の領域内にもある、本発明1027の方法。
[本発明1042]
表面の第1の境界が、モバイル装置が進んだ距離に基づいて検出される、本発明1027の方法。
[本発明1043]
表面の第1の境界が障害物の検出に基づいて検出される、本発明1027の方法。
[本発明1044]
表面の第1の境界が物理的境界でない、本発明1027の方法。
[本発明1045]
表面の第1の境界が、信号の値と閾値を比較することに基づいて検出される、本発明1044の方法。
[本発明1046]
表面の第1の境界が部屋の壁である、本発明1027の方法。
[本発明1047]
モバイル装置が清掃装置である、本発明1027の方法。
【発明を実施するための形態】
【0009】
好ましい態様の詳細な説明
未知の環境などの環境でモバイル装置(例えば、ロボット・フロア・クリーナ)などの物体をナビゲートするための方法またはシステムが本明細書に記述されている。ある態様は、露出環境または環境の一部(例えば、カーペットが敷かれた床またはカーペットが敷かれていない床)を完全にカバーするかまたは実質的にカバーするために、この種のナビゲーションを使用することができる。
【0010】
本明細書において開示されるいくつかの方法およびシステムは、モバイル装置が環境におけるその相対的位置および方位(姿勢)に関する情報を入手し、場合によってはその環境のレイアウトの事前知識なしに、その環境でナビゲートすることができる方法について、従来技術を進歩させる。本明細書において開示されるいくつかの方法およびシステムに従って構成されたモバイル装置は、環境をカバーするかまたは実質的にカバーするように(例えば、家具、ペット、人、階段などの障害物のせいで横断することができない部分を除く、床などの、環境内のすべてもしくはほとんどすべての横断可能な場所を横断するように)ナビゲートする。
【0011】
本明細書において開示される方法およびシステムに従って構成された別の例のモバイル装置は、環境のそのようなカバーを予想通り実現する(例えば、このモバイル装置は、環境内の類似もしくは実質的に類似のルートを別々のカバー努力でたどる傾向があり、あるいは、環境のカバーまたは実質的カバーを別々のカバー努力で同じもしくは実質的に同じ時間で組織的に完了する傾向がある)。これにより、モバイル装置の動作を見ているユーザに、モバイル装置がそのタスクを組織的に完全に実行していることを確信させるという任意の利点が加わる。さらに、いくつかの態様は予測可能な方法で動作するので、モバイル装置で運転されている表面をユーザが歩いて渡る必要がある場合、ユーザは、モバイル装置が近い将来に(例えば、次の1分間に)横断することのない領域がどこかを予測し、歩いて渡る領域を選択することができる。
【0012】
本明細書において開示される方法およびシステムに従って構成されたモバイル装置の別の態様例は、表面または他の環境の完全なカバーまたは実質的に完全なカバーを従来装置に比べて短い時間で実現する(従来の装置は別の態様と同じ速度で移動できるものとする)。
【0013】
いくつかの開示される態様は、本明細書において開示される機能性が、比較的小型のモバイル装置で利用できるようにされうるように、かつ/または、ナビゲート以外の追加の機能性を実行する製品を含む手ごろな価格の量販消費財に供給されうるように、比較的安価な計算資源(処理能力、記憶装置、時間など)を使用して任意に実現することができる。
【0014】
定義
本明細書における記述を通じて、「位置確認(localization)」は、環境内での物体の位置とその物体の方位の両方を決定することを含むことができる。位置と方位を組み合わせたものが「姿勢」と称される。
【0015】
「ナビゲートする(navigate)」は広義語であり、その普通の慣習的意味を当業者に与えられるべきであり(すなわち、それは、特別な意味もしくはカスタマイズされた意味に限定されるべきではなく)、ソース位置から目的位置までのルートなどのルートを決定すること、およびそのルートに従って環境内で動くこと(「横断すること(traversing)」)を含むが、それに限定されるわけではない。横断することは、車輪または無限軌道(track)で移動すること、飛行もしくは滑空すること、浮遊もしくは浮動すること、仮想空間を論理的に移動すること、材料中を掘り進むこと、などによって非限定的に行うことができる。環境内の位置または環境の部分は、モバイル装置がその中で移動するときに、「カバーされる」または「横断される」または「探検される(explored)」または「ナビゲートされる(navigated)」ことができる。
【0016】
「カバーする(cover)」は広義語であり、その普通の慣習的意味を当業者に与えられるべきであり(すなわち、それは、特別な意味またはカスタマイズされた意味に限定されるべきではなく)、開始位置から横断可能かつアクセス可能な環境のすべてもしくは実質的にすべての位置を横断すること、ある動作を行うように構成されたモバイル装置によってすべてもしくは実質的にすべてのかかる位置が動作を受けられるように十分なだけかかる位置を横断すること、などを非限定的に含む。「カバーする」という用語は環境の一部に適用することもできる。環境またはその一部が「カバーされる」と見なされうる場合の例示的な例は、横断可能な位置の少なくとも100%、95%、90%、85%、または他の閾値百分率もしくは割合が処理される(例えば、横断されるかまたは動作を受ける)場合、あるいは閾値がカバーされるまたはカバーされない場合、を含む。例えば、真空掃除機は、それが少なくとも80、85、90、95、または99平方フィートなどの閾値を横切った場合、100平方フィートのアクセス可能表面(例えば、家具、ペット、人、階段などの障害物のせいでアクセスできない表面でない)を有する部屋をカバーしたと見なすことができる。あるいは、掃除機の一例は、アクセス可能な床の総量に関係なく、アクセス可能な床の閾値平方フィート数未満の部分が掃き掃除されない場合(1、5、10、100など)、床をカバーしていると見なすことができる。掃き掃除する、掃除機がけする、などのいくつかの用途では、モバイル装置が環境の一部をその「周辺」を含めて明確にカバーすることが特に重要となりうる。例えば、掃き掃除することおよび掃除機がけをすることにより、ごみが壁、家具、または他の障害物の近くに集まることが多い。例えば種をまいたり洗浄剤を散布したりする他の用途では、環境が全体的にカバーされる限り、環境の周辺を明確にカバーする必要はないかもしれない。
【0017】
便宜上、本開示の大半は「モバイル装置」または「モバイル物体(mobile object)」に関して表される。しかしながら、開示されている局面は一般に任意のタイプの物体をナビゲートするために使用することができ、当業者なら、本開示が単独で移動することができない物体(何か他のものによって輸送または搬送される物体など)を含む他の物体に適用されうる方法を理解するであろう。非限定的な例として、モバイル装置は、自律、半自律、もしくは遠隔命令されるフロアクリーナ(例えば、掃除機、真空掃除機、芝刈り機、および/またはモップ)、配送車両(例えば、建物内でメールを配達し、病院や寮内で食料を配送する車両など)、あるいは監視車両(例えば、汚濁もしくは汚染検出器、セキュリティモニタ)とすることができる。モバイル装置には、一つまたは複数の車輪、無限軌道、またはこの種の他の装置を駆動する一つまたは複数の駆動モータを装備することができ、駆動モータは、非一時的メモリに保存されたプログラムを実行するコンピューティング装置の制御を受けることができる(例えば、非一時的メモリは、物体の電源が切られたときまたは他のデータが上書きまたは消去されたときに持続する)。モバイル装置は、ナビゲーションの目的でナビゲートするように構成することができ、あるいは、上述したようなタスク、ならびに記録すること(ビデオ、オーディオ、および/または他のデータ)、モップがけすること、トリミングすること、切断すること、および(例えば、塗料、シーラント、種、肥料、またはプールクリーナを)分注することを非限定的に含む追加のタスクを実行するように構成することができる。モバイル装置は、これらの機能および/または他の機能のいずれかを実行するように構成されたロボットとすることができる。要するに、「モバイル物体」および「モバイル装置」は広義語であり、それらの普通の慣習的な意味を当業者に与えられるべきであり(すなわち、それらは、特別な意味またはカスタマイズされた意味に限定されるべきではなく)、上述の例を非限定的に含む。
【0018】
「環境」は広義語であり、その普通の慣習的意味を当業者に与えられるべきであり(すなわち、それは、特別な意味またはカスタマイズされた意味に限定されるべきではなく)、個々の部屋、複数の部屋、廊下、車両内部、芝生、野原、パティオ、屋根、歩道、道路、水体もしくは流体、スイミングプール、床、天井、壁、囲まれていない屋外空間、部分的に囲まれた屋外空間、前記の一部、などを非限定的に含む。
【0019】
「表面」は広義語であり、その普通の慣習的意味を当業者に与えられるべきであり(すなわち、それは、特別な意味またはカスタマイズされた意味に限定されるべきではなく)、床、壁、天井、地面、柵、内部、上部、下部、側部、外部などの、モバイル装置がナビゲートするまたはナビゲートしようとする環境の一部を非限定的に含む。表面は平面または実質的に平面である必要はないが、(かかる表面をナビゲートすることがその表面において3次元に移動することに関与するように)例えば、環境の内部容積を含むことができる。
【0020】
典型的には、表面は一つまたは複数の境界を有する。「境界」は広義語であり、その普通の慣習的な意味を当業者に与えられるべきであり(すなわち、それは、特別な意味またはカスタマイズされた意味に限定されるべきではなく)、壁または成形によって確立されるような床の定義境界線、所定の寸法によって設定されるような表面の定義境界線(例えば、表面は、5メートル×6メートル×4メートルと定義したり、中心が特定位置にありかつ規定半径を有する円形であると定義したりすることができる)、(例えば、モバイル装置が特定の場所を越えてナビゲートしたときに、モバイル装置の電力信号または位置確認信号が閾値未満に低下するために)モバイル装置の特性に基づいて確立されるような表面の定義境界線、などを非限定的に含む。文中において特に指示がない限り、境界は、物理的障壁ではなく、「仮想」境界(例えば、モバイル装置によって定義される)とすることができることが理解されるべきである。
【0021】
「占有マップ(occupancy map)」または「マップ」は、環境または表面内の位置をその位置に関する情報および属性と関連付ける論理構造である。「占有マップ」は広義語であり、その普通の慣習的意味を当業者に与えられるべきであり(すなわち、それは、特別な意味またはカスタマイズされた意味に限定されるべきではなく)、位置から特性へのマップとして、特性から位置へのマップとして、データベース技術を用いて、種々の関連データ構造を用いて、または当業者が状況および要件に応じて選択することができる任意の他の態様を非限定的に含む、様々な方法で実行することができる。したがって、マップは可視マップである必要はないが、コンピュータ可読メモリに保存されたデータによって定義されうることが理解されよう。詳述するように、マップは、様々な精度および/または確度で実際の表面に対応することができる。精度は、例えば、表面の一部に対応する離散マップセルを使用することにより、影響を受ける可能性がある。離散マップセルのサイズは、それぞれが表面の10cm×10cmの部分、または表面の1m×1mの部分に相当することができ(例えば、離散マップセルは正方形である必要はなく、すべてが同じサイズである必要もない)、観測される特性の粒度に制限を課すことにより精度に影響を及ぼす可能性がある。確度は、本明細書において言及される他の様々なファクタを含むセンサの品質などによって影響を受けることがある。態様は、マップ内の情報に基づいて本明細書において論じられる一部またはすべての分析を実行することができる。
【0022】
「探索済み」位置は、モバイル装置が横断することができた表面の位置または部分である。「探索済み」位置は、例えば、モバイル装置がその下で滑ることができない家具の下の床の各部分、またはモバイル装置が到達することができない芝生の各部分を除外することができる。というのは、モバイル装置は泥または水の中を走行することができないからである。他の状況では、(例えば、モバイル装置が適度に小さいか、「オフローディング(off-roading)」用に構成されるか、または航行することができる場合)、これらの領域は潜在的に探索済み領域となりうる。探索済み領域は、モバイル装置がまだ横断していないが横断可能である表面の各部分を除外することもできる。
【0023】
「占有済み」位置は、モバイル装置が横断することができない表面の複数の部分を含むことができる。複数の部分は、モバイル装置がその部分を横断するのを妨げる物理的障害物がある場合、表面の特性が表面の一部を近づきがたいものにする場合、モバイル装置の作動の電源もしくは制御信号または他の必要な要素がその部分で十分には機能しない場合、などの場合に、占有される可能性がある。
【0024】
「スネーク」は、いくつかのモバイル装置が表面の一部を横断できる経路またはルートである。非限定的な例として、モバイル装置は「表面の一部にスネークをとっている」といわれることがあり、あるいは「スネークはモバイル装置がたどるのに利用可能である」といわれることもある。この種の経路をたどるモバイル装置は「スネーキングしている(snaking)」。この用語については以下でより完全に詳述する。
【0025】
「辺縁(frontier)」は、表面の探索済み部分と未探索部分の間の境界線を意味する。いくつかの態様では、「スネーク辺縁」は、スネーキングするために選択されるかまたはそれにふさわしい辺縁を意味する。いくつかの態様では、モバイル装置は、スネーキングすることにより辺縁の未探索側にナビゲートすることになる。いくつかのマップでは、辺縁は、マップに隣接する未探索位置を有する横断済み位置または探索済み位置で構成することができる。他のマップでは、辺縁は、探索済みまたは横断済み位置に直接隣接する未探索位置で構成することができる。
【0026】
表面の「周辺」は、表面の境界ならびに表面内の任意または一部の障害物の縁部を含むことができる。例えば、家具のフットプリントまたは眠っているペットの輪郭は周辺の一部とすることができる。横断可能な表面が低密度の土を含みかつモバイル装置が岩石を横断することができない地下環境での緻密な岩の3次元輪郭もそうかもしれない。
【0027】
「縁部」は、表面の探索済み部分と占有済み部分の間の境界線を意味する。例えば、縁部は、芝刈り機の態様で木の幹を囲むことができる。いくつかの辺縁位置は、占有済み位置が未探索であると見なされた場合、あるいはそれらの位置が占有済み位置との境界線および未探索位置との別の境界線の両方の一部である場合、縁部位置とすることもできる。諸態様は、マップ内の位置のうちの少なくともいくつかの特性のうちの少なくともいくつかに少なくとも部分的に基づいて、マップに対して辺縁、縁部、および/または周辺を定義することができる。
【0028】
カバーをナビゲートする方法およびシステム
次に、態様例についていくつかの図を参照しながら説明する。以下の詳細な説明は一般に、床や壁などの2次元の表面を参照して行われる。本開示は、3次元の動きおよび表面に適用するために当業者によって容易に拡張することができる。
【0029】
カバープロセスの概要
図1は、表面をカバーするための例の制御プロセス100を示す流れ図である。プロセス例は、以下のカバー段階を含む。すなわち、(i)領域ベースのカバー、および(ii)周辺のカバーもしくは追跡を含む。領域ベースのカバーは一般に表面のアクセス可能な部分のカバーを対象とし、周辺カバーは一般に表面の周辺(境界および縁部)のカバーを対象とする。
【0030】
図1に示されているように、状態110で、モバイル装置の現在の姿勢Pは、例えば、信号ベースの位置確認システムまたは推測航法システムを用いて得られる。図示の態様では、カバープロセス100は、Pによって少なくとも部分的に定義されたナビゲーション(カバー方向)の開始位置および主軸を確立する。一態様では、ユーザは、モバイル装置を表面上に置くことによりPを確立することができる。別の態様では、モバイル装置は、それ自体上に特定の開始位置および/または方位をとることができる。このような態様は、例えば、姿勢を識別しその姿勢をとるために米国特許第7,720,554号のシステムおよび方法を使用することができる。別の態様では、モバイル装置は、それが特定の初期姿勢で置かれていることを仮定または必要とすることができ、後続の処理はその仮定に依存する。別の態様では、モバイル装置は、それが障害物に遭遇するまで走行し、場合によりその障害物を壁または他の境界として識別し、障害物の明白な位置および/または方位に基づいてPを確立することができる。
【0031】
プロセス100の一態様では、開始位置は論理的に(0, 0)と定義され、開始方位は論理的にπ/2ラジアン(90度)と定義される。すなわち、態様によって使用される基準枠または基準座標系は初期姿勢Pに相対的である。任意の他の初期位置または方位の定義を使用することもでき、以下の記述はそれに応じて調整されることになる。
【0032】
プロセス100によれば、モバイル装置は最初に、
図2のプロセス200などの領域ベースのカバープロセスを状態115で「右へカバーする」に設定された開始条件で呼び出すことにより、状態120でこの開始位置の右への領域ベースのカバーを実行する。モバイル装置が右への領域カバーを終えると、モバイル装置は、125で開始パラメータを「左へカバーする」に設定し、130でプロセス200を呼び出すことにより、初期開始位置Pの左への同様のカバー動作を実行する。
【0033】
左と右の両方へカバーした後、モバイル装置がカバーしていない表面の非周辺部分が依然として存在する可能性がある。例えば、左カバールーチンと右カバールーチンの一方または両方は、モバイル装置が走行できる距離またはモバイル装置がカバーできる表面の量に直接的もしくは間接的に最大値を課すことができる。また、ルーチンの一方または両方は、モバイル装置が充電されるかまたは消耗品を交換される必要性により、ユーザの一時停止操作により、あるいはモバイル装置が、限定されるものではないが、けん引力を喪失すること、凹所にはまり込んだり突出部に引っかかったりすること、または反応しなくなることを含むエラー状態に入ることと関連付けられうるような例外により、中断されうる。図示のプロセス100は、さらにカバーされる必要のある表面の潜在的部分をチェックするのをプロセス200(状態135で開始パラメータが「どこでもカバーする」に設定された状態で、プロセス100が140で呼び出す)に任せる。他の態様では、このチェックは、他のプロセスによりまたは他のときに実行することができる。例えば、このチェックは、プロセス200で「左へカバーする」が呼び出されたときにプロセス200の終結状態とすることができ、あるいはプロセス200はプロセス100によって直接実行するかまたは呼び出すこともできる。
【0034】
表面のかかる部分が識別されカバーされうる方法を示すプロセス例について、
図2の状況で以下に論じる。かかる部分が見出された場合、領域ベースのカバープロセス200は143での「領域がカバーされた」という値で戻り、プロセス200は、「どこでもカバーする」に設定された開始で再び呼び出される。かかる部分が見出されなかった場合、プロセス200は141での「辺縁がない」という値で戻る。これが起きた場合、モバイル装置は、表面の識別されたアクセス可能もしくは横断可能な部分を実質的にカバーし、それらの部分のほぼ完全なマップを作ったのだろう。次いで、プロセス100は状態150へ進み、そこでプロセス100は周辺カバープロセス300を呼び出す。
【0035】
周辺カバープロセス300の例が
図3に示されており、以下により詳細に説明する。高レベルで、かかるプロセス300は、マップを分析するかまたはその他の方法でそれに沿ってカバーもしくはナビゲートするべき未追跡の縁部または境界(周辺)を選択し、その周辺に沿ってナビゲートし、それに応じてマップを更新し、そして周辺カバーが継続される必要かあるかどうかを決定する。
【0036】
プロセス100は、図示のように、プロセス300の少なくとも3つの戻り値または状態を処理する。プロセス300が155と同様に状態「スネークが作られた」で終了する場合、表面の新たな未探索の部分が見出され、その部分に入ったスネークが識別された。その場合、開始パラメータが状態143で「作られたスネークをカバーする」に設定された後、プロセス200が状態140で呼び出される。プロセス300が条件「周辺がカバーされた」で終了した場合、プロセス100は終わることができる。別法として(図示のように)、「周辺がカバーされた」に応答して、プロセス100は、状態135および140を経由して領域ベースのカバープロセス200を「どこでもカバーする」で呼び出すためにループバックすることができる。これは、マップ内のノイズ(センサの誤差もしくは異常、モバイル装置の機械的特徴の欠陥もしくは逸脱、または他の位置確認の誤差などから)によりモバイル装置が位置を正確にマップするまたは正確に特徴付けることができない、したがって一つまたは複数の辺縁を識別もしくは探索することができないという状況の責任をとるための、いくつかの態様での余分の予防措置である。プロセス200のこの予防ランが辺縁を識別しない場合、プロセス100は周辺カバープロセス300を再び呼び出し、プロセス300によりモバイル装置は周辺カバーされていない別の周辺をたどることができる。別の選択肢は、プロセスの最初の呼び出しが条件「周辺がカバーされた」で終結したときに、プロセス100が、領域ベースのカバープロセス200の介在呼び出しなしに追加のパスとして周辺カバープロセス300の中に直接ループバックすることである。
【0037】
プロセス300がマップ内に周辺辺縁がないという結論を下した場合、プロセス300は、157でのように「周辺辺縁がない」という条件で戻ることができる。次いで、モバイル装置は、160でのようにモバイル装置のカバー制御ルーチンを中止することができる。
【0038】
この時点160で、モバイル装置は、それがカバーおよび/またはカバーと関連付けられる清掃などのアクションを完了したという信号を(例えば、可聴、可視、触覚、もしくは電子通信を介してユーザへ、有線もしくは無線信号または他のインタフェースを介して呼び出し装置へかつ/または監視アプリケーションへ)送ることができる。あるモバイル装置は、充電ステーション、収納箱、それらの初期位置もしくは姿勢、または予め定義された次の位置もしくは姿勢へナビゲートすることができる。いくつかのこの種の態様は、一つまたは複数の条件に基づいて結論を出すために、一つまたは複数の挙動を選択することができる。例えば、一態様は、次の位置または姿勢が設定されていなければ開始姿勢または位置に戻ることができる。別の態様は、カバーが完結したことを示す電子メールを送り、それが充電を必要とする場合に充電ステーションに戻り、そうでない場合は次に表面を再びカバーする(例えば、おそらく、それが状態110を実行した前回とは異なる開始姿勢で状態110に戻る)。
【0039】
異なるランにわたる予測可能な一貫した挙動を提供するために、モバイル装置は場合により、状態120および130で領域ベースのカバープロセス200を毎回同じ順序の同じパラメータで呼び出すことが有利である(しかし、他の態様では、以下に説明するように、異なるパラメータおよび/または順序が繰り返し、繰り返し用いられてもよい)。したがって、かかるプロセス100が実行されるとき、モバイル装置の初期挙動は一貫しており、したがって、モバイル装置が同じ初期姿勢(または、おそらく数インチもしくは数センチメートル離れているが、ほぼ同じ方位の姿勢)で置かれた場合(またはその姿勢をとった場合)、それが少なくとも毎回同じまたは実質的に同じ方法で表面をカバーし始めるようにする(しかし、上述したノイズおよび他のファクタ、ならびに障害物の位置の変化は、最終的にとられるルートおよび表面がカバーされる方法に影響を及ぼす可能性がある)。他の態様は、プロセス200を、最初に「左へカバーする」か「右へカバーする」のどちらかでランダムにまたは疑似ランダムに呼び出すことができる。他の態様は、障害物が左方向または右方向に最も近いかどうかを決定し、最初にその方向または他の方向にカバーするセンサで構成することができる。
【0040】
モバイル装置の非ナビゲーション機能(おそらく洗剤の分注など)を首尾よく完了するために周辺カバーが要求されない場合には、プロセス100は、領域ベースのカバー段階が完了した後でかつ150での周辺カバーの呼び出しの前に終結することができる。これにより表面の完全カバーより少なくなる可能性がある。というのは、いくつかの領域(例えば、周辺カバープロセス300が「スネークが作られた」という結果をもって戻ることにより存在が示されうる領域)は、依然として見出されない、したがって横切られないままである可能性がある。
【0041】
領域ベースのカバー
図2は、例示領域ベースのカバールーチンまたはプロセス200の例を示す。上記論議で含意されているように、プロセス200は、開始条件の値に少なくとも部分的に基づいて選択されるいくつかの可能な開始点(例えば、少なくとも4つの可能な開始点(状態205、215、225、および250))を有することができる。代替方法(図示せず)では、プロセス200などのプロセスが単一の入口点を有し、開始条件を評価し、それに従って進む。領域ベースのカバールーチン200の図示の態様は、状態295および245に設定された2つの出口条件を有する。
【0042】
上述のように、プロセス100などの制御プロセスは、プロセス200を最初に開始パラメータ「右へカバーする」で呼び出し、次いでプロセス200を「左へカバーする」で呼び出し、次いでプロセス200を「どこでもカバーする」で呼び出し、次いでプロセス200を「作られたスネークをカバーする」で呼び出すことができる。他の状況または態様では、プロセス200は、例えば上述のように、同様のパラメータであるが異なる順序で呼び出すことができる。また、以下に詳述するように、追加もしくは代替のパラメータがいくつかの態様によって使用される。例えば、「下部をカバーする」および「上部をカバーする」、「左へ45度の角度でカバーする」、「最初の30度をカバーする」などがある。一般に、記載されている左側/右側清掃は、規定角度にわたる扇形で一般化することができる。記述されているように、この角度は180度であるが、120、90、および60を含むがこれらに限定されるものではない他の角度に及ぶ扇形がこの方法で支持されうる。プロセス200は他の様々なパラメータも利用する。当業者なら、多種多様なファクタリングおよびパラメータの受け渡し手法が使用されうることを理解するであろう。
【0043】
205で「右へカバーする」が呼び出されると、210でカバーパラメータが設定され、したがって、開始位置がモバイル装置の初期位置(Pの位置成分)であり、カバーまたはカバー方向がマイナスπ/2ラジアン(時計方向に90度)だけ回転されたモバイル装置の初期方位(Pの方位成分)に設定される。開始条件が「左へカバーする」に設定されると、開始点215からプロセス200に入り、状態220において、カバーパラメータは、モバイル装置の初期位置(この場合も先と同様)およびプラスπ/2ラジアン(反時計方向に90度)だけ回転されたモバイル装置の初期方位として設定される。
【0044】
一連のこれらの設定では、図示されているようないくつかのプロセスにより、モバイル装置は、最初に、それが表面上に置かれた方向に移動し、表面の、それが最初に移動したラインの片側にある部分をカバーするように進み、その初期位置に戻り、表面の、それが最初に移動したラインの反対側にある部分をカバーするように進む。いくつかのこのような態様は、有利に予測可能であり、見て美しいナビゲーションルートを有し、ユーザの期待に応じて補助的なタスク(清掃など)を実行することができる。というのは、それらが、初期位置(ユーザにとって特に重要または適切な位置となりうる)の周りで最初にかつ繰り返し動作するからである。
【0045】
プロセス200のサブセット212は、255で確立される開始姿勢SPおよびカバー方向Dを使用する。方向Dは、領域内で選択されうるカバーアクション(例えば、ナビゲートもしくはスネーキングすること)の方位を決定し、方位は、モバイル装置がカバーまたはナビゲートする方向を決定する。例えば、モバイル装置は様々な方向に移動することができるが、一般に表面を方向Dにカバーすることができる。開始姿勢SPは、モバイル装置がカバーを開始する位置を決定する。場合により、カバー方向Dおよび開始姿勢向き(方位)は互いに直交する。状態255で設定されうる別のパラメータがMAXである。すなわちモバイル装置が方向Dに進む間にカバーしようとすべき最大領域数である。初期化後、状態260で現在の領域が領域1と設定される。
【0046】
状態265で、カバー領域(最初に領域1)が作られる。領域は仮想境界ボックスを含む論理構造である。領域は、方向Dおよび開始姿勢SPに基づいて定義することができる。一態様では、領域は、領域の定義パラメータ(例えば、領域の数、D、およびSPを含む)を保存するマップの一部として作られる。領域は静的または動的でありうる。いくつかのモバイル装置は同じカバープロセスの間に静的領域と動的領域の両方を使用することができるが、他の態様は所与のカバープロセスの間にどちらか一方しか使用することができない。さらに他の態様はどちらか一方しか使用することができない。
【0047】
静的領域の場合、SPおよびDに関する領域の位置および寸法は、モバイル装置が領域をカバーし始める前に確立することができる。例えば、静的領域は、予め定義されたサイズ(5フィート×5フィートなど)とSPに相対する位置とを有するように定義することができる(例えば、SPを中心とする縁部またはSP上に頂点を有する縁部)。アメリカの家の床を掃除するモバイル装置の一態様では、静的領域のサイズは、長さ約7m(以下により詳細に説明する、「ランク」方向に沿って)、幅1.5m、およびSPを中心とする縁部となるように予め設定される(しかし、静的領域の寸法はより小さくてもより大きくてもよい)。
【0048】
動的領域は、複数の寸法、好ましくは、表面の寸法に比べて相対的に小さいと予想される寸法(例えば、アメリカの家の床上で動作するよう意図されているモバイル装置の場合、0.5メートル×0.5メートル)で初期化され、環境に応じて領域を適合させるように、おそらく予め定義された最大サイズ/寸法まで拡大することを許容される。動的領域は、静的領域と同様に、SPに相対する予め定義した位置を有することができる。
【0049】
静的領域および動的領域は
図15Aおよび
図15Bに示されている。
図15Aでは、姿勢1530で開始するモバイル装置が部屋1510の中をスネーキングし、静的領域1510内に限定される。モバイル装置がたどるスネーク1540は、モバイル装置がまだ部屋1510の中にあったとしても、モバイル装置が領域1520を離れるところであることを検出すると、モバイル装置はそのスネークの次のランクに移ったことを示している。対照的に、
図15Bは、動的領域1550内の類似の経路1560をたどるモバイル装置が部屋1510の南壁に到達することを示している。というのは、モバイル装置がその南端に到達したが、未探索かつ非占有の領域内へまだ進むことができるときに、領域1550が拡大するからである。
【0050】
スネーク辺縁の列挙、選択、および/または識別に関するマップ分析は現在の領域に限定される。いくつかの態様は、時々、それらが全体的な辺縁の列挙を行うか、またはそうでなければ、現在の領域と同様にもしくはそれに加えて、以前にカバーされた領域内の辺縁を列挙するように構成することができる。また、モバイル装置自体の移動は、いくつかの態様で、場合により現在の領域に限定される。他の態様はそのようには限定されないが、限定することにより、モバイル装置に他の場所へ移動する前に現在の領域をカバーしようとさせるという有利な結果が得られる。例えば、状態270で、スネークSが現在の領域内で探求される。
【0051】
制約SC1を満たすスネークSが存在する場合、モバイル装置は状態275でスネーキングを開始する。他の態様は、スネーキング以外のカバーアクション(ナビゲーション)を実施することができる。モバイル装置がスネーキングするに従い、マップは、例えば、横断された位置、障害物が検出された位置、および境界が存在するように見える位置を記録するために更新される。スネーキングについては、
図5の状況で以下により詳細に説明する。
【0052】
様々な条件で、モバイル装置にスネークアクションまたは他の横断アクションをやめさせることができる。例えば、モバイル装置は現在の領域の端に到達する可能性がある(例えば、スネーキングプロセス用の次のランクは領域の外側にあり、領域は動的であればこれ以上成長しない)、モバイル装置は表面の境界に到達する可能性がある、必須の信号(電力信号や位置確認信号など)が弱くなる可能性がある、物理的限界(コードの長さなど)に達する可能性がある、あるいは、障害物は、スネークランク全体をふさぎ、モバイル装置のナビゲーションプロセスがモバイル装置に障害物の周りをナビゲートさせるのを妨げるように、十分に大きいかまたは適切に配置される可能性がある。スネークアクションを終えると、モバイル装置は次にとるべきアクションが何かを決定する。モバイル装置は状態280の時点で、マップを分析し、適切な辺縁、例えばモバイル装置に最も近い辺縁を識別することにより、そうすることができる。適切な辺縁は制約SC2を満たすことが好ましい。これらの制約は、最小ランク長(例えば、ロボット一つの直径または20センチメートル)を有すること、および優先的(全体的)方向または方位Dを有すること、を含むことができる。このようにDを限定すると、モバイル装置が以前と同じ方向(D)にカバーまたは探索し続けるという結果になりやすい。いくつかの態様は、Dの正反対を含む、D以外の優先的方向の辺縁を選択することができる。いくつかの態様は、辺縁が優先的方向Dを有するどの辺縁よりも長い最小ランク長を有する場合にのみ、そうすることができる。一態様は、時として領域に入る唯一の方法が特定の初期ベクトルからであるので、現在の優先的方向以外の優先的方向で領域を有利に探索することができる。
【0053】
少なくとも一つのそのような辺縁が制約SC2を合格する/満たす場合、「有効な」スネークアクションが存在し、状態270までの次のループに対する候補Sとして選択される。このようなスネークが存在しない場合、さらに現在の領域がMAXでない場合(例えば、プロセス200の呼び出しのための領域の数が態様の限度に達していない場合)、カバー領域カウンタは状態290でインクリメントされ、新たな境界ボックスを有する新たな領域が状態265で作られる。新たな境界ボックスおよび他の制約は、後続のマップ分析およびスネークアクションをこのように制限することができる。
【0054】
モバイル装置が285において最大許容領域MAXに既に達している場合、漸進的な領域カバーが295において「領域がカバーされる」という状態で終了する。いくつかの態様は、作られる領域の総数が超えることができないようなシステムレベルMAXを有することができ、他の態様は、漸進的な領域ベースのカバーの特定の呼び出しのためのMAXを有していてもよく、あるいはまったく有していなくてもよい。いくつかの態様は、消費されるメモリ量または求められる処理時間を制限することなどの性能上の理由で一方のタイプまたは他方のタイプのMAXを課すことができる。MAXの制限により、他の特性(領域のサイズなど)がそれに応じて調整されなければ、カバー度が低下する可能性がある。
【0055】
プロセス200が、状態225での「どこでもカバーする」に設定された開始パラメータで呼び出されると、モバイル装置もまた状態230で適切な辺縁を識別するためにマップを分析する。状態235で潜在的辺縁が制約SC1に対して評価される。辺縁(例えば、モバイル装置の現在位置に最も近い辺縁、または消費電力や到達時間などの費用計算もしくは概算機能を前提として到達するのに最も安価である辺縁)が選択され、対応する初期パラメータが240で(例えば、スネークSの特性、モバイル装置の現在の姿勢、およびマップの状態に基づいて)設定される。次いで、処理がサブセット212に従い状態255で進行する。240で設定されたパラメータに応じて、開始姿勢SPはその時点でのモバイル装置の現在の姿勢とすることができ、方向Dは、例えば、以前のD、モバイル装置の現在の方位、または探索されるべき辺縁の優先的方向を含む任意の値に設定することができる。
【0056】
制約SC1およびSC2は、良好な位置確認または他の挙動を確実にするためにモバイル装置を制限することができる。例えば、適切な制約は、モバイル装置がより限定されたアクセス可能性を有しかつ/または開始位置からより遠くにある領域を探索する前に開始位置に近接する表面の広範な空き領域を掃除するのに役立つことができる。制約SC1およびSC2は、スネークが少なくとも一定の閾値、例えば20cm、1メートル、または他の値(すなわち、例えば、モバイル装置直径、モバイル装置直径の1.5倍もしくは2倍、またはモバイル装置直径の他の倍数)の初期ランク長を有していなければならないように、長さの制限を含むことができる。制約SC1およびSC2は方位制限を含んでいてもいなくてもよい。制約SC1は最小長を有していてもいなくてもよいが、制約SC1は、SC2が長さの制約を有する場合、SC2の長さ制約の最小長より長い最小長を有することが有利である。例えば、一態様が0.5メートルの最小SC2長さチェックを有する場合、その態様は、好ましくは1.5メートルのSC1長さチェックを有することができる。2つの長さチェックの間に相関関係がなくてもよいが、いくつかの態様では、SC2の最小長はモバイル装置のほぼ直径(または、移動方向に直交するほぼ最大断面積)に相当し、いくつかの態様では、SC1の最小長はその寸法の約3倍である。他の態様ではこの比は異なり、他の態様ではかかる相関関係はなくてもよい。
【0057】
SC1の長さ要件がSC2の長さ要件より大きいことは、サブセット212の間に蓄積してきた位置確認またはマッピングの誤差により、実際にはモバイル装置が既に表面のそうした部分をカバーしているのに小さいスネーク辺縁が存在することをマップが示すことになりうるという、観測される可能性の責任をとるのに役立つ。一方、サブセット212の間、より小さい辺縁を選択することは、モバイル装置が表面のアクセス可能な部分をより完全にカバーするとともに、そうでなければ後続の処理によって対処されるかもしれないマップ内の辺縁の存在を減じるのを促進するのを確実にするのに役立つことが観測されている。
【0058】
図1から想起されるのは、状態135および140が例示の態様で繰り返され、その結果、プロセス200は、SC1を満たすスネークSがない(または場合によりSC1を満たすスネークが閾値数より少ない)ことが見出されるまで、開始パラメータ「どこでもカバーする」で呼び出され、プロセス200が状態「辺縁がない」で終了する。したがって、モバイル装置は、少なくとも一つのそのような辺縁が存在する限り、マップから辺縁を選択し続ける。
【0059】
例示のプロセス200は、周辺カバー中にスネークが見出された場合、状態250において「作られたスネークをカバーする」に設定された開始で呼び出すこともできる。カバーするためのパラメータは、スネークSが状態235の間に見出されたときにそのまま設定することができる。
【0060】
これまで説明してきたことおよび他の図で示されることは矩形形状の領域を含意しているが、この方法およびシステムは任意の形状の領域に適用することができる。例えば、表面は、最初のモバイル装置の位置から放射状に広がる3つ以上の領域に分割することができる。このような例では、「左へカバーする」および「右へカバーする」という用語は、「扇形nをカバーする」(ただし、「n」は扇形を識別する)などに変更されるであろう。方位、領域寸法、最小長などの他のパラメータもまた、このような状況で幾何形状の変更を反映するように調整することができる。
【0061】
スネーキングアクションおよびナビゲーション
上記に、スネーク、スネーキングアクション、およびスネークパラメータを確立すること、について言及されている。例えば、
図2のプロセス200の状態275では、スネーキングアクションは、
図5に示されているプロセス500などのプロセスによって実行することができる。
【0062】
一般に、スネーキングアクション(スネーキング)は、現在の領域によって任意に制限することができる。また、モバイル装置が表面を横断するときに、マップは、以下のうちのいくつかまたはすべてを含むがそれに限定されるものではない情報で更新される。すなわち、障害物の位置、表面の横断済み部分、ハザード部分(例えば、表面材料の変化、高度の変化、強風の場所もしくは特定の化学物質が存在する場所、または所与の態様にとってハザードとなりうる他の特性)、位置確認信号の存在/不在、などの情報である。
【0063】
例示のスネーキングプロセス500への入力パラメータは、スネークの起点位置および方位と、所望のスネーキングアクションの方向(向きまたは方位)と、ランクの初期長さおよび間隔と、を含むことができる。例示の態様では、スネーキング方向およびスネークの起点方位は単一のグローバル地図に対するものである。一例の態様で使用されうるようなこれらのパラメータは、
図6に示されている。境界線610を有する領域が確立されている。スネークの起点姿勢(すなわち、スネークアクションの開始時のモバイル装置の方位)は姿勢620であり、姿勢620は、一般性の喪失なしにかつ開示を簡略化するために、論理北方位を有するように設定される。南、東、西、および斜めを含む他の方位が用いられてもよい。例示のランク630は初期姿勢の軸線と直交または実質的に直交しているが、他の態様は初期方位の軸線に対して斜めかあるいは平行に走るランクを有することができる。このような状況では、
図5で参照されている方向および他のパラメータのうちのいくつか、ならびに同図に関連する説明は、それに応じて変化するであろう。ランク630は互いに平行であり、例示の態様では、ランクの間隔650で均等に離間されている。
【0064】
いくつかの態様では、ランクの間隔650は約0.5メートルである。他の態様では、ランクは、予め定義されるが一定でない間隔を有することができる。ランクの間隔650は、一つのランクをたどる間にモバイル装置によって影響を受ける(横断されるかまたは動作を受ける)表面の一部が次のランクをたどる間に影響を受ける表面の一部と部分的に重なり合うように、モバイル装置の寸法または機能特性(例えば、モバイル装置の真空掃除機の吸引範囲またはモバイル装置の種まき機の分散剤の範囲)に関連することができる。重なり合う部分は、態様に応じてより大きくてもより小さくてもよく、状況次第とすることができる。例えば、薄いカバーが所望される場合、例えば、いくつかのタイプの植え付けの間、またはおそらく環境中に送出すことになる材料を分散させるとき、ランクの間隔はより大きくすることができ、例えば、モバイル装置のサイズの1.5倍もしくは2倍(もしくはそれ以上)または1メートルもしくは2メートルとすることができる。表面の反復処理が、芝を刈るなどのときに有利であるかまたは有害でない場合、例えば、ランクの間隔は0.25メートル以下などのより低いレベルに設定することができる。図示されているようないくつかの態様では、ランクの間隔が小さくなるほど、カバーにはより長い時間および/またはより多くの計算資源が必要になる可能性がある。ランクの間隔はまた、モバイル装置寸法の一つまたは複数分に相対することができ、例えば、寸法の0.25倍、0.5倍、1.0倍、1.25倍、1.5倍、または2.0倍とすることができる。
【0065】
ランクの長さは、ランクの間隔650の方向と直交する方向640に沿って測定される。矢印660は、モバイル装置がスネーキングするときに走行するランクに沿った方向を示す。したがって、
図6におけるモバイル装置は、北へランク1まで進み、時計方向に90度回転し、領域の境界線610に到達するまでランク1に沿って進むことができる。次いで、モバイル装置は、反時計方向に90度回転し、ランク2に到達するまで走行することができる。その時点で、モバイル装置は、反時計方向に90度回転し、ランク2に沿って走行するように進むことができる。このように、モバイル装置は、それが前のランクを横切った進路と反対の方向に各ランクを横切り、一般に北へカバーする方向に進んで、ランクに沿って「スネーキングする」。スネーキングアクションのこの例は、一態様が領域を横断するために使用することができる一ナビゲーション手法にすぎないが、
図5の状況で詳述される。
【0066】
図5に戻ると、同図は
図5A、
図5B、および
図5Cに分解されており、スネーキングアクションプロセスの例が概説されている。状態502でルーチンが始まる。状態504で、スネークのパラメータが設定され、現在のランクが第1ランクに設定される。状態506において、モバイル装置は、モバイル装置がまだそこにないのであれば、スネークの起点姿勢に移動する。状態508において、モバイル装置は、現在のランクに沿ってそのランクに伴う横断方向に移動する。以下で説明するように、いくつかの態様では、モバイル装置の移動は、現在のランクに沿ってまっすぐでなくてもよいが、ランクの上方かつ/または下方で移動しながら現在のランクをおおむねたどることができる。状態510において、モバイル装置は、それがランクの端に到達しているか、または現在の領域の境界線を横切ったかどうかをチェックする。どちらか一方の条件が真であれば、状態511において、ランクの端を越えた表面の部分が未探索であるかどうかを見るためにマップが分析される。
【0067】
条件が真であり、かつモバイル装置がランクの端に到達しているが領域の境界線には到達していない場合、現在のランクの長さは、状態513において予め定義された増分だけ延長することができ、ルーチンは状態508へループバックしてここでより長い現在のランクに沿って移動し続ける。ランク長の増分は予め定義される必要はなく、例えば、以前の長さの増分、ランクの以前の長さ、ランクの現在の端と領域の境界との間の距離、などに基づくことができる。動的にサイズ変更された領域を有する態様では、領域の境界線に到達すると、領域の長さは状態513で同様に延長することができる。状態513でランクを延長できなかった場合、辺縁を定義することができる。上述したプロセスや後述する辺縁カバープロセスなどにおけるマップの後続の分析により、スネーキングするためにその辺縁を顕在化させることができ、あるいはその辺縁はそうしたプロセスの実行中に探索することができる。
【0068】
条件511が偽である場合(例えば、ランクの端を越える表面の部分が以前に探索された領域の一部であるかまたは識別された障害物であるという理由で)、状態512において、現在のランクは一つずつインクレメントされ、横断する方向は以前の方向に対して逆にされる。いくつかの態様では、モバイル装置は、次のランクへ移動するのではなく、代わりに1ランク飛ばし、第2ランクへ、場合によってはさらに高いランクへ移動する。状態514において、モバイル装置は、一番上の(例えば論理北)領域の境界線を横切っていること、または現在のランクを横断する間に位置確認信号を喪失していること、を含む終了条件をチェックする。かかる条件のうちのいずれか(または指定されたサブセット)が真でありかつ(例えば、領域を動的に成長させることによるかまたは位置確認の代替信号もしくは手段を使用することにより)是正され得ない場合、ルーチンは状態516において終了し、例えば
図2の領域カバー状態280に戻る。いくつかの態様では、状態514の非常に重要なチェックは、中断ベースでまたは定期的に、ならびにまたはその代わりに、プロセス500などのプロセスの実行での設定点で実行される。条件514が偽である場合、モバイル装置は状態508に従って現在のランクに沿って移動し続ける。
【0069】
条件510が偽でありかつモバイル装置がランクに沿って移動している場合、モバイル装置は障害物に遭遇したかまたは障害物を検知した可能性がある。これは状態518でチェックされる。条件518が偽である(障害物は検知されていない)場合、モバイル装置は状態508に従い現在のランクに沿って移動し続ける。しかしながら、条件518が真である場合、図示したスネーキングなどのナビゲーション方法は、状態520でのマップの分析に少なくとも部分的に基づいて、3つの方法のうちの一つで障害物の検出を処理する。例示の選択肢は、(1)状態524でプロセス500から抜け出ること、(2)状態522で検知済み障害物の縁部を論理北方向にたどること、および(3)状態526で検知済み障害物の縁部を論理南方向にたどること、である。
【0070】
状態520での決定は様々な基準を用いて行うことができる。一態様では、それぞれが約1/3の場合または別の予め定義された比率で選択されるように、3つの選択肢のうちの一つが予め定義された確率を用いて選択される。別の態様では、ランダムもしくは疑似ランダムアルゴリズムが、どの選択肢が選択されるかを決定することができる。別の態様では、選択肢を選択する確率は、例えば前の結果に基づいて時間的に変化する(例えば、その選択肢が継続的スネーキングにつながると、その選択肢を将来選択する確率が高くなり、その選択肢がスネークから出ることにつながると、その選択肢を将来選択する確率が低くなる)。別の態様では、マップは、障害物の周りをナビゲートして現在のランクに再結合するかまたは次の(より高い)ランクまで横断する(例えば、障害物が現在のランクの横断可能な長さの残り部分に延びる場合)ために、モバイル装置を現在位置(すなわち、障害物の縁部における位置)から運ぶことになる複数の考えられる経路またはルートを南北にシミュレートするように分析される。経路の幾何学的長さとルートを通じて消費される資源(例えば、時間、計算資源、および電力に関して)とを含む様々な基準が、所望の経路を、したがって状態522において北に進むか状態526において南に進むかを選択するために使用することができる。
【0071】
状態528で、モバイル装置は、障害物の縁部を北方向にたどる間にそれが次のランクと交差しているかどうかをチェックする。交差している場合、ルーチンは状態512へループバックする。他の態様では、モバイル装置は、次のランク上のこの位置を記憶し、2ランクアップ、領域の境界線、障害物が領域の中に深く延びていてモバイル装置がそのせいでそれが縁部に最初に遭遇したときは西に移動していたのに今は例えば東に移動しているという兆候などの別のインジケーターに到達するまで障害物の縁部の周りを進み続けてもよい。それぞれのこのような決定点で(または決定点のサブセットで)、いくつかの態様は障害物の周りを進もうとし続けることを決定することができ、いくつかの態様は記憶された位置に戻ることができる。モバイル装置がかかる態様で最初のランクに戻ることができる場合、あるいは、図示の態様の状態532と同様に、モバイル装置が次のランクに到達する前に現在のランクに到達した場合、プロセス500は状態508で再開し、そこでモバイル装置は現在のランクに再合流し、それに沿って移動し続ける。
【0072】
条件532が偽である(モバイル装置が現在のランクと次のランクの間にあることを含意する)場合、モバイル装置は、障害物の縁部を最初の北の方向にたどる間に、モバイル装置が北へ移動し過ぎている(北方向の移動距離がランク間隔の1/2の2/3などの何らかの予め定義された閾値を上回っていることを意味する)かどうかをチェックする。条件536が真である場合、ルーチンを状態542で抜け出し、条件536が偽である場合、モバイル装置は状態538において領域の境界線を越えたかをチェックする。モバイル装置が領域の境界線を越えている場合、ルーチンを状態542で抜け出る。
【0073】
他の態様では、モバイル装置は、536または538が真である場合にルーチン500を抜け出ないことがあるが、代わりに、それが障害物に遭遇した最初のランク上の位置へ、または領域内にありかつ北へ行き過ぎてない任意の他の有効な位置へナビゲートして戻り、状態520に戻り、得られてマップ内に記録された新たな情報に基づいて決定することができる。例示の態様では、538での試験が偽である場合、モバイル装置はそれがある場所にとどまり、ルーチンは状態520へ戻り、そこで、マップは、最近のナビゲーション中にマップに追加されたモバイル装置の新たな姿勢および新たな情報に照らして分析される。他の態様では、モバイル装置は、状態520でルーチンを再開する前に、現在の位置とモバイル装置が縁部に最初に遭遇した位置との間の横断済み位置のいずれかに戻ることができる。
【0074】
状態520で選択肢(3)が選択された場合に同様かつ類似の状態をたどることができ、ルーチン500によりモバイル装置は状態526において南にある縁部をたどる。状態530において、モバイル装置は、それが現在のランクと交差しているかどうかをチェックする。モバイル装置が現在のランクと交差している場合、ルーチンは状態508へループバックし、モバイル装置が現在のランクと交差していない場合、モバイル装置は、534において、モバイル装置が北へ行き過ぎたというのと類似して定義される南へ行き過ぎたかどうかをチェックする(しかし、いくつかの態様は、北へ行き過ぎおよび南へ行き過ぎに対して異なる定義を用いることができる)。南へ行き過ぎもまた、以前のランクに到達していると定義することができる。モバイル装置が南へ行き過ぎた場合、スネーキングルート500は状態542で抜け出し、モバイル装置が南へ行き過ぎていない場合、モバイル装置は前述の538でのチェックを実行する。
【0075】
領域をカバーするように領域内でナビゲートするために他の手法を展開することもできる。例えば、モバイル装置は、起点から外方へスパイラルを描く円、正方形、または他の幾何形状に対応する経路を決めることができる。また、下にある経路方策(例えば、ランクまたはらせん形状のスパイラル)を用いるナビゲーション方法の場合、モバイル装置は様々な方法でその経路をたどることができる。モバイル装置は、例えば、上述したようにかつ以下に詳述するように経路をたどることができる。モバイル装置はまた、どちらの方向(例えば、「上方」または「下方」)にも経路をそれることもできる。例えば、モバイル装置は、平均してモバイル装置が経路に沿って移動するように、経路を中心または実質的に中心とする正弦波パターンで、あるいは経路の方向に偏倚した別の往復運動によって表されるつる様運動で掃くことができる。これらのナビゲーション手法を展開するいくつかの態様では、モバイル装置は一般に、おそらくはモバイル装置の機能性(例えば、掃き掃除またはモップがけ)に関連する理由で、あるいはモバイル装置の移動能力によって課せられた制限のために、経路直上ではない表面部分をカバーしながら経路をたどる。態様は、この基本的スネーキングルーチンのいくつかの変形態様を実施することができる。ランクを直線的にたどる代わりに、スネーキング手法を展開するいくつかの態様では、モバイル装置は、平均してランクをたどるが、ランクの上方または下方で横断することができる。これらおよびその他の動きを、領域をカバーするために用いることができる。
【0076】
周辺追跡/カバー
図3は、周辺追跡ルーチン300の一態様のプロセス例を示す。いくつかの態様は、ルーチン300を少なくとも部分的に呼び出すことができる。というのは、以前に見出された障害物の縁部および/または表面の境界をたどることが機能上の価値を有するからである。一例が、静電パッドでダスティングを行うように構成されたモバイル装置である。ダスティング(カバー)プロセスの終わりごろに周辺のダスティングを行うことにより、モバイル装置は、領域ベースの清掃の経過中に周辺の方へ追いやられたダストまたは屑を収集することが可能になる。周辺カバーの機能上の価値の別の例は、適切に構成された装置が幅木および家具の底を清掃するのを助けることができることである。
【0077】
いくつかの態様は、ルーチン300を呼び出して、表面の以前に探索されなかった部分を発見することにより、より完全なカバーを得るのを助けることができる。例えば、散らかった部屋において、床のアクセス可能かつ横断可能な部分のレイアウトは、表面の大きな横断可能な部分がモバイル装置の幅よりわずかに広い小さいつながり部でしかアクセスできないようなものである。周辺カバー中、領域カバー段階中に見落とされているかもしれない、これらの小さいつながり部のうちのいくつかなどの表面の各部分が識別される。そのような部分が識別された場合、モバイル装置は、新たなスネークカバールーチンに入ることにより、その部分を探索することができる。そのようなつながり部が見落とされる可能性のある一つの方法は、例えば、2つのランクの間、モバイル装置が第1のランクから第2のランクへ移動する端部とは反対側の両ランクの端部でつながり部が生じた場合である。周辺カバーは、以前に識別された障害物が移動または除去されているかどうかを発見する機会でもある。
【0078】
図1に関する論議から思い起こされるのは、マップの分析が探索すべきさらなる辺縁がないことを示してから、例示的なカバールーチン100により状態150で周辺カバーを呼び出すことができる(例えば、領域カバープロセス200は状態245で終了条件「辺縁なし」で抜け出ている)。この時点で、モバイル装置は通常、表面で領域ベースのカバーを行った後で、表面の大部分のマップを構成している。モバイル装置は、マップを分析し、そして状態310で制約PC1を満たす辺縁を列挙することにより、周辺カバー段階300を開始する。制約PC1は、周辺カバーする対象となる辺縁を表す。例えば、PC1は、それが、探索済み位置と占有済み位置の間にある、かつ/または探索済み位置と未探索位置(例えば、スネーキング中に横切られなかった位置)との間にある、周辺カバーされたことがなくかつ表面内にある辺縁を含むようなものでよい。
【0079】
制約の分析は、モバイル装置または他の処理装置によって知られているような表面に対して行われる。例えば、制約の分析はマップに対してまたはそれを用いて行うことができる。マップは、ある規定サイズの分離したセルの表面上の位置に印を付けることができる。セルのサイズは、態様によって異なりうるものであり、状況(例えば、モバイル装置の機能、環境、およびモバイル装置上のセンサを含む)に応じて0.5平方センチメートル以下から0.5平方メートル以上に及ぶことができる。セルは、正方形、さらには定形である必要はないが、円形、長方形、六角形、または他の閉じた形状とすることができる。いくつかの態様では、これらのセルは、占有済み、探索済み、などの特性に関連付けられる。
【0080】
他の態様はマップ用の他の構造を使用することができるが、特性を有するセルのこうした命名法は、セルをカウントすることによって決定される長さに基づく、PC1の別の可能な制限を例示するのに役立つ。状態310で分析を行うとき、モバイル装置は、開始姿勢Pでその分析を開始し、辺縁に沿って進み、カバーされたことがない辺縁上のセルをカウントすることができる。カウントがPC1の制限によって示された数に達し、PC1の他の制限が満たされた場合、モバイル装置は、PC1を満たす、Pから始まる辺縁を見出している。これは、マップのセルのカウントが長さパラメータの代用とすることができる一つの方法である。本明細書において開示される他の分析もまた、マップを用いてかつマップ内の情報に全体的もしくは部分的に基づいて行うことができる。
【0081】
PC1もまた、SC1およびSC2の最小長要件と同様の最小長要件を有することができる(例えば、モバイル装置の直径の3/4未満、20cm、モバイル装置の直径など)。これらの値もまた、SC制約およびPC制約の中にセルのカウントとして保存することができる。制約の中に最小長の制約または限度を有することの利点は、小さいもしくはわずかなオープンスペースの探索を回避すること、小さい領域をカバーするためにカバールーチンを中断するのを回避すること(例えば、そうすると観測者に予想外に見えることがあるため)、および、マップ内のノイズ(例えば、センサの偏差に起因しかつ実際の表面の辺縁に対応しないマップ辺縁を示すことができるマップ内の小ギャップ)を反映すること、を含むが、それらに限定されるものではない。
【0082】
未探索の領域は、少なくとも2つの理由でこの分析で表面の占有済み部分と同じように処理することができる。一つは、モバイル装置が、領域ベースのカバーをする間に、モバイル装置の横断経路のせいで障害物に関するまばらな情報しか有することができないことである。もう一つは、いくつかの態様が、表面の以前に探索されなかった部分を探索するために周辺カバーを実施することができることである。表面の未探索部分は、障害物を含んでいる合理的な可能性がある場合があり(例えば、表面の未探索部分は、その部分が障害物に最も近くにあるために探索されないことが多い)、表面の未探索部分が障害物で完全には構成されていない場合、表面のそうした部分への探索は、カバーを最大限にしようとするものなどのいくつかの態様で所望される。
【0083】
状態315で、状態310の辺縁の列挙により、PC1を満たす辺縁があればそれを列挙または識別されたかどうかに基づいて決定がなされる。適当な辺縁が見出されなければ、周辺カバールーチン300は、状態370で終了条件「周辺辺縁がない」で終了する。図示のプロセス100では、このことは、状態160でカバープロセス100の実行の終結につながる。辺縁が見出されれば、状態320で、機能Fn1を最適化する辺縁Fr1がカバーのために選択される。Fn1は、場合により以前に論じられたものと同様とすることができる原価計算機能またはランキング機能である。
【0084】
例えば、ランキング機能は、モバイル装置の現在の姿勢から辺縁までの距離または辺縁に到達するための電力コストもしくは時間、辺縁の長さ(辺縁が長いほどより重く重要性を評価されることができる)、ならびに/あるいは辺縁に沿った位置確認信号の品質(例えば、信号の品質が良いほどより重く重要性を評価されることができるが、いくつかの態様では、例えばモバイル装置が長時間動作するほど弱い信号を処理する能力が低下する場合など、弱い信号を最初に選択してもよい)を含むパラメータに基づいて識別または列挙された辺縁をランク付けすることができる。Fn1による最高位の辺縁が最初にカバーされる。他の態様は、利用可能な辺縁からランダムにまたは他の方法で選択することができる。一態様は辺縁までの距離を唯一のファクタとして使用し、他の態様は他のパラメータを組み合わせたものを使用することができる。
【0085】
状態320において辺縁が選択されると、状態325で、モバイル装置は辺縁の開始位置へナビゲートし、状態330で周辺追跡またはカバーに従事する。周辺カバーモードになると、モバイル装置は、状態335、340、345、350、および355を含むループを実行する。モバイル装置は、周辺追跡をいつ終了すべきかを決定するために、340でモバイル装置の現在位置から始まる辺縁を周期的に評価しながら、状態335で周辺をたどる。周辺をたどることは、いくつかの態様では、周辺のソース(例えば、弱信号または物理的障害物)を検出し、そのソースに沿ってナビゲートするためにモバイル装置に結びついたセンサを使用することにより、例えば、ソースに対する接線方向の偏りを伴って、そのソースに対して移動させるのとそのソースから遠ざけるのとを繰り返すことによって行われる。これは、モバイル装置が、マップ内の情報を更新するか、修正するか、あるいは増やす一つの方法である。例えば、マップが、その位置が占有されたことを誤って示した場合、いくつかの態様の周辺追跡はそのデータを訂正することができる。というのは、周辺のソースをたどるプロセスがモバイル装置を論理的に占有された位置へ移動させるからである。
【0086】
状態340で、モバイル装置は、モバイル装置の現在位置から始まる辺縁を確認して、モバイル装置の以前のアクションが、以前に論じられた制約SC1に従って領域ベースのカバーに適している辺縁を作ったかどうかを決定する。いくつかの態様では、状態340においてSC1以外の制約を使用することもできる。辺縁が制約を満たしていれば、周辺カバールーチン300は、365で条件「スネークが作られた」で終了し、制御は、プロセス100の状態140およびプロセス200の状態250に従った開始条件「作られたスネークをカバーする」で領域ベースのカバーへ移動することができる。そうでない場合、周辺カバーは状態335に従い継続する。
【0087】
図3で、制約が満たされなければ、状態345の後で状態350、および状態355が行われることが分かる。いくつかの態様はこのように作動しうる。より一般的には、状態340および345ならびに状態350および355がモバイル装置が状態335に従い周辺をカバーし続ける間に周期的に実行される。例えば、状態340および345ならびに状態350および355は、設定時刻に、またはモバイル装置が指定距離を移動した後で実行することができる。状態の対は定期的に交互に起こってもよく、一方の対の複数の反復は他方の対の反復の前に作動することができ、あるいは、状態の対はより複雑なパターンでまたは別のアルゴリズムに従って実行することができる。
【0088】
いずれにせよ、状態350で、モバイル装置は、制約PC2に応じて現在のモバイル装置の現在位置から始まる辺縁を評価して、辺縁周辺カバーが続くべきかどうかを決定する。制約PC2は、モバイル装置が表面の探索済み部分と占有済み部分および/または未探索の部分との間の、例えば以前に周辺カバーされたことがなく、マップから出ておらず、かつモバイル装置が十分な位置確認信号を検出していない表面の部分にない辺縁を選択するという点で、制約PC1と同様とすることができる2つの制約の違いは、PC2がPC1ほど厳密でなくてもよいことである。例えば、PC1は長さが少なくとも1メートルの周辺の部分しか選択することができないが、PC2は、前方の、20cm、または1つもしくは2つのマップセルなどのより短い周辺カバーされたことがない距離を有する部分を、単純に選択することができる。このように、周辺カバールーチンは、それがPC1を満たす周辺部分を識別すると、周辺部分がPC2を満たしている限りその部分をたどり続けることになる。いくつかの態様は、ヒステリシスのためにこれを行う可能性がある。PC1およびPC2が同じであるかまたは十分な差異がなければ、周辺カバーは、PC1/PC2失敗となる程度に十分な周辺の部分がカバーされるとすぐに停止するかもしれず、周辺カバーにより、周辺の比較的わずかしか実際にカバーされないことになる。
【0089】
モバイル装置が、それが既にカバーしているか、表面の境界を横切ろうとしているか、または(例えば)不十分な位置確認信号を有すると分かっている表面の以前に見出された部分に接近する周辺の各部分をカバーし始めると、制約PC2は失敗となり始め、状態355でモバイル装置は、状態360で終了条件「周辺がカバーされた」で終了することに決定する。この場合、例示されているような制御プロセス100のいくつかの態様は、領域ベースのカバーを開始条件「どこでもカバーする」で呼び出すことにより、例えば、プロセス100の状態140がプロセス200の状態225を呼び出すことにより、領域ベースのカバーがマップまたは表面のどこかで可能であるかどうかを見るためにチェックすることになる。
【0090】
部屋カバーの例
図7〜
図14は、本発明に従ってカバーするモバイル装置の一例を示す。
図7は、内部にいくつかの家具(705〜717)を収容する部屋700ならびに初期姿勢でのモバイル装置720の平面図を示す。モバイル装置は床上に置かれており、(例えば、ボタンを押すこと、遠隔制御を用いること、などによるモバイル装置との直接的な相互作用により、あるいはタイマーやプログラマチックインタフェースなどの間接的なアクションにより)カバーを開始するよう指示される。カバールーチン100の状態110が実行される。マップは本質的に中身が空であり、いくつかの態様ではマップはセルを有していない。他の態様では、セルはすべて、初期化されていないかまたは未探索として印が付けられる。モバイル装置は、間取りおよび家具の位置に関する情報をまったくまたは実質的に有していない。
【0091】
図8を参照すると、モバイル装置は状態120を実行し、領域カバーを「右へカバーする」で呼び出す。プロセス200によれば、領域1の境界ボックス810が確立される。境界線810は破線として示されており、たまたま部屋700の境界を越えて延びている。モバイル装置はスネーキングアクションを実行し、その結果、モバイル装置は経路850をたどることになる。モバイル装置が現在のランクに沿って走行するときに、モバイル装置は、それが障害物にぶつからずに横断することができたという、領域の各部分に関するマップ内の情報を入力する(それらの位置830にカバー済み/横断済みとして印を付ける)。モバイル装置が、壁や家具などの障害物にぶつかるか、そうでなければそれを検出したときに、モバイル装置は、障害物840の予測位置に占有済みとして印を付け、次のランクに到達するまで障害物の縁部をたどる。次いで、モバイル装置は、そのランクに沿って以前のランクの走行方向とは逆の方向に走行する。
【0092】
図8に示されているように、モバイル装置はドア725を通って部屋700の外側へ走行するが、位置確認信号が表面部分820における予め定義された閾値未満に減衰するため、モバイル装置は部屋を離れていることを検出することができる。これが検出されると、モバイル装置は向きを変える/回転する。一態様では、位置確認信号の減衰を検知するのは、部屋700の天井上に投影される一つまたは複数の赤外線位置確認信号のレベルを測定し、そのレベルが予め定義されたレベル未満に低下していることを検出することによって実行される。別の態様では、ユーザは、例えば
図17に示されかつ同図の状況で以下に論じられるように、ドアの近くに「仮想境界線」を置くことができる。
【0093】
モバイル装置は、カバーすべきスネーク辺縁がそれ以上存在しないため、領域1をカバーするのを完了し、領域カバールーチンから出る。部屋700の左右の壁に沿った辺縁(領域810内に塗りつぶされていない部屋の境界線として表示されている)は、それらが小さ過ぎるため、関連するSC2の基準を満たしておらず、領域の最上部に沿った辺縁は、それが間違った方向を向いているため、基準を満足していない(すなわち、マップ分析または他の分析はそれが北方向に開いていることを示しているが、モバイル装置は南方向に現在探索している)ために基準を満たしていない。
【0094】
次いで、モバイル装置は状態130へ進み、領域カバーを開始条件「左へカバー」で呼び出す。これは
図9に示されている。新たな領域1が境界ボックス910で確立される。スネーキングアクションは、モバイル装置が領域1の境界ボックスの最上部に到達し、スネーキングすることによってカバーされうる内部辺縁がそれ以上存在しないときに、モバイル装置が位置920にある状態で終了する。
【0095】
図10は、モバイル装置が、「左へカバーする」で呼び出された領域カバーの実行中に第2の領域(領域2)をカバーするときの、モバイル装置およびマップの例を示している。この図は、障害物705の左へカバーする間、位置確認信号の干渉によりモバイル装置はマップ内に壁1040の位置を不適切に記録することを示している。類似効果には、位置確認ルーチンの品位低下、モバイル装置を垂直ではなく斜めに一時的に移動させる機械的故障(おそらくモバイル装置が障害物705にぶつかることにより修復される故障)などの他の原因があるはずである。人、ペット、または他の一時的障害物が存在する場合にも類似効果が生じうる。いずれにせよ、マップは誤って、1030が辺縁ではないが、表面の占有済み部分の縁部であることを示す。その誤りの結果として、モバイル装置は、カバーされうる領域内の表面の一部がまだ存在していても、領域カバーを終了する。次いで、モバイル装置は状態140を実行するが、マップを分析し、カバーされるべき辺縁がそれ以上ないと決定したときに(この場合もやはり、潜在的辺縁のどれもが関連する基準を満たすほど十分に大きくはないため)終了条件「辺縁なし」で抜け出る。
【0096】
図11を参照すると、モバイル装置は状態150を入力し、周辺カバーを呼び出す。モバイル装置は、マップのコスト評価機能および分析に基づいて位置1120へ移動し、家具の周りの周辺カバーを開始する。周辺カバールーチンによりモバイル装置は誤った障害物の位置を通過する。というのは、いくつかの態様では、周辺追跡/カバーは、ひとたびそれが始まると、障害物に対して純粋に反応するからである。マップ分析はカバーすべき周辺部分を選択したが、態様は、物理的センサに依拠して障害物をたどり続け、センサの観測に基づいてマップを更新した。誤った障害物の位置1030を通過すると、スネーキングアクションによってカバーされうる新たな辺縁を作る。周辺カバールーチンがSC1を満たす新たなスネーク辺縁を検出すると、周辺カバールーチンは終了条件「スネークが作られた」で抜け出る。
【0097】
図12を参照すると、カバー制御ルーチン100は、開始条件「作られたスネークをカバーする」で領域カバーへループバックする。モバイル装置は、
図11の周辺カバーアクション1110によって作られた大きい辺縁に沿って始動してスネーキングする。
【0098】
図13を参照すると、スネークカバーするのにふさわしい第2の辺縁がマップ内に位置する。モバイル装置は、経路1310をたどってその辺縁まで移動し、スネーキングアクションを行う。その後、スネークカバーするのにふさわしい辺縁はそれ以上存在しない。領域カバーは存在しており、周辺カバーが再入力される。
【0099】
図14を参照すると、モバイル装置は、以前の周辺カバーアクション中にカバーされることのなかった周辺部分をすべてカバーする。この例では、新たなスネーキング可能な辺縁は周辺カバーアクションによって作られない。制御ルーチン100は状態160で抜け出る。
【0100】
カバー領域の動的サイズ変更
上述のように、領域およびその境界ボックスの定義は、態様によって、さらには単一の態様においても異なる。動的領域の別の例として、領域が定義され、その領域に関する情報が、モバイル装置が間取りを含む表面に関する知識を得る前にマップ内に保存されうる。いくつかの態様では、これらの予め定義された領域は、モバイル装置がそのランクを一方の(未知の)壁境界から反対側の(未知の)壁境界まで延長しないような形で定義することができる。というのは、領域は両方の境界を包含しないからである。その結果は、例えば人間観察者に論理的または属性として断定可能でないスネーキングアクションおよびカバールートとすることができる。
図15(B)は、一つのそのような状況を示している。領域は予め定義された固定サイズを有しており、境界ボックス1520がモバイル装置の位置1530に対して位置付けられたときに、領域は下壁1510を含まないかまたはそれを越えて延びない。
【0101】
動的にサイズ変更される領域を有する態様の例では、初期境界ボックス1520(例えば、一つ2m×1.5m)が確立されうる。しかし、領域の長さは、モバイル装置がランク1540を横断し始めるので、モバイル装置の経路内で障害物が検知されるまで延長され、その時点で領域は拡大するのを中止し、
図15(B)に示されているように最終寸法を有する。
【0102】
遅延カバー
いくつかの表面構成では、
図2に示しかつ上述したような領域ベースのカバーにより、モバイル装置は遠距離を走行して辺縁に到達することができる。一例が
図16に示されている。キッチンアイル(kitchen isle)1610が現在の領域1 1620を二等分に分割していて、ポイントAからポイントBへ行く経路が領域内に存在しないようにする。1605の探索/カバーをする間、モバイル装置は辺縁F
AおよびF
Bを発見したものとする。図示のプロセス100、200、300、および500によれば、領域1の辺縁F
Aをカバーした後、モバイル装置は、辺縁F
Bに到達するために、表面のカバー済み部分の上をバック走行しなければならない。遅延カバーを用いる一態様では、モバイル装置は代わりに、例えば遅延辺縁のリストに辺縁F
Bを追加し、Cへ進むことになる。その場合、カバーの順序は、A、C、B、Dとすることができる。遅延カバーのない代替の順序は、A、B、D、C(あるいはA、B、C、D)でもよい。両選択肢とも、遅延カバーを用いるのに比べて、以前に探索された空間の上をさらに走行する必要があり、観察者にあまり驚きでない挙動となる。遅延カバーを用いる態様は、これを考慮に入れたスネーキングもしくは横断プロトコルを有することができる。
【0103】
一態様では、総合カバー効率およびモバイル装置の予測可能性は、領域の複数部分のうちのいくつかをカバーするのを遅らせることによって高められる。例えば、モバイル装置は、辺縁をカバーする「コスト」が高過ぎると、その辺縁のカバーを遅らせることを決定することができて、モバイル装置の現在の状態が与えられる。このコストは、辺縁までの距離と現在の領域内で実行される最大スネークランクの長さまたは他の測定基準との比とすることができ、資源コストまたは時間を組み込んだものを含む。遅延辺縁は、マップと同様の態様でまたはマップの一部としてリストに保存することができる。遅延辺縁は、モバイル装置が領域ベースのカバーを完了した後、モバイル装置によってカバーすることができる。モバイル装置は、どの遅延辺縁が最初にカバーするのに最適であるかを再び決定することができて、マップに埋め込まれるときに、モバイル装置の現在の状態および表面の知識が与えられる。上述したような様々な測定基準法を用いることができる。例えば、一態様では、辺縁開始までの距離はメートル法が用いられる。
【0104】
限定カバー
限定されたカバーモードにより、いくつかの態様は表面のいくつかの部分のカバーを他の部分よりも優先させることが可能になる。他の限定されたカバーモードは、モバイル装置が表面の特定部分を探索するのを妨げる。この種のモードは、例えば、モップがけロボットが床のカーペットを敷いた部分をカバー(かつモップがけ)するのを妨げるために使用することができる。位置確認システムで構成されたモバイル装置は、取外し可能なまたは一時的な信号エミッタを使用することにより、外部介入(ユーザなどによる)の必要性なしに、表面の限定された部分内をカバーする(またはその部分を回避する)ようになされうる。例えば、モバイル装置の構成に応じて、またモバイル装置がどのような種類の信号センサを有しているかに応じて、IRエミッタまたはマグネットストリップを戦略的に配置することにより、モバイル装置が通らない仮想境界線を作ることができる。
【0105】
図17に示されているこの種の一態様では、初期姿勢1740のモバイル装置が、初期姿勢1740に対して右上四半分1710だけをカバーするように限定される。上述のカバー手順は、仮想壁1730および障害物の検出を処理し、それによってモバイル装置が障害物を通過しないようにすることにより、この制約に適合するように構成することができる。例えば、モバイル装置を仮想壁1730の一方の側または他方の側に置くことにより、ユーザは、モバイル装置が領域1710の中で動作するか領域1710の外で動作するかを制御することができる。
【0106】
重複カバー
いくつかの例では、同じ位置の横断を繰り返すのを回避し、それによってカバーをより早く終了するように、かつ/または、電力などの資源およびモバイル装置によって使用されるクリーニング用品などの任意の消耗品の出費を低減するように、領域間の重複を低減するかまたは最小限に抑えることが有利である。いくつかのこのような例でも、様々なファクタが領域間の重複をもたらす可能性がある。一部のこのような重複は、ナビゲーションおよびランクの状況で論じられていることと同様の理由で、意図的であってもよい。例えば、一態様は、領域が互いに「混ざり合う」ように見えるようにするのを助ける、領域間の継ぎ目がカバーされるようにする、などの美的もしくは機能的要件(例えば、モップがけ機能または掃き掃除機能に関係する要件)に対して、互いに部分的に重なり合う領域を定義することができる。いくつかの態様は、マップと実際の表面との間の不一致を反映するのに役立つように重複する領域を意図的に定義することができる。表面を(例えば、上述した累積されたセンサ誤差または他のファクタのために)不正確に反映するマップ上の領域を画定する一態様は、このような誤差を補償する助けとなるように重複する領域を意図的に定義することができる。別の態様は、マップ上の重複する領域を定義しなくてもよいが、モバイル装置に、例えばマップ内の誤差のために重複する表面位置をカバーさせる。別の態様は、カバーの他の局面を容易にするために重複する領域を画定することができる。例えば、非重複領域がスネーキングできるには小さ過ぎることがあり、したがって、隣接する領域と部分的に重なり合うより大きな領域を定義することができる。これらは、非重複領域の方への偏倚を伴う態様でも、任意の2つの領域の間に依然として10%、25%、33%、50%、または他の百分率重複が依然として存在しうる理由の例示的な例にすぎない。
【0107】
しかし、特定の状況(すなわち、場合により特定の開始姿勢を併用する特定の表面レイアウト)では、上述したようなカバールーチンは、表面の論理的に到達可能な部分を一貫して検出しそこなうことなどにより、表面の一部を依然として系統的に無視することができる。
【0108】
この潜在的リスクは、重複する(したがって、論理的に冗長な)カバールーチンを実行するいくつかの態様によって緩和することができる。そのような一態様では、モバイル装置は、状態135および140の前に領域ベースの清掃プロセス200への2つの追加の呼び出しを行うことにより「十字交差」カバーを実行するように構成される。前述の「右にカバーする」および「左にカバーする」の呼び出しは、時計方向に90度の回転および反時計方向に90度の回転を伴うのに対して、領域ベースの清掃の「下方へカバーする」および「上方へカバーする」での呼び出しは、180度の回転および180度の第2の回転を伴う。そうでない場合は、プロセスは前述したものに類似することができる。その結果は、
図18に示されているようなカバー手法である。この種のモバイル装置は、
図18Aおよび
図18Bに示されているように表面の右半分および左半分をカバーするのに加えて、
図18Cおよび
図18Dに示されているように表面の上半分および下半分をカバーする。一般に、4つの呼び出しを他の順序で行うことができる。前述のように、呼び出しに続いて開放領域のカバーおよび周辺のカバーを行うことができる。
【0109】
表面を4つの重なり合う四半分に分割することにより、モバイル装置は同じ領域を2つの直交方向にカバーすることが可能になる。この種の十字交差カバーは、特定の態様で他の利点を有することができる。例えば、十字交差カバーは、清掃ロボットにより洗浄液が乾燥して床上に残るストリーキングパターンを低減するとともに、芝刈りロボットまたは真空掃除ロボットが美的により満足のいくパターンを作り出すことを可能にすることができる。
【0110】
物理的構成要素
図4は、適切に構成されたモバイル装置の物理的構成要素の例を示す。この種の装置は、デッド・レコニング・センサ490および/または信号センサ470を具備することができる。これらのセンサ構成要素は、一つまたは複数の処理装置410と通信することができる。処理装置は、例えば、特別に構成されたチップ、またはソフトウェアによって構成されるより一般的な処理装置とすることができる。処理装置はそれ自体の記憶装置を具備することができ、かつ/または、装置400は、(例えば、本明細書に記述されている方法の一部またはすべてを実行するソフトウェアおよびデータを保存するために)追加のメモリまたは記憶装置420を具備することができる。いくつかの態様では、センサ470および/または490はデータをメモリ420に直接保存することもできる。開示されているものの局面を実行するためのソフトウェアは、ROM、フラッシュメモリ、磁気メモリ、光メモリ、および/または他の形の永続記憶装置に保存することができるが、揮発性記憶装置(例えばRAM)も同様に使用することができる。データは、揮発性メモリ(例えば、システム電源が切れたときに消去することができる)および/または不揮発性メモリ(装置の電源が切られ、その後再び電源が入れられた場合でも後のアクセスのためにデータを保存する)に保存することができる。処理装置410および記憶装置420は、位置確認に直接関係しない機能的目的で使用することもできる。例えば、モバイル装置100は、清掃や監視などのタスクを実行するとき、あるいはセンサ470および490からのデータを解釈するときに、処理装置410および記憶装置420を使用することができる。他の態様では、プロセッシング410および記憶装置420はカバー専用であり、装置は他のタスクのための追加の計算能力を含んでいる。
【0111】
センサ490は、広範囲のデッド・レコニング・センサ、運動センサ、レーダータイプの装置、ソナータイプの装置、および他の形態の障害物検出装置を含むことができる。専用の障害物検出器があってもよく、隅はコーナ検出器などで供給することができる。例えば、加速度計495が存在していてもよい。
【0112】
処理装置410および/または記憶装置420は、スクリーンもしくはディスプレイ、光および音響システム、データ出力装置(例えば、バス、ポート、および無線もしくは有線ネットワーク接続)などの様々な出力機構に機能的に接続することができる。モバイル装置400は、425にUSBポートなどのポートで示されている。処理装置410および/または記憶装置420は、車輪480を具備することができる移動システム、または無限軌道または垂直尾翼および舵などの他の形態の移動システム、ならびに推進源に機能的に接続される。移動は、モータ(駆動モータまたはサーボモータを含む)、ブレーキ、作動装置などの様々な制御装置に送られるモバイル装置を新たな姿勢に移動させる(または、清掃機能などの別の活動を実行させる)ことができる信号にかかわりうる。この新たな姿勢への移動は、センサから処理装置へ追加の出力を次々にトリガすることができる。態様例は、ARM7処理装置と、ソフトウェア用の256kのフラッシュROMと、データ用の64kのRAMとで構成される。これらは最小限の要件でも最大限の要件でもない。すなわち、本明細書において開示されるものの一部またはすべてが、より小さいまたはより大きい処理能力および記憶容量で実現することができる。他の態様は、異なる処理装置、およびより大きいまたはより小さいメモリ容量を有する異なるメモリ構成とすることができる。
【0113】
モバイル装置400には、電源430およびユーザ入力用制御パネル405も示されている。清掃したり他のタスクを実行したりするための機能構成要素を含むが、それに限定するものではないより多いまたはより少ない構成要素が存在することもできる。
【0114】
広範囲に適用可能
本明細書において開示されるシステムおよび方法は、ハードウェア、ソフトウェア、ファームウェア、またはそれらを組み合わせたもので実行することができる。ソフトウェアは、汎用コンピュータ、特殊用途コンピュータ、またはそれらを組み合わせたものにアルゴリズムを実装するように構成されたメモリ(例えば、ソリッド・ステート・メモリ(例えば、ROM、EEPROM、FLASH、RAM)、光メモリ(例えば、CD、DVD、ブルーレイディスクなど)、磁気メモリ(例えば、ハード・ディスク・ドライブ)などの非一時的有形メモリ)に保存されたコンピュータで読み取ることができる命令を含むことができる。
【0115】
いくつかの態様はいくつかの構成要素例を有するものとして例示または説明することができるが、追加の構成要素、より少ない構成要素、または異なる構成要素が使用されてもよい。さらに、本明細書において論じられたプロセスに関して、様々な状態を異なる順序でまたは実質的に並行に実行することができ、すべての状態に到達する必要はなく、より少ない状態、追加の状態、または異なる状態を利用することができる。
【0116】
諸態様の様々な局面および利点について必要に応じて説明してきた。必ずしもすべてのそのような局面または利点が任意の特定の態様に従って達成されうるものではないことを理解されたい。したがって、例えば、様々な態様が、本明細書において教示または示唆されうるように他の局面または利点を必ずしも達成することなく、本明細書において教示されているように一利点または一群の利点を達成または最適化する形で実施されうることが認識されるべきである。さらに、諸態様は複数の新規な特徴を含むことができ、この特徴うちのどの一つも、もっぱらその態様の望ましい属性に関与するものではなく、本明細書に記述されているシステム、装置、方法、および技術を実施するのに不可欠なものである。