(57)【要約】【課題】走り競争を実現するシステムを提供する。【解決手段】撮影画像取得部２１０は、駆動機構を備えた第１装置を撮影している画像を取得する。動作データ取得部２１２は、駆動機構を備えた第２装置の動作データを取得する。仮想ロボット制御部２１４は、取得した動作データにもとづいて第２装置に対応する仮想ロボットを制御して、コースを走らせる。画像生成部２１６は、第１装置を撮影した画像に、第２装置に対応する仮想ロボットを重ね合わせた画像を生成する。画像出力部２１８は、重ね合わせた画像をディスプレイに出力する。【選択図】図８
2022003549.tif 000002
【特許請求の範囲】
【請求項１】
走り競争を実現するエンターテインメントシステムであって、
駆動機構を備えた第１装置を撮影している画像を取得する撮影画像取得部と、
駆動機構を備えた第２装置の動作データを取得する動作データ取得部と、
取得した動作データにもとづいて第２装置に対応する仮想オブジェクトを制御して、コースを走らせる制御部と、
第１装置を撮影した画像に、第２装置に対応する仮想オブジェクトを重ね合わせた画像を生成する画像生成部と、
重ね合わせた画像をディスプレイに出力する画像出力部と、
を備えることを特徴とするエンターテインメントシステム。
【請求項２】
前記制御部は、仮想空間において、第２装置に対応する仮想オブジェクトと、別の仮想オブジェクトとの衝突判定を実施する、
ことを特徴とする請求項１に記載のエンターテインメントシステム。
【請求項３】
前記制御部は、動作データにもとづいて第２装置の仮想空間における位置をリアルタイムで管理し、第２装置に対応する仮想オブジェクトと、別の仮想オブジェクトとの衝突判定を実施する、
ことを特徴とする請求項２に記載のエンターテインメントシステム。
【請求項４】
前記制御部は、仮想空間において第２装置に対応する仮想オブジェクトと別の仮想オブジェクトとが接触したことにより受ける仮想的な外力を導出して、当該外力を受けた状態を再現するように前記第２装置を駆動する、
ことを特徴とする請求項２または３に記載のエンターテインメントシステム。
【請求項５】
第２装置に対応する仮想オブジェクトは、第２装置のＣＧモデルである、
ことを特徴とする請求項１から４のいずれかに記載のエンターテインメントシステム。
【請求項６】
第１装置のユーザおよび第２装置のユーザは、リモートコントローラでそれぞれ第１装置および第２装置を走らせる、
ことを特徴とする請求項１から５のいずれかに記載のエンターテインメントシステム。
【請求項７】
走り競争のスタート前、前記制御部は、実空間において走り競争のコースを特定する、
ことを特徴とする請求項１から６のいずれかに記載のエンターテインメントシステム。
【請求項８】
前記制御部は、スタートラインおよびゴールラインを特定する、
ことを特徴とする請求項７に記載のエンターテインメントシステム。
【請求項９】
走り競争のスタート前、前記制御部は、スタートラインに配置された第１装置の横に、第２装置に対応する仮想オブジェクトを並べる、
ことを特徴とする請求項８に記載のエンターテインメントシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットシステムにおいて利用する技術に関する。
【背景技術】
【０００２】
従来より、様々なタイプのロボットの研究、開発が行われている。特許文献１は、人間型の脚式移動ロボットによる歩行制御の様々な学習手法を開示する。特許文献１では学習手法の一つとして、初期に与えられた歩行軌道では安定な歩行ができないような場合に、強化学習の枠組みを用いて歩行が可能となるような安定歩行軌道の学習法について考察している。特許文献２は、安全性に優れた移動機構を有する球型ロボットを開示する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００５−９６０６８号公報
【特許文献２】特開２０００−２１８５７８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
技術の発達によりロボットの機能は日々進化している。市販モデルのロボットとして、従来は四足歩行タイプのペット型ロボットが主流であったが、近年ではダンスなど様々な動作を行うことのできる人型ロボットが流通している。また計算機の処理能力の向上および学習モデルの改良によって、ディープラーニングが実用化されるまでになり、ロボットにＡＩ（artificial intelligence：人工知能）を搭載することで、ロボットが自身で学習することにより、既存機能の向上や新たな機能の獲得を実現できるようになることが期待されている。本発明者は、このようなロボットおよび周辺技術の進化に着目し、ロボットを利用したエンターテインメントを実現するための要素となる技術を考えるに至った。
【０００５】
本発明の目的は、ロボットを利用したエンターテイメントシステムにおいて、エンターテイメント性を高めるための技術を提供することにある。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、本発明のある態様の情報処理装置は、ロボット装置のリアルタイムの動きを表すための動作データを取得する取得部と、当該ロボット装置の動作データと、他のロボット装置の動作データとを用いて、同じ仮想空間内で複数のロボット装置に対応する複数の仮想ロボットを動かす仮想ロボット制御部と、複数の仮想ロボットが動いている仮想空間の画像を生成する画像生成部とを備える。
【０００７】
本発明の別の態様もまた、情報処理装置である。この情報処理装置は、動いている第１ロボット装置を撮影している画像を取得する撮影画像取得部と、第２ロボット装置の動きを表すための動作データを取得する動作データ取得部と、第１ロボット装置を撮影した画像に、第２ロボット装置に対応する仮想ロボットを重ね合わせた画像を生成する画像生成部と、重ね合わせた画像をディスプレイに出力する画像出力部とを備える。
【０００８】
本発明のさらに別の態様は、仮想空間の画像生成方法であって、ロボット装置のリアルタイムの動きを表すための動作データを取得するステップと、当該ロボット装置の動作データと、他のロボット装置の動作データとを用いて、同じ仮想空間内で複数のロボット装置に対応する複数の仮想ロボットを動かすステップと、複数の仮想ロボットが動いている仮想空間の画像を生成するステップとを備える。
【０００９】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、コンピュータプログラム、コンピュータプログラムを読み取り可能に記録した記録媒体、データ構造などの間で変換したものもまた、本発明の態様として有効である。
【図面の簡単な説明】
【００１０】
【図１】実施例のエンターテインメントシステムの概略構成を示す図である。
【図２】ロボット装置の外観例を示す図である。
【図３】ロボット装置の入出力系統を示す図である。
【図４】処理部の機能ブロックを示す図である。
【図５】ロボット装置が走っているときの姿勢の例を示す図である。
【図６】サーバ装置の機能ブロックを示す図である。
【図７】端末装置に表示される競技会場の例を示す図である。
【図８】端末装置の機能ブロックを示す図である。
【図９】ロボット装置がサッカーをしている様子を示す図である。
【図１０】移動体の機能ブロックを示す図である。
【発明を実施するための形態】
【００１１】
図１は、実施例のエンターテインメントシステム１の概略構成を示す。エンターテインメントシステム１は、ロボット装置２０と、ロボット装置２０が参加する仮想世界を構築するサーバ装置１０と、ロボット装置２０が参加する仮想世界をディスプレイに表示する端末装置１２とを備える。サーバ装置１０、端末装置１２、ロボット装置２０は、それぞれ情報処理装置として構成されてよい。ロボット装置２０および端末装置１２は、アクセスポイント（ＡＰ）３を介して、インターネットなどのネットワーク２経由でサーバ装置１０と通信可能に接続する。
【００１２】
ロボット装置２０は、たとえば人型ロボットとして構成されて、ユーザにより所有される。ロボット装置２０はオーナであるユーザを、画像解析による顔認証や音声解析による声紋認証などによって認識できることが好ましい。ロボット装置２０がオーナを認識することで、たとえばオーナからの指示のみを受け付け、他人からの指示を受け付けないように行動できる。ロボット装置２０は人間と同じような部位を持ち、各部位の繋ぎ部分には、アクチュエータを搭載した関節部分が設けられる。ロボット装置２０はアクチュエータを駆動することで姿勢のバランスを保ちつつ、様々な機能を実行する。
【００１３】
ロボット装置２０は、歩いたり、走ったりするなどの基本機能については、各アクチュエータの制御手法を記述したプログラムモジュール、つまり制御態様を事前にインストールされている。またロボット装置２０は、サーバ装置１０などの外部装置から、新しい機能を実行するためのプログラムモジュールをダウンロードしてインストールすることで、新しい機能を獲得できる。
【００１４】
実施例のロボット装置２０は学習することで、基本機能を含む既存機能を改良したり、また、これまでできなかった新しい機能を獲得できるようになる。たとえば「走る」という基本機能に関して関節部分の各アクチュエータの制御態様が事前にインストールされているが、ユーザが「速く走る」ためのコツをコーチングすると、ロボット装置２０がコーチングされた内容にしたがって、基本機能よりも「速く走る」機能を獲得することを目的とした学習を行う。このときロボット装置２０は「走る」基本機能を実行するための制御態様を改良することで、「速く走る」機能を実現するための制御態様を導出し、「速く走る」機能を獲得していく。なお基本機能の制御態様の改良により「速く走る」機能を獲得できなければ、ロボット装置２０は、基本機能の制御態様を無視して、すなわち「走る」機能のプログラムモジュールを利用することなく、「速く走る」ための制御態様を一から学習により求めてもよい。
【００１５】
図１には、１台のロボット装置２０しか示していないが、実施例では、複数台の同じスペックのロボット装置２０がエンターテインメントシステム１に参加することを想定している。たとえばプリセットされた「走る」機能により、ユーザのロボット装置２０が１メートル（ｍ）を約２秒で走ることができる場合、他の同一スペックのロボット装置２０も同じく１ｍを約２秒で走るように構成されている。
【００１６】
エンターテインメントシステム１において、自分のロボット装置２０を、より速く走らせようと思うユーザは、ロボット装置２０に速く走るための走り方（コツ）を指導する。実施例では基本機能を改良したり、また新しい機能を覚えさせるようにするためのユーザによる指導を「コーチング」と呼ぶ。ロボット装置２０は様々な動作モードをもち、「コーチングモード」に入ることで、ユーザからコーチングを受けられ、「学習モード」に入ることで、受けたコーチング内容にしたがって機械学習を行う。
【００１７】
たとえばユーザから「今よりも速く走れるようになる」とするミッション（タスク）を与えられた場合、ロボット装置２０は、１ｍを２秒未満で走れるようになれば、ミッション達成となる。ロボット装置２０は、１ｍを２秒未満で走ることができたときの各アクチュエータの制御態様を記録して、学習を終了してよい。
【００１８】
しかしながら、ユーザから「１ｍを１．５秒以下で走れるようになる」とするミッションを与えられた場合、ユーザによるコーチングが適切であったとしても、ミッション難易度が高いために、必ずしもミッションを達成できるとは限らない。なおユーザによるコーチングが適切でない場合には、コーチング内容を反映した機械学習を行っても、逆にタイムが遅くなることもある。このようにロボット装置２０は、与えられたミッションを達成できるように試行錯誤を繰り返すが、たとえば試行上限回数内にミッションを達成できなかった場合には、ユーザにその旨を知らせることが好ましい。ユーザは通知を受けることで、コーチング内容を変更する契機を得る。
【００１９】
ロボット装置２０が基本機能の性能向上に成功すると、ユーザは、自分のロボット装置２０を、他のユーザのロボット装置２０と競わせたくなる。たとえばエンターテインメントシステム１の運営者が体育館などのスペースを借りて、ロボットによる「５メートル走」の大会を開催すれば、ユーザはロボット装置２０を会場に持ち込んで、５メートル走大会に参加させられる。複数のロボット装置２０はスタートラインに並べられて、スタートの合図で５ｍ先のゴールに向けて一斉にスタートする。スタートの合図は「ヨーイドン」のかけ声によって行われてもよい。たとえばユーザがロボット装置２０のスタートスイッチを手動で、または無線で操作することで、ロボット装置２０が走り出してよい。このとき「走る」機能に最適な改良が加えられたロボット装置２０が、どのロボットよりも速くゴールし、そのユーザは栄冠を手にする。
【００２０】
このような大会は、学習の成果を試すための絶好の機会であり、勝ち負けがついてくるために、ユーザのコーチングに対するモチベーションが高められる。しかしながら会場から遠い場所に住んでいるユーザにとっては、会場までロボット装置２０を持ち運ぶことは大変であり、手軽に参加できるとは言い難い。
【００２１】
そこでエンターテインメントシステム１では、サーバ装置１０が、複数のロボット装置２０が競技を行うための仮想的な競技場を提供する。この仮想的な競技場では、それぞれのユーザおよびロボット装置２０が、自宅にいながらにして競技大会に参加できる。仮想的な競技場の一つの例は、ロボットが「５メートル走」の大会を実施するための会場である。サーバ装置１０は、スタートラインと、スタートラインから５ｍ先のゴールラインと、各ロボットの走行レーンを地表に描いた３次元の競技場を用意し、参加する各ロボット装置２０のＣＧ（computer graphics：コンピュータグラフィックス）モデルをスタートラインに並べる。以下、ロボット装置２０のＣＧモデルを、「仮想ロボット」と呼ぶこともある。競技場の様子を示す画像データは、サーバ装置１０から端末装置１２に配信され、ユーザは、端末装置１２のディスプレイを通じて、自分のロボット装置２０がスタートラインについている様子を見ることができる。
【００２２】
各ユーザは、それぞれの自宅で、ロボット装置２０が５ｍ走れるスペースを確保し、サーバ装置１０から提供されるスタートの合図を待機する。なおロボット装置２０の走りは、接地面（床面）の影響を受ける。そのため、公平を期すべく５ｍレース用マットが販売されて、各ユーザは、マット上でロボット装置２０を走らせることがルール化されてもよい。
【００２３】
ユーザは、端末装置１２からスタートの合図、この例では「ヨーイドン」のかけ声を聞くと、ロボット装置２０のスタートスイッチを手動で、またはリモートコントローラで操作して、ロボット装置２０を走り出させる。リモートコントローラの機能は、端末装置１２により実現されてもよい。なお、スタートの合図は、サーバ装置１０からロボット装置２０に直接供給されて、ロボット装置２０が、サーバ装置１０から合図を受けると、自動的に走り出すようにプログラミングされていてもよい。
【００２４】
各ロボット装置２０の走っている状態を示す動作データは、ロボット装置２０または端末装置１２からサーバ装置１０にリアルタイムで送信される。走っている状態を示す動作データは、加速度センサやジャイロセンサなどの検出データを含んでよく、またロボット装置２０のカメラが撮影した画像を含んでもよい。いずれにしても動作データは、ロボット装置２０がスタートしてから走った累積距離を特定できるデータであることが好ましい。また動作データは、ロボット装置２０の姿勢を仮想ロボットで再現するためのアクチュエータの駆動データを含んでもよい。
【００２５】
サーバ装置１０は、ロボット装置２０の動作データを、対応する仮想ロボットの走りに反映して、複数の仮想ロボットによる競争をシミュレーションする。サーバ装置１０は、ロボット装置２０が現実世界で走っている速度に相当する速度で、仮想競技場で仮想ロボットを走らせ、したがって現実世界で５メートルを最速で走りきったロボット装置２０の仮想ロボットが、仮想競技場においてゴールラインに最速で到達する。各ユーザは、サーバ装置１０から競技映像を端末装置１２に配信されて、自分のロボット装置２０に対応する仮想ロボットの活躍を観戦できる。
【００２６】
以上のようにエンターテインメントシステム１では、ユーザがロボット装置２０にコーチングを行い、ロボット装置２０がコーチング内容にしたがってトレーニングする環境を提供するとともに、そのトレーニング成果を発揮できる環境を提供する。以下では、まずユーザのコーチングについて説明する。
【００２７】
図２は、人型ロボットであるロボット装置２０の外観例を示す。ロボット装置２０は、人間と同じように、頭部、頸部、体幹（胸部、腹部、背部）、上肢、下肢を有し、上肢は上腕、前腕および手を、下肢は大腿、下腿および足を有する。各部位の繋ぎ部分には、アクチュエータを搭載した関節部分が設けられる。
【００２８】
図３は、ロボット装置２０の入出力系統を示す。処理部３０は、音声データ、画像データ、センサデータなどの各種データや、命令を処理して出力するメインプロセッサである。処理部３０は、駆動機構３４を制御してロボット装置２０を動かし、またスピーカ３６から音声を出力し、発光部３８を発光させる。駆動機構３４は、ロボット装置２０の可動部である関節部分に組み込まれたモータおよびモータ間を連結するリンク機構、モータの回転角を検出する回転角センサを含み、モータが駆動されることで、ロボット装置２０の腕や脚、首などの関節部分が動かされる。
【００２９】
マイク２２は周囲の音声を集音して音声信号に変換し、カメラ２４は周囲を撮影して、撮影画像を取得する。センサ２６は、ユーザによる接触を検知するタッチセンサや、３軸の加速度センサ、ジャイロセンサ、測位センサなどを含む。記憶部２８は、処理部３０が処理するデータや命令などを記憶する。特に実施例では処理部３０が、学習により得られた制御態様を記憶部２８に蓄積する。通信部３２はアンテナを介して、処理部３０から出力されるデータを無線通信によりサーバ装置１０に送信し、またサーバ装置１０から各種データおよび情報を無線通信により受信し、処理部３０に出力する。たとえば処理部３０は、新しい動作機能を実行するためのプログラムモジュールを、通信部３２を介してダウンロードしてインストールしてもよい。
【００３０】
図４は、処理部３０の機能ブロックを示す。処理部３０は、受付部４０、モード設定部４２および制御部４４を備える。受付部４０は、ユーザからの指示や、サーバ装置１０からの通知を受け付ける。図４において、さまざまな処理を行う機能ブロックとして記載される各要素は、ハードウェア的には、回路ブロック、メモリ、その他のＬＳＩで構成することができ、ソフトウェア的には、メモリにロードされたプログラムなどによって実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。
【００３１】
ロボット装置２０は、複数の動作モード群の中から選択された動作モードで動作する。動作モードには、自律的に行動する自律行動モード、ユーザによるコーチングを受け付けるコーチングモード、自律的に学習する学習モード、ユーザからの指示により行動する指定行動モードが少なくとも含まれる。
【００３２】
受付部４０が、ユーザまたはサーバ装置１０からモード選択指示を受け付けると、モード設定部４２が、動作モード群の中から、いずれかの動作モードを設定する。なおモード設定部４２は、モード選択指示に限らず、受付部４０が他の種類の指示を受け付けた場合であっても、その指示に応じた動作モードを自動設定してよい。モード設定部４２は、設定した動作モードに応じた発光色で、発光部３８を点灯させることが好ましい。ユーザは発光色を見ることで、現在の動作モードを確認できる。
【００３３】
受付部４０は、ユーザからのモード選択指示を、ロボット操作用のリモートコントローラから受け付けてもよく、またユーザの発声を音声解析することで受け付けてもよい。また受付部４０は、タッチセンサにより所定の接触が検知されたときに、モード選択指示を受け付けてもよい。以下では、受付部４０が「コーチングモード」の選択指示を受け付け、モード設定部４２が動作モードとしてコーチングモードを設定した場合について説明する。
【００３４】
実施例では、ロボット装置２０に対してミッションが与えられる。ミッションは「タスク」や「課題」と言い換えることもでき、ロボット装置２０による学習の対象となる。ユーザは、ロボット装置２０がこれまで実行できていない機能の獲得を、ミッションとしてロボット装置２０に与えてよく、以下では、「今よりも速く走れるようになる」とするミッションが、ロボット装置２０に与えられた場合について説明する。なおサーバ装置１０が所定のミッションをエンターテインメントシステム１に接続する全てのロボット装置２０に与えて、ロボット装置２０の学習成果を競う大会を後日開催するようにしてもよい。
【００３５】
記憶部２８には、プリセットされたデフォルト機能として搭載されている「走る」機能の制御態様が記憶されている。制御態様は、時系列に沿った駆動機構３４の駆動タイミングを含む手順を示したものであり、制御部４４が、制御態様にしたがって駆動機構３４を駆動すると、ロボット装置２０は走りだす。
【００３６】
図５（ａ）〜（ｄ）は、ロボット装置２０が走っているときの姿勢の例を示す。制御部４４が制御態様にしたがってロボット装置２０を走らせると、ロボット装置２０は、図５（ａ）に示す姿勢、図５（ｂ）に示す姿勢、図５（ｃ）に示す姿勢、図５（ｄ）に示す姿勢と、順番に姿勢を変化させて、走る動作を行う。ロボット装置２０は１ｍを２秒で走り、つまりデフォルトの機能としてロボット装置２０は０．５ｍ／秒で走る基本機能を有している。
【００３７】
ユーザは、ロボット装置２０に速い走り方をコーチングするために、姿勢に関する指示をロボット装置２０に与える。人間が速く走るためのコツとして、たとえば強い前傾姿勢を保つ、頭部を動かさない、大腿部をできるだけ上げるなど、姿勢にまつわるものが知られている。ユーザは、人型ロボットであるロボット装置２０に対して、速く走るための姿勢に関する指示を与え、制御部４４は、コーチングモードにおいて、ユーザから姿勢に関する指示を受け付けて、記憶部２８に記憶させる。
【００３８】
この例でユーザは、ロボットが速く走るために必要と考える複数の姿勢に関する指示をロボット装置２０に提供する。姿勢に関する指示は、とるべき姿勢を特定するものであってよい。図５（ａ）〜（ｄ）に４つの姿勢を示しているが、ユーザは、この４つの姿勢をそれぞれ速く走るために変更し、変更した姿勢を特定する情報をロボット装置２０に提供してよい。デフォルト機能で走るときのロボット装置２０の姿勢を、さらに前傾にした方が速く走れると考えれば、ユーザは、４つの姿勢のそれぞれを、少しだけ前傾にした姿勢をとるべきことを、ロボット装置２０に入力する。制御部４４は、ユーザから入力された複数の姿勢に関する指示を受け付けて、記憶部２８に記憶させる。なお当然のことながらユーザは、速く走るための５つ以上の姿勢を特定する情報を時系列順にロボット装置２０に入力し、制御部４４が記憶部２８に記憶させてよい。
【００３９】
ユーザは、コーチングモードで姿勢に関する指示を行った後、ロボット装置２０の動作モードを「学習モード」に切り替えるモード選択指示をロボット装置２０に入力する。受付部４０が、「学習モード」のモード選択指示を受け付けると、モード設定部４２が動作モードとして学習モードを設定する。
【００４０】
学習モードにおいて制御部４４は、受付部４０がコーチングモードにおいて受け付けた姿勢に関する指示を、ロボット装置２０の姿勢に反映しながら、「今よりも速く走れるようになる」というミッションを達成するための駆動機構３４の制御態様を学習することで導出する。任意の種類の学習アルゴリズムが、与えられたミッションに応じて単一的または複合的に適用されてよく、具体的には教師あり学習、教師なし学習、強化学習などが適用されてよい。
【００４１】
上記した例では、コーチングモードでロボット装置２０は、図５（ａ）〜（ｄ）に示した４つの姿勢を少しだけ前傾にするべきことを、ミッションを達成するための姿勢に関する指示として受け付ける。実施例でユーザは、走る一連の動作における全ての姿勢を入力するわけではなく、あくまでも、一連の動作のなかで切り出したキーフレームの一部の姿勢のみを入力するのである。そのため制御部４４は、少なくとも、その間の姿勢を補間するような強化学習を行う必要がある。
【００４２】
なお「走る」動作に関しては、既にデフォルト機能として制御態様が組み込まれているので、制御部４４は、デフォルトの制御態様を参考情報として利用してよい。また外部のサーバ装置１０などから、速く走るための姿勢情報を取得するようにしてもよい。制御部４４は、ユーザにより指示された姿勢に関する指示を、ロボット装置２０の姿勢に反映しつつ、参考情報を利用して制御態様を効率的に導出することが好ましい。
【００４３】
ユーザによる指示の入力手法として、ユーザは、ロボット装置２０の関節部分を手で動かして、ユーザが速く走れると考える姿勢をロボット装置２０にとらせ、その姿勢を覚え込ませる。具体的にコーチングモードでは、ユーザがロボット装置２０をポージングさせて、所望の姿勢をとらせると、制御部４４が、そのときの駆動機構３４における関節角度等の姿勢を定めるための情報を、姿勢情報として記憶部２８に記憶させる。このときユーザは、姿勢情報を記憶部２８に記憶させるためのトリガを、たとえばリモートコントローラからロボット装置２０に与えてもよい。結果として、この姿勢情報は、ユーザの好みや感性を反映したものとなる。
【００４４】
制御部４４は、ユーザから、とるべき複数の姿勢に関する指示を受け付けて、記憶部２８に記憶させる。ユーザが、一連の動作において多くの姿勢を指示することで、制御部４４は、一連の動作における姿勢を数多く特定できるため、学習効率が高まることになる。制御部４４は、複数の姿勢を、そのとるべき順番にしたがって受け付け、記憶部２８に記憶させる。たとえば図５（ａ）〜（ｄ）に示す一連の姿勢において、ユーザは、それぞれを少しだけ前傾させた姿勢を、この順番にロボット装置２０にとらせると、制御部４４は、各姿勢を再現するための姿勢情報を記憶部２８に記憶させる。
【００４５】
学習モードで制御部４４は、受け付けた複数の姿勢を順番にとりながら、その間の動きを補間する学習を行う機能をもつ。そのためユーザは、全ての姿勢をコーチングすることなく、速く走るために重要と考えるキーとなる姿勢のみをコーチングすればよい。なお学習モードにおいて、制御部４４は、とりあえずユーザにより指定された姿勢と、その間を補間するように簡単なアルゴリズムで計算した姿勢をとって走るように、駆動機構３４を制御してみる。学習が十分でないため、多くの場合は、ロボット装置２０が転倒することになるが、その時点で走る状態をユーザに見せることで、ユーザは、さらなるコーチングを行う必要があるか判断できる。
【００４６】
なお制御部４４は、コーチングモードにおいて受け付けた姿勢に関する指示をロボット装置２０の姿勢に反映してミッションを達成できるか否かをシミュレートするシミュレーション機能を備えてよい。このシミュレーション機能は、動作時におけるイナーシャ等も計算して、絶対にとることのできない姿勢であるか否かを判断できる。たとえばコーチングモードでユーザが、前傾しすぎた姿勢をロボット装置２０にとらせた場合、当該姿勢をとると、確実に転倒することをシミュレーション機能は判定できる。実際にロボット装置２０が試してみて転倒すると、損傷のリスクが上がるため、確実に転倒することが分かっている姿勢を経由する制御態様を試すことに意味はない。そこで制御部４４は、シミュレーション機能により動作不能であることが予測されると、動作不能であることに関する情報を出力して、ユーザに知らせることが好ましい。たとえば、この情報は、スピーカ３６から出力してよい。
【００４７】
なお制御部４４は、シミュレーション機能により動作不能であることが予測されると、動作不能の要因となる姿勢に関する情報を無視してよい。つまり、確実に転倒する姿勢は無視して、それ以外のコーチングされた姿勢を用いて、学習を行ってもよい。
【００４８】
学習モードにおいて、ユーザは、さらなるコーチングが必要と感じると、コーチングモードへのモード変更指示を入力する。これによりモード設定部４２は、動作モードをコーチングモードに変更する。
【００４９】
以上のように、コーチングモードでは、姿勢に関する指示を、ユーザが直接ロボット装置２０をポージングさせることで入力できる。他の入力手法として、ユーザは、実際にロボット装置２０の前でお手本となる走り方で走り、ロボット装置２０をコーチングしてもよい。このときロボット装置２０は、カメラ２４でユーザの走りを撮影し、制御部４４が、ユーザの姿勢を画像解析して、自身の走りに反映させる教師あり学習を行ってよい。またユーザは、音声により姿勢に関する指示をロボット装置２０に入力してよい。音声による指示入力は学習モードにおいても実施できることが好ましい。たとえばロボット装置２０が速く走るための学習中に、ユーザは、もっと顔を上げて、または、もっと前傾にして、というような音声で指示する。ロボット装置２０は、マイク２２でユーザの発話を受け付け、制御部４４は、発話内容を解析して、瞬時に、自身の動きに反映できることが好ましい。
【００５０】
以上のようにして、ユーザは、速い走り方をコーチングし、ロボット装置２０は、試行錯誤を繰り返すことで、速く走るための制御態様を学習する。エンターテインメントシステム１においてサーバ装置１０は、様々な種類の仮想的な競技大会を開催する。その競技大会の一つが「５ｍ走」であり、ユーザは、腕試しを兼ねて、速く走れるようになった自分のロボット装置２０を、大会にエントリする。
【００５１】
ユーザは、自分が所有するロボット装置２０をサーバ装置１０に事前に登録しておくことで、ロボット装置２０を大会に参加させることができる。サーバ装置１０は、ロボット装置２０をユーザに紐付けて登録し、ロボット装置２０に対応するＣＧモデルである仮想ロボットを作成しておく。
【００５２】
サーバ装置１０は、３次元のＣＧモデルである仮想ロボットを、現実世界のロボット装置２０と同じ外観をもつ仮想オブジェクトモデルとして作成してよいが、異なる外観の仮想オブジェクトモデルとして作成してもよい。エンターテインメントシステム１では、複数の仮想ロボットが、対応するロボット装置２０の実際の走りに合わせて、仮想競技場で５ｍ走の競技を行うが、現実世界で流通するロボット装置２０の外観は、すべて同じであることも考えられる。そのため、仮想ロボットを同じ外観のモデルとして作成すると、仮想競技場で、ユーザが自分のロボットを見分けられない可能性があるため、各ユーザが仮想オブジェクトの外観をカスタマイズできるようにしてもよい。ユーザは端末装置１２を通じて、仮想競技場に設置された５ｍのコースを、仮想ロボットが走り抜ける映像を見ることができる。
【００５３】
図６は、サーバ装置１０の機能ブロックを示す。サーバ装置１０は、処理部１００、通信部１０２および記憶部１０４を備え、処理部１００は、取得部１１０、仮想ロボット制御部１１２および画像生成部１１４を有する。仮想ロボット制御部１１２は、仮想の競技会場において、複数の仮想ロボットを競技させる。図６において、さまざまな処理を行う機能ブロックとして記載される各要素は、ハードウェア的には、回路ブロック、メモリ、その他のＬＳＩで構成することができ、ソフトウェア的には、メモリにロードされたプログラムなどによって実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。
【００５４】
記憶部１０４は、エンターテインメントシステム１に参加するユーザおよびロボットに関する情報を記憶する。ユーザに関する情報は、ユーザが所有するロボット装置２０および端末装置１２のアドレス情報や、ユーザ識別情報（ユーザＩＤ）、ユーザの氏名、住所などの個人情報を含む。ロボットに関する情報は、ロボット装置２０に対応付けられる仮想オブジェクトの形状および外観データ、腕や脚、首などの関節の位置や、その可動範囲など、仮想ロボットを仮想空間にて動作および表示させるために必要なモデルデータを含む。
【００５５】
また記憶部１０４は、仮想空間の３次元モデルデータを記憶する。実施例ではサーバ装置１０が、５ｍ走の競技会場を提供するため、記憶部１０４は、５ｍ走の競技会場の３次元モデルデータを少なくとも記憶している。なおサーバ装置１０は、ユーザがエントリする競技を選ぶためのロビールームを提供し、ユーザがロビールームで、選択肢として示される競技の中からいずれかを選べるようにしてよい。サーバ装置１０は５ｍ走以外にも、たとえばサッカーの競技会場を提供できてよく、記憶部１０４は、競技に応じた様々な３次元モデルデータを記憶している。
【００５６】
図７は、端末装置１２に表示される競技会場の例を示す。図７には、競技開始前（スタート前）の競技会場の様子が示されており、複数の仮想ロボットがスタートラインに整列している。なお図７には、すべての仮想ロボットが、現実のロボット装置２０と同じ外観を有するように作成されており、ユーザが、自分のロボットを見分けづらい。そのためユーザは、仮想ロボットに、独自に色づけするなどして区別できるようにしてよい。またユーザがロボット装置２０に着色したり、シールを貼ったり、形状を変えたりするような加工を行っていることもある。この場合、サーバ装置１０は、ロボット装置２０の撮影画像を受信して、ロボット装置２０と同様の外観となるように仮想ロボットを作成してもよい。また自分の仮想ロボットの上方に、自分の仮想ロボットであることを示す情報（矢印など）が表示されてもよい。また上記したように、ユーザは、ロボット装置２０とは別の形状の仮想ロボットを作成できるのであれば、自分のロボットを形状の違いから簡単に見分けられるようになる。
【００５７】
仮想ロボット制御部１１２は、競技場の仮想空間を構築し、スタートラインに、エントリしたユーザの仮想ロボットを整列させる。画像生成部１１４は、仮想ロボットが存在する仮想空間をレンダリングして、ユーザに提供する画像を生成し、通信部１０２から端末装置１２に配信させる。ユーザはサーバ装置１０に対して任意の視点からの画像を要求することができ、たとえば自分の仮想ロボットの視線方向の画像や、仮想ロボットを俯瞰的に視る視点からの画像などを、端末装置１２を通じて要求できる。画像生成部１１４は、視点の変更要求を取得すると、要求された視点からの画像を生成し、通信部１０２が、生成された画像を配信する。端末装置１２は、リアルタイム配信された画像をディスプレイに表示する。これによりユーザは、競技に参加する仮想ロボットの様子を確認できる。
【００５８】
図７に示す画像は、スタート３秒前である状態を示している。この３秒後に、「ヨーイドン」のかけ声が発声され、各ユーザは、自分のロボット装置２０に、スタート指示を入力する。なおロボット装置２０は、このとき、ユーザからの指示により行動する指定行動モードを動作モードとして設定されている。「ヨーイドン」のかけ声は、直接ロボット装置２０に入力されて、ロボット装置２０が、スタートするように制御されてよい。いずれにしてもエンターテインメントシステム１では、各ユーザが別々の場所で、スタータの合図で自分のロボット装置２０を一斉に走らせることで、５ｍ走大会が実現される。
【００５９】
走り出したロボット装置２０は、自身のリアルタイムの動きを表す（再生する）ための動作データを、サーバ装置１０に送信する。ロボット装置２０のリアルタイムの動きを表すための動作データは競技によって異なってよい。５ｍ走の競技では、動作データは、センサ２６による検出データであってよく、所定のサンプリング周期で、走っている速度ないしはスタートラインからの移動距離を特定できるデータであればよい。ロボット装置２０は、タイムスタンプを付加した動作データを、所定のサンプリング周期でサーバ装置１０に送信する。
【００６０】
動作データは、仮想ロボット制御部１１２により、仮想ロボットを仮想競技会場で走らせるために利用される。そのため動作データは、ロボット装置２０がスタートしてから走った累積距離を特定できるデータである必要がある。理想的な通信環境のもとで、ロボット装置２０は所定のサンプリング周期で動作データをサーバ装置１０に送信し、サーバ装置１０は、動作データに付加されたタイムスタンプで示される時間に、スタートラインから累積距離だけ移動した位置を走っているように、仮想ロボットの動きを制御する。ロボット装置２０が、スタートからの累積距離を自身で算出できる場合には、周期的に送信する動作データに累積距離を含ませることが好ましい。なおレース用マットにスタートラインからの移動距離を示すマークが付加され、カメラ２４がマークを撮影できる場合には、撮影画像が動作データに含まれて、仮想ロボット制御部１１２が撮影画像から、スタートラインからの移動距離を導き出せるようにしてもよい。
【００６１】
なお動作データは、ロボット装置２０の動きを再現するためのアクチュエータの駆動データを含んでもよい。仮想ロボット制御部１１２は、駆動データを用いて、ロボット装置２０の動きと仮想ロボットの動きとが同期するように制御してよい。
【００６２】
サーバ装置１０において、取得部１１０が、複数のユーザの複数のロボット装置２０のリアルタイムの動きを表すための動作データを取得する。仮想ロボット制御部１１２は、複数のロボット装置２０の動作データを用いて、同じ仮想空間内で複数のロボット装置２０に対応する複数の仮想ロボットを動かす。仮想ロボット制御部１１２は、動作データを仮想ロボットの動きに反映するため、実世界で速く走るロボット装置２０に対応する仮想ロボットは、仮想世界においても速く走る。つまり、ロボット装置２０の実際のスピードが、仮想ロボットのスピードに反映される。これにより異なる場所に存在する複数のロボット装置２０による５ｍ走大会が成立する。
【００６３】
画像生成部１１４は、複数の仮想ロボットが動いている仮想空間の画像を生成し、通信部１０２から、ユーザの端末装置１２に送信させる。ユーザは、自分の仮想ロボットが、他のユーザの仮想ロボットと競争している様子を観戦でき、子供の運動会を見ているような体験を得られる。
【００６４】
以上は、サーバ装置１０においてＶＲ（virtual reality：バーチャルリアリティ）映像を生成して、各端末装置１２に配信する仕組みである。以上の例では、複数の仮想ロボットの動く様子が、対応するロボット装置２０のリアルタイムの動きを表すための動作データを用いて仮想空間上で表現されたが、ユーザの仮想ロボット以外の仮想ロボットは、過去の動作データによって動かされてもよい。
【００６５】
以下、サーバ装置１０が他のユーザのロボット装置２０の動作データを、ユーザの端末装置１２に配信して、端末装置１２が、ＡＲ（Augmented Reality：拡張現実）映像を生成する仕組みを示す。
図８は、端末装置１２の機能ブロックを示す。端末装置１２は、処理部２００、通信部２０２、ディスプレイ２０４、カメラ２０６および記憶部２０８を備え、処理部２００は、撮影画像取得部２１０、動作データ取得部２１２、仮想ロボット制御部２１４、画像生成部２１６および画像出力部２１８を有する。図８において、さまざまな処理を行う機能ブロックとして記載される各要素は、ハードウェア的には、回路ブロック、メモリ、その他のＬＳＩで構成することができ、ソフトウェア的には、メモリにロードされたプログラムなどによって実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。
【００６６】
端末装置１２は、複数のロボット装置２０が動いている様子をディスプレイ２０４に表示する。この例では、ディスプレイ２０４にライブビュー表示がされている状態で、ユーザがロボット装置２０の走る様子をカメラ２０６で撮影し、ロボット装置２０に並んだ位置に、他のロボット装置２０の仮想ロボットが走るＡＲ映像を生成する。
【００６７】
記憶部２０８は、一緒に競技を行う他のユーザに関する情報を記憶する。ユーザが５ｍ走の競技大会にエントリすると、サーバ装置１０は、同走する他のユーザのロボット装置２０を特定して、他のユーザに関する情報を端末装置１２に提供する。他のユーザに関する情報は、少なくとも他のユーザのロボット装置２０に対応づけられる仮想オブジェクトの形状および外観データ、腕や脚、首などの関節の位置や、その可動範囲など、仮想ロボットを仮想空間にて動作および表示させるために必要なモデルデータを含む。
【００６８】
カメラ２０６は、動いている（走っている）ロボット装置２０を撮影し、撮影画像取得部２１０は、カメラ２０６が撮影している画像を取得する。動作データ取得部２１２は、他のユーザのロボット装置２０の動きを表すための動作データを取得する。仮想ロボット制御部２１４は、撮影画像の中に含まれる５ｍ走のコースを特定する。上記したようにレース用マットが床に置かれている場合、仮想ロボット制御部２１４は、レース用マットに描かれているスタートラインおよびゴールラインを画像内から抽出して、５ｍ走のコースを特定する。
【００６９】
スタート前、ユーザは、ロボット装置２０をレースマットのスタートラインに配置し、仮想ロボット制御部２１４は、ロボット装置２０の横に仮想ロボットを並べる。この様子を示す画像は、画像生成部２１６により生成され、ディスプレイ２０４に表示される。スタートが合図されると、ユーザは、ロボット装置２０のスタートスイッチを操作して、ロボット装置２０を走り出させる。仮想ロボット制御部２１４は、他のユーザのロボット装置２０の動作データから、他のユーザの仮想ロボットを５ｍ走のコースに沿って走らせる。画像生成部２１６は、ロボット装置２０を撮影したライブビュー画像に、他のユーザの仮想ロボットを重ね合わせた画像を生成する。画像出力部２１８は、重ね合わせた画像をディスプレイ２０４に出力する。これによりユーザは、自宅内のレース用マットにおいて、自分のロボット装置２０と他のユーザの仮想ロボットとが競争している様子を観戦できる。
【００７０】
ＶＲ映像の生成処理に関して説明したように、動作データ取得部２１２は、ユーザのロボット装置２０とは別の場所にいる他のユーザのロボット装置２０のリアルタイムの動きを表すための動作データを取得する。なお、他のユーザの動作データは、サーバ装置１０経由で取得してよく、また他のユーザのロボット装置２０から直接取得してもよい。これによりユーザは、リアルタイムに行われる５ｍ走の競技を観戦できる。ＡＲ映像によれば、自宅が５ｍ走の会場となるため、ユーザはリラックスして、ロボット装置２０の活躍を観戦できる。
【００７１】
なお、動作データ取得部２１２は、過去の他のユーザのロボット装置２０の動きを表すための第２動作データを記憶部２０８から読み出して取得してもよい。たとえば端末装置１２は、サーバ装置１０から、５ｍ走の世界チャンピオンの動作データを事前に取得して、記憶部２８に記憶させておく。これによりユーザは、好きなタイミングで、世界チャンピオンとの対決を楽しむことができるようになる。
【００７２】
以上は、道具を使わない競技について説明したが、ロボット装置２０の機能が向上すると、ボールを使った球技なども実現可能になる。以下、エンターテインメントシステム１の運営者が体育館を借りて、ロボット装置２０によるサッカー大会を開催する例を示す。ここで体育館には、テープなどのマーカによってサッカーのフィールドが区画される。５ｍ走の大会では、ロボット装置２０は、他のロボット装置２０に関係なく、ただ５ｍを走ればよかったが、球技などの競技では相手との関係が重要となるため、ロボット装置２０は、競技場における自身および他のロボット装置２０の位置や、ボールの位置などをリアルタイムで認識できる必要がある。これらの位置認識技術に関しては、カメラを用いたＳＬＡＭ（Simultaneously Localization and Mapping ）などの画像認識技術などを用いればよい。実施例では、位置認識や物体認識の技術は、既存のものを利用する。
【００７３】
図９は、ロボット装置２０がサッカーをしている様子を示す。サッカーとは、ボールを手を用いずに相手のゴールに入れて得点を競い合う球技であるが、現実にロボット装置２０によるサッカー大会を開催すると、キック力不足のために、ボールがあまり転がらず、盛り上がりを欠くことがある。そこで実施例では、ボールとして自走アシスト機能をもつ移動体５０を採用し、ロボット装置２０に蹴られた移動体５０が、勢いよく転がることで、ゲーム性を高めるようにする。また逆に狭いサッカーコートではボールが転がりすぎて、すぐにボールがコート外に出てしまうこともあるが、この場合にも移動体５０に自走アシスト機能をもたせることで、移動体５０の転がりを抑制するなどのコントロールをできるようになる。なお、図９に示す例では移動体５０が球型ロボットとして構成され、たとえば特許文献２に示した技術を用いて形成されてよい。なお移動体５０は球型である必要は必ずしもなく、自走アシスト機能を有するものであれば、特に形状は問わない。たとえば移動体５０は、ボールが浮いた状態を表現するために、飛行機能を有していてもよい。
【００７４】
図１０は、移動体５０の機能ブロックを示す。移動体５０は、処理部３００、検出部３０２、カメラ３０４、通信部３０８、駆動源３１０、スピーカ３１２、発光部３１４および記憶部３１６を備え、処理部３００は、移動情報導出部３２０、領域設定部３２２、制御部３２４、特定部３２６および取得部３２８を有する。図１０において、さまざまな処理を行う機能ブロックとして記載される各要素は、ハードウェア的には、回路ブロック、メモリ、その他のＬＳＩで構成することができ、ソフトウェア的には、メモリにロードされたプログラムなどによって実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。
【００７５】
検出部３０２は、移動体５０に加えられた外力を検出する。たとえば検出部３０２は力覚センサであってよく、移動体５０の外面付近に設けられて、移動体５０に加えられた外力の大きさおよび方向を検出する。実施例の検出部３０２は、ロボット装置２０が移動体５０に加えた外力、つまり蹴った力の大きさおよび方向が検出される。
【００７６】
移動情報導出部３２０は、検出部３０２が検出した外力に応じて、移動体５０の移動方向および移動速度を導出する。移動方向については、移動体５０が蹴られた方向と一致するように導出されてよい。
【００７７】
ここで移動情報導出部３２０は、移動速度を、検出した外力の大きさに、所定のゲインを乗算して算出してよい。このゲインは、ロボット装置２０に応じて定められることが好ましい。たとえばサッカー大会に参加するロボット装置２０が全て同一スペックのロボットであれば、ゲインは同一であってよいが、異なるスペックのロボット装置２０が混在するような場合には、キック力の強いロボットと弱いロボットとが存在しうる。そこでロボットのスペックに応じてゲインが事前に調整され、移動情報導出部３２０は、移動体５０に外力を与えたロボット装置２０に応じたゲインを用いて、移動速度を導出してよい。実施例では、キック力の強いロボット装置２０のゲインを小さく、キック力の弱いロボット装置２０のゲインを大きくして、キック力の強弱がゲーム性に与える影響を低減させてよい。またロボット装置２０ごとのゲインは常に一定ではなく、検出した外力の大きさに応じて定められてよく、たとえば検出した外力が大きいほど、ゲインが大きく設定されてもよい。
【００７８】
そのために移動体５０は、サッカー大会に参加するロボット装置２０の識別情報（ロボットＩＤ）を、試合開始前に事前に取得しておく。特定部３２６は、蹴ったロボット装置２０を特定し、移動情報導出部３２０は、特定されたロボット装置２０に応じたゲインを用いて、移動体５０の移動速度を算出する。特定部３２６は、たとえばカメラ３０４で撮影された画像を解析することで、蹴った物体、すなわちロボット装置２０を特定してもよい。また通信部３０８が、蹴ったロボット装置２０からロボットＩＤを取得して、特定部３２６に渡すことで、特定部３２６が、蹴ったロボット装置２０を特定してもよい。このように特定部３２６がロボット装置２０を特定することで、移動情報導出部３２０は、ロボット装置２０に応じた移動体５０の移動方向および移動速度を導出できるようになる。
【００７９】
制御部３２４は、駆動源３１０を駆動して、移動体５０を移動させる。駆動源３１０はたとえば複数のモータから構成される。移動体５０がロボット装置２０により蹴られて、移動情報導出部３２０が、蹴られた後の移動体５０の移動方向および移動速度を導出すると、制御部３２４は、導出した移動方向および移動速度に応じて、駆動源３１０を駆動して、移動体５０を移動させる。このように制御部３２４が移動体５０の移動を制御することで、ロボット装置２０によるキック力が仮に弱い場合であっても、サッカー競技が成立するように移動体５０がフィールド内を自走アシスト機能で移動する。
【００８０】
なお実際のサッカー競技では、蹴られたボールは、いずれ勢いを失って止まる。そこで制御部３２４が、外力に応じて導出された移動速度で移動体５０を移動させた後、移動情報導出部３２０は、移動体５０の移動速度を経過時間に応じて徐々に下げるように算出する。これによりロボット装置２０に蹴られた移動体５０は永遠に転がり続けることなく、停止する。このとき移動情報導出部３２０は、接地面における仮想的な摩擦の影響を加味して、移動体５０の移動速度を徐々に下げてよい。
【００８１】
サッカーのルールでは、ボールがタッチラインを割ると、スローインによりボールをフィールド内に戻し、ゴールラインを割ると、ゴールキックやコーナーキックによってリスタートする。ロボットサッカーでは、そこまで厳密なルールを適用する必要はなく、ボールがラインを超えようとすると、仮想的に設けられた壁により跳ね返されてフィールド内に戻る方向に動くように制御されてよい。
【００８２】
この制御を実現するために、領域設定部３２２は、移動体５０が移動可能な実空間の領域を設定する。ここで実空間の領域は、タッチラインおよびゴールラインで囲まれたフィールド内である。領域設定部３２２が移動可能な領域としてフィールド内であることを設定した場合、特定部３２６は、たとえばカメラ３０４で撮影された画像を解析することで、移動体５０がフィールド外に出そうなときに、境界に到達したことを特定して、移動情報導出部３２０に通知する。この場合、移動体５０がラインから出ることなく、フィールド内に戻されるようなルールとなっているため、移動情報導出部３２０は、フィールドの境界において、少なくとも移動方向を変更し、制御部３２４に伝える。これにより制御部３２４は、移動体５０を、あたかもライン上にある見えない壁にあたって跳ね返ったように移動制御し、プレイが継続される。
【００８３】
この例では、実際の会場で、ユーザがロボット装置２０を持ち寄ってサッカー大会に参加することを示したが、上記したように仮想のサッカー会場で開催される大会に参加してもよい。このとき、サッカー大会に参加するユーザは、自身のロボット装置２０と移動体５０とを、それぞれ所有している必要がある。サーバ装置１０は、各ロボット装置２０および各移動体５０から、それぞれの動作データを取得し、フィールド内のロボット装置２０や移動体５０の位置を管理する。
【００８４】
なおサーバ装置１０は、各ユーザの移動体５０に加えられた外力データを取得する。サーバ装置１０は、取得した外力データを、実際に外力を加えられたユーザ以外の他のユーザの移動体５０に送信する。移動体５０において、通信部３０８は、サーバ装置１０から、移動体５０に加えられた仮想的な外力データを受信し、取得部３２８が、外力データを取得すると、移動情報導出部３２０は、取得した仮想的な外力に応じて、移動体５０の移動方向および移動速度を導出する。これにより、ユーザの自宅にある移動体５０が、遠隔地でプレイしている他のユーザのロボット装置２０が移動体５０を蹴ったことによって、動かされることになる。
【００８５】
なお仮想のサッカー会場で大会が開かれる場合、各ユーザは、自宅内に、サッカー場のスペースを確保する。確保されたスペースは、領域設定部３２２により、移動可能な実空間領域として設定される。この場合、ユーザごとに、確保できるスペースは異なることが想定されるため、各移動体５０における移動情報導出部３２０は、設定された領域の大きさに応じてゲインを調整して、移動速度を導出することが好ましい。制御部３２４は、移動体５０の動作に合わせて、スピーカ３１２から出力する音や、発光部３１４の発光を制御してよい。
【００８６】
サーバ装置１０は、ロボット装置２０および移動体５０の仮想フィールドにおける位置をリアルタイムで管理しており、仮想フィールド内で各ロボット装置２０の仮想ロボットを動かしている。たとえば仮想ロボット同士が接触する場合、サーバ装置１０は、対応するロボット装置２０に、接触により仮想ロボットが受ける仮想的な外力を伝達する。ロボット装置２０において、受付部４０が仮想的な外力を受け付けると、制御部４４が、外力を受けた状態を再現するように駆動機構３４を駆動し、ロボット装置２０を動かす。
【００８７】
この例では、衝突判定がサーバ装置１０により実施されているが、ロボット装置２０により実施されてもよい。このとき受付部４０は、仮想フィールドにおける他の仮想ロボットの位置情報をサーバ装置１０から受け付け、制御部４４は、自身の仮想フィールドにおける位置をもとに、衝突判定を実施してよい。制御部４４は、仮想フィールドにおける他の仮想ロボットとの衝突を判定すると、衝突により受ける仮想的な外力を導出して、外力を受けた状態を再現するように駆動機構３４を駆動し、ロボット装置２０を動かす。
【００８８】
以上、本発明を実施例をもとに説明した。実施例は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。実施例では、ロボット装置２０の様子を見る手段としてスマートフォンなどの端末装置１２を示したが、ヘッドマウントディスプレイなどを用いて、ユーザがロボット装置２０の様子を見られるようにしてもよい。
【符号の説明】
【００８９】
１・・・エンターテインメントシステム、１０・・・サーバ装置、１２・・・端末装置、２０・・・ロボット装置、２２・・・マイク、２４・・・カメラ、２６・・・センサ、２８・・・記憶部、３０・・・処理部、３２・・・通信部、３４・・・駆動機構、３６・・・スピーカ、３８・・・発光部、４０・・・受付部、４２・・・モード設定部、４４・・・制御部、５０・・・移動体、１００・・・処理部、１０２・・・通信部、１０４・・・記憶部、１１０・・・取得部、１１２・・・仮想ロボット制御部、１１４・・・画像生成部、２００・・・処理部、２０２・・・通信部、２０４・・・ディスプレイ、２０６・・・カメラ、２０８・・・記憶部、２１０・・・撮影画像取得部、２１２・・・動作データ取得部、２１４・・・仮想ロボット制御部、２１６・・・画像生成部、２１８・・・画像出力部、３００・・・処理部、３０２・・・検出部、３０４・・・カメラ、３０８・・・通信部、３１０・・・駆動源、３１２・・・スピーカ、３１４・・・発光部、３１６・・・記憶部、３２０・・・移動情報導出部、３２２・・・領域設定部、３２４・・・制御部、３２６・・・特定部、３２８・・・取得部。
【図１】
2022003549.tif 000003
【図２】
2022003549.tif 000004
【図３】
2022003549.tif 000005
【図４】
2022003549.tif 000006
【図５】
2022003549.tif 000007
【図６】
2022003549.tif 000008
【図７】
2022003549.tif 000009
【図８】
2022003549.tif 000010
【図９】
2022003549.tif 000011
【図１０】
2022003549.tif 000012