情報処理システム
【課題】通信装置が出力するセンサの計測結果を信頼できるか否か判断することのできる情報処理システムを提供する。
【解決手段】所定の情報を計測して計測結果を出力するセンサであって、使用場所に依存してその出力特性が変化するセンサを備える可搬型の通信装置と、当該通信装置と通信接続可能な据え置き型の情報処理装置と、を含み、当該情報処理装置は、通信接続された通信装置からセンサの計測結果を取得し、取得した計測結果を用いてセンサのキャリブレーションを実行し、センサの計測結果を利用するアプリケーションプログラムを実行し、当該アプリケーションプログラムを実行する際に、通信接続された通信装置についてキャリブレーションを実行済みか否か判定する情報処理システムである。
【解決手段】所定の情報を計測して計測結果を出力するセンサであって、使用場所に依存してその出力特性が変化するセンサを備える可搬型の通信装置と、当該通信装置と通信接続可能な据え置き型の情報処理装置と、を含み、当該情報処理装置は、通信接続された通信装置からセンサの計測結果を取得し、取得した計測結果を用いてセンサのキャリブレーションを実行し、センサの計測結果を利用するアプリケーションプログラムを実行し、当該アプリケーションプログラムを実行する際に、通信接続された通信装置についてキャリブレーションを実行済みか否か判定する情報処理システムである。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、センサを内蔵する通信装置、当該センサのキャリブレーション処理を行う情報処理装置、その制御方法、その制御プラグラム、及び当該通信装置と情報処理装置とを含む情報処理システムに関する。
【背景技術】
【0002】
センサの中には、その出力特性が周辺環境などに依存して変化するために、使用前にキャリブレーションを行う必要があるものが知られている。このようなセンサを使用する際には、予め、キャリブレーション処理として、例えば基準状態での出力値を計測するなどの方法でその出力特性を調査し、その出力特性に応じた補正値を算出する。その後、センサを用いた実際の計測を行う際には、この算出された補正値を用いてセンサの出力値を補正することにより、より真の値に近い計測値を取得することが可能になる。
【0003】
このようなセンサは、各種の機器に内蔵されている。例えば、家庭用ゲーム機のコントローラの中には、当該コントローラの姿勢や動きを検出するために、加速度センサ等のセンサを内蔵したものがある。
【発明の概要】
【発明が解決しようとする課題】
【0004】
上述したようなセンサが可搬型の通信装置に内蔵される場合、ある場所でキャリブレーションを実行したとしても、キャリブレーションによって得られた補正値は、別の場所では有効に機能しない場合があり得る。このような場合、通信装置と通信接続される情報処理装置は、通信装置が出力するセンサの計測結果を信頼できなくなってしまう。
【0005】
本発明は上記実情を考慮してなされたものであって、その目的の一つは、通信装置が出力するセンサの計測結果を信頼できるか否か判断することのできる情報処理装置、その制御方法、その制御プログラム、当該情報処理装置を含む情報処理システム、及び当該情報処理装置と接続される通信装置を提供することにある。
【課題を解決するための手段】
【0006】
本発明に係る情報処理システムは、可搬型の通信装置と、当該通信装置と通信接続可能な据え置き型の情報処理装置と、を含む情報処理システムであって、前記通信装置は、所定の情報を計測して計測結果を出力するセンサであって、使用場所に依存してその出力特性が変化するセンサを備え、前記情報処理装置は、通信接続された前記通信装置から、前記センサの計測結果を取得する手段と、前記取得した計測結果を用いて前記センサのキャリブレーションを実行するキャリブレーション手段と、前記センサの計測結果を利用するアプリケーションプログラムを実行するアプリケーション実行手段と、前記アプリケーションプログラムを実行する際に、通信接続された前記通信装置について、前記キャリブレーション手段がキャリブレーションを実行済みか否か判定する判定手段と、を含むことを特徴とする。
【0007】
前記情報処理システムにおいて、前記情報処理装置は、前記キャリブレーション手段がキャリブレーションを実行した際に、前記通信装置について前記情報処理装置がキャリブレーションを実行したことを示すフラグ情報を記憶手段に格納するフラグ情報格納手段をさらに含み、前記判定手段は、前記フラグ情報を参照して前記判定を行うこととしてもよい。
【0008】
さらに、前記情報処理装置は、前記通信装置との通信接続に先立って、前記通信装置との通信接続に必要な接続先情報を取得する接続先情報取得手段をさらに備え、前記フラグ情報格納手段は、前記接続先情報取得手段が前記通信装置の接続先情報を取得する際に、前記通信装置についてキャリブレーションが実行済みでないことを示すフラグ情報を記憶手段に格納し、前記接続先情報取得手段は、前記通信装置が他の情報処理装置と通信接続された後に再び前記通信装置との通信接続を行う場合には、前記通信装置の接続先情報を再取得することとしてもよい。
【0009】
また、前記情報処理システムでは、前記情報処理装置に対して複数の前記通信装置が通信接続可能であって、前記フラグ情報格納手段は、前記情報処理装置に対して通信接続可能な複数の前記通信装置のそれぞれに関連づけて、当該通信装置についてキャリブレーションを実行したか否かを示すフラグ情報を記憶手段に格納することとしてもよい。
【0010】
また、前記情報処理システムにおいて、前記判定手段は、前記アプリケーション実行手段が新たに前記アプリケーションプログラムの実行を開始する際に、前記判定を行うこととしてもよい。
【0011】
また、前記情報処理システムにおいて、前記判定手段は、前記アプリケーション実行手段が前記アプリケーションプログラムを実行中に、前記通信装置との間の通信接続が開始された場合に、前記判定を行うこととしてもよい。
【0012】
また、前記情報処理システムにおいて、前記通信装置は、前記キャリブレーション手段がキャリブレーションを実行した際に、当該キャリブレーションを実行した情報処理装置を特定する装置特定情報を前記情報処理装置から受信して記憶する手段を備え、前記判定手段は、通信接続された前記通信装置に記憶されている前記装置特定情報を用いて、前記判定を行うこととしてもよい。
【0013】
また、本発明に係る情報処理装置は、所定の情報を計測して計測結果を出力するセンサであって、使用場所に依存してその出力特性が変化するセンサを備える可搬型の通信装置と通信接続可能な据え置き型の情報処理装置であって、通信接続された前記通信装置から、前記センサの計測結果を取得する手段と、前記取得した計測結果を用いて前記センサのキャリブレーションを実行するキャリブレーション手段と、前記センサの計測結果を利用するアプリケーションプログラムを実行するアプリケーション実行手段と、前記アプリケーションプログラムを実行する際に、通信接続された前記通信装置について、前記キャリブレーション手段がキャリブレーションを実行済みか否か判定する判定手段と、を含むことを特徴とする。
【0014】
また、本発明に係る通信装置は、据え置き型の情報処理装置と通信接続可能な可搬型の通信装置であって、所定の情報を計測して計測結果を出力するセンサであって、使用場所に依存してその出力特性が変化するセンサと、前記センサの計測結果を用いて前記情報処理装置がキャリブレーションを実行して生成するキャリブレーションデータを、前記情報処理装置から受信して記憶する手段と、を備え、前記情報処理装置が前記センサの計測結果を利用するアプリケーションプログラムを実行する際には、前記情報処理装置が生成したキャリブレーションデータが前記通信装置に記憶されているか否か判定されることを特徴とする。
【0015】
また、本発明に係る情報処理装置の制御方法は、所定の情報を計測して計測結果を出力するセンサであって、使用場所に依存してその出力特性が変化するセンサを備える可搬型の通信装置と通信接続可能な据え置き型の情報処理装置の制御方法であって、通信接続された前記通信装置から、前記センサの計測結果を取得するステップと、前記取得した計測結果を用いて前記センサのキャリブレーションを実行するキャリブレーションステップと、前記センサの計測結果を利用するアプリケーションプログラムを実行するアプリケーション実行ステップと、前記アプリケーションプログラムを実行する際に、通信接続された前記通信装置について、前記キャリブレーションステップによるキャリブレーションを実行済みか否か判定する判定ステップと、を含むことを特徴とする。
【0016】
また、本発明に係るプログラムは、所定の情報を計測して計測結果を出力するセンサであって、使用場所に依存してその出力特性が変化するセンサを備える可搬型の通信装置と通信接続可能な据え置き型の情報処理装置を制御するプログラムであって、通信接続された前記通信装置から、前記センサの計測結果を取得する手段、前記取得した計測結果を用いて前記センサのキャリブレーションを実行するキャリブレーション手段、前記センサの計測結果を利用するアプリケーションプログラムを実行するアプリケーション実行手段、及び、前記アプリケーションプログラムを実行する際に、通信接続された前記通信装置について、前記キャリブレーション手段がキャリブレーションを実行済みか否か判定する判定手段、として前記情報処理装置を機能させるためのプログラムである。このプログラムは、コンピュータ読み取り可能な情報記憶媒体に記憶されてよい。
【図面の簡単な説明】
【0017】
【図1】本発明の実施の形態に係る情報処理システムの全体概要を示す図である。
【図2】操作デバイス(通信装置)の斜視図である。
【図3】操作デバイス内の基板配置を示す図である。
【図4】情報処理装置の内部構成を示すブロック図である。
【図5】情報処理装置に格納されるフラグ情報の内容を示す説明図である。
【図6】情報処理装置の機能を示す機能ブロック図である。
【図7】ペアリング処理の流れの一例を示す図である。
【図8】キャリブレーション処理の流れの一例を示す図である。
【図9】キャリブレーション処理の流れの一例を示す図である。
【図10】キャリブレーション動作の案内画像の一例を示す図である。
【図11】キャリブレーション動作の案内画像の一例を示す図である。
【図12】キャリブレーション動作の案内画像の一例を示す図である。
【図13】キャリブレーション動作の案内画像の一例を示す図である。
【図14】キャリブレーション動作の案内画像の一例を示す図である。
【図15】キャリブレーション動作の案内画像の一例を示す図である。
【図16】キャリブレーション動作の案内画像の一例を示す図である。
【図17】キャリブレーション動作の案内画像の別の例を示す図である。
【図18】アプリケーションプログラム起動時の処理の流れの一例を示す図である。
【図19】アプリケーションプログラムの実行中に操作デバイスが接続された場合に実行される処理の流れの一例を示す図である。
【発明を実施するための形態】
【0018】
以下、本発明の実施の形態について、図面に基づき詳細に説明する。
【0019】
図1は、本発明の一実施形態に係る情報処理システム1の利用シーンを示す全体概要図である。同図に示すように、情報処理システム1は、ユーザが手で把持して使用する可搬型の操作デバイス(通信装置)10と、据え置き型の情報処理装置30と、を含んで構成される。情報処理装置30は、例えば家庭用ゲーム機やパーソナルコンピュータ等であって、撮像装置31及び表示装置32と接続される。
【0020】
操作デバイス10は、ユーザが容易に持ち運ぶことのできるサイズ及び重量の可搬型の通信装置であって、Bluetooth(登録商標)規格などの無線通信インタフェースを介して情報処理装置30と通信接続可能になっている。なお、1台の情報処理装置30に対して、複数の操作デバイス10が接続可能である。情報処理システム1のユーザは、操作デバイス10を手で把持して、操作デバイス10に設けられた操作ボタン等を操作する。これに応じて、ユーザの操作内容が無線通信インタフェースを介して情報処理装置30に対して送信される。また、本実施形態では、操作デバイス10は発光部12を備えており、発光部12は情報処理装置30からの指示に応じて発光する。撮像装置31は、この発光部12から発せられる光を撮像し、撮像された画像を情報処理装置30に対して出力する。さらに、操作デバイス10は地磁気センサを備えており、この地磁気センサによる計測結果を情報処理装置30に送信する。情報処理装置30は、撮像装置31の撮像画像内における発光部12の位置や大きさと、操作デバイス10が内蔵する地磁気センサの計測結果とを用いて、操作デバイス10の姿勢(位置や向き)を特定する。これにより、ユーザは操作デバイス10に設けられた操作ボタン等を操作するだけでなく、操作デバイス10自体を動かすことによって、情報処理装置30に対する操作入力を行うことができる。
【0021】
操作デバイス10は、図2の斜視図に示されるように、本体部11及び発光部12を備えており、本体部11の側面にはユーザによる操作対象となる複数の操作ボタンが配置されている。ユーザは、本体部11の中央近傍を把持して、各操作ボタンを指で押下する操作入力を行う。なお、以下では、操作デバイス10の左右方向をX軸、上下方向(長手方向)をY軸、奥行き方向(厚さ方向)をZ軸と表記する。
【0022】
本体部11は、全体として円柱状に形成されており、その一端に発光部12が取り付けられている。発光部12は、シリコーン樹脂等の光を透過する素材で形成された球状の外殻と、その内部に配置された複数のLEDと、を含んで構成される。本実施形態では、光の3原色に対応する3個のLEDがそれぞれ情報処理装置30からの指示に応じた強度で発光することにより、発光部12が様々な色で発光する。
【0023】
また、本体部11内には、基板20が配置されている。図3は操作デバイス10内における基板20の配置を示す図であって、本体部11の筐体の一部を取り外した状態の操作デバイス10を、背面側から見た様子を示している。同図に示すように、基板20は略矩形状であって、操作デバイス10のX軸及びY軸に平行な向きで配置されている。
【0024】
図3に示すように、基板20の操作デバイス10背面側の面には、地磁気センサ21が配置されている。本実施形態では、地磁気センサ21は3軸地磁気センサであって、操作デバイス10のXY平面、YZ平面、及びZX平面を基準面として、これらの基準面それぞれに対する地磁気の傾きを計測するものとする。この各面の地磁気の計測結果の時間変化を解析することで、操作デバイス10の向きの変化が特定できる。図から明らかなように、地磁気センサ21は、基板20上の発光部12に近い側の端部に配置されている。
【0025】
地磁気センサ21の計測結果は、地磁気センサ21が使用される場所の磁場環境に依存してその出力特性が変化する場合がある。つまり、地磁気センサ21は、使用場所に固有の磁場の影響を受けて、計測結果が本来の地磁気の向きからずれてしまう場合がある。そのため、例えば工場出荷時に地磁気センサ21のキャリブレーションを行ったとしても、実際にユーザが自分の自宅などで操作デバイス10を使用する際に、キャリブレーションをやり直したほうが望ましい場合がある。そこで本実施形態では、操作デバイス10に対する操作入力によって動作する情報処理装置30が、操作デバイス10に内蔵された地磁気センサ21のキャリブレーション処理を実行できるようになっている。
【0026】
なお、図には示されていないが、操作デバイス10には、地磁気センサ21のほかにも、例えば加速度センサやジャイロセンサなど、操作デバイス10の姿勢やその変化を検出するための各種のセンサが内蔵されてよい。
【0027】
次に、情報処理装置30の構成について説明する。情報処理装置30は、例えば家庭用ゲーム機やパーソナルコンピュータ等であって、ユーザの自宅内などに設置されて使用される据え置き型の装置であることとする。情報処理装置30は、図4に示すように、制御部33と、記憶部34と、通信部35と、を含んで構成され、撮像装置31及び表示装置32と接続されている。
【0028】
制御部33は、CPU等のプログラム制御デバイスであって、記憶部34に記憶されているプログラムに従って各種の情報処理を行う。本実施形態において制御部33が実行する処理については、後述する。
【0029】
記憶部34は、RAMやROM等のメモリ素子、またハードディスク等のディスクデバイスを含んで構成され、制御部33が実行するプログラム、及び制御部33が実行する処理に用いられる各種のデータを記憶する。また、記憶部34は、制御部33のワークメモリとしても機能する。特に本実施形態では、操作デバイス10から送信されるセンサの計測結果等の情報が、記憶部34内に一時的に記憶される。
【0030】
また、記憶部34のうち、情報処理装置30の電源オフ時にもデータが消去されない記憶領域(例えば不揮発性メモリ等)には、当該情報処理装置30に接続される操作デバイス10に関する情報、及び、これらの操作デバイス10に内蔵されている地磁気センサ21の利用に関する各種のフラグ情報が記憶される。具体的に、記憶部34には、図5に示すようなフラグ情報が格納される。以下、これらの情報について説明する。
【0031】
第1に、情報処理装置30の記憶部34には、当該情報処理装置30に接続可能な操作デバイス10の接続先情報が後納される。前述したように、情報処理装置30には複数の操作デバイス10が接続可能なので、記憶部34は、これら複数の操作デバイス10のそれぞれについて、その接続先情報を記憶する。ここで、接続先情報は、情報処理装置30が通信相手の操作デバイス10を特定し、通信接続を行うために必要な情報であって、例えばBluetooth機器アドレスなどであってよい。ユーザは、新たに購入するなどした操作デバイス10を情報処理装置30と接続して使用する際には、まず、その接続先情報を情報処理装置30に登録する必要がある。Bluetooth機器の場合、このような接続先情報を通信相手と交換して、通信相手の接続先情報を登録する処理を、ペアリング処理という。
【0032】
さらに、これら接続可能な操作デバイス10の接続先情報のそれぞれに対して、その操作デバイス10に内蔵された地磁気センサ21のキャリブレーションを実行したか否かを示すキャリブレーション実行済みフラグF1が関連づけて記憶される。図5から明らかなように、キャリブレーション実行済みフラグF1は、複数の操作デバイス10のそれぞれについて、独立に用意される。このキャリブレーション実行済みフラグF1は、対応する操作デバイス10について、地磁気センサ21のキャリブレーションを当該情報処理装置30が実行したか否かを示すフラグであって、情報処理装置30がキャリブレーション処理を実行した際には、キャリブレーションが実行済みであることを示す値(ここでは「Y」とする)が格納される。なお、最初に情報処理装置30に操作デバイス10の接続先情報が記憶される際には、キャリブレーション実行済みフラグF1は、キャリブレーションが実行済みでないことを示す値(ここでは「N」とする)で初期化される。
【0033】
第2に、情報処理装置30の記憶部34には、地磁気センサ21の利用可否を示す地磁気センサ利用フラグF2が格納される。この地磁気センサ利用フラグF2は、情報処理装置30が、自分自身の実行する処理において、操作デバイス10に内蔵された地磁気センサ21を利用するか否かを示すフラグである。地磁気センサ利用フラグF2に、地磁気センサ21を利用しないことを示す値(ここでは「N」とする)が格納されている場合、情報処理装置30は、後述するアプリケーション実行部44の処理において、地磁気センサ21の計測結果を利用しないこととする。一方、地磁気センサ利用フラグF2に、地磁気センサ21を利用することを示す値(ここでは「Y」とする)が格納されている場合、情報処理装置30は、地磁気センサ21の計測結果を利用することができる。なお、この地磁気センサ利用フラグF2は、情報処理装置30に接続される操作デバイス10の個体とは無関係な情報である。すなわち、地磁気センサ利用フラグF2は、1つの情報処理装置30に対して1つだけ用意されるフラグ情報であって、その値が「N」の場合、どの操作デバイス10が接続された場合であっても、その中に内蔵される地磁気センサ21の計測結果は利用されないことになる。例えば情報処理装置30が設置される場所の周囲の磁場環境によっては、地磁気センサ21による地磁気の計測が困難な場合がある。このような場合、ユーザは情報処理装置30に対する指示操作を行って、地磁気センサ利用フラグF2の値を「N」に変更することにより、地磁気センサ21の計測結果をアプリケーションプログラムに利用させないようにすることができる。
【0034】
通信部35は、操作デバイス10が備える通信インタフェースと同規格の通信インタフェースであって、操作デバイス10との間で情報の送受信を実行する。本実施形態では、通信部35は、操作デバイス10との間で通信接続を行うための通信インタフェースとして、Bluetooth規格に基づく無線通信インタフェース、及びUSB(Universal Serial Bus)規格に基づく有線通信インタフェースを備えることとする。なお、通信部35は、前述した接続先情報を用いて接続先の操作デバイス10を特定して、無線通信を行う。
【0035】
以下、本実施形態において情報処理装置30が実現する機能について、説明する。図6に示すように、情報処理装置30は、機能的に、操作デバイス管理部41と、操作デバイス情報受信部42と、キャリブレーション処理部43と、アプリケーション実行部44と、フラグ情報判定部45と、を含んで構成される。これらの機能は、制御部33が記憶部34に格納されたプログラムを実行することにより、実現される。このプログラムは、例えばインターネット等の通信ネットワークを介して情報処理装置30に提供されてもよいし、光ディスク等のコンピュータ読み取り可能な各種の情報記憶媒体に格納されて提供されてもよい。
【0036】
操作デバイス管理部41は、当該情報処理装置30に接続される操作デバイス10に関する情報を管理する。具体的に、操作デバイス管理部41は、情報処理装置30に対して接続される可能性のある複数の操作デバイス10について、これらの操作デバイス10との間の通信接続に必要な接続先情報を取得し、記憶部34に格納する。特に操作デバイス管理部41は、ユーザが、情報処理装置30にまだ接続先情報が記憶されていない新たな操作デバイス10を使用しようとしたときに、この操作デバイス10の接続先情報を取得するとともに、操作デバイス10に対して自身の接続先情報を提供するペアリング処理を行う。
【0037】
操作デバイス情報受信部42は、所定時間おき(例えば11.25msおき)に、操作デバイス10が送信する情報を受信する。ここで、操作デバイス10から受信する情報には、操作デバイス10が備える操作ボタンに対してユーザが行った操作の内容を示す情報が含まれる。また、操作デバイス10が備える地磁気センサ21の計測結果を示す情報(以下、地磁気情報という)も含まれる。
【0038】
キャリブレーション処理部43は、操作デバイス情報受信部42が取得した地磁気情報を用いて、地磁気センサ21のキャリブレーション処理を実行する。ここで、キャリブレーション処理部43が実行するキャリブレーション処理は、情報処理装置30に接続する複数の操作デバイス10のうち、特定の一つの操作デバイス10をキャリブレーション対象デバイスとして、そのキャリブレーション対象デバイスに内蔵された地磁気センサ21の出力結果の補正に用いる補正値を算出する処理である。特に本実施形態では、このキャリブレーション処理は、ユーザがキャリブレーション対象デバイスの姿勢を変化させている間に、地磁気センサ21の計測結果を取得することにより、行われる。そのため、キャリブレーション処理部43は、キャリブレーション対象デバイスの姿勢をどのように変化させるべきかをユーザに案内する案内画像Igを表示装置32の画面に表示させながら、キャリブレーション処理を実行する。
【0039】
アプリケーション実行部44は、ゲーム等のアプリケーションプログラムの処理を実行する。本実施形態では、アプリケーション実行部44は、操作デバイス情報受信部42が取得した地磁気情報を用いた処理を実行することとする。例えばアプリケーション実行部44は、ユーザが操作デバイス10を動かした結果得られる地磁気の向きの変化に基づいて、ゲームに登場するキャラクタやオブジェクトを移動させる処理を実行する。
【0040】
フラグ情報判定部45は、記憶部34に記憶されているキャリブレーション実行済みフラグF1の情報を参照して、現在接続中の操作デバイス10について、地磁気センサ21のキャリブレーション処理が実行済みか否かを判定する。フラグ情報判定部45は、このようなフラグ情報の判定処理を、例えばアプリケーション実行部44がアプリケーションプログラムをロードしてその処理を開始する前に実行する。あるいは、フラグ情報判定部45は、アプリケーション実行部44による処理の実行中に新たな操作デバイス10の接続が検知された場合にも、フラグ情報の判定処理を実行してもよい。
【0041】
なお、フラグ情報判定部45が実現する機能は、アプリケーション実行部44が実行するアプリケーションプログラムの種類によらず、地磁気センサ21の計測結果を利用するアプリケーションプログラムに共通して行われる処理である。そのため、フラグ情報判定部45の機能は、操作デバイス管理部41やキャリブレーション処理部43と同様に、アプリケーションプログラムとは別のシステムプログラムを制御部33が実行することにより実現されてよい。あるいは、アプリケーション実行部44の機能と同様に制御部33がアプリケーションプログラムを実行することにより実現されてもよい。
【0042】
以下、操作デバイス管理部41が実行するペアリング処理の具体例について、図7のフロー図を用いて説明する。なお、本実施形態では、情報処理装置30と操作デバイス10とがUSBケーブルを介して接続されることを契機として、ペアリング処理が開始されることとする。ただし、これに限らず、例えば一般的なBluetooth機器と同様に、無線通信によってペアリング処理を実行することとしてもよい。
【0043】
まず、ユーザがUSBケーブルを用いて情報処理装置30に対してペアリング対象の操作デバイス10を接続する(S1)と、操作デバイス10は、自分自身が有線通信にて他の通信機器と接続されたことを検知する。これに応じて、操作デバイス10は、USBのプロトコルに従って、自分自身の機器種別などの情報を情報処理装置30に対して送信する。操作デバイス管理部41は、この情報を受信して、USB接続された機器の種別判定を行う(S2)。
【0044】
S2の処理の結果、USB接続されたのがペアリング対象の操作デバイス10であることを判別すると、操作デバイス管理部41は、操作デバイス10との間で、接続先情報の交換を行う(S3)。すなわち、操作デバイス管理部41は、情報処理装置30の接続先情報を操作デバイス10に送信するとともに、操作デバイス10から当該操作デバイス10の接続先情報を受信する。
【0045】
操作デバイス管理部41は、S3で交換された接続先情報を用いて、接続された操作デバイス10が、既にペアリング済みの操作デバイス10か否かを判定する(S4)。このとき、S3で受信した操作デバイス10の接続先情報が、図5に示すような接続可能な操作デバイス10のリストに含まれていなければ、ペアリング済みでないと判定される。一方、本実施形態では、たとえS3で受信した操作デバイス10の接続先情報が接続可能な操作デバイス10のリストに含まれていたとしても、必ずしもペアリング済みであると判定されるとは限らない。例えば操作デバイス10が第1の情報処理装置30とペアリングされた後、第2の情報処理装置30とペアリングされた場合、操作デバイス10からは第1の情報処理装置30の接続先情報は消去される。操作デバイス10は、同時に複数の情報処理装置30とペアリングされた状態を維持することができないように制限されているからである。この場合、再び操作デバイス10が第1の情報処理装置30とUSB接続された場合には、第1の情報処理装置30は当該操作デバイス10の接続先情報を記憶部34に記憶しているにもかかわらず、操作デバイス10と第1の情報処理装置30との間で改めてペアリングが行われることになる。このような制御を可能にするために、操作デバイス管理部41は、USB接続された操作デバイス10から、S3で送信した情報処理装置30の接続先情報が記憶されていたか否かの判定結果を受信する。そして、操作デバイス10側、及び情報処理装置30側の双方がS3で交換した相手の接続先情報を既に記憶していた場合に限って、今回接続された操作デバイス10がペアリング済みであると判定する。
【0046】
S4の判定により、今回接続された操作デバイス10がペアリング済みであると判定された場合、操作デバイス管理部41は、改めてペアリング処理を行う必要はないので、処理を終了する。一方、ペアリング済みでないと判定された場合、操作デバイス10、及び情報処理装置30の双方が、S3で交換された相手の接続先情報を記録して、ペアリング処理を行う(S5)。なお、このとき操作デバイス管理部41は、操作デバイス10との間で、通信接続に必要なその他の情報(例えば暗号化キーの生成に必要な乱数情報など)を送受信してもよい。
【0047】
さらに本実施形態において、操作デバイス管理部41は、S5で操作デバイス10とのペアリング処理を行った場合、当該操作デバイス10に関連づけて、キャリブレーション実行済みフラグF1を記録する(S6)。このとき、キャリブレーション実行済みフラグF1の値は、「N」で初期化される。
【0048】
以上の処理により、新たな操作デバイス10が情報処理装置30に接続される際には、必ず当該操作デバイス10に関連づけられたキャリブレーション実行済みフラグF1が用意され、その値は「N」で初期化されることになる。
【0049】
次に、キャリブレーション処理部43が実行するキャリブレーション処理の具体例について、説明する。例えばユーザは、操作デバイス10の操作ボタン等を操作することによって、情報処理装置30のシステムメニュー画面を呼び出し、その中からキャリブレーションの実行開始を示すメニュー項目を選択する。これにより、キャリブレーション処理が開始される。図8及び図9は、キャリブレーション処理部43が実行するキャリブレーション処理の流れを示すフロー図である。
【0050】
まずキャリブレーション処理部43は、キャリブレーションの対象となる操作デバイス10の選択を促す画面を表示し、ユーザによる操作デバイス10の選択を待つ(S11)。ユーザは、既にペアリング処理が実行されて情報処理装置30と接続可能な状態になっている操作デバイス10のうち、キャリブレーション処理を行いたい操作デバイス10を選んで、その操作ボタンを操作する。情報処理装置30は、その操作内容を示す信号を受け付けることによって、キャリブレーション対象デバイスを決定する(S12)。
【0051】
その後、キャリブレーション処理部43は、地磁気センサ利用フラグF2を参照して、地磁気センサ21の利用が可能か否かを判定する(S13)。フラグF2の値が「N」であれば、地磁気センサ21を有効にするか否かを問い合わせる画面を表示し(S14)、ユーザによる選択を受け付ける(S15)。この問い合わせ画面が表示された状態で、ユーザがキャリブレーション対象デバイスの操作ボタンを操作することによって、地磁気センサ21を有効にすることを選択した場合、キャリブレーション処理部43は、フラグF2の値を「Y」に更新して(S16)、S17に進み、キャリブレーション処理を続行する。一方、ユーザが地磁気センサ21を有効にすることを選択しなかった場合、キャリブレーション処理部43は、キャリブレーション処理を終了する。
【0052】
S13において地磁気センサ21の利用が可能と判定した場合(すなわち、フラグF2の値が「Y」だった場合)、又はS15においてユーザが地磁気センサ21を有効にすることを選択した場合、キャリブレーション処理部43は、キャリブレーション処理の開始をユーザに案内するために、キャリブレーション対象デバイスの発光部12を所定の色で発光させる制御信号を出力する(S17)。
【0053】
その後、キャリブレーション処理部43は、表示装置32の画面に、キャリブレーション処理においてユーザが行うべき動作(キャリブレーション動作)を案内する案内画像Igを表示する(S18)。案内画像Igは、ユーザがどのようにキャリブレーション動作を行うべきかをユーザに知らせる画像であって、時間とともに変化する動画像である。なお、本実施形態では、ユーザにいきなりキャリブレーション動作を実行させるのではなく、まずキャリブレーション動作の練習を行わせることとしている。そのため、S18では、練習であることを示す表示とともに、キャリブレーション動作の案内画像Igを表示する。ユーザは、この案内画像Igを見ながら、実際にキャリブレーション対象デバイスの向きを変化させる動作(すなわち、キャリブレーション対象デバイスを回転させる動作)を行って、その概要を把握する。
【0054】
案内画像Igの表示が終了すると、続いてキャリブレーション処理部43は、キャリブレーション処理を続行するか否か確認する確認画面を表示して(S19)、ユーザの選択を受け付ける(S20)。この確認画面が表示された状態でユーザがキャリブレーション対象デバイスを操作することにより、処理の終了を選択した場合、キャリブレーション処理部43は、処理を終了する。一方、ユーザが処理の続行を選択した場合、キャリブレーション処理部43は、本番のキャリブレーション処理を開始する。なお、図には示されていないが、ユーザの選択に応じて、キャリブレーション処理部43は、S18に戻って再度練習用の案内画像Igを表示してもよい。
【0055】
S20でキャリブレーション処理の続行が選択されると、キャリブレーション処理部43は、キャリブレーション動作をユーザに案内する案内画像Igの表示を開始し(S21)、それと同時に、キャリブレーション対象デバイスから送信される地磁気情報の取得を開始する(S22)。なお、S21で表示される案内画像Igは、練習であることを示す表示を行わない点を除いて、S18で表示される練習用の案内画像Igと同様の動画像であってよい。なお、キャリブレーション動作の案内画像Igの具体的な内容については、後述する。
【0056】
案内画像Igの表示が終わると、キャリブレーション処理部43は、その間に操作デバイス情報受信部42が受信した地磁気情報を用いて、地磁気センサ21の補正に用いる補正値(キャリブレーションデータ)の算出を行う(S23)。そして、キャリブレーション処理部43は、算出された補正値が、所定の範囲内に含まれるか否かを判定する(S24)。所定の範囲に含まれない場合、例えばユーザが案内画像Igに従ったキャリブレーション動作を行わなかったなどの理由で、正しくキャリブレーション処理が実行できていないと推定される。そのため、キャリブレーション処理部43は、エラーメッセージを出力して(S25)、処理を終了する。なお、ここでは処理を終了することとしたが、ユーザの選択に応じて、S18又はS21に戻ってキャリブレーション処理を再実行してもよい。
【0057】
一方、S24で補正値が所定の範囲に含まれていると判定された場合、キャリブレーション処理部43は、算出された補正値をキャリブレーション対象デバイスに送信する(S26)。キャリブレーション対象デバイスは、このS26で送信された補正値を受信して、内蔵しているメモリに書き込む。そして、それ以降、地磁気センサ21の計測結果を情報処理装置30に送信する場合には、この補正値を用いて補正された値を出力する。
【0058】
最後に、キャリブレーション処理部43は、キャリブレーション対象デバイスに関連づけられたキャリブレーション実行済みフラグF1の値を、「Y」に更新して(S27)、キャリブレーション処理を終了する。
【0059】
このように、情報処理装置30がキャリブレーション処理を実行した際にキャリブレーション実行済みフラグF1の値を更新することによって、キャリブレーションデータ自体は操作デバイス10側に記憶されるにも関わらず、情報処理装置30は、当該情報処理装置30に接続可能な複数の操作デバイス10のそれぞれについて、キャリブレーション処理が実行済みか否か管理することができる。
【0060】
特に本実施形態では、操作デバイス10は、ハードウェアの制約等により、情報処理装置30のキャリブレーション処理部43が実行するキャリブレーション処理によって算出されるキャリブレーションデータを、1セットしか保持しないことを想定している。ところが、既に述べたように、地磁気センサ21の出力特性は、地磁気センサ21の個体差だけでなく、操作デバイス10の使用場所の磁場環境に応じて変化してしまう。そのため、仮に第1の情報処理装置30を用いて地磁気センサ21のキャリブレーション処理を実行した後、この第1の情報処理装置30とは別の場所に設置された第2の情報処理装置30に当該操作デバイス10を接続しようとした場合、この操作デバイス10に記憶されたキャリブレーションデータを用いても、第2の情報処理装置30の設置場所における磁場環境では望ましい条件での補正を行えないことがあり得る。このような場合に、第2の情報処理装置30は、自分自身が記憶するキャリブレーション実行済みフラグF1の値を参照することによって、接続された操作デバイス10に記憶されているキャリブレーションデータが、自分自身のキャリブレーション処理によって生成されたものか否かを判別できる。
【0061】
また、この例において、第2の情報処理装置30と操作デバイス10がペアリングされた後、再び操作デバイス10を第1の情報処理装置30とペアリングして使用する場合について考える。この場合、過去に第1の情報処理装置30が操作デバイス10のキャリブレーション処理を実行し、その結果第1の情報処理装置30が当該操作デバイス10に関連づけられたキャリブレーション実行済みフラグF1の値として「Y」を記憶していたとしても、既に述べたように、第1の情報処理装置30が再度のペアリング処理を実行する際に、当該操作デバイス10に関連づけられたキャリブレーション実行済みフラグF1の値を、「N」に初期化することになる。つまり、第1の情報処理装置30は、たとえ過去にある操作デバイス10のキャリブレーション処理を実行したとしても、その操作デバイス10がその後に第2の情報処理装置30とペアリングされ、その結果第2の情報処理装置30の設置場所でキャリブレーション処理をやり直した可能性がある場合には、当該操作デバイス10のキャリブレーション処理を実行済みでないと判断することになる。このことによって、第1の情報処理装置30が記憶するキャリブレーション実行済みフラグF1の値は、当該第1の情報処理装置30の設置場所以外の場所で生成されたキャリブレーションデータが操作デバイス10に記憶されている可能性がある場合には「N」となり、当該操作デバイス10に記憶されたキャリブレーションデータが第1の情報処理装置30のキャリブレーション処理によって生成されたものであることが確実な場合だけ「Y」となることが保証される。
【0062】
ここで、キャリブレーション動作の案内画像Igの表示例について、図10〜図16を用いて説明する。これらの図は、1回のキャリブレーション動作を行う際に表示装置32の画面に表示される案内画像Igの時間変化を順に示している。本実施形態では、地磁気センサ21は操作デバイス10に設定された3つの基準面(XY平面、YZ平面、ZX平面)のそれぞれを基準として、地磁気の大きさを計測する。そのため、キャリブレーションを行う際には、ユーザがキャリブレーション対象デバイスを回転させることにより、キャリブレーション対象デバイスの向きを上下左右前後の6方向それぞれに変化させた状態で、地磁気の計測を行うことが望ましい。さらに、このようなキャリブレーション対象デバイスを回転させる動作は、実空間における地磁気センサ21の位置をなるべく変化させないようにしながら行うことが望ましい。
【0063】
ここで、ユーザに対してただキャリブレーション対象デバイスを回転させる動作を指示しただけの場合、ユーザは、自分が把持している部分を中心にキャリブレーション対象デバイスを回転させると想定される。ところが、図3に示されるように、地磁気センサ21は、本体部11の長手方向の中心位置よりは発光部12に近い位置に配置されている。そのため、ユーザが本体部11の中心近傍を把持して、その部分を回転中心としてキャリブレーション対象デバイスを回転させた場合、地磁気センサ21の位置は実空間内で比較的大きく変化してしまうことになる。
【0064】
そこで本実施形態では、発光部12を回転中心としてキャリブレーション対象デバイスを回転させるように、ユーザに対する案内画像Igを表示する。これにより、本体部11の中心位置を回転中心としてキャリブレーション対象デバイスを回転させる場合と比較して、地磁気センサ21の位置の変化を小さくすることができる。なお、地磁気センサ21が配置されている位置は外部からは分かりにくいため、地磁気センサ21の配置位置に比較的近く、特徴的な形状の部材であって、かつユーザが持ちやすい発光部12を回転中心とさせることで、ユーザが容易に案内画像Igの通りにキャリブレーション動作を行えるようにしている。
【0065】
具体的に、まずキャリブレーション処理部43は、図10に示すように、キャリブレーション対象デバイスを所定の向きでユーザが保持する様子を示す案内画像Igを表示装置32の画面に表示する。なお、図10の案内画像Igには、キャリブレーション対象デバイスを示すデバイス画像Idのほか、当該キャリブレーション対象デバイスを保持するユーザの左手及び右手をそれぞれ示す左手画像Ih1及び右手画像Ih2が含まれている。
【0066】
さらに、図10において、キャリブレーション処理部43は、実空間上に仮想的に配置された基準軸を示す基準軸画像Ix,Iy及びIzを案内画像Igに含めて表示している。ここで、基準軸画像Ix,Iy,及びIzは、ユーザがキャリブレーション対象デバイスを回転させるべき向きを示すとともに、デバイス画像Idとの相対的な位置関係によって、キャリブレーション対象デバイスのどの位置を回転中心としてキャリブレーション対象デバイスを回転させるべきかをも示している。具体的に、基準軸画像Ix,Iy,及びIzは、それぞれ、互いに直交するx軸、y軸及びz軸を示しており、x軸及びy軸は水平面内に設定された基準軸を、z軸は鉛直方向に沿って設定された基準軸を、それぞれ示している。また、x軸はユーザに対して左から右に向かう方向が正方向となるように設定され、y軸はユーザに対して手前から奥側(表示装置32側)に向かう方向が正方向となるように設定され、z軸は鉛直下方から上方に向かう方向が正方向となるように設定されているものとする。図10の案内画像Igは、キャリブレーション対象デバイスが、3つの基準軸画像Ix,Iy及びIzが交差する原点位置から、y軸負方向に沿って配置された状態を示している。
【0067】
その後、キャリブレーション処理部43は、図11から図16に示すように、ユーザに対して、順にキャリブレーション対象デバイスを回転させる動作を促す案内画像Igを表示する。すなわち、まず図11に示すように、図10に示した初期状態の案内画像Igに対して、キャリブレーション対象デバイスを回転させるべき回転方向を示す矢印画像Iaを追加した案内画像Igを表示する。図11では、z軸を回転中心として水平面内で反時計回りにキャリブレーション対象デバイスを回転させる動作を指示する矢印画像Iaが表示されている。
【0068】
続いて、そのままz軸を回転中心としてキャリブレーション対象デバイスを回転させる動作を案内する案内画像Igが、順に表示される。すなわち、図11の案内画像Igが表示された後には、x軸正方向に沿った位置にキャリブレーション対象デバイスが移動した様子を示すデバイス画像Idが表示され、その後、さらにキャリブレーション対象デバイスをそのまま回転させる動作を指示する矢印画像Ia(X軸正方向からY軸正方向への回転を示す矢印画像Ia)が表示される。図12は、このようなデバイス画像Id及び矢印画像Iaを含んだ案内画像Igを示している。その後は、図13に示すように、y軸正方向に沿ってキャリブレーション対象デバイスが配置された様子を示す案内画像Igが表示され、その次には、x軸負方向に沿ってキャリブレーション対象デバイスが配置された様子を示す案内画像Igが表示される。
【0069】
この状態で、次にキャリブレーション処理部43は、ユーザに対して、y軸を回転中心とした回転動作をユーザに指示する案内画像Igを表示する。すなわち、図14に示すように、z軸正方向に向かってキャリブレーション対象デバイスの向きを変化させるよう指示する矢印画像Iaを表示する。その後、キャリブレーション対象デバイスがz軸正方向に沿って配置された状態が示され、さらに図15に示すように、z軸負方向に向かってキャリブレーション対象デバイスの向きを変化させるよう指示する矢印画像Iaが表示される。最後に、図16に示すように、キャリブレーション対象デバイスがz軸負方向に沿って配置された状態を示す案内画像Igが表示される。以上の案内画像Igに従ってキャリブレーション対象デバイスを回転させる動作をユーザが行うことによって、キャリブレーション対象デバイスは、その下端(発光部12と反対側の端部)が、順に、y軸負方向、x軸正方向、y軸正方向、x軸負方向、z軸正方向、及びz軸負方向の6方向を向くように、その姿勢を変化させる。その間の地磁気センサ21の計測結果を取得することによって、キャリブレーション処理部43は、キャリブレーションデータの算出を行う。
【0070】
ここで、図10から図16に示されるように、ユーザがキャリブレーション動作を行う間に表示される案内画像Igは、常に発光部12の位置がx軸、y軸及びz軸の全てが交差する原点位置に一致するような状態を示す画像になっている。つまり、案内画像Ig内においては、キャリブレーション対象デバイスのうち、ユーザがキャリブレーション動作を行う際に回転中心とさせたい部分が、回転軸上に配置されていることになる。また、基準軸画像Ix,Iy及びIzは、案内画像Igが表示されている間、その位置が画面S内で変化しないようになっている。そのためユーザは、直感的に、キャリブレーション対象デバイスを回転させる動作を、発光部12の実空間上における位置を動かさないようにしながら行うべきであることを理解できる。また、図10や図11に示すように、一方の手で発光部12の位置を把持し、もう一方の手でその反対側の端部を把持するような把持の仕方を示す案内画像Igを表示することによって、ユーザは、自然に発光部12の位置を手で持って、その位置を中心に回転動作を行うことになる。
【0071】
なお、以上の例において、図13から図16では、画像の見やすさを考慮して左手画像Ih1及び右手画像Ih2が省略されている。しかしながら、キャリブレーション動作開始時の案内画像Ig(ここでは図10から図12の案内画像Ig)に左手画像Ih1及び右手画像Ih2を含めて表示することによって、ユーザに自然と発光部12を把持させることができ、その後もユーザが同じ位置を持ちながらキャリブレーション動作を行うように促すことができる。なお、案内画像Igが表示されている間、常に左手画像Ih1及び右手画像Ih2を表示してもよい。
【0072】
また、以上の説明では、デバイス画像Idは、案内画像Ig内において常にいずれかの基準軸に沿って配置された状態で表示されることとし、回転途中の状態については矢印画像Iaによって示すこととしている。しかしながら、これに限らず、例えばキャリブレーション処理部43は、キャリブレーション対象デバイスがある基準軸方向から次の基準軸方向に徐々に移動する過程を示す動画像を案内画像Igとして表示してもよい。また、案内画像Ig内において、発光部12の表示色は、前述したS17の処理で実際にキャリブレーション対象デバイスの発光部12を発光させた色と同じ色になるようにしてもよい。
【0073】
また、案内画像Igには、その案内画像Igを表示している表示装置32の画面位置を示す画面画像Isが含まれてもよい。図17は、このような案内画像Igの一例を示す図であって、図10の案内画像Igにさらに画面画像Isを追加した状態を示している。このような案内画像Igによれば、x軸及びy軸が水平面内に設定され、z軸が鉛直方向に沿って設定されていることを分かり易くすることができ、ユーザはどのような向きにキャリブレーション対象デバイスを回転させればよいのか、直感的に理解することができる。
【0074】
次に、フラグ情報判定部45が実行するフラグ情報の判定処理の具体例について、説明する。まず第1の例として、ユーザの指示に応じてアプリケーション実行部44が新たなアプリケーションプログラムの実行を開始する際に、フラグ情報判定部45がこのアプリケーションプログラムの実行に先立って実行する処理の流れの一例について、図18のフロー図を用いて説明する。
【0075】
まずフラグ情報判定部45は、アプリケーション実行部44が起動しようとしているアプリケーションプログラムが、地磁気センサ21の計測結果を利用可能な種類のアプリケーションプログラムか否かを判定する(S31)。フラグ情報判定部45は、例えばアプリケーションプログラム内に記憶されたフラグ情報を参照することによって、この判定を行う。判定の結果、地磁気センサ21を利用しないタイプのアプリケーションプログラムであった場合、フラグ情報判定部45はそれ以上の処理を実行せず、アプリケーション実行部44がアプリケーションプログラムの起動を開始する(S37)。
【0076】
一方、S31で地磁気センサ21を利用するタイプのアプリケーションプログラムと判定された場合、次にフラグ情報判定部45は、地磁気センサ利用フラグF2を参照して、地磁気センサ21の利用が可能か否かを判定する(S32)。フラグF2の値が「N」の場合、当該情報処理装置30は地磁気センサ21の機能を利用しないという設定がなされていることになるので、フラグ情報判定部45は処理を終了し、アプリケーション実行部44がアプリケーションプログラムの起動を開始する(S37)。この場合、アプリケーション実行部44は、操作デバイス情報受信部42が受信する地磁気情報は利用せずに、例えば発光部12を撮像装置31が撮像して得られる情報等を利用しながら、アプリケーションプログラムの処理を実行することになる。
【0077】
S32の判定においてフラグF2の値が「Y」だった場合、続いてフラグ情報判定部45は、地磁気センサ21を内蔵する操作デバイス10が情報処理装置30に接続されているか否かを判定する(S33)。判定の結果、地磁気センサ21を内蔵する操作デバイス10が情報処理装置30に接続されておらず、他の種類の操作デバイスが接続されているだけの場合、フラグ情報判定部45は処理を終了し、アプリケーション実行部44がアプリケーションプログラムの起動を開始する(S37)。
【0078】
一方、地磁気センサ21を内蔵した1又は複数の操作デバイス10が情報処理装置30に現在接続中の場合、フラグ情報判定部45は、これらの操作デバイス10のそれぞれについて、キャリブレーション実行済みフラグF1を参照する(S34)。そして、現在接続中であって、キャリブレーション実行済みフラグF1の値として「N」が関連づけられている操作デバイス10が一つでも存在するか否かを判定する(S35)。このような操作デバイス10が存在する場合には、フラグ情報判定部45は、キャリブレーション処理の実行をユーザに促すメッセージを表示装置32の画面に表示する(S36)。このとき、操作デバイス10が複数接続されているのであれば、そのうちのどの操作デバイス10についてキャリブレーション処理が実行済みでないのかを示す情報(例えば、キャリブレーション未実施の操作デバイス10の番号など)を併せて表示してもよい。また、例えばキャリブレーション未実施の操作デバイス10の発光部12を所定の色で発光させるなどの制御を実行してもよい。
【0079】
S36の表示後、又はS35でキャリブレーション未実施の操作デバイス10は存在しないと判定された場合、アプリケーション実行部44がアプリケーションプログラムの起動を開始する(S37)。なお、このフローの例では、キャリブレーション未実施の操作デバイス10が存在すると判定された場合にも、単にユーザにその旨を知らせるメッセージを出力するだけで、そのままアプリケーションプログラムが実行されることとしている。しかしながら、キャリブレーション未実施の操作デバイス10が存在する場合、例えばキャリブレーション処理部43によるキャリブレーション処理を強制的に開始してもよい。あるいは、キャリブレーション処理を実行するか否かの選択を促す画面をユーザに提示し、ユーザの選択に応じてアプリケーションプログラムの起動前にキャリブレーション処理を開始してもよい。
【0080】
次に、フラグ情報の判定処理の第2の例として、アプリケーション実行部44がアプリケーションプログラムを実行中に、これまで接続されていなかった新たな操作デバイス10が接続された場合にフラグ情報判定部45が実行する処理の流れの一例について、図19のフロー図を用いて説明する。なお、この第2の例における判定処理は、地磁気センサ21の計測結果を利用するアプリケーションプログラムの実行中にのみ、実行されるものとする。
【0081】
まず、ユーザが情報処理装置30とペアリング済みの操作デバイス10の電源ボタンをオンにするなどした場合、フラグ情報判定部45は、新たな操作デバイス10の接続を検知する(S41)。そして、接続された操作デバイス10に関連づけられたキャリブレーション実行済みフラグF1を参照する(S42)。もしキャリブレーション実行済みフラグF1の値が「Y」であれば、フラグ情報判定部45は処理を終了する。これにより、アプリケーション実行部44による処理が再開される(S44)。
【0082】
一方、キャリブレーション実行済みフラグF1の値が「N」の場合、フラグ情報判定部45は、前述した図18のフローにおけるS36の処理と同様に、新たに接続された操作デバイス10について、キャリブレーション処理の実行をユーザに促すメッセージを表示装置32の画面に表示する(S43)。その後、アプリケーション実行部44による処理が再開される(S44)。
【0083】
以上説明したように、アプリケーションプログラムの実行開始時や、新たに操作デバイス10が接続された時などにおいて、地磁気センサ21の計測結果を利用するアプリケーションプログラムの処理を実行する前にキャリブレーション実行済みフラグF1を参照して判定を行うことによって、情報処理装置30は、自分自身に接続された操作デバイス10のそれぞれに、自分自身が生成したキャリブレーションデータが記憶されていない可能性がある場合に、その旨をユーザに通知するなどして、キャリブレーション処理の実行をユーザに促すことができる。
【0084】
なお、本発明の実施の形態は、以上説明したものに限られない。例えば、キャリブレーション処理の実行時に表示される案内画像Igの内容は、以上説明したものとは別の順序や別の向きで操作デバイス10を回転させる動作をユーザに指示するものであってもよい。
【0085】
また、本実施形態において情報処理装置30によるキャリブレーション処理の対象となるセンサは、地磁気センサに限らず、例えば加速度センサなど、各種のセンサであってよい。
【0086】
また、キャリブレーション実行済みフラグF1に相当する情報は、操作デバイス10側に記憶されることとしてもよい。この場合、操作デバイス10は、キャリブレーション処理が実行された際に、当該キャリブレーション処理を実行した情報処理装置30を特定する装置特定情報(例えば当該情報処理装置30の接続先情報など)を、当該情報処理装置30が生成したキャリブレーションデータとともに受信し、内蔵するメモリ内に格納する。また、情報処理装置30は、上述したフラグ情報の判定処理において、キャリブレーション実行済みフラグF1の情報を参照する代わりに、判定対象となる操作デバイス10から、当該操作デバイス10が記憶している装置特定情報を取得する。そして、取得した装置特定情報を用いて、キャリブレーションが実行済みか否かの判定を行う。具体的に、情報処理装置30は、操作デバイス10から受信した装置特定情報が自分自身を示すものであるか否かを判定し、自分自身の装置特定情報が操作デバイス10に記憶されている場合には、キャリブレーション実行済みフラグF1の値が「Y」の場合と同様に、当該操作デバイス10に記憶されたキャリブレーションデータを用いてよいと判断する。逆に、取得した装置特定情報が自分自身を示すものでない場合や、そもそも操作デバイス10が装置特定情報を記憶していない場合には、キャリブレーション実行済みフラグF1の値が「N」の場合と同様に、キャリブレーション処理の実行を促すメッセージを出力する。
【0087】
なお、この例では、操作デバイス10は、複数のキャリブレーションデータを記憶してもよい。この場合、複数のキャリブレーションデータのそれぞれに対して、当該キャリブレーションデータを生成した情報処理装置30の装置特定情報を関連づけて記憶する。そして、いずれかの情報処理装置30と接続された際には、当該情報処理装置30の装置特定情報を取得し、当該装置特定情報に関連づけられたキャリブレーションデータを用いて地磁気センサ21の計測結果を補正した上で、当該情報処理装置30に対して送信する。
【符号の説明】
【0088】
1 情報処理システム、10 操作デバイス、11 本体部、12 発光部、20 基板、21 地磁気センサ、30 情報処理装置、31 撮像装置、32 表示装置、33 制御部、34 記憶部、35 通信部、41 操作デバイス管理部、42 操作デバイス情報受信部、43 キャリブレーション処理部、44 アプリケーション実行部、45 フラグ情報判定部。
【技術分野】
【0001】
本発明は、センサを内蔵する通信装置、当該センサのキャリブレーション処理を行う情報処理装置、その制御方法、その制御プラグラム、及び当該通信装置と情報処理装置とを含む情報処理システムに関する。
【背景技術】
【0002】
センサの中には、その出力特性が周辺環境などに依存して変化するために、使用前にキャリブレーションを行う必要があるものが知られている。このようなセンサを使用する際には、予め、キャリブレーション処理として、例えば基準状態での出力値を計測するなどの方法でその出力特性を調査し、その出力特性に応じた補正値を算出する。その後、センサを用いた実際の計測を行う際には、この算出された補正値を用いてセンサの出力値を補正することにより、より真の値に近い計測値を取得することが可能になる。
【0003】
このようなセンサは、各種の機器に内蔵されている。例えば、家庭用ゲーム機のコントローラの中には、当該コントローラの姿勢や動きを検出するために、加速度センサ等のセンサを内蔵したものがある。
【発明の概要】
【発明が解決しようとする課題】
【0004】
上述したようなセンサが可搬型の通信装置に内蔵される場合、ある場所でキャリブレーションを実行したとしても、キャリブレーションによって得られた補正値は、別の場所では有効に機能しない場合があり得る。このような場合、通信装置と通信接続される情報処理装置は、通信装置が出力するセンサの計測結果を信頼できなくなってしまう。
【0005】
本発明は上記実情を考慮してなされたものであって、その目的の一つは、通信装置が出力するセンサの計測結果を信頼できるか否か判断することのできる情報処理装置、その制御方法、その制御プログラム、当該情報処理装置を含む情報処理システム、及び当該情報処理装置と接続される通信装置を提供することにある。
【課題を解決するための手段】
【0006】
本発明に係る情報処理システムは、可搬型の通信装置と、当該通信装置と通信接続可能な据え置き型の情報処理装置と、を含む情報処理システムであって、前記通信装置は、所定の情報を計測して計測結果を出力するセンサであって、使用場所に依存してその出力特性が変化するセンサを備え、前記情報処理装置は、通信接続された前記通信装置から、前記センサの計測結果を取得する手段と、前記取得した計測結果を用いて前記センサのキャリブレーションを実行するキャリブレーション手段と、前記センサの計測結果を利用するアプリケーションプログラムを実行するアプリケーション実行手段と、前記アプリケーションプログラムを実行する際に、通信接続された前記通信装置について、前記キャリブレーション手段がキャリブレーションを実行済みか否か判定する判定手段と、を含むことを特徴とする。
【0007】
前記情報処理システムにおいて、前記情報処理装置は、前記キャリブレーション手段がキャリブレーションを実行した際に、前記通信装置について前記情報処理装置がキャリブレーションを実行したことを示すフラグ情報を記憶手段に格納するフラグ情報格納手段をさらに含み、前記判定手段は、前記フラグ情報を参照して前記判定を行うこととしてもよい。
【0008】
さらに、前記情報処理装置は、前記通信装置との通信接続に先立って、前記通信装置との通信接続に必要な接続先情報を取得する接続先情報取得手段をさらに備え、前記フラグ情報格納手段は、前記接続先情報取得手段が前記通信装置の接続先情報を取得する際に、前記通信装置についてキャリブレーションが実行済みでないことを示すフラグ情報を記憶手段に格納し、前記接続先情報取得手段は、前記通信装置が他の情報処理装置と通信接続された後に再び前記通信装置との通信接続を行う場合には、前記通信装置の接続先情報を再取得することとしてもよい。
【0009】
また、前記情報処理システムでは、前記情報処理装置に対して複数の前記通信装置が通信接続可能であって、前記フラグ情報格納手段は、前記情報処理装置に対して通信接続可能な複数の前記通信装置のそれぞれに関連づけて、当該通信装置についてキャリブレーションを実行したか否かを示すフラグ情報を記憶手段に格納することとしてもよい。
【0010】
また、前記情報処理システムにおいて、前記判定手段は、前記アプリケーション実行手段が新たに前記アプリケーションプログラムの実行を開始する際に、前記判定を行うこととしてもよい。
【0011】
また、前記情報処理システムにおいて、前記判定手段は、前記アプリケーション実行手段が前記アプリケーションプログラムを実行中に、前記通信装置との間の通信接続が開始された場合に、前記判定を行うこととしてもよい。
【0012】
また、前記情報処理システムにおいて、前記通信装置は、前記キャリブレーション手段がキャリブレーションを実行した際に、当該キャリブレーションを実行した情報処理装置を特定する装置特定情報を前記情報処理装置から受信して記憶する手段を備え、前記判定手段は、通信接続された前記通信装置に記憶されている前記装置特定情報を用いて、前記判定を行うこととしてもよい。
【0013】
また、本発明に係る情報処理装置は、所定の情報を計測して計測結果を出力するセンサであって、使用場所に依存してその出力特性が変化するセンサを備える可搬型の通信装置と通信接続可能な据え置き型の情報処理装置であって、通信接続された前記通信装置から、前記センサの計測結果を取得する手段と、前記取得した計測結果を用いて前記センサのキャリブレーションを実行するキャリブレーション手段と、前記センサの計測結果を利用するアプリケーションプログラムを実行するアプリケーション実行手段と、前記アプリケーションプログラムを実行する際に、通信接続された前記通信装置について、前記キャリブレーション手段がキャリブレーションを実行済みか否か判定する判定手段と、を含むことを特徴とする。
【0014】
また、本発明に係る通信装置は、据え置き型の情報処理装置と通信接続可能な可搬型の通信装置であって、所定の情報を計測して計測結果を出力するセンサであって、使用場所に依存してその出力特性が変化するセンサと、前記センサの計測結果を用いて前記情報処理装置がキャリブレーションを実行して生成するキャリブレーションデータを、前記情報処理装置から受信して記憶する手段と、を備え、前記情報処理装置が前記センサの計測結果を利用するアプリケーションプログラムを実行する際には、前記情報処理装置が生成したキャリブレーションデータが前記通信装置に記憶されているか否か判定されることを特徴とする。
【0015】
また、本発明に係る情報処理装置の制御方法は、所定の情報を計測して計測結果を出力するセンサであって、使用場所に依存してその出力特性が変化するセンサを備える可搬型の通信装置と通信接続可能な据え置き型の情報処理装置の制御方法であって、通信接続された前記通信装置から、前記センサの計測結果を取得するステップと、前記取得した計測結果を用いて前記センサのキャリブレーションを実行するキャリブレーションステップと、前記センサの計測結果を利用するアプリケーションプログラムを実行するアプリケーション実行ステップと、前記アプリケーションプログラムを実行する際に、通信接続された前記通信装置について、前記キャリブレーションステップによるキャリブレーションを実行済みか否か判定する判定ステップと、を含むことを特徴とする。
【0016】
また、本発明に係るプログラムは、所定の情報を計測して計測結果を出力するセンサであって、使用場所に依存してその出力特性が変化するセンサを備える可搬型の通信装置と通信接続可能な据え置き型の情報処理装置を制御するプログラムであって、通信接続された前記通信装置から、前記センサの計測結果を取得する手段、前記取得した計測結果を用いて前記センサのキャリブレーションを実行するキャリブレーション手段、前記センサの計測結果を利用するアプリケーションプログラムを実行するアプリケーション実行手段、及び、前記アプリケーションプログラムを実行する際に、通信接続された前記通信装置について、前記キャリブレーション手段がキャリブレーションを実行済みか否か判定する判定手段、として前記情報処理装置を機能させるためのプログラムである。このプログラムは、コンピュータ読み取り可能な情報記憶媒体に記憶されてよい。
【図面の簡単な説明】
【0017】
【図1】本発明の実施の形態に係る情報処理システムの全体概要を示す図である。
【図2】操作デバイス(通信装置)の斜視図である。
【図3】操作デバイス内の基板配置を示す図である。
【図4】情報処理装置の内部構成を示すブロック図である。
【図5】情報処理装置に格納されるフラグ情報の内容を示す説明図である。
【図6】情報処理装置の機能を示す機能ブロック図である。
【図7】ペアリング処理の流れの一例を示す図である。
【図8】キャリブレーション処理の流れの一例を示す図である。
【図9】キャリブレーション処理の流れの一例を示す図である。
【図10】キャリブレーション動作の案内画像の一例を示す図である。
【図11】キャリブレーション動作の案内画像の一例を示す図である。
【図12】キャリブレーション動作の案内画像の一例を示す図である。
【図13】キャリブレーション動作の案内画像の一例を示す図である。
【図14】キャリブレーション動作の案内画像の一例を示す図である。
【図15】キャリブレーション動作の案内画像の一例を示す図である。
【図16】キャリブレーション動作の案内画像の一例を示す図である。
【図17】キャリブレーション動作の案内画像の別の例を示す図である。
【図18】アプリケーションプログラム起動時の処理の流れの一例を示す図である。
【図19】アプリケーションプログラムの実行中に操作デバイスが接続された場合に実行される処理の流れの一例を示す図である。
【発明を実施するための形態】
【0018】
以下、本発明の実施の形態について、図面に基づき詳細に説明する。
【0019】
図1は、本発明の一実施形態に係る情報処理システム1の利用シーンを示す全体概要図である。同図に示すように、情報処理システム1は、ユーザが手で把持して使用する可搬型の操作デバイス(通信装置)10と、据え置き型の情報処理装置30と、を含んで構成される。情報処理装置30は、例えば家庭用ゲーム機やパーソナルコンピュータ等であって、撮像装置31及び表示装置32と接続される。
【0020】
操作デバイス10は、ユーザが容易に持ち運ぶことのできるサイズ及び重量の可搬型の通信装置であって、Bluetooth(登録商標)規格などの無線通信インタフェースを介して情報処理装置30と通信接続可能になっている。なお、1台の情報処理装置30に対して、複数の操作デバイス10が接続可能である。情報処理システム1のユーザは、操作デバイス10を手で把持して、操作デバイス10に設けられた操作ボタン等を操作する。これに応じて、ユーザの操作内容が無線通信インタフェースを介して情報処理装置30に対して送信される。また、本実施形態では、操作デバイス10は発光部12を備えており、発光部12は情報処理装置30からの指示に応じて発光する。撮像装置31は、この発光部12から発せられる光を撮像し、撮像された画像を情報処理装置30に対して出力する。さらに、操作デバイス10は地磁気センサを備えており、この地磁気センサによる計測結果を情報処理装置30に送信する。情報処理装置30は、撮像装置31の撮像画像内における発光部12の位置や大きさと、操作デバイス10が内蔵する地磁気センサの計測結果とを用いて、操作デバイス10の姿勢(位置や向き)を特定する。これにより、ユーザは操作デバイス10に設けられた操作ボタン等を操作するだけでなく、操作デバイス10自体を動かすことによって、情報処理装置30に対する操作入力を行うことができる。
【0021】
操作デバイス10は、図2の斜視図に示されるように、本体部11及び発光部12を備えており、本体部11の側面にはユーザによる操作対象となる複数の操作ボタンが配置されている。ユーザは、本体部11の中央近傍を把持して、各操作ボタンを指で押下する操作入力を行う。なお、以下では、操作デバイス10の左右方向をX軸、上下方向(長手方向)をY軸、奥行き方向(厚さ方向)をZ軸と表記する。
【0022】
本体部11は、全体として円柱状に形成されており、その一端に発光部12が取り付けられている。発光部12は、シリコーン樹脂等の光を透過する素材で形成された球状の外殻と、その内部に配置された複数のLEDと、を含んで構成される。本実施形態では、光の3原色に対応する3個のLEDがそれぞれ情報処理装置30からの指示に応じた強度で発光することにより、発光部12が様々な色で発光する。
【0023】
また、本体部11内には、基板20が配置されている。図3は操作デバイス10内における基板20の配置を示す図であって、本体部11の筐体の一部を取り外した状態の操作デバイス10を、背面側から見た様子を示している。同図に示すように、基板20は略矩形状であって、操作デバイス10のX軸及びY軸に平行な向きで配置されている。
【0024】
図3に示すように、基板20の操作デバイス10背面側の面には、地磁気センサ21が配置されている。本実施形態では、地磁気センサ21は3軸地磁気センサであって、操作デバイス10のXY平面、YZ平面、及びZX平面を基準面として、これらの基準面それぞれに対する地磁気の傾きを計測するものとする。この各面の地磁気の計測結果の時間変化を解析することで、操作デバイス10の向きの変化が特定できる。図から明らかなように、地磁気センサ21は、基板20上の発光部12に近い側の端部に配置されている。
【0025】
地磁気センサ21の計測結果は、地磁気センサ21が使用される場所の磁場環境に依存してその出力特性が変化する場合がある。つまり、地磁気センサ21は、使用場所に固有の磁場の影響を受けて、計測結果が本来の地磁気の向きからずれてしまう場合がある。そのため、例えば工場出荷時に地磁気センサ21のキャリブレーションを行ったとしても、実際にユーザが自分の自宅などで操作デバイス10を使用する際に、キャリブレーションをやり直したほうが望ましい場合がある。そこで本実施形態では、操作デバイス10に対する操作入力によって動作する情報処理装置30が、操作デバイス10に内蔵された地磁気センサ21のキャリブレーション処理を実行できるようになっている。
【0026】
なお、図には示されていないが、操作デバイス10には、地磁気センサ21のほかにも、例えば加速度センサやジャイロセンサなど、操作デバイス10の姿勢やその変化を検出するための各種のセンサが内蔵されてよい。
【0027】
次に、情報処理装置30の構成について説明する。情報処理装置30は、例えば家庭用ゲーム機やパーソナルコンピュータ等であって、ユーザの自宅内などに設置されて使用される据え置き型の装置であることとする。情報処理装置30は、図4に示すように、制御部33と、記憶部34と、通信部35と、を含んで構成され、撮像装置31及び表示装置32と接続されている。
【0028】
制御部33は、CPU等のプログラム制御デバイスであって、記憶部34に記憶されているプログラムに従って各種の情報処理を行う。本実施形態において制御部33が実行する処理については、後述する。
【0029】
記憶部34は、RAMやROM等のメモリ素子、またハードディスク等のディスクデバイスを含んで構成され、制御部33が実行するプログラム、及び制御部33が実行する処理に用いられる各種のデータを記憶する。また、記憶部34は、制御部33のワークメモリとしても機能する。特に本実施形態では、操作デバイス10から送信されるセンサの計測結果等の情報が、記憶部34内に一時的に記憶される。
【0030】
また、記憶部34のうち、情報処理装置30の電源オフ時にもデータが消去されない記憶領域(例えば不揮発性メモリ等)には、当該情報処理装置30に接続される操作デバイス10に関する情報、及び、これらの操作デバイス10に内蔵されている地磁気センサ21の利用に関する各種のフラグ情報が記憶される。具体的に、記憶部34には、図5に示すようなフラグ情報が格納される。以下、これらの情報について説明する。
【0031】
第1に、情報処理装置30の記憶部34には、当該情報処理装置30に接続可能な操作デバイス10の接続先情報が後納される。前述したように、情報処理装置30には複数の操作デバイス10が接続可能なので、記憶部34は、これら複数の操作デバイス10のそれぞれについて、その接続先情報を記憶する。ここで、接続先情報は、情報処理装置30が通信相手の操作デバイス10を特定し、通信接続を行うために必要な情報であって、例えばBluetooth機器アドレスなどであってよい。ユーザは、新たに購入するなどした操作デバイス10を情報処理装置30と接続して使用する際には、まず、その接続先情報を情報処理装置30に登録する必要がある。Bluetooth機器の場合、このような接続先情報を通信相手と交換して、通信相手の接続先情報を登録する処理を、ペアリング処理という。
【0032】
さらに、これら接続可能な操作デバイス10の接続先情報のそれぞれに対して、その操作デバイス10に内蔵された地磁気センサ21のキャリブレーションを実行したか否かを示すキャリブレーション実行済みフラグF1が関連づけて記憶される。図5から明らかなように、キャリブレーション実行済みフラグF1は、複数の操作デバイス10のそれぞれについて、独立に用意される。このキャリブレーション実行済みフラグF1は、対応する操作デバイス10について、地磁気センサ21のキャリブレーションを当該情報処理装置30が実行したか否かを示すフラグであって、情報処理装置30がキャリブレーション処理を実行した際には、キャリブレーションが実行済みであることを示す値(ここでは「Y」とする)が格納される。なお、最初に情報処理装置30に操作デバイス10の接続先情報が記憶される際には、キャリブレーション実行済みフラグF1は、キャリブレーションが実行済みでないことを示す値(ここでは「N」とする)で初期化される。
【0033】
第2に、情報処理装置30の記憶部34には、地磁気センサ21の利用可否を示す地磁気センサ利用フラグF2が格納される。この地磁気センサ利用フラグF2は、情報処理装置30が、自分自身の実行する処理において、操作デバイス10に内蔵された地磁気センサ21を利用するか否かを示すフラグである。地磁気センサ利用フラグF2に、地磁気センサ21を利用しないことを示す値(ここでは「N」とする)が格納されている場合、情報処理装置30は、後述するアプリケーション実行部44の処理において、地磁気センサ21の計測結果を利用しないこととする。一方、地磁気センサ利用フラグF2に、地磁気センサ21を利用することを示す値(ここでは「Y」とする)が格納されている場合、情報処理装置30は、地磁気センサ21の計測結果を利用することができる。なお、この地磁気センサ利用フラグF2は、情報処理装置30に接続される操作デバイス10の個体とは無関係な情報である。すなわち、地磁気センサ利用フラグF2は、1つの情報処理装置30に対して1つだけ用意されるフラグ情報であって、その値が「N」の場合、どの操作デバイス10が接続された場合であっても、その中に内蔵される地磁気センサ21の計測結果は利用されないことになる。例えば情報処理装置30が設置される場所の周囲の磁場環境によっては、地磁気センサ21による地磁気の計測が困難な場合がある。このような場合、ユーザは情報処理装置30に対する指示操作を行って、地磁気センサ利用フラグF2の値を「N」に変更することにより、地磁気センサ21の計測結果をアプリケーションプログラムに利用させないようにすることができる。
【0034】
通信部35は、操作デバイス10が備える通信インタフェースと同規格の通信インタフェースであって、操作デバイス10との間で情報の送受信を実行する。本実施形態では、通信部35は、操作デバイス10との間で通信接続を行うための通信インタフェースとして、Bluetooth規格に基づく無線通信インタフェース、及びUSB(Universal Serial Bus)規格に基づく有線通信インタフェースを備えることとする。なお、通信部35は、前述した接続先情報を用いて接続先の操作デバイス10を特定して、無線通信を行う。
【0035】
以下、本実施形態において情報処理装置30が実現する機能について、説明する。図6に示すように、情報処理装置30は、機能的に、操作デバイス管理部41と、操作デバイス情報受信部42と、キャリブレーション処理部43と、アプリケーション実行部44と、フラグ情報判定部45と、を含んで構成される。これらの機能は、制御部33が記憶部34に格納されたプログラムを実行することにより、実現される。このプログラムは、例えばインターネット等の通信ネットワークを介して情報処理装置30に提供されてもよいし、光ディスク等のコンピュータ読み取り可能な各種の情報記憶媒体に格納されて提供されてもよい。
【0036】
操作デバイス管理部41は、当該情報処理装置30に接続される操作デバイス10に関する情報を管理する。具体的に、操作デバイス管理部41は、情報処理装置30に対して接続される可能性のある複数の操作デバイス10について、これらの操作デバイス10との間の通信接続に必要な接続先情報を取得し、記憶部34に格納する。特に操作デバイス管理部41は、ユーザが、情報処理装置30にまだ接続先情報が記憶されていない新たな操作デバイス10を使用しようとしたときに、この操作デバイス10の接続先情報を取得するとともに、操作デバイス10に対して自身の接続先情報を提供するペアリング処理を行う。
【0037】
操作デバイス情報受信部42は、所定時間おき(例えば11.25msおき)に、操作デバイス10が送信する情報を受信する。ここで、操作デバイス10から受信する情報には、操作デバイス10が備える操作ボタンに対してユーザが行った操作の内容を示す情報が含まれる。また、操作デバイス10が備える地磁気センサ21の計測結果を示す情報(以下、地磁気情報という)も含まれる。
【0038】
キャリブレーション処理部43は、操作デバイス情報受信部42が取得した地磁気情報を用いて、地磁気センサ21のキャリブレーション処理を実行する。ここで、キャリブレーション処理部43が実行するキャリブレーション処理は、情報処理装置30に接続する複数の操作デバイス10のうち、特定の一つの操作デバイス10をキャリブレーション対象デバイスとして、そのキャリブレーション対象デバイスに内蔵された地磁気センサ21の出力結果の補正に用いる補正値を算出する処理である。特に本実施形態では、このキャリブレーション処理は、ユーザがキャリブレーション対象デバイスの姿勢を変化させている間に、地磁気センサ21の計測結果を取得することにより、行われる。そのため、キャリブレーション処理部43は、キャリブレーション対象デバイスの姿勢をどのように変化させるべきかをユーザに案内する案内画像Igを表示装置32の画面に表示させながら、キャリブレーション処理を実行する。
【0039】
アプリケーション実行部44は、ゲーム等のアプリケーションプログラムの処理を実行する。本実施形態では、アプリケーション実行部44は、操作デバイス情報受信部42が取得した地磁気情報を用いた処理を実行することとする。例えばアプリケーション実行部44は、ユーザが操作デバイス10を動かした結果得られる地磁気の向きの変化に基づいて、ゲームに登場するキャラクタやオブジェクトを移動させる処理を実行する。
【0040】
フラグ情報判定部45は、記憶部34に記憶されているキャリブレーション実行済みフラグF1の情報を参照して、現在接続中の操作デバイス10について、地磁気センサ21のキャリブレーション処理が実行済みか否かを判定する。フラグ情報判定部45は、このようなフラグ情報の判定処理を、例えばアプリケーション実行部44がアプリケーションプログラムをロードしてその処理を開始する前に実行する。あるいは、フラグ情報判定部45は、アプリケーション実行部44による処理の実行中に新たな操作デバイス10の接続が検知された場合にも、フラグ情報の判定処理を実行してもよい。
【0041】
なお、フラグ情報判定部45が実現する機能は、アプリケーション実行部44が実行するアプリケーションプログラムの種類によらず、地磁気センサ21の計測結果を利用するアプリケーションプログラムに共通して行われる処理である。そのため、フラグ情報判定部45の機能は、操作デバイス管理部41やキャリブレーション処理部43と同様に、アプリケーションプログラムとは別のシステムプログラムを制御部33が実行することにより実現されてよい。あるいは、アプリケーション実行部44の機能と同様に制御部33がアプリケーションプログラムを実行することにより実現されてもよい。
【0042】
以下、操作デバイス管理部41が実行するペアリング処理の具体例について、図7のフロー図を用いて説明する。なお、本実施形態では、情報処理装置30と操作デバイス10とがUSBケーブルを介して接続されることを契機として、ペアリング処理が開始されることとする。ただし、これに限らず、例えば一般的なBluetooth機器と同様に、無線通信によってペアリング処理を実行することとしてもよい。
【0043】
まず、ユーザがUSBケーブルを用いて情報処理装置30に対してペアリング対象の操作デバイス10を接続する(S1)と、操作デバイス10は、自分自身が有線通信にて他の通信機器と接続されたことを検知する。これに応じて、操作デバイス10は、USBのプロトコルに従って、自分自身の機器種別などの情報を情報処理装置30に対して送信する。操作デバイス管理部41は、この情報を受信して、USB接続された機器の種別判定を行う(S2)。
【0044】
S2の処理の結果、USB接続されたのがペアリング対象の操作デバイス10であることを判別すると、操作デバイス管理部41は、操作デバイス10との間で、接続先情報の交換を行う(S3)。すなわち、操作デバイス管理部41は、情報処理装置30の接続先情報を操作デバイス10に送信するとともに、操作デバイス10から当該操作デバイス10の接続先情報を受信する。
【0045】
操作デバイス管理部41は、S3で交換された接続先情報を用いて、接続された操作デバイス10が、既にペアリング済みの操作デバイス10か否かを判定する(S4)。このとき、S3で受信した操作デバイス10の接続先情報が、図5に示すような接続可能な操作デバイス10のリストに含まれていなければ、ペアリング済みでないと判定される。一方、本実施形態では、たとえS3で受信した操作デバイス10の接続先情報が接続可能な操作デバイス10のリストに含まれていたとしても、必ずしもペアリング済みであると判定されるとは限らない。例えば操作デバイス10が第1の情報処理装置30とペアリングされた後、第2の情報処理装置30とペアリングされた場合、操作デバイス10からは第1の情報処理装置30の接続先情報は消去される。操作デバイス10は、同時に複数の情報処理装置30とペアリングされた状態を維持することができないように制限されているからである。この場合、再び操作デバイス10が第1の情報処理装置30とUSB接続された場合には、第1の情報処理装置30は当該操作デバイス10の接続先情報を記憶部34に記憶しているにもかかわらず、操作デバイス10と第1の情報処理装置30との間で改めてペアリングが行われることになる。このような制御を可能にするために、操作デバイス管理部41は、USB接続された操作デバイス10から、S3で送信した情報処理装置30の接続先情報が記憶されていたか否かの判定結果を受信する。そして、操作デバイス10側、及び情報処理装置30側の双方がS3で交換した相手の接続先情報を既に記憶していた場合に限って、今回接続された操作デバイス10がペアリング済みであると判定する。
【0046】
S4の判定により、今回接続された操作デバイス10がペアリング済みであると判定された場合、操作デバイス管理部41は、改めてペアリング処理を行う必要はないので、処理を終了する。一方、ペアリング済みでないと判定された場合、操作デバイス10、及び情報処理装置30の双方が、S3で交換された相手の接続先情報を記録して、ペアリング処理を行う(S5)。なお、このとき操作デバイス管理部41は、操作デバイス10との間で、通信接続に必要なその他の情報(例えば暗号化キーの生成に必要な乱数情報など)を送受信してもよい。
【0047】
さらに本実施形態において、操作デバイス管理部41は、S5で操作デバイス10とのペアリング処理を行った場合、当該操作デバイス10に関連づけて、キャリブレーション実行済みフラグF1を記録する(S6)。このとき、キャリブレーション実行済みフラグF1の値は、「N」で初期化される。
【0048】
以上の処理により、新たな操作デバイス10が情報処理装置30に接続される際には、必ず当該操作デバイス10に関連づけられたキャリブレーション実行済みフラグF1が用意され、その値は「N」で初期化されることになる。
【0049】
次に、キャリブレーション処理部43が実行するキャリブレーション処理の具体例について、説明する。例えばユーザは、操作デバイス10の操作ボタン等を操作することによって、情報処理装置30のシステムメニュー画面を呼び出し、その中からキャリブレーションの実行開始を示すメニュー項目を選択する。これにより、キャリブレーション処理が開始される。図8及び図9は、キャリブレーション処理部43が実行するキャリブレーション処理の流れを示すフロー図である。
【0050】
まずキャリブレーション処理部43は、キャリブレーションの対象となる操作デバイス10の選択を促す画面を表示し、ユーザによる操作デバイス10の選択を待つ(S11)。ユーザは、既にペアリング処理が実行されて情報処理装置30と接続可能な状態になっている操作デバイス10のうち、キャリブレーション処理を行いたい操作デバイス10を選んで、その操作ボタンを操作する。情報処理装置30は、その操作内容を示す信号を受け付けることによって、キャリブレーション対象デバイスを決定する(S12)。
【0051】
その後、キャリブレーション処理部43は、地磁気センサ利用フラグF2を参照して、地磁気センサ21の利用が可能か否かを判定する(S13)。フラグF2の値が「N」であれば、地磁気センサ21を有効にするか否かを問い合わせる画面を表示し(S14)、ユーザによる選択を受け付ける(S15)。この問い合わせ画面が表示された状態で、ユーザがキャリブレーション対象デバイスの操作ボタンを操作することによって、地磁気センサ21を有効にすることを選択した場合、キャリブレーション処理部43は、フラグF2の値を「Y」に更新して(S16)、S17に進み、キャリブレーション処理を続行する。一方、ユーザが地磁気センサ21を有効にすることを選択しなかった場合、キャリブレーション処理部43は、キャリブレーション処理を終了する。
【0052】
S13において地磁気センサ21の利用が可能と判定した場合(すなわち、フラグF2の値が「Y」だった場合)、又はS15においてユーザが地磁気センサ21を有効にすることを選択した場合、キャリブレーション処理部43は、キャリブレーション処理の開始をユーザに案内するために、キャリブレーション対象デバイスの発光部12を所定の色で発光させる制御信号を出力する(S17)。
【0053】
その後、キャリブレーション処理部43は、表示装置32の画面に、キャリブレーション処理においてユーザが行うべき動作(キャリブレーション動作)を案内する案内画像Igを表示する(S18)。案内画像Igは、ユーザがどのようにキャリブレーション動作を行うべきかをユーザに知らせる画像であって、時間とともに変化する動画像である。なお、本実施形態では、ユーザにいきなりキャリブレーション動作を実行させるのではなく、まずキャリブレーション動作の練習を行わせることとしている。そのため、S18では、練習であることを示す表示とともに、キャリブレーション動作の案内画像Igを表示する。ユーザは、この案内画像Igを見ながら、実際にキャリブレーション対象デバイスの向きを変化させる動作(すなわち、キャリブレーション対象デバイスを回転させる動作)を行って、その概要を把握する。
【0054】
案内画像Igの表示が終了すると、続いてキャリブレーション処理部43は、キャリブレーション処理を続行するか否か確認する確認画面を表示して(S19)、ユーザの選択を受け付ける(S20)。この確認画面が表示された状態でユーザがキャリブレーション対象デバイスを操作することにより、処理の終了を選択した場合、キャリブレーション処理部43は、処理を終了する。一方、ユーザが処理の続行を選択した場合、キャリブレーション処理部43は、本番のキャリブレーション処理を開始する。なお、図には示されていないが、ユーザの選択に応じて、キャリブレーション処理部43は、S18に戻って再度練習用の案内画像Igを表示してもよい。
【0055】
S20でキャリブレーション処理の続行が選択されると、キャリブレーション処理部43は、キャリブレーション動作をユーザに案内する案内画像Igの表示を開始し(S21)、それと同時に、キャリブレーション対象デバイスから送信される地磁気情報の取得を開始する(S22)。なお、S21で表示される案内画像Igは、練習であることを示す表示を行わない点を除いて、S18で表示される練習用の案内画像Igと同様の動画像であってよい。なお、キャリブレーション動作の案内画像Igの具体的な内容については、後述する。
【0056】
案内画像Igの表示が終わると、キャリブレーション処理部43は、その間に操作デバイス情報受信部42が受信した地磁気情報を用いて、地磁気センサ21の補正に用いる補正値(キャリブレーションデータ)の算出を行う(S23)。そして、キャリブレーション処理部43は、算出された補正値が、所定の範囲内に含まれるか否かを判定する(S24)。所定の範囲に含まれない場合、例えばユーザが案内画像Igに従ったキャリブレーション動作を行わなかったなどの理由で、正しくキャリブレーション処理が実行できていないと推定される。そのため、キャリブレーション処理部43は、エラーメッセージを出力して(S25)、処理を終了する。なお、ここでは処理を終了することとしたが、ユーザの選択に応じて、S18又はS21に戻ってキャリブレーション処理を再実行してもよい。
【0057】
一方、S24で補正値が所定の範囲に含まれていると判定された場合、キャリブレーション処理部43は、算出された補正値をキャリブレーション対象デバイスに送信する(S26)。キャリブレーション対象デバイスは、このS26で送信された補正値を受信して、内蔵しているメモリに書き込む。そして、それ以降、地磁気センサ21の計測結果を情報処理装置30に送信する場合には、この補正値を用いて補正された値を出力する。
【0058】
最後に、キャリブレーション処理部43は、キャリブレーション対象デバイスに関連づけられたキャリブレーション実行済みフラグF1の値を、「Y」に更新して(S27)、キャリブレーション処理を終了する。
【0059】
このように、情報処理装置30がキャリブレーション処理を実行した際にキャリブレーション実行済みフラグF1の値を更新することによって、キャリブレーションデータ自体は操作デバイス10側に記憶されるにも関わらず、情報処理装置30は、当該情報処理装置30に接続可能な複数の操作デバイス10のそれぞれについて、キャリブレーション処理が実行済みか否か管理することができる。
【0060】
特に本実施形態では、操作デバイス10は、ハードウェアの制約等により、情報処理装置30のキャリブレーション処理部43が実行するキャリブレーション処理によって算出されるキャリブレーションデータを、1セットしか保持しないことを想定している。ところが、既に述べたように、地磁気センサ21の出力特性は、地磁気センサ21の個体差だけでなく、操作デバイス10の使用場所の磁場環境に応じて変化してしまう。そのため、仮に第1の情報処理装置30を用いて地磁気センサ21のキャリブレーション処理を実行した後、この第1の情報処理装置30とは別の場所に設置された第2の情報処理装置30に当該操作デバイス10を接続しようとした場合、この操作デバイス10に記憶されたキャリブレーションデータを用いても、第2の情報処理装置30の設置場所における磁場環境では望ましい条件での補正を行えないことがあり得る。このような場合に、第2の情報処理装置30は、自分自身が記憶するキャリブレーション実行済みフラグF1の値を参照することによって、接続された操作デバイス10に記憶されているキャリブレーションデータが、自分自身のキャリブレーション処理によって生成されたものか否かを判別できる。
【0061】
また、この例において、第2の情報処理装置30と操作デバイス10がペアリングされた後、再び操作デバイス10を第1の情報処理装置30とペアリングして使用する場合について考える。この場合、過去に第1の情報処理装置30が操作デバイス10のキャリブレーション処理を実行し、その結果第1の情報処理装置30が当該操作デバイス10に関連づけられたキャリブレーション実行済みフラグF1の値として「Y」を記憶していたとしても、既に述べたように、第1の情報処理装置30が再度のペアリング処理を実行する際に、当該操作デバイス10に関連づけられたキャリブレーション実行済みフラグF1の値を、「N」に初期化することになる。つまり、第1の情報処理装置30は、たとえ過去にある操作デバイス10のキャリブレーション処理を実行したとしても、その操作デバイス10がその後に第2の情報処理装置30とペアリングされ、その結果第2の情報処理装置30の設置場所でキャリブレーション処理をやり直した可能性がある場合には、当該操作デバイス10のキャリブレーション処理を実行済みでないと判断することになる。このことによって、第1の情報処理装置30が記憶するキャリブレーション実行済みフラグF1の値は、当該第1の情報処理装置30の設置場所以外の場所で生成されたキャリブレーションデータが操作デバイス10に記憶されている可能性がある場合には「N」となり、当該操作デバイス10に記憶されたキャリブレーションデータが第1の情報処理装置30のキャリブレーション処理によって生成されたものであることが確実な場合だけ「Y」となることが保証される。
【0062】
ここで、キャリブレーション動作の案内画像Igの表示例について、図10〜図16を用いて説明する。これらの図は、1回のキャリブレーション動作を行う際に表示装置32の画面に表示される案内画像Igの時間変化を順に示している。本実施形態では、地磁気センサ21は操作デバイス10に設定された3つの基準面(XY平面、YZ平面、ZX平面)のそれぞれを基準として、地磁気の大きさを計測する。そのため、キャリブレーションを行う際には、ユーザがキャリブレーション対象デバイスを回転させることにより、キャリブレーション対象デバイスの向きを上下左右前後の6方向それぞれに変化させた状態で、地磁気の計測を行うことが望ましい。さらに、このようなキャリブレーション対象デバイスを回転させる動作は、実空間における地磁気センサ21の位置をなるべく変化させないようにしながら行うことが望ましい。
【0063】
ここで、ユーザに対してただキャリブレーション対象デバイスを回転させる動作を指示しただけの場合、ユーザは、自分が把持している部分を中心にキャリブレーション対象デバイスを回転させると想定される。ところが、図3に示されるように、地磁気センサ21は、本体部11の長手方向の中心位置よりは発光部12に近い位置に配置されている。そのため、ユーザが本体部11の中心近傍を把持して、その部分を回転中心としてキャリブレーション対象デバイスを回転させた場合、地磁気センサ21の位置は実空間内で比較的大きく変化してしまうことになる。
【0064】
そこで本実施形態では、発光部12を回転中心としてキャリブレーション対象デバイスを回転させるように、ユーザに対する案内画像Igを表示する。これにより、本体部11の中心位置を回転中心としてキャリブレーション対象デバイスを回転させる場合と比較して、地磁気センサ21の位置の変化を小さくすることができる。なお、地磁気センサ21が配置されている位置は外部からは分かりにくいため、地磁気センサ21の配置位置に比較的近く、特徴的な形状の部材であって、かつユーザが持ちやすい発光部12を回転中心とさせることで、ユーザが容易に案内画像Igの通りにキャリブレーション動作を行えるようにしている。
【0065】
具体的に、まずキャリブレーション処理部43は、図10に示すように、キャリブレーション対象デバイスを所定の向きでユーザが保持する様子を示す案内画像Igを表示装置32の画面に表示する。なお、図10の案内画像Igには、キャリブレーション対象デバイスを示すデバイス画像Idのほか、当該キャリブレーション対象デバイスを保持するユーザの左手及び右手をそれぞれ示す左手画像Ih1及び右手画像Ih2が含まれている。
【0066】
さらに、図10において、キャリブレーション処理部43は、実空間上に仮想的に配置された基準軸を示す基準軸画像Ix,Iy及びIzを案内画像Igに含めて表示している。ここで、基準軸画像Ix,Iy,及びIzは、ユーザがキャリブレーション対象デバイスを回転させるべき向きを示すとともに、デバイス画像Idとの相対的な位置関係によって、キャリブレーション対象デバイスのどの位置を回転中心としてキャリブレーション対象デバイスを回転させるべきかをも示している。具体的に、基準軸画像Ix,Iy,及びIzは、それぞれ、互いに直交するx軸、y軸及びz軸を示しており、x軸及びy軸は水平面内に設定された基準軸を、z軸は鉛直方向に沿って設定された基準軸を、それぞれ示している。また、x軸はユーザに対して左から右に向かう方向が正方向となるように設定され、y軸はユーザに対して手前から奥側(表示装置32側)に向かう方向が正方向となるように設定され、z軸は鉛直下方から上方に向かう方向が正方向となるように設定されているものとする。図10の案内画像Igは、キャリブレーション対象デバイスが、3つの基準軸画像Ix,Iy及びIzが交差する原点位置から、y軸負方向に沿って配置された状態を示している。
【0067】
その後、キャリブレーション処理部43は、図11から図16に示すように、ユーザに対して、順にキャリブレーション対象デバイスを回転させる動作を促す案内画像Igを表示する。すなわち、まず図11に示すように、図10に示した初期状態の案内画像Igに対して、キャリブレーション対象デバイスを回転させるべき回転方向を示す矢印画像Iaを追加した案内画像Igを表示する。図11では、z軸を回転中心として水平面内で反時計回りにキャリブレーション対象デバイスを回転させる動作を指示する矢印画像Iaが表示されている。
【0068】
続いて、そのままz軸を回転中心としてキャリブレーション対象デバイスを回転させる動作を案内する案内画像Igが、順に表示される。すなわち、図11の案内画像Igが表示された後には、x軸正方向に沿った位置にキャリブレーション対象デバイスが移動した様子を示すデバイス画像Idが表示され、その後、さらにキャリブレーション対象デバイスをそのまま回転させる動作を指示する矢印画像Ia(X軸正方向からY軸正方向への回転を示す矢印画像Ia)が表示される。図12は、このようなデバイス画像Id及び矢印画像Iaを含んだ案内画像Igを示している。その後は、図13に示すように、y軸正方向に沿ってキャリブレーション対象デバイスが配置された様子を示す案内画像Igが表示され、その次には、x軸負方向に沿ってキャリブレーション対象デバイスが配置された様子を示す案内画像Igが表示される。
【0069】
この状態で、次にキャリブレーション処理部43は、ユーザに対して、y軸を回転中心とした回転動作をユーザに指示する案内画像Igを表示する。すなわち、図14に示すように、z軸正方向に向かってキャリブレーション対象デバイスの向きを変化させるよう指示する矢印画像Iaを表示する。その後、キャリブレーション対象デバイスがz軸正方向に沿って配置された状態が示され、さらに図15に示すように、z軸負方向に向かってキャリブレーション対象デバイスの向きを変化させるよう指示する矢印画像Iaが表示される。最後に、図16に示すように、キャリブレーション対象デバイスがz軸負方向に沿って配置された状態を示す案内画像Igが表示される。以上の案内画像Igに従ってキャリブレーション対象デバイスを回転させる動作をユーザが行うことによって、キャリブレーション対象デバイスは、その下端(発光部12と反対側の端部)が、順に、y軸負方向、x軸正方向、y軸正方向、x軸負方向、z軸正方向、及びz軸負方向の6方向を向くように、その姿勢を変化させる。その間の地磁気センサ21の計測結果を取得することによって、キャリブレーション処理部43は、キャリブレーションデータの算出を行う。
【0070】
ここで、図10から図16に示されるように、ユーザがキャリブレーション動作を行う間に表示される案内画像Igは、常に発光部12の位置がx軸、y軸及びz軸の全てが交差する原点位置に一致するような状態を示す画像になっている。つまり、案内画像Ig内においては、キャリブレーション対象デバイスのうち、ユーザがキャリブレーション動作を行う際に回転中心とさせたい部分が、回転軸上に配置されていることになる。また、基準軸画像Ix,Iy及びIzは、案内画像Igが表示されている間、その位置が画面S内で変化しないようになっている。そのためユーザは、直感的に、キャリブレーション対象デバイスを回転させる動作を、発光部12の実空間上における位置を動かさないようにしながら行うべきであることを理解できる。また、図10や図11に示すように、一方の手で発光部12の位置を把持し、もう一方の手でその反対側の端部を把持するような把持の仕方を示す案内画像Igを表示することによって、ユーザは、自然に発光部12の位置を手で持って、その位置を中心に回転動作を行うことになる。
【0071】
なお、以上の例において、図13から図16では、画像の見やすさを考慮して左手画像Ih1及び右手画像Ih2が省略されている。しかしながら、キャリブレーション動作開始時の案内画像Ig(ここでは図10から図12の案内画像Ig)に左手画像Ih1及び右手画像Ih2を含めて表示することによって、ユーザに自然と発光部12を把持させることができ、その後もユーザが同じ位置を持ちながらキャリブレーション動作を行うように促すことができる。なお、案内画像Igが表示されている間、常に左手画像Ih1及び右手画像Ih2を表示してもよい。
【0072】
また、以上の説明では、デバイス画像Idは、案内画像Ig内において常にいずれかの基準軸に沿って配置された状態で表示されることとし、回転途中の状態については矢印画像Iaによって示すこととしている。しかしながら、これに限らず、例えばキャリブレーション処理部43は、キャリブレーション対象デバイスがある基準軸方向から次の基準軸方向に徐々に移動する過程を示す動画像を案内画像Igとして表示してもよい。また、案内画像Ig内において、発光部12の表示色は、前述したS17の処理で実際にキャリブレーション対象デバイスの発光部12を発光させた色と同じ色になるようにしてもよい。
【0073】
また、案内画像Igには、その案内画像Igを表示している表示装置32の画面位置を示す画面画像Isが含まれてもよい。図17は、このような案内画像Igの一例を示す図であって、図10の案内画像Igにさらに画面画像Isを追加した状態を示している。このような案内画像Igによれば、x軸及びy軸が水平面内に設定され、z軸が鉛直方向に沿って設定されていることを分かり易くすることができ、ユーザはどのような向きにキャリブレーション対象デバイスを回転させればよいのか、直感的に理解することができる。
【0074】
次に、フラグ情報判定部45が実行するフラグ情報の判定処理の具体例について、説明する。まず第1の例として、ユーザの指示に応じてアプリケーション実行部44が新たなアプリケーションプログラムの実行を開始する際に、フラグ情報判定部45がこのアプリケーションプログラムの実行に先立って実行する処理の流れの一例について、図18のフロー図を用いて説明する。
【0075】
まずフラグ情報判定部45は、アプリケーション実行部44が起動しようとしているアプリケーションプログラムが、地磁気センサ21の計測結果を利用可能な種類のアプリケーションプログラムか否かを判定する(S31)。フラグ情報判定部45は、例えばアプリケーションプログラム内に記憶されたフラグ情報を参照することによって、この判定を行う。判定の結果、地磁気センサ21を利用しないタイプのアプリケーションプログラムであった場合、フラグ情報判定部45はそれ以上の処理を実行せず、アプリケーション実行部44がアプリケーションプログラムの起動を開始する(S37)。
【0076】
一方、S31で地磁気センサ21を利用するタイプのアプリケーションプログラムと判定された場合、次にフラグ情報判定部45は、地磁気センサ利用フラグF2を参照して、地磁気センサ21の利用が可能か否かを判定する(S32)。フラグF2の値が「N」の場合、当該情報処理装置30は地磁気センサ21の機能を利用しないという設定がなされていることになるので、フラグ情報判定部45は処理を終了し、アプリケーション実行部44がアプリケーションプログラムの起動を開始する(S37)。この場合、アプリケーション実行部44は、操作デバイス情報受信部42が受信する地磁気情報は利用せずに、例えば発光部12を撮像装置31が撮像して得られる情報等を利用しながら、アプリケーションプログラムの処理を実行することになる。
【0077】
S32の判定においてフラグF2の値が「Y」だった場合、続いてフラグ情報判定部45は、地磁気センサ21を内蔵する操作デバイス10が情報処理装置30に接続されているか否かを判定する(S33)。判定の結果、地磁気センサ21を内蔵する操作デバイス10が情報処理装置30に接続されておらず、他の種類の操作デバイスが接続されているだけの場合、フラグ情報判定部45は処理を終了し、アプリケーション実行部44がアプリケーションプログラムの起動を開始する(S37)。
【0078】
一方、地磁気センサ21を内蔵した1又は複数の操作デバイス10が情報処理装置30に現在接続中の場合、フラグ情報判定部45は、これらの操作デバイス10のそれぞれについて、キャリブレーション実行済みフラグF1を参照する(S34)。そして、現在接続中であって、キャリブレーション実行済みフラグF1の値として「N」が関連づけられている操作デバイス10が一つでも存在するか否かを判定する(S35)。このような操作デバイス10が存在する場合には、フラグ情報判定部45は、キャリブレーション処理の実行をユーザに促すメッセージを表示装置32の画面に表示する(S36)。このとき、操作デバイス10が複数接続されているのであれば、そのうちのどの操作デバイス10についてキャリブレーション処理が実行済みでないのかを示す情報(例えば、キャリブレーション未実施の操作デバイス10の番号など)を併せて表示してもよい。また、例えばキャリブレーション未実施の操作デバイス10の発光部12を所定の色で発光させるなどの制御を実行してもよい。
【0079】
S36の表示後、又はS35でキャリブレーション未実施の操作デバイス10は存在しないと判定された場合、アプリケーション実行部44がアプリケーションプログラムの起動を開始する(S37)。なお、このフローの例では、キャリブレーション未実施の操作デバイス10が存在すると判定された場合にも、単にユーザにその旨を知らせるメッセージを出力するだけで、そのままアプリケーションプログラムが実行されることとしている。しかしながら、キャリブレーション未実施の操作デバイス10が存在する場合、例えばキャリブレーション処理部43によるキャリブレーション処理を強制的に開始してもよい。あるいは、キャリブレーション処理を実行するか否かの選択を促す画面をユーザに提示し、ユーザの選択に応じてアプリケーションプログラムの起動前にキャリブレーション処理を開始してもよい。
【0080】
次に、フラグ情報の判定処理の第2の例として、アプリケーション実行部44がアプリケーションプログラムを実行中に、これまで接続されていなかった新たな操作デバイス10が接続された場合にフラグ情報判定部45が実行する処理の流れの一例について、図19のフロー図を用いて説明する。なお、この第2の例における判定処理は、地磁気センサ21の計測結果を利用するアプリケーションプログラムの実行中にのみ、実行されるものとする。
【0081】
まず、ユーザが情報処理装置30とペアリング済みの操作デバイス10の電源ボタンをオンにするなどした場合、フラグ情報判定部45は、新たな操作デバイス10の接続を検知する(S41)。そして、接続された操作デバイス10に関連づけられたキャリブレーション実行済みフラグF1を参照する(S42)。もしキャリブレーション実行済みフラグF1の値が「Y」であれば、フラグ情報判定部45は処理を終了する。これにより、アプリケーション実行部44による処理が再開される(S44)。
【0082】
一方、キャリブレーション実行済みフラグF1の値が「N」の場合、フラグ情報判定部45は、前述した図18のフローにおけるS36の処理と同様に、新たに接続された操作デバイス10について、キャリブレーション処理の実行をユーザに促すメッセージを表示装置32の画面に表示する(S43)。その後、アプリケーション実行部44による処理が再開される(S44)。
【0083】
以上説明したように、アプリケーションプログラムの実行開始時や、新たに操作デバイス10が接続された時などにおいて、地磁気センサ21の計測結果を利用するアプリケーションプログラムの処理を実行する前にキャリブレーション実行済みフラグF1を参照して判定を行うことによって、情報処理装置30は、自分自身に接続された操作デバイス10のそれぞれに、自分自身が生成したキャリブレーションデータが記憶されていない可能性がある場合に、その旨をユーザに通知するなどして、キャリブレーション処理の実行をユーザに促すことができる。
【0084】
なお、本発明の実施の形態は、以上説明したものに限られない。例えば、キャリブレーション処理の実行時に表示される案内画像Igの内容は、以上説明したものとは別の順序や別の向きで操作デバイス10を回転させる動作をユーザに指示するものであってもよい。
【0085】
また、本実施形態において情報処理装置30によるキャリブレーション処理の対象となるセンサは、地磁気センサに限らず、例えば加速度センサなど、各種のセンサであってよい。
【0086】
また、キャリブレーション実行済みフラグF1に相当する情報は、操作デバイス10側に記憶されることとしてもよい。この場合、操作デバイス10は、キャリブレーション処理が実行された際に、当該キャリブレーション処理を実行した情報処理装置30を特定する装置特定情報(例えば当該情報処理装置30の接続先情報など)を、当該情報処理装置30が生成したキャリブレーションデータとともに受信し、内蔵するメモリ内に格納する。また、情報処理装置30は、上述したフラグ情報の判定処理において、キャリブレーション実行済みフラグF1の情報を参照する代わりに、判定対象となる操作デバイス10から、当該操作デバイス10が記憶している装置特定情報を取得する。そして、取得した装置特定情報を用いて、キャリブレーションが実行済みか否かの判定を行う。具体的に、情報処理装置30は、操作デバイス10から受信した装置特定情報が自分自身を示すものであるか否かを判定し、自分自身の装置特定情報が操作デバイス10に記憶されている場合には、キャリブレーション実行済みフラグF1の値が「Y」の場合と同様に、当該操作デバイス10に記憶されたキャリブレーションデータを用いてよいと判断する。逆に、取得した装置特定情報が自分自身を示すものでない場合や、そもそも操作デバイス10が装置特定情報を記憶していない場合には、キャリブレーション実行済みフラグF1の値が「N」の場合と同様に、キャリブレーション処理の実行を促すメッセージを出力する。
【0087】
なお、この例では、操作デバイス10は、複数のキャリブレーションデータを記憶してもよい。この場合、複数のキャリブレーションデータのそれぞれに対して、当該キャリブレーションデータを生成した情報処理装置30の装置特定情報を関連づけて記憶する。そして、いずれかの情報処理装置30と接続された際には、当該情報処理装置30の装置特定情報を取得し、当該装置特定情報に関連づけられたキャリブレーションデータを用いて地磁気センサ21の計測結果を補正した上で、当該情報処理装置30に対して送信する。
【符号の説明】
【0088】
1 情報処理システム、10 操作デバイス、11 本体部、12 発光部、20 基板、21 地磁気センサ、30 情報処理装置、31 撮像装置、32 表示装置、33 制御部、34 記憶部、35 通信部、41 操作デバイス管理部、42 操作デバイス情報受信部、43 キャリブレーション処理部、44 アプリケーション実行部、45 フラグ情報判定部。
【特許請求の範囲】
【請求項1】
可搬型の通信装置と、当該通信装置と通信接続可能な据え置き型の情報処理装置と、を含む情報処理システムであって、
前記通信装置は、所定の情報を計測して計測結果を出力するセンサであって、使用場所に依存してその出力特性が変化するセンサを備え、
前記情報処理装置は、
通信接続された前記通信装置から、前記センサの計測結果を取得する手段と、
前記取得した計測結果を用いて前記センサのキャリブレーションを実行するキャリブレーション手段と、
前記センサの計測結果を利用するアプリケーションプログラムを実行するアプリケーション実行手段と、
前記アプリケーションプログラムを実行する際に、通信接続された前記通信装置について、前記キャリブレーション手段がキャリブレーションを実行済みか否か判定する判定手段と、
を含むことを特徴とする情報処理システム。
【請求項2】
請求項1に記載の情報処理システムにおいて、
前記情報処理装置は、前記キャリブレーション手段がキャリブレーションを実行した際に、前記通信装置について前記情報処理装置がキャリブレーションを実行したことを示すフラグ情報を記憶手段に格納するフラグ情報格納手段をさらに含み、
前記判定手段は、前記フラグ情報を参照して前記判定を行う
ことを特徴とする情報処理システム。
【請求項3】
請求項2に記載の情報処理システムにおいて、
前記情報処理装置は、前記通信装置との通信接続に先立って、前記通信装置との通信接続に必要な接続先情報を取得する接続先情報取得手段をさらに備え、
前記フラグ情報格納手段は、前記接続先情報取得手段が前記通信装置の接続先情報を取得する際に、前記通信装置についてキャリブレーションが実行済みでないことを示すフラグ情報を記憶手段に格納し、
前記接続先情報取得手段は、前記通信装置が他の情報処理装置と通信接続された後に再び前記通信装置との通信接続を行う場合には、前記通信装置の接続先情報を再取得する
ことを特徴とする情報処理システム。
【請求項4】
請求項2又は3に記載の情報処理システムにおいて、
前記情報処理装置に対して複数の前記通信装置が通信接続可能であって、
前記フラグ情報格納手段は、前記情報処理装置に対して通信接続可能な複数の前記通信装置のそれぞれに関連づけて、当該通信装置についてキャリブレーションを実行したか否かを示すフラグ情報を記憶手段に格納する
ことを特徴とする情報処理システム。
【請求項5】
請求項1から4のいずれか一項に記載の情報処理システムにおいて、
前記判定手段は、前記アプリケーション実行手段が新たに前記アプリケーションプログラムの実行を開始する際に、前記判定を行う
ことを特徴とする情報処理システム。
【請求項6】
請求項1から5のいずれか一項に記載の情報処理システムにおいて、
前記判定手段は、前記アプリケーション実行手段が前記アプリケーションプログラムを実行中に、前記通信装置との間の通信接続が開始された場合に、前記判定を行う
ことを特徴とする情報処理システム。
【請求項7】
請求項1に記載の情報処理システムにおいて、
前記通信装置は、前記キャリブレーション手段がキャリブレーションを実行した際に、当該キャリブレーションを実行した情報処理装置を特定する装置特定情報を前記情報処理装置から受信して記憶する手段を備え、
前記判定手段は、通信接続された前記通信装置に記憶されている前記装置特定情報を用いて、前記判定を行う
ことを特徴とする情報処理システム。
【請求項8】
所定の情報を計測して計測結果を出力するセンサであって、使用場所に依存してその出力特性が変化するセンサを備える可搬型の通信装置と通信接続可能な据え置き型の情報処理装置であって、
通信接続された前記通信装置から、前記センサの計測結果を取得する手段と、
前記取得した計測結果を用いて前記センサのキャリブレーションを実行するキャリブレーション手段と、
前記センサの計測結果を利用するアプリケーションプログラムを実行するアプリケーション実行手段と、
前記アプリケーションプログラムを実行する際に、通信接続された前記通信装置について、前記キャリブレーション手段がキャリブレーションを実行済みか否か判定する判定手段と、
を含むことを特徴とする情報処理装置。
【請求項9】
据え置き型の情報処理装置と通信接続可能な可搬型の通信装置であって、
所定の情報を計測して計測結果を出力するセンサであって、使用場所に依存してその出力特性が変化するセンサと、
前記センサの計測結果を用いて前記情報処理装置がキャリブレーションを実行して生成するキャリブレーションデータを、前記情報処理装置から受信して記憶する手段と、
を備え、
前記情報処理装置が前記センサの計測結果を利用するアプリケーションプログラムを実行する際には、前記情報処理装置が生成したキャリブレーションデータが前記通信装置に記憶されているか否か判定される
ことを特徴とする通信装置。
【請求項10】
所定の情報を計測して計測結果を出力するセンサであって、使用場所に依存してその出力特性が変化するセンサを備える可搬型の通信装置と通信接続可能な据え置き型の情報処理装置の制御方法であって、
通信接続された前記通信装置から、前記センサの計測結果を取得するステップと、
前記取得した計測結果を用いて前記センサのキャリブレーションを実行するキャリブレーションステップと、
前記センサの計測結果を利用するアプリケーションプログラムを実行するアプリケーション実行ステップと、
前記アプリケーションプログラムを実行する際に、通信接続された前記通信装置について、前記キャリブレーションステップによるキャリブレーションを実行済みか否か判定する判定ステップと、
を含むことを特徴とする情報処理装置の制御方法。
【請求項11】
所定の情報を計測して計測結果を出力するセンサであって、使用場所に依存してその出力特性が変化するセンサを備える可搬型の通信装置と通信接続可能な据え置き型の情報処理装置を制御するプログラムであって、
通信接続された前記通信装置から、前記センサの計測結果を取得する手段、
前記取得した計測結果を用いて前記センサのキャリブレーションを実行するキャリブレーション手段、
前記センサの計測結果を利用するアプリケーションプログラムを実行するアプリケーション実行手段、及び、
前記アプリケーションプログラムを実行する際に、通信接続された前記通信装置について、前記キャリブレーション手段がキャリブレーションを実行済みか否か判定する判定手段、
として前記情報処理装置を機能させるためのプログラム。
【請求項1】
可搬型の通信装置と、当該通信装置と通信接続可能な据え置き型の情報処理装置と、を含む情報処理システムであって、
前記通信装置は、所定の情報を計測して計測結果を出力するセンサであって、使用場所に依存してその出力特性が変化するセンサを備え、
前記情報処理装置は、
通信接続された前記通信装置から、前記センサの計測結果を取得する手段と、
前記取得した計測結果を用いて前記センサのキャリブレーションを実行するキャリブレーション手段と、
前記センサの計測結果を利用するアプリケーションプログラムを実行するアプリケーション実行手段と、
前記アプリケーションプログラムを実行する際に、通信接続された前記通信装置について、前記キャリブレーション手段がキャリブレーションを実行済みか否か判定する判定手段と、
を含むことを特徴とする情報処理システム。
【請求項2】
請求項1に記載の情報処理システムにおいて、
前記情報処理装置は、前記キャリブレーション手段がキャリブレーションを実行した際に、前記通信装置について前記情報処理装置がキャリブレーションを実行したことを示すフラグ情報を記憶手段に格納するフラグ情報格納手段をさらに含み、
前記判定手段は、前記フラグ情報を参照して前記判定を行う
ことを特徴とする情報処理システム。
【請求項3】
請求項2に記載の情報処理システムにおいて、
前記情報処理装置は、前記通信装置との通信接続に先立って、前記通信装置との通信接続に必要な接続先情報を取得する接続先情報取得手段をさらに備え、
前記フラグ情報格納手段は、前記接続先情報取得手段が前記通信装置の接続先情報を取得する際に、前記通信装置についてキャリブレーションが実行済みでないことを示すフラグ情報を記憶手段に格納し、
前記接続先情報取得手段は、前記通信装置が他の情報処理装置と通信接続された後に再び前記通信装置との通信接続を行う場合には、前記通信装置の接続先情報を再取得する
ことを特徴とする情報処理システム。
【請求項4】
請求項2又は3に記載の情報処理システムにおいて、
前記情報処理装置に対して複数の前記通信装置が通信接続可能であって、
前記フラグ情報格納手段は、前記情報処理装置に対して通信接続可能な複数の前記通信装置のそれぞれに関連づけて、当該通信装置についてキャリブレーションを実行したか否かを示すフラグ情報を記憶手段に格納する
ことを特徴とする情報処理システム。
【請求項5】
請求項1から4のいずれか一項に記載の情報処理システムにおいて、
前記判定手段は、前記アプリケーション実行手段が新たに前記アプリケーションプログラムの実行を開始する際に、前記判定を行う
ことを特徴とする情報処理システム。
【請求項6】
請求項1から5のいずれか一項に記載の情報処理システムにおいて、
前記判定手段は、前記アプリケーション実行手段が前記アプリケーションプログラムを実行中に、前記通信装置との間の通信接続が開始された場合に、前記判定を行う
ことを特徴とする情報処理システム。
【請求項7】
請求項1に記載の情報処理システムにおいて、
前記通信装置は、前記キャリブレーション手段がキャリブレーションを実行した際に、当該キャリブレーションを実行した情報処理装置を特定する装置特定情報を前記情報処理装置から受信して記憶する手段を備え、
前記判定手段は、通信接続された前記通信装置に記憶されている前記装置特定情報を用いて、前記判定を行う
ことを特徴とする情報処理システム。
【請求項8】
所定の情報を計測して計測結果を出力するセンサであって、使用場所に依存してその出力特性が変化するセンサを備える可搬型の通信装置と通信接続可能な据え置き型の情報処理装置であって、
通信接続された前記通信装置から、前記センサの計測結果を取得する手段と、
前記取得した計測結果を用いて前記センサのキャリブレーションを実行するキャリブレーション手段と、
前記センサの計測結果を利用するアプリケーションプログラムを実行するアプリケーション実行手段と、
前記アプリケーションプログラムを実行する際に、通信接続された前記通信装置について、前記キャリブレーション手段がキャリブレーションを実行済みか否か判定する判定手段と、
を含むことを特徴とする情報処理装置。
【請求項9】
据え置き型の情報処理装置と通信接続可能な可搬型の通信装置であって、
所定の情報を計測して計測結果を出力するセンサであって、使用場所に依存してその出力特性が変化するセンサと、
前記センサの計測結果を用いて前記情報処理装置がキャリブレーションを実行して生成するキャリブレーションデータを、前記情報処理装置から受信して記憶する手段と、
を備え、
前記情報処理装置が前記センサの計測結果を利用するアプリケーションプログラムを実行する際には、前記情報処理装置が生成したキャリブレーションデータが前記通信装置に記憶されているか否か判定される
ことを特徴とする通信装置。
【請求項10】
所定の情報を計測して計測結果を出力するセンサであって、使用場所に依存してその出力特性が変化するセンサを備える可搬型の通信装置と通信接続可能な据え置き型の情報処理装置の制御方法であって、
通信接続された前記通信装置から、前記センサの計測結果を取得するステップと、
前記取得した計測結果を用いて前記センサのキャリブレーションを実行するキャリブレーションステップと、
前記センサの計測結果を利用するアプリケーションプログラムを実行するアプリケーション実行ステップと、
前記アプリケーションプログラムを実行する際に、通信接続された前記通信装置について、前記キャリブレーションステップによるキャリブレーションを実行済みか否か判定する判定ステップと、
を含むことを特徴とする情報処理装置の制御方法。
【請求項11】
所定の情報を計測して計測結果を出力するセンサであって、使用場所に依存してその出力特性が変化するセンサを備える可搬型の通信装置と通信接続可能な据え置き型の情報処理装置を制御するプログラムであって、
通信接続された前記通信装置から、前記センサの計測結果を取得する手段、
前記取得した計測結果を用いて前記センサのキャリブレーションを実行するキャリブレーション手段、
前記センサの計測結果を利用するアプリケーションプログラムを実行するアプリケーション実行手段、及び、
前記アプリケーションプログラムを実行する際に、通信接続された前記通信装置について、前記キャリブレーション手段がキャリブレーションを実行済みか否か判定する判定手段、
として前記情報処理装置を機能させるためのプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【公開番号】特開2012−61058(P2012−61058A)
【公開日】平成24年3月29日(2012.3.29)
【国際特許分類】
【出願番号】特願2010−206008(P2010−206008)
【出願日】平成22年9月14日(2010.9.14)
【出願人】(310021766)株式会社ソニー・コンピュータエンタテインメント (417)
【Fターム(参考)】
【公開日】平成24年3月29日(2012.3.29)
【国際特許分類】
【出願日】平成22年9月14日(2010.9.14)
【出願人】(310021766)株式会社ソニー・コンピュータエンタテインメント (417)
【Fターム(参考)】
[ Back to top ]