(57)【要約】【課題】利用者の動きの多種類の特徴量を用いて運動の仮想相手の出力態様を変化させる。【解決手段】運動の仮想相手を用いて運動インストラクションを行う装置は、運動時の利用者の身体の動きの変化を取得する取得部（１３０）と、取得される変化から、複数種類の動きの特徴量を検出する検出部（１３１）と、２種類以上の特徴量の値の組であって、異なる値の組のそれぞれに対応して仮想相手の出力を制御するための情報を記憶するための記憶部（３００）と、検出部により検出された２種類以上の特徴量の値の組に対応した記憶部の情報から、仮想相手の動きを制御するための制御データを生成するデータ生成部（１３２）と、を備える。【選択図】図３
2018051138.tif 000002
【特許請求の範囲】
【請求項１】
運動の仮想相手を用いて運動インストラクションを行う装置であって、
前記運動時の利用者の身体の動きの変化を取得する取得部と、
取得される前記動きの変化から、複数種類の動きの特徴量を検出する検出部と、
２種類以上の前記特徴量の値の組であって、異なる値の組のそれぞれに対応して前記仮想相手の出力を制御するための情報を記憶するための記憶部と、
前記検出部により検出された前記２種類以上の特徴量の値の組に対応した前記記憶部の情報から、前記仮想相手の動きを制御するための制御データを生成するデータ生成部と、を備える、運動インストラクション装置。
【請求項２】
前記仮想相手は、画像を含み、
前記仮想相手の動きは、前記画像を表示する場合の前記画像の変化を含む、請求項１に記載の運動インストラクション装置。
【請求項３】
前記仮想相手は、駆動部を備える機器を含み、
前記制御データは、前記駆動部に与える制御量を含む、請求項１に記載の運動インストラクション装置。
【請求項４】
前記２種類以上の特徴量のうちの１つは、前記利用者の疲労度を含む、請求項１から３のいずれか１項に記載の運動インストラクション装置。
【請求項５】
前記２種類以上の特徴量のうちの１つは、前記利用者の運動量の前記仮想相手の運動量との相対的な差を含む、請求項１から４のいずれか１項に記載の運動インストラクション装置。
【請求項６】
前記制御するための情報は、前記制御データを生成するために前記データ生成部により実行されるアルゴリズムを含む、請求項１から５のいずれか１項に記載の運動インストラクション装置。
【請求項７】
前記制御するための情報は、前記制御データを生成するための処理に用いるパラメータの情報を含む、請求項１から６のいずれか１項に記載の運動インストラクション装置。
【請求項８】
身体の動きを測定するセンサと、
運動の仮想相手を用いて運動インストラクションを行う装置と、を備え、
前記装置は、
前記センサの出力から、前記運動時の利用者の身体の動きの変化を取得する取得部と、
取得される前記動きの変化から、複数種類の動きの特徴量を検出する検出部と、
２種類以上の前記特徴量の値の組であって、異なる値の組のそれぞれに対応して前記仮想相手の出力を制御するための情報を記憶するための記憶部と、
前記検出部により検出された前記２種類以上の特徴量の値の組に対応した前記記憶部の情報から、前記仮想相手の動きを制御するための制御データを生成するデータ生成部と、を含む、システム。
【請求項９】
運動時の利用者の身体の動きの変化を取得するステップと、
取得される前記動きの変化から、複数種類の動きの特徴量を検出するステップと、
２種類以上の前記特徴量の値の組であって、異なる値の組のそれぞれに対応して前記仮想相手の出力を制御するための情報を記憶する記憶部から、検出された前記２種類以上の特徴量の値の組に対応した前記記憶部の情報を検索するステップと、
検索された情報から、前記仮想相手の動きを制御するための制御データを生成するステップと、を含む、方法。
【請求項１０】
運動インストラクションンの方法をコンピュータに実行させるためのプログラムであって、
前記方法は、
運動時の利用者の身体の動きの変化を取得するステップと、
取得される前記動きの変化から、複数種類の動きの特徴量を検出するステップと、
２種類以上の前記特徴量の値の組であって、異なる値の組のそれぞれに対応して前記仮想相手の出力を制御するための情報を記憶する記憶部から、検出された前記２種類以上の特徴量の値の組に対応した前記記憶部の情報を検索するステップと、
検索された情報から、前記仮想相手の動きを制御するための制御データを生成するステップと、を含む、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は運動インストラクション装置、システム、方法およびプログラムに関し、特に、仮想の運動相手を用いる運動インストラクション装置、システム、方法およびプログラムに関する。
【背景技術】
【０００２】
ユーザが運動をするに際して、運動のモチベーションを維持する方法が提案されている。
【０００３】
特許文献１（特開２０１１−１４３９８３号公報）では、ユーザが携帯する活動量計は、歩数の計測、歩行ピッチおよび歩幅の算出、身体運動についての活動量に係る演算処理を実施して、演算の結果を表示する。
【０００４】
特許文献２（特開２０１１−１６７５４９号公報）の運動インストラクション装置は、利用者の足取りが設定ピッチより遅れればバーチャルランナーが迫りくる音声を出力し、設定ピッチを取り戻してバーチャルランナーを抜いたときは拍手と歓声を出力する。また、利用者とバーチャルランナーの位置と順序を画面の表示にリアルタイムに反映する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１１−１４３９８３号公報
【特許文献２】特開２０１１−１６７５４９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献２の構成は、利用者とバーチャルランナーの位置と順序を画面表示にリアルタイムに反映しているが、その位置と順序は利用者について測定されるピッチが設定ピッチよりもずれているか否かの判定にのみ基づいている。したがって、利用者とバーチャルランナーとの位置および順序の変化は単調なものとなり、利用者は運動を継続して行うためのモチベーションを維持するのが難しい。
【０００７】
そのため、利用者の運動の多種類の特徴量を用いて運動の仮想相手の出力態様を変化させることが望まれている。
【課題を解決するための手段】
【０００８】
この発明のある局面に従う、運動の仮想相手を用いて運動インストラクションを行う装置は、運動時の利用者の身体の動きの変化を取得する取得部と、取得される動きの変化から、複数種類の動きの特徴量を検出する検出部と、２種類以上の特徴量の値の組であって、異なる値の組のそれぞれに対応して仮想相手の出力を制御するための情報を記憶するための記憶部と、検出部により検出された２種類以上の特徴量の値の組に対応した記憶部の情報から、仮想相手の動きを制御するための制御データを生成するデータ生成部と、を備える。
【０００９】
好ましくは、仮想相手は、画像を含み、仮想相手の動きは、画像を表示する場合の画像の変化を含む。
【００１０】
好ましくは、仮想相手は、駆動部を備える機器を含み、制御データは、駆動部に与える制御量を含む。
【００１１】
好ましくは、２種類以上の特徴量のうちの１つは、利用者の疲労度を含む。
好ましくは、２種類以上の特徴量のうちの１つは、利用者の運動量の仮想相手の運動量との相対的な差を含む。
【００１２】
好ましくは、制御するための情報は、制御データを生成するためにデータ生成部により実行されるアルゴリズムを含む。
【００１３】
好ましくは、制御するための情報は、制御データを生成するための処理に用いるパラメータの情報を含む。
【００１４】
この発明の他の局面に従うシステムは、身体の動きを測定するセンサと、運動の仮想相手を用いて運動インストラクションを行う装置と、を備え、装置は、センサの出力から、運動時の利用者の身体の動きの変化を取得する取得部と、取得される動きの変化から、複数種類の動きの特徴量を検出する検出部と、２種類以上の特徴量の値の組であって、異なる値の組のそれぞれに対応して仮想相手の出力を制御するための情報を記憶するための記憶部と、検出部により検出された２種類以上の特徴量の値の組に対応した記憶部の情報から、仮想相手の動きを制御するための制御データを生成するデータ生成部と、を含む。
【００１５】
この発明のさらに他の局面に従う方法は、運動時の利用者の身体の動きの変化を取得するステップと、取得される動きの変化から、複数種類の運きの特徴量を検出するステップと、２種類以上の特徴量の値の組であって、異なる値の組のそれぞれに対応して仮想相手の出力を制御するための情報を記憶する記憶部から、検出された２種類以上の特徴量の値の組に対応した記憶部の情報を検索するステップと、検索された情報から、仮想相手の動きを制御するための制御データを生成するステップと、を含む。
【００１６】
この発明の他の局面に従うプログラムは、上記の方法をコンピュータに実行させるためのプログラムである。
【発明の効果】
【００１７】
運動インストラクション装置によれば、利用者の動きの複数種類の特徴量を用いて運動の仮想相手の動きを変化させる。
【図面の簡単な説明】
【００１８】
【図１】実施の形態１にかかる運動インストラクションシステム１の全体構成を概略的に示す図である。
【図２】図１の制御コンピュータ１００のハードウェア構成を模式的に示す図である。
【図３】実施の形態１にかかる制御コンピュータ１００の機能の構成を模式的に示す図である。
【図４】平常時（疲労していないとき）の頭または腰の位置の時系列の変化を示す図である。
【図５】疲労時の頭または腰の位置の時系列の変化を示す図である。
【図６】記憶部３００に格納されるクラステーブル３０１の構成の一例を示す図である。
【図７】実施の形態１にかかる仮想相手の表示の一例を示す図である。
【図８】実施の形態１にかかる運動インストラクション処理の全体を示すフローチャートである。
【図９】図８のステップＳ９においてクラスＡが読出された場合に、ステップＳ１１で実施される処理のフローチャートである。
【図１０】図９の処理における利用者１０と仮想相手の位置関係を模式的に示す図である。
【図１１】図８のステップＳ９においてクラスＢが読出された場合に、ステップＳ１１で実施される処理のフローチャートである。
【図１２】図１１の処理で参照されるテーブルＴＢの一例を示す図である。
【図１３】図１１の処理における利用者１０と仮想相手の位置関係を模式的に示す図である。
【図１４】ステップＳ９においてクラスＣが読出された場合に、ステップＳ１１で実施される処理のフローチャートである。
【図１５】図１４の処理における利用者１０と仮想相手の位置関係を模式的に示す図である。
【図１６】トレッドミル２００でのランニング時における利用者１０の手の繰返し動作の周期的な変化を示す図である。
【図１７】記憶部３００に格納されるクラステーブル３０１の変形例を示す図である。
【図１８】実施の形態２にかかる運動インストラクションシステム１Ａの構成図である。
【図１９】実施の形態２にかかる制御コンピュータ１００Ａの機能の構成を模式的に示す図である。
【図２０】図１８のロボット６０のラケットＷ１を回動するための構成を概略的に示す図である。
【図２１】実施の形態２にかかる運動インストラクション処理の全体を示すフローチャートである。
【図２２】実施の形態２にかかるクラステーブル３０１Ａの一例を示す図である。
【図２３】実施の形態２の変形例を表形式で説明する図である。
【図２４】図２３の特徴量の検出方法を模式的に示す図である。
【図２５】図２３の特徴量の検出方法を模式的に示す図である。
【図２６】図２３の特徴量の検出方法を模式的に示す図である。
【発明を実施するための形態】
【００１９】
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、以下の図面において、同一または相当する部分には同一の参照番号を付してその説明は繰り返さない。
【００２０】
[システムの構成]
図１は、実施の形態１にかかる運動インストラクションシステム１の全体構成を概略的に示す図である。運動インストラクションシステム１（以下、システム１と称する）は、トレッドミル２００、人体の動きを非接触形式で検出するセンサ５０および制御コンピュータ１００（図２を参照）を備える。トレッドミル２００は、利用者１０が屋内でランニングまたはウォーキングを行うために使用する機器である。制御コンピュータ１００は、トレッドミル２００に内蔵されてもよく、またはトレッドミル２００の外部に備えられてもよい。その場合には、トレッドミル２００は、外部の制御コンピュータ１００と有線または無線により通信する。
【００２１】
トレッドミル２００の構造は周知であるので、ここでは、基本的な構造を簡単に説明する。トレッドミル２００は、利用者１０が載る無端ベルトであるワーキングベルト２０１、情報を出力するためのディスプレイ１２２、ワーキングベルト２０１を回動させるためのモーターである駆動部２０２、駆動部２０２を制御するコントローラ２０３、および駆動部２０２の回転力に連動して回転するローラ（図示せず）を備える。コントローラ２０３は、トレッドミル２００の操作部（図示せず）から利用者１０が設定した情報（ピッチ、距離、時間など）を受付けると、受付けた情報に基づき駆動部２０２を駆動する。また、操作部の利用者１０による操作内容に従い、指令１０６を生成し、制御コンピュータ１００に送信する。指令１０６には、運動開始と終了の指令が含まれる。
【００２２】
コントローラ２０３は運動開始の操作を受付けると、駆動信号により駆動部２０２を回転させる。当該回転に連動してローラが回転し、ローラの回転に連動してワーキングベルト２０１が回転方向に移動する。ワーキングベルト２０１上に載った利用者１０は、ワーキングベルト２０１の移動に促されて、歩行またはランニングを行う。コントローラ２０３は運動終了の操作を受付けると、駆動信号により駆動部２０２の回転を停止する。これにより、利用者１０の運動は終了する。なお、運動の終了は、利用者１０の操作によるものに限定されず、運動の開始から予め定められた時間が経過したときに、運動を終了するとしてもよい。ここでは、トレッドミル２００による運動は、ランニング、ジョギング、歩行などである。
【００２３】
ディスプレイ１２２には、各種の画像が表示される。表示画像には、利用者１０の運動の仮想相手を表すキャラクタ画像１２Ａが含まれる。ディスプレイ１２２は、制御コンピュータ１００から受信する制御データ１０８に従い液晶などを駆動することにより画像を表示する。
【００２４】
センサ５０は身体（人体）の動きの変化量を測定する機能を備える。具体的には、センサ５０は、ハードウェア回路としての距離画像センサと、距離画像センサの出力から身体の動きを推定するソフトウェアプログラムを実行するマイクロコンピュータとを備える。距離画像センサは人体に赤外線を照射して得られた赤外線パターンを解析することにより距離画像を取得する。マイクロコンピュータは、距離画像と予め登録されているパターン画像とを照合し、照合の結果に基づき、距離画像において身体の動き、すなわち身体の各部（頭、胴体、肩、腕、腰、足、手、指など）の位置（座標値）を検出する。そして、時系列に取得される距離画像から、各部の位置の時系列的な変化（経時的な変化）を示す時系列データ１０７を生成して出力する。センサ５０は赤外線の照射範囲にはトレッドミル２００のワーキングベルト２０１上が含まれ得る。したがって、センサ５０は、トレッドミル２００の利用者１０の身体の動き変化量を示す時系列データ１０７を、制御コンピュータ１００に送信する。
【００２５】
なお、身体の動きの変化量を測定する方法は、センサ５０のような距離画像から測定する方法に限定されない、例えば、利用者１０の身体に装着された光学マーカの位置情報により検出する方法、または身体に装着された磁気センサの動きから検出する方法であってもよい。また、図１では、センサ５０はトレッドミル２００毎に備えるとしているが、１台のセンサ５０を複数のトレッドミル２００で共用するとてもよい。
【００２６】
（制御コンピュータ１００の構成）
図２は、図１の制御コンピュータ１００のハードウェア構成を模式的に示す図である。図２を参照して、制御コンピュータ１００は、演算処理部であるＣＰＵ（Central  Processing  Unit）１１０と、記憶部としてのメモリ１１２およびハードディスク１１４と、時間を計時し計時データをＣＰＵ１１０に出力するタイマ１１３と、入力インタフェイス１１８と、ディスプレイ１２２を制御する表示コントローラ１２０と、通信インタフェイス１２４と、データリーダ／ライタ１２６とを含む。これらの各部は、バス１２８を介して、互いにデータ通信可能に接続される。
【００２７】
ＣＰＵ１１０は、ハードディスク１１４に格納されたプログラム（コード）を実行することで、各種の演算を実施する。メモリ１１２は、典型的には、ＤＲＡＭ（Dynamic  Random  Access  Memory）などの揮発性の記憶装置であり、ハードディスク１１４から読み出されたプログラム・データに加えて、センサ５０から受信する時系列データ１０７、およびワークデータなどが格納される。
【００２８】
入力インタフェイス１１８は、ＣＰＵ１１０とキーボード１２１、マウス（図示せず）、タッチパネル（図示せず）などの入力装置との間のデータ伝送を仲介する。すなわち、入力インタフェイス１１８は、ユーザが入力装置を操作することで与えられる操作命令を受付ける。
【００２９】
通信インタフェイス１２４は、トレッドミル２００のコントローラ２０３から運動開始と運動終了の指令１０６を受信する。また、通信インタフェイス１２４は、センサ５０から時系列データ１０７を受信する。
【００３０】
データリーダ／ライタ１２６は、ＣＰＵ１１０と記録媒体であるメモリカード１２３との間のデータ伝送を仲介する。
【００３１】
（制御コンピュータ１００の機能構成）
図３は、実施の形態１にかかる制御コンピュータ１００の機能の構成を模式的に示す図である。図３を参照して、制御コンピュータ１００は、利用者１０の身体の動きの変化量である時系列データ１０７を取得する取得部１３０と、取得される時系列データ１０７が示す動きの変化量から、複数種類の運動の特徴量を検出する検出部１３１と、ディスプレイ１２２の画像を表示させるための制御データ１０８を生成するデータ生成部１３２とを備える。データ生成部１３２は、記憶部３００に記憶された情報を検索し、検索の結果に基づき制御データ１０８を生成する。
【００３２】
記憶部３００は、メモリ１１２、ハードディスク１１４およびメモリカード１２３の記憶領域に相当する。記憶部３００には、後述するクラステーブル３０１および制御情報群３０２が格納される。
【００３３】
検出部１３１は、時系列データ１０７を分析して、分析の結果に基づき、運動の特徴量を検出する。運動の特徴量として、たとえば運動のピッチ、距離、疲労度、利用者１０が仮想相手よりも先行しているか否かを示す先行データを検出する。
【００３４】
実施の形態では、ピッチは、運動時の腕振りの周期を示すが、これに限定されず一歩にかかる時間であってもよい。検出部１３１は、時系列データ１０７から腕の位置の時系列データを抽出し、抽出した時系列データから腕振りのピッチを検出する。また、距離は、ピッチを用いて予め定められた演算式に従い算出する。また、距離は、運動開始からの経過時間とピッチの値とに基づく予め定められた演算式により算出することもできる。疲労の検出方法は、後述する。
【００３５】
検出部１３１は、利用者１０の運動量の仮想相手の運動量に対する相対的な差として、たとえば先行データを検出する。先行データは、上記に述べた距離に基づき決定することができる。検出部１３１は、たとえば、運動開始時に利用者１０が設定したピッチで仮想相手が走行している場合に、利用者１０のピッチが設定よりも小さくなると距離は仮想相手よりも短くなる、すなわち仮想相手が先行すると決定する。一方、利用者１０のピッチが設定よりも大きくなると距離は仮想相手よりも長くなる、すなわち利用者１０が先行すると決定する。
【００３６】
なお、仮想相手の運動量に対する相対的な差は、距離に限定されず、運動の種類により変更してもよい。
【００３７】
〈疲労度の検出方法〉
検出部１３１は上記の疲労度を検出する。疲労度の検出方法を説明する。図４と図５は、トレッドミル２００での運動時における利用者１０の頭または腰の位置の時系列の変化を示す図である。図４は、平常時（疲労していないとき）の頭または腰の位置の時系列の変化を示し、図５は疲労時の頭または腰の位置の時系列の変化を示す。図４と図５は発明者の実験データに基づくものである。このデータから、発明者は、トレッドミル２００で歩行またはランニング中は疲労すると利用者１０のフォーム（姿勢）が変化して腰または頭がふらつくとの知見を得た。
【００３８】
ここでは、フォームの乱れを、腰または頭の位置の変化の大きさＷとして検出しているが、検出する部位は腰または頭に限定されない。
【００３９】
実施の形態１では、検出部１３１は、疲労度を、頭または腰の位置の平均値が平常時（疲労していない時）の平均値（図４参照）からどれだけずれているかに基づき判定する。すなわち、検出部１３１は、両者の差と閾値との比較に基づき、利用者１０が疲労しているか否かを判定する。
【００４０】
なお、差を複数の閾値と比較することにより、疲労度を複数の段階で決定するとしてもよい。なお、判定に用いる値は、平均値に限定されず、代表値であればよく、たとえば最大値、最小値、最頻値などであってもよい。
【００４１】
また、疲労度を示すフォームの乱れは、頭または腰の位置の変化に限定されず、検出されるピッチと、設定ピッチ（利用者１０がトレッドミル２００の操作部を介して設定したピッチ）の差、または速度の変化の大きさを用いてもよい。
【００４２】
また、利用者１０が生体情報（血圧、脈、発汗量、活動量、消費カロリなど）を測定する携帯型機器を装着している場合には、検出部１３１は、測定された生体情報から利用者１０の疲労度を判定するとしてもよい。
【００４３】
〈特徴量のクラス分類〉
図６は、記憶部３００に格納されるクラステーブル３０１の構成の一例を示す図である。クラステーブル３０１は、２種類以上の特徴量からなる組が示す異なる値のそれぞれに対応して仮想相手の出力態様を制御するための情報が登録されるテーブルである。
【００４４】
クラステーブル３０１に登録される情報は、キャラクタ画像１２Ａの表示を制御するための情報を含む。図６では、上記の組として、疲労度と先行データとの組合せが示される。この組が示す異なる値のそれぞれに対応して、キャラクタ画像１２Ａの出力（表示）を制御するための情報を示すクラスＡ、クラスＢおよびクラスＣのいずれかが登録されている。
【００４５】
図６では、組の値が（利用者１０が疲労していない，利用者１０が先行）を示す場合はクラスＡが登録され、同様に、（利用者１０が疲労していない，仮想相手が先行）および（利用者１０が疲労，利用者１０が先行）を示す場合はクラスＢが登録され、（利用者１０が疲労，仮想相手が先行）を示す場合はクラスＣが登録される。
【００４６】
クラスＡ、ＢおよびＣは、キャラクタ画像１２Ａの表示を制御するための情報として、たとえばキャラクタ画像１２Ａの表示データを生成するためのアルゴリズムを示す。このアルゴリズムは、表示データを生成するためのパラメータを含み、パラメータの種類と値は、クラス毎に異ならせることができる。なお、情報はアルゴリズムに限定されない。
【００４７】
〈仮想相手の制御情報〉
制御情報群３０２は、クラステーブル３０１のクラスＡ，クラスＢおよびクラスＣのそれぞれに対応して、上記のアルゴリズムのデータを有する。アルゴリズムのデータは、例えばアルゴリズムのプログラム（実行可能なコードなど）を含む。
【００４８】
データ生成部１３２は、検出部１３１が検出した特徴量の組の値に基づき、記憶部３００のクラステーブル３０１を検索し、当該組の値に対応した情報（クラスＡ〜Ｃのいずれ）を読出し、読出された情報（クラスの値）に基づき制御情報群３０２から対応のアルゴリズム（プログラムコード）を読出し実行する。アルゴリズムの実行により、キャラクタ画像１２Ａをディスプレイ１２２に表示するための表示データを生成する。データ生成部１３２は、表示データと運動関連情報１２Ｃ（図７で後述する）を含む制御データ１０８を生成し、表示コントローラ１２０を介して制御データ１０８をディスプレイ１２２に出力する。これにより、ディスプレイ１２２に、対応のクラスに応じて変化するキャラクタ画像１２Ａと運動関連情報１２Ｃが表示される。
【００４９】
（表示例）
図７は、実施の形態１にかかる仮想相手の表示の一例を示す図である。ディスプレイ１２２には、データ生成部１３２から出力される制御データ１０８に従う画像が表示される（図７参照）。図７では、仮想の道１２Ｂを利用者１０と仮想相手が破線矢印方向に向けてジョギングしており、仮想相手のキャラクタ画像１２Ａの背中側が表示されている、すなわち仮想相手が利用者１０よりも先行している状態が表示されている。
【００５０】
また、制御データ１０８により、キャラクタ画像１２Ａの表示画面と同一画面において、利用者１０の運動に関する運動関連情報１２Ｃも表示される。運動関連情報１２Ｃは、ゴールまでの距離、スタートからの利用者１０の走行距離、仮想相手との距離、および疲れ具合を含む。この疲れ具合は、上記に述べた疲労度を示す。なお、運動関連情報１２Ｃが示す値は、ＣＰＵ１１０により算出される。
【００５１】
（全体処理）
図８は、実施の形態１にかかる運動インストラクション処理の全体を示すフローチャートである。図９、図１１および図１４は、図８のステップＳ１１の具体的な処理を示すフローチャートである。これらフローチャートの処理はプログラムとして制御コンピュータ１００の記憶部（メモリ１１２、ハードディスク１１４、メモリカード１２３など）に格納されている。ＣＰＵ１１０は、記憶部からプログラムを読出し、実行する。これらフローチャートを参照して、運動インストラクション処理を説明する。
【００５２】
利用者１０は運動開始の前に、トレッドミル２００の操作部を介して仮想相手のピッチＣ、目標とする走行距離（スタートからゴールまでの距離）などの情報を設定して、開始ボタンを操作する。コントローラ２０３は、開始ボタンの操作に応答して駆動部２０２のモータを回転させるので、ワーキングベルト２０１は回動を開始し、利用者１０はジョギングを開始する。なお、仮想相手のピッチＣは、運動開始後の予め定められた時間で検出された利用者１０のピッチに基づき設定するとしてもよい。
【００５３】
上記の利用者１０の操作内容に従う運動開始の指令１０６は、制御コンピュータ１００に出力される。この指令１０６には、設定されたピッチＣおよび目標走行距離のデータが含まれる。
【００５４】
ＣＰＵ１１０は、運動開始の指令１０６を受信すると、取得部１３０はセンサ５０から時系列データ１０７を取得する（ステップＳ３）。また、指令１０６に含まれるピッチＣおよび目標走行距離のデータをメモリ１１２に格納する。
【００５５】
検出部１３１は、取得部１３０を介して時系列データ１０７を受付けると、時系列データ１０７を分析し、分析の結果に基づき、上記に述べた疲労度と先行データの特徴量を検出する（ステップＳ５）。
【００５６】
データ生成部１３２は、検出部１３１が検出した疲労度と先行データの特徴量からなる組の値に基づき、クラステーブル３０１を検索し、当該組の値に対応した情報（クラスＡ〜Ｃのいずれかの値）を読出す（ステップＳ９）。
【００５７】
次に、データ生成部１３２は、読出された情報（クラスの値）に基づき制御情報群３０２から当該情報に対応のアルゴリズムを読出し、実行し、表示データを生成すると、表示データを含む制御データ１０８が生成されて出力される（ステップＳ１１）。ディスプレイ１２２には、制御データ１０８に従い動作（運動）するキャラクタ画像１２Ａの動画像が表示される。
【００５８】
ＣＰＵ１１０は、利用者１０の運動目標が達成できたか否かを判断する（ステップＳ１３）。たとえば、利用者１０のピッチから算出された走行距離と、利用者１０が設定した目標走行距離とを比較し、比較の結果が（算出走行距離≧目標走行距離）を示すとき、目標は達成したと判断する（ステップＳ１３でＹＥＳ）。目標を達成した場合には、図８の処理は終了する。一方、ＣＰＵ１１０は、上記の（算出走行距離≧目標走行距離）が成立しないと判断すると（ステップＳ１３でＮＯ）、ステップＳ３の処理に戻り、以降の処理を同様に実施する。
【００５９】
（クラスＡのアルゴリズム）
図９は、図８のステップＳ９においてクラスＡが読出された場合に、ステップＳ１１で実施される処理のフローチャートである。図１０は、図９の処理における利用者１０と仮想相手の位置関係を模式的に示す図である。このクラスＡのアルゴリズムは、利用者１０に負荷を与えるように仮想相手を運動させる（すなわち、キャラクタ画像１２Ａを変化させる）ための制御データ１０８を生成するものである。ここでは、仮想相手によって利用者１０に与えられる負荷は、仮想相手のピッチＣが大きくなることを含む。
【００６０】
まず、データ生成部１３２は、スタートから利用者１０が目標到達地点を越えたか否かを判断する（ステップＳ２１）。この目標到達地点は、目標走行距離（スタートからゴールまでの距離）を複数に分割した各地点に相当する。たとえば、スタート地点から１キロメートル、２キロメートル、３キロメートルなどの各地点が目標到達地点の距離となり得る。ステップＳ２１では、データ生成部１３２は、利用者１０のスタートからの走行距離と次の目標到達地点の距離とを比較する。比較の結果に基づき、利用者１０が次の目標到達地点に達していないと判断するときは（ステップＳ２１でＮＯ）、図９の処理は終了して、図８の元の処理（ステップＳ１１）に戻る。なお、目標地点は、走行時間に基づくものであってもよい。たとえば、１０分経過するごとに目標に到達したと判断（ステップＳ２１でＹＥＳ）してもよい。
【００６１】
データ生成部１３２は、上記の比較の結果に基づき利用者１０が次の目標地点に到達したと判断したとき（ステップＳ２１でＹＥＳ）、データ生成部１３２は、仮想相手のピッチＣ、利用者１０のピッチＵおよび距離Ｄを取得する（ステップＳ２３）。ピッチＣは、運動開始時に利用者１０により設定されてメモリ１１２に格納されたデータである。ピッチＵは、ステップＳ５で取得される。距離Ｄは利用者１０と仮想相手の間の距離である。距離Ｄは、運動開始時からの利用者１０の走行距離と仮想相手の走行距離との差から算出することで取得することができる。
【００６２】
データ生成部１３２は、距離Ｄが大きいほどピッチＣが大きくなるように、メモリ１１２のピッチＣの値を変更する。そして、データ生成部１３２は、メモリ１１２の変更後のピッチＣで運動するキャラクタ画像１２Ａを表示させるための表示データを生成する（ステップＳ２５ａ）。
【００６３】
生成された表示データを含む制御データ１０８が、表示コントローラ１２０を介してディスプレイ１２２に出力される（ステップＳ２７）。その後、図８の元の処理に戻る。
【００６４】
図９の処理では、利用者１０の後ろから、ピッチＣを上げて迫ってくる仮想相手を画像で表示するための制御データ１０８を生成する。この制御データ１０８に従い、ディスプレイ１２２には、利用者１０のキャラクタ画像の後ろから、ピッチＣを上げて迫ってくる仮想相手のキャラクタ画像１２Ａが表示される。図１０により、表示画像の一例を模式的に示す。図１０では、ピッチの大きさが、たとえばキャラクタ画像の歩幅の大きさにより示される。利用者１０は、ディスプレイ１２２の表示画像（図１０）から、仮想相手がピッチＣを上げて背後から迫ってくる様子を確認することができて、運動に対するモチベーションを上げやすくなる。
【００６５】
（クラスＢのアルゴリズム）
図１１は、図８のステップＳ９においてクラスＢが読出された場合に、ステップＳ１１で実施される処理のフローチャートである。図１２は、図１１の処理で参照されるテーブルＴＢの一例を示す図である。図１３は、図１１の処理における利用者１０と仮想相手の位置関係を模式的に示す図である。このクラスＢのアルゴリズムは、利用者１０の負荷を調整し得るように仮想相手を運動させる（すなわち、キャラクタ画像１２Ａを変化させる）ための制御データ１０８を生成するものである。
【００６６】
まず、データ生成部１３２は、ステップＳ２１とステップＳ２３を上述と同様に実施する。そして、データ生成部１３２は表示データを生成し、表示データを含む制御データ１０８を出力する（ステップＳ２５ｂ）。
【００６７】
ステップＳ２５ｂでは、データ生成部１３２は、ステップＳ５で取得した特徴量（疲労度と先行データ）と、ステップＳ２３で取得した距離Ｄからなる組の値に基づき、テーブルＴＢを検索する。そして、検索の結果に基づきピッチＣを変更するか変更しないかを決定する。ピッチＣを変更する場合には、データ生成部１３２は、メモリ１１２のピッチＣの値を変更後の値を示すように書換えて、変更後のピッチＣで運動するキャラクタ画像１２Ａを表示させるための制御データ１０８を生成する。
【００６８】
データ生成部１３２は、生成した制御データ１０８を、表示コントローラ１２０を介してディスプレイ１２２に出力する（ステップＳ２７）。その後、図８の元の処理に戻る。
【００６９】
テーブルＴＢは、メモリ１１２などの記憶部に格納される。図１２を参照して、テーブルＴＢは（疲労度，先行データ，距離Ｄが閾値ＴＨ以上/未満）の特徴量からなる組の値のそれぞれに対応して、ピッチＣの変更内容が登録されている。
【００７０】
ピッチＣの変更内容として、たとえば、（疲労している，利用者１０が先行している、距離Ｄが閾値ＴＨ以上）の値に対しては、ピッチＣを大きくするとの内容が登録されている。また、（疲労している，仮想相手が先行している、距離Ｄが閾値ＴＨ以上）の値に対しては、ピッチＣを小さくするとの変更内容が登録されている。また、（疲労している，利用者１０が先行している、距離Ｄが閾値ＴＨ未満）および（疲労している，仮想相手が先行している、距離Ｄが閾値ＴＨ未満）の各値に対しては、ピッチＣを変更しないとの内容が登録されている。なお、閾値ＴＨは利用者１０がトレッドミル２００の操作部を介して変更できるとしてもよい。
【００７１】
このようにテーブルＴＢの内容によれば、利用者１０と仮想相手の相対的な運動量の差（距離Ｄ）のみではなく、利用者１０の疲労度および仮想相手が先行しているか否かにも基づき、仮想相手のピッチＣ（キャラクタ画像１２Ａの歩幅）を変更することができる。
【００７２】
図１１の処理によれば、利用者１０が先行しているけれども疲労している場合に、距離Ｄが閾値ＴＨ未満であるときは、ピッチＣを変更しない仮想相手のキャラクタ画像１２Ａを表示するための制御データ１０８が生成される。この表示画像から、利用者１０は仮想相手のピッチが変化していないことを確認できて、負荷を感じ難くすることができる。この制御データ１０８に従う表示画像の一例が図１３の右側において示される。
【００７３】
また、仮想相手が先行していて利用者１０が疲労を感じていない場合に、距離Ｄが閾値ＴＨ以上であるときは、ピッチＣが小さくなった仮想相手のキャラクタ画像１２Ａを表示するための制御データ１０８が生成される。この表示画像から、利用者１０に、仮想相手を追い上げる感覚を持たせることが可能となり、利用者１０は運動のモチベーションを維持しやすくなる。この制御データ１０８に従う表示画像の一例が図１３の左側において示される。
【００７４】
なお、クラスＢでは仮想相手のピッチＣは変更しないとしているが、直前のステップＳ５で検出された利用者１０のピッチＵと同じ値を示すように変更してもよい。
【００７５】
（クラスＣのアルゴリズム）
図１４は、ステップＳ９においてクラスＣが読出された場合に、ステップＳ１１で実施される処理のフローチャートである。図１５は、図１４の処理における利用者１０と仮想相手の位置関係を模式的に示す図である。このクラスＣのアルゴリズムは、利用者１０の負荷を軽減する（緩める）ように仮想相手を運動にさせる（すなわち、キャラクタ画像１２Ａを変化させる）ための制御データ１０８を生成するものである。
【００７６】
まず、データ生成部１３２は、ステップＳ２１とステップＳ２３を、図９のそれらと同様に実施する。そして、データ生成部１３２は制御データ１０８を生成する（ステップＳ２５ｃ）。
【００７７】
具体的には、ステップＳ２５ｃでは、データ生成部１３２は、ピッチＣがピッチＵよりも小さくなるように距離Ｄの大きさ応じてピッチＣの値を変更する。データ生成部１３２は、距離Ｄが大きいほどピッチＣがより小さくなるように、メモリ１１２のピッチＣの値を変更する。そして、変更後のピッチＣで運動するキャラクタ画像１２Ａを表示するための制御データ１０８を生成する。
【００７８】
データ生成部１３２は、生成した制御データ１０８を、表示コントローラ１２０を介して出力する（ステップＳ２７）。その後、図８の元の処理に戻る。
【００７９】
図１４の処理では、利用者１０が疲労して距離Ｄも比較的大きい場合は、利用者１０が先行している仮想相手を追い上げやすいように、ピッチＣが小さくなるキャラクタ画像１２Ａを表示するための制御データ１０８が生成される。この制御データ１０８に従いディスプレイ１２２に表示される画像は、ピッチＣを小さくして走行している仮想相手のキャラクタ画像１２Ａと、その背後から追い上げるような利用者１０のキャラクタ画像を含む。図１５により表示画像の一例を模式的に示す。図１５の表示画像から、利用者１０は先行する仮想相手を追い上げている感覚を確認することができて、運動に対するモチベーションを維持しやすくなる。
【００８０】
[実施の形態１の変形例]
上記の実施の形態１では、仮想相手は一人であったが、二人以上を設定してもよい。二人以上の仮想相手を設定する場合において、ピッチＣが仮想相手どうしで異なるように変更してもよい。
【００８１】
上記の実施の形態１では、仮想相手はキャラクタ画像１２Ａを用いた視覚による提示であったが、聴覚による提示であってもよく、また両者を組み合わせてもよい。たとえば、ピッチＣの大きさに応じた速さ（テンポ）の足音であってもよい。また、距離Ｄの大きさに応じて、足音の大きさを変更してもよい。
【００８２】
上記の実施の形態では、制御データ１０８を生成するために、クラスＡ，Ｂ，Ｃに対応してアルゴリズムを用いたが、制御データ１０８を生成する方法はアルゴリズムを用いる方法に限定されない。たとえば、キャラクタ画像１２Ａの動きを決定するモーション関数のパラメータ値であってもよい。パラメータ値は、キャラクタ画像１２Ａの座標位置、１秒間のフレーム数、画像のサイズなどを含む。１秒間のフレーム数は、ピッチＣにより可変である。
【００８３】
ディスプレイ１２２は、据え置き型に限定されず、利用者１０に装着されるヘッドマウントディスプレイであってもよい。
【００８４】
（特徴量の変形例）
実施の形態１の特徴量に、利用者１０のランニング（または歩行）のうまさ（上手）を含めてもよい。図１６は、トレッドミル２００でのランニング時における利用者１０の手の繰返し動作の周期的な変化を示す図である。図１６を参照して、検出部１３１によるランニングのうまさの検出方法を説明する。図１６の太い実線１６１はランニングがうまい利用者１０から測定される手の繰返し動作の周期を示す。また、細い実線１６２はランニングが上手くない（下手な）利用者１０から測定される手の繰返し動作の周期を示す。図１６の破線１６３は、平均的な手の繰返し動作の周期を示す。図１６は発明者の実験データに基づくものである。このデータから、発明者は、トレッドミル２００で歩行またはランニングがうまい利用者１０の手の繰返し動作の周期は実線１６１に示すようにおおよそ一定の周期であるのに対して、上手くない利用者１０の手の繰返し動作の周期は実線１６２に示すように周期は一定ではなく大きく変動するとの知見を得た。したがって、ランニング時に検出される時系列データ１０７が示す手の繰返し動作の周期を特徴量として用いた場合であっても、運動のモチベーションを維持できる制御データ１０８を生成することができる。
【００８５】
なお、ランニングがうまいか否かをフォームの変化の周期性から判断できるが、周期的な変化は、手の動きに限定されない。
【００８６】
〈特徴量のクラス分類〉
図１７は、記憶部３００に格納されるクラステーブル３０１の変形例を示す図である。図１７のクラステーブル３０１は、（ランニングがうまい、ランニングが上手くない、疲労度）からなる組合せが示される。この組が示す異なる値のそれぞれに対応して、キャラクタ画像１２Ａの出力（表示）を制御するための情報を示すクラスＡ、クラスＢおよびクラスＣのいずれかが登録されている。図１７では「ランニングがうまい」の特徴量は、図１６の周期性が実線１６１のように略一定周期であることを示す。また「ランニングがうまくない」の特徴量は、ピッチＵが閾値以下であることを示す。
【００８７】
図１７では、組の値が（疲労していない，うまい）を示す場合はクラスＡが登録され、同様に、（疲労していない，上手くない）および（疲労している，うまい）を示す場合はクラスＢが登録され、（疲労している，上手くない）を示す場合はクラスＣが登録される。クラスＡ、ＢおよびＣの情報は図６で説明したものと同様なので、ここでは説明を繰返さない。
【００８８】
[実施の形態２]
実施の形態２では、利用者１０は卓球を行うロボット６０を相手に、卓球を実施する。ロボット６０は、ラケットを回動させるための駆動部６２（後述の図２０を参照）を有する。図１８は、実施の形態２にかかる運動インストラクションシステム１Ａの構成図である。運動インストラクションシステム１Ａ（以下、システム１Ａと称する）は、ディスプレイ１２２を備えるロボット６０、センサ５０および制御コンピュータ１００Ａを備える。制御コンピュータ１００Ａは、ロボット６０に内蔵されてもよく、またはロボット６０の外部に備えられてもよい。その場合には、ロボット６０は、外部の制御コンピュータ１００Ａと有線または無線により通信する。制御コンピュータ１００Ａは、図２に示すものと同様のハードウェア構成を有する。
【００８９】
（制御コンピュータ１００Ａの機能構成）
図１９は、実施の形態２にかかる制御コンピュータ１００Ａの機能の構成を模式的に示す図である。図１９を参照して、制御コンピュータ１００Ａは、センサ５０から時系列データ１０７Ａを取得する取得部１３０Ａと、取得される時系列データ１０７Ａが示す動きの変化量から、複数種類の運動の特徴量を検出する検出部１３１Ａと、記憶部３００Ａの検索の結果に基づく制御データを生成するデータ生成部１３２Ａとを備える。制御データは、ディスプレイ１２２に画像を表示するための表示データ１０８Ａと、駆動部６２を制御するための駆動データ１０８Ｂとを含む。
【００９０】
記憶部３００Ａは、クラステーブル３０１Ａおよび制御情報群３０２Ａが格納される。
検出部１３１は、時系列データ１０７Ａを分析して、分析の結果に基づき、運動の特徴量を検出する。運動の特徴量として、たとえば運動のピッチ、疲労度、利用者１０がうまいか否かのデータを検出する。
【００９１】
実施の形態２では、ピッチは、たとえば運動時の利用者のラケットを持った腕振りの周期を示すが、これに限定されない。また、うまいか否か、および疲労の検出方法は、実施の形態１と同様であるので、説明は繰返さない。
【００９２】
（ロボット６０の構成）
図２０は、図１８のロボット６０のラケットＷ１を回動するための構成を概略的に示す図である。ロボット６０は、ラケットＷ１を把持して自在に回動するアーム６３、アーム６３を回動させるための駆動部６２、および駆動部６２を制御するコントローラ６１を備える。ロボット６０はセンサ（図示せず）により撮像し、撮像画像の解析によりボールの移動軌跡を検出する。ラケットＷ１の回動量（回動の角度、方向など）は、検出された移動軌跡に従い制御される。ここでは、説明を簡単にするために、ボールの移動軌跡の検出と、移動軌跡に基づくロボット６０の制御についての説明は省略する。
【００９３】
駆動部６２は、たとえばサーボモータである。アーム６３は、駆動部６２（サーボモータの回転軸）に接続される。図示されないエンコーダが、駆動部６２に取付けられる。エンコーダは、駆動部６２の動作状態を示す物理量を検出し、検出された物理量を示すフィードバック信号を生成するとともに、そのフィードバック信号をサーボドライバに相当するコントローラ６１に出力する。フィードバック信号は、たとえば駆動部６２のモータの回転軸の回転位置（角度）についての位置情報、その回転軸の回転速度の情報などを含む。実施の形態１においては、駆動部６２（サーボモータ）の動作状態を示す物理量としてモータの回転軸の回転位置および回転速度が検出される。なお、回転位置および回転速度に加えてもしくは代わりに、加速度、変化量（移動量）、変化方向（移動方向）などを検出するようにしてもよい。
【００９４】
コントローラ６１は、制御コンピュータ１００Ａから駆動データ１０８Ｂを受けるとともに、エンコーダから出力されたフィードバック信号を受ける。コントローラ６１は、制御コンピュータ１００Ａからの駆動データ１０８Ｂおよびエンコーダからのフィードバック信号に基づいて、駆動部６２を駆動する。
【００９５】
コントローラ６１は、制御コンピュータ１００Ａからの駆動データ１０８Ｂに基づいて、駆動部６２の動作に関する指令値を設定する。さらにコントローラ６１は、駆動部６２の動作が指令値に追従するように駆動部６２を駆動する。具体的には、コントローラ６１は、その指令値に従って、駆動部６２（サーボモータ）の駆動電流を制御する。
【００９６】
このように、ロボット６０は、アーム６３に把持したラケットＷ１を利用者１０と卓球を行う場合に、アーム６３の制御量（アームを回動させるための回動角度、回動方向、回動速度など）は、コントローラ６１および駆動部６２を介して、制御コンピュータ１００Ａからの駆動データ１０８Ｂにより遠隔から可変に制御される。このように、駆動データ１０８Ｂによりアーム６３の制御量を調整することができる。
【００９７】
（全体処理）
図２１は、実施の形態２にかかる運動インストラクション処理の全体を示すフローチャートである。図２２は、実施の形態２にかかるクラステーブル３０１Ａの一例を示す図である。図２１のフローチャートの処理はプログラムとして制御コンピュータ１００Ａの記憶部（メモリ１１２、ハードディスク１１４、メモリカード１２３など）に格納されている。ＣＰＵ１１０は、記憶部からプログラムを読出し、実行する。これらフローチャートを参照して、運動インストラクション処理を説明する。
【００９８】
利用者１０が仮想相手であるロボット６０と卓球を開始すると、取得部１３０はセンサ５０から時系列データ１０７Ａを取得する（ステップＳ３）。検出部１３１Ａは、取得部１３０Ａからの時系列データ１０７Ａを分析し、分析の結果に基づき、上記に述べた疲労度とうまいか否かの特徴量を検出する（ステップＳ５）。
【００９９】
データ生成部１３２は、検出された疲労度とうまいか否かの特徴量からなる組の値に基づき、図２２のクラステーブル３０１Ａを検索し、当該組の値に対応した情報（クラスＡ〜Ｃのいずれかの値）を読出す（ステップＳ９）。
【０１００】
次に、データ生成部１３２は、読出された情報（クラスの値）に基づき制御情報群３０２Ａから当該情報に対応のアルゴリズムを読出し、実行し、表示データ１０８Ａおよび駆動データ１０８Ｂからなる制御データを生成し出力する（ステップＳ１１ａ）。ディスプレイ１２２には、表示データ１０８Ａに従い動作（運動）するキャラクタ画像１２Ａの動画像が表示される。
【０１０１】
ＣＰＵ１１０は、利用者１０の運動目標が達成できたか否かを判断する（ステップＳ１３）。目標が達成したと判断されると（ステップＳ１３でＹＥＳ）、図１１の処理は終了する。一方、目標は達成していないと判断されると（ステップＳ１３でＮＯ）、ステップＳ３の処理に戻り、以降の処理を同様に実施する。なお、目標は、ラリーの目標回数、または目標時間などに設定することができる。
【０１０２】
図２２を参照して、「卓球がうまい」の特徴量は、ラケットを持った腕振りの周期性が略一定周期であることを示す。また「卓球がうまくない」の特徴量は、当該周期は一定周期ではないことを示す。
【０１０３】
図２１では、組の値が（疲労していない，うまい）を示す場合はクラスＡ１が登録され、同様に、（疲労していない，上手くない）および（疲労している，うまい）を示す場合はクラスＢ１が登録され、（疲労している，上手くない）を示す場合はクラスＣ１が登録される。クラスＡ１の情報は、ボールの速度およびコース（移動軌跡）もランダムとなるように駆動データ１０８Ｂが生成されて出力される。したがって、利用者１０への負荷は大きくなって、利用者１０はモチベーションを維持しやすくなる。クラスＢ１の情報は、ボールの速度およびコース（移動軌跡）を利用者１０の返球の速度およびコースにマッチするように駆動データ１０８Ｂが生成されて出力される。したがって、利用者１０への負荷は調整されて、利用者１０はモチベーションを維持しやすくなる。クラスＣ１の情報は、遅いボールを中心位置に返球するように駆動データ１０８Ｂが生成されて出力される。したがって、利用者１０への負荷は小さくなって、利用者１０はモチベーションを維持しやすくなる。
【０１０４】
[実施の形態２の変形例]
実施の形態２の特徴量は、上記の疲労度，卓球がうまい等に限定されず、この変形例で示される他の特徴量であってもよい。図２３は、実施の形態２の変形例を表形式で説明する図である。図２４〜図２６は、図２３の特徴量の検出方法を模式的に示す図である。
【０１０５】
図２３を参照して、他の特徴量の種類としては、たとえば「人の成長」、「仮想相手（ロボット６０）の負荷」、「エキサイトの度合い」および「笑顔度」を含む。これら特徴量の種類毎に制御データ（表示データ１０８Ａ、駆動データ１０８Ｂ）を更新するタイミングと制御データの内容を異ならせて、利用者１０の運動に対するモチベーションを維持しやすくする。
【０１０６】
図２４を参照して、「人の成長」は、ラリーの往復数に基づき検出される。ロボット６０のＣＰＵ１１０は、上記に述べたフレーム単位の撮像画像に基づきボールの移動軌跡を検出し、検出した移動軌跡からラリーの往復数をカウントする。そして、（ラリーの往復数−閾値）＞ＧＴ）の条件が成立すると判定したとき、利用者１０が成長したとの特徴量を得る。なお、この閾値は、成長したと判定される毎に、（閾値＝閾値＋α）として更新される。また、図２４は、「人の成長」の判断に用いたが、ロボット６０の成長の判断に用いることもできる。
【０１０７】
図２５を参照して、「仮想相手（ロボット６０）の負荷」は、駆動部６２にかかるトルクに基づき検出される。ロボット６０のＣＰＵ１１０は、駆動部６２のモータのトルクを演算式に基づき定期的に算出し、ある時間ＭＳあたりに算出されたトルクの平均値をロボット６０の負荷として取得する。時間ＭＳは、たとえば１回のラリーの開始から終了までの時間に相当する。
【０１０８】
図２６を参照して、「エキサイト度合い」は、時系列データ１０７Ａから検出される利用者１０の頭の移動量を時間ＭＴあたりの平均値として得られる。時間ＭＴは、たとえば１回のラリーの開始から終了までの時間に相当する。
【０１０９】
また、「笑顔度」は、ＣＰＵ１１０は、利用者１０の撮像画像を用いて取得する。具体的には、ＣＰＵ１１０は、撮像画像から顔画像を抽出し、抽出した顔画像とパターン画像とを照合し、照合の結果に基づき、顔画像が笑顔を示すか否かを判定する。ＣＰＵ１１０は、１回のラリーの開始から終了までの時間において「笑顔」と判定された回数に基づき笑顔度を決定する。
【０１１０】
図２３を参照して、制御データを決定するための特徴量として「人の成長」を用いる場合には、データ生成部１３２Ａは、ラリーが途切れるときに当該制御データを生成し出力する。この制御データに含まれる表示データ１０８Ａは、利用者１０が自己の卓球プレーの成長を確認できる画像を表示するためデータを示す。
【０１１１】
図２３を参照して、制御データを決定するための特徴量として「仮想相手（ロボット６０）の負荷」を用いる場合には、データ生成部１３２Ａは、ラリーにおいて１往復する毎に当該制御データを生成し出力する。この制御データに含まれる表示データ１０８Ａは、利用者１０が、仮想相手が苦戦していることを確認できる画像を表示するためデータを示す。
【０１１２】
図２３を参照して、制御データを決定するための特徴量として「エキサイト度合い」を用いる場合には、データ生成部１３２Ａは、ラリーにおいて１往復する毎に当該制御データを生成し出力する。この制御データに含まれる駆動データ１０８Ｂは、エキサイト度合いが高いほど、利用者１０にかかる負荷が高くなるように駆動部６２を制御するデータを示す。
【０１１３】
図２３を参照して、制御データを決定するための特徴量として「笑顔度」を用いる場合には、データ生成部１３２Ａは、たとえばラリー継続中に１０秒毎に当該制御データを生成し出力する。この制御データに含まれる駆動データ１０８Ｂは、笑顔度が高いほど、利用者１０にかかる負荷が高くなるように駆動部６２を制御するデータを示す。
【０１１４】
[実施の形態３]
実施の形態３では、上記の各実施の形態における処理を制御コンピュータ１００，１００ＡのＣＰＵ１１０に実行させるためのプログラムプログラムが提供される。このようなプログラムは、制御コンピュータ１００，１００Ａに付属するフレキシブルディスク、ＣＤ−ＲＯＭ（Compact  Disk-Read  Only  Memory）、ＲＯＭ、ＲＡＭおよびメモリカード１２３などのコンピュータ読み取り可能な記録媒体にて記録させて、プログラム製品として提供することもできる。あるいは、制御コンピュータ１００，１００Ａに内蔵するハードディスク１１４などの記録媒体にて記録させて、プログラムを提供することもできる。また、図示しないネットワークから通信インタフェイス１２４を介したダウンロードによって、プログラムを提供することもできる。
【０１１５】
なお、プログラムは、制御コンピュータ１００，１００ＡのＯＳ（オペレーティングシステム）の一部として提供されるプログラムモジュールのうち、必要なモジュールを所定の配列で所定のタイミングで呼出して処理を実行させるものであってもよい。その場合、プログラム自体には上記モジュールが含まれずＯＳと協働して処理が実行される。このようなモジュールを含まないプログラムも、実施の形態５のプログラムに含まれ得る。
【０１１６】
また、実施の形態３にかかるプログラムは他のプログラムの一部に組込まれて提供されるものであってもよい。その場合にも、プログラム自体には上記他のプログラムに含まれるモジュールが含まれず、他のプログラムと協働して処理が実行される。このような他のプログラムに組込まれたプログラムも、実施の形態３にかかるプログラムに含まれ得る。
【０１１７】
提供されるプログラム製品は、ハードディスクなどのプログラム格納部にインストールされて実行される。なお、プログラム製品は、プログラム自体と、プログラムが記録された記録媒体とを含む。
【０１１８】
[実施の形態の構成]
各実施の形態においては、利用者１０の運動の仮想相手を用いて運動インストラクションを行う装置は、運動時の利用者の身体の動きの変化を取得する取得部１３０，１３０Ａと、取得される動きの変化から、複数種類の動きの特徴量を検出する検出部１３１，１３１Ａと、２種類以上の特徴量の値の組であって、異なる値の組のそれぞれに対応して仮想相手の出力を制御するための情報を記憶するための記憶部３００，３００Ａと、検出部により検出された２種類以上の特徴量の値の組に対応した記憶部の情報から、仮想相手の動きを制御するための制御データを生成するデータ生成部１３２，１３２Ａと、を備える。
【０１１９】
したがって、利用者１０の運動の複数種類の特徴量を用いて運動の仮想相手の動きを変化させることで、利用者１０に運動へのモチベーションを与えることができる。
【０１２０】
上記の仮想相手は、キャラクタ画像１２Ａを含み、動きの変化は、キャラクタ画像１２Ａをディスプレイ１２２に表示する場合の画像の変化を含む。
【０１２１】
したがって、利用者１０に対して、キャラクタ画像１２Ａの動きを介して運動へのモチベーションを与えることができる。
【０１２２】
上記の仮想相手は、駆動部６２を備えるロボット６０を含み、制御データは、駆動部６２に与える制御量を含む。したがって、利用者１０はロボット６０を仮想相手に運動した場合においても、運動へのモチベーションを得ることができる。
【０１２３】
上記の２種類以上の特徴量のうちの１つは、利用者１０の疲労度を含む。したがって、利用者１０に対して、その疲労度に基づきモチベーションを与えることができる。
【０１２４】
上記の２種類以上の特徴量のうちの１つは、利用者１０の運動量の仮想相手の運動量との相対的な差を含む。したがって、利用者１０に対して、仮想相手との運動量の相対的な差に基づきモチベーションを与えることができる。
【０１２５】
上記の制御するための情報は、制御データを生成するためにデータ生成部１３２，１３２Ａにより実行されるアルゴリズムを含む。したがって、アルゴリズムを実行することにより、利用者１０に対してモチベーションを与えるよう仮想相手を制御することができる。
【０１２６】
上記の制御するための情報は、制御データを生成するための処理に用いるパラメータの情報を含む。したがって、パラメータ情報を実行することにより、利用者１０に対してモチベーションを与えるよう仮想相手を制御することができる。
【０１２７】
今回開示された実施の形態は、すべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１２８】
１  システム、１０  利用者、１２Ａ  キャラクタ画像、５０  センサ、６０  ロボット、６１，２０３  コントローラ、６２，２０２  駆動部、６３  アーム、１００  制御コンピュータ、１０６  指令、１０７，１０７Ａ  時系列データ、１０８，１０８Ａ  制御データ、１３０，１３０Ａ  取得部、１３１，１３１Ａ  検出部、１３２，１３２Ａ  データ生成部、２００  トレッドミル、２０１  ワーキングベルト、３０１，３０１Ａ  クラステーブル、３０２，３０２Ａ  制御情報群、Ｃ，Ｕ  ピッチ、Ｄ  距離。
【図１】
2018051138.tif 000003
【図２】
2018051138.tif 000004
【図３】
2018051138.tif 000005
【図４】
2018051138.tif 000006
【図５】
2018051138.tif 000007
【図６】
2018051138.tif 000008
【図７】
2018051138.tif 000009
【図８】
2018051138.tif 000010
【図９】
2018051138.tif 000011
【図１０】
2018051138.tif 000012
【図１１】
2018051138.tif 000013
【図１２】
2018051138.tif 000014
【図１３】
2018051138.tif 000015
【図１４】
2018051138.tif 000016
【図１５】
2018051138.tif 000017
【図１６】
2018051138.tif 000018
【図１７】
2018051138.tif 000019
【図１８】
2018051138.tif 000020
【図１９】
2018051138.tif 000021
【図２０】
2018051138.tif 000022
【図２１】
2018051138.tif 000023
【図２２】
2018051138.tif 000024
【図２３】
2018051138.tif 000025
【図２４】
2018051138.tif 000026
【図２５】
2018051138.tif 000027
【図２６】
2018051138.tif 000028
【手続補正書】
【提出日】平成30年1月22日(2018.1.22)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
運動の仮想相手を用いて運動インストラクションを行う装置であって、
前記運動時の利用者の姿勢の経時変化を示す身体の動きの変化を取得する取得部と、
取得される前記動きの変化から、複数種類の動きの特徴量を検出する検出部と、
２種類以上の前記特徴量の値の組であって、異なる値の組のそれぞれに対応して前記仮想相手の出力を制御するための情報を記憶するための記憶部と、
前記検出部により検出された前記２種類以上の特徴量の値の組に対応した前記記憶部の情報から、前記仮想相手の動きを制御するための制御データを生成するデータ生成部と、を備える、運動インストラクション装置。
【請求項２】
前記仮想相手は、画像を含み、
前記仮想相手の動きは、前記画像を表示する場合の前記画像の変化を含む、請求項１に記載の運動インストラクション装置。
【請求項３】
前記仮想相手は、駆動部を備える機器を含み、
前記制御データは、前記駆動部に与える制御量を含む、請求項１に記載の運動インストラクション装置。
【請求項４】
前記２種類以上の特徴量のうちの１つは、前記利用者の疲労度を含む、請求項１から３のいずれか１項に記載の運動インストラクション装置。
【請求項５】
前記２種類以上の特徴量のうちの１つは、前記利用者の運動量の前記仮想相手の運動量との相対的な差を含む、請求項１から４のいずれか１項に記載の運動インストラクション装置。
【請求項６】
前記制御するための情報は、前記制御データを生成するために前記データ生成部により実行されるアルゴリズムを含む、請求項１から５のいずれか１項に記載の運動インストラクション装置。
【請求項７】
前記制御するための情報は、前記制御データを生成するための処理に用いるパラメータの情報を含む、請求項１から６のいずれか１項に記載の運動インストラクション装置。
【請求項８】
身体の動きを測定するセンサと、
運動の仮想相手を用いて運動インストラクションを行う装置と、を備え、
前記装置は、
前記センサの出力から、前記運動時の利用者の姿勢の経時変化を示す身体の動きの変化を取得する取得部と、
取得される前記動きの変化から、複数種類の動きの特徴量を検出する検出部と、
２種類以上の前記特徴量の値の組であって、異なる値の組のそれぞれに対応して前記仮想相手の出力を制御するための情報を記憶するための記憶部と、
前記検出部により検出された前記２種類以上の特徴量の値の組に対応した前記記憶部の情報から、前記仮想相手の動きを制御するための制御データを生成するデータ生成部と、を含む、システム。
【請求項９】
運動時の利用者の姿勢の経時変化を示す身体の動きの変化を取得するステップと、
取得される前記動きの変化から、複数種類の動きの特徴量を検出するステップと、
２種類以上の前記特徴量の値の組であって、異なる値の組のそれぞれに対応して前記仮想相手の出力を制御するための情報を記憶する記憶部から、検出された前記２種類以上の特徴量の値の組に対応した前記記憶部の情報を検索するステップと、
検索された情報から、前記仮想相手の動きを制御するための制御データを生成するステ
ップと、を含む、方法。
【請求項１０】
運動インストラクションンの方法をコンピュータに実行させるためのプログラムであって、
前記方法は、
運動時の利用者の姿勢の経時変化を示す身体の動きの変化を取得するステップと、
取得される前記動きの変化から、複数種類の動きの特徴量を検出するステップと、
２種類以上の前記特徴量の値の組であって、異なる値の組のそれぞれに対応して前記仮想相手の出力を制御するための情報を記憶する記憶部から、検出された前記２種類以上の特徴量の値の組に対応した前記記憶部の情報を検索するステップと、
検索された情報から、前記仮想相手の動きを制御するための制御データを生成するステップと、を含む、プログラム。