(57)【要約】【課題】クラウドコンピューティングを組み込む可動式ロボットシステムを提供する。【解決手段】ロボットシステム（１６００）は、ロボットの動作を制御するための制御システム（５１０）を実行するコントローラ（５００）を有する可動式ロボット（１００）と、ロボットのコントローラと通信しているクラウドコンピューティングサービス（１６２０）と、クラウドコンピューティングサービスと通信している遠隔コンピューティングデバイス（３１０）とを含む。遠隔コンピューティングデバイスは、クラウドコンピューティングサービスを通してロボットと通信する。【選択図】図１６Ａ
2014209381.tif 000002
【特許請求の範囲】
【請求項１】
ロボット（１００）の動作を制御するための制御システム（５１０）を実行するコントローラ（５００）を有する、可動式ロボット（１００）と、
前記ロボット（１００）の前記コントローラ（５００）と通信しているクラウドコンピューティングサービス（１６２０）と、
前記クラウドコンピューティングサービス（１６２０）と通信している遠隔コンピューティングデバイス（３１０、１６０４）であって、前記クラウドコンピューティングサービス（１６２０）を通して前記ロボット（１００）と通信する、遠隔コンピューティングデバイス（３１０、１６０４）と、
を備える、ロボットシステム（１６００）。
【請求項２】
前記遠隔コンピューティングデバイス（３１０、１６０４）は、ロボット動作環境（１０）のレイアウトマップ（１７００、１８１０）を生成するためのアプリケーション（１６１０、１６１０ａ）を実行する、請求項１に記載のロボットシステム（１６００）。
【請求項３】
前記遠隔コンピューティングデバイス（３１０、１６０４）は、前記クラウドコンピューティングサービス（１６２０）を使用して、外部クラウド記憶装置（１６２２）の中に前記レイアウトマップ（１７００、１８１０）を記憶する、請求項２に記載のロボットシステム（１６００）。
【請求項４】
前記ロボット（１００）の前記コントローラ（５００）は、前記ロボット（１００）の駆動システム（２００）に駆動コマンドを発行するために前記クラウドコンピューティングサービス（１６２０）を通して前記レイアウトマップ（１７００、１８１０）にアクセスする、請求項３に記載のロボットシステム（１６００）。
【請求項５】
前記遠隔コンピューティングデバイス（３１０、１６０４）は、前記ロボット（１００）の遠隔操作を提供するアプリケーション（１６１０、１６１０ｂ）を実行し、好ましくは、前記アプリケーション（１６１０、１６１０ｂ）は、前記ロボット（１００）を駆動すること、前記ロボット（１００）の姿勢を変化させること、前記ロボット（１００）のカメラ（３２０、４５０）からビデオを視認すること、および前記ロボット（１００）のカメラ（３２０、４５０）を操作することのうちの少なくとも１つのための制御を提供する、請求項１〜４のいずれかに記載のロボットシステム（１６００）。
【請求項６】
前記遠隔コンピューティングデバイス（３１０、１６０４）は、前記遠隔コンピューティングデバイス（３１０、１６０４）のユーザと前記ロボット（１００）のカメラ（３２０、４５０）の視野内の第三者との間でテレビ会議を提供するアプリケーション（１６１０、１６１０ｃ）を実行する、請求項１〜５のいずれかに記載のロボットシステム（１６００）。
【請求項７】
前記遠隔コンピューティングデバイス（３１０、１６０４）は、前記ロボットの利用を予定に入れるためのアプリケーション（１６１０、１６１０ｄ）、および／または前記ロボット（１００）の利用および動作を監視するためのアプリケーション（１６１０、１６１０ｅ）を実行する、請求項１〜６のいずれかに記載のロボットシステム（１６００）。
【請求項８】
前記遠隔コンピューティングデバイス（３１０、１６０４）は、タブレットコンピュータを備える、請求項１〜７のいずれかに記載のロボットシステム（１６００）。
【請求項９】
可動式ロボット（１００）の動作を制御するための制御システム（５１０）を実行するコントローラ（５００）を有する、可動式ロボット（１００）と、
前記コントローラ（５００）と通信しているコンピューティングデバイス（３１０、１６０４）と、
前記コンピューティングデバイス（３１０、１６０４）と通信しているクラウドコンピューティングサービス（１６２０）と、
前記クラウドコンピューティングサービス（１６２０）と通信しているポータル（１６３０）と、
を備える、ロボットシステム（１６００）。
【請求項１０】
前記ポータル（１６３０）は、コンテンツへのアクセスを提供するウェブベースのポータル（１６３０）を備える、請求項９に記載のロボットシステム（１６００）。
【請求項１１】
前記ポータル（１６３０）は、前記クラウドコンピューティングサービス（１６２０）を通して前記ロボット（１００）からロボット情報を受信し、および／または前記ロボット（１００）は、前記クラウドコンピューティングサービス（１６２０）を通して前記ポータル（１６３０）からユーザ情報を受信する、請求項９または１０に記載のロボットシステム（１６００）。
【請求項１２】
前記コンピューティングデバイス（３１０）は、タッチスクリーン（３１２）を含む、請求項９〜１１のいずれかに記載のロボットシステム（１６００）。
【請求項１３】
前記コンピューティングデバイス（３１０、１６０４）は、前記コントローラ（５００）のオペレーティングシステムとは異なるオペレーティングシステムを実行する、請求項９〜１２のいずれかに記載のロボットシステム（１６００）。
【請求項１４】
前記コンピューティングデバイス（３１０、１６０４）は、前記ロボット（１００）からロボット情報を収集し、前記ロボット情報を前記クラウドコンピューティングサービス（１６２０）に送信する、少なくとも１つのアプリケーション（１６１０）を実行する、請求項９〜１３のいずれかに記載のロボットシステム（１６００）。
【請求項１５】
前記ロボット（１００）は、
垂直中心軸（Ｚ）を画定し、かつ前記コントローラ（５００）を支持する、基部（１２０）と、
前記基部（１２０）によって支持される、ホロノミック駆動システム（２００）であって、それぞれ前記垂直中心軸（Ｚ）の周囲で三角形に離間され、かつそれぞれ前記垂直中心軸（Ｚ）に対して放射軸（Ｘ、Ｆ、滑り）と垂直な駆動方向（ＤR、駆動）を有する、第１、第２、および第３の駆動車輪（２１０ａ〜ｃ）を有する、ホロノミック駆動システム（２００）と、
前記基部（１２０）から上向きに延在する、拡張可能な脚部（１３０）と、
前記脚部（１３０）によって支持される胴部（１４０）であって、前記脚部（１３０）の作動は、前記胴部（１４０）の高さ（ＨT）の変化を引き起こし、前記コンピューティングデバイス（３１０）は、前記胴部（１４０）より上側で着脱可能に支持される、胴部（１４０）と、
を備える、請求項９〜１４のいずれかに記載のロボットシステム（１６００）。
【請求項１６】
前記ロボット（１００）はさらに、
前記胴部（１４０）によって支持される、首部（１５０）と、
前記首部（１５０）によって支持される、頭部（１６０）であって、前記首部（１５０）は、前記胴部（１４０）に対して前記頭部（１６０）を回動および傾斜することが可能であり、前記コンピューティングデバイス（３１０）は、前記頭部（１６０）によって着脱可能に支持される、頭部（１６０）と、
を備える、請求項１５に記載のロボットシステム。
【請求項１７】
可動式ロボット（１００）の動作を制御するための制御システム（５１０）を実行するコントローラ（５００）を有する、可動式ロボット（１００）と、
前記コントローラ（５００）と通信しているコンピューティングデバイス（３１０）と、
前記コントローラ（５００）と前記コンピューティングデバイス（３１０）との間の通信を制御する仲介セキュリティデバイス（３５０）と、
前記コンピューティングデバイス（３１０）と通信しているクラウドコンピューティングサービス（１６２０）と、
前記クラウドコンピューティングサービス（１６２０）と通信しているポータル（１６３０）と、
を備える、ロボットシステム（１６００）。
【請求項１８】
前記仲介セキュリティデバイス（３５０）は、前記コンピューティングデバイス（３１０）のコンピューティングデバイス通信プロトコルと前記ロボット（１００）のロボット通信プロトコルとの間で通信を変換する、請求項１７に記載のロボットシステム（１６００）。
【請求項１９】
前記仲介セキュリティデバイス（３５０）は、前記コンピューティングデバイス（３１０）と前記ロボット（１００）との間の通信トラフィックを承認するための承認チップ（３５２）を備える、請求項１７または１８に記載のロボットシステム（１６００）。
【請求項２０】
前記コンピューティングデバイス（３１０）は、前記ロボットコントローラ（５００）と無線で通信し、好ましくは、前記コンピューティングデバイス（３１０）は、タブレットコンピュータを備え、および／または前記ロボット（１００）に解放可能に取り付け可能である、請求項１７〜１９のいずれかに記載のロボットシステム（１６００）。
【請求項２１】
前記ポータル（１６３０）は、コンテンツへのアクセスを提供するウェブベースのポータル（１６３０）を備える、請求項１７〜２０のいずれかに記載のロボットシステム（１６００）。
【請求項２２】
前記ポータル（１６３０）は、前記クラウドコンピューティングサービス（１６２０）を通して前記ロボット（１００）からロボット情報を受信し、および／または前記ロボット（１００）は、前記クラウドコンピューティングサービス（１６２０）を通して前記ポータル（１６３０）からユーザ情報を受信する、請求項１７〜２１のいずれかに記載のロボットシステム（１６００）。
【請求項２３】
前記コンピューティングデバイス（３１０）は、前記クラウドコンピューティングサービス（１６２０）を使用してクラウド記憶装置（１６２２）にアクセスする、請求項１７〜２２のいずれかに記載のロボットシステム（１６００）。
【請求項２４】
前記コンピューティングデバイス（３１０）は、前記ロボット（１００）からロボット情報を収集し、前記ロボット情報を前記クラウドコンピューティングサービス（１６２０）に送信する、少なくとも１つのアプリケーション（１６１０）を実行する、請求項１７〜２３のいずれかに記載のロボットシステム（１６００）。
【請求項２５】
可動式ロボット（１００）を動作させる方法であって、
前記ロボット（１００）の環境（１０）に対応するレイアウトマップ（１８１０）を受信するステップと、
前記環境（１０）内の前記ロボット（１００）を、前記レイアウトマップ（１８１０）上のレイアウトマップ位置（１８１２、１８１４）まで移動させるステップと、
前記環境（１０）に対応し、かつ前記ロボット（１００）によって生成されるロボットマップ（１８２０）上のロボットマップ位置（１８２２）を記録するステップと、
前記記録されたロボットマップ位置（１８２２）および前記対応するレイアウトマップ位置（１８１２）を使用して、前記ロボットマップ（１８２０）と前記レイアウトマップ（１８１０）との間の歪みを判定するステップと、
前記判定された歪みを目標レイアウトマップ位置（１８１４）に適用して、対応する目標ロボットマップ位置（１８２４）を判定するステップと、
を含む、方法。
【請求項２６】
クラウドコンピューティングサービス（１６２０）から前記レイアウトマップ（１８１０）を受信するステップをさらに含む、請求項２５に記載の方法。
【請求項２７】
遠隔コンピューティングデバイス（３１０、１６０４）上で実行されるアプリケーション（１６１０）上で前記レイアウトマップ（１８１０）を生成し、前記クラウドコンピューティングサービス（１６２０）を使用して、遠隔クラウド記憶装置デバイス（１６２２）上に前記レイアウトマップ（１８１０）を記憶するステップをさらに含む、請求項２６に記載の方法。
【請求項２８】
既存のレイアウトマップ位置（１８１２）および記録されたロボットマップ位置（１８２２）を使用して、前記レイアウトマップ（１８１０）と前記ロボットマップ（１８２０）との間のスケーリングサイズ、始点マッピング、および回転を判定するステップと、
前記目標レイアウトマップ位置（１８１４）に対応する目標ロボットマップ位置（１８２４）を解決するステップと、
をさらに含む、請求項２５〜２７のいずれかに記載の方法。
【請求項２９】
アフィン変換を前記判定されたスケーリングサイズ、始点マッピング、および回転に適用して、前記目標ロボットマップ位置（１８２４）を解決するステップをさらに含む、請求項２８に記載の方法。
【請求項３０】
前記目標レイアウトマップ位置（１８１４、１９１４）の境界を示すレイアウトマップ位置（１８１２、１９１２）の間の三角測量（１９１０）を判定するステップをさらに含む、請求項２５〜２９のいずれかに記載の方法。
【請求項３１】
前記レイアウトマップ（１８１０）の中でマップされた三角形（１９１０）と前記ロボットマップ（１８２０）の中でマップされた対応する三角形（１９２０）との間のスケール、回転、平行移動、およびスキューを判定するステップと、前記判定されたスケール、回転、平行移動、およびスキューを前記目標レイアウトマップ位置（１８１４、１９１４）に適用して、前記対応する目標ロボットマップ位置（１８２４、１９２４）を判定するステップをさらに含む、請求項３０に記載の方法。
【請求項３２】
全てのレイアウトマップ位置（１８１２、１９１２）と前記目標レイアウトマップ位置（１８１４、１９１４）との間の距離を判定するステップと、
前記レイアウトマップ位置（１８１２、１９１２）の重心（２０１２）を判定するステップと、
全ての記録されたロボットマップ位置（１８２２、１９２２）の重心（２０２２）を判定するステップと、
各レイアウトマップ位置（１８１２、１９１２）について、回転および長さスケーリングを判定して、前記レイアウトマップ重心（２０１２）から前記目標レイアウト位置（１８１４、１９１４）まで及ぶ第１のベクター（２０１４）を、前記ロボットマップ重心（２０２２）から前記目標ロボットマップ位置（１８２４、１９２４）まで及ぶ第２のベクター（２０２４）に変換するステップと、
をさらに含む、請求項２５〜３１のいずれかに記載の方法。
【請求項３３】
前記ロボット（１００）のセンサシステム（４００）を使用して、前記ロボットマップ（１８１０）を生成するステップをさらに含む、請求項２５〜３２のいずれかに記載の方法。
【請求項３４】
前記環境の情景（１０）の上に光を放射するステップと、
前記情景（１０）の表面から前記放射光の反射を受けるステップと、
各反射面の距離を判定するステップと、
前記情景（１０）の３次元深度マップ（１７００）を構築するステップと、
をさらに含む、請求項３３に記載の方法。
【請求項３５】
前記情景（１０）の上に光のスペックルパターンを放射し、前記情景（１０）から前記スペックルパターンの反射を受け、好ましくは、前記情景（１０）内の基準物体（１２）から反射された前記スペックルパターンの基準画像を記憶するステップをさらに含み、前記基準画像は、前記基準物体（１２）から様々な異なる距離（Ｚn）で捕捉される、請求項３４に記載の方法。
【請求項３６】
前記情景（１０）内の標的物体（１２）から反射された前記スペックルパターンの少なくとも１つの標的画像を捕捉ステップと、前記標的物体（１２）の前記反射面の距離を判定するために、前記少なくとも１つの標的画像を前記基準画像と比較するステップをさらに含む、請求項３５に記載の方法。
【請求項３７】
前記標的物体（１２）上の一次スペックルパターンを判定するステップと、前記一次スペックルパターンと前記基準画像の前記スペックルパターンとの間のそれぞれの相互相関および非相関のうちの少なくとも１つを算出するステップをさらに含む、請求項３６に記載の方法。
【請求項３８】
前記標的物体（１２）の前記反射面の前記判定された距離に基づいて、前記標的物体（１２）に対して前記ロボット（１００）を動かすステップをさらに含む、請求項３６または３７に記載の方法。
【請求項３９】
前記光の放射と前記反射光の受信との間の飛行時間を判定するステップと、前記情景（１０）の前記反射面までの距離を判定するステップをさらに含む、請求項３４に記載の方法。
【請求項４０】
間欠パルスで前記光を前記情景（１０）の上に放射し、好ましくは、前記放射光パルスの周波数を変化させるステップをさらに含む、請求項３４〜３９のいずれかに記載の方法。
【請求項４１】
可動式ロボット（１００）の動作を制御するための制御システム（５１０）を実行するコントローラ（５００）、及び、前記コントローラ（５００）と通信しているセンサシステム（４００）を備える、可動式ロボット（１００）と、
前記ロボット（１００）の前記コントローラ（５００）と通信しているクラウドコンピューティングサービス（１６２０）と、
を備え、
前記クラウドコンピューティングサービス（１６２０）は、
前記コントローラ（５００）からデータ（１６０１）を受信し、
前記データ（１６０１）を処理し、
処理された結果（１６０７、１６０９）を前記コントローラ（５００）に返信する、
ロボットシステム（１６００）。
【請求項４２】
前記クラウドコンピューティングサービス（１６２０）は、クラウド記憶装置（１６２２）の中に前記受信したデータ（１６０１、１６０３）を少なくとも一時的に記憶し、随意に、前記データ（１６０１、１６０３）を処理した後に前記記憶したデータ（１６０１、１６０３）を破棄する、請求項４１に記載のロボットシステム（１６００）。
【請求項４３】
前記ロボット（１００）は、
前記コントローラ（５００）と通信しており、かつ前記ロボット（１００）の周囲の情景（１０）の画像を取得することが可能なカメラ（３２０）、および／または
前記コントローラ（５００）と通信しており、かつ前記ロボット（１００）の周囲の体積空間、好ましくは、前記ロボット（１００）の移動方向（Ｆ）の床面（５）を含む空間体積から点群を取得することが可能な体積点群撮像デバイス（４５０）、
を備え、
前記コントローラ（５００）は、画像データ（１６０１）を前記クラウドコンピューティングサービス（１６２０）に伝達する、請求項４１または４２に記載のロボットシステム（１６００）。
【請求項４４】
前記データ（１６０１）は、未加工センサデータおよび／または前記センサシステム（４００）からの関連情報を有するデータを備え、前記データ（１６０１）は、好ましくは、加速度計データ追跡、走行距離計測データ、およびタイムスタンプのうちの少なくとも１つを有する、画像データを備える、請求項４１〜４３のいずれかに記載のロボットシステム（１６００）。
【請求項４５】
前記クラウドコンピューティングサービス（１６２０）は、前記ロボット（１００）の周囲の情景（１０）の画像データ（１６０１）を前記コントローラ（５００）から受信し、前記画像データ（１６０１）を処理して前記情景（１０）の３−Ｄマップ（１６０５）および／またはモデル（１６０９）にする、請求項４１〜４４のいずれかに記載のロボットシステム（１６００）。
【請求項４６】
前記クラウドコンピューティングサービス（１６２０）は、２−Ｄ高さマップ（１６０７）および／または前記モデル（１６０９）を前記コントローラ（５００）に提供し、前記クラウドコンピューティングサービス（１６２０）は、前記３−Ｄマップ（１６０５）から前記２−Ｄ高さマップ（１６０７）を算出する、請求項４５に記載のロボットシステム（１６００）。
【請求項４７】
前記クラウドコンピューティングサービス（１６２０）は、前記画像データ（１６０１）を定期的に受信し、閾値の画像データセット（１６０３）を蓄積した後に前記受信した画像データ（１６０１）を処理する、請求項４５または４６に記載のロボットシステム（１６００）。
【請求項４８】
前記コントローラ（５００）は、前記コントローラ（５００）と通信しており、好ましくは、前記ロボット（１００）に取り外し可能に取り付け可能である、携帯用コンピューティングデバイス（３１０）を通して、無線で前記データ（１６０１）を前記クラウドコンピューティングサービス（１６２０）に伝達する、請求項４１〜４７のいずれかに記載のロボットシステム（１６００）。
【請求項４９】
前記コントローラ（５００）は、前記データ（１６０１）をバッファリングし、定期的に前記データ（１６０１）を前記クラウドコンピューティングサービス（１６２０）に送信する、請求項４１〜４８のいずれかに記載のロボットシステム（１６００）。
【請求項５０】
前記センサシステム（４００）は、カメラ（３２０）、３−Ｄ撮像センサ（４５０）、ソナーセンサ、超音波センサ、ＬＩＤＡＲ、ＬＡＤＡＲ、光学センサ、および赤外線センサのうちの少なくとも１つを備える、請求項４１〜４９のいずれかに記載のロボットシステム（１６００）。
【請求項５１】
可動式ロボット（１００）を動作させる方法であって、
情景（１０）の周囲で前記ロボット（１００）を動かすステップと、
前記情景（１０）を示すセンサデータ（１６０１）を受信するステップと、
前記受信したセンサデータ（１６０１）を処理し、処理結果（１６０７、１６０９）を前記ロボット（１００）に伝達するクラウドコンピューティングサービス（１６２０）に、前記センサデータ（１６０１）を伝達するステップと、
前記受信した処理結果（１６０７、１６０９）に基づいて、前記情景（１０）内で前記ロボット（１００）を動かすステップと、
を含む、方法。
【請求項５２】
前記ロボット（１００）の周囲の前記情景（１０）の上に光を放射するステップと、
前記ロボット（１００）の駆動方向（Ｆ）に沿った前記情景（１０）の画像であって、（ａ）３次元深度画像、（ｂ）アクティブ照明画像、および（ｃ）周囲照明画像のうちの少なくとも１つを含む、画像を捕捉するステップと、
をさらに含み、
前記センサデータ（１６０１）は、前記画像を備え、前記処理結果（１６０７、１６０９）は、前記情景（１０）のマップ（１６０７）またはモデル（１６０９）を備える、請求項５１に記載の方法。
【請求項５３】
前記情景（１０）の上に光のスペックルパターンを放射するステップと、
前記情景（１０）内の物体（１２）から前記スペックルパターンの反射を受けるステップと、
前記情景（１０）内の基準物体（１２）から反射された前記スペックルパターンの基準画像であって、前記基準物体（１２）から様々な異なる距離（Ｚn）で捕捉される基準画像を、前記クラウドコンピューティングサービス（１６２０）のクラウド記憶装置（１６２２）の中に記憶するステップと、
前記情景（１０）内の標的物体（１２）から反射された前記スペックルパターンの少なくとも１つの標的画像を捕捉し、前記少なくとも１つの標的画像を前記クラウドコンピューティングサービス（１６２０）に伝達するステップと、
をさらに含み、
前記クラウドコンピューティングサービス（１６２０）は、前記標的物体（１２）の反射面の距離（ΔＺ）を判定するために、前記少なくとも１つの標的画像を前記基準画像と比較する、請求項５２に記載の方法。
【請求項５４】
前記標的物体（１２）上の一次スペックルパターンを判定するステップと、前記一次スペックルパターンと前記基準画像の前記スペックルパターンとの間のそれぞれの相互相関および非相関のうちの少なくとも１つを算出するステップをさらに含む、請求項５３に記載の方法。
【請求項５５】
前記クラウドコンピューティングサービス（１６２０）は、クラウド記憶装置（１６２２）の中に前記受信したセンサデータ（１６０１）を少なくとも一時的に記憶し、随意に、前記データ（１６０１）を処理した後に前記記憶したセンサデータ（１６０１）を破棄する、請求項５１〜５４のいずれかに記載の方法。
【請求項５６】
前記センサデータ（１６０１）は、関連センサシステムデータを有する画像データを備え、好ましくは、前記センサシステムデータは、加速度計データ追跡、走行距離計測データ、およびタイムスタンプのうちの少なくとも１つを備える、請求項５１〜５５のいずれかに記載の方法。
【請求項５７】
前記クラウドコンピューティングサービス（１６２０）は、前記ロボット（１００）から画像データ（１６０１）を受信し、前記画像データ（１６０１）を処理して前記情景（１０）の３−Ｄマップ（１６０５）および／またはモデル（１６０９）にする、請求項５１〜５６のいずれかに記載の方法。
【請求項５８】
前記クラウドコンピューティングサービス（１６２０）は、２−Ｄ高さマップ（１６０７）および／または前記モデル（１６０９）を前記ロボット（１００）に提供し、前記クラウドコンピューティングサービス（１６２０）は、前記３−Ｄマップ（１６０５）から前記２−Ｄ高さマップ（１６０７）を算出する、請求項５７に記載の方法。
【請求項５９】
前記センサデータ（１６０１）を前記クラウドコンピューティングサービス（１６２０）に定期的に伝達するステップをさらに含み、前記クラウドコンピューティングサービス（１６２０）は、閾値のセンサデータセット（１６０３）を蓄積した後に、前記受信した画像データ（１６０１）を処理する、請求項５１〜５６のいずれかに記載の方法。
【請求項６０】
前記ロボット（１００）と通信しており、好ましくは、前記ロボット（１００）に取り外し可能に取り付け可能である、携帯用コンピューティングデバイス（３１０）を通して、無線で前記センサデータ（１６０１）を前記クラウドコンピューティングサービス（１６２０）に伝達するステップをさらに含む、請求項５１〜５９のいずれかに記載の方法。
【請求項６１】
可動式ロボット（１００）をナビゲートする方法であって、
リアルタイム捕捉速度で、前記ロボット（１００）の運動の軌跡に沿った前記ロボット（１００）の周囲の情景（１０）の高密度画像（１６１１）のストリーミングシーケンス（１６１５）を捕捉するステップと、
注釈（１６１３）を前記高密度画像（１６１１）のうちの少なくともいくつかと関連付けるステップと、
前記リアルタイム捕捉速度よりも遅い送信速度で、前記高密度画像（１６１１）および注釈（１６１３）を遠隔サーバ（１６２０）に送信するステップと、
処理時間間隔後に前記遠隔サーバ（１６２０）からデータセット（１６０７、１６１７）を受信するステップであって、前記データセット（１６０７、１６１７）は、高密度画像（１６１１）の前記シーケンス（１６１５）および対応する注釈（１６１３）の少なくとも一部分に由来し、かつそれを表し、高密度画像（１６１１）の前記シーケンス（１６１５）の未加工画像データを除外するデータセット（１６０７、１６１７）である、前記受信するステップと、
前記受信したデータセット（１６０７、１６１７）に基づいて、前記情景（１０）に対して前記ロボット（１００）を移動させるステップと、
を含む、方法。
【請求項６２】
前記高密度画像（１６１１）および注釈（１６１３）をローカルサーバおよびバッファ（１６４０）に送信し、次いで、前記リアルタイム捕捉速度よりも遅い送信速度で、前記高密度画像（１６１１）および注釈（１６１３）を遠隔サーバ（１６２０）に送信するステップをさらに含む、請求項６１に記載の方法。
【請求項６３】
前記注釈（１６１３）は、
タイムスタンプであって、好ましくは、前記高密度画像（１６１１）のうちの少なくともいくつかに対応する絶対時間基準のタイムスタンプと、
姿勢関連センサデータであって、好ましくは、走行距離計測データ、加速度計データ、傾斜データ、および角速度データのうちの少なくとも１つを含む、姿勢関連センサデータと、を備える、請求項６１または６２に記載の方法。
【請求項６４】
注釈（１６１３）を関連付ける前記ステップは、危険事象を反映する注釈（１６１３）を、前記ロボット（１００）の危険応答に対して時間間隔内に捕捉される高密度画像（１６１１）と関連付けるステップを含む、請求項６１〜６３のいずれかに記載の方法。
【請求項６５】
注釈（１６１３）を関連付ける前記ステップは、キーフレーム識別子を前記高密度画像（１６１１）のサブセットと関連付けるステップを含む、請求項６１〜６４のいずれかに記載の方法。
【請求項６６】
前記注釈（１６１３）は、高密度画像（１６１１）の前記ストリーミングシーケンス（１６１５）の高密度画像（１６１１）の間で追跡される特徴の構造復元および運動復元に由来する、低密度の一式の３−Ｄ点を備える、請求項６１〜６５のいずれかに記載の方法。
【請求項６７】
前記注釈（１６１３）は、カメラパラメータを備え、好ましくは、前記カメラパラメータは、前記低密度の一式の３−Ｄ点の個々の３−Ｄ点に対するカメラの姿勢を含む、請求項６６に記載の方法。
【請求項６８】
前記注釈（１６１３）は、前記情景（１０）の横断可能および横断不可能領域の標識を備える、請求項６１〜６７のいずれかに記載の方法。
【請求項６９】
前記データセット（１６０７、１６１７）は、前記高密度画像（１６１１）から抽出される１つ以上の質感マップ（１６０７）、および／または前記情景（１０）の前記高密度画像（１６１１）内の特徴を表す地形マップ（１６０７）を備える、請求項６１〜６８のいずれかに記載の方法。
【請求項７０】
前記データセット（１６０７、１６１７）は、前記情景（１０）の捕捉される新しい高密度画像（１６１１）内の特徴を分類するための訓練された分類子（１６２５）を備える、請求項６１〜６９のいずれかに記載の方法。
【請求項７１】
可動式ロボット環境データを抽象化する方法であって、
受信速度で、可動式ロボット（１００）からロボット環境（１０）の高密度画像（１６１１）のシーケンス（１６１５）を受信するステップであって、前記高密度画像（１６１１）は、リアルタイム捕捉速度で前記可動式ロボット（１００）の運動の軌跡に沿って捕捉され、前記受信速度は、前記リアルタイム捕捉速度よりも遅い、前記受信するステップと、
前記高密度画像（１６１１）の前記シーケンス（１６１５）の中の前記高密度画像（１６１１）のうちの少なくともいくつかと関連付けられる注釈（１６１３）を受信するステップと、
前記高密度画像（１６１１）のうちの少なくともいくつかの中の高密度データを、前記高密度画像（１６１１）の前記シーケンス（１６１５）の少なくとも一部分を表すデータセット（１６０７、１６１７）まで低減させるためのバッチ処理タスクをディスパッチするステップと、
前記データセット（１６１７）を前記可動式ロボット（１００）に伝送するステップであって、前記データセット（１６０７、１６１７）は、前記高密度画像（１６１１）の前記シーケンス（１６１５）の未加工画像データを除外する、前記伝送するステップと、
を含む、方法。
【請求項７２】
前記バッチ処理タスクは、
前記高密度画像（１６１１）の前記シーケンス（１６１５）を処理して前記ロボット環境（１０）の高密度３−Ｄモデル（１６０９）にするステップと、
前記高密度３−Ｄモデル（１６０９）を処理して２−Ｄ位置および床面（Ｇ）からの少なくとも１つの高さの座標系用の地形モデル（１６０７）にするステップと、
を含む、請求項７１に記載の方法。
【請求項７３】
前記地形モデル（１６０７）は、２−Ｄ位置および床面（Ｇ）からの複数の占有および非占有高さ境界の座標系のためのものである、請求項７２に記載の方法。
【請求項７４】
前記バッチ処理タスクは、複数のロボット環境（１０）に対応する高密度画像シーケンス（１６１５、１６１５ａ）を蓄積するステップを含む、請求項７１〜７３のいずれかに記載の方法。
【請求項７５】
前記バッチ処理タスクは、複数の分類子（１６２５）および／または高密度画像（１６１１）の前記シーケンス上で１つ以上の分類子（１６２５）を訓練するステップを含む、請求項７１〜７４のいずれかに記載の方法。
【請求項７６】
前記バッチ処理タスクは、
危険事象を反映する注釈（１６１３）を、前記可動式ロボット（１００）の危険応答に対して時間間隔内に捕捉される高密度画像（１６１１）と関連付けるステップと、
前記関連付けられた危険事象注釈（１６１３）および対応する高密度画像（１６１１）を訓練データとして使用して、危険関連高密度画像（１６１１）の分類子（１６２５）を訓練し、好ましくは、分類子（１６２５）のモデルパラメータのデータセット（１６０３、１６０７、１６１７）を提供するステップと、
を含む、請求項７１〜７５のいずれかに記載の方法。
【請求項７７】
前記分類子（１６２５）は、分類のための少なくとも１つの超平面を構築する、少なくとも１つのサポートベクターマシンを含み、前記モデルパラメータは、データセット（１６０３、１６０７、１６１７）を危険関連分類に分類することができる訓練された超平面を画定する、請求項７６に記載の方法。
【請求項７８】
前記モデルパラメータは、サポートベクターマシンのカーネルを画定する十分なパラメータと、ソフトマージンパラメータとを含む、請求項７７に記載の方法。
【請求項７９】
前記バッチ処理タスクは、処理される前記高密度画像シーケンス（１６１５、１６１５ａ）のスケールに比例する、拡張性のある複数の仮想プロセス（１６２１）をインスタンス化するステップを含み、前記仮想プロセス（１６２１）のうちの少なくともいくつかは、前記データセット（１６０７、１６１７）の伝送後に解放される、請求項７１〜７８のいずれかに記載の方法。
【請求項８０】
前記バッチ処理タスクは、記憶される前記高密度画像シーケンス（１６１５、１６１５ａ）のスケールに比例する、拡張性のある複数の仮想記憶（１６２２）をインスタンス化するステップを含み、前記仮想記憶（１６２２）のうちの少なくともいくらかは、前記データセット（１６０７、１６１７）の伝送後に解放される、請求項７１〜７９のいずれかに記載の方法。
【請求項８１】
前記バッチ処理タスクは、前記可動式ロボット（１００）への地理的近接性および／または複数の可動式ロボット（１００）からのネットワークトラフィックのうちの１つに従って、拡張性のある複数の仮想サーバ（１６２１）を分散させるステップを含む、請求項７１〜８０のいずれかに記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
〔関連出願の相互参照〕
本米国特許出願は、２０１０年１２月３０日に出願された米国仮出願第６１／４２８，７１７号、２０１０年１２月３０日に出願された米国仮出願第６１／４２８，７３４号、２０１０年１２月３０日に出願された米国仮出願第６１／４２８，７５９号、および２０１１年１月５日に出願された米国仮出願第６１／４２９，８６３号に対する米国特許法第１１９条（ｅ）の下の優先権を主張する。これらの先願の開示は、本願の開示の一部であると見なされ、それらの全体が参照することによって本明細書に組み込まれる。
【０００２】
本開示は、クラウドコンピューティングを組み込む可動式ロボットシステムに関する。
【背景技術】
【０００３】
ロボットは、概して、コンピュータまたは電子プログラミングによって誘導される電気機械的機械である。可動式ロボットは、それらの環境内を動き回る能力を有し、１つの物理的位置に固定されていない。今日よく使用されている可動式ロボットの例は、無人搬送車両（ａｕｔｏｍａｔｅｄ  ｇｕｉｄｅｄ  ｖｅｈｉｃｌｅ）または自動誘導車両（ａｕｔｏｍａｔｉｃ  ｇｕｉｄｅｄ  ｖｅｈｉｃｌｅ：ＡＧＶ）である。ＡＧＶは、概して、床内のマーカーもしくはワイヤに追従する、またはナビゲーションに視覚システムもしくはレーザを使用する、可動式ロボットである。可動式ロボットは、産業、軍隊、およびセキュリティ環境において見ることができる。それらはまた、娯楽用または掃除機清掃および在宅支援のような特定の作業を実施する消費者製品としても登場している。
【発明の概要】
【０００４】
本開示の一態様は、ロボットの動作を制御するための制御システムを実行するコントローラを有する可動式ロボットと、ロボットのコントローラと通信しているクラウドコンピューティングサービスと、クラウドコンピューティングサービスと通信している遠隔コンピューティングデバイスとを含む、ロボットシステムを提供する。遠隔コンピューティングデバイスは、クラウドコンピューティングサービスを通してロボットと通信する。
【０００５】
本開示の実現形態は、以下の特徴のうちの１つ以上を含み得る。いくつかの実現形態では、遠隔コンピューティングデバイスは、ロボット動作環境のレイアウトマップを生成するためのアプリケーションを実行する。遠隔コンピューティングデバイスは、クラウドコンピューティングサービスを使用して、外部クラウド記憶装置の中にレイアウトマップを記憶してもよい。いくつかの実施例では、ロボットのコントローラは、ロボットの駆動システムに駆動コマンドを発行するためにクラウドコンピューティングサービスを通してレイアウトマップにアクセスする。
【０００６】
遠隔コンピューティングデバイスは、ロボットの遠隔操作を提供するアプリケーション（例えば、ソフトウェアプログラムまたはルーチン）を実行してもよい。例えば、アプリケーションは、ロボットを駆動すること、ロボットの姿勢を変化させること、ロボットのカメラからビデオを視認すること、およびロボットのカメラを操作すること（例えば、カメラを移動させること、および／またはカメラを使用してスナップショットまたは写真を撮影すること）のうちの少なくとも１つのための制御を提供してもよい。
【０００７】
いくつかの実現形態では、遠隔コンピューティングデバイスは、コンピューティングデバイスのユーザとロボットのカメラの視野内の第三者との間でテレビ会議を提供する、アプリケーションを実行する。遠隔コンピューティングデバイスは、ロボットの利用を予定に入れるためのアプリケーションを実行してもよい。また、遠隔コンピューティングデバイスは、ロボットの利用および動作を監視するためのアプリケーションを実行してもよい。遠隔コンピューティングデバイスは、随意に、タッチスクリーンを有するタブレットコンピュータを備えてもよい。
【０００８】
本開示の別の態様は、ロボットの動作を制御するための制御システムを実行するコントローラを有する、可動式ロボットと、コントローラと通信しているコンピューティングデバイスと、コンピューティングデバイスと通信しているクラウドコンピューティングサービスと、クラウドコンピューティングサービスと通信しているポータルとを含む、ロボットシステムを提供する。
【０００９】
本開示の実現形態は、以下の特徴のうちの１つ以上を含んでもよい。いくつかの実現形態では、ポータルは、コンテンツへのアクセスを提供するウェブベースのポータルを備える。ポータルは、クラウドコンピューティングサービスを通してロボットからロボット情報を受信してもよい。また、ロボットは、クラウドコンピューティングサービスを通してポータルからユーザ情報を受信してもよい。
【００１０】
いくつかの実施例では、コンピューティングデバイスは、（タブレットコンピュータ等での）タッチスクリーンを含む。コンピューティングデバイスは、コントローラのオペレーティングシステムとは異なるオペレーティングシステムを実行してもよい。例えば、コントローラが、ロボット制御のためのオペレーティングシステムを実行してもよい一方で、コンピューティングデバイスは、企業オペレーティングシステムを実行してもよい。いくつかの実施例では、コンピューティングデバイスは、ロボットからロボット情報を収集し、ロボット情報をクラウドコンピューティングサービスに送信する、少なくとも１つのアプリケーションを実行する。
【００１１】
ロボットは、垂直中心軸を画定し、かつコントローラを支持する、基部と、基部によって支持されるホロノミック駆動システムとを含んでもよい。駆動システムは、それぞれ垂直中心軸の周囲で三角形に離間され、かつそれぞれ垂直中心軸に対して放射軸と垂直な駆動方向を有する、第１、第２、および第３の駆動車輪を有する。ロボットはまた、基部から上向きに延在する、拡張可能な脚部と、脚部によって支持される胴部とを含んでもよい。脚部の作動は、胴部の高さの変化を引き起こす。コンピューティングデバイスは、胴部より上側で着脱可能に支持することができる。いくつかの実施例では、ロボットは、胴部によって支持される首部と、首部によって支持される頭部とを含む。首部は、胴部に対して頭部を回動および傾斜することができ得る。頭部は、コンピューティングデバイスを着脱可能に支持してもよい。
【００１２】
本開示の別の態様は、ロボットの動作を制御するための制御システムを実行するコントローラを有する、可動式ロボットと、コントローラと通信しているコンピューティングデバイスと、コントローラとコンピューティングデバイスとの間の通信を制御する仲介セキュリティデバイスと、コンピューティングデバイスと通信しているクラウドコンピューティングサービスと、クラウドコンピューティングサービスと通信しているポータルとを含む、ロボットシステムを提供する。
【００１３】
いくつかの実施例では、仲介セキュリティデバイスは、コンピューティングデバイスのコンピューティングデバイス通信プロトコルとロボットのロボット通信プロトコルとの間で通信を変換する。さらに、仲介セキュリティデバイスは、ロボット内のコンピューティングデバイス間の通信トラフィックを承認するための承認チップを含んでもよい。
【００１４】
コンピューティングデバイスは、ロボットコントローラと無線で通信してもよい。いくつかの実施例では、コンピューティングデバイスは、ロボットに解放可能に取り付け可能である。例となるコンピューティングデバイスは、タブレットコンピュータを含む。
【００１５】
ポータルは、コンテンツ（例えば、ニュース、天気、ロボット情報、ユーザ情報等）へのアクセスを提供するウェブベースのポータルであってもよい。いくつかの実施例では、ポータルは、クラウドコンピューティングサービスを通してロボットからロボット情報を受信する。さらなる実施例では、ロボットは、クラウドコンピューティングサービスを通してポータルからユーザ情報を受信する。コンピューティングデバイスは、クラウドコンピューティングサービスを使用してクラウド記憶装置にアクセスしてもよい。コンピューティングデバイスは、ロボットからロボット情報を収集し、ロボット情報をクラウドコンピューティングサービスに送信する、少なくとも１つのアプリケーションを実行してもよい。
【００１６】
本開示の一態様は、ロボットの環境に対応するレイアウトマップを受信することと、環境内のロボットを、レイアウトマップ上のレイアウトマップ位置まで移動させることと、環境に対応し、かつロボットによって生成されるロボットマップ上のロボットマップ位置を記録することと、記録されたロボットマップ位置および対応するレイアウトマップ位置を使用して、ロボットマップとレイアウトマップとの間の歪みを判定することと、対応する目標ロボットマップ位置を判定するように、判定された歪みを目標レイアウトマップ位置に適用することとを含む、可動式ロボットを動作させる方法を提供する。
【００１７】
本開示の実現形態は、以下の特徴のうちの１つ以上を含んでもよい。いくつかの実現形態では、本方法は、クラウドコンピューティングサービスからレイアウトマップを受信することを含む。本方法は、コンピューティングデバイス上で実行されるアプリケーション上でレイアウトマップを生成し、クラウドコンピューティングサービスを使用して、遠隔クラウド記憶装置デバイス上にレイアウトマップを記憶することを含んでもよい。
【００１８】
いくつかの実施例では、本方法は、既存のレイアウトマップ位置および記録されたロボットマップ位置を使用して、レイアウトマップとロボットマップとの間のスケーリングサイズ、始点マッピング、および回転を判定することと、目標レイアウトマップ位置に対応するロボットマップ位置を解決することとを含む。本方法はさらに、目標ロボットマップ位置を解決するように、アフィン変換を判定されたスケーリングサイズ、始点マッピング、および回転に適用することを含んでもよい。
【００１９】
いくつかの実現形態では、本方法は、目標レイアウトマップ位置の境界を示すレイアウトマップ位置の間の三角測量を判定することを含む。本方法はさらに、レイアウトマップの中でマップされた三角形とロボットマップの中でマップされた対応する三角形との間のスケール、回転、平行移動、およびスキュー（skew）を判定し、対応する目標ロボットマップ位置を判定するように、判定されたスケール、回転、平行移動、およびスキューを目標レイアウトマップ位置に適用することを含んでもよい。
【００２０】
本方法は、いくつかの実施例では、全てのレイアウトマップ位置と目標レイアウトマップ位置との間の距離を判定することと、レイアウトマップ位置の重心を判定することと、全ての記録されたロボットマップ位置の重心を判定することと、各レイアウトマップ位置について、レイアウトマップ重心から目標レイアウト位置まで及ぶベクターを、ロボットマップ重心から目標ロボットマップ位置まで及ぶベクターに変換するように、回転および長さスケーリングを判定することとを含む。
【００２１】
本方法は、ロボットのセンサシステムを使用して、ロボットマップを生成することを含んでもよい。いくつかの実現形態では、本方法は、環境の情景の上に光を放射すること、情景の表面から放射光の反射を受けることと、各反射面の距離を判定することと、情景の３次元深度マップを構築することとを含む。本方法は、情景の上に光のスペックルパターンを放射し、情景からスペックルパターンの反射を受けることを含んでもよい。いくつかの実施例では、本方法は、情景内の基準物体から反射されるようなスペックルパターンの基準画像を記憶することを含み、基準画像は、基準物体から様々な異なる距離で捕捉される。本方法はさらに、情景内の標的物体から反射されるようなスペックルパターンの少なくとも１つの標的画像を捕捉し、標的物体の反射面の距離を判定するために、その少なくとも１つの標的画像を基準画像と比較することを含んでもよい。いくつかの実施例では、本方法は、標的物体上の一次スペックルパターンを判定し、一次スペックルパターンと基準画像のスペックルパターンとの間のそれぞれの相互相関および非相関のうちの少なくとも１つを算出することを含む。本方法は、標的物体の反射面の判定された距離に基づいて、標的物体に対してロボットを機動させることを含んでもよい。
【００２２】
いくつかの実現形態では、本方法は、光の放射と反射光の受信との間の飛行時間を判定し、情景の反射面までの距離を判定することを含む。本方法は、間欠パルスで光を情景の上に放射することを含んでもよい。また、本方法は、放射光パルスの周波数を変化させることを含んでもよい。
【００２３】
さらに別の態様では、ロボットシステムは、ロボットの動作を制御するための制御システムを実行するコントローラと、コントローラと通信しているセンサシステムとを有する、可動式ロボットを含む。ロボットシステムはまた、ロボットのコントローラと通信しているクラウドコンピューティングサービスも含む。クラウドコンピューティングサービスは、コントローラからデータを受信し、データを処理し、処理された結果をコントローラに返信する。
【００２４】
いくつかの実現形態では、クラウドコンピューティングサービスは、クラウド記憶装置の中に受信したデータを少なくとも一時的に記憶し、随意に、データを処理した後に記憶したデータを破棄する。ロボットは、いくつかの実施例では、コントローラと通信しており、かつロボットの周囲の情景の画像を取得することが可能なカメラ、および／またはコントローラと通信しており、かつロボットの周囲の体積空間から点群を取得することが可能な体積点群撮像デバイスとを含む。体積空間は、ロボットの移動方向の床面を含んでもよい。コントローラは、画像データをクラウドコンピューティングサービスに伝達する。
【００２５】
データは、未加工センサデータおよび／またはセンサシステムからの関連情報を有するデータを備えてもよい。いくつかの実施例では、データは、加速度計データ追跡、走行距離計測データ、およびタイムスタンプのうちの少なくとも１つを有する、画像データを含む。
【００２６】
クラウドコンピューティングサービスは、ロボットの周囲の情景の画像データをコントローラから受信してもよく、画像データを処理して情景の３−Ｄマップおよび／またはモデルにする。さらに、クラウドコンピューティングサービスは、２−Ｄ高さマップおよび／またはモデルをコントローラに提供してもよく、そこでクラウドコンピューティングサービスは、３−Ｄマップから２−Ｄ高さマップを算出する。いくつかの実施例では、クラウドコンピューティングサービスは、画像データを定期的に受信し、しきい画像データセットまで蓄積した後に受信した画像データを処理する。
【００２７】
いくつかの実現形態では、コントローラは、コントローラと通信しており、随意に、ロボットに取り外し可能に取り付け可能である、携帯用コンピューティングデバイス（例えば、タブレットコンピュータ）を通して、無線でデータをクラウドコンピューティングサービスに伝達する。コントローラは、データをバッファリングしてもよく、定期的にデータをクラウドコンピューティングサービスに送信する。
【００２８】
センサシステムは、カメラ、３−Ｄ撮像センサ、ソナーセンサ、超音波センサ、ＬＩＤＡＲ、ＬＡＤＡＲ、光学センサ、および赤外線センサのうちの少なくとも１つを含んでもよい。
【００２９】
本開示の別の態様では、可動式ロボットを操作する方法は、情景の周囲でロボットを動かすことと、情景を示すセンサデータを受信することと、受信したセンサデータを処理し、処理結果をロボットに伝達するクラウドコンピューティングサービスに、センサデータを伝達することとを含む。本方法はさらに、受信した処理結果に基づいて、情景内でロボットを動かすことを含む。
【００３０】
いくつかの実現形態では、本方法は、ロボットの周囲の情景上に光を放射することと、ロボットの駆動方向に沿った情景の画像を捕捉することとを含む。画像は、（ａ）３次元深度画像、（ｂ）アクティブ照明画像、および（ｃ）周囲照明画像のうちの少なくとも１つを含む。センサデータは、画像を含み、処理結果は、情景のマップまたはモデルを含む。
【００３１】
本方法は、情景上に光のスペックルパターンを放射することと、情景内の物体からスペックルパターンの反射を受けることと、情景内の基準物体から反射されるようなスペックルパターンの基準画像をクラウドコンピューティングサービスのクラウド記憶装置の中に記憶することとを含んでもよい。基準画像は、基準物体から様々な異なる距離で捕捉される。本方法はまた、情景内の標的物体から反射されるようなスペックルパターンの少なくとも１つの標的画像を捕捉し、少なくとも１つの標的画像をクラウドコンピューティングサービスに伝達することも含む。クラウドコンピューティングサービスは、標的物体の反射面の距離を判定するために、その少なくとも１つの標的画像を基準画像と比較する。いくつかの実施例では、本方法は、標的物体上の一次スペックルパターンを判定し、一次スペックルパターンと基準画像のスペックルパターンとの間のそれぞれの相互相関および非相関のうちの少なくとも１つを算出することを含む。
【００３２】
クラウドコンピューティングサービスは、クラウド記憶装置の中に受信したセンサデータを少なくとも一時的に記憶し、随意に、データを処理した後に記憶したセンサデータを破棄してもよい。センサデータは、加速度計データ追跡、走行距離計測データ、およびタイムスタンプのうちの少なくとも１つを含み得る、関連センサシステムデータを有する画像データを含んでもよい。
【００３３】
いくつかの実現形態では、クラウドコンピューティングサービスは、ロボットから画像データを受信し、画像データを処理して情景の３−Ｄマップおよび／またはモデルにする。クラウドコンピューティングサービスは、２−Ｄ高さマップおよび／またはモデルをロボットに提供してもよい。クラウドコンピューティングサービスは、３−Ｄマップから２−Ｄ高さマップを算出する。
【００３４】
本方法は、クラウドコンピューティングサービスに、センサデータを定期的に伝達することを含んでもよく、クラウドコンピューティングサービスは、しきいセンサデータセットを蓄積した後に受信した画像データを処理する。いくつかの実施例では、本方法は、ロボットと通信しており、随意に、ロボットに取り外し可能に取り付け可能である、携帯用コンピューティングデバイス（例えば、タブレットコンピュータ）を通して、無線でセンサデータをクラウドコンピューティングサービスに伝達することを含む。
【００３５】
別の態様では、可動式ロボットをナビゲートする方法は、リアルタイム捕捉速度で、ロボットの運動の軌跡に沿ったロボットの周囲の情景の高密度画像のストリーミングシーケンスを捕捉することと、注釈を高密度画像のうちの少なくともいくつかと関連付けることとを含む。本方法はまた、リアルタイム捕捉速度よりも遅い送信速度で、高密度画像および注釈を遠隔サーバに送信することと、処理時間間隔後に遠隔サーバからデータセットを受信することとを含む。データセットは、高密度画像シーケンスおよび対応する注釈の少なくとも一部分に由来し、かつそれを表すが、高密度画像のシーケンスの未加工画像データを除外する。本方法は、受信したデータセットに基づいて、情景に対してロボットを移動させることを含む。
【００３６】
本方法は、高密度画像および注釈をローカルサーバおよびバッファに送信し、次いで、リアルタイム捕捉速度よりも遅い送信速度で、高密度画像および注釈を遠隔サーバに送信することを含んでもよい。ローカルサーバおよびバッファは、ロボットの比較的短い範囲内（例えば、２０〜１００フィート（約６．１〜３０．５ｍ）または無線通信範囲内）にあってもよい。
【００３７】
いくつかの実現形態では、注釈は、高密度画像のうちの少なくともいくつかに対応する絶対時間基準等のタイムスタンプと、走行距離計測データ、加速度計データ、傾斜データ、および角速度データのうちの少なくとも１つを含み得る、姿勢関連センサデータとを含む。注釈は、ロボットの危険応答（例えば、崖を回避する、閉じ込め状況から脱出する等）に対して時間間隔内に捕捉される、危険事象を反映する高密度画像と関連付けることができる。さらなる実施例では、注釈を関連付けることは、キーフレーム識別子を高密度画像のサブセットと関連付けることを含んでもよい。キーフレーム識別子は、キーフレーム識別子の特性（例えば、フラグ、タイプ、グループ等）に基づいて、高密度画像の識別を可能にし得る。
【００３８】
注釈は、高密度画像のストリーミングシーケンスの高密度画像の間で追跡される特徴の構造復元および運動復元に由来する、低密度の一式の３−Ｄ点を含んでもよい。低密度の一式の３−Ｄ点は、ロボット上の体積点撮像デバイスに由来し得る。さらに、注釈は、低密度の一式の３−Ｄ点のうちの個々の３−Ｄ点に対するカメラの姿勢等のカメラパラメータを含んでもよい。情景の横断可能および横断不可能領域の標識が、高密度画像に対する注釈であり得る。
【００３９】
データセットは、高密度画像から抽出される、２−Ｄ高さマップ等の１つ以上の質感（texture）マップ、および／または情景の高密度画像内の特徴を表す地形（terrain）マップを含んでもよい。データセットは、情景の捕捉された新しい高密度画像内の特徴を分類するための訓練された分類子を含んでもよい。
【００４０】
さらに別の態様では、可動式ロボット環境データを抽象化する方法は、ある受信速度で、可動式ロボットからロボット環境の高密度画像のシーケンスを受信することを含む。高密度画像は、リアルタイム捕捉速度で可動式ロボットの運動の軌跡に沿って捕捉される。受信速度は、リアルタイム捕捉速度よりも遅い。本方法はさらに、高密度画像のシーケンスの中の高密度画像のうちの少なくともいくつかと関連付けられる注釈を受信することと、高密度画像のうちの少なくともいくつかの中の高密度データを、高密度画像のシーケンスの少なくとも一部分を表すデータセットまで低減させるためのバッチ処理タスクをディスパッチすることとを含む。本方法はまた、データセットを可動式ロボットに伝送することも含む。データセットは、高密度画像のシーケンスの未加工画像データを除外する。
【００４１】
いくつかの実現形態では、バッチ処理タスクは、高密度画像のシーケンスを処理してロボット環境の高密度３−Ｄモデルにすることと、高密度３−Ｄモデルを処理して２−Ｄ位置および床面からの少なくとも１つの高さの座標系用の地形モデルにすることとを含む。
いくつかの実施例では、地形モデルは、２−Ｄ位置および床面からの複数の占有および非占有高さ境界の座標系のためのものである。例えば、テーブルを有する部屋が、関連テーブル面の上限および下限高さを示すデータを提供する場合の、テーブルの下を通過することができるかどうかをロボットが判定することができるようにする地形モデルである。
【００４２】
バッチ処理タスクは、（例えば、クラウドが、任意の環境内の目的とする特徴を識別するための分類子を構築することができるように）複数のロボット環境に対応する高密度画像シーケンスを蓄積することを含んでもよい。したがって、バッチ処理タスクは、高密度画像のシーケンス上の複数の分類子および／または高密度画像のシーケンス上で１つ以上の分類子を訓練することを含んでもよい。例えば、バッチ処理タスクは、危険事象を反映する注釈を、可動式ロボットの危険応答に対して時間間隔内に捕捉される高密度画像と関連付けることと、例えば、分類子のモデルパラメータのデータセットを提供するように、関連危険事象注釈および対応する高密度画像を訓練データとして使用して、危険関連高密度画像の分類子を訓練することとを含んでもよい。分類子は、分類のための少なくとも１つの超平面を構築する、少なくとも１つのサポートベクターマシンを含んでもよく、モデルパラメータは、データセットを危険関連分類に分類することができる訓練された超平面を画定する。モデルパラメータは、サポートベクターマシンのカーネルを画定する十分なパラメータと、ソフトマージンパラメータとを含んでもよい。
【００４３】
いくつかの実施例では、バッチ処理タスクは、処理される高密度画像シーケンスのスケールに比例する、拡張性のある複数の仮想プロセスをインスタンス化することを含む。仮想プロセスのうちの少なくともいくつかは、ロボットへのデータセットの伝送後に解放される。同様に、バッチ処理タスクは、記憶される高密度画像シーケンスのスケールに比例する、拡張性のある複数の仮想記憶をインスタンス化することを含んでもよい。仮想記憶のうちの少なくともいくらかは、ロボットへのデータセットの伝送後に解放される。さらに、バッチ処理タスクは、可動式ロボットへの地理的近接性および／または複数の可動式ロボットからのネットワークトラフィックのうちの１つに従って、拡張性のある複数の仮想サーバを分散させることを含んでもよい。
【００４４】
本開示の１つ以上の実現形態の詳細が、添付の図面および以下の記載において説明される。他の態様、特徴、および利点は、本記載および図面、ならびに請求項から明らかになるであろう。
【図面の簡単な説明】
【００４５】
【図１】例となる可動式ヒューマンインターフェースロボットの斜視図である。
【図２】例となる可動式ヒューマンインターフェースロボットの概略図である。
【図３】例となる可動式ヒューマンインターフェースロボットの立面斜視図である。
【図４Ａ】可動式ヒューマンインターフェースロボットの例となる基部の正面斜視図である。
【図４Ｂ】図４Ａに示される基部の背面斜視図である。
【図４Ｃ】図４Ａに示される基部の上面図である。
【図５Ａ】可動式ヒューマンインターフェースロボットの例となる基部の正面概略図である。
【図５Ｂ】可動式ヒューマンインターフェースロボットの例となる基部の上面概略図である。
【図５Ｃ】可動式ヒューマンインターフェースロボット用の例となるホロノミック車輪の正面図である。
【図５Ｄ】図５Ｃに示される車輪の側面図である。
【図６Ａ】可動式ヒューマンインターフェースロボットの例となる胴部の正面斜視図である。
【図６Ｂ】可動式ヒューマンインターフェースロボットのタッチ感知能力を有する例となる胴部の正面斜視図である。
【図６Ｃ】図６Ｂに示される胴部の底面斜視図である。
【図７】可動式ヒューマンインターフェースロボットの例となる首部の正面斜視図である。
【図８Ａ】可動式ヒューマンインターフェースロボットの例となる回路の概略図である。
【図８Ｂ】可動式ヒューマンインターフェースロボットの例となる回路の概略図である。
【図８Ｃ】可動式ヒューマンインターフェースロボットの例となる回路の概略図である。
【図８Ｄ】可動式ヒューマンインターフェースロボットの例となる回路の概略図である。
【図８Ｅ】可動式ヒューマンインターフェースロボットの例となる回路の概略図である。
【図８Ｆ】可動式ヒューマンインターフェースロボットの例となる回路の概略図である。
【図８Ｇ】可動式ヒューマンインターフェースロボットの例となる回路の概略図である。
【図９】着脱可能なウェブパッドを有する、例となる可動式ヒューマンインターフェースロボットの斜視図である。
【図１０Ａ】例となる可動式ヒューマンインターフェースロボットとやりとりする人の斜視図である。
【図１０Ｂ】例となる可動式ヒューマンインターフェースロボットとやりとりする人の斜視図である。
【図１０Ｃ】例となる可動式ヒューマンインターフェースロボットとやりとりする人の斜視図である。
【図１０Ｄ】例となる可動式ヒューマンインターフェースロボットとやりとりする人の斜視図である。
【図１０Ｅ】例となる可動式ヒューマンインターフェースロボットとやりとりする人の斜視図である。
【図１１Ａ】例となる可動式ヒューマンインターフェースロボットの概略図である。
【図１１Ｂ】地面に向けられる複数のセンサを有する、例となる可動式ヒューマンインターフェースロボットの斜視図である。
【図１２Ａ】情景内の物体を感知する、例となる撮像センサの概略図である。
【図１２Ｂ】撮像センサを動作させるための動作の例となる配設の概略図である。
【図１２Ｃ】情景内の物体を感知する例となる３次元（３Ｄ）スペックルカメラの概略図である。
【図１２Ｄ】３Ｄスペックルカメラを動作させるための動作の例となる配設の概略図である。
【図１２Ｅ】情景内の物体を感知する例となる３Ｄ飛行時間（ＴＯＦ）カメラの概略図である。
【図１２Ｆ】３Ｄ  ＴＯＦカメラを動作させるための動作の例となる配設の概略図である。
【図１３】可動式ヒューマンインターフェースロボットのコントローラによって実行される例となる制御システムの概略図である。
【図１４】人間のタッチコマンドを受ける、例となる可動式ヒューマンインターフェースロボットの斜視図である。
【図１５】可動式ヒューマンインターフェースロボットとの通信を開始して行うための例となる電話通信概略図を提供する。
【図１６Ａ】例となるロボットシステムアーキテクチャの概略図を提供する。
【図１６Ｂ】例となるロボットシステムアーキテクチャの概略図を提供する。
【図１６Ｃ】例となるロボットシステムアーキテクチャの概略図を提供する。
【図１６Ｄ】例となるロボットシステムアーキテクチャの概略図を提供する。
【図１６Ｅ】例となるロボットシステムアーキテクチャの概略図を提供する。
【図１６Ｆ】可動式ロボットをナビゲートする方法のための動作の例となる配設を提供する。
【図１６Ｇ】可動式ロボット環境データを抽象化する方法のための動作の例となる配設を提供する。
【図１６Ｈ】例となるロボットシステムアーキテクチャの概略図を提供する。
【図１７Ａ】例となる占領マップの概略図である。
【図１７Ｂ】作業領域内の情景の視界を有する、可動式ロボットの概略図である。
【図１８Ａ】例となるレイアウトマップの概略図である。
【図１８Ｂ】図１８Ａに示されるレイアウトマップに対応する例となるロボットマップの概略図である。
【図１８Ｃ】レイアウトマップおよびロボットマップを使用して、環境の周囲でナビゲートするように可動式ロボットを操作するための動作の例となる配設を提供する。
【図１９Ａ】三角測量型レイアウト点を伴う例となるレイアウトマップの概略図である。
【図１９Ｂ】図１９Ａに示されるレイアウトマップに対応する例となるロボットマップの概略図である。
【図１９Ｃ】レイアウトマップおよびロボットマップを使用して、目標ロボットマップ位置を判定するための動作の例となる配設を提供する。
【図２０Ａ】緊密なレイアウト点の重心を伴う例となるレイアウトマップの概略図である。
【図２０Ｂ】図２０Ａに示されるレイアウトマップに対応する例となるロボットマップの概略図である。
【図２０Ｃ】レイアウトマップおよびロボットマップを使用して、目標ロボットマップ位置を判定するための動作の例となる配設を提供する。
【図２１Ａ】可動式ヒューマンインターフェースロボットの静止している間の局所知覚空間の例となる概略図を提供する。
【図２１Ｂ】可動式ヒューマンインターフェースロボットの移動している間の局所知覚空間の例となる概略図を提供する。
【図２１Ｃ】可動式ヒューマンインターフェースロボットの静止している間の局所知覚空間のとなる概略図を提供する。
【図２１Ｄ】可動式ヒューマンインターフェースロボットの移動している間の局所知覚空間の例となる概略図を提供する。
【図２１Ｅ】角の周囲で接近して移動する、対応するセンサ視界を伴う可動式ヒューマンインターフェースロボットの例となる概略図を提供する。
【図２１Ｆ】角の周囲で幅広く移動する、対応するセンサ視界を伴う可動式ヒューマンインターフェースロボットの例となる概略図を提供する。
【００４６】
様々な図面中の同様の参照記号は、同様の要素を指す。
【発明を実施するための形態】
【００４７】
可動式ロボットは、人と対話またはやりとりして、在宅支援から商業支援、およびその他に及ぶ多数のサービスを提供することができる。在宅支援の例では、可動式ロボットは、投薬計画の維持、移動支援、通信支援（例えば、テレビ会議、電話通信、インターネットアクセス等）、住居もしくは現場監視（屋内および／または屋外）、人監視、および／または個人用緊急対応システム（ＰＥＲＳ）の提供を含むが、これらに限定されない、高齢者の日常生活を支援することができる。商業支援では、可動式ロボットは、テレビ会議（例えば、病院状況における）、売り場専用端末、対話型情報／マーケティング端末等を提供することができる。
【００４８】
図１〜図２を参照すると、いくつかの実現形態では、可動式ロボット１００は、順駆動方向Ｆを画定するロボット本体１１０（またはシャーシ）を含む。また、ロボット１００は、それぞれがロボット本体１１０によって支持され、かつロボット１００の動作および移動を協調させるコントローラ５００と通信している、駆動システム２００と、インターフェースモジュール３００と、センサシステム４００とも含む。電源１０５（例えば、バッテリ（単数または複数））は、ロボット本体１１０によって運搬され、これらの構成要素のそれぞれと電気通信し、必要に応じてそれらに電力を送達することができる。例えば、コントローラ５００は、１０００ＭＩＰＳ（１００万命令／秒）超の能力があるコンピュータを含み得、電源１０５８は、３時間より長くコンピュータに電力を供給するのに十分なバッテリを提供する。
【００４９】
示される実施例では、ロボット本体１１０は、基部１２０と、基部１２０から上向きに延在する少なくとも１つの脚部１３０と、少なくとも１つの脚部１３０によって支持される胴部１４０とを含む。基部１２０は、駆動システム２００の少なくとも部分を支持してもよい。また、ロボット本体１１０は、胴部１４０によって支持される首部１５０も含む。首部１５０は頭部１６０を支持し、頭部１６０はインターフェースモジュール３００の少なくとも一部分を支持する。基部１２０は、機械的安定性を維持するために、基部１２０の低重心ＣＧBおよびロボット１００の低全体重心ＣＧRを維持するのに十分な重りを含む（例えば、電源１０５（バッテリ）を支持することによって）。
【００５０】
図３および図４Ａ〜図４Ｃを参照すると、いくつかの実現形態では、基部１２０は、三角対称形状（例えば、上面図で三角形状）を画定する。例えば、基部１２０は、三角形状の基部１２０（例えば、図４Ａ参照）の各脚部に対応する第１、第２、および第３の基部本体部分１２４ａ、１２４ｂ、１２４ｃを有する基部本体１２４を支持する、基部シャーシ１２２を含んでもよい。各基部本体部分１２４ａ、１２４ｂ、１２４ｃは、物体と接触するのに応えて、基部シャーシ１２２に対して独立して移動することができるように、基部シャーシ１２２によって移動可能に支持することができる。基部１２０の三角対称形状は、ロボット１００の周囲３６０°のぶつかり検出を可能にする。各基部本体部分１２４ａ、１２４ｂ、１２４ｃは、基部シャーシ１２２に対する対応する基部本体部分１２４ａ、１２４ｂ、１２４ｃの移動を検出する、関連接触センサ（例えば、容量センサ、リードスイッチ等）を有することができる。
【００５１】
いくつかの実現形態では、駆動システム２００は、ロボット１００の全方向性および／またはホロノミック運動制御を提供する。本明細書で使用される場合、「全方向性」という用語は、実質的に任意の平面方向に移動する能力、すなわち、左右（横方向）、前／後、および回転移動する能力を指す。これらの方向は、本明細書では、概して、それぞれｘ、ｙ、およびθｚとして参照される。さらに、「ホロノミック」という用語は、文献における用語の使用と実質的に一致し、３つの平面自由度を伴う、平面方向に移動する能力、すなわち、２つの平行移動および１つの回転を指す。したがって、ホロノミックロボットは、３つの平面速度（前／後、横方向、および回転）の実質的に任意の比率で構成される速度で平面方向に移動する能力、ならびに３つの比率を実質的に継続的に変化させる能力を有する。
【００５２】
ロボット１００は、車輪可動性を使用して、人間環境（例えば、典型的に二足歩行の歩行居住者向けに設計された環境）内で動作することができる。いくつかの実現形態では、駆動システム２００は、垂直軸Ｚを中心に均等に離間した（例えば、１２０度離れている）第１、第２、および第３の駆動車輪２１０ａ、２１０ｂ、２１０ｃ（すなわち、三角対称）を含むが、しかしながら、他の配設も同様に可能である。図５Ａおよび図５Ｂを参照すると、駆動車輪２１０ａ、２１０ｂ、２１０ｃは、ホロノミック駆動システム２００の機動性を助長し得る、横方向に弓状の転がり表面（すなわち、転がり方向ＤRを横断する、またはそれに対して直角な方向に湾曲した輪郭）を画定してもよい。各駆動車輪２１０ａ、２１０ｂ、２１０ｃは、駆動車輪２１０ａ、２１０ｂ、２１０ｃを他の駆動モータ２２０ａ、２２０ｂ、２２０ｃから独立して順および／または逆方向に駆動することができる、それぞれの駆動モータ２２０ａ、２２０ｂ、２２０ｃに連結される。各駆動モータ２２０ａ〜ｃは、コントローラ５００に車輪回転フィードバックを提供する、それぞれのエンコーダ２１２（図８Ｃ）を有することができる。いくつかの実施例では、各駆動車輪２１０ａ、２１０ｂ、２１０ｃは、正三角形の３つの点のうちの１つ上またはその付近に搭載され、それぞれの三角形端部の角の二等分線に対して直角な駆動方向（順および逆方向）を有する。順駆動方向Ｆを伴う三角対称ホロノミック基部１２０の駆動は、閉じ込めまたは散乱物から自律的に脱出し、脱出が解決された後に順駆動方向Ｆに沿って駆動するように次いで回転および／または平行移動するために、ロボット１００が非順駆動方向に移行することを可能にする。
【００５３】
図５Ｃおよび５Ｄを参照すると、いくつかの実現形態では、各駆動車輪２１０は、それぞれ、駆動車輪２１０の回転方向ＤRと垂直な回転方向Ｄrを有する、ローラ２３０の内側および外側列２３２、２３４を含む。ローラ２３０の列２３２、２３４は、（例えば、内側列２３２の１つのローラ２３０が外側列２３４の２つの隣接ローラ２３０の間で同等に位置付けられるように）交互にすることができる。ローラ２３０は、駆動車輪２１０の駆動方向と垂直な無限滑動を提供する。ローラ２３０がともに、駆動車輪２１０の円形または略円形周囲を画定するように、ローラ２３０は、それらの回転方向Ｄrと垂直な弓形（例えば、凸状）外面２３５を画定する。ローラ２３０の外形は、駆動車輪２１０の全体的な外形に影響を及ぼす。例えば、ローラ２３０は、ともに（例えば、静止摩擦のためのトレッドとして）駆動車輪２１０の波形回転表面を画定する、弓形の外側ローラ表面２３５を画定してもよい。しかしながら、駆動車輪２１０の円形の全体的回転表面を画定する輪郭を有するようにローラ２３０を構成することにより、ロボット１００が、車輪のトレッドで垂直に振動する代わりに、平面上で平滑に移動することを可能にする。角度を成して物体に接近するときに、（半径ｒの）ローラ２３０の交互列２３２、２３４を、駆動車輪２１０の車輪半径Ｒと同じくらい高い、またはほぼ同じくらい高い物体を登るために、トレッドとして使用することができる。
【００５４】
図３〜図５Ｂに示される実施例では、第１の駆動車輪２１０ａは、順駆動方向Ｆに沿った先端駆動車輪として配設され、残りの２つの駆動車輪２１０ｂ、２１０ｃは、後方から追従する。この配設では、前進するために、コントローラ５００は、第１の駆動車輪２１０ａを順駆動方向Ｆに沿って滑らせる一方で、第２および第３の駆動車輪２１０ｂ、２１０ｃを同等の速度で順転方向に駆動させる、駆動コマンドを発行してもよい。さらに、この駆動車輪配設は、ロボット１００が急停止する（例えば、順駆動方向Ｆに対する急激な負の加速を発生させる）ことを可能にする。これは、３車輪設計の自然な動的不安定性によるものである。順駆動方向Ｆが２つの順駆動車輪の間の角の二等分線に沿ったものである場合、急停止は、ロボット１００を転倒させ得るトルクを生じさせ、その２つの「前」車輪の上で枢動させる。代わりに、１つの駆動車輪２１０ａを用いた前方への移動は、急速停止する必要がある場合に、必然的に、ロボット１００が前方に倒れることから支持する、またはそれを防止する。しかしながら、停止から加速する際、コントローラ５００は、ロボット１００のその全体重心ＣＧRからの慣性モーメントＩを考慮してもよい。
【００５５】
駆動システム２００のいくつかの実現形態では、各駆動車輪２１０ａ、２１０ｂ、２１０は、ロボット１００のＸおよびＹ軸に直交する垂直軸Ｚと半径方向に整合される転がり方向ＤRを有する。第１の駆動車輪２１０ａは、順駆動方向Ｆに沿った先端駆動車輪として配設することができ、残りの２つの駆動車輪２１０ｂ、２１０ｃは、後方に追従する。
この配設では、前進させるために、コントローラ５００は、第１の駆動車輪２１０ａを順転方向に駆動させ、第２および第３の駆動車輪２１０ｂ、２１０ｃを第１の駆動車輪２１０ａと同等の速度で逆方向に駆動させる、駆動コマンドを発行してもよい。
【００５６】
他の実現形態では、駆動システム２００は、２つの駆動車輪２１０ａ、２１０ｂの間の角度の角の二等分線が、ロボット１００の順駆動方向Ｆと整合されるように位置付けられる、第１および第２の駆動車輪２１０ａ、２１０ｂを有するように配設することができる。この配設では、前進させるために、コントローラ５００は、第１および第２の駆動車輪２１０ａ、２１０ｂを順転方向に同等の速度で駆動させ、一方、第３の駆動車輪２１０ｃを逆方向に駆動させる、または空転状態に保ち、第１および第２の駆動車輪２１０ａ、２１０ｂの後方に引きずられさせる、駆動コマンドを発行してもよい。前進しながら左または右に曲がるために、コントローラ５００は、対応する第１または第２の駆動車輪２１０ａ、２１０ｂを相対的により速い／より遅い速度で駆動させるコマンドを発行してもよい。他の駆動システム２００の配設も同様に使用することができる。駆動車輪２１０ａ、２１０ｂ、２１０ｃは、円筒形、円形、楕円形、または多角形の輪郭を画定してもよい。
【００５７】
再び図１〜図３を参照すると、基部１２０は、基部１２０からＺ方向に上向きに延在する、少なくとも１つの脚部１３０を支持する。脚部（単数または複数）１３０は、基部１２０に対して胴部１４０を上昇および降下させるために、可変高さを有するように構成されてもよい。いくつかの実現形態では、各脚部１３０は、相互に対して移動する（例えば、入れ子状伸縮、線形、および／または角移動）、第１および第２の脚部分１３２、１３４を含む。示される実施例では、第２の脚部分１３４は、相互の中および外へ、ならびに相対的により大きい基部押出部の外へ入れ子状に伸縮移動する、連続的により小さい直径の押出部を有するというよりはむしろ、第１の脚部分１３２の上に入れ子状に伸縮移動し、したがって、第２の脚部分１３４に沿って他の構成要素を定置すること、および潜在的に、第２の脚部分１３４と共に基部１２０の相対的近接に移動させることを可能にする。
脚部１３０は、第１の脚部分１３２に対して第２の脚部分１３４を移動させるためのアクチュエータアセンブリ１３６（図８Ｃ）を含んでもよい。アクチュエータアセンブリ１３６は、コントローラ５００に位置フィードバックを提供する、リフトモータ１３８ｂおよびエンコーダ１３８ｃと通信している、モータドライバ１３８ａを含んでもよい。
【００５８】
一般的に、入れ子状伸縮配設は、脚部１３０全体の重心ＣＧLを可能な限り低く保つために、基部１２０に、相対的により大きい押出部の外へ上に入れ子状に伸縮移動する、連続的により小さい直径の押出部を含む。さらに、脚部１３０が完全に延在される際に基部１２０が受ける、より大きいトルクに対処するために、より頑丈な、および／またはより大きい構成要素を底部に定置することができる。しかしながら、この手法は、２つの問題を提示する。第一に、相対的により小さい構成要素が脚部１３０の上部に定置される際、いずれの雨、粉塵、または他の微粒子も、押出部を流れる、または転がり落ちる傾向があり、押出部の間の空間に入り込み、したがって押出部の入れ子を詰まらせる。これは、依然として脚部１３０の完全な可動性／関節運動を維持することを試みる一方での、非常に困難な封止問題をもたらす。第二に、ロボット１００上に搭載物またはアクセサリを搭載することが望まれる場合がある。アクセサリを搭載する１つの一般的な場所は、胴部１４０の上部である。第２の脚部分１３４が第１の脚部分の外に入れ子状に伸縮移動する場合、アクセサリおよび構成要素は、それらが胴部１４０と共に移動する必要がある場合、第２の脚部分１３４全体の上方にしか搭載することができない。そうでなければ、第２の脚部分１３４上に搭載されるいずれの構成要素も、脚部１３０の入れ子状伸縮移動を制限することとなる。
【００５９】
第２の脚部分１３４を第１の脚部分１３２上で入れ子状に伸縮移動させることによって、第２の脚部分１３４は、基部１２０に対して垂直に移動することができる、追加の搭載物取り付け点を提供する。このタイプの配設は、水または浮遊微粒子が、脚部分１３２と脚部分１３４との間の空間に入ることなく、胴部１４０のそれぞれの脚部分１３２、１３４（例えば、押出部）の外側上を流れ落ちるようにする。これは、脚部１３０のいずれの接合部も封止することを大いに簡単にする。さらに、胴部１４０および／または第２の脚部分１３４の搭載物／アクセサリ搭載特徴は、脚部１３０がどれくらい延在されているかに関わらず、常に露出され、利用可能である。
【００６０】
図３および図６Ａを参照すると、脚部（単数または複数）１３０は、基部１２０の上および上方に延在する、段部１４２を有してもよい、胴部１４０を支持する。示される実施例では、胴部１４０は、段部１４２の少なくとも一部を形成する、下を向く表面または底面１４４（例えば、基部を向く）と、反対の上を向く表面または上面１４６とを有し、その間に延在する側面１４８を伴う。胴部１４０は、脚部（単数または複数）１３０によって支持される中心部分１４１と、脚部（単数または複数）１３０の範囲を横方向に越えて横方向に延在する周辺遊離部分１４３とを有する、円形状もしくは楕円形状等の様々な形状または幾何学的形状を画定してもよく、このようにして、下を向く表面１４４を画定する張り出し部分を提供する。いくつかの実施例では、胴部１４０は、基部１２０上に脚部（単数または複数）１３０を越えて延在する張り出し部分を提供する、段部を画定する、多角形または他の複雑な形状を画定する。
【００６１】
ロボット１００は、搭載物を受容するために、１つ以上のアクセサリポート１７０（例えば、機械的および／または電気的相互接続点）を含んでもよい。アクセサリポート１７０は、受容される搭載物が、センサシステム４００のセンサ（例えば、胴部１４０の底面１４４および／または上面１４６上等の）を塞がない、または遮らないように、位置することができる。いくつかの実現形態では、図６Ａに示されるように、胴部１４０は、例えば、バスケット３６０内に搭載物を受容して、胴部１４０の前方部分１４７またはロボット本体１１０の他の部分上のセンサを遮らないように、胴部１４０の後方部分１４９上に、１つ以上のアクセサリポート１７０を含む。
【００６２】
胴部１４０の外面は、ユーザからタッチコマンドを受けとるように、ユーザによる接触またはタッチに敏感であってもよい。例えば、ユーザが胴部１４０の頂面１４６に触れるときに、ロボット１００は、床に対して胴部の高さＨTを下げることによって（例えば、胴部１４０を支持する脚部１３０の高さＨLを減少させることによって）応答する。同様に、ユーザが胴部１４０の底部表面１４４に触れるときに、ロボット１００は、床に対して胴部１４０を上昇させることによって（例えば、胴部１４０を支持する脚部１３０の高さＨLを増加させることによって）応答する。さらに、胴部１４０の側面１４８の前方、後方、右、または左部分上でユーザタッチを受けとると、ロボット１００は、受けとったタッチコマンドの対応する方向（例えば、それぞれ、後方、前方、左、および右）に移動することによって応答する。胴部１４０の外面は、ユーザ接触を検出する、コントローラ５００と通信している容量センサを含んでもよい。
【００６３】
図６Ｂおよび６Ｃを参照すると、いくつかの実現形態では、胴部１４０は、上部パネル１４５ｔ、底部パネル１４５ｂ、前面パネル１４５ｆ、裏面パネル１４５ｂ、右パネル１４５ｒ、および左パネル１４５ｌを有する、胴部本体１４５を含む。各パネル１４５ｔ、１４５ｂ、１４５ｆ、１４５ｒ、１４５ｒ、１４５ｌは、他のパネルに対して独立して移動してもよい。さらに、各パネル１４５ｔ、１４５ｂ、１４５ｆ、１４５ｒ、１４５ｒ、１４５ｌは、運動、および／またはそれぞれのパネルとの接触を検出する、コントローラ５００と通信している関連運動および／または接触センサ１４７ｔ、１４７ｂ、１４７ｆ、１４７ｒ、１４７ｒ、１４７ｌを有してもよい。
【００６４】
再び図１〜図３、および図７を参照すると、胴部１４０は、胴部１４０に対する頭部１６０の回動および傾斜を提供する、首部１５０を支持する。示される実施例では、首部１５０は、回転部１５２と、傾斜部１５４とを含む。回転部１５２は、約９０°〜約３６０°の、ある範囲の角移動θR（例えば、Ｚ軸を中心とした）を提供してもよい。他の範囲も同様に可能である。さらに、いくつかの実施例では、回転部１５２は、頭部１６０とロボット１００の残りの部分との間の電気的通信を維持した状態で、無限回数の回転の、胴部１４０に対する頭部１５０の連続する３６０°の回転を可能にする、電気的コネクタまたは接触を含む。傾斜部１５４は、頭部１６０とロボット１００の残りの部分との間の電気的通信を維持した状態で、胴部１４０に対する頭部１６０の回転を可能にする、同一もしくは同様の電気的コネクタまたは接触を含んでもよい。回転部１５２は、リング１５３（例えば、歯状リングラック）に連結される、またはそれと嵌合する、回転部モータ１５２ｍを含んでもよい。傾斜部１５４は、回転部１５２から独立して、頭部を胴部１４０に対して角度θTに移動させてもよい（例えば、Ｙ軸を中心に）。いくつかの実施例では、傾斜部１５４は、頭部１６０をＺ軸に対して±９０°の角度θTに移動させる、傾斜部モータ１５５を含む。±４５°等の他の範囲も同様に可能である。ロボット１００は、脚部（単数または複数）１３０、胴部１４０、首部１５０、および頭部１６０が、ロボット１００の安定した可動性を維持するために、基部１２０の周辺内に留まるように構成されてもよい。図８Ｆに示される例となる回路図では、首部１５０は、回転部１５２および傾斜部１５４を、対応するモータドライバ１５６ａ、１５６ｂ、およびエンコーダ１５８ａ、１５８ｂと共に含む、回動−傾斜アセンブリ１５１を含む。
【００６５】
頭部１６０は、ユーザからタッチコマンドを受けとるように、ユーザによる接触またはタッチに敏感であってもよい。例えば、ユーザが頭部１６０を前方に引くときに、頭部１６０は、受動抵抗を伴って前方に傾斜し、次いで、位置を保持する。さらに、ユーザが頭部１６０を垂直に下方へ押した／引いた場合、胴部１４０が、頭部１６０を下げるように（脚部１３０の長さの縮小を介して）下がってもよい。頭部１６０および／または首部１５０は、ユーザ接触または操作を感知する、ひずみゲージおよび／または接触センサ１６５（図７）を含んでもよい。
【００６６】
図８Ａ〜図８Ｇは、ロボット１００の例となる回路図を提供する。図８Ａ〜図８Ｃは、ソナー近接センサ４１０および段差近接センサ４２０等の近接センサと、接触センサ４３０と、レーザスキャナ４４０と、ソナースキャナ４６０と、駆動システム２００とを収容してもよい、基部１２０の例となる回路図を提供する。また、基部１２０は、コントローラ５００と、電源１０５と、脚部アクチュエータアセンブリ１３６とも収容してもよい。
胴部１４０は、マイクロコントローラ１４０ｃと、マイクロフォン（単数または複数）３３０と、スピーカ（単数または複数）３４０と、走査３−Ｄ画像センサ４５０ａと、コントローラ５００がユーザの接触またはタッチを受けとり、それに応答する（例えば、胴部１４０を基部１２０に対して移動させる、首部１５０を回動および／もしくは傾斜させる、ならびに／またはこれらに応えて駆動システム２００にコマンドを発行することによって）ことを可能にする、胴部タッチセンサシステム４８０とを収容してもよい。首部１５０は、対応するモータドライバ１５６ａおよびエンコーダ１５８ａを有する回動モータ１５２と、対応するモータドライバ１５６ｂおよびエンコーダ１５８ｂを有する傾斜モータ１５４とを含んでもよい、回動−傾斜アセンブリ１５１を収容してもよい。頭部１６０は、１つ以上のウェブパッド３１０と、カメラ３２０とを収容してもよい。
【００６７】
図１〜３および９を参照すると、いくつかの実現形態では、頭部１６０は、インターフェースモジュール３００の１つ以上の部分を支持する。頭部１６０は、それぞれタッチスクリーン３１２を持ち得る、ウェブパッドまたはタブレットＰＣとも呼ばれる、１つ以上のコンピューティングタブレット３１０を解放可能に受容するためのドック３０２を含んでもよい。ウェブパッド３１０は、前方、後方、または上方に配向されてもよい。いくつかの実現形態では、ウェブパッド３１０は、タッチスクリーン、随意の入出力（例えば、ボタンおよび／またはマイクロＵＳＢ等のコネクタ）、プロセッサ、およびプロセッサと通信しているメモリを含む。例となるウェブパッド３１０は、Ａｐｐｌｅ，  Ｉｎｃ．によるｉＰａｄを含む。いくつかの実施例では、ウェブパッドおよび１０は、コントローラ５００として機能するか、またはコントローラ５００およびロボット１００の制御を支援する。いくつかの実施例では、ドック３０２は、それに固定して取り付けられた第１のコンピューティングタブレット３１０ａ（例えば、ギガバイト速度等の比較的高い帯域幅でのデータ転送用の有線インターフェース）と、それに取り外し可能に取り付けられた第２のコンピューティングタブレット３１０ｂとを含む。第２のウェブパッド３１０ｂは、図９に示されるように、第１のウェブパッド３１０ａを覆って受容されてもよく、または第２のウェブパッド３１０ｂは、第１のウェブパッド３１０ａに対して頭部１６０の対向側または反対側で受容されてもよい。さらなる実施例では、頭部１６０は、それに固定されるか、または取り外し可能に取り付けられるかのいずれかであり得る、単一のウェブパッド３１０を支持する。タッチスクリーン３１２は、ユーザ入力を受けとり、タッチ対話型であるグラフィカルユーザインターフェースを提供するために、その上のユーザタッチの点を検出、監視、および／または再現してもよい。いくつかの実施例では、ウェブパッド３１０は、ロボット１００から除去されたときをユーザが知ることを可能にする、タッチスクリーン呼び出しを含む。
【００６８】
いくつかの実現形態では、ロボット１００は、ロボット本体１１０の１つ以上の部分の上に複数のウェブパッドドック３０２を含む。図９に示される実施例では、ロボット１００は、随意に、脚部１３０および／または胴部１４０上に配置される、ウェブパッドドック３０２を含む。これは、例えば、異なる身長のユーザに適応する、異なる視点でウェブパッド３１０のカメラを使用してビデオを捕捉する、および／またはロボット１００上で複数のウェブパッド３１０を受容するように、ユーザが、ロボット１００上の異なる高さでウェブパッド３１０をドッキングすることを可能にする。
【００６９】
インターフェースモジュール３００は、（例えば、テレビ会議のために）頭部１６０の高い視点からビデオを捕捉するために使用することができる、頭部１６０上に配置されたカメラ３２０を含んでもよい（例えば、図２参照）。図３に示される実施例では、カメラ３２０は、首部１５０上に配置される。いくつかの実施例では、カメラ３２０は、ウェブパッド３１０、３１０ａが頭部１６０から着脱された、またはドックから出されたときのみ動作させられる。ウェブパッド３１０、３１０ａがドック３０２の中で（および随意にカメラ３２０を覆って）頭部１６０上に取り付けられた、またはドッキングされたときに、ロボット１００は、ビデオを捕捉するためにウェブパッド３１０ａのカメラを使用してもよい。そのような場合において、カメラ３２０は、ドッキングされたウェブパッド３１０の後ろに配置されてもよく、ウェブパッド３１０が頭部１６０から着脱された、またはドックから出されたときにアクティブ状態になり、ウェブパッド３１０が頭部１６０上に取り付けられた、またはドッキングされたときに非アクティブ状態になる。
【００７０】
ロボット１００は、インターフェースモジュール３００を通して（例えば、２４ｆｐｓで）（例えば、ウェブパッド３１０、カメラ３２０、マイクロフォン３２０、および／またはスピーカ３４０を使用して）テレビ会議を提供することができる。テレビ会議は、多人数であり得る。ロボット１００は、ユーザに対面するように頭部１６０を機動させることによって、テレビ会議の両当事者の間でアイコンタクトを提供することができる。また、ロボット１００は、５度未満の凝視角（例えば、頭部１６０の前方面に垂直な軸から離れた角度）を有することができる。ロボット１００上の少なくとも１つの３−Ｄ画像センサ４５０および／またはカメラ３２０は、ボディランゲージ等の実物大画像を捕捉することができる。コントローラ５００は、（例えば、５０ｍｓ未満の差で）オーディオおよびビデオを同期させることができる。
【００７１】
図１０Ａ〜１０Ｅに示される実施例では、ロボット１００は、（胴部１４０を上昇または下降させることにより）頭部１６０および／またはカメラ３２０上のウェブパッド３１０の高さを調整すること、および／または頭部１６０を回動および／または傾斜することによって、立っている、または座っている人にテレビ会議を提供することができる。カメラ３２０は、ウェブパッド３１０とは独立して、少なくとも１つの自由度内で移動可能であり得る。いくつかの実施例では、カメラ３２０は、地面から３フィート（約９１ｃｍ）超であるが、ウェブパッド３１０の表示領域の上端から、ウェブパッドの高さの１０パーセントを超えずに位置付けられた、対物レンズを有する。さらに、ロボット１００は、ロボット１００の周囲の近接写真またはビデオを取得するようにカメラ３２０をズームすることができる。頭部１６０は、テレビ会議を表示するウェブパッド３１０の付近で頭部１６０から音を発するよう、１つ以上のスピーカ３４０を含んでもよい。
【００７２】
いくつかの実施例では、ロボット１００は、図１０Ｅに示されるように、（例えば、タッチスクリーンを介して）ウェブパッド３１０の中へユーザ入力を受けとることができる。いくつかの実現形態では、ウェブパッド３１０は、ディスプレイまたはモニタであるが、他の実現形態では、ウェブパッド３１０は、タブレットコンピュータである。ウェブパッド３１０は、高い双方向性を提供する、タッチスクリーン等の容易かつ直観的な制御を有することができる。ウェブパッド３１０は、少なくとも１つの自由度で移動可能な１５０平方インチ（約９６８平方ｃｍ）以上の表示領域を有する、モニタディスプレイ３１２（例えば、タッチスクリーン）を有してもよい。
【００７３】
ロボット１００は、いくつかの実施例では、医師と患者および／または他の医師または看護師との間でテレビ会議を提供することによって、ＥＭＲ統合を提供することができる。ロボット１００は、通過診察器具を含んでもよい。例えば、ロボット１００は、テレビ会議ユーザ（例えば、医師）に聴取を伝えるように構成される、聴診器を含んでもよい。
他の実施例では、ロボットは、医療データを遠隔ユーザ（医師）に伝送するように、電子聴診器、耳鏡、および超音波等のクラスＩＩ医療デバイスへの直接接続を可能にする、コネクタ１７０を含む。
【００７４】
図１０Ｂに示される実施例では、ユーザは、ロボット１００の遠隔操作、（例えば、ウェブパッド３１０のカメラおよびマイクロフォンを使用した）テレビ会議、および／またはウェブパッド３１０上のソフトウェアアプリケーションの利用のために、頭部１６０上のウェブパッドドック３０２からウェブパッド３１０を取り外してもよい。ロボット１００は、ウェブパッド３１０がウェブパッドドック３０２から着脱されている間に、テレビ会議、ナビゲーション等のための異なる視点を取得するように、頭部１６０上に第１および第２のカメラ３２０ａ、３２０ｂを含んでもよい。
【００７５】
コントローラ５００上で実行可能である、および／またはコントローラ５００と通信している対話型アプリケーションは、ロボット１００上で１つよりも多くのディスプレイを必要とし得る。ロボット１００と関連する複数のウェブパッド３１０は、（例えば、内蔵型カメラを有するウェブパッド３１０用の）「ＦａｃｅＴｉｍｅ」、Ｔｅｌｅｓｔｒａｔｉｏｎ、ＨＤ外観の異なる組み合わせを提供することができ、ロボット１００を遠隔で制御するための遠隔オペレータ制御ユニット（ＯＣＵ）の役割を果たす、および／またはローカルユーザインターフェースパッドを提供することができる。
【００７６】
再び図６Ａを参照すると、インターフェースモジュール３００は、音声入力を受けとるためのマイクロフォン３３０（例えば、またはマイクロフォンアレイ）と、音声出力を送達するためのロボット本体１１０上に配置された１つ以上のスピーカ３４０とを含んでもよい。マイクロフォン３３０およびスピーカ３４０はそれぞれ、コントローラ５００と通信してもよい。いくつかの実施例では、インターフェースモジュール３００は、パンフレット、緊急情報、家庭用品具、および他のアイテムを保持するように構成され得る、バスケット３６０を含む。
【００７７】
図１〜図４Ｃ、図１１Ａおよび図１１Ｂを参照すると、信頼性があり、かつ強固な自律的移動を達成するために、センサシステム４００は、ロボット１００が、その環境内でとる動作についての知性的決定を行うことを可能にするのに十分なロボットの環境の知覚を生じさせるように、相互と併用して使用することができる、いくつかの異なるタイプのセンサを含んでもよい。センサシステム４００は、ロボット本体１１０によって支持される、障害物検出障害物回避（ＯＤＯＡ）センサ、通信センサ、ナビゲーションセンサ等を含んでもよい、１つ以上のタイプのセンサを含んでもよい。例えば、これらのセンサには、近接センサ、接触センサ、３次元（３Ｄ）撮像／深度マップセンサ、カメラ（例えば、可視光および／または赤外線カメラ）、ソナー、レーダ、ＬＩＤＡＲ（Ｌｉｇｈｔ  Ｄｅｔｅｃｔｉｏｎ  Ａｎｄ  Ｒａｎｇｉｎｇ、離れた標的の距離および／または他の情報を発見するために、散乱光の特性を計測する、光学遠隔感知を必要とする可能性がある）、ＬＡＤＡＲ（Ｌａｓｅｒ  Ｄｅｔｅｃｔｉｏｎ  ａｎｄ  Ｒａｎｇｉｎｇ）等が挙げられるが、これらに限定されない。いくつかの実現形態では、センサシステム４００は、測距ソナーセンサ４１０（例えば、基部１２０の周辺に９つ）と、近接段差検出器４２０と、接触センサ４３０と、レーザスキャナ４４０と、１つ以上の３−Ｄ撮像／深度センサ４５０と、撮像ソナー４６０とを含む。
【００７８】
センサをロボットの基本骨格上に定置することに伴う、いくつかの課題が存在する。第一に、センサは、それらがロボット１００の周囲の最大対応範囲関心領域を有するように定置する必要がある。第二に、センサは、ロボット１００自体がセンサを絶対的に最小限しか塞がないように定置しなければならない場合がある、本質的に、センサを、それらがロボット自体によって「覆い隠される」ように定置することはできない。第三に、センサの定置および搭載は、基本骨格の工業設計の残りの部分に対して邪魔にならないべきである。審美性の観点から、センサが目立たないように搭載されたロボットは、そうではないものより「魅力的である」と見なすことができる。実用性の観点から、センサは、通常のロボット動作を妨げない（障害物上に引っかかる等）ように搭載されるべきである。
【００７９】
いくつかの実現形態では、センサシステム４００は、コントローラ５００と通信しており、かついずれの近くの、または侵入する障害物も検出するために、ロボット１００の１つ以上の域または部分内に配設される（例えば、ロボット本体１１０の基部本体部分１２４ａ、１２４ｂ、１２４ｃ上またはその付近に配置される）、一式の近接センサ４１０、４２０またはそのアレイを含む。近接センサ４１０、４２０は、物体がロボット１００の所与の範囲内にある際に、コントローラ５００に信号を提供する、収束赤外線（ＩＲ）放射部−センサ要素、ソナーセンサ、超音波センサ、および／または撮像センサ（例えば、３Ｄ深度マップ画像センサ）であってもよい。
【００８０】
図４Ａ〜図４Ｃに示される実施例では、ロボット１００は、基部本体１２０の周囲に配置され（例えば、実質的に等距離に）、かつ上向き視界を伴って配設される、ソナータイプの近接センサ４１０のアレイを含む。第１、第２、および第３のソナー近接センサ４１０ａ、４１０ｂ、４１０ｃは、第１の（前方）基部本体部分１２４ａ上またはその付近に配置され、第１の基部本体１２４ａの半径方向に最も外側の縁部１２５ａに、ソナー近接センサのうちの少なくとも１つを有する。第４、第５、および第６のソナー近接センサ４１０ｄ、４１０ｅ、４１０ｆは、第２の（右側）基部本体部分１２４ｂ上またはその付近に配置され、第２の基部本体１２４ｂの半径方向に最も外側の縁部１２５ｂの付近に、ソナー近接センサのうちの少なくとも１つを有する。第７、第８、および第９のソナー近接センサ４１０ｇ、４１０ｈ、４１０ｉは、第３の（右側）基部本体部分１２４ｃ上またはその付近に配置され、第３の基部本体１２４ｃの半径方向に最も外側の縁部１２５ｃの付近に、ソナー近接センサのうちの少なくとも１つを有する。この構成は、少なくとも３つの検出域を提供する。
【００８１】
いくつかの実施例では、基部本体１２０の周囲に配置される一式のソナー近接センサ４１０（例えば、４１０ａ〜４１０ｉ）は、上（例えば、実質的にＺ方向）を向くように配設され、任意選択により、Ｚ軸から離れるように外向きに角度付けられ、したがって、ロボット１００の周囲に検出カーテン４１２を生じさせる。各ソナー近接センサ４１０ａ〜４１０ｉは、ソナー放出を上向きに、または少なくともロボット本体１１０の他の部分に向かわないように（例えば、ロボット本体１１０のそれ自体に対する移動を検出しないように）誘導する、シュラウドまたは放出ガイド４１４を有してもよい。放出ガイド４１４は、シェルまたは半シェル形状を画定してもよい。示される実施例では、基部本体１２０は、脚部１３０を越えて横方向に延在し、ソナー近接センサ４１０（例えば、４１０ａ〜４１０ｉ）は、脚部１３０の周囲の基部本体１２０上に（例えば、実質的に基部本体１２０の周辺に沿って）配置される。さらに、上を向くソナー近接センサ４１０は、脚部１３０の周囲に連続する、または実質的に連続するソナー検出カーテン４１２を生じさせるように離間される。ソナー検出カーテン４１２は、テーブル上部、棚等の高くなった横方向突出部分を有する障害物を検出するために使用することができる。
【００８２】
上を見るソナー近接センサ４１０は、テーブル上部等の水平面内の近接にある物体を見る能力を提供する。これらの物体は、それらのアスペクト比のため、レーザスキャナ４４０または撮像センサ４５０等のセンサシステムの他のセンサによって見逃される場合があり、そのため、ロボット１００に問題をもたらす可能性がある。基部１２０の周辺の周囲に配設される、上を見るソナー近接センサ４１０は、これらのタイプの物体／障害物を見る、または検出するための手段を提供する。さらに、ソナー近接センサ４１０は、ロボット１００の胴部１４０または頭部１６０によって塞がれない、または遮られないように、基部周辺の最大幅点の周囲に、わずかに外向きに角度付けて定置することができ、したがって、ロボット１００自体の部分を感知することによる誤検出をもたらさない。いくつかの実現形態では、ソナー近接センサ４１０は、ソナー近接センサ４１０の視界の外側の胴部１４０の周囲の体積を残すように配設され（上向きかつ外向きに）、したがって、バスケット３６０等の搭載される搭載物またはアクセサリを自由に受容する。ソナー近接センサ４１０は、視覚的隠蔽を提供し、障害物上に引っかかる、またはそれに衝突する外部特徴をなくすために、基部本体１２４に引っ込めることができる。
【００８３】
センサシステム４００は、後退している間の障害物を検出するために、後ろ向き（例えば、順駆動方向Ｆと反対）に方向付けられる、１つ以上のソナー近接センサ４１０（例えば、後部近接センサ４１０ｊ）を含んでもよい。後部ソナー近接センサ４１０ｊは、そのソナー検出界４１２を方向付ける、放出ガイド４１４を含んでもよい。さらに、後部ソナー近接センサ４１０ｊは、ロボット１００と後部ソナー近接センサ４ｌ０ｊの視界内の検出される物体との間の距離を判定するよう測距するために使用することができる（例えば、「後退警報」として）。いくつかの実施例では、後部ソナー近接センサ４１０ｊは、筐体形態にいかなる視覚的または機能的不規則性ももたらさないように、基部本体１２０内に引っ込んで搭載される。
【００８４】
図３および図４Ｂを参照すると、いくつかの実現形態では、ロボット１００は、駆動車輪２１０ａ、２１０ｂ、２１０ｃが段差（例えば、階段）に遭遇する前に段差を検出することを可能にするように、駆動車輪２１０ａ、２１０ｂ、２１０ｃの付近または周囲に配設される、段差近接センサ４２０を含む。例えば、段差近接センサ４２０は、基部本体１２４ａ〜ｃの半径方向に最も外側の縁部１２５ａ〜ｃのそれぞれに、もしくはその付近に、またはその間の位置にあってもよい。場合によっては、段差感知は、床があることが予測されるべき位置で重なる放射および検出界、したがって検出域を有するように、相互に向かって角度付けられる赤外線放射部４２２および赤外線検出器４２４を使用する、赤外線（ＩＲ）近接または実距離感知を使用して実現される。ＩＲ近接感知は、比較的狭い視界を有する可能性があり、信頼性が表面アルベドに依存する場合があり、表面間で変化する距離精度を有する可能性がある。結果として、ロボット１００上の複数の点から段差を適切に検出するために、複数の別個のセンサをロボット１００の周辺の周囲に定置することができる。さらに、ＩＲ近接ベースのセンサは、典型的に、段差とロボット１００が敷居を登った直後等の安全事象とを区別することができない。
【００８５】
段差近接センサ４２０は、ロボット１００が一式の階段に遭遇する際等の床の低くなっている縁部に遭遇した際を検出することができる。コントローラ５００（制御システムを実行する）は、縁部が検出される際、ロボット１００にその移動方向を変化させる等の動作をとらせる挙動を実行してもよい。いくつかの実現形態では、センサシステム４００は、１つ以上の二次段差センサ（例えば、段差感知用および任意選択により他のタイプの感知用に構成される他のセンサ）を含む。段差検出近接センサ４２０は、段差の早期検出を提供するように、実際の段差と安全事象（敷居を乗り越える等）とを区別するためのデータを提供するように、およびそれらの視界が、ロボット本体１１０の少なくとも一部と、ロボット本体１１０から離れた領域とを含むように、外側低めに位置付けられるように配設することができる。いくつかの実現形態では、コントローラ５００は、支持作業面（例えば、床）の縁部、作業面の縁部を通り過ぎた距離の増加、および／またはロボット本体１１０と作業面との間の距離の増加を識別し、検出する、段差検出ルーチンを実行する。
本実現形態は、１）潜在的な段差の早期検出（未知の環境内でのより速い移動速度を可能にし得る）、２）段差事象が本当に安全ではないものであるか否か、または安全に横断すること（例えば、敷居を登って越える等）ができるものであるか否かを知るために、コントローラ５００が段差検出近接センサ４２０からの段差撮像情報を受信することによる、自律的可動性の信頼性の増加、３）段差の誤検出の低減（例えば、縁部検出対複数の狭い視界を伴う別個のＩＲ近接センサの使用による）を可能にする。冗長性のため、および距離感知カメラが特定のタイプの段差を確実に検出することができない状況を検出するために、「脱輪」センサとして配設される追加のセンサを使用することができる。
【００８６】
敷居および段検出は、ロボット１００が、登ることができる敷居を横断するか、または高過ぎる段を回避するかのいずれかを効率的に計画することを可能にする。これは、ロボット１００が安全に横断し得る、または横断し得ない、作業面上の無差別な物体についても同じであることができる。ロボット１００が、登ることができると判定する障害物または敷居について、それらの高さを知ることは、ロボット１００が、円滑さを最大限にし、突然の加速によるいかなる不安定性も最小限にするために、円滑な移行を可能にするのに必要であると考えられる場合に、適切に減速することを可能にする。いくつかの実現形態では、敷居および段検出は、幾何学的形状認識（例えば、敷居または電気ケーブル対靴下等の小塊とを判別する）に加えて、作業面の上方の物体の高さに基づく。敷居は、縁部検出によって認識されてもよい。コントローラ５００は、段差検出近接センサ４２０（またはロボット１００上の別の撮像センサ）から撮像データを受信し、縁部検出ルーチンを実行し、縁部検出ルーチンの結果に基づき、駆動コマンドを発行してもよい。コントローラ５００は、物体を識別するために、パターン認識も同様に使用してもよい。敷居検出は、ロボット１００が、円滑に段を登る能力を最大限にするように、敷居に対するその配向を変化させることを可能にする。
【００８７】
近接センサ４１０、４２０は、単独で機能してもよく、または代替として、冗長性のために、１つ以上の接触センサ４３０（例えば、隆起スイッチ）との組み合わせで機能してもよい。例えば、ロボット本体１１０上の１つ以上の接触または隆起センサ４３０は、ロボット１００が障害物に物理的に遭遇したか否かを検出することができる。そのようなセンサは、障害物に遭遇した際を判定するために、ロボット１００内の静電容量または物理的移動等の物理的特性を使用してもよい。いくつかの実現形態では、基部１２０の各基部本体部分１２４ａ、１２４ｂ、１２４ｃは、基部シャーシ１２２（例えば、図４Ａ参照）に対する対応する基部本体部分１２４ａ、１２４ｂ、１２４ｃの移動を検出する、関連接触センサ４３０（例えば、容量センサ、リードスイッチ等）を有する。例えば、各基部本体１２４ａ〜ｃは、３方向ぶつかり検出を提供するために、基部シャーシ１２２のＺ軸に対して半径方向に移動してもよい。
【００８８】
再び図１〜図４Ｃ、図１１Ａ、および図１１Ｂを参照すると、いくつかの実現形態では、センサシステム４００は、ロボット本体１１０の前方部分上に搭載され、かつコントローラ５００と通信している、レーザスキャナ４４０を含む。示される実施例では、レーザスキャナ４４０は、第１の基部本体１２４ａ上またはその上方（例えば、ロボットの駆動方向Ｆに沿って最大撮像対応範囲を有するように）の前を向く基部本体１２０上に搭載される（例えば、順駆動方向Ｆに沿った視界を有する）。さらに、三角形の基部１２０の前先端上またはその付近へのレーザスキャナの定置は、ロボット基部の外角（例えば、３００度）が、レーザスキャナ４４０の視界４４２（例えば、約２８５度）より大きいことを意味し、したがって、基部１２０が、レーザスキャナ４４０の検出視界４４２を塞ぐ、または遮るのを防止する。レーザスキャナ４４０は、レーザスキャナのいずれかの部分が、基部本体１２４を通り越して突き出すのを最小限にするように（例えば、審美性のため、および障害物上に引っかかるのを最小限にするため）、その視界を塞ぐことなく、基部本体１２４内に可能な限り引っ込めて搭載することができる。
【００８９】
レーザスキャナ４４０は、ロボット１００の周囲領域を走査し、コントローラ５００は、レーザスキャナ４４０から受信される信号を使用して、走査した領域の環境マップまたは物体マップを作成する。コントローラ５００は、ナビゲーション、障害物検出、および障害物回避に、物体マップを使用してもよい。さらに、コントローラ５００は、物体マップを作成するため、および／またはナビゲーションのために、センサシステム４００の他のセンサからの感知入力を使用してもよい。
【００９０】
いくつかの実施例では、レーザスキャナ４４０は、「主」走査線として１次元内の領域を素早く走査するレーザと、線内の生成される各ピクセルに深度を割り当てるのに位相差または同様の技法を使用する飛行時間撮像要素とを使用し得る、走査ＬＩＤＡＲである（走査面内の２次元深度線を返す）。３次元マップを生成するために、ＬＩＤＡＲは、第２の方向に「補助」走査を実施することができる（例えば、スキャナを「上下させる」ことによって）。この機械的走査技法は、補われていない場合、ピクセルの完全２−Ｄマトリックスのための飛行時間計算を可能にして、各ピクセルの深度、またはさらには各ピクセルの一連の深度を提供するために（コード化照明器または照明レーザを用いて）、半導体スタックを使用する技法、「Ｆｌａｓｈ」ＬＩＤＡＲ／ＬＡＤＡＲおよび「Ｓｗｉｓｓ  Ｒａｎｇｅｒ」タイプの焦点面撮像要素センサ等の技術によって補完することができる。
【００９１】
センサシステム４００は、コントローラ５００と通信している、１つ以上の３次元（３−Ｄ）画像センサ４５０を含んでもよい。３−Ｄ画像センサ４５０が、限られた視界を有する場合、コントローラ５００またはセンサシステム４００は、強固なＯＤＯＡを実施するために、相対的により広い視界を生じるよう、３−Ｄ画像センサ４５０ａを、左右を走査するように作動させることができる。図１〜図３、および図１０Ｂを参照すると、いくつかの実現形態では、ロボット１００は、順駆動方向Ｆに沿った視界を伴う、ロボット本体１１０の前方部分上に搭載される（例えば、ロボットの駆動方向Ｆに沿った最大撮像対応範囲を有するように）、走査３−Ｄ画像センサ４５０ａを含む。走査３−Ｄ画像センサ４５０ａは、主に、障害物検出／障害物回避（ＯＤＯＡ）に使用することができる。示される実施例では、走査３−Ｄ画像センサ４５０ａは、例えば、ユーザが走査３−Ｄ画像センサ４５０ａと接触するのを防止するために、図３に示されるように、胴部１４０上の段部１４２の下部上、または底面１４４上に搭載され、胴部１４０内に引っ込められる（例えば、底面１４４と同一平面上またはそれを通り越して）。走査３−Ｄ画像センサ４５０は、障害物検出および障害物回避（ＯＤＯＡ）のために、ロボット１００の正面内の下向き視界４５２を有するように（例えば、基部１２０またはロボット本体１１０の他の部分による遮りを伴う）、実質的に下向きかつロボット本体１１０から離れるよう照準を定めるように配設することができる。胴部１４０の前縁部上またはその付近への走査３−Ｄ画像センサ４５０ａの定置は、３−Ｄ画像センサ４５０の視界（例えば、約２８５度）が、３−Ｄ画像センサ４５０に対する胴部１４０の外面角度（例えば、３００度）より小さくなるようにすることができ、したがって、胴部１４０が走査３−Ｄ画像センサ４５０ａの検出視界４５２を塞ぐ、または遮るのを防止する。さらに、走査３−Ｄ画像センサ４５０ａ（および関連アクチュエータ）は、可能な限りその視界を塞ぐことなく（例えば、また、審美性のため、および障害物に引っかかるのを最小限にするためにも）、胴部１４０内に埋め込んで搭載することができる。走査３−Ｄ画像センサ４５０ａの気を散らす走査運動は、ユーザには見えず、それ程不快ではない対話経験をもたらす。突出するセンサまたは特徴とは異なり、引っ込んだ走査３−Ｄ画像センサ４５０ａは、特に、移動または走査する際、事実上、胴部１４０の周辺を越えて延在する可動部分がないため、環境との意図されない相互作用（人、障害物等への引っかかり）を有さない傾向がある。
【００９２】
いくつかの実現形態では、センサシステム４００は、基部本体１２０上に配置される追加の３−Ｄ画像センサ４５０と、脚部１３０と、首部１５０および／または頭部１６０とを含む。図１に示される実施例では、ロボット１００は、基部本体１２０、胴部１４０、および頭部１６０上に３−Ｄ画像センサ４５０を含む。図２に示される実施例では、ロボット１００は、基部本体１２０、胴部１４０、および頭部１６０上に３−Ｄ画像センサ４５０を含む。図１１Ａに示される実施例では、ロボット１００は、脚部１３０、胴部１４０、および首部１５０上に３−Ｄ画像センサ４５０を含む。他の構成も同様に可能である。１つの３−Ｄ画像センサ４５０（例えば、首部１５０上かつ頭部１６０の上）を、人認識、ジェスチャ認識、および／またはテレビ会議に使用することができ、一方、別の３−Ｄ画像センサ４５０（例えば、基部１２０および／または脚部１３０上）を、ナビゲーションならびに／または障害物検出および障害物回避に使用することができる。
【００９３】
首部１５０および／または頭部１６０上に配置される、前を向く３−Ｄ画像センサ４５０を、ロボット１００の周囲の人々の人認識、顔認識、および／またはジェスチャ認識に使用することができる。例えば、頭部１６０上の３−Ｄ画像センサ４５０からの信号入力を使用して、コントローラ５００は、見た／捕捉したユーザの顔の３次元マップを作成し、作成した３次元マップを人の顔の既知の３−Ｄ画像と比較し、既知の３−Ｄ顔画像のうちの１つとの合致を判定することによって、ユーザを認識してもよい。顔認識は、ユーザをロボット１００の正当なユーザとして認証するために使用されてもよい。さらに、３−Ｄ画像センサ４５０のうちの１つ以上を、ロボット１００が見る人のジェスチャを判定し、判定されるジェスチャ（単数または複数）（例えば、手差し、手振り、およびまたは手信号）に基づき、任意選択により反応するために使用することができる。例えば、コントローラ５００は、認識される特定の方向への手差しに応えて、駆動コマンドを発行してもよい。
【００９４】
３−Ｄ画像センサ４５０は、以下のタイプのデータを生成することができる：（ｉ）深度マップ、（ｉｉ）反射率ベースの強度画像、および／または（ｉｉｉ）標準強度画像。
３−Ｄ画像センサ４５０は、画像パターン合致、源から放射され、標的から反射される光の飛行時間および／または位相遅延偏移計測によって、そのようなデータを取得してもよい。
【００９５】
いくつかの実現形態では、プロセッサ（例えば、ロボットコントローラ５００の）上で実行可能な推論または制御ソフトウェアは、センサシステム４００によって生成される様々なデータ型を使用して実行されるアルゴリズムの組み合わせを使用する。推論ソフトウェアは、例えば、ロボット１００が障害物と衝突することなく移動することができるかに関するナビゲーション決定を行うために、センサシステム４００から収集されるデータを処理し、データを出力する。ロボットの包囲の経時的な撮像データを蓄積することによって、その結果、推論ソフトウェアは、３−Ｄ画像センサ４５０の深度計測を改善するために、感知される画像（単数または複数）の選択されるセグメントに効率的な方法を適用することができる。これには、適切な時間および空間平均技法を使用することが含まれてもよい。
【００９６】
衝突のないロボット移動を実行する信頼性は、（ｉ）高レベルの経時的な推論によって構築される信頼レベル、および（ｉｉ）解析のために３つの主なタイプのデータ、（ａ）深度画像、（ｂ）アクティブ照明画像、および（ｃ）周囲照明画像を蓄積する、深度知覚センサに基づいてもよい。深度知覚撮像センサ４５０によって取得される画像のそれぞれに、異なるタイプのデータを認識するアルゴリズムを実行することができる。集約データは、１つの種類のデータのみを使用するシステムと比較して、信頼レベルを改善し得る。
【００９７】
３−Ｄ画像センサ４５０は、１つ以上の物体を含有するロボットの周囲の情景１００から、深度および明度データを含有する画像（例えば、部屋または作業領域のセンサ視野部分）を取得してもよい。コントローラ５００は、情景から捕捉される反射光に基づき、物体の占領データを判定するように構成されてもよい。さらに、いくつかの実施例では、コントローラ５００は、少なくとも一部において占領データに基づき、障害物（すなわち、情景内の物体）を迂回するように、駆動システム２００に駆動コマンドを発行する。３−Ｄ画像センサ４５０は、情景内のいかなる物体にも衝突することなく、情景の周囲でロボット１００をナビゲートするよう、コントローラ５００によってリアルタイム決定を行うために、情景深度画像を繰り返し捕捉してもよい。例えば、３−Ｄ画像センサ４５０によって深度画像データが取得される速度または頻度は、３−Ｄ画像センサ４５０のシャッター速度によって制御されてもよい。加えて、コントローラ５００は、事象トリガを受信してもよい（例えば、コントローラ５００に近隣の物体または危険を通知する、近接センサ４１０、４２０等のセンサシステム４００の別のセンサ構成要素から）。コントローラ５００は、事象トリガに応えて、３−Ｄ画像センサ４５０に、深度画像が捕捉される頻度を増加させることができ、占領情報が取得される。
【００９８】
図１２Ａを参照すると、いくつかの実現形態では、３−Ｄ撮像センサ４５０は、ロボット１００の周囲領域（例えば、部屋）等の情景１０に光を放射する、光源１１７２を含む。また、撮像センサ４５０は、光源１１７２から発される光の反射光を含む、情景１０からの反射光を捕捉する（例えば、情景深度画像として）、撮像部１１７４（例えば、光感知ピクセル１１７４ｐのアレイ）も含んでもよい。いくつかの実施例では、撮像センサ４５０は、放射される光および受信される反射光をそれぞれ操作する（例えば、スペックリングまたは集束させる）ために、光源レンズ１１７６および／または検出器レンズ１１７８を含む。ロボットコントローラ５００またはロボットコントローラ５００と通信しているセンサコントローラ（図示せず）は、撮像部１１７４によって捕捉される反射光の画像パターン合致および／または飛行時間特性に基づき、情景１０内の物体１２の深度情報を判定するために、撮像部１１７４（例えば、ピクセル１１７４ｐ）から光信号を受信する。
【００９９】
図１２Ｂは、撮像センサ４５０を動作させるための動作の例となる配設１２００を提供する。図１２Ａを追加参照すると、動作は、ロボット１００の周囲の情景１０に光を放射すること（１２０２）と、撮像部（例えば、光感知ピクセルのアレイ）上への情景１０からの放射光の反射を受けること（１２０４）とを含む。動作は、コントローラ５００が撮像部から光検出信号を受信すること（１２０６）と、光検出信号から得られる画像データを使用して、情景１０内の物体１２の１つ以上の特徴を検出すること（１２０８）と、光検出信号から得られる画像深度データを使用して、情景１０内の物体１２の検出される特徴（単数または複数）の位置を追跡すること（１２１０）とをさらに含む。動作は、画像データまたは画像深度データの解像度を増加させるため、および／または信頼レベルを提供するために、光を放射すること（１２０２）、光反射を受けること（１２０４）、光検出信号を受信すること（１２０６）、物体特徴（単数または複数）を検出すること（１２０８）、および物体特徴（単数または複数）の位置を追跡すること（１２０１０）の動作を繰り返すこと（１２１２）を含んでもよい。
【０１００】
動作を繰り返すこと（１２１２）は、比較的高い解像度のために比較的遅い速度（例えば、遅いフレーム速度）で、中間速度で、または比較的低い解像度を伴って高速で実施することができる。動作を繰り返す（１２１２）頻度は、ロボットコントローラ５００によって調節可能であり得る。いくつかの実現形態では、コントローラ５００は、事象トリガを受信すると、動作を繰り返す（１２１２）頻度を高めてもよく、または低めてもよい。
例えば、情景内の感知されるアイテムは、情景１０内の高くなっている可能性のある物体１２（例えば、戸口、敷居、または段差）を感知するために、動作を繰り返す（１２１２）頻度を増加させる事象をトリガし得る。追加の実施例では、検出された物体１２間の経過時間事象が、動作を繰り返す（１２１２）頻度を低下させ得る、またはある期間停止させ得る（例えば、別の事象によって起こされるまで活動停止状態になる）。いくつかの実施例では、情景１０内の物体１２の１つ以上の特徴を検出する（１２０８）動作は、画像深度データが取得される速度を増加させるために、比較的大きい頻度の繰り返し動作（１２１２）をもたらす、特徴検出事象をトリガする。画像深度データの比較的大きい獲得速度は、情景内の相対的により信頼できる特徴追跡を可能にすることができる。
【０１０１】
また、動作は、情景１０内の物体１２を迂回するために、ナビゲーションデータを出力すること（１２１４）も含む。いくつかの実現形態では、コントローラ５００は、駆動システム２００に駆動コマンドを発行して、物体１２との衝突を回避するようにロボット１００を移動させるために、出力されるナビゲーションデータを使用する。
【０１０２】
いくつかの実現形態では、センサシステム４００は、ロボット１００の周囲の情景１０内の複数の物体１２を検出し、コントローラ５００は、検出される物体１２のそれぞれの位置を追跡する。コントローラ５００は、部屋の境界付けられた領域等のロボット１００の周囲の領域内の物体１２の占領マップを作成してもよい。コントローラ５００は、情景１０を占領マップの一部分と合致させ、占領マップを追跡される物体１２の位置で更新するために、センサシステム４００の画像深度データを使用してもよい。
【０１０３】
図１２Ｃを参照すると、いくつかの実現形態では、３−Ｄ画像センサ４５０は、スペックル非相関を通した画像マッピングを可能にする、３次元（３Ｄ）スペックルカメラ１３００を含む。スペックルカメラ１３００は、情景１０（標的領域としての）にスペックルパターンを放射する、スペックル放射部１３１０（例えば、赤外線、紫外線、および／または可視光の）と、情景１０内の物体１２の表面上のスペックルパターンの画像を捕捉する、撮像部１３２０とを含む。
【０１０４】
スペックル放射部１３１０は、拡散器１３１４に、および反射、ひいては情景１０へのスペックルパターンとしての投射のために反射器１３１６上に光ビームを放射する、レーザ等の光源１３１２を含んでもよい。撮像部１３２０は、ＣＣＤまたはＣＭＯＳベースの画像センサ等の光検出器１３２６のアレイを有する画像センサ１３２４上に画像を結像させる、対物光学素子１３２２を含んでもよい。スペックル放射部１３１０および撮像部１３２０の光学軸は、同一直線上であるように示されているが、非相関モードでは、例えば、スペックル放射部１３１０および撮像部１３２０の光学軸はまた、非同一直線上であってもよく、一方、相互相関モードでは、例えば、撮像軸が放射軸からずれるという具合であってもよい。
【０１０５】
スペックル放射部１３１０は、情景１０にスペックルパターンを放射し、撮像部１３２０は、スペックル放射部１３１０から広範の異なる物体距離Ｚnでの、情景１０内のスペックルパターンの基準画像を捕捉する（例えば、Ｚ軸は、撮像部１３２０の光学軸によって画定することができる）。示される実施例では、Ｚ1、Ｚ2、Ｚ3等と標識される基準位置等、原点から異なる、それぞれの距離の連続平面で、投射されるスペックルパターンの基準画像が捕捉される。基準画像間の距離ΔＺは、閾値距離（例えば、５ｍｍ）に設定されてもよい、またはコントローラ５００によって調節可能であってもよい（例えば、トリガされる事象に応えて）。スペックルカメラ１３００は、スペックルパターンのスペックル放射部１３１０からの距離との非相関を可能にして、後続画像に捕捉される物体１２の測距を実施するために、捕捉される基準画像を保管し、それぞれの放射距離にインデックスを付ける。例えば、ΔＺが隣接する基準距離Ｚ1、Ｚ2、Ｚ3、．．．、の間の距離とほぼ同等であると仮定すると、位置ＺAの物体１２上のスペックルパターンを、Ｚ2で捕捉されるスペックルパターンの基準画像と相関させることができる。その一方で、例えば、ＺＢの物体１２上のスペックルパターンは、Ｚ3の基準画像と相関させることができる。これらの相関計測は、原点からの物体１２の近似距離をもたらす。物体１２を３次元にマップするために、スペックルカメラ１３００またはスペックルカメラ１３００から情報を受信するコントローラ５００は、最も近い合致をもたらした基準画像との局所相互相関を使用することができる。
【０１０６】
例えば、本明細書に記載されるものと組み合わせることが可能であり得る、三角測量または非相関を使用するスペックル相互相関を介したスペックル測距を使用した３Ｄ画像マッピングにおける他の詳細および特徴は、内容全体が参照することによって本明細書に組み込まれる、ＰＣＴ特許出願第ＰＣＴ／ＩＬ２００６／０００３３５号に見ることができる。
【０１０７】
図１２Ｄは、スペックルカメラ１３００を動作させるための動作の例となる配設１４００を提供する。動作は、情景１０にスペックルパターンを放射すること（１４０２）と、スペックル放射部１３１０から異なる距離での、基準画像（例えば、基準物体１２の）を捕捉すること（１４０４）とを含む。動作は、情景１０内の標的物体１２にスペックルパターンを放射すること（１４０６）と、物体１２上のスペックルパターンの標的画像を捕捉すること（１４０８）とをさらに含む。動作は、標的画像（スペックルされた物体の）を異なる基準画像と比較して、標的物体１２上のスペックルパターンと最も強く相関する基準パターンを特定すること（１４１０）と、情景１０内の標的物体１２の推定される距離範囲を判定すること（１４１２）とをさらに含む。これは、物体１２上の一次スペックルパターンを判定することと、物体１２上の一次スペックルパターンと最も強く相関するスペックルパターンを有する基準画像を発見することとを含んでもよい。基準画像の対応する距離から、距離範囲を判定することができる。
【０１０８】
動作は、任意選択により、例えば、情景内の物体１２の位置を判定するために、物体１２上のスペックルパターンと識別される基準パターンとの間の局所相互相関によって、物体１２の表面の３Ｄマップを構築すること（１４１４）を含む。これは、物体の３次元（３Ｄ）マップを得るために、物体１２上の一次スペックルパターンを判定することと、標的画像内の物体１２の複数の領域上の一次スペックルパターンと特定された基準画像内の一次スペックルパターンとの間のそれぞれのオフセットを発見することとを含んでもよい。情景の３Ｄマッピングへの固体状態構成要素の使用は、ロボットナビゲーションシステムの比較的安価な解決策を提供する。
【０１０９】
典型的に、異なる、それぞれの距離のうちの少なくともいくつかは、それぞれの距離での一次スペックルパターンの軸長さより長く軸方向に離れている。標的画像を基準画像と比較することは、標的画像と基準画像のうちの少なくともいくつかのそれぞれとの間のそれぞれの相互相関を算出することと、標的画像との最大のそれぞれの相互相関を有する基準画像を選択することとを含んでもよい。
【０１１０】
動作は、（例えば、継続的に）情景１０内の物体１２の動きを追跡するために、動作１４０２〜１４１２または動作１４０６〜１４１２を繰り返すこと（１４１６）と、任意選択により動作１４１４とを含んでもよい。例えば、スペックルカメラ１３００は、基準画像との比較のために、物体１２が移動している間、連続標的画像を捕捉してもよい。
【０１１１】
本明細書に記載されるものと組み合わせることが可能であり得る、スペックル測距を使用する３Ｄ画像マッピングにおける他の詳細および特徴は、内容全体が参照することによって本明細書に組み込まれる、米国特許第７，４３３，０２４号、名称が「Ｄｅｐｔｈ  Ｍａｐｐｉｎｇ  Ｕｓｉｎｇ  Ｐｒｏｊｅｃｔｅｄ  Ｐａｔｔｅｒｎｓ」の米国特許出願公開第２００８／０１０６７４６号、名称が「Ｄｅｐｔｈ  Ｍａｐｐｉｎｇ  Ｕｓｉｎｇ  Ｐｒｏｊｅｃｔｅｄ  Ｐａｔｔｅｒｎｓ」の米国特許出願公開第２０１０／０１１８１２３号、名称が「Ｍｏｄｅｌｉｎｇ  Ｏｆ  Ｈｕｍａｎｏｉｄ  Ｆｏｒｍｓ  Ｆｒｏｍ  Ｄｅｐｔｈ  Ｍａｐｓ」の米国特許出願公開第２０１０／００３４４５７号、名称が「Ｄｅｐｔｈ  Ｍａｐｐｉｎｇ  Ｕｓｉｎｇ  Ｍｕｌｔｉ−Ｂｅａｍ  Ｉｌｌｕｍｉｎａｔｉｏｎ」の米国特許出願公開第２０１０／００２００７８号、名称が「Ｏｐｔｉｃａｌ  Ｄｅｓｉｇｎｓ  Ｆｏｒ  Ｚｅｒｏ  Ｏｒｄｅｒ  Ｒｅｄｕｃｔｉｏｎ」の米国特許出願公開第２００９／０１８５２７４号、名称が「Ｔｈｒｅｅ−Ｄｉｍｅｎｓｉｏｎａｌ  Ｓｅｎｓｉｎｇ  Ｕｓｉｎｇ  Ｓｐｅｃｋｌｅ  Ｐａｔｔｅｒｎｓ」の米国特許出願公開第２００９／００９６７８３号、名称が「Ｄｅｐｔｈ  Ｍａｐｐｉｎｇ  Ｕｓｉｎｇ  Ｐｒｏｊｅｃｔｅｄ  Ｐａｔｔｅｒｎｓ」の米国特許出願公開第２００８／０２４０５０２号、および名称が「Ｄｅｐｔｈ−Ｖａｒｙｉｎｇ  Ｌｉｇｈｔ  Ｆｉｅｌｄｓ  Ｆｏｒ  Ｔｈｒｅｅ  Ｄｉｍｅｎｓｉｏｎａｌ  Ｓｅｎｓｉｎｇ」の米国特許出願公開第２００８／０１０６７４６号に見ることができる。
【０１１２】
図１２Ｅを参照すると、いくつかの実現形態では、３−Ｄ撮像センサ４５０は、深度画像データを取得するための３Ｄ飛行時間（ＴＯＦ）カメラ１５００を含む。３Ｄ  ＴＯＦカメラ１５００は、光源１５１０と、相補型金属酸化物半導体（ＣＭＯＳ）センサ１５２０（または電荷結合デバイス（ＣＣＤ））と、レンズ１５３０と、光源１５１０およびＣＭＯＳセンサ１５２０と通信している、処理資源を有する制御論理またはカメラコントローラ１５４０（および／またはロボットコントローラ５００）とを含む。光源１５１０は、周期的高周波信号によって変調される強度を伴う、レーザまたは発光ダイオード（ＬＥＤ）であってもよい。いくつかの実施例では、光源１５１０は、集束レンズ１５１２を含む。ＣＭＯＳセンサ１５２０は、各ピクセル検出器１５２２が、その上に衝突する光子エネルギーの強度および位相を検出することができる、ピクセル検出器１５２２のアレイ、またはピクセル検出器１５２２の他の配設を含んでもよい。いくつかの実施例では、各ピクセル検出器１５２２は、関連ピクセル検出器１５２２の検出電荷出力を処理するための専用検出器回路１５２４を有する。レンズ１５３０は、１つ以上の関心物体１２を含有する情景１０から反射される光を、ＣＭＯＳセンサ１５２０上に集束させる。カメラコントローラ１５４０は、ＣＭＯＳセンサ１５２０によって取得されるピクセルデータを深度マップおよび明度画像に形式化する、一連の動作を提供する。いくつかの実施例では、また、３Ｄ  ＴＯＦカメラ１５００は、入力／出力（ＩＯ）１５５０（例えば、ロボットコントローラ５００と通信している）、メモリ１５６０、ならびに／またはカメラコントローラ１５４０および／もしくはピクセル検出器１５２２（例えば、検出器回路１５２４）と通信しているクロック１５７０も含む。
【０１１３】
図１２Ｆは、３Ｄ  ＴＯＦカメラ１５００を動作させるための動作の例となる配設１６００ｆを提供する。動作は、光パルス（例えば、赤外線、紫外線、および／または可視光）を情景１０に放射すること（１６０２ｆ）と、光パルスの飛行時間の時間計測を開始すること（例えば、クロック１５７０のクロックパルスをカウントすることによって）（１６０４ｆ）とを含む。動作は、情景１０内の物体１２の１つ以上の表面から放射される光の反射を受けること（１６０６ｆ）を含む。反射は、光源１５１０から異なる距離Ｚnで、物体１２の表面から反射されてもよい。反射は、レンズ１５３０を通してＣＭＯＳセンサ１５２０のピクセル検出器１５２２上に受けとられる。動作は、ＣＭＯＳセンサ１５２０の各対応するピクセル検出器１５２２上に受けとられる、各光パルス反射の飛行時間を受信すること（１６０８ｆ）を含む。光パルスの往復飛行時間（ＴＯＦ）中、各それぞれのピクセル検出器１５２２の検出器回路１５２３のカウンタは、クロックパルスを蓄積する。より大きい数のクロックパルスの蓄積は、より長いＴＯＦ、およびしたがって、撮像される物体１２上の光反射点と光源１５１０との間のより大きい距離を表す。動作は、それぞれの受けとられる光パルス反射の物体１２の反射面の間の距離を判定すること（１６１０ｆ）と、任意選択により、３次元物体表面を構築すること（１６１２ｆ）とをさらに含む。いくつかの実現形態では、動作は、動作１６０２ｆ〜１６１０ｆを繰り返すこと（１６１４ｆ）と、任意選択により、情景１０内の物体１２の移動を追跡するための１６１２ｆとを含む。
【０１１４】
本明細書に記載されるものと組み合わせることが可能であり得る、３Ｄ飛行時間撮像における他の詳細および特徴は、内容全体が参照することによって本明細書に組み込まれる、名称が「ＣＭＯＳ  Ｃｏｍｐａｔｉｂｌｅ  ３−Ｄ  Ｉｍａｇｅ  Ｓｅｎｓｏｒ」の米国特許第６，３２３，９４２号、名称が「Ｍｅｔｈｏｄｓ  ｆｏｒ  ＣＭＯＳ−Ｃｏｍｐａｔｉｂｌｅ  Ｔｈｒｅｅ−Ｄｉｍｅｎｓｉｏｎａｌ  Ｉｍａｇｅ  Ｓｅｎｓｉｎｇ  Ｕｓｉｎｇ  Ｑｕａｎｔｕｍ  Ｅｆｆｉｃｉｅｎｃｙ  Ｍｏｄｕｌａｔｉｏｎ」の米国特許第６，５１５，７４０号、および名称が「Ｍｅｔｈｏｄ  ａｎｄ  Ｓｙｓｔｅｍ  ｔｏ  Ｅｎｈａｎｃｅ  Ｄｙｎａｍｉｃ  Ｒａｎｇｅ  Ｃｏｎｖｅｒｓｉｏｎ  Ｕｓａｂｌｅ  ｗｉｔｈ  ＣＭＯＳ  Ｔｈｒｅｅ−Ｄｉｍｅｎｓｉｏｎａｌ  Ｉｍａｇｉｎｇ」のＰＣＴ特許出願第ＰＣＴ／ＵＳ０２／１６６２１号に見ることができる。
【０１１５】
いくつかの実現形態では、３−Ｄ撮像センサ４５０は、３つのタイプの情報、すなわち（１）深度情報（例えば、ＣＭＯＳセンサ１５２０の各ピクセル検出器１５２２から情景１２上の対応する位置までの）、（２）各ピクセル検出器位置での周囲光強度、および（３）各ピクセル検出器位置でのアクティブ照明強度を提供する。深度情報は、特に物体の近接からロボット配備現場に関して、検出される物体１２の位置が経時的に追跡されるようにすることを可能にする。アクティブ照明強度および周囲光強度は、異なるタイプの明度画像である。アクティブ照明強度は、標的物体１２から反射されるアクティブ光（光源１５１０によって提供されるもの等）の反射から捕捉される。周囲光画像は、標的物体１２から反射される周囲光のものである。２つの画像は、共に、特に照明条件が悪い際（例えば、暗すぎるか、または過度の周囲照明）に、追加の強固性を提供する。
【０１１６】
情景１０内の物体１２の位置を分類し、検出するために、画像区分化および分類アルゴリズムが使用されてもよい。これらのアルゴリズムによって提供される情報、ならびに撮像センサ４５０から取得される距離計測情報は、ロボットコントローラ５００または他の処理資源によって使用することができる。撮像センサ４５０は、周囲光をフィルタ処理するために、フォトダイオードの感度を変調するための技法を含む、飛行時間の原理に基づき、およびより具体的には、情景１０から反射される、調節された光パターンにおける検出可能な位相遅延に基づき、動作することができる。
【０１１７】
ロボット１００は、１）マッピング、位置特定＆ナビゲーション、２）物体検出＆物体回避（ＯＤＯＡ）、３）物体探索（例えば、人を発見するための）、４）ジェスチャ認識（例えば、コンパニオンロボットのための）、５）人＆顔検出、６）人追跡、７）ロボット１００による物体の操作の監視、およびロボット１００の自律的動作のための他の好適な用途に、撮像センサ４５０を使用してもよい。
【０１１８】
いくつかの実現形態では、３−Ｄ画像センサ４５０のうちの少なくとも１つは、ロボット１００上の地面の上方の１フィート（約３０．５ｃｍ）または２フィート（約６１ｃｍ）を超える高さに位置付けられ、かつロボットの移動方向の床面を含む空間体積から点群を取得することができる（全方向性駆動システム２００を介して）ように方向付けられる、体積点群撮像デバイス（スペックルまたは飛行時間カメラ等）であってもよい。図１および図３に示される実施例では、第１の３−Ｄ画像センサ４５０ａを、基部１２０上の地面の上方の１または２フィートを超える高さ（または地面の約１または２フィート上方の高さ）に位置付け、駆動している間、床を含む体積の画像（例えば、体積点群）を捕捉するように、順駆動方向Ｆに沿って照準を定める（例えば、障害物検出および障害物回避のために）ことができる。ロボット１００に隣接する空間体積から骨格認識および画定点群を取得することができるように、頭部１６０上に搭載された（例えば、地面の上方の約３または４フィートを超える高さに）、第２の３−Ｄ画像センサ４５０ｂが示されている。
コントローラ５００は、捕捉される体積点群のデータを解析するために、骨格／デジタル認識ソフトウェアを実行してもよい。
【０１１９】
周囲光条件に関わらず、撮像センサ４５０を使用して、物体１２を適切に感知することは、重要であり得る。多くの環境では、照明条件は、直接日光から、明るい蛍光照明、ぼんやりとした影まで広い範囲におよび、物体１２の表面質感および基本的な反射率に大きい変化をもたらす可能性がある。照明は、所与の位置内で、および情景１０から情景１０でも同様に変化する可能性がある。いくつかの実現形態では、全ての状況において、周囲光条件からの比較的小さい影響を伴って（例えば、周囲光排除）、人および物体１２を識別し、解像するために、撮像センサ４５０を使用することができる。
【０１２０】
いくつかの実現形態では、撮像センサ４５０のＶＧＡ解像度は、水平６４０ピクセル×垂直４８０ピクセルであるが、しかしながら、３２０×２４０（例えば、短距離センサでは）のような他の解像度も同様に可能である。
【０１２１】
撮像センサ４５０は、パルスレーザと、特定の範囲内のみの物体１２を見るために、タイムドメインにおける帯域通過フィルタとしての機能を果たす、カメラアイリスとを含んでもよい。異なる距離の物体１２ａを検出するために、撮像センサ４５０の可変アイリスを使用することができる。さらに、屋外用途では、より高い電力のレーザパルスを発することができる。
【０１２２】
いくつかの実現形態では、ロボットは、ロボット１００を包囲する領域の音響撮像のためのソナースキャナ４６０を含む。図１および図３に示される実施例では、ソナースキャナ４６０は、基部本体１２０の前方部分上に配置される。
【０１２３】
図１、図３Ｂ、および図１１Ｂを参照すると、いくつかの実現形態では、ロボット１００は、冗長感知のためにレーザスキャナまたはレーザ距離計４４０を、ならびに安全のために後ろを向くソナー近接センサ４１０ｊを使用し、これらの両方は、地面Ｇに対して平行に配向される。ロボット１００は、ロボット１００の周囲の環境の強固な感知を提供するように、第１および第２の３−Ｄ画像センサ４５０ａ、４５０ｂ（深度カメラ）を含んでもよい。第１の３−Ｄ画像センサ４５０ａは、胴部１４０上に固定角度で下向きに地面Ｇを指すように搭載される。第１の３−Ｄ画像センサ４５０ａを下向きに角度付けることによって、ロボット１００は、ロボット１００の前方向への短期移動に関連する、ロボット１００の直前または隣接領域における高密度センサ対応範囲を受容する。後ろを向くソナー４１０ｊは、ロボットが後方移動するときに物体検出を提供する。ロボット１００にとって、後方移動が典型的である場合、ロボット１００は、ロボット１００の直後または隣接領域における高密度センサ対応範囲を提供するように、下方および後方を向く第３の３Ｄ画像センサ４５０を含んでもよい。
【０１２４】
第２の３−Ｄ画像センサ４５０ｂは、首部１５０を介して回動および傾斜することができる頭部１６０上に搭載される。第２の３−Ｄ画像センサ４５０ｂは、人オペレータが、ロボット１００が進行している場所を見ることを可能にするため、遠隔駆動に有用であり得る。首部１５０は、オペレータが、近い物体および離れた物体の両方を見るように、第２の３−Ｄ画像センサ４５０ｂを傾斜および／または回動させることを可能にする。第２の３−Ｄ画像センサ４５０ｂを回動させることは、関連水平視界を増加させる。高速移動中、ロボット１００は、３−Ｄ画像センサ４５０ａ、４５０ｂの両方の総体的または複合視界を増加させるように、およびロボット１００が障害物を回避するのに十分な時間を与えるように（より速い速度が、概して、障害物に反応する時間がより短いことを意味するため）、第２の３−Ｄ画像センサ４５０ｂをわずかに下向きに傾斜させてもよい。より低い速度では、ロボット１００は、ロボット１００が追従するように意図されている個人を追跡するように、第２の３−Ｄ画像センサ４５０ｂを上向きに、または地面Ｇに対して略平行に傾斜させてもよい。さらに、比較的低速で駆動している間、ロボット１００は、ロボット１００の周囲のその視界を増加させるように、第２の３−Ｄ画像センサ４５０ｂを回動させることができる。ロボットが、ロボットの知覚範囲を拡大するように駆動しているときに、第１の３−Ｄ画像センサ４５０ａは、固定されたままとなることができる（例えば、基部１２０に対して移動させられない）。
【０１２５】
いくつかの実現形態では、３−Ｄ画像センサ４５０のうちの少なくとも１つは、地面より上側の１フィート（約３０．５ｃｍ）または２フィート（約６１ｃｍ）以上の高さで（または地面より上側の約１または２フィートの高さで）ロボット１００上に位置付けられ、かつ（全方向性駆動システム２００を介して）ロボットの移動方向の床面を含む空間体積から点群を取得することができるように方向付けられる、体積点群撮像デバイス（スペックルまたは飛行時間カメラ等）であり得る。図１および図３に示される実施例では、第１の３−Ｄ画像センサ４５０ａは、地面より上側の１または２フィート以上の高さで基部１２０上に位置付け、（例えば、障害物検出および障害物回避のために）駆動している間に、床を含む体積の画像（例えば、体積点群）を捕捉するように、順駆動方向Ｆに沿って照準を定めることができる。ロボット１００に隣接する空間体積から骨格認識および画定点群を取得することが可能であるよう、（例えば、地面より上側の約３フィート(約９１ｃｍまたは４フィート(約１２２ｃｍ)より高い高さで）頭部１６０上に搭載された、第２の３−Ｄ画像センサ４５０ｂが示されている。コントローラ５００は、捕捉された体積点群のデータを解析するように、骨格／デジタル認識ソフトウェアを実行してもよい。
【０１２６】
図２および４Ａ〜４Ｃを再び参照すると、センサシステム４００は、ロボット１００の全体重心ＣＧRに対するロボット１００の慣性モーメントを測定および監視するように、コントローラ５００と通信している慣性計測ユニット（ＩＭＵ）４７０を含んでもよい。
【０１２７】
コントローラ５００は、正常な妨害されていない動作に対応する閾値信号から、ＩＭＵ４７０からのフィードバックにおけるいかなる逸脱も監視し得る。例えば、ロボットが直立位置から離れるように傾き始める場合、「タックルされた」、または別様に邪魔された、あるいは誰かが重い搭載物を突然追加した可能性がある。これらの状況では、ロボット１００の安全な動作を保証するために、緊急動作（回避機動、再較正、および／または音声／視覚警告の発行を含むが、これらに限定されない）を講じる必要があり得る。
【０１２８】
ロボット１００は、人間環境内で動作し得るため、人とやりとりし、人向けに設計された（かつロボット制約が考慮されていない）空間内で動作してもよい。ロボット１００は、カクテルパーティまたは混み合った病院等の混雑した、制約された、または極めて動的な環境内にあるときに、その駆動速度および加速を制限することができる。しかしながら、ロボット１００は、誰もいない長い廊下のような比較的高速で駆動することが安全であるが、誰かがロボットの運動経路を横切る際に依然として突然減速することができる状況に遭遇し得る。
【０１２９】
停止から加速するときに、コントローラ５００は、ロボットが倒れるのを防止するように、その全体重心ＣＧRからのロボット１００の慣性モーメントを考慮してもよい。コントローラ５００は、その現在の慣性モーメントを含む、その姿勢のモデルを使用してもよい。搭載物が支持されるときに、コントローラ５００は、全体重心ＣＧRへの負荷影響を計測し、ロボットの移動の慣性モーメントを監視してもよい。例えば、胴部１４０および／または首部１５０は、歪みを計測する歪みゲージを含んでもよい。これが可能ではない場合、コントローラ５００は、安全限界を実験的に判定するために、駆動車輪２１０に試験トルクコマンドを適用し、ＩＭＵ４７０を使用してロボットの実際の線形加速および角加速を計測してもよい。
【０１３０】
突然の減速中、第２および第３の駆動車輪２１０ｂ、２１０ｃ（後輪）へのコマンドされた負荷が低減される一方で、第１の駆動車輪２１０ａ（前輪）は、順駆動方向に滑動し、ロボット１００を支持する。第２および第３の駆動車輪２１０ｂ、２１０ｃ（後輪）の負荷が非対称である場合、ロボット１００は、「偏揺れ」する場合があり、これは、動的安定性を低減させる。この偏揺れを検出し、第２および第３の駆動車輪２１０ｂ、２１０ｃに、ロボット１００を再配向するようコマンドするために、ＩＭＵ４７０（例えば、ジャイロ）を使用することができる。
【０１３１】
図３〜４Ｃおよび６Ａを参照すると、いくつかの実現形態では、ロボット１００は、複数のアンテナを含む。示される実施例では、（アンテナは、脚部１３０、胴部１４０、首部１５０、および／または頭部１６０等のロボット１００の任意の他の部分に配置されてもよいが）ロボット１００は、両方とも基部１２０上に配置される、第１のアンテナ４９０ａと、第２のアンテナ４９０ｂとを含む。複数のアンテナの使用は、堅調な信号受信および伝送を提供する。複数のアンテナの使用は、通信性能を向上させるための伝送機および／または受信機用の複数のアンテナの使用である、多重入力および多重出力またはＭＩＭＯを、ロボット１００に提供する。ＭＩＭＯは、さらなる帯域幅または伝送電力を伴わずに、データスループットおよびリンク範囲の有意な増加を提供する。それは、より高いスペクトル効率（帯域幅の１ヘルツにつき毎秒より多くのビット）およびリンク確実性または多様性（低減したフェーディング）によって、これを達成する。これらの特性により、ＭＩＭＯは、ＩＥＥＥ  ８０２．１１ｎ（Ｗｉｆｉ）、４Ｇ、３ＧＰＰロングタームエボリューション、ＷｉＭＡＸ、およびＨＳＰＡ＋等の現代の無線通信規格の重要な一部である。さらに、ロボット１００は、近くに存在するの他の電子デバイス用のＷｉ−Ｆｉブリッジ、ハブ、またはホットスポットの役割を果たすことができる。ロボット１００の可動性およびＭＩＭＯの使用は、ロボットが比較的非常に確実なＷｉ−Ｆｉブリッジになることを可能にすることができる。
【０１３２】
ＭＩＭＯは、プリコーディング、空間多重化またはＳＭ、およびダイバーシティコーディングの、３つの主要なカテゴリに細分化することができる。プリコーディングは、一種のマルチストリームビーム形成であり、送信機で発生する全ての空間処理であると見なされる。（単層）ビーム形成では、信号電力が受信機入力において最大限化されるように、適切な位相（および時には利得）重み付けを伴って、同一の信号が、伝送アンテナのそれぞれから発信される。ビーム形成の利点は、異なるアンテナから発信された信号を建設的に加算させることによって、受信した信号利得を増大させること、およびマルチパスフェーディング効果を低減させることである。散乱がない場合、ビーム形成は、明確な指向性パターンをもたらすことができる。受信機が複数のアンテナを有するとき、伝送ビーム形成は、受信アンテナの全てにおいて信号レベルを同時に最大限化することができず、複数のストリームを伴うプリコーディングを使用することができる。プリコーディングは、伝送機においてチャネル状態情報（ＣＳＩ）の知識を必要とし得る。
【０１３３】
空間多重化は、ＭＩＭＯアンテナ構成を必要とする。空間多重化では、高速信号が、複数の低速ストリームに分割され、各ストリームは、同一周波数チャネルで異なる伝送アンテナから伝送される。これらの信号が、十分に異なる空間形跡を伴う受信機アレイに着信する場合、受信機は、これらのストリームを（ほぼ）並列のチャネルに分離することができる。空間多重化は、より高い信号対雑音比（ＳＮＲ）でチャネル容量を増加させるための非常に強力な技法である。空間ストリームの最大数は、伝送機または受信機におけるアンテナの数の少ないほうによって制限される。空間多重化は、伝送チャネルの知識を用いて、または用いることなく、使用することができる。空間多重化はまた、空間分割多元接続として知られている、同時伝送に使用することもできる。異なる空間形跡を伴う受信機を予定に入れることによって、良好な分離可能性を確保することができる。
【０１３４】
ダイバーシティコーディング技法は、伝送機にチャネルの知識がない時に使用することができる。ダイバーシティ方法では、（空間多重化における複数のストリームとは違って）単一のストリームが伝送されるが、信号は、時空間符号化と呼ばれる技法を使用して符号化される。信号は、完全または近直交符号化を用いて、伝送アンテナから発信される。
ダイバーシティコーディングは、信号のダイバーシティを強化するために、複数のアンテナリンクで独立したフェーディングを利用する。チャネルの知識がないため、ダイバーシティコーディングからのビーム形成またはアレイ利得はない。空間多重化はまた、伝送機においてチャネルが把握されているときに、プリコーディングと組み合わせることもでき、または復号の確実性がトレードオフであるときに、ダイバーシティコーディングと組み合わせることもできる。
【０１３５】
いくつかの実現形態では、ロボット１００は、それぞれ、第３のアンテナ４９０ｃおよび／または第４のアンテナ４９０ｄと、胴部１４０および／または頭部１６０とを含む（例えば、図３参照）。そのような場合において、コントローラ５００は、（例えば、胴部１４０を上昇または下降させること、および／または頭部１６０を回動および／または傾斜すること等によって、アンテナ４９０ａ−ｄを移動させることによって）堅調な通信のための閾値信号レベルを達成するアンテナ配設を決定することができる。例えば、コントローラ５００は、胴部１４０の高さを上昇させることによって、第３および第４のアンテナ４９０ｃ、４９０ｄを高めるようにコマンドを発行することができる。また、コントローラ５００は、頭部１６０を回転させるように、および／または他のアンテナ４９０ａ〜ｃに対して第４のアンテナ４９０ｄをさらに配向するようにコマンドを発行することができる。
【０１３６】
図１３を参照すると、いくつかの実現形態では、コントローラ５００は、相互と通信している制御調停システム５１０ａと、挙動システム５１０ｂとを含む、制御システム５１０を実行する。制御調停システム５１０ａは、アプリケーション５２０を制御システム５１０に動的に追加すること、およびそれから削除することを可能にし、アプリケーション５２０が、いずれかの他のアプリケーション５２０について知る必要なく、それぞれにロボット１００を制御することを可能にすることを促進する。換言すれば、制御調停システム５１０ａは、ロボット１００のアプリケーション５２０と資源５３０との間での簡単な優先制御機構を提供する。資源５３０には、駆動システム２００、センサシステム４００、および／またはコントローラ５００と通信している任意の搭載物もしくは制御可能なデバイスが挙げられる。
【０１３７】
アプリケーション５２０は、ロボット１００（例えば、プロセッサ）上で同時に実行し、ロボット１００を同時に制御するように、ロボット１００のメモリ内に記憶することができる、またはそれに通信することができる。アプリケーション５２０は、挙動システム５１０ｂの挙動６００にアクセスしてもよい。独立して配備されるアプリケーション５２０は、実行時に動的に、かつロボット１００のロボット資源５３０（例えば、駆動システム２００、腕部（単数または複数）、頭部（単数または複数）等）を共有するように組み合わせられる。アプリケーション５２０の間で実行時にロボット資源５３０を動的に共有するために、低レベルポリシーが実装される。ポリシーは、どのアプリケーション５２０が、そのアプリケーション５２０によって要求されるロボット資源５３０の制御を有するか（例えば、アプリケーション５２０の間の優先順位階層）を判定する。アプリケーション５２０は、動的に開始および停止すること、ならびに相互から完全に独立して実行することができる。また、制御システム５１０は、相互を支援するように共に組み合わせることができる、複雑な挙動６００も可能にする。
【０１３８】
制御調停システム５１０ａは、１つ以上の資源コントローラ５４０と、ロボットマネージャ５５０と、１つ以上の制御アービタ５６０とを含む。これらの構成要素は、共通プロセスまたはコンピュータ内にある必要はなく、いずれかの特定の順序で開始される必要はない。資源コントローラ５４０構成要素は、アプリケーション５２０に制御調停システム５１０ａへのインターフェースを提供する。すべての各アプリケーション５２０のためのこの構成要素のインスタンスが存在する。資源コントローラ５４０は、認証、分散資源制御アービタ、コマンドバッファリング等の複雑性を取り除き、カプセル化する。ロボットマネージャ５５０は、任意の特定の時間にどのアプリケーション５２０がロボット資源５３０のいずれかの排他的制御を有するかを制御することによって、アプリケーション５２０の優先順位付けを協調させる。これは、情報の中枢コーディネータであるため、ロボット毎に１つのみ、ロボットマネージャ５５０のインスタンスが存在する。ロボットマネージャ５５０は、資源コントローラ５４０の線形に優先順位付けされた順序を有する、優先順位ポリシーを実装し、ハードウェア制御を提供する、資源制御アービタ５６０を追跡記録する。制御アービタ５６０は、すべての各アプリケーション５２０からコマンドを受信し、アプリケーションの優先順位に基づき、単一のコマンドを生成し、その関連資源５３０にそれを公開する。また、制御アービタ５６０は、その関連資源５３０から状態フィードバックも受信し、それをアプリケーション５２０まで返送する。ロボット資源５３０は、１つ以上のハードウェアコントローラを有する、機能モジュールのネットワーク（例えば、アクチュエータ、駆動システム、およびそれらのグループ）であってもよい。制御アービタ５６０のコマンドは、特定の動作を実施する資源５３０に特定的である。
【０１３９】
現在のロボットの状態を評価するために、重心（ＣＧ）、慣性モーメント、およびロボット１００の様々な部分の慣性の外積を算出するように、コントローラ５００上で実行可能な動力学モデル５７０を構成することができる。また、動力学モデル５７０は、これらの構成要素の形状、重量、および／または慣性モーメントもモデル化してもよい。いくつかの実施例では、動力学モデル５７０は、ロボット１００の様々な重心を計算するために、ロボット１００上に配置され、かつコントローラ５００と通信している、１つ（例えば、加速度計および／またはジャイロ）の慣性モーメントユニット４７０（ＩＭＵ）またはその部分と通信する。コントローラ５００は、ロボット１００およびその構成要素の動作限界を判定するために、他のプログラム５２０または挙動６００と共に、動力学モデル５７０を使用することができる。
【０１４０】
各アプリケーション５２０は、動作選択エンジン５８０と、資源コントローラ５４０と、動作選択エンジン５８０に接続される１つ以上の挙動６００と、動作選択エンジン５８０に接続される１つ以上の動作モデル５９０とを有する。挙動システム５１０ｂは、予測モデル化を提供し、挙動６００が、ロボット動作の見込まれる結果を評価することによって、ロボットの動作を協働して決定することを可能にする。いくつかの実施例では、挙動６００は、複数の源からのセンサフィードバックを、先験的限界および情報と共に、ロボットの許容動作における評価フィードバックに連結する、階層的状態完全評価機能を提供する、プラグイン構成要素である。挙動６００は、アプリケーション５２０にプラグイン可能である（例えば、アプリケーション５２０の中または外にある）ため、アプリケーション５２０または制御システム５１０のいずれかの他の部分を修正することなく、削除および追加することができる。各挙動６００は、独立したポリシーである。挙動６００をより強力にするために、複雑な組み合わせ機能を有することができるように、複数の挙動６００の出力を共に別の入力に添付することが可能である。挙動６００は、ロボット１００の総合的認識の管理可能な部分を実現することが意図される。
【０１４１】
動作選択エンジン５８０は、制御システム５１０の協調要素であり、全ての挙動６００の入力を考慮して、最適な動作を検索する、高速最適動作選択サイクル（予測／修正サイクル）を実行する。動作選択エンジン５８０は、３つの段階、すなわち指名、動作選択検索、および完了を有する。指名段階では、各挙動６００は、動作選択サイクルが開始されたことを通知され、サイクル開始時間、現在の状態、およびロボットアクチュエータ空間の限界を提供される。内部ポリシーまたは外部入力に基づき、各挙動６００は、この動作選択サイクルに関与することを望むか否かを決定する。この段階中、能動的挙動プリミティブのリストが生成され、この入力は、ロボット１００上で実行されるコマンドの選択に影響を及ぼす。
【０１４２】
動作選択検索段階では、動作選択エンジン５８０は、また、動作空間とも称される、利用可能な動作の空間から、実現可能な結果を生成する。動作選択エンジン５８０は、実現可能なコマンド（限界内）のプール、および将来の対象期間の異なる時間ステップでの各コマンドの動作をシミュレーションした結果としての対応する結果を提供するために、動作モデル５９０を使用する。動作選択エンジン５８０は、挙動６００の結果評価に基づき、好ましい結果を計算し、制御調停システム５１０ａに対応するコマンドを送信し、フィードバックとして選択されるコマンドの動作モデル５９０を通知する。
【０１４３】
完了段階では、協働最高スコア結果に対応するコマンドが、ロボット資源５３０上での実行のために資源コントローラ５４０に提示される全般コマンドとして、共に組み合わせられる。将来の評価サイクルで使用されるフィードバックとして、能動的挙動６００に最適結果が提供される。
【０１４４】
センサシステム４００から受信されるセンサ信号は、動作を実行するために、１つ以上の挙動６００との対話を生じさせることができる。例えば、制御システム５１０を使用して、コントローラ５００は、それ自体およびロボット１００が認知しているロボット１００の周囲のいずれかの物体との衝突を回避する、各ロボット構成要素の調整された移動を効率的に達成するように、各ロボット構成要素（例えば、モータまたはアクチュエータ）の動作（または移動コマンド）を、対応する動作空間（例えば、その特定の要素の構成要素の可能な動作または移動の集合）から選択する。内容全体が参照することによって本明細書に組み込まれる、２０１０年２月１６日に出願された、米国特許出願第６１／３０５，０６９号に記載されるように、コントローラ５００は、イーサＩＯネットワーク等のロボットネットワーク上で、調整されたコマンドを発行することができる。
【０１４５】
制御システム５１０は、ロボット１００が領域の周囲を機動する際、異なる構成／位置でのロボット１００の安定性を最大限にするために、駆動システム２００の適応速度／加速を提供してもよい（例えば、１つ以上の挙動６００を介して）。
【０１４６】
いくつかの実現形態では、コントローラ５００は、進行方向設定および速度設定に従って、ロボット１００を推進する駆動システム２００にコマンドを発行する。１つ以上の挙動６００は、障害物に対処するために、１つが実行するよう選択され得る（単独で、または全般ロボットコマンドとして他のコマンドとの組み合わせで）、実現可能なコマンドの予測結果を評価するために、センサシステム４００から受信される信号を使用してもよい。例えば、近接センサ４１０からの信号は、制御システム５１０に、ロボット１００のコマンドされる速度または進行方向を変更させてもよい。例えば、近隣の壁による近接センサ４１０からの信号は、制御システム５１０が減速させるコマンドを発行するという結果をもたらし得る。別の場合では、椅子との遭遇による接触センサ（単数または複数）からの衝突信号は、制御システム５１０に、進行方向を変更するコマンドを発行させてもよい。他の場合では、接触センサに応えて、ロボット１００の速度設定が低減されなくてもよい、および／または近接センサ４１０に応えて、ロボット１００の進行方向設定が変化されなくてもよい。
【０１４７】
挙動システム５１０ｂは、ロボット１００の速度設定を調節するように構成される速度挙動６００（例えば、プロセッサ上で実行可能な挙動ルーチン）と、ロボット１００の進行方向設定を変化させるように構成される進行方向挙動６００とを含んでもよい。速度および進行方向挙動６００は、同時に、かつ互いに独立して実行するように構成されてもよい。例えば、速度挙動６００は、センサ（例えば、一式（単数または複数）の近接センサ４１０、４２０）のうちの１つをポーリングするように構成されてもよく、進行方向挙動６００は、別のセンサ（例えば、動態隆起センサ）をポーリングするように構成されてもよい。
【０１４８】
図１３および１４を参照すると、挙動システム５１０ｂは、遠隔操作（例えば、ロボット１００を誘導すること）のためにユーザ１５が胴部１４０に触れることに反応するように構成される、胴部タッチ遠隔操作挙動６００ａ（例えば、プロセッサ上で実行可能な挙動ルーチン）を含んでもよい。胴部タッチ遠隔操作挙動６００ａは、胴部が少なくとも閾値期間（例えば、０．２５秒）にわたって接触（例えば、人間の接触）を受けたことをセンサシステム４００が検出するときに、アクティブになることができる。例えば、コントローラ５００と通信しており、胴部本体１４５の対応する上部パネル１４５ｔ、底部パネル１４５ｂ、前面パネル１４５ｆ、裏面パネル１４５ｂ、右パネル１４５ｒ、および左パネル１４５ｌと関連付けられる、運動および／または接触センサ１４７ｔ、１４７ｂ、１４７ｆ、１４７ｒ、１４７ｒ、１４７ｌが、図６Ｂおよび６Ｃに示されるように、運動および／またはそれぞれのパネルとの接触を検出することができる。いったんアクティブになると、胴部タッチ遠隔操作挙動６００ａは、（例えば、タッチの楕円位置から感知および算出されるような）接触力方向を受けとり、（ホロノミック可動性を利用して）局所Ｘ／Ｙ座標において速度コマンドを駆動システム２００に発行する。胴部タッチ遠隔操作挙動６００ａがアクティブである間に、障害物検出および障害物回避挙動がオフにされてもよい。感知したタッチ位置、力、または方向が変化した場合、胴部タッチ遠隔操作挙動６００ａは、感知した接触力方向と対応するように速度コマンドを変更する。胴部タッチ遠隔操作挙動６００ａは、センサシステム４００が閾値期間（例えば、２秒）にわたってロボット１００との接触をもはや感知しなくなるときに、停止ルーチンを実行してもよい。
停止ルーチンは、センサシステム４００がロボット１００との（例えば、胴部１４０との）接触をもはや感知しなくなった場合に、約０．５秒後に駆動システム２００に駆動を停止させてもよい。胴部タッチ遠隔操作挙動６００ａは、トリガ期間にわたって待機する必要なく、タッチ点の移動を可能にするように、ロボット１００の停止における遅延を提供することができる。
【０１４９】
胴部タッチ遠隔操作挙動６００ａは、駆動システム２００から駆動支援を受けながら、ユーザがロボット１００を押すことを可能にする、支援駆動コマンドを駆動システム２００に発行してもよい（例えば、自力でロボット１００を移動させることができないが、ユーザによるロボット１００の移動を支援することができる、部分速度コマンド）。
【０１５０】
胴部タッチ遠隔操作挙動６００ａは、その一部分が胴部１４０上に（および頭部１６０等のロボット１００の上の他の場所に）配置され得る、タッチセンサシステム４８０（例えば、ボタン、容量センサ、接触センサ等）から、センサ信号を受けとってもよい。胴部タッチ遠隔操作挙動６００ａは、典型的なユーザにとってアクセス可能な高さでタッチセンサシステム４８０の少なくとも一部分を配置するよう、地面Ｇから３〜５フィート（約９１ｃｍ〜１５２ｃｍ）の間の高さＨTで胴部１４０を位置付けてもよい。
【０１５１】
いくつかの実現形態では、胴部タッチ遠隔操作挙動６００ａは、ロボット１００および特定の姿勢を配置するためのユーザタッチを認識する。例えば、ユーザ１５が胴部１４０を押し下げたときに、センサシステム４００は、胴部１４０への下向きの力を検出し、対応する信号をコントローラ５００に送信する。胴部タッチ遠隔操作挙動６００ａは、胴部１４０への下向きの力の指示を受信し、制御システム５１０に、脚部１３０の高さＨLを減少させ、それにより、胴部１４０の高さＨTを減少させるようにコマンドを発行させる。同様に、ユーザ１５が胴部１４０を押し／引き上げたときに、胴部タッチ遠隔操作挙動６００ａは、センサシステム４００から胴部１４０への上向きの力の指示を受信し、制御システム５１０に、脚部１３０の長さＨLを増加させ、それにより、胴部１４０の高さＨTを増加させるようにコマンドを発行させる。
【０１５２】
ユーザ１５が頭部１６０を押した、引いた、および／または回転させたときに、胴部タッチ遠隔操作挙動６００ａは、ユーザ動作の指示をセンサシステム４００から（例えば、首部１５０上のひずみゲージ／運動／接触センサ１６５から）受信し得、制御システム５１０に、それに従って頭部１６０を移動させ、その後に姿勢を保持するようにコマンドを発行させることによって、応答してもよい。
【０１５３】
いくつかの実現形態では、ロボット１００は、ロボット１００のユーザ操作への受動抵抗および／または能動支援を提供する。例えば、モータ１３８ｂ、１５２、１５４が、操作のフィードバック、ならびに胴部１４０の上昇等の比較的重い構成要素を移動させるための支援をユーザに提供するように、ロボット１００のユーザ操作への脚部１３０および首部１５０の受動抵抗および／または能動支援を作動させる。これは、対応する構成要素の重量全体を負担する必要なく、ユーザが種々のロボット構成要素を移動させることを可能にする。
【０１５４】
挙動システム５１０ｂは、ロボット１００の注意をユーザに向かって集中させるように構成される、タップ注意挙動６００ｂ（例えば、プロセッサ上で実行可能な挙動ルーチン）を含んでもよい。タップ注意挙動６００ｂは、胴部１４０（またはロボット１００の何らかの他の部分）が少なくとも閾値期間（例えば、０．２５秒）にわたって接触（例えば、人間の接触）を受けたことをセンサシステム４００が検出するときに、アクティブになってもよい。さらに、タップ注意挙動６００ｂは、胴部タッチ遠隔操作挙動６００ａが非アクティブであるときに、アクティブになるのみであってもよい。例えば、０．２秒間の胴部１４０上の感知されたタッチは、胴部タッチ遠隔操作挙動６００ａをトリガしないであろうが、タップ注意挙動６００ｂをトリガするであろう。タップ注意挙動６００ｂは、胴部１４０上の接触位置を使用し、ユーザを見るように（首部１５０の作動を介して）頭部１６０を傾斜および／または回動してもよい。頭部１６０が、タッチ位置の方向を見ている位置に達したときに、挙動６００ｂの停止基準に達することができる。
【０１５５】
いくつかの実現形態では、挙動システム５１０ｂは、駆動システム２００が駆動することを停止させる（例えば、ロボット１００を停止させる）ように構成される、タップ停止挙動６００ｃ（例えば、プロセッサ上で実行可能な挙動ルーチン）を含む。タップ停止挙動６００ｃは、胴部１４０が接触（例えば、人間の接触）を受けたことをセンサシステム４００が検出し、ゼロ速度駆動コマンドを駆動システム２００に発行して、あらゆる以前の駆動コマンドをキャンセルするときに、アクティブになってもよい。ロボットが駆動しており、ユーザがそれを停止させることを所望する場合、ユーザは、胴部１４０（またはロボット１００の何らかの他の部分）またはタッチセンサをタップすることができる。いくつかの実施例では、タップ停止挙動６００ｃは、胴部タッチ遠隔操作挙動６００ａおよびタップ注意挙動６００ｂ等のより高い優先順位の挙動がアクティブではない場合のみ、起動することができる。タップ停止挙動６００ｃは、センサシステム４００が胴部１４０（またはロボット１００の上の他の場所）上のタッチをもはや検出しなくなると、終了してもよい。
【０１５６】
いくつかの実現形態では、ロボット１００は、ウェブパッド３１０とコントローラ５００（および／またはロボット１００の他の構成要素）との間の通信を可能にするために、ブリッジとも呼ばれる仲介セキュリティデバイス３５０（図９）を含む。例えば、ブリッジ３５０は、ウェブパッド通信プロトコルからロボット通信プロトコル（例えば、ギガバイト容量を有するイーサネット（登録商標））へウェブパッド３１０の通信を変換してもよい。ブリッジ３５０は、ウェブパッド３１０を認証し、ウェブパッド３１０とコントローラ５００との間の通信変換を提供してもよい。いくつかの実施例では、ブリッジ３５０は、ウェブパッド３１０とロボット１００との間の任意の通信トラフィックを承認／立証する、承認チップ３５２を含む。ブリッジ３５０は、ロボット１００と通信しようとして、承認されたウェブパッド３１０をチェックしたときに、コントローラ５００に通知してもよい。また、承認後、ブリッジ３５０は、通信承認をウェブパッド３１０に通知してもよい。ブリッジ３５０は、首部１５０または頭部（図２および３に示されるように）上に、あるいはロボット１００の上の他の場所に配置されてもよい。
【０１５７】
セッション初期化プロトコル（ＳＩＰ）は、インターネットプロトコル（ＩＰ）上の音声およびビデオ通話等のマルチメディア通信セッションを制御するために広く使用されている、ＩＥＴＦで定義された信号伝達プロトコルである。本プロトコルは、１つまたは複数のメディアストリームを含む、２者（ユニキャスト）または多数共同（マルチキャスト）セッションを生成し、修正し、および終了させるために使用することができる。修正は、アドレスまたはポートを変更すること、より多くの参加者を招待すること、およびメディアストリームを削除または追加することを伴うことができる。他の実行可能なアプリケーション例は、テレビ会議、ストリーミングマルチメディア配信、インスタントメッセージング、プレゼンス情報、ファイル転送等を含む。ボイスオーバーインターネットプロトコル（ボイスオーバーＩＰ、ＶｏＩＰ）は、インターネット等のインターネットプロトコル（ＩＰ）上で音声通信およびマルチメディアセッションを送達するための一群の方法、通信プロトコル、および伝送技術の一部である。頻繁に遭遇し、しばしばＶｏＩＰと同意語として使用される他の用語は、ＩＰテレフォニ、インターネットテレフォニ、ボイスオーバーブロードバンド（ＶｏＢＢ）、ブロードバンドテレフォニ、およびブロードバンド電話である。
【０１５８】
図１５は、ロボット１００を通して通信を開始して行うためのブリッジ３５０との対話を含む、電話通信例を提供する。電話ＡのＳＩＰが、ＳＩＰアプリケーションサーバに電話をかける。ＳＩＰが、ＶｏＩＰのダイヤル機能を呼び出し、ＨＴＴＰ  Ｐｏｓｔ要求をＶｏＩＰウェブサーバに送信させる。ＨＴＴＰ  Ｐｏｓｔ要求は、コールバック機能のように挙動してもよい。ＳＩＰアプリケーションサーバは、呼出音を電話Ａに送信し、通話が開始されたことを示す。ＶｏＩＰサーバは、ＰＳＴＮを介して、ＨＴＴＰ  Ｐｏｓｔ要求に含有されたコールバック番号への通話を開始する。コールバック番号は、ＳＩＰアプリケーションサーバへコールバックを送るように構成される、ＳＩＰ  ＤＩＤプロバイダ上で終了する。ＳＩＰアプリケーションサーバは、着信通話を電話Ａの発信通話と合致させ、ＯＫ応答で両方の通話に応じる。メディアセッションが、電話ＡとＳＩＰ  ＤＩＤプロバイダとの間で確立される。電話Ａは、ＶｏＩＰによって生成される人工的な呼出音を聞いてもよい。いったんコールバック行程が応答されたことをＶｏＩＰが検証すると、（ブリッジ３５０を介して）ロボット１００等の宛先へのＰＳＴＮ通話を開始する。ロボット１００は、通話に応じ、ＶｏＩＰサーバは、ＳＩＰ  ＤＩＤプロバイダからのメディアをロボット１００からのメディアと橋渡しする。
【０１５９】
図１６Ａ〜１６Ｄは、ロボット１００（またはコントローラ５００あるいは駆動システム２００等のその一部分）と、コンピューティングデバイス３１０（着脱可能、または頭部１６０に固定して取り付け可能）と、クラウド１６２０（クラウドコンピューティング用）と、ポータル１６３０とを含み得る、例となるロボットシステムアーキテクチャ１６００、１６００ａ−ｄの概略図を提供する。
【０１６０】
ロボット１００は、可動性（例えば、駆動システム２００）と、コントローラ５００上で実行される制御システム５１０（図１３）等の確実で安全かつ安定したロボット知能システムと、電源１０５と、感知システム４００と、コントローラ５００と通信しているマニピュレータを用いた随意的な操作とを含み得る、種々のコアロボット特徴を提供することができる。制御システム５１０は、頭部および速度制御、本体姿勢制御、ナビゲーション、およびコアロボットアプリケーションを提供することができる。感知システム４００は、（例えば、カメラ３２０を介した）視覚、（例えば、３−Ｄ撮像センサ４５０を介した）深度マップ撮像、衝突の検出、障害物の検出および障害物回避、および／または（例えば、慣性計測ユニット４７０を介した）慣性計測を提供することができる。
【０１６１】
コンピューティングデバイス３１０は、タブレットコンピュータ、電話または携帯情報端末等の携帯用電子デバイス、あるいはデータ処理力のないタブレットまたはディスプレイ（例えば、ロボット本体１１０内の原子スケールＰＣ用のモニタの役割を果たすタブレット）であってもよい。いくつかの実施例では、タブレットコンピュータは、ユーザインターフェースを表示し、ユーザ入力を受けとるためのタッチスクリーンを有することができる。コンピューティングデバイス３１０は、セキュリティ、薬剤コンプライアンス、テレプレゼンス、挙動の指導、ソーシャルネットワーキング、アクティブアラーム、住宅管理等のための（例えば、メモリの中に記憶され、プロセッサ上で実行可能な）ソフトウェアアプリケーションを含み得る、１つ以上のロボットアプリケーション１６１０を実行してもよい。コンピューティングデバイス３１０は、通信能力（例えば、安全な無線接続性および／またはセルラー通信）、精密アプリケーション開発ツール、音声認識、および個人または物体認識能力を提供してもよい。コンピューティングデバイス３１０は、いくつかの実施例では、Ｇｏｏｇｌｅ，  Ｉｎｃ．によって提供されているＡｎｄｒｏｉｄ、Ａｐｐｌｅ，  Ｉｎｃ．によって提供されているｉＰａｄ  ＯＳ、他のスマートフォンオペレーティングシステム、またはＲＳＳ  Ａ２等の特殊ロボットオペレーティングシステム等の相互作用／ＣＯＭＳ装備オペレーティングシステムを利用する。
【０１６２】
クラウド１６２０は、クラウドコンピューティングおよび／またはクラウド記憶装置能力を提供する。クラウドコンピューティングは、インターネットベースのコンピューティングを提供してもよく、それにより、共有サーバが、要求に応じて、資源、ソフトウェア、およびデータをコンピュータおよび他のデバイスに提供する。例えば、クラウド１６２０は、サービス抽象化層と、その上でインスタンス化されたサーバ仮想マシン上のハイパーテキスト転送プロトコルラッパとを含み得る、少なくとも１つのサーバコンピューティングデバイスを含むクラウドコンピューティングサービスであってもよい。サーバコンピューティングデバイスは、ＨＴＴＰ要求を解析し、ＨＴＴＰ応答を送信するように構成されてもよい。クラウドコンピューティングは、データおよびアプリケーションを維持するためにインターネットおよび中央遠隔サーバを使用する技術であってもよい。クラウドコンピューティングは、ユーザが、インストールを伴わずにアプリケーション１６１０にアクセスして使用し、インターネットアクセスを用いて任意のコンピュータにおける個人ファイルにアクセスすることを可能にすることができる。クラウドコンピューティングは、記憶、メモリ、処理、および帯域幅を集中させることによって、比較的効率的なコンピューティングを可能にする。クラウド１６２０は、（例えば、ＣＰＵおよびメモリ使用量を解放することによって）ロボットソフトウェア要件を低減させながら、拡張性のあるオンデマンド計算能力、記憶、および帯域幅を提供することができる。クラウド１６２０へのロボット接続性は、基地局に戻るようにロボット１００に要求することなく、ロボット動作および利用履歴の自動データ収集を可能にする。さらに、経時的な連続データ収集が、マーケティング、製品開発、および支援のためにデータマイニングすることができる、豊富なデータをもたらすことができる。
【０１６３】
クラウド記憶装置１６２２は、データが、概して第三者によってホストされる複数の仮想サーバ上に記憶される、ネットワークコンピュータデータ記憶装置のモデルであり得る。ロボット１００とクラウド１６２０との間の通信を提供することによって、ロボット１００によって収集される情報を、ウェブベースの情報ポータルを介して認定ユーザによって安全に閲覧することができる。
【０１６４】
ポータル１６３０は、個人情報、住宅状態情報、およびロボット状態情報等の情報を収集および／または提供するためのウェブベースのユーザポータルであってもよい。情報は、さらなる機能および資源をユーザおよび／またはロボット１００に提供するように、第三者情報と一体化することができる。ロボットシステムアーキテクチャ１６００は、前向きなデータ収集を促進することができる。例えば、コンピューティングデバイス３１０上で実行されるアプリケーション１６１０は、ロボット１００によって行われる動作および／または（感知システム４００を使用して）ロボット１００によって閲覧される個人または環境についてのデータおよびレポートを収集してもよい。このデータは、ロボット１００の一意の特性であり得る。
【０１６５】
いくつかの実施例では、ポータル１６３０は、ワールドワイドウェブ上の個人用ポータルウェブサイトである。ポータル１６３０は、個人化能力および他のコンテンツへの経路を提供してもよい。ポータル１６３０は、いくつかの異なるソースからサービスを提供するために、分散アプリケーション、異なる数およびタイプのミドルウェアおよびハードウェアを使用してもよい。加えて、事業用ポータル１６３０は、職場で協調動作を共有し、パーソナルコンピュータ、携帯情報端末（ＰＤＡ）、および携帯電話／移動式電話等の複数のプラットフォーム上で使用可能なコンテンツを提供してもよい。情報、ニュース、および更新が、ポータル１６３０を通して送達され得るコンテンツの実施例である。個人用ポータル１６３０は、ソーシャルネットワーク上で友達に情報を提供すること、または他者に役立ち得る外部コンテンツへのリンクを提供すること等の任意の特定のトピックに関係してもよい。
【０１６６】
「高密度データ」対「低密度データ」および「高密度特徴」対「低密度特徴」は、本明細書では、空間データセットに関して言及される。当業者がそのような用語を意味するように解釈するであろうことから意味を制限または縮小することなく、「高密度」対「低密度」は、概して、空間表現あたりの多くのデータ点対少ないデータ点を意味し、特に、以下を意味してもよい。
【０１６７】
（ｉ）２−Ｄ画像データ、または２−Ｄデータおよび範囲を含む３−Ｄ「画像」との関連で、「高密度」画像データは、ピクセルがほぼ完全に投入された、あるいは損失および／または元の画像捕捉（略非圧縮、未加工、または無劣化圧縮画像を含む）からのアーチファクタを実質的に伴わずにピクセルにラスタライズされることが可能な画像データを含み一方、「低密度」画像は、画像が量子化され、サンプリングされ、劣化圧縮され、ベクター化され、（例えば、スーパーピクセル、ノード、縁、表面、関心点、ボクセルに）セグメント化され、または別様に元の捕捉からの忠実性がかなり低減させられる、あるいは画像を表すようにピクセルにラスタライズされる際に補間されなければならないものである。
【０１６８】
（ｉｉ）２−Ｄまたは３−Ｄ特徴との関連で、「高密度特徴」は、全て検出および記録することができる、検出アプローチの解決まで、ほぼ非制約的にデータ投入される特徴、および／またはサブ画像にわたって多くの特徴（ＨＯＧ、ウェーブレット）を収集するように認識される検出器によって認識される特徴であり得、「低密度特徴」は、特徴入力、側方抑制、および／または特徴選択の数において、数が意図的に制約され得、および／または画像内の限定数の分離した点（Ｈａｒｒｉｓコーナー、縁、Ｓｈｉ−Ｔｏｍａｓｉ）を識別するように認識される検出器によって認識され得る。
【０１６９】
３−Ｄ環境構造に関して、ロボット１００は、作業表面５の周囲で動きながら、ロボット１００の周囲の情景１０の高密度画像１６１１等の画像を獲得してもよい。いくつかの実現形態では、ロボット１００は、高密度画像１６１１を取得するためにカメラ３２０および／または撮像センサ４５０（例えば、体積点群撮像デバイス）を使用する。カメラ３２０および／またはセンサ４５０と通信しているコントローラ５００は、加速度計データ追跡、走行距離計測データおよび／またはタイムスタンプとともにセンサシステム４００からの他のデータ等の情報１６１３を、高密度画像１６１１と関連付ける（例えば、高密度画像１６１１をデータで注釈またはタグを付ける）ことができる。いくつかの実施例では、ロボット１００は、高密度画像１６１５のストリーミングシーケンス１６１５を捕捉し、高密度画像シーケンス１６１５を注釈データ１６１３で注釈を付け、注釈付き高密度画像シーケンス１６１５ａを提供する。ロボット１００は、作業時間にわたって潜在的に非常に大きい画像データセット１６０３を蓄積することができるクラウド記憶装置１６２２へ、（例えば、コントローラ５００またはウェブパッド３１０を介して）定期的に画像データ１６０１を伝送してもよい。画像データ１６０１は、未加工センサデータ（例えば、点群または信号あるいは高密度画像シーケンス１６１５）または注釈付き高密度画像シーケンス１６１５ａ等のタグ付きデータ（例えば、Ｊａｖａ  Ｓｃｒｉｐｔ  Ｏｂｊｅｃｔ  Ｎｏｔａｔｉｏｎ（ＪＳＯＮ）オブジェクト等を用いた、特性または属性を有するデータオブジェクト）であってもよい。クラウドサービス１６２０は、受信した画像データ１６０１（例えば、高密度画像シーケンス１６１５または注釈付き高密度画像シーケンス１６１５ａ）を処理し、処理したデータセット１６１７をロボット１００に、例えば、コントローラ５００および／またはウェブパッド３１０に返信してもよい。ロボット１００は、情景１０の周囲で操作するために、受信した処理済みデータセット１６１７に基づいて、（例えば、コントローラ５００またはウェブパッド３１０を介して）駆動コマンド１６１９を駆動システム２００に発行してもよい。
【０１７０】
閾値期間の後、または閾値量の画像データ１６０１、１６０３がクラウド記憶装置１６２２の中で蓄積された後に、クラウドサービス１６２０は、画像データセット１６０３を処理して情景１０（環境）の高密度３−Ｄマップまたはモデル１６０５にし、次いで、この高密度３Ｄマップまたはモデル１６０５を単純化して、（例えば、２−Ｄ地形マップに類似する）各点における高さデータを伴う２−Ｄマップであり得る２−Ｄ高さマップ１６０７にする、種々のオフライン方法のうちの１つを実行してもよい。いくつかの実施例では、２−Ｄ高さマップ１６０７は、ＺデータとともにＸおよびＹ座標を有する地形マップである。各Ｘ、Ｙ座標は、１つ以上のＺ点（すなわち、高さデータ）を有してもよい。各Ｘ、Ｙ座標に対する多数のＺ点（例えば、何百または何千ものＺ点）を有し得る、高密度３−Ｄマップと違って、２−Ｄ高さマップ１６０７は、２から２０の間（例えば、１０）の点等の各Ｘ、Ｙ座標に対する閾値よりも少ない数のＺ点を有してもよい。室内のテーブルの３−Ｄマップに由来する２−Ｄ高さマップ１６０７は、テーブルに沿った各Ｘ、Ｙ座標に対するテーブル面の底面の第１のＺ点、およびテーブル面の頂面の第２のＺ点を示し得る。この情報は、ロボット１００が、テーブル面の下を通過できるかどうかを判定することを可能にする。各Ｘ、Ｙ座標に対するＺ点の連続範囲の高密度データセットからのＺ点を、検出された物体１２を示す選択数のＺ点の低密度データセットまで低減することによって、ロボット１００は、クラウドサービス１６２０によって使用される３−Ｄマップよりも比較的小さいサイズを有する、２−Ｄ高さマップ１６０７を受信することができる。これは、ひいては、ロボット１００が、クラウドサービス１６２０に利用可能な拡張性のあるメモリ空間と比較して、実用的かつ費用効率的なサイズを有するローカルメモリ上に２−Ｄ高さマップ１６０７を記憶することを可能にする。ロボット１００は、情景１０内での将来の作業のためのナビゲーションデータをロボット１００および関連コントローラ５００に提供する、２−Ｄ高さマップ１６０７をクラウド１６２０から受信する。
【０１７１】
３−Ｄマップデータ比較のさらなる方法および特徴は、その全体で参照することにより本明細書で組み込まれる、Ｒ．  Ｔｒｉｅｂｅｌ、Ｐ．  Ｐｆａｆｆ、およびＷ．  Ｂｕｒｇａｒｄによる“Ｍｕｌｔｉ−Ｌｅｖｅｌ  Ｓｕｒｆａｃｅ  Ｍａｐｓ  Ｆｏｒ  Ｏｕｔｄｏｏｒ  Ｔｅｒｒａｉｎ  Ｍａｐｐｉｎｇ  ａｎｄ  Ｌｏｏｐ  Ｃｌｏｓｉｎｇ”、ＩＥＥＥ／ＲＳＪ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｉｎｔｅｌｌｉｇｅｎｔ  Ｒｏｂｏｔｓ  ａｎｄ  Ｓｙｓｔｅｍｓ，  ２００６で開示されている。
【０１７２】
クラウド１６２０は、そうでなければロボット１００で実用的または費用効果的ではない場合がある、資源（例えば、計算、処理、メモリ等）のオンデマンド拡張をロボット１００に提供する。例えば、クラウド１６２０は、短期間のみ使用され、次いで、破棄され、次いで、第２のサイズまで再び縮小され得る、比較的大量のデータ１６０１を記憶および／または処理するための第１のサイズまで拡張する、拡張性のあるクラウド記憶装置１６２２を提供することができる。さらに、クラウド１６２０は、そうでなければロボット上で可能ではない場合がある、比較的複雑な計算または「強引な」アルゴリズムを実行するためのコンピュータ処理能力を提供することができる。コンピュータ処理能力およびメモリを拡張性のあるクラウド１６２０に移すことによって、ロボット１００は、比較的少ない計算能力およびメモリを有するコントローラ５００を使用することができ、したがって、費用効率的な解決法を提供する。さらに、ロボット１００は、処理および以降の回収のために非リアルタイムおよび非時間依存タスクをクラウド１６２０に渡しながら、障害物回避等のリアルタイムタスクを（コントローラ５００またはウェブパッド３１０上で）実行してもよい。
【０１７３】
クラウド１６２０は、画像データセット１６０３を３−Ｄ表現に処理するための１つ以上のフィルタ（例えば、バンドル調整、ＲＡＮＳＡＣ、期待値最大限化、ＳＡＭ、または他の３−Ｄ構造推定アルゴリズム）を実行してもよい。いったん処理され、高密度３−Ｄマップ１６０５が作成または更新されると、画像データセット１６０３をクラウド記憶装置１６２２から破棄し、資源を解放し、それに従ってクラウド１６２０が拡張することを可能にすることができる。結果として、ロボット１００は、クラウドベースの資源の使用により、画像データセット１６０３の記憶および処理に対処するために、内蔵記憶装置も処理も必要としない。クラウド１６２０は、処理されたナビゲーションデータ１６０１またはマップ１６０７（例えば、圧縮２−Ｄ高さマップ）をロボット１００に返信してもよく、次いで、それを比較的より単純な局所化およびナビゲーション処理に使用することができる。
【０１７４】
３−Ｄ再構築のさらなる方法および特徴は、その全体で参照することにより本明細書に組み込まれる、“３Ｄ  Ｍｏｄｅｌｓ  Ｆｒｏｍ  Ｅｘｔｅｎｄｅｄ  Ｕｎｃａｌｉｂｒａｔｅｄ  Ｖｉｄｅｏ  Ｓｅｑｕｅｎｃｅｓ：  Ａｄｄｒｅｓｓｉｎｇ  Ｋｅｙ−ｆｒａｍｅ  ｓｅｌｅｃｔｉｏｎ  ａｎｄ  ｐｒｏｊｅｃｔｉｖｅ  ｄｒｉｆｔ”  ｂｙ  Ｊ．  Ｒｅｐｋｏ  ａｎｄ  Ｍ．  Ｐｏｌｌｅｆｅｙｓ；  Ｆｉｆｔｈ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  ３−Ｄ  Ｄｉｇｉｔａｌ  Ｉｍａｇｉｎｇ  ａｎｄ  Ｍｏｄｅｌｉｎｇ，  ２００５で開示されている。
【０１７５】
床の分類に関して、ロボット１００は、情景１０の周囲でその上で機動しながら、作業面５の画像を取得してもよい。コントローラ５００は、画像を受信し、物体検出および障害物回避（ＯＤＯＡ）のための物体検出ルーチンを実行してもよい。いくつかの実現形態では、コントローラ５００は、加速度計データ追跡、走行距離計測データ、および／またはタイムスタンプとともにセンサシステム４００からの他のデータ等の情報を、画像と関連付ける（例えば、画像をデータでタグ付けする）。画像は、落下物、敷物の房、敷物の上の靴下等を捕捉し得る。前の実施例のように、ロボット１００は、以降のバッチ処理のために稼働しながら、クラウド記憶装置１６２２まで画像データ１６０１をストリーム配信することができる。ロボットが望ましくない事象（すなわち、偶発的な衝突）に遭遇したとき、危険の前のデータ瞬間が、学習アルゴリズムのために識別されてもよいように、特別な「危険」タグがデータセットに挿入される。いったん注釈付き画像データセットおよび関連タグ１６０３が蓄積されると（可能性として多くの他のロボット１００からのデータセットとともに）、並列クラウドホスト１６２０が、例えば、時間的に先行する危険タグである、実環境の多くの画像からの「危険画像」部類を算出する、監視された学習アルゴリズムを使用して、注釈付き画像データセット１６０３を処理するように起動されてもよい。いったん危険画像部類モデル１６０９の訓練が完了すると、そのモデル１６０９のパラメータ（少量のデータ）を、多くの異なるロボット１００にダウンロードして戻すことができる。したがって、ロボット隊全体１００が、オンラインで環境の要素を学習することができる。この方法に適用可能な学習方法は、遺伝的アルゴリズム、神経回路網、およびサポートベクターマシンを含む。これらの全ては、複雑すぎる場合があり得、非常に多くの記憶を占めるので低費用ロボット１００ではオンラインで（すなわち、ローカルロボットプロセッサ上で）作動することができない場合があるが、クラウド１６２０は、「完全に訓練された」分類子１６２５へのアクセスをロボット隊に提供する。
【０１７６】
「分類子」１６２５は、例えば、誤差関数を最小限化し、費用関数を最適化／最大限化し、または訓練データを使用して性能を別様に向上させるために、通常は反復訓練アルゴリズムを採用する、マシン学習アルゴリズムである。典型的には、アルゴリズムは、値が訓練データから学習される、いくつかのパラメータを有する。３つのタイプとして、クラスタ化または次元退縮を介した、監視された回帰、監視された分類、および監視されていない分類を含む。分類子１６２５の実施例は、種々のタイプおよびカーネルの（勾配降下または他の費用関数最小限化技法を用いた）サポートベクターマシン（ＳＶＭ）、単純ベイズ分類子、ロジスティック回路、アダブースト、Ｋ最近傍（「Ｋ−ＮＮ」）および／またはＫ−ＮＮ回帰、神経回路網、無作為な森林、および線形モデルである。「分類子」は、ベクター、マトリクス、「記述子」、または他のデータセットによって表され得る、種々のアルゴリズム、例えば、配向勾配のヒストグラム（ＨＯＧ）、形状コンテキストヒストグラム（ＳＣＨ）、カラーパッチ、質感パッチ、輝度パッチ、ＳＩＦＴ、ＳＵＲＦ、または同等物からのスケール不変特徴記述子、ＭＳＥＲのようなアフィン不変記述子、画像内の標識されたスーパーピクセルまたはセグメント、ハフ変換、またはＲＡＮＳＡＣ線検出によって識別され得る「特徴」、およびこれと組み合わせ可能な他の特徴を分類する。
【０１７７】
分類子１６２５は、写真のみから、ロボットシステムがそれらの環境内の危険を回避するのに役立つように、オンラインで実行することができる。いったんモデルパラメータが決定されると、クラウド記憶装置１６２２の中に記憶された画像データセット１６０３を破棄することができる。この実施例は、前の実施例と組み合わせることができ、環境の３−Ｄ構造の判定が、分類アルゴリズムを訓練するための横断可能な領域の識別を可能にする。１つの学習技術例は、その全体で参照することにより本明細書に組み込まれる、“Ｌｏｎｇ−Ｔｅｒｍ  Ｌｅａｒｎｉｎｇ  Ｕｓｉｎｇ  Ｍｕｌｔｉｐｌｅ  Ｍｏｄｅｌｓ  Ｆｏｒ  Ｏｕｔｄｏｏｒ  Ａｕｔｏｎｏｍｏｕｓ  Ｒｏｂｏｔ  Ｎａｖｉｇａｔｉｏｎ，”  ｂｙ  Ｍｉｃｈａｅｌ  Ｊ．  Ｐｒｏｃｏｐｉｏ  ，  Ｊａｎｅ  Ｍｕｌｌｉｇａｎ  ，  ａｎｄ  Ｇｒｅｇ  Ｇｒｕｄｉｃ，  ２００７  ＩＥＥＥ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｉｎｔｅｌｌｉｇｅｎｔ  Ｒｏｂｏｔｓ  ａｎｄ  Ｓｙｓｔｅｍｓで開示されている。
【０１７８】
ストリーミングは、概して、（非常に高いデータレートで起こることができる）バッチ処理タスクをディスパッチすること、または遅延した方式で画像を浸透させることと区別されるような、パケットが送信機と受信機との間で並べ替えられるか否かにかかわらず、バッファリングを伴って、または伴わずに、画像シーケンスがリアルタイムで捕捉された順序および速度にいくらか関係して、画像シーケンスを伝送することを意味する。「ストリーミング」という用語は、実世界の帯域幅、処理、および記憶制約に基づいて、異なるデータがロボットシステムのエンティティ内および間で移動させられる速度を区別するように、「バッチ処理タスクをディスパッチすること」と区別される。
【０１７９】
図１６Ｄおよび１６Ｅを参照すると、実用的な費用レベルでのロボット１００は、ロボットの帯域幅、計算、および記憶に制限を有し得る。ローカルで処理されたデータ１６１３（すなわち、ロボットセンサシステム４００からのデータ）で画像１６１１に注釈を付けることによって、ロボット１００は、極めて低頻度で（例えば、毎秒何回もの代わりに、数秒ごとに１回）画像１６１１、高密度画像シーケンス１６１５、１６１５ａ、または画像データ１６０１を送信し、データの連続ストリーミングと比較して、アップストリーム帯域幅を劇的に縮小することができる。加えて、コントローラ５００および／またはウェブパッド３１０は、無線接続性がアクセス不可能であるときに、画像１６１１および注釈データ１６１３をロボット１００上に記憶することができ、無線接続性がアクセス可能であるときに伝送することができる、ローカルキャッシュ（メモリ）を含むことができる。バッファリングは、ロボット１００が、例えば、信号受信が良くない部屋の中で、部屋相当のデータを収集し、隣接する部屋の中等で、いったん無線接続性が再び利用可能になると、完全データセット１６０１、１６０３を依然として伝送することを可能にする。したがって、ロボット１００上のデータ管理が、種々の通信環境に適応するために必要であり得る。
【０１８０】
可動式ロボットが、情景１０（例えば、家庭、オフィス等）の全体を通して導かれ、方向付けられ、または自動的にナビゲートするにつれて、１つ以上のカメラ３２０および／または撮像センサ４５０は、ロボット１００の軌道に沿ったロボット１００の姿勢（位置および配向）において取得される視界にそれぞれ対応する、画像１６１１の１つ以上のシーケンス１６１５を取得してもよい。（例えば、コントローラ５００の）タイマーは、各画像１６１１の基準タイムスタンプを提供し、タイムスタンプは、位置、局所化、移動速度または加速、センサベースの配向等に対応する、注釈１６１３と関連付けられてもよい。少なくともいくつかの画像１６１１は、情報で注釈を付けられ、全ての画像１６１１は、タイムスタンプ、あるいはロボット状態、画像状態等を反映する他のメタデータで注釈を付けられてもよい。画像１６１１は、何らかのリアルタイム捕捉速度で捕捉することができ、それは定期的である必要がない（例えば、画像１６１１は、例えば、処理可用性、帯域幅可用性、時刻、タスク、現在の画像内の目的とする特徴の密度等に基づいて、適応的速度で捕捉されてもよい）。
【０１８１】
カメラ３２０および／または撮像センサ４５０は、ハードウェアエンコーダ、メモリに利用可能な高速バス、内蔵プロセッサ、および比較的高速で捕捉された画像１６１１を記憶および蓄積するための記憶装置（例えば、フラッシュメモリまたはハードディスクドライブ）と通信していてもよい。ロボット１００上で支持可能であるよりも多くの資源をそれ自体が消費しない、画像分類子１６２５の一式のパラメータ等のモデルを作成するように、１つ以上のマシン視覚アルゴリズムを、記憶した画像１６１１に適用することができる。しかしながら、克服するべきいくつかの障害がある。
【０１８２】
（１）典型的には、モデル化される特徴を表す、少なくともいくつかの訓練データ（例えば、画像１６１１）または注釈１６１３の識別が、大幅な画像圧縮前に適用されるべきである。
【０１８３】
（２）短期間でモデル化を完了するように、クラウドサービスでインスタンス化される比較的大きい分散コンピュータインフラストラクチャに多くのアルゴリズムおよびヒューリスティックスを拡張および適合することができるが、これは、公衆インターネットにわたって標的コンピュータインフラストラクチャに画像１６１１を到達させることを必要とする。
【０１８４】
（３）比較的大きいデータセットを輸送するために利用可能な帯域幅は、（ｉ）典型的に他のトラフィックで占有される無線帯域幅を用いて可動式であるロボット１００、および（ｉｉ）アップストリーム方向で帯域幅が制限され得るインターネットアクセスによって制限される。
【０１８５】
少なくともこれらの障害を克服するために、高密度画像１６１１を、ロボット１００からローカルサーバ１６４０へ（例えば、無線で）伝達することができ、それは、リアルタイム捕捉速度よりも比較的遅いローカル送信速度での記憶装置との有線ネットワークであってもよい。ローカルサーバ１６４０は、高密度画像１６１１をバッファリングし、注釈１６１３で注釈を付けることができる。さらに、ローカルサーバ１６４０は、クラウドサービス１６２０への以降の伝達のために注釈付き高密度画像シーケンス１６１５ａを蓄積してもよい。ローカルサーバ１６４０は、リアルタイム捕捉速度よりも遅いクラウド送信速度で、または高速でクラウドコンピューティングインフラストラクチャによってサービス提供するために好適な速度で、画像データ１６０１（例えば、高密度画像１６１１、高密度画像シーケンス１６１５、および／または注釈付き高密度画像シーケンス１６１５ａ）をクラウドサービス１６２０に伝達することができる。
【０１８６】
クラウドサービス１６２０は、注釈付き高密度画像シーケンス１６１５ａに由来し、それを表すが、例えば、いずれの未加工画像データも除外する、簡略化データセット１６１７を提供するように、例えば、画像データ１６０１上（例えば、高密度画像１６１１および関連注釈１６１３上）の分類子１６２５を訓練するようにインスタンスを処理する十分に高速、並列、および／または大きい画像セット分類子１６２５を弾性的にディスパッチすることによって、受信した画像データ１６０１を処理することができる。クラウドサービス１６２０は、例えば、処理間隔後に、簡略化したデータセット１６１７を、ロボット１００と通信するローカルサーバ１６４０に、またはロボット１００に直接伝送することができる。データセット１６１７の要素は、情景／環境１０に対してロボット１００を機動させるようにコマンドを駆動システム２００に発行するために、ロボット１００によって使用されてもよい。例えば、多くのロボットのうちの１つの画像データ１６０１上で訓練された「コード」または「靴下」または「摂取可能な破片」分類子１６２５が、画像パターンを識別し、ハザードから離れて、または目的とする領域に向かってのいずれかで、ロボット１００を方向付けるように、ロボット１００に返信されるパラメータとともに使用されてもよい。
【０１８７】
無線接続または消費者／商業非対称ブロードバンドサービスが、伝送方向に帯域幅制限されるときに、高密度画像シーケンス１６１５を大型記憶装置デバイスの中にバッファリングし、パケット交換、並べ替え、補正、サービスの質等を利用して、収集時間（すなわち、高密度画像シーケンス１６１５を収集する期間）よりも比較的長い期間にわたってアップロードすることができる。例えば、アップロードは、一晩、ロボットの軌道が分単位であった数時間の期間にわたって、ロボットの軌道が時間単位であった数日の期間にわたって等で起こってもよい。
【０１８８】
ローカルサーバ１６４０またはクラウドサービス１６２０上で、リアルタイム捕捉速度で捕捉される、可動式ロボット１００の軌道に沿った環境の視野のシーケンスを表す高密度画像１６１１を、ロボット１００のロボットソフトウェアプラットフォームに関係するサービス１６２３によって受信することができる。クラウドゲートウェイとも呼ばれる、サービス１６２３は、ロボットソフトウェアプラットフォームのエージェントであってもよく、または第三者によって独立して制御されてもよい。クラウドゲートウェイ１６２３は、高密度画像シーケンス１６１５を、（例えば、注釈内容に応じて）クラウドサービス１６２０内の１つ以上の仮想サーバ１６２１としてインスタンス化／整備される、アルゴリズム、分類子１６２５、およびアプリケーションプラットフォームインスタンスと合致してもよく、高密度画像シーケンス１６１５および任意の注釈１６１３を、分類子１６２５に対する訓練データとしてパッケージ化する。代替として、クラウドゲートウェイ１６２３は、ロボット１００、ローカル基地局等からの事前パッケージ化された情報と同じ情報を処理し、適応的および弾性クラウドサービスアプリケーションプログラミングインターフェース（ＡＰＩ）（例えば、Ａｍａｚｏｎ  ＥＣ２）に準拠するような他のインスタンスを弾性的に追加する、十分な所定の仮想サーバインスタンス１６２１のディスパッチを単純に始めてもよい。ローカルサーバ１６４０、クラウドゲートウェイ１６２３、クラウドサービスマネージャ、または初期仮想プロセッサインスタンス１６２１は、受信した高密度画像シーケンス１６１５、１６１５ａの中の高密度画像１６１１のうちの少なくともいくつかのそれぞれを、高密度画像シーケンス１６１５、１６１５ａに由来し、かつそれを表すデータセット１６１７まで低減させるというバッチ処理タスクをディスパッチする。必要に応じて、新しい仮想プロセッサインスタンス１６２１を整備／インスタンス化することができる（一度に全て、または訓練タスクがより複雑になる際のいずれかで）。
高密度画像１６１１および訓練されたモデル１６０９は、長期記憶インスタンスで保つことができる。訓練された分類子１６２５またはモデル１６０９のパラメータは、未加工画像１６１１のシーケンスを除外して、ロボット１００に返信される（例えば、直接、またはロボット１００のエージェントを介して）。
【０１８９】
図１６Ｆは、ロボット１００をナビゲートする方法のための動作の例となる配設１６００ｆを提供する。本方法は、リアルタイム捕捉速度で、ロボット１００の運動の軌道に沿ったロボット１００の周囲の情景１０の高密度画像１６１１のストリーミングシーケンス１６１５を捕捉すること１６０２ｆと、注釈１６１３を高密度画像１６１１のうちの少なくともいくつかと関連付けること１６０４ｆとを含む。本方法はまた、リアルタイム捕捉速度よりも遅い送信速度で、高密度画像１６１１および注釈１６１３を遠隔サーバ１６２０に送信すること１６０６ｆと、処理時間間隔後に遠隔サーバ１６２０からデータセット１６０７、１６１７を受信すること１６０８ｆとを含む。データセット１６０７、１６１７は、高密度画像シーケンス１６１５、１６１５ａおよび対応する注釈１６１３の少なくとも一部分に由来し、かつそれを表すが、高密度画像１６１１のシーケンス１６１５、１６１５ａの未加工画像データを除外する。本方法は、受信したデータセット１６０７、１６１７に基づいて、情景１０に対してロボット１００を移動させること１６１０ｆを含む。
【０１９０】
本方法は、高密度画像１６１１および注釈１６１３をローカルサーバおよびバッファ１６４０（図１６Ｄおよび１６Ｅ）に送信し、次いで、リアルタイム捕捉速度よりも遅い送信速度で、高密度画像１６１１および注釈１６１３を遠隔サーバ１６２０に送信することを含んでもよい。ローカルサーバおよびバッファ１６４０は、ロボット１００の比較的短い範囲内（例えば、２０〜１００フィートまたは無線通信範囲内）にあってもよい。例えば、ローカルおよびバッファ１６４０は、ロボット１００を収容するユーザの家庭内のパーソナルコンピュータ、またはロボット１００を収容するビルのローカルサーバであってもよい。
【０１９１】
いくつかの実現形態では、注釈１６１３は、高密度画像１６１１のうちの少なくともいくつかに対応する絶対時間基準等のタイムスタンプと、走行距離計測データ、加速度計データ、傾斜データ、および角速度データのうちの少なくとも１つを含み得る、姿勢関連センサデータとを含む。注釈１６１３は、ロボットの危険応答１００（例えば、崖を回避する、閉じ込め状況から脱出する等）に対して時間間隔内に捕捉される、危険事象を反映する高密度画像１６１１に関連付けることができる。さらなる実施例では、注釈１６１３を関連付けること１６０４ｆは、キーフレーム識別子を高密度画像１６１１のサブセットと関連付けることを含んでもよい。キーフレーム識別子は、キーフレーム識別子の特性（例えば、フラグ、タイプ、グループ、動き、静止等）に基づいて、高密度画像１６１１の識別を可能にしてもよい。
【０１９２】
注釈１６１３は、高密度画像１６１１のストリーミングシーケンス１６１５の高密度画像１６１１の間で追跡される特徴の構造復元および運動復元に由来する、低密度の一式の３−Ｄ点を含んでもよい。低密度の一式の３−Ｄ点は、ロボット１００上の体積点撮像デバイス４５０に由来し得る。さらに、注釈１６１３は、低密度の一式の３−Ｄ点のうちの個々の３−Ｄ点に対するカメラの姿勢等のカメラパラメータを含んでもよい。情景１０の横断可能および横断不可能領域の標識が、高密度画像１６１１に対する注釈１６１３であってもよい。
【０１９３】
データセット１６０７、１６１７は、高密度画像１６１１から抽出される、２−Ｄ高さマップ１６０７等の１つ以上の質感マップ、および／または情景１０の高密度画像１６１１内の特徴を表す地形マップ１６０７を含んでもよい。データセット１６０７、１６１７は、情景１０の捕捉される新しい高密度画像１６１１内の特徴を分類するための訓練された分類子１６２５を含んでもよい。
【０１９４】
図１６Ｇは、可動式ロボット環境データを抽象化する方法のための動作の例となる配設１６００ｇを提供する。本方法は、ある受信速度で、可動式ロボット１００からロボット環境１０の高密度画像１６１１のシーケンス１６１５を受信すること１６０２ｇを含む。
高密度画像１６１１は、リアルタイム捕捉速度で可動式ロボット１００の運動の軌跡に沿って捕捉される。受信速度は、リアルタイム捕捉速度よりも遅い。本方法はまた、高密度画像１６１１のシーケンス１６１５の中の高密度画像１６１１のうちの少なくともいくつかと関連付けられる注釈１６１３を受信すること１６０４ｇと、高密度画像１６１１のうちの少なくともいくつかの中の高密度データを、高密度画像１６１１のシーケンス１６１５の少なくとも一部分を表すデータセット１６０７、１６１７まで低減させるためのバッチ処理タスクをディスパッチすること１６０６ｇとを含む。本方法はまた、データセット１６１７を可動式ロボット１００に伝送すること１６０８ｇも含む。データセット１６０７、１６１７は、高密度画像１６１１のシーケンス１６１５の未加工画像データを除外する。
【０１９５】
いくつかの実現形態では、バッチ処理タスクは、高密度画像１６１１のシーケンス１６１５を処理してロボット環境１０の高密度３−Ｄモデル１６０９にすることと、高密度３−Ｄモデル１６０９を処理して２−Ｄ位置および床面Ｇからの少なくとも１つの高さの座標系用の地形モデル１６０７にすることとを含む。いくつかの実施例では、地形モデル１６０７は、２−Ｄ位置および床面Ｇからの複数の占有および非占有高さ境界の座標系のためのものである。例えば、テーブルの下を通過することができるかどうかをロボット１００が判定することができるように、テーブルを有する部屋が、関連テーブル面の上限および下限高さを示すデータを提供する場合の地形モデル１６０７である。
【０１９６】
バッチ処理タスクは、（例えば、クラウド１６２０が、任意の環境内の目的とする特徴を識別するための分類子１６２５を構築することができるように）複数のロボット環境１０に対応する高密度画像シーケンス１６１５、１６１５ａを蓄積することを含んでもよい。したがって、バッチ処理タスクは、高密度画像１６１１のシーケンス１６１５上での複数の分類子１６２５および／または１つ以上の分類子１６２５を訓練することを含んでもよい。例えば、バッチ処理タスクは、危険事象を反映する注釈１６１３を、可動式ロボット１００の危険応答に対して時間間隔内に捕捉される高密度画像１６１１と関連付けることと、例えば、分類子１６２５のモデルパラメータのデータセット６０３、１６０７、１６１７を提供するように、関連危険事象注釈１６１３および対応する高密度画像１６１１を訓練データとして使用して、危険関連高密度画像１６１１の分類子１６２５を訓練することとを含んでもよい。分類子１６２５は、分類のための少なくとも１つの超平面を構築する、少なくとも１つのサポートベクターマシンを含んでもよく、モデルパラメータは、データセット１６０３、１６０７、１６１７を危険関連分類に分類することが可能な訓練された超平面を画定する。モデルパラメータは、サポートベクターマシンのカーネルを画定する十分なパラメータと、ソフトマージンパラメータとを含んでもよい。
【０１９７】
いくつかの実施例では、バッチ処理タスクは、処理される高密度画像シーケンス１６１５、１６１５ａのスケールに比例する、拡張性のある複数の仮想プロセス１６２１をインスタンス化することを含む。仮想プロセス１６２１のうちの少なくともいくつかは、ロボット１００へのデータセット１６０７、１６１７の伝送後に解放される。同様に、バッチ処理タスクは、記憶される高密度画像シーケンス１６１５、１６１５ａのスケールに比例する、拡張性のある複数の仮想記憶１６２２をインスタンス化することを含んでもよい。
仮想記憶１６２２のうちの少なくともいくらかは、ロボット１００へのデータセット１６０７、１６１７の伝送後に解放される。また、バッチ処理タスクは、可動式ロボット１００への地理的近接性および／または複数の可動式ロボット１００からのネットワークトラフィックのうちの１つに従って、拡張性のある複数の仮想サーバ１６２１を分散させることを含んでもよい。
【０１９８】
２０１１年９月２９日に公開された、Ｃｅｒｔａｉｎらの米国特許公開第２０１１／０２３８８５７号「Ｃｏｍｍｉｔｔｅｄ  Ｐｒｏｃｅｓｓｉｎｇ  Ｒａｔｅｓ  ｆｏｒ  Ｓｈａｒｅｄ  Ｒｅｓｏｕｒｃｅｓ」が、その全体で参照することにより本明細書に組み込まれる。Ｃｅｒｔａｉｎらの説明されたクラウド処理インフラストラクチャは、これと組み合わせ可能な１つの種、例えば、クラウドゲートウェイ１６２３の種または部分である管理システム２０２またはノードマネージャモジュール１０８、弾性処理サーバ１６２１の種または部分であるプログラム実行サービス（ＰＥＳ）および／または仮想マシン１１０、ならびに長期記憶インスタンス１６２２の種または部分であるアーカイブ記憶装置２２２またはブロックデータサービス（ＢＤＳ）２０４またはアーカイブマネージャ２２４である。
【０１９９】
図１６Ｈは、例となる可動式ヒューマンインターフェースロボットシステムアーキテクチャ１６００ｄの概略図である。示される実施例では、アプリケーション開発者１６０２が、クラウド１６２０と通信しているウェブパッド３１０またはコンピューティングデバイス１６０４（例えば、デスクトップコンピュータ、タブレットコンピュータ、可動式デバイス等）上で実行可能なアプリケーション１６１０を生成するように、アプリケーション開発ツール１６４０にアクセスし、使用することができる。例となるアプリケーション開発ツール１６４０は、統合開発環境１６４２、ソフトウェア開発キット（ＳＤＫ）ライブラリ１６４４、開発またはＳＤＫツール１６４６（例えば、ソフトウェアコードのモジュール、シミュレータ、クラウド利用モニタおよびサービスコンフィギュレータ、およびクラウドサービス拡張アップローダ／ディベロッパ）、および／またはソースコード１６４８を含んでもよいが、それらに限定されない。ＳＤＫライブラリ１６４４は、企業開発者１６０２が、アプリケーション１６１０でロボット１００のマッピング、ナビゲーション、スケジューリング、および会議技術を活用することを可能にしてもよい。例となるアプリケーション１６１０は、マップビルダ１６１０ａ、マッピングおよびナビゲーションアプリケーション１６１０ｂ、テレビ会議アプリケーション１６１０ｃ、スケジューリングアプリケーション１６１０ｄ、および利用アプリケーション１６１０ｅを含んでもよいが、それらに限定されない。アプリケーション１６１０は、クラウド１６２０内の１つ以上のアプリケーションサーバ１６５０（例えば、クラウド記憶装置１６２２）上に記憶されてもよく、クラウドサービスアプリケーションプログラミングインターフェース（ＡＰＩ）を通してアクセスすることができる。クラウド１６２０は、１つ以上のデータベース１６６０と、シミュレータ１６７０とを含んでもよい。ウェブサービスＡＰＩは、ロボット１００とクラウド１６２０と（例えば、アプリケーションサーバ１６５０、データベース１６６０、およびシミュレータ１６７０と）の間の通信を可能にする。外部システム１６８０も、例えば、アプリケーション１６１０にアクセスするように、クラウド１６２０と相互作用してもよい。
【０２００】
いくつかの実施例では、マップビルダアプリケーション１６１０ａは、走行距離計測、全地球測位システム、および／または中間地点ナビゲーションによって提供されるような基準座標を使用して、カメラ３２０または３−Ｄ撮像センサ４５０によって捕捉される写真またはビデオをともに連結することによって、ロボット１００の周囲の環境のマップ１７００（図１７Ａ）を構築することができる。マップは、環境の屋内または屋外の街路または経路表示を提供してもよい。モールおよびショッピングセンターについては、マップは、さらなるリンクした画像またはビデオおよび／または販促情報とともに基準位置として印付けられた各店を伴う、モールの全体を通した経路巡回を提供することができる。マップおよび／または構成画像あるいはビデオを、データベース１６６０の中に記憶することができる。
【０２０１】
アプリケーション１６１０は、各ユーザエンティティの必要性に基づいてカスタマイズおよび拡張され得る、クラウドサービスとシームレスに通信してもよい。企業開発者１６０２は、アプリケーション１６１０によって使用するための外部専有システムからデータをフェッチするクラウド側拡張をクラウド１６２０にアップロードしてもよい。シミュレータ１６７０は、開発者１６０２が、ロボット１００または関連ロボットハードウェア無しで企業規模アプリケーションを構築することを可能にする。ユーザは、クラウドサービスを追加する、または無効にするために、ＳＤＫツール１６４６（例えば、利用モニタおよびサービスコンフィギュレータ）を使用してもよい。
【０２０２】
図１７Ａおよび１７Ｂを参照すると、いくつかの状況では、ロボット１００が、情景１０および／または作業領域５内の物体１２の占領マップ１７００を受信し、またはロボットコントローラ５００が、経時的に撮像センサ４５０（例えば、第２の３−Ｄ画像センサ４５０ｂ）から受信される画像データおよび／または画像深度データに基づいて占領マップ１７００を生成する（および更新してもよい）。同時局所化およびマッピング（ＳＬＡＭ）は、（演繹的知識を用いることなく）未知の環境または情景１０内でマップ１７００を構築するために、または同時にその現在の位置を追跡しながら、（所与のマップからの演繹的知識を用いて）既知の環境内でマップ１７００を更新するために、ロボット１００によって使用され得る技法である。マップ１７００は、環境内の位置を判定するために、計画およびナビゲーションのための環境を描写するために使用されてもよい。マップ１７００は、ある形態の知覚から取得される情報を記録し、それを現在の一式の知覚と比較することによって、実際の位置の評価を支援する。位置の評価を補助する際のマップ１７００の利益は、現在の知覚の精度および質が減少するにつれて増加する。マップ１７００は、概して、マップ１７００が提供または生成される時の状態を表す。これは、必ずしもマップ１７００が使用される時の環境の状態とは一致しない。他の局所化技法は、単眼視覚ＳＬＡＭ（ＭｏｎｏＳＬＡＭ）、およびＭｏｎｏＳＬＡＭ解決法に拡張カルマンフィルタ（ＥＫＦ）を使用する実現形態を含む。
【０２０３】
コントローラ５００は、捕捉された画像の中の局所特徴を検出して表すように、スケール不変特徴変換（ＳＩＦＴ）を実行してもよい。画像内の任意の物体１２について、物体１２の「特徴説明」を提供するように、物体１２上の関心のある点を抽出することができる。次いで、訓練画像から抽出される、この説明は、多くの他の物体を含有する試験画像内で物体１２の場所を特定しようとするときに、物体１２を識別するために使用することができる。信頼性のある認識を行うために、訓練画像から抽出される特徴は、画像スケール、雑音、および照明の変化の下でさえも検出可能であることが重要である。そのような点は、通常、物体の縁等の画像の高コントラスト領域上に位置する。物体認識および検出については、ロボット１００は、位置、スケール、および回転に不変であり、アフィン変換（スケール、回転、剪断、および位置の変化）および照明の変化にロバストである、際立った主要点を見出すために、ＳＩＦＴを使用してもよい。いくつかの実現形態では、ロボット１００は、（例えば、異なる条件下で、異なる角度から等）情景１０または物体１２の複数の画像を（カメラ３２０および／または撮像センサ４５０を使用して）捕捉し、マトリクスの中等に画像を記憶する。ロボット１００は、比較、フィルタ等によって、新しい画像を識別するように、記憶された画像にアクセスすることができる。例えば、ＳＩＦＴ特徴を入力画像から取得し、（以前に捕捉された）訓練画像から取得されるＳＩＦＴ特徴データベースに合致させることができる。特徴合致は、ユークリッド距離ベースの最近傍アプローチを通して行うことができる。同じ物体に属し、クラスタ化プロセスで除外された合致を拒絶する、これらの特徴をクラスタ化することによって、物体識別を増加させるために、ハフ変換が使用されてもよい。ＳＵＲＦ（加速ロバスト特徴）が、ロバストな画像検出器および記述子であってもよい。
【０２０４】
情景１０（例えば、ロボット１００の周囲の環境）内のロボット１００の局所化に加えて、ロボット１００は、センサシステム４００を使用して、接続空間（例えば、作業領域５）内の他の点に移動してもよい。ロボット１００は、ロボット１１０の周囲の近隣領域をマップし、比較的近い物体１２を判別するための（例えば、図１および３に示されるように胴部１４０の裏面上に載置された）短距離型の撮像センサ４５０ａと、ロボット１００の周囲の比較的広い領域をマップし、比較的遠く離れた物体１２を判別するための（例えば、図１および３に示されるように頭部１６０上に載置された）長距離型の撮像センサ４５０ｂとを含んでもよい。ロボット１００は、情景１０内の既知の物体１２ならびに塞ぎ１６（例えば、物体１２が現在の視点から確認されるべきである、または確認されるべきではないが、確認することができない場所）を識別するために、占領マップ１７００を使用することができる。ロボット１００は、情景１０内の塞ぎ１６または新しい物体１２を登録し、塞ぎ１６の中の新しい物体１２または任意の物体１２の位置を検証するように、塞ぎ１６または新しい物体１２を迂回しようとすることができる。または、占領マップ１７００を使用して、ロボット１００は、情景１０内の物体１２の移動を判定して追跡することができる。例えば、撮像センサ４５０、４５０ａ、４５０ｂは、情景１０内の物体１２のマップされた位置を検出しない間に、情景１０内の物体１２の新しい位置１２´を検出してもよい。ロボット１００は、物体１２の位置を検証するように、古い物体１２の位置を塞ぎ１６として登録し、塞ぎ１６を迂回しようとすることができる。ロボット１００は、新しい画像深度データを以前の画像深度データ（例えば、マップ１７００）と比較し、情景１０内の物体１２の位置の信頼レベルを割り当ててもよい。情景１０内の物体１２の位置信頼レベルは、閾値期間後にタイムアウトすることができる。センサシステム４００は、センサシステム４００の各撮像サイクル後に、各物体１２の位置信頼レベルを更新することができる。いくつかの実施例では、塞ぎ検出期間（例えば、１０秒未満）内の検出される新しい塞ぎ１６（例えば、占領マップ１７００からの欠落した物体１２）は、情景１０内の「生きている」物体１２の（例えば、移動物体１２）を表してもよい。
【０２０５】
いくつかの実現形態では、情景１０内の検出された第１の物体１２ａの後ろに位置する、目的とする第２の物体１２ｂが、情景１０内の塞ぎ１６として最初は未検出されない場合がある。塞ぎ１６は、撮像センサ４５０、４５０ａ、４５０ｂによって容易に検出可能または視認可能ではない情景１０内の領域であり得る。示される実施例では、ロボット１００のセンサシステム４００（例えば、または撮像センサ４５０、４５０ａ、４５０ｂ等のその一部分）は、情景１０を視認するように、視野角θV（０度から３６０度の間の任意の角度であり得る）を伴う視界４５２を有する。いくつかの実施例では、撮像センサ４５０が、３６０度の視野角θV用の全方向性光学素子を含む一方で、他の実施例では、撮像センサ４５０、４５０ａ、４５０ｂは、３６０度未満（例えば、約４５度から１８０度の間）の視野角θVを有する。視野角θVが３６０度未満である実施例では、撮像センサ４５０、４５０ａ、４５０ｂ（またはその構成要素）は、３６０度の視野角θVを達成するように、ロボット本体１１０に対して回転してもよい。いくつかの実現形態では、撮像センサ４５０、４５０ａ、４５０ｂまたはその部分は、ロボット本体１１０および／または駆動システム２００に対して移動することができる。また、第２の物体１２ｂを検出するために、ロボット１００は、第２の物体１０ｂの検出を可能にする、視点を取得するように、１つ以上の方向に情景１０の周囲で駆動することによって（例えば、作業表面５上で平行移動および／または回転することによって）撮像センサ４５０、４５０ａ、４５０ｂを移動させてもよい。ロボット移動あるいは撮像センサ４５０、４５０ａ、４５０ｂまたはその部分の独立した移動は、単眼困難性も解決し得る。
【０２０６】
信頼レベルが、作業領域５内の物体１２の検出された位置または追跡された移動に割り当てられてもよい。例えば、占領マップ１７００を生成または更新すると、コントローラ５００は、マップ１７００上の各物体１２の信頼レベルを割り当ててもよい。信頼レベルは、マップ１７００上で示されるように、物体１２が作業領域５内に実際に位置する確率に正比例することができる。信頼レベルは、物体１２を検出するために使用されるセンサの数およびタイプ等のいくつかの要因によって判定され得る。例えば、接触センサ４３０は、接触センサ４３０がロボット１００による物体１２との実際の接触を感知すると、最高レベルの信頼を提供し得る。撮像センサ４５０は、近接センサ４３０より高くあり得る、異なるレベルの信頼を提供し得る。いずれか１つのセンサよりも相対的に高いレベルの信頼を提供するために、センサシステム４００の１つよりも多くのセンサから受けとられるデータを集約または蓄積することができる。
【０２０７】
走行距離計測は、位置の経時的な変化（移動距離）を推定するために、アクチュエータの移動からのデータを使用するものである。いくつかの実施例では、車輪回転、したがってロボット１００による移動距離を計測するように、駆動システム２００上にエンコーダが配置される。コントローラ５００は、物体位置の信頼レベルの評価に、走行距離計測を使用してもよい。いくつかの実現形態では、センサシステム４００は、ロボット１００による移動距離を感知するための走行距離計および／または角速度センサ（例えば、ジャイロスコープまたはＩＭＵ４７０）を含む。ジャイロスコープは、角運動量保存の原理に基づき、配向を計測または維持するためのデバイスである。コントローラ５００は、作業領域５内および／または占領マップ１７００上のロボット１００の位置を判定するために、走行距離計および／または角速度センサからそれぞれ受信される走行距離計測および／またはジャイロ信号を使用してもよい。いくつかの実施例では、コントローラ５００は、デッドレコニングを使用する。デッドレコニングとは、以前に判定された位置に基づいて現在の位置を推定し、既知または推定速度に基づいて、経過時間および経過にわたってその位置を前進させるプロセスである。（例えば、走行距離計測、ジャイロスコープ等を介して）作業領域５内のロボット位置、ならびに（センサシステム４００を介して）作業領域５内の１つ以上の物体１２の感知された位置を知ることによって、コントローラ５００は、占領マップ１７００上および作業領域５内の物体１２の位置または移動の（走行距離計測またはジャイロスコープを使用しないものと対比した）相対的により高い信頼レベルを評価することができる。
【０２０８】
車輪運動に基づく走行距離計測は、電気的にノイズが多くなり得る。コントローラ５００は、駆動システム２００の車輪ベースの走行距離計測から独立して、視覚走行距離計測を通してロボット運動を算出するために、撮像センサ４５０から、ロボット１００の周囲の環境または情景１０の画像データを受信してもよい。視覚走行距離計測は、撮像センサ４５０の運動を判定するために、オプティカルフローを使用することを必要としてもよい。コントローラ５００は、車輪ベースの走行距離計測におけるいかなるエラーも修正するために、撮像センサ４５０の撮像データに基づいて計算された運動を使用することができ、したがって、改善されたマッピングおよび運動制御を可能にする。視覚走行距離計測は、撮像センサ４５０が捕捉された画像内の特徴を追跡することができない場合に、低質感または低光情景１０による制限を有し得る。
【０２０９】
本明細書で説明されるものと組み合わせ可能であり得る、走行距離計測および撮像システムについての他の詳細および特徴は、内容がそれらの全体で参照することにより本明細書に組み込まれる、米国特許第７，１５８，３１７号（「被写界深度」撮像システムを説明する）、および米国特許第７，１１５，８４９号（波面コード化界面コントラスト撮像システムを説明する）で見出すことができる。
【０２１０】
ロボットが、それが稼働することになるビルが初めてであるときに、ロボットは、自律ナビゲーションのために、案内される、またはビルのマップ（例えば、部屋および廊下の位置）を提供される必要があり得る。例えば、病院で、ロボットは、各病室、看護ステーション等の位置を知る必要があり得る。いくつかの実現形態では、ロボット１００は、図１８Ａに示されるもの等のレイアウトマップ１８１０を受け、レイアウトマップ１８１０を学習するように訓練を受けることができる。例えば、ビルをロボット１００に案内しながら、ロボット１００は、レイアウトマップ１８１０上の位置に対応する特定の位置を記録してもよい。ロボット１００は、ウェブパッド３１０上にレイアウトマップ１８１０を表示してもよく、ユーザがロボット１００を特定の位置に連れて行くときに、ユーザは（例えば、タッチスクリーンまたはウェブパッド３１０の他のポインティングデバイスを使用して）レイアウトマップ１８１０上のその位置をタグ付けすることができる。ユーザは、部屋の名前または部屋の番号のようなタグ付けされた位置の標識を入力することを選択してもよい。タグ付けするときに、ロボット１００は、図１８Ｂに示されるもの等の、レイアウトマップ１８１０上の点およびロボットマップ１８２０上の対応する点とともに、タグを記憶してもよい。
【０２１１】
センサシステム４００を使用して、ロボット１００は、それが動き回るにつれて、ロボットマップ１８２０を構築してもよい。例えば、センサシステム４００は、どれだけ遠くにロボット１００が移動したか、および移動方向についての情報を提供することができる。ロボットマップ１８２０は、レイアウトマップ１８１０内で提供される壁に加えて、固定障害物を含んでもよい。ロボット１００は、自律ナビゲーションを実行するためにロボットマップ１８２０を使用してもよい。１８２０でのロボットマップでは、「壁」は、例えば、対応する廊下内の壁に沿って生成される検出されたパッキングおよび／または種々の小個室の内側で検出される家具により、完璧に真っ直ぐには見えない場合がある。さらに、回転および分解度の差が、レイアウトマップ１８１０とロボットマップ１８２０との間に存在し得る。
【０２１２】
マップ訓練後、ユーザがロボット１００をある位置に送りたいときに、ユーザが、指標／タグを指すことができる（例えば、ウェブパッド３１０上で表示される位置テキストボックスの中へ標識またはタグを入力する）か、またはロボット１００が、ウェブパッド３１０上でレイアウトマップ１８１０をユーザに表示することができるかのいずれかであり、ユーザが、レイアウトマップ１８１０上の位置を選択することができる。ユーザがタグ付けされたレイアウトマップ位置を選択した場合、ロボット１００は、レイアウトマップ１８１０上の選択された位置に対応するロボットマップ１８２０上の位置を容易に判定することができ、かつ選択された位置へナビゲートするように進むことができる。
【０２１３】
レイアウトマップ１８１０上の選択された位置がタグ付けされた位置ではない場合、ロボット１００はロボットマップ１８２０上の対応する位置を判定する。いくつかの実現形態では、ロボット１００は、既存のタグ付けされた位置を使用して、レイアウトマップ１８１０とロボットマップ１８２０との間のスケーリングサイズ、始点マッピング、および回転を算出し、次いで、（例えば、アフィン変換または座標を使用して）ロボットマップ位置を判定するように、算出されたパラメータを適用する。
【０２１４】
ロボットマップ１８２０は、レイアウトマップ１８１０と同じ配向およびスケールではなくてもよい。さらに、レイアウトマップは、原寸に比例していなくてもよく、マップ領域によって異なる歪みを有し得る。例えば、ホテル、オフィス、および病院で典型的に見られる火災時避難マップをスキャンすることによって作成されるレイアウトマップ１８１０は、通常、原寸に比例してで描かれておらず、マップの異なる領域で異なる縮尺さえも有し得る。ロボットマップ１８２０は、各自の歪みを有し得る。例えば、ロボットマップ１８２０上の位置は、距離の尺度として車輪の回転を数えることによって算出されてもよく、床がわずかに滑りやすかった、または角を曲がることが余分な回転を引き起こした場合、不正確な回転の計算が、ロボット１００に、マップされた物体の不正確な位置を判定させ得る。
【０２１５】
レイアウトマップ１８１０上の所与の点１８１４を、ロボットマップ１８２０上の対応する点１８２４にマップする方法は、レイアウトマップ点を含有する（例えば、閾値範囲内の）領域中で、レイアウトマップ１８１０とロボットマップ１８２０との間の局所的な歪みを算出するために、既存のタグ付けされた１８１２点を使用することを含んでもよい。本方法はさらに、対応するロボットマップ点１８２４を見出すために、歪み計算をレイアウトマップ点１８１４に適用することを含む。ロボットマップ１８２０上の所与の点から始め、例えば、ロボットにその現在の位置を求めるために、レイアウトマップ１８１０上の対応する位置を見出したい場合に、逆を行うことができる。
【０２１６】
図１８Ｃは、レイアウトマップ１８１０およびロボットマップ１８２０を使用して、環境の周囲でナビゲートするようにロボット１００を動作させるための動作の例となる配設１８００を提供する。図１８Ｂおよび１８Ｃを参照すると、動作は、ロボット１００の環境に対応するレイアウトマップ１８１０を受信すること１８０２ｃと、環境内のロボット１００を、レイアウトマップ１８１０上のレイアウトマップ位置１８１２まで移動させること１８０４ｃと、環境に対応し、かつロボット１００によって生成されるロボットマップ１８２０上のロボットマップ位置１８２２を記録すること１８０６ｃと、記録されたロボットマップ位置１８２２および対応するレイアウトマップ位置１８１２を使用して、ロボットマップ１８２０とレイアウトマップ１８１０との間の歪みを判定すること１８０８ｃと、対応する目標ロボットマップ位置１８２４を判定し、それにより、ロボットがレイアウトマップ１８１０上の選択された位置１８１４へナビゲートすることを可能にするように、判定された歪みを目標レイアウトマップ位置１８１４に適用すること１８１０ｃとを含む。いくつかの実現形態では、その動作は、既存のタグ付けされた位置を使用して、レイアウトマップとロボットマップとの間のスケーリングサイズ、始点マッピング、および回転を判定することと、目標レイアウトマップ位置１８１４に対応する選択された目標ロボットマップ位置を解決することとを含む。動作は、ロボットマップ位置を解決するように、アフィン変換を判定されたスケーリングサイズ、始点マッピング、および回転に適用することを含んでもよい。
【０２１７】
図１９Ａ〜１９Ｃを参照すると、いくつかの実現形態では、本方法は、頂点がタグ付けされたレイアウトマップ点１９１２にある少なくとも１つの三角形１９１０によって、レイアウトマップ１８１０の全ての領域が覆われるように、タグ付けされたレイアウトマップ点１９１２を含有する境界形状の内側の領域の三角測量を導出するために、タグ付けされたレイアウトマップ点１９１２（記録されたレイアウトマップ位置とも呼ばれる）を使用することを含む。本方法はさらに、選択されたレイアウトマップ点１９１４を含有する三角形１９１０を見出すことと、レイアウトマップ１８１０の中でマップされた三角形１９１０とロボットマップ１８２０の中でマップされた対応する三角形１９２０（すなわち、同じタグ付けされた頂点を伴うロボットマップ三角形）との間のスケール、回転、平行移動、およびスキューを判定することとを含む。本方法は、対応する目標ロボットマップ点１９２４を見出すために、判定されたスケール、回転、平行移動、およびスキューを選択されたレイアウトマップ点１９１４に適用することを含む。
【０２１８】
図１９Ｃは、目標ロボットマップ位置１９２４を判定するための動作の例となる配設１９００を提供する。動作は、目標レイアウトマップ位置の境界を示すレイアウトマップ位置の間の三角測量を判定すること１９０２と、レイアウトマップの中でマップされた三角形とロボットマップの中でマップされた対応する三角形との間のスケール、回転、平行移動、およびスキューを判定すること１９０４と、対応する目標ロボットマップ点を判定するように、判定されたスケール、回転、平行移動、およびスキューを目標レイアウトマップ位置に適用すること１９０６とを含む。
【０２１９】
図２０Ａおよび２０Ｂを参照すると、別の実施例では、本方法は、選択されたレイアウトマップの点１９１４へのレイアウトマップ１８１０の中の全てのタグ付けされた点１９１２の距離を判定することと、レイアウトマップのタグ付けされた点１９１２の重心２０１２を判定することとを含む。本方法はまた、ロボットマップ１８２０上の全てのタグ付けされた点１９２２の重心２０２２を判定することも含む。各タグ付けされたレイアウトマップ点１９１２については、本方法は、レイアウトマップ重心２０１２から選択されたレイアウト点１９１４まで及ぶベクター２０１４を、ロボットマップ重心２０２２からロボットマップ点１９２４まで及ぶベクター２０２４に変換するために必要とされる、回転および長さスケーリングを判定することとを含む。このデータを使用して、本方法はさらに、平均回転およびスケールを判定することを含む。各タグ付けされたレイアウトマップ点１９１２については、本方法はさらに、重心の平行移動、平均回転、および平均スケールを選択されたレイアウトマップ点１９１４に適用することによって、「理想ロボットマップ座標」点１９２４ｉを判定することを含む。さらに、各タグ付けされたレイアウトマップ点１９１２については、本方法は、そのレイアウトマップ点１９１２から選択されたレイアウトマップ点１９１４までの距離を判定することと、最短距離から最長距離まで、これらの距離別にタグ付けされたレイアウトマップ点１９１２を分類することとを含む。
本方法は、タグ付けされたレイアウトマップ点１９１２と選択されたレイアウトマップ点１９１４との間の距離の逆二乗のいずれかを使用して、タグ付けされたレイアウトマップ点１９１２の「影響要因」を判定することを含む。次いで、タグ付けされたレイアウトマップ点１９１２について、本方法は、タグ付けされたレイアウトマップ点１９１２の影響要因を使用することによって比例配分される、「理想ロボットマップ座標」点１９２４ｉとロボットマップ点１９２４との間の差である、ベクターを判定することを含む。本方法は、比例配分されたベクターを合計することと、それらを選択されたレイアウトマップ点１９１４に対する「理想ロボットマップ座標」点１９２４ｉに加算することを含む。結果は、ロボットマップ１８２０上の対応するロボットマップ点１９２４である。いくつかの実施例では、この方法／アルゴリズムは、全てのタグ付けされたレイアウトマップ点１９１２ではなく、最も近いＮ個のタグ付けされたレイアウトマップ点１９１２のみを含む。
【０２２０】
図２０Ｃは、レイアウトマップ１８１０およびロボットマップ１８２０を使用して、目標ロボットマップ位置１９２４を判定するための動作の例となる配設２０００を提供する。動作は、全てのレイアウトマップ位置と目標レイアウトマップ位置との間の距離を判定すること２００２と、レイアウトマップ位置の重心を判定すること２００４と、全ての記録されたロボットマップ位置の重心を判定すること２００６と、各レイアウトマップ位置について、レイアウトマップ重心から目標レイアウト位置まで及ぶベクターを、ロボットマップ重心から目標ロボットマップ位置まで及ぶベクターに変換するように、回転および長さスケーリングを判定すること２００６とを含む。
【０２２１】
再び図１６Ｃを参照すると、ロボット１００は自律的に動作してもよいが、ユーザがアプリケーション１６１０を通してロボット１００を制御または管理することを所望し得る。例えば、ユーザは、マップ上でナビゲーション点を提供すること等によって、環境または情景１０内のロボット１００の移動を制御または画定することを所望してもよい。いくつかの実現形態では、マップビルダアプリケーション１６１０ａは、ユーザが、情景１０内の１つ以上のロボット１００のセンサシステム４００によって生成されるセンサデータに基づいて、情景１０の占領マップ１７００（図１７Ａ）またはレイアウトマップ１８１０（図１８Ａ）を作成することを可能にする。いくつかの実施例では、１つ以上のベクターベースのレイアウトマップ１８１０を生成するように、ロボットマップ１８１０を後処理することができる。マップビルダアプリケーション１６１０ａは、ユーザがマップ１７００、１８１０をカスタマイズすること（例えば、平行に見えるべきである壁を並べること等）を可能にしてもよい。また、ロボット１００によって、およびアプリケーション１６１０ａ（および／または他のアプリケーション１６１０）によって認識可能な注釈を、マップ１７００、１８１０に追加することができる。いくつかの実現形態では、マップビルダアプリケーション１６１０ａは、クラウドサービスを使用して、クラウド１６２０上のクラウド記憶装置１６２２の中に、ロボットマップデータ、レイアウトマップデータ、ユーザ定義された物体、および注釈を確実に記憶してもよい。関連データセットが、クラウドサービスから適切なロボット１００およびアプリケーション１６１０へプッシュ配信されてもよい。
【０２２２】
いくつかの実現形態では、マッピングおよびナビゲーションアプリケーション１６１０ｂ（図１６Ｃ）は、ユーザが、レイアウトマップ１８１０上の目的地位置を特定し、目的地位置へ駆動するようにロボット１００に要求することを可能にする。例えば、ユーザが、クラウド１６２０と通信している、コンピュータ、タブレットコンピュータ、可動式デバイス等のコンピューティングデバイス上でマッピングおよびナビゲーションアプリケーション１６１０ｂを実行してもよい。ユーザは、ロボット１００の周囲の環境のレイアウトマップ１８１０にアクセスし、レイアウトマップ１８１０上の目的地位置を印付け、または別様に設定し、目的地位置に移動するようにロボット１００に要求することができる。次いで、ロボット１００は、レイアウトマップ１８１０および／または対応するロボットマップ１８２０を使用して、目的地位置へ自律的にナビゲートしてもよい。目的地位置へナビゲートするために、ロボット１００は、その局所知覚空間（すなわち、センサシステム４００を通して知覚されるようなロボット１００の周囲の空間）を判別し、物体検出障害物回避（ＯＤＯＡ）戦略を実行する、その能力に依存してもよい。
【０２２３】
図１１Ｂおよび２１Ａ〜２１Ｄを参照すると、いくつかの実現形態では、ロボット１００（例えば、図１３に示される制御システム５１０）は、その局所知覚空間を、障害物（黒）２１０２、未知（灰色）２１０４、および既知の空き領域（白）２１０６という、３つのカテゴリに分離する。障害物２１０２は、ロボット１００の高さより下側にある地面Ｇより上側の観察された（すなわち、感知された）点、および地面より下側の観察された点（例えば、穴、段階的減少等）である。既知の空き領域２１０６は、３−Ｄ画像センサ４５０が地面Ｇを見ることができる領域に対応する。センサシステム４００の中の全てのセンサからのデータを、離散化３−Ｄボクセルグリッドに組み込むことができる。次いで、３−Ｄグリッドを分析し、３つの局所知覚空間を用いて２−Ｄグリッド２１００に変換することができる。図２１Ａは、ロボット１００の静止している間の局所知覚空間の例となる概略図を提供する。３−Ｄボクセルグリッド内の情報は、持続性を有するが、補強されない場合、経時的に劣化する。ロボット１００が移動しているときに、持続性のため、ナビゲートするより多くの既知の空き領域２１０６を有する。
【０２２４】
制御システム５１０の物体検出障害物回避（ＯＤＯＡ）ナビゲーション戦略は、コマンドに起因し得る可能性のあるロボット位置を容認すること、または拒否することのいずれかを含んでもよい。異なるコマンドを用いて、多くのレベルの深さの可能性のあるロボット経路２１１０を生成することができ、各レベルでロボット位置をもたらす。図２１Ｂは、ロボット１００の移動している間の局所知覚空間の例となる概略図を提供する。ＯＤＯＡ挙動６００ｂ（図１３）は、各予測ロボット経路２１１０を評価することができる。好ましい結果および対応するロボットコマンドを判定するために、動作選択エンジン５８０によって、これらの評価を使用することができる。例えば、ロボット経路２１１０内の各ロボット位置２１２０について、ＯＤＯＡ挙動６００ｂは、ロボット１００の対応する位置の周囲の境界ボックスの中にあるグリッド２１００内の各セルを識別することと、各セルの分類を受信することとを含む、物体検出および障害物回避のための方法を実行することができる。障害物または未知に分類される各セルについて、セルに対応するグリッド点を取り出し、グリッド点がロボット１００の位置の周囲の衝突円形内にあるかどうかを判定することによって、衝突チェックを実行する。グリッド点が衝衝突円形内にある場合、本方法はさらに、グリッド点が衝突三角形（例えば、ロボット１００を三角形としてモデル化することができる）内にあるかどうかの３点比較試験を実行することを含む。グリッド点が衝突三角形内にある場合、本方法は、グリッド点を拒否することを含む。ロボット位置が、ロボット経路２１１０上の親グリッド点のセンサシステム視界の内側にある場合、「未知」グリッド点は、ロボット１００がこれらのグリッド点に到達する時までに、それが把握されるであろうと想定されるため、無視される。
【０２２５】
本方法は、あるロボット位置２１２０から次のロボット位置への移行中にロボットが衝突するのを防止するために、ロボット経路２１１０内の連続ロボット位置２１２０の間のロボット経路領域（例えば、長方形によってモデル化される）内に、いずれかの障害物衝突が存在するか否かを判定することを含んでもよい。
【０２２６】
図２１Ｃは、ロボット１００の局所知覚空間およびセンサシステム視界４０５（制御システム５１０は、ロボット経路判定に、第１および第２の３−Ｄ画像センサ４５０ａ、４５０ｂ等の特定のセンサのみを使用してもよい）の概略図を提供する。駆動システム２００のホロノミック可動性を利用して、ロボット１００は、センサシステム視界４０５が能動的に対応範囲としない方向に駆動することを可能にするために、既知の地面Ｇの持続性を使用することができる。例えば、ロボット１００が、第１および第２の３−Ｄ画像センサ４５０ａ、４５０ｂが前方を指す状態で、静止して座っている場合、ロボット１００は、側方向に駆動することができるが、ロボット１００の側方に未知に分類される領域を示す図２１Ｃに示される実施例に図示されるように、ロボット１００がその側方に何があるかを知らないため、制御システム５１０は、提案される移動を拒否する。ロボット１００が、第１および第２の３−Ｄ画像センサ４５０ａ、４５０ｂが前方を指す状態で、前方に駆動する場合、ロボット１００が前方に駆動する際、第１および第２の３−Ｄ画像センサ４５０ａ、４５０ｂの両方が、地面Ｇを空きと見ることができ、分類の持続性は依然として劣化されていないため、ロボット１００の隣の地面Ｇが、既知の空き２１０６に分類されてもよい（例えば、図２１Ｂ参照）。そのような状況では、ロボット１００は、側方向に駆動することができる。
【０２２７】
図２１Ｄを参照すると、いくつかの実施例では、ホロノミック可動性による大きい数の可能な軌跡を考慮して、ＯＤＯＡ挙動６００ｂは、ロボットに、ロボットが向かっている場所でロボットが見る（現在ではないが）軌跡を選択させてもよい。例えば、ロボット１００は、センサ視界配向を予期することができ、これは、制御システム５１０が、物体を検出することを可能にする。ロボットは、平行移動しながら回転することができるため、ロボットは、駆動しながらセンサ視界４０５を増加させることができる。
【０２２８】
センサシステム４００の視界４０５およびそれが異なる位置で見るであろうものを理解することによって、ロボット１００は、それが進んでいる場所を見るのに役立つ、移動軌道を選択することができる。例えば、角を曲がるときに、図２１Ｅに示されるように、ロボット１００が、親ロボット位置２１２０のセンサシステム視界４０５ではなく、現在知識がない、ロボット位置２１２０に最終的に行き得るため、ロボット１００は、角を急に曲がる軌道を拒否してもよい。代わりに、ロボット１００は、図２１Ｆに示されるように、早く所望の運動方向を向くように曲がる移動軌道を選択し、横に移動し、次いで、角の周囲を真っ直ぐ移動するために駆動システム２００のホロノミック可動性を使用してもよい。
【０２２９】
いくつかの実施例では、マッピングおよびナビゲーションアプリケーション１６１０ｂ（図１６Ｃ）は、遠隔操作機能を提供する。例えば、ユーザは、ビデオ中間地点駆動を使用して（例えば、カメラまたは撮像センサ３２０、４５０のうちの１つ以上を使用して）ロボット１００を駆動することができる。ユーザは、胴部１４０（図１４）の高さＨTを上昇／下降させて撮像センサ４５０のうちの１つの視界を変化させるように、脚部１３０の高さＨLを変化させ、および／または支持されたカメラ３２０あるいは撮像センサ４５０、４５０ｂの視界を変化させるようにロボット頭部１６０を回動および／または傾斜してもよい（例えば、図１１Ａおよび１１Ｂ参照）。さらに、ユーザは、カメラまたは撮像センサ３２０、４５０の他の視界を得るように、駆動システム２００を使用して、そのＺ軸の周囲でロボットを回転させることができる。いくつかの実施例では、マッピングおよびナビゲーションアプリケーション１６１０ｂは、ユーザが（例えば、異なる環境または異なるロボット１００について）複数のレイアウトマップ１８１０の間で切り替え、および／または１つのレイアウトマップ１８１０上で複数のロボット１００を管理することを可能にする。マッピングおよびナビゲーションアプリケーション１６１０ｂは、ロボット１００の所有者または組織によって記載される適正なロボット利用についての方針を施行するように、クラウドサービスＡＰＩと通信してもよい。
【０２３０】
再び図１６Ｃを参照すると、いくつかの実現形態では、テレビ会議アプリケーション１６１０ｃは、ユーザが他のユーザとのテレビ会議セッションを開始し、および／またはそれに参加することを可能にする。いくつかの実施例では、テレビ会議アプリケーション１６１０ｃは、ユーザが、ロボット１００のユーザ、クラウド１６２０に接続されたコンピューティングデバイス上の遠隔ユーザ、および／または可動式手持ちデバイスを使用するインターネットに接続された別の遠隔ユーザとのテレビ会議セッションを開始する、および／またはそれに参加することを可能にする。テレビ会議アプリケーション１６１０ｃは、情報を共有するための電子ホワイトボード、画像ビューア、および／またはＰＤＦビューアを提供してもよい。
【０２３１】
スケジューリングアプリケーション１６１０ｄは、ユーザが１つ以上のロボット１００の利用を予定に入れることを可能にする。人が使用したいよりも少ないロボット１００があるときに、ロボット１００は、不十分な資源になり、スケジューリングが必要とされ得る。スケジューリングは、資源割付における対立を解決し、より高い資源利用を可能にする。スケジューリングアプリケーション１６１０ｄは、ロボット中心となり得、Ｍｉｃｒｏｓｏｆｔ  ＯｕｔｌｏｏｋまたはＧｏｏｇｌｅ  Ｃａｌｅｎｄａｒ等の第三者カレンダリングシステムと統合してもよい。いくつかの実施例では、スケジューリングアプリケーション１６１０ｄは、事前に予定された時間にロボット１００をディスパッチするように、１つ以上のクラウドサービスを通してクラウド１６２０と通信する。スケジューリングアプリケーション１６１０ｄは、ユーザによって特定される任務のためのクラウドサービスによるロボット１００の選択を可能にするように、時間関連データ（例えば、メンテナンススケジュール等）を他のロボットデータ（例えば、ロボット位置、健康状態等）と統合してもよい。
【０２３２】
１つのシナリオでは、医師が、週の後半に遠隔の病院での回診を予定に入れるために、クラウド１６２０と通信しているコンピューティングデバイス（例えば、携帯用タブレットコンピュータまたは手持ち式デバイス）上のスケジューリングアプリケーション１６１０ｄにアクセスしてもよい。スケジューリングアプリケーション１６１０ｄは、電子カレンダー上で会議室を割り付けるのと同様にロボット１００を予定に入れることができる。
クラウドサービスは、スケジュールを管理する。夜中に、遠隔の病院にいる重体患者を診察する必要があるという呼び出しを医師が受けた場合、医師は、スケジューリングアプリケーション１６１０ｄを使用してロボット１００を要請し、および／またはマッピングおよびナビゲーションアプリケーション１６１０ｂを使用してロボット１００を病室に送ることができる。医師は、テレビ会議アプリケーション１６１０ｃを使用して、（例えば、クラウド記憶装置１６２２にアクセスすることによって）自分のコンピューティングデバイス上で診察記録および患者のビデオまたは画像にアクセスしてもよい。クラウドサービスは、ロボット管理、電子健康記録システム、および医療用撮像システムと統合してもよい。医師は、患者と遠隔でやりとりするように、ロボット１００の移動を制御してもよい。患者がポルトガル語しか話さない場合、テレビ会議アプリケーション１６１０ｃが、自動的に言語を翻訳してもよく、または第三者の翻訳者が、（例えば、インターネットを介して）クラウド１６２０と通信している別のコンピューティングデバイスを使用してテレビ会議に参加してもよい。クラウドサービスを使用して、翻訳サービスを要請し、遂行し、記録し、および課金請求することができる。
【０２３３】
利用状況／統計アプリケーション１６１０ｅは、ユーザがロボットの利用を監視し、ロボット利用レポートを生成し、および／またはロボット隊１００を管理するための汎用アプリケーションであり得る。このアプリケーション１６１０ｅはまた、ロボット１００の一般動作およびトラブルシューティング情報を提供してもよい。いくつかの実施例では、利用状況／統計アプリケーション１６１０ｅは、ユーザがロボット１００の使用と関連付けられるサービスを追加する／無効にする、１つ以上のシミュレータ１６７０の使用を登録する、ロボットについての利用方針を修正すること等を可能にする。
【０２３４】
別のシナリオでは、事業が、少なくとも１つのテレプレゼンスアプリケーション用のロボット隊１００を有してもよい。位置マネージャが、（例えば、インターネットを介して）クラウド１６２０と通信しているコンピューティングデバイス上で実行される利用／統計アプリケーション１６１０ｅを使用して、１つ以上のロボット１００の状態（例えば、位置、利用およびメンテナンススケジュール、バッテリ情報、位置履歴等）を監視してもよい。いくつかの実施例では、位置マネージャは、ユーザセッションを共有することによって、ロボットの問題があるユーザを支援してもよい。位置マネージャは、対応するロボット１００をナビゲートする、ロボット１００を通して話す（すなわち、テレプレゼンス）、節電モードになる（例えば、機能性を低減させる）、充電器を見出す等のために、アプリケーション１６１０を使用して、コマンドをロボット１００のうちのいずれかに発行することができる。位置マネージャまたはユーザは、ユーザ、セキュリティ、レイアウトマップ１８１０、ビデオ視界を管理する、隊にロボットを追加する／隊から除去する等のために、アプリケーション１６１０を使用することができる。ロボット１００の遠隔オペレータは、（例えば、スケジューリングアプリケーション１６１０ｄを使用して）ロボット予約を予定／予定変更／キャンセルし、（例えば、クラウドサーバ上で実行されるシミュレータ１６７０を使用して）シミュレートした場所を歩き回るシミュレートしたロボットを使用して、訓練コースに参加することができる。
【０２３５】
ＳＤＫライブラリ１６４４は、アプリケーション１６１０の開発者１６０２によって使用するための１つ以上のソースコードライブラリを含んでもよい。例えば、視覚構成要素ライブラリが、グラフィカルユーザインターフェース、またはカプセル化機能にアクセスするためのインターフェースを有する視覚構成要素を提供することができる。例となる視覚構成要素は、レイアウトマップタイルおよびロボットを描く、テレビ会議をする、画像およびドキュメントを閲覧する、および／またはカレンダーあるいはスケジュールを表示するためのコード部類を含む。ロボット通信ライブラリ（例えば、ウェブサービスＡＰＩ）は、ロボット１００と直接通信するためのＲＥＳＴｆｕｌ（Ｒｅｐｒｅｓｅｎｔａｔｉｏｎａｌ  Ｓｔａｔｅ  Ｔｒａｎｓｆｅｒ）、ＪＳＯＮ（ＪａｖａＳｃｒｉｐｔ  Ｏｂｊｅｃｔ  Ｎｏｔａｔｉｏｎ）ベースのＡＰＩを提供することができる。ロボット通信ライブラリは、（例えば、ｉＯＳ開発用の）Ｏｂｊｅｃｔｉｖｅ−Ｃバインディングおよび（例えば、Ａｎｄｒｏｉｄ開発用の）Ｊａｖａ（登録商標）バインディングを提供することができる。これらのオブジェクト指向物体ＡＰＩは、根底にあるロボット１００のデータ転送プロトコルを開発者１６０２からカプセル化しながら、アプリケーション１６１０がロボット１００と通信することを可能にする。ロボット通信ライブラリのルーチンに従う個人は、ロボット１００によって追跡される個人に対応するビデオ画面座標を戻してもよい。ロボット通信ライブラリの顔認識ルーチンは、カメラ３２０のカメラ視野上の顔の座標、および随意に、認識された追跡個人の名前を戻す。表１は、ロボット通信サービスの典型的なリストを提供する。
【表１】
2014209381.tif 000003
表１
【０２３６】
クラウドサービス通信ライブラリは、アプリケーション１６１０がクラウド１６２０（例えば、クラウド記憶装置１６２２、アプリケーションサーバ１６５０、データベース１６６０、およびシミュレータ１６７０と）および／またはクラウド１６２０と通信しているロボット１００と通信することを可能にする、ＡＰＩを含んでもよい。クラウドサービス通信ライブラリは、Ｏｂｊｅｃｔｉｖｅ−ＣおよびＪａｖａ（登録商標）バインディングの両方で提供することができる。クラウドサービスＡＰＩの実施例は、（例えば、位置を取り出す、目的地を設定する等のための）ナビゲーションＡＰＩ、マップ記憶および回収ＰＡＩ、カメラフィードＡＰＩ、遠隔操作ＡＰＩ、利用統計ＡＰＩ、およびその他を含む。
【０２３７】
クラウドサービス拡張性インターフェースは、クラウドサービスが外部ソースからのウェブサービスと対話することを可能にしてもよい。例えば、クラウドサービスは、企業開発者１６０２が外部専有システム用のインターフェースを実装することを可能にする、一式の拡張インターフェースを画定してもよい。拡張は、クラウドインフラストラクチャにアップロードし、展開することができる。いくつかの実施例では、クラウドサービスは、種々の産業共同体によって画定される標準拡張性インターフェースを採用することができる。
【０２３８】
シミュレータ１６７０は、ロボット１００への接続性を伴わずに、アプリケーション１６１０のデバッギングおよび試験を可能にしてもよい。シミュレータ１６７０は、（例えば、経路を計画し、マップデータベースにアクセスするために）ロボット１００と実際に通信することなく、ロボット１００の動作をモデル化またはシミュレートすることができる。シミュレーションを実行するために、いくつかの実現形態では、シミュレータ１６７０は、ロボット１００を使用することなく（例えば、レイアウトマップ１８１０から）マップデータベースを生成する。これは、（壁、角、柱等のような）特徴が自動的に識別されるように、画像処理（例えば、エッジ検出）を伴ってもよい。シミュレータ１６７０は、レイアウトマップ１８１０によって決定付けられる環境内で経路計画をシミュレートするために、マップデータベースを使用することができる。
【０２３９】
クラウドサービス拡張アップローダ／ディベロッパは、ユーザが拡張をクラウド１６２０にアップロードする、外部の第三者ユーザ認証システムに接続する、外部データベースまたは記憶装置（例えば、診察前および診察後のための患者情報）にアクセスする、テレビ会議セッションで例証用の画像にアクセスすること等を可能にしてもよい。クラウドサービス拡張インターフェースは、クラウド１６２０との専有システムの統合を可能にし得る。
【０２４０】
本明細書に記載されるシステムおよび技法の様々な実現形態を、デジタル電子回路、集積回路、専用に設計されたＡＳＩＣ（特定用途向け集積回路）、コンピュータハードウェア、ファームウェア、ソフトウェア、および／またはそれらの組み合わせで実現することができる。これらの様々な実現形態には、記憶システムからデータおよび命令を受信するように、ならびにそれにデータおよび命令を伝送するように連結される、専用であっても汎用であってもよい、少なくとも１つのプログラマブルプロセッサと、少なくとも１つの入力デバイスと、少なくとも１つの出力デバイスとを含む、プログラム可能なシステム上で実行可能な、および／または解釈可能な１つ以上のコンピュータプログラムでの実現形態を含むことができる。
【０２４１】
これらのコンピュータプログラム（また、プログラム、ソフトウェア、ソフトウェアアプリケーション、またはコードとしても知られる）は、プログラム可能プロセッサのための機械命令を含み、高水準手続きおよび／もしくはオブジェクト指向プログラミング言語、ならびに／またはアセンブリ／機械言語で実現することができる。本明細書で使用される場合、「機械可読媒体」および「コンピュータ可読媒体」という用語は、機械命令を機械可読信号として受信する機械可読媒体を含む、プログラマブルプロセッサに機械命令および／もしくはデータを提供するために使用される、任意のコンピュータプログラム製品、装置、ならびに／またはデバイス（例えば、磁気ディスク、光学ディスク、メモリ、プログラマブル論理デバイス（ＰＬＤ））を指す。「機械可読信号」という用語は、プログラマブルプロセッサに機械命令および／またはデータを提供するために使用される、任意の信号を指す。
【０２４２】
本明細書に記載される主題の実現形態および機能動作は、デジタル電子回路、または本明細書に開示される構造およびそれらの構造的均等物を含む、コンピュータソフトウェア、ファームウェア、もしくはハードウェア、あるいはそれらのうちの１つ以上の組み合わせで実現することができる。本明細書に記載される主題の実施形態は、データ処理装置による実行のための、またはその動作を制御する、１つ以上のコンピュータプログラム製品、すなわち、コンピュータ可読媒体上にコード化されるコンピュータプログラム命令の１つ以上のモジュールとして実現することができる。コンピュータ可読媒体は、機械可読記憶デバイス、機械可読記憶回路基板、メモリデバイス、機械可読伝搬信号に影響を及ぼす組成物、またはそれらのうちの１つ以上の組み合わせであることができる。「データ処理装置」という用語は、一例として、プログラマブルプロセッサ、コンピュータ、または複数のプロセッサもしくはコンピュータを含む、データを処理するための全ての装置、デバイス、および機械を包含する。装置は、ハードウェアに加えて、問題のコンピュータプログラムの実行環境を作り出すコード、例えば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、またはそれらのうちの１つ以上の組み合わせを構築するコードを含むことができる。伝搬信号は、好適な受信装置に伝送するために、情報をコード化するように生成される、人工的に生成される信号、例えば、機械生成電気、光学、または電磁信号である。
【０２４３】
コンピュータプログラム（また、プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、またはコードとしても知られる）は、コンパイルされる、または解釈される言語を含む、任意の形態のプログラミング言語で書くことができ、単独プログラムとして、またはモジュール、構成要素、サブルーチン、もしくはコンピューティング環境で使用するのに好適な他のユニットとしての配備を含む、任意の形態で配備することができる。コンピュータプログラムは、必ずしもファイルシステム内のファイルに対応する必要はない。プログラムは、問題のプログラム専用の単一のファイル内の他のプログラムもしくはデータ（例えば、マークアップ言語文書で記憶される１つ以上のスクリプト）を保持するファイルの一部分に、または複数の調整されたファイル（例えば、１つ以上のモジュール、サブプログラム、またはコードの部分を記憶するファイル）に記憶することができる。コンピュータプログラムは、１台のコンピュータ上で、または１つの場所に位置する、もしくは複数の場所にわたって分散され、通信ネットワークによって相互接続される、複数のコンピュータ上で実行されるように配備することができる。
【０２４４】
本明細書に記載されるプロセスおよび論理フローは、入力データに対して動作し、出力を生成することによって機能を実施する、１つ以上のコンピュータプログラムを実行する、１つ以上のプログラマブルプロセッサによって実施することができる。また、プロセスおよび論理フローは、専用論理回路、例えば、ＦＰＧＡまたはＡＳＩＣによって実施することもでき、また、装置は、それらとして実現することもできる。
【０２４５】
コンピュータプログラムの実行に好適なプロセッサには、一例として、汎用および専用マイクロプロセッサの両方、および任意の種類のデジタルコンピュータの任意の１つ以上のプロセッサが挙げられる。一般的に、プロセッサは、読み出し専用メモリもしくはランダムアクセスメモリ、または両方から命令およびデータを受けとる。コンピュータの不可欠な要素は、命令を実施するためのプロセッサ、ならびに命令およびデータを記憶するための１つ以上のメモリデバイスである。一般的に、また、コンピュータは、データを記憶するための１つ以上の大容量記憶デバイス、例えば、磁気、光磁気ディスク、もしくは光学ディスクも含む、またはそれからデータを受信するため、もしくはそれにデータを転送するため、または両方のために、それに動作可能に連結される。しかしながら、コンピュータは、そのようなデバイスを有する必要はない。さらに、コンピュータは、別のデバイス、例えば、ごくわずかな例を挙げると、携帯電話、個人用デジタル補助装置（ＰＤＡ）、携帯型オーディオプレーヤー、グローバルポジショニングシステム（ＧＰＳ）受信器に埋め込むことができる。コンピュータプログラム命令およびデータを記憶するのに好適なコンピュータ可読媒体には、一例として、半導体メモリデバイス、例えば、ＥＰＲＯＭ、ＥＥＰＲＯＭ、およびフラッシュメモリデバイス、磁気ディスク、例えば、内蔵ハードディスクもしくはリムーバブルディスク、光磁気ディスク、ならびにＣＤ  ＲＯＭおよびＤＶＤ−ＲＯＭディスクを含む、全ての形態の不揮発性メモリ、媒体、およびメモリデバイスが挙げられる。プロセッサおよびメモリは、専用論理回路によって補完することができる、またはそれに組み込むことができる。
【０２４６】
本明細書に記載される主題の実現形態は、例えば、データサーバとしてバックエンド構成要素を含む、ミドルウェア構成要素、例えば、アプリケーションサーバを含む、フロントエンド構成要素、例えば、ユーザがそれを通して本明細書に記載される主題の実現形態と相互作用することができる、グラフィカルユーザインターフェースもしくはウェブブラウザを有する、クライアントコンピュータを含む、コンピューティングシステム、または１つ以上のそのようなバックエンド、ミドルウェア、もしくはフロントエンド構成要素の任意の組み合わせで実現することができる。システムの構成要素は、任意の形態またはデジタルデータ通信の媒体、例えば、通信ネットワークによって相互接続することができる。通信ネットワークの例には、ローカルエリアネットワーク（「ＬＡＮ」）、および広域ネットワーク（「ＷＡＮ」）、例えば、インターネットが挙げられる。
【０２４７】
コンピューティングシステムは、クライアントおよびサーバを含むことができる。クライアントおよびサーバは、一般的に、相互から遠隔にあり、典型的に、通信ネットワークを通してやり取りする。クライアントおよびサーバの関係は、それぞれのコンピュータ上で実行され、相互にクライアント−サーバ関係を有する、コンピュータプログラムによって生じる。
【０２４８】
本明細書は、多くの詳細を含むが、これらは、本発明またはその主張され得る範囲を限定すると解釈されるべきではなく、むしろ、本発明の特定の実現形態に特定の特徴の説明として解釈されるべきである。また、本明細書の別個の実現形態の文脈に記載される特定の特徴は、単一の実現形態において、組み合わせて実現することもできる。逆に、また、単一の実現形態の文脈に記載される様々な特徴は、複数の実現形態において別々に、または任意の好適な副組み合わせで実現することもできる。さらに、特徴は、特定の組み合わせで作用するように上記され、さらには最初にそのように主張されている場合があるが、場合によっては、主張される組み合わせの１つ以上の特徴を組み合わせから切り取ることができ、主張される組み合わせは、副組み合わせ、または副組み合わせの変形を対象としてもよい。
【０２４９】
同様に、動作は、特定の順序で図面に描写されているが、これは、望ましい結果を達成するために、そのような動作が、示される特定の順序で、もしくは起こる順序で実施されること、または全ての図示される動作が実施されることを要求すると理解されるべきではない。ある特定の状況では、マルチタスクおよび並列処理が有利である場合がある。さらに、上述される実施形態における様々なシステム構成要素の分離は、全ての実施形態において、そのような分離を要求すると理解されるべきではなく、記載されるプログラム構成要素およびシステムは、一般に、単一のソフトウェア製品に共に統合することができる、または複数のソフトウェア製品にパッケージ化することができることが理解されるべきである。
【０２５０】
多数の実現形態が記載されてきた。しかしながら、本開示の趣旨および範囲から逸脱することなく、様々な修正が行われてもよいことが理解される。したがって、他の実現形態が、続く特許請求の範囲の範囲内である。例えば、特許請求の範囲に言及される動作を、異なる順序で実施し、依然として望ましい結果を達成することができる。
【図１】
2014209381.tif 000004
【図２】
2014209381.tif 000005
【図３】
2014209381.tif 000006
【図４Ａ】
2014209381.tif 000007
【図４Ｂ】
2014209381.tif 000008
【図４Ｃ】
2014209381.tif 000009
【図５Ａ】
2014209381.tif 000010
【図５Ｂ】
2014209381.tif 000011
【図５Ｃ】
2014209381.tif 000012
【図５Ｄ】
2014209381.tif 000013
【図６Ａ】
2014209381.tif 000014
【図６Ｂ】
2014209381.tif 000015
【図６Ｃ】
2014209381.tif 000016
【図７】
2014209381.tif 000017
【図８Ａ】
2014209381.tif 000018
【図８Ｂ】
2014209381.tif 000019
【図８Ｃ】
2014209381.tif 000020
【図８Ｄ】
2014209381.tif 000021
【図８Ｅ】
2014209381.tif 000022
【図８Ｆ】
2014209381.tif 000023
【図８Ｇ】
2014209381.tif 000024
【図９】
2014209381.tif 000025
【図１０Ａ】
2014209381.tif 000026
【図１０Ｂ】
2014209381.tif 000027
【図１０Ｃ】
2014209381.tif 000028
【図１０Ｄ】
2014209381.tif 000029
【図１０Ｅ】
2014209381.tif 000030
【図１１Ａ】
2014209381.tif 000031
【図１１Ｂ】
2014209381.tif 000032
【図１２Ａ】
2014209381.tif 000033
【図１２Ｂ】
2014209381.tif 000034
【図１２Ｃ】
2014209381.tif 000035
【図１２Ｄ】
2014209381.tif 000036
【図１２Ｅ】
2014209381.tif 000037
【図１２Ｆ】
2014209381.tif 000038
【図１３】
2014209381.tif 000039
【図１４】
2014209381.tif 000040
【図１５】
2014209381.tif 000041
【図１６Ａ】
2014209381.tif 000042
【図１６Ｂ】
2014209381.tif 000043
【図１６Ｃ】
2014209381.tif 000044
【図１６Ｄ】
2014209381.tif 000045
【図１６Ｅ】
2014209381.tif 000046
【図１６Ｆ】
2014209381.tif 000047
【図１６Ｇ】
2014209381.tif 000048
【図１６Ｈ】
2014209381.tif 000049
【図１７Ａ】
2014209381.tif 000050
【図１７Ｂ】
2014209381.tif 000051
【図１８Ａ】
2014209381.tif 000052
【図１８Ｂ】
2014209381.tif 000053
【図１８Ｃ】
2014209381.tif 000054
【図１９Ａ】
2014209381.tif 000055
【図１９Ｂ】
2014209381.tif 000056
【図１９Ｃ】
2014209381.tif 000057
【図２０Ａ】
2014209381.tif 000058
【図２０Ｂ】
2014209381.tif 000059
【図２０Ｃ】
2014209381.tif 000060
【図２１Ａ】
2014209381.tif 000061
【図２１Ｂ】
2014209381.tif 000062
【図２１Ｃ】
2014209381.tif 000063
【図２１Ｄ】
2014209381.tif 000064
【図２１Ｅ】
2014209381.tif 000065
【図２１Ｆ】
2014209381.tif 000066
【手続補正書】
【提出日】平成26年7月9日(2014.7.9)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
可動式ロボット（１００）を動作させる方法であって、
情景（１０）の周囲で前記ロボット（１００）を動かすステップと、
前記情景（１０）を示すセンサデータ（１６０１）を受信するステップと、
前記受信したセンサデータ（１６０１）を処理し、処理結果（１６０７、１６０９）を前記ロボット（１００）に伝達するクラウドコンピューティングサービス（１６２０）に、前記センサデータ（１６０１）を伝達するステップと、
前記受信した処理結果（１６０７、１６０９）に基づいて、前記情景（１０）内で前記ロボット（１００）を動かすステップと、
を含み、
前記クラウドコンピューティングサービス（１６２０）は、前記ロボット（１００）から画像データ（１６０１）を受信し、前記画像データ（１６０１）を処理して前記情景（１０）の３−Ｄマップ（１６０５）および／またはモデル（１６０９）にする、方法。
【請求項２】
前記ロボット（１００）の周囲の前記情景（１０）の上に光を放射するステップと、
前記ロボット（１００）の駆動方向（Ｆ）に沿った前記情景（１０）の画像であって、（ａ）３次元深度画像、（ｂ）アクティブ照明画像、および（ｃ）周囲照明画像のうちの少なくとも１つを含む、画像を捕捉するステップと、
をさらに含み、
前記センサデータ（１６０１）は、前記画像を備え、前記処理結果（１６０７、１６０９）は、前記情景（１０）のマップ（１６０７）またはモデル（１６０９）を備える、請求項１に記載の方法。
【請求項３】
前記情景（１０）の上に光のスペックルパターンを放射するステップと、
前記情景（１０）内の物体（１２）から前記スペックルパターンの反射を受けるステップと、
前記情景（１０）内の基準物体（１２）から反射された前記スペックルパターンの基準画像であって、前記基準物体（１２）から様々な異なる距離（Ｚn）で捕捉される基準画像を、前記クラウドコンピューティングサービス（１６２０）のクラウド記憶装置（１６２２）の中に記憶するステップと、
前記情景（１０）内の標的物体（１２）から反射された前記スペックルパターンの少なくとも１つの標的画像を捕捉し、前記少なくとも１つの標的画像を前記クラウドコンピューティングサービス（１６２０）に伝達するステップと、
をさらに含み、
前記クラウドコンピューティングサービス（１６２０）は、前記標的物体（１２）の反射面の距離（ΔＺ）を判定するために、前記少なくとも１つの標的画像を前記基準画像と比較する、請求項２に記載の方法。
【請求項４】
前記標的物体（１２）上の一次スペックルパターンを判定するステップと、前記一次スペックルパターンと前記基準画像の前記スペックルパターンとの間のそれぞれの相互相関および非相関のうちの少なくとも１つを算出するステップをさらに含む、請求項３に記載の方法。
【請求項５】
前記クラウドコンピューティングサービス（１６２０）は、クラウド記憶装置（１６２２）の中に前記受信したセンサデータ（１６０１）を少なくとも一時的に記憶し、随意に、前記データ（１６０１）を処理した後に前記記憶したセンサデータ（１６０１）を破棄する、請求項１〜４のいずれかに記載の方法。
【請求項６】
前記センサデータ（１６０１）は、関連センサシステムデータを有する画像データを備え、前記センサシステムデータは、加速度計データ追跡、走行距離計測データ、およびタイムスタンプのうちの少なくとも１つを備える、請求項１〜５のいずれかに記載の方法。
【請求項７】
前記クラウドコンピューティングサービス（１６２０）は、２−Ｄ高さマップ（１６０７）および／または前記モデル（１６０９）を前記ロボット（１００）に提供し、前記クラウドコンピューティングサービス（１６２０）は、前記３−Ｄマップ（１６０５）から前記２−Ｄ高さマップ（１６０７）を算出する、請求項１に記載の方法。
【請求項８】
前記センサデータ（１６０１）を前記クラウドコンピューティングサービス（１６２０）に定期的に伝達するステップをさらに含み、前記クラウドコンピューティングサービス（１６２０）は、閾値のセンサデータセット（１６０３）を蓄積した後に、前記受信した画像データ（１６０１）を処理する、請求項１〜７のいずれかに記載の方法。
【請求項９】
前記ロボット（１００）と通信しており、前記ロボット（１００）に取り外し可能に取り付け可能である、携帯用コンピューティングデバイス（３１０）を通して、無線で前記センサデータ（１６０１）を前記クラウドコンピューティングサービス（１６２０）に伝達するステップをさらに含む、請求項１〜８のいずれかに記載の方法。
【請求項１０】
前記マップ（１６０５）は、前記情景（１０）の屋内または屋外の街路または経路表示を含む、請求項１に記載の方法。
【請求項１１】
前記マップ（１６０５）に基準位置を印付けし、前記マップ（１６０５）に印付けされた基準位置を通じて経路を計画するステップをさらに含む、請求項１０に記載の方法。
【請求項１２】
前記情景（１０）は、店のモールであり、前記マップ（１６０５）は、当該マップ（１６０５）に基準位置として印付けされた各店を伴う経路表示を含む、請求項１に記載の方法。
【請求項１３】
前記モールのマップされた店を通る経路巡回を提供するステップをさらに含む、請求項１２に記載の方法。
【請求項１４】
前記マップ（１６０５）に印付けされた各基準位置は、リンクした画像またはビデオ、若しくは販促情報をさらに含む、請求項１２に記載の方法。
【請求項１５】
画像データ（１６０１）を処理するステップは、前記ロボット（１００）上に位置するカメラ（３２０）または体積点群撮像デバイス（４５０）にて捕捉された写真またはビデオをともに連結し、且つ走行距離計測、全地球測位システム、および／または中間地点ナビゲーションによって提供されるような基準座標を使用することによって、前記ロボット（１００）の周囲の前記情景（１０）のマップ（１６０５）を構築するステップをさらに含む、請求項１に記載の方法。