(57)【特許請求の範囲】
【請求項１】
テレプレゼンスロボットであって、該テレプレゼンスロボットは、
該テレプレゼンスロボットを駆動命令に従って移動させるように構成された駆動システム、
前記駆動システムと通信し、前記駆動システムに前記テレプレゼンスロボットを移動させるための駆動命令を生成するように構成された制御システム、
前記制御システムと通信する撮像システム、
前記制御システムと通信し、ロボット動作表面のロボット航行可能エリアを現すマップ及び各々が前記マップに対する位置を特定可能な空間座標とテレプレゼンスロボット動作変更子を含むタグ情報とを備えたデータ構造である複数のタグを備えるマップデータソースにアクセスするように構成されたマッピングモジュール、
前記制御システムと通信し、現在位置と関連する位置決定情報を提供するように構成された位置決定システム、
前記マップデータソースから、前記テレプレゼンスロボットのナビゲーション経路に関連する前記複数のタグの少なくとも１つのタグを識別するように構成されたタグ識別システム、及び
前記制御システムとリモート端末との間の通信を容易にするように構成された通信システムを備え、
前記制御システムは、前記タグ識別システムによって識別された前記タグの前記テレプレゼンスロボット動作変更子に基づいて動作を実行するように構成されている、
ことを特徴とするテレプレゼンスロボット。
【請求項２】
請求項１記載のテレプレゼンスロボットにおいて、前記識別されたタグのタグ情報は、前記制御システムが動作を実行すべき前記マップ上の時間と位置の少なくとも１つに関する命令を備える、ことを特徴とするテレプレゼンスロボット。
【請求項３】
請求項１記載のテレプレゼンスロボットにおいて、前記制御システムは、前記通信システムを介して前記撮像システムからのビデオフィードを前記リモート端末に送信するように構成され、且つ
前記制御システムは、前記通信システムを介して前記リモート端末からの前記マップ上の所望の目的地の指示を受信するように構成されている、ことを特徴とするテレプレゼンスロボット。
【請求項４】
請求項１記載のテレプレゼンスロボットにおいて、更に、
前記テレプレゼンスロボットの近くの障害物を識別するように構成された複数のセンサ、及び前記複数のセンサと通信するとともに前記制御システムと通信する障害物回避システムを備え、
前記制御システムは、更に、前記テレプレゼンスロボットの近くの障害物を回避するために追加の命令を生成するように構成されている、
ことを特徴とするテレプレゼンスロボット。
【請求項５】
請求項４記載のテレプレゼンスロボットにおいて、前記複数のセンサは、障害物の３次元占有部を含むポイントクラウドを形成する３次元画像センサを備え、前記駆動命令は前記障害物の３次元占有部を回避するように構成される、
ことを特徴とするテレプレゼンスロボット。
【請求項６】
請求項５記載のテレプレゼンスロボットにおいて、更に、
前記制御システムと通信し、前記ロボット動作表面の平面図マップを自律的に生成するように構成されたマップ生成システムを備え、
前記制御システムは、前記テレプレゼンスロボットを前記ロボット動作表面の全域を移動させ、複数の測定値を取得させる駆動命令を生成し、前記マップ生成システムは前記複数の測定値を使って前記平面図マップを生成する、
ことを特徴とするテレプレゼンスロボット。
【請求項７】
請求項４記載のテレプレゼンスロボットにおいて、更に、
前記マップ上の現在位置から前記マップ上の所望の目的地までの座標の系列を備えるナビゲーション経路を生成するように構成されたナビゲーションシステムを備える、ことを特徴とするテレプレゼンスロボット。
【請求項８】
請求項７記載のテレプレゼンスロボットにおいて、前記ナビゲーション経路を形成する前記座標の系列は前記識別されたタグと関連するタグ情報に少なくとも部分的に基づくことを特徴とするテレプレゼンスロボット。
【請求項９】
請求項４記載のテレプレゼンスロボットにおいて、前記制御システムは、更に、前記マップ上の現在位置から前記マップ上の所望の目的地までのナビゲーション経路を受信するように構成され、
前記制御システムは、更に、前記駆動システムに、前記テレプレゼンスロボットを前記ナビゲーション経路に基づいて前記所望の目的地まで移動させるための駆動命令を生成するように構成されている、ことを特徴とするテレプレゼンスロボット。
【請求項１０】
請求項４記載のテレプレゼンスロボットにおいて、前記通信システムは、前記テレプレゼンスロボットとリモート端末との間の通信の中断を検出するように構成され、前記制御システムは、更に、通信の中断中も前記テレプレゼンスロボットを自律的に移動させるために駆動命令を生成し続けるように構成されている、ことを特徴とするテレプレゼンスロボット。
【請求項１１】
請求項１記載のテレプレゼンスロボットにおいて、前記マップデータソースはリモートに格納され、前記マッピングモジュールは前記通信システムを介して前記マップデータソースにアクセスするように構成されている、ことを特徴とするテレプレゼンスロボット。
【請求項１２】
請求項１記載のテレプレゼンスロボットにおいて、前記テレプレゼンスロボットは、
新しいタグの相対位置を記述するタグ座標を前記マップと前記撮像システムにより生成されるビデオフィードのうちの１つと関連付け、且つ
タグ情報を新しいタグと関連付けることによって、
新しいタグを生成するように構成されている、ことを特徴とするテレプレゼンスロボット。
【請求項１３】
請求項１２記載のテレプレゼンスロボットにおいて、前記新しいタグは、前記テレプレゼンスロボットが前記ビデオフィード内で物体を検出するのに応答して生成される、ことを特徴とするテレプレゼンスロボット。
【請求項１４】
請求項１３記載のテレプレゼンスロボットにおいて、前記物体は人であり、前記新しいタグのタグ情報は、リモートテレプレゼンスロボットが前記人に対して実行し得る可能な動作を備える、ことを特徴とするテレプレゼンスロボット。
【請求項１５】
テレプレゼンスロボットを制御する方法であって、該方法は
マップデータソースにアクセスするステップ、
マップの少なくとも一部分を前記マップデータソースから読み出すステップ、
各々が前記マップに対する位置を特定可能な空間座標とテレプレゼンスロボット動作変更子を含むタグ情報とを備えたデータ構造である複数のタグの少なくとも１つを前記マップデータソースから読み出すステップ、
前記マップに対する現在位置を決定するステップ、
前記マップデータソースから、前記テレプレゼンスロボットのナビゲーション経路に関連する前記複数のタグの少なくとも１つのタグを識別するステップ、及び
識別した前記タグの前記テレプレゼンスロボット動作変更子に基づいて動作を実行させるステップ、
を備える、ことを特徴とする方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、モバイルテレプレゼンスロボットに関する。
【背景技術】
【０００２】
ロボットは、一般にコンピュータ又は電子プログラミングにより案内される電子機械マシンである。テレプレゼンスロボットは、周囲を動き回る能力を有し、１つの物理的位置に固定されない。現在一般に使用されているテレプレゼンスロボットは無人搬送車（ＡＧＶ）である。ＡＧＶは一般に床内のマーカ又は配線を追尾する又はビジョンシステム又はナビゲーション用レーザを使用するテレプレゼンスロボットである。テレプレゼンスロボットは工業環境、軍事環境及び安全保障環境で見られる。それらはエンターテイメント用の消費者製品又は在宅支援などの所定の仕事を行う消費者製品としても見られる。
【０００３】
本発明の一つの態様はローカル端末及びリモートテレプレゼンスロボットを含むテレプレゼンスロボットシステムを提供する。ローカル端末は、電子ディスプレイ、プロセッサ及び該プロセッサと通信するメモリを含むことができ、該メモリはプロセッサで実行可能な命令を含む。実行可能な命令は、ロボット動作表面のロボットナビゲート可能エリアを表す平面図マップの少なくとも一部分を読み出す処理、各々がタグの相対位置を記述するタグ座標及びタグ情報（注釈を含み得る）を備える複数のタグの少なくとも１つを読み出す処理、リモートテレプレゼンスロボットの撮像システムからのビデオフィードを受信する処理、位置決定情報を受信する処理、リモートテレプレゼンスロボットの撮像システムからのビデオフィードをディスプレイする処理、前記平面図マップを、その上にテレプレゼンスロボットの現在位置を示して、表示する処理、タグ座標を用いて、前記平面図マップ及び前記ビデオフィードの少なくとも１つの上に、前記少なくとも１つのタグのタグ注釈のレンディションを表示する処理、及び１つ以上のコマンドをリモートテレプレゼンスロボットに送信する処理を前記プロセッサに実行させるように構成することができる。
【０００４】
いくつかの実施形態において、前記プロセッサで実行可能な命令は、更に、前記プロセッサに、前記平面図マップと前記リモートテレプレゼンスロボットの撮像システムから受信したビデオフィードとの間の歪み（二次元座標系と３次元座標系との間の座標変換）を決定する処理、前記歪みを前記少なくとも１つのタグのタグ座標に適用して、前記ビデオフィードに対する前記少なくとも１つのタグの位置及びパースペクティブ（透視図）を記述する対応するビデオ座標及びパースペクティブデータを決定する処理、前記タグビデオ座標を使って、前記少なくとも１つのタグの前記タグ注釈の３次元レンディデョンを前記ビデオフィードの上にオーバレイ表示させる処理を、前記プロセッサに実行させるように構成されている。
【０００５】
いくつかの実施形態において、前記タグ注釈の３次元レンディションは、前記リモートテレプレゼンスロボットの現在位置及び前記ビデオフィードに対する前記少なくとも１つのタグのパースペクティブに基づいて動的に再レンダリングすることができる。
【０００６】
いくつかの実施形態において、前記タグ注釈の３次元レンディションは、前記ビデオフィード内で検出された物体に対して前記ビデオフィード上にオーバレイすることができる。
【０００７】
いくつかの実施形態において、前記タグ注釈の３次元レンディデョンは、前記ビデオフィード内で検出された壁に沿ってオーバレイすることができる。
【０００８】
いくつかの実施形態において、前記少なくとも１つのタグのタグ情報はテレプレゼンスロボット動作変更子を備え、前記ロボット動作変更子は、前記テレプレゼンスロボットが前記少なくとも１つのタグのタグ座標の所定の範囲内に位置するのに応答して第１の動作を実行させるために前記テレプレゼンスロボットの前記制御システムに実行命令を提供するように構成することができる。
【０００９】
いくつかの実施形態において、前記プロセッサで実行可能な命令は、更に、前記プロセッサに、前記テレプレゼンスロボットが前記少なくとも１つのタグのタグ座標の所定の範囲内に位置するとき、前記テレプレゼンスロボットの前記制御システムに前記実行命令を送信する処理を実行させるように構成することができる。
【００１０】
いくつかの実施形態において、前記ロボット動作変更子は、更に、前記テレプレゼンスロボットの前記制御システムが前記第１の動作を実行すべき時間及び前記平面図マップ上の位置の１つに関する命令を備える。
【００１１】
いくつかの実施形態において、前記プロセッサで実行可能な命令は、更に、前記プロセッサに、前記リモートテレプレゼンスロボットが移動した経路を形成する前記平面図マップに対する座標の系列を受信する処理、前記経路を形成する座標の系列をタグ座標及びタグ注釈を含み得るタグ情報を備える経路タグとして格納する処理、前記リモートテレプレゼンスロボットが前記タグ座標の所定の距離内に到達するとき、前記経路タグを読み出す処理、及び前記タグ座標を使って前記経路タグのタグ注釈のレンディションを前記平面図マップ及び前記ビデオフィードの少なくとも１つの上に表示させる処理を実行させるように構成される。
【００１２】
いくつかの実施形態において、前記テレプレゼンスロボットシステムのローカル端末は、更に、少なくとも１つのユーザ入力装置を備え、前記経路を形成する座標の系列は前記ユーザ入力装置によって提供することができる。
【００１３】
いくつかの実施形態において、前記経路を形成する座標の系列は前記リモートテレプレゼンスロボットにより提供することができる。
【００１４】
いくつかの実施形態において、前記テレプレゼンスロボットシステムは、テレプレゼンスロボットシステムのローカル端末と前記リモートテレプレゼンスロボットとの間の通信を円滑にするように構成された通信システムを更に備える。
【００１５】
いくつかの実施形態において、前記ローカル端末は更に少なくとも１つのユーザ入力装置を備え  前記ユーザ入力装置は、ユーザが前記平面図マップ及び前記リモートテレプレゼンスロボットの前記撮像システムからのビデオフィードの少なくとも１つの上に前記リモートテレプレゼンスロボットの所望の目的地の指示を提供できるように構成することができ、前記リモートテレプレゼンスロボットに送信される前記コマンドは所望の目的地を備えることができる。
【００１６】
いくつかの実施形態において、前記ローカル経路を形成する座標の系列は前記少なくとも１つのタグと関連するタグ情報に少なくとも部分的に基づくものとすることができる。
【００１７】
いくつかの実施形態において、前記プロセッサで実行可能な命令は、更に、前記プロセッサに、前記リモートテレプレゼンスロボットの現在位置と前記リモートテレプレゼンスロボットの所望の目的地との間のロボット経路を生成するために前記平面図マップに対する座標の系列を決定する処理を実行するように構成され、前記リモートテレプレゼンスロボットに送信される前記コマンドは前記ロボット経路を形成する座標の系列を備える。
【００１８】
いくつかの実施形態において、前記プロセッサで実行可能な命令は、更に、前記プロセッサに、前記平面図マップ上に前記ロボット経路を形成する座標の系列をオーバレイ表示させる処理を実行させるように構成される。
【００１９】
いくつかの実施形態において、前記プロセッサで実行可能な命令は、更に、前記プロセッサに、前記平面図マップと前記リモートテレプレゼンスロボットの前記撮像システムから受信したビデオフィードとの間の歪みを決定する処理、前記歪みを前記ロボット経路を形成する座標の系列に適用して、前記ビデオフィードに対する前記座標の系列の位置及びパースペクティブを記述する対応するビデオ座標及びパースペクティブデータを決定する処理、及び前記ビデオフィード上に前記ローカル経路を形成する座標の系列の３次元レンディションをオーバレイ表示させる処理を実行させるように構成される。
【００２０】
いくつかの実施形態において、前記ロボット経路を形成する座標の系列の前記３次元レンディションは、前記ビデオフィード内で検出された床に対して前記ビデオフィード上にオーバレイすることができる。
【００２１】
いくつかの実施形態において、前記プロセッサで実行可能な命令は、更に、前記プロセッサに、前記リモートテレプレゼンスロボットのナビゲーションシステムから、前記リモートテレプレゼンスロボットの現在位置と前記リモートテレプレゼンスロボットの所望の目的地との間のロボット経路を形成する、前記平面図マップに対する座標の系列を受信する処理、及び前記平面図マップ上に前記ロボット経路を形成する座標の系列をオーバレイ表示させる処理を実行させるように構成される。
【００２２】
いくつかの実施形態において、前記プロセッサで実行可能な命令は、更に、前記プロセッサに、前記平面図マップと前記リモートテレプレゼンスロボットの撮像システムから受信したビデオフィードとの間の歪み（例えば、二次元座標系と３次元座標系との間の座標変換）を決定する処理、前記歪みを前記ロボット経路を形成する座標の系列に適用して、前記ビデオフィードに対する前記座標の系列の位置及びパースペクティブを記述する対応するビデオ座標及びパースペクティブデータを決定する処理、及び前記ビデオフィード上に前記ローカル経路を形成する座標の系列の３次元レンディションをオーバレイ表示させる処理を実行させるように構成される。
【００２３】
いくつかの実施形態において、前記ロボット経路を形成する座標の系列の３次元レンディションは前記ビデオフィード内で検出された床に対して前記ビデオフィード上にオーバレイすることができる。
【００２４】
いくつかの実施形態において、前記タグ情報は、無線通信信号の可用性、前記リモートテレプレゼンスロボットの移動速度、関心のある点の位置、人の位置、ドッキングステーションの位置、停止エリアの位置、ガラス壁の位置、斜面の位置、物体の位置、狭いエリアを航行するのに最適なルート、混雑したエリアを航行するのに最適なルート、及びテレプレゼンスロボットが実行ずべき動作の１つに関する情報を備える。
【００２５】
いくつかの実施形態において、前記タグ情報は位置、経路及び／又はボリュームに関するものとすることができ、前記制御システムは前記位置、経路及び／又はボリュームに関する動作を実行するように構成することができる。
【００２６】
いくつかの実施形態において、前記プロセッサで実行可能な命令は、更に、前記プロセッサに、前記リモートテレプレゼンスロボットのセンサシステムにより検出された障害物の前記平面図マップ上の座標を受信する処理を実行させるように構成される。
【００２７】
いくつかの実施形態において、前記平面図マップ及び前記複数のタグはリモートに格納される。
【００２８】
いくつかの実施形態において、前記平面図マップ及び前記複数のタグは前記リモートテレプレゼンスロボット内に格納される。
【００２９】
いくつかの実施形態において、前記プロセッサで実行可能な命令は、更に、前記プロセッサに、前記平面図マップと前記リモートテレプレゼンスロボットの撮像システムから受信したビデオフィードとの間の歪み（例えば、二次元座標系と３次元座標系との間の座標変換）を決定する処理、及び前記平面図マップと前記リモートテレプレゼンスロボットの前記撮像システムからのビデオフィードとの混合ビューを備える混成マップビューを生成する処理を実行させるように構成される。
【００３０】
いくつかの実施形態において、前記混成マップビューは、前記ビデオフィード上にオーバレイされた前記平面図マップの３次元表現を備える。
【００３１】
いくつかの実施形態において、前記テレプレゼンスロボットシステムのローカル端末は、更に、少なくとも１つのユーザ入力装置を備え、前記プロセッサで実行可能な命令は、更に、前記プロセッサに、前記少なくとも１つの入力装置を介して、前記平面図マップ上の前記リモートテレプレゼンスロボットの仮想位置に対するレンダリングされたルックアヘッドビューの要求を受信する処理、前記平面図マップと前記リモートテレプレゼンスロボットの前記撮像システムから受信したビデオフィードとの間の歪み（例えば、二次元座標系と３次元座標系との間の座標変換）を決定する処理、前記リモートテレプレゼンスロボットの仮想位置に基づいて仮想の３次元ビデオフィードを生成する処理、及び前記リモートテレプレゼンスロボットの仮想位置に基づいて前記仮想の３次元ビデオフィードを表示する処理を実行させるように構成される。
【００３２】
いくつかの実施形態おいて、前記少なくとも１つのタグのタグ情報は、保護領域を前記平面図マップに関して規定する一組の座標を備え、前記少なくとも１つのタグのタグ情報は前記保護領域の存在を示すように構成することができる。
【００３３】
いくつかの実施形態において、前記プロセッサで実行可能な命令は、更に、前記プロセッサに、新しいタグを生成するための要求を受信する処理、前記新しいタグとタグ注釈を含み得るタグ情報の相対的位置を記述するタグ座標を新しいタグと関連付ける処理、及び前記タグ座標を使って前記新しいタグのタグ注釈のレンディデョンを前記平面図マップ及び前記ビデオフィードの少なくとも１つの上に表示する処理を実行させるように構成される。
【００３４】
いくつかの実施形態において、前記新しいタグを生成させる要求は前記リモートテレプレゼンスロボットにより発生させることができる。
【００３５】
いくつかの実施形態において、前記新しいタグを生成させる要求は前記ビデオフィード内で検出された物体に基づいて自動的に発生させることができる。
【００３６】
いくつかの実施形態において、前記新しいタグは前記検出された物体が前記ビデオフィード内にもはや存在しなくなるとすぐに時間切れになるように構成された一時的なタグとすることができる。
【００３７】
いくつかの実施形態において、前記物体は人とすることができ、前記新しいタグのタグ情報はその人と関連する識別情報を備えることができる。
【００３８】
いくつかの実施形態において、前記物体は人とすることができ、前記新しいタグのタグ情報は前記リモートテレプレゼンスロボットがその人に対して実行する可能性のある動作を備えることができる。
【００３９】
いくつかの実施形態において、前記新しいタグを生成させる要求は、前記リモートテレプレゼンスロボットシステムのローカル端末と通信するユーザ入力装置により発生させることができる。
【００４０】
いくつかの実施形態において、前記新しいタグを生成させる要求は前記ビデオフィードに対して行われる。
【００４１】
いくつかの実施形態において、前記新しいタグを生成させる要求は前記平面図マップに対して行われる。
【００４２】
いくつかの実施形態において、前記新しいタグを生成させる要求は前記リモートテレプレゼンスロボットの現在位置に対して行われる。
【００４３】
いくつかの実施形態において、前記タグ情報は、無線通信信号の可用性、前記リモートテレプレゼンスロボットの移動速度、関心のある点の位置、人の位置、ドッキングステーションの位置、停止エリアの位置、ガラス壁の位置、斜面の位置、物体の位置、狭いエリアを航行するのに最適なルート、混雑したエリアを航行するのに最適なルート、及びテレプレゼンスロボットが実行ずべき動作のうちの１つに関する情報を備える。
【００４４】
他の実施形態において、テレプレゼンスロボットはリモート端子と通信することができる。前記テレプレゼンスロボットは、該テレプレゼンスロボットを駆動命令に従って移動させるように構成された駆動システム、前記駆動システムと通信し、前記駆動システムに前記テレプレゼンスロボットを移動させるための駆動命令を生成するように構成された制御システムと、前記制御システムと通信する撮像システムと、前記制御システムと通信し、ロボット動作表面のロボット航行可能エリアを表す平面図マップ及び各々がタグの相対位置を記述するタグ座標及びタグ情報（注釈を含み得る）を備える複数のタグを備えるマップデータソースにアクセスするように構成されたマッピングモジュールと、前記制御システムと通信し、現在位置と関連する位置決定情報を提供するように構成された位置決定システムと、前記テレプレゼンスロボットのナビゲーション経路に関連する少なくとも１つのタグを識別するように構成されたタグ識別システムと、前記制御システムとリモート端末との間の通信を容易にするように構成された通信システムとを備え、前記制御システムは識別されたタグに基づいて動作を実行するように構成され、そのタグ情報がテレプレゼンスロボット動作変更子を備えている。
【００４５】
いくつかの実施形態において、前記識別されたタグのタグ情報は、前記制御システムが動作を実行すべき時間と前記平面図マップ上の位置の少なくとも１つに関する命令を備える。
【００４６】
いくつかの実施形態において、前記制御システムは前記撮像システムからのビデオフィードを前記リモート端末に前記通信システムを介して送信するように構成することができ、且つ前記制御システムは前記リモート端末から前記平面図マップ上の所望の目的地を前記通信システムを介して受信するように構成することができる。
【００４７】
いくつかの実施形態において、前記テレプレゼンスロボットは、更に、前記テレプレゼンスロボットの近くの障害物を識別するように構成された複数のセンサ、及び前記複数のセンサ及び前記制御システムと通信する障害物回避システムを備えることができ、前記制御システムは、更に、前記テレプレゼンスロボットの近くの障害物を回避するために追加の命令を生成するように構成することができる。
【００４８】
いくつかの実施形態において、前記複数のセンサは、近接センサ、接触センサ、オドメトリセンサ、及び３次元画像センサの少なくとも１つを備える。
【００４９】
いくつかの実施形態において、前記複数のセンサは、障害物の３次元占有部を含むポイントクラウドを形成する３次元画像センサを備えることができ、前記駆動命令は前記障害物の３次元占有部を回避するように構成することができる。
【００５０】
いくつかの実施形態において、前記テレプレゼンスロボットは、更に、前記制御システムと通信し、前記ロボット動作表面の平面図マップを自律的に生成するように構成されたマップ生成システムを備えることができ、前記制御システムは、前記テレプレゼンスロボットを前記ロボット動作表面の全域に移動させ、複数の測定値を取得させる駆動命令を生成し、前記マップ生成システムは前記複数の測定値を使って前記平面図マップを生成する。
【００５１】
いくつかの実施形態において、前記テレプレゼンスロボットは、更に、前記平面図マップ上の現在位置から前記平面図マップ上の所望の目的地までの座標の系列を備えるナビゲーション経路を生成するように構成されたナビゲーションシステムを備えることができる。
【００５２】
いくつかの実施形態において、前記テレプレゼンスロボットは、検出された障害物の前記平面図マップに対する座標を前記リモート端末に前記通信システムを介して送信することができる。
【００５３】
いくつかの実施形態において、前記ナビゲーション経路を形成する前記座標の系列は、前記識別されたタグと関連するタグ情報に少なくとも部分的に基づくものとすることができる。
【００５４】
いくつかの実施形態において、前記ナビゲーションシステムは、複数の可能なナビゲーション経路から１つのナビゲーション経路を選択することによって前記ナビゲーション経路を生成するように構成され、前記テレプレゼンスロボットのナビゲーション経路に関連するタグは前記複数の可能なナビゲーション経路と関連付けられ、且つ前記ナビゲーションシステムは、前記ナビゲーション経路を前記識別されたタグに少なくとも部分的に基づいて選択するように構成される。
【００５５】
いくつかの実施形態において、前記ナビゲーション経路を形成する座標の系列は前記通信システムを介して前記リモート端末に送信される。
【００５６】
いくつかの実施形態において、前記テレプレゼンスロボットは、前記ナビゲーション経路を形成する座標の系列を使って、前記座標の系列、前記ナビゲーション経路に関連するタグ情報及び前記ナビゲーション経路に関するタグ注釈を備える新しいタグを生成するように構成することができる。
【００５７】
いくつかの実施形態において、前記複数のタグの各々の前記タグ情報は、無線通信信号の可用性、前記リモートテレプレゼンスロボットの移動速度、関心のある点の位置、人の位置、ドッキングステーションの位置、停止エリアの位置、ガラス壁の位置、斜面の位置、物体の位置、狭いエリアを航行するのに最適なルート、混雑したエリアを航行するのに最適なルート、及びテレプレゼンスロボットが実行ずべき動作のうちの１つに関する情報を備える。
【００５８】
いくつかの実施形態において、前記制御システムは、更に、前記平面図マップ上の現在位置から前記平面図マップ上の所望の目的地までのナビゲーション経路を受信するように構成でき、且つ前記制御システムは、更に、前記駆動システムに、前記テレプレゼンスロボットを前記ナビゲーション経路に基づいて前記所望の目的地まで移動させるための駆動命令を生成するように構成できる。
【００５９】
いくつかの実施形態において、前記通信システムは、前記テレプレゼンスロボットとリモート端末との間の通信の中断を検出するように構成でき、前記制御システムは、更に、通信の中断中も前記テレプレゼンスロボットを自律的に移動させるために駆動命令を生成し続けるように構成できる。
【００６０】
いくつかの実施形態において、前記マップデータソースはリモートに格納でき、前記マッピングモジュールは前記通信システムを介して前記マップデータソースにアクセスするように構成できる。
【００６１】
いくつかの実施形態において、前記マップデータソースは前記テレプレゼンスロボット内に格納でき、前記マッピングモジュールは内部マップデータソースにアクセスするように構成できる。
【００６２】
幾つかの実施形態において、前記内部マップデータソースはリモート格納されたマップデータソースと同期化することができる。
【００６３】
いくつかの実施形態において、前記位置決定システムは、更に、前記平面図マップに対するロボット姿勢を提供するように構成することができる。
【００６４】
いくつかの実施形態において、前記テレプレゼンスロボットは、新しいタグを、前記新しいタグの相対位置を記述するタグ座標を前記平面図マップと前記撮像システムにより生成されるビデオフィードのうちの１つと関連付け、タグ情報を前記新しいタグと関連付け、且つタグ注釈を前記新しいタグと関連付けることによって、生成するように構成することができる。
【００６５】
いくつかの実施形態において、前記新しいタグは、前記テレプレゼンスロボットが前記ビデオフィード内で物体を検出するのに応答して生成することができる。
【００６６】
いくつかの実施形態において、前記物体は人とすることができ、前記新しいタグのタグ情報は前記人と関連する識別情報を備えることができる。
【００６７】
いくつかの実施形態において、前記物体は人とすることができ、前記新しいタグのタグ情報は、前記リモートテレプレゼンスロボットが前記人に対して実行可能な動作を備えることができる。
【００６８】
いくつかの実施形態において、前記タグ情報は、無線通信信号の可用性、前記リモートテレプレゼンスロボットの移動速度、関心のある点の位置、人の位置、ドッキングステーションの位置、停止エリアの位置、ガラス壁の位置、斜面の位置、物体の位置、狭いエリアを航行するのに最適なルート、混雑したエリアを航行するのに最適なルート、及びテレプレゼンスロボットが実行ずべき動作のうちの１つに関する情報を備える。
【００６９】
いくつかの実施形態において、前記テレプレゼンスロボットシステムは、更に、前記位置決定システムと通信するＲＦＩＤリーダを備え、前記位置決定システムは、複数のＲＦＩＤチップを前記平面図マップ上の対応する複数の座標と関連させ、前記位置決定システムは前記テレプレゼンスロボットの現在位置を前記ＲＦＩＤリーダのレンジ内に位置する１以上のＲＦＩＤチップの位置に少なくとも部分的に基づいて決定するように構成することができる。
【００７０】
本発明のシステム及び方法においては様々な制御の方法を使用することができる。例えば、テレプレゼンスロボットシステムのローカル端末は、電子ディスプレイと、前記電子ディスプレイインタフェースと通信するプロセッサと、前記プロセッサと通信するメモリとを備え、前記メモリは、前記プロセッサで実行可能な命令を備え、前記命令は前記プロセッサに、ロボット動作表面のロボット航行可能なエリアを表す平面図マップの少なくとも一部分を読み出す処理、前記リモートテレプレゼンスロボットの撮像システムからのビデオフィードを第１のパースペクティブで受信する処理、前記平面図マップに対する前記リモートテレプレゼンスロボットの現在位置を受信する処理、前記リモートテレプレゼンスロボットの撮像システムからの前記ビデオフィードを表示させる処理、前記リモートテレプレゼンスロボットにコマンドを送信する処理を実行させるように構成され、更に前記プロセッサと通信するユーザ入力装置を備え、前記ユーザ入力装置は、ユーザがリモートテレプレゼンスロボットの移動を選択できるように構成され、その移動の選択は、リモートテレプレゼンスロボットの目的地を、前記ビデオフィードに対して、前記平面図マップに対して、前記リモートテレプレゼンスロボットを前記リモートテレプレゼンスロボットの現在位置に対して少なくとも４つの方向の１つの方向にインクリメンタルに前進させることによって、選択することを含む。
【００７１】
いくつかの実施形態において、前記移動の選択は、前記ビデオフィード内の１点を選択することによって前記ビデオフィードの別のパースペクティブを選択することを含む。このモードはビデオフィードのビュー内の位置に到達するまでの中距離用に使用され得る。
【００７２】
いくつかの実施形態において、前記移動の選択は、前記平面図マップ内の１点を選択することによって前記ビデオフィードの別のパースペクティブを選択することを含む。このモードは、ビデオフィードのビュー内にない位置までの遠距離（例えば、廊下、部屋間など）用に使用され得る。いくつかの実施形態において、移動の選択は、ジョイスティックやメタジョイスティックなどの手動制御を使用することを含む。このモードは、例えば人／親のすぐ近くの室内での微調整用に使用され得る。
【００７３】
いくつかの実施形態において、前記移動の選択は、前記リモートテレプレゼンスロボットを静止させたまま前記撮像装置をインクリメンタルにパン又はチルトさせることによって前記ビデオフィードの別のパースペクティブを選択することを含む。
【００７４】
いくつかの実施形態において、前記移動の選択は、前記リモートテレプレゼンスロボットの下部及び前記リモートテレプレゼンスロボットの上部の一方を回転させることに関連させることができる。
【００７５】
いくつかの実施形態において、モードを切り替えることができ、例えばマルチノードインタフェースを使用し、リモートテレプレゼンスロボットのヘッド部撮像システムの移動又はバース部（下部）の移動を選択することができる。
【００７６】
いくつかの実施形態において、ヘッド部撮像システムの移動の制御を選択するとき、必要に応じ、マウスによる位置ベースのボックスズームヘッドモーション又はマウスによる速度ベースのヘッドモーションを選択することができる。
【００７７】
いくつかの実施形態において、リモートテレプレゼンスロボットのベース部（下部）の制御を選択するとき、必要に応じ、（１）クリックオンマップ、即ちマップビューをトップダウンにし、目標目的地をクリックする又は目的地リストから選択する、（２）クリックオンビデオ、即ちビデオ内の場所のクリックを可能にし、ロボットがその場所を走行する位置ベース制御、（３）ジョイスティック又はメタジョイスティック、例えばマウス速度ベース制御又は前、左、右などを指示する矢印、のうちの１つを選択することができる。
【００７８】
いくつかの実施形態において、ロボットベース部が移動している間常にユーザによりアクセスされる必要がある機能／情報は、（１）リモートビュー、即ちロボットが正面を向いている（ビューは安全な操作のために有意の視覚情報をユーザに与えるために十分に大きい必要がある）、（２）監視制御モード、必要に応じ取り消し／中止操作のためにオーバライド機能が必要とされる可能性がある、を含む。
【００７９】
いくつかの実施形態において、前記プロセッサで実行可能な命令は、更に、前記プロセッサに、前記ユーザ入力装置からの前記リモートロボットの目的地の選択を受信する処理、  前記リモートテレプレゼンスロボットの現在位置と前記リモートテレプレゼンスロボットの選択した目的地との間のナビゲーション経路を生成するために前記平面図マップに対する座標の系列を決定する処理、及び前記ナビゲーション経路を形成する座標の系列を備えるコマンドを前記リモートテレプレゼンスロボットに送信する処理を実行させるように構成される。
【００８０】
いくつかの実施形態において、前記プロセッサで実行可能な命令は、更に、前記プロセッサに、前記ナビゲーション経路を形成する座標の系列を前記平面図マップ上にオーバレイ表示する処理を実行させるように構成される。
【００８１】
いくつかの実施形態において、前記プロセッサで実行可能な命令は、更に、前記プロセッサに、前記平面図マップと前記リモートテレプレゼンスロボットの前記撮像システムから受信したビデオフィードとの間の歪み（例えば２次元座標系と３次元座標系との間の座標変換）を決定する処理、前記歪みを前記ナビゲーション経路を形成する座標の系列に適用し、前記ビデオフィードに対する前記座標の系列の位置及びパースペクティブを記述する対応するビデオ座標及びパースペクティブデータを決定する処理、及び前記ナビゲーション経路を形成する座標の系列の３次元レンディションを前記ビデオフィード上にオーバレイ表示する処理を実行させるように構成される。
【００８２】
いくつかの実施形態において、前記ナビゲーション経路を形成する座標系列の前記３次元レンディションは、前記ビデオフィード内に検出された床に関して前記ビデオフィード上のオーバレイすることができる。
【００８３】
いくつかの実施形態において、前記プロセッサで実行可能な命令は、更に、前記プロセッサに、前記ユーザ入力装置から前記リモートロボットの目的地の選択を受信する処理、前記選択された目的地に対応する前記平面図マップに対する目的地座標を前記リモートテレプレゼンスロボットに送信する処理、前記リモートテレプレゼンスロボットのナビゲーションシステムから、前記リモートテレプレゼンスロボットの現在位置と前記リモートテレプレゼンスロボットの所望の目的地との間のロボット経路を形成する前記平面図マップに対する座標の系列を受信する処理、及び前記平面図マップ上に前記ロボット経路を形成する座標の系列をオーバレイ表示させる処理を実行させるように構成される。
【００８４】
いくつかの実施形態において、前記プロセッサで実行可能な命令は、更に、前記プロセッサに、前記平面図マップと前記リモートテレプレゼンスロボットの前記撮像システムから受信したビデオフィードとの間の歪み（例えば２次元座標系と３次元座標系との間の座標変換）を決定する処理、前記歪みを前記ロボット経路を形成する座標の系列に適用して、前記ビデオフィードに相対的な前記座標の系列の位置及びパースペクティブを記述する対応するビデオ座標及びパースペクティブデータを決定する処理、及び前記ビデオフィード上に前記ナビゲーション経路を形成する座標の系列の３次元レンディションをオーバレイ表示させる処理を実行させるように構成される。
【００８５】
いくつかの実施形態において、前記ロボット経路を形成する座標の系列の３次元レンディションは、前記ビデオフィード内で検出された床に関して前記ビデオフィード上にオーバレイすることができる。
【００８６】
いくつかの実施形態において、前記プロセッサで実行可能な命令は、更に、前記プロセッサに、前記リモートテレプレゼンスロボットのセンサシステムにより検出された障害物の平面図マップ上の座標を受信する処理を実行させるように構成される。
【００８７】
いくつかの実施形態において、前記平面図マップはリモートに格納される。
【００８８】
いくつかの実施形態において、前記平面図マップは前記リモートテレプレゼンスロボット内に格納される。
【００８９】
いくつかの実施形態において、前記プロセッサで実行可能な命令は、前記平面図マップと前記リモートテレプレゼンスロボットの前記撮像システムから受信したビデオフィードとの間の歪み（例えば２次元座標系と３次元座標系との間の座標変換）を決定する処理、及び前記平面図マップと前記リモートテレプレゼンスロボットの前記撮像システムからのビデオフィードとの混合ビューを備える混成マップビューを生成する処理を実行させるように構成される。
【００９０】
いくつかの実施形態において、前記混成マップビューは、前記ビデオフィード上にオーバレイされる前記平面図マップの３次元表現を備える。
【００９１】
いくつかの実施形態において、前記プロセッサで実行可能な命令は、更に、前記プロセッサに、前記平面図マップ上の前記リモートテレプレゼンスロボットの仮想位置に対するルックアヘッドビューの要求を受信する処理、前記平面図マップと前記リモートテレプレゼンスロボットの前記撮像システムから受信したビデオフィードとの間の歪み（例えば２次元座標系と３次元座標系との間の座標変換）を決定する処理、前記リモートテレプレゼンスロボットの仮想位置に基づいて仮想の３次元ビデオフィードを生成する処理、及び  前記リモートテレプレゼンスロボットの仮想位置に基づいて前記仮想の３次元ビデオフィードを表示させる処理を実行させるように構成される。
【００９２】
いくつかの実施形態において、ロボットは人間に見えるように、上部と下部を独立に巻戻す及び／又は制御するように構成することができる。例えば、テレプレゼンスロボットは、上部と、前記上部に回転可能に連結された下部と、前記テレプレゼンスロボットを駆動命令に従って駆動するように構成された駆動システムと、前記駆動システムと通信し、前記駆動システムに前記テレプレゼンスロボットを移動させる駆動命令を発生するように構成された制御システムと、前記上部と前記下部を独立に回転させることによって、前記ロボットを第１の進行方向から第２の進行方向へ回転させるように構成された回転システムと、を備える。
【００９３】
いくつかの実施形態において、前記回転システムは、前記ロボットの上部を前記第２の進行方向へ回転させ、前記ロボットの上部が前記ロボットの下部に対する前記ロボットの上部のパン限界に到達したことを検出し、前記ロボットの上部のパン限界において前記ロボットの下部を前記第２の進行方向まで回転させ始め、前記ロボットの上部が前記第２の進行方向に到達したことを検出し、前記ロボットの上部が前記第２の進行方向を維持するように、前記ロボットの下部を前記第２の進行方向まで回転し続けると同時に、前記ロボットの上部を反対方向に回転させることによって、前記ロボットを第２の進行方向まで回転させるように構成することができる。
【００９４】
いくつかの実施形態において、前記パン限界は、前記ロボットの上部が前記ロボットの下部に対して物理的にそれ以上回転できないときに到達されるものとすることができる。
【００９５】
いくつかの実施形態において、前記パン限界は、前記上部が前記下部に対して所定の回転度数だけ不整列であるときに到達されるものとすることができる。
【００９６】
いくつかの実施形態において、前記パン限界は、前記上部が前記下部に対して不整列である回転度数及び前記上部が前記下部に対して不整列であった時間の関数とすることができる。
【００９７】
いくつかの実施形態において、前記回転システムは、前記ロボットの上部を第１の回転速度で前記第２の進行方向まで回転させ、前記ロボットの下部を第２の回転速度で前記第２の進行方向まで回転させ、前記ロボットの上部が前記第２の進行方向に到達したことを検出し、前記ロボットの上部が前記第２の進行方向を維持するように、前記ロボットの下部を前記第２の進行方向まで回転し続けると同時に、前記ロボットの上部を反対方向に回転させることによって、前記ロボットを第２の進行方向まで回転させるように構成することができる。
【００９８】
いくつかの実施形態において、前記テレプレゼンスロボットは、更に、前記制御システムと通信する撮像システムと、前記制御システムと通信し、平面図マップに対する前記ロボットの現在位置及び前記平面図マップに対する前記上部の現在の整列を提供するように構成された位置決定システムと、を備え、前記制御システムは、前記撮像システムからのビデオフィード、ロボットの現在位置及び前記上部の現在の整列をリモート端末に送信し、その結果、前記リモート端末が前記平面図マップと前記テレプレゼンスロボットの前記撮像システムから受信される前記ビデオフィードとの間の歪み（例えば２次元座標系と３次元座標系との間の座標変換）を決定し、前記歪みを前記平面図マップと関連する座標を有するタグに適用して前記ビデオフィードに対する前記タグの位置及びパースペクティブを記述する対応するビデオ座標及びパースペクティブデータを決定し、前記ビデオ座標を使って前記タグの３次元レンディションを前記ビデオフィード上にオーバレイ表示するように構成することができる。
【００９９】
上記の実施形態はロボット及び／又はローカル端末の観点から記載されている。当業者であれば、上記の実施形態はシステムとして、システムにより実行される方法として実施することができ、またシステムにより実行可能なコンピュータ読み取り可能な媒体に具体化できること明らかである。例えば、ロボットの進行方向を変化させる方法は、駆動システムと通信して前記ロボットを駆動命令に従って移動させるように構成されたロボットの制御システムに進行方向を送信するステップ、及び前記駆動システムによって、前記ロボットの上部を前記ロボットの下部と独立に前記進行方向まで回転させるステップを備えることができる。
【０１００】
いくつかの実施形態において、リモートテレプレゼンスロボットを制御する方法は、ロボット動作表面のロボット航行可能エリアを表す平面図マップの少なくとも一部分を受信するステップ、各々がタグの相対位置を記述するタグ座標及びタグ情報を備える複数のタグの少なくとも１つを受信するステップ、リモートテレプレゼンスロボットの撮像システムからビデオフィードを受信するステップ、前記リモートテレプレゼンスロボットの現在位置と関連する位置決定情報を受信するステップ、前記リモートテレプレゼンスロボットの撮像システムからの前記ビデオフィードを電子ディスプレイで表示するステップ、前記タグ座標を使って、前記少なくとも１つのタグのタグ情報のレンディションを前記電子ディスプレイで前記ビデオフィード上に表示するステップ、及び前記リモートテレプレゼンスロボットにコマンドを送信するステップ、を備えることができる。テレプレゼンスロボットを制御する方法は、平面図マップの少なくとも一部分を読み出すステップ、各々がタグの相対位置を記述するタグ座標及びタグ情報を備える複数のタグの少なくとも１つを読み出すステップ、前記平面図マップに対する現在位置を決定するステップ、前記テレプレゼンスロボットのナビゲーション経路に関連する前記複数のタグのステップ１つのタグを識別するステップ、及びテレプレゼンス動作変更子を含むタグ情報を有する前記識別したタグに基づいて動作を実行させるステップ、を備えることができる。
【０１０１】
いくつかの実施形態において、テレプレゼンスロボットを制御する方法は、ロボット動作表面のロボット航行可能なエリアを表す平面図マップの少なくとも一部分を読み出すステップ、前記リモートテレプレゼンスロボットの撮像システムからのビデオフィードを第１のパースペクティブで受信するステップ、前記リモートテレプレゼンスロボットの現在位置と関連する位置決定データを受信するステップ、前記リモートテレプレゼンスロボットの撮像システムからの前記ビデオフィードを表示させるステップ、前記リモートテレプレゼンスロボットにコマンドを送信するステップ、及びユーザ入力装置から複数の移動選択を受信するステップを備え、前記移動選択は、（１）前記ビデオフィードに対して行われる、（２）前記平面図マップに対して行われる、及び／又は前記リモートテレプレゼンスロボットを前記リモートテレプレゼンスロボットの現在位置に対して一方向にインクリメンタルに前進させることによって行われる。
【０１０２】
本開示の１以上の実施形態の詳細は添付図面に示され、以下に説明される。他の態様、特徴及び利点が本明細書、図面及び請求項の記載から明らかになる。
【図面の簡単な説明】
【０１０３】
【図１】模範的なテレプレゼンスロボットの斜視図である。
【図２】模範的なテレプレゼンスロボットの仰角斜視図である。
【図３Ａ】模範的なテレプレゼンスロボットの概略図である。
【図３Ｂ】模範的なテレプレゼンスロボットの概略図である。
【図３Ｃ】模範的なテレプレゼンスロボットの概略図である。
【図４Ａ】モバイルヒューマンインタフェースロボットの模範的なベース部の正面斜視図である。
【図４Ｂ】図４Ａに示すベース部の背面斜視図である。
【図４Ｃ】図４Ａに示すベース部の上面図である。
【図４Ｄ】テレプレゼンスロボットの模範的なベース部の上面概略図である。
【図４Ｅ】テレプレゼンスロボットの模範的な駆動システムの底面斜視図である。
【図４Ｆ】図４Ｅに示す駆動システムの概略図である。
【図５】テレプレゼンスロボットのコントローラにより実行される模範的な制御システムの概略図である。
【図６Ａ】ロボットエンドポイントと通信する多数のロボットを含む模範的なロボットシステムの概略図を示す。
【図６Ｂ】ロボット又は端末で実行されるテレオペレーションスソフトウェアアプリケーションを示す。
【図６Ｃ】半自律テレプレゼンスロボットの航行を制御するユーザインタフェースのスクリーンショットの一例を示す。
【図６Ｄ】マップウィンドウに割り当てられたスクリーンの相対面積が増大されているスクリーンショットを示す。
【図７】模範的なロボットシステムアーキテクチャの概略図である。
【図８Ａ】模範的なオキュパンシーマップの概略図である。
【図８Ｂ】作業エリア内のシーンの視野を有するテレプレゼンスロボットの概略図である。
【図８Ｃ】模範的なレイアウトマップの概略図である。
【図８Ｄ】図８Ｃに示すレイアウトに対応する模範的なロボットマップの概略図である。
【図８Ｅ】レイアウトマップ及びロボットマップを使ってロボットを環境中を航行するように動作させる模範的な構成を示す。
【図８Ｆ】ロボット位置及びパースペクティブを使ってビデオフィードと平面図マップとの間の歪みを決定する方法を示す。
【図９Ａ】中間に位置するロボットからの模範的なリモートビデオビューの概略図である。
【図９Ｂ】図９Ａに示すリモートビデオビューと部屋番号を示すマップを一緒に組み合わせてなる模範的な混成マップの概略図である。
【図１０Ａ】テレプレゼンスソフトウェアアプリケーションのリモートビデオウィンドウの模範的なリモートビューを示す。
【図１０Ｂ】図１０Ａのリモートビューにより示されるエリアの模範的なマップの概略図である。
【図１０Ｃ】テレプレゼンスソフトウェアアプリケーションの模範的なルックアヘッドビューの概略図である。
【図１０Ｄ】ロボットアイコン及び対応するカメラ視野を有する図１０Ｂに示すマップの概略図である。
【図１０Ｅ】テレプレゼンスソフトウェアアプリケーションの模範的なルックアヘッドビューの概略図である。
【図１０Ｆ】ロボットアイコン及び対応するカメラ視野を有する図１０Ｂに示すマップの概略図である。
【図１０Ｇ】テレプレゼンスソフトウェアアプリケーションのルックアヘッドルーチンのオペレーションの模範的な配列を示す。
【図１１Ａ】ユーザがロボット目的地を識別された航行可能エリア内に指定することを可能にする模範的なユーザインタフェースの概略図を示す。
【図１１Ｂ】ロボットを目的地までナビゲートする方法のオペレーションの模範的な配列を示す。
【図１１Ｃ】ロボットの目的地として斜面が選択されたことをユーザに注意する模範的なユーザインタフェースの概略図である。
【図１１Ｄ】ロボットの目的地として障害物が選択されたことをユーザに注意する模範的なユーザインタフェースの概略図である。
【図１２】ユーザがロボット駆動経路を識別された航行可能エリア内に指定することを可能にする模範的なユーザインタフェースの概略図である。
【図１３】ハイパータグ及びコンテキストセンシティブコマンドを内蔵する模範的なユーザインタフェースの概略図である。
【図１４】センサ視野を人に維持する模範的なテレプレゼンスロボットの斜視図である。
【図１５Ａ】ハイパータグを含む模範的な３次元マップビューの概略図である。
【図１５Ｂ】ハイパータグを含む模範的な２次元マップビューの概略図である。
【図１６Ａ】模範的なロボットシステムの概略図である。
【図１６Ｂ】マップデータソースとの模範的なインタラクションの概略図である。
【図１６Ｃ】ロボット制御システムとマップデータソースとの間の模範的なインタラクションの概略図である。
【図１６Ｄ】模範的なロボットシステムの概略図である。
【図１７】テレプレゼンスロボットに対応する拡大オーバレイを含む模範的なユーザインタフェースの概略図である。
【図１８】模範的な一連のロボット動作の概略図である。
【図１９】テレプレゼンスロボットから受信したリモートビデオフィード上にオーバレイされるスクリーンインジケータを有するユーザインタフェースの概略図である。
【図２０Ａ】ロボット通信の消失から回復するためのオペレーションの模範的な配列を示す。
【図２０Ｂ】ロボット通信の消失から回復するためのオペレーションの模範的な配列を示す。
【図２０Ｃ】ロボット通信の消失から回復するためのオペレーションの模範的な配列を示す。
【０１０４】
様々な図中の同様の参照番号は同様の要素を示す。
【発明を実施するための形態】
【０１０５】
本テレプレゼンスロボットは、人間とインタラクト又はインタフェースして、多数のサービス、例えば医師や医療従事者のリモート診察、在宅支援、商業支援などを提供することができる。在宅支援の例では、テレプレゼンスロボットは高齢者の日常の作業を支援することができ、以下に限定されないが、投薬計画の維持、移動支援、コミュニケーション支援（例えばビデオ会議、通信、インターネットアクセスなど）、在宅又はサイト監視（屋内及び／又は屋外）、個人監視、及び／又は個人救急応答システム（ＰＥＲＳ）の提供が含まれる。商業支援に対しては、テレプレゼンスロボットはビデオ会議（例えば病院設定の）、販売時点管理端末、インタラクティブ情報／マーケティング端末などを提供することができる。
【０１０６】
図１−３Ｂを参照すると、いくつかの実施形態において、テレプレゼンスロボット１００は、前進方向Ｆを規定するロボット本体１１０（又はシャーシ）を含む。ロボット１００は、駆動システム２００（図４Ｄ）、インタフェースモジュール３００及びセンサシステム４００も含み、これらはロボット本体１１０で支持されるとともに、ロボット１００の動作及び運動を制御するコントローラ５００（図５）と通信する。電源１０５（例えば電池）はロボット本体１１０で担持されるとともに電気的に接続され、必要に応じこれらの構成要素の各々に電力を供給することができる。
【０１０７】
図示の例では、ロボット本体１１０は、ベース部１２０、ベース部１２０から上方へ伸びる少なくとも１つの脚部１３０、及び少なくとも１つの脚部１３０で支持された胴部１４０を含む。ロボット本体（下部）１１０は胴部１４０により支持されたネック部１５０も含む。ネック部１５０はヘッド部（上部）１６０を支持し、ヘッド部１６０はインタフェースモジュール３００の少なくとも一部分を支持する。ベース部１２０は、（例えば電源１０５（電池）を支持することにより）十分な重量を含み、ベース部１２０の重心ＣＧＢ及びロボット１００の全体重心ＣＧＲを低く維持して機械的安定性を維持する。
【０１０８】
図２及び図４Ａ−４Ｃを参照すると、いくつかの実施形態において、ベース部１２０は３角対称形（例えば上から見て３角形）を規定する。例えば、ベース部１２０は、３角形状のベース部１２０の各辺に対応する第１、第２及び第３のベース本体部分１２４ａ，１２４ｂ，１２４ｃを有するベース本体１２４を支持するベースシャーシ１２２を含むことができる（例えば図４Ａ参照）。各ベース本体部分１２４ａ，１２４ｂ，１２４ｃは、物体との接触に応答して、ベースシャーシ１２２に対して独立に移動するようにベースシャーシ１２２により移動可能に支持することができる。ベース部１２０の３角対称形はロボット１００の周囲３６０°の衝突検出を可能にする。各ベース本体部分１２４ａ，１２４ｂ，１２４ｃは関連する接触センサ（例えば、容量センサ、リードスイッチなど）を有し、ベースシャーシ１２２に対する対応するベース本体部分１２４ａ，１２４ｂ，１２４ｃの移動を検出することができる。
【０１０９】
いくつかの実施形態において、ドライブシステム２００はロボット１００の全方向及び／又はホロノミック移動制御を提供する。ここで使用する「全方向」とはほぼ任意の平面方向に移動する能力、即ちサイドツーサイド（横方向）、前後及び回転を指す。これらの方向は、一般に、ここではそれぞれｘ、ｙ及びθｚという。更に、「ホロノミック」とは文献で使用されている用語とほぼ同じであり、３つの平面自由度を有する平面方向、即ち２つの平行移動及び１つの回転をいう。従って、ホロノミックロボットは、３つの平面速度（横方向、前後及び回転）のほぼ任意の割合からなる速度で平面方向に移動する能力を有するとともに、これらの割合をほぼ連続的に変化させる能力を有する。
【０１１０】
ロボット１００は、車輪移動を用いて人間環境（例えば、典型的には二足歩行居住者用に設計された環境）で動作する。いくつかの実施形態において、駆動システム２００は、垂直軸Ｚを中心に等間隔（例えば１２０°間隔）に（即ち３角対称に）配置された第１、第２及び第３の駆動車輪２１０ａ，２１０ｂ，２１０ｃを含むが、他の配置も可能である。図４Ｄを参照すると、駆動車輪２１０ａ，２１０ｂ，２１０ｃは横方向円弧状転がり面（即ち、転がり方向ＤＲを横切る方向又は直角の方向の曲面形状）を規定し、ホロノミック駆動システム２００の機動性を与えることができる。各駆動車輪２１０ａ，２０１ｂ，２０１ｃはそれぞれの駆動モータ２２０ａ，２２０ｂ，２２０ｃに結合され、それぞれの駆動モータ２２０ａ−ｃは独立にそれぞれの駆動車輪２１０ａ，２１０ｂ，２１０ｃを前方向及び／又は後退方向に駆動することができる。各駆動モータ２２０ａ−ｃは車輪回転をコントローラ５００にフィードバックする各別のエンコーダを有することができる。いくつかの実施形態において、各駆動車輪２１０ａ，２１０ｂ，２１０ｃは正三角形の３つの頂点の１つに又はその近くに装着され、それぞれの３角形の頂角の２等分線に直角の駆動方向（前進後退方向）を有する。３角対称のホロノミックベース部１２０を前進駆動方向Ｆで駆動すると、ロボット１００は拘束又はクラッタからの自立的脱出のために非前進駆動方向への移行を可能にし、次いで脱出が解消された後に回転及び／又は並進して前進駆動方向Ｆに沿って駆動する。
【０１１１】
図４Ｅ及び４Ｆを参照すると、いくつかの実施形態において、駆動システム２００は、上から見て方形又は長方形の形状に配置された（即ち、Ｚ軸から等距離に配置された）第１、第２、第３及び第４の駆動車輪２１０ａ−ｄを含む。この駆動システム２００はホロノミックに動作することができ、ストレイフィング（strafing）を可能にする。各駆動車輪２１０ａ−ｄはそれぞれの駆動モータ２２０ａ−ｄに結合され、それぞれ駆動モータ２２０ａ−ｄは独立に駆動車輪２１０ａ−ｄを前進及び／又は後退方向に駆動することができる。各駆動モータ２２０ａ−ｄは車輪回転をコントローラ５００にフィードバックする各別のエンコーダを有することができる。ベースシャーシ１２２は駆動モータ２２０ａ−ｄ及びそれらに対応して結合された駆動車輪２１０ａ−ｄを支持する。
【０１１２】
いくつかの実施形態において、図２に示されるように、第１の駆動車輪２１０ａは先輪として前進駆動方向Ｆに沿って配置され、残りの２つの駆動車輪２１０ｂ，２１０ｃは従輪として配置される。この配置では、前進駆動のために、コントローラ５００は、第２及び第３駆動車輪２１０ｂ，２０１ｃを前進転がり方向に等速度で駆動する駆動コマンドを発生することができ、その間第１駆動車輪２１０ａは前進駆動方向Ｆにスリップする。更に、この駆動車輪配置はロボット１００を急停止することができる（例えば、前進駆動方向Ｆに対して急速な負の加速度を生じる）。これは３輪駆動設計の固有の動的安定性による。前進駆動方向Ｆが２つの前進駆動車輪間の角度の２等分線に沿う場合、急停止はロボット１００を倒れさせる力を生じ、２つの「前」輪で旋回させる。代わりに、１つの駆動車輪２１０ａでの前進走行は、自然にロボット１００を支持し、急停止する必要がある場合にロボット１００が前進中に倒れるのを阻止する。しかしながら、停止から加速するとき、コントローラ５００は、ロボット１００の全体重心ＡＧＲからの完成モーメントＩを考慮することができる。
【０１１３】
駆動システム２００のいくつかの実施形態において、各駆動車輪２１０ａ，２１０ｂ，２１０ｃは、ロボット１００のＸ及びＹ軸に直角の垂直Ｚ軸と半径方向に整列する転がり方向ＤＲを有する。第１の駆動車輪２１０ａは先輪として前進駆動方向Ｆに沿って配置し、残りの２つの駆動車輪２１０ｂ，２１０ｃは従輪として配置することができる。この配置では、前進駆動のために、コントローラ５００は、第１の駆動車輪２１０ａを前進転がり方向に駆動し、第２及び第３の駆動車輪２１０ｂ，２１０ｃを第１の駆動車輪２１０ａに等しい速度で反対方向に駆動する駆動コマンドを発生することができる。
【０１１４】
他の実施形態において、駆動システム２００は、第１及び第２の駆動車輪２１０ａ，２１０ｂが、それらの間の角度の２等分線がロボット１００の前進駆動方向Ｆと整列するように配置された構成にすることができる。この配置では、前進駆動のために、コントローラ５００は、第１及び第２の駆動車輪２１０ａ，２１０ｂを前進転がり方向に等速度で駆動するが、第３の駆動車輪２１０ｃは反対方向に駆動するか、第１及び第２の駆動車輪２１０ａ，２１０ｂの背後で引きずられるように、駆動コマンドを発生することができる。前進駆動中に左または右に曲がるには、コントローラ５００は、対応する第１又は第２の駆動車輪２１０ａ、２１０ｂを相対的に速い又は遅い速度で駆動する駆動コマンドを発生することができる。他の駆動システムの構成も使用することができる。駆動車輪２１０ａ，２１０ｂ，２１０ｃは円筒形、円形、楕円形又は多角形にすることができる。
【０１１５】
図１−３Ｂを再び参照すると、ベース部１２０はベース部１２０からＺ方向に上方に伸びる少なくとも１つの脚部１３０を支持する。脚部１３０は、胴部１４０をベース部１２０に対して上昇及び下降させるために高さを変えることができるように構成できる。いくつかの実施形態において、各脚部１３０は互いに対して移動する（例えば伸縮自在、線形移動及び／又は角度移動）第１及び第２の脚部分を含む。図示の例では、比較的大きなベース押出し部から、互いに入れ子式に出入りする順に小さい直径の押出し部を有するものではなく、第２の脚部分１３４は第１の脚部分１３２の周囲を入れ子式に移動し、従って他の構成要素を第２の脚部分１３４に沿って配置し、第２の脚部分１３４とともにベース部１２０の近接近点まで移動させることができる。脚部１３０は第２の脚部分１３４を第１の脚部分１３２に対して移動させるアクチュエータアセンブリを含むことができる。アクチュエータアセンブリ１３６は、リフトモータと連携するモータドライバ及び位置をコントローラにフィードバックするエンコーダを含むことができる。
【０１１６】
一般に、伸縮自在装置は、脚部１３０の重心ＣＧＬをできるだけ低く維持するためにベース部１２０の比較的大きな押出し部に入れ子式に出入りする順に小さい直径の押出し部を含む。更に、脚部１３０が完全に引き延ばされたとき、ベース部１２０にかかる大きなトルクに対処するために、より強く及び／又はより大きな構成要素を底部に配置することができる。しかし、このアプローチは２つの問題をもたらす。第１に、比較的小さい構成要素が脚部１３０の最上部に配置されると、雨やほこりや他の粒子が押出し部に流れ落ちるか降り落ちて、押出し部間の隙間に侵入するので、押出し部の出し入れが阻害される。これは極めて困難なシーリング問題を生じ、依然として脚部１３０の完全な可動性／関節を維持することが試みられている。第２に、荷物又は付属品をロボット１００に搭載することが望まれている。付属品を搭載する一つの一般的な場所は胴部１４０の最上部である。第２の脚部分１３４が第１の脚部分１３２に入れ子式に出入りする場合、付属品及び構成要素は、それらが胴部１４０と一緒に移動する必要がある場合、第２の脚部分１３４の全体の上方に搭載できるのみである。さもなければ、第２の脚部分１３４に搭載された構成要素は脚部１３０の伸縮移動を制限することになる。
【０１１７】
第２の脚部分１３４を第１の脚部分１３２の周囲を入れ子式に移動する構成にすることによって、第２の脚部分１３４はベース部１２０に対して垂直に移動し得る追加の荷物装着点を提供する。この種の構成では、水や空中粒子は胴部１４０及びすべての脚部分１３２，１３４（押出し部）の外側を流れ落ち、脚部分１３２，１３４間の隙間に侵入することはない。これは脚部１３０の全ての継ぎ目のシーリングを大きく簡単化する。更に、胴部１４０及び／又は第２の脚部分１３４の荷物／付属品装着機構は常に露出していて、脚部１３０がどのように引き延ばされようとも利用可能である。
【０１１８】
図２を参照すると、脚部１３０は胴部１４０を支持し、胴部１４０はベース部１２０の上方を覆って伸びる段部１４２を有することができる。図示の例では、胴部１４０は段部１４２の少なくとも一部分を構成する下向き表面又は底面１４４（例えばベース部向き）及び反対側の上向き表面又は上面１４６（図３Ａ）を有し、それらの間に側面１４８が延在する。胴部１４０は、円形、楕円形のような様々な形又は形状をなし、脚部１３０により支持された中央部１４３及び脚部１３０の横方向限界を超えて横方向に広がる周辺自由部分１４３を有し、従って下向き表面１４４を形成する張出部を提供するものとし得る。いくつかの実施形態において、胴部１４０は脚部１３０を超えてベース部１２０を覆うように延在する張出部を提供する段部を形成する多角形又は他の複雑な形状を成す。
【０１１９】
ロボット１００は荷物を受け入れる１以上の付属品ポート１７０（例えば機械的及び／又は電気的相互連結点）を含むことができる。付属品ポート１７０は、受け入れた荷物がセンサシステム４００のセンサを塞いだり、遮らないように、（例えば胴部１４０の底面及び／又は上面１４４，１４６に）配置することができる。
【０１２０】
胴部１４０の外部表面は、ユーザからのタッチコマンドを受け取るために、ユーザによる接触又はタッチに感応するものとし得る。例えば、ユーザが胴部１４０の上面１４６にタッチするとき、ロボット１００は床に対する胴部の高さを下げること（例えば胴部１４０を支持する脚部１３０の高さを減少すること）で応答する。同様に、ユーザが胴部１４０の底面１４４にタッチするとき、ロボット１００は床に対する胴部の高さを上げること（例えば胴部１４０を支持する脚部１３０の高さを増大すること）で応答する。更に、ユーザが胴部１４０の前面、背面、右側面又は左側面部にタッチするとき、ロボット１００は受けたタッチコマンドの対応方向（それぞれ前、後、右、左）に移動することで応答する。胴部１４０の外部表面はユーザ接触を検出するコントローラと通信する容量センサを含むことができる。
【０１２１】
図１−３Ｂを参照すると、胴部１４０はネック部１５０を支持し、ネック部１５０は胴部１４０に対するヘッド部１６０のパン及びチルチを提供する。図示の例では、ネック部１５０はロータ１５２及びチルト部１５４を含む。ロータ１５２は約９０°から３６０°の間の角運動範囲θＲ（例えばＺ軸を中心とする）を提供する。更に、いくつかの実施形態において、ロータ１５２は、ヘッド部１６０とロボット１００の残部との間の電気通信を維持しながら、胴部１４０に対してヘッド部１６０の連続的な３６０°回転を無制限に可能にする電気コネクタ又は接点を含む。チルト部１５４は、ヘッド部１６０とロボット１００の残部との間の電気通信を維持しながら、胴部１４０に対してヘッド部１６０の回転を可能にする電気コネクタ又は接点を含む。ロータ１５２はリング（例えば歯付きリングラック）に結合された又は係合したロータモータを含むことができる。チルト部１５４は、ヘッド部をロータ１５２と独立に、胴部１４０に対して（例えばＹ軸を中心として）角度θＴで動かすことができる。いくつかの実施形態において、チルト部１５４はチルトモータを含み、チルトモータはヘッド部１６０をＺ軸に対して±９０°の角度θＴの範囲で動かす。±４５°などの他の範囲も可能である。ロボット１００は、ロボット１００の安定な可動性を維持するために脚部１３０、胴部１４０、ネック部１５０及びヘッド部１６０がベース部１２０の境界内に収まるように構成することができる。
【０１２２】
ヘッド部１６０は、ユーザからのタッチコマンドを受け取るために、ユーザによる接触又はタッチに感応するものとし得る。例えば、ユーザがヘッド部１６０を前に引っ張ると、ヘッド部１６０は受動的抵抗を伴って前に傾き、その位置を保持する。更に、ユーザがヘッド部１６０を垂直方向に下に押す／引っ張ると、胴部１４０は（脚部１３０の長さの減少により）ヘッド部１６０を下げることができる。ヘッド部１６０及び／又はネック部１５０はユーザの接触又は操作を検出する歪計及び／又は接触センサ１６５を含むことができる。
【０１２３】
いくつかの実施形態において、ヘッド部１６０はインタフェースモジュール３００の１つ以上の部分を支持する。ヘッド部１６０は、１つ以上のコンピュータタブレット（ウェブパッド又はタブレットＰＣとも呼ばれ、各々タッチスクリーンを有する）を取り外し自在に受け入れるドック部３０２を含むことができる。ウェブパッド３１０は前向き、後向き又は上向きにすることができる。いくつかの実施形態において、ウェブパッド３１０はタッチスクリーン、オプショナルＩ／Ｏ（例えばマイクロＵＳＢなどのボタン及び／又はコネクタ）、プロセッサ、及びプロセッサと通信するメモリを含む。代表的なウェブパッド３１０はアップル社のアップルｉＰａｄ（登録商標）を含む。いくつかの実施形態において、ウェブパッド３１０はコントローラ５００として機能するか、コントローラ５００をロボット１００の制御において支援する。タッチスクリーンは、ユーザ入力を受信し、タッチインタラクティブなグラフィックユーザインタフェースを提供するために、ユーザのタッチ点を検出し、モニタし、及び／又は再生する。いくつかの実施形態において、ウェブパッド３１０は、ウェブパッドがロボット１００から除去されているとき、ユーザがそれを見つけることを可能にするタッチスクリーン呼び出し器を含む。
【０１２４】
インタフェースモジュール３００はヘッド部１６０の上に配置されたカメラ３２０を含むことができ（図３Ａ参照）、このカメラ３２０はヘッド部１６０の上昇したバンテージポイント（見晴らしのよい地点）からビデオを撮るために使用することができる（例えばビデオ会議用）。図２に示す実施形態において、カメラ３２０はネック部１５０に配置される。いくつかの実施形態において、カメラ３２０は、ウェブパッド３１０がドック３０２から取り外されている又は切り離されているときのみ動作する。ウェブパッド３１０がヘッド部１６０のドック３０２に取り付けられ又はドッキングされている（必要に応じカメラ３２０を覆う）とき、ロボット１００はビデオを撮るためにウェブパッド３１０のカメラを使用することができる。このような場合には、カメラ３２０はドッキングされたウェブパッド３１０の背後に位置させることができ、ウェブパッド３１０がヘッド部１６０から取り外されたときに活性状態に入り、ウェブパッド３１０がヘッド部１６０に取り付けられ又はドッキングされたときに非活性状態になる。
【０１２５】
ロボット１００はインタフェースモジュール３００を介して（例えばウェブパッド３１０、カメラ３２０、マイクロフォン３３０及び／又はスピーカ３４０を用いて）ビデオ会議を提供することができる。ビデオ会議はマルチパーティとすることができる。ロボット１００は、ヘッド部１６０をユーザに向けるように操作することによってビデオ会議のメンバー同士でアイコンタクトをすることができる。更に、ロボット１００は＜５°の凝視角（例えばヘッド部１６０の前面に垂直な軸から離れた角度）を有することができる。ロボット１００上の少なくとも１つの３次元画像センサ４５０及び／又はカメラ３２０はボディランゲージを含む実物大画像を撮ることができる。コントローラ５００はオーディオとビデオを（＜５０ｍｓの時間差）で同期させることができる。カメラ３２０はウェブパッド３１０とは別に少なくとも１°の自由範囲内で可動とすることができる。ヘッド部１６０は、ビデオ会議を表示するウェブパッド３１０の近傍のヘッド部１６０から音声が発生するように１つ以上のスピーカ３４０を含むことができる。
【０１２６】
インタフェースモジュール３００は音声入力を受信するマイクロフォン３３０（又はマイクロフォンアレイ）及び音声出力を送出するためにロボット本体１１０に配置された１以上のスピーカ３４０を含むことができる。
【０１２７】
図１−３Ｃを参照すると、信頼できるロバストな自立移動を達成するために、センサシステム４００は、いくつかの異なるタイプのセンサを含み、これらのセンサはロボット１００が環境内で取る行動についてインテリジェントな判断をするのに十分なロボットの環境認識を生成するために互いに連携して使用される。センサシステム４００は、ロボット１１０により支持された１以上のタイプのセンサを含むことができ、これらのセンサは障害物検出障害物回避（ＯＤＯＡ）センサ、通信センサ、ナビゲーションセンサなどを含むことができる。例えば、これらのセンサは、以下のものに限定されないが、近接センサ、接触センサ、３次元画像／奥行マップセンサ、カメラ（例えば可視光及び／又は赤外カメラ）、ソナー、レーダ、光検出測距（ＬＩＤＡＲ）（散乱光の特性を測定して遠隔目標の距離及び／又は他の情報を検出する光学リモートセンシングを必要とし得る）、レーザ検出測距（ＬＡＤＡＲ）などを含むことができる。いくつかの実施形態において、センサシステム４００は、測距ソナーセンサ４１０（例えば、ベース部１２０の周囲に９個）、近接クリフ検出器４２０、接触センサ４３０（図３Ａ）、レーザスキャナ４４０、１以上の３次元画像／奥行センサ４５０、及び画像ソナー４６０を含む。
【０１２８】
いくつかの実施形態において、センサシステム４００は、近くの又は侵入する障害物を検出するためにロボット１００の１以上の領域又は部分に配置された（例えば、ロボット本体１１０のベース本体部分１２４ａ、１２４ｂ、１２４ｃ上に配置された）、コントローラ５００と通信する１組の又は一連の近接センサ４１０，４２０を含む。近接センサ４１０，４２０は、物体がロボット１００の所定の範囲内にあるときコントローラ５００に信号を供給する収束赤外（ＩＲ）エミッタ−センサ素子、ソナーセンサ、超音波センサ、及び／又は画像センサ（例えば３Ｄ奥行マップ画像センサ）を含むことができる。
【０１２９】
図４Ａ−４Ｃに示す例では、ロボット１００はベース部１２０の本体１２４の周囲に（例えばほぼ等間隔に）上向き視野で配置された一連のソナー型近接センサ４１０を含む。第１、第２及び第３のソナー近接センサ４１０ａ，４１０ｂ，４１０ｃが、第１（前）ベース本体部分１２４ａ又はその近傍に配置され、これらのソナー近接センサのうちの少なくとも１つは第１のベース本体部分１２４ａの半径方向最外側端１２５ａの近傍に配置される。第４、第５及び第６のソナー近接センサ４１０ｄ，４１０ｅ，４１０ｆが、第２（右）ベース本体部分１２４ｂ又はその近傍に配置され、これらのソナー近接センサのうちの少なくとも１つは第２のベース本体部分１２４ｂの半径方向最外側端１２５ｂの近傍に配置される。第７、第８及び第９のソナー近接センサ４１０ｇ，４１０ｈ，４１０ｉが、第３（左）ベース本体部分１２４ｃ又はその近傍に配置され、これらのソナー近接センサのうちの少なくとも１つは第３のベース本体部分１２４ｃの半径方向最外側端１２５ｃの近傍に配置される。この構成は少なくとも３つの検出領域を提供する。
【０１３０】
いくつかの実施形態において、ベース本体部分１２４の周囲に配置された一組のソナー近接センサ４１０（例えば４１０ａ−４１０ｉ）は上方（例えばほぼＺ方向に）を指すように配置され、必要に応じＺ軸から外側に角度をつけて、ロボット１００の周囲の検出カーテン４１２を生成する。各ソナー近接センサ４１０ａ−４１０ｉは、ソナー放射を上方に、又は少なくともロボット本体１１０の他の部分に向かわないように（例えば、ロボット本体１１０自体の移動を検出しないように）案内する覆い又は放射ガイド４１４を有することができる。放射ガイド４１４はシェル又はハーフシェル形状にすることができる。図示の例では、ベース本体部分１２４は脚部１３０を横方向に超えて延在し、ソナー近接センサ４１０（例えば４１０ａ−４１０ｉ）は脚部１３０の周囲のベース本体部分１２４上に（例えば、ベース本体部分１２４の周縁に沿って）配置される。更に、上向きソナー近接センサ４１０は脚部１３０の周囲に連続する又はほぼ連続するソナー検出カーテン４１２を生成するように間隔をあけて配置される。
【０１３１】
上方観察ソナー近接センサ４１０は主としてテーブル面などの水平面にある物体を検出する能力を提供する。これらの物体は、それらの縦横比のために、センサシステムの他のセンサ、例えばレーザスキャナ４４０又は画像センサ４５０で検出ミスされる可能性があり、従ってロボット１００に問題を引き起こし得る。ベース部１２０の周縁部に沿って配置された上方検索ソナー近接センサ４１０はこれらのタイプの物体／障害物を発見又は検出する手段を提供する。更に、ソナー近接センサ４１０は、ロボット１００の胴部１４０又はヘッド部１６０により塞がれたり、遮られたりしないように、ベース周縁部の最大幅点の近くに、僅かに外側に角度をつけて配置し、よってロボット１００自体の一部分の誤検出を生じないようにすることができる。いくつかの実施形態において、いくつかのソナー近接センサ４１０は、胴部１４０の周囲容積部がソナー近接センサ４１０の視野外になるように（上向き及び外向きに）配置され、よって装着される荷物又は付属物、例えばバスケット３６０などを自由に受け入れることができるようにする。ソナー近接センサ４１０はベース本体１２４内に埋め込んで視覚的に見えないようにするとともに障害物と衝突又は引っかかる外部突起部をなくすことができる。
【０１３２】
センサシステム４００は、後退中に障害物を検出するために、後方（例えば前進駆動方向Ｆと反対方向）に向けた１以上のソナー近接センサ４１０（例えば、後部近接センサ４１０ｊ）を含むことができる。後部ソナー近接センサ４１０ｊはその放射をソナー検出視野４１２に向けるために放射ガイド４１４を含むことができる。更に、後部ソナー近接センサ４１０ｊはロボット１００と後部ソナー近接センサ４１０ｊの視野内の検出物体との間の距離を決定するために使用することができる（例えば後退警報）。いくつかの実施形態において、後部ソナー近接センサ４１０ｊは、筐体形状に如何なる視覚的又は機能的不連続部も与えないようにベース本体部分１２４内に埋め込み装着される。
【０１３３】
図２及び図４Ｂを参照すると、いくつかの実施形態において、ロボット１００は、駆動車輪２１０ａ，２１０ｂ，２１０ｃがクリフ（例えば階段）に出くわす前にクリフ検出を可能にするために、駆動車輪２１０ａ，２１０ｂ，２１０ｃの近く又はその周囲に配置されたクリフ近接センサ４２０を含む。例えば、クリフ近接センサ４２０はベース本体部分１２４ａ−ｃの半径方向最外側縁４２２の各々又はその近傍に及びそれらの間の位置に配置することができる。いくつかの例では、クリフセンシングは赤外（ＩＲ）近接センシング又は実距離センシングを用いて実施され、放射フィールドと検出フィールドがオーバラップし、検出領域が床と予想される位置になるように互いの方向に角度が付けられた赤外エミッタ４２２及び赤外ディテクタ４２４を用いる。ＩＲ近接センシングは比較的狭い視野を有し、信頼性のために表面アルベドに依存し、表面から表面まで変化する距離精度を有することができる。その結果、多数の個別のセンサをロボット１００の周縁部に配置して、ロボット１００上の多数の点からクリフを適切に検出することができる。更に、ＩＲ近接ベースのセンサは一般に、クリフと、ロボット１００が敷居を乗り越えた直後などの安全事象とを区別することはできない。
【０１３４】
クリフ近接センサ４２０は、ロボット１００が床の立下り縁に遭遇したとき、例えば
階段に遭遇したときを検出する。コントローラ５００（制御システムを実行する）は、縁が検出されたとき、ロボット１００に走行方向の変更などの動作を取らせる行動を実行させることができる。いくつかの実施形態において、センサシステム４００は１つ以上の二次クリフセンサ（例えば、クリフ検出用に構成された他のセンサ及び必要に応じ他の検出タイプのセンサ）を含む。クリフ検出近接センサ４２０は、クリフの早期検出を提供し、実際のクリフと安全事象（敷居の乗り越えなど）とを区別するためのデータを提供するように配置することができとともに、それらの視野がロボット本体１１０の少なくとも一部分とともにロボット本体１１０から離れた領域を含むように下方に外側に位置させることができる。いくつかの実施形態において、コントローラ５００は、支持作業表面（例えば床）の縁、作業表面の縁を通過した距離の増加及び／又はロボット本体１１０と作業表面との間の距離の増大を識別し検出するクリフ検出ルーチンを実行する。このルーチンの実施によって、１）潜在的なクリフの早期検出（未知の環境においてより高速の移動速度を可能にすることができる）、２）コントローラ５００はクリフ検出近接センサ４２０からクリフ画像情報を受信して、クリフ事象が本当に安全でないかどうか又は安全に横断できるかどうか（例えば敷居の乗り越えなど）を知ることができるために、自律移動性の信頼性の増大、３）クリフの偽陽性の低減（例えば、縁検出を狭い視野を有する多数の個別のＩＲ近接センサに対して使用することによる）が可能になる。冗長化のため及び距離検出カメラが所定のタイプのクリフを確実に検出できない状態を検出するために、「落輪」センサとして配置された追加のセンサを使用することもできる。
【０１３５】
敷居及び段差検出によって、ロボット１００は乗り越え可能な敷居を横断するか高すぎる段差を回避する有効な計画を立てることができる。これは、ロボット１００が安全に横断できる、もしくはできない作業表面上の無秩序の物体に対して同じとすることができる。ロボット１００が乗り越えることができると決定する障害物又は敷居に対して、その乗り越えの滑らかさを最大にするとともに急加速による不安定性を最低にするために、それらの高さを知ることによって、ロボット１００は、スムースな乗り越えを可能にするために、必要があれば、適切に減速することが可能になる。いくつかの実施形態において、敷居及び段差検出は形状認識（例えば敷居又は電気ケーブルと靴下などの小塊との識別）と一緒に作業表面上の物体の高さに基づいて行われる。敷居は縁検出によって認識できる。コントローラ５００は、クリフ検出近接センサ４２０（又はロボット１００上の他の画像センサ）からの画像データを受信し、縁検出ルーチンを実行し、縁検出ルーチンの結果に基づく駆動コマンドを発生する。コントローラ５００は物体を特定するためにパターン認識を使用することもできる。敷居検出によってロボット１００はスムースな敷居乗り越え能力を最大にするために敷居に対してその向きを変えることができる。
【０１３６】
近接センサ４１０，４２０は単独機能とし得るが、代案として、冗長化のために１以上の接触センサ４３０（例えば衝突スイッチ）と組み合わせて機能するものとし得る。例えば、ロボット本体１１０上の１以上の接触又は衝突センサ４３０は、ロボット１００が障害物と物理的に衝突する場合を検出する。このようなセンサは、ロボット１００が障害物に衝突するときを検出するために、ロボット１００内のキャパシタンス又は物理的変位などの物理的特性を利用することができる。いくつかの実施形態において、ベース部１２０の各ベース本体部分１２４ａ，１２４ｂ，１２４ｃは、ベースシャーシ１２２に対する対応するベース本体部分１２４ａ，１２４ｂ，１２４ｃの移動を検出する、関連する接触センサ４３０（例えば容量センサ、リードスイッチなど）を有する（例えば図４Ａ参照）。例えば、各ベース本体部分１２４ａ−ｃはベースシャーシ１２２のＺ軸に対して半径方向に移動し得るため、３方向の衝突検出を提供する。
【０１３７】
再び図１−４Ｃを参照すると、いくつかの実施形態において、センサシステム４００は、ロボット本体１１０の前部に装着され、コントローラ５００と通信するレーザスキャナ４４０を含む。図示の例では、レーザスキャナ４４０（例えば前進駆動方向Ｆに沿う視野を有する）はベース部１２０の第１ベース本体部分１２４ａの上又は上方に前に向けて装着される（例えば、ロボットの駆動方向Ｆに沿って最大の撮像範囲を得るため）。更に、３角形ベース部１２０の前先端部又はその近傍にレーザスキャナを設置するということは、ロボットのベースの外角（例えば３００°）がレーザスキャナ４４０の視野４４２（例えば、〜２８５°）より大きくなり、よってベース部１２０がレーザスキャナ４４０の検出視野４４２を塞いだり遮ったりしないことを意味する。レーザスキャナ４４０は、視野を塞がないように、できるだけベース本体１２４内に埋め込み装着し、レーザスキャナがベース本体１２４から突出する部分を最小にすることができる（例えば、見た目の美しさ及び障害物との衝突を最少にするため）。
【０１３８】
レーザスキャナ４４０はロボット１００の周囲をスキャンし、コントローラ５００はレーザスキャナ４４０から受信した信号を用いて、スキャンエリアの環境マップ又は物体マップを生成する。コントローラ５００は物体マップをナビゲーション、障害物検出及び障害物回避のために使用することができる。更に、コントローラ５００はセンサシステム４００の他のセンサからのセンサ入力を物体マップの生成及び／又はナビゲーションのために使用することができる。
【０１３９】
いくつかの例では、レーザスキャナ４４０は走査ＬＩＤＡＲであり、これはエリアを一次元方向に、「主」走査ラインとして、高速に操作するレーザと、走査ラインに発生する各画素に奥行を割り当てる（走査平面内の２次元奥行ラインを返送する）ために位相差又は類似の技術を使用する飛行時間撮像素子とを使用することができる。３次元マップを発生させるために、ＬＩＤＡＲは（例えば、スキャナを縦に振動させて）第２の方向に「補助」走査を実行することができる。この機械的な走査技術は、補完されていなければ、例えば「フラッシュ」ＬＩＤＡＲ／ＬＡＤＡＲ及び「スイスレンジャー」型焦点面撮像素子センサ」、各画素における奥行又は各画素における一連の奥行を提供するために半導体スタックを用いてフル二次元マトリクスの画素に対する飛行時間の計算を可能にする技術によって補完することができる。
【０１４０】
センサシステム４００は、コントローラ５００と通信する１以上の３次元画像センサ４５０を含むことができる。３次元画像センサ４５０が制限された視野を有する場合、コントローラ５００又はセンサシステム４００は、ロバストな障害物検出／障害物回避（ＯＤＯＡ）を実行するために、３次元画像センサ４５０ａをサイドツーサイド走査式に駆動して比較的広い視野を生成する。図１−３Ｂを参照すると、いくつかの実施形態において、ロボット１００は、ロボット本体１１０の前部に装着された、前進駆動方向Ｆに沿った視野を有する走査３次元画像センサ４５０ａを含む（例えば、ロボットの駆動方向Ｆに沿って最大の撮像範囲を得るため）。走査３次元画像センサ４５０ａは主としてＯＤＯＡのために使用することができる。図示の例では、走査３次元画像センサ４５０ａは胴部１４０の段部１４２の下に又は底面１４４に装着され、例えばユーザが走査３次元画像センサ４５０ａと接触するのを防止するために、図２に示されるように、胴部１４０に埋め込まれる（例えば底面１４４と同一平面にするか底面に沿って）。走査３次元画像センサ４５０は、ＯＤＯＡ用にロボット１１０の前方に下向きの視野４５２（例えばベース部１２０又はロボット本体１１０の他の部分により遮られる）を得るために、ほぼ下向きにロボット本体１１０から離れる方向を狙うように構成することができる。走査３次元画像センサ４５０ａの胴部１４０の前縁部又はその近傍への設置によって、３次元画像センサ４５０の視野（例えば、〜２８５°）を３次元画像センサ４５０に対する胴部１４０の外部表面角度（例えば、３００°）より小さくすることができ、よって胴部１４０が走査３次元画像センサ４５０ａの検出視野４５２を塞いだり遮ったりしないようにすることができる。更に、走査３次元画像センサ４５０ａ（及び関連アクチュエータ）は、視野を塞がないように、できるだけ胴部１４０内に埋め込み装着することができる（例えば、見た目の美しさ及び障害物との衝突を最少にするためでもある）。走査３次元画像センサ４５０ａの人の気を散らせる走査運動はユーザに見えず、相互作用の邪魔にならなくなる。突出するセンサ又は機能部と異なり、埋め込み走査３次元画像センサセンサ４５０ａは、実際上胴部１４０の覆いを超えて突出する可動部分がないので、特に移動又は操作時に、環境と意図せぬ相互作用（人や障害物などとの引っかかり）を起こさなくなる。
【０１４１】
いくつかの実施形態において、センサシステム４００はベース本体部分１２４、ネック部１５０及び／又はヘッド部１６０上に配置された追加の３次元画像センサ４５０を含む。図１に示す例では、ロボット１００はベース本体部分１２４、胴部１４０及びヘッド部１６０上に３次元画像センサ４５０を含む。図３Ａに示す例では、ロボット１００は脚部１１３０、胴部１４０及びネック部１５０上に３次元画像センサ４５０を含む。他の構成も可能である。１つの３次元画像センサ（例えば、ネック部１５０上及びヘッド部１６０の上方）は人認識、ジェスチャ認識及び／又はビデオ会議のために使用できるが、別の３次元画像センサ４５０（例えば、ベース部１２０上及び／又は脚部１３０上）はナビゲーション及び／又は障害物検出及び障害物回避のために使用できる。
【０１４２】
ネック部及び／又はヘッド部に配置された前向きの３次元画像センサ４５０は、ロボット１００の周囲の人々の人物、顔及び／又はジェスチャの認識に使用できる。例えば、ヘッド部１６０の３次元画像センサ４５０からの信号入力を用いて、コントローラ５００は観察され／取り込まれたユーザの顔の３次元マップを生成し、生成された３次元マップを既知の人の顔の３次元画像と比較し、既知の３次元顔画像の１つとの一致を決定する。顔認識はユーザをロボット１００の正当なユーザとして認証するために使用することができる。更に、３次元画像センサ４５０の１つ以上をロボット１００により観察された人のジェスチャを決定するために使用することができ、必要に応じ、決定されたジェスチャ（例えば指差し、手を振る及び／又は手信号）に基づいて反応することができる。例えば、コントローラ５００は認識した特定の方向の指差しに応答して駆動コマンドを発生することができる。
【０１４３】
３次元画像センサ４５０は以下のタイプのデータ：(i)奥行マップ、(ii)反射率に基づく強度画像及び／又は(iii)標準強度画像を発生することができる。３次元画像センサ４５０は、このようなデータを、画像パターン照合、光源から放射されターゲットから反射される光の飛行時間及び／又は位相遅延シフトの測定によって得ることができる。
【０１４４】
いくつかの実施形態において、（例えば、ロボットコントローラ５００の）プロセッサで実行可能な推論又は制御ソフトウェアは、センサシステム４００により発生される様々なデータタイプを用いて実行されるアルゴリズムの組み合わせを使用する。推論ソフトウェアは、センサシステム４００から収集されたデータを処理し、ロボット１００が例えば障害物と衝突することなく移動し得るナビゲーション判断を行うデータを出力する。ロボットの周囲の画像データを時間とともに蓄積することによって、推論ソフトウェアは次に３次元画像センサ４５０の奥行測定値を向上させるために検出画像の選択した区分に有効な方法を適用することができる。これは適切な時間的及び空間的平均化技術の使用を含むことができる。
【０１４５】
ロボット衝突回避移動の信頼性は、(i)時間とともに高度の推論により構築される信頼性レベル、(ii)３つの主なタイプの分析用データ：(a)奥行画像、(b)アクティブ照明画像及び(c)周囲照明画像：を蓄積する奥行知覚センサ、に基づくものとし得る。異なるタイプのデータを認識するアルゴリズムを奥行知覚画像センサ４５０により得られた画像の各々に実行することができる。集計データはこれらの種類のデータの１つのみを使用するシステムと比較して信頼性レベルを向上させることができる。
【０１４６】
３次元画像センサ４５０は、ロボット１００の周囲の１つ以上の物体を含むシーン（例えば部屋又は作業領域のセンサビュー部分）からの奥行及び輝度データを得ることができる。コントローラ５００は、シーンから反射され捕獲された光に基づいて物体の占有データを決定するように構成することができる。更に、コントローラ５００は、いくつかの例では、障害物（即ちシーン内の物体）を避けるために占有データの少なくとも一部分に基づいて駆動システム２００へ駆動コマンドを出す。３次元画像センサ４５０は、コントローラ５００がロボット１００をシーン内の物体と衝突しないようにナビゲートするためのリアルタイム決定を行うために、奥行画像シーンを繰り返しキャプチャすることができる。例えば、奥行画像データが３次元画像センサ４５０により得られる速度又は周波数は３次元画像センサ４５０のシャッター速度により制御することができる。加えて、コントローラ５００は、（例えば、センサシステム４００の近接センサ４１０，４２０などの他のセンサコンポーネント）から、近くの物体又は障害物をコントローラ５００に通知するイベントトリガを受信することができる。コントローラ５００は、イベントトリガに応答して、３次元画像センサ４５０に、奥行画像がキャプチャされ、占有情報が得られる周波数を増大させることができる。
【０１４７】
いくつかの実施形態において、ロボットはロボット１００の周囲エリアの音響映像用のソナースキャナ４６０を含む。図１及び図２に示す例では、ソナースキャナ４６０はベース部１２０の本体部分１２４の前部に配置される。
【０１４８】
図１−３Ｂを参照すると、いくつかの実施形態において、ロボット１００は冗長センシングのためにレーザスキャナ又はレーザ距離計４４０を使用するとともに、安全のために後ろ向きソナー近接センサ４１０ｊを使用し、両センサとも大地Ｇに平行に向けられている。ロボット１００は、ロボット１００の周囲の環境のロバストなセンシングを提供するために、第１及び第２の３次元画像センサ４５０ａ，４５０ｂ（奥行カメラ）を含むことができる。第１の３次元画像センサ４５０ａは胴部１４０に、固定の角度で下向きに大地Ｇに向けて装着される。第１の３次元画像センサ４５０ａを下向きに角度を付けることによって、ロボット１００はロボット１００のすぐ前又はロボット１００に隣接する領域において強いセンサ範囲を有し、これはロボット１００の前方向の小距離走行に該当する。後ろ向きセンサ４１０ｊは、ロボットの後退中の物体検出を提供する。ロボット１００が常に後退する場合には、ロボット１００のすぐ後又はこれに隣接する領域に強いセンサ範囲を提供するために、ロボット１００は後方下向きの第３の３Ｄ画像センサ４５０を含むことができる。
【０１４９】
第２の３次元画像センサ４５０ｂはヘッド部１６０に装着され、このセンサはネック部１５０でパン及びチルトすることができる。第２の３次元画像センサ４５０ｂは、ロボットがどこへ向かっているかを人間オペレータが見ることができるために、リモートドライブに有用とし得る。ネック部１５０により、オペレータは第２の３次元画像センサ４５０ｂをチルト及び／又はパンさせて近くの物体も遠くの物体も見ることができる。第２の３次元画像センサ４５０ｂをパンさせると、関連する水平視野が増大する。高速走行中に、ロボット１００は第２の３次元画像センサ４５０ｂを僅かに下に傾けて、３次元画像センサ４５０ａ，４５０ｂの総合又は合成視野を増大させ、障害物を避けるための十分な時間をロボット１００に与えることができる（一般に高い速度ほど障害物に対する反応時間が短くなるため）。低速時において、ロボット１００は第２の３次元画像センサ４５０ｂを上向き又は大地Ｇにほぼ平行になるように傾けて、ロボット１００がついて行かなければならない人を追跡することができる。更に、比較的低い速度でドライブ中に、ロボット１００は第２の３次元画像センサ４５０ｂをパンさせてロボット１００の周囲のその視野を増大させることができる。第１の３次元画像センサ４５０ａは、ロボットのドライブ中その知覚範囲を広げるために固定のままにする（例えばベース部１２０に対して動かさない）ことができる。加えて及び／又は代わりに、第１の３次元画像センサ４５０ａは、ロボットのドライブ中に、ロボットの周囲に潜在する障害物を検出するために、低速度でスキャンすることができる。いくつかの例では、第１の３次元画像センサ４５０ａの高さは、第１の３次元センサ４５０ａの視野を最適にするために、例えばＺリフトを使用して上方へと調整することができる。
【０１５０】
いくつかの実施形態において、３次元画像センサ４５０の少なくとも１つは、ロボット１００上に、地上１又は２フィートより大きな高さ（又は地上約１又は２フィートの高さ）に配置され、床面を含む空間ボリュームからのポイントクラウド（点群）を（全方向駆動システム２００を介して）ロボットの移動方向に取得するように向けられたボリューメトリックポイントクラウド撮像装置（例えばスペックル又は飛行時間カメラ）とすることができる。図１及び図３に示す例では、第１の３次元画像センサ４５０ａは、（例えば障害物検出及び障害物回避のために）ドライブ中に床を含むボリュームの画像（例えばボリューメトリックポイントクラウド）を取得するためにベース部１２０に、地上１又は２フィートより大きい高さに配置することができる。第２の３次元画像センサ４５０ｂは、ロボット１００に隣接する空間ボリュームからスケルタル認識及び定義ポイントクラウドを得るために、ヘッド部１６０に（例えば地上約３又は４フィートより大きい高さに）装着される。コントローラ５００は、取得したボリューメトリックポイントクラウドのデータを分析するためにスケルタル／ディスプレイ認識ソフトウェアを実行する。
【０１５１】
図３Ａ−４Ａを参照すると、センサシステム４００は、ロボット１００の全体重心ＣＧＲに関するロボット１００の慣性モーメントを測定及び監視するために、コントローラ５００と通信する慣性測定ユニット（ＩＭＵ）４７０を含むことができる。
【０１５２】
コントローラ５００は、ＩＭＵ４７０からフィードバックされる、通常の無加重動作に対応する閾値信号からの偏差を監視する。例えば、ロボットが直立位置から外れ始める場合、それは紐に引っかかったか、さもなければ妨害されたか、或いは誰かが急に重い荷物を付加したかである。これらの場合には、ロボット１００の安全な動作を確保するために、緊急動作（以下に限定されないが、回避行動、再校正及び／又は音響／視覚警報など）をとる必要がある。
【０１５３】
ロボット１００は人間環境内で動作するため、人間と相互作用し、（ロボットの制約には関係なく）人間用に設計された空間で動作する。ロボット１００は、例えばカクテルパーティや忙しい病院などの混雑した環境、又は制約された環境、又は非常に動的な環境ではそのドライブ速度及び加速度を制限することができる。しかし、ロボット１００は、長い空の廊下などのように比較的高いドライブ速度でも安全である状況に出合うことがあるが、それでもやはり、何かがロボットの移動路を横切ったときなどのように急に減速することができる。
【０１５４】
停止からの加速時に、コントローラ５００は、ロボットが倒れるのを防止するために、ロボット１００の全体重心ＣＧＲからの慣性モーメントを考慮に入れることができる。コントローラ５００は、その姿勢のモデル（現在の慣性モーメントを含む）を使用することができる。ペイロードを支持しているとき、コントローラ５００は全体重心ＣＧＲに影響を与える負荷を測定し、ロボット慣性モーメントの動きを監視することができる。例えば、胴部１４０及び／又はネック部１５０は歪みを測定するために歪み計を含むことができる。これが不可能である場合には、安全限界を実験的に決定するために、コントローラ５００は駆動車輪２１０にテストトルクコマンドを供給し、ＩＭＵ４７０を用いてロボットの実際の直線及び角度加速度を測定することができる。
【０１５５】
急減速中、第２及び第３駆動車輪２１０ｂ，２１０ｃへの命令された負荷は減少されるが、第１の駆動車輪２１０ａ（前輪）は前進駆動方向においてスリップし、ロボット１００を支持する。第２及び第３の駆動車輪２１０ｂ，２１０ｃ（後輪）の負荷が非対称である場合、ロボット１００は「ヨー」運動し、動的安定性を低減する。このヨー運動を検出し、第２及び第３の駆動車輪２１０ｂ，２１０ｃにロボット１０を再設定するように命令するためにＩＭＵ４７０（例えばジャイロ）を使用することができる。
【０１５６】
図５を参照すると、いくつかの実施形態において、コントローラ５００は制御システム５１０を実行し、制御システム５１０は行動システム５１０ａ及び制御調停システム５１０ｂを含む。制御調停システム５１０ｂは、アプリケーション５２０を制御システム５１０に動的に加えること及び除去することを許可し、各アプリケーション５２０がロボット１００を他のアプリケーション５２０について知る必要なしに制御することを容易にする。換言すれば、制御調停システム５１０ｂはアプリケーション５２０とロボット１００のリソース５３０との間の簡単な優先制御機構を提供する。リソース５３０は、コントローラ５００と通信する駆動システム２００、センサシステム４００、及び／又は任意のペイロード又は制御可能装置を含むことができる。
【０１５７】
アプリケーション５２０は、ロボットのメモリに格納して、又はロボットと通信して、ロボット（例えばプロセッサ）で実行する同時に、ロボット１００を制御することができる。アプリケーション５２０は行動システム５１０ａの各行動５１２にアクセスすることができる。独立に分散配置されるアプリケーション５２０は実行時に動的に組み合わされ、ロボット１００のロボットリソース５３０（例えば、駆動システム２００、腕、頭部など）を共有する。低レベルのポリシーがランタイム時にアプリケーション５２０の間でのロボットリソース５３０の動的共有のために実行される。このポリシーは、どのアプリケーションが当該アプリケーションにより要求されるロボットリソース５３０の制御を有するかを決定する（例えば、アプリケーション５２０の中での優先階層を生成する）。アプリケーション５２０は動的に開始及び停止することができ、互いに独立に完全に実行することができる。制御システム５１０は互いに助け合うように組み合わせることができる複雑な行動５１２を許容することもできる。
【０１５８】
制御調停システム５１０ｂは１以上のリソースコントローラ５４０、ロボットマネージャ５５０、及び１以上の制御アービター５６０を含む。これらのコンポーネントは共通のプロセッサ又はコンピュータ内にある必要はなく、任意の特定の順序で開始する必要もない。リソースコントローラ５４０はアプリケーション５２０のための制御調停システム５１０に対するインタフェースを提供する。すべてのアプリケーションに対してこのコンポーネントのインスタンスが存在する。リソースコントローラ５４０は認証、分配されたリソース制御アービター、コマンドバッファリングなどの複雑さを要約しカプセル化する。ロボットマネージャ５５０は、どのアプリケーション５２０が任意の特定の時間に任意のロボットリソース５３０の排他的制御を有するかを制御することによって、アプリケーション５２０の優先順位付けを調整する。これは情報の中心コーディネータであるため、１つのロボットにつきロボットマネージャ５５０の１つのインスタンスが存在するだけである。ロボットマネージャ５５０は、リソースコントローラ５４０の線形優先順位を有する優先順位ポリシーを実行し、ハードウェア制御を提供するリソース制御アービター５６０の追跡を維持する。制御アービター５６０は、すべてのアプリケーション５２０からのコマンドを受信し、アプリケーションのプロパティに基づいて単一コマンドを発生し、それを関連するリソース５３０に公表する。制御アービター５６０はその関連するリソース５３０からフィードバックされるステートも受信し、それをアプリケーション５２０まで返送する。ロボットリソース５３０は機能モジュール（例えば、アクチュエータ、駆動システム、及びそのグループ）と１つ以上のハードウェアコントローラとのネットワークとすることができる。コントローラアービター５６０のコマンドはリソース５３０に固有で、固有の動作を実行する。
【０１５９】
コントローラ５００上で実行可能なダイナミックモデル５７０は、現在のロボット状態のアクセスのために、重心（ＣＧ）、慣性モーメント、及びロボット１００の種々の部分の慣性の外積を計算するように構成することができる。ダイナミックモデル５７０は、更に、これらの部分の形状、重量及び／又は慣性モーメントをモデル化することができる。いくつかの例では、ダイナミックモデル５７０はＩＭＵ４７０と通信し、またロボット１００上に配置され、ロボット１００の種々の重心を計算するためにコントローラ５００と通信するコンポーネント（例えば加速度計及び／又はジャイロ）と通信する。ダイナミックモデル５７０は、ロボット１００及びそのコンポーネントの動作エンベロープを決定するために、他のプロセッサ５２０又は行動５１２と一緒に、コントローラ５００によって使用することができる。
【０１６０】
各アプリケーション５２０は動作選択エンジン５８０及びリソースコントローラ５４０を有し、１以上の行動５１２が動作選択エンジン５８０に接続され、１以上の動作モデル５９０が動作選択エンジン５８０に接続される。行動システム５１０ａは予測モデルを提供するとともに、行動５１２が協力してロボット動作の可能な結果を評価することによってロボット動作を決定することができる。いくつかの例では、行動５１２は、階層状のステートフルな評価機能を提供するプラグインコンポーネントであり、このコンポーネントはアプリオリ限界及び情報を有する多数のソースからの知覚フィードバックをロボットの許容動作に関する評価フィードバックに結合する。（例えば、アプリケーション２０の内部又は外部に存在する）行動５１２はアプリケーション５２０にプラグインできるため、それらは、アプリケーション５２０を変更する必要なしに、また制御システム５１０の他の部分を必要とすることなしに、除去及び付加することができる。各行動５１２はスタンドアロンポリシーである。行動５１２をよりパワフルにするために、多数の行動５１２の出力を複雑な組み合わせ機能を得るために別の行動の入力に一緒に加えることができる。行動５１２はロボット１００の全認知範囲の管理可能な部分を実現することを目的としている。
【０１６１】
動作選択エンジン５８０は制御システム５１０の調整素子であり、すべての行動５１２の入力が与えられると、最良の動作をサーチする高速の最適動作選択サイクル（予測／訂正サイクル）を実行する。動作選択エンジン５８０は指名、動作選択サーチ及び完了の３つのフェーズを有する。指名フェーズにおいて、各行動５１２は、動作選択サイクルが開始したことを知らされ、サイクル開始時間、現在状態及びロボットアクチュエータスペースの限界が与えられる。内部ポリシー又は外部入力に基づいて、各行動５１２はコントローラの動作選択サイクルに参加したいかどうかを決定する。このフェーズ中に、アクティブな行動の原型（primitives）のリストが生成され、その入力はロボット１００で実行されるコマンドの選択に影響を与える。
【０１６２】
動作選択サーチフェーズにおいて、動作選択エンジン５８０は使用可能動作のスペース（動作空間ともいう）からの実行可能な結果を発生する。動作選択エンジン５８０は、実行可能なコマンド（限界内）と、各コマンドの動作の将来の計画対象期間における異なる時間ステップでのシミュレーションの結果としての対応する結果とを含むプールを提供するために、動作モデル５９０を使用する。アプリケーション選択エンジン５８０は、行動５１２の結果評価に基づいて好ましい結果を計算し、対応するコマンドを制御調停システム５１０Ｂに送り、選択されたコマンドを動作モデル５９０にフィードバックとして通知する。
【０１６３】
完了フェーズにおいて、最高スコアの協力結果に対応するコマンドは総合コマンドとして結合され、このコマンドがロボットリソース５３０で実行するためにリソースコントローラ５４０に提示される。最高結果はフィードバックとしてアクティブ行動５１２に提供され、将来の評価サイクルに使用される。
【０１６４】
センサシステム４００からの受信センサ信号は１以上の行動５１２との相互作用により動作を実行させることができる。例えば、制御システム５１０を使用すると、コントローラ５００は各ロボットコンポーネント（例えばモータ又はアクチュエータ）に対する動作（又は移動コマンド）を対応する動作空間（例えば、当該コンポーネントに対する一群の可能な動作又は移動）から選択して、自身との衝突及びロボット１００の周囲の任意の物体との衝突を回避する各ロボットコンポーネントの調整された移動を効率的に達成する。コントローラ５００は調整されたコマンドをロボットネットワーク、例えば２０１０年２月１６日に出願された米国特許出願第６１／３０５，０６９号に記載されているように、イーサＩＯネットワーク、を介して発行することができる。この米国出願の前内容は参照することにより本明細書に組み込まれる。
【０１６５】
図６Ａは、ブリッジ６０２と通信する１以上のテレプレゼンスロボット１００を有する模範的なロボットシステム６００の概略図を示し、ブリッジ６０２はローカルエンドポイントサーバ６０４ａ及びリモートエンドポイントサーバ６０４ｂ（例えばクラウドコンピューティングサーバ７２０(図７)）と通信する。ローカルロボットエンドポイントサーバ６０４ａはローカル技術者コンピューティングデバイス６０６と通信し、リモートエンドポイントサーバ６０４ｂはリモートオペレータコンピューティングデバイス６０８と通信する。
【０１６６】
図２及び図４Ｃを参照すると、いくつかの実施形態において、ロボット１００は多数のアンテナを含む。図示の例では、ロボット１００は、ベース部１２０上に配置された第１のアンテナ４９０ａ及び第２のアンテナ４０９ｂを含む（ただし、これらのアンテナはロボット１００の、例えば脚部１３０、胴部１４０、ネック部１５０及び／又はヘッド部１６０などの他の部分に配置することもできる）。多数のアンテナの使用はロバストな信号の受信及び送信をもたらす。多数のアンテナの使用はロボット１００にマルチ入力及びマルチ出力（ＭＩＭＯ）を提供し、これは通信性能を向上させるために送信機及び／又は受信機に対して多数のアンテナを使用するものである。ＭＩＭＯは、追加の帯域幅又は送信電力を必要とすることなく、データスループット及びリンク範囲の著しい増加をもたらす。これはより高いスペクトル効率（帯域幅の１秒当たり及び１ヘルツ当たりのビット数がより多い）及びリンク信頼性又はダイバーシティ（フェーディングの減少）を達成する。これらの特性のために、ＭＩＭＯはＩＥＥＥ８０２．１１ｎ（Ｗｉｆｉ（登録商標））、４Ｇ、３ＧＰＰ−ＬＴＥ（Long Term Evolution）、ＷｉＭＡＸ（登録商標）及びＨＳＰＡ＋などの現代の無線通信標準の重要な部分である。更に、ロボット１００は周囲の他の電子デバイスのためのＷｉ−Ｆｉブリッジ、ハブ又はホットスポットとして作用し得る。ロボット１００の移動性及びＭＩＭＯの使用は、ロボットを比較的信頼可能なＷＩ−Ｆｉブリッジ６０２として作用させることができる。
【０１６７】
図６Ａ及び６Ｂを参照すると、テレオペレーションソフトウェアアプリケーション６０１は、ロボットコントローラ５００、ローカルロボットエンドポイントサーバ６０４ａ、リモートエンドポイントサーバ６０４ｂ、ローカル技術者コンピューティングデバイス６０６及びリモートオペレータコンピューティングデバイス６０８の少なくとも１つの上で実行する。テレオペレーションソフトウェアアプリケーション６０１は、１以上のユーザがロボット１００のテレプレゼンス機能を介してロボット１００と相互作用する（例えば、ロボット１００を駆動する）こと及び／又はロボット１００の近くの他の人又は物体と遠隔的に相互作用することを可能にする。
【０１６８】
図６Ｃは、ロボット１００のナビゲーション、テレプレゼンス及び／又は他の特徴を制御するために、ウェブパッド３１０のタッチスクリーン３１２及び／又はリモートオペレータコンピューティングデバイス６０８などのディスプレイに表示し得るテレオペレーションソフトウェアアプリケーション６０１の模範的なユーザインタフェース６０５の概略図を提示する。ユーザインタフェース６０５は、患者６１４のビデオフィードのようなリモートビュー６１２を表示するリモートビデオフィードウィンドウ６１０を含む。ビデオフィードはロボット１００上のカメラ３２０，４５０のうちの１つにより生成され得る。ユーザインタフェース６０５は、ロボット１００が動作しているローカルエリアのマップ６２２を有する平面図マップウィンドウ６２０を表示し得る。図示の例では、平面図マップウィンドウ６２０に表示されたマップ６２２は二次元のトップダウンマップ６２２ａ（図６Ｄ）であるが、他のタイプのマップも可能である。ユーザインタフェース６０５は（例えばロボット１００から遠く離れた）ユーザのビデオフィードのようなローカルビュー６３２を表示するローカルビデオウィンドウ６３０も含むことができる。ローカルビデオウィンドウ６３０に表示されるビデオフィードはロボット１００に送信し、ロボット１００上のウェブパッド３１０などのディスプレイ装置を使って患者６１４に表示させることができる。
【０１６９】
ダッシュボード６４０は、ロボット１００の方向に関する情報、ロボットの電池残量の指示、無線データ信号強度の指示及び／又はネットワーク品質の指示を提供し得る。ロボット１００の方向は、ロボット１００のヘッド部１６０の胴部１４０又はベース部１２０に対する方向を表示するアイコン６４２により指示し得る。このような指示はユーザがロボット１００を興味のある物を見る方向に向けるのに役立つ。ロボットヘッド部１６０の運動範囲は制限できる。従って、いくつかの実施形態はヘッド部１６０の回転位置の指示及びヘッド部１６０の回転範囲を表示することができる。
【０１７０】
メディアコントロール６４７は、種々のメディアを使って患者６１４と相互作用し、ユーザと患者６１４の相互作用を記録するメディア情報を取得し格納することをユーザに可能にする。メディアコントロール６４７は、例えば患者６１４に病状及び医療処置について教えるために使用できるオーディオ及び／又はビデオクリップの再生をユーザに可能にする。様々な状態を記録するためにロボット１００のカメラ３２０，４５０を用いて静止画を取得することもできる。更に、ロボット１００は、患者６１４とユーザの相互作用を記録するオーディオ（例えばマイクロフォン３３０を用いる）又はビデオ（例えばビデオ（例えばカメラ３２０を用いる）を取得し、必要に応じ、取得したオーディオ／ビデオをコントローラ５００のメモリに格納する、及び／又は、取得したオーディオ／ビデオをリモート装置又はクラウドサービスに送信することができる。
【０１７１】
いくつかの実施形態において、メディアコントロール６４７はユーザが一時的な接続性の問題を管理することを可能にする。例えば、セッションの予期せぬ切断時に、ビデオ記録を開始させることができる。ロボット１００はビデオを記録し続け、それをローカルメモリ、例えばコントローラ５００のメモリに保存することができる。予期せぬ切断時に、「セッション終了−ビデオ記録を続けます・・・」などのメッセージをロボットにより表示させることができる。ボタンの下に、「記録停止」のキャプションを表示できる。ロボットのそばにいるナースは（例えばタッチスクリーン３１２上の）「記録停止」ボタンにタッチし、ローカル記録を終了させることができる。さもなければ、記録は指定された時間の間続くことになる。同じユーザが指定の時間インターバル中にロボット１００に再ログインする場合、リモートステーション上の記録ボタンは記録が進行中であることを示すことができる。ロボットのローカル記録が終了すると、そのビデオファイルを、切断されたユーザにアクセス可能なリモートステーション又は他の場所へ送信開始することができる。従って、ユーザはセッションの中断中に生じた事象を知ることができる。
【０１７２】
図６Ｃに示す例では、リモートビデオフィードウィンドウ６１０は表示域の比較的大きな部分を占有する。ユーザインタフェース６０５は、６４０×４８０画素解像度のリモートビデオフィードウィンドウ６１０、３２０×２４０画素解像度のローカルビデオウィンドウ６３０及び５３０×２００画素解像度の平面図マップウィンドウ６２０を有することができる。従って、このビューは、ユーザが患者６１４と通信するとき及び／又はユーザがロボット１００を手動的に駆動するときに、最もふさわしいものとし得る。図６Ｃに示すデフォルトユーザインタフェースウィンドウ６０５ａのレイアウトは、平面図マップウィンドウ６２０の内容をリモートビデオフィードウィンドウ６１０の内容と交換することがユーザに可能である。例えばマップウィンドウ６２０の上をダブルクリックすることによってビューを交換することができる。両ウィンドウをもとに戻す交換はリモートビデオフィードウィンドウ６１０の上をダブルクリックすることによって行うことができる。
【０１７３】
ユーザにより実行される仕事にふさわしい別のスクリーンレイアウトをユーザに表示することができる。図６Ｄに示す例では、半自律航法を用いて１つの位置から別の位置へロボット１０を移動させることを予想して、平面図マップウィンドウ６２０のサイズが増大されている。例えば、図６Ｃに示すユーザインタフェース６０５，６０５ａは患者インタラクション用のデフォルト状態とすることができ、図６Ｄに示すユーザインタフェース６０５，６０５ｂはロボットナビゲーション用のデフォルト状態とすることができる。
【０１７４】
ユーザインタフェースのマップビュー切り替えボタン６４５によって、ユーザは比較的大きなマップウィンドウ６２０を含む別のユーザインタフェース６０５ｂを呼び出すことができる。例えば、図６Ｄに示すユーザインタフェース６０５ｂは主として、ロボット１００を所望の目的地まで手動的に駆動するため又は自律的に航行させるために使用することができる。マップビュー切り替えボタン６４５をクリックすると、ユーザは再びデフォルトユーザインタフェース６０５ａに戻され、これは診察を積極的に行うときに使用できる。従って、ユーザは平面図マップウィンドウ６２０を必要に応じ強調又は減強調（例えば最大化又は最小化）することができる。代替ユーザインタフェース６０５ｂに示されるウィンドウのいくつか、例えばリモートビデオフィードウィンドウ６１０及びローカルビデオフィードウィンドウ６３０も表示される。いくつかの例では、平面図マップウィンドウ６２０は８８０×７００画素解像度で、リモートビデオフィードウィドウ６１０は３２０×２４０画素解像度で、及びローカルビデオフィードウィンドウ６３０は１６０×１２０画素解像度で表示されるものとし得る。
【０１７５】
図６Ｄを参照すると、平面図マップウィンドウ６２０はローカル環境内のロボット１００の位置を示すロボット位置アイコン６５０を提供することができる。ユーザは表示されたマップ６２２上の１点をクリック又は１点にタッチして、ロボットを選択した点まで半自律的に又は自律的に航行させることができる。いくつかの例では、ユーザはカーソルを平面図マップウィンドウ６２０の上に置きながらマウスホイールを使って、又はタッチスクリーン３１２に表示される場合にはジェスチャにタッチすることにより、ズームイン及びズームアウトすることができる。
【０１７６】
同時自己位置推定及び地図作成（Simultaneous localization and mapping: SLAM）技術は、ローカル環境のマップを作成しロボット１００をそのマップの上に置くために、レーザ距離センサ、オドメータ、音響距離計、又はそれらのすべてを使用することができる。ロボット１００が環境内を横断中に（例えばカメラ３２０又は３次元画像センサ４５０で）記録した画像は内部データベース（例えばコントローラ５００）及び／又はリモートデータベース（例えばクラウドデバイス）に格納することができる。ロボット１００がデータベース内の現在の画像を再取得する際、アルゴリズムはロボットの現在位置を、ランドマークがデータベースに最初に入力されたときに記録された位置にリセットする。この方法は、ホイールエンコーダオドメトリの固有のドリフトに対抗するのに役立つ。また、システムはＲＦＩＤチップ及び／又は無線アクセスポイントの三角測量を利用することができる。更に、特定の部屋の名前または識別番号をマップ上の位置と関連させることができる。画像データは時間とともに蓄積し得る。ロボット１００は、コストの節約又はスペースの節約として、画像データの記憶及び処理のためにそれぞれリモートデータ記憶及び／又はリモート処理を利用することができる。例えば、ＲＦＩＤリーダは、ロボットの現在位置を識別するために、平面図マップ上の座標と関連するＲＦＩＤチップを検出することができる。「ＲＦＩＤチップ」は、当業者に知られているように、ＲＦＩＤデバイス又はＲＦＩＤタグを含む。ＲＦＩＤチップは、パッシブ、アクティブ、又は電池補助型パッシブ（ＢＡＰ）ＲＦＩＤチップとして具体化し得る。
【０１７７】
図７は、模範的なロボットシステムのアーキテクチャ７００の概略図を提示し、このロボットシステムは、ロボット１００（又はその一部分、例えばコントローラ５００又は駆動システム２００）、コンピューティングデバイス３１０（例えばヘッド部１６０に取り外し可能に又は固定的に取り付けられる）、クラウド７２０（即ちクラウドコンピューティングデバイス）及びポータル７３０を含むことができる。コンピューティングデバイス３１０は１以上のロボットアプリケーション７１０を実行することができ、これらのアプリケーションはセイキュリティ、メディシンコンプライアンス、テレプレゼンス、行動指導、ソーシャルネットワーキング、アクティブアラーム、ホームマネジメントなどのためのソフトウェアアプリケーション（例えばメモリに格納され、プロセッサで実行される）を含むことができる。コンピューティングデバイス３１０は、通信機能（例えば、セキュアな無線接続及び／又は移動体通信）、洗練されたアプリケーション開発ツール、音声認識、及び個人又は物体認識機能を提供する。いくつかの例では、コンピューティングデバイス３１０はインタラクション／ＣＭＯＳフィーチャードオペレーティングシステム、例えばグーグル社により提供されているアンドロイド（登録商標）、アップル社により提供されているｉＯＳ（登録商標）、又は他のスマートフォンオペレーティングシステム又はＲＳＳ  Ａ２（登録商標）などの専用ロボットオペレーティングシステムを利用することができる。
【０１７８】
クラウド７２０はクラウドコンピューティング及び／又はクラウドストレージ機能を提供する。クラウドコンピューティングはインターネットベースコンピューティングを提供することができ、従って共有サーバが要求に応じてリソース、ソフトウェア及びデータをコンピューティング及び他のデバイスに提供することができる。例えば、クラウド７２０は、少なくとも１つのサーバコンピューティングデバイスを含むクラウドコンピューティングサービスとすることができ、このサーバコンピューティングデバイスはその上でインスタンス化されたサーバ仮想マシン経由でサービス要約層及びハイパーテキスト転送プロトコルラッパーを含むことができる。このサーバコンピューティングデバイスは、ＨＴＴＰリクエストを解析し、ＨＴＴＰレスポンスを送信するように構成することができる。クラウドコンピューティングは、インターネット及び中央リモートサーバを用いてデータ及びアプリケーションを維持する技術とすることができる。クラウドコンピューティングは、ユーザに、インターネットアクセス付きのコンピュータで、インストールする必要なしに、アプリケーションにアクセスし利用して個人ファイルにアクセスすることを可能にする。クラウドコンピューティングは、蓄積、メモリ、処理及び帯域幅を集中させることによって相対的により効率的なコンピューティングを可能にする。クラウド７２０は、ロボットハードウェア要件を（例えばＣＰＵ及びメモリの使用を開放することによって）低減しながら、スケーラブルでオンデマンドのコンピューティングパワー、蓄積及び帯域幅を提供することができる。クラウド７２０へのロボットの接続性は、ロボット１００をベースステーションに戻す必要なしに、ロボットの動作及び使用履歴の自動データ収集を可能にする。更に、時間経過に伴う連続的なデータ収集は大量のデータをもたらし、それからマーケティング、製品開発及びサポートのためのデータを掘り出すことができる。
【０１７９】
クラウドストレージ７２２はネットワーク化されたコンピュータデータストレージのモデルとすることができ、データは一般にサードパーティによりホストされる多数の仮想サーバで格納される。ロボット１００とクラウド７２０との間の通信を提供することによって、ロボット１００で収集された情報は正当なユーザがウェブ情報ポータルを介してセキュアに見ることができる。
【０１８０】
ポータル７３０は、個人情報、ホームステータス情報及びロボットステータス情報などの情報を収集及び／又は提供するウェブベースのユーザポータルとすることができる。情報はサードパーティ情報と一体化して追加の機能性及びリソースをユーザ及び／又はロボット１００に提供することができる。ロボットシステムアーキテクチャ７００は積極的なデータ収集を容易にする。例えば、コンピューティングデバイス３１０で実行されるアプリケーション７１０は、ロボット１００及び／又は個人により実行される動作又はロボット１００により観察される環境に関するデータ及び報告を（センサシステム４００を用いて）収集することができる。
【０１８１】
「デンスデータ」対「スパースデータ」及び「デンス特徴量」対「スパース特徴量」は本明細書において空間データセットについて言及される。当業者がこのような用語の意味をどのように解釈するかを制限もしくは狭めることなく、「デンス」対「スパース」は一般に１空間表現あたりのデータポイント数が多数対少数であることを意味し、具体的には以下を意味することができる。
【０１８２】
(i)２次元画像データ又は２次元データ及び距離を含む３次元「画像」との関係において、「デンス」画像データは、ほぼ完全に画素で占められた画像データ又は原画像キャプチャからの損失及び／又はアーチファクトを殆ど生じることなく画素にラスタライズし得る画像データ（殆ど圧縮されてない又は無損失で圧縮された生画像を含む）を含むが、「スパース」画像は、量子化、サンプリング、ロッシー圧縮、ベクトル化、セグメント化（例えばサブ画素、ノード、エッジ、表面、特徴点、ボクセルに）された画像、又はさもなければ原キャプチャ画像から忠実度が実質的に低減された画像、又は画像を再表現するためにラスタライズされた画素を補間しなければならない画像である。
【０１８３】
(ii)２次元又は３次元特徴量に関して、「デンス特徴量」は、検出アプローチの解像度までほぼ無制約に集中し、検出し記録できるすべてが含まれる特徴量、及び／又はサブ画像を超える多くの特徴量（HOG、ウェーブレット）を収集するために認識した検出器で認識される特徴量とすることができる。「スパース特徴量」は特徴入力、ラテラル禁止、及び／又は特徴選択の数で意図的に制約することができ、且つ又画像内の制限された数の独立点（ハリスのコーナ、エッジ、Shi-Tomasi）を識別するために認識した検出器により認識されるものとすることができる。
【０１８４】
３次元環境構造に対して、ロボット１００は作業表面５内を操縦する間にロボット１００の周囲のシーン１０の画像、例えばデンス画像７０１を取得する。いくつかの実施形態において、ロボット１００は、デンス画像７０１を得るためにカメラ３２０及び／又は画像センサ４５０（例えば、ボリューメトリックポイントクラウド撮像デバイス）を使用する。カメラ３２０及び／又は画像センサ４５０と通信するコントローラ５００はデンス画像７０１と情報を関連付け（例えばデンス画像７０１をデータでマークアップ又はタグ付けし）、例えば加速度計データトレース、オドメトリデータ、及び／又はセンサシステム４００からの他のデータをタイムスタンプと一緒に関連付ける。いくつかの例では、ロボット１００はデンス画像７０１のストリーミングシーケンスをキャプチャし、デンス画像シーケンスにマークアップデータでマークし、マークアップされたデンス画像シーケンスを提供する。クラウドサービス７２０は受信した画像データ７０１を処理し、処理したデータセットをロボットコントローラ５００に返送し、コントローラ５００はシーン１０内の操縦に関して受信した処理済みデータセットに基づいてドライブシステム２００に駆動コマンドを発生することができる。
【０１８５】
クラウドサービス７２０は、格納画像データセット７０３をシーン１０のデンス３次元マップ又はモデル７０５へと処理するために種々のオフライン方法の１つを実行し、次いでこのデンス３次元マップ又はモデル７０５を２次元高さマップ７０７に簡略化する。このマップ７０７は各点における高さデータを有する２次元マップとすることができる（例えば２次元地形図に類似する）。いくつかの例では、２次元高さマップ７０７はＺデータとともにＸ及びＹ座標を有する地形図である。各Ｘ，Ｙ座標は１つ以上のＺ点（即ち高さデータ）を有することができる。各座標Ｘ，Ｙに対して多数のＺ点（例えば何百又は何千ものＺ点）を有し得るデンス３次元マップと異なり、２次元高さマップ７０７は各Ｘ，Ｙ座標に対し閾数（例えば２〜２０）より少数（例えば１０）のＺ点を有することができる。室内のテーブルの３次元マップから導出される２次元高さマップ７０７はテーブルに沿った画Ｘ，Ｙ座標に対してテーブルトップの底面の第１のＺ点及びテーブルトップの上面の第２のＺ点を示すことができる。この情報により、ロボット１００はテーブルトップの下を通過できるかを決定することができる。各Ｘ，Ｙ座標に対するＺ点が連続範囲を有するデンスデータセットから、検出した物体１２を表す選択数のＺ点を有するスパースデータセットまで、Ｚ点を低減することによって、ロボット１００はクラウドサービス７２０により使用される３次元マップより相当小さいサイズを有する２次元高さマップ７０７を受信する。これにより、ロボット１００は２次元高さマップ７０７をクラウドサービス７２０に使用可能なスケーラブルメモリ空間に比較して実用的でコストエフェクティブなサイズのローカルメモリに格納することができる。ロボット１００はクラウド７２０から２次元高さマップを受信し、このマップはロボット１００及び関連するコントローラ５００にシーン１０における今後の活動のためのナビゲーションデータを提供する。
【０１８６】
３次元マップデータ圧縮の追加の方法及び特徴は、IEEE/RSJ International Conference on Intelligent Robots and Systems, 2006で発表されたP. Triebel, P. Pfaff 及びW.Burgardの論文「Multi-Level Surface Maps for Outdoor Terrain Mapping and Loop Closing」に開示されており、この論文は参照することによりその全内容が本明細書に組み込まれる。 
【０１８７】
クラウド７２０はロボット１００に、さもなければロボット１００上で実用的もしくはコストエフェクティブでないリソースのオンデマンドスケーリング（例えば、計算、処理、メモリなど）を提供する。例えば、クラウド７２０は、短期間だけ使用され、その後破棄される比較的多量のデータを格納及び／又は処理するための第１のサイズにスケールアップし、その後第２のサイズにスケールダウンされるスケーラブルクラウドストレージ７２２を提供することができる。クラウド７２０は比較的複雑な計算を実行するためのコンピュータ処理能力又はさもなければロボット上で不可能かもしれない強力なアルゴリズムを提供する。コンピュータ処理能力及びメモリをスケーラブルクラウド７２０に置き換えることによって、ロボット１００は比較的低い処理能力及びメモリを有するコントローラ５００を使用することができ、従ってコストエフェクティブの問題解決が達成される。更に、ロボット１００は、非リアルタイム又は非時間依存タスクを処理及び後の読出しのためにクラウド７２０に移管して、障害物回避などのリアルタイムタスクを（コントローラ５００又はウェブパッド３１０上で）実行することができる。
【０１８８】
クラウド７２０は格納画像データセット７０３を３Ｄ表現に処理するために１以上のフィルタ（例えば、バンドル調整、ＲＡＮＳＡＣ、期待値最大化、ＳＡＭ又は他の３Ｄ構造推定アルゴリズム）を実行することができる。処理がおこなわれ、デンス３次元マップ７０５が生成されもしくは更新されると、画像データセット７０３はクラウド７２０から捨てられ、リソースを解放し、クラウド７２０をそれに応じたスケールにすることができる。その結果、クラウドベースリソースの使用により、ロボット１００はオンボードストレージを必要としないとともに、画像データセット７０３の記憶し処理するプロセッサも必要としない。クラウド７２０は処理されたナビゲーションデータ７０１又はマップ７０７（例えば、圧縮された２次元高さマップ）をロボット１００に返送することができ、ロボット１００はこのデータ又はマップを比較的簡単な位置決定及びナビゲーションプロセスのために使用することができる。
【０１８９】
３次元再構成の追加の方法及び特徴は、Fifth International Conference on three-dimensional Digital Imaging and Modeling, 2005で発表された、J. Repko及びM. Pollefeysの論文「3D Models from Extended Uncalibrated Video Sequences」に開示されており、この論文は参照することによりその全内容が本明細書に組み込まれる。
【０１９０】
図８Ａ及び８Ｂを参照すると、いくつかの環境において、ロボット１００はシーン１０及び／又は作業表面５内の物体１２の占有マップ８００を受け取るか、或いはロボットコントローラ５００が画像センサ４５０（例えば第２の３次元画像センサ４５０ｂ）から時間とともに受信した画像データ及び／又は画像深さデータに基づいて占有マップ８００を生成（及び更新）する。ＳＬＡＭは、同時に自己の現在位置を追跡しながら、未知の環境又はシーン１０内の占有マップ８００を（先験的知識なしで）作成するために、又は既知の環境内の占有マップ８００を（所与のマップからの先験的知識で）更新するために、ロボット１００で使用し得る技術である。
【０１９１】
コントローラ５００は、ユーザインタフェース６０５にマップ６２２を表示するために、占有マップ８００をテレプレゼンスソフトウェアアプリケーション６０１に送る。ユーザインタフェースマップ６２２は部分的に又は全体的に占有マップ８００から導出することができる。更に、図７も参照すると、テレプレゼンスソフトウェアアプリケーション６０１はクラウドサービス７２０を介して占有マップ８００の周期的更新を受け取ることができる。例えば、クラウドサービス７２０は、ユーザインタフェースマップ６２２を生成するために、テレプレゼンスソフトウェアアプリケーション６０１にロボット１００に関するシーン１０のデンス３次元マップ又はモデル７０５及び／又は簡略２次元高さマップ７０７を提供することができる。追加の例では、クラウドサービス７２０はデンス３次元マップ又はモデル７０５及び／又は２次元高さマップ７０７に基づくユーザインタフェースマップ６２２をテレプレゼンスソフトウェアアプリケーション６０１に提供する。
【０１９２】
図８Ａ及び８Ｂを再度参照すると、マップ８００は環境１０内の位置を決定し、環境を計画及びナビゲーション用に描画するために使用できる。マップ８００は、知覚の形から得られた情報を記録し、それを現在の知覚のセットと比較することによって現在位置の評価を支援する。位置の評価を支援するというマップ８００の利点は、現在知覚の精度及び品質が減少するにつれて増大する。マップ８００は、一般に、マップ８００が提供又は生成される時点の状態を表している。これは、マップ８００が使用される時点の状態と必ずしも一致しない。他の位置決定技術は単眼ビジュアルＳＬＡＭ（MonoＳＬＡＭ）及びMonoＳＬＡＭソリューションのために拡張カルマンフィルタ（ＥＫＦ）を用いる実施を含む。
【０１９３】
コントローラ５００はキャプチャした画像の局所的特徴を検出し記述するためにスケール不変特徴変換（ＳＩＦＴ）を実行することができる。画像内の任意の物体１２に対して、物体１２上の関心点を抽出して物体１２の「特徴記述」を提供することができる。次に、訓練画像から抽出したこの記述は、多くの他の物体を含むテスト画像内の物体１２の位置決定を試みるとき、物体１２を認識するために使用することができる。信頼できる認識を実行するために、訓練画像から抽出された特徴は、画像スケール、ノイズ及び照明が変化する状態下でも検出可能であることが重要である。このような点は通常、物体の縁（エッジ）などの高コントラスト領域に位置する。物体の認識及び検出に対して、ロボット１００は、位置、スケール及び回転に対して不変であるとともにアフィン変換（スケール、回転、せん断及び位置の変化）及び照明の変化にロバストである特徴キーポイントを検出するために、ＳＩＦＴを使用することができる。いくつかの実施形態において、ロボット１００は、（カメラ３２０及び／又は画像センサ４５０を用いて）シーン１０又は物体１２の多数の画像を（例えば、異なる角度からなど、異なる状態の下で）キャプチャする。ロボット１００は、比較、フィルタリングなどによって新しい画像を識別するために格納画像にアクセスすることができる。例えば、入力画像からＳＩＦＴ特徴を取得し、（先にキャプチャした）訓練画像から取得したＳＩＦＴ特徴データベースと照合することができる。特徴照合はユークリッド距離ベースの最近傍アルゴリズムにより行うことができる。同じ物体に属する特徴部をクラスタリングし、クラスタリングプロセスに入らない照合部は除去することにより物体の識別を向上させるために、ハフ変換を使用することができる。スピードアップロバスト特徴（ＳＵＲＦ）はロバスト画像検出器及び記述器とし得る。
【０１９４】
シーン１０（例えば、ロボット１００の周囲の環境）内のロボット１００の位置決定に加えて、ロボット１００はセンサシステム４００を用いて接続空間（例えば作業表面５）内の他の点に移動することができる。ロボット１００は、ロボット１００の隣接領域をマッピングし、相対的に近い物体１２を識別するための短距離型の画像センサ４５０ａ（例えば図１及び図３に示されるように、胴部１４０の下側に装着される）及びロボット１００の相対的に大きな領域をマッピングし相対的に遠く離れた物体１２を識別するための長距離型の画像センサ４５０ｂ（例えば、図１及び図３に示されるように、ヘッド部１６０に装着される）を含むことができる。ロボット１００は、シーン１０内の物体並びに隠蔽部１６（例えば、物体１２があるはず又はないはずであるが、現在のバンテージポイントから確認できない部分）内の既知の物体１２を識別するために占有マップ８００を使用することができる。ロボット１００はシーン１０内の隠蔽部１６又は新たな物体１２を登録し、隠蔽部又は新たな物体１２を回避して新たな物体又は隠蔽部１６内の任意の物体の位置を確認しようとすることができる。更に、占有マップ８００を使用して、ロボット１００はシーン１０内の物体１２の移動を追跡することができる。例えば、画像センサ４５０，４５０ａ，４５０ｂはシーン１０内の物体１２のマップ位置を検出しない間シーン１０内の物体１２の新しい位置を検出することができる。ロボット１００は古い物体１２の位置を隠蔽部１６として登録し、物体１２の位置を確認するために隠蔽部１６を回避しようとすることができる。ロボット１００は新しい画像深さデータを前画像深さデータ（例えばマップ８００）と比較し、シーン１０内の物体１２の位置の信頼レベルを割り当てる。シーン１０内の物体１２の位置信頼レベルは閾期間後に時間切れとすることができる。センサシステム４００は物体１２の位置信頼レベルを、センサシステム４００の各撮像サイクル後に更新することができる。いくつかの例では、隠蔽部検出期間（例えば１０秒以下）内に検出された新しい隠蔽部１６（例えば占有マップ８００から消えた物体１２）はシーン１０内に「ライブ」物体（例えば移動物体１２）を表すことができる。
【０１９５】
いくつかの実施形態において、シーン１０内の検出された第１の物体１２ａの背後に位置する興味のある第２の物体１２ｂは、シーン１０内に最初は検出されず、隠蔽部１６とされる。隠蔽部１６は、画像センサ４５０，４５０ａ，４５０ｂにより容易に検出できない又は視ることができないシーン１０内の領域とすることができる。図示の例では、ロボット１００のセンサシステム４００（又はその一部分、例えば画像センサ４５０，４５０ａ，４５０ｂ）はシーン１０を視るために視角θＶ（０度から３６０度の間の任意の角度にし得る）の視野４５２を有する。いくつかの例では、画像センサ４５０は３６０度の視角θＶに亘って全方向性の光学系を含むが、他の例では、画像センサ４５０，４５０ａ，４５０ｂは３６０度より小さい視角θＶを有する（例えば約４５度から１８０度の間）。視角θＶが３６０度より小さい例では、画像センサ４５０，４５０ａ，４５０ｂ（又はその構成要素）は３６０度の視角θＶを達成するためにロボット本体１１０に対して回転可能にすることができる。いくつかの実施形態において、画像センサ４５０，４５０ａ，４５０ｂ又はその一部分はロボット本体１１０及び／又は駆動システム２００に対して移動可能にすることができる。更に、第２の物体１２ｂを検出するために、ロボット１００をシーン１０の周りを１以上の方向に駆動する（例えば作業表面５上で平行移動又は回転させる）ことによって画像センサ４５０，４５０ａ，４５０ｂを移動させて、第２の物体１２ｂの検出を可能にするバンテージポイントを取得することができる。ロボットの移動又は画像センサ４５０，４５０ａ，４５０ｂ（又はその一部分）の独立移動は単眼問題も解決することができる。
【０１９６】
作業エリア５内の物体１２の検出位置又は追跡移動に信頼レベルを指定することができる。例えば、占有マップ８００の生成時又は更新時に、コントローラ５００はマップ８００上の各物体１２に信頼レベルを指定することができる。信頼レベルは、マップ８００上に示されるように、物体１２が作業エリア５内に実際に位置する確率に正比例させることができる。信頼レベルは、物体１２を検出するために使用するセンサの数及び種類などの複数のファクタにより決定することができる。例えば、接触センサ４３０は物体１２とのロボット１００の実際の接触を検出するため、接触センサ４３０は最も高い信頼レベルを提供することができる。画像センサ４５０は異なる信頼レベルを提供することができ、この信頼度レベルは近接センサ４３０より高くすることができる。センサシステム４００の２以上のセンサから受信されるデータは如何なる単一センサよりも相対的に高い信頼レベルを提供するために合計又は累積することができる。
【０１９７】
オドメトリは時間の経過に伴う位置の変化（移動距離）を推定するためにアクチュエータの運動データを使用する。いくつかの例では、車輪の回転数、従ってロボットの移動距離を測定するエンコーダが駆動システム２００に配置される。コントローラ５００は物体位置の信頼レベルの評価にオドメトリを使用することができる。いくつかの実施形態において、センサシステム４００はロボット１００の移動距離を検出するオドメータ及び／又は角速度センサ（例えば、ジャイロスコープ又はＩＭＵ４７０）を含む。ジャイロスコープは、角度運動量保存の原理に基づいて方位を測定又は維持する装置である。コントローラ５００は、オドメータ及び／又は角速度センサからそれぞれ受信したオドメトリ及び／又はジャイロ信号を用いて、作業エリア５内のロボット１００の位置及び／又は占有マップ８００上のロボット１００の位置を決定することができる。いくつかの例では、コントローラ５００はデッドレコニング（自己位置推定）を使用する。デッドレコニングは先に決定した位置に基いて現在位置を推定し、その位置を既知の速度又は推定速度、経過時間及びコースに基いて前進させるプロセスである。作業エリア５内のロボットの位置（例えば、オドメトリ、ジャイロスコープによる）及び作業エリア５内の１以上の物体１２の検出位置（センサシステム４００による）を知ることによって、コントローラ５００は（オドメトリ又はジャイロスコープを使用しない場合に対して）占有マップ８００上及び作業エリア５内の物体１２の相対的に高い信頼レベルの位置又は移動量を評価することができる。
【０１９８】
車輪の動きに基づくオドメトリは電気的にノイジーである。コントローラ５００はホイールオドメトリとともに又は代わりにスキャンマッチングを使用することができる。スキャンマッチングの使用は、精度の向上及び／又は計算負荷の低減をもたらすことができる。このような実施形態においては、ＬＩＤＡＲ及び／又は他のマッピング方法を用いて得られる２つの部分マップを１つのマップに併合することができる。２以上の部分マップは既知のスキャン位置を用いて併合することができる。あるいは、２以上の部分マップは部分スキャンの幾何学的特徴を利用して併合することができる。コントローラ５００は、ロボット位置を、駆動システム２００のホイールベースオドメトリと独立に、ビジュアルオドメトリによって計算するために、ロボット１００の周囲の環境又はシーン１０の画像センサ４５０からの画像データを受信することができる。ビジュアルオドメトリは、画像センサ４５０の動きを決定するためにオプティカルフローの使用を必要とする。コントローラ５００は、ホイールベースオドメトリの誤差を補正し、よって向上したマッピング及び動き制御を可能にするために、画像センサ４５０の画像データに基づいて計算された動きを使用することができる。ビジュアルオドメトリは、画像センサ４５０がキャプチャ画像内の特徴部を追跡できない場合、低テクスチャ又は低照度シーン１０で制限することができる。
【０１９９】
本明細書に記載したものと組合せ可能なオドメトリ及び撮像システムに関する他の詳細及び特徴は、米国特許第７，１５８，３１７号明細書（「被写界深度」撮像システムについて記載）及び米国特許第７，１１５，８４９号明細書（波面符号化干渉コントラスト撮像システムについて記載）に見られ、これらの特許明細書の内容は参照することによりそっくりそのまま本明細書に組み込まれる。
【０２００】
図８Ｃ及び８Ｄを参照すると、ロボットが始めてのビルで働くとき、ロボットは自律走行のために周囲を見て周るか、ビルのマップ（例えば、部屋及び廊下の位置）が与えられる必要がある。例えば、病院内では、ロボットは各患者室、ナースステーションなどの位置を知る必要がある。いくかの実施形態において、ロボット１００は図８Ｃに示すような平面図マップ８１０を受け取り、平面図マップ８１０を学習訓練することができる。例えば、ロボット１００をビル周辺を案内しながら、ロボット１００は平面図マップ８１０上の位置に対応する特定の位置を記録することができる。ロボット１００は平面図マップ８１０をウェブパッド３１０に表示することができ、ユーザがロボット１００を特定の位置に移動させたいときは、ユーザは平面図マップ８１０上のその位置に（例えば、ウェブパッド３１０のタッチスクリーン又は他のポインティングデバイスを用いて）タグ付けすることができる。ユーザはタグ付けした位置に対してルーム名又はルーム番号などのラベルを入力することを選択することができる。タグ付け時に、ロボット１００はそのタグを、平面図マップ８１０上の点及び図８Ｄに示すようなロボットマップ８２０上の対応する点とともに格納することができる。図に示すように、ロボットマップ８２０は平面図マップ８１０と同様の２次元平面図マップとすることができる。代替実施形態において、ロボットマップ８２０は平面図マップ８１０と同様の２次元平面図マップに対応する地表面を含む３次元マップとすることができる。
【０２０１】
センサシステム４００を使用すると、ロボット１００は動き回ってロボットマップ８２０を作成することができる。例えば、センサシステム４００は、ロボットがどのくらい移動したか及び移動方向に関する情報を提供することができる。ロボットマップ８２０は平面図マップ８１０に設けられた壁に加えて、固定の障害物を含み得る。ロボット１００は自律走行を行うためにロボットマップ８２０を使用することができる。ロボットマップ８２０において、「壁」は、例えば対応する廊下の壁に沿って置かれた荷箱及び／又は小部屋内部の家具などの検出物体のために完全に直線に見えない。更に、平面図マップ８１０とロボットマップ８２０との間には回転差及び解像度差が存在し得る。
【０２０２】
図８Ｅを参照すると、いくつかの実施形態において、テレプレゼンスソフトウェアアプリケーション６０１は、ユーザがタグ６６２を平面図マップ８１０上に置くことを可能にするタグ付け用ビュー６６０を表示する。平面図マップ８１０は平面図マップウィンドウ６２０により表示されるものと同一のマップとすることができ、またナビゲーション目的に内部的に使用される異なるマップとすることもできる。
【０２０３】
ユーザ（リモート端末）及び／又はロボットは、マップ位置に運転ハザード、障害物、ロボット援助などの情報の印を付けるために、平面図マップ８１０及び／又はロボットマップ８２０の特定の位置に、タグ６６２を挿入することができる。例えば、ユーザはタグ６６２を平面図マップ８１０の特定の位置にドラッグオンドロップすることができる。本明細書で説明されるように、タグは、点又は領域に関連する座標、タグの目的、タグのタイプ、タグの性質、ユーザの命令及び／又はタグに関連するロボットを指定するタグ情報、及び／又はタグに関する他の情報を含み、最後に、タグはタグに対応する２次元及び／又は３次元グラフィック又はテキストを含む注釈を含むことができる。タグ注釈の一例は、ロボットが侵入してはならないエリアを示すタグ情報を含むタグと関連する８角形の赤色停止サインである。タグ注釈は人間及び／又は機械読み取り可能にすることができる。タグ座標は、点、線、平面、表面、ボリューム（体積）、及び／又は２．５Ｄ又は混成表面とすることができる。タグは任意の数の追加のフィールド及び／又はパラメータを有するデータ構造として形成することができる。例えば、タグは所定の機能に関する時間、スケージューリング、空間座標及び／又はトリガと関連するフィールドを含む。
【０２０４】
本明細書で使用される「注釈」はテキスト、単語又は他の言語表現を含む。従って、タグ注釈は、絵、グラフィック画像、絵文字、象形文字、非言語記号を含むことができる。加えて、タグ注釈は、単語、文字、語句又は他のテキスト形式とすることができる。例えば、ナースステーションと関連するタグはナース名のテキスト表現を備えるタグ注釈を含むことができる。ナース名のテキスト表現は２次元テキストとすることができ、また３次元テキストとすることができる。また、ナース名と関連するタグ注釈はナースステーションを表す大文字のＮ又は記号（例えば、ナース帽又はナースシンボル）とすることができる。
【０２０５】
タグ６６２は、比較的良い信号受信エリアを示す無線ローカルエリアネットワーク（ＷＬＡＮ）ウォームタグ６６２ａ及び比較的弱い信号受信エリアを示すＷＬＡＮコールドタグ６６２ｂを含むことができる。ロボット１００は、この情報を利用して、１つの位置から別の位置へ、比較的弱い無線信号エリアを避けながら比較的良い無線信号受信エリアを通って移動することができる。
【０２０６】
低トラヒックタグ６６２ｃは、比較的低い通行量（人及び／又はロボット）のエリアを示す。ロボット１００は、比較的高い通行量を有するエリアよりも低い通行量を有するエリアを通る移動路を選択することができる。更に、ロボット１００が高い通行量エリアを通って移動しなければならない場合には、ロボット１００は、そのエリアを衝突しないで首尾よく移動するために、１つ以上の特定の障害物検出障害物回避（ＯＤＯＡ）を実行することができる。
【０２０７】
ドッグタグ６６２ｄはロボットドッキングステーションの位置を示す。低電池残量イベントはコントローラ５００に再充電するように信号する。ロボット１００はドッグタグ６６２ｄでタグ付けされたマップ位置を利用して再充電用のロボットドッキングステーションを位置決定する。例えば、平面図マップ８１０とロボットマップ８２０（図８Ｃ及び８Ｄ）との間の決定された歪みを適用することによって、ロボット１００はタグ付けされたレイアウトマップ位置８１４に対応するロボットマップ位置８２４を決定し、そのタグ付けされた位置へ移動し、ロボットドッキングステーションとドッキングすることができる。歪みを決定することは、同じ座標系を使用する２つのマップ間の歪みを決定することを含む。ロボットマップ８２０及び平面図マップ８１０はともに２次元とすることができ、従って歪みの決定は異なる次元間の座標変換を決定することを不要にし得る。
【０２０８】
障害物又は特別な横断領域を示すためにいくつかのタグ６６２を使用することができる。例えば、ガラスタグ６６２ｅはガラスの壁、窓又はドアの位置を示す。ロボット１００は、赤外近接センサがそれらを検出できないため、この情報を用いてガラスタグ付き構造物を回避することができる。ランプタグ６６２ｆは床斜面の位置を示す。例えば、床斜面が乗り越え可能な敷居高さより大きな垂直高さを有するかもしれないため、ロボット１０は床斜面を障害物として検出することができる。ランプタグ斜面に近づくとき、ロボット１００は斜面を首尾よく通り抜けるために斜面又は横断行動を実行することができる。タイトタグ６６２ｇは比較的狭い通路又は出入り口の位置を示す。ロボット１００は閉じ込め状態を避けるためにこのようなエリアを避けることができる。
【０２０９】
低速タグ６６２ｈは、ロボット１００は比較的ゆっくり走行する場所又はエリアを示す。この場所又はエリアは高い通行量のエリアと一致し得る。回避タグ６６２ｉは、ロボット１００を回避すべき（即ち走行してはならない）場所又はエリアを示す。いくつかの実施形態において、回避タグ６２２ｉは動作モード依存とすることができる。例えば、回避タグ６２２ｉは、ロボットが完全自律モードで動作しているときにのみ適用可能にすることができる。遠隔操作中は、回避タグ６６２ｉはロボットに事実上無視されるようにし得る。オペレーティングルームユーザインタフェース（ＯＲＵＩ）タグ６６２ｊは、病院手術室の場所及びエリアを示す。ロボット１００はこのタグを使用して手術室を見つけ、ＯＲエリアに入ってテレプレゼンス支援を提供する及び／又は特定のユーザインタフェース（例えばＯＲＵＩ）を表示することができる。訓練タグ６６２ｋは、ロボット１００をその環境１０について学習訓練させるために、廊下及び部屋などの大まかな場所をマークするために使用できる。
【０２１０】
手動エレベータタグ６６２ｌはエレベータの位置を示し、この場合、ロボット１００はユーザにロボットのエレベータの乗り降りを支援させることができる。手動エレベータネゴシエーションはリモートユーザの操縦又はロボットローカルユーザの案内に基づくものとし得る。リモートユーザの操縦に関しては、リモートユーザが（例えばジョイスティックを使って）ロボット１００に駆動コマンドを供給する。ロボットローカルユーザの案内に関しては、ロボット１００の近くの人がロボット１００に物理的にタッチし、このようなタッチに応答して、ロボット１００は移動する。本明細書に記載したものと組み合わせ可能なユーザタッチに対するロボット反応性に関する特徴は２０１１年２月２２日に出願された米国特許出願第１３．０３２，３９０号に見られ、この米国出願は参照することによりそっくりそのまま本明細書に組み込まれる。
【０２１１】
自動エレベータタグ６６２ｍは、ロボット１００が自律的に（乗り降りを）ネゴシエートすることができるエレベータの位置を示す。ロボット１００は、転倒しないようにエレベータに乗り降りするために敷居乗り越え行動５１２ｄ（図５）を実行することができる。本明細書に記載したものと組み合わせ可能なユーザタッチに対するロボット反応性に関する特徴は２０１１年１１月９日に出願されたＰＣＴ／ＵＳ１１／５９１１０号に見られ、このＰＣＴ出願は参照することによりそっくりそのまま本明細書に組み込まれる。
【０２１２】
キープライトタグ６６２ｎは、ロボット１００が右側通行すべきマップ位置又はエリアを示す。ユーザは高い通行量の廊下のような所定の廊下に沿ってこのタグを置くことができる。キープライトタグ６６２ｎに応答して、ロボット１００は、タグ付けされたエリアを走行する間、沿壁行動を実行して壁に沿って走行することができる。
【０２１３】
マップトレーニング後に、ユーザがロボット１００をある位置に送りたいとき、ユーザはラベル／タグ６２２を参照する（例えばラベル又はタグをウェブパッド３１０上に表示される位置テキストボックスに入力する）か、或いはロボット１００が平面図マップ８１０をユーザのためにウェブパッド３１０上に表示することができ、ユーザは平面図マップ８１０上の位置を選択することができる。ユーザがタグ付けされたレイアウトマップ位置８１４を選択すれば、ロボット１００はロボットマップ８２０上の対応するロボットマップ位置８２４を容易に決定することができ、選択された位置８１４への航行に進むことができる。
【０２１４】
いくつかの実施形態において、ロボットコントローラ５００は、第１のエリアの辺りを操縦中に第１の行動を実行し、次に関連するロボット行動変更子を有するタグと関連する第２のエリアの辺りを操縦中に第２の行動を実行することができる。例えば、人間追従行動５１２ｂを実行中、ロボットコントローラは、斜面タグ６６２ｆ又はオートエレベータタグ６６２ｎでタグ付けされたマップ位置８１４に到達時に、この行動の実行を停止するか、或いは敷居横断行動５１２ｄを同時に実行することができる。
【０２１５】
平面図マップ８１０上の選択された位置がタグ付けされた位置８１４でない場合には、ロボット１００はロボットマップ８２０上の対応する位置８２４を決定する。いくつかの実施形態において、ロボット１００は、現在のタグ付けされた位置を用いて、平面図マップ８１０とロボットマップ８２０との間の縮尺、原点写像及び回転を計算し、次に計算されたパラメータを適用し、（例えばアフィン変換又は座標を用いて）ロボットマップ位置を決定する。
【０２１６】
ロボットマップ８２０は平面図マップ８１０と同じ方位及び縮尺にする必要はない。更に、レイアウトマップは一定の縮尺でないかもしれず、マップエリアごとに変化する歪みを有し得る。例えば、一般にホテル、オフィス及び病院にみられる火災非難マップをスキャンして生成された平面図マップ８１０は一般に一定の縮尺で描かれておらず、マップの異なる領域で異なる縮尺を有することもある。ロボットマップ８２０は自己の誤差も有し得る。例えば、ロボットマップ８２０上の位置は車輪の回転数を距離の測定値としてカウントすることによって計算でき、床がわずかにすべりやすい場合又はコーナを曲がる場合（余分の車輪回転を生じる）、不正確な回転計算によってロボットはマップされた物体の不正確な位置決定を生じ得る。
【０２１７】
平面図マップ８１０上の所定の点８１４をロボットマップ８２０上の対応する点８２４にマッピングする方法は、現存するタグ付けされた点８１２を用いて、レイアウトマップ点８１４を含む領域内（例えば、閾半径内）の平面図８１０とロボットマップ８２０との間の（同じ２次元座標系における）局所的歪みを計算する。本方法は、更に、対応するロボットマップ点８２４を見つけるために、歪み計算をレイアウトマップ点８１４に適用する。例えば、ロボットに現在位置を要求するために、ロボットマップ８２０上の所定の点から出発して平面図マップ８１０上の対応する点を見つけたい場合には、上記の計算を逆方向に行うことができる。
【０２１８】
多種多様のタグスキーマ及びデータ構造のいずれも使用可能である。例えば、タグは、タグの目的、タグパラメータ、及びタグ属性（一般に「タグ情報」）を指定するキー値ペアの形態の属性を含むことができる。以下の表１は特定の例を提供する。
【表１】
0005905031.tif 000002
【０２１９】
領域と関連するタグは領域と関連する属性を有し、これらの属性はそれらの目的を指定するとともに、領域と関連する行動に影響を与えるパラメータを指定する。これらのキー値ペアは以下の表２の例と同様のデータ構造を用いて格納することができる。
【表２】
0005905031.tif 000003
【０２２０】
各タグに対するデータ構造はタグ座標及びタグ情報を含むことができ、タグ情報は注釈（例えば、タグの２次元及び／又は３次元グラフィック表現）を含むことができる。以下の表３はタグのデータ構造の特定の例を提供する。
【表３】
0005905031.tif 000004
【０２２１】
本明細書で記載するように、タグはマップ上の特定の点よりも領域と関連させることができる。タグ情報とタグとの間に多対１の関係が存在し得る。領域と関連するタグのデータ構造の特定の例が以下の表４に提供される。
【表４】
0005905031.tif 000005
【０２２２】
いくつかの例では、多くの物体の位置及び回転を急速に更新可能にするために、領域の形状をそれらの重心及び重心からのオフセットの成分に分割することができる。ＣＰＵリソースが可能なとき、最終座標（重心の姿勢によりマップ座標系に変換された重心に対するポリゴンポイント）のバウンディングボックスに、高速ルックアップ用のＲ＊ツリー又は同様のデータ構造を用いて幾何制約に基づいてインデックスを付けることができる。領域ポリゴンを構成するポイントは光線追跡法に基づくポイントインポリゴンテストを容易にするために時計回り（又は反時計回り）順序で格納することができる。
【０２２３】
一例として、低速ゾーンである領域を示すタグは以下の表５に与えられるようなデータ構造を有することができる。
【表５】
0005905031.tif 000006
【０２２４】
表５は低速ゾーンタグの一例を示し、本例では速度制限は領域自体と関連する値に基づいて明示的に設定される。また、領域は、ロボットがその領域を低速ゾーンと解釈し得るように定義する。例えば、以下の表６において、ロボットは交差点と定義された領域を低速ゾーンと解釈し、その速度を所定の速度に減速することができる。
【表６】
0005905031.tif 000007
【０２２５】
マップ上のポイント又は領域と関連するタグは、タグ座標、タグ情報及び多種多様の任意のタグ注釈を含むことができる。更に、タグは、上記の表１−６に示されるデータタイプを含む多種多様のデータタイプのいずれかを使用して実装することができる。タグ情報及びタグ注釈は本明細書では個別の要素を指す。しかしながら、様々な実施形態によれば、タグ注釈はタグ情報の一部分とすることができる。正確に言えば、データ構造はタグ注釈用に別個のフィルタを含んでもよいし含まなくてもよい。むしろ、情報タグ用のデータ構造のフィールドはタグ注釈を内蔵することができる。
【０２２６】
図８Ｆは、平面図マップ８１０及びロボットマップ８２０を使用して環境中を航行するようにロボット１００を動作させるための模範的なオペレーションの配列を提供する。このオペレーションの配列は、ロボット１００の環境に対応する平面図マップ８１０を受信するオペレーション８０２ｆ、ロボット１００を環境内で平面図マップ８１０上のレイアウトマップ位置８１２に移動させるオペレーション８０４ｆ、ロボット１００により生成された環境に対応するロボットマップ８２０上にロボットマップ位置８２２を記録するオペレーション８０６ｆ、記録したロボットマップ位置８２２を用いてロボットマップ８２０と平面図マップ８１０との間の歪み（２次元）を決定するオペレーション８０８ｆ、及び決定した歪みをターゲットレイアウトマップ位置８１４に適用して対応するターゲットロボットマップ位置８２４を決定するオペレーション８１０ｆを含み、それによってロボット１００を平面図マップ８１０上の選択した位置８１４に航行することが可能になる。いくつかの実施形態において、本方法は、現在のタグ付けされた位置を用いて、平面図マップ８１０とロボットマップ８２０との間の縮尺、原点写像及び回転を決定するとともに、選択したターゲットレイアウトマップ位置８１４に対応するロボットマップ位置を決定するオペレーションを含む。このオペレーション方法は、ロボットマップ位置を決定するために、決定した縮尺、原点写像及び回転にアフィン変換を適用するオペレーションを含むことができる。上記のオペレーションのいずれも、精度及び／又は効率を向上させるために任意の回数反復させることができる。例えば、環境内でロボットを移動させるオペレーション８０４ｆ及びロボットマップ位置を記録するオペレーション８０６ｆは、後続のレイアウトマップ及びロボットマップ間の変換及び計算用に十分な補正ポイントを収集するために多数回反復させることができる。
【０２２７】
これと組み合わせ可能な他の詳細及び特徴は２０１１年１１月１６日に出願されたＰＣＴ出願第ＰＣＴ／ＵＳ１１／６０９３５号に見られ、この出願は参照することによりそっくりそのまま本明細書に組み込まれる。
【０２２８】
図９Ａ及び９Ｂを参照すると、いくつかの実施形態において、テレオペレーションソフトウェアアプリケーション６０１は、マップウィンドウ６２０内に混成３次元画像マップ６２２ｂ（混成マップ）を表示する。混成マップ６２２ｂは、リモートビデオフィードウィンドウ６１０に表示されるリモートビュー６１２と、平面図マップ８１０、例えば平面図マップウィンドウ６２０内に表示される２次元のトップダウンマップ６２２ａとの組合せ（図６Ｄ）とすることができる。図９Ａは、ロボット１００が中途に位置するときにユーザが見ることができるリモートビデオビュー６１２を示す。図９Ｂは、混成マップ６２２ｂを示し、このマップには平面図マップ８１０が部分的にオーバラップされ、リモートビュー６１２に適合するように変更されていて、ロボット１００の視野内のエリアのルーム番号及び／又はルームタイプを示している。ライブビデオフィードを見ているとき、ユーザはカーソルをウィンドウ上に置き、スクロールホイールを上方へ動かし始めることができる。その遷移過程中に、（ロボット１００上のカメラ３２０からの）パースペクティブビデオビューは次第にリモートビデオビュー６１２とマップ６２２との間で遷移する。マップ６２２は遷移の開始時にパースペクティブリモートビデオビュー６１２をマップするために完全にゆがみ、次第にゆがみがなくなり、遷移の終了時にゆがみのないビューに戻る。従って、マウスのホイールを３０％アップすると、ユーザは７０％のビデオ及び３０％のマップを含むディゾルブ画像を見ることになり、ビデオ部分は３０％ゆがみがなくなるが、マップは７０％ゆがむことになる。この実施形態はパースペクティブライブリモートビデオビュー６１２とマップ６２２の両方を流動的に表す単一のビューを可能にする。
【０２２９】
混成マップ６２２ｂを提供するために、テレオペレーションソフトウェアアプリケーション６０１は、ロボットマップ８２０の記録したロボットマップ位置８２２及び対応するレイアウトマップ位置８１２を用いて、リモートビュー６１２と平面図マップ８１０との間の歪み（２次元座標と３次元座標との間の歪み）を決定することができる。いくつかの実施形態において、歪みの決定は、平面図マップ８１０とリモートビュー６１２との間の縮尺、原点写像、及び回転を決定し、例えば、アフィン変換を決定した縮尺、原点写像及び回転に適用するオペレーションを含む。２次元平面図マップと３次元ビデオフィードとの間の歪みの決定は、異なる座標系の間の座標変換を決定するオペレーションを含むことができる。
【０２３０】
図６Ｄ及び図１０Ａ−１０Ｅを参照すると、いくつかの実施形態において、ユーザインタフェース６０５は、マップウィンドウ６２０内にレンダリングされたルックアヘッドビュー６１２ａを表示させるルックアヘッドコマンド６２４、専用の個別ウィンドウ又はいくつかの他のウィンドウを提供する。ロボット１００を駆動している間、ユーザはロボット１００に物理的移動を停止させるルックアヘッドコマンド６２４を呼び出すことができ、一方、テレオペレーションソフトウェアアプリケーション６０１はレンダリングされたルックアヘッドビュー６１２ａを生成し表示し、提案されたロボットドライブ経路のパースペクティブビューを、あたかもロボット１００がその経路に沿って移動し続けるように提供する。これは、壁の位置などのマップデータを使用し、ロボット１００の仮想位置に基づいてパースペクティブ「仮想現実」ビューを構成することによって達成できる。例えば、テレプレゼンスソフトウェアアプリケーション６０１は、平面図マップ８１０、ロボットマップ８２０及び／又は格納画像データ７０１（図７）を使用してルクロックアヘッドビュー６１２ａを構成することができる。図７に示す例のようなクラウドコンピューティングサービス７２０を使用するロボットシステムにおいては、テレプレゼンスソフトウェアアプリケーション６０１はクラウドコンピューティングサービス７２０と通信し、格納画像データ７０１、３次元マップ７０５及び／又は２次元高さマップ７０７（又は代わりに２．５Ｄ混成マップ）に基づいてルックアヘッドビュー６１２ａを構成し、次いでルックアヘッドビュー６１２ａをマップウィンドウ６２０にレンダリングするために供給することができる。この実施形態は、テレプレゼンスソフトウェアアプリケーション６０１がクラウドサービスのスケーラブルコンピュータプロセッシング及びデータ蓄積能力を活用することができ（例えばクラウドサービス７２０はデバイスを処理するために弾力的にスケールアップし、その後スケールダウンすることができ）、よってテレプレゼンスソフトウェアアプリケーション６０１を実行するコンピューティングデバイスのための処理及びメモリ要件を低減することができる。
【０２３１】
図１０Ａは、テレプレゼンスソフトウェアアプリケーション６０１のリモートビデオフィードビュー６１０の模範的なリモートビュー６１２を示す。図１０Ｂは、マップウィンドウ６２０に表示される補完マップ６２２を示す。マップ６２２はロボットアイコン６５０で示されるロボット１００の現在位置をロボットカメラ３２０のカメラ視野３２２と一緒に提示する。図１０Ｃ及び１０Ｅはリモートビデオフィードウィンドウ６１０に表示される模範的なルックアヘッドビュー６１２ａを提示する。リモートビデオフィードウィンドウ６１０は、例えばリモートビデオフィードウィンドウ６１０のコーナ部に置かれたピクチャ・イン・ピクチャウィンドウ内にロボットカメラ３２０からのリモートビュー６１２を表示し続けることができる。図１０Ｄ及び１０Ｆはマップウィンドウ６２０に表示される模範的なマップ６２２を提示する。ルックアヘッドコマンドを実行している間、テレプレゼンスソフトウェアアプリケーション６０１は、ロボットのカメラ視野３２２と一緒に、ロボットの現在位置にロボットアイコン６５０をレンダリングすることができる。加えて又は代わりに、テレプレゼンスソフトウェアアプリケーション６０１は、平面図マップウィンドウ６２０内に、投影ルックアヘッドカメラ視野３２２ａと一緒に、ルックアヘッド経路に沿って移動する仮想ロボットアイコン６５０ａをレンダリングすることができる。
【０２３２】
いくつかの実施形態において、ユーザは、ジョイスティックを用いてテレプレゼンスソフトウェアアプリケーション６０１と通信してロボット１００を廊下に沿って走行させているとき、ルックアヘッドコマンド６２４を（例えばユーザインタフェース６０５又はジョイスティック上の対応するボタンを選択することによって）起動することができる。例えば、廊下の曲がり角から５０フィート離れた位置５０で、ユーザはルックアヘッドコマンド６２４を起動し、ルックアヘッドビュー６１２ａを発生させ、廊下に沿ったロボット１０の更なる移動を停止させることができる。しかしながら、ユーザはルックアヘッドモードにおいてロボット１００を仮想的に移動し続けることができる。ユーザインタフェース６０５は同じ廊下の同じ位置でのルックアヘッドビュー６１２ａ（例えば３次元モデル）を表示することができる。ユーザがルックアヘッドモードにおいてロボットを前進駆動し、５０フィート前進させ、左折させ、駆動し続けると、ユーザは３次元モデル／ルックアヘッドビュー６１２ａにおいて通路沿いの部屋及び他の廊下の位置を見ることができる。いくつかの例では、「仮想駆動」の最初の３０フィートに対して、テレプレゼンスソフトウェアアプリケーション６０１は、実際のビュー（静止した物理的ロボットからの、垂直位置を一致させるために更に拡大され、歪められたパースペクティブビュー）と３次元モデル／ルックアヘッドビュー６１２ａの混合ビューを表示することができる。
【０２３３】
図１０Ｇはテレプレゼンスソフトウェアアプリケーション６０１のルックアヘッドモードを実行するオペレーションの模範的な配列１０００を提示する。このオペレーションの配列は、ルックアヘッドモード（フライスルーモードとも言う）を開始するオペレーション１００２及びロボット１００の実際のローカライゼーション（例えば、ロボットの現在の姿勢及び／又は座標）を検査するオペレーション１００４を含む。ロボット１００は、センサシステム４００の受信センサ信号に基づいてその位置を決定し、次いでその位置をテレプレゼンスソフトウェアアプリケーション６０１及び／又はクラウドコンピューティングサービス７２０に転送する。このオペレーション配列は、更に、ロボット１００の仮想位置及び／又は姿勢を生成するオペレーション１００６を含む。テレプレゼンスソフトウェアアプリケーション６０１又はクラウドコンピューティングサービス７２０は、ロボット１００と関連するダイナミックモデル５７０（図５）及び画像データ７０１（図７）（例えばボリューメトリックポイントクラウド画像データ）を用いて仮想位置及び／又は姿勢を生成することができる。本方法は、決定された仮想ロボット位置に対応する３次元レンダリングデータにアクセスするオペレーション１００８及びロボット１００及び／又はロボット１００の周囲のローカル環境の３次元レンダリングを生成するオペレーション１０１０を含むことができる。これは、ローカル３次元モデル／ルックアヘッドビュー６１２ａを構成するために、画像データ７０１（例えば、ボリューメトリックポイントポイントクラウド画像データ）及び／又はローカルに又はリモートにクラウドストレージ７２２に格納された３次元マップ７０５にアクセスするオペレーションを必要とし得る。このビュー６１２ａはテレプレゼンスソフトウェアアプリケーション６０１によりリモートビデオフィードウィンドウ６１０に表示することができる。更に、これは、仮想ロボットアイコン６５０ａ及び投影ルックアヘッドカメラ視野３２２ａが示されたロボット１００の３次元モデルをマップウィンドウ６２０に発生させるオペレーションを必要とすることができる。このオペレーション配列は、ロボット１００がルックアヘッドモードで仮想的に動作するとき、表示されたルックアヘッドビュー６１２ａ又は一人称視点ビュー（ＰＯＶ）を更新するとともに、ロボット１００の仮想位置／姿勢を更新するオペレーションを含むことができる。ステップ１００８−１０１４は、ルックアヘッド／フライスルーモードを終了するステップ１０１６まで、（例えば周期的に）繰り返すことができる。
【０２３４】
図１１Ａを参照すると、いくつかの実施形態において、テレプレゼンスソフトウェアアプリケーション６０１のユーザインタフェース６０５はリモートビデオフィードウィンドウ６１０（又は別のウィンドウ）内にリモートナビゲーションビュー６１２ｂを表示する。リモートナビゲーションビュー６１２ｂはリモートビュー６１２のビデオフィードの上にレンダリングされるナビゲート可能なエリア６１６を有することができる。ユーザはリモートビュー６１２とリモートナビゲーションビュー６１２ｂとの間でトグルすることができる。ナビゲート可能なエリア６１６は平面図マップ８１０及び／又はロボットマップ８２０に基づいて決定することができる。ナビゲート可能なエリア６１６はロボットカメラ３２０，４５０の視野８３２を有する、障害物を含まない有界エリアとして示すことができる。更に、ナビゲート可能なエリア６１６は障害物やその他の妨害物がないことをユーザに伝達する色または他の信号で満たすことができる。
【０２３５】
レイアウトマップ上のナビゲート可能なエリアはロボットの内部障害物マップの情報に基づいて強調表示することができる。一つの実施形態において、ナビゲート可能なエリアは画像中の白色画素として識別できる。ロボットはロボットマップ上のその位置及び３Ｄ奥行カメラの位置及び方位を返送する。プロセッサは、ロボット位置及びヘッドカメラの運動状態（例えば、パン及びチルト角）を用いてビデオスクリーン上のどの画素が地面を表すかを決定することができる。即ち、プロセッサは、ロボット位置とビデオフィードの視野を用いてビデオフィード上の各地面画素の座標を決定することができる。次に、ナビゲート可能なエリアを示す白色画素をビデオフィード上の地面画素の上にオーバレイすることができる。従って、ロボット及び／又はロボットを制御するユーザは白色画素を追跡することによってナビゲート可能なエリアを識別することができる。いくつかの実施形態において、任意の色の画素又は他の識別マークを使用することもできる。他のデータ構造又はマークを白色画素の面内に使用することもできる。特に、ロボットのＰＯＶから、ナビゲート可能な地面画素の座標を、ロボットがそれらを認識できる限り、多種多様な方法でタグ付けすることができる。
【０２３６】
ユーザはナビゲート可能なエリア６１６内のロボット目的地６１８を選択し、テレプレゼンスソフトウェアアプリケーション６０１に、ロボット１００を選択したロボット目的地６１８に対応する位置へ移動させる駆動命令を発行させることができる。図示の例では、ユーザインタフェース６０５のリモートビデオフィードウィンドウ６１０は病室内のロボット１００のロボットナビゲーションビュー６１２ｂを提供する。ユーザはロボット目的地６１８を室内の患者ベッドの隣の位置として選択する。テレプレゼンスソフトウェアアプリケーション６０１は、平面図マップ８１０、ロボットマップ８２０、３次元マップ７０５、２次元（又は２．５Ｄ混成）高さマップ７０７及び／又は格納画像データ７０１を用いて、リモートナビゲーションビュー６１２ｂ上の選択したロボット目的地６１８と、対応するロボットマップ位置８２４との間の歪み（同じ次元内及び／又は異なる次元間の歪み）を決定することができる。次に、テレプレゼンスソフトウェアアプリケーション６０１は、移動する人などの障害物を避けるためにセンサシステム４００及び行動システム５１０ａを用いて、ロボット１００をロボットマップ目的地８２４へ自律的に又は半自律的にドライブさせる駆動コマンドを発行することができる。
【０２３７】
一例では、マップはロボットＡＰＩコールからＰＮＧ，ＪＰＧ又はＴＩＦＦ画像などの画像として戻すことができる。ロボットクラウドは、画像内の障害物の輪郭を形成する画素（例えば黒色画素）を検出するために画像を処理する。障害物の輪郭を形成する画素を処理するために曲線当て嵌めアルゴリズムを使用することができる。得られた曲線は次に障害物マップを生成するために使用することができる。障害物の検出の更なる向上及び／又は検出障害物輪郭の曲線当て嵌め精度の更なる向上のために追加の処理を行うことができる。例えば、曲線が円に類似する形に近似する場合、障害物マップは簡単に円を代用することができる。同様のアイディアは矩形又は楕円、人間、顔及び／又は様々な視野からの既知の物体の形状のデータベースに近似する物体などの形に適用することができる。
【０２３８】
ユーザインタフェース６０５はセンサ視野４４２，４５２内（例えば３次元撮像センサの視野４５２及び／又はレーザスキャナの視野４４２内）の障害物の近接を表示する近接センサウィンドウ６７０を提供することができる。
【０２３９】
いくつかの実施形態において、ユーザは、回避タグ６６２，６６２ｉを用いて、リモートビデオフィードウィンドウ６１０及び／又は平面図マップウィンドウ６２０（図示せず）上の保護領域／ゾーンに印を付けることができる。保護ゾーンはロボット１００により物体１２として取り扱われ、従って保護ゾーンは自律走行中に回避されることができる。保護ゾーンは、繊細な機器の周囲に広い置き場所を生成するために使用でき、又はロボットが他のエリアを回避できるようにするために使用することができる。ユーザは、タグ付け用ビュー６６０内の平面図マップ８１０上又はリモートナビゲーションビュー６１２ｂ上に回避タグ６６２，６６２ｉを置くことができる。更に、ユーザはリモートナビゲーションビュー６１２ｂ上に他のタグ６６２を置くことができる。テレプレゼンスソフトウェアアプリケーション６０１はリモートナビゲーションビュー６１２ｂと平面図マップ８１０及び／又はロボットマップ８２０との間の歪みを決定し、次いでロボットマップ８２０をそれに応じて更新することができる。
【０２４０】
例えば、平面図マップとビデオフィードとの間の歪みの決定は、ナビゲーションビュー６１２ｂ、平面図マップ８１０及び／又はロボットマップ８２０内の座標点間の変換マッピングを生成するステップを含むことができる。制限された領域をビデオフィード内の地表面上にオーバレイするのと同様に、２次元マップの地表面はロボットにより提供されるビデオフィードの検出地表面上に有効に座標マッピングすることができる。
【０２４１】
図１１Ｂは、選択されたロボット目的地６１８までロボットをナビゲートする方法のためのオペレーションの模範的な配列１１０のフローチャートを示す。本方法は、ロボット１００の視野３２２，４４２内のナビゲート可能なエリア６１６を識別するステップ１１０２を含む。ナビゲート可能なエリア６１６の識別は、ロボット１００のセンサシステム４００を用いて達成することができる。本方法は、例えばリモートナビゲーションビュー６１２ｂ上に有界エリア（色又はパターンで満たされた強調表示境界）を表示することによって、ナビゲート可能なエリア６１６をユーザインタフェース６０５に視覚的に表示するステップ１１０４も含む。本方法は、ロボット目的地６１８のユーザ選択を受信するステップ１１０６及びロボット目的地６１８が識別されたナビゲート可能エリア６１６内にあるかどうかを決定するステップ１１０８を含むことができる。ロボット目的地が識別されたナビゲート可能エリア６１６の外にある場合には、本方法は、ユーザにナビゲート可能エリア６１６内の有効なロボット目的地６１８を選択するように促すステップ１１１０を含む。ロボット目的地６１８が識別されたナビゲート可能エリア６１６内にある場合には、本方法はロボット目的地６１８までの経路を決定するステップ１１１２を含む。これは、リモートナビゲーションビュー６１２ｂとロボットマップ８２０との間の歪みを決定し、次いで選択したロボット目的地６１８に対応するロボットマップ位置８２４を決定する必要があり得る。本方法は、ロボット１００にロボット目的地６１８まで（自律的に又は半自律的に）航行することを許すステップ１１１４を含む。
【０２４２】
図１１Ｃ及び１１Ｄは、模範的なリモートナビゲーションビュー６１２ｂを示し、この場合には、ユーザはナビゲート可能エリア６１６を超えて位置する又は（実際の又はロボット１００により知覚された）障害物１１２０上に位置するロボット目的地６１８を選択している。図１１Ｃに示す例では、ユーザは知覚した障害物１１２０ａ（斜面１１２２）上にロボット目的地６１８を選択している。遠くからは斜面１１２２はロボット１００の横断可能な敷居高さを超える知覚高さを有し得るので、遠くからはロボットセンサシステム４００は斜面１１２２を障害物として認識し得る。更に、ロボット行動システム５１０ａは、センサシステム４００のセンサシステムが横断可能な敷居高さより大きい高さを有する障害物を示すことにより生じるセンサイベントに応答して、ＯＤＯＡ行動５１２ｃを実行することができる。ロボット１００は、平面図マップ８１０及び／又はロボットマップ８２０を使用し、環境のそのローカル知覚は不正確であり、斜面１１２２は実際の障害物ではなく、むしろ知覚障害物１１２０ａであると決定することができる。
【０２４３】
斜面１１２２はナビゲート可能エリア６１６内にあるが、テレプレゼンスソフトウェアアプリケーション６０１は斜面１１２２上のロボット目的地６１８は停止するには安全でない場所であることを決定できる。テレプレゼンスソフトウェアアプリケーション６０１は警報ダイアログボックス１１３０を表示し、選択したロボット目的地は停止するには安全でないことを知らせることができる。図示の例では、警報ダイアログボックス１１３０は、ユーザはロボット目的地６１８に斜面１１２２を選択していること示し、代わりのロボット目的地６１９として斜面１１２２のすぐ前を提示する。ロボット１００を斜面１１２２上で停止させることは、ロボット１００が転倒もしくは斜面１１２２から転げ落ちた場合に、ロボット１００の近くにいる人にとってもロボット自体にとっても危険である。ロボット目的地６１８が斜面１１２２上にあることを決定することによって、テレプレゼンスソフトウェアアプリケーション６０１は、このようなロボット目的地６１８を禁止する及び／又は安全な代わりの目的地６１９（本例では斜面１１２２の前）を提案することができる。
【０２４４】
図１１Ｄを参照すると、ユーザが実際の障害物１１２０ｂを選択するとき、テレプレゼンスソフトウェアアプリケーション６０１は警報ダイアログブックス１１３０を表示し、選択したロボット目的地６１８はナビゲート可能エリア６１６の外又は障害物１１２０であることを示すことができる。図示の例では、警報ダイアログボックス１１３０は、ユーザはロボット目的地６１８に障害物１１２０を選択していることを示し、代わりのロボット宛先６１９として障害物１１２０のすぐ前を提示する。
【０２４５】
図１２を参照すると、いくつかの実施形態において、テレプレゼンスソフトウェアアプリケーション６０１のユーザインタフェース６０５により表示されるリモートナビゲーションビュー６１２ｂはナビゲート可能エリア６１６内の選択したロボット目的地６１８までのロボット経路６５２をユーザに指定することができる。ユーザは様々な入力装置を使ってロボット経路６５２を指定することができる。例えば、タッチスクリーンディスプレイ上で、ユーザは指又はスタイラスを、現在位置を示すロボットアイコン６５０からロボット目的地６１８までドラッグすることができる。追加の例では、ユーザは（マウス又はタッチジェスチャを使って）ロボットアイコン６５０を指定のロボット経路に沿ってロボット目的地６１８までドラッグすることができる。図示の例では、ユーザはユーザインタフェース６０５上の経路設定ボタン１２０２を選択し、ナビゲート可能エリア６１６内で行われるジェスチャがロボット経路６５２として解釈されるべきであることを指示することができる。ユーザはリモートビデオフィードウィンドウ６１０内のロボット経路６５２を追跡することができる。同様に、ユーザはマップウィンドウ６２０に２次元マップ６２２ａとして表示される平面図マップ８１０上のロボット経路６５２を選択することもできる。ロボット経路６５２の設定後に、ユーザはゴーボタン１２０４を押してロボット１００を運動状態にセットすることができる。同様に、停止ボタン１２０８はロボットの運動を停止させるために使用することができる。クリア経路ボタン１２０６は設定されたロボット経路６５２をリモートナビゲーションビュー６１２ｂから除去又はクリアすることができる。
【０２４６】
ディスプレイウィンドウはマウスを乗せると現われるフライアウトアイコンパネルを含むことができる。例えば、アイコンパネルはウィンドウの左上から飛び出すことができる。アイコンパネルはユーザにマニュアルドライブ、クリックトゥドライブ及びヘッドモーションアイコンの選択を可能にする。一つの実施形態において、ユーザはスペースバーを用いてアイコンをトグルすることができる。マニュアルドライブはユーザにクリックトゥ目的値及び／又はクリックアンドドラッグ経路の使用を可能にする。マップ上に経路を描画後、ユーザは右クリックして、ポップアップメニューから「経路保存」を選択することができる。このメニューは経路に名前を与えることができる。その後、ユーザは「経路ロード」を実行することができ、ロボットは経路の出発点に移動し、次に指定された経路に沿って目的地まで移動することができる。経路は、タグ座標及びタグ情報を含むタグデータ構造として格納することができる。タグ経路は経路に沿って多数の停止を含む。経路を描画する際、ユーザは経路に沿ってウェイポイントを示すことができる。いくつかの実施形態において、ウェイポイントは停止符号を含むタグ注釈により表現することができる。その後、経路走行中にウェイポイントに到達すると、ロボットは「停止」ボタンを点滅させることができ、経路をより明るくする及び／又は半透明にすることができる。この時点で、ユーザは診察を行い、ローカルドライブを行い、次に「ゴー」をクリックして経路を再開することができる。従って、医師は夜間回診のための経路を保存し、すべての部屋及びステーションを好ましい順序で予め計画したルートで訪れることができる。
【０２４７】
ヘッドモードにおいて、ユーザはロボットのヘッド部（上部）をボックス又はボックス内の物体の中心に置くためにボックス又は外形をビデオフィードの一部分の上に描くことができる。更に、ユーザはロボットのヘッド部（上部）及び／又はロボット全体の方位を変えるためにある位置をクリックすることができる。ロボットのベース部（下部）及びヘッド部（上部）を独立に使用するために様々なボタン及び周辺制御トグルを使用することができる。例えば、ヘッドモードの間シフトキーを保持すると、カーソルをスクリーン上のハンドアイコンにすることができ、ユーザはヘッド部をつかんでドラッグすることが可能になる。
【０２４８】
いくつかの実施形態において、ロボットのナビゲーションを制御するためにスターアイコンを使用することができる。スターアイコンは様々なビューの何れにも表示することができ、ロボットの方向及び／又は速度を変えるためにユーザによって選択的に移動させることができる。スターアイコンに加えて、代わりのアイコンを使用することもできる。
【０２４９】
図１２に戻り説明すると、仮想ジョイスティックウィンドウ６８０は所望の経路６５２を指定するため又はロボット１００を手動制御するための別の入力装置を提供することができる。仮想ジョイスティックウィンドウ６８０はロボット方位指示器６８２及びナビゲーションベクトル６８４を表示することができる。ユーザはナビゲーションベクトル６８４を使ってロボット１００の方向及び速度を制御することができる。仮想ジョイスティックは、一般にマウスや通常のジョイスティックを持たないタブレットコンピュータのような装置のユーザによるロボット１００の制御を容易にする。
【０２５０】
「スティッチ」ビデオ画像を仮想ジョイスティックウィンドウ６８０に表示することができる。「スティッチ」ビデオ及び画像は、ロボット１００の前部のライブ下向きカメラ３２０，４５０とロボット１００の後部のライブ下向きカメラを使って生成することができる。ユーザは、（例えばマウス又はタッチジェスチャを使って）ロボットの運動方向及びドライブ速度を指定するためにロボット運動指示器６８６をつかみ、ドラッグオンすることができる。仮想ジョイスティックウィンドウ６８０からロボットを駆動するのはマウスベース又は仮想ジョイスティック駆動のためのリモートビデオフィードウィンドウ６１０より有利である。特に、このビューは、レンズひずみ、奥行情報の欠如、及びユーザがリモートビデオフィードウィンドウ６１０に表示されるビデオフィードを使ってロボットを駆動している間に経験し得るロボットヘッド部の回転に基づく知覚問題を低減することができる。
【０２５１】
ユーザはリモートビデオフィードウィンドウ６１０内で所望の経路を指定することができるのに加えて、ユーザはマップウィンドウ６２０に表示されるマップ６２２上でロボット経路６５２を指定することができる。ロボット経路６５２を平面図マップ６２０で指定することにより、ロボット１００をより長い距離に亘って航行させることが可能になり、よってユーザはロボット１００が移動中に解放されて他の仕事を行うことができる。マップウィンドウ６２０に示されるマップ６２２のズーム及び表示エリアの操作のために様々な制御を提供することもできる。スライダ１２１０を使って所望のズームを指定することができ、エリアパン制御１２１２を使って所望のエリアを表示させることができる。
【０２５２】
従って、技術のないユーザでも様々なナビゲーション方法及び制御機器の任意の組合せを使って１つの位置から別の位置へのナビゲーションを行うことができる。例えば、長距離移動においては、ユーザは平面図マップ上で目的地をクリックし、ロボットは選択された位置へ自律的に航行することができる。中距離移動においては、ユーザはロボットの視野内の場所のビデオウィンドウ内で目的地を選択することができる。近距離移動においては、ユーザはマウス、ジョイスティック、仮想ジョイスティック又はメタジョイスティックを使ってロボットのナビゲーション経路、回転、ヘッド部運動などを手動的に制御することができる。
【０２５３】
図１３は、リモートナビゲーションビュー６１２ｂを表示する最大化されたリモートビデオフィードウィンドウ６１０を有するテレプレゼンスソフトウェアアプリケーション６０１の模範的なユーザインタフェース６０５を示し、このリモートナビゲーションビュー６１２ｂはユーザにより選択可能なハイパータグ１３１０及び／又はコンテキストセンシティブコマンドを受け取る。ユーザインタフェース６０５は、リモートビデオフィードウィンドウ６１０上にオーバレイされたローカルビデオウィンドウ６３０及び平面図マップ６２０を含む。図示の例では、平面図マップ６２０は３次元マップ６２２ｃを表示する。３次元マップ６２２ｃは、ユーザがロボット１００を３次元マップ６２２ｃ上の選択されたロボット目的地６１８まで半自律的に航行させるために利用することができる。いくつかの実施形態において、仮想３次元格子１３０２がリモートナビゲーションビュー６１２ｂに表示される。平面図マップ８１０とロボットマップ８２０との間の決定された歪みを用いて、テレプレゼンスソフトウェアアプリケーション６０１はライブビデオフィード内の床面の位置を決定して３次元マップ６２２ｃにオーバレイすることができる。ユーザは仮想格子１３０２上の方形格子１３０４をロボットとして選択してロボット１００を選択された方形格子１３０４に自律的に航行させることができる。仮想３次元格子１３０２はロボット１００の位置決定の精度を向上させることができる。
【０２５４】
図示の例では、コンテキストセンシティブ動作を提供する様々なハイパータグ１３１０が表示され、ユーザに使用可能にされている。コンテキストセンシティブ動作はアプローチコマンド１３１２及びフォローコマンド１３１４を含む。これらのコンテキストセンシティブ動作は、ロボット１００の視野３２２，４４２，４５２内に人１３３０が識別された時に発生することができる。ユーザは、ロボット１００を人１３３０の前に位置させるために、アプローチコマンド１３１２を呼び出すことができる。アプローチコマンド１３１２はロボット行動システム５１０ａによりアプローチ行動５１２ａ（図５）の実行を生じさせることができ、それによってロボット１００はセンサシステム４００（例えば顔認識）を使って人１３３０を識別し、識別した人１３３０の前に移動することができる。ユーザは、ロボット１００を人１３３０に３フィート後ろからついてかせるために、フォローコマンド１３１４を呼び出すことができる。フォローコマンド１３１４はロボット行動システム５１０ａにより人間追従行動５１２ｂの実行を生じさせることができ、それによってロボット１００はセンサシステム４００（例えば顔認識）を使って人１３３０を識別し、識別した人１３３０について移動する。いくつかの例では、ロボット１００は顔認識ルーチンを使って視野３１１，４４２，４５２内の個人を検出することができる。その人を識別するラベル１３４０を表示することができる。例えば、その情報は、名前、タイトル、所属、アドレス、ビジネスアドレス、ｅメールアドレス、ウェブページアドレス、ユーザ注釈などを含むことができる。
【０２５５】
テレプレゼンスソフトウェアアプリケーション６０１は、表示された２次元マップ６２２ａとロボットカメラ３２０でキャプチャされた本人ビデオフィードとの間の歪みを決定することができる。このような歪みの決定は、２次元マップと３次元「マップ」との間の座標変換を決定するステップを含み得る。ユーザがタグ６６２及び／又はハイパータグ（タグを含み得る）１３１０をリモートビデオフィードウィンドウ６１０のリモートビュー６１２上又はマップウィンドウ６２０の２次元マップ６２２ａ上に置くとき、テレプレゼンスソフトウェアアプリケーション６０１は、その歪みをタグ６６２及び／又はハイパータグ１３１０と関連するタグマップ座標に適用して対応するビデオ座表又は平面図マップ座標をそれぞれ決定し、決定したビデオ又はマップビュー座標を使って、タグ６６２又はハイパータグ１３１０と関連するタグ注釈を、表示されているリモートビュー６１２（即ち、本人ビデオフィード）又はマップ６２２にそれぞれオーバレイすることができる。様々な実施形態において、タグ注釈の３次元レンディデョンはリモートテレプレゼンスロボットの現在位置及びビデオフィードに対するタグのパースペクティブに基づいて動的に再レンダリングすることができる。従って、ロボットの位置及び／又はライブビデオフィードのパースペクティブが変化するとき、例えばロボットのヘッド（上部）がパン又はチルトするとき、タグ注釈を動的に再レンダリングすることができる。例えば、斜面に対応するタグ注釈は床に関してビデオフィードにオーバレイすることができる。同様に、壁上の物体と関連するタグ注釈は物体又は壁に関してオーバレイすることができる。
【０２５６】
本明細書で説明するように、タグはロボット動作変更子を含むタグ情報を含むことができる。タグは、ロボットオペレータ、ローカル端末又はリモートテレプレゼンスロボットにより解釈され、ロボットに所定の動作を実行させることができる。例えば、ロボット動作変更子は、特定エリアに侵入しないこと、特定のエリアは低速移動すること、特定のエリアは高速移動すること、特別な注意をすること、及び／又は他の動作を実行することをロボットに指示することができる。一般にタグは、多種多様の情報の任意のもの、例えば無線通信システムの可用性、リモートテレプレゼンスロボットの移動速度、関心のある点の位置、人の位置、ドッキングステーションの位置、休止エリアの位置、ガラス壁の位置、斜面の位置、物体の位置、狭いエリアを航行するための最適ルート、混雑したエリアを航行するための最適ルート、及びリモートテレプレゼンスロボットが実行すべき動作、を含むことができる。タグは、ユーザによって、自律的に端末によって、自律的にロボットによって、及び／又は端末及び／又はロボットにより収集された履歴データに応答して生成することができる。
【０２５７】
ロボットは、ナビゲーション経路に沿って出合うタグ座標を有するタグを識別するように構成されたタグ識別システムを含むことができる。そのタグ座標がロボットのローカル知覚空間内にあるとき及び／又はその他グループ座標が目的の計画されたナビゲーション経路又はナビゲーション経路の計画に該当するとき、ロボットはこのタグに「出合う」ことができる。従って、タグ識別システムは、ロボットがタグのタグ座標にまだ近接していない場合及び／又は近接し得ない場合でも、ナビゲーション経路に沿ってタグに「出合う」ことができる。
【０２５８】
ロボットのナビゲーション経路を決定するロボット及び／又はリモート端末はナビゲーション経路に影響を与え得るタグ又は可能なタグを考慮することができる。従って、ナビゲーション経路の決定中に、タグ識別システムを使って可能性のあるナビゲーション経路に沿って投影されたタグ座標を有するタグを識別することができる。例えば、所望の目的地に到達するためにいくつかの可能性のあるナビゲーション経路が使用でき、どのナビゲーション経路を使用するかの選択は可能性のあるナビゲーション経路の各々に関連するタグにより決めることができる。多数の可能なナビゲーション経路からの選択を行うロボットは、どのナビゲーション経路が最良の無線接続性を提供するかを決定するために、関連するタグを識別することができる。傾斜、エレベータ、距離、混雑、物体などの他のファクタを使用することもできる。
【０２５９】
図示の模範的なユーザインタフェース６０５において、ダッシュボードウィンドウ６４０は、電池充電状態、無線信号強度インジケータ、及びサービス要求時に点灯し得る部分を有するロボット外形を提供する。オプションウィンドウ６９０は、ユーザがロボットをドッキングステーションから切り離す又はそれにドッキングすること及びソフトウェア及び／又はロボットオプションをセットすることを可能にする。
【０２６０】
図１４を参照すると、いくつかの実施形態において、人間追従行動５１２ｂを実行する間、ロボット１００は人１３３０を検出し、追跡し、追従する。ロボット１００はネック部１５０を使ってヘッド部１６０をパン及びチルトし得るため、ロボット１００は第２の３次元画像センサ４５０ｂを対応する視野４５２が人１３３０に維持される方向にすることができる。更に、ヘッド部１６０は、（例えば駆動システム２００を使用する）ベース部１２０よりも相対的に高速に動くことができ、ヘッド部１６０（及び関連する第２の３次元画像センサ４５０ｂ）はロボット１００をその場で回転させる場合より速く人１３３０を追跡することができる。ロボット１００は、人１３３０を閾追従距離範囲ＤＦ（例えば、センサ視野に対応する）内に維持するために、人１３３０に向かって移動することができる。いくつかの例では、ロボット１００は人１３３０を追跡しながら人／ユーザ１３３０に向って振り返る。ロボット１００は人１３３０を追跡するために速度コマンド及び／又はウェイポイントコマンドを使用することができる。
【０２６１】
人認識及び人間追従に関する追加の詳細及び特徴は、２０１１年５月６日に出願されたＰＣＴ出願シリアル番号ＰＣＴ／ＵＳ１１／３５４８８に見られ、この出願は参照することによりそっくりそのまま本明細書に組み込まれる。
【０２６２】
図１５Ａ及び１５Ｂは、平面図マップウィンドウ６２０内に表示可能な別の３次元マップ６２２ｃ及び２次元マップ６２２ａを示し、これらのマップは様々な情報と関連するハイパータグ１３１０を含み、ロボットを特定の目的地に自律的に航行させるために使用することができる。ハイパータグ１３１０は様々な位置に関する情報又は患者に関する情報を含むことができる。ユーザはラベル１５０２又はマーク１５０４、個人メモ、共有メモ、スケッチ、図などを付加することができる。ロボット位置１５１０も特定できる。ユーザはロボット目的地１５１２、例えばナースステーション、を指定することができる。ロボット１００は指定されたロボット目的地へ自律的に航行することができる。
【０２６３】
テレプレゼンスソフトウェアアプリケーション６０１は、リモートビデオビュー６１２及び／又はマップ６２２上に関心のある物理的エリアを示す情報を表示することができる。例えば、「Ｐｈａｒｍａ」という読みの吹き出しを有する小さな矢印は薬局の位置を示すことができる。このような吹き出しはタグを備えることができる。例えば、このタグは、語「Ｐｈａｒｍａ」を表示すべき位置を示すタグ座標、薬局に関連する関連情報のようなタグ情報、及び語「Ｐｈａｒｍａ」の２次元及び／又は３次元のグラフィック表示のようなタグ注釈を含むことができる。いくつかの例では、ユーザは、マウスをそのエリアの上に置くこと又はジェスチャすることによって、近隣の部屋についてどんな情報が入手可能かを決定することができる。この情報に基づいて、ユーザはリモートナビゲーションビュー６１２ｂ（図１２）でロボット目的地６１８を選択することによって目的地（例えば薬局）へ行くことをすぐに選択することができる。
【０２６４】
例えば、一例によれば、ロボット又はリモート端末はロボットマップと関連するタグに対応するタグ座標を読み出すことができる。ロボット位置を使用して、ロボットに極めて接近しているタグを特定することができる。ロボットの視野内にあるタグはロボットのヘッド部（上部）の向きを使って特定することができる。ロボット及び／又はリモート端末は、次にビデオスクリーン上のすべての画素の座標のセットを計算し、ロボットの位置及びロボットの現在のヘッドの向き（パン及び／又はチルト）により与えられるパースペクティブに基づく視野方向（視線）内の各タグと関連するタグ注釈をレンダリングする。いくつかの実施形態によれば、デナビット−ハーテンバーグパラメータ（ＤＨパラメータ）をビデオフィードと平面図マップとの間の空間結合のための標準座標系として使用することができる。
【０２６５】
再度図８Ｅを参照して説明すると、ユーザインタフェース６０５のタグ付け用ビュー６６０はユーザに、関心のある位置を示すために平面図マップ８１０にタグを置くこと及び／又は平面図マップ８１０に障害物、好ましいロボット走行ルートなどの情報をマークすることを可能にする。図１３も参照すると、ユーザは、コンテキストセンシティブ情報を有する位置をマークするために、ハイパータグ１３１０をリモートナビゲーションビュー６１２ｂ上に置くことができる。マップデータソース１６２０は、タグ及びハイパータグ情報（例えば位置、タグ識別システム、タグ内容）をレイアウトマップ及び／又はロボットマップ情報と一緒に格納することができる。本明細書で使用されるハイパータグはタグとして具体化することができ、本明細書に記載されるタグと同様のデータ構造を使用することができる。
【０２６６】
ユーザはユーザインタフェース６０５でタグ６６２及びハイパータグ１３１０を置くことができるのに加えて又は代わりに、ユーザはロボット１００のオペレーション中にユーザ固有のハイパータグ１３１０を入力することができる。ユーザは、ロボット現在位置におけるハイパータグ１３１０の挿入を許可するコマンドを呼び出すことができる。別のコマンドはハイパータグ１３１０の除去を許可することができる。更に、他のユーザ（例えばナース）は、ロボット１００のユーザに見せることができるハイパータグ１３１０を付加することができる。「ナースマップアプリケーション」は、例えばすぐにログインできる医師に関心のある部屋を識別するために一時的なハイパータグ１３１０の設置を可能にするトップダウンマップ又はタグ付けビュー６６０を表示することができる。更に、いくつかのハイパータグ１３１０はユーザ固有及び／又は時間固有である。例えば、室内の脳卒中患者は悪化のサインを示すことができる。ナースは「ナースマップアプリケーション」を呼び出し、マップ上でその部屋を見つけ、ハイパータグ１３１０を入力する。 ナースはハイパータグに、ハイパータグ名＝「脳卒中患者悪化」、ユーザ固有＝「医師レイノルド」、継続時間＝１時間、を記入することができる。従って、医師レイノルドは次の１時間以内にログインし、「脳卒中患者悪化」を付加的に示すマップ上の患者の部屋と関連するハイパータグ１３１０を見ることができる。その棟にアプローチ中に、医師はビデオストリーム中の「脳卒中患者悪化」とラベルされた部屋を指し示すハイパータグ１３１０のポップアップを見ることもできる。他の医師はこれらのラベルは見ることはできず、医師レイノルドのみが最初の１時間の間見ることができる。
【０２６７】
医師は、自分のワーク計画を助けるために、一時的なブックマーク及びリマインダハイパータグ１３１０をローカル又はリモートステーションインタフェース６０６，６０８にセットすることができる。いくつかの例では、医師はワークの開始時にいく人かの患者室に番号を割り当てることができる。次に活動中に、医師は患者６１４を訪ねる順番を思い出すために、表示されたマップ６２２上及びポップアップハイパータグ１３１０内の番号を見ることができる。医師は活動のリマインダを通じて又は次の戻り時に見ることができるメモ、例えば一人の患者について「ワーク終了時に戻る、又は「処方箋を書く」又は「午後４時に再検査する」、を付加することができる。
【０２６８】
更に、「スマート」ハイパータグ１３１０は自動的に表示することができる。例えば、ナースは入院患者６１４の写真を電子診療記録と相互参照されるデータベース（例えばローカルストレージ及び／又はクラウドストレージ７２２に格納されている）に入力することができる。テレプレゼンスソフトウェアアプリケーション６０１は、ロボットカメラ３２０によりキャプチャされたビデオストリームについて顔認識アルゴリズムを実行して患者６１４，１３３０を識別することができ、識別した患者をデータベースと相互参照することができる。患者の顔認識時に、テレプレゼンスソフトウェアアプリケーション６０１は患者の電子診療記録を自動的に引き出し、表示することができる。
【０２６９】
図１４を参照すると、いくつかの実施形態において、各患者６１４，１３３０は、例えばリストバンドに装着された無線周波数識別（ＲＦＩＤ）チップ４９７を受け取る。ロボット１００は、近くの患者をＲＦＩＤチップを介して認識するために、そのセンサシステム４００の一部分としてコントローラ５００と通信するＲＦＩＤリーダ４９８を含むことができる。テレプレゼンスソフトウェアシステム６０１は、患者がロボット１００のＲＦＩＤレンジ（例えば６フィート）内に入ると、対応するハイパータグを表示する。ＲＦＩＤは方向特異でないため、ハイパータグ１３１０は空中に浮いているように見える。別の混成方法は、コンピュータビジョン技術を使用し、ロボット１００の視野３２２内に患者６１４，１３３０が存在することを顔認識によって確認し、次にＲＦＩＤ照合がこの患者に属することを確かめ、患者６１４，１３３０上のハイパータグ１３１０を位置決定することができる。
【０２７０】
図１６Ａ−１６Ｄを参照すると、いくつかの実施形態において、ロボットシステム１６００は、ブリッジ６０２と通信する１以上のテレプレゼンスロボット１００を含み、ブリッジ６０２はローカルロボットエンドポイントサーバ６０４ａ及びリモートエンドポイントサーバ６０４ｂ（例えばクラウドコンピューティングサービス７２０(図７)）と通信する。ロボットエンドポイントサーバ６０４ａはローカル技術者コンピューティングデバイス６０６と通信し、リモートエンドポイントサーバ６０４ｂはリモートオペレータコンピューティングデバイス６０８と通信する。ロボットシステム１６００は、ローカルセンサシステム４００から受信されるセンサデータ及び／又はユーザインタラクションデータ、例えばウェブバッド３１０及び／又はユーザインタフェース６０５を介してユーザから得られる情報を格納する１以上のデータソース１６１０も含むことができる。図示の例では、ロボットシステム１６００は、センサデータを格納する少なくとも１つのデータソース１６１０ａ及びユーザインタラクションデータを格納する少なくとも１つのヘッドデータソース１６１０ｂを含む。これらのデータソース１６１０はロボット１００、クラウドストレージ７２２(図７) 、ローカルロボットエンドポイントサーバ６０４ａ及び／又はリモートエンドポイントサーバ６０４ｂに存在させることができる。
【０２７１】
マップデータソース１６２０、例えばロボット１００、クラウドストレージ７２２(図７) 、ローカルロボットエンドポイントサーバ６０４ａ及び／又はリモートエンドポイントサーバ６０４ｂに格納されたデータベース、は平面図マップ８１０、ロボットマップ８２０、タグ情報６６２、及び／又はハイパータグ１３１０の情報を格納することができる。マップデータソース１６２０は、単一データベース又は複数のデータソースの組み合わせ１６１０、例えばロボットセンサデータソース１６１０ａ及びヘッドデータソース１６１０ｂとすることができる。テレプレゼンスソフトウェアアプリケーション６０１及び／又はロボット１００（例えば、コントローラ５００）は、リアルタイム又はオフラインコンコーダンス処理の実行、ユーザインタフェースフィードバックの提供、ナビゲーションルーチンの実行、マップ６２２のレンダリングなどのために、マップデータソース１６２０にアクセスすることができる。
【０２７２】
いくつかの実施形態において、コントローラ５００上で実行される制御システム５１０は、ロボットセンサデータソース１６１０ａ、ヘッドデータソース１６１０ｂなどのデータソース１６１０及び／又はマップデータソース１６２０の１つ以上にアクセスして行動システム５１０ａにより認識可能なイベントを発行する。発行されたイベントに応答して、行動システム５１０ａはロボットリソース５３０上のリモート制御アービター５６０により実行されるコマンドの選択を制御する１以上の行動５１２を実行することができる（図５）。図１６Ｃに示す例では、ロボット制御システム５１０はマップデータソース１６２０と通信してコンコーダンスマトリクス／データベースにアクセスし、このデータベースは、コンコーダンスプロセス情報、例えばリアルタイムセンサ／フラグデータ１６２２ａ、オペレータコマンド１６２２ｂ、ローカル知覚空間データ１６２２ｃ（例えば３次元画像センサ４５０から受信されるボリューメトリックポイントクラウドデータ）、占有ビットマップデータ１６２２ｄ（例えば、ロボットマップ８２０）、床配置図データ１６２２ｅ（例えば平面図マップ８１０）、及びエンドユーザタグテーブル１６２２ｆ（例えば、ｘ、ｙ、ｚ座標及びタグフィールドを格納）、及び／又はロボット行動タグテーブル（例えば、ｘ，ｙ、ｚ座標及びタグフィールドを格納）を格納することができる。図５も参照すると、行動システム５１０ａの行動５１２は、発行されたイベントに基づくロボット動作の可能な結果、例えばセンサシステム４００からのセンサイベント及びタグテーブル１６２２ｆ、１６２２ｇに格納された設置タグ６６２，１３１０により発行されたタグイベント（例えば、センサイベントを模倣するものとし得る）を評価することができる。従って、動作選択エンジン５８０は行動評価に基づいて最良の結果を有する実行可能なロボット動作を選択することができる。結果として、ロボット１００は、テレプレゼンスソフトウェアアプリケーション６０１により受信されたタグ６６２，１３１０を考慮する形で自律的に動作することができる。
【０２７３】
図１１Ｃに示す斜面の例を再び参照すると、ロボット１００が斜面１１２２に接近するとき、ロボット制御システム５１０はセンサシステム４００から受信されるセンサ信号に基づいて斜面１１２２を障害物１１２０として知覚する。知覚した障害物１１２０ａと実際の障害物１１２０ｂとを識別するために、制御システム５１０はロボットデータとユーザデータを格納するマップデータソース１６２０などの共通データソースにアクセスする必要がある。マップデータソース１６２０を使用して、制御システム５１０は、検出した斜面１１２２は実際の障害物１２２０ｂではなく知覚した障害物１１２０ａであることを決定する。更に、制御システム５１０は、ユーザが斜面１１２２を実際の障害物１１２０ｂとして知覚したのかに関するユーザ入力を受信するため及び／又は代替ロボット経路６５２を受信するため及び／又は代替ロボット目的地を受信するために、テレプレゼンスソフトウェアアプリケーション６０１と通信することができる。テレプレゼンスソフトウェアアプリケーション６０１は、混成マップ６２２ｂ（図９Ｂ）を提供するために、マップデバイスソース１６２０を使って２次元マップ６２２ａ、８１０と３次元マップ６２２Ｃとの間の歪み、リモートビュー６１２内のライブビデオフィードと２次元及び／又は３次元マップ６２２ａ、６２２ｃとの間の歪みを決定することができる。更に、テレプレゼンスソフトウェアアプリケーション６０１はマップデバイスソース１６２０を使ってルックアヘッドビュー６１２ａを平面図マップウィンドウ６２０（図１０Ｃ）に表示することができる。
【０２７４】
図１２を再び参照すると、追加の実施形態において、ユーザが２次元マップ６２２ａ，混成マップ６２２ｂ，３次元マップ６２２ｃ及びリモートビュー６１０のうちの１つの上でロボット経路を選択するとき、テレプレゼンスソフトウェアアプリケーション６０１はマップデータソース１６２０を使ってマップ６２２のいずれかとリモートビュー６１２との間の歪みを決定し、その歪みを選択したロボット経路に付加して、目的地６１８への駆動コマンドを実行する際にロボットコントローラ５００に使用されるロボットマップ８２０上で対応するロボット経路マップ座標の系列を決定することができる。更に、テレプレゼンスソフトウェアアプリケーション６０１は決定した歪みを適用して、マップ６２２のいずれか及びリモートビュー６１２の上にロボット経路６５２を表示するための対応するロボット経路座標の系列を決定することができる。
【０２７５】
従って、本明細書で使用される「歪み」は、空間座標誤差、異なる次元の座標系間の変換を含む１つの座標系から他の座標系への変換の差の決定に関するものと広く理解すべきである。例えば、ロボット及び／又はリモート端末は、２次元平面図マップと、ロボットにより少なくとも部分的に生成された２次元マップ、例えば様々なロボットセンサ又はレーザスキャンを使って生成されたもの、との間の歪みを決定することができる。更に、ロボット及び／又はリモート端末は、３次元マップ又はビデオフィードと２次元平面図マップとの間の歪みを決定することができる。更に、歪みの決定は、一人称ビュー、三人称ビュー、平面図マップビュー、混成マップビューの間、及び／又は任意の２つの異なる座標系の間又は同じ座標系内の異なるパースペクティブの間の座標変換に関するものとし得る。
【０２７６】
図１３を再び参照すると、いくつかの実施形態において、ユーザがタグ６６２又はハイパータグ１３１０をマップウィンドウ内にマップ６２２として表示された平面図マップ８１０の上に置くとき、テレプレゼンスソフトウェアアプリケーション６０１はマップ６２２を表示する電子ディスプレイ上のユーザ選択位置を決定し、タグ６６２，１３１０と関連する注釈をマップ６２２にオーバレイする。テレプレゼンスソフトウェアアプリケーション６０１は平面図マップ８１０とリモートビュー６１０（即ち、ロボットカメラ３２０によりキャプチャされた一人称ビデオ）との間の歪みも決定し、この歪みを平面図マップ８１０上のタグ６６２，１３１０の座標に適用してリモートビュー６１０の対応するビデオ座標を決定することができる。タグ６６２，１３１０と関連するタグ注釈はマップデバイスソース１６２０に格納され、決定されたビデオ座標を用いてテレプレゼンスソフトウェアアプリケーション６０１によりリモートビュー６１０上に表示することができる。
【０２７７】
図１７を参照すると、いくつかの実施形態において、ユーザインタフェース６０５は、例えばリモートビデオフィードウィンドウ６１０及び／又はマップウィンドウ６２０に、ロボットのベース部に対するヘッド部の位置をユーザに見えるようにする拡大オーバレイ１７１０を提供する。拡大オーバレイ１７１０は、全３６０度視野に対するロボットセンサシステム４００の現在の視野３２２，４４２，４５２（図示の例では１７２０で示されている）をユーザに認識可能にする。これによりユーザは（例えばヘッド部１６０及び／又はベース部１２０の）回転を現在の視野３２２，４４２，４５２の外に選択することが可能になる。
【０２７８】
ユーザは仮想ヘッド部１７２８を該当点に回転させるために第１及び第２リング１７１１及び１７２４で画定されるゾーン内をクリックすることができる。ユーザが仮想ヘッド部１７２８を回転させると、ロボットヘッド部１６０がリアルタイムに移動し、テレプレゼンスソフトウェアアプリケーション６０１がリモートビデオフィードウィンドウ６１０のリモートビュー６１２に表示されるロボットカメラ３２０からのライブビデオフィードもリアルタイムに更新することができる。図示の例では、拡大オーバレイ１７１０はロボットベース部に対応する仮想ベース部１７２６及び仮想ベース部１７２６に対してロボット１００の現在の姿勢に対応する角度及び／又は向きに配置されたロボットヘッド部１６０に対応する仮想ヘッド部１７２８を有する。いくつかの実施形態において、仮想ベース部１７２６及び仮想ヘッド部１７２８の一方は固定であるが、他方は固定のものに対して移動自在である。
【０２７９】
ユーザがヘッド部１７２８を現在の視野１７２０外に回転させるために第１及び第２リング１７２２及び１７２４で画定されたゾーン内をクリックすると、ロボット１００はヘッド部１６０及び／又はベース部１２０をユーザのコマンドを達成すべく回転させる。いくつかの例では、ユーザコマンドに従ってヘッド部１６０が回転後、ベース部１２０を回転させ、次にヘッド部１６０を中心位置に移動させることができる。このような位置の変化は、ユーザが次にロボットをその前の回転に基づいて再配置しようとする場合に問題になる。これを緩和するために、所定の実施形態はヘッド部回転を受け入れるためにベース部回転の要求を低減するシステムを使用することができる。例えば、仮想ヘッド部１７２８がある角度回転したとき、カウンタを開始させることができる。ロボットヘッド部１６０がその角度に指定の期間とどまる場合、システムはヘッド部１６０をベース部１２０に対して中心にするために、ベース部１２０をゆっくり回転させると同時にヘッド部１６０を反対方向に同じ速度で回転させることができる。これにより、現在の対象が視野内に維持されるとともに、ヘッド部１６０及びベース部１２０が整列状態になり、前進規準系がユーザの視ている方向により決定される。更に、ユーザがその方向を更に見続けたい場合には、ヘッド部１６０の全パンニンブ範囲が使用可能である。
【０２８０】
図１８は、例えばテレプレゼンスソフトウェアアプリケーション６０１におけるユーザコマンドに対応するロボットイベントの模範的なシーケンスを示す。初期状態において、ロボット１００は１つの位置から他の位置へ移動するための駆動コマンドを受信し得る。このコマンドはオペレータ開始、行動開始（例えばコントローラの制御システムで実行する行動）又はプランナ開始（例えば、予め計画されたタスク又はルーチン）とすることができる。この例では、コマンドは新しい方向に対し反対方向に移動する新しい進行方向を含むことができる。このコマンドに応答して、ロボット１００はそのヘッド部１６０をパンニング限界に向かって（左または右に）回すことができる。パンニング限界に到達後に、ロボット１００は、ヘッド部を新しい進行方向まで回転するために、ベース部１２０を（所定の位置でホロノミックに）回転してヘッド部１６０の運動を可能にする。「パンニング限界」とは、ロボットの上部がロボットの下部に対してそれ以上物理的に回転できなくなる点、上部が下部に対して所定の回転度数不整列である点を言いことができ、及び／又は「パンニング限界」は上部が下部に対して不整列である度数及び上部が下部に対して不整列であった時間の長さの関数とすることができる。
【０２８１】
いくつかの実施形態において、ロボット１００はベース部１２０を回転し続けるため、前進駆動方向Ｆは新しい進行方向と一致し、よってヘッド部１６０は相対的に等しい左／右パンニング能力を提供する。ロボット１００はベース部を回転させるとき、同時にヘッド部１６０を進行方向に回転させることができ、必要に応じヘッド部１６０のセンサ３２０，４５０，４５０ｂの視野３２２，４５２が新しい進行方向を指すように回転させることができる。いくつかの実施形態において、ロボット１００は、ヘッド部１６０が相対的により速く新しい進行方向に向くように、ベース部１２０及びヘッド部１６０を一緒に回転させる。ベース部１２０が回転しすぎると、ヘッド部１６０は整列を回復するためにカウンターパンすることができる。
【０２８２】
図１９は、テレプレゼンスソフトウェアアプリケーション６０１がロボット１００から受信したリモートビデオフィード上にスクリーンインジケータ１９１０をオーバレイ表示する模範的なリモートビュー６１２を示す。スクリーンインジケータ１９１０はマウスカーソル１９１２の近くに表示することができ、現在のヘッド部運動範囲を示すことができる。ユーザはマウスカーソル１９１２を（ヘッド部をその指示点まで移動させるためにクリックすることを意図して）リモートビデオビュー６１２の左側又は右側に向け移動させると、オンスクリーンインジケータ１９１０がカーソル１９１２の上に表示され、ヘッド部の運動がその方向にどのぐらい維持されるか（例えば、ヘッド部１６０の残存運動範囲がどのくらい使用可能か）を示すことができる。
【０２８３】
ハイライトボックス１９２０はリモートビデオビュー６１２内の関心のあるエリアを強調する。ユーザは、例えばボックスをスクリーン上にドラッグ・アンド・ドロップすることによって、及び／又は、関心のあるエリアの周囲のボックスをクリックして開けることによって、リモートビデオビュー６１２の一部分上の関心のあるエリアの周囲にハイライトボックス１９２０を生成することができる。これに応答して、テレプレゼンスソフトウェアアプリケーション６０１はロボットヘッド部１６０をハイライトボックス１９２０の中心に移動させることができる。更に、カメラ３２０はハイライトボックス１９２０の寸法に合致するようにズームインすることができる。
【０２８４】
図２０Ａ−２０Ｂを参照すると、いくつかの実施形態において、ロボット１００が通信接続性を突然失うと（例えば無線信号の損失）、ロボット１００はその目的地への走行を停止又は継続することができる。テレプレゼンスロボットが環境中を移動するとき、通信が中断されることがあり、これは、例えばロボット１００は様々な無線アクセスポイントの間の移行部を移動するため及び／又は弱い信号強度の結果としてデータ伝送の中断に遭遇するためである。自律航行を継続させることによって、ロボットが所望の目的地に到達するまでに通信を回復させることができる。
【０２８５】
ロボット１００が通信接続性の損失を経験すると、ロボット１００は、目的地への航行を続行するために、最後の信頼できる位置／姿勢（コントローラ５００によりローカルに格納されている）及び／又は現在決定された位置／姿勢（ロボットセンサシステム４００に基づく）を参照することができる。ロボット経路が計画経路である場合、ロボット１００は目的地まで計画経路を再開する。他方、ユーザが目的までロボット１００を遠隔操作する場合には、ロボット１００は通信接続性（無線周波数及び／又はワイヤレス）があった最も近い／最後の信頼できる位置まで計画経路を辿ることができる。或いは又、ロボット１００は最短経路（即ち、新経路）に沿って通信接続性があった最も近い／最後の信頼できる位置まで走行することができる。
【０２８６】
最も近い／最後の信頼できる位置に到達後、ロボット１００は、通信接続性が再設定されたか決定し、そうであれば、目的地に到達したかどうかを決定する。通信接続性が再設定されなかった場合には、ロボット１００はそのビデオ記録（及びセンサシステム４００の任意の他のセンサデータ）に同期してコントローラ５００により格納された次の信頼できる位置に移動する。更に、目的地に到達していないが、通信接続性は再設定された場合には、コントローラ５００は避難寄港対策を実行し、これはセンサデータを記録し続け、ロボット側ユーザインタフェース（ウェブパッド３１０上）に通信接続性の損失のためにセッションは終了したことを示す必要がある。ロボット１００は、（ＯＤＯＡを用いて）最後の信頼できる位置へ移動するために経路計画を再アクセス及び／又は実行することによって接続性の回復割合を向上させることができる。ロボット１００は場合によってはよりよい通信受信を獲得するためにそのアンテナ４９０ａ，４９０ｂを動かすことができる。ロボット１００はモバイルアドホックネットワーク（ＭＡＮＥＴ）を使用することができ、これは無線リンクで接続されたモバイルデバイスの自己設定型インフラストラクチュアレスネットワークである。
【０２８７】
いくつかの例では、ロボット１００は通信が失われた位置及び通信が再設定された位置をマークすることによってロボットマップ８２０のインテグリティ／精度を向上させることができる。ロボット１００は既知の接続性（例えばＷＬＡＮウォームゾーン又は高信号ゾーン）を有するエリアに移動するためにウェイポイントナビゲーションを使用することができる。ウェイポイントは物理的空間内の点を特定する座標の組である。ロボット１００は目的地に到達するためにロボットマップ８２０に設定されたウェイポイントを使用することができる。
【０２８８】
追加の避難寄港対策は、ロボットマップ８２０に基づいて最も近い最低通行量エリアへの経路を計画すること、又は最も近くの充電／ドッキングステーションに移動することを含むことができる。いくつかの例では、ロボット１００は、Ｗｉ−Ｆｉブリッジ６０２として作用するようにマルチ入力及びマルチ出力（ＭＩＭＯ）用の多数のアンテナ４９０ａ，４９０ｂを有することができる最も近い別のロボット１００に向け移動することができる。
【０２８９】
本明細書に記載したシステム及び技術の様々な実施形態はディスプレイ電子回路、集積回路、特別に設計された特定用途向け集積回路（ＡＳＩＣ）、コンピュータハードウェア、ファームウェア、及び／又はそれらの組み合わせで実現できる。これらの様々な実施形態は、ストレージシステム、少なくとも１つの入力装置及び少なくとも１つの出力装置から及びへとデータ及び命令を受信及び送信するように結合された少なくとも１つのプログラマブルプロセッサ（専用又は汎用とし得る）を含むプログラマブルシステム上で実行可能及び／又は解釈可能な１つ以上のコンピュータプログラムに実装することができる。
【０２９０】
これらのコンピュータプログラム（プログラム、ソフトウェア、アプリケーション又はコードとしても知られている）は、プログラマブルプロセッサのための機械命令を含み、高レベルプロシージャ及び／又はオブジェクト指向プログラミング言語及び／又はアセンブリ／機械言語で実装できる。本明細書で使用される「機械読み取り可能な媒体」及び「コンピュータ読み取り可能な媒体」とは、機械命令又はデータをプログラマブルプロセッサに提供するために使用される任意のコンピュータプログラム製品、装置及び／又はデバイス（例えば、磁気ディスク、光ディスク、メモリ、プログラミング論理デバイス（ＰＬＤ）を指し、機械読み取り可能な信号として機械命令を受信する機械読み取り可能な媒体を含む。「機械読み取り可能な信号」とは機械命令及び／又はデータをプログラマブルプロセッサに提供するために使用される任意の信号を指す。
【０２９１】
本明細書に記載した要旨及び機能操作の実施形態はディジタル電子回路又はコンピュータソフトウェア又はハードウェアで実現でき、本明細書に開示した構造及びそれらの等価構造又はそれらの１つ以上の組み合わせを含む。本明細書に記載した要旨の実施例は、１つ以上のコンピュータプログラム製品、即ちコンピュータ読み取り可能な媒体上に符号化された、データ処理装置で実行するための又はその動作を制御するための１つ以上のコンピュータプログラム命令モジュールとして実装できる。コンピュータ読み取り可能な媒体は機械読み取り可能なストレージデバイス、機械読み取り可能なストレージデバイス、メモリデバイス、機械読み取り可能な伝播信号に影響を与える組成物とすることができる。「デバイス処理装置」はデータを処理するあらゆる装置、デバイス及び機械を包含し、例えばプログラマブルプロセッサ、コンピュータ、又は複数のプログラマブル又はコンピュータを含む。装置は、ハードウェアに加えて、問題のコンピュータプログラムに対する実行環境を生成するコード、例えばプロセッサファームウェア、プロトコルスタック、データベースマネジメントシステム、オペレーティングシステム又はそれらの１以上の組み合わせを構成するコードを含むことができる。伝播信号は人工的に生成される信号、例えば適切な受信装置へ送信する情報を符号化するために生成される機械生成電気信号、光信号又は電磁信号である。
【０２９２】
コンピュータプログラム（プログラム、ソフトウェア、アプリケーション、スクリプト又はコードとしても知られている）は、コンパイル型言語又はインタプリータ型言語などの任意のプログラミング言語の形で書き込むことができるとともに、任意の形で展開することができ、例えばスタンドアロンプログラムとして、又はモジュール、コンポーネント、サブルーチン又はコンピューティング環境に適切な他のユニットとして展開することができる。コンピュータプログラムは必ずしもファイルシステムのファイルに対応させる必要はない。プログラムは他のプログラム又はデータ（例えばマークアップ言語ドキュメントに格納されている１以上のスクリプト）を保持するファイルの一部分に、問題のプログラムに専用の単一ファイルに、又は複数の協調ファイル（例えば、１以上のモジュール、サブプログラム又はコードの一部分を格納するファイル）に格納することができる。コンピュータプログラムは、１つのコンピュータで、又は１つのサイトに位置する又は複数のサイトに分散され、通信ネットワークで相互接続されている複数のコンピュータで実行されるように展開することができる。
【０２９３】
本明細書に記載したプロセス及び論理フローは、入力データを処理し出力を生成することによって種々の機能を実行するために、１以上のコンピュータプログラムを実行する１以上のプログラマブルプロセッサによって実行することができる。このプロセス及び論理フローは、専用の論理回路、例えばフィールドプログラマブルゲートアレイ（ＦＰＧＡ）又はＡＳＩＣ、によって実行することもでき、その装置はこのような専用の論理回路として実装することもできる。
【０２９４】
コンピュータプログラムの実行に適切なプロセッサは、例えば汎用の及び専用の両マイクロプロセッサ、及び任意の種類のディジタルコンピュータのいずれか１つ以上を含むことができる。一般に、プロセッサは読み取り専用メモリ又はランダムアクセスメモリ又はその両方からの命令及びデータを受信する。コンピュータの本質的な要素は命令を実行するプロセッサ及び命令及びデータを格納する１以上のメモリ装置である。一般に、コンピュータは、１以上の大容量のデータ記憶装置、例えば磁気ディスク、磁気光学ディスク又は光ディスクも含み、またそれらからデータを受信し又はデータをそれらに転送するように動作可能に結合される。しかしながら、コンピュータはこのような装置を含む必要はない。更に、コンピュータは別の装置、２〜３例を挙げると、例えば形態電話、携帯情報端末（ＰＤＡ）、携帯オーディオプレーヤ、グローバル・ポジショニング・システム（ＧＰＳ）受信機、に組み込むことができる。コンピュータプログラム命令及びデータを格納するために適切なコンピュータ読み取り可能な媒体はすべての形態の不揮発性メモリ、メディア及びメモリ装置を含み、一例を挙げれば、ＥＰＲＯＭ，ＥＥＰＲＯＭ及びフラッシュメモリデバイスなどの半導体メモリ装置、内部ハードディスク又はリムーバブルディスクなどの磁気ディスク、磁気光学ディスク、及びＣＤＲＯＭ及びＤＶＤ−ＲＯＭディスクがある。プロセッサ及びメモリは専用論理回路により補完することができ、またこの回路に組み込むこともできる。
【０２９５】
本明細書に記載した要旨の実施形態はコンピューティングシステムで実現でき、該システムは、バックエンドコンポーネント、例えばデータサーバと、ミドルウェアコンポーネント、例えばアプリケーションサーバと、フロントエンドコンポーネント、例えば本明細書に記載した要旨の実施形態とインタラクトするグラフィックユーザインタフェース又はウェブブラウザを有するクライアントコンピュータとを含むか、或いは１以上のこのようなバックエンド、ミドルウェア又はフロントエンドコンポーネントの任意の組合せを含むことができる。このシステムのコンポーネントは任意の形又は媒体のディジタルディジタルデータ通信、例えば通信ネットワーク、によって相互接続することができる。通信ネットワークの例には、ローカルエリアネットワーク（ＬＡＮ）及びワイドエリアネットワーク（ＷＡＮ）、例えばインターネットがある。
【０２９６】
コンピューティングシステムはクライアント及びサーバを含むことができる。クライアント及びサーバは一般に互いにリモートであり、一般に通信ネットワークを介してインタラクトする。クライアントとサーバの関係は互いにクライアント−サーバ関係を有するそれぞれのコンピュータ上で動くコンピュータプログラムに起因して生じる。
【０２９７】
本明細書は多くの特徴を含むが、これらの特徴はどちらかというと本発明の特定の実施形態に特有の特徴として記載しており、本発明の範囲又は請求の範囲に記載の範囲を限定するものとして解釈すべきでない。個別の実施形態と関連して本明細書に記載したいくつかの特徴は単一の実施形態において組み合わせて実施することもできる。逆に、単一の実施形態と関連して記載した様々な特徴は複数の実施形態において個別に又は任意の適切な部分組合せで実施することもできる。更に、いくつかの特徴はいくつかの組合せで作用するものとして上記され、最初に請求の範囲に記載されるかもしれないが、請求の範囲に記載の組み合わせからの１つ以上の特徴を場合によってはその組合せから削除することができ、請求の範囲に記載の組み合わせは部分組み合わせ又は部分組み合わせの変形を向けられているものとし得る。
【０２９８】
同様に、オペレーションが図に特定の順序で示されているが、これは、これらのオペレーションが図示の特定の順序で又はシーケンシャル順序で実行されなければならないこと、また所望の結果を達成するために図示のすべてのオペレーションが実行されなければならないことを要求するもの理解すべきではない。所定の状況では、マルチタスク及び並列処理が有利である。更に、上記の実施形態における様々なシステムコンポーネントの分離は、すべての実施形態においてこのような分離が必要とされるものと解釈すべきでなく、記載したプログラムコンポーネント及びシステムは単一のソフトウェア製品に統合することができ、また多数のソフトウェア製品にパッケージすることができる。
【０２９９】
多数の実施形態について記載した。それにも係らず、本開示の制御システムの予備範囲から逸脱することなく様々な変更を成し得ることを理解されたい。従って、他の実施形態も下記の請求の範囲に含まれる。例えば、請求の範囲に記載した動作は異なる順序で実行しも所望の結果を達成することができる。
【図１】
0005905031.tif 000008
【図２】
0005905031.tif 000009
【図３Ａ】
0005905031.tif 000010
【図３Ｂ】
0005905031.tif 000011
【図３Ｃ】
0005905031.tif 000012
【図４Ａ】
0005905031.tif 000013
【図４Ｂ】
0005905031.tif 000014
【図４Ｃ】
0005905031.tif 000015
【図４Ｄ】
0005905031.tif 000016
【図４Ｅ】
0005905031.tif 000017
【図４Ｆ】
0005905031.tif 000018
【図５】
0005905031.tif 000019
【図６Ａ】
0005905031.tif 000020
【図６Ｂ】
0005905031.tif 000021
【図６Ｃ】
0005905031.tif 000022
【図６Ｄ】
0005905031.tif 000023
【図７】
0005905031.tif 000024
【図８Ａ】
0005905031.tif 000025
【図８Ｂ】
0005905031.tif 000026
【図８Ｃ】
0005905031.tif 000027
【図８Ｄ】
0005905031.tif 000028
【図８Ｅ】
0005905031.tif 000029
【図８Ｆ】
0005905031.tif 000030
【図９Ａ】
0005905031.tif 000031
【図９Ｂ】
0005905031.tif 000032
【図１０Ａ】
0005905031.tif 000033
【図１０Ｂ】
0005905031.tif 000034
【図１０Ｃ】
0005905031.tif 000035
【図１０Ｄ】
0005905031.tif 000036
【図１０Ｅ】
0005905031.tif 000037
【図１０Ｆ】
0005905031.tif 000038
【図１０Ｇ】
0005905031.tif 000039
【図１１Ａ】
0005905031.tif 000040
【図１１Ｂ】
0005905031.tif 000041
【図１１Ｃ】
0005905031.tif 000042
【図１１Ｄ】
0005905031.tif 000043
【図１２】
0005905031.tif 000044
【図１３】
0005905031.tif 000045
【図１４】
0005905031.tif 000046
【図１５Ａ】
0005905031.tif 000047
【図１５Ｂ】
0005905031.tif 000048
【図１６Ａ】
0005905031.tif 000049
【図１６Ｂ】
0005905031.tif 000050
【図１６Ｃ】
0005905031.tif 000051
【図１６Ｄ】
0005905031.tif 000052
【図１７】
0005905031.tif 000053
【図１８】
0005905031.tif 000054
【図１９】
0005905031.tif 000055
【図２０Ａ】
0005905031.tif 000056
【図２０Ｂ】
0005905031.tif 000057
【図２０Ｃ】
0005905031.tif 000058