(57)【要約】ユーザーが身体アクティビティに従事するときにユーザーにフィードバックを提供するために、ロボットを使用するための方法及びシステムでは、ジオロケーション内のユーザーの存在を検出する。ユーザーが識別されてロボットと関連付けられる。ジオロケーション内のユーザーアクティビティはモニタされ、ユーザーがエクササイズルーチンからのエクササイズを実行していることをロボットが検出すると、ロボットは、エクササイズを実行している間にユーザーにより保持される姿勢の画像を取り込むように、ユーザーに近接する１つ以上の位置に位置決めされる。取り込んだ画像は解析され、ユーザーがその姿勢を改善できるようにするためにフィードバックがユーザーに提供される。【選択図】図５Ａ
2020534041.tif 000002
【特許請求の範囲】
【請求項１】
ロボットを使用したフィジカルトレーニング中にユーザーを支援する方法であって、前記方法はロボットのプロセッサによって実行されるものであり、
前記ロボットが配備されるジオロケーション内の前記ユーザーの存在の検出を行い、前記ユーザーの存在は、前記ロボットにより取り込んだ前記ユーザーの１つ以上のユーザー属性を、前記ユーザーのユーザープロファイルに記憶された対応するユーザー属性とマッチさせることによって確認されるものであり、
前記ユーザーがエクササイズを実行しているときに、前記ユーザーにより保持される姿勢の１つ以上の画像を取り込むために、前記ユーザーがエクササイズルーチンから前記エクササイズを実行するのを検出すると、前記ユーザーに近接する１つ以上の位置へと前記ロボットの移動を行い、前記１つ以上の位置は、前記ユーザーが現在実行している前記エクササイズに基づいて識別され、
前記ユーザーが前記エクササイズのために前記姿勢を改善するのを支援するために前記エクササイズ中に取り込んだ前記ユーザーにより保持される前記姿勢に関係するフィードバックの提供を行う、方法。
【請求項２】
前記ユーザーが前記エクササイズルーチンで識別された前記エクササイズを実行しているときに、前記ロボットが前記ユーザーの前記姿勢に対する変化を取り込むことを可能にするために、前記ロボットの前記位置または前記ロボットの１つ以上のセンサの向きの調整を継続し、
前記ロボットにより取り込んだ前記姿勢に対する前記変化が、前記ユーザーに提供される前記フィードバックを更新するために使用される、請求項１に記載の方法。
【請求項３】
前記ロボットの移動では、更に、
前記ユーザーが前記エクササイズルーチンを実行している前記ジオロケーションをマッピングし、前記ロボットは、前記姿勢の前記画像を取り込むために１つ以上の位置に移動できる領域を識別し、
前記マッピングに基づいて、前記領域の中の前記１つ以上の位置への前記ロボットの前記移動を調整する、請求項１に記載の方法。
【請求項４】
前記マッピングが、前記ロボットが移動できる前記領域を画定する２次元マッピング、または、前記ロボットもしくは前記ロボットの１つ以上のセンサが、前記姿勢の前記１つ以上の画像を取り込むための位置に移動できる容積を画定する３次元マッピングである、請求項３に記載の方法。
【請求項５】
更に、前記マッピングでは、前記ロボットまたは前記ロボットの１つ以上のセンサが、前記ジオロケーション内の前記１つ以上の位置に移動して、前記ユーザーが前記エクササイズルーチンを実行しているときに前記ユーザーにより保持される前記姿勢の前記１つ以上の画像を取り込むことを可能にするために、前記ジオロケーション内の１つ以上のオブジェクトを再配置する要求を前記ユーザーに対して生成する、請求項３に記載の方法。
【請求項６】
前記ユーザーにより実行される前記エクササイズルーチンの識別では、
前記ユーザーから言語的合図を受け取ることであって、前記言語的合図が、ユーザーが実行することに関心がある前記エクササイズルーチンを識別するために、及び前記エクササイズルーチンからエクササイズを実行するための命令を取り出すために解析され、前記命令が、前記ユーザーが前記エクササイズルーチンの前記エクササイズを実行する際に前記ユーザーを支援するように提示される、前記受け取ること、
をさらに含む、請求項１に記載の方法。
【請求項７】
前記ユーザーにより実行される前記エクササイズルーチンの識別では、
前記ユーザーの前記ユーザープロファイルから、ユーザー識別子を使用して前記ユーザーのアクティビティ履歴を取り出し、前記アクティビティ履歴は、異なる回数で前記ユーザーが従うエクササイズスケジュールの詳細を提供するものであり、
現在時刻の前記ユーザーの前記エクササイズルーチンを識別するために前記アクティビティ履歴を解析することと、
をさらに含む、請求項１に記載の方法。
【請求項８】
フィードバックの提供では、更に、
モデルを生成するために、前記ユーザーが前記エクササイズを実行しているときに、前記ユーザーの前記姿勢を解釈し、前記モデルが、前記ユーザーにより保持される前記姿勢を模倣する骨格の輪郭を使用して定義されるものであり、
前記モデルを、前記エクササイズの識別された仮想モデルに比較し、
前記モデルの比較から相違点が検出されるとき、前記エクササイズルーチンの前記エクササイズのための前記姿勢を補正するために前記ユーザーにヒントを提供する、請求項１に記載の方法。
【請求項９】
提供される前記ヒントが、前記エクササイズのために前記ユーザーの前記姿勢を調整する命令を含み、
前記ヒントが、音声フォーマットまたは画像フォーマットまたはビデオフォーマットで提供され、前記ヒントが、機械学習を使用して動的に生成され、前記姿勢の比較の間に検出された前記相違点に基づいて調整される、請求項８に記載の方法。
【請求項１０】
前記画像フォーマットまたは前記ビデオフォーマットが、前記ユーザーに近接する前記ジオロケーション内で識別されたレンダリング表面に投影される、または、前記ロボットで利用可能な画面に投影される、または、前記エクササイズルーチンを実行するときに前記ユーザーにより着用されるヘッドマウントディスプレイの画面に投影される、請求項９に記載の方法。
【請求項１１】
ヒントの提供には、前記姿勢で定められる前記エクササイズのための所定の教育ビデオまたは所定の教育音声を識別し、前記ユーザーが従う前記教育ビデオまたは前記教育音声を提供することが含まれる、請求項９に記載の方法。
【請求項１２】
前記ジオロケーション内の前記ユーザーの存在の検出には、前記ロボットにローカルに記憶された前記ユーザーの前記ユーザープロファイルを取り出すことと、前記ロボットにより取り込んだ前記ユーザー属性を前記ユーザープロファイルの対応するユーザー属性にマッチさせることが含まれる、請求項１に記載の方法。
【請求項１３】
前記ジオロケーション内の前記ユーザーの存在の検出では、
クラウドシステムでホストされるサーバに、前記ロボットにより取り込んだ前記ユーザーの前記ユーザー属性を送信し、前記クラウドシステムの前記サーバが、前記取り込んだユーザープロファイルを、前記サーバの対応するユーザープロファイルに記憶された複数のユーザーのユーザー属性とマッチさせて前記ユーザープロファイルのうちの特定のユーザープロファイルを識別し、前記ユーザーを識別する前記特定のユーザープロファイルは、前記ユーザーが実行する予定になっている前記エクササイズルーチンを識別する際に使用される、請求項１に記載の方法。
【請求項１４】
前記ユーザー属性は、前記ロボットの１つ以上のセンサを使用して取り込まれ、前記ユーザー属性は、前記ユーザーを識別するためにバイオメトリック照合を実行するために使用され、
前記ユーザー属性は、顔の特徴、または指紋、または手の形状、または声の波動、またはＤＮＡ、またはシグネチャまたはジェスチャ、またはその任意の２つ以上の組み合わせを含む、請求項１に記載の方法。
【請求項１５】
顔の特徴を取り込むことには、網膜及び虹彩のパターン、または耳たぶの形状、または顔の輪郭、または注視方向、またはその任意の２つ以上の組み合わせを取り込むことが含まれる、請求項１４に記載の方法。
【請求項１６】
ロボットを使用して、ユーザーにより実行されるエクササイズルーチンのフィードバックを提供する方法であって、前記方法は前記ロボットのプロセッサにより実行され、
前記ユーザーが前記エクササイズルーチンを実行することを検出し、前記エクササイズルーチンが１つ以上のエクササイズを含むものであり、
前記ユーザーが前記エクササイズルーチンからエクササイズを実行しているときに前記ユーザーにより保持される姿勢の１つ以上の画像の取り込みを可能にするために、前記ロボットを前記ユーザーに近接する１つ以上の位置に移動させ、前記１つ以上の位置が、前記ユーザーにより実行される前記エクササイズに基づいて識別されるものであり、
前記エクササイズを実行している前記ユーザーの前記画像を解析し、
前記エクササイズルーチンから前記エクササイズを実行している間に、前記ユーザーが前記姿勢を改善できるようにするために前記エクササイズに関係するフィードバックを提供する、方法。
【請求項１７】
前記ロボットの前記位置の調整には、前記ロボットの１つ以上のセンサの位置の調整が含まれ、
前記１つ以上のセンサが、前記ユーザーが前記エクササイズを実行している間に前記ユーザーにより保持される前記姿勢の前記画像を取り込むために使用される、請求項１６に記載の方法。
【請求項１８】
前記ユーザーが前記エクササイズルーチンを実行していることの検出では、更に、
前記ロボットが配備されるジオロケーション内での前記ユーザーの移動を取り込み、
異なる回数で前記ユーザーが従うアクティビティ予定を識別するために前記ユーザーのアクティビティ履歴に問い合わせ、前記アクティビティ予定は、前記ロボットにより取り込んだ前記ユーザーの前記移動を前記ユーザーにより実行されるエクササイズルーチンに関連付けるために使用される、請求項１６に記載の方法。
【請求項１９】
前記ユーザーにより保持される前記姿勢の任意の変化を判定するために、前記ユーザーが前記エクササイズルーチンを実行するときに前記ユーザーの前記姿勢をモニタし続け、
前記姿勢の変化が検出されるとき、前記ユーザーの前記姿勢の前記変化の１つ以上の画像を取り込むために前記ロボットの位置を動的に調整し、前記姿勢の前記変化に関係する前記１つ以上の画像は、前記ユーザーに追加のフィードバックを提供するために解析され、前記追加のフィードバックは、前記ユーザーが前記ユーザーの前記姿勢を改善することを可能にするために提供されるものである、請求項１６に記載の方法。
【請求項２０】
前記姿勢の前記変化は、前記エクササイズルーチンから前記エクササイズを実行するときに、受け取られた前記フィードバックに応えて、前記ユーザーが前記エクササイズルーチンの中の異なるエクササイズを実行すること、または、前記ユーザーが前記姿勢を補正することに関係する、請求項１６に記載の方法。
【請求項２１】
ロボットを使用して、ユーザーにより実行されるエクササイズルーチンのためのフィードバックを提供する方法であって、前記方法は前記ロボットのプロセッサにより実行され、
前記ユーザーから命令を受け取り、前記命令は、前記ユーザーがエクササイズ時に目標としたいと思う身体の特定の部分を識別するものであり、
前記命令に提供される前記身体の前記特定の部分を目標とする前記エクササイズルーチンを識別し、前記エクササイズルーチンは、前記身体の前記特定の部分を目標とするために前記ユーザーにより実行されるべきである異なるエクササイズを識別するものであり、
前記ユーザーが従うための前記エクササイズルーチンからのエクササイズの詳細を提供し、
前記ユーザーが前記エクササイズルーチンから前記エクササイズを実行していることを検出すると、前記ロボットを前記ユーザーに近接する１つ以上の位置に移動させ、前記移動により、前記ロボットが、前記エクササイズを実行するときに前記ユーザーにより保持される姿勢の画像を取り込むことを可能とし、前記１つ以上の位置が、前記ユーザーが現在実行している前記エクササイズに基づいて識別され、
前記ユーザーが前記エクササイズのために前記姿勢を改善することを可能にするために、前記エクササイズに関係するフィードバックを提供し、
前記ユーザーが前記エクササイズルーチンを実行し続けるとき、前記ユーザーの前記姿勢をモニタし続け、前記モニタは、前記姿勢の変化の画像を取り込むために前記ロボットの前記１つ以上の位置を調整することにより実行されるものであり、
前記ユーザーにより保持される前記姿勢で検出される前記変化に基づいて、前記ユーザーに追加のフィードバックを提供し、前記追加のフィードバックは、前記ユーザーが前記エクササイズルーチンを実行するときに前記姿勢を改善することを可能にするために提供されるものである、方法。
【請求項２２】
前記エクササイズルーチンの識別では、
前記ユーザーのユーザープロファイルから入手されるユーザー識別子を使用して前記ユーザーのアクティビティ履歴に問い合わせ、前記アクティビティ履歴は、異なる回数で前記ユーザーが従うエクササイズルーチンのスケジュール及びタイプの詳細を提供するものであり、
前記ユーザーが前記特定の領域を目標とするために以前に実行した前記エクササイズルーチンを識別するために前記アクティビティ履歴を解析する、請求項２１に記載の方法。
【請求項２３】
前記エクササイズルーチンの識別では、
複数のユーザーのアクティビティ履歴に問い合わせ、前記複数のユーザーのそれぞれの前記アクティビティ履歴は、異なるときに前記複数のユーザーのそれぞれのユーザーが従うエクササイズルーチンのスケジュール及びタイプの詳細を提供するものであり、
前記複数のユーザーの大多数が従う、前記特定の領域を目標とする前記エクササイズルーチンを識別するために、前記複数のユーザーのそれぞれの前記アクティビティ履歴を解析する、請求項２１に記載の方法。
【請求項２４】
フィードバックの提供では、更に、前記ユーザーにより実行される前記エクササイズルーチンの中の各エクササイズの詳細を追跡し、前記エクササイズルーチンの各エクササイズのステータスを前記ユーザーに提供する、請求項２１に記載の方法。
【請求項２５】
前記姿勢の変化が、前記エクササイズルーチンの間に前記ユーザーにより実行される前記エクササイズの変化の結果である、請求項２１に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、ロボットが、エクササイズルーチンを実行している間にユーザーの姿勢をモニタし、動的にフィードバックを提供することができるようにすることによってユーザーのパーソナルトレーナーとしてロボットを従事させるための方法及びシステムを記述する。
【背景技術】
【０００２】
コンピュータ技術の進展は、クラウドベースの処理、ビデオゲーム技術等における進展につながってきた。高性能のグラフィックプロセッサ等のクラウドベース処理の進展により、ユーザーは、望ましくかつ最適であるインタラクティブな経験を提示される。例えば、クラウドベースのシステムは、ビデオゲーム等のインタラクティブ（対話型）アプリケーションの実行のために実質的には無制限な処理力及びシステムリソースを提供する。クラウドベースのシステムは、ユーザーが自身のデバイスをアップグレードする必要なくアクセスし、インタラクションを行うために、圧倒的に広いレガシー及び新しいインタラクティブアプリケーションを利用できるようにする。これらのクラウドベースのシステムにより、リモートクライアントに対するコンテンツのストリーミングが可能になり、大部分の処理は、分散される場合があるサーバ上で行われる。したがって、クラウドベースのインタラクティブアプリケーションは、ユーザーが、複雑なハードウェアの制限を受けずにより多くのアプリケーションにアクセスしやすいと感じ、アプリケーション開発者が集中管理場所からゲームコードを管理しやすいと感じるため、人気が高まってきた。
【０００３】
より個人的なレベルでは、ユーザーが、クラウドベースのシステムのリモートサーバでまたはコンピュータもしくはコンソール等のローカルデバイスで利用できるコンテンツを選択し、インタラクションや対話を支援するためにパーソナルデバイスが開発されている。例えば、ヘッドマウントディスプレイが開発され、ヘッドマウントディスプレイは、ユーザーがヘッドマウントディスプレイのディスプレイに提示されるコンテンツとインタラクションあるいは対話が可能となるようにすることで、ユーザーが没入型のゲーム経験等の没入型のインタラクティブな経験を得ることができることから人気が高まっている。同様に、ユーザーがインタラクティブコンテンツに入力を提供するのを支援するために多様なコントローラが開発されてきた。処理の大半はサーバレベルで行われるため、クラウドベースのシステムはより新しいデバイスを導入しやすくし、より新しいデバイスは、個々のシステムレベルでよりもむしろクラウドレベルで容易に統合できる。
【０００４】
コントローラに加えて、ロボットアシスタントは、ユーザーがコンテンツを見て、コンテンツとのインタラクションを支援するためにより一般化してきている。初期のロボットアシスタントには、ユーザーとのインタラクションを容易にするための限られた能力しかなく、オプションはわずかしかなかった。
【０００５】
本開示の実施形態はこのような背景の下になされたものである。
【発明の概要】
【０００６】
本発明の実施形態は、ロボットの助けを借りて、ユーザーがフィジカルトレーニング等のアクティビティを実行するのを支援するために使用される方法及びシステムを開示する。広義には、ロボットはユーザーと関連付けられる。ロボットは、ロボットが存在するジオロケーション内のユーザーの存在を検出する。
ユーザーの存在を検出したことに応えて、ロボットはジオロケーション内のユーザーのアクション及びインタラクションをモニタする。ユーザーが従ったスケジュールに基づいて、またはユーザーから受け取った明示的な命令に基づいて、ユーザーがエクササイズルーチンに従事していることをロボットが検出すると、ユーザーがエクササイズルーチンからエクササイズを実行している間にユーザーの姿勢及び動きの画像を取り込むことができるように、ロボットはユーザーに近接する１つ以上の位置に移動する。
ロボットは取り込んだ画像を使用してユーザーの姿勢を模倣するモデルを構築し、特定のエクササイズに定義される仮想モデルを識別するためにデータベースに問い合わせる。モデルは、例えば機械学習技術を使用し、モデルの相違点を識別するために、仮想モデルと比較される。ロボットは、次いで、ユーザーがエクササイズルーチンで定義される異なるエクササイズのために姿勢または移動を補正するのを支援するようにフィードバックを提供する。
ロボットは、ユーザーのアクション及び動きをモニタし続け、追加のフィードバックを提供してもよい。ユーザーのアクションは、フィードバックに応えての場合もあれば、ユーザーがエクササイズルーチンで異なったエクササイズを続行することに起因する場合もある、ユーザーの姿勢の変化を含む場合がある。ロボットは、このようにして、姿勢の異なる角度を取り込み、姿勢に関するフィードバックを提供することによって、まさに現実世界のパーソナルトレーナーのように、ユーザーがエクササイズを実行しているときにユーザーにフィードバックを提供する「パーソナルトレーナー」の機能を果たす。
【０００７】
一実施形態では、ロボットを使用するユーザーのフィジカルトレーニングを支援するための方法が提供される。方法は、ロボットが配備されるジオロケーション内のユーザーの存在を検出することを含む。ユーザーは、ロボットにより取り込むユーザーのユーザー属性を、ユーザーのユーザープロファイルに記憶された対応するユーザー属性とマッチさせることによって識別される。ジオロケーションで実行するためのエクササイズルーチンが、ユーザーのために識別される。
ユーザーがエクササイズルーチンを実行し始めると、ロボットはユーザーがエクササイズルーチンからエクササイズを実行しているときにユーザーにより保持される姿勢のビューを取り込むように、ユーザーに近接する１つ以上の位置に移動される。位置は、ユーザーが現在実行しているエクササイズに基づいて識別される。エクササイズを実行しているときにユーザーが姿勢を改善できるようにするために、ユーザーの姿勢に関係するフィードバックがロボットにより取り込む姿勢の画像に基づいて提供される。
【０００８】
他の実施形態では、ユーザーにより実行されるエクササイズルーチンのためにフィードバックを提供するための方法が開示される。方法は、ユーザーから命令を受け取ることを含み、命令は、ユーザーが現在時刻に実行することを選択したエクササイズルーチンを識別する。ユーザーがエクササイズルーチンを実行しているのを検出すると、ロボットは、ユーザーがエクササイズルーチンからエクササイズを実行しているときにユーザーにより保持される姿勢のビューを取り込むためにユーザーに近接する１つ以上の位置に移動される。
ロボットを移動する位置は、ユーザーにより実行されるエクササイズに基づいて識別される。エクササイズルーチンに関係するフィードバックは、ユーザーがエクササイズルーチンからエクササイズを実行している間にユーザーが姿勢を改善することを可能にするために、ロボットによってユーザーに提供される。
ロボットは、姿勢のあらゆる変化を決定するためにユーザーの姿勢をモニタし続けるために使用される。ユーザーの姿勢の変化が検出されると、ロボットまたはロボットの１つ以上のセンサの位置は、ユーザーの姿勢の変化のビューを取り込むために調整される。ユーザーがエクササイズのためにユーザーにより保持される姿勢を改善することを可能にために、ユーザーの姿勢の検出された変化に基づいて、ユーザーに追加のフィードバックがロボットにより提供される。
【０００９】
さらに他の実施形態では、ユーザーにより実行されるエクササイズルーチンのために、ロボットを使用し、フィードバックを提供するための方法が開示される。方法は、ユーザーから命令を受け取ることを含み、命令は、ユーザーがエクササイズ時に目標としたいと思う身体の特定の部分を識別する。身体の特定の部分を目標とするエクササイズルーチンが識別され、エクササイズルーチンは、ユーザーにより実行されるべき異なるエクササイズを含む。エクササイズルーチンからは、ユーザが従うエクササイズの詳細が提供される。
エクササイズをユーザーが実行したことを検出すると、ロボットは、ロボットが、エクササイズを実行している間にユーザーにより保持される姿勢の画像を取り込むことを可能にするようにユーザーに近接する１つ以上の位置に移動される。ロボットを移動するための１つ以上の位置は、ユーザーが実行しているエクササイズに基づいて識別される。エクササイズに関係するフィードバックは、ユーザーがエクササイズのための姿勢を改善することを可能にするために提供される。
ユーザーがエクササイズルーチンを続けるにつれ、ユーザーの姿勢はモニタし続けられ、モニタすることは、ユーザーの姿勢の変化を取り込むためにロボットの位置を調整することによって実行される。追加のフィードバックは、ユーザーにより保持される姿勢で検出される変化に基づいてユーザーに提供される。ユーザーがエクササイズのための姿勢を改善することを可能にするために、追加のフィードバックが提供される。
【００１０】
他の実施形態では、システムが開示される。システムは、ネットワークを介して、クラウドシステムでホストされるサーバと通信するロボットを含む。ロボットは、ロボットが存在するジオロケーション内のユーザーの存在を検出し、ユーザーが現在時刻で実行する予定になっているアクティビティを識別するように構成される人工知能（ＡＩ）論理を含む。ＡＩ論理は、関連する情報を入手するためにサーバと通信する複数の論理モジュールを含む。
ＡＩ論理の複数のモジュールは、２〜３例を挙げると、ユーザー識別子モジュール、エクササイズルーチン識別子モジュール、動的位置決めモジュール、モデルビルダーモジュール、仮想モデル検索装置モジュール、及びフィードバックジェネレータモジュールを含む。ユーザー識別子モジュールは、ジオロケーション内に存在するユーザーのユーザー属性を取り込み、取り込んだユーザー属性を、ロボットのローカルメモリに記憶された、またはサーバに記憶されたユーザーのユーザープロファイルにマッチさせることによってユーザーのアイデンティティを確認するように構成される。
エクササイズルーチン識別子モジュールは、ユーザーが現在時刻で実行する予定となっているエクササイズルーチンを識別するように構成される。動的位置決めモジュールは、ユーザーが実行する予定となっているエクササイズルーチンを受け取り、ユーザーがエクササイズルーチンからエクササイズを実行するときにユーザーにより保持される姿勢の画像を取り込むことができるようにロボットを移動させるためにユーザーに近接する１つ以上の位置を識別するように構成される。
ロボットを移動する１つ以上の位置は、ユーザーが現在実行するために従事しているエクササイズに基づいて定義される。モデルビルダーモジュールは、姿勢のためのモデルを生成するためにユーザーにより保持される姿勢の画像を入手するように構成される。仮想モデル検索装置モジュールは、エクササイズルーチンデータベースからエクササイズのために定義された仮想モデルを取り出すように構成される。
フィードバックジェネレータモジュールは、モデルビルダーモジュールにより生成されたモデルを、仮想モデル検索装置モジュールにより取り出された仮想モデルに比較してあらゆる相違点を識別するように構成される。モデルで識別された相違点に基づいて、フィードバックジェネレータモジュールは、ユーザーに、エクササイズのための姿勢を補正または改善する命令を提供するように構成される。
【００１１】
本発明の他の態様及び優位点は、一例として本発明の原理を示す、添付図面とともに解釈される、以下の発明を実施するための形態から当業者に明らかになる。
【００１２】
本発明は、その追加の優位点とともに、添付図面とともに解釈される以下の説明を参照することによって最もよく理解され得る。
【図面の簡単な説明】
【００１３】
【図１】本発明の実施形態に従って、ジオロケーション内のユーザーの存在を検出するために、及びジオロケーション内のユーザーにより実行されるアクティビティについてユーザーにフィードバックを提供するために使用される例のシステムの簡略化したブロック図を示す。
【図１Ａ】本発明のある実施形態に従って、ロボットが、ジオロケーション内で移動するユーザーの画像を取り込むために移動される多様な位置を示す。
【図１Ｂ】本発明のある実施形態に従って、ロボットが、ジオロケーション内で移動するユーザーの画像を取り込むために移動される多様な位置を示す。
【図１Ｃ】本発明のある実施形態に従って、ロボットが、ジオロケーション内で移動するユーザーの画像を取り込むために移動される多様な位置を示す。
【図１Ｄ】本発明のある実施形態に従って、ロボットが、ジオロケーション内で移動するユーザーの画像を取り込むために移動される多様な位置を示す。
【図１Ｅ】本発明のある実施形態に従って、ロボットが、ジオロケーション内で移動するユーザーの画像を取り込むために移動される多様な位置を示す。
【図１Ｆ】本発明のある実施形態に従って、ロボットが、ジオロケーション内で移動するユーザーの画像を取り込むために移動される多様な位置を示す。
【図２Ａ】本発明のいくつかの実施形態に従って、ユーザーの画像を取り込むために、及びユーザーにより実行されるアクティビティに基づいてユーザーにフィードバックを提供するために使用されるロボットの多様な例の設計構成を示す。
【図２Ｂ】本発明のいくつかの実施形態に従って、ユーザーの画像を取り込むために、及びユーザーにより実行されるアクティビティに基づいてユーザーにフィードバックを提供するために使用されるロボットの多様な例の設計構成を示す。
【図２Ｃ】本発明のいくつかの実施形態に従って、ユーザーの画像を取り込むために、及びユーザーにより実行されるアクティビティに基づいてユーザーにフィードバックを提供するために使用されるロボットの多様な例の設計構成を示す。
【図２Ｄ】本発明のいくつかの実施形態に従って、ユーザーの画像を取り込むために、及びユーザーにより実行されるアクティビティに基づいてユーザーにフィードバックを提供するために使用されるロボットの多様な例の設計構成を示す。
【図２Ｅ】本発明のいくつかの実施形態に従って、ユーザーの画像を取り込むために、及びユーザーにより実行されるアクティビティに基づいてユーザーにフィードバックを提供するために使用されるロボットの多様な例の設計構成を示す。
【図２Ｆ】本発明のいくつかの実施形態に従って、ユーザーの画像を取り込むために、及びユーザーにより実行されるアクティビティに基づいてユーザーにフィードバックを提供するために使用されるロボットの多様な例の設計構成を示す。
【図２Ｇ】本発明のいくつかの実施形態に従って、ユーザーの画像を取り込むために、及びユーザーにより実行されるアクティビティに基づいてユーザーにフィードバックを提供するために使用されるロボットの多様な例の設計構成を示す。
【図３】本発明の実施形態に従って、ジオロケーション内でのユーザーアクティビティをモニタし、ユーザーにフィードバックを提供するために使用されるロボットの例の構成要素を示す。
【図３Ａ】本発明の実施形態に従って、ユーザーのモデルを生成するためのロボットのＡＩ論理の中のセンサフュージョンモジュールの例の実施形態を示す。
【図４】本発明の実施形態に従って、ユーザーにフィードバックを提供するためのデータの流れを示す。
【図５Ａ】本発明のある実施形態に従って、ユーザーにフィードバックを提供するためのロボットのＡＩ論理により生成されたモデルの例を示す。
【図５Ｂ】本発明のある実施形態に従って、ユーザーにフィードバックを提供するためのロボットのＡＩ論理により生成されたモデルの例を示す。
【図５Ｃ】本発明のある実施形態に従って、ユーザーにフィードバックを提供するためのロボットのＡＩ論理により生成されたモデルの例を示す。
【図５Ｄ】本発明のある実施形態に従って、ユーザーにフィードバックを提供するためのロボットのＡＩ論理により生成されたモデルの例を示す。
【図６Ａ】本発明の実施形態に従って、ジオロケーション内のユーザーアクティビティをモニタし、ユーザーにフィードバックを提供するために使用される方法のプロセス操作を示す。
【図６Ｂ】本発明の他の実施形態に従って、ユーザーから命令を受け取り、ユーザーが実行するアクティビティを識別し、ユーザーにフィードバックを提供するために使用される方法のプロセス操作を示す。
【図７】本発明の一実施形態に従って、ユーザーのアクティビティをモニタし、フィードバックを提供するために使用されるロボットの多様な構成要素を示す。
【図８】本発明の一実施形態に従って、ネットワークを介して地理的に分散され、接続されるユーザーに情報コンテンツ及び情報サービスを配信するための例示的な情報サービスプロバイダアーキテクチャを示す。
【発明を実施するための形態】
【００１４】
以下の説明では、本発明の完全な理解を提供するために、多数の具体的な詳細を述べる。しかしながら、本発明がこれらの具体的な詳細の一部またはすべてなしに実践され得ることが当業者に明らかとなる。他の例では、本発明を分かりにくくしないために周知のプロセスステップは詳細に説明していない。
【００１５】
本発明の多様な実施形態によれば、ロボットは、ジオロケーション内のユーザーの存在を検出し、ユーザーがジオロケーション内で実行するアクティビティをモニタし、ユーザーにフィードバックを提供するために使用される。提供されるフィードバックは、ユーザーが、アクティビティの実績を改善することを可能にするため、及び／またはアクティビティもしくは追加のアクティビティを実行するようにユーザーを励ますためのものである。
ある実施形態では、アクティビティはエクササイズルーチンに関係する場合があり、ロボットは、ユーザーがエクササイズルーチンからエクササイズを実行するのをモニタし、エクササイズルーチンの多様なエクササイズを実行するユーザーの画像を取り込み、エクササイズの実績を改善するためにユーザーにフィードバックを提供するように構成される。例えば、フィードバックは、ユーザーがエクササイズルーチンの中から意図した効果を挙げることができるようにエクササイズのための姿勢を改善するために提供される場合がある。
他の実施形態では、フィードバックは、エクササイズルーチンのステータスを提供する、またはエクササイズもしくはエクササイズルーチンの追加の繰り返しを実行するようにユーザーに励ましのコメントを提供する、または例えば「１０秒以上、ポーズを保持する」等の時間に基づいたコメントを提供する、またはエクササイズルーチンから追加のエクササイズを実行するようにユーザーを挑発するコメント、もしくは燃焼カロリーの量に関係するコメント、もしくは履歴実績に基づいたコメントを提供する、もしくはあるエクササイズから別のエクササイズに切り替えるためのコメントを提供するようにしてもよい。他の例では、ユーザーが実行しているエクササイズのタイプに応じて、及び／またはユーザーのアクティビティ履歴に基づいて、フィードバックは、ユーザーのための他のエクササイズルーチンの提案を含んでもよい。
他のエクササイズルーチンでは、ユーザーが自分のエクササイズルーチンで目標にしようとしている身体の領域または部分に基づいて識別されてもよい。ある場合では、他のエクササイズルーチンは、類似するユーザー属性または関心を有する（例えば、クラウドソーシングを使用する）他のユーザーで人気があることに基づいて識別され得る。一部の例では、フィードバックは、エクササイズの実際の実演の形で提供される場合もあれば、音声フォーマット、ビデオフォーマット、または画像フォーマットで提供される場合もある。
異なるフォーマットは、ロボットの適切な構成要素を使用し、送達され得る。例えば、音声フォーマットは、スピーカ構成要素を通して送達される場合があり、ビデオフォーマットはプロジェクタ構成要素を使用し、物理環境で識別された表示面上へ投影される場合もあれば、ヘッドマウントディスプレイ（ＨＭＤ）の表示画面でのレンダリングのために（無線通信リンクもしくは有線通信リンクを通して）ユーザーにより着用されたＨＭＤに送信される場合もあれば、ロボットの表示画面上にレンダリングされる場合もある。全身の関節を持つ人型ロボットの場合、ロボットは、正しい姿勢を実演しさえし得る。
【００１６】
フィードバックを提供した後、ロボットは、ユーザーがエクササイズルーチンを続けるにつれ、姿勢の変化を検出するためにユーザーをモニタし続けてよい。姿勢の変化は、ユーザーが、ロボットから受け取るフィードバックに基づいてエクササイズのための姿勢を調整することに起因する場合もあれば、ユーザーがエクササイズルーチンの別のエクササイズを実行していることに起因する場合もある。ロボットは、異なる角度でのユーザーの姿勢の変化を取り込み、変化を解析し、ユーザーに追加のフィードバックを提供するために動き回る場合がある。ロボットは、このようにしてユーザーが各エクササイズを実行するのを観察し、仮想モデルを使用し、各エクササイズのためにユーザーにより提供される姿勢を検証し、ユーザーがエクササイズを実行するとき姿勢を補正することを可能にするためにフィードバックを提供することによって、ユーザーにとって「パーソナルトレーナー」のように働く。
【００１７】
エクササイズルーチンを実行するためにユーザーにフィードバックを提供することに関して多様な実施形態が説明されているが、実施形態はこのエクササイズルーチンに制限されるものではなく、ユーザーの任意の他の観察されるアクティビティに対するフィードバックを提供するために拡張できる。ここで、本発明の概要とともに、多様な図面を参照して多様な実施形態の詳細を説明する。
【００１８】
図１は、実施形態に従って、ロボットがユーザー１０１のアクティビティを追跡調査するために、及びユーザー１０１にフィードバックを提供するために使用されるシステムを示す。ユーザー１０１は、ジオロケーション１００でエクササイズルーチン等のアクティビティを実行することに関心がある場合があり、ユーザーと関連付けられるジオロケーション１００内のロボット１１０が、エクササイズルーチンで多様なエクササイズを実行するユーザー１０１を検出し、エクササイズルーチンを実行しているユーザーの画像を取り込むためにユーザーに近接する位置に移動し、ユーザーが、エクササイズルーチンのエクササイズを実行しているときに姿勢を改善することを可能にするためにフィードバックを提供するために使用される。
ユーザー１０１を識別し、フィードバックを提供するのを支援するために、ロボット１１０は、一実施形態では、ネットワークインタフェースを使用し、ローカルエリアネットワークの中のコンピュータ１０６に通信で接続され得る。通信接続は、無線通信プロトコルに従ってよい。コンピュータ１０６は、コンソール、パーソナルコンピュータ、ラップトップ、タブレットコンピュータ、モバイルデバイス、セルラー電話、タブレット、シンクライアント、セットトップボックス、メディアストリーミングデバイス等を含むが、これに限定されるものではない、当該技術で既知の任意の汎用コンピュータまたは専用コンピュータであってよい。
コンピュータ１０６は、ジオロケーション内のユーザー１０１のユーザー属性を、コンピュータ１０６に記憶された対応するユーザープロファイルにマッチさせる、及び／またはユーザー１０１の予定されたアクティビティを識別するために使用され得る。一実施形態では、コンピュータ１０６はそれ自体、（別個のルータ１０８が図１に示されているが）いずれの処理も実行するのではなく、ネットワークトラフィックの通過を容易にするルータ等のローカルネットワークデバイスであってよい。
【００１９】
他の形態では、ロボット１１０はそれ自体、ルータ１０８を介してクラウドシステム３００上のリモートサーバ３０２とインタラクションを行うために直接的にネットワーク２００に接続するネットワーク化されたデバイスであってよい。有線通信プロトコルも意図され得るが、ロボット１１０とルータ１０８との間の通信接続は、無線通信プロトコルに従ってよい。リモートサーバ３０２は、ユーザー１０１を識別するために、及び／またはユーザーの予定されたアクティビティを識別するために使用され得る。他の実施形態では、ロボット１１０は、コンピュータ１０６及びルータ１０８を通してリモートサーバ３０２とインタラクションを行ってもよい。無線プロトコルも意図され得るが、ルータ１０８とネットワーク２００との間の通信接続は、ある実施形態では、有線プロトコルに従う。
【００２０】
クラウドシステム３００のサーバ３０２は、ロボット１１０から受け取ったユーザーのユーザー属性を対応するユーザープロファイルとマッチさせるために、ユーザーデータデータストア３０６とインタラクションを行ってもよい。ユーザー１０１が識別されると、サーバ３０２は、ユーザーのための１つ以上のエクササイズルーチンを識別するためにアクティビティデータストア３０４に問い合わせてよい。一実施形態では、ユーザーのためのエクササイズルーチンは、ユーザーのアクティビティ履歴に基づいて識別され得る。他の実施形態では、ユーザーのためのエクササイズルーチンは、類似したユーザー属性または目標を共有する他のユーザーで人気があることに基づいて識別され得る。
エクササイズルーチンは、例えばクラウドソーシングを使用し、識別されてよく、他のユーザーは、ユーザーの１つ以上のソーシャルメディア３０８と関連付けられたソーシャルグラフ（複数可）３０８ａから識別されたソーシャルコンタクトである。代替例では、他のユーザーは、ユーザーの属性を他のユーザーの属性とマッチさせることによって識別され得る。これは、ユーザーのアクティビティ履歴がない場合、または代替エクササイズルーチンがユーザーに提案されている場合である可能性がある。データデータストア３０６及びアクティビティデータストア３０４がクラウドシステムの一部であるとして示されているが、データデータストア３０６及びアクティビティデータストア３０４のバージョンは、コンピュータ１０６の一部であってよい。
【００２１】
ユーザーは、例えば、コントローラ（不図示）を使用し、またはコンピュータ１０６とのインタラクションを行うときにユーザーが使用する場合がある、もしくは明示的なアクションを実行しているときにユーザーにより着用される場合があるヘッドマウントディスプレイ（ＨＭＤ）（不図示）を通して入力を提供する等、明示的なアクションを実行することによってロボット１１０を作動させてよい。ある実施形態では、ＨＭＤは、ユーザーがエクササイズルーチンを実行しているときにＨＭＤを着用していない場合があってもロボット１１０に入力を提供するために使用され得る。
このような実施形態では、ＨＭＤは、ロボットに対して及びコンピュータ１０６に対して入力を提供するために使用できる別の入力装置の機能を果たしてもよい。一実施形態では、コントローラ及びＨＭＤは、ロボット１１０に通信で接続され、ロボット１１０とコントローラ、ＨＭＤの間の通信接続は、無線通信プロトコルまたは有線通信プロトコルに従う。他の実施形態では、ＨＭＤ及びコントローラは、コンピュータ１０６を通してロボット１１０に通信で接続され得る。さらに他の実施形態では、ＨＭＤ、コントローラ、及びロボット１１０は、すべて、クラウドシステム３００内のサーバ３０２と通信するためにネットワーク２００に接続するネットワーク化されたデバイスであってよく、ネットワークへの係る接続は有線である場合もあれば、無線である場合もある。
【００２２】
ＨＭＤまたはコントローラまたは任意の他の入力装置からロボット１１０に提供された入力は、ジオロケーション内のユーザーを検出し、ユーザーが、エクササイズルーチンからのエクササイズ等の特定のアクティビティを実行しているときにユーザーを観察するための位置に移動する等の特定のアクションを実行するためにロボット１１０により解釈される。他の実施形態では、ユーザーにより提供される入力は、キーボードもしくはマウスもしくはロボット１１０に通信で接続されるコンピュータ１０６と関連付けられた他の入力装置を使用し、またはジェスチャもしくはコンピュータ１０６もしくはロボット１１０と関連付けられたモニタ１０７のタッチスクリーンを通して提供される他の入力を通して提供される音声コマンドまたは入力を含んでよい。ある実施形態では、キーボードまたは他の入力装置を通して提供された入力は、ロボット１１０にもしくはコンピュータ１０６にローカルに、またはクラウドシステム３００のサーバ３０２上に遠隔で記憶されるユーザープロファイルに対して検証されるユーザー識別子を含んでよい。
【００２３】
他の実施形態では、ユーザーから（ユーザー識別子を含む）入力を受け取る代わりに、ロボット１１０は、１つ以上のセンサを通して、ロボット１１０が配備されるジオロケーション内のユーザーの存在を検出し、ロボット１１０の１つ以上のセンサを使用し、１つ以上のユーザー属性を取り込み、取り込んだユーザー属性を使用し、ユーザーを検証してもよい。ロボット１１０のセンサは、例えば、ユーザーの生体データを取り込み、ユーザーを識別するために生体データを使用するように構成される。ユーザーは、取り込んだ生体データを、ユーザープロファイルに記憶されるユーザーのユーザー属性とマッチさせることにより識別され得る。異なる生体データを取り込むために使用される多様なセンサのより多くの詳細は、図３を参照して説明される。
これらの他の実施形態では、ロボットは、ジオロケーション内のユーザーの存在を自動的に検出し、明示的なアクションまたはユーザーからの入力信号を受け取ることなく、ユーザーのアイデンティティを検証する。一実施形態では、ユーザー検証は、ロボット１１０にまたはコンピュータ１０６に記憶したユーザーのユーザープロファイルを使用し、ローカルに行われてよい。他の実施形態では、ユーザー検証は、ルータ１０８及びネットワーク２００を通して、ユーザーのために取り込んだユーザー属性をリモートサーバ３０２に転送し、サーバ３０２がサーバに記憶されるユーザープロファイルを使用し、ユーザーのアイデンティティを検証できるようにすることによって遠隔で行われてよい。
【００２４】
ロボット１１０内のセンサを使用し、ユーザーのユーザー属性を取り込むことに加えて、ロボット１１０は、ユーザーの画像を取り込んで、さらにユーザーを検証するために１つ以上の画像取り込み装置（例えば、外部カメラ）１０９を作動させる場合もある。ある実施形態では、ロボット１１０は、ジオロケーション内のユーザーの存在を検出すると、ジオロケーション内で分散する１つ以上の外部カメラ１０９を作動させるために信号を生成し、転送してもよい。ロボット１１０からの信号は、外部カメラ１０９に直接的に送信される場合もあれば（つまり、無線通信）、外部カメラ１０９に通信で接続される（つまり、有線通信または無線通信）コンピュータ１０６を通して送信される場合もある。信号に応えて、外部カメラ１０９は、ユーザーの画像を取り込み、無線通信プロトコルを使用し、取り込んだ画像をロボット１１０に送信する。
ロボット１１０は、ユーザーを検証するために、センサにより取り込んだユーザー属性、及び１つ以上の外部カメラ１０９により取り込んだユーザーの画像を使用してもよい。一実施形態では、ロボットは、特定のユーザーと以前に関連付けられた場合があり、検証することは、ジオロケーション内で検出されたユーザーが、ロボットと以前に関連付けられた特定のユーザーであることを確実にすることである。他の実施形態では、ロボットは、存在がジオロケーション内で検出された新しいユーザーと関連付けられてよく、検証することは、新しいユーザーが、ロボット１１０を操作するまたはロボット１１０とインタラクションを行う権限を与えられたユーザーであることを確実にすることである。このような実施形態では、ロボット１１０を新しいユーザーに関連付けることは、時間をベースにする場合があり、関連付けは、ユーザーがジオロケーション内に存在する限り残る。
【００２５】
ユーザーのアイデンティティが検証されると、ロボット１１０は、ユーザーが任意のアクティビティに関与しているかどうかを判断するためにユーザーをモニタしてもよい。あるいは代わりに、ロボットは、現在時刻に予定されたユーザーのアクティビティを識別し、取り出してもよい。ロボットは、ユーザーからのコマンドに基づいてアクティビティを取り出す場合もあれば、アクティビティを自動的に取り出す場合もあり、係る取り出しはユーザーの予定に基づく場合がある。一実施形態では、ユーザーのために予定されたアクティビティが、ロボット１１０内もしくはコンピュータ１０６内のローカルストレージから、またはサーバ３０２のリモートストレージから取り出される場合がある。現在時刻にユーザーのために予定されたアクティビティは、カレンダ入力等に基づいてユーザーのアクティビティ履歴から決定され得る。
ユーザーのために取り出された予定されたアクティビティに基づいて、ロボットは、ユーザーが現在実行する予定になっているエクササイズルーチンを識別してよく、ユーザーが、エクササイズルーチンから異なるエクササイズを実行するとき保持するはずである姿勢を決定してもよい。異なるエクササイズのための姿勢は、エクササイズのために生成された仮想モデルから識別され得る。ロボット１１０は、次いで、ロボットが、エクササイズルーチンのエクササイズを実行しているユーザーの画像を取り込むことができ得るように、ユーザーに近接するジオロケーション内の１つ以上の領域内にそれ自体を位置決めしてもよい。エクササイズを実行しているユーザーの画像は、１つ以上の仮想モデルに比較されてよく、ユーザーにフィードバックを提供するためにロボット１１０の中の人工知能（ＡＩ）論理が使用され得る。
【００２６】
図１Ａ〜図１Ｆは、ジオロケーション内でのユーザーのアクションをモニタする際のロボットの役割を識別する。一実施形態では、ロボットの存在は、ロボットの１つ以上の信号発信装置により発せられる信号を追跡することによってジオロケーション内で検出される。ジオロケーションは、例えば家、オフィスビル、美術館等の屋内領域であってよく、係るジオロケーションの内部でのロボットの存在は、屋内ジオロケーション追跡技術を使用し、決定され得る。
例えば、ある実施形態では、信号発信装置により発せられる信号はＷｉ−Ｆｉ信号であり、ジオロケーションセンサに対するロボットの位置は、Ｗｉ−Ｆｉ信号の強度に基づいて決定できる。ある実施形態では、複数のジオロケーションセンサがジオロケーション内で利用可能であるとき、ロボットの位置は、ジオロケーションセンサにより検出される発せられた信号に基づき、三角測量技術を使用し、決定できる。ロボットがジオロケーション内で検出されると、ユーザーの存在及びアクションは、ロボット内のセンサを使用し、決定され得る。図１Ａ〜図１Ｃは、ロボットが存在しているジオロケーション内で１人以上のユーザーの存在を検出するロボットのいくつかの例を示す。
【００２７】
図１Ａに示すように、ユーザー１０１は椅子に座っており、モニタ１０７上に提示されるコンテンツを見ている。モニタは、コンピュータ１０６の表示部分である場合もあれば、コンピュータ１０６に接続されるＴＶモニタである場合もある。ロボット１１０上に取り付けられたカメラは、（椅子に座っているユーザーの方に向けられている対の破線により示すように）ユーザー１０１の、及びモニタ１０７の画像を取り込む。これらの画像は、コンピュータ１０６でローカルに処理される場合もあれば、ネットワーク２００を介してサーバ３０２に遠隔で送信される場合もある。
【００２８】
図１Ｂは、ジオロケーション（例えば、部屋）内のユーザーの移動をモニタし、ユーザーの画像を取り込むロボット１１０を示す。図１Ａでのように、ユーザー１０１の画像及びコンテンツをレンダリングするモニタ１０７の画像は、ロボットにより取り込まれる。図示するように、ロボットは、（座った姿勢から立った姿勢への）ユーザーの姿勢及び（椅子からモニタ１０７のより近くへの）場所の変化を検出した。ユーザーの姿勢及び場所の変化の検出は、ロボット１１０に取り付けられた１つ以上の取り込み装置を使用し、ロボット１１０により記録される。ロボット１１０は、ロボット１１０がユーザーの及びモニタ１０７の画像を取り込むことを可能にする領域に移動する。本明細書では、図１Ｂに示すように、ロボットが単一の位置から関心のある複数のオブジェクト（例えば、この例では、ユーザー及びテレビモニタ）の画像を取り込むが、異なる場所に移動することにより連れて行くことができることが必要ではないことに留意されたい。
【００２９】
図１Ｃは、ロボット１１０がジオロケーション内の第２のユーザー１０１ａを検出し、ユーザー１０１及び第２のユーザー１０１ａのアクションをモニタし、ユーザー１０１、第２のユーザー１０１ａ及びモニタ１０７の画像を取り込むためにジオロケーション内にそれ自体を適切に位置決めし、処理のために取り込んだ画像をコンピュータ１０６に送信する代替の例を示す。ロボット１１０が、単一の位置からユーザー１０１、第２のユーザー１０１ａ、及びモニタ１０７の画像を取り込むことが示されているが、ロボット１１０は、異なる角度またはビューからオブジェクト、つまり関心があるユーザーのすべての画像を取り込むために、異なる領域／位置に移動され得る。オブジェクト、つまりユーザーの取り込んだ画像は、オブジェクト、つまりユーザーの多様な属性及び態様を決定するために解析される。
【００３０】
図１Ｄ〜図１Ｆは、ロボット１１０がユーザー１０１の画像を取り込むために動き回る係る一実施形態を示す。ロボットが異なる位置に移動することに加え、ロボット１１０は、上方からユーザー１０１の画像を取り込むために、ユーザーがジオロケーション内で動き回っている領域上で、クワッドコプタドローン等のドローン１２１を配備してもよい。ドローン１２１は、ユーザーの画像を取り込む際に使用される１つ以上のセンサを含む。図１Ｄに示すように、ロボット１１０は、ユーザー１０１の前に位置決めされ、ユーザーがアクティビティを実行するにつれ、ユーザー１０１の画像（複数可）を取り込み、ドローン１２１は、ジオロケーション内のユーザーの上をホバリングするために配備される。ユーザー１０１がアクティビティを実行し続けると、ロボット１１０は、図１Ｅに示すように、異なる視点からユーザー１０１の画像（複数可）を取り込むためにユーザーの右側に移動する。ロボット１１０は、ユーザーがセミスクワットを実行している間のユーザーの画像を取り込む。ドローン１２１は、同じ姿勢のユーザー１０１上をホバリングし続ける場合もあれば、ユーザーがアクティビティを実行しているときにユーザーの画像を取り込み続けるために、ドローンの位置が、アクティビティを実行している間のユーザーの位置または姿勢の変化を検出すると、ロボット内のＡＩ論理により調整される場合もある。例えば、ドローンの位置は、ユーザーがアクティビティを実行しているときにユーザーの良いビューを得るように、上右側、または上左側、または上後側、または上前側、または任意の他の位置の上をホバリングするように調整され得る。
【００３１】
ユーザーがアクティビティを実行し続けると、ロボット１１０は、図１Ｆに示すように、ユーザーの左側に動き回り、ユーザーの画像を取り込む。一方、ドローンは同じ位置でまたは調整された位置でホバリングし続ける。ある実施形態では、ドローン１２１だけがユーザーの画像を取り込むために使用される。このような実施形態では、ドローン１２１の位置は、ユーザーの姿勢を取り込むために調整される。他の実施形態では、ロボットだけがユーザーの画像を取り込むために使用される。他の実施形態では、ロボットとドローンの両方とも、図１Ｄ〜図１Ｆに示すように、アクティビティを実行するユーザーの画像を取り込むために併せて使用される。これらの画像は、処理のためにコンピュータ１０６に転送される。ある実施形態では、ロボット自体が取り込んだ画像を処理し、ユーザーが実行しているエクササイズまたはアクティビティを識別してもよい。他の実施形態では、ロボットは、サーバ３０２による処理のためのクラウドシステムへの前方への送信のために、ロボットにまたはネットワークに通信で結合されたコンピュータに画像を転送してもよい。このようにして、ロボット１１０は、ジオロケーション内で移動するユーザーを検出し、次いでユーザーにフィードバックを提供するために処理されるユーザーの画像をモニタし、取り込むためにジオロケーション内の適切な場所にそれ自体を位置決めする。
【００３２】
図２Ａ〜図２Ｇは、ロボットの一部の例の設計実施形態を示す。ロボット１１０は、ホイールまたはトレッドまたは任意の他の可動構造の上に取り付けられるボディを含む。ボディは、ホイールまたはトレッドまたは任意の他の可動構造の上に取り付けられる下部構造１１０ａ、及び下部構造１１０ａの上に配置される上部構造１１０ｂを含む。下部構造１１０ａは、ユーザーの存在を検知すること、ユーザーのユーザー属性を取り込むこと、ユーザープロファイルデータを取り出すこと、ロボットが配備されるジオロケーションをマッピングすること、ロボットを移動させること、多様なセンサから入手されたデータのセンサフュージョンを実行すること、多様なデータを処理すること、フィードバックを生成すること等の多様な機能を実行するために使用されるロボットの多様な部分を収容するために使用される。下部構造１１０ａ内に収容され得るロボットの部分のいくつかは、モータ駆動コントローラ、システムボード、プロセッサ、メモリ、ストレージ、ＡＩ論理等を含む。下部構造１１０ａは、１つ以上のコントローラ１０４、１つ以上のドローン等に充電ステーションを提供するように設計されてもよい。また、１つ以上のユニバーサルシリアルバス（ＵＳＢ）ポート、１つ以上の画像取り込み装置が、下部構造１１０ａに設けられてもよい。下部構造１１０ａの外側は、ジオロケーションにロボットを配置することを可能にするために視覚インジケータを含んでよい。
【００３３】
ロボット１１０の上部構造１１０ｂは、多様なユーザー属性を取り込むために使用される、バイオセンサ、近接センサ（例えば、超音波センサ、加速度計等のモーションセンサ、ジャイロスコープ、磁力計、レーダー、コンパス等）、１つ以上の深度センサ（例えば、立体カメラ、デジタルカメラ等）、スピーカ、マイク、プロジェクタ等の多様なセンサを収容するように設計され得る。ある実施形態では、多様なセンサを有する上部構造１１０ｂは、水平軸に沿って回転し３６００、多様な角度で傾き、垂直軸に沿っても移動するように設計され得る。ある実施形態では、多様なセンサは、使用中、ロボット１１０のボディから外向きに伸長して、センサが、ロボット１１０の観察下にあるオブジェクトの多様な態様を取り込むことを可能にしてもよい。
他の実施形態では、多様なセンサは下部構造１１０ａ内に配置されてよく、下部構造は、水平軸に沿って回転する３６００ように構成される。さらに、ある実施形態では、ロボットの下部構造１１０ａは、垂直に移動するように設計され得るか、及び／またはセンサは、観察下にあるオブジェクトの異なるビューを取り込むことができるようにロボット１１０のボディから外向きに伸長するように設計され得る。一部の他の実施形態では、多様なセンサまたは追加のセンサは、ロボットに戻るまたは直接的にネットワークへの無線リンク付きのクワッドコプタ等のドローンに収容されるように設計され得る。
【００３４】
図２Ａは、下部構造がホイールに取り付けられたキャリッジに設けられるロボット１１０の一例の設計の実施形態を示す。ホイール基部は、キャリッジの周辺部に沿って一様に分散されたホイール、メカナムホイール、トレッド等を含む任意の形式であってよい。下部構造は箱型である。上部構造１１０ｂも、上部構造１１０ｂの外周に沿って水平面に分散された１つ以上のセンサ１１１ａ〜１１１ｃを有する箱型であると示される。実施形態は、任意の単一の平面に沿ったセンサの分散に制限されるのではなく、ロボットの下部構造または上部構造等の内側に斜めに垂直面を含む他の分散構成を含む場合もあるであろう。
【００３５】
図２Ｂは、ホイール基部に取り付けられた下部構造１１０ａが、水平軸に沿って旋回するように構成されるロボット１１０の別の例の設計実施形態を示す。下部構造１１０ａは箱型であり、外側に取り付けられたいくつかのセンサを含む。上部構造１１０ｂは、センサの水平ストリップが取り付けられるドーム形状である。ある実施形態では、下部構造１１０ａは右回りに回転するように構成されてよく、上部構造は左回りに回転するように構成され得る。他の実施形態では、上部構造１１０ｂは、その中に受け入れられているセンサが観察中のオブジェクトの異なるビューを取り込む、または異なる動きを検出することをできるようにするために、半径方向に旋回するだけではなく、垂直軸に沿って移動するように構成され得る。一方、下部構造１１０ａは、水平軸に沿って半径方向に移動するように構成され得る。
【００３６】
図２Ｃは、下部構造が、ホイール基部に取り付けられる細長いボックスであり、上部構造１１０ｂが垂直軸に沿ってだけではなく水平軸にも沿って半径方向に移動するように設計される、ロボット１１０の別の例の設計実施形態を示す。本実施形態では、センサは、上部構造１１０ｂの外側に沿って配置されると示される。他の実施形態では、センサは、下部構造１１０ａの外側に沿って配置されてもよい。実施形態は、外側にあるセンサに制限されるのではなく、ビューを取り込む、または関心のあるオブジェクトの移動を検出するためにロボット内のどこかに配置される場合がある。下部構造１１０ａの高さは、ロボットがより高く伸長でき、より高い高さから画像または動きを取り込むことができる場合があるという点で、より背が低いロボットに優る優位点を提供し得る。ある実施形態では、センサは、センサが異なる角度から関心のあるオブジェクトの画像または動きを取り込むことを可能にするために外側に伸長するように構成され得る。
【００３７】
図２Ｄは、上部構造１１０ｂが円形の下部及び矩形の上部を含む、ロボット１１０の別の例の設計実施形態を示す。円形の下部と矩形の上部の両方とも、関心のあるオブジェクトのビュー及び／または移動を取り込むために外側にまたは内部に分散されたセンサを含む。図２Ｂの例の設計と同様に、円形の下部及び矩形の上部は、水平軸に沿って半径方向に回転する、及び／または垂直軸に沿って移動するように設計され得る。水平軸に沿った回転は、上部を下部とは異なる速度で回転させるように制御され得る。
【００３８】
図２Ｅは、下部構造１１０ａが、ホイールに取り付けられるキャリッジに配置されるロボット１１０の別の例の設計実施形態を示す。上部構造は、２つの垂直部分に分割される。一実施形態では、下部構造は、水平軸に沿って回転するように構成される。上部構造の２つの垂直部分は、それぞれ外側または内側に沿って配置された複数のセンサを含んでよく、水平軸に沿って移動するために個別にまたは共同で制御され得る。（図示されない）ある実施形態では、２つの垂直部分は、垂直軸に沿って移動するように構成されてもよい。
【００３９】
図２Ｆは、ロボット１１０の別の例の設計実施形態を示す。本実施形態では、下部構造１１０ａはホイールに取り付けられ、上部構造１１０ｂは下部構造１１０ａの上に配置される。図２Ｆに示す実施形態では、ロボットは、アームの形式で配置される２つのコントローラを収容する。コントローラはロボット１１０から切り離され、コンピュータ１０６またはロボット１１０のどちらかに入力を提供するためにユーザーにより使用され得る。このような実施形態では、ロボット１１０は、下部構造１１０ａに充電ステーションを設けることによってコントローラを充電するために使用され得る。ある実施形態では、コントローラは、ロボットにより個別に移動させることができる移動コントローラ、または一部の入力をコンピュータに提供するように構成される任意の他のタイプのコントローラであってよい。
他の実施形態では、コントローラの代わりに、１つ以上のカメラまたはプロジェクタは、下部構造１１０ａに設けられてもよい。カメラは、多様な角度から関心のあるオブジェクトの画像または移動を取り込むために外向きに伸長されてよく、カメラの配置は、係る画像または移動を取り込むための十分な柔軟性を提供する。同様に、プロジェクタは、ロボットのボディに設けられてよい。プロジェクタは、ロボット１１０に配置された多様なカメラにより取り込まれたオブジェクトの画像を投影するために、またはロボット１１０の近傍のジオロケーションで識別された表示面に他の画像を投影するために使用され得る。例の実施形態は、コントローラまたはカメラまたはプロジェクタに制限されるものではなく、他のセンサにも及んでよい。
【００４０】
図２Ｇは、ロボット１１０の多様な機能を実行するために使用される構成要素のいくつかを示すロボット１１０の例の実施形態を示す。ロボット１１０は、ホイールまたはトレッドに取り付けられるホイール基部を含む。ある実施形態では、ホイール基部は、ロボット１１０が充電されることを可能にする充電基部であってよい。ロボット１１０は、下部構造１１０ａ内にモータ駆動コントローラ１１２を含む。モータ駆動コントローラ１１２は、例えばホイールのそれぞれに接続され、コントローラ／システムボード１１４にも通信で結合される。ロボット１１０がホイールの代わりにトレッドを含む場合、モータ駆動コントローラ１１２は、トレッドに接続される。
ある実施形態では、コントローラ１１４は、人工知能（ＡＩ）論理により駆動される。ＡＩ論理に基づいて、コントローラ１１４は、ジオロケーション内でロボットをあちこちに移動させるためにモータ駆動コントローラ１１２と通信する。同様に、コントローラ１１４は、コントローラ１１４に通信で結合される、ロボット１１０の１つ以上のカメラ及び／または他のセンサの移動または機能を制御する。例えば、コントローラ１１４により生成される信号は、カメラが、ユーザーの移動、ジオロケーション内の現実世界環境における、ユーザー及び／またはオブジェクトの画像を取り込むことを可能にするために、垂直軸及び／または水平軸に沿って１つ以上のカメラの移動を制御してもよい。
また、コントローラ１１４は、データを交換するために、ルータを介したネットワークを通してコンピュータ１０６と、またはクラウドシステムに通信するために使用される通信インタフェースも含む。１つ以上のマイク１１６及び１つ以上のスピーカ１１８は、音声データを受け取るために、または音声コメントを提供するためにロボット内に設けられる。マイクアレイにより取り込まれる音は、音源の場所を識別するために処理され得る。識別した場所からの音は、識別した場所からではない他の音を除外して選択的に活用または処理される場合がある。ロボットの中の音声センサ及びモーションセンサを含むセンサは、環境内での音及び移動を検出するために使用される。データは、音または移動の方向を決定し、音または移動が起こっている領域に対して三角法を用いるために使用される。
【００４１】
ロボット１１０内のプロセッサは、１つ以上のカメラにより取り込んだジオロケーション内のオブジェクトの画像を解析し、ビジュアル同時位置決め地図作成（ｖＳＬＡＭ）等の技術を使用し、ジオロケーション内の空間をマップに精密に示す。カメラは、多数の画像取り込み装置（例えば、立体的なカメラの対）、ＩＲカメラ、深度カメラ、またはその任意の組み合わせを含んでよい。マッピングした空間に基づいて、ならびに音声センサ及びモーションセンサから入手したデータに基づいて、プロセッサは、音または移動が起こっているところから（ロボット１１０が配備される）ジオロケーション内の領域に対して三角法を使用してもよい。コントローラは、次いで音または移動に従い、該領域にまたは音が生じている領域に少なくとも近接してロボット１１０を移動させ、ユーザー等、音をたてているオブジェクトの画像を取り込むために駆動コントローラに信号を送出してもよい。
ある実施形態では、ジオロケーション内の空間は、ロボットのための移動の境界（ジオフェンス）を識別する２次元マップを生成するためにマッピングされ得る。２次元マップは、次いでロボット１１０の移動を導くために使用される。ロボット１１０を導くことは、ジオロケーション内で識別された現実世界のオブジェクトの周りでのロボット１１０の移動の経路を識別することを含んでよい。他の実施形態では、ジオロケーション内の空間は、ジオロケーション移動の量を識別する３次元マップを生成するためにマッピングされ得る。
このような実施形態では、ジオロケーション内の空間の量を取り込むために、カメラはドローンに取り付けられてよく、ドローンはコントローラ１１４からの信号に応えてロボット１１０から配備され得る。他の実施形態では、空間の量は、カメラがジオロケーションの量を取り込むほど十分に高くなるように、上方に１つ以上のカメラを伸長することによって取り込まれてよい。ジオロケーション内の空間の２次元マップまたは３次元マップを使用し、ロボットまたはドローンを移動させるための経路が識別される。近接センサの力を借りて、ロボット１１０またはドローンは、関心のあるオブジェクト（例えば、ユーザー）に近接して移動するために操作される。
ある実施形態では、ロボットは、ユーザーにより着用されるＨＭＤから信号を受信してよく、ＨＭＤはロボット１１０に通信で結合される。このような実施形態では、ＨＭＤにより生成される信号は、ロボット１１０の１つ以上のセンサ（モーションセンサ、近接センサ等）により検出され、マッピングされた空間及びセンサデータに基づいて、ＨＭＤの場所及びＨＭＤを着用しているユーザーの場所を識別するために解析されてよく、ロボットは、ＨＭＤを着用するユーザーの近くに移動される。ある実施形態では、ＨＭＤにより生成された信号を検出したことに応えて、ロボットは、ジオロケーション内のユーザーの画像（複数可）を取り込むために、ロボット１１０に通信で結合されたドローン１２１をユーザーに近接する位置に操作するために信号を生成してもよい。
【００４２】
ロボット１１０及び／またはドローン１２１がユーザーに近接する位置になると、コントローラ１１４からの信号は、ロボット１１０及び／またはドローン１２１の１つ以上のセンサに、ユーザーの画像、または顔の特徴、指紋、手の幾何学的形状、声の波動、ＤＮＡ、またはサインあるいはシグネチャ（ｓｉｇｎａｔｕｒｅ）、ジェスチャ、コマンド等の生体データを取り込み、取り込んだ画像または生体データを使用してユーザーを識別するように指示する。一部の例では、取り込み得る顔の特徴は、網膜及び虹彩のパターン、耳たぶの形状、顔の輪郭、注視方向等を含む。例えば、取り込んだ生体データまたは画像（複数可）は、ロボット１１０のメモリ内のキャッシュに格納された情報に基づいてユーザーを識別するために使用される、またはユーザーを識別するためにコンピュータ１０６にもしくはクラウドシステムに送信され得る、１つ以上のユーザー属性を識別するためにロボット１１０のプロセッサにより解析される。
【００４３】
ユーザーが識別されると、ロボット１１０のプロセッサは、ユーザーが現在実行している、または実行する予定になっているアクティビティを識別するために、アクティビティデータストアまたはアクティビティスケジューラ（例えば、アクティビティの予定を識別するアクティビティのカレンダ等）に問い合わせしてもよい。予定されるアクティビティに基づいて、コントローラは、ＡＩ論理と関連して、ユーザーがアクティビティを実行している間のユーザーの画像を取り込み、アクティビティのフィードバックを生成するために適切なセンサに信号を送信してもよい。
【００４４】
図３は、一実施形態において、ユーザーを識別し、ユーザーが実行しているアクティビティに対してフィードバックを提供する際に使用されるＡＩ論理の中のモジュールの一部を示す。ＡＩ論理は、ユーザーを識別し、ユーザーが実行に関与するアクティビティを決定し、ユーザーがアクティビティを実行しているのを観察するためにユーザーに近接してロボットをナビゲートし、適切なフィードバックを生成する等のためにロボット１１０内に設けられる。ある実施形態では、ロボット１１０のＡＩ論理は、他の機能を実行するためにクラウドシステム上にある追加のＡＩ論理と通信してもよい。例えば、ロボット１１０のＡＩ論理は、環境を学習する、空間をマッピングする、空間内で異なる現実世界のオブジェクトを識別する、ロボット１１０によりアクセス可能である領域を決定する、及びマッピングした空間に基づいてロボットの位置を調整するために使用され得る。
【００４５】
また、ロボット１１０のＡＩ論理は、ユーザーの生体データを取り込み、そのメモリに記憶されている情報に基づいてユーザーを識別する、またはユーザーを識別するためにクラウド内のＡＩ論理にデータを送信してもよい。
【００４６】
ロボットのＡＩ論理１１４は、ロボットの多様な機能を支援するために多様なモジュールを含む。モジュールのいくつかは、２〜３例を挙げると、ユーザー識別子モジュール１１１、アクティビティ識別子モジュール１１３、動的位置決めモジュール１１５、モデルビルダーモジュール１１７、バーチャルモデル検索装置モジュール１１９、及びフィードバックジェネレータモジュール１２１を含む。モジュールの上記リストは網羅的と見なされるべきではなく、その他のモジュールはＡＩ論理の中に含まれてよい。ユーザー識別子モジュール１１１は、ロボット１１０が存在するジオロケーション内でユーザーを識別するために使用される。
ユーザー識別子モジュール１１１は、ロボットの多様なセンサを通して取り込んだデータ、及び／または入力装置を通して提供された入力データを受け取り、ユーザーを識別するためにデータを解析する。センサから取り込んだデータは、顔の特徴、音声、コマンド、ジェスチャ等を含む生体データを含んでよい。さらに、心拍数モニタまたはパルスオキシメーター等の身体に取り付けたセンサは、解析及びフィードバックのための追加データを提供できる。係る場合、ロボットのセンサは、体に取り付けたセンサから信号を受信するように構成される。追加のデータは、解析及びフィードバックのための追加のデータを送信するために信号を提供する。
【００４７】
入力データは、キーボード、マウス、コントローラ、タッチスクリーン、ＨＭＤ等の１つ以上の入力装置を通してユーザーにより提供され得る。解析の一部として、ユーザー識別子モジュール１１１はユーザー属性を識別し、ユーザー属性は、次いでロボット１１０のローカルメモリ内に、またはコンピュータ１０６に、またはクラウドシステム３００に記憶されるユーザープロファイルにマッチされる。一実施形態では、マッチされたユーザープロファイルが取り出され、ユーザープロファイルの一部分はロボットにロードされる。ユーザープロファイルのロードにより、ロボットはユーザーに関連付けられる。
一実施形態では、１つのロボットと関連付けられたユーザープロファイルは、同じネットワーク（ローカルエリアネットワーク、広域ネットワーク、クラウドネットワーク等）に接続された別のロボットに転送可能である。他の実施形態では、ロボットの関連付けは、あるユーザーから別のユーザーへ切り替え得る。このような実施形態では、ロボットは単一のユーザーと関連付けられるのではなく、ジオロケーション内で検出される任意のユーザーと関連付けられる場合があり、新しいユーザーのユーザープロファイルのロードにより、ロボットは新しいユーザーと関連付けられる。
例えば、２人以上のユーザーがジオロケーション内で検出される場合、ロボットはユーザーに優先順位をつけ、優先したユーザーのユーザー選択をユーザープロファイルとマッチさせ、優先したユーザーのユーザープロファイルをロボットにロードすることによってユーザーを優先したユーザーと関連付けることができる。
他の実施形態では、ユーザープロファイルのマッチングは、ジオロケーション内で検出したユーザーが、ロボットと関連付けられるユーザーであることを検証するためであってよい。ある実施形態では、ロボットがユーザーと関連付けられていても、ロボットは別のユーザーのユーザープロファイルをロードし得る。例えば、ジオロケーション内で第２のユーザーが検出されると、ロボットのＡＩ論理はロボットと関連付けられたユーザーの優先順位及び第２のユーザーの優先順位を比較してもよい。第２のユーザーがより高い優先順位を有する場合、ロボットは、第２のユーザーのユーザー属性をユーザープロファイルにマッチさせ、ここでロボットを第２のユーザーと関連付けることが可能であるように、第２のユーザーのユーザープロファイルをロードしてもよい。ユーザーのユーザープロファイルをロボットにロードすることによって、ロボットのＡＩ論理１１４は、ユーザーの性格、好み、予定等を知り、ユーザーの好みに従ってコンテンツを提供するようになる。
さらに、ユーザーは、ロボットの声及び例えばフィジカルフィットネスアプリケーションのための「ブートキャンプ」対「ヨガ」スタイル等の特定のアプリケーションのための命令の様式等のユーザーの好みを反映するためにロボットをカスタマイズするために性格を選択してもよい。係るユーザーのカスタマイズ化は、ユーザープロファイルに従って更新され、ロボットのユーザーに対する関連付けの間に使用され得る。
【００４８】
アクティビティ識別子モジュール（Activity Identifier Module）１１３は、ある実施形態では、ユーザープロファイルからのユーザー識別子を使用し、ロボット１１０でもしくはコンピュータ１０６でローカルに、またはクラウドシステム３００で遠隔で利用可能なアクティビティデータベースに問い合わせることによって現在時刻でのユーザーのアクティビティを識別するように構成される。アクティビティデータベースは、ある期間にわたって各ユーザーにより実行されるアクティビティの履歴を維持し、履歴から収集された情報は、ユーザーが所与のときに何のアクティビティを実行することを予定するのかを決定するために使用される。
例えば、アクティビティ識別子モジュール１１３は、ユーザーが実行することを予定するエクササイズルーチンを識別してよく、ユーザーが行わなければならないまたは過去に行った繰り返しの数、特定の日にどのサーキットトレーニングに従うのか、自己最高記録、ならびに履歴タイミング及び持続時間等を識別してもよく、係る情報は、アクティビティ履歴から抽出される。他の実施形態では、アクティビティ識別子モジュール１１３は、ユーザーがアクティビティを実行中であることを示すユーザーからの命令またはコマンドを受け取ってよく、命令は、ユーザーが実行しようと計画しているアクティビティのタイプ（例えば、シットアップ、プッシュアップ、プルアップ、ジャンピングジャック、ストレッチング、レッグベンド、スクワット、レッグレイズ、ジョグインプレース、トレッドミル、パンチングバッグ等）、及びユーザーが現在時刻で行うことを意図する繰り返しの数を識別してもよい。
アクティビティ識別子モジュール１１３は命令を記録し、ユーザーが実行するつもりであるエクサイサイズルーチンの一部であるエクササイズの詳細を入手するために、ロボットもしくはコンピュータ１０６でローカルに、またはクラウドシステム３００で遠隔で利用可能であるアクティビティデータベースに問い合わせる。他の実施形態では、ユーザーは、ユーザーがある特定の日に実行しなければならないエクササイズを識別するように単にロボットに命令してよく、アクティビティ識別子モジュール１１３は、ユーザーがどのエクササイズルーチンまたはサーキットトレーニングを現在訓練しているのかを知るためにアクティビティ履歴にアクセスしてもよい。さらに他の実施形態では、ロボットは、ユーザーが特定の身体の部分を目標とするためにエクササイズルーチンを提案するように命令されてよく、アクティビティ識別子モジュール１１３は、ユーザーのソーシャルグラフにアクセスしてもよい、またはユーザーのソーシャルコンタクトで、もしくは類似するユーザー属性あるいはフィットネスゴールを共有する（つまり、識別された体の部分を目標としている）他のユーザーで人気のあるエクササイズを識別するためにクラウドソーシングを使用してもよい。
【００４９】
エクササイズルーチンのエクササイズの詳細は、動的位置決めモジュール１１５に渡される。動的位置決めモジュール１１５は、ユーザーがエクササイズルーチンからエクササイズを開始するのを待機する。ロボットが（ロボットのモーションセンサ、近接センサ等の多様なセンサにより取り込んだデータに基づいて）ユーザーがエクササイズを始めたことを検出すると、動的位置決めモジュール１１５は、動的位置決めモジュール１１５からの信号により作動したセンサが、エクササイズを実行しているユーザーの画像を取り込み得るように、モータ駆動コントローラを制御して、ロボット１１０をユーザーに近接する１つ以上の領域に移動させるためにコントローラに信号を提供する。
ユーザーに近接する領域を識別するために、動的位置決めモジュール１１５のジオスペースマッパーモジュール１１５ａは、多様な画像取り込み装置及びセンサにより取り込んだ画像を使用し、（２次元フォーマットまたは３次元フォーマットで）ジオロケーション内の空間をマッピングするために使用される。マッピングした空間は、次いで、ユーザーがジオロケーション内にいる領域（複数可）、（ある場合）現実世界のオブジェクトがある領域、ロボットが現在位置決めされている領域、エクササイズを実行しているユーザーのビューを得るためにロボットを移動できるユーザーの周りのまたはユーザーに近接する領域、及びロボットの現在位置からユーザーに近接する領域への経路を識別するために動的位置決めモジュール１１５により使用される。ユーザーに近接する領域は、ユーザーが実行しているエクササイズのタイプに基づいて識別されてよく、あるエクササイズから別のエクササイズに変化してもよい。
ある実施形態では、動的位置決めモジュール１１５がユーザーに近づくための領域を識別できないとき、動的位置決めモジュール１１５は、ユーザーに近接する領域から１つ以上の現実世界オブジェクトを移動させるようにユーザーに要求する要求信号をユーザーに送出してよく、これによりロボットは、エクササイズを実行しているユーザーの画像を取り込むために、ユーザーに近い位置に移動するまたはユーザーに近い領域にアクセスすることができる。要求信号は、音声フォーマット、ビデオフォーマット、または画像フォーマットで提供され得る。ビデオフォーマットまたは画像フォーマットは、ユーザーの近傍のレンダリング面でレンダリングされる場合もあれば、ロボットに通信で接続されるコンピュータと関連付けられた表示画面で、もしくはユーザーがＨＭＤを着用している場合はＨＭＤの表示画面でレンダリングされる場合もあれば、ロボット自体の表示画面でレンダリングされる場合もある。識別された領域へのロボットの移動は、ロボットがいかなるオブジェクトまたは人にも衝突しないように、ロボットの近接センサ及び他のモーションセンサにより支援される。
【００５０】
ロボットが位置（複数可）に移動されると、モデルビルダーモジュール１１７は、コントローラに、ユーザーがエクササイズを実行している間にユーザーの画像を取り込むためにロボット内の多様なセンサを操作するように信号を送る。ある実施形態では、ロボットは、ユーザーがエクササイズを実行している間に、ユーザーにより保持される姿勢の画像を多様な角度から取り込むためにユーザーに近い複数の領域に移動され得る。これは、ユーザーの姿勢（複数可）をモニタするために動き回るパーソナルトレーナーに似ている。多様なセンサにより取り込んだ姿勢の画像は、ユーザーのモデルを構築するために使用される。ある実施形態では、モデルビルダーモジュール１１７は、ユーザーの身体の多様な四肢または部分の位置、動き、持続時間、角度、方向、速度、加速、身体の枢止点、身体の重心、特定の筋肉の収縮等を追跡することによってユーザーの向きの多様な角度を識別してよく、ロボットの多様なカメラ及びセンサは、画像の係る詳細及びセンサデータを取り込むために位置決めできる。
ある実施形態では、カメラ及びセンサにより取り込んだ画像及びセンサデータは（顔の赤み、脈の速さ、鼓動等に基づいて）ユーザーがいつ疲れているまたは不快と感じているのかを判断し、安全を目指してユーザーを指導するために使用され得る。モデルビルダーモジュール１１７は、センサからのデータ及びカメラからの画像が送られる先のセンサフュージョンモジュール１１７ａを作動させる。図３Ａは、ＡＩ論理１１４のセンサフュージョンモジュール１１７ａが多様なセンサ（モーションセンサ、近接センサ、カメラ、画像取り込み装置等）から入力としてデータを受け取り、データを処理し、ユーザーの１つ以上のモデルを出力する１つの係る説明を示す。
例えば、センサフュージョンモジュール１１７ａの論理は、エクササイズを実行しているときにユーザーにより保持される姿勢のためのモデルを生成するためにデータを処理する。単一の姿勢のために生成されるモデルは、異なる角度または視点から姿勢を識別してもよい。ある実施形態では、モデルは、実質的にリアルタイムで生成される。ある実施形態では、生成されるモデルはユーザーにより保持される姿勢の骨格の輪郭を実質的に模倣するスティックフィギュア（ｓｔｉｃｋ−ｆｉｇｕｒｅ）モデルである。スティックフィギュアモデルは、多様な枢止点、及び枢止点が位置する四肢または身体の部分を表す線を表すドットを含む。他の実施形態では、生成されるモデルは、動画のスティックフィギュアモデルまたは３次元モデル、代表的なモデル等である。
【００５１】
アクティビティ（つまり、エクササイズ）を実行しているユーザーのモデルが生成されると、仮想モデル検索装置モジュール１１９が、エクササイズの仮想モデルを識別するためにＡＩ論理により作動される。しかしながら、仮想モデルは、ユーザーの生成されたモデルとの類似モデル表現であるので、仮想モデルはエクササイズごとに保持する必要がある正しい姿勢を識別する。１つ以上の仮想モデルが、各仮想モデルが特定の角度からのエクササイズの正しい姿勢を表すエクササイズについて識別され得る。正しい姿勢は、初心者から専門家へのユーザーの進歩に基づいて、または年齢、体重、及びサイズ等の他の要因に基づいて変わる場合もある。
【００５２】
フィードバックジェネレータモジュール１２１は、次いでエクササイズのために識別された仮想モデル（複数可）、及びユーザーがエクササイズを実行していたときにユーザーの姿勢の取り込んだ画像（複数可）から生成されたモデル（複数可）を使用して、ユーザーがエクササイズを実行するのにつれて動的なフィードバックを提供する。一実施形態では、フィードバックジェネレータモジュール１２１は、ユーザーの生成されたモデル（複数可）を対応する仮想モデル（複数可）と比較する。比較に基づいて、フィードバックジェネレータモジュール１２１は、２つのモデルの相違点を識別するフィードバックを生成する。
ある実施形態では、生成されたフィードバックは、検出した位置の相違点に基づいて姿勢を補正する命令を含む場合もあれば、エクササイズを実行しているときにユーザーの姿勢を補正するための励ましのヒントを提供する場合もある。例えば、フィードバックジェネレータモジュール１２１のＡＩ論理は、モデルに取り込んだユーザーの姿勢を見て、ユーザーにさらにプッシュダウンし、腕または膝を延ばし、脚または腕をまっすぐにする等、命令する場合がある。姿勢を補正するために役立つヒントを提供することに加えて、ＡＩ論理はユーザーのアクティビティ履歴も見て、追加の繰り返しを実行するようにユーザーを励ます一方、以前に実行された繰り返しのステータスを提供する場合もある。それは、進歩、自己最高記録、姿勢保持の持続時間等を強調表示してもよい。
ユーザーコメントまたは身体的状態はＡＩ論理により記録され、フィードバックは、受け取ったコメントまたは身体的状態に従って調整され得る。動的フィードバックは、他のユーザーが従う同じエクササイズルーチンのステータスも提供し、ユーザー自身の成績を改善する方法に関する命令を提供してもよい。ある実施形態では、ＡＩ論理は、異なるユーザーが従う異なるエクササイズシーケンスを決定し、アクティビティ履歴から入手する、ユーザーが以前に実行したエクササイズルーチンのステータスを決定し、ユーザーのために相応してエクササイズルーチンを調整するためにクラウドソーシングからの情報を使用してもよい。
【００５３】
ＡＩ論理は、ユーザーがエクササイズルーチンに従事している間にユーザーのよりよい視点を得るためにその位置を調整することによってユーザーのアクティビティをモニタし続ける。ユーザーがエクササイズルーチンの次のエクササイズに進むにつれ、ＡＩ論理は姿勢の変化を取り込み、仮想モデルを適切に識別し、ユーザーのために生成されたモデルを仮想モデルと比較し、ユーザーの姿勢を改善するために、ユーザーにフィードバックを動的に提供する。
【００５４】
図４は、一実施形態の簡略化されたデータフロー図を示す。データフローは、ロボットがジオロケーション内のユーザーの存在を検出すると始まる。ジオロケーション内のユーザーの存在はＡＩ論理を作動させ、次いでＡＩ論理はロボットの多様なセンサ及びカメラを作動させることによりユーザーの移動を追跡する。作動されたセンサ及びカメラは、ユーザーが、エクササイズ（例えば、ジャンピングジャックエクササイズ）等のアクティビティを実行している間、ユーザーの画像を取り込む。ＡＩ論理は、次いで多様なセンサから受け取ったデータをマージすることによってセンサフュージョンを実行し、エクササイズを実行中に異なる姿勢を保持するユーザーの１つ以上のモデルを構築する。
ＡＩ論理は、次いでエクササイズルーチンの仮想モデルを識別するために、仮想モデルのデータベースに問い合わせる。ＡＩ論理は、次いでエクササイズのために１つ以上の仮想モデルを取り出し、取り出した仮想モデルを、ユーザーの姿勢から生成したモデル（複数可）と比較し、フィードバックを生成する。フィードバックは、姿勢がユーザーにより補正される必要がある領域を識別する画像の形をとってよい。姿勢のあらゆる間違いを補正するための画像が、ＴＶモニタ上での、またはＨＭＤを介したレンダリングのために提供される。ある実施形態では、間違いは画像内で強調表示されてよく、必要な補正はテキストフォーマットまたは音声フォーマットのどちらかで提供され得る。代わりに、フィードバックは、追加のエクササイズまたは同じエクササイズの追加の繰り返し等を実行するようにユーザーを励ますために音声フォーマットまたはビデオフォーマットで提供され得る。
【００５５】
図５Ａ〜図５Ｄは、ユーザーの多様な姿勢のために生成されたいくつかのサンプルモデル、対応する仮想モデル、及びユーザーに姿勢を改善するために提供されるフィードバックを示す。図５Ａは、ロボットが、例えばプッシュアップ等の姿勢を実行しているユーザーを観察し、ユーザーの画像を取り込む多様な位置（領域Ａ、Ｂ、Ｃ）を示す。ロボットにより取り込んだ画像は仮想モデルと比較され、相違点１及び２が識別される。ＡＩ論理は、次いで音声フォーマットまたは画像フォーマットのどちらかでフィードバックを提供する。ある実施形態では、ＡＩ論理は、補正する必要のあるユーザーの身体の部分（複数可）を識別する相違点のビデオ表現を提供してもよい。フィードバックが画像フォーマットまたはビデオフォーマットで提供されるある実施形態では、エクササイズのために識別された仮想モデルはユーザーのモデルの上に重畳されてよく、調整する必要がある必要な身体の部分は強調表示される、またはそれ以外の場合識別される。ある実施形態では、画像フィードバックは、音声フィードバックも伴う場合がある。ロボットが人型ロボットの形である特定の実施形態では、フィードバックは正しい姿勢を実演するロボットを含む場合もあるであろう。
【００５６】
図５Ｂは、ユーザーがエクササイズルーチンの別のエクササイズを実行しているときに生成されるユーザーの例のモデルを示す。この例では、ユーザーは、スクワットを実行している。ＡＩ論理は（破線の円３で表す）姿勢の相違点を識別してよく、適切なフィードバックが音声フォーマット、画像フォーマット、またはビデオフォーマットで提供され得る。
図５Ｃは、ボディプランクを実行し、エルボープランクに進むユーザーの例のモデルを示す。ユーザーが２つのエクササイズを実行するにつれ、ＡＩ論理は、ユーザーの姿勢を取り込み、取り込んだ姿勢を使用して（破線の円４、５、６、及び７で表す）相違点を識別し、ユーザーが相違点を補正できるようにフィードバックを提供するために多様な戦略的な位置にそれ自体を動的に位置決めしてもよい。
図５Ｄは、エクササイズのセットを実行するユーザーの別の例のモデルを示す。本実施形態では、フィードバックは、ユーザーの姿勢と、仮想モデルから得た姿勢の相違点を強調表示するビデオフォーマットで提供され得る。ビデオの音声部分は、エクササイズのセットのためにユーザーが講じる必要のある補正処置を提供してもよい。ある実施形態では、ＡＩ論理は、エクササイズを実行するための所定の教育ビデオまたは教育音声を識別し、ユーザーが従うための教育ビデオまたは教育音声をフィードバックとして提示してもよい。
【００５７】
ある実施形態では、ロボットのＡＩ論理は、ロボットの特定の部分を作動させて正しい技術を実演するためにコントローラに信号を送るほど十分に関節がある。他の実施形態では、ＡＩ論理は、エクササイズを実行しているユーザーがエクササイズの正しい姿勢を見て、それを実行できるように、ユーザーのＨＭＤにフィードバックを送信してもよい。ある実施形態では、正しい姿勢は、ＨＭＤを着用しているユーザーが、ユーザーが命令に従い、エクササイズを正しく実行することができるようにエクササイズを実行し始める前に、ユーザーのＨＭＤに送信され得る。
例えば、ロボットが、ユーザーが実行する予定になっているエクササイズルーチンを決定した後、及びユーザーがエクササイズルーチンの第１のエクササイズを実行するのを検出した後、エクササイズルーチンの以降のエクササイズは、ユーザーが正しい技術に従うことができるようにユーザーに投影され得る。ある実施形態では、ＡＩ論理は、ユーザーが運動している間に音楽を提供してもよい。音楽はフィットネスルーチンにマッチするように選択され得る。ＡＩ論理は、フィードバックが音声フォーマットで提供されているとき、またはユーザーがロボットに命令を出しているとき、音楽の音量を引き下げて、次いでフィードバックまたは命令が提供されると音量を上げてもよい。
【００５８】
このようにして、ＡＩ論理は、ユーザーとの多様なインタラクションあるいは対話から動的に学習し、ユーザーが設定したフィジカルフィットネスの目標を改善するために多様なフィットネスルーチンを通してユーザーを指導する。さらに、ＡＩ論理は、ユーザーの履歴の成績及び現在の成績に基づいてトレーニングセッションをカスタマイズし、ユーザーのオンラインオーガナイザーとインタラクションを行うことによってユーザーのオンラインスケジュールを理解し、ユーザーのスケジュールに基づいてエクササイズルーチンを制限するまたは拡張するためにオンラインスケジュールを使用し、ユーザーの日々の目標を追跡し、日々の目標を達成するために励ましのメッセージを提供し、メモリにまたはサーバに結果を保存することができる。さらに、ＡＩ論理は、ユーザー間のフレンドリなオンライン競争としてそれぞれのロボットを使用する他のユーザーとの競争も可能にし、ともにワークアウトするための類似したフィットネス目標を有する他のユーザーまたは友人を提案する等してもよい。
【００５９】
図６Ａは、一実施形態で、フィジカルトレーニングの間にユーザーを支援するためにロボットを使用するための方法の動作を示す。方法は、ロボットが配備されるジオロケーション内のユーザーの存在をロボットが検出するとき、動作６１０で始まる。ジオロケーション内のユーザーの存在は、ユーザーからの音または移動に基づいて検出され得る。ユーザーの音または移動は、ロボットの１つ以上のセンサにより取り込まれてよい。ユーザーは、ユーザーがどのフィジカルトレーニングルーチンを実行することを希望するのかを詳説する、例えば命令等の言語的合図を提供してよく、係る言語的合図はロボット内のマイクセンサにより拾われる。代わりに、ユーザーの移動は、モーションセンサを使用し、検出され得る。音または移動を検出したことに応えて、ロボットの１つ以上のセンサは、例えば顔の特徴、指紋、手の幾何学形状、声の波動、ＤＮＡまたはシグネチャ、ジェスチャ、コマンド等の生体データを取り込むために作動される。取り込んだユーザーの生体データは、ユーザー属性を識別するために解析され、ユーザー属性は、次いでユーザーのユーザープロファイルを識別するために使用される。識別したユーザープロファイルは、ロボットをユーザーと関連付けることができるようにロボットにロードされる。ロボットをユーザーと関連付けることにより、ロボットのＡＩ論理は、ユーザーの性格、好み、身体的制約、スケジュール等を知り、ユーザーの好みに従ってコンテンツを提供することができるようになる。
【００６０】
ジオロケーション内のユーザーを検出すると、ＡＩ論理は、動作６２０に示すように、ユーザーが実行する予定となっているアクティビティ（例えば、フィジカルトレーニングのためのエクササイズルーチン）を決定する。ＡＩ論理は、ユーザーのアクティビティの履歴に基づいて異なる期間のユーザーのスケジュールをすでに知っているので、ＡＩ論理は、ユーザーのアクティビティの履歴に基づいて、ユーザーがどのアクティビティに従事するのかを容易に決定し得る。
【００６１】
ユーザーがエクササイズルーチンからエクササイズを実行し始めると、動作６３０に示すように、ロボットのＡＩ論理は、ユーザーがエクササイズを実行している間に、ロボットをユーザーに近接する１つ以上の位置に移動させる。ロボットを移動できる多様な位置は、ロボットの１つ以上の画像取り込み装置により取り込んだ画像を使用し、ジオロケーション内の空間をマッピングすることによって識別され得る。マッピングに基づいて、及びユーザーが現在実行中のエクササイズのタイプに基づいて、ＡＩ論理は、エクササイズを実行している間にユーザーにより保持される姿勢の遮られていないビューを提供できる、ユーザーに近接する領域を決定してもよい。この情報を使用し、ＡＩ論理は、ロボットのための移動経路を識別し、コントローラに、モータ駆動コントローラに対する適切な信号を発生させて、モータ駆動コントローラに識別された領域（複数可）にロボットを移動させるように命令してもよい。
【００６２】
ロボットが位置に移動されると、ＡＩ論理は、コントローラに、ユーザーがエクササイズを実行している間にユーザーの画像を取り込むために１つ以上のセンサを作動させるように命令してもよい。ロボットは、ユーザーの四肢及び身体の向きを決定してもよい。この知識を使用し、ＡＩ論理は、ロボットのセンサがユーザーの係る詳細を取り込むことができるように、ユーザーの近くにロボットを位置決めする命令を提供してもよい。多様なセンサからのデータは、ユーザーの姿勢（複数可）のモデル（複数可）を生成するためにＡＩ論理によってともに融合され得る。生成したモデルは、枢止点、多様な四肢の向きの角度、及び枢止点に沿った身体の部分を識別するユーザーの骨格表現であってよい。
【００６３】
生成したモデルを使用し、ＡＩ論理は、動作６４０に示すように、ユーザーがエクササイズのための姿勢を改善するのを支援するために、エクササイズのために取り込んだ姿勢に関係するフィードバックを提供する。例えば、フィードバックを提供することの部分として、ＡＩ論理は、ユーザーにより実行されるエクササイズの仮想モデルを識別し、取り出し、生成したモデルを仮想モデルと比較し、（ある場合には）相違点を識別し、フィードバックを策定し、ユーザーにフィードバックを提示するために機械学習モデルを使用してもよい。フィードバックは、音声フォーマット、ビデオフォーマット、または画像フォーマットで提供され得る。ある実施形態では、ロボットは、エクササイズ技術を実演する、または事前に記録された教育音声または教育ビデオを識別し、それをユーザーに提示するほど十分に関節があってよい。ロボットは、このようにして異なる角度からエクササイズを実行しているユーザーを見て（つまり、異なる位置に移動して）、まさにライブのパーソナルトレーナーが行うであろうように、ユーザーが自分の姿勢を補正するのを支援するためにフィードバックを提供することによって、パーソナルトレーナーのように働く。また、ロボットは、エクササイズを実行する前または間にユーザーにより提供される命令または音声合図を記録し、記録した命令に従ってフィードバックを調整してもよい。ユーザーが多様なエクササイズを実行している間、ロボットは、ユーザーがエクササイズを実行している間の音楽を提供してもよい。提供される音楽は、エクササイズの強度と一致してよく、エクササイズの強度が変化するにつれ、音楽は強度の変化を反映するために調整され得る。
【００６４】
図６Ｂは、他の実施形態で、ユーザーにより実行されるエクササイズルーチンのためのフィードバックを提供するために、ロボットを使用するための方法の動作を示す。方法は、ロボットがユーザーから命令を受け取るとき、動作６５０で始まる。ユーザーからの命令は、ユーザーが現在時刻に実行することを選択したエクササイズルーチンを識別してもよい。ロボットは命令を記録し、ユーザーがエクササイズルーチンを始めるのを待機する。ロボットの１つ以上のセンサが、ユーザーのアクティビティをモニタして、ユーザーがいつエクササイズルーチンを始めたのかを決定するために作動される。ユーザーがエクササイズルーチンを実行するのをロボットが検出すると、動作６６０に示すように、ロボットは、ロボットが動作６７０に示すように、ユーザーにより保持される姿勢の画像を取り込むことを可能にするためにユーザーに近接する１つ以上の位置に移動する。
ユーザーがエクササイズルーチンからエクササイズを実行したことを検出すると、ロボットのＡＩ論理は、ユーザーに近接するジオロケーション内の領域を決定し、ロボットをそれらの領域に移動させるためにモータ駆動コントローラに信号を送信してもよい。ロボットは、ロボットが領域にナビゲートするのを支援するために、モーションセンサ、近接センサ等を作動させてよい。ロボットがＡＩ論理により識別された領域に位置決めされると、センサは、ユーザーがエクササイズルーチンからエクササイズを実行している間にユーザーにより保持される姿勢の画像を取り込むように指示される。ロボットを移動する領域、及びユーザーの姿勢を取り込むためのセンサのうちの特定のセンサの作動は、ユーザーが実行しているエクササイズにより決められる。例えば、ユーザーがプッシュアップを実行しているとき、ロボットまたはそのセンサのうちの少なくとも１つ以上は、異なる角度から姿勢を取り込むために、（図５Ａに示すように）ユーザーに近い異なる領域に移動する必要がある場合がある。ユーザーがジャンピングジャックまたはジョギングを実行しているとき、ロボットは、ロボットが同時に多様な四肢の姿勢及び移動を取り込むことを可能にする領域（例えば、ユーザーからより遠い領域）に移動しなければならない場合がある。
【００６５】
ＡＩ論理は、動作６８０に示すように、ロボットを移動する位置が、エクササイズを実行しているユーザーの画像（複数可）を取り込むために最適であることを周期的に検証する。検証することの一部として、ＡＩ論理は、異なる場所にロボットを位置決めし、ユーザーの画像を取り込み、画像がユーザーの姿勢を適切に取り込むかどうかを判断するために画像を解析することによって多数のテストを実行してもよい。解析の一部として、取り込んだ画像は、例えば、照明、解像度、取り込みの角度、向き、ユーザーの画像が取り込まれるところからの距離等の画像属性の一部が最適であるかどうかを判断するために処理され得る。最適ではない場合、ロボットまたは１つ以上のセンサの位置は、画像取り込み装置により取り込んだ画像（複数可）の画像属性に影響を及ぼすために調整される。
解析に基づいて、ＡＩ論理は、位置のうちのどの位置が、ユーザーがエクササイズを実行している間にユーザーの姿勢（複数可）の最適なビューを提供するのかを決定してもよい。ユーザーが実行しているエクササイズに基づいて、エクササイズのために識別された位置が変化し続ける場合があり、結果として、検証がロボットの動的再位置決めにつながる場合があることに留意されたい。例えば、ユーザーがエクササイズルーチンの一部としてジョギングすることを選ぶ場合、ロボットはユーザーに従う、または画像を取り込むためにユーザーがたどる経路に沿った異なる位置に移動する必要がある場合がある。
エクササイズを実行しているユーザーのために取り込んだ画像は解析され、フィードバックがユーザーに提供される。解析を実行することは、ユーザーのモデル表現を構築し、モデル表現を、あらゆる相違点を識別するためにエクササイズに利用可能である仮想モデルに比較することを含む。ＡＩ論理は、ユーザーに対する適切なフィードバックを策定するためにその機械学習アルゴリズムを使用してよく、係るフィードバックは、比較により識別する任意の相違点を相互に関連付けるために提供され得る。例えば、フィードバックは、エクササイズを実行しているときに身体の異なる部分の向きを調整する（例えば、腕をまっすぐにする、脚を伸ばす、背中を持ち上げる、９００で腕を組む等の）命令を含んでよい。
２つのモデルの比較により相違点が識別されないとき、フィードバックは、追加のエクササイズまたはエクササイズの追加の繰り返し等を実行するようにユーザーを励ますために提供され得る。ある実施形態では、ＡＩ論理は、ユーザーが実行したエクササイズのタイプ及び数を把握し、ユーザーがエクササイズルーチンを完了する気にさせるために励ましのコメントともにユーザーにエクササイズルーチンのステータスを提供してもよい。ある実施形態では、フィードバックは、サインランゲージを使用し、提供される場合もあれば、ユーザーにとって自然である任意の言語で提供されてもよい。ある実施形態では、ＡＩ論理は、ユーザーに任意選択のロボット性格を与えてよい。例えば、オプションは、リラックスした「ヨガ」スタイルの性格に対して、厳しい「ブートキャンプ」スタイルの性格を含んでよい。追加のオプションは、女性の声に対して男性の声を使用するオプションを含んでよい。
【００６６】
フィードバックを提供した後、ロボットは、動作６９０に示すように、姿勢の任意の変化が検出されるかどうかを判断するためにユーザーをモニタし続ける。姿勢の変化は、ユーザーが、姿勢を補正するためにフィードバックで提供された命令に従った結果である場合もあれば、ユーザーがエクササイズルーチンの他のエクササイズを続行した結果である場合もある。姿勢の変化が検出されると、動作７００に示すように、ＡＩ論理は変化を検知し、動作７１０に示すように、ロボットの位置を動的に調整して、姿勢の変化の画像を取り込むために信号を送信する。これは、ロボットを異なる領域に移動させること、またはロボットの現在位置から姿勢の画像を取り込み続けることを含んでもよい。ＡＩ論理は、姿勢の取り込んだ変化を解析し、動作７２０に示すように追加のフィードバックを提供する。解析の一部として、ＡＩ論理は、変化を表すモデルを動的に構築し、姿勢の変化が同じエクササイズのためであるのか、それとも異なるエクササイズのためであるのかを判断し、ユーザーの新規に構築したモデルを適切な仮想モデルと比較してフィードバックを提供する。フィードバックは、ユーザーが姿勢を改善して、エクササイズルーチンの中から最大限の利点を獲得することができるように提供される。
【００６７】
他の実施形態では、ロボットは、「テレプレゼンスモード」で使用され得る。本実施形態では、ロボットは、エクササイズルーチンからエクササイズを実行するユーザーの画像を取り込むために使用される。取り込んだ画像は、次いで、例えば職業的なリモートトレーナー等の遠隔に位置するユーザーに転送される。遠隔に位置する職業的なトレーナーは、取り込んだ画像を見て、遠隔場所からユーザーにフィードバックを提供できる。フィードバックは、同期でまたは非同期で提供され得る。本実施形態では、ＡＩ論理は、エクササイズを実行しているユーザーの画像（複数可）を取り込み、遠隔に位置するユーザーから受け取ったフィードバックを、エクササイズを実行しているユーザーに伝達するように、ロボットまたはロボットに通信で結合されたドローンを、ユーザーに近接して位置決めするために使用される。
【００６８】
一実施形態では、ロボットを使用し、ユーザーにより実行されるエクササイズルーチンのためのフィードバックを提供する方法を説明する。方法は、ユーザーがエクササイズルーチンを実行するのを検出することを含む。エクササイズルーチンを実行するユーザーは、ロボットの１つ以上のセンサを使用し、検出され得る。ユーザーがエクササイズルーチンからエクササイズを実行するのを検出したことに応えて、ロボットは、ユーザーがエクササイズを実行しているときに、ユーザーにより保持される姿勢の１つ以上の画像の取り込みを可能にするために、ユーザーに近接する１つ以上の位置に移動される。
ロボットを移動させる１つ以上の位置は、実行されているエクササイズに基づいて識別され得る。一実施形態では、ロボットは、ユーザーがエクササイズを実行している間にユーザーの画像を取り込むためにドローンを利用する場合がある。ロボット及び／またはドローンにより取り込んだ画像は、次いでコメントのためにリモートユーザーに転送される。リモートユーザーは、画像を見て、フィードバックの形でコメントを提供してもよい。フィードバックは、音声フォーマット、画像フォーマット、ビデオフォーマット、またはその任意の組み合わせで提示され得る。
ロボットはフィードバックを受け取り、ユーザーにフィードバックを提示する。ユーザーに対するフィードバックは、ユーザーが、エクササイズを実行する間の姿勢を改善するためにユーザーを支援するためである。人型ロボットを利用するある実施形態では、リモートユーザーは、ロボットに対する、エクササイズルーチンを実行する適切な方法を実演する命令とともに信号を生成してもよい。信号の命令は、移動する必要のある多様な身体の部分を識別してよく、ロボットはフィードバックを解釈し、エクササイズのための正しい姿勢を実演してもよい。
例えば、信号は、人型ロボットに特定の方法で特定の身体の部分を移動させるように命令する音声信号であってよく、人型ロボットのＡＩ論理は命令を解釈し、エクササイズのための動きを実演するであろう。ある実施形態では、ロボットは、リモートユーザーから受け取った命令に従ってエクササイズを実行してよく、エクササイズ実行中、エクササイズを実行しているユーザーの画像を取り込み、さらなるフィードバックのためにそれをリモートユーザーに転送してもよい。分かるように、ロボットのＡＩ論理は、ユーザーの存在を検出し、アクションを実行するユーザーの画像を取り込み、アクションに関する瞬時のフィードバックを提供する、またはテレプレゼンスモードを採用し、アクションを実行しているユーザーにフィードバックを提供するために使用されるコメントのために画像をリモートユーザーに転送するために使用され得る。
【００６９】
本明細書に説明する多様な実施形態は、ユーザーをフィジカルトレーニングで支援するためにパーソナルトレーナーとしてロボットを使用する方法を提供する。ロボットのＡＩ論理は、ユーザーがある期間にわたって関与する多様なアクティビティを識別し、ユーザーとの周期的なインタラクションあるいは対話を通じてユーザーの好み、お気に入り、行動的属性等を学習し、係る学習を使用してユーザーに対するフィードバックを調整する。
例えば、厳格なエクササイズルーチンに取り掛かる初心者ユーザーは、より寛大なフィードバックを与えられる場合がある。一方、調子の整ったユーザーは、より正確かつ批判的なフィードバックを与えられる場合がある。さらに、初心者ユーザーが調子の整ったユーザーに成熟するにつれ、ロボットにより提供されるフィードバックも、ユーザーの能力をエクササイズルーチンにマッチさせるために寛大から批判的に移り変わる。
ある実施形態では、フィードバックを提供することの一部として、ロボットはそれ自体、正しい技術を実演してもよい。多様な実施形態は、パーソナルトレーニングの領域に制限されるのではなく、他のインタラクティブなアプリケーションにも拡張できる。
例えば、ロボットは、オンラインゲームをプレイしているとき、または他のオンラインアプリケーションとインタラクションを行っているとき、ユーザーにフィードバックを提供するために使用され得る。ユーザーが最初にオンラインゲームのプレイを始めると、ＡＩ論理は、ユーザーがゲームで進むことを可能にするために役に立つゲームプレイヒントを提供してもよい。この例では、ユーザーは、ゲーム機もしくはコンピュータでゲームのインスタンスを作成することによって、またはクラウドシステムとインタラクションあるいは対話を行うことによってゲームをプレイしてよく、ゲームのゲームプレイは、ＨＭＤの画面にまたはロボットが存在するジオロケーション内のユーザーの近傍の表示面に投影され得る。
ロボットのＡＩ論理は、ゲーム機もしくはコンピュータまたはクラウドシステムからユーザーが関与するゲームのゲーム状態に関する情報を受け取る。また、ＡＩ論理は、ゲームがゲームプレイの異なる段階でどのように進行するのかを含む、ゲームの詳細を提供するゲーム論理も受け取る。この情報を使用し、及びゲームのゲーム状態に基づいて、ＡＩ論理は、ユーザーがゲームで進むことを可能にするためにユーザーにフィードバックとしてヒントを提供してもよい。ユーザーに提供されるヒントは、ユーザーのスキルレベルに基づいてユーザーに対して調整される。
ユーザーのゲームプレイスキルが改善するにつれ、フィードバックは、ユーザーの改善したスキルレベルをマッチさせるように調整される。このようにして、ロボットのＡＩ論理は、ユーザーを訓練するために、または任意のインタラクティブオンラインアプリケーションとインタラクションあるいは対話を行うためのユーザーに役に立つヒントを提供するために使用することができ、したがってフィジカルトレーニングまたはオンラインゲームに制限されない。多様な実施形態の他の優位点は、当業者によって予想され得る。
【００７０】
図７を参照すると、一実施形態に従って、ロボット１１０の構成要素を示す図が示される。ロボットは、プログラム命令を実行するためのプロセッサ７１０を含む。メモリ７１２は、記憶のために提供され、揮発性メモリと不揮発性メモリの両方を含んでよい。ユーザーが見る場合があるビジュアルインタフェースを提供する任意選択のディスプレイ７１６が含まれる。電池７１４は、ロボット１１０用の電源として提供される。電池に加えて、ロボット１１０は、ロボットを充電するための充電器の機能を果たしてもよい、ホイール基部に取り付けられてよい。位置検出器モジュール７２０は、磁力計７２２、ジャイロスコープ７２４、加速度計７２６、超音波センサ７２８、レーダー７３０、ＧＰＳ７３２、及びコンパス７３４等の多様な種類の動作感知型ハードウェアのいずれかを含んでよい。
【００７１】
加速度計７２６は、加速及び重力により生じる反力を測定するためのデバイスである。単軸モデル及び多軸モデルは、異なる方向での加速の大きさ及び方向を検出するために利用できる。加速度計は、傾斜、振動、及び衝撃を感知するために使用される。一実施形態では、多数の加速度計７２６（例えば、３つの加速度計）が、２つの角度（世界‐空間ピッチ及び世界‐空間ロール）の絶対基準を示す重力の方向を提供するために使用される。
【００７２】
磁力計７２２は、ロボットの近傍の地場の強さ及び方向を測定する。一実施形態では、３つの磁力計７２２がロボットの中で使用され、世界―空間ヨー角度の絶対基準を保証する。一実施形態では、磁力計７２２は、±８０マイクロテスラである地磁場に及ぶように設計される。磁力計７２２は金属により影響を及ぼされ、実際のヨーと単調であるヨー測定値を提供する。磁場は、環境内の金属により歪められる場合があり、このことがヨー測定値で逸脱を引き起こす。必要な場合、この逸脱はジャイロスコープ７２４またはカメラ等の他のセンサからの情報を使用し、較正される場合がある。一実施形態では、加速度計７２６が、ロボット１１０の傾き及びアジマスを得るために磁力計７２２と共に使用される。
【００７３】
ジャイロスコープ７２４は、角運動量の原理に基づいて向きを測定または維持するためのデバイスである。一実施形態では、３つのジャイロスコープ７２４は、慣性検知に基づいてそれぞれの軸（ｘ、ｙ、及びｚ）全体での移動についての情報を提供する。ジャイロスコープ７２４は、高速回転を検出するのを助ける。しかしながら、ジャイロスコープは、絶対基準の存在なしには経時的にドリフトする場合がある。これにより、ジャイロスコープを周期的にリセットすることが必要になり、このことは、オブジェクト、加速度計、磁力計等の視覚的な追跡に基づいた位置／向き決定等の他の利用可能な情報を使用し、行うことができる。
【００７４】
超音波センサ７２８は、音波を使用することによりオブジェクトの距離を測定できるデバイスである。超音波センサ７２８は、特定の周波数で音波を送出し、その音波が跳ね返ってくるのを傾聴することによって距離を測定する。音波が発生するのと音波が跳ね返ってくるのとの間の経過時間を記録することによって、超音波センサとオブジェクト間の距離を計算することが可能である。
【００７５】
レーダー７３０は、オブジェクトの範囲、角度、または速度を決定するために電波を使用するオブジェクト検出システムである。レーダーシステムは、無線領域またはマイクロ波領域で電磁波を発生させるための送信機、送信アンテナ、受信アンテナ、受信機、及びオブジェクト（複数可）の特性を決定するためのプロセッサから成る。送信機からの（パルス化されたまたは連続）電波は、オブジェクトに反射し、受信機に戻り、オブジェクトの場所及び速度についての情報を示す。
【００７６】
グローバルポジショニングシステム（ＧＰＳ）７３２は、任意のデバイス上のＧＰＳ受信機にジオロケーション及び時刻の情報を提供する空間ベースの無線ナビゲーションシステムである。システムは、いずれのデータを送信することも必要としないが、オブジェクトが少なくとも４つのＧＰＳ衛星の少なくとも視線内にあることを必要とする。
【００７７】
磁気コンパス７３４は、地理的な基本方位に対する方向を決定するために使用される計器である。コンパスの磁針は地球の磁場に位置合わせされ、これにより磁針に対して地場によりかけられるトルクが磁針の北点つまりＮ極を地球の磁北極に向かって、及び磁南極に向かう対向する端部に向かって引っ張る。
【００７８】
画像取り込みモジュール７４０は、現実環境の画像及び画像ストリームを取り込むために提供される。ロボット１１０の前面に取り付けられた１つ以上のフロントカメラ７４２、ロボット１１０の背面に取り付けられた１つ以上の背面カメラ７４４、及びロボットの側面に取り付けられる１つ以上のサイドカメラ７４６を含む、２つ以上のカメラがロボット１１０に含まれる場合がある。さらに、１つ以上の深度カメラ７４８が、現実環境内のオブジェクトの深度情報を取り込むためにロボット１１０に含まれる場合がある。
【００７９】
ロボット１１０は、音声出力を提供するためのスピーカ７５０を含む。また、マイク７５２は、周囲環境からの音、ユーザーにより提供されるコマンド等を含む、現実環境から音声を取り込むために含まれる場合がある。マイク７５２は、他の周囲音を除外することにより特定の方向からの音に集中する機能を有するマイクアレイであってよい。
【００８０】
ＬＥＤ７５４は、ロボット１１０のステータスの視覚インジケータとして提供される。例えば、ＬＥＤは、電池残量、電源投入等を示してもよい。ＩＲライト７５６は、可視光が利用できないときにオブジェクトの検出を可能にするために提供される。モータ駆動コントローラ７５８は、ロボットの移動を制御するために使用される。モータ駆動コントローラ７５８は、ロボットを移動させるために使用されるホイールまたはトレッドまたは他の機構に接続され、特定の方向でロボットを移動させ、速度を調節し、トルクを制限するために、及びジオロケーション内でのロボットの全体的なナビゲーションのためにモータ手段を含む。
インタフェースモジュール７６０は、１つ以上の装置にインタフェースを提供するために使用される多様なサブモジュールを含む。ＵＳＢインタフェース７６２は、周辺装置の接続、または例えば他の携帯機器、コンピュータ等の他のデバイスへの接続を可能にするためのインタフェースの一例として含まれる。ロボット１１０の多様な実施形態では、多様な種類のインタフェースのいずれかが、ロボット１１０のより大きい接続性を可能にするために含まれてよい。コントローラインタフェースは、１つ以上のコントローラの受け入れ及び充電を可能にするためのインタフェースの一例として含まれる。（本明細書では、「ドローン充電ステーション」と呼ぶ）ドローンインタフェース７６６は、ドローンデバイスの受け入れ及び充電を可能にするために含まれてよい。ドローンデバイスは、そのボディにカメラを含んでよく、ロボットが位置するジオロケーションの頭上のビューを取り込むためにロボットから配備される場合がある。頭上のビューは、ユーザーまたは関心のあるオブジェクトに対してロボットを移動させ、位置決めするために使用できるジオロケーション内の空間の３次元マッピングを生成するために使用され得る。
【００８１】
通信モジュール７７０は、システムの中の異なるデバイスへの多様な通信リンクを提供するために使用され得る。例えば、通信リンク７７２は、他のデバイスへの接続のために含まれてよい。一実施形態では、通信リンク７７２は、無線通信のために赤外線伝送を利用する。他の実施形態では、通信リンク７７２は、他のデバイスと通信するために多様な無線伝送プロトコルまたは有線伝送プロトコルのいずれかを利用してもよい。ＷｉＦｉモジュール７７４は、無線ネットワーキング技術を介したインターネットへの接続を可能にするために含まれる。超音波通信７７６は、超音波技術を使用する他のデバイスとの通信を容易にするために含まれる。Ｂｌｕｅｔｏｏｔｈ（登録商標）モジュール７７８は、他のデバイスへの無線接続を可能にするために含まれる。プロジェクタ７８０は、ロボットがユーザーのために識別されたコンテンツの画像を、ジオロケーション内で識別された表示面に投影させることを可能にするために含まれる。プロジェクタ７８０は、画像を投影する前に、表示面が投影のために伝導性である（つまり、高度に反射性ではない）ことを確実にするために、コンテンツの画像が投影される表示面を評価するための論理を含んでよい。
【００８２】
入力ボタン／センサ７１８は、ユーザー用の入力インタフェースを提供するために含まれる。ボタン、タッチパッド、ジョイスティック、トラックボール、タッチスクリーン、キーパッド等の多様な種類の入力インタフェースのいずれかを含んでよい。
【００８３】
バイオセンサ７１８は、ユーザーからの生理学的（つまり生体）データの検出を可能にするために含まれる。一実施形態では、バイオセンサ７１８は、ユーザーの皮膚を通してユーザーの生体電気信号を検出するための１つ以上の乾燥電極を含む。一部の他の実施形態では、バイオセンサ７１８は、無線通信プロトコルを使用し、光学バイオセンサ等の遠隔に位置するバイオセンサ、またはユーザーの身体の上または中に配置された、心拍数モニタもしくはパルスオキシメーター等の体に取り付けられたセンサから生成された生体電気信号を検出するように構成される。
【００８４】
ＡＩ論理１１４は、ロボットが、多様なセンサから受信した信号からユーザーの存在を検出し、ロボットのジオロケーション内の空間をマッピングし、マッピングした空間に基づいてロボットをユーザーに近接する領域に位置決めし、ジオロケーション内のユーザーをモニタし、アクティビティを実行するユーザーの画像を取り込み、フィードバックを提供することを可能にするために含まれる。フィードバックは、ユーザーにより実行されるアクティビティを検出し、ユーザーにより実行されるべきである変更をインテリジェントに識別し、変更を実行する命令をユーザーに提供するために機械学習アルゴリズムを使用する。ジオスペースマッパー１１５ａは、２次元フォーマットまたは３次元フォーマットのどちらかでジオロケーション内の空間をマッピングするためにＡＩ論理１１４に含まれる。センサフュージョンモジュール１１７ａは、多様なセンサから入手したデータをマージし、多様なセンサからのデータに基づいてユーザーのモデルをインテリジェントに生成するためにＡＩ論理に含まれる。
【００８５】
ロボット１１０の上記の構成要素は、ロボット１１０に含まれる場合がある単に例示的な構成要素として説明されている。本発明の多様な実施形態では、ロボット１１０は、多様な上述の構成要素の一部を含む場合もあれば、含まない場合もある。ロボット１１０の実施形態は、本発明の態様を本明細書に説明するように容易にするために、現在説明していないが、技術で既知の他の構成要素をさらに含んでもよい。
【００８６】
本発明の多様な実施形態において、上述のハンドヘルドデバイスが、多様なインタラクション機能を提供するためにディスプレイに表示されたインタラクティブアプリケーションと併せて利用され得ることが当業者により理解される。本明細書に説明する例示的な実施形態は、制限としてではなく、ほんの一例として提供される。
【００８７】
図８は、異なるオンラインアプリケーションへのアクセスを提供する際に使用され得る情報サービスプロバイダアーキテクチャの実施形態を示す。情報サービスプロバイダ（ＩＳＰ）１０７０は、多数の情報サービスを、地理的に分散し、ネットワーク１０８６を介して接続されたユーザー１０８２に配信する。多様な実施形態は、ゲーム等のオンラインアプリケーションに高速アクセスを提供することに関して説明されてきたが、実施形態は、１つ以上のタイプの他のサービスを提供するために拡張できる。例えば、ＩＳＰは、エクササイズルーチン等の単に１つのタイプのサービス、またはフィジカルフィットネスルーチング、ゲーム、及び他のユーザーの好みのコンテンツ更新等のさまざまなサービスを配信できる。さらに、各ＩＳＰにより提供されるサービスは動的であってよい。つまり、サービスは、任意の時点で追加することができる、または取り除くことができる。したがって、特定のタイプのサービスを特定の個人に提供するＩＳＰは、経時的に変わる場合がある。
例えば、ユーザーは、ユーザーが地元にいる間、ユーザーにごく近接するＩＳＰによりサービスを提供されてよく、ユーザーは異なる都市に旅行するとき異なるＩＳＰによりサービスを提供され得る。地元のＩＳＰは、必要とされる情報及びデータを、接続モジュールを通してユーザーのゲームプロファイルまたはアクセスプロファイルから新しいＩＳＰに転送し、これによりユーザー情報は、新しい都市までユーザーに「ついていき」、データをユーザーにとってより身近にし、よりアクセスしやすくする。他の実施形態では、マスタ−サーバ関係が、ユーザーのために情報を管理するマスタＩＳＰと、マスタＩＳＰからの制御下でユーザーと直接的に接続するサーバＩＳＰとの間で確立され得る。
他の実施形態では、クライアントが世界中を動き回るにつれ、データはあるＩＳＰから別のＩＳＰに（つまり、ユーザーに割り当てられるデータセンタの切り替え中に）転送され、係る転送は、ユーザーにサービスを提供するためによりよい位置にいるＩＳＰ１０７０を、これらのサービスを配信するＩＳＰにするために、それぞれのＩＳＰにより提供されるサービスの互換性に基づいてよい。
【００８８】
ＩＳＰ１０７０は、ネットワークを介してカスタマにコンピュータベースのサービスを提供するアプリケーションサービスプロバイダ（ＡＳＰ）１０７２を含む。ＡＳＰモデルを使用し、提供されるソフトウェアは、オンデマンドソフトウェアまたはソフトウェアアズアサービス（ＳａａＳ）とも呼ばれることがある。（カスタマ関係管理等の）特定のアプリケーションプログラムにアクセスを提供する簡略な形は、ＨＴＴＰ等の標準プロトコルを使用することによる。アプリケーションソフトウェアは、例えばベンダのシステム上に常駐し、ＨＴＭＬを使用し、ウェブブラウザを通して、またはベンダにより提供される特殊目的クライアントソフトウェアによって、またはシンクライアント等の他のリモートインタフェースを介してユーザーによりアクセスされる。
【００８９】
広い地理的地域で配信されるサービスは、多くの場合、クラウドコンピューティングを使用する。クラウドコンピューティングは、動的にスケラブルであり、多くの場合、仮想化されたリソースがインターネットを介したサービスとして提供されるコンピューティングの様式である。ユーザーは、彼らをサポートする「クラウド」での技術インフラストラクチャの専門家である必要はない。クラウドコンピューティングは、例えばインフラストラクチャアズアサービス（ＩａａＳ）、プラットフォームアズアサービス（ＰａａＳ）、及びソフトウェアアズアサービス（ＳａａＳ）等の異なるサービスに分けることができる。クラウドコンピューティングサービスは、多くの場合、ウェブブラウザからアクセスされる共通のビジネスアプリケーションをオンラインで提供する。一方、ソフトウェア及びデータは、サーバに記憶される。用語クラウドは、インターネットがどのようにしてコンピュータネットワーク図で描かれ、それが隠す複雑なインフラストラクチャのための抽象的概念であるのかに基づいて、（例えば、サーバ、ストレージ、及び論理を使用する）インターネットのメタファーとして使用される。
【００９０】
さらに、ＩＳＰ１０７０は、シングルプレーヤービデオゲーム及びマルチプレーヤービデオゲームをプレイするためにゲームクライアントにより使用される、例えばゲームプロセッシングサーバ（ＧａＰＳ）１０７４等のインタラクティブアプリケーションサーバを含む。インターネットを介してプレイする大部分のビデオゲームは、ゲームサーバに対する接続を介して動作する。通常、ゲームは、プレーヤーからデータを収集し、データを他のプレーヤーに分散する専用サーバアプリケーションを使用する。これは、ピア―ツーピア配置よりもより効率的かつ効果的であるが、サーバアプリケーションをホストするには別個のサーバが必要になる。他の実施形態では、ＧａＰＳはプレーヤー間の通信を確立し、プレーヤーのそれぞれのゲームプレイデバイスが集中ＧａＰＳに頼ることなく情報を交換する。
【００９１】
専用のＧａＰＳは、クライアントと無関係に実行するサーバである。係るサーバは、通常、データセンタに位置する専用ハードウェア上で実行され、より多くの帯域幅及び専用の処理力を提供する。専用サーバは、大部分のＰＣベースのマルチプレーヤーゲームにとってゲームサーバをホストする好ましい方法である。大量のマルチプレーヤーオンラインゲームが、ゲームタイトルを所有するソフトウェア会社により通常はホストされる専用サーバ上で実行し、それらがコンテンツを制御し、更新することを可能にする。
【００９２】
放送処理サーバ（ＢＰＳ）１０７６は、音声信号またはビデオ信号を視聴者に分配する。非常に狭い範囲の視聴者に放送することは、ナローキャスティングと呼ばれることがある。放送分配の最終的な区間は、信号がどのようにして聴取者または視聴者に届くのかということであり、それは、ラジオ局またはテレビ局と同様にアンテナ及び受信機へ放送で入信する場合もあれば、局を介してまたはネットワークから直接的にケーブルテレビまたはケーブルラジオ（または「無線ケーブル」）を通して入信する場合もある。また、インターネットも、マルチキャスティングを用いてラジオまたはテレビのどちらかを受取人にもたらし、信号及び帯域幅を共用できるようにする場合がある。歴史的に、放送は例えば全国的な放送または地方の放送等の地理的地域ごとに区切られてきた。しかしながら、高速インターネットの蔓延により、コンテンツは世界のほぼあらゆる国に到達できるので、放送は地形により定義されていない。
【００９３】
ストレージサービスプロバイダ（ＳＳＰ）１０７８は、コンピュータストレージ空間及び関係する管理サービスを提供する。また、ＳＳＰは、周期的なバックアップ及びアーカイビングも提供する。サービスとしてストレージを提供することによって、ユーザーは、必要に応じてより多くのストレージを注文できる。別の主要な優位点は、ＳＳＰがバックアップサービスを含み、ユーザーが、そのコンピュータのハードドライブが故障する場合、そのすべてのデータを失わないとう点である。さらに、複数のＳＳＰは、ユーザーデータの完全なコピーまたは部分的なコピーを有することができ、ユーザーが、ユーザーがどこに位置するのかまたはデータにアクセスするために使用されているデバイスに関係なく、効率的にデータにアクセスできるようにする。例えば、ユーザーは、ユーザーが移動中に携帯電話内のだけではなく、自宅のコンピュータ内のパーソナルファイルにもアクセスできる。
【００９４】
通信プロバイダ１０８０は、ユーザーに接続性を提供する。通信プロバイダの１つの種類は、インターネットへのアクセスを提供するインターネットサービスプロバイダ（ＩＳＰ）である。ＩＳＰは、ダイヤルアップ、ＤＳＬ、ケーブルモデム、ファイバ、無線高速相互接続または専用高速相互接続等のインターネットプロトコルデータグラムを配信するために適切なデータ伝送技術を使用し、そのカスタマに接続する。また、通信プロバイダは、電子メール、インスタントメッセージング、及びＳＭＳテキストメッセージング等のメッセージングサービスも提供できる。通信プロバイダの別のタイプは、インターネットに対する直接的なバックボーンアクセスを提供することによって帯域幅またはネットワークアクセスを販売するネットワークサービスプロバイダ（ＮＳＰ）である。ネットワークサービスプロバイダは、電気通信企業、データキャリア、無線通信プロバイダ、インターネットサービスプロバイダ、高速インターネットアクセスを提供するケーブルテレビ事業者等から成る場合がある。
【００９５】
データ交換１０８８は、ＩＳＰ１０７０の内部でいくつかのモジュールを相互接続し、ネットワーク１０８６を介してこれらのモジュールをユーザー１０８２に接続する。データ交換１０８８は、ＩＳＰ１０７０のすべてのモジュールが近接近している狭い領域をカバーする場合もあれば、異なるモジュールが地理的に分散しているときに広い地理的地域をカバーする場合もある。例えば、データ交換１０８８は、データセンタのキャビネットまたは大陸間仮想エリアネットワーク（ＶＬＡＮ）の中で高速Ｇｉｇａｂｉｔ  Ｅｔｈｅｒｎｅｔ（またはより高速）を含む場合がある。
【００９６】
ユーザー１０８２は、少なくとも１つのＣＰＵ、メモリ、ディスプレイ、及びＩ／Ｏを含むクライアントデバイス１０８４によりリモートサービスにアクセスする。クライアントデバイスは、ＰＣ、携帯電話、ネットブック、タブレット、ゲーム機、ＰＤＡ等である場合がある。一実施形態では、ＩＳＰ１０７０は、クライアントにより使用されるデバイスのタイプを認識し、利用される通信方法を調整する。他の場合、クライアントデバイスは、ＨＴＭＬ等の標準的な通信方法を使用してＩＳＰ１０７０にアクセスする。
【００９７】
本発明の実施形態は、ハンドヘルドデバイス、マイクロプロセッサシステム、マイクロプロセッサベースのまたはプログラム可能な家庭用電化製品、ミニコンピュータ、メインフレームコンピュータ等を含む多様なコンピュータシステム構成で実践され得る。また、本発明は、タスクが、有線ベースのネットワークまたは無線ネットワークを通してリンクされる遠隔処理装置により実行される分散コンピューティング環境でも実践できる。
【００９８】
上記実施形態を念頭に、本発明がコンピュータシステムに記憶されたデータを伴う多様なコンピュータ実装操作を利用できることが理解されるべきである。これらの操作は、物理的な量の物理的な操作を必要とする操作である。本発明の一部を成す本明細書に説明する操作のいずれも有用な機械操作である。また、本発明は、これらの操作を実行するためのデバイスまたは装置にも関する。装置は、必要とされる目的に特別に構築される場合もあれば、装置は、コンピュータに記憶されたコンピュータプログラムにより選択的に作動または構成される汎用コンピュータである場合もある。特に、多様な汎用機械は、本明細書の教示に従って作成されたコンピュータプログラムとともに使用される場合もあれば、必要とされる操作を実行するためにより特殊化した装置を構築することがより便利な場合もある。
【００９９】
また、本発明は、コンピュータ可読媒体上のコンピュータ可読コードとして実現される場合もある。代わりに、コンピュータ可読コードは、上述のデータ交換相互接続を使用し、サーバからダウンロードされてもよい。コンピュータ可読媒体は、その後コンピュータシステムにより読み取ることができる、データを記憶できる任意のデータストレージデバイスである。コンピュータ可読媒体の例は、ハードドライブ、ネットワークアタッチトストレージ（ＮＡＳ）、読み取り専用メモリ、ランダムアクセスメモリ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、磁気テープならびに他の光学及び非光学データストレージデバイスを含む。コンピュータ可読媒体は、コンピュータ可読コードが分散式で記憶され、実行されるように、ネットワーク結合コンピュータシステムを介して分散されたコンピュータ可読有形媒体を含む場合がある。
【０１００】
方法操作は特定の順序で説明されたが、他のハウスキーピング操作が操作間で実行される場合もあれば、操作がわずかに異なる回数で発生するように調整される場合もあれば、オーバレイ操作の処理が所望される方法で実行される限り、処理と関連付けられた多様な間隔での処理操作の発生を可能にするシステムで分散される場合もあることが理解されるべきである。
【０１０１】
上記の本発明は理解を明確にするために少し詳しく説明されてきたが、特定の変更及び修正が添付の特許請求の範囲の範囲内で実践できることが明らかになる。したがって、本実施形態は、制限的ではなく例示的と見なされるべきであり、本発明は、本明細書に示す詳細に制限されるべきではなく、説明する実施形態の範囲及び同等物の範囲内で修正され得る。
【０１０２】
ゲーム機の例示的な全体的なシステムアーキテクチャが本明細書に説明される。例のゲーム機は、本発明の実施形態を実施するためのコントローラと互換性がある場合がある、Ｓｏｎｙ（登録商標）Ｐｌａｙｓｔａｔｉｏｎ  ３（登録商標）（ＰＳ３）またはＰｌａｙｓｔａｔｉｏｎ  ４（登録商標）（ＰＳ４）エンターテインメントデバイスを含んでよい。ＰＳ３ゲーム機のシステムアーキテクチャは詳細に説明されるが、本明細書に説明する多様な実施形態は異なるゲーム機またはコンピューティングデバイスのシステムアーキテクチャにも拡張できることに留意されたい。システムユニットは、そのシステムユニットに接続可能な多様な周辺機器とともに提供される。システムユニットは、図１のクラウドゲーム機３００に類似する。
システムユニットは、ＰＳ３においてのように８コアプロセッサであってよいプロセッサ、またはＰＳ４においてのようにマルチコアプロセッサ、ＰＳ３においてのようにＲａｍｂｕｓ（登録商標）ダイナミックランダムアクセスメモリ（ＸＤＲＡＭ）ユニット、またはＰＳ４においてのようにＧＤＤＲ５等のグラフィックスダイナミックランダムアクセスメモリ、ＰＳ３においてのように専用のビデオランダムアクセスメモリ（ＶＲＡＭ）ユニット付きのリアリティシンセサイザグラフィクスユニット（例えば、５５０ＭＨｚ  ＧＰＵ）、またはＰＳ４及びＰＳ４  Ｐｒｏにおいてのように共用のグラフィクスメモリ付きの８００もしくは９００ＭＨｚ  ＧＰＵ、ならびにＩ／Ｏブリッジを含む。また、システムユニットは、ディスクからの読み取り用のＢｌｕ  Ｒａｙ（登録商標）Ｄｉｓｋ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ（ＢＤ−ＲＯＭ（登録商標））（光学）ディスクリーダ、及びＩ／Ｏブリッジを通してアクセス可能な取り外し可能スロットインハードディスクドライブ（ＨＤＤ）も含む。
任意選択で、システムユニットは、ゲームを記録するためにＩ／Ｏブリッジ、及びＰＳ４では内臓ＤＶＲを通して同様にアクセス可能である、コンパクトフラッシュ（登録商標）メモリカード、Ｍｅｍｏｒｙ  Ｓｔｉｃｋ（登録商標）メモリカード等を読み取るためのメモリカードリーダも含む。
【０１０３】
Ｉ／Ｏブリッジは、６つのユニバーサルシリアルバス（ＵＳＢ）２．０ポート、ギガビットのＥｔｈｅｒｎｅｔポート、ＩＥＥＥ  ８０２．１１  ｂ／ｇ無線ネットワーク（Ｗｉ−Ｆｉ）ポート、及び最高で７つのＢｌｕｅｔｏｏｔｈ接続までサポート可能なＢｌｕｅｔｏｏｔｈ（登録商標）無線リンクポートにも接続する。
【０１０４】
動作中、Ｉ／Ｏブリッジは、１つ以上のゲームコントローラ（ＰＳ３においてのようにＤｕａｌＳｈｏｃｋ  ３コントローラ、またはＰＳ４においてのようにＰＳ４  ＤｕａｌＳｈｏｃｋ  ４コントローラ等）からのデータを含む、すべての無線、ＵＳＢ、及びＥｔｈｅｒｎｅｔデータを処理する。例えば、ユーザーがゲームをプレイしているとき、Ｉ／ＯブリッジはＢｌｕｅｔｏｏｔｈ（登録商標）リンクを介してゲームコントローラからデータを受け取り、それを（ＰＳ３の）プロセッサまたは（ＰＳ４の）マルチコアプロセッサに向け、このことがゲームの現在の状態を相応して更新する。
さらに、他の画像センサ及び動きセンサは、ユーザーのゲームプレイ中に取り込んだデータを、それをそれぞれのプロセッサに向けるＩ／Ｏブリッジに提供する。ゲームコントローラ（例えば、ＰＳ４のゲームコントローラ）は、ゲームを共用するための共用ボタンオプション、クリック可能なタッチパッド、充電式電池（リチウムイオンまたは他のタイプ）等を含む。
【０１０５】
無線、ＵＳＢ、及びＥｔｈｅｒｎｅｔのポートは、リモコン装置、キーボード、マウス、Ｓｏｎｙ  Ｐｌａｙｓｔａｔｉｏｎ  Ｐｏｒｔａｂｌｅ（登録商標）エンターテインメントデバイス等の携帯エンターテインメントデバイス、ＥｙｅＴｏｙ（登録商標）ビデオカメラ等のビデオカメラ、マイクヘッドセット、及び取り外し可能なハードドライブ等の、ゲームコントローラに加えて他の周辺機器にも接続性も提供する。したがって、係る周辺機器は、原則的に無線でシステムユニットに接続され得る。例えば、携帯エンターテインメントデバイスは、Ｗｉ−Ｆｉのアドホック接続を介して通信してもよい。一方、マイクヘッドセットは、Ｂｌｕｅｔｏｏｔｈ（登録商標）リンクを介して通信してもよい。
【０１０６】
これらのインタフェースの提供は、Ｐｌａｙｓｔａｔｉｏｎ  ３デバイスが、デジタルビデオレコーダ（ＤＶＲ）、セットトップボックス、デジタルカメラ、ポータブルメディアプレーヤー、ボイスオーバーＩＰ電話、携帯電話、プリンタ、及びスキャナ等の他の周辺機器とも潜在的に互換性があることを意味する。
【０１０７】
さらに、レガシーメモリカードリーダがＵＳＢポートを介してシステムユニットに接続されてよく、Ｐｌａｙｓｔａｔｉｏｎ（登録商標）デバイスまたはＰｌａｙｓｔａｔｉｏｎ  ２（登録商標）デバイスにより使用される種類のメモリカードの読み取りを可能にしてもよい。
【０１０８】
本実施形態では、ゲームコントローラは、Ｂｌｕｅｔｏｏｔｈ（登録商標）リンクを介してシステムユニットと無線で通信するよう作動する。しかしながら、代わりにゲームコントローラをＵＳＢポートに接続し、それによりゲームコントローラの電池を充電するための電力も提供できる。１つ以上のアナログジョイスティック及び従来の制御ボタンに加えて、ゲームコントローラは、各軸での並進及び回転に対応して６自由度での運動に敏感である。
結果的に、ゲームコントローラのユーザーによるジェスチャ及び移動は、従来のボタンまたはジョイスティックのコマンドに加えて、または代わりにゲームに対する入力として変換され得る。任意選択で、Ｐｌａｙｓｔａｔｉｏｎ（商標）  Ｐｏｒｔａｂｌｅデバイス等の他の無線で使える周辺デバイスがコントローラとして使用されてもよい。Ｐｌａｙｓｔａｔｉｏｎ（商標）  Ｐｏｒｔａｂｌｅデバイスの場合、追加のゲーム情報または制御情報（例えば、制御命令またはライブの数）がデバイスの画面に影響される場合がある。例えばダンスマット（不図示）、ライトガン（不図示）、ステアリングホイールとペダル（不図示）、または即応クイズゲーム（やはり不図示）のための単一のまたはいくつかの大きいボタン等の特注コントローラ等の他の代替のまたは補足の制御装置も使用され得る。
【０１０９】
また、リモコン装置は、Ｂｌｕｅｔｏｏｔｈ（登録商標）リンクを介してシステムユニットと無線で通信するよう作動する。リモコン装置は、Ｂｌｕ  Ｒａｙ（商標）  Ｄｉｓｋ  ＢＤ−ＲＯＭリーダの操作、及びディスクコンテンツのナビゲーションに適した制御を含む。
【０１１０】
Ｂｌｕｅ  Ｒａｙ（商標）  Ｄｉｓｋ  ＢＤ−ＲＯＭリーダは、従来の事前に記録され、記録可能なコンパクトディスク（ＣＤ）、及びいわゆるＳｕｐｅｒ  Ａｕｄｉｏ  ＣＤに加えて、Ｐｌａｙｓｔａｔｉｏｎデバイス及びＰｌａｙＳｔａｔｉｏｎ  ２デバイスと互換性がある、コンパクトディスクリードオンリーメモリ（ＣＤ−ＲＯＭ）を読み取るよう作動する。また、Ｂｌｕ  Ｒａｙ（商標）  Ｄｉｓｋ  ＢＤ−ＲＯＭリーダは、従来の事前に記録され、記録可能なＤＶＤに加えて、Ｐｌａｙｓｔａｔｉｏｎ  ２（商標）デバイス及びＰｌａｙＳｔａｔｉｏｎ  ３  （商標）デバイスと互換性のあるデジタル多用途ディスク読み取り専用メモリ（ＤＶＤ−ＲＯＭ）を読み取るよう作動する。Ｂｌｕ  Ｒａｙ（商標）  Ｄｉｓｋ  ＢＤ−ＲＯＭリーダは、さらに従来の事前に記録され、記録可能なＢｌｕ−Ｒａｙ  Ｄｉｓｋだけではなく、Ｐｌａｙｓｔａｔｉｏｎ  ３デバイスと互換性のあるＢＤ−ＲＯＭも読み取るよう作動する。
【０１１１】
システムユニットは、ディスプレイ及び１つ以上のラウドスピーカを有するモニタまたはテレビセット等のディスプレイ及び音声出力装置に対する音声コネクタ及びビデオコネクタを通して、リアリティシンセサイザグラフィクスユニットを介してＰｌａｙｓｔａｔｉｏｎ  ３デバイスまたはＰｌａｙｓｔａｔｉｏｎ  ４デバイスにより生成または復号された音声及びビデオを供給するよう作動する。音声コネクタは、従来のアナログ出力及びデジタル出力を含んでよい。一方、ビデオコネクタは、コンポーネントビデオ、Ｓ−ビデオ、コンポジットビデオ、及び１つ以上の高精細マルチメディアインタフェース（ＨＤＭＩ（登録商標））出力を多様に含んでよい。結果的に、ビデオ出力は、ＰＡＬまたはＮＴＳＣ等のフォーマットで、または７２０ｐ、１０８０ｉ、もしくは１０８０ｐの高精細及び４Ｋ、ＨＤＲであってよい。
【０１１２】
音声処理（生成、復号等）は、プロセッサにより実行される。例えば、Ｐｌａｙｓｔａｔｉｏｎ  ３デバイスのオペレーティングシステムは、Ｄｏｌｂｙ（登録商標）５．１サラウンドサウンド、Ｄｏｌｂｙ（登録商標）Ｔｈｅａｔｒｅ  Ｓｕｒｒｏｕｎｄ（ＤＴＳ）、及びＢｌｕ−Ｒａｙ（登録商標）ディスクからの７．１サラウンドサウンドの復号をサポートする。
【０１１３】
本実施形態では、ビデオカメラは、（電荷結合素子（ＣＣＤ）画像センサも使用し得るが）ＣＭＯＳ（相補型金属酸化物半導体）画像センサ、ＬＥＤインジケータ、及び圧縮されたビデオデータを、システムユニットによる復号のための赤外線画像ベースのＭＰＥＧ（モーションピクチャーエキスパートグループ）規格等の適切なフォーマットで伝送し得るように、ハードウェアベースのリアルタイムデータ圧縮符号化装置を含む。カメラＬＥＤインジケータは、例えば逆照明（ａｄｖｅｒｓｅ  ｌｉｇｈｔｉｎｇ）条件を示すためにシステムユニットから適切な制御データに応えて照明するように配置される。ビデオカメラの実施形態は、ＵＳＢ、Ｂｌｕｅｔｏｏｔｈ（登録商標）、Ｗｉ−Ｆｉ通信ポートを介してシステムユニットに多様に接続してもよい。ビデオカメラの実施形態は、１つ以上の関連付けられたマイクを含んでよく、音声データを送信することもでき得る。ビデオカメラの実施形態では、ＣＣＤは、高精細度ビデオキャプチャに適した解像度を有する場合がある。使用中、ビデオカメラにより取り込んだ画像は、例えばゲームの中に取り込まれてよい、またはゲーム制御入力として解釈され得る。
【０１１４】
一般に、システムユニットの通信ポートの１つを介したビデオカメラまたはリモコン装置等の周辺機器とのデータ通信が無事に起こるためには、デバイスドライバ等のソフトウェアの適切な部分が提供される必要がある。デバイスドライバ技術は周知であり、当業者は、デバイスドライバまたは類似するソフトウェアインタフェースが、説明する本実施形態で必要とされる場合があることを認識していると言う以外、ここで詳細に説明しない。
【０１１５】
プロセッサは、４つの基本的な構成要素、つまりメモリコントローラ及びデュアルバスインタフェースコントローラを含む外部入出力構造、パワープロセッシングエレメントと呼ばれるメインプロセッサ、シナジスティックプロセッシングエレメント（ＳＰＥ）と呼ばれる８つのコプロセッサ、及びエレメントインターコネクトバスと呼ばれる上記構成要素を接続する円形データバスを含むアーキテクチャを有する。プロセッサの総合的な浮動小数点性能は、Ｐｌａｙｓｔａｔｉｏｎ  ２デバイスのエモーションエンジンの６．２  ＧＦＬＯＰｓと比較して、２１８ＧＦＬＯＰＳである。
【０１１６】
パワープロセッシングエレメント（ＰＰＥ）は、３．２ＧＨｚの内部クロックで実行する２方向同時マルチスレッディングＰｏｗｅｒ準拠ＰｏｗｅｒＰＣコア（ＰＰＵ）に基づいている。それは、５１２ｋＢレベル２（Ｌ２）キャッシュ、及び３２ｋＢレベル１（Ｌ１）キャッシュを含む。ＰＰＥは、３．２ＧＨｚで２５．６  ＧＦＬＯＰｓに変換されるクロックサイクルごとに８つの単独位置演算が可能である。ＰＰＥの主要な役割は、計算作業負荷の大部分を処理するシナジスティックプロセッシングエレメントのコントローラとして機能することである。動作中、ＰＰＥはジョブ待ち行列を維持し、シナジスティックプロセッシングエレメントのジョブを予定し、その進行をモニタする。結果的に、各シナジスティックプロセッシングエレメントは、その役割がジョブをフェッチし、ジョブを実行することであり、ＰＰＥと同期されるカーネルを実行する。
【０１１７】
各シナジスティックプロセッシングエレメント（ＳＰＥ）は、それぞれのシナジスティックプロセシングユニット（ＳＰＵ）、及びそれぞれのメモリフローコントローラ（ＭＦＣ）を含み、それぞれのメモリフローコントローラ（ＭＦＣ）は、同様にそれぞれのダイナミックメモリアクセスコントローラ（ＤＭＡＣ）、それぞれのメモリ管理ユニット（ＭＭＵ）、及びバスインタフェース（不図示）を含む。各ＳＰＵは、３．２ＧＨｚで計時され、２５６ｋＢローカルＲＡＭを含み、原則的に４ＧＢに拡張可能であるＲＩＳＣプロセッサである。各ＳＰＥは、単精度性能の理論上２５．６ＧＦＬＯＰＳを示す。ＳＰＵは、単一のクロックサイクルで、４つの単精度浮動小数点要素、４つの３２ビット数、８つの１６ビット整数、または１６の８ビット整数に作用することができる。同じクロックサイクルで、ＳＰＵは、メモリ動作も実行できる。ＳＰＵは、システムメモリＸＤＲＡＭ１４２６に直接的にアクセスしない。ＳＰＵにより形成される６４ビットのアドレスは、そのＤＭＡコントローラにエレメントインターコネクトバス及びメモリコントローラを介してメモリにアクセスするように命令するＭＦＣに渡される。
【０１１８】
エレメントインターコネクトバス（ＥＩＢ）は、合計で１２の参加者となる、上記のプロセッサ要素、つまりＰＰＥ、メモリコントローラ、デュアルバスインタフェース、及び８つのＳＰＥを接続する、プロセッサにとって内部の論理的に円形の通信バスである。参加者は、クロックサイクルあたり８バイトの速度で、バスに同時に読み書きを行うことができる。
上述したように、各ＳＰＥは、より長い読み取りシーケンスまたは書き込みシーケンスを予定するためのＤＭＡＣを含む。ＥＩＢは、右回り方向と左回り方向のそれぞれに２つずつ、４つのチャネルを含む。結果的に、１２の参加者の場合、任意の２つの参加者間の最も長い段階的なデータフローは、適切な方向で６ステップである。したがって、１２のスロットのための理論上のピーク瞬間ＥＩＢ帯域幅は、参加者間の仲介による完全利用の場合にはクロックあたり９６Ｂである。これは、３．２ＧＨｚ（ギガヘルツ）のクロックレートでの３０７．２ＧＢ／秒（毎秒ギガバイト）の理論上のピーク帯域幅と同じである。
【０１１９】
メモリコントローラは、Ｒａｍｂｕｓ  Ｉｎｃｏｒｐｏｒａｔｅｄにより開発されたＸＤＲＡＭインタフェースを含む。メモリコントローラは、２５．６ＧＢ／秒の理論上のピーク帯域幅でＲａｍｂｕｓ  ＸＤＲＡＭ  １４２６と接続する。
【０１２０】
デュアルバスインタフェースは、Ｒａｍｂｕｓ  ＦｌｅｘＩＯ（登録商標）システムインタフェースを含む。インタフェースは、それぞれが、５つの経路が着信であり、７つが送信である８ビット幅である１２のチャネルに編成される。これは、コントローラを介したプロセッサ及びＩ／Ｏブリッジと、コントローラを介したリアリティシンセサイザグラフィクスユニットとの間で６２．４ＧＢ／秒（３６．４ＧＢ／秒送信、２６ＧＢ／秒着信）の理論上のピーク帯域幅を提供する。
【０１２１】
プロセッサからリアリティシンセサイザグラフィクスユニットに送信されるデータは、通常、頂点を描画する、ポリゴンにテクスチャを適用する、照明条件を指定する等のコマンドのシーケンスである表示リストを含む。
【０１２２】
実施形態は、現実世界のユーザーをよりうまく識別するために、及びアバターまたはシーンのアクティビティを指示するために深度データを取り込むことを含んでよい。オブジェクトは、人物が保持している何かである場合もあれば、その人物の手である場合もある。この説明では、用語「深度カメラ」及び「３次元カメラ」は、２次元ピクセル情報だけではなく距離または深度の情報も入手できる任意のカメラを指す。例えば、深度カメラは、距離情報を入手するために制御された赤外線照明を利用できる。別の例示的な深度カメラは、２つの標準的なカメラを使用し、距離情報を三角法で測るステレオカメラ対である場合がある。同様に、用語「深度検知デバイス」は、２次元ピクセル情報だけではなく距離情報も入手できる任意のタイプのデバイスを指す。
【０１２３】
３次元画像における最近の進展は、リアルタイムインタラクティブコンピュータ動画の可能性の高まりのための門戸を開放した。特に、新しい「深度カメラ」は、通常の２次元ビデオ画像に加えて３次元を取り込み、マッピングする能力を提供する。新しい深度データにより、本発明の実施形態は、コンピュータにより生成されたオブジェクトを、他のオブジェクトの後方も含め、リアルタイムでビデオシーンの中の多様な位置に配置することを可能にする。
【０１２４】
さらに、本発明の実施形態は、ユーザーにリアルタイムのインタラクティブゲーム経験を提供する。例えば、ユーザーは、リアルタイムでコンピュータにより生成された多様なオブジェクトとインタラクションをインタラクションを行うことができる。さらに、ビデオシーンは、ユーザーの経験を強化するためにリアルタイムで改変できる。例えば、コンピュータにより生成されたコスチュームをユーザーの衣服の上に挿入することができ、ビデオシーンの中に仮想の陰影を投射するためにコンピュータにより生成した光源を利用できる。
したがって、本発明の実施形態及び深度カメラを使用し、ユーザーは、自身のリビングルームの中でインタラクティブ環境を経験できる。通常のカメラと同様に、深度カメラは、ビデオ画像を含む複数のピクセルの２次元データを取り込む。これらの値は、ピクセルのための色値、概してピクセルごとの赤、緑、及び青（ＲＧＢ）の値である。このようにして、カメラにより取り込んだオブジェクトは、モニタ上で２次元オブジェクトとして表示される。
【０１２５】
また、本発明の実施形態は、分散画像処理構成も意図する。例えば、本発明は、例えばＣＰＵ内、またはＣＰＵ及び他の１つの要素内等の１つの場所または２つの場所でも起こる、取り込んだ画像及び表示画像の処理に制限されない。例えば、入力画像処理は、処理を実行できる関連付けられたＣＰＵ、プロセッサ、またはデバイスにおいて、まさにすぐに起こる場合がある。つまり、画像処理の基本的にすべてを、相互接続されたシステム全体で分散できる。したがって、本発明は、任意の特定の画像処理ハードウェア回路及び／またはソフトウェアに制限されない。また、本明細書に説明する実施形態は、一般的なハードウェア回路及び／またはソフトウェアの任意の特定の組み合わせにも、処理構成要素により実行される命令のための任意の特定のソースにも制限されない。
【０１２６】
上記実施形態を念頭に、本発明が、コンピュータシステムに記憶されるデータを含む多様なコンピュータ実装操作を利用し得ることが理解されるべきである。これらの動作は、物理的な量の物理的な操作を要する操作を含む。通常、必ずではないが、これらの量は、記憶する、転送する、結合する、比較する、及びそれ以外の場合操作することが可能な電気信号または磁気信号の形をとる。さらに、実行される操作は、多くの場合、作り出す、識別する、決定する、または比較する等の用語の中で参照される。
【０１２７】
上述の発明は、ハンドヘルドデバイス、マイクロプロセッサシステム、マイクロプロセッサベースのまたはプログラム可能な家庭用電化製品、ミニコンピュータ、メインフレームコンピュータ等を含む他のコンピュータシステム構成で実践され得る。また、本発明はタスクが、通信網を通してリンクされる遠隔処理装置により実行される分散コンピューティング環境で実践されてもよい。
【０１２８】
また、本発明は、コンピュータ可読媒体上でコンピュータ可読コードとして実現される場合もある。コンピュータ可読媒体は、電磁波キャリアを含む、その後コンピュータシステムにより読み取ることができるデータを記憶できる任意のデータストレージデバイスである。コンピュータ可読媒体の例は、ソリッドステートドライブ（ＳＳＤ）、ハードディスクドライブ（ＨＤＤ）、デジタルビデオディスク（ＤＶＤ）ドライブ、Ｂｌｕｒａｙ（登録商標）等、ネットワークアタッチトストレージ（ＮＡＳ）、読み取り専用メモリ、ランダムアクセスメモリ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、磁気テープ、ならびに他の光学データストレージデバイス及び非光学データストレージデバイス等のハードドライブを含む。また、コンピュータ可読媒体は、コンピュータ可読コードが分散式で記憶され、実行されるように、ネットワーク結合コンピュータシステムを介して分散される場合もある。
【０１２９】
上記の本発明は理解を明確にするために少し詳しく説明されてきたが、特定の変更及び修正が添付の特許請求の範囲の範囲内で実践され得ることが明らかになる。したがって、本実施形態は、制限ではなく例示的として見なされるべきであり、本発明は、本明細書に示す詳細に制限されるべきではなく、添付の特許請求の範囲の範囲及び同等物の範囲内で修正され得る。
【図１】
2020534041.tif 000003
【図１Ａ】
2020534041.tif 000004
【図１Ｂ】
2020534041.tif 000005
【図１Ｃ】
2020534041.tif 000006
【図１Ｄ】
2020534041.tif 000007
【図１Ｅ】
2020534041.tif 000008
【図１Ｆ】
2020534041.tif 000009
【図２Ａ】
2020534041.tif 000010
【図２Ｂ】
2020534041.tif 000011
【図２Ｃ】
2020534041.tif 000012
【図２Ｄ】
2020534041.tif 000013
【図２Ｅ】
2020534041.tif 000014
【図２Ｆ】
2020534041.tif 000015
【図２Ｇ】
2020534041.tif 000016
【図３】
2020534041.tif 000017
【図３Ａ】
2020534041.tif 000018
【図４】
2020534041.tif 000019
【図５Ａ】
2020534041.tif 000020
【図５Ｂ】
2020534041.tif 000021
【図５Ｃ】
2020534041.tif 000022
【図５Ｄ】
2020534041.tif 000023
【図６Ａ】
2020534041.tif 000024
【図６Ｂ】
2020534041.tif 000025
【図７】
2020534041.tif 000026
【図８】
2020534041.tif 000027
【国際調査報告】
2020534041.tif 000028
2020534041.tif 000029
2020534041.tif 000030
2020534041.tif 000031
2020534041.tif 000032