"ロボット100の動作を制御するための制御システム510を実行するコントローラ500を有する、可動式ロボット100と、前記ロボット100の前記コントローラ500と通信しているクラウドコンピューティングサービス1620と、前記クラウドコンピューティングサービス1620と通信している遠隔コンピューティングデバイス310、1604であって、前記クラウドコンピューティングサービス1620を通して前記ロボット100と通信する、遠隔コンピューティングデバイス310、1604と、を備える、ロボットシステム1600。前記遠隔コンピューティングデバイス310、1604は、ロボット動作環境10のレイアウトマップ1700、1810を生成するためのアプリケーション1610、1610aを実行する、請求項1に記載のロボットシステム1600。前記遠隔コンピューティングデバイス310、1604は、前記クラウドコンピューティングサービス1620を使用して、外部クラウド記憶装置1622の中に前記レイアウトマップ1700、1810を記憶する、請求項2に記載のロボットシステム1600。前記ロボット100の前記コントローラ500は、前記ロボット100の駆動システム200に駆動コマンドを発行するために前記クラウドコンピューティングサービス1620を通して前記レイアウトマップ1700、1810にアクセスする、請求項3に記載のロボットシステム1600。前記遠隔コンピューティングデバイス310、1604は、前記ロボット100の遠隔操作を提供するアプリケーション1610、1610bを実行し、好ましくは、前記アプリケーション1610、1610bは、前記ロボット100を駆動すること、前記ロボット100の姿勢を変化させること、前記ロボット100のカメラ320、450からビデオを視認すること、および前記ロボット100のカメラ320、450を操作することのうちの少なくとも1つのための制御を提供する、請求項1~4のいずれかに記載のロボットシステム1600。前記遠隔コンピューティングデバイス310、1604は、前記遠隔コンピューティングデバイス310、1604のユーザと前記ロボット100のカメラ320、450の視野内の第三者との間でテレビ会議を提供するアプリケーション1610、1610cを実行する、請求項1~5のいずれかに記載のロボットシステム1600。前記遠隔コンピューティングデバイス310、1604は、前記ロボットの利用を予定に入れるためのアプリケーション1610、1610d、および/または前記ロボット100の利用および動作を監視するためのアプリケーション1610、1610eを実行する、請求項1~6のいずれかに記載のロボットシステム1600。前記遠隔コンピューティングデバイス310、1604は、タブレットコンピュータを備える、請求項1~7のいずれかに記載のロボットシステム1600。可動式ロボット100の動作を制御するための制御システム510を実行するコントローラ500を有する、可動式ロボット100と、前記コントローラ500と通信しているコンピューティングデバイス310、1604と、前記コンピューティングデバイス310、1604と通信しているクラウドコンピューティングサービス1620と、前記クラウドコンピューティングサービス1620と通信しているポータル1630と、を備える、ロボットシステム1600。前記ポータル1630は、コンテンツへのアクセスを提供するウェブベースのポータル1630を備える、請求項9に記載のロボットシステム1600。前記ポータル1630は、前記クラウドコンピューティングサービス1620を通して前記ロボット100からロボット情報を受信し、および/または前記ロボット100は、前記クラウドコンピューティングサービス1620を通して前記ポータル1630からユーザ情報を受信する、請求項9または10に記載のロボットシステム1600。前記コンピューティングデバイス310は、タッチスクリーン312を含む、請求項9~11のいずれかに記載のロボットシステム1600。前記コンピューティングデバイス310、1604は、前記コントローラ500のオペレーティングシステムとは異なるオペレーティングシステムを実行する、請求項9~12のいずれかに記載のロボットシステム1600。前記コンピューティングデバイス310、1604は、前記ロボット100からロボット情報を収集し、前記ロボット情報を前記クラウドコンピューティングサービス1620に送信する、少なくとも1つのアプリケーション1610を実行する、請求項9~13のいずれかに記載のロボットシステム1600。前記ロボット100は、垂直中心軸Zを画定し、かつ前記コントローラ500を支持する、基部120と、前記基部120によって支持される、ホロノミック駆動システム200であって、それぞれ前記垂直中心軸Zの周囲で三角形に離間され、かつそれぞれ前記垂直中心軸Zに対して放射軸X、F、滑りと垂直な駆動方向DR、駆動を有する、第1、第2、および第3の駆動車輪210a~cを有する、ホロノミック駆動システム200と、前記基部120から上向きに延在する、拡張可能な脚部130と、前記脚部130によって支持される胴部140であって、前記脚部130の作動は、前記胴部140の高さHTの変化を引き起こし、前記コンピューティングデバイス310は、前記胴部140より上側で着脱可能に支持される、胴部140と、を備える、請求項9~14のいずれかに記載のロボットシステム1600。前記ロボット100はさらに、前記胴部140によって支持される、首部150と、前記首部150によって支持される、頭部160であって、前記首部150は、前記胴部140に対して前記頭部160を回動および傾斜することが可能であり、前記コンピューティングデバイス310は、前記頭部160によって着脱可能に支持される、頭部160と、を備える、請求項15に記載のロボットシステム。可動式ロボット100の動作を制御するための制御システム510を実行するコントローラ500を有する、可動式ロボット100と、前記コントローラ500と通信しているコンピューティングデバイス310と、前記コントローラ500と前記コンピューティングデバイス310との間の通信を制御する仲介セキュリティデバイス350と、前記コンピューティングデバイス310と通信しているクラウドコンピューティングサービス1620と、前記クラウドコンピューティングサービス1620と通信しているポータル1630と、を備える、ロボットシステム1600。前記仲介セキュリティデバイス350は、前記コンピューティングデバイス310のコンピューティングデバイス通信プロトコルと前記ロボット100のロボット通信プロトコルとの間で通信を変換する、請求項17に記載のロボットシステム1600。前記仲介セキュリティデバイス350は、前記コンピューティングデバイス310と前記ロボット100との間の通信トラフィックを承認するための承認チップ352を備える、請求項17または18に記載のロボットシステム1600。前記コンピューティングデバイス310は、前記ロボットコントローラ500と無線で通信し、好ましくは、前記コンピューティングデバイス310は、タブレットコンピュータを備え、および/または前記ロボット100に解放可能に取り付け可能である、請求項17~19のいずれかに記載のロボットシステム1600。前記ポータル1630は、コンテンツへのアクセスを提供するウェブベースのポータル1630を備える、請求項17~20のいずれかに記載のロボットシステム1600。前記ポータル1630は、前記クラウドコンピューティングサービス1620を通して前記ロボット100からロボット情報を受信し、および/または前記ロボット100は、前記クラウドコンピューティングサービス1620を通して前記ポータル1630からユーザ情報を受信する、請求項17~21のいずれかに記載のロボットシステム1600。前記コンピューティングデバイス310は、前記クラウドコンピューティングサービス1620を使用してクラウド記憶装置1622にアクセスする、請求項17~22のいずれかに記載のロボットシステム1600。前記コンピューティングデバイス310は、前記ロボット100からロボット情報を収集し、前記ロボット情報を前記クラウドコンピューティングサービス1620に送信する、少なくとも1つのアプリケーション1610を実行する、請求項17~23のいずれかに記載のロボットシステム1600。可動式ロボット100を動作させる方法であって、前記ロボット100の環境10に対応するレイアウトマップ1810を受信するステップと、前記環境10内の前記ロボット100を、前記レイアウトマップ1810上のレイアウトマップ位置1812、1814まで移動させるステップと、前記環境10に対応し、かつ前記ロボット100によって生成されるロボットマップ1820上のロボットマップ位置1822を記録するステップと、前記記録されたロボットマップ位置1822および前記対応するレイアウトマップ位置1812を使用して、前記ロボットマップ1820と前記レイアウトマップ1810との間の歪みを判定するステップと、前記判定された歪みを目標レイアウトマップ位置1814に適用して、対応する目標ロボットマップ位置1824を判定するステップと、を含む、方法。クラウドコンピューティングサービス1620から前記レイアウトマップ1810を受信するステップをさらに含む、請求項25に記載の方法。遠隔コンピューティングデバイス310、1604上で実行されるアプリケーション1610上で前記レイアウトマップ1810を生成し、前記クラウドコンピューティングサービス1620を使用して、遠隔クラウド記憶装置デバイス1622上に前記レイアウトマップ1810を記憶するステップをさらに含む、請求項26に記載の方法。既存のレイアウトマップ位置1812および記録されたロボットマップ位置1822を使用して、前記レイアウトマップ1810と前記ロボットマップ1820との間のスケーリングサイズ、始点マッピング、および回転を判定するステップと、前記目標レイアウトマップ位置1814に対応する目標ロボットマップ位置1824を解決するステップと、をさらに含む、請求項25~27のいずれかに記載の方法。アフィン変換を前記判定されたスケーリングサイズ、始点マッピング、および回転に適用して、前記目標ロボットマップ位置1824を解決するステップをさらに含む、請求項28に記載の方法。前記目標レイアウトマップ位置1814、1914の境界を示すレイアウトマップ位置1812、1912の間の三角測量1910を判定するステップをさらに含む、請求項25~29のいずれかに記載の方法。前記レイアウトマップ1810の中でマップされた三角形1910と前記ロボットマップ1820の中でマップされた対応する三角形1920との間のスケール、回転、平行移動、およびスキューを判定するステップと、前記判定されたスケール、回転、平行移動、およびスキューを前記目標レイアウトマップ位置1814、1914に適用して、前記対応する目標ロボットマップ位置1824、1924を判定するステップをさらに含む、請求項30に記載の方法。全てのレイアウトマップ位置1812、1912と前記目標レイアウトマップ位置1814、1914との間の距離を判定するステップと、前記レイアウトマップ位置1812、1912の重心2012を判定するステップと、全ての記録されたロボットマップ位置1822、1922の重心2022を判定するステップと、各レイアウトマップ位置1812、1912について、回転および長さスケーリングを判定して、前記レイアウトマップ重心2012から前記目標レイアウト位置1814、1914まで及ぶ第1のベクター2014を、前記ロボットマップ重心2022から前記目標ロボットマップ位置1824、1924まで及ぶ第2のベクター2024に変換するステップと、をさらに含む、請求項25~31のいずれかに記載の方法。前記ロボット100のセンサシステム400を使用して、前記ロボットマップ1810を生成するステップをさらに含む、請求項25~32のいずれかに記載の方法。前記環境の情景10の上に光を放射するステップと、前記情景10の表面から前記放射光の反射を受けるステップと、各反射面の距離を判定するステップと、前記情景10の3次元深度マップ1700を構築するステップと、をさらに含む、請求項33に記載の方法。前記情景10の上に光のスペックルパターンを放射し、前記情景10から前記スペックルパターンの反射を受け、好ましくは、前記情景10内の基準物体12から反射された前記スペックルパターンの基準画像を記憶するステップをさらに含み、前記基準画像は、前記基準物体12から様々な異なる距離Znで捕捉される、請求項34に記載の方法。前記情景10内の標的物体12から反射された前記スペックルパターンの少なくとも1つの標的画像を捕捉ステップと、前記標的物体12の前記反射面の距離を判定するために、前記少なくとも1つの標的画像を前記基準画像と比較するステップをさらに含む、請求項35に記載の方法。前記標的物体12上の一次スペックルパターンを判定するステップと、前記一次スペックルパターンと前記基準画像の前記スペックルパターンとの間のそれぞれの相互相関および非相関のうちの少なくとも1つを算出するステップをさらに含む、請求項36に記載の方法。前記標的物体12の前記反射面の前記判定された距離に基づいて、前記標的物体12に対して前記ロボット100を動かすステップをさらに含む、請求項36または37に記載の方法。前記光の放射と前記反射光の受信との間の飛行時間を判定するステップと、前記情景10の前記反射面までの距離を判定するステップをさらに含む、請求項34に記載の方法。間欠パルスで前記光を前記情景10の上に放射し、好ましくは、前記放射光パルスの周波数を変化させるステップをさらに含む、請求項34~39のいずれかに記載の方法。可動式ロボット100の動作を制御するための制御システム510を実行するコントローラ500、及び、前記コントローラ500と通信しているセンサシステム400を備える、可動式ロボット100と、前記ロボット100の前記コントローラ500と通信しているクラウドコンピューティングサービス1620と、を備え、前記クラウドコンピューティングサービス1620は、前記コントローラ500からデータ1601を受信し、前記データ1601を処理し、処理された結果1607、1609を前記コントローラ500に返信する、ロボットシステム1600。前記クラウドコンピューティングサービス1620は、クラウド記憶装置1622の中に前記受信したデータ1601、1603を少なくとも一時的に記憶し、随意に、前記データ1601、1603を処理した後に前記記憶したデータ1601、1603を破棄する、請求項41に記載のロボットシステム1600。前記ロボット100は、前記コントローラ500と通信しており、かつ前記ロボット100の周囲の情景10の画像を取得することが可能なカメラ320、および/または前記コントローラ500と通信しており、かつ前記ロボット100の周囲の体積空間、好ましくは、前記ロボット100の移動方向Fの床面5を含む空間体積から点群を取得することが可能な体積点群撮像デバイス450、を備え、前記コントローラ500は、画像データ1601を前記クラウドコンピューティングサービス1620に伝達する、請求項41または42に記載のロボットシステム1600。前記データ1601は、未加工センサデータおよび/または前記センサシステム400からの関連情報を有するデータを備え、前記データ1601は、好ましくは、加速度計データ追跡、走行距離計測データ、およびタイムスタンプのうちの少なくとも1つを有する、画像データを備える、請求項41~43のいずれかに記載のロボットシステム1600。前記クラウドコンピューティングサービス1620は、前記ロボット100の周囲の情景10の画像データ1601を前記コントローラ500から受信し、前記画像データ1601を処理して前記情景10の3-Dマップ1605および/またはモデル1609にする、請求項41~44のいずれかに記載のロボットシステム1600。前記クラウドコンピューティングサービス1620は、2-D高さマップ1607および/または前記モデル1609を前記コントローラ500に提供し、前記クラウドコンピューティングサービス1620は、前記3-Dマップ1605から前記2-D高さマップ1607を算出する、請求項45に記載のロボットシステム1600。前記クラウドコンピューティングサービス1620は、前記画像データ1601を定期的に受信し、閾値の画像データセット1603を蓄積した後に前記受信した画像データ1601を処理する、請求項45または46に記載のロボットシステム1600。前記コントローラ500は、前記コントローラ500と通信しており、好ましくは、前記ロボット100に取り外し可能に取り付け可能である、携帯用コンピューティングデバイス310を通して、無線で前記データ1601を前記クラウドコンピューティングサービス1620に伝達する、請求項41~47のいずれかに記載のロボットシステム1600。前記コントローラ500は、前記データ1601をバッファリングし、定期的に前記データ1601を前記クラウドコンピューティングサービス1620に送信する、請求項41~48のいずれかに記載のロボットシステム1600。前記センサシステム400は、カメラ320、3-D撮像センサ450、ソナーセンサ、超音波センサ、LIDAR、LADAR、光学センサ、および赤外線センサのうちの少なくとも1つを備える、請求項41~49のいずれかに記載のロボットシステム1600。可動式ロボット100を動作させる方法であって、情景10の周囲で前記ロボット100を動かすステップと、前記情景10を示すセンサデータ1601を受信するステップと、前記受信したセンサデータ1601を処理し、処理結果1607、1609を前記ロボット100に伝達するクラウドコンピューティングサービス1620に、前記センサデータ1601を伝達するステップと、前記受信した処理結果1607、1609に基づいて、前記情景10内で前記ロボット100を動かすステップと、を含む、方法。前記ロボット100の周囲の前記情景10の上に光を放射するステップと、前記ロボット100の駆動方向Fに沿った前記情景10の画像であって、a3次元深度画像、bアクティブ照明画像、およびc周囲照明画像のうちの少なくとも1つを含む、画像を捕捉するステップと、をさらに含み、前記センサデータ1601は、前記画像を備え、前記処理結果1607、1609は、前記情景10のマップ1607またはモデル1609を備える、請求項51に記載の方法。前記情景10の上に光のスペックルパターンを放射するステップと、前記情景10内の物体12から前記スペックルパターンの反射を受けるステップと、前記情景10内の基準物体12から反射された前記スペックルパターンの基準画像であって、前記基準物体12から様々な異なる距離Znで捕捉される基準画像を、前記クラウドコンピューティングサービス1620のクラウド記憶装置1622の中に記憶するステップと、前記情景10内の標的物体12から反射された前記スペックルパターンの少なくとも1つの標的画像を捕捉し、前記少なくとも1つの標的画像を前記クラウドコンピューティングサービス1620に伝達するステップと、をさらに含み、前記クラウドコンピューティングサービス1620は、前記標的物体12の反射面の距離ΔZを判定するために、前記少なくとも1つの標的画像を前記基準画像と比較する、請求項52に記載の方法。前記標的物体12上の一次スペックルパターンを判定するステップと、前記一次スペックルパターンと前記基準画像の前記スペックルパターンとの間のそれぞれの相互相関および非相関のうちの少なくとも1つを算出するステップをさらに含む、請求項53に記載の方法。前記クラウドコンピューティングサービス1620は、クラウド記憶装置1622の中に前記受信したセンサデータ1601を少なくとも一時的に記憶し、随意に、前記データ1601を処理した後に前記記憶したセンサデータ1601を破棄する、請求項51~54のいずれかに記載の方法。前記センサデータ1601は、関連センサシステムデータを有する画像データを備え、好ましくは、前記センサシステムデータは、加速度計データ追跡、走行距離計測データ、およびタイムスタンプのうちの少なくとも1つを備える、請求項51~55のいずれかに記載の方法。前記クラウドコンピューティングサービス1620は、前記ロボット100から画像データ1601を受信し、前記画像データ1601を処理して前記情景10の3-Dマップ1605および/またはモデル1609にする、請求項51~56のいずれかに記載の方法。前記クラウドコンピューティングサービス1620は、2-D高さマップ1607および/または前記モデル1609を前記ロボット100に提供し、前記クラウドコンピューティングサービス1620は、前記3-Dマップ1605から前記2-D高さマップ1607を算出する、請求項57に記載の方法。前記センサデータ1601を前記クラウドコンピューティングサービス1620に定期的に伝達するステップをさらに含み、前記クラウドコンピューティングサービス1620は、閾値のセンサデータセット1603を蓄積した後に、前記受信した画像データ1601を処理する、請求項51~56のいずれかに記載の方法。前記ロボット100と通信しており、好ましくは、前記ロボット100に取り外し可能に取り付け可能である、携帯用コンピューティングデバイス310を通して、無線で前記センサデータ1601を前記クラウドコンピューティングサービス1620に伝達するステップをさらに含む、請求項51~59のいずれかに記載の方法。可動式ロボット100をナビゲートする方法であって、リアルタイム捕捉速度で、前記ロボット100の運動の軌跡に沿った前記ロボット100の周囲の情景10の高密度画像1611のストリーミングシーケンス1615を捕捉するステップと、注釈1613を前記高密度画像1611のうちの少なくともいくつかと関連付けるステップと、前記リアルタイム捕捉速度よりも遅い送信速度で、前記高密度画像1611および注釈1613を遠隔サーバ1620に送信するステップと、処理時間間隔後に前記遠隔サーバ1620からデータセット1607、1617を受信するステップであって、前記データセット1607、1617は、高密度画像1611の前記シーケンス1615および対応する注釈1613の少なくとも一部分に由来し、かつそれを表し、高密度画像1611の前記シーケンス1615の未加工画像データを除外するデータセット1607、1617である、前記受信するステップと、前記受信したデータセット1607、1617に基づいて、前記情景10に対して前記ロボット100を移動させるステップと、を含む、方法。前記高密度画像1611および注釈1613をローカルサーバおよびバッファ1640に送信し、次いで、前記リアルタイム捕捉速度よりも遅い送信速度で、前記高密度画像1611および注釈1613を遠隔サーバ1620に送信するステップをさらに含む、請求項61に記載の方法。前記注釈1613は、タイムスタンプであって、好ましくは、前記高密度画像1611のうちの少なくともいくつかに対応する絶対時間基準のタイムスタンプと、姿勢関連センサデータであって、好ましくは、走行距離計測データ、加速度計データ、傾斜データ、および角速度データのうちの少なくとも1つを含む、姿勢関連センサデータと、を備える、請求項61または62に記載の方法。注釈1613を関連付ける前記ステップは、危険事象を反映する注釈1613を、前記ロボット100の危険応答に対して時間間隔内に捕捉される高密度画像1611と関連付けるステップを含む、請求項61~63のいずれかに記載の方法。注釈1613を関連付ける前記ステップは、キーフレーム識別子を前記高密度画像1611のサブセットと関連付けるステップを含む、請求項61~64のいずれかに記載の方法。前記注釈1613は、高密度画像1611の前記ストリーミングシーケンス1615の高密度画像1611の間で追跡される特徴の構造復元および運動復元に由来する、低密度の一式の3-D点を備える、請求項61~65のいずれかに記載の方法。前記注釈1613は、カメラパラメータを備え、好ましくは、前記カメラパラメータは、前記低密度の一式の3-D点の個々の3-D点に対するカメラの姿勢を含む、請求項66に記載の方法。前記注釈1613は、前記情景10の横断可能および横断不可能領域の標識を備える、請求項61~67のいずれかに記載の方法。前記データセット1607、1617は、前記高密度画像1611から抽出される1つ以上の質感マップ1607、および/または前記情景10の前記高密度画像1611内の特徴を表す地形マップ1607を備える、請求項61~68のいずれかに記載の方法。前記データセット1607、1617は、前記情景10の捕捉される新しい高密度画像1611内の特徴を分類するための訓練された分類子1625を備える、請求項61~69のいずれかに記載の方法。可動式ロボット環境データを抽象化する方法であって、受信速度で、可動式ロボット100からロボット環境10の高密度画像1611のシーケンス1615を受信するステップであって、前記高密度画像1611は、リアルタイム捕捉速度で前記可動式ロボット100の運動の軌跡に沿って捕捉され、前記受信速度は、前記リアルタイム捕捉速度よりも遅い、前記受信するステップと、前記高密度画像1611の前記シーケンス1615の中の前記高密度画像1611のうちの少なくともいくつかと関連付けられる注釈1613を受信するステップと、前記高密度画像1611のうちの少なくともいくつかの中の高密度データを、前記高密度画像1611の前記シーケンス1615の少なくとも一部分を表すデータセット1607、1617まで低減させるためのバッチ処理タスクをディスパッチするステップと、前記データセット1617を前記可動式ロボット100に伝送するステップであって、前記データセット1607、1617は、前記高密度画像1611の前記シーケンス1615の未加工画像データを除外する、前記伝送するステップと、を含む、方法。前記バッチ処理タスクは、前記高密度画像1611の前記シーケンス1615を処理して前記ロボット環境10の高密度3-Dモデル1609にするステップと、前記高密度3-Dモデル1609を処理して2-D位置および床面Gからの少なくとも1つの高さの座標系用の地形モデル1607にするステップと、を含む、請求項71に記載の方法。前記地形モデル1607は、2-D位置および床面Gからの複数の占有および非占有高さ境界の座標系のためのものである、請求項72に記載の方法。前記バッチ処理タスクは、複数のロボット環境10に対応する高密度画像シーケンス1615、1615aを蓄積するステップを含む、請求項71~73のいずれかに記載の方法。前記バッチ処理タスクは、複数の分類子1625および/または高密度画像1611の前記シーケンス上で1つ以上の分類子1625を訓練するステップを含む、請求項71~74のいずれかに記載の方法。前記バッチ処理タスクは、危険事象を反映する注釈1613を、前記可動式ロボット100の危険応答に対して時間間隔内に捕捉される高密度画像1611と関連付けるステップと、前記関連付けられた危険事象注釈1613および対応する高密度画像1611を訓練データとして使用して、危険関連高密度画像1611の分類子1625を訓練し、好ましくは、分類子1625のモデルパラメータのデータセット1603、1607、1617を提供するステップと、を含む、請求項71~75のいずれかに記載の方法。前記分類子1625は、分類のための少なくとも1つの超平面を構築する、少なくとも1つのサポートベクターマシンを含み、前記モデルパラメータは、データセット1603、1607、1617を危険関連分類に分類することができる訓練された超平面を画定する、請求項76に記載の方法。前記モデルパラメータは、サポートベクターマシンのカーネルを画定する十分なパラメータと、ソフトマージンパラメータとを含む、請求項77に記載の方法。前記バッチ処理タスクは、処理される前記高密度画像シーケンス1615、1615aのスケールに比例する、拡張性のある複数の仮想プロセス1621をインスタンス化するステップを含み、前記仮想プロセス1621のうちの少なくともいくつかは、前記データセット1607、1617の伝送後に解放される、請求項71~78のいずれかに記載の方法。前記バッチ処理タスクは、記憶される前記高密度画像シーケンス1615、1615aのスケールに比例する、拡張性のある複数の仮想記憶1622をインスタンス化するステップを含み、前記仮想記憶1622のうちの少なくともいくらかは、前記データセット1607、1617の伝送後に解放される、請求項71~79のいずれかに記載の方法。前記バッチ処理タスクは、前記可動式ロボット100への地理的近接性および/または複数の可動式ロボット100からのネットワークトラフィックのうちの1つに従って、拡張性のある複数の仮想サーバ1621を分散させるステップを含む、請求項71~80のいずれかに記載の方法。可動式ロボットは、人と対話またはやりとりして、在宅支援から商業支援、およびその他に及ぶ多数のサービスを提供することができる。在宅支援の例では、可動式ロボットは、投薬計画の維持、移動支援、通信支援例えば、テレビ会議、電話通信、インターネットアクセス等、住居もしくは現場監視屋内および/または屋外、人監視、および/または個人用緊急対応システムPERSの提供を含むが、これらに限定されない、高齢者の日常生活を支援することができる。商業支援では、可動式ロボットは、テレビ会議例えば、病院状況における、売り場専用端末、対話型情報/マーケティング端末等を提供することができる。図1~図2を参照すると、いくつかの実現形態では、可動式ロボット100は、順駆動方向Fを画定するロボット本体110またはシャーシを含む。また、ロボット100は、それぞれがロボット本体110によって支持され、かつロボット100の動作および移動を協調させるコントローラ500と通信している、駆動システム200と、インターフェースモジュール300と、センサシステム400とも含む。電源105例えば、バッテリ単数または複数は、ロボット本体110によって運搬され、これらの構成要素のそれぞれと電気通信し、必要に応じてそれらに電力を送達することができる。例えば、コントローラ500は、1000MIPS100万命令/秒超の能力があるコンピュータを含み得、電源1058は、3時間より長くコンピュータに電力を供給するのに十分なバッテリを提供する。示される実施例では、ロボット本体110は、基部120と、基部120から上向きに延在する少なくとも1つの脚部130と、少なくとも1つの脚部130によって支持される胴部140とを含む。基部120は、駆動システム200の少なくとも部分を支持してもよい。また、ロボット本体110は、胴部140によって支持される首部150も含む。首部150は頭部160を支持し、頭部160はインターフェースモジュール300の少なくとも一部分を支持する。基部120は、機械的安定性を維持するために、基部120の低重心CGBおよびロボット100の低全体重心CGRを維持するのに十分な重りを含む例えば、電源105バッテリを支持することによって。図3および図4A~図4Cを参照すると、いくつかの実現形態では、基部120は、三角対称形状例えば、上面図で三角形状を画定する。例えば、基部120は、三角形状の基部120例えば、図4A参照の各脚部に対応する第1、第2、および第3の基部本体部分124a、124b、124cを有する基部本体124を支持する、基部シャーシ122を含んでもよい。各基部本体部分124a、124b、124cは、物体と接触するのに応えて、基部シャーシ122に対して独立して移動することができるように、基部シャーシ122によって移動可能に支持することができる。基部120の三角対称形状は、ロボット100の周囲360°のぶつかり検出を可能にする。各基部本体部分124a、124b、124cは、基部シャーシ122に対する対応する基部本体部分124a、124b、124cの移動を検出する、関連接触センサ例えば、容量センサ、リードスイッチ等を有することができる。いくつかの実現形態では、駆動システム200は、ロボット100の全方向性および/またはホロノミック運動制御を提供する。本明細書で使用される場合、全方向性という用語は、実質的に任意の平面方向に移動する能力、すなわち、左右横方向、前/後、および回転移動する能力を指す。これらの方向は、本明細書では、概して、それぞれx、y、およびθzとして参照される。さらに、ホロノミックという用語は、文献における用語の使用と実質的に一致し、3つの平面自由度を伴う、平面方向に移動する能力、すなわち、2つの平行移動および1つの回転を指す。したがって、ホロノミックロボットは、3つの平面速度前/後、横方向、および回転の実質的に任意の比率で構成される速度で平面方向に移動する能力、ならびに3つの比率を実質的に継続的に変化させる能力を有する。ロボット100は、車輪可動性を使用して、人間環境例えば、典型的に二足歩行の歩行居住者向けに設計された環境内で動作することができる。いくつかの実現形態では、駆動システム200は、垂直軸Zを中心に均等に離間した例えば、120度離れている第1、第2、および第3の駆動車輪210a、210b、210cすなわち、三角対称を含むが、しかしながら、他の配設も同様に可能である。図5Aおよび図5Bを参照すると、駆動車輪210a、210b、210cは、ホロノミック駆動システム200の機動性を助長し得る、横方向に弓状の転がり表面すなわち、転がり方向DRを横断する、またはそれに対して直角な方向に湾曲した輪郭を画定してもよい。各駆動車輪210a、210b、210cは、駆動車輪210a、210b、210cを他の駆動モータ220a、220b、220cから独立して順および/または逆方向に駆動することができる、それぞれの駆動モータ220a、220b、220cに連結される。各駆動モータ220a~cは、コントローラ500に車輪回転フィードバックを提供する、それぞれのエンコーダ212図8Cを有することができる。いくつかの実施例では、各駆動車輪210a、210b、210cは、正三角形の3つの点のうちの1つ上またはその付近に搭載され、それぞれの三角形端部の角の二等分線に対して直角な駆動方向順および逆方向を有する。順駆動方向Fを伴う三角対称ホロノミック基部120の駆動は、閉じ込めまたは散乱物から自律的に脱出し、脱出が解決された後に順駆動方向Fに沿って駆動するように次いで回転および/または平行移動するために、ロボット100が非順駆動方向に移行することを可能にする。図5Cおよび5Dを参照すると、いくつかの実現形態では、各駆動車輪210は、それぞれ、駆動車輪210の回転方向DRと垂直な回転方向Drを有する、ローラ230の内側および外側列232、234を含む。ローラ230の列232、234は、例えば、内側列232の1つのローラ230が外側列234の2つの隣接ローラ230の間で同等に位置付けられるように交互にすることができる。ローラ230は、駆動車輪210の駆動方向と垂直な無限滑動を提供する。ローラ230がともに、駆動車輪210の円形または略円形周囲を画定するように、ローラ230は、それらの回転方向Drと垂直な弓形例えば、凸状外面235を画定する。ローラ230の外形は、駆動車輪210の全体的な外形に影響を及ぼす。例えば、ローラ230は、ともに例えば、静止摩擦のためのトレッドとして駆動車輪210の波形回転表面を画定する、弓形の外側ローラ表面235を画定してもよい。しかしながら、駆動車輪210の円形の全体的回転表面を画定する輪郭を有するようにローラ230を構成することにより、ロボット100が、車輪のトレッドで垂直に振動する代わりに、平面上で平滑に移動することを可能にする。角度を成して物体に接近するときに、半径rのローラ230の交互列232、234を、駆動車輪210の車輪半径Rと同じくらい高い、またはほぼ同じくらい高い物体を登るために、トレッドとして使用することができる。図3~図5Bに示される実施例では、第1の駆動車輪210aは、順駆動方向Fに沿った先端駆動車輪として配設され、残りの2つの駆動車輪210b、210cは、後方から追従する。この配設では、前進するために、コントローラ500は、第1の駆動車輪210aを順駆動方向Fに沿って滑らせる一方で、第2および第3の駆動車輪210b、210cを同等の速度で順転方向に駆動させる、駆動コマンドを発行してもよい。さらに、この駆動車輪配設は、ロボット100が急停止する例えば、順駆動方向Fに対する急激な負の加速を発生させることを可能にする。これは、3車輪設計の自然な動的不安定性によるものである。順駆動方向Fが2つの順駆動車輪の間の角の二等分線に沿ったものである場合、急停止は、ロボット100を転倒させ得るトルクを生じさせ、その2つの前車輪の上で枢動させる。代わりに、1つの駆動車輪210aを用いた前方への移動は、急速停止する必要がある場合に、必然的に、ロボット100が前方に倒れることから支持する、またはそれを防止する。しかしながら、停止から加速する際、コントローラ500は、ロボット100のその全体重心CGRからの慣性モーメントIを考慮してもよい。駆動システム200のいくつかの実現形態では、各駆動車輪210a、210b、210は、ロボット100のXおよびY軸に直交する垂直軸Zと半径方向に整合される転がり方向DRを有する。第1の駆動車輪210aは、順駆動方向Fに沿った先端駆動車輪として配設することができ、残りの2つの駆動車輪210b、210cは、後方に追従する。この配設では、前進させるために、コントローラ500は、第1の駆動車輪210aを順転方向に駆動させ、第2および第3の駆動車輪210b、210cを第1の駆動車輪210aと同等の速度で逆方向に駆動させる、駆動コマンドを発行してもよい。他の実現形態では、駆動システム200は、2つの駆動車輪210a、210bの間の角度の角の二等分線が、ロボット100の順駆動方向Fと整合されるように位置付けられる、第1および第2の駆動車輪210a、210bを有するように配設することができる。この配設では、前進させるために、コントローラ500は、第1および第2の駆動車輪210a、210bを順転方向に同等の速度で駆動させ、一方、第3の駆動車輪210cを逆方向に駆動させる、または空転状態に保ち、第1および第2の駆動車輪210a、210bの後方に引きずられさせる、駆動コマンドを発行してもよい。前進しながら左または右に曲がるために、コントローラ500は、対応する第1または第2の駆動車輪210a、210bを相対的により速い/より遅い速度で駆動させるコマンドを発行してもよい。他の駆動システム200の配設も同様に使用することができる。駆動車輪210a、210b、210cは、円筒形、円形、楕円形、または多角形の輪郭を画定してもよい。再び図1~図3を参照すると、基部120は、基部120からZ方向に上向きに延在する、少なくとも1つの脚部130を支持する。脚部単数または複数130は、基部120に対して胴部140を上昇および降下させるために、可変高さを有するように構成されてもよい。いくつかの実現形態では、各脚部130は、相互に対して移動する例えば、入れ子状伸縮、線形、および/または角移動、第1および第2の脚部分132、134を含む。示される実施例では、第2の脚部分134は、相互の中および外へ、ならびに相対的により大きい基部押出部の外へ入れ子状に伸縮移動する、連続的により小さい直径の押出部を有するというよりはむしろ、第1の脚部分132の上に入れ子状に伸縮移動し、したがって、第2の脚部分134に沿って他の構成要素を定置すること、および潜在的に、第2の脚部分134と共に基部120の相対的近接に移動させることを可能にする。脚部130は、第1の脚部分132に対して第2の脚部分134を移動させるためのアクチュエータアセンブリ136図8Cを含んでもよい。アクチュエータアセンブリ136は、コントローラ500に位置フィードバックを提供する、リフトモータ138bおよびエンコーダ138cと通信している、モータドライバ138aを含んでもよい。一般的に、入れ子状伸縮配設は、脚部130全体の重心CGLを可能な限り低く保つために、基部120に、相対的により大きい押出部の外へ上に入れ子状に伸縮移動する、連続的により小さい直径の押出部を含む。さらに、脚部130が完全に延在される際に基部120が受ける、より大きいトルクに対処するために、より頑丈な、および/またはより大きい構成要素を底部に定置することができる。しかしながら、この手法は、2つの問題を提示する。第一に、相対的により小さい構成要素が脚部130の上部に定置される際、いずれの雨、粉塵、または他の微粒子も、押出部を流れる、または転がり落ちる傾向があり、押出部の間の空間に入り込み、したがって押出部の入れ子を詰まらせる。これは、依然として脚部130の完全な可動性/関節運動を維持することを試みる一方での、非常に困難な封止問題をもたらす。第二に、ロボット100上に搭載物またはアクセサリを搭載することが望まれる場合がある。アクセサリを搭載する1つの一般的な場所は、胴部140の上部である。第2の脚部分134が第1の脚部分の外に入れ子状に伸縮移動する場合、アクセサリおよび構成要素は、それらが胴部140と共に移動する必要がある場合、第2の脚部分134全体の上方にしか搭載することができない。そうでなければ、第2の脚部分134上に搭載されるいずれの構成要素も、脚部130の入れ子状伸縮移動を制限することとなる。第2の脚部分134を第1の脚部分132上で入れ子状に伸縮移動させることによって、第2の脚部分134は、基部120に対して垂直に移動することができる、追加の搭載物取り付け点を提供する。このタイプの配設は、水または浮遊微粒子が、脚部分132と脚部分134との間の空間に入ることなく、胴部140のそれぞれの脚部分132、134例えば、押出部の外側上を流れ落ちるようにする。これは、脚部130のいずれの接合部も封止することを大いに簡単にする。さらに、胴部140および/または第2の脚部分134の搭載物/アクセサリ搭載特徴は、脚部130がどれくらい延在されているかに関わらず、常に露出され、利用可能である。図3および図6Aを参照すると、脚部単数または複数130は、基部120の上および上方に延在する、段部142を有してもよい、胴部140を支持する。示される実施例では、胴部140は、段部142の少なくとも一部を形成する、下を向く表面または底面144例えば、基部を向くと、反対の上を向く表面または上面146とを有し、その間に延在する側面148を伴う。胴部140は、脚部単数または複数130によって支持される中心部分141と、脚部単数または複数130の範囲を横方向に越えて横方向に延在する周辺遊離部分143とを有する、円形状もしくは楕円形状等の様々な形状または幾何学的形状を画定してもよく、このようにして、下を向く表面144を画定する張り出し部分を提供する。いくつかの実施例では、胴部140は、基部120上に脚部単数または複数130を越えて延在する張り出し部分を提供する、段部を画定する、多角形または他の複雑な形状を画定する。ロボット100は、搭載物を受容するために、1つ以上のアクセサリポート170例えば、機械的および/または電気的相互接続点を含んでもよい。アクセサリポート170は、受容される搭載物が、センサシステム400のセンサ例えば、胴部140の底面144および/または上面146上等のを塞がない、または遮らないように、位置することができる。いくつかの実現形態では、図6Aに示されるように、胴部140は、例えば、バスケット360内に搭載物を受容して、胴部140の前方部分147またはロボット本体110の他の部分上のセンサを遮らないように、胴部140の後方部分149上に、1つ以上のアクセサリポート170を含む。胴部140の外面は、ユーザからタッチコマンドを受けとるように、ユーザによる接触またはタッチに敏感であってもよい。例えば、ユーザが胴部140の頂面146に触れるときに、ロボット100は、床に対して胴部の高さHTを下げることによって例えば、胴部140を支持する脚部130の高さHLを減少させることによって応答する。同様に、ユーザが胴部140の底部表面144に触れるときに、ロボット100は、床に対して胴部140を上昇させることによって例えば、胴部140を支持する脚部130の高さHLを増加させることによって応答する。さらに、胴部140の側面148の前方、後方、右、または左部分上でユーザタッチを受けとると、ロボット100は、受けとったタッチコマンドの対応する方向例えば、それぞれ、後方、前方、左、および右に移動することによって応答する。胴部140の外面は、ユーザ接触を検出する、コントローラ500と通信している容量センサを含んでもよい。図6Bおよび6Cを参照すると、いくつかの実現形態では、胴部140は、上部パネル145t、底部パネル145b、前面パネル145f、裏面パネル145b、右パネル145r、および左パネル145lを有する、胴部本体145を含む。各パネル145t、145b、145f、145r、145r、145lは、他のパネルに対して独立して移動してもよい。さらに、各パネル145t、145b、145f、145r、145r、145lは、運動、および/またはそれぞれのパネルとの接触を検出する、コントローラ500と通信している関連運動および/または接触センサ147t、147b、147f、147r、147r、147lを有してもよい。再び図1~図3、および図7を参照すると、胴部140は、胴部140に対する頭部160の回動および傾斜を提供する、首部150を支持する。示される実施例では、首部150は、回転部152と、傾斜部154とを含む。回転部152は、約90°~約360°の、ある範囲の角移動θR例えば、Z軸を中心としたを提供してもよい。他の範囲も同様に可能である。さらに、いくつかの実施例では、回転部152は、頭部160とロボット100の残りの部分との間の電気的通信を維持した状態で、無限回数の回転の、胴部140に対する頭部150の連続する360°の回転を可能にする、電気的コネクタまたは接触を含む。傾斜部154は、頭部160とロボット100の残りの部分との間の電気的通信を維持した状態で、胴部140に対する頭部160の回転を可能にする、同一もしくは同様の電気的コネクタまたは接触を含んでもよい。回転部152は、リング153例えば、歯状リングラックに連結される、またはそれと嵌合する、回転部モータ152mを含んでもよい。傾斜部154は、回転部152から独立して、頭部を胴部140に対して角度θTに移動させてもよい例えば、Y軸を中心に。いくつかの実施例では、傾斜部154は、頭部160をZ軸に対して±90°の角度θTに移動させる、傾斜部モータ155を含む。±45°等の他の範囲も同様に可能である。ロボット100は、脚部単数または複数130、胴部140、首部150、および頭部160が、ロボット100の安定した可動性を維持するために、基部120の周辺内に留まるように構成されてもよい。図8Fに示される例となる回路図では、首部150は、回転部152および傾斜部154を、対応するモータドライバ156a、156b、およびエンコーダ158a、158bと共に含む、回動-傾斜アセンブリ151を含む。頭部160は、ユーザからタッチコマンドを受けとるように、ユーザによる接触またはタッチに敏感であってもよい。例えば、ユーザが頭部160を前方に引くときに、頭部160は、受動抵抗を伴って前方に傾斜し、次いで、位置を保持する。さらに、ユーザが頭部160を垂直に下方へ押した/引いた場合、胴部140が、頭部160を下げるように脚部130の長さの縮小を介して下がってもよい。頭部160および/または首部150は、ユーザ接触または操作を感知する、ひずみゲージおよび/または接触センサ165図7を含んでもよい。図8A~図8Gは、ロボット100の例となる回路図を提供する。図8A~図8Cは、ソナー近接センサ410および段差近接センサ420等の近接センサと、接触センサ430と、レーザスキャナ440と、ソナースキャナ460と、駆動システム200とを収容してもよい、基部120の例となる回路図を提供する。また、基部120は、コントローラ500と、電源105と、脚部アクチュエータアセンブリ136とも収容してもよい。胴部140は、マイクロコントローラ140cと、マイクロフォン単数または複数330と、スピーカ単数または複数340と、走査3-D画像センサ450aと、コントローラ500がユーザの接触またはタッチを受けとり、それに応答する例えば、胴部140を基部120に対して移動させる、首部150を回動および/もしくは傾斜させる、ならびに/またはこれらに応えて駆動システム200にコマンドを発行することによってことを可能にする、胴部タッチセンサシステム480とを収容してもよい。首部150は、対応するモータドライバ156aおよびエンコーダ158aを有する回動モータ152と、対応するモータドライバ156bおよびエンコーダ158bを有する傾斜モータ154とを含んでもよい、回動-傾斜アセンブリ151を収容してもよい。頭部160は、1つ以上のウェブパッド310と、カメラ320とを収容してもよい。図1~3および9を参照すると、いくつかの実現形態では、頭部160は、インターフェースモジュール300の1つ以上の部分を支持する。頭部160は、それぞれタッチスクリーン312を持ち得る、ウェブパッドまたはタブレットPCとも呼ばれる、1つ以上のコンピューティングタブレット310を解放可能に受容するためのドック302を含んでもよい。ウェブパッド310は、前方、後方、または上方に配向されてもよい。いくつかの実現形態では、ウェブパッド310は、タッチスクリーン、随意の入出力例えば、ボタンおよび/またはマイクロUSB等のコネクタ、プロセッサ、およびプロセッサと通信しているメモリを含む。例となるウェブパッド310は、Apple,Inc.によるiPadを含む。いくつかの実施例では、ウェブパッドおよび10は、コントローラ500として機能するか、またはコントローラ500およびロボット100の制御を支援する。いくつかの実施例では、ドック302は、それに固定して取り付けられた第1のコンピューティングタブレット310a例えば、ギガバイト速度等の比較的高い帯域幅でのデータ転送用の有線インターフェースと、それに取り外し可能に取り付けられた第2のコンピューティングタブレット310bとを含む。第2のウェブパッド310bは、図9に示されるように、第1のウェブパッド310aを覆って受容されてもよく、または第2のウェブパッド310bは、第1のウェブパッド310aに対して頭部160の対向側または反対側で受容されてもよい。さらなる実施例では、頭部160は、それに固定されるか、または取り外し可能に取り付けられるかのいずれかであり得る、単一のウェブパッド310を支持する。タッチスクリーン312は、ユーザ入力を受けとり、タッチ対話型であるグラフィカルユーザインターフェースを提供するために、その上のユーザタッチの点を検出、監視、および/または再現してもよい。いくつかの実施例では、ウェブパッド310は、ロボット100から除去されたときをユーザが知ることを可能にする、タッチスクリーン呼び出しを含む。いくつかの実現形態では、ロボット100は、ロボット本体110の1つ以上の部分の上に複数のウェブパッドドック302を含む。図9に示される実施例では、ロボット100は、随意に、脚部130および/または胴部140上に配置される、ウェブパッドドック302を含む。これは、例えば、異なる身長のユーザに適応する、異なる視点でウェブパッド310のカメラを使用してビデオを捕捉する、および/またはロボット100上で複数のウェブパッド310を受容するように、ユーザが、ロボット100上の異なる高さでウェブパッド310をドッキングすることを可能にする。インターフェースモジュール300は、例えば、テレビ会議のために頭部160の高い視点からビデオを捕捉するために使用することができる、頭部160上に配置されたカメラ320を含んでもよい例えば、図2参照。図3に示される実施例では、カメラ320は、首部150上に配置される。いくつかの実施例では、カメラ320は、ウェブパッド310、310aが頭部160から着脱された、またはドックから出されたときのみ動作させられる。ウェブパッド310、310aがドック302の中でおよび随意にカメラ320を覆って頭部160上に取り付けられた、またはドッキングされたときに、ロボット100は、ビデオを捕捉するためにウェブパッド310aのカメラを使用してもよい。そのような場合において、カメラ320は、ドッキングされたウェブパッド310の後ろに配置されてもよく、ウェブパッド310が頭部160から着脱された、またはドックから出されたときにアクティブ状態になり、ウェブパッド310が頭部160上に取り付けられた、またはドッキングされたときに非アクティブ状態になる。ロボット100は、インターフェースモジュール300を通して例えば、24fpsで例えば、ウェブパッド310、カメラ320、マイクロフォン320、および/またはスピーカ340を使用してテレビ会議を提供することができる。テレビ会議は、多人数であり得る。ロボット100は、ユーザに対面するように頭部160を機動させることによって、テレビ会議の両当事者の間でアイコンタクトを提供することができる。また、ロボット100は、5度未満の凝視角例えば、頭部160の前方面に垂直な軸から離れた角度を有することができる。ロボット100上の少なくとも1つの3-D画像センサ450および/またはカメラ320は、ボディランゲージ等の実物大画像を捕捉することができる。コントローラ500は、例えば、50ms未満の差でオーディオおよびビデオを同期させることができる。図10A~10Eに示される実施例では、ロボット100は、胴部140を上昇または下降させることにより頭部160および/またはカメラ320上のウェブパッド310の高さを調整すること、および/または頭部160を回動および/または傾斜することによって、立っている、または座っている人にテレビ会議を提供することができる。カメラ320は、ウェブパッド310とは独立して、少なくとも1つの自由度内で移動可能であり得る。いくつかの実施例では、カメラ320は、地面から3フィート約91cm超であるが、ウェブパッド310の表示領域の上端から、ウェブパッドの高さの10パーセントを超えずに位置付けられた、対物レンズを有する。さらに、ロボット100は、ロボット100の周囲の近接写真またはビデオを取得するようにカメラ320をズームすることができる。頭部160は、テレビ会議を表示するウェブパッド310の付近で頭部160から音を発するよう、1つ以上のスピーカ340を含んでもよい。いくつかの実施例では、ロボット100は、図10Eに示されるように、例えば、タッチスクリーンを介してウェブパッド310の中へユーザ入力を受けとることができる。いくつかの実現形態では、ウェブパッド310は、ディスプレイまたはモニタであるが、他の実現形態では、ウェブパッド310は、タブレットコンピュータである。ウェブパッド310は、高い双方向性を提供する、タッチスクリーン等の容易かつ直観的な制御を有することができる。ウェブパッド310は、少なくとも1つの自由度で移動可能な150平方インチ約968平方cm以上の表示領域を有する、モニタディスプレイ312例えば、タッチスクリーンを有してもよい。ロボット100は、いくつかの実施例では、医師と患者および/または他の医師または看護師との間でテレビ会議を提供することによって、EMR統合を提供することができる。ロボット100は、通過診察器具を含んでもよい。例えば、ロボット100は、テレビ会議ユーザ例えば、医師に聴取を伝えるように構成される、聴診器を含んでもよい。他の実施例では、ロボットは、医療データを遠隔ユーザ医師に伝送するように、電子聴診器、耳鏡、および超音波等のクラスII医療デバイスへの直接接続を可能にする、コネクタ170を含む。図10Bに示される実施例では、ユーザは、ロボット100の遠隔操作、例えば、ウェブパッド310のカメラおよびマイクロフォンを使用したテレビ会議、および/またはウェブパッド310上のソフトウェアアプリケーションの利用のために、頭部160上のウェブパッドドック302からウェブパッド310を取り外してもよい。ロボット100は、ウェブパッド310がウェブパッドドック302から着脱されている間に、テレビ会議、ナビゲーション等のための異なる視点を取得するように、頭部160上に第1および第2のカメラ320a、320bを含んでもよい。コントローラ500上で実行可能である、および/またはコントローラ500と通信している対話型アプリケーションは、ロボット100上で1つよりも多くのディスプレイを必要とし得る。ロボット100と関連する複数のウェブパッド310は、例えば、内蔵型カメラを有するウェブパッド310用のFaceTime、Telestration、HD外観の異なる組み合わせを提供することができ、ロボット100を遠隔で制御するための遠隔オペレータ制御ユニットOCUの役割を果たす、および/またはローカルユーザインターフェースパッドを提供することができる。再び図6Aを参照すると、インターフェースモジュール300は、音声入力を受けとるためのマイクロフォン330例えば、またはマイクロフォンアレイと、音声出力を送達するためのロボット本体110上に配置された1つ以上のスピーカ340とを含んでもよい。マイクロフォン330およびスピーカ340はそれぞれ、コントローラ500と通信してもよい。いくつかの実施例では、インターフェースモジュール300は、パンフレット、緊急情報、家庭用品具、および他のアイテムを保持するように構成され得る、バスケット360を含む。図1~図4C、図11Aおよび図11Bを参照すると、信頼性があり、かつ強固な自律的移動を達成するために、センサシステム400は、ロボット100が、その環境内でとる動作についての知性的決定を行うことを可能にするのに十分なロボットの環境の知覚を生じさせるように、相互と併用して使用することができる、いくつかの異なるタイプのセンサを含んでもよい。センサシステム400は、ロボット本体110によって支持される、障害物検出障害物回避ODOAセンサ、通信センサ、ナビゲーションセンサ等を含んでもよい、1つ以上のタイプのセンサを含んでもよい。例えば、これらのセンサには、近接センサ、接触センサ、3次元3D撮像/深度マップセンサ、カメラ例えば、可視光および/または赤外線カメラ、ソナー、レーダ、LIDARLightDetectionAndRanging、離れた標的の距離および/または他の情報を発見するために、散乱光の特性を計測する、光学遠隔感知を必要とする可能性がある、LADARLaserDetectionandRanging等が挙げられるが、これらに限定されない。いくつかの実現形態では、センサシステム400は、測距ソナーセンサ410例えば、基部120の周辺に9つと、近接段差検出器420と、接触センサ430と、レーザスキャナ440と、1つ以上の3-D撮像/深度センサ450と、撮像ソナー460とを含む。センサをロボットの基本骨格上に定置することに伴う、いくつかの課題が存在する。第一に、センサは、それらがロボット100の周囲の最大対応範囲関心領域を有するように定置する必要がある。第二に、センサは、ロボット100自体がセンサを絶対的に最小限しか塞がないように定置しなければならない場合がある、本質的に、センサを、それらがロボット自体によって覆い隠されるように定置することはできない。第三に、センサの定置および搭載は、基本骨格の工業設計の残りの部分に対して邪魔にならないべきである。審美性の観点から、センサが目立たないように搭載されたロボットは、そうではないものより魅力的であると見なすことができる。実用性の観点から、センサは、通常のロボット動作を妨げない障害物上に引っかかる等ように搭載されるべきである。いくつかの実現形態では、センサシステム400は、コントローラ500と通信しており、かついずれの近くの、または侵入する障害物も検出するために、ロボット100の1つ以上の域または部分内に配設される例えば、ロボット本体110の基部本体部分124a、124b、124c上またはその付近に配置される、一式の近接センサ410、420またはそのアレイを含む。近接センサ410、420は、物体がロボット100の所与の範囲内にある際に、コントローラ500に信号を提供する、収束赤外線IR放射部-センサ要素、ソナーセンサ、超音波センサ、および/または撮像センサ例えば、3D深度マップ画像センサであってもよい。図4A~図4Cに示される実施例では、ロボット100は、基部本体120の周囲に配置され例えば、実質的に等距離に、かつ上向き視界を伴って配設される、ソナータイプの近接センサ410のアレイを含む。第1、第2、および第3のソナー近接センサ410a、410b、410cは、第1の前方基部本体部分124a上またはその付近に配置され、第1の基部本体124aの半径方向に最も外側の縁部125aに、ソナー近接センサのうちの少なくとも1つを有する。第4、第5、および第6のソナー近接センサ410d、410e、410fは、第2の右側基部本体部分124b上またはその付近に配置され、第2の基部本体124bの半径方向に最も外側の縁部125bの付近に、ソナー近接センサのうちの少なくとも1つを有する。第7、第8、および第9のソナー近接センサ410g、410h、410iは、第3の右側基部本体部分124c上またはその付近に配置され、第3の基部本体124cの半径方向に最も外側の縁部125cの付近に、ソナー近接センサのうちの少なくとも1つを有する。この構成は、少なくとも3つの検出域を提供する。いくつかの実施例では、基部本体120の周囲に配置される一式のソナー近接センサ410例えば、410a~410iは、上例えば、実質的にZ方向を向くように配設され、任意選択により、Z軸から離れるように外向きに角度付けられ、したがって、ロボット100の周囲に検出カーテン412を生じさせる。各ソナー近接センサ410a~410iは、ソナー放出を上向きに、または少なくともロボット本体110の他の部分に向かわないように例えば、ロボット本体110のそれ自体に対する移動を検出しないように誘導する、シュラウドまたは放出ガイド414を有してもよい。放出ガイド414は、シェルまたは半シェル形状を画定してもよい。示される実施例では、基部本体120は、脚部130を越えて横方向に延在し、ソナー近接センサ410例えば、410a~410iは、脚部130の周囲の基部本体120上に例えば、実質的に基部本体120の周辺に沿って配置される。さらに、上を向くソナー近接センサ410は、脚部130の周囲に連続する、または実質的に連続するソナー検出カーテン412を生じさせるように離間される。ソナー検出カーテン412は、テーブル上部、棚等の高くなった横方向突出部分を有する障害物を検出するために使用することができる。上を見るソナー近接センサ410は、テーブル上部等の水平面内の近接にある物体を見る能力を提供する。これらの物体は、それらのアスペクト比のため、レーザスキャナ440または撮像センサ450等のセンサシステムの他のセンサによって見逃される場合があり、そのため、ロボット100に問題をもたらす可能性がある。基部120の周辺の周囲に配設される、上を見るソナー近接センサ410は、これらのタイプの物体/障害物を見る、または検出するための手段を提供する。さらに、ソナー近接センサ410は、ロボット100の胴部140または頭部160によって塞がれない、または遮られないように、基部周辺の最大幅点の周囲に、わずかに外向きに角度付けて定置することができ、したがって、ロボット100自体の部分を感知することによる誤検出をもたらさない。いくつかの実現形態では、ソナー近接センサ410は、ソナー近接センサ410の視界の外側の胴部140の周囲の体積を残すように配設され上向きかつ外向きに、したがって、バスケット360等の搭載される搭載物またはアクセサリを自由に受容する。ソナー近接センサ410は、視覚的隠蔽を提供し、障害物上に引っかかる、またはそれに衝突する外部特徴をなくすために、基部本体124に引っ込めることができる。センサシステム400は、後退している間の障害物を検出するために、後ろ向き例えば、順駆動方向Fと反対に方向付けられる、1つ以上のソナー近接センサ410例えば、後部近接センサ410jを含んでもよい。後部ソナー近接センサ410jは、そのソナー検出界412を方向付ける、放出ガイド414を含んでもよい。さらに、後部ソナー近接センサ410jは、ロボット100と後部ソナー近接センサ4l0jの視界内の検出される物体との間の距離を判定するよう測距するために使用することができる例えば、後退警報として。いくつかの実施例では、後部ソナー近接センサ410jは、筐体形態にいかなる視覚的または機能的不規則性ももたらさないように、基部本体120内に引っ込んで搭載される。図3および図4Bを参照すると、いくつかの実現形態では、ロボット100は、駆動車輪210a、210b、210cが段差例えば、階段に遭遇する前に段差を検出することを可能にするように、駆動車輪210a、210b、210cの付近または周囲に配設される、段差近接センサ420を含む。例えば、段差近接センサ420は、基部本体124a~cの半径方向に最も外側の縁部125a~cのそれぞれに、もしくはその付近に、またはその間の位置にあってもよい。場合によっては、段差感知は、床があることが予測されるべき位置で重なる放射および検出界、したがって検出域を有するように、相互に向かって角度付けられる赤外線放射部422および赤外線検出器424を使用する、赤外線IR近接または実距離感知を使用して実現される。IR近接感知は、比較的狭い視界を有する可能性があり、信頼性が表面アルベドに依存する場合があり、表面間で変化する距離精度を有する可能性がある。結果として、ロボット100上の複数の点から段差を適切に検出するために、複数の別個のセンサをロボット100の周辺の周囲に定置することができる。さらに、IR近接ベースのセンサは、典型的に、段差とロボット100が敷居を登った直後等の安全事象とを区別することができない。段差近接センサ420は、ロボット100が一式の階段に遭遇する際等の床の低くなっている縁部に遭遇した際を検出することができる。コントローラ500制御システムを実行するは、縁部が検出される際、ロボット100にその移動方向を変化させる等の動作をとらせる挙動を実行してもよい。いくつかの実現形態では、センサシステム400は、1つ以上の二次段差センサ例えば、段差感知用および任意選択により他のタイプの感知用に構成される他のセンサを含む。段差検出近接センサ420は、段差の早期検出を提供するように、実際の段差と安全事象敷居を乗り越える等とを区別するためのデータを提供するように、およびそれらの視界が、ロボット本体110の少なくとも一部と、ロボット本体110から離れた領域とを含むように、外側低めに位置付けられるように配設することができる。いくつかの実現形態では、コントローラ500は、支持作業面例えば、床の縁部、作業面の縁部を通り過ぎた距離の増加、および/またはロボット本体110と作業面との間の距離の増加を識別し、検出する、段差検出ルーチンを実行する。本実現形態は、1潜在的な段差の早期検出未知の環境内でのより速い移動速度を可能にし得る、2段差事象が本当に安全ではないものであるか否か、または安全に横断すること例えば、敷居を登って越える等ができるものであるか否かを知るために、コントローラ500が段差検出近接センサ420からの段差撮像情報を受信することによる、自律的可動性の信頼性の増加、3段差の誤検出の低減例えば、縁部検出対複数の狭い視界を伴う別個のIR近接センサの使用によるを可能にする。冗長性のため、および距離感知カメラが特定のタイプの段差を確実に検出することができない状況を検出するために、脱輪センサとして配設される追加のセンサを使用することができる。敷居および段検出は、ロボット100が、登ることができる敷居を横断するか、または高過ぎる段を回避するかのいずれかを効率的に計画することを可能にする。これは、ロボット100が安全に横断し得る、または横断し得ない、作業面上の無差別な物体についても同じであることができる。ロボット100が、登ることができると判定する障害物または敷居について、それらの高さを知ることは、ロボット100が、円滑さを最大限にし、突然の加速によるいかなる不安定性も最小限にするために、円滑な移行を可能にするのに必要であると考えられる場合に、適切に減速することを可能にする。いくつかの実現形態では、敷居および段検出は、幾何学的形状認識例えば、敷居または電気ケーブル対靴下等の小塊とを判別するに加えて、作業面の上方の物体の高さに基づく。敷居は、縁部検出によって認識されてもよい。コントローラ500は、段差検出近接センサ420またはロボット100上の別の撮像センサから撮像データを受信し、縁部検出ルーチンを実行し、縁部検出ルーチンの結果に基づき、駆動コマンドを発行してもよい。コントローラ500は、物体を識別するために、パターン認識も同様に使用してもよい。敷居検出は、ロボット100が、円滑に段を登る能力を最大限にするように、敷居に対するその配向を変化させることを可能にする。近接センサ410、420は、単独で機能してもよく、または代替として、冗長性のために、1つ以上の接触センサ430例えば、隆起スイッチとの組み合わせで機能してもよい。例えば、ロボット本体110上の1つ以上の接触または隆起センサ430は、ロボット100が障害物に物理的に遭遇したか否かを検出することができる。そのようなセンサは、障害物に遭遇した際を判定するために、ロボット100内の静電容量または物理的移動等の物理的特性を使用してもよい。いくつかの実現形態では、基部120の各基部本体部分124a、124b、124cは、基部シャーシ122例えば、図4A参照に対する対応する基部本体部分124a、124b、124cの移動を検出する、関連接触センサ430例えば、容量センサ、リードスイッチ等を有する。例えば、各基部本体124a~cは、3方向ぶつかり検出を提供するために、基部シャーシ122のZ軸に対して半径方向に移動してもよい。再び図1~図4C、図11A、および図11Bを参照すると、いくつかの実現形態では、センサシステム400は、ロボット本体110の前方部分上に搭載され、かつコントローラ500と通信している、レーザスキャナ440を含む。示される実施例では、レーザスキャナ440は、第1の基部本体124a上またはその上方例えば、ロボットの駆動方向Fに沿って最大撮像対応範囲を有するようにの前を向く基部本体120上に搭載される例えば、順駆動方向Fに沿った視界を有する。さらに、三角形の基部120の前先端上またはその付近へのレーザスキャナの定置は、ロボット基部の外角例えば、300度が、レーザスキャナ440の視界442例えば、約285度より大きいことを意味し、したがって、基部120が、レーザスキャナ440の検出視界442を塞ぐ、または遮るのを防止する。レーザスキャナ440は、レーザスキャナのいずれかの部分が、基部本体124を通り越して突き出すのを最小限にするように例えば、審美性のため、および障害物上に引っかかるのを最小限にするため、その視界を塞ぐことなく、基部本体124内に可能な限り引っ込めて搭載することができる。レーザスキャナ440は、ロボット100の周囲領域を走査し、コントローラ500は、レーザスキャナ440から受信される信号を使用して、走査した領域の環境マップまたは物体マップを作成する。コントローラ500は、ナビゲーション、障害物検出、および障害物回避に、物体マップを使用してもよい。さらに、コントローラ500は、物体マップを作成するため、および/またはナビゲーションのために、センサシステム400の他のセンサからの感知入力を使用してもよい。いくつかの実施例では、レーザスキャナ440は、主走査線として1次元内の領域を素早く走査するレーザと、線内の生成される各ピクセルに深度を割り当てるのに位相差または同様の技法を使用する飛行時間撮像要素とを使用し得る、走査LIDARである走査面内の2次元深度線を返す。3次元マップを生成するために、LIDARは、第2の方向に補助走査を実施することができる例えば、スキャナを上下させることによって。この機械的走査技法は、補われていない場合、ピクセルの完全2-Dマトリックスのための飛行時間計算を可能にして、各ピクセルの深度、またはさらには各ピクセルの一連の深度を提供するためにコード化照明器または照明レーザを用いて、半導体スタックを使用する技法、FlashLIDAR/LADARおよびSwissRangerタイプの焦点面撮像要素センサ等の技術によって補完することができる。センサシステム400は、コントローラ500と通信している、1つ以上の3次元3-D画像センサ450を含んでもよい。3-D画像センサ450が、限られた視界を有する場合、コントローラ500またはセンサシステム400は、強固なODOAを実施するために、相対的により広い視界を生じるよう、3-D画像センサ450aを、左右を走査するように作動させることができる。図1~図3、および図10Bを参照すると、いくつかの実現形態では、ロボット100は、順駆動方向Fに沿った視界を伴う、ロボット本体110の前方部分上に搭載される例えば、ロボットの駆動方向Fに沿った最大撮像対応範囲を有するように、走査3-D画像センサ450aを含む。走査3-D画像センサ450aは、主に、障害物検出/障害物回避ODOAに使用することができる。示される実施例では、走査3-D画像センサ450aは、例えば、ユーザが走査3-D画像センサ450aと接触するのを防止するために、図3に示されるように、胴部140上の段部142の下部上、または底面144上に搭載され、胴部140内に引っ込められる例えば、底面144と同一平面上またはそれを通り越して。走査3-D画像センサ450は、障害物検出および障害物回避ODOAのために、ロボット100の正面内の下向き視界452を有するように例えば、基部120またはロボット本体110の他の部分による遮りを伴う、実質的に下向きかつロボット本体110から離れるよう照準を定めるように配設することができる。胴部140の前縁部上またはその付近への走査3-D画像センサ450aの定置は、3-D画像センサ450の視界例えば、約285度が、3-D画像センサ450に対する胴部140の外面角度例えば、300度より小さくなるようにすることができ、したがって、胴部140が走査3-D画像センサ450aの検出視界452を塞ぐ、または遮るのを防止する。さらに、走査3-D画像センサ450aおよび関連アクチュエータは、可能な限りその視界を塞ぐことなく例えば、また、審美性のため、および障害物に引っかかるのを最小限にするためにも、胴部140内に埋め込んで搭載することができる。走査3-D画像センサ450aの気を散らす走査運動は、ユーザには見えず、それ程不快ではない対話経験をもたらす。突出するセンサまたは特徴とは異なり、引っ込んだ走査3-D画像センサ450aは、特に、移動または走査する際、事実上、胴部140の周辺を越えて延在する可動部分がないため、環境との意図されない相互作用人、障害物等への引っかかりを有さない傾向がある。いくつかの実現形態では、センサシステム400は、基部本体120上に配置される追加の3-D画像センサ450と、脚部130と、首部150および/または頭部160とを含む。図1に示される実施例では、ロボット100は、基部本体120、胴部140、および頭部160上に3-D画像センサ450を含む。図2に示される実施例では、ロボット100は、基部本体120、胴部140、および頭部160上に3-D画像センサ450を含む。図11Aに示される実施例では、ロボット100は、脚部130、胴部140、および首部150上に3-D画像センサ450を含む。他の構成も同様に可能である。1つの3-D画像センサ450例えば、首部150上かつ頭部160の上を、人認識、ジェスチャ認識、および/またはテレビ会議に使用することができ、一方、別の3-D画像センサ450例えば、基部120および/または脚部130上を、ナビゲーションならびに/または障害物検出および障害物回避に使用することができる。首部150および/または頭部160上に配置される、前を向く3-D画像センサ450を、ロボット100の周囲の人々の人認識、顔認識、および/またはジェスチャ認識に使用することができる。例えば、頭部160上の3-D画像センサ450からの信号入力を使用して、コントローラ500は、見た/捕捉したユーザの顔の3次元マップを作成し、作成した3次元マップを人の顔の既知の3-D画像と比較し、既知の3-D顔画像のうちの1つとの合致を判定することによって、ユーザを認識してもよい。顔認識は、ユーザをロボット100の正当なユーザとして認証するために使用されてもよい。さらに、3-D画像センサ450のうちの1つ以上を、ロボット100が見る人のジェスチャを判定し、判定されるジェスチャ単数または複数例えば、手差し、手振り、およびまたは手信号に基づき、任意選択により反応するために使用することができる。例えば、コントローラ500は、認識される特定の方向への手差しに応えて、駆動コマンドを発行してもよい。3-D画像センサ450は、以下のタイプのデータを生成することができる:i深度マップ、ii反射率ベースの強度画像、および/またはiii標準強度画像。3-D画像センサ450は、画像パターン合致、源から放射され、標的から反射される光の飛行時間および/または位相遅延偏移計測によって、そのようなデータを取得してもよい。いくつかの実現形態では、プロセッサ例えば、ロボットコントローラ500の上で実行可能な推論または制御ソフトウェアは、センサシステム400によって生成される様々なデータ型を使用して実行されるアルゴリズムの組み合わせを使用する。推論ソフトウェアは、例えば、ロボット100が障害物と衝突することなく移動することができるかに関するナビゲーション決定を行うために、センサシステム400から収集されるデータを処理し、データを出力する。ロボットの包囲の経時的な撮像データを蓄積することによって、その結果、推論ソフトウェアは、3-D画像センサ450の深度計測を改善するために、感知される画像単数または複数の選択されるセグメントに効率的な方法を適用することができる。これには、適切な時間および空間平均技法を使用することが含まれてもよい。衝突のないロボット移動を実行する信頼性は、i高レベルの経時的な推論によって構築される信頼レベル、およびii解析のために3つの主なタイプのデータ、a深度画像、bアクティブ照明画像、およびc周囲照明画像を蓄積する、深度知覚センサに基づいてもよい。深度知覚撮像センサ450によって取得される画像のそれぞれに、異なるタイプのデータを認識するアルゴリズムを実行することができる。集約データは、1つの種類のデータのみを使用するシステムと比較して、信頼レベルを改善し得る。3-D画像センサ450は、1つ以上の物体を含有するロボットの周囲の情景100から、深度および明度データを含有する画像例えば、部屋または作業領域のセンサ視野部分を取得してもよい。コントローラ500は、情景から捕捉される反射光に基づき、物体の占領データを判定するように構成されてもよい。さらに、いくつかの実施例では、コントローラ500は、少なくとも一部において占領データに基づき、障害物すなわち、情景内の物体を迂回するように、駆動システム200に駆動コマンドを発行する。3-D画像センサ450は、情景内のいかなる物体にも衝突することなく、情景の周囲でロボット100をナビゲートするよう、コントローラ500によってリアルタイム決定を行うために、情景深度画像を繰り返し捕捉してもよい。例えば、3-D画像センサ450によって深度画像データが取得される速度または頻度は、3-D画像センサ450のシャッター速度によって制御されてもよい。加えて、コントローラ500は、事象トリガを受信してもよい例えば、コントローラ500に近隣の物体または危険を通知する、近接センサ410、420等のセンサシステム400の別のセンサ構成要素から。コントローラ500は、事象トリガに応えて、3-D画像センサ450に、深度画像が捕捉される頻度を増加させることができ、占領情報が取得される。図12Aを参照すると、いくつかの実現形態では、3-D撮像センサ450は、ロボット100の周囲領域例えば、部屋等の情景10に光を放射する、光源1172を含む。また、撮像センサ450は、光源1172から発される光の反射光を含む、情景10からの反射光を捕捉する例えば、情景深度画像として、撮像部1174例えば、光感知ピクセル1174pのアレイも含んでもよい。いくつかの実施例では、撮像センサ450は、放射される光および受信される反射光をそれぞれ操作する例えば、スペックリングまたは集束させるために、光源レンズ1176および/または検出器レンズ1178を含む。ロボットコントローラ500またはロボットコントローラ500と通信しているセンサコントローラ図示せずは、撮像部1174によって捕捉される反射光の画像パターン合致および/または飛行時間特性に基づき、情景10内の物体12の深度情報を判定するために、撮像部1174例えば、ピクセル1174pから光信号を受信する。図12Bは、撮像センサ450を動作させるための動作の例となる配設1200を提供する。図12Aを追加参照すると、動作は、ロボット100の周囲の情景10に光を放射すること1202と、撮像部例えば、光感知ピクセルのアレイ上への情景10からの放射光の反射を受けること1204とを含む。動作は、コントローラ500が撮像部から光検出信号を受信すること1206と、光検出信号から得られる画像データを使用して、情景10内の物体12の1つ以上の特徴を検出すること1208と、光検出信号から得られる画像深度データを使用して、情景10内の物体12の検出される特徴単数または複数の位置を追跡すること1210とをさらに含む。動作は、画像データまたは画像深度データの解像度を増加させるため、および/または信頼レベルを提供するために、光を放射すること1202、光反射を受けること1204、光検出信号を受信すること1206、物体特徴単数または複数を検出すること1208、および物体特徴単数または複数の位置を追跡すること12010の動作を繰り返すこと1212を含んでもよい。動作を繰り返すこと1212は、比較的高い解像度のために比較的遅い速度例えば、遅いフレーム速度で、中間速度で、または比較的低い解像度を伴って高速で実施することができる。動作を繰り返す1212頻度は、ロボットコントローラ500によって調節可能であり得る。いくつかの実現形態では、コントローラ500は、事象トリガを受信すると、動作を繰り返す1212頻度を高めてもよく、または低めてもよい。例えば、情景内の感知されるアイテムは、情景10内の高くなっている可能性のある物体12例えば、戸口、敷居、または段差を感知するために、動作を繰り返す1212頻度を増加させる事象をトリガし得る。追加の実施例では、検出された物体12間の経過時間事象が、動作を繰り返す1212頻度を低下させ得る、またはある期間停止させ得る例えば、別の事象によって起こされるまで活動停止状態になる。いくつかの実施例では、情景10内の物体12の1つ以上の特徴を検出する1208動作は、画像深度データが取得される速度を増加させるために、比較的大きい頻度の繰り返し動作1212をもたらす、特徴検出事象をトリガする。画像深度データの比較的大きい獲得速度は、情景内の相対的により信頼できる特徴追跡を可能にすることができる。また、動作は、情景10内の物体12を迂回するために、ナビゲーションデータを出力すること1214も含む。いくつかの実現形態では、コントローラ500は、駆動システム200に駆動コマンドを発行して、物体12との衝突を回避するようにロボット100を移動させるために、出力されるナビゲーションデータを使用する。いくつかの実現形態では、センサシステム400は、ロボット100の周囲の情景10内の複数の物体12を検出し、コントローラ500は、検出される物体12のそれぞれの位置を追跡する。コントローラ500は、部屋の境界付けられた領域等のロボット100の周囲の領域内の物体12の占領マップを作成してもよい。コントローラ500は、情景10を占領マップの一部分と合致させ、占領マップを追跡される物体12の位置で更新するために、センサシステム400の画像深度データを使用してもよい。図12Cを参照すると、いくつかの実現形態では、3-D画像センサ450は、スペックル非相関を通した画像マッピングを可能にする、3次元3Dスペックルカメラ1300を含む。スペックルカメラ1300は、情景10標的領域としてのにスペックルパターンを放射する、スペックル放射部1310例えば、赤外線、紫外線、および/または可視光のと、情景10内の物体12の表面上のスペックルパターンの画像を捕捉する、撮像部1320とを含む。スペックル放射部1310は、拡散器1314に、および反射、ひいては情景10へのスペックルパターンとしての投射のために反射器1316上に光ビームを放射する、レーザ等の光源1312を含んでもよい。撮像部1320は、CCDまたはCMOSベースの画像センサ等の光検出器1326のアレイを有する画像センサ1324上に画像を結像させる、対物光学素子1322を含んでもよい。スペックル放射部1310および撮像部1320の光学軸は、同一直線上であるように示されているが、非相関モードでは、例えば、スペックル放射部1310および撮像部1320の光学軸はまた、非同一直線上であってもよく、一方、相互相関モードでは、例えば、撮像軸が放射軸からずれるという具合であってもよい。スペックル放射部1310は、情景10にスペックルパターンを放射し、撮像部1320は、スペックル放射部1310から広範の異なる物体距離Znでの、情景10内のスペックルパターンの基準画像を捕捉する例えば、Z軸は、撮像部1320の光学軸によって画定することができる。示される実施例では、Z1、Z2、Z3等と標識される基準位置等、原点から異なる、それぞれの距離の連続平面で、投射されるスペックルパターンの基準画像が捕捉される。基準画像間の距離ΔΖは、閾値距離例えば、5mmに設定されてもよい、またはコントローラ500によって調節可能であってもよい例えば、トリガされる事象に応えて。スペックルカメラ1300は、スペックルパターンのスペックル放射部1310からの距離との非相関を可能にして、後続画像に捕捉される物体12の測距を実施するために、捕捉される基準画像を保管し、それぞれの放射距離にインデックスを付ける。例えば、ΔΖが隣接する基準距離Z1、Z2、Z3、...、の間の距離とほぼ同等であると仮定すると、位置ZAの物体12上のスペックルパターンを、Z2で捕捉されるスペックルパターンの基準画像と相関させることができる。その一方で、例えば、ZBの物体12上のスペックルパターンは、Z3の基準画像と相関させることができる。これらの相関計測は、原点からの物体12の近似距離をもたらす。物体12を3次元にマップするために、スペックルカメラ1300またはスペックルカメラ1300から情報を受信するコントローラ500は、最も近い合致をもたらした基準画像との局所相互相関を使用することができる。例えば、本明細書に記載されるものと組み合わせることが可能であり得る、三角測量または非相関を使用するスペックル相互相関を介したスペックル測距を使用した3D画像マッピングにおける他の詳細および特徴は、内容全体が参照することによって本明細書に組み込まれる、PCT特許出願第PCT/IL2006/000335号に見ることができる。図12Dは、スペックルカメラ1300を動作させるための動作の例となる配設1400を提供する。動作は、情景10にスペックルパターンを放射すること1402と、スペックル放射部1310から異なる距離での、基準画像例えば、基準物体12のを捕捉すること1404とを含む。動作は、情景10内の標的物体12にスペックルパターンを放射すること1406と、物体12上のスペックルパターンの標的画像を捕捉すること1408とをさらに含む。動作は、標的画像スペックルされた物体のを異なる基準画像と比較して、標的物体12上のスペックルパターンと最も強く相関する基準パターンを特定すること1410と、情景10内の標的物体12の推定される距離範囲を判定すること1412とをさらに含む。これは、物体12上の一次スペックルパターンを判定することと、物体12上の一次スペックルパターンと最も強く相関するスペックルパターンを有する基準画像を発見することとを含んでもよい。基準画像の対応する距離から、距離範囲を判定することができる。動作は、任意選択により、例えば、情景内の物体12の位置を判定するために、物体12上のスペックルパターンと識別される基準パターンとの間の局所相互相関によって、物体12の表面の3Dマップを構築すること1414を含む。これは、物体の3次元3Dマップを得るために、物体12上の一次スペックルパターンを判定することと、標的画像内の物体12の複数の領域上の一次スペックルパターンと特定された基準画像内の一次スペックルパターンとの間のそれぞれのオフセットを発見することとを含んでもよい。情景の3Dマッピングへの固体状態構成要素の使用は、ロボットナビゲーションシステムの比較的安価な解決策を提供する。典型的に、異なる、それぞれの距離のうちの少なくともいくつかは、それぞれの距離での一次スペックルパターンの軸長さより長く軸方向に離れている。標的画像を基準画像と比較することは、標的画像と基準画像のうちの少なくともいくつかのそれぞれとの間のそれぞれの相互相関を算出することと、標的画像との最大のそれぞれの相互相関を有する基準画像を選択することとを含んでもよい。動作は、例えば、継続的に情景10内の物体12の動きを追跡するために、動作1402~1412または動作1406~1412を繰り返すこと1416と、任意選択により動作1414とを含んでもよい。例えば、スペックルカメラ1300は、基準画像との比較のために、物体12が移動している間、連続標的画像を捕捉してもよい。本明細書に記載されるものと組み合わせることが可能であり得る、スペックル測距を使用する3D画像マッピングにおける他の詳細および特徴は、内容全体が参照することによって本明細書に組み込まれる、米国特許第7,433,024号、名称がDepthMappingUsingProjectedPatternsの米国特許出願公開第2008/0106746号、名称がDepthMappingUsingProjectedPatternsの米国特許出願公開第2010/0118123号、名称がModelingOfHumanoidFormsFromDepthMapsの米国特許出願公開第2010/0034457号、名称がDepthMappingUsingMulti-BeamIlluminationの米国特許出願公開第2010/0020078号、名称がOpticalDesignsForZeroOrderReductionの米国特許出願公開第2009/0185274号、名称がThree-DimensionalSensingUsingSpecklePatternsの米国特許出願公開第2009/0096783号、名称がDepthMappingUsingProjectedPatternsの米国特許出願公開第2008/0240502号、および名称がDepth-VaryingLightFieldsForThreeDimensionalSensingの米国特許出願公開第2008/0106746号に見ることができる。図12Eを参照すると、いくつかの実現形態では、3-D撮像センサ450は、深度画像データを取得するための3D飛行時間TOFカメラ1500を含む。3DTOFカメラ1500は、光源1510と、相補型金属酸化物半導体CMOSセンサ1520または電荷結合デバイスCCDと、レンズ1530と、光源1510およびCMOSセンサ1520と通信している、処理資源を有する制御論理またはカメラコントローラ1540および/またはロボットコントローラ500とを含む。光源1510は、周期的高周波信号によって変調される強度を伴う、レーザまたは発光ダイオードLEDであってもよい。いくつかの実施例では、光源1510は、集束レンズ1512を含む。CMOSセンサ1520は、各ピクセル検出器1522が、その上に衝突する光子エネルギーの強度および位相を検出することができる、ピクセル検出器1522のアレイ、またはピクセル検出器1522の他の配設を含んでもよい。いくつかの実施例では、各ピクセル検出器1522は、関連ピクセル検出器1522の検出電荷出力を処理するための専用検出器回路1524を有する。レンズ1530は、1つ以上の関心物体12を含有する情景10から反射される光を、CMOSセンサ1520上に集束させる。カメラコントローラ1540は、CMOSセンサ1520によって取得されるピクセルデータを深度マップおよび明度画像に形式化する、一連の動作を提供する。いくつかの実施例では、また、3DTOFカメラ1500は、入力/出力IO1550例えば、ロボットコントローラ500と通信している、メモリ1560、ならびに/またはカメラコントローラ1540および/もしくはピクセル検出器1522例えば、検出器回路1524と通信しているクロック1570も含む。図12Fは、3DTOFカメラ1500を動作させるための動作の例となる配設1600fを提供する。動作は、光パルス例えば、赤外線、紫外線、および/または可視光を情景10に放射すること1602fと、光パルスの飛行時間の時間計測を開始すること例えば、クロック1570のクロックパルスをカウントすることによって1604fとを含む。動作は、情景10内の物体12の1つ以上の表面から放射される光の反射を受けること1606fを含む。反射は、光源1510から異なる距離Znで、物体12の表面から反射されてもよい。反射は、レンズ1530を通してCMOSセンサ1520のピクセル検出器1522上に受けとられる。動作は、CMOSセンサ1520の各対応するピクセル検出器1522上に受けとられる、各光パルス反射の飛行時間を受信すること1608fを含む。光パルスの往復飛行時間TOF中、各それぞれのピクセル検出器1522の検出器回路1523のカウンタは、クロックパルスを蓄積する。より大きい数のクロックパルスの蓄積は、より長いTOF、およびしたがって、撮像される物体12上の光反射点と光源1510との間のより大きい距離を表す。動作は、それぞれの受けとられる光パルス反射の物体12の反射面の間の距離を判定すること1610fと、任意選択により、3次元物体表面を構築すること1612fとをさらに含む。いくつかの実現形態では、動作は、動作1602f~1610fを繰り返すこと1614fと、任意選択により、情景10内の物体12の移動を追跡するための1612fとを含む。本明細書に記載されるものと組み合わせることが可能であり得る、3D飛行時間撮像における他の詳細および特徴は、内容全体が参照することによって本明細書に組み込まれる、名称がCMOSCompatible3-DImageSensorの米国特許第6,323,942号、名称がMethodsforCMOS-CompatibleThree-DimensionalImageSensingUsingQuantumEfficiencyModulationの米国特許第6,515,740号、および名称がMethodandSystemtoEnhanceDynamicRangeConversionUsablewithCMOSThree-DimensionalImagingのPCT特許出願第PCT/US02/16621号に見ることができる。いくつかの実現形態では、3-D撮像センサ450は、3つのタイプの情報、すなわち1深度情報例えば、CMOSセンサ1520の各ピクセル検出器1522から情景12上の対応する位置までの、2各ピクセル検出器位置での周囲光強度、および3各ピクセル検出器位置でのアクティブ照明強度を提供する。深度情報は、特に物体の近接からロボット配備現場に関して、検出される物体12の位置が経時的に追跡されるようにすることを可能にする。アクティブ照明強度および周囲光強度は、異なるタイプの明度画像である。アクティブ照明強度は、標的物体12から反射されるアクティブ光光源1510によって提供されるもの等の反射から捕捉される。周囲光画像は、標的物体12から反射される周囲光のものである。2つの画像は、共に、特に照明条件が悪い際例えば、暗すぎるか、または過度の周囲照明に、追加の強固性を提供する。情景10内の物体12の位置を分類し、検出するために、画像区分化および分類アルゴリズムが使用されてもよい。これらのアルゴリズムによって提供される情報、ならびに撮像センサ450から取得される距離計測情報は、ロボットコントローラ500または他の処理資源によって使用することができる。撮像センサ450は、周囲光をフィルタ処理するために、フォトダイオードの感度を変調するための技法を含む、飛行時間の原理に基づき、およびより具体的には、情景10から反射される、調節された光パターンにおける検出可能な位相遅延に基づき、動作することができる。ロボット100は、1マッピング、位置特定ナビゲーション、2物体検出物体回避ODOA、3物体探索例えば、人を発見するための、4ジェスチャ認識例えば、コンパニオンロボットのための、5人顔検出、6人追跡、7ロボット100による物体の操作の監視、およびロボット100の自律的動作のための他の好適な用途に、撮像センサ450を使用してもよい。いくつかの実現形態では、3-D画像センサ450のうちの少なくとも1つは、ロボット100上の地面の上方の1フィート約30.5cmまたは2フィート約61cmを超える高さに位置付けられ、かつロボットの移動方向の床面を含む空間体積から点群を取得することができる全方向性駆動システム200を介してように方向付けられる、体積点群撮像デバイススペックルまたは飛行時間カメラ等であってもよい。図1および図3に示される実施例では、第1の3-D画像センサ450aを、基部120上の地面の上方の1または2フィートを超える高さまたは地面の約1または2フィート上方の高さに位置付け、駆動している間、床を含む体積の画像例えば、体積点群を捕捉するように、順駆動方向Fに沿って照準を定める例えば、障害物検出および障害物回避のためにことができる。ロボット100に隣接する空間体積から骨格認識および画定点群を取得することができるように、頭部160上に搭載された例えば、地面の上方の約3または4フィートを超える高さに、第2の3-D画像センサ450bが示されている。コントローラ500は、捕捉される体積点群のデータを解析するために、骨格/デジタル認識ソフトウェアを実行してもよい。周囲光条件に関わらず、撮像センサ450を使用して、物体12を適切に感知することは、重要であり得る。多くの環境では、照明条件は、直接日光から、明るい蛍光照明、ぼんやりとした影まで広い範囲におよび、物体12の表面質感および基本的な反射率に大きい変化をもたらす可能性がある。照明は、所与の位置内で、および情景10から情景10でも同様に変化する可能性がある。いくつかの実現形態では、全ての状況において、周囲光条件からの比較的小さい影響を伴って例えば、周囲光排除、人および物体12を識別し、解像するために、撮像センサ450を使用することができる。いくつかの実現形態では、撮像センサ450のVGA解像度は、水平640ピクセル×垂直480ピクセルであるが、しかしながら、320×240例えば、短距離センサではのような他の解像度も同様に可能である。撮像センサ450は、パルスレーザと、特定の範囲内のみの物体12を見るために、タイムドメインにおける帯域通過フィルタとしての機能を果たす、カメラアイリスとを含んでもよい。異なる距離の物体12aを検出するために、撮像センサ450の可変アイリスを使用することができる。さらに、屋外用途では、より高い電力のレーザパルスを発することができる。いくつかの実現形態では、ロボットは、ロボット100を包囲する領域の音響撮像のためのソナースキャナ460を含む。図1および図3に示される実施例では、ソナースキャナ460は、基部本体120の前方部分上に配置される。図1、図3B、および図11Bを参照すると、いくつかの実現形態では、ロボット100は、冗長感知のためにレーザスキャナまたはレーザ距離計440を、ならびに安全のために後ろを向くソナー近接センサ410jを使用し、これらの両方は、地面Gに対して平行に配向される。ロボット100は、ロボット100の周囲の環境の強固な感知を提供するように、第1および第2の3-D画像センサ450a、450b深度カメラを含んでもよい。第1の3-D画像センサ450aは、胴部140上に固定角度で下向きに地面Gを指すように搭載される。第1の3-D画像センサ450aを下向きに角度付けることによって、ロボット100は、ロボット100の前方向への短期移動に関連する、ロボット100の直前または隣接領域における高密度センサ対応範囲を受容する。後ろを向くソナー410jは、ロボットが後方移動するときに物体検出を提供する。ロボット100にとって、後方移動が典型的である場合、ロボット100は、ロボット100の直後または隣接領域における高密度センサ対応範囲を提供するように、下方および後方を向く第3の3D画像センサ450を含んでもよい。第2の3-D画像センサ450bは、首部150を介して回動および傾斜することができる頭部160上に搭載される。第2の3-D画像センサ450bは、人オペレータが、ロボット100が進行している場所を見ることを可能にするため、遠隔駆動に有用であり得る。首部150は、オペレータが、近い物体および離れた物体の両方を見るように、第2の3-D画像センサ450bを傾斜および/または回動させることを可能にする。第2の3-D画像センサ450bを回動させることは、関連水平視界を増加させる。高速移動中、ロボット100は、3-D画像センサ450a、450bの両方の総体的または複合視界を増加させるように、およびロボット100が障害物を回避するのに十分な時間を与えるようにより速い速度が、概して、障害物に反応する時間がより短いことを意味するため、第2の3-D画像センサ450bをわずかに下向きに傾斜させてもよい。より低い速度では、ロボット100は、ロボット100が追従するように意図されている個人を追跡するように、第2の3-D画像センサ450bを上向きに、または地面Gに対して略平行に傾斜させてもよい。さらに、比較的低速で駆動している間、ロボット100は、ロボット100の周囲のその視界を増加させるように、第2の3-D画像センサ450bを回動させることができる。ロボットが、ロボットの知覚範囲を拡大するように駆動しているときに、第1の3-D画像センサ450aは、固定されたままとなることができる例えば、基部120に対して移動させられない。いくつかの実現形態では、3-D画像センサ450のうちの少なくとも1つは、地面より上側の1フィート約30.5cmまたは2フィート約61cm以上の高さでまたは地面より上側の約1または2フィートの高さでロボット100上に位置付けられ、かつ全方向性駆動システム200を介してロボットの移動方向の床面を含む空間体積から点群を取得することができるように方向付けられる、体積点群撮像デバイススペックルまたは飛行時間カメラ等であり得る。図1および図3に示される実施例では、第1の3-D画像センサ450aは、地面より上側の1または2フィート以上の高さで基部120上に位置付け、例えば、障害物検出および障害物回避のために駆動している間に、床を含む体積の画像例えば、体積点群を捕捉するように、順駆動方向Fに沿って照準を定めることができる。ロボット100に隣接する空間体積から骨格認識および画定点群を取得することが可能であるよう、例えば、地面より上側の約3フィートより高い高さで頭部160上に搭載された、第2の3-D画像センサ450bが示されている。コントローラ500は、捕捉された体積点群のデータを解析するように、骨格/デジタル認識ソフトウェアを実行してもよい。図2および4A~4Cを再び参照すると、センサシステム400は、ロボット100の全体重心CGRに対するロボット100の慣性モーメントを測定および監視するように、コントローラ500と通信している慣性計測ユニットIMU470を含んでもよい。コントローラ500は、正常な妨害されていない動作に対応する閾値信号から、IMU470からのフィードバックにおけるいかなる逸脱も監視し得る。例えば、ロボットが直立位置から離れるように傾き始める場合、タックルされた、または別様に邪魔された、あるいは誰かが重い搭載物を突然追加した可能性がある。これらの状況では、ロボット100の安全な動作を保証するために、緊急動作回避機動、再較正、および/または音声/視覚警告の発行を含むが、これらに限定されないを講じる必要があり得る。ロボット100は、人間環境内で動作し得るため、人とやりとりし、人向けに設計されたかつロボット制約が考慮されていない空間内で動作してもよい。ロボット100は、カクテルパーティまたは混み合った病院等の混雑した、制約された、または極めて動的な環境内にあるときに、その駆動速度および加速を制限することができる。しかしながら、ロボット100は、誰もいない長い廊下のような比較的高速で駆動することが安全であるが、誰かがロボットの運動経路を横切る際に依然として突然減速することができる状況に遭遇し得る。停止から加速するときに、コントローラ500は、ロボットが倒れるのを防止するように、その全体重心CGRからのロボット100の慣性モーメントを考慮してもよい。コントローラ500は、その現在の慣性モーメントを含む、その姿勢のモデルを使用してもよい。搭載物が支持されるときに、コントローラ500は、全体重心CGRへの負荷影響を計測し、ロボットの移動の慣性モーメントを監視してもよい。例えば、胴部140および/または首部150は、歪みを計測する歪みゲージを含んでもよい。これが可能ではない場合、コントローラ500は、安全限界を実験的に判定するために、駆動車輪210に試験トルクコマンドを適用し、IMU470を使用してロボットの実際の線形加速および角加速を計測してもよい。突然の減速中、第2および第3の駆動車輪210b、210c後輪へのコマンドされた負荷が低減される一方で、第1の駆動車輪210a前輪は、順駆動方向に滑動し、ロボット100を支持する。第2および第3の駆動車輪210b、210c後輪の負荷が非対称である場合、ロボット100は、偏揺れする場合があり、これは、動的安定性を低減させる。この偏揺れを検出し、第2および第3の駆動車輪210b、210cに、ロボット100を再配向するようコマンドするために、IMU470例えば、ジャイロを使用することができる。図3~4Cおよび6Aを参照すると、いくつかの実現形態では、ロボット100は、複数のアンテナを含む。示される実施例では、アンテナは、脚部130、胴部140、首部150、および/または頭部160等のロボット100の任意の他の部分に配置されてもよいがロボット100は、両方とも基部120上に配置される、第1のアンテナ490aと、第2のアンテナ490bとを含む。複数のアンテナの使用は、堅調な信号受信および伝送を提供する。複数のアンテナの使用は、通信性能を向上させるための伝送機および/または受信機用の複数のアンテナの使用である、多重入力および多重出力またはMIMOを、ロボット100に提供する。MIMOは、さらなる帯域幅または伝送電力を伴わずに、データスループットおよびリンク範囲の有意な増加を提供する。それは、より高いスペクトル効率帯域幅の1ヘルツにつき毎秒より多くのビットおよびリンク確実性または多様性低減したフェーディングによって、これを達成する。これらの特性により、MIMOは、IEEE802.11nWifi、4G、3GPPロングタームエボリューション、WiMAX、およびHSPA等の現代の無線通信規格の重要な一部である。さらに、ロボット100は、近くに存在するの他の電子デバイス用のWi-Fiブリッジ、ハブ、またはホットスポットの役割を果たすことができる。ロボット100の可動性およびMIMOの使用は、ロボットが比較的非常に確実なWi-Fiブリッジになることを可能にすることができる。MIMOは、プリコーディング、空間多重化またはSM、およびダイバーシティコーディングの、3つの主要なカテゴリに細分化することができる。プリコーディングは、一種のマルチストリームビーム形成であり、送信機で発生する全ての空間処理であると見なされる。単層ビーム形成では、信号電力が受信機入力において最大限化されるように、適切な位相および時には利得重み付けを伴って、同一の信号が、伝送アンテナのそれぞれから発信される。ビーム形成の利点は、異なるアンテナから発信された信号を建設的に加算させることによって、受信した信号利得を増大させること、およびマルチパスフェーディング効果を低減させることである。散乱がない場合、ビーム形成は、明確な指向性パターンをもたらすことができる。受信機が複数のアンテナを有するとき、伝送ビーム形成は、受信アンテナの全てにおいて信号レベルを同時に最大限化することができず、複数のストリームを伴うプリコーディングを使用することができる。プリコーディングは、伝送機においてチャネル状態情報CSIの知識を必要とし得る。空間多重化は、MIMOアンテナ構成を必要とする。空間多重化では、高速信号が、複数の低速ストリームに分割され、各ストリームは、同一周波数チャネルで異なる伝送アンテナから伝送される。これらの信号が、十分に異なる空間形跡を伴う受信機アレイに着信する場合、受信機は、これらのストリームをほぼ並列のチャネルに分離することができる。空間多重化は、より高い信号対雑音比SNRでチャネル容量を増加させるための非常に強力な技法である。空間ストリームの最大数は、伝送機または受信機におけるアンテナの数の少ないほうによって制限される。空間多重化は、伝送チャネルの知識を用いて、または用いることなく、使用することができる。空間多重化はまた、空間分割多元接続として知られている、同時伝送に使用することもできる。異なる空間形跡を伴う受信機を予定に入れることによって、良好な分離可能性を確保することができる。ダイバーシティコーディング技法は、伝送機にチャネルの知識がない時に使用することができる。ダイバーシティ方法では、空間多重化における複数のストリームとは違って単一のストリームが伝送されるが、信号は、時空間符号化と呼ばれる技法を使用して符号化される。信号は、完全または近直交符号化を用いて、伝送アンテナから発信される。ダイバーシティコーディングは、信号のダイバーシティを強化するために、複数のアンテナリンクで独立したフェーディングを利用する。チャネルの知識がないため、ダイバーシティコーディングからのビーム形成またはアレイ利得はない。空間多重化はまた、伝送機においてチャネルが把握されているときに、プリコーディングと組み合わせることもでき、または復号の確実性がトレードオフであるときに、ダイバーシティコーディングと組み合わせることもできる。いくつかの実現形態では、ロボット100は、それぞれ、第3のアンテナ490cおよび/または第4のアンテナ490dと、胴部140および/または頭部160とを含む例えば、図3参照。そのような場合において、コントローラ500は、例えば、胴部140を上昇または下降させること、および/または頭部160を回動および/または傾斜すること等によって、アンテナ490a-dを移動させることによって堅調な通信のための閾値信号レベルを達成するアンテナ配設を決定することができる。例えば、コントローラ500は、胴部140の高さを上昇させることによって、第3および第4のアンテナ490c、490dを高めるようにコマンドを発行することができる。また、コントローラ500は、頭部160を回転させるように、および/または他のアンテナ490a~cに対して第4のアンテナ490dをさらに配向するようにコマンドを発行することができる。図13を参照すると、いくつかの実現形態では、コントローラ500は、相互と通信している制御調停システム510aと、挙動システム510bとを含む、制御システム510を実行する。制御調停システム510aは、アプリケーション520を制御システム510に動的に追加すること、およびそれから削除することを可能にし、アプリケーション520が、いずれかの他のアプリケーション520について知る必要なく、それぞれにロボット100を制御することを可能にすることを促進する。換言すれば、制御調停システム510aは、ロボット100のアプリケーション520と資源530との間での簡単な優先制御機構を提供する。資源530には、駆動システム200、センサシステム400、および/またはコントローラ500と通信している任意の搭載物もしくは制御可能なデバイスが挙げられる。アプリケーション520は、ロボット100例えば、プロセッサ上で同時に実行し、ロボット100を同時に制御するように、ロボット100のメモリ内に記憶することができる、またはそれに通信することができる。アプリケーション520は、挙動システム510bの挙動600にアクセスしてもよい。独立して配備されるアプリケーション520は、実行時に動的に、かつロボット100のロボット資源530例えば、駆動システム200、腕部単数または複数、頭部単数または複数等を共有するように組み合わせられる。アプリケーション520の間で実行時にロボット資源530を動的に共有するために、低レベルポリシーが実装される。ポリシーは、どのアプリケーション520が、そのアプリケーション520によって要求されるロボット資源530の制御を有するか例えば、アプリケーション520の間の優先順位階層を判定する。アプリケーション520は、動的に開始および停止すること、ならびに相互から完全に独立して実行することができる。また、制御システム510は、相互を支援するように共に組み合わせることができる、複雑な挙動600も可能にする。制御調停システム510aは、1つ以上の資源コントローラ540と、ロボットマネージャ550と、1つ以上の制御アービタ560とを含む。これらの構成要素は、共通プロセスまたはコンピュータ内にある必要はなく、いずれかの特定の順序で開始される必要はない。資源コントローラ540構成要素は、アプリケーション520に制御調停システム510aへのインターフェースを提供する。すべての各アプリケーション520のためのこの構成要素のインスタンスが存在する。資源コントローラ540は、認証、分散資源制御アービタ、コマンドバッファリング等の複雑性を取り除き、カプセル化する。ロボットマネージャ550は、任意の特定の時間にどのアプリケーション520がロボット資源530のいずれかの排他的制御を有するかを制御することによって、アプリケーション520の優先順位付けを協調させる。これは、情報の中枢コーディネータであるため、ロボット毎に1つのみ、ロボットマネージャ550のインスタンスが存在する。ロボットマネージャ550は、資源コントローラ540の線形に優先順位付けされた順序を有する、優先順位ポリシーを実装し、ハードウェア制御を提供する、資源制御アービタ560を追跡記録する。制御アービタ560は、すべての各アプリケーション520からコマンドを受信し、アプリケーションの優先順位に基づき、単一のコマンドを生成し、その関連資源530にそれを公開する。また、制御アービタ560は、その関連資源530から状態フィードバックも受信し、それをアプリケーション520まで返送する。ロボット資源530は、1つ以上のハードウェアコントローラを有する、機能モジュールのネットワーク例えば、アクチュエータ、駆動システム、およびそれらのグループであってもよい。制御アービタ560のコマンドは、特定の動作を実施する資源530に特定的である。現在のロボットの状態を評価するために、重心CG、慣性モーメント、およびロボット100の様々な部分の慣性の外積を算出するように、コントローラ500上で実行可能な動力学モデル570を構成することができる。また、動力学モデル570は、これらの構成要素の形状、重量、および/または慣性モーメントもモデル化してもよい。いくつかの実施例では、動力学モデル570は、ロボット100の様々な重心を計算するために、ロボット100上に配置され、かつコントローラ500と通信している、1つ例えば、加速度計および/またはジャイロの慣性モーメントユニット470IMUまたはその部分と通信する。コントローラ500は、ロボット100およびその構成要素の動作限界を判定するために、他のプログラム520または挙動600と共に、動力学モデル570を使用することができる。各アプリケーション520は、動作選択エンジン580と、資源コントローラ540と、動作選択エンジン580に接続される1つ以上の挙動600と、動作選択エンジン580に接続される1つ以上の動作モデル590とを有する。挙動システム510bは、予測モデル化を提供し、挙動600が、ロボット動作の見込まれる結果を評価することによって、ロボットの動作を協働して決定することを可能にする。いくつかの実施例では、挙動600は、複数の源からのセンサフィードバックを、先験的限界および情報と共に、ロボットの許容動作における評価フィードバックに連結する、階層的状態完全評価機能を提供する、プラグイン構成要素である。挙動600は、アプリケーション520にプラグイン可能である例えば、アプリケーション520の中または外にあるため、アプリケーション520または制御システム510のいずれかの他の部分を修正することなく、削除および追加することができる。各挙動600は、独立したポリシーである。挙動600をより強力にするために、複雑な組み合わせ機能を有することができるように、複数の挙動600の出力を共に別の入力に添付することが可能である。挙動600は、ロボット100の総合的認識の管理可能な部分を実現することが意図される。動作選択エンジン580は、制御システム510の協調要素であり、全ての挙動600の入力を考慮して、最適な動作を検索する、高速最適動作選択サイクル予測/修正サイクルを実行する。動作選択エンジン580は、3つの段階、すなわち指名、動作選択検索、および完了を有する。指名段階では、各挙動600は、動作選択サイクルが開始されたことを通知され、サイクル開始時間、現在の状態、およびロボットアクチュエータ空間の限界を提供される。内部ポリシーまたは外部入力に基づき、各挙動600は、この動作選択サイクルに関与することを望むか否かを決定する。この段階中、能動的挙動プリミティブのリストが生成され、この入力は、ロボット100上で実行されるコマンドの選択に影響を及ぼす。動作選択検索段階では、動作選択エンジン580は、また、動作空間とも称される、利用可能な動作の空間から、実現可能な結果を生成する。動作選択エンジン580は、実現可能なコマンド限界内のプール、および将来の対象期間の異なる時間ステップでの各コマンドの動作をシミュレーションした結果としての対応する結果を提供するために、動作モデル590を使用する。動作選択エンジン580は、挙動600の結果評価に基づき、好ましい結果を計算し、制御調停システム510aに対応するコマンドを送信し、フィードバックとして選択されるコマンドの動作モデル590を通知する。完了段階では、協働最高スコア結果に対応するコマンドが、ロボット資源530上での実行のために資源コントローラ540に提示される全般コマンドとして、共に組み合わせられる。将来の評価サイクルで使用されるフィードバックとして、能動的挙動600に最適結果が提供される。センサシステム400から受信されるセンサ信号は、動作を実行するために、1つ以上の挙動600との対話を生じさせることができる。例えば、制御システム510を使用して、コントローラ500は、それ自体およびロボット100が認知しているロボット100の周囲のいずれかの物体との衝突を回避する、各ロボット構成要素の調整された移動を効率的に達成するように、各ロボット構成要素例えば、モータまたはアクチュエータの動作または移動コマンドを、対応する動作空間例えば、その特定の要素の構成要素の可能な動作または移動の集合から選択する。内容全体が参照することによって本明細書に組み込まれる、2010年2月16日に出願された、米国特許出願第61/305,069号に記載されるように、コントローラ500は、イーサIOネットワーク等のロボットネットワーク上で、調整されたコマンドを発行することができる。制御システム510は、ロボット100が領域の周囲を機動する際、異なる構成/位置でのロボット100の安定性を最大限にするために、駆動システム200の適応速度/加速を提供してもよい例えば、1つ以上の挙動600を介して。いくつかの実現形態では、コントローラ500は、進行方向設定および速度設定に従って、ロボット100を推進する駆動システム200にコマンドを発行する。1つ以上の挙動600は、障害物に対処するために、1つが実行するよう選択され得る単独で、または全般ロボットコマンドとして他のコマンドとの組み合わせで、実現可能なコマンドの予測結果を評価するために、センサシステム400から受信される信号を使用してもよい。例えば、近接センサ410からの信号は、制御システム510に、ロボット100のコマンドされる速度または進行方向を変更させてもよい。例えば、近隣の壁による近接センサ410からの信号は、制御システム510が減速させるコマンドを発行するという結果をもたらし得る。別の場合では、椅子との遭遇による接触センサ単数または複数からの衝突信号は、制御システム510に、進行方向を変更するコマンドを発行させてもよい。他の場合では、接触センサに応えて、ロボット100の速度設定が低減されなくてもよい、および/または近接センサ410に応えて、ロボット100の進行方向設定が変化されなくてもよい。挙動システム510bは、ロボット100の速度設定を調節するように構成される速度挙動600例えば、プロセッサ上で実行可能な挙動ルーチンと、ロボット100の進行方向設定を変化させるように構成される進行方向挙動600とを含んでもよい。速度および進行方向挙動600は、同時に、かつ互いに独立して実行するように構成されてもよい。例えば、速度挙動600は、センサ例えば、一式単数または複数の近接センサ410、420のうちの1つをポーリングするように構成されてもよく、進行方向挙動600は、別のセンサ例えば、動態隆起センサをポーリングするように構成されてもよい。図13および14を参照すると、挙動システム510bは、遠隔操作例えば、ロボット100を誘導することのためにユーザ15が胴部140に触れることに反応するように構成される、胴部タッチ遠隔操作挙動600a例えば、プロセッサ上で実行可能な挙動ルーチンを含んでもよい。胴部タッチ遠隔操作挙動600aは、胴部が少なくとも閾値期間例えば、0.25秒にわたって接触例えば、人間の接触を受けたことをセンサシステム400が検出するときに、アクティブになることができる。例えば、コントローラ500と通信しており、胴部本体145の対応する上部パネル145t、底部パネル145b、前面パネル145f、裏面パネル145b、右パネル145r、および左パネル145lと関連付けられる、運動および/または接触センサ147t、147b、147f、147r、147r、147lが、図6Bおよび6Cに示されるように、運動および/またはそれぞれのパネルとの接触を検出することができる。いったんアクティブになると、胴部タッチ遠隔操作挙動600aは、例えば、タッチの楕円位置から感知および算出されるような接触力方向を受けとり、ホロノミック可動性を利用して局所X/Y座標において速度コマンドを駆動システム200に発行する。胴部タッチ遠隔操作挙動600aがアクティブである間に、障害物検出および障害物回避挙動がオフにされてもよい。感知したタッチ位置、力、または方向が変化した場合、胴部タッチ遠隔操作挙動600aは、感知した接触力方向と対応するように速度コマンドを変更する。胴部タッチ遠隔操作挙動600aは、センサシステム400が閾値期間例えば、2秒にわたってロボット100との接触をもはや感知しなくなるときに、停止ルーチンを実行してもよい。停止ルーチンは、センサシステム400がロボット100との例えば、胴部140との接触をもはや感知しなくなった場合に、約0.5秒後に駆動システム200に駆動を停止させてもよい。胴部タッチ遠隔操作挙動600aは、トリガ期間にわたって待機する必要なく、タッチ点の移動を可能にするように、ロボット100の停止における遅延を提供することができる。胴部タッチ遠隔操作挙動600aは、駆動システム200から駆動支援を受けながら、ユーザがロボット100を押すことを可能にする、支援駆動コマンドを駆動システム200に発行してもよい例えば、自力でロボット100を移動させることができないが、ユーザによるロボット100の移動を支援することができる、部分速度コマンド。胴部タッチ遠隔操作挙動600aは、その一部分が胴部140上におよび頭部160等のロボット100の上の他の場所に配置され得る、タッチセンサシステム480例えば、ボタン、容量センサ、接触センサ等から、センサ信号を受けとってもよい。胴部タッチ遠隔操作挙動600aは、典型的なユーザにとってアクセス可能な高さでタッチセンサシステム480の少なくとも一部分を配置するよう、地面Gから3~5フィート約91cm~152cmの間の高さHTで胴部140を位置付けてもよい。いくつかの実現形態では、胴部タッチ遠隔操作挙動600aは、ロボット100および特定の姿勢を配置するためのユーザタッチを認識する。例えば、ユーザ15が胴部140を押し下げたときに、センサシステム400は、胴部140への下向きの力を検出し、対応する信号をコントローラ500に送信する。胴部タッチ遠隔操作挙動600aは、胴部140への下向きの力の指示を受信し、制御システム510に、脚部130の高さHLを減少させ、それにより、胴部140の高さHTを減少させるようにコマンドを発行させる。同様に、ユーザ15が胴部140を押し/引き上げたときに、胴部タッチ遠隔操作挙動600aは、センサシステム400から胴部140への上向きの力の指示を受信し、制御システム510に、脚部130の長さHLを増加させ、それにより、胴部140の高さHTを増加させるようにコマンドを発行させる。ユーザ15が頭部160を押した、引いた、および/または回転させたときに、胴部タッチ遠隔操作挙動600aは、ユーザ動作の指示をセンサシステム400から例えば、首部150上のひずみゲージ/運動/接触センサ165から受信し得、制御システム510に、それに従って頭部160を移動させ、その後に姿勢を保持するようにコマンドを発行させることによって、応答してもよい。いくつかの実現形態では、ロボット100は、ロボット100のユーザ操作への受動抵抗および/または能動支援を提供する。例えば、モータ138b、152、154が、操作のフィードバック、ならびに胴部140の上昇等の比較的重い構成要素を移動させるための支援をユーザに提供するように、ロボット100のユーザ操作への脚部130および首部150の受動抵抗および/または能動支援を作動させる。これは、対応する構成要素の重量全体を負担する必要なく、ユーザが種々のロボット構成要素を移動させることを可能にする。挙動システム510bは、ロボット100の注意をユーザに向かって集中させるように構成される、タップ注意挙動600b例えば、プロセッサ上で実行可能な挙動ルーチンを含んでもよい。タップ注意挙動600bは、胴部140またはロボット100の何らかの他の部分が少なくとも閾値期間例えば、0.25秒にわたって接触例えば、人間の接触を受けたことをセンサシステム400が検出するときに、アクティブになってもよい。さらに、タップ注意挙動600bは、胴部タッチ遠隔操作挙動600aが非アクティブであるときに、アクティブになるのみであってもよい。例えば、0.2秒間の胴部140上の感知されたタッチは、胴部タッチ遠隔操作挙動600aをトリガしないであろうが、タップ注意挙動600bをトリガするであろう。タップ注意挙動600bは、胴部140上の接触位置を使用し、ユーザを見るように首部150の作動を介して頭部160を傾斜および/または回動してもよい。頭部160が、タッチ位置の方向を見ている位置に達したときに、挙動600bの停止基準に達することができる。いくつかの実現形態では、挙動システム510bは、駆動システム200が駆動することを停止させる例えば、ロボット100を停止させるように構成される、タップ停止挙動600c例えば、プロセッサ上で実行可能な挙動ルーチンを含む。タップ停止挙動600cは、胴部140が接触例えば、人間の接触を受けたことをセンサシステム400が検出し、ゼロ速度駆動コマンドを駆動システム200に発行して、あらゆる以前の駆動コマンドをキャンセルするときに、アクティブになってもよい。ロボットが駆動しており、ユーザがそれを停止させることを所望する場合、ユーザは、胴部140またはロボット100の何らかの他の部分またはタッチセンサをタップすることができる。いくつかの実施例では、タップ停止挙動600cは、胴部タッチ遠隔操作挙動600aおよびタップ注意挙動600b等のより高い優先順位の挙動がアクティブではない場合のみ、起動することができる。タップ停止挙動600cは、センサシステム400が胴部140またはロボット100の上の他の場所上のタッチをもはや検出しなくなると、終了してもよい。いくつかの実現形態では、ロボット100は、ウェブパッド310とコントローラ500および/またはロボット100の他の構成要素との間の通信を可能にするために、ブリッジとも呼ばれる仲介セキュリティデバイス350図9を含む。例えば、ブリッジ350は、ウェブパッド通信プロトコルからロボット通信プロトコル例えば、ギガバイト容量を有するイーサネット登録商標へウェブパッド310の通信を変換してもよい。ブリッジ350は、ウェブパッド310を認証し、ウェブパッド310とコントローラ500との間の通信変換を提供してもよい。いくつかの実施例では、ブリッジ350は、ウェブパッド310とロボット100との間の任意の通信トラフィックを承認/立証する、承認チップ352を含む。ブリッジ350は、ロボット100と通信しようとして、承認されたウェブパッド310をチェックしたときに、コントローラ500に通知してもよい。また、承認後、ブリッジ350は、通信承認をウェブパッド310に通知してもよい。ブリッジ350は、首部150または頭部図2および3に示されるように上に、あるいはロボット100の上の他の場所に配置されてもよい。セッション初期化プロトコルSIPは、インターネットプロトコルIP上の音声およびビデオ通話等のマルチメディア通信セッションを制御するために広く使用されている、IETFで定義された信号伝達プロトコルである。本プロトコルは、1つまたは複数のメディアストリームを含む、2者ユニキャストまたは多数共同マルチキャストセッションを生成し、修正し、および終了させるために使用することができる。修正は、アドレスまたはポートを変更すること、より多くの参加者を招待すること、およびメディアストリームを削除または追加することを伴うことができる。他の実行可能なアプリケーション例は、テレビ会議、ストリーミングマルチメディア配信、インスタントメッセージング、プレゼンス情報、ファイル転送等を含む。ボイスオーバーインターネットプロトコルボイスオーバーIP、VoIPは、インターネット等のインターネットプロトコルIP上で音声通信およびマルチメディアセッションを送達するための一群の方法、通信プロトコル、および伝送技術の一部である。頻繁に遭遇し、しばしばVoIPと同意語として使用される他の用語は、IPテレフォニ、インターネットテレフォニ、ボイスオーバーブロードバンドVoBB、ブロードバンドテレフォニ、およびブロードバンド電話である。図15は、ロボット100を通して通信を開始して行うためのブリッジ350との対話を含む、電話通信例を提供する。電話AのSIPが、SIPアプリケーションサーバに電話をかける。SIPが、VoIPのダイヤル機能を呼び出し、HTTPPost要求をVoIPウェブサーバに送信させる。HTTPPost要求は、コールバック機能のように挙動してもよい。SIPアプリケーションサーバは、呼出音を電話Aに送信し、通話が開始されたことを示す。VoIPサーバは、PSTNを介して、HTTPPost要求に含有されたコールバック番号への通話を開始する。コールバック番号は、SIPアプリケーションサーバへコールバックを送るように構成される、SIPDIDプロバイダ上で終了する。SIPアプリケーションサーバは、着信通話を電話Aの発信通話と合致させ、OK応答で両方の通話に応じる。メディアセッションが、電話AとSIPDIDプロバイダとの間で確立される。電話Aは、VoIPによって生成される人工的な呼出音を聞いてもよい。いったんコールバック行程が応答されたことをVoIPが検証すると、ブリッジ350を介してロボット100等の宛先へのPSTN通話を開始する。ロボット100は、通話に応じ、VoIPサーバは、SIPDIDプロバイダからのメディアをロボット100からのメディアと橋渡しする。図16A~16Dは、ロボット100またはコントローラ500あるいは駆動システム200等のその一部分と、コンピューティングデバイス310着脱可能、または頭部160に固定して取り付け可能と、クラウド1620クラウドコンピューティング用と、ポータル1630とを含み得る、例となるロボットシステムアーキテクチャ1600、1600a-dの概略図を提供する。ロボット100は、可動性例えば、駆動システム200と、コントローラ500上で実行される制御システム510図13等の確実で安全かつ安定したロボット知能システムと、電源105と、感知システム400と、コントローラ500と通信しているマニピュレータを用いた随意的な操作とを含み得る、種々のコアロボット特徴を提供することができる。制御システム510は、頭部および速度制御、本体姿勢制御、ナビゲーション、およびコアロボットアプリケーションを提供することができる。感知システム400は、例えば、カメラ320を介した視覚、例えば、3-D撮像センサ450を介した深度マップ撮像、衝突の検出、障害物の検出および障害物回避、および/または例えば、慣性計測ユニット470を介した慣性計測を提供することができる。コンピューティングデバイス310は、タブレットコンピュータ、電話または携帯情報端末等の携帯用電子デバイス、あるいはデータ処理力のないタブレットまたはディスプレイ例えば、ロボット本体110内の原子スケールPC用のモニタの役割を果たすタブレットであってもよい。いくつかの実施例では、タブレットコンピュータは、ユーザインターフェースを表示し、ユーザ入力を受けとるためのタッチスクリーンを有することができる。コンピューティングデバイス310は、セキュリティ、薬剤コンプライアンス、テレプレゼンス、挙動の指導、ソーシャルネットワーキング、アクティブアラーム、住宅管理等のための例えば、メモリの中に記憶され、プロセッサ上で実行可能なソフトウェアアプリケーションを含み得る、1つ以上のロボットアプリケーション1610を実行してもよい。コンピューティングデバイス310は、通信能力例えば、安全な無線接続性および/またはセルラー通信、精密アプリケーション開発ツール、音声認識、および個人または物体認識能力を提供してもよい。コンピューティングデバイス310は、いくつかの実施例では、Google,Inc.によって提供されているAndroid、Apple,Inc.によって提供されているiPadOS、他のスマートフォンオペレーティングシステム、またはRSSA2等の特殊ロボットオペレーティングシステム等の相互作用/COMS装備オペレーティングシステムを利用する。クラウド1620は、クラウドコンピューティングおよび/またはクラウド記憶装置能力を提供する。クラウドコンピューティングは、インターネットベースのコンピューティングを提供してもよく、それにより、共有サーバが、要求に応じて、資源、ソフトウェア、およびデータをコンピュータおよび他のデバイスに提供する。例えば、クラウド1620は、サービス抽象化層と、その上でインスタンス化されたサーバ仮想マシン上のハイパーテキスト転送プロトコルラッパとを含み得る、少なくとも1つのサーバコンピューティングデバイスを含むクラウドコンピューティングサービスであってもよい。サーバコンピューティングデバイスは、HTTP要求を解析し、HTTP応答を送信するように構成されてもよい。クラウドコンピューティングは、データおよびアプリケーションを維持するためにインターネットおよび中央遠隔サーバを使用する技術であってもよい。クラウドコンピューティングは、ユーザが、インストールを伴わずにアプリケーション1610にアクセスして使用し、インターネットアクセスを用いて任意のコンピュータにおける個人ファイルにアクセスすることを可能にすることができる。クラウドコンピューティングは、記憶、メモリ、処理、および帯域幅を集中させることによって、比較的効率的なコンピューティングを可能にする。クラウド1620は、例えば、CPUおよびメモリ使用量を解放することによってロボットソフトウェア要件を低減させながら、拡張性のあるオンデマンド計算能力、記憶、および帯域幅を提供することができる。クラウド1620へのロボット接続性は、基地局に戻るようにロボット100に要求することなく、ロボット動作および利用履歴の自動データ収集を可能にする。さらに、経時的な連続データ収集が、マーケティング、製品開発、および支援のためにデータマイニングすることができる、豊富なデータをもたらすことができる。クラウド記憶装置1622は、データが、概して第三者によってホストされる複数の仮想サーバ上に記憶される、ネットワークコンピュータデータ記憶装置のモデルであり得る。ロボット100とクラウド1620との間の通信を提供することによって、ロボット100によって収集される情報を、ウェブベースの情報ポータルを介して認定ユーザによって安全に閲覧することができる。ポータル1630は、個人情報、住宅状態情報、およびロボット状態情報等の情報を収集および/または提供するためのウェブベースのユーザポータルであってもよい。情報は、さらなる機能および資源をユーザおよび/またはロボット100に提供するように、第三者情報と一体化することができる。ロボットシステムアーキテクチャ1600は、前向きなデータ収集を促進することができる。例えば、コンピューティングデバイス310上で実行されるアプリケーション1610は、ロボット100によって行われる動作および/または感知システム400を使用してロボット100によって閲覧される個人または環境についてのデータおよびレポートを収集してもよい。このデータは、ロボット100の一意の特性であり得る。いくつかの実施例では、ポータル1630は、ワールドワイドウェブ上の個人用ポータルウェブサイトである。ポータル1630は、個人化能力および他のコンテンツへの経路を提供してもよい。ポータル1630は、いくつかの異なるソースからサービスを提供するために、分散アプリケーション、異なる数およびタイプのミドルウェアおよびハードウェアを使用してもよい。加えて、事業用ポータル1630は、職場で協調動作を共有し、パーソナルコンピュータ、携帯情報端末PDA、および携帯電話/移動式電話等の複数のプラットフォーム上で使用可能なコンテンツを提供してもよい。情報、ニュース、および更新が、ポータル1630を通して送達され得るコンテンツの実施例である。個人用ポータル1630は、ソーシャルネットワーク上で友達に情報を提供すること、または他者に役立ち得る外部コンテンツへのリンクを提供すること等の任意の特定のトピックに関係してもよい。高密度データ対低密度データおよび高密度特徴対低密度特徴は、本明細書では、空間データセットに関して言及される。当業者がそのような用語を意味するように解釈するであろうことから意味を制限または縮小することなく、高密度対低密度は、概して、空間表現あたりの多くのデータ点対少ないデータ点を意味し、特に、以下を意味してもよい。i2-D画像データ、または2-Dデータおよび範囲を含む3-D画像との関連で、高密度画像データは、ピクセルがほぼ完全に投入された、あるいは損失および/または元の画像捕捉略非圧縮、未加工、または無劣化圧縮画像を含むからのアーチファクタを実質的に伴わずにピクセルにラスタライズされることが可能な画像データを含み一方、低密度画像は、画像が量子化され、サンプリングされ、劣化圧縮され、ベクター化され、例えば、スーパーピクセル、ノード、縁、表面、関心点、ボクセルにセグメント化され、または別様に元の捕捉からの忠実性がかなり低減させられる、あるいは画像を表すようにピクセルにラスタライズされる際に補間されなければならないものである。ii2-Dまたは3-D特徴との関連で、高密度特徴は、全て検出および記録することができる、検出アプローチの解決まで、ほぼ非制約的にデータ投入される特徴、および/またはサブ画像にわたって多くの特徴HOG、ウェーブレットを収集するように認識される検出器によって認識される特徴であり得、低密度特徴は、特徴入力、側方抑制、および/または特徴選択の数において、数が意図的に制約され得、および/または画像内の限定数の分離した点Harrisコーナー、縁、Shi-Tomasiを識別するように認識される検出器によって認識され得る。3-D環境構造に関して、ロボット100は、作業表面5の周囲で動きながら、ロボット100の周囲の情景10の高密度画像1611等の画像を獲得してもよい。いくつかの実現形態では、ロボット100は、高密度画像1611を取得するためにカメラ320および/または撮像センサ450例えば、体積点群撮像デバイスを使用する。カメラ320および/またはセンサ450と通信しているコントローラ500は、加速度計データ追跡、走行距離計測データおよび/またはタイムスタンプとともにセンサシステム400からの他のデータ等の情報1613を、高密度画像1611と関連付ける例えば、高密度画像1611をデータで注釈またはタグを付けることができる。いくつかの実施例では、ロボット100は、高密度画像1615のストリーミングシーケンス1615を捕捉し、高密度画像シーケンス1615を注釈データ1613で注釈を付け、注釈付き高密度画像シーケンス1615aを提供する。ロボット100は、作業時間にわたって潜在的に非常に大きい画像データセット1603を蓄積することができるクラウド記憶装置1622へ、例えば、コントローラ500またはウェブパッド310を介して定期的に画像データ1601を伝送してもよい。画像データ1601は、未加工センサデータ例えば、点群または信号あるいは高密度画像シーケンス1615または注釈付き高密度画像シーケンス1615a等のタグ付きデータ例えば、JavaScriptObjectNotationJSONオブジェクト等を用いた、特性または属性を有するデータオブジェクトであってもよい。クラウドサービス1620は、受信した画像データ1601例えば、高密度画像シーケンス1615または注釈付き高密度画像シーケンス1615aを処理し、処理したデータセット1617をロボット100に、例えば、コントローラ500および/またはウェブパッド310に返信してもよい。ロボット100は、情景10の周囲で操作するために、受信した処理済みデータセット1617に基づいて、例えば、コントローラ500またはウェブパッド310を介して駆動コマンド1619を駆動システム200に発行してもよい。閾値期間の後、または閾値量の画像データ1601、1603がクラウド記憶装置1622の中で蓄積された後に、クラウドサービス1620は、画像データセット1603を処理して情景10環境の高密度3-Dマップまたはモデル1605にし、次いで、この高密度3Dマップまたはモデル1605を単純化して、例えば、2-D地形マップに類似する各点における高さデータを伴う2-Dマップであり得る2-D高さマップ1607にする、種々のオフライン方法のうちの1つを実行してもよい。いくつかの実施例では、2-D高さマップ1607は、ZデータとともにXおよびY座標を有する地形マップである。各X、Y座標は、1つ以上のZ点すなわち、高さデータを有してもよい。各X、Y座標に対する多数のZ点例えば、何百または何千ものZ点を有し得る、高密度3-Dマップと違って、2-D高さマップ1607は、2から20の間例えば、10の点等の各X、Y座標に対する閾値よりも少ない数のZ点を有してもよい。室内のテーブルの3-Dマップに由来する2-D高さマップ1607は、テーブルに沿った各X、Y座標に対するテーブル面の底面の第1のZ点、およびテーブル面の頂面の第2のZ点を示し得る。この情報は、ロボット100が、テーブル面の下を通過できるかどうかを判定することを可能にする。各X、Y座標に対するZ点の連続範囲の高密度データセットからのZ点を、検出された物体12を示す選択数のZ点の低密度データセットまで低減することによって、ロボット100は、クラウドサービス1620によって使用される3-Dマップよりも比較的小さいサイズを有する、2-D高さマップ1607を受信することができる。これは、ひいては、ロボット100が、クラウドサービス1620に利用可能な拡張性のあるメモリ空間と比較して、実用的かつ費用効率的なサイズを有するローカルメモリ上に2-D高さマップ1607を記憶することを可能にする。ロボット100は、情景10内での将来の作業のためのナビゲーションデータをロボット100および関連コントローラ500に提供する、2-D高さマップ1607をクラウド1620から受信する。3-Dマップデータ比較のさらなる方法および特徴は、その全体で参照することにより本明細書で組み込まれる、R.Triebel、P.Pfaff、およびW.BurgardによるMulti-LevelSurfaceMapsForOutdoorTerrainMappingandLoopClosing、IEEE/RSJInternationalConferenceonIntelligentRobotsandSystems,2006で開示されている。クラウド1620は、そうでなければロボット100で実用的または費用効果的ではない場合がある、資源例えば、計算、処理、メモリ等のオンデマンド拡張をロボット100に提供する。例えば、クラウド1620は、短期間のみ使用され、次いで、破棄され、次いで、第2のサイズまで再び縮小され得る、比較的大量のデータ1601を記憶および/または処理するための第1のサイズまで拡張する、拡張性のあるクラウド記憶装置1622を提供することができる。さらに、クラウド1620は、そうでなければロボット上で可能ではない場合がある、比較的複雑な計算または強引なアルゴリズムを実行するためのコンピュータ処理能力を提供することができる。コンピュータ処理能力およびメモリを拡張性のあるクラウド1620に移すことによって、ロボット100は、比較的少ない計算能力およびメモリを有するコントローラ500を使用することができ、したがって、費用効率的な解決法を提供する。さらに、ロボット100は、処理および以降の回収のために非リアルタイムおよび非時間依存タスクをクラウド1620に渡しながら、障害物回避等のリアルタイムタスクをコントローラ500またはウェブパッド310上で実行してもよい。クラウド1620は、画像データセット1603を3-D表現に処理するための1つ以上のフィルタ例えば、バンドル調整、RANSAC、期待値最大限化、SAM、または他の3-D構造推定アルゴリズムを実行してもよい。いったん処理され、高密度3-Dマップ1605が作成または更新されると、画像データセット1603をクラウド記憶装置1622から破棄し、資源を解放し、それに従ってクラウド1620が拡張することを可能にすることができる。結果として、ロボット100は、クラウドベースの資源の使用により、画像データセット1603の記憶および処理に対処するために、内蔵記憶装置も処理も必要としない。クラウド1620は、処理されたナビゲーションデータ1601またはマップ1607例えば、圧縮2-D高さマップをロボット100に返信してもよく、次いで、それを比較的より単純な局所化およびナビゲーション処理に使用することができる。3-D再構築のさらなる方法および特徴は、その全体で参照することにより本明細書に組み込まれる、3DModelsFromExtendedUncalibratedVideoSequences:AddressingKey-frameselectionandprojectivedriftbyJ.RepkoandM.Pollefeys;FifthInternationalConferenceon3-DDigitalImagingandModeling,2005で開示されている。床の分類に関して、ロボット100は、情景10の周囲でその上で機動しながら、作業面5の画像を取得してもよい。コントローラ500は、画像を受信し、物体検出および障害物回避ODOAのための物体検出ルーチンを実行してもよい。いくつかの実現形態では、コントローラ500は、加速度計データ追跡、走行距離計測データ、および/またはタイムスタンプとともにセンサシステム400からの他のデータ等の情報を、画像と関連付ける例えば、画像をデータでタグ付けする。画像は、落下物、敷物の房、敷物の上の靴下等を捕捉し得る。前の実施例のように、ロボット100は、以降のバッチ処理のために稼働しながら、クラウド記憶装置1622まで画像データ1601をストリーム配信することができる。ロボットが望ましくない事象すなわち、偶発的な衝突に遭遇したとき、危険の前のデータ瞬間が、学習アルゴリズムのために識別されてもよいように、特別な危険タグがデータセットに挿入される。いったん注釈付き画像データセットおよび関連タグ1603が蓄積されると可能性として多くの他のロボット100からのデータセットとともに、並列クラウドホスト1620が、例えば、時間的に先行する危険タグである、実環境の多くの画像からの危険画像部類を算出する、監視された学習アルゴリズムを使用して、注釈付き画像データセット1603を処理するように起動されてもよい。いったん危険画像部類モデル1609の訓練が完了すると、そのモデル1609のパラメータ少量のデータを、多くの異なるロボット100にダウンロードして戻すことができる。したがって、ロボット隊全体100が、オンラインで環境の要素を学習することができる。この方法に適用可能な学習方法は、遺伝的アルゴリズム、神経回路網、およびサポートベクターマシンを含む。これらの全ては、複雑すぎる場合があり得、非常に多くの記憶を占めるので低費用ロボット100ではオンラインですなわち、ローカルロボットプロセッサ上で作動することができない場合があるが、クラウド1620は、完全に訓練された分類子1625へのアクセスをロボット隊に提供する。分類子1625は、例えば、誤差関数を最小限化し、費用関数を最適化/最大限化し、または訓練データを使用して性能を別様に向上させるために、通常は反復訓練アルゴリズムを採用する、マシン学習アルゴリズムである。典型的には、アルゴリズムは、値が訓練データから学習される、いくつかのパラメータを有する。3つのタイプとして、クラスタ化または次元退縮を介した、監視された回帰、監視された分類、および監視されていない分類を含む。分類子1625の実施例は、種々のタイプおよびカーネルの勾配降下または他の費用関数最小限化技法を用いたサポートベクターマシンSVM、単純ベイズ分類子、ロジスティック回路、アダブースト、K最近傍K-NNおよび/またはK-NN回帰、神経回路網、無作為な森林、および線形モデルである。分類子は、ベクター、マトリクス、記述子、または他のデータセットによって表され得る、種々のアルゴリズム、例えば、配向勾配のヒストグラムHOG、形状コンテキストヒストグラムSCH、カラーパッチ、質感パッチ、輝度パッチ、SIFT、SURF、または同等物からのスケール不変特徴記述子、MSERのようなアフィン不変記述子、画像内の標識されたスーパーピクセルまたはセグメント、ハフ変換、またはRANSAC線検出によって識別され得る特徴、およびこれと組み合わせ可能な他の特徴を分類する。分類子1625は、写真のみから、ロボットシステムがそれらの環境内の危険を回避するのに役立つように、オンラインで実行することができる。いったんモデルパラメータが決定されると、クラウド記憶装置1622の中に記憶された画像データセット1603を破棄することができる。この実施例は、前の実施例と組み合わせることができ、環境の3-D構造の判定が、分類アルゴリズムを訓練するための横断可能な領域の識別を可能にする。1つの学習技術例は、その全体で参照することにより本明細書に組み込まれる、Long-TermLearningUsingMultipleModelsForOutdoorAutonomousRobotNavigation,byMichaelJ.Procopio,JaneMulligan,andGregGrudic,2007IEEEInternationalConferenceonIntelligentRobotsandSystemsで開示されている。ストリーミングは、概して、非常に高いデータレートで起こることができるバッチ処理タスクをディスパッチすること、または遅延した方式で画像を浸透させることと区別されるような、パケットが送信機と受信機との間で並べ替えられるか否かにかかわらず、バッファリングを伴って、または伴わずに、画像シーケンスがリアルタイムで捕捉された順序および速度にいくらか関係して、画像シーケンスを伝送することを意味する。ストリーミングという用語は、実世界の帯域幅、処理、および記憶制約に基づいて、異なるデータがロボットシステムのエンティティ内および間で移動させられる速度を区別するように、バッチ処理タスクをディスパッチすることと区別される。図16Dおよび16Eを参照すると、実用的な費用レベルでのロボット100は、ロボットの帯域幅、計算、および記憶に制限を有し得る。ローカルで処理されたデータ1613すなわち、ロボットセンサシステム400からのデータで画像1611に注釈を付けることによって、ロボット100は、極めて低頻度で例えば、毎秒何回もの代わりに、数秒ごとに1回画像1611、高密度画像シーケンス1615、1615a、または画像データ1601を送信し、データの連続ストリーミングと比較して、アップストリーム帯域幅を劇的に縮小することができる。加えて、コントローラ500および/またはウェブパッド310は、無線接続性がアクセス不可能であるときに、画像1611および注釈データ1613をロボット100上に記憶することができ、無線接続性がアクセス可能であるときに伝送することができる、ローカルキャッシュメモリを含むことができる。バッファリングは、ロボット100が、例えば、信号受信が良くない部屋の中で、部屋相当のデータを収集し、隣接する部屋の中等で、いったん無線接続性が再び利用可能になると、完全データセット1601、1603を依然として伝送することを可能にする。したがって、ロボット100上のデータ管理が、種々の通信環境に適応するために必要であり得る。可動式ロボットが、情景10例えば、家庭、オフィス等の全体を通して導かれ、方向付けられ、または自動的にナビゲートするにつれて、1つ以上のカメラ320および/または撮像センサ450は、ロボット100の軌道に沿ったロボット100の姿勢位置および配向において取得される視界にそれぞれ対応する、画像1611の1つ以上のシーケンス1615を取得してもよい。例えば、コントローラ500のタイマーは、各画像1611の基準タイムスタンプを提供し、タイムスタンプは、位置、局所化、移動速度または加速、センサベースの配向等に対応する、注釈1613と関連付けられてもよい。少なくともいくつかの画像1611は、情報で注釈を付けられ、全ての画像1611は、タイムスタンプ、あるいはロボット状態、画像状態等を反映する他のメタデータで注釈を付けられてもよい。画像1611は、何らかのリアルタイム捕捉速度で捕捉することができ、それは定期的である必要がない例えば、画像1611は、例えば、処理可用性、帯域幅可用性、時刻、タスク、現在の画像内の目的とする特徴の密度等に基づいて、適応的速度で捕捉されてもよい。カメラ320および/または撮像センサ450は、ハードウェアエンコーダ、メモリに利用可能な高速バス、内蔵プロセッサ、および比較的高速で捕捉された画像1611を記憶および蓄積するための記憶装置例えば、フラッシュメモリまたはハードディスクドライブと通信していてもよい。ロボット100上で支持可能であるよりも多くの資源をそれ自体が消費しない、画像分類子1625の一式のパラメータ等のモデルを作成するように、1つ以上のマシン視覚アルゴリズムを、記憶した画像1611に適用することができる。しかしながら、克服するべきいくつかの障害がある。1典型的には、モデル化される特徴を表す、少なくともいくつかの訓練データ例えば、画像1611または注釈1613の識別が、大幅な画像圧縮前に適用されるべきである。2短期間でモデル化を完了するように、クラウドサービスでインスタンス化される比較的大きい分散コンピュータインフラストラクチャに多くのアルゴリズムおよびヒューリスティックスを拡張および適合することができるが、これは、公衆インターネットにわたって標的コンピュータインフラストラクチャに画像1611を到達させることを必要とする。3比較的大きいデータセットを輸送するために利用可能な帯域幅は、i典型的に他のトラフィックで占有される無線帯域幅を用いて可動式であるロボット100、およびiiアップストリーム方向で帯域幅が制限され得るインターネットアクセスによって制限される。少なくともこれらの障害を克服するために、高密度画像1611を、ロボット100からローカルサーバ1640へ例えば、無線で伝達することができ、それは、リアルタイム捕捉速度よりも比較的遅いローカル送信速度での記憶装置との有線ネットワークであってもよい。ローカルサーバ1640は、高密度画像1611をバッファリングし、注釈1613で注釈を付けることができる。さらに、ローカルサーバ1640は、クラウドサービス1620への以降の伝達のために注釈付き高密度画像シーケンス1615aを蓄積してもよい。ローカルサーバ1640は、リアルタイム捕捉速度よりも遅いクラウド送信速度で、または高速でクラウドコンピューティングインフラストラクチャによってサービス提供するために好適な速度で、画像データ1601例えば、高密度画像1611、高密度画像シーケンス1615、および/または注釈付き高密度画像シーケンス1615aをクラウドサービス1620に伝達することができる。クラウドサービス1620は、注釈付き高密度画像シーケンス1615aに由来し、それを表すが、例えば、いずれの未加工画像データも除外する、簡略化データセット1617を提供するように、例えば、画像データ1601上例えば、高密度画像1611および関連注釈1613上の分類子1625を訓練するようにインスタンスを処理する十分に高速、並列、および/または大きい画像セット分類子1625を弾性的にディスパッチすることによって、受信した画像データ1601を処理することができる。クラウドサービス1620は、例えば、処理間隔後に、簡略化したデータセット1617を、ロボット100と通信するローカルサーバ1640に、またはロボット100に直接伝送することができる。データセット1617の要素は、情景/環境10に対してロボット100を機動させるようにコマンドを駆動システム200に発行するために、ロボット100によって使用されてもよい。例えば、多くのロボットのうちの1つの画像データ1601上で訓練されたコードまたは靴下または摂取可能な破片分類子1625が、画像パターンを識別し、ハザードから離れて、または目的とする領域に向かってのいずれかで、ロボット100を方向付けるように、ロボット100に返信されるパラメータとともに使用されてもよい。無線接続または消費者/商業非対称ブロードバンドサービスが、伝送方向に帯域幅制限されるときに、高密度画像シーケンス1615を大型記憶装置デバイスの中にバッファリングし、パケット交換、並べ替え、補正、サービスの質等を利用して、収集時間すなわち、高密度画像シーケンス1615を収集する期間よりも比較的長い期間にわたってアップロードすることができる。例えば、アップロードは、一晩、ロボットの軌道が分単位であった数時間の期間にわたって、ロボットの軌道が時間単位であった数日の期間にわたって等で起こってもよい。ローカルサーバ1640またはクラウドサービス1620上で、リアルタイム捕捉速度で捕捉される、可動式ロボット100の軌道に沿った環境の視野のシーケンスを表す高密度画像1611を、ロボット100のロボットソフトウェアプラットフォームに関係するサービス1623によって受信することができる。クラウドゲートウェイとも呼ばれる、サービス1623は、ロボットソフトウェアプラットフォームのエージェントであってもよく、または第三者によって独立して制御されてもよい。クラウドゲートウェイ1623は、高密度画像シーケンス1615を、例えば、注釈内容に応じてクラウドサービス1620内の1つ以上の仮想サーバ1621としてインスタンス化/整備される、アルゴリズム、分類子1625、およびアプリケーションプラットフォームインスタンスと合致してもよく、高密度画像シーケンス1615および任意の注釈1613を、分類子1625に対する訓練データとしてパッケージ化する。代替として、クラウドゲートウェイ1623は、ロボット100、ローカル基地局等からの事前パッケージ化された情報と同じ情報を処理し、適応的および弾性クラウドサービスアプリケーションプログラミングインターフェースAPI例えば、AmazonEC2に準拠するような他のインスタンスを弾性的に追加する、十分な所定の仮想サーバインスタンス1621のディスパッチを単純に始めてもよい。ローカルサーバ1640、クラウドゲートウェイ1623、クラウドサービスマネージャ、または初期仮想プロセッサインスタンス1621は、受信した高密度画像シーケンス1615、1615aの中の高密度画像1611のうちの少なくともいくつかのそれぞれを、高密度画像シーケンス1615、1615aに由来し、かつそれを表すデータセット1617まで低減させるというバッチ処理タスクをディスパッチする。必要に応じて、新しい仮想プロセッサインスタンス1621を整備/インスタンス化することができる一度に全て、または訓練タスクがより複雑になる際のいずれかで。高密度画像1611および訓練されたモデル1609は、長期記憶インスタンスで保つことができる。訓練された分類子1625またはモデル1609のパラメータは、未加工画像1611のシーケンスを除外して、ロボット100に返信される例えば、直接、またはロボット100のエージェントを介して。図16Fは、ロボット100をナビゲートする方法のための動作の例となる配設1600fを提供する。本方法は、リアルタイム捕捉速度で、ロボット100の運動の軌道に沿ったロボット100の周囲の情景10の高密度画像1611のストリーミングシーケンス1615を捕捉すること1602fと、注釈1613を高密度画像1611のうちの少なくともいくつかと関連付けること1604fとを含む。本方法はまた、リアルタイム捕捉速度よりも遅い送信速度で、高密度画像1611および注釈1613を遠隔サーバ1620に送信すること1606fと、処理時間間隔後に遠隔サーバ1620からデータセット1607、1617を受信すること1608fとを含む。データセット1607、1617は、高密度画像シーケンス1615、1615aおよび対応する注釈1613の少なくとも一部分に由来し、かつそれを表すが、高密度画像1611のシーケンス1615、1615aの未加工画像データを除外する。本方法は、受信したデータセット1607、1617に基づいて、情景10に対してロボット100を移動させること1610fを含む。本方法は、高密度画像1611および注釈1613をローカルサーバおよびバッファ1640図16Dおよび16Eに送信し、次いで、リアルタイム捕捉速度よりも遅い送信速度で、高密度画像1611および注釈1613を遠隔サーバ1620に送信することを含んでもよい。ローカルサーバおよびバッファ1640は、ロボット100の比較的短い範囲内例えば、20~100フィートまたは無線通信範囲内にあってもよい。例えば、ローカルおよびバッファ1640は、ロボット100を収容するユーザの家庭内のパーソナルコンピュータ、またはロボット100を収容するビルのローカルサーバであってもよい。いくつかの実現形態では、注釈1613は、高密度画像1611のうちの少なくともいくつかに対応する絶対時間基準等のタイムスタンプと、走行距離計測データ、加速度計データ、傾斜データ、および角速度データのうちの少なくとも1つを含み得る、姿勢関連センサデータとを含む。注釈1613は、ロボットの危険応答100例えば、崖を回避する、閉じ込め状況から脱出する等に対して時間間隔内に捕捉される、危険事象を反映する高密度画像1611に関連付けることができる。さらなる実施例では、注釈1613を関連付けること1604fは、キーフレーム識別子を高密度画像1611のサブセットと関連付けることを含んでもよい。キーフレーム識別子は、キーフレーム識別子の特性例えば、フラグ、タイプ、グループ、動き、静止等に基づいて、高密度画像1611の識別を可能にしてもよい。注釈1613は、高密度画像1611のストリーミングシーケンス1615の高密度画像1611の間で追跡される特徴の構造復元および運動復元に由来する、低密度の一式の3-D点を含んでもよい。低密度の一式の3-D点は、ロボット100上の体積点撮像デバイス450に由来し得る。さらに、注釈1613は、低密度の一式の3-D点のうちの個々の3-D点に対するカメラの姿勢等のカメラパラメータを含んでもよい。情景10の横断可能および横断不可能領域の標識が、高密度画像1611に対する注釈1613であってもよい。データセット1607、1617は、高密度画像1611から抽出される、2-D高さマップ1607等の1つ以上の質感マップ、および/または情景10の高密度画像1611内の特徴を表す地形マップ1607を含んでもよい。データセット1607、1617は、情景10の捕捉される新しい高密度画像1611内の特徴を分類するための訓練された分類子1625を含んでもよい。図16Gは、可動式ロボット環境データを抽象化する方法のための動作の例となる配設1600gを提供する。本方法は、ある受信速度で、可動式ロボット100からロボット環境10の高密度画像1611のシーケンス1615を受信すること1602gを含む。高密度画像1611は、リアルタイム捕捉速度で可動式ロボット100の運動の軌跡に沿って捕捉される。受信速度は、リアルタイム捕捉速度よりも遅い。本方法はまた、高密度画像1611のシーケンス1615の中の高密度画像1611のうちの少なくともいくつかと関連付けられる注釈1613を受信すること1604gと、高密度画像1611のうちの少なくともいくつかの中の高密度データを、高密度画像1611のシーケンス1615の少なくとも一部分を表すデータセット1607、1617まで低減させるためのバッチ処理タスクをディスパッチすること1606gとを含む。本方法はまた、データセット1617を可動式ロボット100に伝送すること1608gも含む。データセット1607、1617は、高密度画像1611のシーケンス1615の未加工画像データを除外する。いくつかの実現形態では、バッチ処理タスクは、高密度画像1611のシーケンス1615を処理してロボット環境10の高密度3-Dモデル1609にすることと、高密度3-Dモデル1609を処理して2-D位置および床面Gからの少なくとも1つの高さの座標系用の地形モデル1607にすることとを含む。いくつかの実施例では、地形モデル1607は、2-D位置および床面Gからの複数の占有および非占有高さ境界の座標系のためのものである。例えば、テーブルの下を通過することができるかどうかをロボット100が判定することができるように、テーブルを有する部屋が、関連テーブル面の上限および下限高さを示すデータを提供する場合の地形モデル1607である。バッチ処理タスクは、例えば、クラウド1620が、任意の環境内の目的とする特徴を識別するための分類子1625を構築することができるように複数のロボット環境10に対応する高密度画像シーケンス1615、1615aを蓄積することを含んでもよい。したがって、バッチ処理タスクは、高密度画像1611のシーケンス1615上での複数の分類子1625および/または1つ以上の分類子1625を訓練することを含んでもよい。例えば、バッチ処理タスクは、危険事象を反映する注釈1613を、可動式ロボット100の危険応答に対して時間間隔内に捕捉される高密度画像1611と関連付けることと、例えば、分類子1625のモデルパラメータのデータセット603、1607、1617を提供するように、関連危険事象注釈1613および対応する高密度画像1611を訓練データとして使用して、危険関連高密度画像1611の分類子1625を訓練することとを含んでもよい。分類子1625は、分類のための少なくとも1つの超平面を構築する、少なくとも1つのサポートベクターマシンを含んでもよく、モデルパラメータは、データセット1603、1607、1617を危険関連分類に分類することが可能な訓練された超平面を画定する。モデルパラメータは、サポートベクターマシンのカーネルを画定する十分なパラメータと、ソフトマージンパラメータとを含んでもよい。いくつかの実施例では、バッチ処理タスクは、処理される高密度画像シーケンス1615、1615aのスケールに比例する、拡張性のある複数の仮想プロセス1621をインスタンス化することを含む。仮想プロセス1621のうちの少なくともいくつかは、ロボット100へのデータセット1607、1617の伝送後に解放される。同様に、バッチ処理タスクは、記憶される高密度画像シーケンス1615、1615aのスケールに比例する、拡張性のある複数の仮想記憶1622をインスタンス化することを含んでもよい。仮想記憶1622のうちの少なくともいくらかは、ロボット100へのデータセット1607、1617の伝送後に解放される。また、バッチ処理タスクは、可動式ロボット100への地理的近接性および/または複数の可動式ロボット100からのネットワークトラフィックのうちの1つに従って、拡張性のある複数の仮想サーバ1621を分散させることを含んでもよい。2011年9月29日に公開された、Certainらの米国特許公開第2011/0238857号CommittedProcessingRatesforSharedResourcesが、その全体で参照することにより本明細書に組み込まれる。Certainらの説明されたクラウド処理インフラストラクチャは、これと組み合わせ可能な1つの種、例えば、クラウドゲートウェイ1623の種または部分である管理システム202またはノードマネージャモジュール108、弾性処理サーバ1621の種または部分であるプログラム実行サービスPESおよび/または仮想マシン110、ならびに長期記憶インスタンス1622の種または部分であるアーカイブ記憶装置222またはブロックデータサービスBDS204またはアーカイブマネージャ224である。図16Hは、例となる可動式ヒューマンインターフェースロボットシステムアーキテクチャ1600dの概略図である。示される実施例では、アプリケーション開発者1602が、クラウド1620と通信しているウェブパッド310またはコンピューティングデバイス1604例えば、デスクトップコンピュータ、タブレットコンピュータ、可動式デバイス等上で実行可能なアプリケーション1610を生成するように、アプリケーション開発ツール1640にアクセスし、使用することができる。例となるアプリケーション開発ツール1640は、統合開発環境1642、ソフトウェア開発キットSDKライブラリ1644、開発またはSDKツール1646例えば、ソフトウェアコードのモジュール、シミュレータ、クラウド利用モニタおよびサービスコンフィギュレータ、およびクラウドサービス拡張アップローダ/ディベロッパ、および/またはソースコード1648を含んでもよいが、それらに限定されない。SDKライブラリ1644は、企業開発者1602が、アプリケーション1610でロボット100のマッピング、ナビゲーション、スケジューリング、および会議技術を活用することを可能にしてもよい。例となるアプリケーション1610は、マップビルダ1610a、マッピングおよびナビゲーションアプリケーション1610b、テレビ会議アプリケーション1610c、スケジューリングアプリケーション1610d、および利用アプリケーション1610eを含んでもよいが、それらに限定されない。アプリケーション1610は、クラウド1620内の1つ以上のアプリケーションサーバ1650例えば、クラウド記憶装置1622上に記憶されてもよく、クラウドサービスアプリケーションプログラミングインターフェースAPIを通してアクセスすることができる。クラウド1620は、1つ以上のデータベース1660と、シミュレータ1670とを含んでもよい。ウェブサービスAPIは、ロボット100とクラウド1620と例えば、アプリケーションサーバ1650、データベース1660、およびシミュレータ1670との間の通信を可能にする。外部システム1680も、例えば、アプリケーション1610にアクセスするように、クラウド1620と相互作用してもよい。いくつかの実施例では、マップビルダアプリケーション1610aは、走行距離計測、全地球測位システム、および/または中間地点ナビゲーションによって提供されるような基準座標を使用して、カメラ320または3-D撮像センサ450によって捕捉される写真またはビデオをともに連結することによって、ロボット100の周囲の環境のマップ1700図17Aを構築することができる。マップは、環境の屋内または屋外の街路または経路表示を提供してもよい。モールおよびショッピングセンターについては、マップは、さらなるリンクした画像またはビデオおよび/または販促情報とともに基準位置として印付けられた各店を伴う、モールの全体を通した経路巡回を提供することができる。マップおよび/または構成画像あるいはビデオを、データベース1660の中に記憶することができる。アプリケーション1610は、各ユーザエンティティの必要性に基づいてカスタマイズおよび拡張され得る、クラウドサービスとシームレスに通信してもよい。企業開発者1602は、アプリケーション1610によって使用するための外部専有システムからデータをフェッチするクラウド側拡張をクラウド1620にアップロードしてもよい。シミュレータ1670は、開発者1602が、ロボット100または関連ロボットハードウェア無しで企業規模アプリケーションを構築することを可能にする。ユーザは、クラウドサービスを追加する、または無効にするために、SDKツール1646例えば、利用モニタおよびサービスコンフィギュレータを使用してもよい。図17Aおよび17Bを参照すると、いくつかの状況では、ロボット100が、情景10および/または作業領域5内の物体12の占領マップ1700を受信し、またはロボットコントローラ500が、経時的に撮像センサ450例えば、第2の3-D画像センサ450bから受信される画像データおよび/または画像深度データに基づいて占領マップ1700を生成するおよび更新してもよい。同時局所化およびマッピングSLAMは、演繹的知識を用いることなく未知の環境または情景10内でマップ1700を構築するために、または同時にその現在の位置を追跡しながら、所与のマップからの演繹的知識を用いて既知の環境内でマップ1700を更新するために、ロボット100によって使用され得る技法である。マップ1700は、環境内の位置を判定するために、計画およびナビゲーションのための環境を描写するために使用されてもよい。マップ1700は、ある形態の知覚から取得される情報を記録し、それを現在の一式の知覚と比較することによって、実際の位置の評価を支援する。位置の評価を補助する際のマップ1700の利益は、現在の知覚の精度および質が減少するにつれて増加する。マップ1700は、概して、マップ1700が提供または生成される時の状態を表す。これは、必ずしもマップ1700が使用される時の環境の状態とは一致しない。他の局所化技法は、単眼視覚SLAMMonoSLAM、およびMonoSLAM解決法に拡張カルマンフィルタEKFを使用する実現形態を含む。コントローラ500は、捕捉された画像の中の局所特徴を検出して表すように、スケール不変特徴変換SIFTを実行してもよい。画像内の任意の物体12について、物体12の特徴説明を提供するように、物体12上の関心のある点を抽出することができる。次いで、訓練画像から抽出される、この説明は、多くの他の物体を含有する試験画像内で物体12の場所を特定しようとするときに、物体12を識別するために使用することができる。信頼性のある認識を行うために、訓練画像から抽出される特徴は、画像スケール、雑音、および照明の変化の下でさえも検出可能であることが重要である。そのような点は、通常、物体の縁等の画像の高コントラスト領域上に位置する。物体認識および検出については、ロボット100は、位置、スケール、および回転に不変であり、アフィン変換スケール、回転、剪断、および位置の変化および照明の変化にロバストである、際立った主要点を見出すために、SIFTを使用してもよい。いくつかの実現形態では、ロボット100は、例えば、異なる条件下で、異なる角度から等情景10または物体12の複数の画像をカメラ320および/または撮像センサ450を使用して捕捉し、マトリクスの中等に画像を記憶する。ロボット100は、比較、フィルタ等によって、新しい画像を識別するように、記憶された画像にアクセスすることができる。例えば、SIFT特徴を入力画像から取得し、以前に捕捉された訓練画像から取得されるSIFT特徴データベースに合致させることができる。特徴合致は、ユークリッド距離ベースの最近傍アプローチを通して行うことができる。同じ物体に属し、クラスタ化プロセスで除外された合致を拒絶する、これらの特徴をクラスタ化することによって、物体識別を増加させるために、ハフ変換が使用されてもよい。SURF加速ロバスト特徴が、ロバストな画像検出器および記述子であってもよい。情景10例えば、ロボット100の周囲の環境内のロボット100の局所化に加えて、ロボット100は、センサシステム400を使用して、接続空間例えば、作業領域5内の他の点に移動してもよい。ロボット100は、ロボット110の周囲の近隣領域をマップし、比較的近い物体12を判別するための例えば、図1および3に示されるように胴部140の裏面上に載置された短距離型の撮像センサ450aと、ロボット100の周囲の比較的広い領域をマップし、比較的遠く離れた物体12を判別するための例えば、図1および3に示されるように頭部160上に載置された長距離型の撮像センサ450bとを含んでもよい。ロボット100は、情景10内の既知の物体12ならびに塞ぎ16例えば、物体12が現在の視点から確認されるべきである、または確認されるべきではないが、確認することができない場所を識別するために、占領マップ1700を使用することができる。ロボット100は、情景10内の塞ぎ16または新しい物体12を登録し、塞ぎ16の中の新しい物体12または任意の物体12の位置を検証するように、塞ぎ16または新しい物体12を迂回しようとすることができる。または、占領マップ1700を使用して、ロボット100は、情景10内の物体12の移動を判定して追跡することができる。例えば、撮像センサ450、450a、450bは、情景10内の物体12のマップされた位置を検出しない間に、情景10内の物体12の新しい位置12 ́を検出してもよい。ロボット100は、物体12の位置を検証するように、古い物体12の位置を塞ぎ16として登録し、塞ぎ16を迂回しようとすることができる。ロボット100は、新しい画像深度データを以前の画像深度データ例えば、マップ1700と比較し、情景10内の物体12の位置の信頼レベルを割り当ててもよい。情景10内の物体12の位置信頼レベルは、閾値期間後にタイムアウトすることができる。センサシステム400は、センサシステム400の各撮像サイクル後に、各物体12の位置信頼レベルを更新することができる。いくつかの実施例では、塞ぎ検出期間例えば、10秒未満内の検出される新しい塞ぎ16例えば、占領マップ1700からの欠落した物体12は、情景10内の生きている物体12の例えば、移動物体12を表してもよい。いくつかの実現形態では、情景10内の検出された第1の物体12aの後ろに位置する、目的とする第2の物体12bが、情景10内の塞ぎ16として最初は未検出されない場合がある。塞ぎ16は、撮像センサ450、450a、450bによって容易に検出可能または視認可能ではない情景10内の領域であり得る。示される実施例では、ロボット100のセンサシステム400例えば、または撮像センサ450、450a、450b等のその一部分は、情景10を視認するように、視野角θV0度から360度の間の任意の角度であり得るを伴う視界452を有する。いくつかの実施例では、撮像センサ450が、360度の視野角θV用の全方向性光学素子を含む一方で、他の実施例では、撮像センサ450、450a、450bは、360度未満例えば、約45度から180度の間の視野角θVを有する。視野角θVが360度未満である実施例では、撮像センサ450、450a、450bまたはその構成要素は、360度の視野角θVを達成するように、ロボット本体110に対して回転してもよい。いくつかの実現形態では、撮像センサ450、450a、450bまたはその部分は、ロボット本体110および/または駆動システム200に対して移動することができる。また、第2の物体12bを検出するために、ロボット100は、第2の物体10bの検出を可能にする、視点を取得するように、1つ以上の方向に情景10の周囲で駆動することによって例えば、作業表面5上で平行移動および/または回転することによって撮像センサ450、450a、450bを移動させてもよい。ロボット移動あるいは撮像センサ450、450a、450bまたはその部分の独立した移動は、単眼困難性も解決し得る。信頼レベルが、作業領域5内の物体12の検出された位置または追跡された移動に割り当てられてもよい。例えば、占領マップ1700を生成または更新すると、コントローラ500は、マップ1700上の各物体12の信頼レベルを割り当ててもよい。信頼レベルは、マップ1700上で示されるように、物体12が作業領域5内に実際に位置する確率に正比例することができる。信頼レベルは、物体12を検出するために使用されるセンサの数およびタイプ等のいくつかの要因によって判定され得る。例えば、接触センサ430は、接触センサ430がロボット100による物体12との実際の接触を感知すると、最高レベルの信頼を提供し得る。撮像センサ450は、近接センサ430より高くあり得る、異なるレベルの信頼を提供し得る。いずれか1つのセンサよりも相対的に高いレベルの信頼を提供するために、センサシステム400の1つよりも多くのセンサから受けとられるデータを集約または蓄積することができる。走行距離計測は、位置の経時的な変化移動距離を推定するために、アクチュエータの移動からのデータを使用するものである。いくつかの実施例では、車輪回転、したがってロボット100による移動距離を計測するように、駆動システム200上にエンコーダが配置される。コントローラ500は、物体位置の信頼レベルの評価に、走行距離計測を使用してもよい。いくつかの実現形態では、センサシステム400は、ロボット100による移動距離を感知するための走行距離計および/または角速度センサ例えば、ジャイロスコープまたはIMU470を含む。ジャイロスコープは、角運動量保存の原理に基づき、配向を計測または維持するためのデバイスである。コントローラ500は、作業領域5内および/または占領マップ1700上のロボット100の位置を判定するために、走行距離計および/または角速度センサからそれぞれ受信される走行距離計測および/またはジャイロ信号を使用してもよい。いくつかの実施例では、コントローラ500は、デッドレコニングを使用する。デッドレコニングとは、以前に判定された位置に基づいて現在の位置を推定し、既知または推定速度に基づいて、経過時間および経過にわたってその位置を前進させるプロセスである。例えば、走行距離計測、ジャイロスコープ等を介して作業領域5内のロボット位置、ならびにセンサシステム400を介して作業領域5内の1つ以上の物体12の感知された位置を知ることによって、コントローラ500は、占領マップ1700上および作業領域5内の物体12の位置または移動の走行距離計測またはジャイロスコープを使用しないものと対比した相対的により高い信頼レベルを評価することができる。車輪運動に基づく走行距離計測は、電気的にノイズが多くなり得る。コントローラ500は、駆動システム200の車輪ベースの走行距離計測から独立して、視覚走行距離計測を通してロボット運動を算出するために、撮像センサ450から、ロボット100の周囲の環境または情景10の画像データを受信してもよい。視覚走行距離計測は、撮像センサ450の運動を判定するために、オプティカルフローを使用することを必要としてもよい。コントローラ500は、車輪ベースの走行距離計測におけるいかなるエラーも修正するために、撮像センサ450の撮像データに基づいて計算された運動を使用することができ、したがって、改善されたマッピングおよび運動制御を可能にする。視覚走行距離計測は、撮像センサ450が捕捉された画像内の特徴を追跡することができない場合に、低質感または低光情景10による制限を有し得る。本明細書で説明されるものと組み合わせ可能であり得る、走行距離計測および撮像システムについての他の詳細および特徴は、内容がそれらの全体で参照することにより本明細書に組み込まれる、米国特許第7,158,317号被写界深度撮像システムを説明する、および米国特許第7,115,849号波面コード化界面コントラスト撮像システムを説明するで見出すことができる。ロボットが、それが稼働することになるビルが初めてであるときに、ロボットは、自律ナビゲーションのために、案内される、またはビルのマップ例えば、部屋および廊下の位置を提供される必要があり得る。例えば、病院で、ロボットは、各病室、看護ステーション等の位置を知る必要があり得る。いくつかの実現形態では、ロボット100は、図18Aに示されるもの等のレイアウトマップ1810を受け、レイアウトマップ1810を学習するように訓練を受けることができる。例えば、ビルをロボット100に案内しながら、ロボット100は、レイアウトマップ1810上の位置に対応する特定の位置を記録してもよい。ロボット100は、ウェブパッド310上にレイアウトマップ1810を表示してもよく、ユーザがロボット100を特定の位置に連れて行くときに、ユーザは例えば、タッチスクリーンまたはウェブパッド310の他のポインティングデバイスを使用してレイアウトマップ1810上のその位置をタグ付けすることができる。ユーザは、部屋の名前または部屋の番号のようなタグ付けされた位置の標識を入力することを選択してもよい。タグ付けするときに、ロボット100は、図18Bに示されるもの等の、レイアウトマップ1810上の点およびロボットマップ1820上の対応する点とともに、タグを記憶してもよい。センサシステム400を使用して、ロボット100は、それが動き回るにつれて、ロボットマップ1820を構築してもよい。例えば、センサシステム400は、どれだけ遠くにロボット100が移動したか、および移動方向についての情報を提供することができる。ロボットマップ1820は、レイアウトマップ1810内で提供される壁に加えて、固定障害物を含んでもよい。ロボット100は、自律ナビゲーションを実行するためにロボットマップ1820を使用してもよい。1820でのロボットマップでは、壁は、例えば、対応する廊下内の壁に沿って生成される検出されたパッキングおよび/または種々の小個室の内側で検出される家具により、完璧に真っ直ぐには見えない場合がある。さらに、回転および分解度の差が、レイアウトマップ1810とロボットマップ1820との間に存在し得る。マップ訓練後、ユーザがロボット100をある位置に送りたいときに、ユーザが、指標/タグを指すことができる例えば、ウェブパッド310上で表示される位置テキストボックスの中へ標識またはタグを入力するか、またはロボット100が、ウェブパッド310上でレイアウトマップ1810をユーザに表示することができるかのいずれかであり、ユーザが、レイアウトマップ1810上の位置を選択することができる。ユーザがタグ付けされたレイアウトマップ位置を選択した場合、ロボット100は、レイアウトマップ1810上の選択された位置に対応するロボットマップ1820上の位置を容易に判定することができ、かつ選択された位置へナビゲートするように進むことができる。レイアウトマップ1810上の選択された位置がタグ付けされた位置ではない場合、ロボット100はロボットマップ1820上の対応する位置を判定する。いくつかの実現形態では、ロボット100は、既存のタグ付けされた位置を使用して、レイアウトマップ1810とロボットマップ1820との間のスケーリングサイズ、始点マッピング、および回転を算出し、次いで、例えば、アフィン変換または座標を使用してロボットマップ位置を判定するように、算出されたパラメータを適用する。ロボットマップ1820は、レイアウトマップ1810と同じ配向およびスケールではなくてもよい。さらに、レイアウトマップは、原寸に比例していなくてもよく、マップ領域によって異なる歪みを有し得る。例えば、ホテル、オフィス、および病院で典型的に見られる火災時避難マップをスキャンすることによって作成されるレイアウトマップ1810は、通常、原寸に比例してで描かれておらず、マップの異なる領域で異なる縮尺さえも有し得る。ロボットマップ1820は、各自の歪みを有し得る。例えば、ロボットマップ1820上の位置は、距離の尺度として車輪の回転を数えることによって算出されてもよく、床がわずかに滑りやすかった、または角を曲がることが余分な回転を引き起こした場合、不正確な回転の計算が、ロボット100に、マップされた物体の不正確な位置を判定させ得る。レイアウトマップ1810上の所与の点1814を、ロボットマップ1820上の対応する点1824にマップする方法は、レイアウトマップ点を含有する例えば、閾値範囲内の領域中で、レイアウトマップ1810とロボットマップ1820との間の局所的な歪みを算出するために、既存のタグ付けされた1812点を使用することを含んでもよい。本方法はさらに、対応するロボットマップ点1824を見出すために、歪み計算をレイアウトマップ点1814に適用することを含む。ロボットマップ1820上の所与の点から始め、例えば、ロボットにその現在の位置を求めるために、レイアウトマップ1810上の対応する位置を見出したい場合に、逆を行うことができる。図18Cは、レイアウトマップ1810およびロボットマップ1820を使用して、環境の周囲でナビゲートするようにロボット100を動作させるための動作の例となる配設1800を提供する。図18Bおよび18Cを参照すると、動作は、ロボット100の環境に対応するレイアウトマップ1810を受信すること1802cと、環境内のロボット100を、レイアウトマップ1810上のレイアウトマップ位置1812まで移動させること1804cと、環境に対応し、かつロボット100によって生成されるロボットマップ1820上のロボットマップ位置1822を記録すること1806cと、記録されたロボットマップ位置1822および対応するレイアウトマップ位置1812を使用して、ロボットマップ1820とレイアウトマップ1810との間の歪みを判定すること1808cと、対応する目標ロボットマップ位置1824を判定し、それにより、ロボットがレイアウトマップ1810上の選択された位置1814へナビゲートすることを可能にするように、判定された歪みを目標レイアウトマップ位置1814に適用すること1810cとを含む。いくつかの実現形態では、その動作は、既存のタグ付けされた位置を使用して、レイアウトマップとロボットマップとの間のスケーリングサイズ、始点マッピング、および回転を判定することと、目標レイアウトマップ位置1814に対応する選択された目標ロボットマップ位置を解決することとを含む。動作は、ロボットマップ位置を解決するように、アフィン変換を判定されたスケーリングサイズ、始点マッピング、および回転に適用することを含んでもよい。図19A~19Cを参照すると、いくつかの実現形態では、本方法は、頂点がタグ付けされたレイアウトマップ点1912にある少なくとも1つの三角形1910によって、レイアウトマップ1810の全ての領域が覆われるように、タグ付けされたレイアウトマップ点1912を含有する境界形状の内側の領域の三角測量を導出するために、タグ付けされたレイアウトマップ点1912記録されたレイアウトマップ位置とも呼ばれるを使用することを含む。本方法はさらに、選択されたレイアウトマップ点1914を含有する三角形1910を見出すことと、レイアウトマップ1810の中でマップされた三角形1910とロボットマップ1820の中でマップされた対応する三角形1920すなわち、同じタグ付けされた頂点を伴うロボットマップ三角形との間のスケール、回転、平行移動、およびスキューを判定することとを含む。本方法は、対応する目標ロボットマップ点1924を見出すために、判定されたスケール、回転、平行移動、およびスキューを選択されたレイアウトマップ点1914に適用することを含む。図19Cは、目標ロボットマップ位置1924を判定するための動作の例となる配設1900を提供する。動作は、目標レイアウトマップ位置の境界を示すレイアウトマップ位置の間の三角測量を判定すること1902と、レイアウトマップの中でマップされた三角形とロボットマップの中でマップされた対応する三角形との間のスケール、回転、平行移動、およびスキューを判定すること1904と、対応する目標ロボットマップ点を判定するように、判定されたスケール、回転、平行移動、およびスキューを目標レイアウトマップ位置に適用すること1906とを含む。図20Aおよび20Bを参照すると、別の実施例では、本方法は、選択されたレイアウトマップの点1914へのレイアウトマップ1810の中の全てのタグ付けされた点1912の距離を判定することと、レイアウトマップのタグ付けされた点1912の重心2012を判定することとを含む。本方法はまた、ロボットマップ1820上の全てのタグ付けされた点1922の重心2022を判定することも含む。各タグ付けされたレイアウトマップ点1912については、本方法は、レイアウトマップ重心2012から選択されたレイアウト点1914まで及ぶベクター2014を、ロボットマップ重心2022からロボットマップ点1924まで及ぶベクター2024に変換するために必要とされる、回転および長さスケーリングを判定することとを含む。このデータを使用して、本方法はさらに、平均回転およびスケールを判定することを含む。各タグ付けされたレイアウトマップ点1912については、本方法はさらに、重心の平行移動、平均回転、および平均スケールを選択されたレイアウトマップ点1914に適用することによって、理想ロボットマップ座標点1924iを判定することを含む。さらに、各タグ付けされたレイアウトマップ点1912については、本方法は、そのレイアウトマップ点1912から選択されたレイアウトマップ点1914までの距離を判定することと、最短距離から最長距離まで、これらの距離別にタグ付けされたレイアウトマップ点1912を分類することとを含む。本方法は、タグ付けされたレイアウトマップ点1912と選択されたレイアウトマップ点1914との間の距離の逆二乗のいずれかを使用して、タグ付けされたレイアウトマップ点1912の影響要因を判定することを含む。次いで、タグ付けされたレイアウトマップ点1912について、本方法は、タグ付けされたレイアウトマップ点1912の影響要因を使用することによって比例配分される、理想ロボットマップ座標点1924iとロボットマップ点1924との間の差である、ベクターを判定することを含む。本方法は、比例配分されたベクターを合計することと、それらを選択されたレイアウトマップ点1914に対する理想ロボットマップ座標点1924iに加算することを含む。結果は、ロボットマップ1820上の対応するロボットマップ点1924である。いくつかの実施例では、この方法/アルゴリズムは、全てのタグ付けされたレイアウトマップ点1912ではなく、最も近いN個のタグ付けされたレイアウトマップ点1912のみを含む。図20Cは、レイアウトマップ1810およびロボットマップ1820を使用して、目標ロボットマップ位置1924を判定するための動作の例となる配設2000を提供する。動作は、全てのレイアウトマップ位置と目標レイアウトマップ位置との間の距離を判定すること2002と、レイアウトマップ位置の重心を判定すること2004と、全ての記録されたロボットマップ位置の重心を判定すること2006と、各レイアウトマップ位置について、レイアウトマップ重心から目標レイアウト位置まで及ぶベクターを、ロボットマップ重心から目標ロボットマップ位置まで及ぶベクターに変換するように、回転および長さスケーリングを判定すること2006とを含む。再び図16Cを参照すると、ロボット100は自律的に動作してもよいが、ユーザがアプリケーション1610を通してロボット100を制御または管理することを所望し得る。例えば、ユーザは、マップ上でナビゲーション点を提供すること等によって、環境または情景10内のロボット100の移動を制御または画定することを所望してもよい。いくつかの実現形態では、マップビルダアプリケーション1610aは、ユーザが、情景10内の1つ以上のロボット100のセンサシステム400によって生成されるセンサデータに基づいて、情景10の占領マップ1700図17Aまたはレイアウトマップ1810図18Aを作成することを可能にする。いくつかの実施例では、1つ以上のベクターベースのレイアウトマップ1810を生成するように、ロボットマップ1810を後処理することができる。マップビルダアプリケーション1610aは、ユーザがマップ1700、1810をカスタマイズすること例えば、平行に見えるべきである壁を並べること等を可能にしてもよい。また、ロボット100によって、およびアプリケーション1610aおよび/または他のアプリケーション1610によって認識可能な注釈を、マップ1700、1810に追加することができる。いくつかの実現形態では、マップビルダアプリケーション1610aは、クラウドサービスを使用して、クラウド1620上のクラウド記憶装置1622の中に、ロボットマップデータ、レイアウトマップデータ、ユーザ定義された物体、および注釈を確実に記憶してもよい。関連データセットが、クラウドサービスから適切なロボット100およびアプリケーション1610へプッシュ配信されてもよい。いくつかの実現形態では、マッピングおよびナビゲーションアプリケーション1610b図16Cは、ユーザが、レイアウトマップ1810上の目的地位置を特定し、目的地位置へ駆動するようにロボット100に要求することを可能にする。例えば、ユーザが、クラウド1620と通信している、コンピュータ、タブレットコンピュータ、可動式デバイス等のコンピューティングデバイス上でマッピングおよびナビゲーションアプリケーション1610bを実行してもよい。ユーザは、ロボット100の周囲の環境のレイアウトマップ1810にアクセスし、レイアウトマップ1810上の目的地位置を印付け、または別様に設定し、目的地位置に移動するようにロボット100に要求することができる。次いで、ロボット100は、レイアウトマップ1810および/または対応するロボットマップ1820を使用して、目的地位置へ自律的にナビゲートしてもよい。目的地位置へナビゲートするために、ロボット100は、その局所知覚空間すなわち、センサシステム400を通して知覚されるようなロボット100の周囲の空間を判別し、物体検出障害物回避ODOA戦略を実行する、その能力に依存してもよい。図11Bおよび21A~21Dを参照すると、いくつかの実現形態では、ロボット100例えば、図13に示される制御システム510は、その局所知覚空間を、障害物黒2102、未知灰色2104、および既知の空き領域白2106という、3つのカテゴリに分離する。障害物2102は、ロボット100の高さより下側にある地面Gより上側の観察されたすなわち、感知された点、および地面より下側の観察された点例えば、穴、段階的減少等である。既知の空き領域2106は、3-D画像センサ450が地面Gを見ることができる領域に対応する。センサシステム400の中の全てのセンサからのデータを、離散化3-Dボクセルグリッドに組み込むことができる。次いで、3-Dグリッドを分析し、3つの局所知覚空間を用いて2-Dグリッド2100に変換することができる。図21Aは、ロボット100の静止している間の局所知覚空間の例となる概略図を提供する。3-Dボクセルグリッド内の情報は、持続性を有するが、補強されない場合、経時的に劣化する。ロボット100が移動しているときに、持続性のため、ナビゲートするより多くの既知の空き領域2106を有する。制御システム510の物体検出障害物回避ODOAナビゲーション戦略は、コマンドに起因し得る可能性のあるロボット位置を容認すること、または拒否することのいずれかを含んでもよい。異なるコマンドを用いて、多くのレベルの深さの可能性のあるロボット経路2110を生成することができ、各レベルでロボット位置をもたらす。図21Bは、ロボット100の移動している間の局所知覚空間の例となる概略図を提供する。ODOA挙動600b図13は、各予測ロボット経路2110を評価することができる。好ましい結果および対応するロボットコマンドを判定するために、動作選択エンジン580によって、これらの評価を使用することができる。例えば、ロボット経路2110内の各ロボット位置2120について、ODOA挙動600bは、ロボット100の対応する位置の周囲の境界ボックスの中にあるグリッド2100内の各セルを識別することと、各セルの分類を受信することとを含む、物体検出および障害物回避のための方法を実行することができる。障害物または未知に分類される各セルについて、セルに対応するグリッド点を取り出し、グリッド点がロボット100の位置の周囲の衝突円形内にあるかどうかを判定することによって、衝突チェックを実行する。グリッド点が衝衝突円形内にある場合、本方法はさらに、グリッド点が衝突三角形例えば、ロボット100を三角形としてモデル化することができる内にあるかどうかの3点比較試験を実行することを含む。グリッド点が衝突三角形内にある場合、本方法は、グリッド点を拒否することを含む。ロボット位置が、ロボット経路2110上の親グリッド点のセンサシステム視界の内側にある場合、未知グリッド点は、ロボット100がこれらのグリッド点に到達する時までに、それが把握されるであろうと想定されるため、無視される。本方法は、あるロボット位置2120から次のロボット位置への移行中にロボットが衝突するのを防止するために、ロボット経路2110内の連続ロボット位置2120の間のロボット経路領域例えば、長方形によってモデル化される内に、いずれかの障害物衝突が存在するか否かを判定することを含んでもよい。図21Cは、ロボット100の局所知覚空間およびセンサシステム視界405制御システム510は、ロボット経路判定に、第1および第2の3-D画像センサ450a、450b等の特定のセンサのみを使用してもよいの概略図を提供する。駆動システム200のホロノミック可動性を利用して、ロボット100は、センサシステム視界405が能動的に対応範囲としない方向に駆動することを可能にするために、既知の地面Gの持続性を使用することができる。例えば、ロボット100が、第1および第2の3-D画像センサ450a、450bが前方を指す状態で、静止して座っている場合、ロボット100は、側方向に駆動することができるが、ロボット100の側方に未知に分類される領域を示す図21Cに示される実施例に図示されるように、ロボット100がその側方に何があるかを知らないため、制御システム510は、提案される移動を拒否する。ロボット100が、第1および第2の3-D画像センサ450a、450bが前方を指す状態で、前方に駆動する場合、ロボット100が前方に駆動する際、第1および第2の3-D画像センサ450a、450bの両方が、地面Gを空きと見ることができ、分類の持続性は依然として劣化されていないため、ロボット100の隣の地面Gが、既知の空き2106に分類されてもよい例えば、図21B参照。そのような状況では、ロボット100は、側方向に駆動することができる。図21Dを参照すると、いくつかの実施例では、ホロノミック可動性による大きい数の可能な軌跡を考慮して、ODOA挙動600bは、ロボットに、ロボットが向かっている場所でロボットが見る現在ではないが軌跡を選択させてもよい。例えば、ロボット100は、センサ視界配向を予期することができ、これは、制御システム510が、物体を検出することを可能にする。ロボットは、平行移動しながら回転することができるため、ロボットは、駆動しながらセンサ視界405を増加させることができる。センサシステム400の視界405およびそれが異なる位置で見るであろうものを理解することによって、ロボット100は、それが進んでいる場所を見るのに役立つ、移動軌道を選択することができる。例えば、角を曲がるときに、図21Eに示されるように、ロボット100が、親ロボット位置2120のセンサシステム視界405ではなく、現在知識がない、ロボット位置2120に最終的に行き得るため、ロボット100は、角を急に曲がる軌道を拒否してもよい。代わりに、ロボット100は、図21Fに示されるように、早く所望の運動方向を向くように曲がる移動軌道を選択し、横に移動し、次いで、角の周囲を真っ直ぐ移動するために駆動システム200のホロノミック可動性を使用してもよい。いくつかの実施例では、マッピングおよびナビゲーションアプリケーション1610b図16Cは、遠隔操作機能を提供する。例えば、ユーザは、ビデオ中間地点駆動を使用して例えば、カメラまたは撮像センサ320、450のうちの1つ以上を使用してロボット100を駆動することができる。ユーザは、胴部140図14の高さHTを上昇/下降させて撮像センサ450のうちの1つの視界を変化させるように、脚部130の高さHLを変化させ、および/または支持されたカメラ320あるいは撮像センサ450、450bの視界を変化させるようにロボット頭部160を回動および/または傾斜してもよい例えば、図11Aおよび11B参照。さらに、ユーザは、カメラまたは撮像センサ320、450の他の視界を得るように、駆動システム200を使用して、そのZ軸の周囲でロボットを回転させることができる。いくつかの実施例では、マッピングおよびナビゲーションアプリケーション1610bは、ユーザが例えば、異なる環境または異なるロボット100について複数のレイアウトマップ1810の間で切り替え、および/または1つのレイアウトマップ1810上で複数のロボット100を管理することを可能にする。マッピングおよびナビゲーションアプリケーション1610bは、ロボット100の所有者または組織によって記載される適正なロボット利用についての方針を施行するように、クラウドサービスAPIと通信してもよい。再び図16Cを参照すると、いくつかの実現形態では、テレビ会議アプリケーション1610cは、ユーザが他のユーザとのテレビ会議セッションを開始し、および/またはそれに参加することを可能にする。いくつかの実施例では、テレビ会議アプリケーション1610cは、ユーザが、ロボット100のユーザ、クラウド1620に接続されたコンピューティングデバイス上の遠隔ユーザ、および/または可動式手持ちデバイスを使用するインターネットに接続された別の遠隔ユーザとのテレビ会議セッションを開始する、および/またはそれに参加することを可能にする。テレビ会議アプリケーション1610cは、情報を共有するための電子ホワイトボード、画像ビューア、および/またはPDFビューアを提供してもよい。スケジューリングアプリケーション1610dは、ユーザが1つ以上のロボット100の利用を予定に入れることを可能にする。人が使用したいよりも少ないロボット100があるときに、ロボット100は、不十分な資源になり、スケジューリングが必要とされ得る。スケジューリングは、資源割付における対立を解決し、より高い資源利用を可能にする。スケジューリングアプリケーション1610dは、ロボット中心となり得、MicrosoftOutlookまたはGoogleCalendar等の第三者カレンダリングシステムと統合してもよい。いくつかの実施例では、スケジューリングアプリケーション1610dは、事前に予定された時間にロボット100をディスパッチするように、1つ以上のクラウドサービスを通してクラウド1620と通信する。スケジューリングアプリケーション1610dは、ユーザによって特定される任務のためのクラウドサービスによるロボット100の選択を可能にするように、時間関連データ例えば、メンテナンススケジュール等を他のロボットデータ例えば、ロボット位置、健康状態等と統合してもよい。1つのシナリオでは、医師が、週の後半に遠隔の病院での回診を予定に入れるために、クラウド1620と通信しているコンピューティングデバイス例えば、携帯用タブレットコンピュータまたは手持ち式デバイス上のスケジューリングアプリケーション1610dにアクセスしてもよい。スケジューリングアプリケーション1610dは、電子カレンダー上で会議室を割り付けるのと同様にロボット100を予定に入れることができる。クラウドサービスは、スケジュールを管理する。夜中に、遠隔の病院にいる重体患者を診察する必要があるという呼び出しを医師が受けた場合、医師は、スケジューリングアプリケーション1610dを使用してロボット100を要請し、および/またはマッピングおよびナビゲーションアプリケーション1610bを使用してロボット100を病室に送ることができる。医師は、テレビ会議アプリケーション1610cを使用して、例えば、クラウド記憶装置1622にアクセスすることによって自分のコンピューティングデバイス上で診察記録および患者のビデオまたは画像にアクセスしてもよい。クラウドサービスは、ロボット管理、電子健康記録システム、および医療用撮像システムと統合してもよい。医師は、患者と遠隔でやりとりするように、ロボット100の移動を制御してもよい。患者がポルトガル語しか話さない場合、テレビ会議アプリケーション1610cが、自動的に言語を翻訳してもよく、または第三者の翻訳者が、例えば、インターネットを介してクラウド1620と通信している別のコンピューティングデバイスを使用してテレビ会議に参加してもよい。クラウドサービスを使用して、翻訳サービスを要請し、遂行し、記録し、および課金請求することができる。利用状況/統計アプリケーション1610eは、ユーザがロボットの利用を監視し、ロボット利用レポートを生成し、および/またはロボット隊100を管理するための汎用アプリケーションであり得る。このアプリケーション1610eはまた、ロボット100の一般動作およびトラブルシューティング情報を提供してもよい。いくつかの実施例では、利用状況/統計アプリケーション1610eは、ユーザがロボット100の使用と関連付けられるサービスを追加する/無効にする、1つ以上のシミュレータ1670の使用を登録する、ロボットについての利用方針を修正すること等を可能にする。別のシナリオでは、事業が、少なくとも1つのテレプレゼンスアプリケーション用のロボット隊100を有してもよい。位置マネージャが、例えば、インターネットを介してクラウド1620と通信しているコンピューティングデバイス上で実行される利用/統計アプリケーション1610eを使用して、1つ以上のロボット100の状態例えば、位置、利用およびメンテナンススケジュール、バッテリ情報、位置履歴等を監視してもよい。いくつかの実施例では、位置マネージャは、ユーザセッションを共有することによって、ロボットの問題があるユーザを支援してもよい。位置マネージャは、対応するロボット100をナビゲートする、ロボット100を通して話すすなわち、テレプレゼンス、節電モードになる例えば、機能性を低減させる、充電器を見出す等のために、アプリケーション1610を使用して、コマンドをロボット100のうちのいずれかに発行することができる。位置マネージャまたはユーザは、ユーザ、セキュリティ、レイアウトマップ1810、ビデオ視界を管理する、隊にロボットを追加する/隊から除去する等のために、アプリケーション1610を使用することができる。ロボット100の遠隔オペレータは、例えば、スケジューリングアプリケーション1610dを使用してロボット予約を予定/予定変更/キャンセルし、例えば、クラウドサーバ上で実行されるシミュレータ1670を使用してシミュレートした場所を歩き回るシミュレートしたロボットを使用して、訓練コースに参加することができる。SDKライブラリ1644は、アプリケーション1610の開発者1602によって使用するための1つ以上のソースコードライブラリを含んでもよい。例えば、視覚構成要素ライブラリが、グラフィカルユーザインターフェース、またはカプセル化機能にアクセスするためのインターフェースを有する視覚構成要素を提供することができる。例となる視覚構成要素は、レイアウトマップタイルおよびロボットを描く、テレビ会議をする、画像およびドキュメントを閲覧する、および/またはカレンダーあるいはスケジュールを表示するためのコード部類を含む。ロボット通信ライブラリ例えば、ウェブサービスAPIは、ロボット100と直接通信するためのRESTfulRepresentationalStateTransfer、JSONJavaScriptObjectNotationベースのAPIを提供することができる。ロボット通信ライブラリは、例えば、iOS開発用のObjective-Cバインディングおよび例えば、Android開発用のJava登録商標バインディングを提供することができる。これらのオブジェクト指向物体APIは、根底にあるロボット100のデータ転送プロトコルを開発者1602からカプセル化しながら、アプリケーション1610がロボット100と通信することを可能にする。ロボット通信ライブラリのルーチンに従う個人は、ロボット100によって追跡される個人に対応するビデオ画面座標を戻してもよい。ロボット通信ライブラリの顔認識ルーチンは、カメラ320のカメラ視野上の顔の座標、および随意に、認識された追跡個人の名前を戻す。表1は、ロボット通信サービスの典型的なリストを提供する。表1クラウドサービス通信ライブラリは、アプリケーション1610がクラウド1620例えば、クラウド記憶装置1622、アプリケーションサーバ1650、データベース1660、およびシミュレータ1670とおよび/またはクラウド1620と通信しているロボット100と通信することを可能にする、APIを含んでもよい。クラウドサービス通信ライブラリは、Objective-CおよびJava登録商標バインディングの両方で提供することができる。クラウドサービスAPIの実施例は、例えば、位置を取り出す、目的地を設定する等のためのナビゲーションAPI、マップ記憶および回収PAI、カメラフィードAPI、遠隔操作API、利用統計API、およびその他を含む。クラウドサービス拡張性インターフェースは、クラウドサービスが外部ソースからのウェブサービスと対話することを可能にしてもよい。例えば、クラウドサービスは、企業開発者1602が外部専有システム用のインターフェースを実装することを可能にする、一式の拡張インターフェースを画定してもよい。拡張は、クラウドインフラストラクチャにアップロードし、展開することができる。いくつかの実施例では、クラウドサービスは、種々の産業共同体によって画定される標準拡張性インターフェースを採用することができる。シミュレータ1670は、ロボット100への接続性を伴わずに、アプリケーション1610のデバッギングおよび試験を可能にしてもよい。シミュレータ1670は、例えば、経路を計画し、マップデータベースにアクセスするためにロボット100と実際に通信することなく、ロボット100の動作をモデル化またはシミュレートすることができる。シミュレーションを実行するために、いくつかの実現形態では、シミュレータ1670は、ロボット100を使用することなく例えば、レイアウトマップ1810からマップデータベースを生成する。これは、壁、角、柱等のような特徴が自動的に識別されるように、画像処理例えば、エッジ検出を伴ってもよい。シミュレータ1670は、レイアウトマップ1810によって決定付けられる環境内で経路計画をシミュレートするために、マップデータベースを使用することができる。クラウドサービス拡張アップローダ/ディベロッパは、ユーザが拡張をクラウド1620にアップロードする、外部の第三者ユーザ認証システムに接続する、外部データベースまたは記憶装置例えば、診察前および診察後のための患者情報にアクセスする、テレビ会議セッションで例証用の画像にアクセスすること等を可能にしてもよい。クラウドサービス拡張インターフェースは、クラウド1620との専有システムの統合を可能にし得る。本明細書に記載されるシステムおよび技法の様々な実現形態を、デジタル電子回路、集積回路、専用に設計されたASIC特定用途向け集積回路、コンピュータハードウェア、ファームウェア、ソフトウェア、および/またはそれらの組み合わせで実現することができる。これらの様々な実現形態には、記憶システムからデータおよび命令を受信するように、ならびにそれにデータおよび命令を伝送するように連結される、専用であっても汎用であってもよい、少なくとも1つのプログラマブルプロセッサと、少なくとも1つの入力デバイスと、少なくとも1つの出力デバイスとを含む、プログラム可能なシステム上で実行可能な、および/または解釈可能な1つ以上のコンピュータプログラムでの実現形態を含むことができる。これらのコンピュータプログラムまた、プログラム、ソフトウェア、ソフトウェアアプリケーション、またはコードとしても知られるは、プログラム可能プロセッサのための機械命令を含み、高水準手続きおよび/もしくはオブジェクト指向プログラミング言語、ならびに/またはアセンブリ/機械言語で実現することができる。本明細書で使用される場合、機械可読媒体およびコンピュータ可読媒体という用語は、機械命令を機械可読信号として受信する機械可読媒体を含む、プログラマブルプロセッサに機械命令および/もしくはデータを提供するために使用される、任意のコンピュータプログラム製品、装置、ならびに/またはデバイス例えば、磁気ディスク、光学ディスク、メモリ、プログラマブル論理デバイスPLDを指す。機械可読信号という用語は、プログラマブルプロセッサに機械命令および/またはデータを提供するために使用される、任意の信号を指す。本明細書に記載される主題の実現形態および機能動作は、デジタル電子回路、または本明細書に開示される構造およびそれらの構造的均等物を含む、コンピュータソフトウェア、ファームウェア、もしくはハードウェア、あるいはそれらのうちの1つ以上の組み合わせで実現することができる。本明細書に記載される主題の実施形態は、データ処理装置による実行のための、またはその動作を制御する、1つ以上のコンピュータプログラム製品、すなわち、コンピュータ可読媒体上にコード化されるコンピュータプログラム命令の1つ以上のモジュールとして実現することができる。コンピュータ可読媒体は、機械可読記憶デバイス、機械可読記憶回路基板、メモリデバイス、機械可読伝搬信号に影響を及ぼす組成物、またはそれらのうちの1つ以上の組み合わせであることができる。データ処理装置という用語は、一例として、プログラマブルプロセッサ、コンピュータ、または複数のプロセッサもしくはコンピュータを含む、データを処理するための全ての装置、デバイス、および機械を包含する。装置は、ハードウェアに加えて、問題のコンピュータプログラムの実行環境を作り出すコード、例えば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、またはそれらのうちの1つ以上の組み合わせを構築するコードを含むことができる。伝搬信号は、好適な受信装置に伝送するために、情報をコード化するように生成される、人工的に生成される信号、例えば、機械生成電気、光学、または電磁信号である。コンピュータプログラムまた、プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、またはコードとしても知られるは、コンパイルされる、または解釈される言語を含む、任意の形態のプログラミング言語で書くことができ、単独プログラムとして、またはモジュール、構成要素、サブルーチン、もしくはコンピューティング環境で使用するのに好適な他のユニットとしての配備を含む、任意の形態で配備することができる。コンピュータプログラムは、必ずしもファイルシステム内のファイルに対応する必要はない。プログラムは、問題のプログラム専用の単一のファイル内の他のプログラムもしくはデータ例えば、マークアップ言語文書で記憶される1つ以上のスクリプトを保持するファイルの一部分に、または複数の調整されたファイル例えば、1つ以上のモジュール、サブプログラム、またはコードの部分を記憶するファイルに記憶することができる。コンピュータプログラムは、1台のコンピュータ上で、または1つの場所に位置する、もしくは複数の場所にわたって分散され、通信ネットワークによって相互接続される、複数のコンピュータ上で実行されるように配備することができる。本明細書に記載されるプロセスおよび論理フローは、入力データに対して動作し、出力を生成することによって機能を実施する、1つ以上のコンピュータプログラムを実行する、1つ以上のプログラマブルプロセッサによって実施することができる。また、プロセスおよび論理フローは、専用論理回路、例えば、FPGAまたはASICによって実施することもでき、また、装置は、それらとして実現することもできる。コンピュータプログラムの実行に好適なプロセッサには、一例として、汎用および専用マイクロプロセッサの両方、および任意の種類のデジタルコンピュータの任意の1つ以上のプロセッサが挙げられる。一般的に、プロセッサは、読み出し専用メモリもしくはランダムアクセスメモリ、または両方から命令およびデータを受けとる。コンピュータの不可欠な要素は、命令を実施するためのプロセッサ、ならびに命令およびデータを記憶するための1つ以上のメモリデバイスである。一般的に、また、コンピュータは、データを記憶するための1つ以上の大容量記憶デバイス、例えば、磁気、光磁気ディスク、もしくは光学ディスクも含む、またはそれからデータを受信するため、もしくはそれにデータを転送するため、または両方のために、それに動作可能に連結される。しかしながら、コンピュータは、そのようなデバイスを有する必要はない。さらに、コンピュータは、別のデバイス、例えば、ごくわずかな例を挙げると、携帯電話、個人用デジタル補助装置PDA、携帯型オーディオプレーヤー、グローバルポジショニングシステムGPS受信器に埋め込むことができる。コンピュータプログラム命令およびデータを記憶するのに好適なコンピュータ可読媒体には、一例として、半導体メモリデバイス、例えば、EPROM、EEPROM、およびフラッシュメモリデバイス、磁気ディスク、例えば、内蔵ハードディスクもしくはリムーバブルディスク、光磁気ディスク、ならびにCDROMおよびDVD-ROMディスクを含む、全ての形態の不揮発性メモリ、媒体、およびメモリデバイスが挙げられる。プロセッサおよびメモリは、専用論理回路によって補完することができる、またはそれに組み込むことができる。本明細書に記載される主題の実現形態は、例えば、データサーバとしてバックエンド構成要素を含む、ミドルウェア構成要素、例えば、アプリケーションサーバを含む、フロントエンド構成要素、例えば、ユーザがそれを通して本明細書に記載される主題の実現形態と相互作用することができる、グラフィカルユーザインターフェースもしくはウェブブラウザを有する、クライアントコンピュータを含む、コンピューティングシステム、または1つ以上のそのようなバックエンド、ミドルウェア、もしくはフロントエンド構成要素の任意の組み合わせで実現することができる。システムの構成要素は、任意の形態またはデジタルデータ通信の媒体、例えば、通信ネットワークによって相互接続することができる。通信ネットワークの例には、ローカルエリアネットワークLAN、および広域ネットワークWAN、例えば、インターネットが挙げられる。コンピューティングシステムは、クライアントおよびサーバを含むことができる。クライアントおよびサーバは、一般的に、相互から遠隔にあり、典型的に、通信ネットワークを通してやり取りする。クライアントおよびサーバの関係は、それぞれのコンピュータ上で実行され、相互にクライアント-サーバ関係を有する、コンピュータプログラムによって生じる。本明細書は、多くの詳細を含むが、これらは、本発明またはその主張され得る範囲を限定すると解釈されるべきではなく、むしろ、本発明の特定の実現形態に特定の特徴の説明として解釈されるべきである。また、本明細書の別個の実現形態の文脈に記載される特定の特徴は、単一の実現形態において、組み合わせて実現することもできる。逆に、また、単一の実現形態の文脈に記載される様々な特徴は、複数の実現形態において別々に、または任意の好適な副組み合わせで実現することもできる。さらに、特徴は、特定の組み合わせで作用するように上記され、さらには最初にそのように主張されている場合があるが、場合によっては、主張される組み合わせの1つ以上の特徴を組み合わせから切り取ることができ、主張される組み合わせは、副組み合わせ、または副組み合わせの変形を対象としてもよい。同様に、動作は、特定の順序で図面に描写されているが、これは、望ましい結果を達成するために、そのような動作が、示される特定の順序で、もしくは起こる順序で実施されること、または全ての図示される動作が実施されることを要求すると理解されるべきではない。ある特定の状況では、マルチタスクおよび並列処理が有利である場合がある。さらに、上述される実施形態における様々なシステム構成要素の分離は、全ての実施形態において、そのような分離を要求すると理解されるべきではなく、記載されるプログラム構成要素およびシステムは、一般に、単一のソフトウェア製品に共に統合することができる、または複数のソフトウェア製品にパッケージ化することができることが理解されるべきである。多数の実現形態が記載されてきた。しかしながら、本開示の趣旨および範囲から逸脱することなく、様々な修正が行われてもよいことが理解される。したがって、他の実現形態が、続く特許請求の範囲の範囲内である。例えば、特許請求の範囲に言及される動作を、異なる順序で実施し、依然として望ましい結果を達成することができる。"