自律型モバイルロボットは、ミッション(たとえば、モバイルクリーニングロボットによってクリーニングされることとなる部屋またはフロア表面エリアに係わるクリーニングミッション、および、そのようなエリアをクリーニングするためのスケジュールなど)を実行するために、ローカルでまたはリモートで制御され得る。ユーザーは、モバイルデバイス上のユーザーインターフェースを介して、自律型モバイルクリーニングロボットと相互作用することが可能である。モバイルデバイスは、自律型モバイルロボットのマッピングシステムによって生成される環境のマップを表示することが可能である。ユーザーは、モバイルデバイスを使用し、クリーニングスケジュールを生成させることが可能である。自律型モバイルクリーニングロボットは、特定の時間において、または、特定のイベントが起こったときに、指定されたエリアをクリーニングするためのクリーニングミッションを実行することが可能である。たとえば、ユーザーは、1週間のうちの特定の日において、ロボットが家のエリアをクリーニングするように指示されたスケジュールを毎回提供することが可能である。代替的に、ユーザーは、ユーザーが仕事に出かけるときに、ロボットが家のエリアをクリーニングするように指示されたスケジュールを提供することが可能である。それらのエリアは、複数の部屋、廊下、物体などを含むことが可能である。
1年の特定の時間の間に、季節的なまたは環境的なイベントは、モバイルロボットの環境(たとえば、ユーザーの家など)の中のデブリ蓄積のレートを変化させる可能性がある。季節的なまたは環境的なデブリ蓄積イベントとも称されるそのようなイベントの例は、なかでも、花粉生産、ペットの換毛、および天候のイベントを含むことが可能である。たとえば、花粉生産は、一般的に花粉またはアレルギーのシーズンとして知られる1年の特定の時間において、比較的に高くなる可能性があり、それは、異なる温度、湿度、標高、降水、ならびに、木、雑草、および草の固有のアレルゲンが提示される種類を有する独特の生態系に起因して、地理的に変化する可能性がある。ペットの換毛は、1年のうちの異なる時間の間に変化する可能性がある。たとえば、ほとんどの犬は、1年の他の時間よりも春および秋の時期に頻繁に毛が抜け落ちる。冬に伸びたより長くて太い毛は、春に抜け落ち、夏に向けてより軽い毛によって交換される。次いで、夏の毛が、秋に再び抜け落ち、より重くて太い冬の毛によって交換される。正確なピーク換毛月は、天候、日照量、犬の品種、栄養、年齢、性別、生活環境および全体的な健康条件に応じて変化する。季節的な天候のイベントは、たとえば、泥が比較的に高いレートで家の特定のエリアの中へ持ち込まれる雨のシーズンまたは雪のシーズンにおける雨の日または雪の日を含むことが可能である。雨のシーズンまたは雪のシーズンは、地理的に変化する可能性がある。
季節的なデブリ蓄積イベントは、ユーザーによって実装される定期的なクリーニングスケジュールの有効性を低減させることが可能である。たとえば、季節的なデブリ蓄積イベントのない時間(たとえば、花粉または他のアレルゲンレベルが低いエリアにおける冬の時期、または、犬の換毛が最小である夏)に関して生成されるクリーニングスケジュールは、デブリ蓄積シーズンのピークの間に十分な量のクリーニングを提供しない可能性がある。他方では、過剰な季節的なデブリ蓄積(たとえば、追加的なクリーニング)を収容するように具体的に生成されたクリーニングスケジュールは、デブリ蓄積のピークシーズンを外して使用されるときに、不必要であり、エネルギーを浪費する可能性がある。
本発明者らは、季節的なまたは環境的なデブリ蓄積イベントに起因する家の中のデブリ蓄積の増加に対抗するための、改善されたパーソナライズされたクリーニングスケジュールに対する満たされない必要性を認識した。たとえば、季節的なもしくは環境的なデブリ蓄積イベントの存在下において、または、そのようなイベントを予想して、既存の「デフォルト」または定期的なクリーニングスケジュールは、たとえば、追加的な量のクリーニングを提供するために修正され得る。そのような季節的なまたは環境的なデブリ蓄積イベントの終わりに、クリーニングスケジュールは、たとえば、より少ない量のクリーニングを有するデフォルトまたは定期的なスケジュールに戻るように修正され得る。本文献のさまざまな例において説明されているように、季節的なまたは環境的なデブリ蓄積イベントに基づくクリーニングスケジュールは、モバイルロボットのクリーニング効率および有効性を改善することが可能であり、パーソナライズされたクリーニングによってユーザーの経験を強化することが可能である。
本明細書で説明されているモバイルロボットおよびスケジューリング技法またはその一部分は、インストラクションを含むコンピュータープログラム製品によって制御され得、インストラクションは、1つ以上の非一時的な機械可読ストレージ媒体の上に記憶されており、また、本明細書で説明されている動作を制御する(たとえば、調整する)ために、1つ以上の処理デバイス上で実行可能である。本明細書で説明されているロボットまたはその一部分は、1つ以上の処理デバイスと、さまざまな動作を実装するための実行可能なインストラクションを記憶するためのメモリーとを含むことが可能である装置または電子的なシステムのすべてまたは一部として実装され得る。
以下では、モバイルロボットおよびその作業環境が、図1~図4Bを参照して簡潔に議論されている。季節的なまたは環境的なデブリ蓄積イベントに基づいて自律型モバイルロボットのためのクリーニングスケジュールを生成させるためのシステム、デバイス、モバイルアプリケーション、および方法の詳細な説明が、図5から図10を参照して議論されている。
例示的な自律型モバイルロボット
図1および図2A~図2Bは、モバイルクリーニングロボット100の例の異なる図を示している。図1は、モバイルクリーニングロボット100の断面図を図示している。図2Aは、モバイルクリーニングロボット100の底面図を図示している。図2Bは、モバイルクリーニングロボット100の底面図を図示している。図1の断面図は、モバイルクリーニングロボット100の図2Aの横断指標3-3を通して取得される。また、図1は、配向指標の底部、上部、前部、および後部も示している。図2A~図3は、下記に一緒に議論されている。
クリーニングロボット100は、フロア表面50の異なるパーツからデブリ75を取り込みながらフロア表面50を自律的に横断する自律型クリーニングロボットであることが可能である。図2Aおよび図1に示されているように、ロボット100は、フロア表面50を横切って移動可能な本体部200を含む。本体部200は、クリーニングロボット100の移動可能なコンポーネントが装着される複数の接続された構造体を含むことが可能である。接続された構造体は、たとえば、クリーニングロボット100の内部コンポーネントをカバーする外側ハウジングと、駆動ホイール210aおよび210bならびに(クリーニングヘッド205の)クリーニングローラー205aおよび205bが装着されているシャーシーと、外側ハウジングに装着されているバンパー138などとを含むことが可能である。
図2Aに示されているように、本体部200は、実質的に半円形の形状を有する前部部分202aと、実質的に半円形の形状を有する後部部分202bとを含む。図2Aに示されているように、ロボット100は、駆動ホイール210aおよび210bとともに動作可能なアクチュエーター208aおよび208b(たとえば、モーター)を含む駆動システムを含むことが可能である。アクチュエーター208aおよび208bは、本体部200の中に装着され得、駆動ホイール210aおよび210bに操作可能に接続され得、駆動ホイール210aおよび210bは、本体部200に回転可能に装着されている。駆動ホイール210aおよび210bは、フロア表面50の上方に本体部200を支持している。アクチュエーター208aおよび208bは、駆動されるときに、駆動ホイール210aおよび210bを回転させ、ロボット100がフロア表面50を横切って自律的に移動することを可能にすることができる。
コントローラー(または、プロセッサー)212は、ハウジングの中に位置付けされ得、プログラム可能なコントローラー(たとえば、シングルボードコンピューターもしくはマルチボードコンピューター、ダイレクトデジタルコントローラー(DDC)、またはプログラム可能なロジックコントローラー(PLC)など)であることが可能である。他の例では、コントローラー212は、ハンドヘルドコンピューター、たとえば、スマートフォン、タブレット、ラップトップコンピューター、デスクトップコンピューター、または、プロセッサー、メモリー、および通信能力を含む任意の他のコンピューティングデバイスなどのような、任意のコンピューティングデバイスであることが可能である。メモリー213は、揮発性のまたは不揮発性のメモリー、リードオンリーメモリー(ROM)、ランダムアクセスメモリー(RAM)、磁気ディスクストレージ媒体、光学ストレージ媒体、フラッシュメモリーデバイス、ならびに、他のストレージデバイスおよび媒体などのような、1つ以上のタイプのメモリーであることが可能である。メモリー213は、本体部200の中に位置付けされ、コントローラー212に接続され、コントローラー212によってアクセス可能であり得る。
コントローラー212は、アクチュエーター208aおよび208bを動作させ、クリーニング動作の間にフロア表面50の周りでロボット100を自律的にナビゲートすることが可能である。アクチュエーター208aおよび208bは、前方駆動方向にロボット100を駆動させるように、後方方向にロボット100を駆動させるように、および、ロボット100をターンさせるように動作可能である。ロボット100は、フロア表面50の上方に本体部200を支持するキャスターホイール211を含むことが可能である。キャスターホイール211は、本体部200の後部部分202bをフロア表面50の上方に支持することが可能であり、駆動ホイール210aおよび210bは、本体部200の前部部分202aをフロア表面50の上方に支持する。
図1に示されているように、バキュームアッセンブリ118は、ロボット100の本体部200の中に(たとえば、本体部200の前部部分202aの中に)担持され得る。コントローラー212は、バキュームアッセンブリ118を動作させ、空気フローを発生させることが可能であり、空気フローは、クリーニングローラー205aおよび205bの近くの空気ギャップを通って、本体部200を通って、本体部200から外へ流れる。バキュームアッセンブリ118は、たとえば、インペラーを含むことが可能であり、インペラーは、回転させられるときに空気フローを発生させる。空気フローならびにクリーニングローラー205aおよび205bは、回転させられるときに、ロボット100の中へデブリ75を取り込むように協働する。本体部200の中に装着されているクリーニングビン322は、ロボット100によって取り込まれたデブリ75を閉じ込め、本体部200の中のフィルターは、空気フロー120がバキュームアッセンブリ118に進入して本体部200から排気される前に、空気フローからデブリ75を分離する。この点において、デブリ75は、空気フロー120が本体部200から排気される前に、クリーニングビン322およびフィルターの両方の中に捕捉される。
クリーニングローラー205aおよび205bは、アクチュエーター214aおよび214b(たとえば、モーター)に操作可能にそれぞれ接続され得る。クリーニングヘッド205ならびにクリーニングローラー205aおよび205bは、クリーニングビン322の前方に位置決めされ得る。クリーニングローラー205aおよび205bは、クリーニングヘッド205のハウジング124に装着され、ロボット100の本体部200に、たとえば、間接的にまたは直接的に装着され得る。とりわけ、クリーニングローラー205aおよび205bは、本体部200の下側に装着されており、クリーニングローラー205aおよび205bが、下側がフロア表面50に面しているときに、クリーニング動作の間にフロア表面50の上のデブリ75に係合するようになっている。
クリーニングヘッド205のハウジング124は、ロボット100の本体部200に装着され得る。この点において、クリーニングローラー205aおよび205bも、ロボット100の本体部200に装着されており、たとえば、ハウジング124を通して本体部200に間接的に装着されている。代替的にまたは追加的に、クリーニングヘッド205は、ロボット100の除去可能なアッセンブリであり、そこでは、クリーニングローラー205aおよび205bがその中に装着された状態のハウジング124が、ロボット100の本体部200に除去可能に装着されている。ハウジング124ならびにクリーニングローラー205aおよび205bは、ユニットとして本体部200から除去可能であり、クリーニングヘッド205が交換用クリーニングヘッド205と容易に相互交換可能であるようになっている。
制御システムは、1つ以上の電気センサーを備えたセンサーシステムをさらに含むことが可能である。センサーシステムは、本明細書で説明されているように、ロボット100の現在の場所を示す信号を発生させることが可能であり、また、ロボット100がフロア表面50に沿ってトラベルするときにロボット100の場所を示す信号を発生させることが可能である。
クリフセンサー134(図2Aに示されている)は、本体部200の底部部分に沿って位置付けされ得る。クリフセンサー134のそれぞれは、光学センサーであることが可能であり、それは、光学センサーの下方の物体(たとえば、フロア表面50など)の有無を検出するように構成され得る。クリフセンサー134は、コントローラー212に接続され得る。バンパー138は、本体部200に除去可能に固定され得、本体部200に装着されている状態で本体部200に対して移動可能であり得る。いくつかの例において、バンパー138は、本体部200の一部を形成している。バンパーセンサー139aおよび139b(集合的にバンパーセンサー139と称される)は、本体部200に接続され得、また、バンパー138と係合可能であるか、または、バンパー138と相互作用するように構成され得る。バンパーセンサー139は、ロボット100(すなわち、バンパー138)と環境の中の物体との間の接触を検出することができるブレークビームセンサー、容量センサー、スイッチ、または他のセンサーを含むことが可能である。バンパーセンサー139は、コントローラー212と通信していることが可能である。
イメージキャプチャーデバイス140は、本体部200に接続されたカメラであることが可能であり、ロボット100のバンパー138を通って、たとえば、バンパー138の開口部143などを通って延在することが可能である。イメージキャプチャーデバイス140は、カメラ(たとえば、前面カメラなど)であることが可能であり、カメラは、ロボット100がフロア表面50を動き回るときにロボット100の環境の画像に基づいて信号を発生させるように構成されている。イメージキャプチャーデバイス140は、ナビゲーションおよびクリーニングルーチンのための使用のために、コントローラー212に信号を送信することが可能である。
障害物検知センサー141(obstacle following sensor)(図2Bに示されている)は、バンパー138から外向きに面する光学センサーを含むことが可能であり、それは、本体部200の側部に隣接する物体の有無を検出するように構成され得る。障害物検知センサー141は、ロボット100の前方駆動方向に対して垂直の(または、ほぼ垂直の)方向に、光学ビームを水平方向に放出することが可能である。光学エミッターは、ロボット100から外向きに、たとえば、水平方向に外向きに光学ビームを放出することが可能であり、光学検出器は、ロボット100の近くの物体に反射する光学ビームの反射を検出する。ロボット100は、たとえば、コントローラー212を使用して、光学ビームの飛行時間を決定することが可能であり、それによって、光学検出器と物体との間の距離、ひいては、ロボット100と物体との間の距離を決定することが可能である。
サイドブラシ142は、ロボット100の下側に接続され得、ロボット100の本体部200に対してサイドブラシ142を回転させるように動作可能なモーター144に接続され得る。サイドブラシ142は、デブリに係合し、クリーニングヘッド205に向けて、または、環境のエッジから離れるように、デブリを移動させるように構成され得る。サイドブラシ142を駆動するように構成されているモーター144は、コントローラー112と通信していることが可能である。ブラシ142は、非水平方向軸線(たとえば、フロア表面50に対して75度から90度の間の角度を形成する軸線)の周りに回転することが可能である。非水平方向軸線は、たとえば、ローラー205aおよび205bの長手方向軸線126aおよび126bに対して75度から90度の間の角度を形成することが可能である。
ブラシ142は、ロボット100の中心から横方向にオフセットされたサイドブラシであることが可能であり、ブラシ142がロボット100の本体部200の外周を越えて延在することができるようになっている。同様に、ブラシ142は、ロボット100の中心から前方にオフセットされることもでき、ブラシ142がバンパー138を越えて延在するようにもなっている。
また、ロボット100は、ボタン146(または、インターフェース)を含むことが可能であり、ボタン146は、たとえば、ミッションを一時停止する、パワーオンする、パワーオフする、または、ドッキングステーションに戻るなど、コマンドをロボットに提供するように構成されているユーザー操作可能なインターフェースであることが可能である。
いくつかの例の動作において、ロボット100は、前方駆動方向または後方駆動方向に推進され得る。また、ロボット100は、ロボット100が適切な場所でターンするか、または、前方駆動方向または後方駆動方向に移動しながらターンするように、推進され得る。
コントローラー212が、ロボット100がミッションを実施することを引き起こすときには、コントローラー212は、モーター208を動作させ、駆動ホイール210を駆動し、フロア表面50に沿ってロボット100を推進させることが可能である。加えて、コントローラー212は、モーター214を動作させ、ローラー205aおよび205bが回転することを引き起こすことが可能であり、また、モーター144を動作させ、ブラシ142が回転することを引き起こすことが可能であり、また、バキュームアッセンブリ118のモーターを動作させ、空気フローを発生させることが可能である。コントローラー212は、メモリー213に記憶されているソフトウェアを実行し、ロボット100のさまざまなモーターを動作させることによって、ロボット100がさまざまなナビゲーション行動およびクリーニング行動を実施することを引き起こすことが可能である。
ロボット100のさまざまなセンサーは、ロボットが環境の中でナビゲートしてクリーニングすることを助けるために使用され得る。たとえば、クリフセンサー134は、クリフセンサー134が配設されているロボット100の部分の下方の急斜面およびクリフなどのような障害物を検出することが可能である。クリフセンサー134は、コントローラー212に信号を送信することが可能であり、コントローラー212がクリフセンサー134からの信号に基づいてロボット100を方向付けし直すことができるようになっている。
いくつかの例において、バンパーセンサー139aは、ロボット100の前後軸線に沿ったバンパー138の移動を検出するために使用され得る。また、バンパーセンサー139bは、ロボット100の1つ以上の側部に沿ったバンパー138の移動を検出するために使用されることもできる。バンパーセンサー139は、コントローラー212に信号を送信することが可能であり、コントローラー212がバンパーセンサー139からの信号に基づいてロボット100を方向付けし直すことができるようになっている。
イメージキャプチャーデバイス140は、ロボット100がフロア表面50を動き回るときにロボット100の環境の画像に基づいて信号を発生させるように構成され得る。イメージキャプチャーデバイス140は、そのような信号をコントローラー212に送信することが可能である。イメージキャプチャーデバイス140は、上向き方向に角度を付けられ得、たとえば、フロア表面50(ロボット100は、フロア表面50の周りをナビゲートする)から5度から45度の間に角度を付けられ得る。イメージキャプチャーデバイス140は、上向きに角度を付けられているときに、環境の壁表面のイメージをキャプチャーすることが可能であり、壁表面の上の物体に対応する特徴が、ローカリゼーションのために使用され得るようになっている。
いくつかの例において、障害物検知センサー141は、検出可能な物体を検出することが可能であり、それは、ロボット100の環境の中の家具、壁、人、および他の物体などのような、障害物を含む。いくつかの実装形態において、センサーシステムは、側部表面に沿って障害物検知センサーを含むことが可能であり、障害物検知センサーは、側部表面に隣接する物体の有無を検出することが可能である。また、1つ以上の障害物検知センサー141は、本明細書で説明されている近接センサーと同様に、障害物検出センサーとしての役割を果たすことも可能である。
また、ロボット100は、ロボット100によってトラベルされる距離をトラッキングするためのセンサーを含むことが可能である。たとえば、センサーシステムは、駆動ホイール210のためのモーター208に関連付けられたエンコーダーを含むことが可能であり、エンコーダーは、ロボット100がトラベルした距離をトラッキングすることが可能である。いくつかの実装形態において、センサーは、フロア表面に向けて下向きに面する光学センサーを含むことが可能である。光学センサーは、ロボット100の底部表面を通してフロア表面50に向けて光を方向付けるように位置決めされ得る。光学センサーは、光の反射を検出することが可能であり、ロボット100がフロア表面50に沿ってトラベルするときのフロア特徴の変化に基づいて、ロボット100によってトラベルされる距離を検出することが可能である。
コントローラー212は、センサーシステムのセンサーによって収集されたデータを使用し、ミッションの間のロボット100のナビゲーション行動を制御することが可能である。たとえば、コントローラー212は、ロボット100の障害物検出センサー(クリフセンサー134、バンパーセンサー139、および、イメージキャプチャーデバイス140)によって収集されたセンサーデータを使用し、ミッションの間にロボット100の環境の中でロボット100が障害物を回避することを可能にすることができる。
また、センサーデータは、自己位置推定と地図作成を同時に行う(simultaneous localization and mapping)(SLAM)技法のためのコントローラー212によって使用され得、自己位置推定と地図作成を同時に行う(SLAM)技法において、コントローラー212は、センサーデータによって表される環境の特徴を抽出し、環境のフロア表面50のマップを構築する。イメージキャプチャーデバイス140によって収集されるセンサーデータは、視覚ベースのSLAM(VSLAM)などのような技法のために使用され得、視覚ベースのSLAM(VSLAM)において、コントローラー212は、環境の中の物体に対応する視覚的特徴を抽出し、これらの視覚的特徴を使用してマップを構築する。コントローラー212がミッションの間にフロア表面50の周りにロボット100を方向付けるとき、コントローラー212は、収集されたセンサーデータの中に表された特徴を検出することによって、および、その特徴を以前に記憶されている特徴と比較することによって、SLAM技法を使用し、マップの中のロボット100の場所を決定することが可能である。センサーデータから形成されるマップは、環境の中の横断可能なおよび横断不可能なスペースの場所を示すことが可能である。たとえば、障害物の場所は、横断不可能なスペースとして、マップの上に示され得、オープンフロアスペースの場所は、横断可能なスペースとして、マップの上に示され得る。
センサーのいずれかによって収集されたセンサーデータは、メモリー213の中に記憶され得る。加えて、SLAM技法のために発生させられる他のデータ(マップを形成するマッピングデータを含む)が、メモリー213の中に記憶され得る。ミッションの間に作り出されるこれらのデータは、永続的データを含むことが可能であり、永続的データは、ミッションの間に作り出され、また、それは、さらなるミッションの間に使用可能である。ロボット100がその行動をとることを引き起こすためのソフトウェアを記憶することに加えて、メモリー213は、コントローラー212によるアクセスのためのセンサーデータの処理から結果として生じるデータを記憶することが可能である。たとえば、マップは、1つのミッションから別のミッションへロボット100のコントローラー212によって使用可能および更新可能であり、フロア表面50の周りでロボット100をナビゲートする、マップであることが可能である。
永続的データ(永続的マップを含む)は、ロボット100がフロア表面50を効率的にクリーニングすることを可能にすることを助ける。たとえば、マップは、コントローラー212がオープンフロアスペースに向けてロボット100を方向付けること、および、横断不可能なスペースを回避することを可能にすることができる。加えて、後続のミッションのために、コントローラー212は、ミッションの間にとられる経路を最適化するためにマップを使用し、環境を通るロボット100のナビゲーションを計画することを助けることが可能である。
図3は、モバイルクリーニングロボットを動作させるための制御アーキテクチャー300の例を図示するダイアグラムである。コントローラー212は、通信システム305、クリーニングシステム310、駆動システム110、およびセンサーシステム320を含む、モバイルクリーニングロボット100のさまざまなサブシステムに通信可能に連結され得る。コントローラー212は、メモリー213を含み、メモリー213は、プロセッサー324によって処理するためのデータおよびインストラクションを保持している。プロセッサー324は、メモリー213からプログラムインストラクションおよびフィードバックデータを受け取り、プログラムインストラクションによって要求される論理的動作を実行し、また、モバイルクリーニングロボット100のそれぞれのサブシステムコンポーネントを動作させるためのコマンド信号を発生させる。入力/出力ユニット326は、コマンド信号を送信し、さまざまな図示されているコンポーネントからフィードバックを受信する。
通信システム305は、ビーコン通信モジュール306およびワイヤレス通信モジュール307を含むことが可能である。ビーコン通信モジュール306は、コントローラー212に通信可能に連結され得る。いくつかの実施形態では、ビーコン通信モジュール306は、リモートデバイスへ信号を送るように、また、リモートデバイスから信号を受信するように動作可能である。たとえば、ビーコン通信モジュール306は、ナビゲーションのエミッターもしくはバーチャルウォールビーコンから投射されるナビゲーション信号を検出することが可能であり、または、ドックのエミッターから投射されるホーミング信号を検出することが可能である。ドッキング技術、コンファインメント技術、ホームベース技術、およびホーミング技術は、特許文献1および特許文献2、特許文献3、ならびに特許文献4に議論されている(それらの全体が、参照により本明細書に組み込まれている)。特許文献5(その全体が、参照により本明細書に組み込まれている)に説明されているように、ワイヤレス通信モジュール307は、1つ以上のモバイルデバイス(たとえば、図4Aに示されているモバイルデバイス404)を伴う適切なワイヤレスネットワーク(たとえば、ワイヤレスローカルエリアネットワーク)にわたって、モバイルクリーニングロボット100のステータスを説明する情報の通信を促進させる。通信システム305のさらなる詳細は、たとえば図4Aなどを参照して、下記に議論される。
クリーニングシステム310は、ローラーモーター214(たとえば、アクチュエーター214aおよび214b)と、サイドブラシ142を駆動するブラシモーター144と、バキュームアッセンブリ118に動力を与える吸引ファンモーター316とを含むことが可能である。クリーニングシステム310は、複数のモーターセンサー317をさらに含み、複数のモーターセンサー317は、ローラーモーター214、ブラシモーター144、および吸引ファンモーター316の動作をモニタリングし、コントローラー212によるモーターの閉ループ制御を促進させる。いくつかの実施形態において、ローラーモーター214は、コントローラー212(または、適切なマイクロコントローラー)によって動作させられ、閉ループパルス幅変調(PWM)技法を介して、特定の速度設定に従って、ローラー(たとえば、ローラー205aおよび205b)を駆動し、ここで、フィードバック信号は、ローラーモーター214の回転速度を示す信号をモニタリングするモーターセンサー317から受信される。たとえば、そのようなモーターセンサー317は、モーター電流センサー(たとえば、シャント抵抗器、電流センシング変圧器、および/またはHall効果電流センサー)の形態で提供され得る。
駆動システム110は、コントローラー212からの駆動コマンドまたは制御信号に応答して駆動ホイール210を動作させるための駆動ホイールモーター208と、(たとえば、上に説明されているように適切なPWM技法を介して)駆動ホイールの閉ループ制御を促進させるための複数の駆動モーターセンサー161とを含むことが可能である。いくつかの実装形態では、駆動システム110に割り当てられたマイクロコントローラーは、x成分、y成分、およびθ成分を有する駆動コマンドを解読するように構成されている。コントローラー212は、駆動ホイールモーター208に個々の制御信号を発行することが可能である。いずれにしても、コントローラー212は、駆動ホイールモーター208を介してそれぞれの駆動ホイール210aまたは210bの回転速度および方向を独立して制御することによって、クリーニング表面を横切って任意の方向にモバイルクリーニングロボット100を操縦することが可能である。
コントローラー212は、センサーシステム320から受信される信号に応答して、駆動システム110を動作させることが可能である。たとえば、コントローラー212は、駆動システム110を動作させ、モバイルクリーニングロボット100を方向付けし直し、フロア表面を処置している間に出会う障害物を回避することが可能である。別の例では、モバイルクリーニングロボット100が使用の間に立ち往生するかまたはもつれた場合には、コントローラー212は、1つ以上の脱出行動に従って駆動システム110を動作させることが可能である。信頼性の高い自律的な移動を実現するために、センサーシステム320は、互いに組み合わせて使用され得るいくつかの異なるタイプのセンサーを含むことが可能であり、モバイルクリーニングロボット100が特定の環境についてインテリジェントな決定を行うことを可能にする。例としておよび限定ではなく、センサーシステム320は、近接センサー336、クリフセンサー134、視覚センサー325のうちの1つ以上を含むことが可能であり、視覚センサー325は、たとえば、上に説明されているように、たとえばVSLAM技術などを使用して、動作環境の中の特徴およびランドマークを検出するように、および、バーチャルマップを構築するように構成されているイメージキャプチャーデバイス140などである。
センサーシステム320は、バンパー138の活性化に応答するバンパーセンサー339(たとえば、バンパーセンサー139aおよび139bなど)をさらに含むことが可能である。センサーシステム320は、慣性測定ユニット(IMU)164を含むことが可能であり、慣性測定ユニット(IMU)164は、フロアに対して実質的に垂直の垂直方向の軸線に対するモバイルクリーニングロボット100の位置の変化に部分的に応答し、また、(それは、フローリングタイプ変化に潜在的に起因する)高さの差を有するフロアタイプインターフェースにおいて、モバイルクリーニングロボット100がピッチされる(pitched)ときをセンシングする。いくつかの例において、IMU164は、ジャイロセンサーを有する6軸IMUであり、ジャイロセンサーは、垂直方向の軸線に対するモバイルクリーニングロボット100の角速度を測定する。しかし、他の適切な構成も企図される。たとえば、IMU164は、垂直方向の軸線に沿ったモバイルクリーニングロボット100の線形加速度に敏感な加速度計を含むことが可能である。いずれにしても、IMU164からの出力は、コントローラー212によって受信され、フロア表面(モバイルクリーニングロボット100がフロア表面を横切ってトラベルしている)の中の不連続性を検出するために処理される。本開示の文脈において、「フローリングの不連続性」および「閾値」という用語は、モバイルクリーニングロボット100によって横断可能であるが、離散的な垂直方向の移動イベント(たとえば、上向きまたは下向きの「バンプ」)を引き起こす、フロア表面における任意の不規則性(たとえば、フローリングタイプの変化、または、フローリングインターフェースにおけるエレベーションの変化)を指す。垂直方向の移動イベントは、IMU164の構成および設置に応じて、駆動システムの一部(たとえば、駆動ホイール210のうちの1つ)、または、本体部200のシャーシーを指すことが可能である。フローリング閾値またはフローリングインターフェースの検出は、コントローラー212がフロアタイプの変化を予期することを促すことが可能である。たとえば、モバイルクリーニングロボット100は、それがハイパイルカーペット(軟らかいフロア表面)からタイルフロア(硬いフロア表面)へ移動するときに、有意な下向きの垂直方向のバンプを経験する可能性があり、また、反対のケースでは、上向きのバンプを経験する可能性がある。
図示されている例に関連して示されても説明されてもいないが、多種多様な他のタイプのセンサーが、本開示の範囲から逸脱することなく、センサーシステム320(または、任意の他のサブシステム)の中に組み込まれ得る。そのようなセンサーは、障害物検出ユニット、障害物検出障害物回避(ODOA)センサー、ホイールドロップセンサー、障害物検知センサー、ストールセンサーユニット、駆動ホイールエンコーダーユニット、およびバンパーセンサーなどとして機能することが可能である。
例示的な通信ネットワーク
図4Aは、例としておよび限定ではなく、モバイルクリーニングロボット100と1つ以上の他のデバイス、たとえば、モバイルデバイス404、クラウドコンピューティングシステム406、または、モバイルデバイス404から分離されている別の自律型ロボット408などとの間のネットワーキングを可能にする通信ネットワーク400Aを図示するダイアグラムである。通信ネットワーク400Aを使用して、モバイルクリーニングロボット100、モバイルデバイス404、ロボット408、およびクラウドコンピューティングシステム406は、互いに通信し、互いにデータを送信すること、および、互いからデータを受信することが可能である。いくつかの実装形態において、モバイルクリーニングロボット100、ロボット408、または、モバイルクリーニングロボット100およびロボット408の両方が、クラウドコンピューティングシステム406を通してモバイルデバイス404と通信する。代替的にまたは追加的に、モバイルクリーニングロボット100、ロボット408、または、モバイルクリーニングロボット100およびロボット408の両方が、モバイルデバイス404と直接的に通信する。ワイヤレスネットワーク(たとえば、Bluetooth、ラジオ周波数、光学ベースなど)およびネットワークアーキテクチャー(たとえば、メッシュネットワーク)のさまざまなタイプおよび組合せが、通信ネットワーク400Aによって用いられ得る。
いくつかの実装形態において、図4Aに示されているようなモバイルデバイス404は、リモートデバイスであり、そのリモートデバイスは、クラウドコンピューティングシステム406にリンクされ得、また、ユーザーがモバイルデバイス404の上に入力を提供することを可能にすることができる。モバイルデバイス404は、たとえば、タッチスクリーンディスプレイ、ボタン、マイクロホン、マウス、キーボード、または、ユーザーによって提供される入力に応答する他のデバイスのうちの1つ以上などの、ユーザー入力エレメントを含むことが可能である。モバイルデバイス404は、代替的にまたは追加的に、没入型メディア(たとえば、バーチャルリアリティー)を含み、ユーザーは、その没入型メディアと相互作用し、ユーザー入力を提供する。これらのケースにおいて、モバイルデバイス404は、たとえば、バーチャルリアリティーヘッドセットまたはヘッドマウントディスプレイである。ユーザーは、モバイルデバイス404のためのコマンドに対応する入力を提供することが可能である。そのようなケースでは、モバイルデバイス404は、クラウドコンピューティングシステム406に信号を送信し、クラウドコンピューティングシステム406がモバイルクリーニングロボット100にコマンド信号を送信することを引き起こす。いくつかの実装形態において、モバイルデバイス404は、オーグメンテッドリアリティーイメージを提示することが可能である。いくつかの実装形態において、モバイルデバイス404は、スマートフォン、ラップトップコンピューター、タブレットコンピューティングデバイス、または他のモバイルデバイスである。
本明細書で議論されているさまざまな実施形態によれば、モバイルデバイス404は、ロボット環境のマップを表示するように構成されているユーザーインターフェースを含むことが可能である。また、ロボット経路(たとえば、コントローラー212のカバレージプランナーによって識別されるものなど)は、マップ上に表示され得る。インターフェースは、ユーザーインストラクションを受信し、たとえば、なかでも、環境の中に立入禁止の横断可能なゾーンを追加するか、除去するか、もしくはその他の方法で修正することによって、環境の中の重複横断ゾーン(たとえば、繰り返されるクリーニングを必要とするエリアなど)を追加するか、除去するか、もしくはその他の方法で修正することによって、環境の一部分の中のロボット横断方向もしくは横断パターンを制限することによって、または、クリーニングランクを追加するかもしくは変更することになどよって、環境マップを修正することが可能である。
いくつかの実装形態において、通信ネットワーク400Aは、追加的なノードを含むことが可能である。たとえば、通信ネットワーク400Aのノードは、追加的なロボットを含むことが可能である。代替的にまたは追加的に、通信ネットワーク400Aのノードは、ネットワーク接続されたデバイスを含むことが可能である。いくつかの実装形態において、ネットワーク接続されたデバイスは、環境についての情報を発生させることが可能である。ネットワーク接続されたデバイスは、環境の中の特徴を検出するための1つ以上のセンサー、たとえば、音響センサー、イメージキャプチャーシステム、または、信号(その信号から特徴が抽出され得る)を発生させる他のセンサーなどを含むことが可能である。ネットワーク接続されたデバイスは、ホームカメラ、スマートセンサー、スマートロック、スマートサーモスタット、およびスマートガレージドアオープナーなどを含むことが可能である。
図4Aに示されている通信ネットワーク400Aにおいて、および、通信ネットワーク400Aの他の実装形態において、ワイヤレスリンクは、さまざまな通信スキーム、プロトコルなど、たとえば、Bluetoothクラス、Wi-Fi、Bluetooth-low-energy(BLEとしても知られる)、802.15.4、Worldwide Interoperability for Microwave Access(WiMAX)、赤外線チャネル、または衛星バンドなどを利用することが可能である。いくつかのケースでは、ワイヤレスリンクは、それに限定されないが、1G、2G、3G、または4Gとしての資格を与える標準を含む、モバイルデバイスの間で通信するために使用される任意のセルラーネットワーク標準を含む。ネットワーク標準は、利用される場合には、国際電気通信連合によって維持されている仕様などのような、仕様または標準を満たすことによって、たとえば、モバイル電気通信標準の1つ以上の世代としての資格を与える。3G標準は、利用される場合には、たとえば、International Mobile Telecommunications-2000(IMT-2000)仕様に対応しており、4G標準は、International Mobile Telecommunications Advanced(IMT-Advanced)仕様に対応することが可能である。セルラーネットワーク標準の例は、AMPS、GSM、GPRS、UMTS、LTE、LTEAdvanced、Mobile WiMAX、およびWiMAX-Advancedを含む。セルラーネットワーク標準は、さまざまなチャネルアクセス方法、たとえば、FDMA、TDMA、CDMA、またはSDMAを使用することが可能である。
図4Bは、モバイルクリーニングロボット100、クラウドコンピューティングシステム406、およびモバイルデバイス404を含む、通信ネットワーク400Aの中のデバイスの間で情報を交換する例示的なプロセス400Bを図示するダイアグラムである。クリーニングミッションは、モバイルクリーニングロボット100の上のボタンを押すことによって開始させられ得、または、将来の時間または日に関してスケジューリングされ得る。ユーザーは、クリーニングミッションの間にクリーニングされるべき部屋のセットを選択することが可能であり、部屋の中のエリアまたはゾーンのセットを選択することが可能であり、または、すべての部屋をクリーニングするようにロボットに指示することが可能である。また、ユーザーは、クリーニングミッションの間にそれぞれの部屋の中で使用されることとなるクリーニングパラメーターのセットを選択することが可能である。
クリーニングミッションの間に、モバイルクリーニングロボット100は、その場所、クリーニングの間に起こる任意の動作イベント、および、クリーニングするのに費やす時間を含む、そのステータスをトラッキング410する。モバイルクリーニングロボット100は、ステータスデータ(たとえば、場所データ、動作イベントデータ、時間データのうちの1つ以上)をクラウドコンピューティングシステム406に送信412し、そのクラウドコンピューティングシステム406は、プロセッサー442によって、クリーニングされることとなるエリアに関する推定時間を計算414する。たとえば、推定時間は、その部屋に関する複数の(たとえば、2つ以上の)以前のクリーニングミッションの間に集められた、その部屋に関する実際のクリーニング時間を平均することによって、クリーニング部屋に関して計算され得る。クラウドコンピューティングシステム406は、ロボットステータスデータとともに推定時間データをモバイルデバイス404に送信416する。モバイルデバイス404は、プロセッサー444によって、ディスプレイの上にロボットステータスデータおよび推定時間データを提示418する。ロボットステータスデータおよび推定時間データは、複数のグラフィック表現編集可能なミッションタイムラインおよび/またはマッピングインターフェースのいずれかとして、モバイルデバイスのディスプレイの上に提示され得る。いくつかの例において、モバイルクリーニングロボット100は、モバイルデバイス404と直接的に通信することが可能である。
ユーザー402は、ディスプレイの上のロボットステータスデータおよび推定時間データを見て420、新しいクリーニングパラメーターを入力422することが可能であり、または、クリーニングされることとなる部屋の順序もしくはアイデンティティーを操作することが可能である。ユーザー402は、たとえば、モバイルクリーニングロボット100のクリーニングスケジュールから部屋を削除することが可能である。他の場合では、ユーザー402は、たとえば、クリーニングされることとなる部屋に関して、エッジクリーニングモードまたはディープクリーニングモードを選択することが可能である。モバイルデバイス404のディスプレイは、クリーニングパラメーターまたはクリーニングスケジュールに対する変更をユーザーが入力するときに更新される424。たとえば、ユーザーがシングルパスクリーニングからデュアルパスクリーニングへクリーニングパラメーターを変化させる場合には、システムは、推定される時間を更新し、新しいパラメーターに基づいて推定値を提供することとなる。シングルパスクリーニング対デュアルパスクリーニングのこの例では、推定値は、おおよそ2倍になることとなる。別の例では、ユーザーがクリーニングスケジュールから部屋を除去する場合には、合計の推定時間は、おおよそ、除去される部屋をクリーニングするために必要とされる時間だけ減少させられる。ユーザー402からの入力に基づいて、クラウドコンピューティングシステム406は、クリーニングされることとなるエリアに関する推定時間を計算426し、それは、次いで、(たとえば、ワイヤレス伝送によって、プロトコルを適用することによって、ワイヤレス伝送をブロードキャストすることによって)モバイルデバイス404に送信して戻され428、表示される。追加的に、計算された推定時間に関係するデータは、ロボットのコントローラー430に送信446される。ユーザー402からの入力に基づいて(それは、モバイルクリーニングロボット100のコントローラー430によって受信される)、コントローラー430は、コマンド信号を発生432させる。コマンド信号は、所定の行動を実行434するようにモバイルクリーニングロボット100に命令し、その所定の行動は、クリーニング行動であることが可能である。クリーニング行動が実行されるとき、コントローラーは、その場所、クリーニングの間に起こる任意の動作イベント、および、クリーニングするのに費やす時間を含む、ロボットのステータスをトラッキング410し続ける。いくつかの場合では、ロボットのステータスに関係するライブ更新は、プッシュ通知を介して、モバイルデバイスまたはホームエレクトロニクスシステム(たとえば、インタラクティブスピーカーシステム)に追加的に提供され得る。
所定の行動を実行434すると、コントローラー430は、受信されたコマンド信号が、クリーニングミッションを完了するためのコマンドを含むかどうかを確かめるためにチェック436する。コマンド信号が、クリーニングミッションを完了するためのコマンドを含む場合には、ロボットは、そのドックに戻るように命令され、戻ったときに情報を送り、クラウドコンピューティングシステム406がミッションサマリーを発生438させることを可能にし、そのミッションサマリーは、モバイルデバイス404に送信され、モバイルデバイス404によって表示440される。ミッションサマリーは、タイムラインおよび/またはマップを含むことが可能である。タイムラインは、クリーニングされた部屋、それぞれの部屋をクリーニングするのに費やした時間、それぞれの部屋の中でトラッキングされた動作イベントなどを表示することが可能である。マップは、クリーニングされた部屋、それぞれの部屋の中でトラッキングされた動作イベント、それぞれの部屋の中で実施されたクリーニング(たとえば、スイーピングまたはモップ掛け)のタイプなどを表示することが可能である。
本明細書で説明されているプロセス400Bおよび他のプロセスのための動作は、分散された様式で実行され得る。たとえば、クラウドコンピューティングシステム406、モバイルクリーニングロボット100、およびモバイルデバイス404は、互いに協力して動作のうちの1つ以上を実行することが可能である。クラウドコンピューティングシステム406、モバイルクリーニングロボット100、およびモバイルデバイス404のうちの1つによって実行されるものとして説明されている動作は、いくつかの実装形態では、クラウドコンピューティングシステム406、モバイルクリーニングロボット100、およびモバイルデバイス404のうちの2つまたはすべてによって、少なくとも部分的に実行される。
例示的な季節的なクリーニングスケジュールおよびクリーニング制御
図5~図10を参照して以下に議論されているのは、自律型モバイルロボットのための季節的なクリーニングスケジュールを生成させるための、および、季節的なクリーニングスケジュールに従って環境におけるミッションを実行するように自律型モバイルロボットを制御するための、システム、デバイス、および方法のさまざまな実施形態である。季節的なクリーニングスケジュールは、季節的なまたは環境的なデブリ蓄積イベントに基づくことが可能である。本文献は、フロアクリーニングを実施するモバイルクリーニングロボット100を参照しているが、本明細書で議論されている季節的なクリーニングスケジュールは、異なる用途(たとえば、なかでも、モップ掛け、草刈り、輸送など)のために設計されたロボットにおいて使用され得る。追加的に、いくつかのコンポーネント、モジュール、および動作は、モバイルクリーニングロボット100によって、ユーザーによって、コンピューティングデバイスによって、または別のアクターによって、実装および実施されるものとして説明されている可能性があるが、これらの動作は、いくつかの実装形態では、説明されているもの以外のアクターによって実施され得る。たとえば、モバイルクリーニングロボット100によって実施される動作は、いくつかの実装形態では、クラウドコンピューティングシステム406によって、または、別のコンピューティングデバイス(もしくは、複数のデバイス)によって実施され得る。他の例では、ユーザーによって実施される動作は、コンピューティングデバイスによって実施され得る。いくつかの実装形態では、クラウドコンピューティングシステム406は、動作を実施しない。むしろ、他のコンピューティングデバイスが、クラウドコンピューティングシステム406によって実施されるものとして説明されている動作を実施し、これらのコンピューティングデバイスは、互いにおよびモバイルクリーニングロボット100と直接的に(または、間接的に)通信した状態にあることが可能である。いくつかの実装形態において、モバイルクリーニングロボット100は、モバイルクリーニングロボット100によって実施されるものとして説明されている動作に加えて、クラウドコンピューティングシステム406またはモバイルデバイス404によって実施されるものとして説明されている動作を実施することが可能である。他の変形例も可能である。そのうえ、本明細書で説明されている方法およびプロセスは、特定の動作またはサブ動作を含むものとして説明されているが、他の実装形態では、これらの動作もしくはサブ動作のうちの1つもしくは複数が省略され得、または、追加的な動作もしくはサブ動作が追加され得る。
図5は、モバイルクリーニングロボット(たとえば、モバイルクリーニングロボット100)のための季節的なクリーニングスケジュールを生成させるための、および、季節的なクリーニングスケジュールに従ってクリーニングミッションを実行するための、モバイルロボットシステム500の例を図示するブロック図である。季節的なクリーニングスケジュールは、季節的なまたは環境的なデブリ蓄積イベントの間の増加されたデブリ蓄積を収容するために、既存の「デフォルト」または定期的なクリーニングスケジュールの修正であることが可能である。季節的なデブリ蓄積イベントの例は、花粉シーズンの間の花粉生産、換毛シーズンの間のペットの換毛の増加、または、環境的なまたは天候のイベント(たとえば、雨のシーズンもしくは雪のシーズンにおいて家の中の特定のエリアに持ち込まれる泥、雨、もしくは雪など)を含むことが可能である。季節的なクリーニングスケジュールは、スケジュールの1回限りの変更であることが可能である。代替的に、季節的なクリーニングスケジュールは、定期的にスケジューリングされるクリーニングの変更、または、季節にわたってもしくはユーザーが特定した時間期間にわたって延在する定期的にスケジューリングされるクリーニングを含むことが可能である。季節的なクリーニングスケジュールは、同じまたは異なるタイプの1つ以上のモバイルロボット(たとえば、モバイルクリーニングロボット、モバイルモップ掛けロボット、または草刈りロボットなど)によって使用され得る。
本文献は、季節的な花粉生産に基づく花粉およびクリーニングスケジュールを参照しているが、本文献において議論されているシステムおよび方法は、他の粒子状物質(たとえば、一般の大気汚染物質、森林火災または砂嵐に起因して作り出される微粒子など)に関連付けられる予見または検出されるイベントに基づいて、モバイルロボットのためのクリーニングスケジュールを生成させるために使用されることもできる。
モバイルロボットシステム500は、モバイルクリーニングロボット510およびモバイルデバイス520を含むことが可能である。モバイルクリーニングロボット510(モバイルクリーニングロボット100の例)は、センサーシステム511、コントローラー512、駆動システム517、およびクリーニングシステム518を含むことが可能である。コントローラー512は、たとえば、モバイルデバイス520から、季節的なクリーニングスケジュールを受信することが可能である。季節的なクリーニングスケジュールは、モバイルクリーニングロボットの環境(たとえば、ユーザーの家)における季節的なデブリ蓄積イベントに対応している。季節的なデブリ蓄積イベントは、1年の異なる時間において環境の中のデブリ蓄積のレートを変化させることが可能である。季節的なクリーニングスケジュールは、デブリ状態が季節的に変化する状態(以降では、季節的なデブリ状態と称される)で環境の一部分をクリーニングするように、モバイルクリーニングロボット510へのインストラクションを含む。季節的なデブリ状態は、予想されるデブリ蓄積のレベル(たとえば、高いデブリ状態、低いデブリ状態、または、デブリのない状態など)を表す。コントローラー512は、季節的なクリーニングスケジュールに従って環境におけるクリーニングミッションを実行するように、駆動システム517およびクリーニングシステム518への制御信号を発生させることが可能である。
モバイルデバイス520(それは、モバイルデバイス404の例である)は、通信リンク540を介してモバイルクリーニングロボット510に通信可能に連結され得る。モバイルデバイス520の例は、他のモバイルコンピューティングデバイスのなかでも、スマートフォン、パーソナルコンピューター、スマートウォッチ、モバイルタブレットを含むことが可能である。モバイルデバイス520は、ルーチンを実行するためのプロセッサーと、メモリーと、他のデバイス(たとえば、モバイルクリーニングロボット510、インターネット接続デバイス550、ならびに、ディスプレイおよび/またはタッチスクリーンを含む)と通信するためのワイヤレス通信インターフェースとを含むことが可能である。モバイルデバイス520のプロセッサーは、季節的イベント予測器521およびクリーニングスケジュール発生器524を含むことが可能である。季節的イベント予測器521は、季節的なデブリ蓄積イベント(たとえば、花粉生産、ペットの換毛の増加など)、または、環境的なもしくは天候のイベント(たとえば、家の特定のエリアの中へ持ち込まれる泥、雨、もしくは雪など)の発生およびタイミングを決定または予測することが可能である。
季節的なデブリ蓄積イベントのタイミングを予測する
季節的イベント予測器521は、モバイルクリーニングロボットの環境(たとえば、ユーザーの家)の地理的な場所に基づいて、季節的なデブリ蓄積イベントのタイミングを予測することが可能である。モバイルロボットの環境の地理的な場所についての情報は、全地球測位システム(GPS)または他の場所技術を使用するジオロケーションサービス530から取得され得る。ジオロケーションサービス530は、モバイルデバイス520から分離され得、または、それは、モバイルデバイス520の中に含まれ得る。代替的に、モバイルロボットの環境の地理的な場所は、たとえば、モバイルデバイス520のユーザーインターフェース528を介してなど、ユーザーによって提供され得る。
モバイルロボットの環境の地理的な場所に基づいて、季節的イベント予測器521は、季節的なデブリ蓄積イベントの予測されたタイミング522を決定することが可能である。予測されたタイミング522は、たとえば、典型的な年における季節的なデブリ蓄積イベントの予想されたタイムスパン(開始時間および終了時間)を含むことが可能である。タイムスパンは、モバイルロボットの環境の地理的な場所に関して長期間にわたって収集された履歴イベントデータに基づくことが可能である。例としておよび限定ではなく、花粉シーズンのタイムスパンは、3月から6月であることが可能であり、犬の換毛シーズンは、3月から6月、および、9月から11月であることが可能であり、または、雨のシーズンは、4月から6月であることが可能である。
いくつかの例において、季節的イベント予測器521は、異なる地理的な領域における特定の種類のおよびその季節的な変化の季節的なデブリ蓄積イベントのためのインターネットを検索することが可能であり、また、そのような情報を使用し、ユーザーの家の地理的な領域に関して、典型的な年における季節的なデブリ蓄積イベントに関する予測されたタイミング522(たとえば、タイムスパンなど)を決定することが可能である。検索は、モバイルデバイス520の中に含まれる検索エンジンを通して、または、モバイルデバイス520に通信可能に連結されているインターネット接続デバイス550を通して行われ得る。インターネット接続デバイス550は、スマートホームデバイスまたはInternet-of-Things(IoT)デバイスであることが可能である。いくつかの例において、インターネット接続デバイス550は、スマートホームエコシステムであることが可能であり、スマートホームエコシステムは、ユーザーと通信することができ、ユーザーの要求に応答して特定の季節的なデブリ蓄積イベントの予測されたタイミング522を検索することができるバーチャルアシスタントを使用する。
いくつかの例において、インターネット接続デバイス550は、花粉または他の空気中に浮遊する微粒子を検出することができる、ユーザーの家の中のIoTデバイスまたはセンサー(たとえば、HVAC、加湿器、または空気清浄機)を含む。インターネット接続デバイス550によって獲得される情報は、モバイルデバイス520に送信され、ユーザーに表示され、季節的なクリーニングスケジュールを発生させるために使用され得る。
モバイルクリーニングロボットの環境の地理的な場所に加えてまたは代替的に、他の情報が使用され、季節的なデブリ蓄積イベントのタイミングを予測することが可能である。一例では、モバイルデバイス520は、気象サービスからの今後の環境的なイベント(たとえば、なかでも、雨、風、雪、花粉指数、空気中のカビ数など)の予報を要求することが可能である。要求は、モバイルデバイス520によって自動的に発生させられ得、または、代替的に、たとえばユーザーインターフェース528を介してなど、ユーザーによって開始され得る。そのような要求は、モバイルデバイス520の中に含まれている検索エンジンを使用して、または、インターネット接続デバイス550を使用して、インターネットを通して行われ得る。今後の環境イベントの予報は、季節的な花粉イベントまたは天候のイベントの予測されたタイミング522を決定するために使用され得、そして、それは、季節的なクリーニングスケジュールを発生させるために使用され得る。今後の環境イベントの予報、および、季節的なデブリ蓄積イベントの予測されたタイムスパンは、モバイルデバイス520のユーザーインターフェース528の上でユーザーに表示され得る。
別の例では、秋および春の月は、犬にとってピークの換毛時期であるが、正確な換毛の月は、天候、日照量、犬の品種、栄養、年齢、性別、生活環境、および、全体的な健康条件に応じて、変化する可能性がある。一例では、季節的イベント予測器521は、ペット情報に基づいて、犬の換毛の予測されたタイミング522を決定することが可能である。ペット情報は、たとえばユーザーインターフェース528を介してなど、ユーザーによって提供され得、ユーザーインターフェース528の例は、図7A~図7Cを参照して下記に議論されている。追加的にまたは代替的に、ペット情報は、自動的に決定され得る。たとえば、ペットのイメージは、モバイルクリーニングロボット510またはモバイルデバイス520の上のカメラによってキャプチャーされ得、また、公知のデータベースの中のものと比較され、他のペット情報のなかでも、品種、タイプ、おおよそのサイズ、またはおおよその体重を自動的に決定することが可能である。一例では、モバイルクリーニングロボット510は、以下に議論されているように、それが環境を横断するときに、ペットの存在およびペット情報を動的に検出することが可能である。
エリアにおけるデブリ状態を予測する
季節的イベント予測器521は、季節的なデブリ状態523を予測することが可能である。予測された季節的なデブリ状態は、ユーザーの家またはその一部分におけるデブリ蓄積のレベルを示している。デブリ状態の例は、なかでも、高いデブリ状態、低いデブリ状態、または、デブリのない状態を含むことが可能である。予測されたイベントタイミング522(たとえば、花粉生産、ペットの換毛、または雨のシーズンのタイムスパンなど)は、ユーザーの家の地理的な場所に大きく依存するが、予測されたデブリ状態523は、ユーザーの家に特有の環境的な条件によって、より影響を受ける可能性がある。たとえば、季節的イベント予測器521は、ユーザーの家のエリアにおける植物の量および種類、ならびに/または、ユーザーの家に対する植物の距離もしくは配向に基づいて、予測された花粉蓄積状態を決定することが可能である。特定の環境的な条件は、花粉シーズンの間にユーザーの家の異なるエリアにおける花粉の量または花粉分布を決定または予測するために使用され得る。別の例では、季節的イベント予測器521は、ペット情報(たとえば、家庭の中のペットの数、および、それぞれのペットの品種、タイプ、年齢、おおよその体重など)に基づいて、予測されたペットの毛の量を決定することが可能である。ペット情報は、換毛シーズンの間の環境におけるペットの毛の量を決定または予測するために使用され得る。予測されたデブリ状態523は、季節的なデブリ蓄積イベントの予測されたタイミング522とともに、季節的なクリーニングスケジュールを発生させるために使用され得る。
季節的なクリーニングスケジュール推奨を生成させる
クリーニングスケジュール発生器524は、季節的なデブリ蓄積イベントの予測されたタイミング522または予測されたデブリ状態523のうちの1つ以上に基づいて、モバイルクリーニングロボット510のための季節的なクリーニングスケジュールの推奨を発生させることが可能である。季節的なクリーニングスケジュールは、クリーニングエリア525(たとえば、モバイルロボットユーザーの家の中の特定の部屋もしくはその一部分)、クリーニング時間526、またはクリーニングモード527のうちの1つ以上を含む。クリーニングエリア525は、たとえばユーザーによって特定されるような、環境全体(たとえば、ユーザーの家)またはその一部分であることが可能である。クリーニングエリア525は、1年の異なる時間における異なる季節的なデブリ状態を有することが可能である。上記に説明されているように、季節的なデブリ状態は、クリーニング環境の特定のエリアにおけるレベルデブリ蓄積を表している。それらのエリアは、季節的なデブリ蓄積イベントの予測されたタイムスパンの間に、より高いデブリ状態を有することが予期され、また、タイムスパンの外側の他の時間において、比較的に低いデブリ状態を有することが予期される。たとえば、花粉蓄積は、1年の他の時間よりも、花粉シーズンの間に高くなる可能性が高い。過剰な犬の毛は、1年の他の時間よりも、換毛シーズンの間に家の特定のエリアに存在している可能性が高い。泥および雨は、1年のうち乾燥した月よりも雨のシーズンの間に、家の特定のエリアにおいて蓄積する可能性が高い。以下に議論されているように、モバイルクリーニングロボット510が環境を横断し、以下に議論されているように、その環境において、季節的なデブリによってより影響を受ける可能性が高いエリア(たとえば、花粉が溜まりやすい窓および入口ドアに近接したエリア、または、換毛シーズンの間に過剰なペットの毛になりやすい、ペットもしくはペットユーティリティーが検出されるエリア)の近位にあるデブリ蓄積または物体を検出するときに、クリーニングエリア525は動的に決定または更新され得る。
クリーニング時間526は、予測されたタイミング522の中の特定の日および時間を含むことが可能である。たとえば、クリーニング時間526は、季節的イベント予測器521によって決定される季節的なデブリ蓄積イベントの予測されたタイムスパンの間に、毎週月曜日、水曜日、および金曜日の午前9:00として定義され得る。クリーニングモード527は、どのようにモバイルクリーニングロボット510がクリーニングエリアをクリーニングするかを表す。複数のクリーニングエリアを含むクリーニングスケジュールに関して、それぞれのクリーニングエリアは、対応するクリーニングモードによってクリーニングされ得る。クリーニングモード527は、同じエリアにわたるパスの数(たとえば、単一のパス-対-複数のパス)、エリアをクリーニングするために費やされる時間、クリーニングパワーなどにおいて異なることが可能である。クリーニングモード527の例は、なかでも、ディープクリーン、スポットクリーン、クイッククリーン、モップ掛けが後に続くバキュームを含むことが可能である。
特定のクリーニングエリアに関して、季節的なクリーニングスケジュールは、そのエリアの予測されたデブリ状態に基づいて、クリーニング時間526、クリーニングモード527、または、その両方において、変化することが可能である。たとえば、季節的なクリーニングスケジュールは、それが比較的に高いデブリ状態を有することが予見されるときに(たとえば、ピーク花粉シーズンまたはペットの換毛シーズンの間など)、そのエリアをクリーニングするための第1のクリーニング時間(たとえば、花粉シーズンまたは犬の換毛シーズンの間に、毎週月曜日から金曜日)を含むことが可能である。季節的なクリーニングスケジュールは、それが比較的に低いデブリ状態を有することが予見されるときに(たとえば、花粉シーズンまたはペットの換毛シーズンから外れた時間の間など)、同じエリアをクリーニングするための異なる第2のクリーニング時間(たとえば、花粉シーズンから外れた、または、犬の換毛シーズンから外れた、毎週月曜日および木曜日のみ)を含むことが可能である。別の例では、季節的なクリーニングスケジュールは、そのエリアが比較的に高いデブリ状態を有することが予見されるときに、第1のクリーニングモード(たとえば、同じエリアにわたって繰り返されるまたはマルチパスクリーニング、より長いクリーニング時間、または、より高いパワーによって特徴付けられる「ディープクリーン」モード)を含むことが可能であり、また、そのエリアが比較的に低いデブリ状態を有することが予見されるときに、異なる第2のクリーニングモード(たとえば、同じエリアにわたって単一のまたはより少ないパス、より短いクリーニング時間、または、より低いクリーニングパワーによって特徴付けられる「標準クリーン」モードまたは「クイッククリーン」モード)を含むことが可能である。
季節的なクリーニングスケジュールは、たとえばユーザーインターフェース528のディスプレイの上などで、ユーザーに提示され得る。ユーザーは、たとえばユーザーインターフェース528の上のUIコントロールを介してなど、推奨された季節的なクリーニングスケジュールまたはその一部分を承認するか、拒否するか、または修正することが可能である。たとえば、ユーザーは、推奨されたクリーニング時間526により多くの時間を追加するか、推奨されたクリーニングモード527により多くのクリーニングパスを追加するか、または、推奨されたクリーニングエリア525の場所もしくはサイズを変更することが可能である。ユーザーは、ユーザーの環境の観察、モバイルクリーニングロボットによって実施される検出(たとえば、以下に議論されているようなデブリの検出)、または、ユーザーの個人的な好みまたは健康条件(たとえば、花粉または他のアレルゲンに対するアレルギー反応)に基づいて、推奨されたクリーニングスケジュールに対してそのような変更を行うことが可能である。季節的なクリーニングスケジュールは、ユーザーによって承認される場合にまたは修正されるときに、モバイルデバイス520のメモリーの中に記憶され得、また、クリーニングミッションを実行するときに、モバイルクリーニングロボット510によって使用され得る。
季節的なクリーニングスケジュールは、ユーザーインターフェース528上に表示され得る。いくつかの例において、季節的なまたは環境的なデブリ蓄積イベントについての情報(たとえば、季節的なデブリ蓄積イベントの予測されたタイミング522(たとえば、タイムスパン)および予測されたデブリ状態523など)は、ユーザーインターフェース528上に表示され得る。ユーザーは、季節的なクリーニングスケジュールをカスタマイズするための参考として、そのような情報を使用することが可能である。
いくつかの例において、さまざまな推奨は、ユーザーインターフェース528上に表示され、影響を受けたエリアをクリーニングするように、または、花粉蓄積の影響を低減させるように、ユーザーをガイドすることが可能である。一例では、毎日の花粉レベルが比較的に高くなると予報されるときに、家の窓を閉じるように、推奨が提供され得る。窓が電子的に制御可能である例では、窓は、ユーザーの許可によって自動的に閉じられ得る。以下に議論されているように、モバイルクリーニングロボット510は、環境における実際のデブリ蓄積レベルを検出および局所化するためのセンサーシステム511を含むことが可能である。一例では、検出されたデブリレベルがデブリ閾値を超えるときに、過剰なデブリ蓄積の通知が、ユーザーに提示され得る。一例では、デブリ閾値は、ユーザーインターフェースを通してユーザーによって調節可能である。検出されたデブリレベルがデブリ閾値を超えるときに、識別されたデブリ蓄積エリアをクリーニングするように、推奨がユーザーに提供され得る。
モバイルデバイス520の上で季節的なクリーニングスケジュールを生成させる例が、図6A~図6Cおよび図7A~図7Bに図示されている。図6Aは、モバイルデバイス(たとえば、スマートフォンなど)の上のユーザーインターフェース600Aのワイヤーフレームを示している。モバイルデバイスは、モバイルアプリケーション(「app」)を実行し、ユーザーがユーザーの家の中のモバイルクリーニングロボットの動作を制御することを可能にすることができる。ユーザーインターフェース上に表示される通知ページは、他の機能のなかでも、季節的な推奨610を含むことが可能であり、季節的な推奨610は、季節的なまたは環境的なイベント(たとえば、花粉生産、ペットの換毛、または天候のイベントなど)を考慮に入れて、季節的なクリーニングスケジュールをセットアップする際にユーザーを支援することが可能である。ユーザーは、季節的な推奨610を活性化させるために、トグルスイッチ612を使用することが可能である。図6Bは、季節的なまたは環境的なデブリ蓄積イベントに基づいてクリーニングスケジュール発生器524によって自動的に発生させられる推奨された季節的なクリーニングタスクを示すスケジュールページ600Bを図示している。推奨された季節的なクリーニングスケジュールは、季節的なまたは環境的なデブリ蓄積イベントを考慮に入れない既存の「デフォルト」または定期的なクリーニングスケジュールとは別個のスケジュールであることが可能である。代替的に、推奨された季節的なクリーニングスケジュールは、たとえば、追加のクリーニングタスクを既存のクリーニングスケジュールに追加することなどによって、既存のクリーニングスケジュールの修正であることが可能である。図6Bに図示されているように、既存のクリーニングスケジュール620は、ユーザーの家の中の指定されたエリアをクリーニングするための時間を定義する(たとえば、木曜日の午前9:00の1回限りのイベント、および、毎週月曜日、水曜日、および金曜日の「家を出るとき」の繰り返し起こるイベント)。花粉またはペットの換毛などのような季節的なまたは環境的なデブリ蓄積イベントを収容するために、1つ以上の追加のクリーニング時間622(たとえば、月曜日の午前9:00、および、水曜日の午後3:00)が、ユーザーに推奨される。追加のクリーニング時間は、1回限りのクリーニング、または、反復的にスケジューリングされたクリーニングであることが可能である。ユーザーは、たとえばUIコントロール624を介してなど、推奨された追加のクリーニング時間622を既存のスケジュールに追加することが可能である。
上記に議論されているように、クリーニング時間526およびクリーニングモード527は、季節的なデブリ蓄積を伴うそれらのエリアに対して実施するための追加のクリーニングの量をそれぞれ決定する。推奨された追加のクリーニング時間622に加えてまたは代替的に、追加のクリーニングは、増加された花粉蓄積または過剰なペットの毛を収容するために、異なるまたは修正されたクリーニングモードの推奨を含むことが可能である。一例では、修正されたクリーニングモードは、微細な花粉粒子の収集を保証するために、より頻繁なモップ掛けを含むことが可能である。たとえば、推奨は、比較的に高い花粉レベルを有する時間期間の間に、それぞれのバキューミングミッションの後にフロアをモップ掛けすることように提供され得る。一例では、モップ掛けは、バキューミングの前に、または、バキューミングなしに花粉がバキューミングを介して空気中に拡散されることを防止または低減させるために推奨される可能性がある。ユーザーがロボットとともに共同でクリーニングする例では(たとえば、ロボットがバキュームまたはモップ掛けする間に、ユーザーがダストを払うかまたは他のクリーニングの雑用を行う)、花粉または他の空気中に浮遊する粒子状物質が比較的に高いときにダストを払わないように、推奨がユーザーに提供され得る。
図6Cは、結果として生じる季節的なクリーニングスケジュールを図示するユーザーインターフェース600Cのワイヤーフレームであり、それは、推奨された追加のクリーニング時間622を既存のクリーニングスケジュール620を組み込んでいる。季節的なまたは環境的なデブリ蓄積イベントに方向付けられるクリーニングタスクは、他のクリーニングタスクから区別可能となるように、クリーニングスケジュールの中にマークされるかまたはその他の方法で識別される(たとえば、「花粉用」)ことができる。そのような季節的なクリーニングタスクの有効時間(それは、季節的なまたは環境的なデブリ蓄積イベントの予見されたタイムスパンに基づくことが可能である)も、ユーザーインターフェース上に表示され得る(たとえば、「9/20に終了する」)。ユーザーは、たとえばUIコントロール630を介してなど、季節的なクリーニングスケジュールまたはその一部分を承認または拒否することが可能である。承認された場合には、モバイルクリーニングロボットのためのクリーニングスケジュールは、推奨に従って更新され得る。
いくつかの例において、ユーザーは、推奨された追加のクリーニング時間622の中の1つもしくは複数のクリーニングタスク、および/または、既存のクリーニングスケジュール620の中の1つもしくは複数のクリーニングタスクを追加するか、除去するか、または修正する(たとえば、クリーニングの日付および/または時間を変更する)ことによって、季節的なクリーニングスケジュールをカスタマイズすることが可能である。たとえば、ユーザーは、季節的なクリーニングスケジュールの中に含まれるように、推奨された追加のクリーニング時間622から「月曜日の午前9:00」のみを選択することが可能であり、または、季節的なクリーニングスケジュールの中に含まれるように、既存のクリーニングスケジュール620から、毎週月曜日、水曜日、および金曜日の「家を出るとき」の繰り返し起こるイベントのみを選択することが可能である。
図7A~図7Bは、ペットの換毛イベントに基づいて季節的なクリーニングスケジュールを生成させるためのモバイルデバイス(たとえば、スマートフォン)のユーザーインターフェースのワイヤーフレームである。上記に議論されているように、季節的イベント予測器521は、環境の地理的な場所およびペット情報(たとえば、ペットの年齢、品種、性別、または体重を含む)に基づいて、ペットの換毛シーズンのタイミング(たとえば、タイムスパン)を決定することが可能である。また、ペット情報は、ユーザーの家の特定のエリアにおける予測されたデブリ状態を決定するために使用されることもできる。図7Aは、ペット情報(たとえば、ペットの存在712、ペットの数714、および、それぞれのペットに関するタイプ、体重、品種、年齢716を含む)を提供するようにユーザーを促す、ユーザーインターフェースの上の質問ページ700Aを示している。図7Bは、随意的にユーザーの家の地理的な場所についての情報とともに、ユーザーから受信されたペット情報に基づいてクリーニングスケジュール発生器524によって自動的に発生させられる推奨された季節的なクリーニングタスクを示すスケジュールページ700Bを図示している。図6Bに示されているスケジュールページ600Bと同様に、ユーザーは、既存のスケジュール720を修正することによって、たとえば、UIコントロール724を使用して追加のクリーニング時間722を追加することなどによって、カスタマイズされた季節的なクリーニングスケジュールを生成させることが可能である。追加のクリーニング時間722は、ペット情報に基づいて決定され得る。たとえば、1匹の小さな犬を有する家庭のために、第1の量の追加のクリーニング時間が実施され得、また、2匹の大きな犬を有する家庭のために、第2の量の追加のクリーニングが実施され得、第2の量の追加のクリーニングは、第1の量のクリーニングよりも大きい。追加的にまたは代替的に、クリーニングスケジュール発生器524は、ペットの換毛エリアをクリーニングするために、ペット情報に基づいて、推奨されたクリーニングモードを決定することが可能である(たとえば、「ディープクリーン」モードの推奨、追加のパスを追加すること、より遅い速度でロボットを移動させること、または、より高いパワーで使用することなど)。たとえば、推奨されたクリーニングモードは、通常の単一パスのクリーニングから2つの、3つの、または4つのパスに変更することを含むことが可能である。
図7Cは、結果として生じる季節的なクリーニングスケジュールを図示するユーザーインターフェース700Cのワイヤーフレームである。図6Cに示されている季節的なクリーニングスケジュールと同様に、ペットの換毛イベントに方向付けられるクリーニングタスクは、他のクリーニングタスクから区別可能となるように、クリーニングスケジュールの中にマークされるかまたはその他の方法で識別される(たとえば、「ペットの換毛用」)ことができる。そのような季節的なクリーニングタスクの有効時間は、ユーザーインターフェース上に表示され得る(たとえば、「9/20に終了する」)。ユーザーは、たとえばUIコントロール730を介してなど、推奨された季節的なクリーニングスケジュールまたはその一部分を承認または拒否することが可能である。承認された場合には、モバイルクリーニングロボットのためのクリーニングスケジュールは、推奨に従って更新され得る。
クリーニングエリアおよびクリーニングの量の動的な調節
図5に戻って参照すると、モバイルデバイス520によって生成される季節的なクリーニングスケジュールは(たとえば、図6Cまたは図7Cに示されているものなど)、通信リンク540を介してモバイルクリーニングロボット510に送信され得る。モバイルクリーニングロボット510のコントローラー512は、デブリ検出器/ローカライザー513、マッピングシステム514、およびナビゲーションコントローラー516を含むことが可能である。上記に議論されているように、クリーニングスケジュール発生器524によって発生させられる季節的なクリーニングスケジュールは、クリーニングエリア525を含むことが可能である。クリーニングエリア525は、既存のクリーニングスケジュール(たとえば、図6Bに示されているような既存のクリーニングスケジュール620、または、図7Bに示されているような既存のスケジュール720)において定義されているものと同じエリアであることが可能である。代替的に、ユーザーは、たとえば、ユーザーインターフェース528の上で既存のクリーニングエリアを修正することなどによって、クリーニングエリア525を定義することが可能である。
いくつかの例において、クリーニングエリア525は、モバイルクリーニングロボット510が環境を横断して、季節的なデブリ蓄積を伴うそれらのエリアを検出するときに、デブリ検出器/ローカライザー513によって動的に決定または修正され得る。デブリ検出器/ローカライザー513は、センサーシステム511(センサーシステム320の例)に連結され、ユーザーの家における季節的なデブリ蓄積イベント(たとえば、花粉蓄積、過剰なペットの毛、または、泥の存在など)を検出することが可能である。いくつかの例において、モバイルクリーニングロボット510は、センサーシステム511を使用し、ユーザーの家の中の物体(たとえば、入口ドア、窓、ペット、またはペットユーティリティー(たとえば、ペットおもちゃ、ベッド、餌入れ、ツールなど)を含む)を検出することが可能である。コントローラー512は、ユーザーの家におけるそのような物体の存在およびそれらの場所を使用し、季節的なクリーニングスケジュールの中のクリーニングエリア525を決定するかまたは絞り込むことが可能である。追加的にまたは代替的に、コントローラー512は、そのような物体の存在および場所を使用し、それらのエリアにおいて実施されることとなるクリーニングの量(たとえば、季節的なクリーニングスケジュールの中のクリーニング時間526またはクリーニングモード527など)を動的に決定するかまたは絞り込むことが可能である。
一例では、デブリ検出器/ローカライザー513は、花粉または他の空気中に浮遊する粒子状物質の存在および密度をセンシングするように構成された1つ以上のセンサーを使用して、環境の中の花粉エリアを検出および局所化することが可能である。一例では、センサーシステム511は、ユーザーの家のフロア表面を検査することができる前方に面するカメラを含む。花粉蓄積は、カメラによってキャプチャーされるイメージに基づいて検出され得る。別の例では、センサーシステム511は、花粉または他の空気中に浮遊する微粒子によって作り出される光散乱をセンシングするための光学センサーを含む。いくつかの例において、センサーシステム511は、モバイルクリーニングロボットが動作する環境における他の粒子状物質(たとえば、一般の大気汚染物質、森林火災または砂嵐によって作り出される微粒子など)を検出するためのセンサー(たとえば、上記に議論されているようなカメラまたは光学センサー)を含むことが可能である。いくつかの例において、センサーシステム511は、ガス硫黄酸化物(SOx)、窒素酸化物(NOx)、揮発性有機化合物(VOC)、一酸化炭素(CO)およびアンモニア(NH3)、地上レベルオゾン(O3)などを検出するための化学センサーを含むことが可能である。
花粉は、他のエリア(たとえば、ベッドの下、バスルーム、またはクローゼット)よりも、開口部(たとえば、入口通路、窓、ドア、空調機、換気口)に近接したエリアにおいて存在および蓄積しやすいので、いくつかの例では、デブリ検出器/ローカライザー513は、たとえば、センサーシステム511の中に含まれているカメラを使用することなどによって、ユーザーの家の中の開口部を検出および局所化することが可能である。デブリ検出器/ローカライザー513は、検出された開口部構造体に隣接するエリアを、予想される花粉エリアであると認識することが可能である。代替的に、ユーザーは、以下に議論されているように、モバイルクリーニングロボットのマッピングシステム514によって生成される環境のマップの上で、ドア、窓、または他の開口部を識別またはラベル付けすることが可能である。モバイルクリーニングロボットは、ユーザーに識別された開口部に隣接するエリアをクリーニングすることを含むクリーニングミッションを実行することが可能である。
いくつかの例において、予想された花粉エリアのサイズは、ユーザーの家が位置付けされているエリアにおける環境的な条件または天候条件に基づいて調節され得る。たとえば、モバイルデバイス520は、現在の風条件についての情報を受信することが可能であり、現在の風条件は、気象サービスによって提供され、インターネット接続デバイス550を介してアクセスされる。モバイルクリーニングロボット510のコントローラー512は、モバイルデバイス520から現在の風条件を受信することが可能であり、また、比較的により高い予期された風速に対して、花粉が進入することとなる窓またはドアの周りに比較的により大きなゾーンを生成させるか、または、比較的により低い予期された風速に対して、窓またはドアの周りに比較的により小さなゾーンを生成させる。一例では、窓およびドアに隣接する予想された花粉エリアのサイズは、花粉シーズンの間の風条件の平均に基づくことが可能である。
いくつかの例において、予想された花粉エリアのサイズは、ユーザーの家の近くの植物(木、雑草、または草)の量または種類、ならびに、窓および入口ドアに対する植物の距離および相対的な場所に基づいて決定され得る。たとえば、森の中のもしくは森の近くの家に関して、または、重いアレルゲン性の木の花粉を作り出す傾向がある木の周りの家に関して、コントローラー512は、ドアおよび窓の周りに比較的により大きなゾーンを生成させることが可能である。別の例では、コントローラー512は、近くにほとんど木がない家の異なる側の窓に隣接するエリアよりも、木に近い家の側の窓に隣接する、より大きな花粉ゾーンを生成させることが可能である。本明細書で説明されているような予想された花粉エリアの動的な調節は、クリーニング効率を改善し、パーソナライズされたクリーニングによってユーザーの経験を強化することが可能である。
一例では、デブリ検出器/ローカライザー513は、センサーシステム511(たとえば、イメージングセンサー(たとえば、カメラ)など)を使用して、環境の中の過剰なペットの毛のエリアを検出および局所化することが可能である。一例では、コントローラー512は、センサーシステム511(たとえば、カメラなど)を使用して、1つ以上のペットの存在を検出することが可能である。コントローラー512は、ペット情報(たとえば、家庭の中のペットの数、ならびに、それらの品種、タイプ、年齢、およびおおよその体重など)を決定するために、パターン認識アルゴリズムを走らせることが可能である。いくつかの例において、コントローラー512は、環境におけるペットユーティリティー(たとえば、ペットおもちゃ、ベッド、餌入れ、またはツールなど)を検出することが可能である。デブリ検出器/ローカライザー513は、ペットの存在またはペットユーティリティーの検出に基づいて、ペットの換毛エリアを決定することが可能である。コントローラー512によって検出および認識されるようなペット情報は、たとえば、ユーザー入力が利用可能でないかもしくは不完全である場合には、または、ユーザーによって提供されるペット情報を補強するために、図7Aに示されているようなペット情報のユーザー入力の代替となることが可能である。そのようなペット情報は、季節的なクリーニングスケジュールの中に含まれることとなる追加のクリーニング時間またはクリーニングモードを決定するために使用され得る。
一例では、デブリ検出器/ローカライザー513は、センサーシステム511(たとえば、イメージングセンサー(たとえば、カメラ)など)を使用して、天候のイベント(たとえば、雨のシーズンの間のユーザーの家の中の過剰な泥など)を検出および局所化することが可能である。一例では、コントローラー512は、外部ドアまたはマッドルーム(そこでは、近くのエリアが雨のシーズンの間に泥だらけになることが予見される)などのような、特定のエリアまたは構造体を識別することが可能である。代替的に、ユーザーは、以下に議論されているように、モバイルクリーニングロボットのマッピングシステム514によって生成される環境のマップの上で、外部ドアまたはマッドルームを識別またはラベル付けするように促され得る。予測された雨の多い天候の期間の間に、外部ドアまたはマッドルームに近接するエリアをクリーニングするように、推奨が提供され得る。推奨は、スケジュールの1回限りの変更であることが可能であり、または、反復性のクリーニングスケジュール変更であることが可能である。たとえば、推奨は、予測された雨が終了した後に、特定の時間内に泥だらけのエリアをモップ掛けすることを含むことが可能である。一例では、連続する複数の日にわたって雨が予期される場合、それらの日の間に追加のクリーニングを提供するために、定期的にスケジューリングされたクリーニングがユーザーに推奨され得る。特定のクリーニングモード(たとえば、「ディープクリーン」)が、泥だらけのエリアに関して推奨され得る。
いくつかの例において、モバイルロボットシステム500は、花粉もしくは他の微粒子、ペットの毛、泥、または、他のデブリもしくは関心の物体をセンシングするように構成されているモバイルクリーニングロボット510の外部のセンサーを含むことが可能である。外部センサーは、環境的な条件を制御するように動作する作動可能な環境的な制御ノードまたはデバイス(たとえば、加湿器、HVAC、サーモスタット、または空気清浄機など)の中に装着され得る。一例では、1つ以上のそのような外部センサーは、センシングされた情報をワイヤレス通信ネットワークを介してモバイルクリーニングロボット510またはモバイルデバイス520に送信することができるIoTデバイスまたはセンサーなどのような、インターネット接続デバイス550の中に含まれ得る。モバイルクリーニングロボット510は、(随意的に、センサーシステム511によってセンシングされた情報とともに)外部センサーからセンシングされた情報を使用し、季節的なクリーニングスケジュールの中のクリーニングエリア525、クリーニング時間526、またはクリーニングモード527のうちの1つ以上を動的に修正することが可能である。
環境マップおよびデブリ/物体ヒートマップ
モバイルクリーニングロボット510は、環境のマップを発生させることができるマッピングシステム514を含むことが可能である。マップは、センサーシステム511の中のセンサー(たとえば、イメージングセンサーなど)によって収集されたセンサーデータを使用して生成され得る。マップは、環境の中の横断可能なおよび横断不可能なスペースの場所を示すことが可能である。たとえば、障害物の場所は、横断不可能なスペースとしてマップの上に示され得、オープンフロアスペースの場所は、横断可能なスペースとしてマップの上に示され得る。一例では、マッピングシステム514は、モバイルクリーニングロボット510によって環境の中に検出される物体に関する意味情報を発生させることが可能である。意味情報の例は、他の物体または物体間の特質のなかでも、環境における物体の場所、アイデンティティー、もしくは状態、または、物体同士の間の空間的関係の制約を含むことが可能である。意味的に注釈された物体は、マップの上にグラフィカルに表示され得る。環境のマップは、モバイルデバイス520のユーザーインターフェース528上に表示され得る。一例では、ユーザーは、入力デバイス(たとえば、ユーザーインターフェース528の上のUIコントロール)を使用し、季節的なデブリ(たとえば、花粉、ペットの毛、もしくは泥)が蓄積すると予想されるエリア、または、特定の関心の物体(たとえば、入口ドア、窓、ペット、もしくはペットユーティリティー)が位置付けされているエリアを示すために、マップの上に注釈を付けることが可能である。
いくつかの例において、マッピングシステム514は、マップの上に季節的なデブリ状態のグラフィカル表現を発生させることが可能である。季節的なデブリ状態のグラフィカル表現は、環境における季節的なデブリの空間的密度を示すことが可能である。季節的なデブリ蓄積の空間的密度表現の例は、ヒートマップである。図8Aは、家のマップの上に花粉場所のヒートマップ800Aを図示している。モバイルクリーニングロボット510は、花粉シーズンの間に、環境における花粉蓄積の場所を経時的に(たとえば、数日から数週間にわたって)トラッキングすることが可能である。トラッキングされた場所データは、典型的な花粉シーズンの間のユーザーの家の中の花粉数の空間分布を表すヒートマップ800Aを生成させるために使用され得る。図8Aに示されているような例では、4つの高密度花粉ゾーン(3つの窓エリア812、814、および816、ならびに入口ドアエリア818を含む)は、ヒートマップ800Aから識別され得る。ユーザーは、高密度花粉ゾーンの注釈をマップの上に追加することが可能である。モバイルクリーニングロボットは、季節的なクリーニングスケジュールに従って高密度花粉ゾーンをクリーニングすることを含むクリーニングミッションを実行することが可能である。
図8Bは、家のマップの上のペットの場所のヒートマップ800Bを図示している。モバイルクリーニングロボット510は、換毛シーズンの間に、家の中のペットの場所を経時的にトラッキングすることが可能である。トラッキングされたペットの場所データは、観察期間の間にペットが最も長い時間を過ごした場所を表すヒートマップ800Bを生成させるために使用され得る。より高い線密度は、ペットが比較的に多い時間を過ごした場所を示しており、より低い線密度は、ペットが比較的に少ない時間を過ごした場所を示している。図8Bに示されているような例では、ペットがより多くの時間を過ごした4つの場所822、824、826、および828が、ヒートマップ800Bから識別され得る。ペットが比較的の多くの時間を過ごした場所は、予期される換毛の増加の時間の間に、追加的なクリーニングのために指定され得る。ヒートマップ800Aは、追加的にまたは代替的に、ペットユーティリティーの場所(たとえば、ペットおもちゃ、ベッド、餌入れ、ツール)の密度、または、モバイルクリーニングロボットのデブリ検出器/ローカライザー513によって検出および局所化されるペットの毛の密度に対応することが可能である。たとえば、高密度の線は、ペットの毛の相対的に高い密度に対応しており、線のより低い密度は、ペットの毛の相対的により低い密度に対応している。ユーザーは、マップの上にペットの場所またはペットの毛の注釈を追加することが可能である。識別された高密度ペットの毛のエリアは、予期される換毛の増加の時間の間に、追加的なクリーニングのためにクリーニングスケジュールの中に含まれ得る。
ナビゲーションコントローラー516は、ロボット環境の指定されたエリアへ駆動するように、駆動システム517への制御信号を発生させることが可能であり、また、季節的なクリーニングスケジュールに従ってクリーニングミッションを実施するように、クリーニングシステム518への制御信号を発生させることが可能である。季節的なクリーニングスケジュールは、図6A~図6Cおよび図7A~図7Cを参照して上記に議論されているように、特定の時間期間内に(たとえば、識別された花粉シーズン、ペットの換毛シーズン、または雨のシーズンなどの間に)実施されることとなるクリーニングタスクを含むことが可能である。季節的なクリーニングスケジュールは、モバイルクリーニングロボットによってクリーニングされることとなる部屋またはフロア表面エリアのシーケンスを含むことが可能である。モバイルクリーニングロボットは、バキュームアッセンブリを有することが可能であり、モバイルクリーニングロボットがフロア表面を横断するときにデブリを取り込むために吸引を使用する。別の例では、季節的なクリーニングスケジュールは、モバイルモップ掛けロボットによってモップ掛けされることとなる部屋またはフロア表面エリアのシーケンスを含むことが可能である。モバイルモップ掛けロボットは、フロア表面を拭くためのまたは擦るためのクリーニングパッドを有することが可能である。いくつかの例において、季節的なクリーニングスケジュールは、シーケンシャルに、絡み合って、並行して、または、別の特定の順序もしくはパターンで、2つのモバイルロボットによって実行されるようにスケジューリングされたタスクを含むことが可能である。たとえば、ナビゲーションコントローラー516は、部屋をバキュームするようにモバイルクリーニングロボットをナビゲートすることが可能であり、また、バキュームされた部屋をモップ掛けするようにモバイルモップ掛けロボットをナビゲートすることが可能である。
季節的なクリーニングスケジュールを生成させるための、および、クリーニングを制御するための例示的な方法
図9は、自律型モバイルロボット(たとえば、モバイルクリーニングロボット100またはモバイルクリーニングロボット510など)のための季節的なクリーニングスケジュールを生成させるための、および、季節的なクリーニングスケジュールに従って環境におけるミッションを実行するように自律型モバイルロボットを制御するための方法900の例を図示するフローダイアグラムである。季節的なクリーニングスケジュールは、季節的なまたは環境的なデブリ蓄積イベントに基づくことが可能である。方法900は、図5を参照して上記に説明されているように、自律型モバイルロボット(たとえば、クリーニングロボット)およびモバイルデバイスを含むモバイルロボットシステム500の中に実装され、モバイルロボットシステム500によって実行され得る。方法900は、さまざまなタイプの1つ以上のモバイルロボット(たとえば、モバイルクリーニングロボット、モバイルモップ掛けロボット、または芝刈りロボットなど)をスケジューリングおよび制御するために使用され得る。
方法900は、ステップ910において開始し、モバイルデバイスを介して季節的なデブリ蓄積イベントについての情報を受信する。季節的なデブリ蓄積イベントは、たとえば、花粉シーズンの間の花粉生産、換毛シーズンの間のペットの換毛の増加、または、環境的なまたは天候のイベント(たとえば、雨のシーズンもしくは雪のシーズンにおいて家の中の特定のエリアに持ち込まれる泥、雨、もしくは雪など)を含むことが可能である。季節的なデブリ蓄積イベントについての情報は、たとえば、典型的な年の中のそのようなイベントのタイミングまたはタイムスパンを含むことが可能である。受信される情報は、モバイルクリーニングロボットの環境の地理的な場所(たとえば、ユーザーの家)を含むことが可能であり、それは、GPSまたは他の場所技術を使用するジオロケーションサービスから取得され得る。一例では、受信される情報は、今後の環境的なイベント(たとえば、なかでも、雨、風、雪、花粉指数、空気中のカビ数など)の予報を含むことが可能であり、それは、気象サービスから受信され得る。モバイルロボットの環境の地理的な場所および/または今後の環境イベントの予報についての情報は、季節的なデブリ蓄積イベント(たとえば、花粉シーズンなど)のタイミングまたはタイムスパンを決定または予測するために使用され得る。一例では、受信される情報は、ペット情報(たとえば、家庭の中のペットの存在および数、ならびに、それぞれのペットの品種、タイプ、年齢、おおよその体重など)を含むことが可能である。ペット情報は、換毛シーズンの間の環境におけるペットの毛の量を決定または予測するために使用され得る。さらに別の例では、受信される情報は、ユーザーの家のエリアにおける植物の量および種類、ならびに/または、ユーザーの家に対する植物の距離もしくは配向などのような、ユーザーの家に特有の環境的な条件を含むことが可能である。特定の環境的な条件は、花粉シーズンの間にユーザーの家の異なるエリアにおける花粉の量または花粉分布を決定または予測するために使用され得る。
920において、季節的なクリーニングスケジュールの推奨は、たとえば、クリーニングスケジュール発生器524を使用するなどして、発生させられ得る。季節的なクリーニングスケジュールは、季節的なデブリ蓄積イベントの予測されたタイミング(たとえば、タイムスパン)または予測されたデブリ状態に基づいて発生させられ得る。季節的なクリーニングスケジュールは、クリーニングエリア、クリーニング時間、またはクリーニングモードのうちの1つ以上を含むことが可能である。クリーニングエリアは、環境全体(たとえば、ユーザーの家)、または、ユーザーによって特定され得るその一部分であることが可能である。予測されたクリーニング時間は、予測されたタイミングまたはタイムスパンの中の特定の日および時間を含むことが可能である。一例では、クリーニング時間526は、季節的イベント予測器521によって決定される季節的なデブリ蓄積イベントの予測されたタイムスパンの間に、毎週月曜日、水曜日、および金曜日の午前9:00として定義され得る。クリーニングモードは、どのようにモバイルクリーニングロボットがクリーニングエリアをクリーニングするかを表しており、なかでも、ディープクリーン、スポットクリーン、クイッククリーン、モップ掛けが後に続くバキュームを含むことが可能である。クリーニングモードは、同じエリアにわたるパスの数、エリアをクリーニングするために費やされる時間、クリーニングパワーなどにおいて異なることが可能である。
特定のクリーニングエリアに関して、季節的なクリーニングスケジュールは、そのエリアの予測されたデブリ状態に基づいて、クリーニング時間、クリーニングモード、または、その両方において、変化することが可能である。たとえば、季節的なクリーニングスケジュールは、それが比較的に高いデブリ状態を有することが予見されるときに(たとえば、ピーク花粉シーズンまたはペットの換毛シーズンの間)、そのエリアをクリーニングするための第1のクリーニング時間を含むことが可能であり、また、それが比較的に低いデブリ状態を有することが予見されるときに(たとえば、花粉シーズンまたはペットの換毛シーズンから外れた時間の間)、同じエリアをクリーニングするための異なる第2のクリーニング時間を含むことが可能である。別の例では、季節的なクリーニングスケジュールは、そのエリアが比較的に高いデブリ状態を有することが予見されるときに、第1のクリーニングモード(たとえば、同じエリアにわたって繰り返されるまたはマルチパスクリーニング、より長いクリーニング時間、または、より高いパワーによって特徴付けられる「ディープクリーン」モード)を含むことが可能であり、また、そのエリアが比較的に低いデブリ状態を有することが予見されるときに、異なる第2のクリーニングモード(たとえば、同じエリアにわたって単一のまたはより少ないパス、より短いクリーニング時間、または、より低いクリーニングパワーによって特徴付けられる「標準クリーン」モードまたは「クイッククリーン」モード)を含むことが可能である。
930において、ユーザーは、推奨された季節的なクリーニングスケジュールまたはその一部分を承認するか、拒否するか、または修正することが可能である。推奨された季節的なクリーニングスケジュールは、季節的なまたは環境的なデブリ蓄積イベントを考慮に入れない既存の「デフォルト」または定期的なクリーニングスケジュールとは別個のスケジュールであることが可能である。代替的に、推奨された季節的なクリーニングスケジュールは、たとえば、追加のクリーニングタスクを既存のクリーニングスケジュールに追加することなどによって、既存のクリーニングスケジュールの修正であることが可能である。図6A~図6Cおよび図7A~図7Cに図示されているような例では、既存のクリーニングスケジュールおよび推奨された季節的なクリーニングスケジュールは、ユーザーに提示され得る。既存のクリーニングスケジュールは、ユーザーの家の中の指定されたエリアをクリーニングするための時間を定義している。ユーザーは、1つ以上の推奨された追加のクリーニング時間を既存のスケジュールに追加することによって、既存のクリーニングスケジュールを修正することが可能である。追加のクリーニング時間は、1回限りのクリーニング、または、反復的にスケジューリングされたクリーニングであることが可能である。追加的にまたは代替的に、ユーザーは、既存のクリーニングスケジュールの中のクリーニングモードを修正することによって、既存のクリーニングスケジュールを修正することが可能である。一例では、修正されたクリーニングモードは、微細な花粉粒子の収集を保証するために、より頻繁なモップ掛けを含むことが可能である。たとえば、推奨は、比較的に高い花粉レベルを有する時間期間の間に、それぞれのバキューミングミッションの後にフロアをモップ掛けすることように提供され得る。一例では、モップ掛けは、バキューミングの前に、または、バキューミングなしに花粉がバキューミングを介して空気中に拡散されることを防止または低減させるために推奨される可能性がある。ユーザーがロボットとともに共同でクリーニングする例では(たとえば、ロボットがバキュームまたはモップ掛けする間に、ユーザーがダストを払うかまたは他のクリーニングの雑用を行う)、花粉または他の空気中に浮遊する粒子状物質が比較的に高いときにダストを払わないように、推奨がユーザーに提供され得る。
940において、モバイルデバイスとモバイルクリーニングロボットとの間の通信が確立され得る。通信は、システムの中間デバイスのない直接的な通信リンクであることが可能である。代替的に、通信は、中間システム(たとえば、クラウドコンピューティングシステム406など)を介することも可能である。一例では、モバイルデバイスは、ロボット情報およびその動作ステータスを表示することができるユーザーインターフェースを含むことが可能である。ユーザーは、アクティブモバイルロボットの一式を管理し、それらの活動を調整することが可能である。
950において、季節的なクリーニングスケジュールは、たとえば通信リンクを介してなど、モバイルクリーニングロボットに送信され得、モバイルロボットは、環境の周りでナビゲートされ、季節的なクリーニングスケジュールに従ってミッションを実行することが可能である。いくつかの例において、モバイルクリーニングロボットは、そのオンボードセンサー、または、作動可能な環境的な制御ノードの中に装着されている外部IoTセンサーを使用し、モバイルクリーニングロボットが環境を横断するときに、デブリ蓄積(たとえば、花粉もしくは他の微粒子、ペットの毛、泥、または他のデブリ)、または、関心の物体(たとえば、入口ドア、窓、ペット、もしくはペットユーティリティー)を検出および局所化することが可能である。たとえば、窓および入口ドアに隣接するエリアは、花粉が溜まりやすい。ペットが頻繁に出入りするエリア、または、ペットユーティリティーが検出されるエリアは、モバイルクリーニングロボットが環境を横断するときに、換毛シーズンの間に過剰なペットの毛が発生しやすい。いくつかの例において、デブリまたは関心の物体の検出は、環境のマップの上にグラフィカルに表され得る。一例では、グラフィカル表現は、図8A~図8Bに図示されているように、環境の中のデブリまたは物体の空間的密度を表すヒートマップを含むことが可能である。
デブリもしくは他の関心の物体の検出、または、検出のグラフィカル表現に基づいて、モバイルクリーニングロボットは、季節的なクリーニングスケジュールの中のクリーニングエリア、クリーニング時間、またはクリーニングモードのうちの1つ以上を動的に調節することが可能である。いくつかの例において、クリーニングエリア(たとえば、予想された花粉エリア)のサイズは、環境的なまたは天候条件(たとえば、風速および方向、または、ユーザーの家の周りの植物の量および種類など)に基づいて調節され得る。モバイルクリーニングロボットは、環境の周りでナビゲートされ、動的に調節された季節的なクリーニングスケジュールに従ってミッションを実行することが可能である。
モバイルロボットスケジューリングのための機械可読媒体の例
図10は、本明細書で議論されている技法(たとえば、方法論)のうちの任意の1つ以上を実施することができる例示的なマシン1000のブロック図を全体的に図示している。この説明の一部分は、モバイルクリーニングロボット100、モバイルデバイス404、または他のコンピューティングシステム、たとえば、ローカルコンピューターシステムまたはクラウドコンピューティングシステム406などのさまざまな部分のコンピューティングフレームワークに適用することが可能である。
代替的な実施形態において、マシン1000は、スタンドアロンデバイスとして動作することが可能であり、または、他のマシンに接続され得る(たとえば、ネットワーク化される)。ネットワーク化された配備において、マシン1000は、サーバーマシンの容量の中で、クライアントマシンの容量の中で、または、両方のサーバー-クライアントネットワーク環境の中で動作することが可能である。一例では、マシン1000は、ピアツーピア(P2P)(または、他の分散型の)ネットワーク環境の中のピアマシンとして作用することが可能である。マシン1000は、パーソナルコンピューター(PC)、タブレットPC、セットトップボックス(STB)、パーソナルデジタルアシスタント(PDA)、携帯電話、ウェブアプライアンス、ネットワークルーター、スイッチもしくはブリッジ、または、そのマシンによってとられるべきアクションを特定するインストラクション(シーケンシャルまたはその他)を実行することができる任意のマシンであることが可能である。さらに、単一のマシンのみが図示されているが、「マシン」という用語は、また、本明細書で議論されている方法論のうちの任意の1つ以上、たとえば、クラウドコンピューティング、ソフトウェアアズアサービス(SaaS)、他のコンピュータークラスター構成などを実施するためのインストラクションのセット(または、複数のセット)を個別にまたは共同で実行するマシンの任意の収集を含むように解釈されるものとする。
本明細書で説明されているように、例は、ロジックもしくは複数のコンポーネント、またはメカニズムを含むことが可能であり、または、それによって動作することが可能である。回路セットは、ハードウェア(たとえば、単純回路、ゲート、ロジックなど)を含む有形エンティティーの中に実装された回路の収集である。回路セットメンバーシップは、時間の経過とともに可撓性であることが可能であり、ハードウェア変動性の基礎となっていることが可能である。回路セットは、動作しているときに特定の動作を単独でまたは組み合わせて実施することができる部材を含む。一例では、回路セットのハードウェアは、特定の動作を実施するように不変に設計され得る(たとえば、ハードワイヤード)。一例では、回路セットのハードウェアは、特定の動作のインストラクションをエンコードする物理的に修正されたコンピューター可読媒体(たとえば、不変質量の粒子の磁気的に、電気的に、移動可能な設置など)を含む、可変的に接続されている物理的なコンポーネント(たとえば、実行ユニット、トランジスター、単純回路など)を含むことが可能である。物理的なコンポーネントを接続する際に、ハードウェア構成要素の基礎的な電気特性が、たとえば、絶縁体から導体へ変化させられるか、または、同様にその反対に変化させられる。インストラクションは、埋め込まれているハードウェア(たとえば、実行ユニットまたはローディングメカニズム)が可変接続を介してハードウェアの中の回路セットの部材を生成させることを可能にし、動作中のときに特定の動作の一部分を実施する。したがって、コンピューター可読媒体は、デバイスが動作しているときに、回路セット部材の他のコンポーネントに通信可能に連結されている。一例では、物理的なコンポーネントのうちのいずれかが、2つ以上の回路セットの2つ以上の部材の中に使用され得る。たとえば、動作下において、実行ユニットは、1つの時点において、第1の回路セットの第1の回路の中で使用され、また、異なる時間において、第1の回路セットの中の第2の回路によって、または、第2の回路セットの中の第3の回路によって再使用され得る。
マシン(たとえば、コンピューターシステム)1000は、ハードウェアプロセッサー1002(たとえば、中央処理装置(CPU)、グラフィックスプロセッシングユニット(GPU)、ハードウェアプロセッサーコア、または、それらの任意の組合せ)、メインメモリー1004および静的メモリー1006を含むことが可能であり、そのうちのいくつかまたはすべては、インターリンク(たとえば、バス)1008を介して互いに通信することが可能である。マシン1000は、ディスプレイユニット1010(たとえば、ラスターディスプレイ、ベクトルディスプレイ、ホログラフィックディスプレイなど)、英数字入力デバイス1012(たとえば、キーボード)、およびユーザーインターフェース(UI)ナビゲーションデバイス1014(たとえば、マウス)をさらに含むことが可能である。一例では、ディスプレイユニット1010、入力デバイス1012、およびUIナビゲーションデバイス1014は、タッチスクリーンディスプレイであることが可能である。マシン1000は、ストレージデバイス(たとえば、駆動ユニット)1016、信号発生デバイス1018(たとえば、スピーカー)、ネットワークインターフェースデバイス1020、および1つ以上のセンサー1021、たとえば、全地球測位システム(GPS)センサー、コンパス、加速度計、または他のセンサーなどを追加的に含むことが可能である。マシン1000は、出力コントローラー1028、たとえば、シリアル(たとえば、ユニバーサルシリアルバス(USB))、パラレル、または他のワイヤードまたはワイヤレス(たとえば、赤外線(IR)、近距離無線通信(NFC)など)接続などを含むことが可能であり、1つ以上の周辺デバイス(たとえば、プリンター、カードリーダーなど)と通信するかまたはそれらを制御することが可能である。
ストレージデバイス1016は、機械可読媒体1022を含むことが可能であり、本明細書で説明されている技法または機能のうちの任意の1つ以上を具現化するかまたはそれによって利用される1つ以上のセットのデータ構造またはインストラクション1024(たとえば、ソフトウェア)が、機械可読媒体1022の上に記憶される。また、インストラクション1024は、完全にまたは少なくとも部分的に、メインメモリー1004の中に、静的メモリー1006の中に、または、マシン1000によるその実行の間のハードウェアプロセッサー1002の中に存在していることが可能である。一例では、ハードウェアプロセッサー1002、メインメモリー1004、静的メモリー1006、またはストレージデバイス1016のうちの1つまたは任意の組合せは、機械可読媒体を構築することが可能である。
機械可読媒体1022は単一の媒体として図示されているが、「機械可読媒体」という用語は、1つ以上のインストラクション1024を記憶するように構成されている単一の媒体または複数の媒体(たとえば、集中型のもしくは分散型のデータベース、ならびに/または、関連のキャッシュおよびサーバー)を含むことが可能である。
「機械可読媒体」という用語は、マシン1000による実行のためのインストラクションを記憶し、エンコードし、もしくは担持することができる任意の媒体、本開示の技法のうちの任意の1つもしくは複数をマシン1000が実施することを引き起こす任意の媒体、または、そのようなインストラクションによって使用されるかもしくはそのようなインストラクションに関連付けられたデータ構造を記憶し、エンコードし、もしくは担持することができる任意の媒体を含むことが可能である。非限定的な機械可読媒体の例は、ソリッドステートメモリ、ならびに、光学的な媒体および磁気的な媒体を含むことが可能である。一例では、マス機械可読媒体(massed machine-readable medium)は、不変の質量(たとえば、静止質量)を有する複数の粒子を備えた機械可読媒体を含む。したがって、マス機械可読媒体は、一時的な伝播信号ではない。マス機械可読媒体の特定の例は、不揮発性のメモリー、たとえば、半導体メモリーデバイス(たとえば、電気的にプログラム可能なリードオンリーメモリー(EPROM)、電気的に消去可能なプログラム可能なリードオンリーメモリー(EPSOM))およびフラッシュメモリーデバイスなど、磁気ディスク、たとえば、内部ハードディスクおよびリムーバブルディスクなど、光磁気ディスク、ならびに、CD-ROMディスクおよびDVD-ROMディスクを含むことが可能である。
インストラクション1024は、複数の転送プロトコル(たとえば、フレームリレー、インターネットプロトコル(IP)、伝送制御プロトコル(TCP)、ユーザーデータグラムプロトコル(UDP)、ハイパーテキスト転送プロトコル(HTTP)など)のうちのいずれか1つを利用するネットワークインターフェースデバイス1020を介して、伝送媒体を使用して、通信ネットワーク1026の上でさらに送信または受信され得る。例示的な通信ネットワークは、なかでも、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、パケットデータネットワーク(たとえば、インターネット)、携帯電話ネットワーク(たとえば、セルラーネットワーク)、Plain Old Telephone(POTS)ネットワーク、ワイヤレスデータネットワーク(たとえば、WiFi(登録商標)として知られている米国電気電子学会(IEEE)802.11の標準のファミリー、WiMax(登録商標)として知られているIEEE 802.16の標準のファミリー)、IEEE 802.15.4の標準のファミリー、およびピアツーピア(P2P)ネットワークを含むことが可能である。一例では、ネットワークインターフェースデバイス1020は、1つもしくは複数の物理的なジャック(たとえば、イーサネットジャック、同軸ジャック、もしくはフォンジャック)または1つもしくは複数のアンテナを含み、通信ネットワーク1026に接続することが可能である。一例では、ネットワークインターフェースデバイス1020は、複数のアンテナを含み、単一入力複数出力(SIMO)、複数入力複数出力(MIMO)、または複数入力単一出力(MISO)技法のうちの少なくとも1つを使用して、ワイヤレスに通信することが可能である。「伝送媒体」という用語は、マシン1000による実行のためのインストラクションを記憶し、エンコードし、または担持することができる任意の非有体的な媒体を含むものと解釈されるものとし、そのようなソフトウェアの通信を促進させるためのデジタル通信信号もしくはアナログ通信信号または他の非有体的な媒体を含む。
さまざまな実施形態が、上記の図に図示されている。これらの実施形態のうちの1つ以上からの1つ以上の特徴は、他の実施形態を形成するために組み合わせられ得る。
本明細書で説明されている方法の例は、少なくとも部分的にマシン実装またはコンピューター実装され得る。いくつかの例は、上の例に説明されているような方法を実施するための電子的なデバイスまたはシステムを構成するように動作可能なインストラクションによってエンコードされたコンピューター可読媒体または機械可読媒体を含むことが可能である。そのような方法の一実装形態は、たとえば、マイクロコード、アッセンブリ言語コード、または、より高レベルの言語コードなどのようなコードを含むことが可能である。そのようなコードは、さまざまな方法を実施するためのコンピューター可読のインストラクションを含むことが可能である。コードは、コンピュータープログラム製品の一部を形成することが可能である。さらに、コードは、実行の間にまたは他の時間において、1つ以上の揮発性のまたは不揮発性のコンピューター可読媒体の上に有形に記憶され得る。
上記の詳細な説明は、例示目的であることを意図しており、限定的であることを意図していない。したがって、本開示の範囲は、そのような特許請求の範囲が権利を与えられる均等物の全範囲とともに、添付の特許請求の範囲を参照して決定されるべきである。