(57)【要約】【解決手段】以下の方法操作、複数のセンサを含むロボットを使用して、ローカル環境についてのセンサデータを取得することと、センサデータを処理してローカル環境の空間モデルを生成することであって、空間モデルがローカル環境中の実表面に対応する仮想表面を定義する、生成することと、センサデータをさらに処理して空間モデルによって定義される仮想表面に関連付けられる質感情報を生成することと、ローカル環境においてヘッドマウントディスプレイ（ＨＭＤ）の位置及び向きを追跡することと、空間モデル、質感情報、ならびにＨＭＤの追跡された位置及び向きを使用してローカル環境に対応する仮想空間のビューをレンダリングすることと、ＨＭＤを介して仮想環境のビューを提示することとを含む方法を提供する。【選択図】図１Ａ
2021508520.tif 000002
【特許請求の範囲】
【請求項１】
複数のセンサを含むロボットを使用して、ローカル環境についてセンサデータを取得することと、
前記センサデータを処理して、前記ローカル環境の空間モデルを生成することであって、前記空間モデルが前記ローカル環境中の実表面に対応する仮想表面を定義する、前記生成することと、
前記センサデータをさらに処理して、前記空間モデルによって定義される前記仮想表面に関連付けられる質感情報を生成することと、
ヘッドマウントディスプレイ（ＨＭＤ）の位置及び向きを前記ローカル環境において追跡することと、
前記空間モデル、前記質感情報、及び前記ＨＭＤの前記追跡された位置及び向きを使用して、前記ローカル環境に対応する仮想空間のビューをレンダリングすることと、
前記ＨＭＤを介して仮想環境の前記ビューを提示することと、
を含む、方法。
【請求項２】
前記ローカル環境中の前記ＨＭＤの前記位置は、パースペクティブを定義し、前記パースペクティブから前記仮想空間の前記ビューはレンダリングされる、請求項１に記載の方法。
【請求項３】
前記ローカル環境中の前記ＨＭＤの前記向きは、前記仮想空間の前記ビューの方向を定義する、請求項１に記載の方法。
【請求項４】
前記仮想空間の前記ビューをレンダリングすることは、前記仮想表面のうちの１つ以上をレンダリングすることを含み、前記仮想表面は前記仮想表面のうちの前記１つ以上に関連付けられる前記質感情報を使用して、前記空間モデルによって定義される、請求項１に記載の方法。
【請求項５】
前記センサは、少なくとも１つの画像キャプチャデバイス、及び少なくとも１つのデプスカメラを含み、前記センサデータは、前記画像キャプチャデバイスによってキャプチャされる画像データ、及び前記デプスカメラによってキャプチャされる深度データを含む、請求項１に記載の方法。
【請求項６】
前記質感情報は、拡散マップ、バンプマップ、及び／またはスペキュラマップのうちの１つ以上を含む、請求項１に記載の方法。
【請求項７】
前記ロボットを使用して前記センサデータを取得することは、
前記ロボットを前記ローカル環境内の複数の位置に移動させること、及び
前記ロボットの前記センサを前記位置のそれぞれに使用して前記ローカル環境を感知し、前記センサデータを生成すること、
を含む、請求項１に記載の方法。
【請求項８】
前記センサデータを取得することは、複数の角度から前記ローカル環境における実表面の画像をキャプチャすることを含み、
前記センサデータを処理して前記質感情報を生成することは、前記複数の角度からキャプチャされる前記画像を処理して、前記実表面に対応する前記空間モデルによって定義される所与の仮想表面について質感情報を生成することを含む、
請求項１に記載の方法。
【請求項９】
ロボットを使用してローカル環境において複数の照明条件を達成し、前記ロボットの複数のセンサを使用して前記複数の照明条件下で前記ローカル環境についてのセンサデータを取得することと、
前記センサデータを処理して前記ローカル環境の空間モデルを生成することであって、前記空間モデルが前記ローカル環境中の実表面に対応する仮想表面を定義する、前記生成することと、
前記センサデータをさらに処理して、前記空間モデルによって定義される前記仮想表面に関連付けられる質感情報を生成することと、
を含む、方法。
【請求項１０】
前記ロボットを使用して前記複数の照明条件を達成することは、前記ロボットによって住宅用照明制御システムにアクセスして１つ以上のライトを前記ローカル環境において制御することを含む、請求項９に記載の方法。
【請求項１１】
前記ロボットを使用して前記複数の照明条件を達成することは、前記ロボットに含まれるライトを使用して前記ローカル環境の少なくとも一部分を照明することを含む、請求項９に記載の方法。
【請求項１２】
前記ロボットを使用して前記複数の照明条件を達成することは、前記ローカル環境中の光源からの光が前記ローカル環境中の表面に直接到達するのを遮断するように前記ロボットを１つ以上の位置に移動させることを含む、請求項９に記載の方法。
【請求項１３】
前記センサは、少なくとも１つの画像キャプチャデバイス、及び少なくとも１つのデプスカメラを含み、前記センサデータは、前記画像キャプチャデバイスによってキャプチャされる画像データ、及び前記デプスカメラによってキャプチャされる深度データを含む、請求項９に記載の方法。
【請求項１４】
前記質感情報は、拡散マップ、バンプマップ、及び／またはスペキュラマップのうちの１つ以上を含む、請求項９に記載の方法。
【請求項１５】
前記ロボットを使用して前記センサデータを取得することは、前記ロボットを前記ローカル環境内の複数の位置に移動させ、前記ロボットの前記センサを前記位置のそれぞれに使用して前記ローカル環境を感知し、前記センサデータを生成することを含む、請求項９に記載の方法。
【請求項１６】
ローカル環境においてロボットによって実行される方法であって、
前記ローカル環境中の第一位置に位置決めされる前記ロボットの画像キャプチャデバイスによって前記ローカル環境の第一画像をキャプチャすることであって、前記第一画像をキャプチャすることは前記ローカル環境における実表面のキャプチャを有する、前記キャプチャすることと、
前記第一画像を処理して前記実表面の質感情報を決定し、可能性のあるエラーが前記実表面の前記決定された質感情報に存在することをさらに判定することと、
前記可能性のあるエラーを判定することに応答して、前記ロボットを第二位置に移動させ、前記第二位置において前記画像キャプチャデバイスによって前記ローカル環境の第二画像をキャプチャすることであって、前記第二画像をキャプチャすることは前記第二位置から定義されるパースペクティブからの前記実表面のキャプチャを含む、前記キャプチャすることと、
前記第二画像を処理して前記実表面の前記決定された質感情報において前記可能性のあるエラーを検証し、前記実表面の前記決定された質感情報において前記可能性のあるエラーを訂正することと、
を含む、方法。
【請求項１７】
前記第二画像を処理して前記実表面の前記決定された質感情報において前記可能性のあるエラーを検証することは、前記第一画像の一部分を前記第二画像の対応する部分と比較することを含み、前記第一画像及び前記第二画像の前記部分が前記実表面の同じ領域からのものである、請求項１６に記載の方法。
【請求項１８】
前記可能性のあるエラーを訂正することは、前記第二画像の前記処理に基づき、前記実表面の前記決定された質感情報の一部分を置き換えることを含む、請求項１６に記載の方法。
【請求項１９】
前記質感情報は、色及び表面構造のうちの１つ以上を定義する、請求項１６に記載の方法。
【請求項２０】
ローカル環境においてロボットによって実行される方法であって、
前記ローカル環境の第一深度画像を、前記ローカル環境中の第一位置に位置決めされる前記ロボットのデプスカメラによってキャプチャすることと、
前記第一深度画像を処理して前記ローカル環境の空間構造を決定し、可能性のあるエラーが前記ローカル環境の前記決定された空間構造に存在することをさらに判定することと、
前記可能性のあるエラーを判定することに応答して、前記ロボットを第二位置に移動させ、前記第二位置において前記デプスカメラによって前記ローカル環境の第二深度画像をキャプチャすることであって、前記第二深度画像をキャプチャすることは前記第二位置から定義されるパースペクティブから前記ローカル環境のキャプチャを含む、前記キャプチャすることと、
前記第二画像を処理して前記決定された空間構造において前記可能性のあるエラーを検証し、前記決定された空間構造において前記可能性のあるエラーを訂正することと、
を含む、方法。
【請求項２１】
前記第二深度画像を処理して前記決定された空間構造において前記可能性のあるエラーを検証することは、前記第一深度画像の一部分を前記第二深度画像の対応する部分と比較することを含み、前記第一深度画像及び前記第二深度画像の前記部分が前記ローカル環境の同じ領域からのものである、請求項２０に記載の方法。
【請求項２２】
前記可能性のあるエラーを訂正することは、前記第二画像の前記処理に基づき、前記ローカル環境の前記決定された空間構造の一部分を置き換えることを含む、請求項２０に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、モバイルロボットを用いる動的カメラ位置決め及び照明による空間キャプチャ、モデル化、及び質感再構築、ならびに関連した方法、装置、及びシステムに関する。
【背景技術】
【０００２】
ビデオゲーム業界は、長年にわたって多くの変化を見せてきた。コンピューティング能力が拡大するにつれて、ビデオゲームの開発者も同様に、コンピューティング能力におけるこれらの向上を利用するゲームソフトウェアを作成している。このため、ビデオゲーム開発者は、高度な演算と数学を組み込むゲームを符号化して、非常に詳細で魅力的なゲーム体験を生み出している。
【０００３】
ゲームプラットフォームの例には、Ｓｏｎｙ  Ｐｌａｙｓｔａｔｉｏｎ（登録商標）、Ｓｏｎｙ  Ｐｌａｙｓｔａｔｉｏｎ２（登録商標）（ＰＳ２）、Ｓｏｎｙ  Ｐｌａｙｓｔａｔｉｏｎ３（登録商標）（ＰＳ３）、及びＳｏｎｙ  Ｐｌａｙｓｔａｔｉｏｎ４（登録商標）（ＰＳ４）が含まれ、それぞれゲームコンソールの形で販売されている。よく知られているように、ゲームコンソールは、ディスプレイ（通常はテレビ）に接続され、ハンドヘルドコントローラを介するユーザインタラクションを可能にするように設計されている。ゲームコンソールは、ＣＰＵ、集中的なグラフィックス操作を処理するためのグラフィックスシンセサイザ、ジオメトリ変換を実行するためのベクトルユニット、ならびに他のグルーハードウェア、ファームウェア、及びソフトウェアを含む、専用の処理ハードウェアによって設計されている。さらに、ゲームコンソールは、ゲームコンソールを介するローカルプレイのためのゲームディスクを受信するための光ディスクリーダーによって設計されることができる。ユーザがインターネットを介して他のユーザに対して、または他のユーザと一緒にインタラクティブにプレイすることができる、オンラインゲームも可能である。ゲームの複雑さがプレーヤーを魅了し続けるにつれて、ゲーム及びハードウェアの製造業者は革新を続け、追加のインタラクティビティ及びコンピュータプログラムを可能にした。
【０００４】
コンピュータゲーム業界において成長傾向にあるのは、ユーザとゲームシステムとの間のインタラクションを高めるゲームを開発することである。より豊かなインタラクティブエクスペリエンスを実現する１つの方法は、プレーヤーの動きを追跡し、これらの動きをゲームについての入力として使用するために、ゲームシステムによって動きが追跡されるワイヤレスゲームコントローラを使用することである。概して、ジェスチャ入力は、コンピューティングシステム、ビデオゲームコンソール、スマートアプライアンスなどのような電子デバイスを、プレーヤーが作成し、電子デバイスがキャプチャする何らかのジェスチャに反応させることを指す。
【０００５】
より没入型のインタラクティブエクスペリエンスを実現する別の方法は、ヘッドマウントディスプレイ（ＨＭＤ）を使用することである。ヘッドマウントディスプレイは、ユーザが装着し、仮想空間のビューなどのさまざまなグラフィックスを提示するように設定されることができる。ヘッドマウントディスプレイ上に提示されるグラフィックスは、ユーザの視野の大部分またはすべてさえカバーできる。したがって、ヘッドマウントディスプレイは、ユーザに視覚的に没入型エクスペリエンスを提供することができる。
【０００６】
ヘッドマウントディスプレイ（ＨＭＤ）は、ユーザの動きに応じた方法で仮想環境の３次元リアルタイムビューをレンダリングするため、ＨＭＤは、没入型の仮想現実エクスペリエンスを提供する。ＨＭＤを装着しているユーザは、全方向に自由に移動できるため、ＨＭＤを介して全方向に仮想環境のビューを提供されることができる。ＨＭＤ上でレンダリングするために高品質ビデオを（例えば、高解像度及びフレームレートで）生成するために必要な処理リソースは、かなりあるため、パーソナルコンピュータまたはゲームコンソールなどの別個のコンピューティングデバイスによってハンドリングされることができる。これらのようなシステムでは、コンピューティングデバイスは、ＨＭＤにレンダリングするためのビデオを生成し、そのビデオをＨＭＤに送信する。
【０００７】
ただし、ＨＭＤを装着している場合、ユーザは、自分が置かれているローカル環境を見ることができない。
【０００８】
この文脈において、本開示の実施態様が生じる。
【発明の概要】
【０００９】
本開示の実施態様は、モバイルロボットを用いる動的カメラ位置決め及び照明を介する空間キャプチャ、モデル化、及び質感再構築に関する、デバイス、方法及びシステムを含む。
【００１０】
いくつかの実施態様では、以下の方法操作、複数のセンサを含むロボットを使用してローカル環境についてのセンサデータを取得することと、センサデータを処理してローカル環境の空間モデルを生成することであって、空間モデルがローカル環境中の実表面に対応する仮想表面を定義する、生成することと、センサデータをさらに処理して空間モデルによって定義される仮想表面に関連付けられる質感情報を生成することと、ローカル環境においてヘッドマウントディスプレイ（ＨＭＤ）の位置及び向きを追跡することと、空間モデル、質感情報、ならびにＨＭＤの追跡された位置及び向きを使用してローカル環境に対応する仮想空間のビューをレンダリングすることと、ＨＭＤを介して仮想環境のビューを提示することとを含む方法を提供する。
【００１１】
いくつかの実施態様では、ローカル環境におけるＨＭＤの位置は、仮想空間のビューがレンダリングされるパースペクティブを定義する。
【００１２】
いくつかの実施態様において、ローカル環境中のＨＭＤの向きは、仮想空間のビューの方向を定義する。
【００１３】
いくつかの実施態様では、仮想空間のビューをレンダリングすることは、仮想表面の１つ以上に関連付けられる質感情報を使用して、空間モデルによって定義される仮想表面の１つ以上をレンダリングすることを含む。
【００１４】
いくつかの実施態様において、これらのセンサは、少なくとも１つの画像キャプチャデバイス、及び少なくとも１つのデプスカメラを含み、センサデータは、画像キャプチャデバイスによってキャプチャされる画像データ、及びデプスカメラによってキャプチャされる深度データを含む。
【００１５】
いくつかの実施態様において、この質感情報は、拡散マップ、バンプマップ、及び／またはスペキュラマップのうちの１つ以上を含む。
【００１６】
いくつかの実施態様において、ロボットを使用してセンサデータを取得することは、ロボットをローカル環境内の複数の位置に移動させ、これらの位置のそれぞれにおいてロボットのセンサを使用してローカル環境を感知し、センサデータを生成することを含む。
【００１７】
いくつかの実施態様において、センサデータを取得することは、複数の角度からローカル環境中で実表面の画像をキャプチャすることを含み、そしてセンサデータを処理して質感情報を生成することは、これらの複数の角度からキャプチャされる画像を処理して実表面に対応する空間モデルによって定義される所与の仮想表面について質感情報を生成することを含む。
【００１８】
いくつかの実施態様において、ロボットを使用してローカル環境において複数の照明条件を達成し、このロボットの複数のセンサを使用して複数の照明条件下でローカル環境についてのセンサデータを取得することと、センサデータを処理してローカル環境の空間モデルを生成することであって、空間モデルがローカル環境中の実表面に対応する仮想表面を定義する、生成することと、センサデータをさらに処理して空間モデルによって定義される仮想表面に関連付けられる質感情報を生成することとを含む方法を提供する。
【００１９】
いくつかの実施態様において、ロボットを使用して複数の照明条件を達成することは、ロボットによって住宅用照明制御システムにアクセスして１つ以上のライトをローカル環境において制御することを含む。
【００２０】
いくつかの実施態様において、ロボットを使用して複数の照明条件を達成することは、ロボットに含まれるライトを使用してローカル環境の少なくとも一部分を照明することを含む。
【００２１】
いくつかの実施態様において、ロボットを使用して複数の照明条件を達成することは、ローカル環境において光源からの光がローカル環境において表面に直接到達するのを遮断するように、ロボットを１つ以上の位置に移動させることを含む。
【００２２】
いくつかの実施態様において、これらのセンサは、少なくとも１つの画像キャプチャデバイス、及び少なくとも１つのデプスカメラを含み、センサデータは、画像キャプチャデバイスによってキャプチャされる画像データ、及びデプスカメラによってキャプチャされる深度データを含む。
【００２３】
いくつかの実施態様において、この質感情報は、拡散マップ、バンプマップ、及び／またはスペキュラマップのうちの１つ以上を含む。
【００２４】
いくつかの実施態様において、ロボットを使用してセンサデータを取得することは、ロボットをローカル環境内の複数の位置に移動させること、及びこれらの位置のそれぞれにおいてロボットのセンサを使用してローカル環境を感知し、センサデータを生成することを含む。
【００２５】
いくつかの実施態様では、ローカル環境においてロボットによって実行される方法を提供し、この方法は、ローカル環境中の第一位置に位置決めされるロボットの画像キャプチャデバイスによってローカル環境の第一画像をキャプチャすることであって、第一画像をキャプチャすることはローカル環境中の実表面のキャプチャを含む、キャプチャすることと、第一画像を処理して実表面の質感情報を決定し、さらに可能性のあるエラーが実表面の決定された質感情報に存在することを判定することと、可能性のあるエラーを判定することに応答して、ロボットを第二位置に移動させ、この第二位置において画像キャプチャデバイスによってローカル環境の第二画像をキャプチャすることであって、第二画像をキャプチャすることは第二位置から定義されるパースペクティブからの実表面のキャプチャを含む、キャプチャすることと、第二画像を処理して実表面の決定された質感情報中の可能性のあるエラーを検証し、実表面の決定された質感情報中の可能性のあるエラーを訂正することとを含む。
【００２６】
いくつかの実施態様において、第二画像を処理して実表面の決定された質感情報において可能性のあるエラーを検証することは、第一画像の一部分を第二画像の対応する部分と比較することを含み、第一画像及び第二画像の部分が実表面の同じ領域からのものである。
【００２７】
いくつかの実施態様において、可能性のあるエラーを訂正することは、第二画像の処理に基づき、実表面の決定された質感情報の一部分を置き換えることを含む。
【００２８】
いくつかの実施態様において、質感情報は、色及び表面構造のうちの１つ以上を定義する。
【００２９】
いくつかの実施態様では、ローカル環境においてロボットによって実行される方法を提供し、この方法は、ローカル環境中の第一位置に位置決めされるロボットのデプスカメラによってローカル環境の第一深度画像をキャプチャすることと、第一深度画像を処理してローカル環境の空間構造を決定し、さらに可能性のあるエラーがローカル環境の決定された空間構造に存在することを判定することと、可能性のあるエラーを判定することに応答して、ロボットを第二位置に移動させ、第二位置においてデプスカメラによってローカル環境の第二深度画像をキャプチャすることであって、第二深度画像をキャプチャすることは第二位置から定義されるパースペクティブからのローカル環境のキャプチャを含む、キャプチャすることと、第二画像を処理して決定された空間構造中の可能性のあるエラーを検証し、決定された空間構造中の可能性のあるエラーを訂正することとを含む。
【００３０】
いくつかの実施態様において、第二深度画像を処理して決定された空間構造において可能性のあるエラーを検証することは、第一深度画像の一部分を第二深度画像の対応する部分と比較することを含み、第一深度画像及び第二深度画像の部分がローカル環境の同じ領域からのものである。
【００３１】
いくつかの実施態様において、可能性のあるエラーを訂正することは、第二画像の処理に基づき、ローカル環境の決定された空間構造の一部分を置き換えることを含む。
【００３２】
本開示の他の態様及び利点は、例として本開示の原理を示す添付の図面と併せて、以下の詳細な説明から明らかになるであろう。
【図面の簡単な説明】
【００３３】
本開示は、添付の図面と併せて以下の説明を参照することによってよりよく理解され得る。
【００３４】
【図１Ａ】本開示の実施態様による、ヘッドマウントディスプレイ（ＨＭＤ）を通して表示される三次元（３Ｄ）空間及び質感再構築のためのシステムを示す。
【００３５】
【図１Ｂ】本開示の実施態様による、物体の３Ｄ再構築を可能にするために、異なる角度から物体をキャプチャするロボットを示す。
【００３６】
【図１Ｃ】本開示の実施態様による、ローカル環境中のさまざまな位置に移動して表面の質感をキャプチャするロボットの俯瞰図を概念的に示す。
【００３７】
【図１Ｄ】本開示の実施態様による、複数のパースペクティブから画像をキャプチャすることができる複数のカメラを含むロボットを示す。
【００３８】
【図２】本開示の実施態様による、物体をキャプチャして物体の３Ｄ再構築を可能にするように設定されるロボットを示す。
【００３９】
【図３】本開示の実施態様による、制御可能なライトを含むさまざまな特徴を有するローカル環境におけるロボット１０８を示す。
【００４０】
【図４】本開示の実施態様による、ローカル環境における照明条件を調整するためのシステムを概念的に示す。
【００４１】
【図５】本開示の実施態様による、モバイルロボットを使用して、ローカル環境中で空間データ及び質感データをキャプチャするときに可能性のあるエラーを克服する方法を示す。
【００４２】
【図６】本開示の実施態様による、ロボットのコンポーネントを概念的に示す概略図である。
【００４３】
【図７Ａ−７Ｇ】本開示の実施態様による、さまざまなタイプのロボットを示す。
【００４４】
【図８】一実施形態による、クライアントシステムとインタフェースするユーザの一例を示し、クライアントシステムは、セカンドスクリーンと呼ばれるセカンドスクリーンのディスプレイにコンテンツを提供する。
【００４５】
【図９】本開示のさまざまな実施形態による、ゲームシステム１４００のブロック図である。
【発明を実施するための形態】
【００４６】
本開示の以下の実施態様は、モバイルロボットを用いる動的カメラ位置決め及び照明を介する空間キャプチャ、モデル化、及び質感再構築に関する、デバイス、方法及びシステムを提供する。しかしながら、当業者には、現在記載されている特定の詳細の一部または全部がなくても本開示を実施することができることが明らかであろう。他の例では、本開示を不必要に不明瞭にしないために、周知のプロセス操作を詳細に説明していない。
【００４７】
図１Ａは、本開示の実施態様による、ヘッドマウントディスプレイ（ＨＭＤ）を通して表示される三次元（３Ｄ）空間及び質感再構築のためのシステムを示す。図示された実施態様において、ユーザ１００は、ヘッドマウントディスプレイ１０５上にレンダリングされる仮想空間／環境のビューとインタラクトすることが示されている。限定ではなく例として、ＨＭＤの一例は、ＰｌａｙＳｔａｔｉｏｎ（登録商標）ＶＲヘッドセットである。いくつかの実施態様において、仮想空間は、ビデオゲームのものである。他の実施態様では、仮想空間は、ローカルに実行されたインタラクティブアプリケーション、クラウドで実行されるアプリケーション、クラウドプラットフォーム、ソーシャルネットワーク、ウェブサイト、テレコミュニケーションプラットフォーム、ビデオ会議、オンラインチャットルームなどを含むが、これらに限定されない、ユーザがインタラクトすることができる仮想空間または仮想環境を提供するいずれかのタイプのアプリケーションまたはプラットフォームの仮想空間である。仮想空間をサポートするこれらのようなアプリケーションまたはプラットフォームが同じ仮想空間において同時にインタラクトする複数のユーザに対応するように設定されることができることが理解されよう。
【００４８】
いくつかの実施態様では、仮想空間を生成するインタラクティブアプリケーション（例えば、ビデオゲーム）は、ローカルコンピューティングデバイス１０６によって実行される。コンピューティングデバイスは、ゲームコンソール、パーソナルコンピュータ、ラップトップコンピュータ、セットトップボックス、タブレット、携帯電話、ポータブルゲームデバイスなどを含むが、これらに限定されない、仮想空間を生成するためにインタラクティブアプリケーションを実行するように設定されることができる、いずれかの種類のデバイスであることができる。いくつかの実施態様では、コンピューティングデバイス１０６は、ローカルエリアネットワーク、ワイドエリアネットワーク、ＷｉＦｉ（登録商標）ネットワーク、セルラーネットワーク、インターネットなどのようなネットワークに接続される。
【００４９】
いくつかの実施態様では、コンピューティングデバイス１０６は、ネットワーク（例えば、インターネット）を介してクラウドサービスプロバイダと通信して、ＨＭＤ１０５上にレンダリングされる仮想空間のビューを取得するシンクライアントである。すなわち、インタラクティブアプリケーションをクラウドサービスプロバイダによって実行して仮想空間を生成し、仮想空間の一次ビューを示すビデオデータを、ネットワーク（例えば、インターネット）を介してコンピューティングデバイス１０６にストリーミングし、次いで、このコンピューティングデバイスがビデオデータを処理して、ＨＭＤ１０５にビューをレンダリングする。
【００５０】
いくつかの実施態様では、コンピューティングデバイス１０６の機能は、ＨＭＤ１０５またはディスプレイ１０４に組み込まれる。
【００５１】
ＨＭＤ１０５を介して表示される仮想空間とインタラクトするために、ユーザ１００は、入力デバイス１０２を操作することができる。入力デバイス１０２は、コントローラ、モーションコントローラ、キーボード、マウス、トラックパッド、ポインタ、ジョイスティック、ゲーム周辺機器などを含むが、これらに限定されない、仮想空間とインタラクトするための入力を提供するのに有用ないずれかのタイプのデバイスであることができる。いくつかの実施態様において、仮想空間は、ビデオゲームのものであり、入力デバイス１０２は、ユーザ１００がビデオゲームに入力を提供して、ビデオゲームのゲームプレイのコンテキスト中のアクション（例えば、キャラクタの、または他の仮想物体の）を制御することなどによって、ビデオゲームのゲーム状態に変化をもたらすことを可能にする。限定ではなく例として、入力デバイスの例は、ＤｕａｌＳｈｏｃｋ（登録商標）４ワイヤレスコントローラ、ＰｌａｙＳｔａｔｉｏｎ（登録商標）Ｍｏｖｅモーションコントローラ、及びＰｌａｙｓｔａｔｉｏｎ（登録商標）ＶＲ照準コントローラなどのビデオゲームコントローラデバイスを含むことができる。
【００５２】
いくつかの実施態様では、画像キャプチャデバイス１０７は、システムが配置されているインタラクティブローカル環境１１０の画像をキャプチャするように設定されている。画像キャプチャデバイスの一例は、ＰｌａｙＳｔａｔｉｏｎ（登録商標）Ｃａｍｅｒａである。コンピューティングデバイス１０６は、キャプチャされた画像を処理し、分析して、限定ではなく例として、入力デバイス１０２などのローカル環境１０１中の物体の位置／向きを決定するように設定されることができる。いくつかの実施態様では、入力デバイス１０２は、ライトまたは他の認識可能な特徴などの追跡可能な特徴を含むことができ、この特徴を、キャプチャされた画像中で認識し、追跡することにより、ローカル環境１０１における入力デバイス１０２の位置／向きの追跡を提供する。さらに、画像キャプチャデバイス１０７によってキャプチャされた画像を分析して、ユーザ１００を識別し、追跡することができる。
【００５３】
上述されるように、ユーザ１００がＨＭＤ１０５を装着しているため、ユーザ１００は、ローカル環境１１０を見ることができない。したがって、いずれかの表面／物体をローカル環境内に含む、ローカル環境をキャプチャし、モデル化すると便利である。大まかに言えば、これは、表面／物体の３Ｄ空間構造をキャプチャし、モデル化すること、そしてまたこれらのような表面／物体の質感をキャプチャし、モデル化することを伴うため、ローカル環境１１０の正確な表現をユーザ１００にレンダリングすることができる。３Ｄ実空間または物体をキャプチャしてモデル化するプロセスは、３Ｄ再構築と称される。ローカル環境１１０のそのようなモデルはリモート仮想現実のユーザがユーザ１００のローカル環境１１０を体験することを可能にすること（例えば、リモート仮想現実のユーザがユーザ１００のローカル環境１１０を仮想的に「訪問する」ことができることを可能にすること）、追加のグラフィックスまたはコンテンツによるローカル環境１１０のレンダリングを拡張する、または変更することなどのような他の用途も有することができることが理解されよう。
【００５４】
大まかに言えば、本開示の実施態様に従って、ロボット１０８を使用して、ローカル環境１１０の空間構造、及びローカル環境１１０における表面の質感をモデル化することを含む、ローカル環境１１０のモデル化を可能にする。これらのようなモデルを使用して、ローカル環境１１０の３Ｄ再構築である仮想空間／環境のビューをレンダリングする（例えば、コンピューティングデバイス１０６によって）ことができる。このビューは、ＨＭＤ１０５を介してユーザ１００に提示されることができ、ユーザ１００が実際のローカル環境１１０に彼らの実世界位置をシミュレートする方法で仮想空間を見ることを可能にする。すなわち、ローカル環境１１０におけるＨＭＤ１０５の位置及び向きを追跡し、ローカル環境１１０のモデルを使用してＨＭＤ１０５を通じて提示される仮想空間のビューをレンダリングし、ローカル環境１１０内のＨＭＤ１０５の位置及び向きは、限定ではなく例として、仮想空間のビューをレンダリングするために使用される空間モデル内のパースペクティブ位置、及び角度方向を決定する。このようにして、ＨＭＤ１０５を通じてユーザ１００に提供される仮想空間のビューは、あたかもユーザ１００がＨＭＤ１０５を装着せずに実際のローカル環境１１０を見ているかのように、実世界ビューを模倣することができる。
【００５５】
本開示の実施態様に従い、ロボット１０８を利用して、ローカル環境１１０を空間的に、かつ質感的にキャプチャし、ローカル環境１１０の３Ｄ再構築を可能にする。図示された実施態様では、ローカル環境１１０は、ユーザ１００が位置している部屋によって定義される。しかしながら、他の実施態様では、ローカル環境１１０はユーザ１００が位置していることができる、いずれかの他のタイプの実空間、設定または位置であることができることが理解されよう。
【００５６】
本開示の実施態様に従い、３Ｄ再構築プロセスは、ローカル環境内の物体の外面に沿った点の３Ｄ座標によって定義される１セットのデータ点である点群の生成を伴う。点群を処理して、通常は三角形、四角形、または他の多角形からなる、ポリゴンメッシュを定義する。ポリゴンメッシュは、１セットの頂点、頂点を接続する辺、及び辺から形成される多角形である面によって定義される。頂点は、点群のデータ点、及び／または点群のデータ点に基づき決定される他の点を含むことができる。ポリゴンメッシュは、ローカル環境の表面の３Ｄ空間モデルを定義する。レンダリング時に、質感を３Ｄメッシュに適用し、ローカル環境のレンダリングされたグラフィック描写を形成する。
【００５７】
上記のように、ロボット１０８を使用して、物体の材質をキャプチャすることができ、それらの材質をシステムが仮想上に再現することを可能にする。このようにして、ホログラフィック空間を作成すること、またはできるだけ正確な仮想世界に実空間を再現することが可能である。可動ロボットによって、例えば、異なる角度で、及び／または異なる照明条件下で、異なる画像を取得することが可能であり、照明条件、グレアなどのような問題を克服することができるため、このシステムは、スタティックカメラまたはカメラを使用して部屋を徹底的に撮影可能なものよりも物体の質感をさらに正確に再現することができる。
【００５８】
本明細書で使用される場合、「質感」は、表面の外観を特徴付ける、この外観に影響する、またはこの外観を決定する実表面または仮想表面のプロパティを指す。限定ではなく例として、それらのようなプロパティは、３Ｄ表面構造、色、反射率、透明度、半透明性などを含むことができる。コンピュータグラフィックスレンダリングのコンテキストでは、仮想表面（例えば、ポリゴンメッシュの多角形などの、３Ｄモデルの表面）への質感の適用は、質感マッピングと称される。質感マッピングは、限定ではなく例として、拡散マッピング、高低マッピング、バンプマッピング、法線マッピング、変位マッピング、反射マッピング、スペキュラマッピング、ミップマップ、オクルージョンマッピングなどを含む、多くのタイプの表面定義技術を有することができる。質感マッピングがモデルまたは数学的記述を使用して質感を作成するプロシージャル質感を利用することができることが理解されよう。そのようなモデルは、本明細書に説明されている本開示の実施態様に従い、ロボット１０８によってキャプチャされたデータから決定されることができる。
【００５９】
したがって、図示された実施態様に示されるように、ロボット１０８は、限定ではなく例として、壁１１２及び１１４、床１１６、敷物１１８、ディスプレイ１０４（例えば、テレビ）、メディアスタンド／キャビネット１２０などのようなローカル環境１１０内のいずれかの物体の空間構造を含む、ローカル環境１１０の３Ｄ空間構造をキャプチャするように設定される。これを達成するために、ロボット１０８は、ローカル環境１１０を１つ以上のセンサによって、そしてローカル環境１１０内の異なる位置からスキャンし、ローカル環境１１０の３Ｄ空間構造のキャプチャを可能にするように設定されることができる。
【００６０】
例えば、ロボット１０８は、１つ以上のデプスカメラ（または距離撮像デバイス／センサ）を含むことができ、これらのデプスカメラは、デプスカメラからの物体の距離を決定することができる。デプスカメラがいずれかの種類の距離撮像デバイス、例えば、タイムオブフライトカメラ（例えば、制御された赤外線（ＩＲ）照明を使用する）、ＬＩＤＡＲ、ステレオカメラ（及びステレオ三角測量を使用する）などであることができることが理解されよう。加えて、ロボット１０８は、ローカル環境１１０の画像／ビデオをキャプチャするための１つ以上の画像キャプチャデバイス（例えば、可視光カメラ）を含むことができる。さらに、ロボット１０８は、さまざまなモーションセンサ（例えば、加速度計、ジャイロスコープ、磁力計、慣性モーションユニット（ＩＭＵ）、ネットワークポジショニングデバイス（例えば、ＧＰＳ、ＷｉＦｉ（登録商標）ポジショニング）などを含むことができ、これらを利用して、ローカル環境１１０内のロボット１０８の位置及び向きを追跡することができる。
【００６１】
それらのようなセンサを利用して、ロボット１０８は、さまざまな位置から画像及びデータをキャプチャすることによって、及び／またはロボット１０８がローカル環境１１０全体を通して移動する場合に、ローカル環境１１０の３Ｄ空間構造をマッピングすることができる。いくつかの実施態様では、ローカル環境１１０の３Ｄ空間構造は、上記のような３Ｄ点群及び／またはポリゴンメッシュモデルなどの３Ｄモデルを生成することによってモデル化される。限定ではなく例として、ロボット１０８は、自己位置推定及びマッピングの同時実行（ＳＬＡＭ）技術などの３Ｄ空間構造をマッピングする、または決定するためのいずれかのさまざまな技法を利用することができる。
【００６２】
言及されるように、質感を仮想空間の内部の仮想物体の表面に適用する。質感をキャプチャするときに、目標は、システムが材質のプロパティをできるだけ正確に再現することができるように材質のプロパティをキャプチャすることである。いくつかの実施態様では、所与の表面についての質感は、表面プロパティマップにおいて具現化される１つ以上のタイプの表面プロパティを含むことができる、質感マップによって定義される。限定ではなく例として、これらは、変位マップ（例えば、表面中のクレバスまたは他のタイプの変位を識別する）、スペキュラマップ（表面の光沢度、及び／または表面が照明、グレアなどにどのように応じるかを識別する）、フレネル（透明／半透明物体について、画角に基づき物体がどのように光を反射する、または屈折させる／透過させるか）などを有することができる。これらのタイプの表面質感プロパティは、ロボット１０８によってキャプチャされ、正確にモデル化され、再現されることができる。ロボット１０８が異なる角度から画像をキャプチャする能力は、所与の表面のプロパティのより正確なキャプチャを可能にする。その上、以下でさらに詳細に考察されるように、所与の表面を異なる、及び／または制御された照明条件下でキャプチャし、表面の質感キャプチャの精度をさらに高めることができる。
【００６３】
いくつかの実施態様では、ローカル環境１１０内の所与の表面を識別し、識別された表面の代表的な部分をサンプリングし、表面の質感を決定する。すなわち、代表的な部分の質感をキャプチャして、モデル化し、表面の仮想表現を表示する（例えば、ＨＭＤ１０５または別のディスプレイを通じて）ためにレンダリングするときに、モデル化された質感を表面全体に適用する。
【００６４】
いくつかの実施態様では、所与の表面の代表的な部分をサンプリングする前に、表面またはその実質的な部分が全体にわたり実質的に同じ、または類似の質感を有することを最初に判定する。換言すれば、表面は、その領域全体にわたって実質的に一貫性のある質感を有すると判定される。限定ではなく例として、これは、表面が実質的に一貫性のある色または色のパターン、反射率、変位、または他の質感プロパティを有すると判定することによって確認されることができる。そのような判定が表面の代表的な部分の質感をキャプチャするときに適用される詳細／感度のレベルと比較して、より低い、またはより高い近似したレベルの詳細及び／または感度で行われることができることが理解されよう。例えば、一部の実施態様では、表面を評価してそれが一貫性のある質感のものであるかどうかを判定するときに、代表的なサンプルが質感でキャプチャされているときよりも質感プロパティが少ないとみなされることができる。一部の実施態様では、所与の質感プロパティに対して、表面の代表的な部分（またはサンプルまたは領域）について所与の質感プロパティをキャプチャするときと比較して、より低い解像度、サンプリング頻度、または単位面積あたりの識別レベルは、表面を評価して、それが一貫性のある質感のものであるかどうかを判定するときに適用される。したがって、表面が質感において実質的に一貫性があるかどうかについて判定を行い、そうである場合、次いで表面の代表的な部分をサンプリングし、その質感を詳細にキャプチャする。
【００６５】
所与の表面（またはその部分／領域）が質感において実質的に一貫性があるかどうかを判定するために、１つ以上の閾値決定を適用することができる。例えば、いくつかの実施態様では、表面のキャプチャされた画像を分析することから決定されるなどのような、表面（またはその一部分）の感知された色が所定の量を下回ることによって変化する場合に、所与の表面は、一貫性のある質感を有すると判定されることができる。いくつかの実施態様では、他の質感プロパティについて同様の決定を適用することができる。いくつかの実施態様では、複数の質感プロパティを評価し、プロパティの組み合わされた（例えば、重み付けされた）分散が所定の量を下回るかどうかを判定し、そうであれば、次いで、表面（またはその部分）を、一貫性のある質感を有すると判定する。
【００６６】
所与の表面の１つ以上の領域が類似の、または同一の、または一貫性のある質感を有するものとして識別されることができ、次いで、これらのような領域の代表的なサンプル／部分を詳細にスキャンし、これらのような領域の質感をキャプチャすることができることを理解されたい。さらに、物体認識を適用して識別を強化することができる。例えば、垂直な平面は、壁であると認識されるので、質感サンプリング用に識別されることができる。表面の代表的な部分の質感をサンプリングすることにより、代表的な部分が表面全体よりもはるかに小さいので、仮想空間中の表面の現実的なレンダリングを提供するために表面全体についての質感情報を格納する必要がないので、リソースを節約することが理解されよう。むしろ、サンプリングされた質感情報は、レンダリングされるときに、例えば、モデル化された質感マップを介して、表面全体に適用されることができる。このようにして、表面全体について詳細な質感情報のキャプチャを必要とせずに、表面の現実的なレンダリングを提供することにより、詳細にキャプチャされる必要のある表面積が少なく、同様に必要とされる処理量が減少するため、メモリストレージ要件が減少し、キャプチャプロセスが高速化することができる。
【００６７】
引き続き図１Ａを参照して、例えば、ローカル環境１１０のキャプチャされた画像に基づき、壁１１２または１１４、床１１６、及び／または敷物１１８がそれらのそれぞれの表面全体にわたって実質的に一貫性のある質感を各有すると判定することができる。ロボット１０８は、これらの表面の代表的な部分の質感を詳細にキャプチャするように設定されることができる。例えば、ロボット１０８は、床１１６の代表的な部分の質感を詳細にキャプチャし、この質感をモデル化することができる。次に、床１１６をグラフィカルにレンダリングするときに、質感モデルを使用して床の仮想表現を仮想空間に質感マッピングし、レンダリングする。同様のプロセスを、ローカル環境１１０の他の表面に適用することができる。
【００６８】
本明細書に記載されているプロセス操作（限定ではなく例として、データの処理、空間／物体／質感のモデル化、仮想空間のビューのレンダリングなどを含む）のいずれかが特定のデバイスによって実行されるものとして本開示から具体的に説明されないか、その他の方法により明らかでない限り、ロボット１０８、コンピューティングデバイス１０６、ＨＭＤ１０５、またはクラウドコンピューティングデバイスを限定ではなく例として含む、本明細書に記載されているデバイスのいずれかによって実行されることができることを理解されたい。例えば、いくつかの実施態様では、ローカル環境１１０のキャプチャ及びモデル化は、ロボット１０８によって実行される。一方、他の実施態様では、ローカル環境１１０のキャプチャは、ロボット１０８によって実行され、ローカル環境１１０のモデル化は、コンピューティングデバイス１０６によって実行される。本開示のシステムに利用可能なデバイス間の処理操作の分割のすべての順列を本明細書で詳細に説明しているわけではない。しかしながら、それらのような順列が本開示の範囲内にあることが理解されよう。
【００６９】
いくつかの実施態様では、ＨＭＤ１０５を通してユーザ１００が見ているものを観客が見ることを可能にするために、ＨＭＤ１０５上にレンダリングされるビュー（またはその一部分）を表示デバイス１０４上にもレンダリングすることができる。したがって、ユーザ１０１は、表示デバイス１０４を見ることにより、ユーザ１００のビューを観戦することができる。いくつかの実施態様では、ロボット１０８は、仮想空間の二次ビューを利用可能な投影面（例えば、壁の領域）上に投影することができる。
【００７０】
図１Ｂは、本開示の実施態様による、物体の３Ｄ再構築を可能にするために、異なる角度から物体をキャプチャするロボットを示す。図示された実施態様では、物体１３０は、ローカル環境１１０内のソファである。さまざまな実施態様では、物体１３０がローカル環境１１０内のいずれかの他のタイプの物体であることができることが理解されよう。いくつかの実施態様では、ロボット１０８は、異なる位置から物体１３０を（例えば、イメージセンサ、デプスカメラ、または他のセンサを使用して）キャプチャすることにより、物体１３０を異なる角度からキャプチャするように設定される。キャプチャされた情報を使用して、例えば、ポリゴンメッシュモデルを使用して、物体１３０の３Ｄ構造をモデル化することができる。さらに、物体１３０の表面の質感もまた、キャプチャし、モデル化することができる。物体１３０を複数の角度／方向からキャプチャすることにより、３Ｄ構造及び表面質感のより正確なモデル化が可能であることが理解されよう。
【００７１】
いくつかの実施態様では、物体１３０は、例えば、ローカル環境１１０のキャプチャされた画像、及び／またはキャプチャされた深度情報に適用される、物体認識プロセスに基づき認識される。認識されると、物体１３０は、ロボット１０８を使用して、複数の方向からより詳細にさらにキャプチャするために識別されることができる。
【００７２】
いくつかの実施態様では、ロボット１０８は、複数の所定の角度／方向及び／または距離から物体１３０をキャプチャするように設定される。例えば、ロボット１０８は、限定ではなく例として、４５度間隔（例えば、ゼロ、４５、９０、１３５、１８０、２２５、２７０、及び３１５度）でデータをキャプチャするように設定されることができる。すなわち、ロボット１０８は、物体１３０の周りを所定の角度間隔に対応するローカル環境１１０内の異なる位置まで移動することで、物体１３０がキャプチャされる角度を体系的に変更する。いくつかの実施態様では、キャプチャの角度は、物体１３０の決定された中心、または物体１３０もしくはローカル環境１１０の別の基準点に対して定義されることができる。いくつかの実施態様では、ロボット１０８は、物体１３０、またはその決定された中心、または他の基準点から、所定の距離で複数のキャプチャをも取得するように設定される。さまざまな実施態様では、ロボット１０８は、任意の複数の角度から、任意の体系的な間隔で、またはその他の方法により物体１０８をキャプチャするように設定されることができる。異なる角度からの物体１３０の複数のキャプチャを使用すると、物体１３０の３Ｄ空間構造及びその表面質感をよりよくキャプチャすることができることが理解されよう。
【００７３】
図１Ｂを引き続き参照して、ロボット１０８は、初期位置Ｐ０に示され、この位置からロボットは、物体１３０をキャプチャする。ロボット１０８は、物体１３０の周りを（例えば、物体１３０に対して横方向に、及び／または周囲に）位置Ｐ１まで移動し、この位置からロボットは、物体１３０をキャプチャする。次に、ロボット１０８は、物体１３０の周りを位置Ｐ２まで移動し、その位置からロボットは、物体１３０をキャプチャする。さまざまな位置Ｐ０、Ｐ１、及びＰ２から物体１３０をキャプチャする際に、ロボット１０８は、物体１３０を囲む異なる角度及びパースペクティブからキャプチャされた画像、深度情報、及び／または他のタイプの感知された情報を取得する。これらを分析して、物体１３０の表面の３Ｄ構造及び質感を決定することができる。
【００７４】
いくつかの実施態様では、位置Ｐ０、Ｐ１、及びＰ２は、所定の距離（例えば、物体１３０の中心または他の基準点からの半径）で物体１３０を囲む円周沿いに位置し、そして上述されるように所定の間隔で互いから角度を付けて離れるように設定される。
【００７５】
いくつかの実施態様では、ロボット１０８は、物体１３０の照明に影響して、物体の構造及び／または質感のキャプチャを改善するように設定されることができる。例えば、いくつかの実施態様では、ロボット１０８は、物体１３０のさらなる照明を提供するように操作されることができる単一のライト（または複数のライト）を含むことができる。これは、周囲の照明条件が低い（例えば、所定の周囲の光閾値を下回る）ときに、または物体１３０のある特定の部分（例えば、影にある物体１３０の領域）が不十分に照明されるときなどのような、さまざまな状況で役立つ可能性がある。
【００７６】
図１Ｃは、本開示の実施態様による、ローカル環境中のさまざまな位置に移動して表面の質感をキャプチャするロボットの俯瞰図を概念的に示す。示されるように、いくつかの実施態様に従い、ロボット１０８は、表面１４０を識別し、表面１４０の代表的な部分１４２の質感をキャプチャするように設定されることができる。いくつかの実施態様では、質感のキャプチャは、表面１４０の代表的な部分１４２に関して所定の位置／向きから代表的な部分１４２の画像をキャプチャすることを伴う。
【００７７】
例えば、ロボット１０８は、位置Ｑ０に移動して、表面１４０に実質的に直交する／垂直である、代表的な部分１４２の中心Ｃに向かう方向Ｄ０において、代表的な部分１４２の１つ以上の画像をキャプチャすることができる。いくつかの実施態様では、位置Ｑ０は、表面１４０から所定の距離Ｌで定義される。さらに、ロボット１０８は、表面１４０に対する所定の角度Ａ１（または表面１４０への法線に対して所定の角度）で、方向Ｄ１（代表的な部分１４２の中心Ｃに向かう）に、代表的な部分１４２の画像のキャプチャを可能にするように位置決めされる、位置Ｑ１からの画像もキャプチャすることができる。また、ロボット１０８は、表面１４０に対する所定の角度Ａ２（または表面１４０への法線に対して所定の角度）で、方向Ｄ２（代表的な部分１４２の中心Ｃに向かう）に、代表的な部分１４２の画像のキャプチャを可能にするように位置決めされる、位置Ｑ２からの画像をキャプチャすることができる。示されるように、位置Ｑ１及びＱ２、ならびにそれらの対応する角度Ａ１及びＡ２は、代表的な部分１４２の中心Ｃの対向側上にある。いくつかの実施態様では、また、位置Ｑ１及びＱ２は、代表的な部分１４２の中心Ｃから同じ距離Ｌに位置しているように設定されるが、他の実施態様では、それらは、他の距離に位置していることができる。
【００７８】
限定ではなく例として、いくつかの実施態様では、所定の角度Ａ１及び／またはＡ２は、表面１４０に対して約４５度である。実際には、これは、表面１４０の代表的な部分１４２の画像が代表的な部分１４２の同じ側から測定される場合に、約４５、９０、及び１３５度の角度からキャプチャされることを意味する。他の実施態様では、所定の角度Ａ１及び／またはＡ２は、限定ではなく例として、約３０から６０度の範囲にある。
【００７９】
前述の実施態様では、表面１４０の代表的な部分１４２の画像は、３つの異なる角度からキャプチャされるが、他の実施態様では、代表的な部分１４２の画像は、任意の数の異なる角度からキャプチャされることができることが理解されよう。さらに、前述の実施態様では、画像は、実質的に垂直方向にアライメントを取る位置からキャプチャされるが、他の実施態様では、画像は、必ずしも互いに垂直方向にアライメントを取らない位置からキャプチャされる場合がある。それらのような実施態様では、ロボット１０８は、カメラを異なる仰角／高さに操作し、カメラを連結させ、カメラを表面の代表的な部分の中心に向けて指向させることができ得る。
【００８０】
図１Ｄは、本開示の実施態様による、複数のパースペクティブから画像をキャプチャすることができる複数のカメラを含むロボットを示す。示されるように、ロボット１０８は、高さ調節可能な上部カメラ１５０を含み、この上部カメラは、異なる高さ／仰角／垂直位置に上げ下げされることができる。また、上部カメラ１５０は、カメラ１５０の角度の調節を可能にするように関節式である。ロボット１０８は、カメラ１５０よりも低い高さでロボットの本体沿いに位置決めされる下部カメラ１５２をさらに含む。また、下部カメラ１５２は、その角度方向の調節を可能にするように関節式であることができる。したがって、カメラ１５０及び１５２を操作して（同時に）、異なる垂直位置から表面１４０の代表的な部分１４２の画像をキャプチャすることができる。上部カメラを上下に調節して、追加の異なる垂直位置から画像をキャプチャすることができる。
【００８１】
図示された実施態様にさらに示されるように、ロボット１０８は、表面１４０に対して横方向に左右に移動することができ、異なる水平位置からの代表的な部分１４２のキャプチャを可能にする。
【００８２】
さまざまな角度から（そしてさまざまな制御された照明条件下で）キャプチャされた画像を利用して、ロボット１０８は、表面１４０の代表的な部分１４２の質感をより正確にキャプチャすることができる。より具体的には、表面１４０に対して異なる角度及び位置からキャプチャされる画像を分析して、この分析に基づき生成され、ローカル環境１１０の３Ｄモデルの対応する表面に関連付けられる１つ以上の質感マップによって定義される通り、表面１４０の質感を決定することができる。上記のように、これは、限定ではなく例として、拡散マッピング、高低マッピング、バンプマッピング、法線マッピング、変位マッピング、反射マッピング、スペキュラマッピング、ミップマップ、オクルージョンマッピングなどを含むことができる。
【００８３】
上記のようにローカル環境１１０内の異なる位置から画像をキャプチャすると、ローカル環境１１０内のロボット１０８の位置及び向きを決定し、追跡することができ、キャプチャされた画像を取得するパースペクティブの正確な理解を可能にすることが理解されよう。すなわち、ロボット１０８及び／またはこのロボット１０８の画像キャプチャデバイスの位置（３Ｄ）及び角度方向は、ローカル環境１１０において、そしてキャプチャされている表面に対して決定されることができる。
【００８４】
いくつかの実施態様では、ロボット１０８の位置／向きは、ロボット自体によって感知される、または処理される情報に少なくとも部分的に基づき決定され、この情報は、限定ではなく例として、モーションセンサ（例えば、加速度計、ジャイロスコープ、磁力計、慣性モーションユニット（ＩＭＵ）、ロボット１０８のホイールの動きを感知するホイールセンサ、ロボット１０８の画像キャプチャデバイスによってキャプチャされる画像、ネットワーク位置決め（例えば、ＧＰＳ、ＷｉＦｉ（登録商標）位置決め）、自己位置推定及びマッピングの同時実行（ＳＬＡＭ）などからのデータを含む。いくつかの実施態様では、ロボット１０８の位置／向きは、画像キャプチャデバイス１０７によってキャプチャされる画像の分析に少なくとも部分的に基づき決定される。いくつかの実施態様では、ロボット１０８は、ローカル環境１０１に位置決めされる１つ以上の磁気放射体によって放射される１つ以上の磁場を感知するように設定される、１つ以上の磁気センサを含み、このロボット１０８の位置／向きは、そのようなデータに少なくとも部分的に基づき決定されることができる。加えて、ロボット１０８は、その位置／向きを、ローカル環境１１０のマッピングした、及び／またはモデル化した３Ｄ構造を有することに少なくとも部分的に基づき感知し、例えば、モデル化された環境への物体認識及び対応関係を使用して位置／向きを決定するように設定されることができる。
【００８５】
いくつかの実施態様では、ローカル環境１１０内の表面の代表的な部分の質感をキャプチャする目的のために、表面の代表的な部分に対するロボット１０８の位置を決定し、追跡する。例えば、ロボット１０８は、位置／向きを追跡する、具体的に表面の代表的な部分に対するその位置／向きを追跡するために上述されている方法のいずれかを使用することができる。さらに、ロボット１０８は、具体的に代表的な部分及び／または表面を追跡することができる。表面の代表的な部分に対する位置／向きを追跡することによって、代表的な部分のキャプチャされた画像を適切に分析することができる（例えば、対応する点を決定することができる）。
【００８６】
言及されるように、いくつかの実施態様では、ロボット１０８は、質感キャプチャのために表面を照明するために使用されることができるライトを含むことができる。いくつかの実施態様では、そのようなライトを使用して、表面の代表的な部分を照明し、表面に当たるライトによる既知の照明角度を使用して、既知のパースペクティブ／バンテージポイントからキャプチャされた画像を分析して、表面の質感を決定することができる。
【００８７】
図２は、本開示の実施態様による、物体をキャプチャして物体の３Ｄ再構築を可能にするように設定されるロボットを示す。図示された実施態様では、ロボット１０８は、アーム２００ａ及び２００ｂを含み、それらアームのそれぞれは、アーム２００ａ及び２００ｂを実際にいずれかの方向に操作することを可能にする複数の関節式ジョイントを含む。いくつかの実施態様では、アーム２００ａ／ｂは、さらに伸長可能である。アーム２００ａ及び２００ｂは、１つ以上のライト、及び１つ以上のカメラを含むことができ、これらは、アーム２００ａ及び２００ｂを操作することによって操作されることができる。
【００８８】
図示された実施態様では、アーム２００ａは、照明を提供するために作動するライト２０２を含み、アーム２００ｂは、画像をキャプチャするように設定されるカメラ２０４を含む。いくつかの実施態様では、ライト２０２は、カメラ２０４が固定された位置及び向きに留まっている間に操作され、ライト２０２によって提供される照明の角度が変化するときに画像をキャプチャする。他の実施態様では、ライト２０２を固定された位置及び向きに保持し、カメラ２０４を操作して、照明を一定に保ちながらカメラの角度を変更する。さらに他の実施態様では、ライト２０２が作動するときに、そしてカメラ２０４が物体または表面の画像をキャプチャするときに、ライト２０２及びカメラ２０４の両方を、順に、または同時にさえ操作することができる。
【００８９】
図示された実施態様では、ライト２０２を使用して物体２１０を照明することによって照明を制御しながら、カメラ２０４を使用して物体２１０の画像をキャプチャする。異なる角度から物体２１０の画像をキャプチャし、異なる角度からの照明を使用することにより、物体２１０の構造及び質感のよりロバストなモデル化を達成することができることが理解されよう。
【００９０】
ロボット１０８が物体２１０（またはローカル環境１１０内の所与の表面）の照明に影響する可能性がある別の方式は、影を生成することによるものである。いくつかの実施態様では、ロボット１０８は、物体２１０上に落ちる影を生成するために、それ自体を操作するように設定されることができる。換言すれば、ロボット１０８は、光源からの光の少なくとも一部分が物体２１０または所与の表面を照明するのを物理的に遮断するように、物体２１０と光源との間にそれを配置するローカル環境１１０内の位置に移動することができる。この方式において、ロボット１０８は、物体２１０の照明を低減させることができる。
【００９１】
加えて、いくつかの実施態様では、ロボット１０８は、物体を物理的に操作して、その構造及び質感のキャプチャを可能にするように設定される。図示された実施態様では、アーム２００ａ及び２００ｂは、それぞれ、クロー２０６ａ及び２０６ｂを含み、これらのクローを使用して、物体２１０を把持して操作し、ロボット１０８に対するその向きまたは位置を変更することができるため、ロボット１０８は、物体２１０の異なる部分の画像（または他の感知されたデータ）をキャプチャし、画像／データを物体及びその表面に対して異なる角度及び位置からキャプチャすることができる。
【００９２】
図３は、本開示の実施態様による、制御可能なライトを含むさまざまな特徴を有するローカル環境におけるロボット１０８を示す。図示された実施態様では、ローカル環境１１０は、ロボット１０８が配置される部屋によって定義される。さらに、部屋は、照明制御システムを介してリモート制御可能である複数のライトを含む。示されるように、ライト３００ａ、３００ｂ、及び３００ｃは、埋め込み式シーリングライトの形態であり、ライト３０２は、ランプの形態である。さまざまな実施態様において、照明制御システムを介してリモート制御可能である任意の数及びタイプのライトがあることができる。いくつかの実施態様では、照明制御システムは、ホームオートメーションシステムである。いくつかの実施態様では、照明制御システムは、ＷｉＦｉ（登録商標）ネットワークなどのホームネットワークを介して、またはＢｌｕｅｔｏｏｔｈ（登録商標）通信などの他の無線技術を使用して、無線でアクセス可能である。いくつかの実施態様では、照明制御システムは、スマートスイッチまたはスマートコンセントなどのライトの制御を可能にする１つ以上のスマートデバイスによって定義される。いくつかの実施態様では、ライト自体がネットワーク通信の可能なスマートデバイスである、またはライトが同様にネットワーク通信の可能なスマート電球を含む。
【００９３】
いくつかの実施態様では、ロボット１０８は、照明制御システムと通信して、ライトのオン／オフ状態及び強さを含む、ライトの状態を制御する。例えば、ロボット１０８は、ＷｉＦｉ（登録商標）ネットワークを介して照明制御システムと通信して、さまざまなライトの強さを調節することができる。より具体的には、ロボット１０８は、ローカル環境１１０の３Ｄ空間構造及び質感をキャプチャする目的で、多少の照明を提供するようにライトを制御することができる。これは、ローカル環境１１０をキャプチャすることを試みるときに、不利な照明条件を克服する際に役立つことができる。
【００９４】
例えば、直接または間接的な太陽光などの高強度の光が部屋に入る窓３０４がある場合がある。窓３０４を通り抜ける高強度の光は、ローカル環境１１０における高コントラスト、ならびにイメージセンサがローカル環境１１０の構造及び質感を正確にキャプチャするのを困難にする可能性がある強い影または他の影響につながる場合がある。別のシナリオでは、ローカル環境１１０の照明は、ロボット１０８による少なくともいくつかの物体または表面の画像キャプチャに十分ではない、または最適ではない場合がある（例えば、ノイズが多い傾向にあるイメージセンサによって高いゲインを必要とする）。さらに別のシナリオでは、少なくともいくつかの物体または表面またはそれらの領域の画像キャプチャには、光が強すぎる可能性がある。
【００９５】
したがって、ロボット１０８は、照明制御システムと通信して、ライトのうちのさまざまなもののオン／オフ状態、及び／または強度を調節し、これらのような照明の問題を克服するように設定されることができる。いくつかの実施態様では、ロボット１０８は、ローカル環境１１０について、及び／またはローカル環境１１０中の１つ以上の物体または表面について、及び／またはそれらのサブ領域について、可能な範囲に照明条件を正規化するために、照明制御システムと通信して、１つ以上のライトをオン／オフにする、及び／または１つ以上のライトの強さを調節する。照明の正規化がさまざまな実施態様において多様に定義されることができることが理解されよう。例えば、いくつかの実施態様では、照明の正規化は、ローカル環境１１０内の、または領域／物体／それらの表面についての、光の標的量（または標的範囲）によって定義される。いくつかの実施態様では、照明の正規化は、コントラストまたはダイナミックレンジの標的レベルまたは標的範囲によって定義される。いくつかの実施態様では、照明の正規化は、ローカル環境１１０内の選択された空間領域、またはロボット１０８の画像キャプチャデバイスによってキャプチャされる領域を参照して定義される。
【００９６】
照明条件を正規化する目的のために、ロボット１０８の１つ以上の照度センサ及び／または画像キャプチャデバイスを使用して、光量または照明条件を測定する、または決定することができることが理解されよう。
【００９７】
いくつかの実施態様では、ロボット１０８は、ローカル環境１１０内のライトの位置を決定し、その位置を使用してローカル環境１１０内の照明に影響するように設定される。例えば、図示された実施態様において、ライト３００ａ／ｂ／ｃ及び３０２の位置を決定し、これらの位置は、それぞれ、３Ｄ座標（ｘ１，ｙ１，ｚ１）、（ｘ２，ｙ２，ｚ２）、（ｘ３，ｙ３，ｚ３）、及び（ｘ４，ｙ４，ｚ４）を有する。いくつかの実施態様では、ロボット１０８は、キャプチャされた画像、キャプチャされた深度データを分析することに基づき、そしてさらに照明制御システムによってライトのオン／オフ状態及び／または強度レベルを制御することに基づき、ライトの位置を決定することができる。
【００９８】
ライトの既知の位置を使用して、ロボット１０８は、それらの照明を、所望の方法でローカル環境１１０内の照明に影響するように制御することができる。例えば、表面の質感をキャプチャするときに、１つ以上のライトは、ライトが提供する照明量を増加させる、または減少させるように制御されることができ、表面に対する所与のライトによる照明の方向は、ライトの既知の位置、ならびに調査される表面の向き及び位置から決定されることができる。さまざまなライトを制御して、さまざまな方向からさまざまな照明量を提供できることができるため、表面についてより完全な質感データのキャプチャを可能にする。さらに、照明は、ライトの既知の位置に基づき特定の方向から提供されるため、ローカル環境１１０の特定の領域における不十分な照明などの問題を克服することができる。
【００９９】
いくつかの実施態様では、ＨＭＤ１０５またはコントローラ１０２などのデバイスは、磁場の検出に基づき追跡されることができる。磁場は、ローカル環境１１０内の周辺機器によって放射されることができ、いくつかの実施態様では、コンピューティングデバイス１０６に接続される、及び／またはこのコンピューティングデバイスによって制御されることができる。いくつかの実施態様では、磁場は、画像キャプチャデバイス１０７に含まれる放射体によって放射される。放射された磁場に実質的に影響する、またはこの磁場と干渉する磁気特性を示す他の磁気源及び／または材料またはデバイスの存在が前述の追跡する磁気と干渉する可能性があることが理解されよう。
【０１００】
したがって、引き続き図３を参照して、いくつかの実施態様では、ロボット１０８は、ローカル環境１１０の磁気特性をマッピングするように設定される。より具体的には、ロボット１０８は、ローカル環境１１０の磁気特性を決定して、磁気干渉が発生する可能性がある領域を識別するように設定されることができる。いくつかの実施態様では、ロボット１０８は、磁場を感知しながら（例えば、１つ以上の磁力計を使用して）ローカル環境１１０全体を通してナビゲートすることによって、ローカル環境１１０の周囲の磁気特性をマッピングする。いくつかの実施態様では、ロボット１０８は、ローカル環境１１０の以前に構築された３Ｄ空間マップを使用して識別されることができる、ローカル環境１１０内の特定の物体の磁気特性（例えば、磁化率、透磁率など）を検出する。
【０１０１】
ローカル環境１１０内のいずれかの特定の物体の磁気特性を有する、ローカル環境１１０の識別された磁気特性を使用して、システムは、磁気追跡に使用される放射された磁場上でのそれらの影響をモデル化することができる。したがって、ローカル環境１１０の識別された磁気特性のモデル化された影響を使用して、磁気追跡をより正確に行うことができる。
【０１０２】
いくつかの実施態様では、ロボット１０８は、ローカル環境１１０のその空間マップを使用して、磁気追跡のために放射された磁場の検出を較正することができる。すなわち、放射された磁場を提供することができ、ロボットは、この放射された磁場（例えば、場の強さ）を、ローカル環境１１０全体を通してさまざまな位置で検出することができる。同時に、ロボット１０８は、その空間マップ及び／または他の非磁性技術（例えば、画像認識及び追跡、深度ベースの追跡など）を使用して、磁気放射体の位置、及びこの磁気放射体に対するロボット自体の位置を決定する。ロボット１０８によって検出された磁場を、非磁性技術を使用してロボットの決定された位置と相関させる。このようにして、ローカル環境１１０に特有である放射された磁場のマッピングを決定することができる。
【０１０３】
いくつかの実施態様では、ローカル環境１１０の磁気特性をマッピングすることにより、システムは、磁気追跡に好ましい特有の領域を識別してユーザに推奨する、及び／または磁気追跡のために回避される必要がある特有の領域を識別し、この領域についてユーザに通知することができる。
【０１０４】
図４は、本開示の実施態様による、ローカル環境における照明条件を調節するためのシステムを概念的に示す。図示された実施態様では、ロボット１０８は、ネットワーク４０２を介してホームオートメーションハブ４０４と通信することができる。いくつかの実施態様では、ネットワーク４０２は、ＷｉＦｉ（登録商標）ネットワークによって定義される。いくつかの実施態様では、ネットワーク４０２は、さまざまな種類の無線ネットワーク及び／または有線ネットワークのいずれかを含むことができ、これらのネットワークを介してロボット１０８は、ホームオートメーションハブ４０４と通信することができる。
【０１０５】
ホームオートメーションハブ４０４は、ネットワーク４０２を介して通信することができ、またライト４０６と通信することができるデバイスであり、これらのライトは、ローカル環境１１０内の照明条件に影響するように制御されることができるローカル環境１１０内のライトである。いくつかの実施態様では、ホームオートメーションハブ４０２は、Ｕｎｉｖｅｒｓａｌ  Ｐｏｗｅｒｌｉｎｅ  Ｂｕｓ、Ｉｎｓｔｅｏｎ、Ｚ−ｗａｖｅ、Ｚｉｇｂｅｅ（登録商標）、ＷｉＦｉ（登録商標）、Ｂｌｕｅｔｏｏｔｈ（登録商標）、Ｔｈｒｅａｄ、Ｈｏｍｅｋｉｔなどのようなホームオートメーション通信プロトコルまたは規格を介してライト４０６と通信する。ホームオートメーションハブ４０４は、それらの能力に従い、ライト４０６によって提供される照明を制御するように適切なプロトコルを介して通信することができ、そしてライト４０６のオン／オフ状態、光強度設定、及び色などの態様を制御することができる。
【０１０６】
図４を引き続き参照して、参照番号４０８で示されるように、ロボット１０８は、ローカル環境１１０内の照明状態を感知する。これは、ローカル環境１１０内の特定の物体４００、表面、領域、またはローカル環境１１０の他の部分の照明条件を感知することを含むことができる。この最初に感知された照明条件に基づき、ロボット１０８は、例えば、物体４００、またはローカル環境１１０内の表面の質感をキャプチャする目的のために、照明条件を改善するように照明条件を調節する必要があると判定することができる。いくつかの実施態様では、上述のように、ロボット１０８は、現在感知された照明条件が標的照明条件を満たすかどうかを判定し、この標的照明条件は、いくつかの実施態様では、測定された照明条件パラメータについての最小値、最大値、または範囲を満たすことによって定義されることができる。照明条件を調節する必要があると判定することに応答して、ロボット１０８は、参照番号４１０に示されるように、ネットワーク４０２を介してホームオートメーションハブ４０４に要求を送信して、ライト４０６を調節する。
【０１０７】
この要求に応答して、ホームオートメーションハブ４０４は、参照番号４１２に示されるように、１つ以上の制御信号をライト４０６に送信する（例えば、ホームオートメーションプロトコルを使用して）ことにより、所与のライトをオンまたはオフにすること、その強度を調節すること、及び／またはその色を調節することなどによる、いくつかの方式においてライト４０６の状態に影響する。次に、参照番号４１４に示されるように、ローカル環境１１０内の照明条件が変化すると、参照番号４０８に戻り、ロボット１０８は、ローカル環境１１０内の新しい照明条件を感知する。
【０１０８】
上記の実施態様では、ロボット１０８は、ネットワーク４０２を介してホームオートメーションハブ４０４と通信するが、いくつかの実施態様では、ロボット１０８は、ホームオートメーションハブ４０４と直接通信する。さらに他の実施態様では、ロボット１０８は、ライト４０６と直接通信してそれらの照明設定を調節することにより、ローカル環境１１０内の照明条件を制御することができる。
【０１０９】
図５は、本開示の実施態様による、モバイルロボットを使用して、ローカル環境中で空間データ及び質感データをキャプチャするときに可能性のあるエラーを克服する方法を示す。方法操作５００では、データは、ロボット１０８の１つ以上のセンサまたは空間／質感データキャプチャデバイスによってキャプチャされる。限定ではなく例として、本明細書の他の箇所に説明されるように、これは、画像キャプチャデバイスによって画像データをキャプチャすること、デプスカメラによって深度データをキャプチャすることなどを含むことができる。このようなデータキャプチャは、ローカル環境１１０またはその中のいずれかの領域／物体／表面の空間構造及び／または質感をキャプチャする目的のためのものであることができる。
【０１１０】
方法操作５０２において、キャプチャされたデータを分析する。より具体的には、キャプチャされたデータを分析して、キャプチャされたデータの中に可能性のあるエラーがあるかどうかを判定する。いくつかの実施態様では、これは、キャプチャされたデータを分析して、キャプチャされたデータまたはこのキャプチャされたデータの他の態様において不連続性を識別することなどによって、疑わしい部分を識別することを伴う。いくつかの実施態様では、これは、キャプチャされたデータの所与の部分についての信頼度を決定すること、そしてこの信頼度が所定の閾値を満たすかどうかを判定することを伴う。換言すれば、信頼度が所定の閾値を満たさない（例えば、上回る）場合、次いで、検討中のキャプチャされたデータの部分について可能性の高いエラーがある。
【０１１１】
例えば、キャプチャされた画像において、すべてが白（または、すべて高強度もしくは最大強度、例えば、閾値強度レベルを上回る）である表面の一部分は、その部分が実際に白色であるためである場合があるが、グレアの存在、またはある種のスペキュラ反射に起因する場合もある。または別の例として、キャプチャされた深度データにおいて、深度データが欠落している領域は、空間構造全体の中の開口部（例えば、戸口）が原因である場合があるが、窓もしくは他の透明構造、または存在するがデプスカメラによって検出されないデプスカメラのビームを偏向させる反射面に起因する場合もある。デプスカメラは、ノイズ（例えば、キャプチャすることが困難である反射及び／または特徴からの）に影響されやすいことが知られ、したがって、深度データは、誤った測定値を含む場合がある。したがって、ロボット１０８の機能を使用して、それらのような潜在的なエラーを識別して解決することが望ましい。
【０１１２】
方法操作５０４において、可能性のあるエラーが存在するかどうかを判定する。そうでない場合、次いで、方法操作５０６において、方法は終了する。しかしながら、可能性のあるエラーが存在する場合、方法操作５０８において、１つ以上のアクションは、エラーを克服する（例えば、エラーが実際に存在するかどうかを明らかにする）ために識別される／決定される。方法操作５１０において、決定されたアクションをロボット１０８によって実行し、可能性のあるエラーを解決する。限定ではなく例として、それらのような訂正アクションは、以下の、ロボット１０８を新規の位置／向きに移動させること（例えば、異なる角度及び／または距離から、画像を取得する、またはデータをキャプチャするために）、ロボット１０８のセンサデバイスを移動させること（例えば、ロボットの伸縮アームまたは関節アームを調整することによって）、照明を調節すること（例えば、ロボットのライトを調節すること、ホームオートメーションシステムを通して照明を調節することによって）などのうちの１つ以上を含むことができる。
【０１１３】
決定されたアクションのパフォーマンスに続いて、次いで、方法は、方法操作５００に戻り、再度、ロボット１０８を使用してデータをキャプチャする。したがって、この方法は、可能性の高いエラーがなくなるまで、またはキャプチャされたデータが十分な信頼度まで正確になるまで、繰り返されることができる。
【０１１４】
ローカル環境１１０の前述の空間及び質感モデルを使用して、ローカル環境１１０を３Ｄ再構築し、ＨＭＤ１０５のディスプレイなどのディスプレイ上にローカル環境１１０の非常にリアルなビューをレンダリングすることが可能である。これにより、ＨＭＤ１０５を最初に装着するときに、及び／または取り外す直前に、ローカル環境１１０の仮想化されたバージョンのビューをユーザ１００に提供することができるため、ユーザ１００についての仮想現実への、または仮想現実からの移行を容易にすることができる。さらに、別のリモートユーザが彼らの仮想化されたローカル環境に入ることを許可することなどにより、ユニークな体験をユーザ１００に提供し、他のユーザが物理的に存在していなくても、ローカル環境１１０中の別のユーザとインタラクトすることと同様の体験を提供することができる。
【０１１５】
図６は、本開示の実施態様による、ロボットのコンポーネントを概念的に示す概略図である。示されるように、ロボット１１００は、本開示に説明されるように、ロボットのさまざまなデバイスと、ロボット１１００によって実行される操作とを制御するように設定されるコントローラ１１０２を含み、これらの操作は、データ及びインストラクションを処理することと、ロボット１１００のさまざまなデバイスにコマンドを発行して、ロボットを移動させること、ロボットに画像／オーディオ／ビデオをキャプチャさせること、ロボットに画像／オーディオ／ビデオをレンダリングさせること、またはロボットにロボットができるいずれかの他の機能を実行させることとを含む。コントローラ１１０２は、プログラムインストラクションを実行するように設定される１つ以上のプロセッサ１１０４（例えば、マイクロプロセッサ、汎用プロセッサ（ＧＰＰ）、特定用途向けプロセッサ（ＡＳＰ）、中央処理装置（ＣＰＵ）、グラフィックスプロセッシングユニット（ＧＰＵ）、複合命令セットコンピュータ（ＣＩＳＣ）、縮小命令セットコンピュータ（ＲＩＳＣ）、特定用途向け集積回路（ＡＳＩＣ）、デジタルシグナルプロセッサ（ＤＳＰ）など）、及びデータを格納し、取得するように設定される１つ以上のメモリデバイス１１０６（例えば、揮発性メモリ、不揮発性メモリ、ランダムアクセスメモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、ＳＲＡＭ、ＤＲＡＭ、フラッシュメモリ、磁気メモリ、ハードディスク、光ディスクなど）を含む。
【０１１６】
トランシーバ１１０８は、無線または有線接続を介して、データを送信する、及び／または受信するように設定される。トランシーバ１１０８は、１つ以上のネットワークを介して通信し、当該技術で既知のさまざまなデータ通信プロトコルのいずれかを使用することができ、これらのデータ通信プロトコルは、限定ではなく例として、ＩＰベースのプロトコル、Ｗｉ−Ｆｉ、Ｂｌｕｅｔｏｏｔｈ（登録商標）、ＮＦＣ、Ｚｉｇｂｅｅ（登録商標）、Ｚ−Ｗａｖｅ、ＡＮＴ、ＵＷＢ、ワイヤレスＵＳＢ、Ｓｉｇｆｏｘ、セルラーネットワーク（２Ｇ／３Ｇ／４Ｇ／５Ｇネットワーク、ＬＴＥネットワークなど）、赤外線プロトコル（例えば、ＩＲＤＡプロトコル）などを含む。
【０１１７】
ロボット１１００は、限定ではなく例として、ロボット１１００によってレンダリングされている仮想環境からの音、音楽、スピーチ、メディアプレゼンテーション（例えば、テレビ番組、映画、ショーなど）からの音声などを含む、任意の種類のオーディオを発することができる１つ以上のスピーカー１１１０を含む。
【０１１８】
ロボット１１００は、ロボットが配置されているローカル環境から音を捕捉するように設定される１つ以上のマイクロホン１１１２を含む。複数のマイクロホンは、より多くの方向において同時により高い感度を可能にすることができる。いくつかの実施態様では、マイクロホン１１１２は、アレイまたは他の所定の位置決め配置に構成されるため、マイクロホンアレイからの信号を分析して、マイクロホンアレイに対する音源の方向性を決定することができる。
【０１１９】
ロボット１１００は、ローカル環境から画像／ビデオをキャプチャするように設定される１つ以上の画像キャプチャデバイス／カメラ１１１４を含む。複数の画像キャプチャデバイスを用いて、限定ではなく例として、ローカル環境のより広い領域または複数の領域、及び／または改善された環境マッピング、深度分析の同時カバレッジを可能にすることができる。
【０１２０】
１つ以上のアクチュエータ１１１６によって、１つ以上のカメラ１１１４を指向させることができ、所与のカメラの方向を調整することができる。アクチュエータ１１１６は、カメラ１１１４の向きを回転させる、平行移動させる、上げる、下げる、傾ける、パンする、またはその他の方法により移動させる、もしくは変更するように設定されることができる。
【０１２１】
ロボット１１００は、１つ以上のデプスカメラ１１１８を含む。デプスカメラは、ローカル環境内の物体についての深度／測距情報をキャプチャすることが可能である。いくつかの実施態様では、デプスカメラ１１１８は、ローカル環境内のさまざまなポイントへの制御された光信号のタイムオブフライトに基づき距離を決定するタイムオブフライトカメラである。
【０１２２】
カメラ１１１４と同様に、デプスカメラ１１１８は、１つ以上のカメラ１１１４を指向させるアクチュエータと同じ、または異なるアクチュエータであることができる、１つ以上のアクチュエータ１１１６によって指向することができる。
【０１２３】
ロボット１１００は、近くの物体へのロボットの近接を検出することができる１つ以上の近接センサ１１２０を含む。近接センサ１１２０をロボット１１００上のさまざまな位置に取り付けることができ、ロボット１１００の対応する部分についての近接検知を可能にする。例えば、いくつかの実施態様では、少なくとも１つの近接センサをロボット１１００の下部に取り付け、ロボットの下部近くの物体（例えば、ロボット１１００が位置している床／表面上の物体）の検出を提供するなど、この近くで近接検知を可能にする。いくつかの実施態様では、１つ以上の近接センサは、ロボットの中央部分及び上部を含む、ロボット１１００の他の部分沿いに取り付けられる。近接センサ１１２０は、ローカル環境内の物体とロボット１１００の衝突を回避すること、近くの物体の存在を検知すること、ロボットの近くにいるユーザによるジェスチャを検知することなどに役立つことができる。
【０１２４】
ロボット１１００は、ロボット１１００の地理的位置を決定するためにＧＰＳ衛星から情報を受信するように設定される、全地球測位システム（ＧＰＳ）デバイス／受信機１１２２を含む。
【０１２５】
ロボット１１２４は、ロボット１１２４の動き及び／または向きを検知することができる、１つ以上の慣性／モーションセンサ１１２４を含む。慣性／モーションセンサの例は、加速度計、磁力計、ジャイロスコープなどを含む。
【０１２６】
ロボット１１２４は、画像／ビデオをローカル環境内の表面上に投影することができる、少なくとも１つのプロジェクタ１１２６を含む。限定ではなく例として、プロジェクタは、ＬＣＤプロジェクタ、ＬＥＤプロジェクタ、ＤＬＰプロジェクタ、ＬＣｏＳプロジェクタ、ピコプロジェクタなどであることができる。
【０１２７】
ロボット１１００は、ロボット１１００がローカル環境周囲で移動することができるように構成される、複数のホイール／ローラー、例えば、示されるようなホイール／ローラー１１３０ａ及び１１３０ｂを含む。１つ以上のホイール／ローラーをアクチュエータ（例えば、アクチュエータ１１３２ａ及び１１３２ｂ）によって制御し、ホイール／ローラーを回転させることにより、ロボット１１００の動きをもたらすことができる。いくつかの実施態様では、ホイール／ローラーは、多方向性または全方向性であることができる、すなわち、１つより多い方向、またはすべての方向において動きを生成する、または容易にすることができる。
【０１２８】
ロボット１１００のさまざまな構成要素は、ハウジング内に含まれることができる。図示された実施態様では、上部ハウジング１１３４ａ及び下部ハウジング１１３４ｂを含む。上部ハウジング１１３４ａは、下部ハウジング１１３４ｂに対して回転可能であり、複数のベアリング１１３６によって容易にされるように構成される。いくつかの実施態様では、アクチュエータ１１３８は、上部ハウジング１１３４ａを回転させるように構成される。さまざまな実施態様において、ロボット１１００のさまざまな構成要素のいずれかは、上部ハウジング１１３４ａに、またはこの上部ハウジング内に取り付けられ、上部ハウジング１１３４ａが回転するときに回転する／移動するように構成されることができ、さまざまな構成要素の他のものは、下部ハウジング１１３４ｂに、またはこの下部ハウジング内に取り付けられ、同時に回転しない。
【０１２９】
例として、いくつかの実施態様では、カメラ１１１４、デプスカメラ１１１８、スピーカー１１１０、及び／またはマイクロホン１１１２は、上部ハウジング１１３４ａに取り付けられ、プロジェクタ１１２６は、下部ハウジング１１３４ｂに取り付けられる。上部ハウジング１１３４ａに取り付けられる構成要素は、プロジェクタ１１２６から独立して、上部ハウジング１１３４ａと共に回転することができる。これにより、ロボット１１００がカメラ１１１４、デプスカメラ１１１８、スピーカー１１１０、及び／またはマイクロホン１１１２から独立してプロジェクタ１１２６を指向させることを可能にする。例えば、これは、カメラ１１１４、デプスカメラ１１１８、スピーカー１１１０、及び／またはマイクロホン１１１２をユーザに向けて指向させることが可能であり、プロジェクタ１１２６は、壁または他の投影面に向けて指向するのに有用であることができる。
【０１３０】
図７Ａ〜７Ｇは、本開示の実施態様による、さまざまなタイプのロボットを示す。
【０１３１】
図７Ａは、本開示の実施態様による、円筒形の本体１２００を含むロボットを示す。プロジェクタ１２０２及びカメラ１２０４は、本開示の実施態様に従い、伸長可能である、及び／または回転可能である、それぞれのポールに取り付けられている。ロボットは、ロボットが複数の方向に音声を発することができる、複数のスピーカー１２０６を含むことができる。具体的には示されていないが、ロボットは、ダウンファイアリングスピーカーをも含むことができる。さらに、ロボットは、ローカル環境周囲のロボットの推進／移動のためのホイール１２０８を含む。
【０１３２】
図７Ｂは、本開示の実施態様による、プロジェクタ１２０２及びカメラ１２０４などの構成要素が取り付けられることができる、回転可能な上部１２１０を含むロボットを示す。さらに、ロボットは、任意の種類のデータをレンダリングするように設定されることができる、ディスプレイ１２１２を含む。いくつかの実施態様では、ロボットのディスプレイ１２１２をセカンダリディスプレイとして使用し、ビデオゲーム中にプレーヤーに有用な情報を示すことができる。ディスプレイ１２１２は、タッチスクリーンディスプレイであることができ、タッチスクリーンディスプレイ上でのタッチ及びジェスチャを介してユーザから入力を受信することができる。さらに、ロボットは、ロボットの推進のための無限軌道システム１２１４（タンクトレッドまたはキャタピラトレッドとしても知られている）を使用する。
【０１３３】
図７Ｃは、本開示の実施態様による、コントローラ及び／または他のインタフェースデバイスについての保管位置としても機能するように構成されるロボットを示す。図示された実施態様では、ロボットは、コントローラ１２２０ａ及び１２２０ｂ、ならびにモーションコントローラ１２２２ａ及び１２２２ｂを保持する／格納するように構成される。ロボットは、止め金、クリップ、ストラップ、クランプ、ポケット、孔部、凹部などのような、コントローラまたは他のインタフェースデバイスを保持するためのさまざまな種類のデバイスのいずれかを含むことができる。
【０１３４】
図７Ｄは、本開示の実施態様による、本体１２３０及び発進可能なドローン１２３２を含むロボットを示す。ドローン１２３２は、飛行していないとき、本体１２３０上の支持構造体１２３４上に静止する、及び／またはこの支持構造体に固定されることができる。支持構造体１２３４は、ドローン１２３２上の対応する接点と嵌合するように、またドローン１２３２とロボットの本体１２３０との間のデータの通信、及びドローンのバッテリの充電を可能にするように、構成される接点を含むことができる。ドローン１２３２がその操作に有用である、及び／またはドローンが飛行している間に使用されることができる、さまざまな構成要素、例えば、カメラ、デプスカメラ、マイクロホン、プロジェクタ、慣性／モーションセンサ、無線トランシーバなどを含むことができることが理解されよう。ドローン１２３２は、本体１２３０と無線で通信し、本体１２３０から送信される無線信号を介して制御されることができる。ドローン１２３２は、画像キャプチャ、オーディオキャプチャ、投影、オーディオレンダリングなどについて、上昇したバンテージポイントを提供するために、作動し、飛行することができる。
【０１３５】
図７Ｅは、本開示の実施態様による、ヒューマノイドデバイスのフォームファクタを有するロボットを示す。ロボットは、関節式であることができる頭部１２４０を含み、カメラ、プロジェクタなどのデバイスを含むことができる。さらに、ロボットは、関節式であり、物品を握ったり、ジェスチャを実行したりするように構成されることができるアーム１２４２を含む。さらに、ロボットは、関節式であり、ロボットがローカル環境周囲で歩く／走るまたはその他の方法により移動することができるように構成されることができる、脚部１２４４を含む。
【０１３６】
図７Ｆは、本開示の実施態様による、回転自在なボール形状部分１２５０を含むロボットを示す。いくつかの実施態様では、ボール形状部分１２５０は、それに取り付けられるカメラ、プロジェクタ、マイクロホンなどの任意のデバイスを再指向させるように、全方向に回転することができる。ボール形状部分１２５０は、中央部分１２５２によって支持され、この中央部分は、ベース部分１２５４の周囲で回転可能であることにより、ロボットのデバイスの動きのより大きな融通性を提供する。
【０１３７】
図７Ｇは、本開示の実施態様による、ホイール１２６２間に画定される本体１２６０を含むロボットを示す。いくつかの実施態様では、ホイール１２６２ａ及び１６２６ｂは、本体１２６０よりも実質的に大きいように大型であり、ロボットが障害物または他の不連続部を横切ることができる。いくつかの実施態様では、本体１２６０の重心は、ホイール１２６２ａ及び１２６２ｂの軸のレベルより下にあるように構成されるため、本体１２６０の向きは、支持用に２つのホイールを含むに過ぎないが容易に維持される。
【０１３８】
図８は、クライアントシステム１３０６とインタフェースするユーザ１３００のＨＭＤ１０２の一例を示し、クライアントシステム１３０６は、セカンドスクリーン１３０７と呼ばれるセカンドスクリーンディスプレイにコンテンツを提供する。クライアントシステム１３０６は、ＨＭＤ１３０２からセカンドスクリーン１３０７へのコンテンツの共有を処理するための統合された電子機器を含むことができる。他の実施形態は、クライアントシステムと、ＨＭＤ１３０２及びセカンドスクリーン１３０７のそれぞれとの間でインタフェースする、別個のデバイス、モジュール、コネクタを含むことができる。この一般的な例では、ユーザ１３００は、ＨＭＤ１３０２を装着しており、指向性インタフェースオブジェクト１３０４でもあることができる、コントローラを使用してビデオゲームをプレイしている。ユーザ１３００によるインタラクティブプレイは、ビデオゲームコンテンツ（ＶＧＣ）を生成し、このＶＧＣは、ＨＭＤ１３０２にインタラクティブに表示される。
【０１３９】
一実施形態では、ＨＭＤ１３０２に表示されているコンテンツは、セカンドスクリーン１３０７に共有される。一例では、セカンドスクリーン１３０７を見ている人は、ユーザ１３００によってＨＭＤ１３０２においてインタラクティブに再生されているコンテンツを見ることができる。別の実施形態では、別のユーザ（例えば、プレーヤー２）は、クライアントシステム１３０６とインタラクトして、セカンドスクリーンコンテンツ（ＳＳＣ）を生成することができる。コントローラ１３０４（または任意のタイプのユーザインタフェース、ジェスチャ、音声、または入力）ともインタラクトするプレーヤーによって生成されるセカンドスクリーンコンテンツを、ＳＳＣとしてクライアントシステム１３０６に生成し、ＨＭＤ１３０２から受信するＶＧＣに加えて、セカンドスクリーン１３０７上に表示することができる。
【０１４０】
その結果、ＨＭＤユーザが共同設置される、またはこのＨＭＤユーザからリモートにあることができる、他のユーザによるインタラクティビティは、ＨＭＤユーザと、セカンドスクリーン１３０７上でＨＭＤユーザが再生しているコンテンツを見ていることができるユーザとの両方に、ソーシャル、インタラクティブ、及びさらに没入型であることができる。図示されるように、クライアントシステム１３０６は、インターネット１３１０に接続されることができる。また、インターネットは、さまざまなコンテンツソース１３２０からのコンテンツに、クライアントシステム１３０６へのアクセスを提供することができる。コンテンツソース１３２０は、インターネットを介してアクセス可能である任意のタイプのコンテンツを含むことができる。
【０１４１】
そのようなコンテンツは、限定ではなく、ビデオコンテンツ、ムービーコンテンツ、ストリーミングコンテンツ、ソーシャルメディアコンテンツ、ニュースコンテンツ、フレンドコンテンツ、広告コンテンツなどを含むことができる。一実施形態では、ゲームプレイ中のインタラクティビティと関連するマルチメディアコンテンツをＨＭＤに提供するように、クライアントシステム１３０６を使用して、ＨＭＤユーザについてのコンテンツを同時に処理することができる。次に、クライアントシステム１０６は、ビデオゲームコンテンツに関連しない可能性がある他のコンテンツをもセカンドスクリーンに提供することができる。クライアントシステム１３０６は、一実施形態では、コンテンツソース１３２０のうちの１つから、またはローカルユーザもしくはリモートユーザから、セカンドスクリーンコンテンツを受信することができる。
【０１４２】
図９は、本開示のさまざまな実施形態による、ゲームシステム１４００のブロック図である。ゲームシステム１４００は、ネットワーク１４１５を介して１つ以上のクライアント１４１０にビデオストリームを提供するように設定される。ゲームシステム１４００は、通常、ビデオサーバシステム１４２０、及び任意選択のゲームサーバ１４２５を含む。ビデオサーバシステム１４２０は、最小限のサービス品質によって１つ以上のクライアント１４１０にビデオストリームを提供するように設定される。例えば、ビデオサーバシステム１４２０は、ビデオゲーム内のビューの状態または視点を変更するゲームコマンドを受信し、最小限のラグタイムによって状態にこの変更を反映する、更新されたビデオストリームをクライアント１４１０に提供することができる。ビデオサーバシステム１４２０は、まだ定義されていないフォーマットを含む、多種多様な代替ビデオフォーマットにおいてビデオストリームを提供するように設定されることができる。さらに、ビデオストリームは、多種多様なフレームレートでユーザへの提示用に設定されるビデオフレームを含むことができる。一般的なフレームレートは、１秒あたり３０フレーム、１秒あたり６０フレーム、及び１秒あたり１２０フレームである。フレームレートがより高い、またはより低いにもかかわらず、これらのフレームレートは、本開示の代替の実施形態に含まれる。
【０１４３】
本明細書では個別に１４１０Ａ、１４１０Ｂと称される、クライアント１４１０は、ヘッドマウントディスプレイ、端末、パーソナルコンピュータ、ゲームコンソール、タブレットコンピュータ、電話、セットトップボックス、キオスク、ワイヤレスデバイス、デジタルパッド、スタンドアロンデバイス、ハンドヘルドゲームプレイデバイス、及び／または同様のものを含むことができる。通常、クライアント１４１０は、符号化されたビデオストリームを受信し、これらのビデオストリームを復号し、得られたビデオをユーザ、例えば、ゲームのプレーヤーに提示するように設定される。符号化されたビデオストリームを受信するプロセス、及び／またはビデオストリームを復号するプロセスは、通常、クライアントの受信バッファに個々のビデオフレームを格納することを含む。ビデオストリームは、クライアント１４１０に統合されたディスプレイ上で、またはモニターもしくはテレビなどの別個のデバイス上で、ユーザに提示されることができる。任意選択で、クライアント１４１０は、１人より多いゲームプレーヤーをサポートするように設定される。例えば、ゲームコンソールは、２、３、４人またはそれ以上の同時プレーヤーをサポートするように設定されることができる。これらのプレーヤーのそれぞれは、別個のビデオストリームを受信することができる、または単一のビデオストリームは、各プレーヤーのために特別に生成される、例えば、各プレーヤーの視点に基づき生成される、フレーム領域を含むことができる。任意選択で、クライアント１４１０は、地理的に分散している。ゲームシステム１４００に含まれるクライアントの数は、１つまたは２つから、数千、数万、またはそれ以上に大きく異なることができる。本明細書で使用される場合、「ゲームプレーヤー」という用語は、ゲームをプレイする人を指すために使用され、「ゲームプレイデバイス」という用語は、ゲームをプレイするために使用されるデバイスを指すために使用される。いくつかの実施形態では、ゲームプレイデバイスは、ゲーム体験をユーザに配信するために協働する複数のコンピューティングデバイスを指す場合がある。例えば、ゲームコンソール及びＨＭＤは、ビデオサーバシステム１４２０と協働して、ＨＭＤを通して表示されるゲームを配信することができる。一実施形態では、ゲームコンソールは、ビデオサーバシステム１４２０からビデオストリームを受信し、ゲームコンソールは、レンダリングするためにＨＭＤに、ビデオストリームを転送する、またはビデオストリームを更新する。
【０１４４】
クライアント１４１０は、ネットワーク１４１５を介してビデオストリームを受信するように設定される。ネットワーク１４１５は、電話網、インターネット、無線ネットワーク、電力線ネットワーク、ローカルエリアネットワーク、ワイドエリアネットワーク、プライベートネットワーク、及び／または同様のものを含む、任意のタイプの通信ネットワークであることができる。典型的な実施形態では、ビデオストリームは、ＴＣＰ／ＩＰまたはＵＤＰ／ＩＰなどの標準プロトコルを介して通信される。代替に、ビデオストリームは、独自の規格を介して通信される。
【０１４５】
クライアント１４１０の典型的な例は、プロセッサ、不揮発性メモリ、ディスプレイ、復号ロジック、ネットワーク通信機能、及び入力デバイスを含むパーソナルコンピュータである。復号ロジックは、コンピュータ可読媒体に格納される、ハードウェア、ファームウェア及び／またはソフトウェアを含むことができる。ビデオストリームを復号する（及び符号化する）ためのシステムは、当該技術で周知であり、使用される特定の符号化スキームに応じて異なる。
【０１４６】
クライアント１４１０は、受信したビデオを修正するように設定されるシステムをさらに含むことができるが、含まなくても良い。例えば、クライアントは、さらにレンダリングを実行する、１つのビデオ画像を別のビデオ画像上にオーバーレイする、ビデオ画像をクロッピングする、及び／または同様にするように設定されることができる。例えば、クライアント１４１０は、Ｉフレーム、Ｐフレーム及びＢフレームなどのさまざまなタイプのビデオフレームを受信し、これらのフレームをユーザに表示するための画像に処理するように設定されることができる。いくつかの実施形態では、クライアント１４１０のメンバーは、ビデオストリーム上にさらなる、レンダリング、シェーディング、３Ｄへの変換、または同様の操作を実行するように設定される。任意選択で、クライアント１４１０のメンバーは、１つより多いオーディオまたはビデオストリームを受信するように設定される。クライアント１４１０の入力デバイスは、例えば、片手用ゲームコントローラ、両手用ゲームコントローラ、ジェスチャ認識システム、視線認識システム、音声認識システム、キーボード、ジョイスティック、ポインティングデバイス、フォースフィードバックデバイス、モーション及び／または位置検知デバイス、マウス、タッチスクリーン、ニューラルインタフェース、カメラ、まだ開発されていない入力デバイス、及び／または同様のものを含むことができる。
【０１４７】
クライアント１４１０によって受信されるビデオストリーム（及び任意選択でオーディオストリーム）は、ビデオサーバシステム１４２０によって生成され、提供される。本明細書の他の箇所でさらに説明されるように、このビデオストリームは、ビデオフレームを含む（そしてオーディオストリームは、オーディオフレームを含む）。ビデオフレームは、ユーザに表示される画像に有意義に寄与する（例えば、それらは、適切なデータ構造にピクセル情報を含む）ように設定される。本明細書で使用される場合、「ビデオフレーム」という用語は、ユーザに示される画像に寄与するように、例えば、これらの画像をもたらすように設定される、主に情報を含むフレームを指すために使用される。「ビデオフレーム」に関する本明細書における教示のほとんどは、「オーディオフレーム」にも適用されることができる。
【０１４８】
クライアント１４１０は、通常、ユーザから入力を受信するように設定される。これらの入力は、ビデオゲームの状態を変更する、またはその他の方法によりゲームプレイに影響するように設定されるゲームコマンドを含むことができる。ゲームコマンドは、入力デバイスを使用して受信されることができる、及び／またはクライアント１４１０上で実行するコンピューティングインストラクションによって自動的に生成されることができる。受信したゲームコマンドをクライアント１４１０からネットワーク１４１５を介してビデオサーバシステム１４２０及び／またはゲームサーバ１４２５に通信する。例えば、いくつかの実施形態では、ゲームコマンドを、ビデオサーバシステム１４２０を介してゲームサーバ１４２５に通信する。いくつかの実施形態では、ゲームコマンドの別個のコピーをクライアント１４１０からゲームサーバ１４２５及びビデオサーバシステム１４２０に通信する。任意選択で、ゲームコマンドの通信は、コマンドのアイデンティティに依存する。任意選択で、ゲームコマンドは、オーディオまたはビデオストリームをクライアント１４１０Ａに提供するために使用された別のルートまたは通信チャネルを通じて、クライアント１４１０Ａから通信される。
【０１４９】
任意選択で、ゲームサーバ１４２５は、ビデオサーバシステム１４２０とは別のエンティティによって操作される。例えば、ゲームサーバ１４２５は、マルチプレーヤーゲームのパブリッシャーによって操作されることができる。この例では、ビデオサーバシステム１４２０は、任意選択で、ゲームサーバ１４２５によってクライアントと見なされ、任意選択で、ゲームサーバ１４２５の視点からは、従来技術のゲームエンジンを実行する従来技術のクライアントであるように見えるように設定される。ビデオサーバシステム１４２０とゲームサーバ１４２５との間の通信は、任意選択でネットワーク１４１５を介して発生する。このようなものとして、ゲームサーバ１４２５は、ゲーム状態情報を複数のクライアントに送信する先行技術のマルチプレーヤーゲームサーバであることができ、その１つは、ゲームサーバシステム１４２０である。ビデオサーバシステム１４２０は、ゲームサーバ１４２５の複数のインスタンスと同時に通信するように設定されることができる。例えば、ビデオサーバシステム１４２０は、複数の異なるビデオゲームを異なるユーザに提供するように設定されることができる。これらの異なるビデオゲームのそれぞれは、異なるゲームサーバ１４２５によってサポートされている、及び／またはさまざまなエンティティによって公開されている場合がある。いくつかの実施形態では、ビデオサーバシステム１４２０のいくつかの地理的に分散されたインスタンスは、複数の異なるユーザにゲームビデオを提供するように設定される。ビデオサーバシステム１４２０のこれらのインスタンスのそれぞれは、ゲームサーバ１４２５の同じインスタンスと通信することができる。ビデオサーバシステム１４２０と１つ以上のゲームサーバ１４２５との間の通信は、任意選択で専用通信チャネルを介して発生する。例えば、ビデオサーバシステム１４２０は、これら２つのシステム間の通信に専用である高帯域幅チャネルを介してゲームサーバ１４２５に接続されることができる。
【０１５０】
ビデオサーバシステム１４２０は、少なくとも１つのビデオソース１４３０、Ｉ／Ｏデバイス１４４５、プロセッサ１４５０、及び非一時的なストレージ１４５５を含む。ビデオサーバシステム１４２０は、１つのコンピューティングデバイスを含む、または複数のコンピューティングデバイス間で分散されることができる。これらのコンピューティングデバイスは、ローカルエリアネットワークなどの通信システムを介して任意選択で接続される。
【０１５１】
ビデオソース１４３０は、ビデオストリーム、例えば、ストリーミングビデオ、または動画を形成する一連のビデオフレームを提供するように設定される。一部の実施形態では、ビデオソース１４３０は、ビデオゲームエンジン及びレンダリングロジックを含む。ビデオゲームエンジンは、プレーヤーからゲームコマンドを受信し、受信したコマンドに基づきビデオゲームの状態のコピーを維持するように設定される。このゲーム状態は、ゲーム環境での物体の位置と、一般に視点を含む。また、ゲーム状態は、物体のプロパティ、画像、色及び／または質感を含むことができる。一般に、ゲーム状態は、ゲームのルールに加えて、移動、ターン、攻撃、フォーカス設定、インタラクト、使用、及び／または同様のものなどのゲームコマンドに基づき維持される。ゲームエンジンの一部は、任意選択でゲームサーバ１４２５内に配置される。ゲームサーバ１４２５は、地理的に分散したクライアントを使用して複数のプレーヤーから受信するゲームコマンドに基づき、ゲーム状態のコピーを維持することができる。これらの場合、ゲーム状態をゲームサーバ１４２５によってビデオソース１４３０に提供し、そこにゲーム状態のコピーを格納し、レンダリングを実行する。ゲームサーバ１４２５は、ネットワーク１４１５を介してクライアント１４１０から直接ゲームコマンドを受信することができる、及び／またはビデオサーバシステム１４２０を介してゲームコマンドを受信することができる。
【０１５２】
一般に、ビデオソース１４３０は、レンダリングロジック、例えば、ストレージ１４５５などのコンピュータ可読媒体に格納されるハードウェア、ファームウェア、及び／またはソフトウェアを含む。このレンダリングロジックは、ゲーム状態に基づきビデオストリームのビデオフレームを作成するように設定される。レンダリングロジックのすべて、または一部は、任意選択でグラフィックスプロセッシングユニット（ＧＰＵ）内に配置される。一般に、レンダリングロジックは、物体間の３次元空間関係を決定するために、及び／またはゲーム状態及び視点に基づき、適切な質感などを適用するために、設定される処理ステージを含む。レンダリングロジックは、未加工ビデオを生成し、次いで通常、このビデオをクライアント１４１０への通信前に符号化する。例えば、未加工ビデオは、Ａｄｏｂｅ  Ｆｌａｓｈ（登録商標）規格、．ｗａｖ、Ｈ．２６４、Ｈ．２６３、Ｏｎ２、ＶＰ６、ＶＣ−１、ＷＭＡ、Ｈｕｆｆｙｕｖ、Ｌａｇａｒｉｔｈ、ＭＰＧ−ｘ．Ｘｖｉｄ．ＦＦｍｐｅｇ、ｘ２６４、ＶＰ６−８、ｒｅａｌｖｉｄｅｏ、ｍｐ３などに従い符号化されることができる。符号化プロセスは、リモートデバイス上の復号器に配信するために任意選択でパッケージ化されるビデオストリームを生成する。ビデオストリームは、フレームサイズ及びフレームレートによって特徴付けられる。通常のフレームサイズは、８００ｘ６００、１２８０ｘ７２０（例えば、７２０ｐ）、１０２４ｘ７６８を有するが、いずれかの他のフレームサイズも使用されることができる。フレームレートは、１秒あたりのビデオフレーム数である。ビデオストリームは、さまざまなタイプのビデオフレームを含むことができる。例えば、Ｈ．２６４規格は、「Ｐ」フレーム、及び「Ｉ」フレームを含む。Ｉフレームは、すべてのマクロブロック／ピクセルを表示デバイス上でリフレッシュするための情報を含み、Ｐフレームは、その１サブセットをリフレッシュするための情報を含む。通常、Ｐフレームは、Ｉフレームよりもデータサイズが小さい。本明細書で使用される場合、「フレームサイズ」という用語は、フレーム内のピクセル数を指すことを意味する。「フレームデータサイズ」という用語は、フレームを格納するために必要なバイト数を指すために使用される。
【０１５３】
代替の実施形態では、ビデオソース１４３０は、カメラなどのビデオ記録デバイスを含む。このカメラは、コンピュータゲームのビデオストリームに含まれることができる、遅延ビデオまたはライブビデオを生成するために使用されることができる。結果として得られるビデオストリームは、レンダリングされた画像と、スチルまたはビデオカメラを使用して記録される画像との両方を任意選択で含む。また、ビデオソース１４３０は、ビデオストリームに含まれる、以前に記録されたビデオを格納するように設定されるストレージデバイスを含むことができる。また、ビデオソース１４３０は、物体、例えば人の動きまたは位置を検出するように設定されるモーションまたは位置決め感知デバイスと、ゲーム状態を決定する、または検出された動き及び／または位置に基づきビデオを生成するように設定されるロジックとを含むことができる。
【０１５４】
ビデオソース１４３０は、任意選択で、他のビデオ上に置かれるように構成されるオーバーレイを提供するように設定されている。例えば、これらのオーバーレイは、コマンドインタフェース、ログインインストラクション、ゲームプレーヤーへのメッセージ、他のゲームプレーヤーの画像、他のゲームプレーヤーのビデオフィード（例えば、ウェブカメラビデオ）を含むことができる。タッチスクリーンインタフェースまたは視線検出インタフェースを含むクライアント１４１０Ａの実施形態では、オーバーレイは、仮想キーボード、ジョイスティック、タッチパッド、及び／または同様のものを含むことができる。オーバーレイの一例では、プレーヤーの声をオーディオストリーム上にオーバーレイする。ビデオソース１４３０は、任意選択で、１つ以上のオーディオソースをさらに含む。
【０１５５】
ビデオサーバシステム１４２０が２人以上のプレーヤーからの入力に基づきゲーム状態を維持するように設定される実施形態では、各プレーヤーは、ビューの位置及び方向を含む異なる視点を有することができる。ビデオソース１４３０は、それらの視点に基づき各プレーヤーについて別個のビデオストリームを提供するように任意選択で設定される。さらに、ビデオソース１４３０は、各クライアント１４１０に、異なるフレームサイズ、フレームデータサイズ、及び／または符号化を提供するように設定されることができる。ビデオソース１４３０は、任意選択で、３Ｄビデオを提供するように設定される。
【０１５６】
Ｉ／Ｏデバイス１４４５は、ビデオサーバシステム１４２０のために、ビデオ、コマンド、情報についての要求、ゲーム状態、視線情報、デバイスの動き、デバイスの位置、ユーザの動き、クライアントアイデンティティ、プレーヤーアイデンティティ、ゲームコマンド、セキュリティ情報、オーディオなどの情報を送信する、及び／または受信するように設定される。一般に、Ｉ／Ｏデバイス１４４５は、ネットワークカードまたはモデムなどの通信ハードウェアを含む。Ｉ／Ｏデバイス１４４５は、ゲームサーバ１４２５、ネットワーク１４１５、及び／またはクライアント１４１０と通信するように設定される。
【０１５７】
プロセッサ１４５０は、本明細書に考察されているビデオサーバシステム１４２０のさまざまなコンポーネント内に含まれるロジック、例えば、ソフトウェアを実行するように設定される。例えば、プロセッサ１４５０は、ビデオソース１４３０、ゲームサーバ１４２５、及び／またはクライアント限定子１４６０の機能を実行するために、ソフトウェアインストラクションによってプログラムされることができる。任意選択で、ビデオサーバシステム１４２０は、プロセッサ１４５０の１つより多いインスタンスを含む。また、プロセッサ１４５０は、ビデオサーバシステム１４２０によって受信されるコマンドを実行するために、または本明細書に考察されているゲームシステム１４００のさまざまなエレメントの操作を調整するために、ソフトウェアインストラクションによってプログラムされることができる。プロセッサ１４５０は、１つ以上のハードウェアデバイスを含むことができる。プロセッサ１４５０は、電子プロセッサである。
【０１５８】
ストレージ１４５５は、非一時的なアナログ及び／またはデジタルストレージデバイスを含む。例えば、ストレージ１４５５は、ビデオフレームを格納するように設定されるアナログストレージデバイスを含むことができる。ストレージ１４５５は、コンピュータ可読デジタルストレージ、例えば、ハードドライブ、光学ドライブ、またはソリッドステートストレージを含むことができる。ストレージ１４１５は、ビデオフレーム、人工フレーム、ビデオフレーム及び人工フレームの両方を含むビデオストリーム、オーディオフレーム、オーディオストリーム、及び／または同様のものを格納するように設定される（例えば、適切なデータ構造またはファイルシステムによって）。任意選択で、ストレージ１４５５は、複数のデバイス間で分散される。いくつかの実施形態では、ストレージ１４５５は、本明細書の他の箇所に考察されているビデオソース１４３０のソフトウェアコンポーネントを格納するように設定される。これらのコンポーネントは、必要なときにプロビジョニングされる準備ができているフォーマットに格納されることができる。
【０１５９】
任意選択で、ビデオサーバシステム１４２０は、クライアント限定子１４６０をさらに含む。クライアント限定子１４６０は、クライアント１４１０Ａまたは１４１０Ｂなどのクライアントの機能をリモートで決定するように設定される。これらの機能は、クライアント１４１０Ａ自体の機能、及びクライアント１４１０Ａとビデオサーバシステム１４２０との間の１つ以上の通信チャネルの機能の両方を含むことができる。例えば、クライアント限定子１４６０は、ネットワーク１４１５を介して通信チャネルをテストするように設定されることができる。
【０１６０】
クライアント限定子１４６０は、クライアント１４１０Ａの機能を手動で、または自動的に決定する（例えば、見いだす）ことができる。手動での決定は、クライアント１４１０Ａのユーザと通信すること、及びユーザに機能を提供するように求めることを含む。例えば、いくつかの実施形態では、クライアント限定子１４６０は、クライアント１４１０Ａのブラウザ内の、画像、テキスト、及び／または同様のものを表示するように設定される。一実施形態では、クライアント１４１０Ａは、ブラウザを含むＨＭＤである。別の実施形態では、クライアント１４１０Ａは、ＨＭＤ上に表示されることができる、ブラウザを含むゲームコンソールである。表示された物体は、クライアント１４１０Ａの、オペレーティングシステム、プロセッサ、ビデオ復号器のタイプ、ネットワーク接続のタイプ、ディスプレイの解像度などのような情報をユーザが入力することを要求する。ユーザが入力した情報は、クライアント限定子１４６０に返信される。
【０１６１】
例えば、自動決定は、クライアント１４１０Ａ上のエージェントの実行によって、及び／またはクライアント１４１０Ａにテストビデオを送信することによって、起こることができる。このエージェントは、ウェブページに埋め込まれた、またはアドオンとしてインストールされた、ｊａｖａ（登録商標）スクリプトなどのコンピューティングインストラクションを含むことができる。エージェントは、クライアント限定子１４６０によって任意選択で提供される。さまざまな実施形態では、エージェントは、クライアント１４１０Ａの処理能力、クライアント１４１０Ａの復号及び表示機能、クライアント１４１０Ａとビデオサーバシステム１４２０との間のラグタイムの信頼性及び通信チャネルの帯域幅、クライアント１４１０Ａのディスプレイのタイプ、クライアント１４１０Ａ上に存在するファイアウォール、クライアント１４１０Ａのハードウェア、クライアント１４１０Ａ上で実行するソフトウェア、クライアント１４１０Ａ内のレジストリエントリ、及び／または同様のものを見いだすことができる。
【０１６２】
クライアント限定子１４６０は、コンピュータ可読媒体に格納される、ハードウェア、ファームウェア及び／またはソフトウェアを含む。任意選択で、クライアント限定子１４６０は、ビデオサーバシステム１４２０の１つ以上の他のエレメントとは別のコンピューティングデバイスに配置される。例えば、いくつかの実施形態では、クライアント限定子１４６０は、クライアント１４１０と、ビデオサーバシステム１４２０の１つより多いインスタンスとの間の通信チャネルの特性を決定するように設定される。これらの実施形態では、クライアント限定子によって見いだされる情報を使用して、クライアント１４１０の１つへのストリーミングビデオの配信に最も適しているビデオサーバシステム１４２０のインスタンスを決定することができる。
【０１６３】
本開示の実施形態は、ハンドヘルドデバイス、マイクロプロセッサシステム、マイクロプロセッサベースの、またはプログラム可能な家庭用電化製品、ミニコンピュータ、メインフレームコンピュータなどを含むさまざまなコンピュータシステムコンフィグレーションによって実施されることができる。また、本開示は、有線ベースまたは無線ネットワークを介してリンクされるリモート処理デバイスによってタスクが実行される分散コンピューティング環境で実施されることができる。
【０１６４】
上記の実施形態を考慮して、本開示がコンピュータシステムに格納されたデータを含むさまざまなコンピュータ実装操作を使用することができることを理解されたい。これらの操作は、物理量の物理的な操作を必要とする操作である。本開示の一部を形成する、本明細書に記載されている操作のいずれも、有用な機械操作である。また、本開示は、これらの操作を実行するためのデバイスまたは装置に関する。この装置は、必要な目的のために特別に構築されることができる、またはこの装置は、コンピュータに格納されたコンピュータプログラムによって選択的にアクティブ化される、もしくは設定される汎用コンピュータであることができる。特に、さまざまな汎用マシンは、本明細書の教示に従って書かれたコンピュータプログラムと共に使用されることができる、またはそれは、必要な操作を実行するためにより専門的な装置を構築するのにさらに好適であることができる。
【０１６５】
また、本開示は、コンピュータ可読媒体上にコンピュータ可読コードとして具現化されることができる。このコンピュータ可読媒体は、データを格納することができ、その後コンピュータシステムによって読み出されることができる任意のデータストレージデバイスである。コンピュータ可読媒体の例は、ハードドライブ、ネットワークアタッチトストレージ（ＮＡＳ）、読み出し専用メモリ、ランダムアクセスメモリ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、磁気テープ、ならびに他の光学及び非光学データストレージデバイスを含む。コンピュータ可読媒体は、コンピュータ可読コードが分散方式で格納され、実行されるように、ネットワーク結合型コンピュータシステム上に分散されたコンピュータ可読有形媒体を含むことができる。
【０１６６】
方法操作は、特定の順序で説明されていたが、他のハウスキーピング操作が操作の合間に実行される場合があること、または操作がわずかに異なる時間に発生するように調整される場合や、オーバーレイ操作の処理が望ましい方法で実行される限り、処理に関連するさまざまな間隔での処理操作の発生を可能にするシステムに分散される場合があることを理解されたい。
【０１６７】
前述の開示は、理解を明確にする目的である程度詳細に説明されているが、添付の特許請求の範囲内である特定の変更及び修正を実施することができることが明らかであろう。したがって、本実施形態は、例示的であり限定的ではないと見なされるべきであり、本開示は、本明細書に与えられた詳細に限定されるべきではなく、本開示の範囲及び均等物内で修正され得る。
【図１Ａ】
2021508520.tif 000003
【図１Ｂ】
2021508520.tif 000004
【図１Ｃ】
2021508520.tif 000005
【図１Ｄ】
2021508520.tif 000006
【図２】
2021508520.tif 000007
【図３】
2021508520.tif 000008
【図４】
2021508520.tif 000009
【図５】
2021508520.tif 000010
【図６】
2021508520.tif 000011
【図７Ａ】
2021508520.tif 000012
【図７Ｂ】
2021508520.tif 000013
【図７Ｃ】
2021508520.tif 000014
【図７Ｄ】
2021508520.tif 000015
【図７Ｅ】
2021508520.tif 000016
【図７Ｆ】
2021508520.tif 000017
【図７Ｇ】
2021508520.tif 000018
【図８】
2021508520.tif 000019
【図９】
2021508520.tif 000020
【国際調査報告】
2021508520.tif 000021
2021508520.tif 000022
2021508520.tif 000023
2021508520.tif 000024
2021508520.tif 000025
2021508520.tif 000026