(57)【特許請求の範囲】
【請求項１】
移動式床清掃ロボット（１００）を作動させる方法であって、
各々がピクセル（５１６）のアレイを有する、床表面（１０）のイメージ（５１４）のシーケンス（５１４ｂ）を受け取るステップと、
前記イメージ（５１４）のピクセル（５１６）をカラー量子化し、対応するピクセルロケーション（５１７）に基づいて前記イメージ（５１４）の各色の空間分布を決定し、前記イメージの各々の色に対して、当該色の閾空間分布を有する前記イメージ（５１４）の領域を識別することによって、前記イメージ（５１４）の各々に対して前記イメージ（５１４）をカラーブロブ（２３）にセグメント化するステップと、
前記イメージのシーケンス（５１４ｂ）にわたり前記イメージセンサ（５１０）に対して前記カラーブロブ（２３）の各々のロケーション（１２ａ）を追跡するステップと、
前記カラーブロブ（２３）の追跡されたロケーション（１２ａ）に基づいて、前記ロボット（１００）から離れている床表面（１０）上の物体（２２）のロケーション（１２）を識別するステップと、
前記床表面（１０）にわって駆動して、前記物体（２２）の識別されたロケーション（１２）にて前記床表面（１０）を清掃するステップと、
前記物体（２２）が前記床表面（１０）上に残っているか否かを判定するステップと、
前記物体（２２）が残っている場合には、前記床表面（１０）にわって駆動して、前記物体（２２）の識別されたロケーション（１２）にて前記床表面（１０）を再度清掃するステップと、
を含み、
前記イメージ（５１４）を前記カラーブロブ（２３）にセグメント化するステップが更に、前記イメージ（５１４）を領域（５１４ｒ）に分割して、該各領域（５１４ｒ）のピクセル（５１６）を別個にカラー量子化するステップを含む、方法。
【請求項２】
前記物体（２２）の識別されたロケーション（１２）にて前記床表面（１０）を清掃するステップの後、前記物体（２２）が前記床表面（１０）上に残っているか否かを判定するように操縦するステップを更に含む、請求項１に記載の方法。
【請求項３】
前記カラーブロブ（２３）の各々のロケーション（１２ａ）を追跡するステップが、
前記イメージセンサ（５１０）に対して前記カラーブロブ（２３）の各々の速度ベクトル（Ｖ）を決定するステップと、
前記イメージシーケンス（５１４ｂ）の各イメージ（５１４）について決定されたカラーブロブロケーション（１２ａ）を記録するステップと、
を含む、請求項１に記載の方法。
【請求項４】
前記カラーブロブ（２３）の各々のサイズを決定するステップを更に含む、請求項１に記載の方法。
【請求項５】
最も近い前記カラーブロブ（２３）に向けて前記ロボット（１００）を操縦するよう駆動コマンド（１５２）を発するステップを更に含む、請求項１に記載の方法。
【請求項６】
前記最も近いカラーブロブ（２３）が、前記イメージシーケンス（５１４ｂ）のイメージ（５１４）の閾値数で識別される、請求項５に記載の方法。
【請求項７】
前記カラーブロブ（２３）の各々のサイズを決定するステップと、
前記イメージセンサ（５１０）に対して前記カラーブロブ（２３）の各々の速度ベクトル（Ｖ）を決定するステップと、
１つ又はそれ以上の前記カラーブロブ（２３）の前記サイズ及び前記速度ベクトル（Ｖ）に基づいて、前記ロボット（１００）を操縦するよう駆動コマンド（１５２）を発するステップと、
最大のサイズ及び前記ロボット（１００）に向かう最大の速度ベクトル（Ｖ）を有するカラーブロブ（２３）に向けて前記ロボット（１００）を操縦するよう駆動コマンド（１５２）を発するステップと、
を更に含む、請求項１に記載の方法。
【請求項８】
カラースペースにおいて前記ピクセル（５１６）の各々の色について数値表現を割り当てるステップと、
赤−緑−青のカラースペースにおいて前記イメージのピクセル（５１６）をカラー量子化して、前記イメージ（５１４）を９ビットの赤−緑−青のイメージ（５１４）に低減するステップと、
を更に含む、請求項１に記載の方法。
【請求項９】
互いに通信状態にある制御調停システム（２１０ｂ）と挙動システム（２１０ａ）とを有する制御システム（２１０）を実行するステップを更に含み、
前記挙動システム（２１０ａ）は、清掃挙動部（３００ｃ、３００ｄ）を実行し、
前記清掃挙動部（３００ｃ、３００ｄ）は、イメージセグメント化に基づいて前記制御調停システム（２１０ｂ）によるコマンドの実行に影響を及ぼして、前記ロボット（１００）の清掃システム（１６０）を用いて清掃するために、汚れ床領域（１２）に相当するカラーブロブ（２３）及び前記汚れ床領域（１２）上を操縦するよう追跡しているカラーブロブ（２３）を識別する、請求項１に記載の方法。
【請求項１０】
移動式床清掃ロボット（１００）であって、
前方駆動方向（Ｆ）を定めるロボット本体（１１０）と、
前記ロボット本体（１１０）を支持し、床表面（１０）にわたって前記ロボット（１００）を操縦するよう構成された駆動システム（１２０）と、
前記ロボット本体（１１０）によって支持される清掃システム（１６０）と、
前記ロボット本体（１１０）上に配置されたイメージセンサ（５１０）と、
前記駆動システム（１２０）及び前記イメージセンサ（５１０）と通信状態にあるコントローラ（１５０）と、
を備え、前記コントローラ（１５０）が、
各々がピクセル（５１６）のアレイを有する前記床表面（１０）のイメージ（５１４）のシーケンス（５１４ｂ）を受け取り、
前記イメージ（５１４）のピクセル（５１６）をカラー量子化し、対応するピクセルロケーション（５１７）に基づいて前記イメージ（５１４）の各色の空間分布を決定し、前記イメージの各々の色に対して、当該色の閾空間分布を有する前記イメージ（５１４）の領域を識別することによって、前記イメージ（５１４）の各々に対して前記イメージ（５１４）をカラーブロブ（２３）にセグメント化し、
前記イメージのシーケンス（５１４ｂ）にわたり前記イメージセンサ（５１０）に対して前記カラーブロブ（２３）の各々のロケーション（１２ａ）を追跡し、
前記イメージ（５１４）を前記カラーブロブ（２３）にセグメント化することが更に、前記イメージ（５１４）を領域（５１４ｒ）に分割して、該各領域（５１４ｒ）のピクセル（５１６）を別個にカラー量子化することを含む、ことを特徴とする、移動式床清掃ロボット（１００）。
【請求項１１】
前記コントローラが、
前記カラーブロブ（２３）の追跡されたロケーション（１２ａ）に基づいて前記ロボット（１００）から離れている床表面（１０）上の物体（２２）のロケーション（１２）を識別し、
前記床表面（１０）にわたって駆動して前記物体（２２）の識別されたロケーション（１２）にて前記床表面（１０）を清掃するよう前記駆動システム（１２０）に命令し、
前記物体（２２）が前記床表面（１０）上に残っているか否かを判定し、
前記物体（２２）が残っている場合には、前記床表面（１０）にわって駆動して、前記物体（２２）の識別されたロケーション（１２）にて前記床表面（１０）を再度清掃する、請求項１０に記載の移動式床清掃ロボット（１００）。
【請求項１２】
前記イメージセンサ（５１０）が、前記ロボット（１００）の前方駆動方向（Ｆ）に沿った視野（５１２）を有するように配置されたカメラ（５１０）を含む、請求項１０に記載の移動式床清掃ロボット（１００）。
【請求項１３】
前記カメラ（５１０）が、前記ロボット（１００）の前方駆動方向（Ｆ）に対して左右方向及び／又は上下方向でスキャンする、請求項１２に記載の移動式床清掃ロボット（１００）。
【請求項１４】
前記カラーブロブ（２３）の各々のロケーション（１２ａ）を追跡することが、
前記イメージセンサ（５１０）に対して前記カラーブロブ（２３）の各々の速度ベクトル（Ｖ）を決定し、
前記イメージシーケンス（５１４ｂ）の各イメージ（５１４）について決定されたカラーブロブロケーション（１２ａ）を記録する、
ことを含む、請求項１０に記載の移動式床清掃ロボット（１００）。
【請求項１５】
前記コントローラ（１５０）が、前記カラーブロブ（２３）の各々のサイズを決定する、請求項１０に記載の移動式床清掃ロボット（１００）。
【請求項１６】
前記コントローラ（１５０）が、最も近い前記カラーブロブ（２３）に向けて前記ロボット（１００）を操縦するよう駆動コマンド（１５２）を発する、請求項１０に記載の移動式床清掃ロボット（１００）。
【請求項１７】
前記コントローラ（１５０）が、前記最も近いカラーブロブ（２３）を前記イメージシーケンス（５１４ｂ）のイメージ（５１４）の閾値数で識別する、請求項１６に記載の移動式床清掃ロボット（１００）。
【請求項１８】
前記コントローラ（１５０）が、
前記カラーブロブ（２３）の各々のサイズを決定し、
前記イメージセンサ（５１０）に対して前記カラーブロブ（２３）の各々の速度ベクトル（Ｖ）を決定し、
１つ又はそれ以上の前記カラーブロブ（２３）の前記サイズ及び前記速度ベクトル（Ｖ）に基づいて前記ロボット（１００）を操縦するよう駆動コマンド（１５２）を発し、
前記コントローラ（１５０）が、最大のサイズ及び前記ロボット（１００）に向かう最大の速度ベクトル（Ｖ）を有するカラーブロブ（２３）に向けて前記ロボット（１００）を操縦するよう駆動コマンド（１５２）を発する、請求項１０に記載の移動式床清掃ロボット（１００）。
【請求項１９】
前記コントローラ（１５０）が、カラースペースにおいて前記ピクセル（５１６）の各々の色について数値表現を割り当て、赤−緑−青のカラースペースにおいて前記イメージのピクセル（５１６）をカラー量子化して、前記イメージ（５１４）を９ビットの赤−緑−青のイメージ（５１４）に低減する、請求項１０に記載の移動式床清掃ロボット（１００）。
【請求項２０】
前記コントローラ（１５０）が、ＬＡＢカラースペースにおいて前記イメージのピクセル（５１６）をカラー量子化する、請求項１９に記載の移動式床清掃ロボット（１００）。
【請求項２１】
前記ロボットは、前記イメージのシーケンスを捕捉するカメラ（５１０）を有し、このカメラ（５１０）は、前記ロボット（１００）の前方駆動方向（Ｆ）に沿った視野（５１２）を有するように配置される、請求項１に記載の方法。
【請求項２２】
前記ロボット（１００）の前方駆動方向（Ｆ）に対して左右方向及び／又は上下方向で前記カメラ（５１０）をスキャンするステップを更に含む、請求項２１に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、表面清掃ロボットに関する。
【背景技術】
【０００２】
真空掃除機は一般に、空気ポンプを用いて部分真空を生成して、通常は床から、任意選択的には更に他の表面から塵埃及び汚れを引き上げるようにしている。真空掃除機は通常、後で廃棄するために集塵バッグ又はサイクロン内に汚れを集める。家庭並びに産業界で使用される真空掃除機は、小型バッテリ駆動式携帯装置、家庭用セントラル真空掃除機、排出するまでに数百リットルの塵埃を扱うことができる大型の定置用産業電気機器、又は大量の流出液の回収及び汚染土壌の除去のための自走式真空トラックなど、様々なサイズ及びモデルが存在する。
【０００３】
自律式ロボット真空掃除機は一般に、正常動作条件下では、床を真空掃除しながら居住空間及び日常的な障害物の間を移動する。自律式ロボット真空掃除機は一般に、壁、家具、又は階段などの障害物を避けることを可能にするセンサを含む。ロボット真空掃除機は、障害物に衝突したときにその駆動方向を変える（例えば、転回又は後退する）ことができる。ロボット真空掃除機はまた、床上に異常な汚れスポットを検出したときに駆動方向又は駆動パターンを変えることができる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】米国特許出願公開第２００８／００４７０９２号明細書
【発明の概要】
【０００５】
汚れ又はデブリ（debris）の閾レベル（例えば、目視検査により気付くことができる程の）を有する床領域を検出、移動、及びスポット清掃することができるナビゲーションシステムを有する自律式カバレッジロボットは、床面（例えば、部屋）の床表面を効果的及び効率的に清掃することができる。汚れを探索し、又は汚れ又はデブリの閾レベルを検出するよう認識して、次いで、清掃のため対応する床領域をターゲットとすることによって、ロボットは、全体として床領域全体を清掃する前に比較的より汚れた床領域をスポット清掃することができる。
【０００６】
本開示の１つの態様は、移動式床清掃ロボットを作動させる方法を提供する。本方法は、ロボットから離れている床表面上の物体のロケーションを識別するステップと、床表面にわって駆動して、物体の識別されたロケーションにて床表面を清掃するステップと、物体が床表面上に残っているか否かを判定するステップと、を含む。物体が残っている場合には、本方法は、床表面にわって駆動して、物体の識別されたロケーションにて床表面を再度清掃するステップを含む。
【０００７】
本開示の実施構成は、以下の特徴の１又はそれ以上を含むことができる。一部の実施構成において、本方法は、物体の識別されたロケーションにて床表面を清掃するステップの後、物体が床表面上に残っているか否かを判定するように操縦するステップを含む。本方法は、ロボットを支持する床表面のイメージのシーケンスを受け取るステップを含むことができ、ここで各イメージはピクセルのアレイを有する。本方法は更に、イメージのピクセルをカラー量子化し、対応するピクセルロケーションに基づいてイメージの各色の空間分布を決定し、各イメージの色に対して、当該色の閾空間分布を有するイメージの領域を識別することによって、イメージをカラーブロブ（color blobs）にセグメント化するステップを含む。本方法は、イメージのシーケンスにわたりイメージセンサに対して各カラーブロブのロケーションを追跡するステップを含む。
【０００８】
一部の実施例において、ピクセルのカラー量子化は、垂直方向に向けられたイメージの下側部分、及び／又はイメージの中心部分の外に適用される。イメージをカラーブロブにセグメント化するステップは、イメージを領域に分割して、該各領域のピクセルを別個にカラー量子化するステップ、及び／又は各ピクセルを第１の色セットから該第１の色セットよりも小さい第２の色セットに変換するビットシフト演算を実行するステップを含むことができる。ビットシフト演算は、赤、緑、及び青チャンネルの各々の３つの最上位ビットを保持することができる。
【０００９】
カラーブロブのロケーションを追跡するステップは、イメージセンサに対して各カラーブロブの速度ベクトルを決定するステップと、イメージシーケンスの各イメージについて決定されたカラーブロブロケーションを記録するステップと、を含むことができる。一部の実施例において、本方法は、各カラーブロブのサイズを決定するステップを含む。本方法は、１又はそれ以上のカラーブロブのロケーションに基づいてロボットを操縦する、及び／又は最も近いカラーブロブに向けてロボットを操縦するよう駆動コマンドを発するステップを含むことができる。最も近いカラーブロブは、イメージシーケンスのイメージの閾値数で識別することができる。
【００１０】
一部の実施例において、本方法は、各カラーブロブのサイズを決定するステップと、イメージセンサに対して各カラーブロブの速度ベクトルを決定するステップと、１又はそれ以上のカラーブロブのサイズ及び速度ベクトルに基づいてロボットを操縦するよう駆動コマンドを発するステップと、を含む。駆動コマンドは、最大のサイズ及びロボットに向かう最大の速度ベクトルを有するカラーブロブに向けてロボットを操縦するよう発することができる。本方法は更に、カラーブロブのサイズ及び速度に関する発見的手法を実行して、床表面上のデブリを示さないカラーブロブをフィルタ除去するステップを含むことができる。
【００１１】
一部の実施例において、本方法は、カラースペースにおいて各ピクセルの色について数値表現を割り当てるステップを含む。イメージのピクセルのカラー量子化は、イメージを９ビットの赤−緑−青のイメージに低減する赤−緑−青のカラースペースにおいて、又はＬＡＢカラースペースにおいて行うことができる。
【００１２】
本方法は更に、互いに通信状態にある制御調停システムと挙動システムとを有する制御システムを実行するステップを含むことができる。挙動システムは清掃挙動部を実行する。清掃挙動部は、イメージセグメント化に基づいて制御調停システムによるコマンドの実行に影響を及ぼし、ロボットの清掃システムを用いて清掃するために、汚れ床領域に相当するカラーブロブ及び汚れ床領域上を操縦するよう追跡しているカラーブロブを識別する。
【００１３】
本開示の別の態様は、前方駆動方向を有するロボット本体を備えた移動式床清掃ロボットを提供する。移動式床清掃ロボットは、駆動システム、清掃システム、イメージセンサ、及びコントローラを有する。駆動システムは、ロボット本体を支持し、床表面にわたってロボットを操縦するよう構成される。ロボット本体は、清掃システム及びイメージセンサを支持する。コントローラは、床表面のイメージのシーケンスを受け取り、ここで各イメージは、ピクセルのアレイを有する。次いで、コントローラは、イメージをカラーブロブにセグメント化する。セグメント化プロセスは、イメージのピクセルをカラー量子化することにより始まる。次に、コントローラは、対応するピクセルロケーションに基づいてイメージの各色の空間分布を決定する。最後に、コントローラは、当該色の閾空間分布を有するイメージの領域を識別する。コントローラがイメージをセグメント化すると、コントローラは、イメージのシーケンスにわたりイメージセンサに対して各カラーブロブのロケーションを追跡する。
【００１４】
一部の実施構成において、コントローラは、垂直方向に向けられたイメージの下側部分におけるピクセルのみ、及び／又はイメージの中心部分の外にあるピクセルのみをカラー量子化することによりイメージをカラーブロブにセグメント化する。コントローラは、イメージを領域に分割して、該各領域のピクセルを別個にカラー量子化することができる。一部の実施例において、コントローラは、各ピクセルを第１の色セットから該第１の色セットよりも小さい第２の色セットに変換するビットシフト演算を実行する。ビットシフト演算は、赤、緑、及び青チャンネルの各々の３つの最上位ビットを保持することができる。
【００１５】
一部の実施例において、イメージセンサは、ロボットの前方駆動方向に沿った視野を備えたカメラを有する。カメラは、ロボットの前方駆動方向に対して左右方向及び／又は上下方向でスキャンすることができる。
【００１６】
各カラーブロブのロケーションを追跡することは、イメージセンサに対して各カラーブロブの速度ベクトルを決定し、イメージシーケンスの各イメージについて決定されたカラーブロブロケーションを記録する、ことを含むことができる。一部の実施例において、コントローラは、各カラーブロブのサイズを決定する。コントローラは、１又はそれ以上のカラーブロブのロケーションに基づいてロボットを操縦するよう駆動コマンドを発することができる。駆動コマンドは、最も近いカラーブロブに向けてロボットを操縦することができる。一部の実施例において、コントローラは、最も近いカラーブロブをイメージシーケンスのイメージの閾値数で識別する。
【００１７】
一部の実施構成において、コントローラは、各カラーブロブのサイズ、及びイメージセンサに対して各カラーブロブの速度ベクトルを決定する。コントローラは、１又はそれ以上のカラーブロブのサイズ及び速度ベクトルに基づいてロボットを操縦するよう駆動コマンドを発する。コントローラは、最大のサイズ及びロボットに向かう最大の速度ベクトルを有するカラーブロブに向けてロボットを操縦するよう駆動コマンドを発することができる。一部の実施例において、コントローラは、カラーブロブのサイズ及び速度に関する発見的手法を実行して、床表面上のデブリを示さないカラーブロブをフィルタ除去する。
【００１８】
コントローラは、カラースペースにおいて各ピクセルの色について数値表現を割り当てることができる。コントローラは、イメージを９ビットの赤−緑−青のイメージに低減する赤−緑−青のカラースペースにおいて、又はＬＡＢカラースペースにおいてイメージピクセルを量子化することができる。
【００１９】
本開示の別の態様は、ロボット本体、駆動システム、コントローラ、清掃システム、及びイメージセンサを含む移動式床清掃ロボットを提供する。ロボット本体は、前方駆動方向を有する。駆動システムは、ロボット本体を支持し、床表面にわたってロボットを操縦するよう構成される。コントローラは、清掃システム、イメージセンサ、及び駆動システムと通信し、制御システムを実行する。ロボット本体は、清掃システムを支持する。制御システムは、互いに通信状態にある制御調停システム及び挙動システムを含む。挙動システムは、清掃挙動部を実行して、イメージセンサから受け取った床表面のイメージのシーケンスに基づいて制御調停システムによるコマンドの実行に影響を及ぼして、汚れた床領域を識別し、該汚れた床領域にわたって清掃システムを操縦する。清掃挙動部は、各イメージをカラーブロブにセグメント化することにより汚れた床領域を識別する。イメージのセグメント化は、イメージのピクセルをカラー量子化すること、対応するピクセルロケーションに基づいてイメージの各色の空間分布を決定すること、及び各イメージの色に対して、当該色の閾空間分布を有するイメージの領域を識別することを含む。次いで、清掃挙動部は、イメージのシーケンスにわたりイメージセンサに対して各カラーブロブのロケーションを追跡する。
【００２０】
本開示の別の態様は、イメージセンサを有する移動式床清掃ロボットを作動させる方法を提供する。本方法は、ロボットを支持する床表面のイメージのシーケンスを受け取るステップを含み、ここで各イメージは、ピクセルのアレイを有する。本方法は更に、イメージのピクセルをカラー量子化し、対応するピクセルロケーションに基づいてイメージの各色の空間分布を決定し、各イメージの色に対して、当該色の閾空間分布を有するイメージの領域を識別することによって、各イメージをカラーブロブにセグメント化するステップを含む。本方法は、イメージのシーケンスにわたりイメージセンサに対して各カラーブロブのロケーションを追跡するステップを含む。
【００２１】
一部の実施例において、ピクセルのカラー量子化は、垂直方向に向けられたイメージの下側部分、及び／又はイメージの中心部分の外に適用される。イメージをカラーブロブにセグメント化するステップは、イメージを領域に分割して、該各領域のピクセルを別個にカラー量子化するステップ、及び／又は各ピクセルを第１の色セットから該第１の色セットよりも小さい第２の色セットに変換するビットシフト演算を実行するステップを含むことができる。ビットシフト演算は、赤、緑、及び青チャンネルの各々の３つの最上位ビットを保持することができる。
【００２２】
一部の実施例において、イメージセンサは、ロボットの前方駆動方向に沿った視野を有するように構成されたカメラを含む。本方法は、ロボットの前方駆動方向に対して左右方向及び／又は上下方向でカメラをスキャンするステップを含むことができる。
【００２３】
カラーブロブのロケーションを追跡するステップは、イメージセンサに対して各カラーブロブの速度ベクトルを決定するステップと、イメージシーケンスの各イメージについて決定されたカラーブロブロケーションを記録するステップと、を含むことができる。一部の実施例において、本方法は、各カラーブロブのサイズを決定するステップを含む。本方法は、１又はそれ以上のカラーブロブのロケーションに基づいてロボットを操縦する、及び／又は最も近いカラーブロブに向けてロボットを操縦するよう駆動コマンドを発するステップを含むことができる。最も近いカラーブロブは、イメージシーケンスのイメージの閾値数で識別することができる。
【００２４】
一部の実施例において、本方法は、各カラーブロブのサイズを決定するステップと、イメージセンサに対して各カラーブロブの速度ベクトルを決定するステップと、１又はそれ以上のカラーブロブのサイズ及び速度ベクトルに基づいてロボットを操縦するよう駆動コマンドを発するステップと、を含む。駆動コマンドは、最大のサイズ及びロボットに向かう最大の速度ベクトルを有するカラーブロブに向けてロボットを操縦するよう発することができる。本方法は更に、カラーブロブのサイズ及び速度に関する発見的手法を実行して、床表面上のデブリを示さないカラーブロブをフィルタ除去するステップを含むことができる。
【００２５】
一部の実施例において、本方法は、カラースペースにおいて各ピクセルの色について数値表現を割り当てるステップを含む。イメージのピクセルのカラー量子化は、イメージを９ビットの赤−緑−青のイメージに低減する赤−緑−青のカラースペースにおいて、又はＬＡＢカラースペースにおいて行うことができる。
【００２６】
本方法は更に、互いに通信状態にある制御調停システムと挙動システムとを有する制御システムを実行するステップを含むことができる。挙動システムは清掃挙動部を実行する。清掃挙動部は、イメージセグメント化に基づいて制御調停システムによるコマンドの実行に影響を及ぼし、ロボットの清掃システムを用いて清掃するために、汚れ床領域に相当するカラーブロブ及び汚れ床領域上を操縦するよう追跡しているカラーブロブを識別する。
【００２７】
本開示の更に別の態様において、非一時的コンピュータ可読記憶媒体上で符号化されたコンピュータプログラム製品は、データ処理装置によって実行されたときに、該データ処理装置に動作工程を実施させる命令を含む。本動作工程は、ピクセルのアレイを各々が有する床表面のイメージのシーケンスを受け取るステップと、各イメージに対して、イメージをカラーブロブにセグメント化するステップを含む。イメージをカラーブロブにセグメント化するステップは、イメージのピクセルをカラー量子化し、対応するピクセルロケーションに基づいてイメージの各色の空間分布を決定するステップを含む。加えて、イメージをセグメント化するステップは、各イメージ色に対して、当該色の閾空間分布を有するイメージの領域を識別するステップを含む。コンピュータプログラム製品はまた、イメージのシーケンスにわたりイメージに対して各カラーブロブのロケーションを追跡するステップを含む。
【００２８】
イメージをカラーブロブにセグメント化するステップは、垂直方向に向けられたイメージの下側部分におけるピクセルのみ、及び／又はイメージの中心部分の外にあるピクセルのみをカラー量子化することができる。一部の実施例において、イメージをカラーブロブにセグメント化するステップは、イメージを領域に分割して、該各領域のピクセルを別個にカラー量子化することを含むことができる。イメージをカラーブロブにセグメント化するステップは、各ピクセルを第１の色セットから該第１の色セットよりも小さい第２の色セットに変換するビットシフト演算を実行することを含むことができる。ビットシフト演算は、赤、緑、及び青チャンネルの各々の３つの最上位ビットを保持することができる。
【００２９】
カラーブロブのロケーションを追跡することは、イメージセンサに対して各カラーブロブの速度ベクトルを決定し、イメージシーケンスの各イメージについて決定されたカラーブロブロケーションを記録する、ことを含むことができる。一部の実施例において、コンピュータプログラムは、各カラーブロブのサイズを決定するステップを含む。一部の実施構成において、コンピュータプログラムは、１又はそれ以上のカラーブロブのロケーションに基づいてロボットを操縦するよう駆動コマンドを発することを含む。駆動コマンドは、最も近いカラーブロブに向けてロボットを操縦することができ、この最も近いカラーブロブは、イメージシーケンスのイメージの閾値数で識別することとすることができる。
【００３０】
一部の実施例において、動作工程は、各カラーブロブのサイズを決定し、イメージセンサが受け取ったイメージシーケンスを取り込むのに応答して各カラーブロブの速度ベクトルを決定し、１又はそれ以上のカラーブロブのサイズ及び速度ベクトルに基づいてロボットを操縦するよう駆動コマンドを発することを含む。駆動コマンドは、最大のサイズ及びロボットに向かう最大の速度ベクトルを有するカラーブロブに向けてロボットを操縦するよう駆動コマンドを発することとすることができる。一部の実施例において、動作工程は、カラーブロブのサイズ及び速度に関する発見的手法を実行して、床表面上のデブリを示さないカラーブロブをフィルタ除去することを含む。
【００３１】
一部の実施例において、コンピュータプログラム製品は、カラースペースにおいて各ピクセルの色について数値表現を割り当てる。使用されるカラースペースは、赤−緑−青のカラースペース又はＬＡＢカラースペースとすることができる。従って、動作工程は、イメージを９ビットの赤−緑−青のイメージに低減する赤−緑−青のカラースペースにおいて、又はＬＡＢカラースペースにおいてイメージピクセルを量子化することができる。
【００３２】
本開示の１又はそれ以上の実施構成の詳細は、添付図面及び以下の説明において記載される。他の態様、特徴、及び利点は、本明細書及び図面並びに請求項から明らかになるであろう。
【図面の簡単な説明】
【００３３】
【図１】例示的な移動式床清掃ロボットの斜視図である。
【図２】図１に示す例示的な移動式床清掃ロボットの側面図である。
【図３】図１に示す例示的な移動式床清掃ロボットの底面図である。
【図４】例示的な移動式床清掃ロボットの概略図である。
【図５】例示的な移動式床清掃ロボット用の例示的なコントローラの概略図である。
【図６】床上の汚れを検知する例示的な移動式床清掃ロボットの斜視図である。
【図７】移動式床清掃ロボットによって駆動可能な例示的な螺旋清掃パターンの概略図である。
【図８Ａ】移動式床清掃ロボットによって駆動可能な例示的な平行帯状パターンの概略図である。
【図８Ｂ】前回覆われた床領域において識別されたデブリを吸い込むよう操縦している例示的な移動式床清掃ロボットの概略図である。
【図９Ａ】移動式床清掃ロボットによって駆動可能な例示的な清掃経路の概略図である。
【図９Ｂ】ロボットが汚れた床領域を位置特定したときに、移動式床清掃ロボットによって駆動可能な例示的な清掃経路の概略図である。
【図９Ｃ】識別された汚れた床領域に基づいて計画された経路に従って移動式床清掃ロボットによって駆動可能な例示的な清掃経路の概略図である。
【図１０】イメージの拡大部分がイメージのピクセルを示している、移動式床清掃ロボット上のカメラにより取り込まれた例示的なイメージの概略図である。
【図１１】移動式床清掃ロボットからのイメージを受け取るイメージ解析システムの概略図である。
【図１２Ａ】上側部分と下側部分とに分けられた、移動式床清掃ロボット上のカメラにより取り込まれた例示的なイメージの概略図である。
【図１２Ｂ】上側部分と下側部分とに分けられた、移動式床清掃ロボット上のカメラにより取り込まれた例示的なイメージの概略図である。
【図１３Ａ】ロボットが認識されたイメージブロブに接近しているときの、移動式床清掃ロボットにより取り込まれたイメージの進行の概略図である。
【図１３Ｂ】ロボットが認識されたイメージブロブに接近しているときの、移動式床清掃ロボットにより取り込まれたイメージの進行の概略図である。
【図１３Ｃ】ロボットが認識されたイメージブロブに接近しているときの、移動式床清掃ロボットにより取り込まれたイメージの進行の概略図である。
【図１４】ロボットを作動させるための動作工程の例示的な構成の概略図である。
【発明を実施するための形態】
【００３４】
種々の図面における同じ参照符号は同じ要素を示している。
【００３５】
移動可能に支持される自律式ロボットは、表面を横断しながら当該表面を清掃することができる。ロボットは、表面上で負圧（例えば、部分真空）を加えることでデブリを攪拌し及び／又は表面からデブリを持ち上げ、次いで、このデブリを表面から集めることによって表面からデブリを除去することができる。
【００３６】
図１〜３を参照すると、一部の実施構成において、ロボット１００は、例えば、コントローラ１５０によって発せられるｘ、ｙ、及びθ成分を有する駆動コマンドに基づいて、床表面１０にわたってロボット１００を操縦することができる駆動システム１２０により支持される本体１１０を含む。ロボット本体１１０は、前方部分１１２と後方部分１１４とを有する。駆動システム１２０は、コントローラ１５０に走行距離計測を提供できる右及び左被駆動ホイールモジュール１２０ａ、１２０ｂを含む。ホイールモジュール１２０ａ、１２０ｂは、本体１１０によって定められる横軸線Ｘに沿って実質的に対向し、それぞれのホイール１２４ａ、１２４ｂを駆動する駆動モータ１２２ａ、１２２ｂをそれぞれ含む。駆動モータ１２２ａ、１２２ｂは、本体１１０（例えば、ファスナー又は工具不要接続を介して）に解除可能に接続することができ、駆動モータ１２２ａ、１２２ｂは、任意選択的に、実質的にそれぞれのホイール１２４ａ、１２４ｂの上に位置付けられる。ホイールモジュール１２０ａ、１２０ｂは、シャーシ１１０に解除可能に取り付けられ、それぞれのバネによって清掃面１０と係合するよう付勢することができる。ロボット１００は、ロボット本体１１０の前方部分１１２を支持するよう配置されたキャスターホイール１２６を含むことができる。ロボット本体１１０は、ロボット１００の何れかの電気部品に給電するために電力供給源（例えば、バッテリ）１０２を支持する。
【００３７】
ロボット１００は、本体１１０によって定められる互いに直交する３つの軸線、すなわち、横軸線Ｘ、前後軸線Ｙ、及び中心垂直軸線Ｚに対する移動の種々の組み合わせにより清掃面１０にわたって移動することができる。前後軸線Ｙに沿った前方への駆動方向は、Ｆ（以下「前方」と呼ばれる場合もある）で示され、前後軸線Ｙに沿った後方への駆動方向は、Ａ（以下「後方」と呼ばれる場合もある）で示される。横軸線Ｘは、ホイールモジュール１２０ａ、１２０ｂの中心点によって定められる軸線に実質的に沿ってロボット１００の右側Ｒと左側Ｌとの間に延びる。
【００３８】
本体１１０の前方部分１１２は、バンパー１３０を保持し、該バンパーは、例えば、ホイールモジュール１２０ａ、１２０ｂが清掃ルーチン中に清掃面１０にわたってロボット１００を推進させるときに、ロボット１００の駆動経路における１又はそれ以上の事象を（例えば、１又はそれ以上のセンサを介して）検出する。ロボット１００は、事象に応答してロボット１００を操縦（例えば、障害物から離れて）するようホイールモジュール１２０ａ、１２０ｂを制御することにより、バンパー１３０によって検出された事象（例えば、障害物、段差、壁）に応答することができる。本明細書では一部のセンサがバンパー上に配置されて記載されているが、これらのセンサは、これに加えて、又は代替として、ロボット１００上の様々な異なる位置の何れかに配置することができる。
【００３９】
本体１１０の上部分に配置されたユーザインタフェース１４０は、１又はそれ以上のユーザコマンドを受け取り、及び／又はロボット１００のステータスを表示する。ユーザインタフェース１４０は、ロボット１００によって保持されたロボットコントローラ１５０と通信し、ユーザインタフェース１４０によって受け取られる１又はそれ以上のコマンドが、ロボット１００による清掃ルーチンの実行を開始できるようにする。
【００４０】
ロボットコントローラ１５０（制御システムを実行する）は、壁に追従するような操縦、床を磨くような操縦、又は障害物が検出されたときに移動方向を変えるなどの動作をロボット１００にさせる挙動部３００（図４）を実行することができる。ロボットコントローラ１５０は、各ホイールモジュール１２０ａ、１２０ｂの回転速度及び方向を独立して制御することによって、清掃面１０上のあらゆる方向でロボット１００を操縦することができる。例えば、ロボットコントローラ１５０は、ロボット１００を前方Ｆ、反転（後方）Ａ、右Ｒ、及び左Ｌ方向で操縦することができる。ロボット１００が実質的に前後軸線Ｙに沿って移動すると、ロボット１００は、左右の転回を交互に繰り返して、中心垂直軸線Ｚの周りで前後に回転（以下、くねり運動と呼ばれる））する。くねり運動により、ロボット１００は、清掃動作中にスクラバーとして作動することができる。その上、くねり運動は、ロボットコントローラ１５０がロボットの静止を検出するのに用いることができる。加えて、又は代替として、ロボットコントローラ１５０は、ロボット１００がコーナー部から抜け出すこと、例えば、障害物から離れることができるように実質的に所定位置で回転するようロボット１００を操縦することができる。ロボットコントローラ１５０は、清掃面１０を横断している間に実質的にランダムな（例えば、擬似ランダムな）経路上でロボット１００を配向することができる。ロボットコントローラ１５０は、ロボット１００の周りに配置された１又はそれ以上のセンサ（例えば、衝突センサ、近接センサ、壁センサ、静止センサ、及び段差センサ）に対して応答することができる。ロボットコントローラ１５０は、センサから受け取った信号に応答してホイールモジュール１２０ａ、１２０ｂの向きを変え、ロボット１００が清掃面１０を処理している間に障害物及び散乱物を避けるようにすることができる。使用中にロボット１００が立ち往生するか又は動けなくなった場合には、ロボットコントローラ１５０は、一連の脱出挙動を通じて、ロボット１００が脱出して正常な清掃動作に戻ることができるようにホイールモジュール１２０ａ、１２０ｂを配向することができる。
【００４１】
ロボット１００は、床表面１０を清掃又は処理するための清掃システム１６０を含むことができる。清掃システム１６０は、乾燥式清掃システム１６０ａ及び／又は湿式清掃システム１６０ｂを含むことができる。乾燥式清掃システム１６０は、横軸線Ｘに平行に延びて、床表面１０に接触するようロボット本体１１０により回転可能に支持された被駆動ローラブラシ１６２（例えば、ブリストル及び／又は叩きフラップを備えた）を含むことができる。被駆動ローラブラシ１６２は、床表面１０からデブリを攪拌して、攪拌されたデブリを集塵ビン１６３に投入又は誘導する。乾燥式清掃システム１６０はまた、デブリを清掃システム１６０の清掃帯状領域に移動させるために床表面１０に対してある角度の回転軸を有するサイドブラシ１６４を含むことができる。湿式清掃システム１６０ｂは、横軸線Ｘに沿って延びて表面１０上に清掃液を分配する流体アプリケータ１６６を含むことができる。乾燥式清掃システム１６０ａ及び／又は湿式清掃システム１６０ｂは、床表面１０を真空引きする１又はそれ以上のスクイージー真空部１６８（例えば、空気ポンプを介して部分真空を加える離間した柔軟ブレード）を含むことができる。
【００４２】
図１〜４を参照すると、信頼性があり堅牢な自律移動を達成するために、ロボット１００は、複数の異なるタイプのセンサを有するセンサシステム５００を含むことができ、これらセンサは、互いに連動して用いて、ロボット１００がロボットの環境において行うべき措置に関してインテリジェントに決定することができるほどに十分なロボットの環境の感知をもたらすことができる。センサシステム５００は、ロボット本体１１０によって支持される１又はそれ以上のタイプのセンサを含むことができ、これらセンサは、障害物検出障害物回避（ＯＤＯＡ）センサ、通信センサ、ナビゲーションセンサ、その他を含むことができる。例えば、これらのセンサは、限定ではないが、距離測定センサ、近接センサ、接触センサ、カメラ（例えば、点群ボリュームイメージング、３次元（３Ｄ）イメージング、又は深度図センサ、可視光カメラ及び／又は赤外線カメラ）、ソナー、レーダー、ＬＩＤＡＲ（ライダー；光検出及び側距、散乱光の特性を測定して遠隔ターゲットの距離及び／又は他の情報を求める光学的リモートセンシングを必要とする可能性がある）、ＬＡＤＡＲ（レーザ検出及び側距）、その他を含むことができる。一部の実施構成において、センサシステム５００は、側距ソナーセンサ、近接段差検出器、接触センサ、レーザスキャナ、及び／又はイメージングソナーを含む。
【００４３】
ロボットプラットフォーム上にセンサを配置することに伴う幾つかの問題がある。第１に、センサは、ロボット１００の周りに最大カバレッジ（有効範囲）の関心領域を有するように配置する必要がある。第２に、センサは、ロボット１００自体がセンサに対して絶対最小値のオクルージョン（ｏｃｃｌｕｓｉｏｎ）を生じるように配置されることが必要となる場合があり、本質的には、センサは、ロボット自体によって「見えなくなる」ように配置することはできない。第３に、センサの配置及び装着は、プラットフォームの工業的設計の残りの部分に対して邪魔にならないようにすべきである。審美的観点から、センサが目立たないように装着されたロボットは、そうでないものに比べてより「魅力的」と見なすことができる。実用上の観点から、センサは、通常のロボット動作を妨げない（障害物と干渉するなど）ように装着されるべきである。
【００４４】
一部の実施構成において、センサシステム５００は、ロボット本体１１０又はバンパー１３０上に配置された１又はそれ以上のイメージセンサ５１０を含む。図示の実施例において、イメージセンサ５１０、５１０ａは、バンパー１３０の上側部分１３２上に配置され、前方駆動方向Ｆに沿って視野５１２を備えて構成される。視野５１２は、約４５°〜約２７０°の角度を有することができる。その上、イメージセンサ５１０は、前方駆動方向Ｆに対して左右方向及び／又は上下方向でスキャンし、イメージセンサ５１０の側方及び垂直方向視野５１２を増大させることができる。加えて、又は代替として、センサシステム５００は、バンパー１３０上に配置されて、ロボット本体１１０に実質的に垂直な（例えば、半径方向外向きの）視野５１２を有して構成された、第１、第２及び第３のカメラ５１０ａ〜ｃのような複数のカメラ５１０を含むことができる。
【００４５】
イメージセンサ５１０は、可視光及び／又は赤外光、静止画像、及び／又はビデオを取り込むカメラとすることができる。一部の実施例において、イメージセンサ５１０は、３Ｄイメージセンサ（例えば、ステレオカメラ、飛行時間型又はスペックル型点群ボリュームイメージングデバイス）とすることができ、３Ｄイメージセンサは、以下のタイプのデータ、すなわち、（ｉ）深度図、（ｉｉ）反射ベースの強度イメージ、及び／又は（ｉｉｉ）標準強度イメージを生成することができる。３Ｄイメージセンサは、ソースから放射され及びターゲットから反射される光に対してのイメージパターンマッチング、飛行時間及び／又は位相遅延シフトの測定により、このようなデータを取得することができる。
【００４６】
イメージセンサ５１０としてカメラを使用する際に伴う幾つかの問題がある。１つの主要な問題は、カメラにより取り込まれるイメージを解析するのに必要なメモリ容量である。これらのイメージの解析により、ロボットは、特定の環境においてとるべき動作に関してインテリジェントに決定を下すことができる。解析されたイメージを格納するのに必要とされる空間を低減する１つの方法は、解析の前にイメージサイズを低減することである。圧縮は、メモリ容量の制約に適合させるようにイメージのサイズを低減する。イメージ圧縮は、不可逆又は可逆圧縮とすることができる。不可逆圧縮は、一部のデータを完全に除去することによってイメージのサイズを低減する。不可逆イメージ圧縮の一部の技法には、フラクタル圧縮、カラースペース（色空間）の低減、クロマサブサンプリング、及び変換符号化が挙げられる。不可逆圧縮において、圧縮が実行された後で失われるデータはなく、イメージは、圧縮後にオリジナルデータに再構成することができる。可逆イメージ圧縮の一部の技法には、ランレングスエンコーディング（ＲＬＥ）、予測符号化、及びエントロピー符号化が挙げられる。
【００４７】
図１及び図４を参照すると、一部の実施構成において、ロボット１００は、イメージイメージセンサシステム５１０から取り込まれたイメージ５１４及びイメージ５１４のシーケンス５１４ｂを解析するよう構成されたイメージ解析システム４００を含む。イメージ解析システム４００は、２つの機能を実施する。第１の機能は、イメージ５１４をセグメント化することであり、これは、イメージ５１４を量子化して解析のためファイルサイズを低減することを含むことができ、第２の機能は、取り込まれた一連のイメージ５１４にわたり床表面１０の汚れた床領域１２として物体２２（例えば、汚れ、米粒、デブリ片）又は一群の物体２２を識別し追跡することである。イメージ解析システム４００は、物体２２を識別するために周囲の部分とは異なる何らかの特性を有する部分についてイメージ５１４を解析することができる。例えば、イメージ解析システム４００は、周囲（背景）に対しての色、サイズ、形状、表面テクスチャを比較することによって物体２２を識別することができる。イメージ解析システム４００は、例えば、３０ｃｍ／秒で駆動しながら０．５メートル離れた物体２２を識別することができる。これにより、ロボット１００は、検出した物体２２に対する経路を計画して対応し、及び／又は見ている人に分かる挙動又はルーチン（例えば、ロボット１００が物体又はデブリ２２を検出し、それに応じて応答していることを表示する）を実行するための時間を計測することが可能となる。
【００４８】
センサシステム５００は、清掃システム１６０の経路１６１内（例えば、清掃ヘッド１６２とビン１６３との間）に及び／又はビン１６３内に配置されたデブリセンサ５２０（図３）を含むことができる。デブリセンサ５２０は、光学的ブレークビームセンサ、圧電センサ、又は通過するデブリを検出するための他の何れかのタイプのセンサとすることができる。デブリ検出器に関する詳細及び特徴、並びに本開示と組み合わせ可能な他の特徴は、米国特許出願公開第２００８／００４７０９２号において見出すことができ、本特許は、引用により全体が本明細書に組み込まれる。
【００４９】
一部の実施構成において、コントローラ１５０（例えば、コンピュータプロセッサ）上で実行可能な推論又は制御ソフトウェアは、センサシステム５００によって生成された種々のデータ型を用いて実行されるアルゴリズムの組み合わせを使用している。推論ソフトウェアは、センサシステム５００から収集されたデータを処理し、ロボット１００が例えば障害物と衝突することなく移動できる場所に関するナビゲーション上の決定を行うためのデータを出力する。ロボットの周囲の経時的なイメージングデータを蓄積することによって、推論ソフトウェアは、効果的な方法を検知されたイメージの選択されたセグメントに適用して、イメージセンサ５１０の測定値を改善させることができる。これは、適切な時間的及び空間的平均化技法を使用することを含むことができる。
【００５０】
バンパー１３０は、衝突物体との接触を検知するための１又はそれ以上の衝突センサ５１４（例えば、接触センサ、スイッチ又は赤外近接センサ）を含むことができる。一部の実施例において、バンパー１３０は、前方駆動方向（例えば、衝突ベクトル）に対して衝突の方向性（例えば、衝突ベクトル）を検知するために右衝突センサ５１４ａ及び左衝突センサ５１４ｂを含む。
【００５１】
図４を引き続き参照すると、一部の実施構成において、ロボット１００は、障害物に衝突せず、又は階段から落ちることなく床表面１０を移動することができ、また、清掃のため比較的汚れた床領域１２をインテリジェントに認識することを可能にするよう構成されたナビゲーションシステム６００を含む。その上、ナビゲーションシステム６００は、床表面１０にわたり決定性パターン及び擬似ランダムパターンでロボット１００を操縦することができる。ナビゲーションシステム６００は、ロボットコントローラ１５０上で格納及び／又は実行される挙動ベースシステムとすることができる。ナビゲーションシステム６００は、センサシステム５００と通信して、駆動システム１２０に対して駆動コマンド２４１を決定し発することができる。
【００５２】
図５を参照すると、一部の実施構成において、コントローラ１５０（例えば、１つ又は複数のコンピュータプロセッサ上で実行可能な命令を記憶することができる非一時的メモリと通信状態にある１又はそれ以上のコンピュータプロセッサを有するデバイス）は、互いに通信状態にある挙動システム２１０ａと制御調停システム２１０ｂとを含む制御システム２１０を実行する。制御調停システム２１０ｂは、ロボットアプリケーション２２０を制御システム２１０に対して動的に追加及び削除することを可能にし、各アプリケーション２２０が他の何れかのアプリケーション２２０について知る必要もなくロボット１００を制御できるようにする。換言すると、制御調停システム２１０ｂは、アプリケーション２２０とロボット１００のリソース２４０との間の簡単な優先制御機構を提供する。
【００５３】
アプリケーション２２０は、ロボット１００のメモリ内に格納され又はロボット１００と通信して、（例えば、プロセッサ上で）並行して実行し、ロボット１００を同時に制御することができる。アプリケーション２２０は、挙動システム２１０ａの挙動部３００にアクセスすることができる。独立して配備されたアプリケーション２２０は、ランタイム時に動的に組み合わされ、ロボットリソース２４０（例えば、駆動システム１２０及び／又は清掃システム１６０、１０６ａ、１６０ｂ）を共有する。ランタイム時のアプリケーション２２０間でのロボットリソース２４０を動的に共有するための低レベルポリシーが実装される。このポリシーは、どのアプリケーション２２０が当該アプリケーション２２０により必要とされるロボットリソース２４０を制御するかを決定する（例えば、アプリケーション２２０間の優先順位階層）。アプリケーション２２０は、動的に開始及び停止し、互いに完全に独立して実行することができる。制御システム２１０はまた、共に組み合わせて互いに支援することができる複合挙動部３００を可能にする。
【００５４】
制御調停システム２１０ｂは、制御アービター２６０と通信する１又はそれ以上のアプリケーション２２０を含むことができる。制御調停システム２１０ｂは、アプリケーション２２０のための制御調停システム２１０ｂに対するインタフェースを提供するコンポーネントを含むことができる。このようなコンポーネントは、認証、分散リソース制御アービター、コマンドバッファリングの複雑さを解消して抽象化及びカプセル化し、アプリケーション２２０の優先順位付けの協調などを行うことができる。制御アービター２６０は、あらゆるアプリケーション２２０からコマンドを受け取り、アプリケーションの優先順位に基づいて単一のコマンドを生成し、これを関連のリソース２４０に公開する。制御アービター２６０は、その関連のリソース２４０から状態フィードバックを受け取り、これをアプリケーション２２０に送り返すことができる。ロボットリソース２４０は、１又はそれ以上のハードウェアコントローラを備えた機能モジュール（例えば、アクチュエータ、駆動システム、及びこれらのグループ）のネットワークとすることができる。制御アービター２６０のコマンドは、特定の動作を実施するリソース２４０に固有のものである。コントローラ１５０上で実行可能なダイナミックスモデル２３０は、現在のロボット１００の状態を評価するために、ロボット１００の種々の部分の重心（ＣＧ）、慣性モーメント、及び慣性の外積を計算するよう構成される。
【００５５】
一部の実施構成において、挙動部３００は、センサシステム５００のような複数のソースからのセンサフィードバックを先験的限界及び情報を有してロボットの許容動作に関する評価フィードバックに結合する階層的状態完全評価機能を提供するプラグインコンポーネントである。挙動部３００は、アプリケーション２２０にプラグ着脱可能であり（例えば、アプリケーション２２０の内部又は外部にある）、アプリケーション２２０又は制御システム２１０の他の何れかの部分を修正することなく削除及び追加することができる。各挙動部３００は、独立したポリシーである。挙動部３００をより強力にするために、複数の挙動部３００の出力を別の挙動部の入力に取り付けて、複雑な組み合わせ機能を有することができるようにすることができる。挙動部３００は、ロボット１００の全体的認識の管理可能部分を実施することを目的としている。
【００５６】
図示の実施例において、挙動システム２１０ａは、センサによって感知された障害物に基づいて、ロボット応答動作（例えば、転回、Ｕターン、障害物前での停止、その他）を決定するための障害物検出／障害物回避（ＯＤＯＡ）挙動部３００ａを含む。別の挙動部３００は、検出した壁に隣接して（例えば、壁に向かって及び壁から離れて駆動するくねりパターンで）駆動するための壁追従挙動部３００ｂを含むことができる。
【００５７】
図６〜８Ｂを参照すると、床表面１０上を操縦している間、ロボット１００は、イメージ解析システム４００を用いて物体２２又は汚れた床領域１２（例えば、一群の物体２２）を識別して、その駆動経路を変更（例えば、初期駆動経路から進行方向を変える）し、清掃システム１６０を用いて物体２２の上に乗り上げて吸い込むことができる。ロボット１００は、識別後に物体２２又は汚れた床領域１２に向かって駆動することによりイメージ解析システム４００を便宜主義的に用いることができる。図６に示した実施例において、ロボット１００は、床１０の上の物体、並びに一群の物体２２及び対応する汚れた床領域１２を識別する。ロボット１００は、床表面１０を清掃するために、あるものに向かって駆動した後、別のものに向かって戻るように決定することができる。
【００５８】
一部の実施例において、ロボット１００が表面１０を清掃すると、汚れロケーション１２を通過するときに汚れ、流体、又はデブリの閾レベル（例えば、目視検査により気付くことができる程の）を有するものとしてこの汚れロケーション１２を検出する。スポット清掃挙動部３００ｃは、図７に示すように、検出した汚れロケーション１２の周りを螺旋運動パターン７１０でロボット１００を駆動させるようにすることができる。一部の実施例において、スポット清掃挙動部３００ｃは、図８Ａに示すように、平行帯状（コーンロー）パターン７２０にロボット１００を追従させるようにする。一部の実施例において、帯状部は、平行ではなく、ロボットが１８０°で転回するときに重なり合うことができる。パターンは、人が直立型掃除機で清掃する方法と同様の前後移動を含むことができる。各列の端部にて最大３６０度の転回の間、センサシステム５００のカメラ５１０及び他の何れかのセンサ（例えば、側距センサ）は、ロボット１００の周りの環境に関するセンサデータを取得する（例えば、転回時に対応する視野掃引の間）。コントローラ１５０は、このデータを位置特定、マッピング、経路計画、及び／又は追加のデブリ／物体検出に用いることができる。その上、ロボット１００は、スポット清掃挙動部３００ｃを実行するときに、駆動経路から逸脱し（すなわち、コースから進路変更する）て、何れかの認識されたデブリ２２に乗り上げた後、駆動経路に戻るか、又は別の挙動部３００に従って駆動することができる。
【００５９】
図８Ｂに示すように、ロボット１００は、既に横断した領域に戻って操縦され、前回の通過時に逃したデブリ２２を吸い込むことができる。ロボット１００は、イメージ解析システム４００を用いて、識別された逃した各デブリ２２上を通る駆動経路を決定するか、又は例えば、コーンローパターンで駆動することにより当該ロケーションにて再度スポット清掃挙動部３００ｃを実行することができる。
【００６０】
図９Ａ〜９Ｃを参照すると、一部の実施構成において、ロボット１００は、例えば、系統的又は非系統的手法で１又はそれ以上の挙動部３００に従って床表面１０の周りを駆動する。ロボット１００は、図９Ａに示すように、デブリ２２のどのような先行検出を行うことなく汚れた床領域１２のデブリ２２に乗り上げて吸い込むことができる。この場合、ロボット１００は、他の汚れた床領域を残して一部の汚れた床領域１２を清掃している。ロボット１００は、駆動／清掃経路７００から進路変更して、ロボット１００のセンサシステム５００を用いて（例えば、１又は複数のイメージセンサ５１０を用いて）識別された汚れロケーション１２に向かってロボット１００を操縦させるようにする、汚れ探索挙動部３００ｄを実行することができる。汚れ探索挙動部３００ｄ及びスポット清掃挙動部３００ｃは、汚れ探索挙動部３００ｄがロボット１００の周りの汚れロケーション１２を追跡し、スポット清掃挙動部３００ｃが床表面１０を通過するときにロボット１００の下の汚れロケーション１２を探すようにして作動することができる。
【００６１】
図９Ｂに示す実施例において、発せられた駆動コマンド１５２に従って駆動している間、ロボット１００は、イメージ解析システム４００及びセンサシステム５００を用いてデブリ２２及び対応する汚れ床領域１２を検出することができる。汚れ探索挙動部３００ｄは、ロボット１００に駆動／清掃経路７００から進路変更させて、識別された汚れ床領域１２に向けて操縦し、次いで、駆動／清掃経路７００に戻るようにさせることができる。この便宜主義的手法で識別された汚れ床領域１２を清掃することにより、ロボット１００は、汚れ床領域１２のロケーションを記憶しておいて後で通過する際に戻るようにするのとは対照的に、比較的効果的且つ効率的に床１０を清掃することができる。ロボット１００は、ロケーションのドリフト又はマッピング不良に起因して、正確に同じロケーションには戻らない場合がある。その上、便宜主義的汚れ探索により、ロボット１００は、挙動部３００の組み合わせを実行しながら、床１００のデブリ２２を検出して清掃できるようになる。例えば、ロボット１００は、コントローラ１５０上で壁追従挙動部３００ｂ及び汚れ探索挙動部３００ｃを実行することができる。ロボット１００は、壁追従挙動部３００ｂに従って壁１４と平行して駆動（例えば、オフセットした距離だけ壁１４に隣接して駆動）しながら、汚れ探索挙動部３００ｃを用いてデブリ片２２及び対応する汚れ床領域１２を識別することができ、これにより、ロボット１００は、一時的に壁１４から逸脱して識別された汚れ床領域１２を清掃した後、壁追従ルーチンを再開するか、又は別の挙動部３００を実行するようにすることができる。
【００６２】
図９Ｃを参照すると、一部の実施構成において、ロボット１００は、イメージ解析システム４００を用いて（例えば、スポットにおいて駆動又は回転しながら）複数の汚れた床領域１２を認識することができ、汚れ探索挙動部３００ｄは、コントローラ１５０に経路計画ルーチンを実行させ、各識別された汚れ床領域１２に駆動して清掃システム１６０を用いてデブリ２２を吸い込むようにすることができる。その上、コントローラ１５０（例えば、イメージ解析システム４００を介して）は、汚れた床領域１２の迅速な通過を実行しながらこの汚れた床領域１２のロケーションを追跡（例えば、メモリ内又はメモリのマップ上に床ロケーションを格納）し、次いで、更に清掃を行うために各識別された汚れた床領域１２に戻るよう１又はそれ以上の駆動コマンド１５２を実行することができる。
【００６３】
図１０を参照すると、コントローラ１５０は、１又は複数のイメージセンサ５１０からのイメージデータを有するセンサ信号を受け取る。デジタルイメージ５１４は、ピクセル５１６のアレイから構成される。ピクセル５１６は一般に、デジタルイメージ５１４の最小要素と考えられ、カラースペースにおける色の数値表現に関連付けられる。ＲＧＢは、最も一般的な色モデルの１つであり、ここでは赤色、緑色、及び青色の光が様々な量で加えられて幅広い異なる色を作り出す。従って、各ピクセル５１６の色は、３つの値で表現され、各値が赤、緑、及び青座標の１つに相当する。表示できるイメージの色の数は、ピクセル当たりのビット数に依存する。例えば、イメージがピクセル当たりに２４ビットである場合には、これは「トゥルーカラー（ｔｒｕｅ  ｃｏｌｏｒ）」イメージであり、２24＝１６，７７７，２１６の異なる色を表示することができる。イメージが１６ビットである場合には、これは「ハイカラー（ｈｉｇｈ  ｃｏｌｏｒ）」イメージであり、２16＝６５，５３６色を表示することができる。（８ビットイメージは、２8＝２５６色を表示することができ、４ビットイメージは、２4＝１６色を表示することができる）。カラースペースの別の実施例は、ＬＡＢカラースペースであり、１つが明度Ｌで、２つが色成分の３つの次元を有する。ＬＡＢカラースペースは、全て実施可能な色を含み、従って、ＬＡＢは、ＲＧＢよりも広い色範囲を有する。図１０は、取り込んだイメージ５１４と、ピクセル５１６のアレイを示す取り込んだイメージ５１４の拡大部分５１４ａを示している。
【００６４】
図１１及び１２を参照すると、コントローラ１５０は、１又は複数のイメージセンサ５１０によって取り込まれた床表面１０のイメージのシーケンス５１４ｂを受け取ることができる。１又は複数のイメージセンサ５１０は、毎秒１フレーム〜毎秒３０フレームの範囲にわたる一定の時間間隔でイメージのシーケンス５１４ｂを取り込むことができる。他の時間間隔も実施可能である。一部の実施例において、イメージセンサ５１０は、シーンに相当する一連の静止イメージ５１４を取り込むビデオカメラである。ビデオカメラは、解析に使用されるイメージ５１４の数を増大させ、従って、イメージ５１４を解析するのにより多くのメモリ空間を必要とする可能性がある。各イメージ５１４は、上側部分５１４ｕと下側部５１４ｌとに分けられる。イメージセンサ５１０はロボット本体１１０上に位置するので、取り込まれた大部分のイメージ５１４は、イメージ５１４の下側部５１４ｌにおいて床表面１０を含み、イメージ５１４の上側部分５１４ｕにおいて壁１４又は他の関係のない物体を含む。
【００６５】
図４を再度参照すると、一部の実施構成において、イメージ解析システム４００は、セグメント化システム４１０ａと追跡システム４１０ｂとを含む。イメージ解析システム４００は、ロボットコントローラ１５０の一部、又はイメージセンサ５１０の一部、或いは別個のシステムとして作動することができる。その上、セグメント化システム４１０ａ及び追跡システム４１０ｂは、別個のシステムであってもよい。例えば、セグメント化システム４１０ａは、イメージセンサ５１０の一部とすることができ、追跡システム４１０ｂは、ロボットコントローラ１５０の一部とすることができる。
【００６６】
セグメント化システム４１０ａは、取り込んだイメージ５１４で使用される色の数を低減するために、イメージ５１４のピクセル５１６を解析（例えば、カラー量子化）する。取り込んだビデオのＲＡＷイメージは、一部のイメージ解析アプリケーションにおいて実用できない極めて大きなデータ量を有する。イメージ５１４に関連するデータを低減する１つの方法は量子化である。量子化は、ある範囲のイメージ値を取り出してこれらの範囲の値を１つの値に変換することにより、イメージデータ値を低減するのに使用されるプロセスである。このプロセスは、解析のため比較的管理可能である、低減されたイメージファイルサイズ（例えば、一定のピクセル数を有するイメージ）を生成する。低減されたイメージファイルサイズは、量子化プロセス後にビデオイメージ情報が失われているので、不可逆と見なされる。従って、圧縮されたイメージの解析に必要なメモリ及びハードウェアが少なくなる。
【００６７】
カラー量子化は、イメージ５１４を歪めることなくイメージの色の数を低減する類似のプロセスであり、また、イメージ５１４を記憶し帯域伝送するのに必要とされるイメージファイルサイズを低減するプロセスである。カラー量子化は、一般に、特定の数の色をサポートするディスプレイ用に使用される。カラー量子化は、２５６3色の色セットをより少ない８3の色セットに低減することができる。ＲＧＢは、赤色、緑色、及び青色光が様々な量で加えられて幅広い異なる色を作り出すカラーモデルである。ロボット１００は、カラー量子化用にＲＧＢカラースペースを用いることができる。ロボット１００は、ＬＡＢのような、より集約的計算を必要とし且つ良好なイメージセグメント化をもたらす他のカラースペースを用いることもできる。コントローラ１５０は、カラースペースにおける各ピクセル５１６の色に数値表現を割り当てることができる（例えば、取り込んだイメージ５１４内のロケーション（５，５）のピクセルは、（２１３，１１１，５６）の色を有することができ、ここで２１３は赤を表し、１１１は緑を表し、５６は青を表している）。ＲＧＢの色の数値表現が範囲内の最大数である場合、ピクセル５１６の色は、最も明るい色を表す白色である。ＲＧＢ表現の数値が全ての色チャンネルでゼロである場合、その色は黒色（例えば、（０，０，０））である。セグメント化システム４１０ａは、赤−緑−青のカラースペースにおいて（イメージ５１４を９ビットの赤−緑−青のイメージに低減する）、又はＬＡＢカラースペースのような他の何らかのカラースペースにおいてイメージピクセル５１６を量子化することができる。セグメント化システム４１０ａは、イメージ５１４を６ビット〜１２ビットのイメージ５１４に低減することができる。他の低減も実施可能である。
【００６８】
セグメント化システム４１０ａは、ビットシフト演算を用いてピクセル５１６を量子化し、各ピクセルを元のカラースペースからより小さなカラースペースに（例えば、２５６3色の色セット又は２４ビットＲＧＢをより小さな８3色の色セット又は９ビットＲＧＢに）迅速に変換することができる。ビットシフトは、指定の値を変化させてより速い計算を実施するためにコントローラ１５０によってサポートされる迅速なプロセスである。一部の実施例において、ビットシフト演算は、各チャンネル（ＲＧＢ）の３つの最上位ビット（ＭＳＢ）を保持する。他のビットシフト演算を用いることもできる。一部の実施構成において、コントローラ１５０がサイズ（例えば、処理能力）に制限がない場合には、量子化段階はビットシフトを必要とせず、除算、乗算及び加算などの計算を実施することができる。ビットシフトにより作られたカラーブロブ２３は、プロセッサ上で比較的高速な計算であり、これによりロボット１００は、狭い分布に一致する色を探すことによって明示的なカラーブロブ２３を識別／見つけ出すことが可能となる。
【００６９】
ピクセル５１６の色を量子化している間、セグメント化システム４１０ａは、イメージ５１４内のピクセル５１６のロケーション５１７（例えば、（ｘ，ｙ）位置）を用いて、量子化された色の各々の空間分布を計算するのに必要な統計値を更新することができる（図１０参照）。従って、セグメント化システム４１０ａは、対応するピクセルロケーション５１７に基づいてイメージ５１４の各色の空間分布を決定する。一部の実施構成において、セグメント化段階４１０ａは、標準偏差、値域、平均偏差、又は他の計算を用いて計算された閾空間分布を有する領域の色リストをチェックすることにより、小さなブロブ２３を非明示的に見つける。この手法は、エッジのような何らかの細粒イメージ特徴には依存せず、従って、モーションブラー及び照明条件の変動に対して堅牢である。ブロブ２３は、同じ色、テクスチャ、及び／又はパターンを有する領域のような、イメージ５１４の何らかの連結領域とすることができる。
【００７０】
一部の実施構成において、セグメント化段階４１０ａは、空間パターンを明示的に計算する。空間パターンのこのようなアルゴリズムは、このようなアルゴリズムのないものに比べてコストがかかり、より多くの処理及び記憶スペースを必要とする。一部の実施例において、セグメント化システム４１０ａは、最初に取り込んだイメージ５１４を量子化せずにセグメント化し、従って、空間分布は、イメージ５１４の元のカラースペースを用いて計算される。図１２Ａを参照すると、一部の実施構成において、床１０の近傍部分に相当することができる取得したイメージ５１４の下側部５１４ｌにおけるピクセル５１６のみが処理される。コントローラ１５０は、中心に位置する何れかのブロブ２３は、ロボット１００の挙動に及ぼす影響が僅かであることを前提として、イメージ５１４の（水平方向で）中心付近のピクセル５１６を無視することができる。図１２Ｂを参照すると、コントローラ１５０は、取得したイメージ５１４の処理済み部分を矩形領域５１４ｒに分けて、同じ色の１つよりも多いブロブ２３を見つけることができるようにする。
【００７１】
ロボット１００が取得したイメージ５１４を量子化し、結果として比較的少ない色及びより顕著な特徴のあるブロブ２３を有するイメージ５１４が得られた後、追跡段階を開始する。追跡システム４１０ｂは、イメージ５１４のシーケンス５１４ｂにわたってイメージセンサ５１０に関してカラーブロブ２３のロケーション１２ａを追跡する。カラーブロブ２３のロケーション１２ａの追跡は、イメージセンサ５１０に関して各カラーブロブ２３の速度ベクトルＶ（ｔ＝０及びｔ＝１での連続したイメージ取り込みの間に計算された距離変化／時間変化）を決定するステップと、イメージシーケンス５１４ｂの各イメージ５１４について決定されたカラーブロブロケーション１２ａを記録するステップとを含むことができる。一部の実施例において、コントローラ１５０は、各カラーブロブ２３のサイズを決定する。追跡システム４１０ｂは、移動カメラ５１０に対するブロブ２３の推定速度に基づいて簡単な線形外挿法を用いることができる。外挿法は、既知の値（例えば、ピクセル（ｘ，ｙ）５１７のロケーション）を用いるプロセスであり、既知の範囲外の値を推定する。外挿法は、既知の範囲外にある推定値が論理的に既知の値に従うことを前提としている。
【００７２】
図１３Ａ〜１３Ｃは、床表面１０上を操縦している間、又は対応する床表面１０を清掃するために汚れたブロブ２３に接近している間に、ある時間期間にわたって汚れたブロブ２３を追跡しているときの取り込まれたイメージ５１４を示している。追跡システム４１０ｂがある時間期間にわたってブロブ２３を追跡することにより、ロボット１００は、汚れたブロブ２３を清掃するためにこのブロブ２３に向かって操縦することができる。
【００７３】
追跡システム４１０ｂがブロブ２３を追跡するときには、コントローラ１５０は、１又はそれ以上のブロブ２３のロケーション（ｘ，ｙ）に基づいてロボット１００を操縦するよう駆動コマンド１５２を発する。駆動コマンド１５２は、最も近いカラーブロブ２３に向かってロボット１００を操縦することができる（例えば、前回の駆動コマンド１５２から離れて進路変更して、任意選択的に戻りながら）。一部の実施例において、コントローラ１５０は、イメージシーケンス５１４ｂの閾値数のイメージ５１４において最も近いカラーブロブ２３を識別する。一部の実施例において、コントローラ１５０は、各ブロブ２３のサイズ、及びイメージセンサ５１０に対する各ブロブ２３の速度ベクトルＶを決定する。コントローラ１５０は、１又はそれ以上のカラーブロブ２３のサイズ及び速度ベクトルＶに基づいてロボット１００を操縦するよう駆動コマンド１５２を発する。コントローラ１５０は、例えば、イメージシーケンス５１４ａにおいて他の何れかのブロブ２３に比べて）最大のサイズ及びロボット１００に向かう最大の速度ベクトルＶを有するカラーブロブ２３（に向かってロボット１００を操縦するよう駆動コマンド１５２を発する。一部の実施例において、コントローラ１５０は、ブロブサイズ及びブロブ速度に関する発見的手法を実行して、床表面１０上のデブリ２２を示さないブロブ２３をフィルタ除去する（図５）。一部の実施構成において、吸い込み可能なデブリ片２２は、イメージ５１４の小部分においておおよそ不均一な色濃度を有する可能性がある。カメラ５１０の近似較正によって、追跡システム４１０ｂがロボット１００に対する実際のブロブ２３のサイズ及びロケーションを計算できるようになる。デブリ２２のサイズ及び速度に関する発見的手法を用いて、起こり得る誤検出を排除する。
【００７４】
デブリ片２２が多くの色又は変化するパターンを有するときには、イメージ解析システム４００は、デブリ２２の認識及び追跡が困難となる場合がある。このような場合、コントローラは、追加の認識挙動部３００又はルーチンを実行し、及び／又はセンサシステム５００からの追加のセンサデータに依存することができる。例えば、コントローラ１５０は、ロボット１００に認識できない物体に向けて駆動させて、清掃システム１６０を用いてこれを吸い込むか、これに乗り上げるか、又はこれに衝突して衝突事象を検出させることができる。その上、コントローラ１５０は、ロボット動作に取り込んだイメージ５１４を用いる追加の挙動部３００又はルーチンを実行することができる。この実施例には、限定ではないが、ナビゲーション、経路計画、障害物検出及び障害物回避、その他が挙げられる。
【００７５】
図１４は、イメージセンサ５１０を有する移動式清掃ロボット１００を作動させる方法１４００における例示的な工程構成を示す。本方法は、ロボット１００を支持する床表面１０のイメージ５１４のシーケンス５１４ａを受け取るステップ１４１０を含み、ここで各イメージ５１４はピクセル５１６のアレイを有する。コントローラ１５０は、ビデオカメラ又は静止画カメラとすることができる。本方法は更に、イメージ５１４のピクセル５１６をカラー量子化（１４２０ａ）し、対応するピクセルロケーションに基づいてイメージ５１４の各色の空間分布を決定（１４２０ｂ）し、次いで、各イメージの色について当該色の閾空間分布を有するイメージ５１４の領域を識別（１４２０ｃ）することにより、各イメージ５１４をカラーブロブ２３にセグメント化するステップ１４２０を含む。本方法はまた、イメージ５１４のシーケンス５１４ｂにわたりイメージセンサ５１０に対してカラーブロブ２３のロケーション１２ａを追跡するステップ１４３０ａを含む。
【００７６】
本方法は、周囲背景とは異なる特性（例えば、色、形状、テクスチャ、又はサイズ）を有するイメージ５１４の部分（例えば、１又はそれ以上のピクセル５１６）を識別するステップを含むことができる。本方法はまた、イメージ５１４のシーケンス５１４ｂにわたり同じイメージ部分を識別するステップを含むことができる。ロボット１００は、清掃システム１６０により吸い込みのために比較的小さな物体（例えば、米粒）と、障害物検出及び回避のために比較的大きな物体（例えば、靴下又は家具）とを識別することができる。
【００７７】
一部の実施例において、ピクセル５１６のカラー量子化１４２０ａは、垂直方向に向けられたイメージ５１４の下側部分５１４ｌに、及び／又はイメージ５１４の中心部分５１４ｃの外に適用される。イメージ５１４をカラーブロブ２３にセグメント化するステップ１４２０は、イメージ５１４を領域５１４ｒに分割して、各領域５１４ｒのピクセル５１６を別個にカラー量子化１４２０ａすることを含むことができる。複数のイメージ領域５１４ｒにより、ロボット１００は、イメージ５１４の異なる領域５１４ｒにおいて異なるブロブ２３を解析することができ、ロボット１００が１つよりも多くのブロブ２３を追跡することが可能となる。一部の実施例において、本方法１４００は、各ピクセル５１６を第１の色セットから該第１の色セットよりも小さい第２の色セットに変換するビットシフト演算を実行するステップを含む。ビットシフト演算は、赤、緑、及び青チャンネルの各々について３つの最上位ビットを保持することができる。
【００７８】
一部の実施例において、イメージセンサ５１０は、ロボット１００の前方駆動方向Ｆに沿った視野５１２を有するように構成されたカメラを備える。本方法は、カメラをロボット１００の前方駆動方向Ｆに対して左右又は上下にスキャンするステップを含むことができる。
【００７９】
カラーブロブ２３のロケーション１２ａを追跡するステップ１４３０ａは、イメージセンサ５１０に対して各カラーブロブ２３の速度ベクトルＶを決定し、イメージシーケンス５１４ａの各イメージ５１４について決定したブロブロケーションを記録することを含むことができる。一部の実施例において、本方法は、各カラーブロブ２３のサイズを決定することを含む。本方法は、１又はそれ以上のブロブ２３のロケーションに基づいてロボット１００を操縦する、及び／又は最も近いブロブ２３に向けてロボット１００を操縦するよう駆動コマンド１５２を発するステップを含むことができる。最も近いブロブ２３は、イメージシーケンス５１４ａの各イメージ５１４の閾値数で識別することができる。
【００８０】
一部の実施例において、本方法１４００は、各ブロブ２３のサイズを決定するステップと、イメージセンサ５１０に対して各ブロブ２３の速度ベクトルＶを決定するステップと、１又はそれ以上のブロブ２３のサイズ及び速度ベクトルＶに基づいてロボット１００を操縦するよう駆動コマンド１５２を発するステップと、を含む。駆動コマンド１５２は、最も大きなサイズ及びロボット１００に向かう最大の速度ベクトルＶを有するブロブ２３に向けてロボット１００を操縦するよう発することができる。本方法は更に、ブロブサイズ及びブロブ速度に関する発見的手法を実行するステップを含むことができる。
【００８１】
一部の実施例において、本方法は、カラースペースにおける各ピクセル５１６の色に対して数値表現を割り当てるステップを含む（例えば、取り込んだイメージ５１４内のロケーション（５，５）におけるピクセルは、（２１３，１１１，５６）の色を有することができ、ここで、２１３は赤を表し、１１１は緑を表し、５６は青を表している）。イメージ５１４のピクセル５１６のカラー量子化１４２０ａは、赤−緑−青のカラースペースにおいて（イメージを９ビットの赤−緑−青のイメージに低減する）、又はＬＡＢカラースペースにおいて行うことができる。
【００８２】
図６を再度参照すると、本方法１４００は更に、互いに通信状態にある制御調停システム２１０ｂと挙動システム２１０ａとを有する制御システム２１０を実行するステップを含むことができる。挙動システム２１０ａは、清掃挙動部３００ｄを実行する。清掃挙動部３００ｄは、イメージセグメント化１４２０に基づいて制御調停システム２１０ｂによるコマンドの実行に影響を及ぼし、ロボット１００の清掃システム１６０を用いて清掃するために、汚れ床領域１２に相当するブロブ２３、並びに汚れ床領域１２上を操縦するよう追跡しているブロブ２３を識別する。
【００８３】
本方法は、ロボット１００の周りの環境に関する局所的センサ感知を決定するため受け取ったセンサ事象に応答してコントローラ１５０上でマッピングルーチンを実行するステップを含むことができる。マッピングルーチンは、局所的な感知空間を３つのカテゴリー、障害物、未知域、及び既知の自由域に分類することができる。障害物は、ロボット１００の高さより低い地面の上にある観測（すなわち、検知）点、及び地面より低い観測点（例えば、孔、下り段、その他）とすることができる。既知の自由域は、センサシステム５００が地面を識別できる領域に相当する。
【００８４】
一部の実施例において、本方法は、ロボットコントローラ１５０上で制御システム２１０を実行するステップを含む。制御システム２１０は、互いに通信状態にある制御調停システム２１０ｂ及び挙動システム２１０ａを含む。挙動システム２１０ａは、センサシステム５００から受け取ったセンサ事象に基づいた制御調停システム２１０ｂによるコマンドの実行に影響を及ぼす少なくとも１つの挙動部３００を実行する。その上、少なくとも１つの挙動部３００は、ロボットセンサシステム５００から受け取ったセンサ信号に基づいた制御調停システム２１０ｂによるコマンドの実行に影響を及ぼすことができる。
【００８５】
本明細書に記載したシステム及び技術の様々な実施構成は、デジタル電子回路及び／又は光学回路、集積回路、特別に設計されたＡＳＩＣ（特定用途向け集積回路）、コンピュータハードウェア、ファームウェア、ソフトウェア及び／又はこれらの組み合わせで実現することができる。これらの様々な実施構成は、ストレージシステム、少なくとも１つの入力装置及び少なくとも１つの出力装置との間でデータ及び命令を受信及び送信するように結合された少なくとも１つのプログラマブルプロセッサ（専用又は汎用とすることができる）を含むプログラマブルシステム上で実行可能及び／又は解釈実行可能な１又はそれ以上のコンピュータプログラムにおける実施構成を含むことができる。
【００８６】
これらのコンピュータプログラム（プログラム、ソフトウェア、ソフトウェアアプリケーション又はコードとしても知られる）は、プログラマブルプロセッサのための機械命令を含み、高レベル手続き型及び／又はオブジェクト指向プログラミング言語、及び／又はアセンブリ言語／機械語で実装することができる。本明細書で使用される「機械可読媒体」及び「コンピュータ可読媒体」とは、機械命令又はデータをプログラマブルプロセッサに提供するために使用される、あらゆるコンピュータプログラム製品、非一時的コンピュータ可読媒体、装置及び／又はデバイス（例えば、磁気ディスク、光ディスク、メモリ、プログラマブル論理デバイス（ＰＬＤ）を指し、機械可読信号として機械命令を受け取る機械可読媒体を含む。用語「機械可読信号」とは、機械命令及び／又はデータをプログラマブルプロセッサに提供するのに使用されるあらゆる信号を指す。
【００８７】
本明細書に記載した主題及び機能操作の実施構成は、デジタル電子回路又はコンピュータソフトウェア、ファームウェア、又はハードウェアで実施することができ、本明細書に開示された構造及びこれらの等価構造又はこれらの１又はそれ以上の組み合わせを含む。その上、本明細書に記載した主題は、１又はそれ以上のコンピュータプログラム製品、すなわち、コンピュータ可読媒体上に符号化され、データ処理装置によって実行するため又はデータ処理装置の動作を制御するためのコンピュータプログラム命令の１又はそれ以上のモジュールとして実装することができる。コンピュータ可読媒体は、機械可読ストレージデバイス、機械可読ストレージ基板、メモリデバイス、機械可読伝播信号に影響を与える組成物、或いは、これらの１又はそれ以上の組み合わせとすることができる。用語「データ処理装置」、「コンピュータデバイス」、及び「コンピュータプロセッサ」は、データを処理するあらゆる装置、デバイス及び機械を包含し、例えば、プログラマブルプロセッサ、コンピュータ、又はマルチプロセッサ又はコンピュータを含む。装置は、ハードウェアに加えて、対象のコンピュータプログラムに対する実行環境を生成するコード、例えば、プロセッサファームウェア、プロトコルスタック、データベースマネジメントシステム、オペレーティングシステム、又はこれらの１又はそれ以上の組み合わせを構成するコードを含むことができる。伝播信号は、人工的に生成される信号、例えば好適な受信装置に送信する情報を符号化するのに生成される機械生成電気信号、光信号又は電磁信号である。
【００８８】
コンピュータプログラム（アプリケーション、プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト又はコードとしても知られる）は、コンパイル型言語又はインタプリータ型言語を含むあらゆるプログラミング言語の形態で記述することができ、スタンドアロンプログラムとして、或いはモジュール、コンポーネント、サブルーチン又はコンピューティング環境で使用するのに好適な他のユニットとしてを含め、あらゆる形態で配備することができる。コンピュータプログラムは、必ずしもファイルシステムのファイルに対応させる必要はない。プログラムは、他のプログラム又はデータ（例えばマークアップ言語ドキュメントに格納された１又はそれ以上のスクリプト）を保持するファイルの一部に、対象のプログラムに専用の単一ファイルに、又は複数の協調ファイル（例えば、１又はそれ以上のモジュール、サブプログラム又はコードの一部分を格納するファイル）に格納することができる。コンピュータプログラムは、１つのコンピュータ上で、又は１つのサイトに位置するか、又は複数のサイトに分散されて通信ネットワークにより相互接続された複数のコンピュータ上で実行されるように配備することができる。
【００８９】
本明細書に記載したプロセス及び論理フローは、入力データを処理して出力を生成することによって種々の機能を実行するために１又はそれ以上のコンピュータプログラムを実行する１又はそれ以上のプログラマブルプロセッサによって実行することができる。このプロセス及び論理フローはまた、専用の論理回路、例えばＦＰＧＡ（フィールドプログラマブルゲートアレイ）又はＡＳＩＣ（特定用途向け集積回路）によって実施することができ、装置もまた、そのような専用の論理回路として実装することができる。
【００９０】
コンピュータプログラムの実行に好適なプロセッサは、例えば、汎用及び専用のマイクロプロセッサ、及び何れかの種類のデジタルコンピュータの何らかの１又はそれ以上のプロセッサを含むことができる。一般に、プロセッサは、リードオンリーメモリ又はランダムアクセスメモリ、又はその両方からの命令及びデータを受け取ることになる。コンピュータの必須要素は、命令を実行するプロセッサと、命令及びデータを格納する１又はそれ以上のメモリデバイスである。一般に、コンピュータはまた、データを格納する１又はそれ以上の大容量ストレージデバイス（例えば磁気ディスク、磁気光学ディスク又は光ディスク）を含み、或いは、大容量ストレージデバイスからデータを受信し、又はデータを大容量ストレージデバイスに転送するように動作可能に結合される。しかしながら、コンピュータは、必ずしもこのようなデバイスを有する必要はない。更に、コンピュータは、別のデバイス、例えば、２〜３例を挙げると、移動体電話、携帯情報端末（ＰＤＡ）、携帯オーディオプレーヤ、グローバル・ポジショニング・システム（ＧＰＳ）レシーバに組み込むことができる。コンピュータプログラム命令及びデータを格納するのに好適なコンピュータ可読媒体は、あらゆる形態の不揮発性メモリ、メディア及びメモリデバイスを含み、例を挙げれば、例えば、ＥＰＲＯＭ，ＥＥＰＲＯＭ及びフラッシュメモリデバイスなどの半導体メモリデバイス、内部ハードディスク又はリムーバブルディスクなどの磁気ディスク、磁気光学ディスク、及びＣＤ  ＲＯＭ及びＤＶＤ−ＲＯＭディスクが挙げられる。プロセッサ及びメモリは、専用論理回路により補完することができ、またこの回路に組み込むこともできる。
【００９１】
ユーザとの対話を提供するために、本開示の１又はそれ以上の態様は、ユーザに対して情報を表示するためのディスプレイデバイス（例えば、ＣＲＴ（冷陰極管）、ＬＣＤ（液晶ディスプレイ）モニタ、又はタッチスクリーン）と、任意選択的にユーザがコンピュータに入力を提供できるキーボード及びポインティングデバイス（例えば、マウス又はトラックボール）とを有するコンピュータ上で実施することができる。他の種類のデバイスを用いてもユーザとの対話を提供することができ、例えば、ユーザに提供されるフィードバックは、あらゆる形態のセンサフィードバック（例えば、視覚的フィードバック、聴覚的フィードバック、又は触覚的フィードバック）とすることができ、及びユーザからの入力は、音響、音声、又は触覚入力を含む、あらゆる形態で受け取ることができる。加えて、コンピュータは、ユーザにより使用されるデバイスに文書を送信し、当該デバイスから文書を受け取ることにより、例えば、ウェブブラウザから受け取ったリクエストに応答して、ユーザのクライアントデバイス上のウェブブラウザにウェブページを送信することによって、ユーザと対話することができる。
【００９２】
本開示の１又はそれ以上の態様は、コンピューティングシステムで実施することができ、該コンピュータシステムは、バックエンドコンポーネント（例えばデータサーバ）を含み、又はミドルウェアコンポーネント（例えばアプリケーションサーバ）を含み、或いは、フロントエンドコンポーネント（例えば、本明細書に記載した主題の実施構成とユーザが対話できるグラフィックユーザインタフェース又はウェブブラウザを有するクライアントコンピュータ）、もしくは１又はそれ以上のこのようなバックエンド、ミドルウェア又はフロントエンドコンポーネントのあらゆる組み合わせを含む。本システムのコンポーネントは、任意の形態又は媒体のデジタルデータ通信（例えば、通信ネットワーク）によって相互接続することができる。通信ネットワークの実施例には、ローカルエリアネットワーク（「ＬＡＮ」）及びワイドエリアネットワーク（「ＷＡＮ」）、相互接続ネットワーク（例えば、インターネット）、及びピアツーピアネットワーク（例えば、アドホックピアツーピアネットワーク）が挙げられる。
【００９３】
コンピューティングシステムは、クライアント及びサーバを含むことができる。クライアント及びサーバは一般に、互いにリモートであり、通常は通信ネットワークを介して対話する。クライアントとサーバの関係は、互いにクライアント−サーバ関係を有するそれぞれのコンピュータ上で実行されるコンピュータプログラムによって生じる。一部の実施構成において、サーバは、クライアントデバイスにデータ（例えば、ＨＴＭＬページ）を送信する（例えば、クライアントデバイスと対話するユーザからのユーザにデータを表示するため、及び当該ユーザからのユーザ入力を受け取る目的で）。（ユーザ対話の結果として）クライアントデバイスにて生成されるデータは、クライアントデバイスからサーバにて受け取ることができる。
【００９４】
本明細書は、多くの詳細事項を含むが、これらは、本開示又は請求項に記載された範囲を限定するものと解釈されるべきではなく、むしろ、本開示の特定の実施構成に特有の特徴に関する説明として解釈すべきである。また、別個の複数の実施構成の関連において本明細書で記載される特定の特徴は、単一の実施構成において組み合わせて実施することもできる。逆に、単一の実施構成の関連で記載される様々な特徴は、複数の実施構成において別々に、又は任意の好適な部分的組み合わせで実施することもできる。更に、これらの特徴は、特定の組み合わせで機能するように上記で説明され、更に、最初にそのように請求項に記載されている場合があるが、場合によっては、請求項に記載された組み合わせからの１つ以上の特徴を切り出すことができ、また、請求項に記載された組み合わせは、部分的組み合わせ又は部分的組み合わせの変形形態を対象とすることができる。
【００９５】
同様に、図面において幾つかの工程が特定の順序で示されているが、これは、このような工程が図示の特定の順序で又は順番で実行される必要があること、また所望の結果を得るために例示の全ての工程が実行される必要があることを要求するものと理解すべきではない。特定の状況においては、マルチタスク及び並列処理が有利とすることができる。更に、上記の実施形態における様々なシステムコンポーネントの分離は、全ての実施形態においてこのような分離が必要とされるものと解釈すべきでなく、また、記載したプログラムコンポーネント及びシステムは、単一のソフトウェア製品に統合することができ、又は複数のソフトウェア製品にパッケージングすることもできる。
【００９６】
幾つかの実施構成を説明してきた。それでも尚、本開示の精神及び範囲から逸脱することなく様々な修正を行うことができる点を理解されたい。従って、他の実施構成も添付の請求項の範囲内にある。例えば、請求項に記載した動作は、異なる順序で実行し、それでも尚所望の結果を得ることができる。
【符号の説明】
【００９７】
１００  ロボット
１１０  （ロボット）本体
１２０  駆動システム
１２０ａ、１２０ｂ  右及び左被駆動ホイールモジュール
１２４ａ、１２４ｂ  ホイール
１２２ａ、１２２ｂ  駆動モータ
１２６  キャスターホイール
１３０  バンパー
１５０  コントローラ
１６４  サイドブラシ
５１０  イメージセンサ
【図１】
0005844941.tif 000002
【図２】
0005844941.tif 000003
【図３】
0005844941.tif 000004
【図４】
0005844941.tif 000005
【図５】
0005844941.tif 000006
【図６】
0005844941.tif 000007
【図７】
0005844941.tif 000008
【図８Ａ】
0005844941.tif 000009
【図８Ｂ】
0005844941.tif 000010
【図９Ａ】
0005844941.tif 000011
【図９Ｂ】
0005844941.tif 000012
【図９Ｃ】
0005844941.tif 000013
【図１０】
0005844941.tif 000014
【図１１】
0005844941.tif 000015
【図１２Ａ】
0005844941.tif 000016
【図１２Ｂ】
0005844941.tif 000017
【図１３Ａ−１３Ｃ】
0005844941.tif 000018
【図１４】
0005844941.tif 000019