(57)【要約】【課題】通信装置が出力するセンサの計測結果を信頼できるか否か判断することのできる情報処理システムを提供する。【解決手段】所定の情報を計測して計測結果を出力するセンサであって、使用場所に依存してその出力特性が変化するセンサを備える可搬型の通信装置と、当該通信装置と通信接続可能な据え置き型の情報処理装置と、を含み、当該情報処理装置は、通信接続された通信装置からセンサの計測結果を取得し、取得した計測結果を用いてセンサのキャリブレーションを実行し、センサの計測結果を利用するアプリケーションプログラムを実行し、当該アプリケーションプログラムを実行する際に、通信接続された通信装置についてキャリブレーションを実行済みか否か判定する情報処理システムである。【選択図】図６
2012061058.tif 000002
【特許請求の範囲】
【請求項１】
可搬型の通信装置と、当該通信装置と通信接続可能な据え置き型の情報処理装置と、を含む情報処理システムであって、
前記通信装置は、所定の情報を計測して計測結果を出力するセンサであって、使用場所に依存してその出力特性が変化するセンサを備え、
前記情報処理装置は、
通信接続された前記通信装置から、前記センサの計測結果を取得する手段と、
前記取得した計測結果を用いて前記センサのキャリブレーションを実行するキャリブレーション手段と、
前記センサの計測結果を利用するアプリケーションプログラムを実行するアプリケーション実行手段と、
前記アプリケーションプログラムを実行する際に、通信接続された前記通信装置について、前記キャリブレーション手段がキャリブレーションを実行済みか否か判定する判定手段と、
を含むことを特徴とする情報処理システム。
【請求項２】
請求項１に記載の情報処理システムにおいて、
前記情報処理装置は、前記キャリブレーション手段がキャリブレーションを実行した際に、前記通信装置について前記情報処理装置がキャリブレーションを実行したことを示すフラグ情報を記憶手段に格納するフラグ情報格納手段をさらに含み、
前記判定手段は、前記フラグ情報を参照して前記判定を行う
ことを特徴とする情報処理システム。
【請求項３】
請求項２に記載の情報処理システムにおいて、
前記情報処理装置は、前記通信装置との通信接続に先立って、前記通信装置との通信接続に必要な接続先情報を取得する接続先情報取得手段をさらに備え、
前記フラグ情報格納手段は、前記接続先情報取得手段が前記通信装置の接続先情報を取得する際に、前記通信装置についてキャリブレーションが実行済みでないことを示すフラグ情報を記憶手段に格納し、
前記接続先情報取得手段は、前記通信装置が他の情報処理装置と通信接続された後に再び前記通信装置との通信接続を行う場合には、前記通信装置の接続先情報を再取得する
ことを特徴とする情報処理システム。
【請求項４】
請求項２又は３に記載の情報処理システムにおいて、
前記情報処理装置に対して複数の前記通信装置が通信接続可能であって、
前記フラグ情報格納手段は、前記情報処理装置に対して通信接続可能な複数の前記通信装置のそれぞれに関連づけて、当該通信装置についてキャリブレーションを実行したか否かを示すフラグ情報を記憶手段に格納する
ことを特徴とする情報処理システム。
【請求項５】
請求項１から４のいずれか一項に記載の情報処理システムにおいて、
前記判定手段は、前記アプリケーション実行手段が新たに前記アプリケーションプログラムの実行を開始する際に、前記判定を行う
ことを特徴とする情報処理システム。
【請求項６】
請求項１から５のいずれか一項に記載の情報処理システムにおいて、
前記判定手段は、前記アプリケーション実行手段が前記アプリケーションプログラムを実行中に、前記通信装置との間の通信接続が開始された場合に、前記判定を行う
ことを特徴とする情報処理システム。
【請求項７】
請求項１に記載の情報処理システムにおいて、
前記通信装置は、前記キャリブレーション手段がキャリブレーションを実行した際に、当該キャリブレーションを実行した情報処理装置を特定する装置特定情報を前記情報処理装置から受信して記憶する手段を備え、
前記判定手段は、通信接続された前記通信装置に記憶されている前記装置特定情報を用いて、前記判定を行う
ことを特徴とする情報処理システム。
【請求項８】
所定の情報を計測して計測結果を出力するセンサであって、使用場所に依存してその出力特性が変化するセンサを備える可搬型の通信装置と通信接続可能な据え置き型の情報処理装置であって、
通信接続された前記通信装置から、前記センサの計測結果を取得する手段と、
前記取得した計測結果を用いて前記センサのキャリブレーションを実行するキャリブレーション手段と、
前記センサの計測結果を利用するアプリケーションプログラムを実行するアプリケーション実行手段と、
前記アプリケーションプログラムを実行する際に、通信接続された前記通信装置について、前記キャリブレーション手段がキャリブレーションを実行済みか否か判定する判定手段と、
を含むことを特徴とする情報処理装置。
【請求項９】
据え置き型の情報処理装置と通信接続可能な可搬型の通信装置であって、
所定の情報を計測して計測結果を出力するセンサであって、使用場所に依存してその出力特性が変化するセンサと、
前記センサの計測結果を用いて前記情報処理装置がキャリブレーションを実行して生成するキャリブレーションデータを、前記情報処理装置から受信して記憶する手段と、
を備え、
前記情報処理装置が前記センサの計測結果を利用するアプリケーションプログラムを実行する際には、前記情報処理装置が生成したキャリブレーションデータが前記通信装置に記憶されているか否か判定される
ことを特徴とする通信装置。
【請求項１０】
所定の情報を計測して計測結果を出力するセンサであって、使用場所に依存してその出力特性が変化するセンサを備える可搬型の通信装置と通信接続可能な据え置き型の情報処理装置の制御方法であって、
通信接続された前記通信装置から、前記センサの計測結果を取得するステップと、
前記取得した計測結果を用いて前記センサのキャリブレーションを実行するキャリブレーションステップと、
前記センサの計測結果を利用するアプリケーションプログラムを実行するアプリケーション実行ステップと、
前記アプリケーションプログラムを実行する際に、通信接続された前記通信装置について、前記キャリブレーションステップによるキャリブレーションを実行済みか否か判定する判定ステップと、
を含むことを特徴とする情報処理装置の制御方法。
【請求項１１】
所定の情報を計測して計測結果を出力するセンサであって、使用場所に依存してその出力特性が変化するセンサを備える可搬型の通信装置と通信接続可能な据え置き型の情報処理装置を制御するプログラムであって、
通信接続された前記通信装置から、前記センサの計測結果を取得する手段、
前記取得した計測結果を用いて前記センサのキャリブレーションを実行するキャリブレーション手段、
前記センサの計測結果を利用するアプリケーションプログラムを実行するアプリケーション実行手段、及び、
前記アプリケーションプログラムを実行する際に、通信接続された前記通信装置について、前記キャリブレーション手段がキャリブレーションを実行済みか否か判定する判定手段、
として前記情報処理装置を機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、センサを内蔵する通信装置、当該センサのキャリブレーション処理を行う情報処理装置、その制御方法、その制御プラグラム、及び当該通信装置と情報処理装置とを含む情報処理システムに関する。
【背景技術】
【０００２】
センサの中には、その出力特性が周辺環境などに依存して変化するために、使用前にキャリブレーションを行う必要があるものが知られている。このようなセンサを使用する際には、予め、キャリブレーション処理として、例えば基準状態での出力値を計測するなどの方法でその出力特性を調査し、その出力特性に応じた補正値を算出する。その後、センサを用いた実際の計測を行う際には、この算出された補正値を用いてセンサの出力値を補正することにより、より真の値に近い計測値を取得することが可能になる。
【０００３】
このようなセンサは、各種の機器に内蔵されている。例えば、家庭用ゲーム機のコントローラの中には、当該コントローラの姿勢や動きを検出するために、加速度センサ等のセンサを内蔵したものがある。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上述したようなセンサが可搬型の通信装置に内蔵される場合、ある場所でキャリブレーションを実行したとしても、キャリブレーションによって得られた補正値は、別の場所では有効に機能しない場合があり得る。このような場合、通信装置と通信接続される情報処理装置は、通信装置が出力するセンサの計測結果を信頼できなくなってしまう。
【０００５】
本発明は上記実情を考慮してなされたものであって、その目的の一つは、通信装置が出力するセンサの計測結果を信頼できるか否か判断することのできる情報処理装置、その制御方法、その制御プログラム、当該情報処理装置を含む情報処理システム、及び当該情報処理装置と接続される通信装置を提供することにある。
【課題を解決するための手段】
【０００６】
本発明に係る情報処理システムは、可搬型の通信装置と、当該通信装置と通信接続可能な据え置き型の情報処理装置と、を含む情報処理システムであって、前記通信装置は、所定の情報を計測して計測結果を出力するセンサであって、使用場所に依存してその出力特性が変化するセンサを備え、前記情報処理装置は、通信接続された前記通信装置から、前記センサの計測結果を取得する手段と、前記取得した計測結果を用いて前記センサのキャリブレーションを実行するキャリブレーション手段と、前記センサの計測結果を利用するアプリケーションプログラムを実行するアプリケーション実行手段と、前記アプリケーションプログラムを実行する際に、通信接続された前記通信装置について、前記キャリブレーション手段がキャリブレーションを実行済みか否か判定する判定手段と、を含むことを特徴とする。
【０００７】
前記情報処理システムにおいて、前記情報処理装置は、前記キャリブレーション手段がキャリブレーションを実行した際に、前記通信装置について前記情報処理装置がキャリブレーションを実行したことを示すフラグ情報を記憶手段に格納するフラグ情報格納手段をさらに含み、前記判定手段は、前記フラグ情報を参照して前記判定を行うこととしてもよい。
【０００８】
さらに、前記情報処理装置は、前記通信装置との通信接続に先立って、前記通信装置との通信接続に必要な接続先情報を取得する接続先情報取得手段をさらに備え、前記フラグ情報格納手段は、前記接続先情報取得手段が前記通信装置の接続先情報を取得する際に、前記通信装置についてキャリブレーションが実行済みでないことを示すフラグ情報を記憶手段に格納し、前記接続先情報取得手段は、前記通信装置が他の情報処理装置と通信接続された後に再び前記通信装置との通信接続を行う場合には、前記通信装置の接続先情報を再取得することとしてもよい。
【０００９】
また、前記情報処理システムでは、前記情報処理装置に対して複数の前記通信装置が通信接続可能であって、前記フラグ情報格納手段は、前記情報処理装置に対して通信接続可能な複数の前記通信装置のそれぞれに関連づけて、当該通信装置についてキャリブレーションを実行したか否かを示すフラグ情報を記憶手段に格納することとしてもよい。
【００１０】
また、前記情報処理システムにおいて、前記判定手段は、前記アプリケーション実行手段が新たに前記アプリケーションプログラムの実行を開始する際に、前記判定を行うこととしてもよい。
【００１１】
また、前記情報処理システムにおいて、前記判定手段は、前記アプリケーション実行手段が前記アプリケーションプログラムを実行中に、前記通信装置との間の通信接続が開始された場合に、前記判定を行うこととしてもよい。
【００１２】
また、前記情報処理システムにおいて、前記通信装置は、前記キャリブレーション手段がキャリブレーションを実行した際に、当該キャリブレーションを実行した情報処理装置を特定する装置特定情報を前記情報処理装置から受信して記憶する手段を備え、前記判定手段は、通信接続された前記通信装置に記憶されている前記装置特定情報を用いて、前記判定を行うこととしてもよい。
【００１３】
また、本発明に係る情報処理装置は、所定の情報を計測して計測結果を出力するセンサであって、使用場所に依存してその出力特性が変化するセンサを備える可搬型の通信装置と通信接続可能な据え置き型の情報処理装置であって、通信接続された前記通信装置から、前記センサの計測結果を取得する手段と、前記取得した計測結果を用いて前記センサのキャリブレーションを実行するキャリブレーション手段と、前記センサの計測結果を利用するアプリケーションプログラムを実行するアプリケーション実行手段と、前記アプリケーションプログラムを実行する際に、通信接続された前記通信装置について、前記キャリブレーション手段がキャリブレーションを実行済みか否か判定する判定手段と、を含むことを特徴とする。
【００１４】
また、本発明に係る通信装置は、据え置き型の情報処理装置と通信接続可能な可搬型の通信装置であって、所定の情報を計測して計測結果を出力するセンサであって、使用場所に依存してその出力特性が変化するセンサと、前記センサの計測結果を用いて前記情報処理装置がキャリブレーションを実行して生成するキャリブレーションデータを、前記情報処理装置から受信して記憶する手段と、を備え、前記情報処理装置が前記センサの計測結果を利用するアプリケーションプログラムを実行する際には、前記情報処理装置が生成したキャリブレーションデータが前記通信装置に記憶されているか否か判定されることを特徴とする。
【００１５】
また、本発明に係る情報処理装置の制御方法は、所定の情報を計測して計測結果を出力するセンサであって、使用場所に依存してその出力特性が変化するセンサを備える可搬型の通信装置と通信接続可能な据え置き型の情報処理装置の制御方法であって、通信接続された前記通信装置から、前記センサの計測結果を取得するステップと、前記取得した計測結果を用いて前記センサのキャリブレーションを実行するキャリブレーションステップと、前記センサの計測結果を利用するアプリケーションプログラムを実行するアプリケーション実行ステップと、前記アプリケーションプログラムを実行する際に、通信接続された前記通信装置について、前記キャリブレーションステップによるキャリブレーションを実行済みか否か判定する判定ステップと、を含むことを特徴とする。
【００１６】
また、本発明に係るプログラムは、所定の情報を計測して計測結果を出力するセンサであって、使用場所に依存してその出力特性が変化するセンサを備える可搬型の通信装置と通信接続可能な据え置き型の情報処理装置を制御するプログラムであって、通信接続された前記通信装置から、前記センサの計測結果を取得する手段、前記取得した計測結果を用いて前記センサのキャリブレーションを実行するキャリブレーション手段、前記センサの計測結果を利用するアプリケーションプログラムを実行するアプリケーション実行手段、及び、前記アプリケーションプログラムを実行する際に、通信接続された前記通信装置について、前記キャリブレーション手段がキャリブレーションを実行済みか否か判定する判定手段、として前記情報処理装置を機能させるためのプログラムである。このプログラムは、コンピュータ読み取り可能な情報記憶媒体に記憶されてよい。
【図面の簡単な説明】
【００１７】
【図１】本発明の実施の形態に係る情報処理システムの全体概要を示す図である。
【図２】操作デバイス（通信装置）の斜視図である。
【図３】操作デバイス内の基板配置を示す図である。
【図４】情報処理装置の内部構成を示すブロック図である。
【図５】情報処理装置に格納されるフラグ情報の内容を示す説明図である。
【図６】情報処理装置の機能を示す機能ブロック図である。
【図７】ペアリング処理の流れの一例を示す図である。
【図８】キャリブレーション処理の流れの一例を示す図である。
【図９】キャリブレーション処理の流れの一例を示す図である。
【図１０】キャリブレーション動作の案内画像の一例を示す図である。
【図１１】キャリブレーション動作の案内画像の一例を示す図である。
【図１２】キャリブレーション動作の案内画像の一例を示す図である。
【図１３】キャリブレーション動作の案内画像の一例を示す図である。
【図１４】キャリブレーション動作の案内画像の一例を示す図である。
【図１５】キャリブレーション動作の案内画像の一例を示す図である。
【図１６】キャリブレーション動作の案内画像の一例を示す図である。
【図１７】キャリブレーション動作の案内画像の別の例を示す図である。
【図１８】アプリケーションプログラム起動時の処理の流れの一例を示す図である。
【図１９】アプリケーションプログラムの実行中に操作デバイスが接続された場合に実行される処理の流れの一例を示す図である。
【発明を実施するための形態】
【００１８】
以下、本発明の実施の形態について、図面に基づき詳細に説明する。
【００１９】
図１は、本発明の一実施形態に係る情報処理システム１の利用シーンを示す全体概要図である。同図に示すように、情報処理システム１は、ユーザが手で把持して使用する可搬型の操作デバイス（通信装置）１０と、据え置き型の情報処理装置３０と、を含んで構成される。情報処理装置３０は、例えば家庭用ゲーム機やパーソナルコンピュータ等であって、撮像装置３１及び表示装置３２と接続される。
【００２０】
操作デバイス１０は、ユーザが容易に持ち運ぶことのできるサイズ及び重量の可搬型の通信装置であって、Ｂｌｕｅｔｏｏｔｈ（登録商標）規格などの無線通信インタフェースを介して情報処理装置３０と通信接続可能になっている。なお、１台の情報処理装置３０に対して、複数の操作デバイス１０が接続可能である。情報処理システム１のユーザは、操作デバイス１０を手で把持して、操作デバイス１０に設けられた操作ボタン等を操作する。これに応じて、ユーザの操作内容が無線通信インタフェースを介して情報処理装置３０に対して送信される。また、本実施形態では、操作デバイス１０は発光部１２を備えており、発光部１２は情報処理装置３０からの指示に応じて発光する。撮像装置３１は、この発光部１２から発せられる光を撮像し、撮像された画像を情報処理装置３０に対して出力する。さらに、操作デバイス１０は地磁気センサを備えており、この地磁気センサによる計測結果を情報処理装置３０に送信する。情報処理装置３０は、撮像装置３１の撮像画像内における発光部１２の位置や大きさと、操作デバイス１０が内蔵する地磁気センサの計測結果とを用いて、操作デバイス１０の姿勢（位置や向き）を特定する。これにより、ユーザは操作デバイス１０に設けられた操作ボタン等を操作するだけでなく、操作デバイス１０自体を動かすことによって、情報処理装置３０に対する操作入力を行うことができる。
【００２１】
操作デバイス１０は、図２の斜視図に示されるように、本体部１１及び発光部１２を備えており、本体部１１の側面にはユーザによる操作対象となる複数の操作ボタンが配置されている。ユーザは、本体部１１の中央近傍を把持して、各操作ボタンを指で押下する操作入力を行う。なお、以下では、操作デバイス１０の左右方向をＸ軸、上下方向（長手方向）をＹ軸、奥行き方向（厚さ方向）をＺ軸と表記する。
【００２２】
本体部１１は、全体として円柱状に形成されており、その一端に発光部１２が取り付けられている。発光部１２は、シリコーン樹脂等の光を透過する素材で形成された球状の外殻と、その内部に配置された複数のＬＥＤと、を含んで構成される。本実施形態では、光の３原色に対応する３個のＬＥＤがそれぞれ情報処理装置３０からの指示に応じた強度で発光することにより、発光部１２が様々な色で発光する。
【００２３】
また、本体部１１内には、基板２０が配置されている。図３は操作デバイス１０内における基板２０の配置を示す図であって、本体部１１の筐体の一部を取り外した状態の操作デバイス１０を、背面側から見た様子を示している。同図に示すように、基板２０は略矩形状であって、操作デバイス１０のＸ軸及びＹ軸に平行な向きで配置されている。
【００２４】
図３に示すように、基板２０の操作デバイス１０背面側の面には、地磁気センサ２１が配置されている。本実施形態では、地磁気センサ２１は３軸地磁気センサであって、操作デバイス１０のＸＹ平面、ＹＺ平面、及びＺＸ平面を基準面として、これらの基準面それぞれに対する地磁気の傾きを計測するものとする。この各面の地磁気の計測結果の時間変化を解析することで、操作デバイス１０の向きの変化が特定できる。図から明らかなように、地磁気センサ２１は、基板２０上の発光部１２に近い側の端部に配置されている。
【００２５】
地磁気センサ２１の計測結果は、地磁気センサ２１が使用される場所の磁場環境に依存してその出力特性が変化する場合がある。つまり、地磁気センサ２１は、使用場所に固有の磁場の影響を受けて、計測結果が本来の地磁気の向きからずれてしまう場合がある。そのため、例えば工場出荷時に地磁気センサ２１のキャリブレーションを行ったとしても、実際にユーザが自分の自宅などで操作デバイス１０を使用する際に、キャリブレーションをやり直したほうが望ましい場合がある。そこで本実施形態では、操作デバイス１０に対する操作入力によって動作する情報処理装置３０が、操作デバイス１０に内蔵された地磁気センサ２１のキャリブレーション処理を実行できるようになっている。
【００２６】
なお、図には示されていないが、操作デバイス１０には、地磁気センサ２１のほかにも、例えば加速度センサやジャイロセンサなど、操作デバイス１０の姿勢やその変化を検出するための各種のセンサが内蔵されてよい。
【００２７】
次に、情報処理装置３０の構成について説明する。情報処理装置３０は、例えば家庭用ゲーム機やパーソナルコンピュータ等であって、ユーザの自宅内などに設置されて使用される据え置き型の装置であることとする。情報処理装置３０は、図４に示すように、制御部３３と、記憶部３４と、通信部３５と、を含んで構成され、撮像装置３１及び表示装置３２と接続されている。
【００２８】
制御部３３は、ＣＰＵ等のプログラム制御デバイスであって、記憶部３４に記憶されているプログラムに従って各種の情報処理を行う。本実施形態において制御部３３が実行する処理については、後述する。
【００２９】
記憶部３４は、ＲＡＭやＲＯＭ等のメモリ素子、またハードディスク等のディスクデバイスを含んで構成され、制御部３３が実行するプログラム、及び制御部３３が実行する処理に用いられる各種のデータを記憶する。また、記憶部３４は、制御部３３のワークメモリとしても機能する。特に本実施形態では、操作デバイス１０から送信されるセンサの計測結果等の情報が、記憶部３４内に一時的に記憶される。
【００３０】
また、記憶部３４のうち、情報処理装置３０の電源オフ時にもデータが消去されない記憶領域（例えば不揮発性メモリ等）には、当該情報処理装置３０に接続される操作デバイス１０に関する情報、及び、これらの操作デバイス１０に内蔵されている地磁気センサ２１の利用に関する各種のフラグ情報が記憶される。具体的に、記憶部３４には、図５に示すようなフラグ情報が格納される。以下、これらの情報について説明する。
【００３１】
第１に、情報処理装置３０の記憶部３４には、当該情報処理装置３０に接続可能な操作デバイス１０の接続先情報が後納される。前述したように、情報処理装置３０には複数の操作デバイス１０が接続可能なので、記憶部３４は、これら複数の操作デバイス１０のそれぞれについて、その接続先情報を記憶する。ここで、接続先情報は、情報処理装置３０が通信相手の操作デバイス１０を特定し、通信接続を行うために必要な情報であって、例えばＢｌｕｅｔｏｏｔｈ機器アドレスなどであってよい。ユーザは、新たに購入するなどした操作デバイス１０を情報処理装置３０と接続して使用する際には、まず、その接続先情報を情報処理装置３０に登録する必要がある。Ｂｌｕｅｔｏｏｔｈ機器の場合、このような接続先情報を通信相手と交換して、通信相手の接続先情報を登録する処理を、ペアリング処理という。
【００３２】
さらに、これら接続可能な操作デバイス１０の接続先情報のそれぞれに対して、その操作デバイス１０に内蔵された地磁気センサ２１のキャリブレーションを実行したか否かを示すキャリブレーション実行済みフラグＦ１が関連づけて記憶される。図５から明らかなように、キャリブレーション実行済みフラグＦ１は、複数の操作デバイス１０のそれぞれについて、独立に用意される。このキャリブレーション実行済みフラグＦ１は、対応する操作デバイス１０について、地磁気センサ２１のキャリブレーションを当該情報処理装置３０が実行したか否かを示すフラグであって、情報処理装置３０がキャリブレーション処理を実行した際には、キャリブレーションが実行済みであることを示す値（ここでは「Ｙ」とする）が格納される。なお、最初に情報処理装置３０に操作デバイス１０の接続先情報が記憶される際には、キャリブレーション実行済みフラグＦ１は、キャリブレーションが実行済みでないことを示す値（ここでは「Ｎ」とする）で初期化される。
【００３３】
第２に、情報処理装置３０の記憶部３４には、地磁気センサ２１の利用可否を示す地磁気センサ利用フラグＦ２が格納される。この地磁気センサ利用フラグＦ２は、情報処理装置３０が、自分自身の実行する処理において、操作デバイス１０に内蔵された地磁気センサ２１を利用するか否かを示すフラグである。地磁気センサ利用フラグＦ２に、地磁気センサ２１を利用しないことを示す値（ここでは「Ｎ」とする）が格納されている場合、情報処理装置３０は、後述するアプリケーション実行部４４の処理において、地磁気センサ２１の計測結果を利用しないこととする。一方、地磁気センサ利用フラグＦ２に、地磁気センサ２１を利用することを示す値（ここでは「Ｙ」とする）が格納されている場合、情報処理装置３０は、地磁気センサ２１の計測結果を利用することができる。なお、この地磁気センサ利用フラグＦ２は、情報処理装置３０に接続される操作デバイス１０の個体とは無関係な情報である。すなわち、地磁気センサ利用フラグＦ２は、１つの情報処理装置３０に対して１つだけ用意されるフラグ情報であって、その値が「Ｎ」の場合、どの操作デバイス１０が接続された場合であっても、その中に内蔵される地磁気センサ２１の計測結果は利用されないことになる。例えば情報処理装置３０が設置される場所の周囲の磁場環境によっては、地磁気センサ２１による地磁気の計測が困難な場合がある。このような場合、ユーザは情報処理装置３０に対する指示操作を行って、地磁気センサ利用フラグＦ２の値を「Ｎ」に変更することにより、地磁気センサ２１の計測結果をアプリケーションプログラムに利用させないようにすることができる。
【００３４】
通信部３５は、操作デバイス１０が備える通信インタフェースと同規格の通信インタフェースであって、操作デバイス１０との間で情報の送受信を実行する。本実施形態では、通信部３５は、操作デバイス１０との間で通信接続を行うための通信インタフェースとして、Ｂｌｕｅｔｏｏｔｈ規格に基づく無線通信インタフェース、及びＵＳＢ（Universal Serial Bus）規格に基づく有線通信インタフェースを備えることとする。なお、通信部３５は、前述した接続先情報を用いて接続先の操作デバイス１０を特定して、無線通信を行う。
【００３５】
以下、本実施形態において情報処理装置３０が実現する機能について、説明する。図６に示すように、情報処理装置３０は、機能的に、操作デバイス管理部４１と、操作デバイス情報受信部４２と、キャリブレーション処理部４３と、アプリケーション実行部４４と、フラグ情報判定部４５と、を含んで構成される。これらの機能は、制御部３３が記憶部３４に格納されたプログラムを実行することにより、実現される。このプログラムは、例えばインターネット等の通信ネットワークを介して情報処理装置３０に提供されてもよいし、光ディスク等のコンピュータ読み取り可能な各種の情報記憶媒体に格納されて提供されてもよい。
【００３６】
操作デバイス管理部４１は、当該情報処理装置３０に接続される操作デバイス１０に関する情報を管理する。具体的に、操作デバイス管理部４１は、情報処理装置３０に対して接続される可能性のある複数の操作デバイス１０について、これらの操作デバイス１０との間の通信接続に必要な接続先情報を取得し、記憶部３４に格納する。特に操作デバイス管理部４１は、ユーザが、情報処理装置３０にまだ接続先情報が記憶されていない新たな操作デバイス１０を使用しようとしたときに、この操作デバイス１０の接続先情報を取得するとともに、操作デバイス１０に対して自身の接続先情報を提供するペアリング処理を行う。
【００３７】
操作デバイス情報受信部４２は、所定時間おき（例えば１１．２５ｍｓおき）に、操作デバイス１０が送信する情報を受信する。ここで、操作デバイス１０から受信する情報には、操作デバイス１０が備える操作ボタンに対してユーザが行った操作の内容を示す情報が含まれる。また、操作デバイス１０が備える地磁気センサ２１の計測結果を示す情報（以下、地磁気情報という）も含まれる。
【００３８】
キャリブレーション処理部４３は、操作デバイス情報受信部４２が取得した地磁気情報を用いて、地磁気センサ２１のキャリブレーション処理を実行する。ここで、キャリブレーション処理部４３が実行するキャリブレーション処理は、情報処理装置３０に接続する複数の操作デバイス１０のうち、特定の一つの操作デバイス１０をキャリブレーション対象デバイスとして、そのキャリブレーション対象デバイスに内蔵された地磁気センサ２１の出力結果の補正に用いる補正値を算出する処理である。特に本実施形態では、このキャリブレーション処理は、ユーザがキャリブレーション対象デバイスの姿勢を変化させている間に、地磁気センサ２１の計測結果を取得することにより、行われる。そのため、キャリブレーション処理部４３は、キャリブレーション対象デバイスの姿勢をどのように変化させるべきかをユーザに案内する案内画像Ｉｇを表示装置３２の画面に表示させながら、キャリブレーション処理を実行する。
【００３９】
アプリケーション実行部４４は、ゲーム等のアプリケーションプログラムの処理を実行する。本実施形態では、アプリケーション実行部４４は、操作デバイス情報受信部４２が取得した地磁気情報を用いた処理を実行することとする。例えばアプリケーション実行部４４は、ユーザが操作デバイス１０を動かした結果得られる地磁気の向きの変化に基づいて、ゲームに登場するキャラクタやオブジェクトを移動させる処理を実行する。
【００４０】
フラグ情報判定部４５は、記憶部３４に記憶されているキャリブレーション実行済みフラグＦ１の情報を参照して、現在接続中の操作デバイス１０について、地磁気センサ２１のキャリブレーション処理が実行済みか否かを判定する。フラグ情報判定部４５は、このようなフラグ情報の判定処理を、例えばアプリケーション実行部４４がアプリケーションプログラムをロードしてその処理を開始する前に実行する。あるいは、フラグ情報判定部４５は、アプリケーション実行部４４による処理の実行中に新たな操作デバイス１０の接続が検知された場合にも、フラグ情報の判定処理を実行してもよい。
【００４１】
なお、フラグ情報判定部４５が実現する機能は、アプリケーション実行部４４が実行するアプリケーションプログラムの種類によらず、地磁気センサ２１の計測結果を利用するアプリケーションプログラムに共通して行われる処理である。そのため、フラグ情報判定部４５の機能は、操作デバイス管理部４１やキャリブレーション処理部４３と同様に、アプリケーションプログラムとは別のシステムプログラムを制御部３３が実行することにより実現されてよい。あるいは、アプリケーション実行部４４の機能と同様に制御部３３がアプリケーションプログラムを実行することにより実現されてもよい。
【００４２】
以下、操作デバイス管理部４１が実行するペアリング処理の具体例について、図７のフロー図を用いて説明する。なお、本実施形態では、情報処理装置３０と操作デバイス１０とがＵＳＢケーブルを介して接続されることを契機として、ペアリング処理が開始されることとする。ただし、これに限らず、例えば一般的なＢｌｕｅｔｏｏｔｈ機器と同様に、無線通信によってペアリング処理を実行することとしてもよい。
【００４３】
まず、ユーザがＵＳＢケーブルを用いて情報処理装置３０に対してペアリング対象の操作デバイス１０を接続する（Ｓ１）と、操作デバイス１０は、自分自身が有線通信にて他の通信機器と接続されたことを検知する。これに応じて、操作デバイス１０は、ＵＳＢのプロトコルに従って、自分自身の機器種別などの情報を情報処理装置３０に対して送信する。操作デバイス管理部４１は、この情報を受信して、ＵＳＢ接続された機器の種別判定を行う（Ｓ２）。
【００４４】
Ｓ２の処理の結果、ＵＳＢ接続されたのがペアリング対象の操作デバイス１０であることを判別すると、操作デバイス管理部４１は、操作デバイス１０との間で、接続先情報の交換を行う（Ｓ３）。すなわち、操作デバイス管理部４１は、情報処理装置３０の接続先情報を操作デバイス１０に送信するとともに、操作デバイス１０から当該操作デバイス１０の接続先情報を受信する。
【００４５】
操作デバイス管理部４１は、Ｓ３で交換された接続先情報を用いて、接続された操作デバイス１０が、既にペアリング済みの操作デバイス１０か否かを判定する（Ｓ４）。このとき、Ｓ３で受信した操作デバイス１０の接続先情報が、図５に示すような接続可能な操作デバイス１０のリストに含まれていなければ、ペアリング済みでないと判定される。一方、本実施形態では、たとえＳ３で受信した操作デバイス１０の接続先情報が接続可能な操作デバイス１０のリストに含まれていたとしても、必ずしもペアリング済みであると判定されるとは限らない。例えば操作デバイス１０が第１の情報処理装置３０とペアリングされた後、第２の情報処理装置３０とペアリングされた場合、操作デバイス１０からは第１の情報処理装置３０の接続先情報は消去される。操作デバイス１０は、同時に複数の情報処理装置３０とペアリングされた状態を維持することができないように制限されているからである。この場合、再び操作デバイス１０が第１の情報処理装置３０とＵＳＢ接続された場合には、第１の情報処理装置３０は当該操作デバイス１０の接続先情報を記憶部３４に記憶しているにもかかわらず、操作デバイス１０と第１の情報処理装置３０との間で改めてペアリングが行われることになる。このような制御を可能にするために、操作デバイス管理部４１は、ＵＳＢ接続された操作デバイス１０から、Ｓ３で送信した情報処理装置３０の接続先情報が記憶されていたか否かの判定結果を受信する。そして、操作デバイス１０側、及び情報処理装置３０側の双方がＳ３で交換した相手の接続先情報を既に記憶していた場合に限って、今回接続された操作デバイス１０がペアリング済みであると判定する。
【００４６】
Ｓ４の判定により、今回接続された操作デバイス１０がペアリング済みであると判定された場合、操作デバイス管理部４１は、改めてペアリング処理を行う必要はないので、処理を終了する。一方、ペアリング済みでないと判定された場合、操作デバイス１０、及び情報処理装置３０の双方が、Ｓ３で交換された相手の接続先情報を記録して、ペアリング処理を行う（Ｓ５）。なお、このとき操作デバイス管理部４１は、操作デバイス１０との間で、通信接続に必要なその他の情報（例えば暗号化キーの生成に必要な乱数情報など）を送受信してもよい。
【００４７】
さらに本実施形態において、操作デバイス管理部４１は、Ｓ５で操作デバイス１０とのペアリング処理を行った場合、当該操作デバイス１０に関連づけて、キャリブレーション実行済みフラグＦ１を記録する（Ｓ６）。このとき、キャリブレーション実行済みフラグＦ１の値は、「Ｎ」で初期化される。
【００４８】
以上の処理により、新たな操作デバイス１０が情報処理装置３０に接続される際には、必ず当該操作デバイス１０に関連づけられたキャリブレーション実行済みフラグＦ１が用意され、その値は「Ｎ」で初期化されることになる。
【００４９】
次に、キャリブレーション処理部４３が実行するキャリブレーション処理の具体例について、説明する。例えばユーザは、操作デバイス１０の操作ボタン等を操作することによって、情報処理装置３０のシステムメニュー画面を呼び出し、その中からキャリブレーションの実行開始を示すメニュー項目を選択する。これにより、キャリブレーション処理が開始される。図８及び図９は、キャリブレーション処理部４３が実行するキャリブレーション処理の流れを示すフロー図である。
【００５０】
まずキャリブレーション処理部４３は、キャリブレーションの対象となる操作デバイス１０の選択を促す画面を表示し、ユーザによる操作デバイス１０の選択を待つ（Ｓ１１）。ユーザは、既にペアリング処理が実行されて情報処理装置３０と接続可能な状態になっている操作デバイス１０のうち、キャリブレーション処理を行いたい操作デバイス１０を選んで、その操作ボタンを操作する。情報処理装置３０は、その操作内容を示す信号を受け付けることによって、キャリブレーション対象デバイスを決定する（Ｓ１２）。
【００５１】
その後、キャリブレーション処理部４３は、地磁気センサ利用フラグＦ２を参照して、地磁気センサ２１の利用が可能か否かを判定する（Ｓ１３）。フラグＦ２の値が「Ｎ」であれば、地磁気センサ２１を有効にするか否かを問い合わせる画面を表示し（Ｓ１４）、ユーザによる選択を受け付ける（Ｓ１５）。この問い合わせ画面が表示された状態で、ユーザがキャリブレーション対象デバイスの操作ボタンを操作することによって、地磁気センサ２１を有効にすることを選択した場合、キャリブレーション処理部４３は、フラグＦ２の値を「Ｙ」に更新して（Ｓ１６）、Ｓ１７に進み、キャリブレーション処理を続行する。一方、ユーザが地磁気センサ２１を有効にすることを選択しなかった場合、キャリブレーション処理部４３は、キャリブレーション処理を終了する。
【００５２】
Ｓ１３において地磁気センサ２１の利用が可能と判定した場合（すなわち、フラグＦ２の値が「Ｙ」だった場合）、又はＳ１５においてユーザが地磁気センサ２１を有効にすることを選択した場合、キャリブレーション処理部４３は、キャリブレーション処理の開始をユーザに案内するために、キャリブレーション対象デバイスの発光部１２を所定の色で発光させる制御信号を出力する（Ｓ１７）。
【００５３】
その後、キャリブレーション処理部４３は、表示装置３２の画面に、キャリブレーション処理においてユーザが行うべき動作（キャリブレーション動作）を案内する案内画像Ｉｇを表示する（Ｓ１８）。案内画像Ｉｇは、ユーザがどのようにキャリブレーション動作を行うべきかをユーザに知らせる画像であって、時間とともに変化する動画像である。なお、本実施形態では、ユーザにいきなりキャリブレーション動作を実行させるのではなく、まずキャリブレーション動作の練習を行わせることとしている。そのため、Ｓ１８では、練習であることを示す表示とともに、キャリブレーション動作の案内画像Ｉｇを表示する。ユーザは、この案内画像Ｉｇを見ながら、実際にキャリブレーション対象デバイスの向きを変化させる動作（すなわち、キャリブレーション対象デバイスを回転させる動作）を行って、その概要を把握する。
【００５４】
案内画像Ｉｇの表示が終了すると、続いてキャリブレーション処理部４３は、キャリブレーション処理を続行するか否か確認する確認画面を表示して（Ｓ１９）、ユーザの選択を受け付ける（Ｓ２０）。この確認画面が表示された状態でユーザがキャリブレーション対象デバイスを操作することにより、処理の終了を選択した場合、キャリブレーション処理部４３は、処理を終了する。一方、ユーザが処理の続行を選択した場合、キャリブレーション処理部４３は、本番のキャリブレーション処理を開始する。なお、図には示されていないが、ユーザの選択に応じて、キャリブレーション処理部４３は、Ｓ１８に戻って再度練習用の案内画像Ｉｇを表示してもよい。
【００５５】
Ｓ２０でキャリブレーション処理の続行が選択されると、キャリブレーション処理部４３は、キャリブレーション動作をユーザに案内する案内画像Ｉｇの表示を開始し（Ｓ２１）、それと同時に、キャリブレーション対象デバイスから送信される地磁気情報の取得を開始する（Ｓ２２）。なお、Ｓ２１で表示される案内画像Ｉｇは、練習であることを示す表示を行わない点を除いて、Ｓ１８で表示される練習用の案内画像Ｉｇと同様の動画像であってよい。なお、キャリブレーション動作の案内画像Ｉｇの具体的な内容については、後述する。
【００５６】
案内画像Ｉｇの表示が終わると、キャリブレーション処理部４３は、その間に操作デバイス情報受信部４２が受信した地磁気情報を用いて、地磁気センサ２１の補正に用いる補正値（キャリブレーションデータ）の算出を行う（Ｓ２３）。そして、キャリブレーション処理部４３は、算出された補正値が、所定の範囲内に含まれるか否かを判定する（Ｓ２４）。所定の範囲に含まれない場合、例えばユーザが案内画像Ｉｇに従ったキャリブレーション動作を行わなかったなどの理由で、正しくキャリブレーション処理が実行できていないと推定される。そのため、キャリブレーション処理部４３は、エラーメッセージを出力して（Ｓ２５）、処理を終了する。なお、ここでは処理を終了することとしたが、ユーザの選択に応じて、Ｓ１８又はＳ２１に戻ってキャリブレーション処理を再実行してもよい。
【００５７】
一方、Ｓ２４で補正値が所定の範囲に含まれていると判定された場合、キャリブレーション処理部４３は、算出された補正値をキャリブレーション対象デバイスに送信する（Ｓ２６）。キャリブレーション対象デバイスは、このＳ２６で送信された補正値を受信して、内蔵しているメモリに書き込む。そして、それ以降、地磁気センサ２１の計測結果を情報処理装置３０に送信する場合には、この補正値を用いて補正された値を出力する。
【００５８】
最後に、キャリブレーション処理部４３は、キャリブレーション対象デバイスに関連づけられたキャリブレーション実行済みフラグＦ１の値を、「Ｙ」に更新して（Ｓ２７）、キャリブレーション処理を終了する。
【００５９】
このように、情報処理装置３０がキャリブレーション処理を実行した際にキャリブレーション実行済みフラグＦ１の値を更新することによって、キャリブレーションデータ自体は操作デバイス１０側に記憶されるにも関わらず、情報処理装置３０は、当該情報処理装置３０に接続可能な複数の操作デバイス１０のそれぞれについて、キャリブレーション処理が実行済みか否か管理することができる。
【００６０】
特に本実施形態では、操作デバイス１０は、ハードウェアの制約等により、情報処理装置３０のキャリブレーション処理部４３が実行するキャリブレーション処理によって算出されるキャリブレーションデータを、１セットしか保持しないことを想定している。ところが、既に述べたように、地磁気センサ２１の出力特性は、地磁気センサ２１の個体差だけでなく、操作デバイス１０の使用場所の磁場環境に応じて変化してしまう。そのため、仮に第１の情報処理装置３０を用いて地磁気センサ２１のキャリブレーション処理を実行した後、この第１の情報処理装置３０とは別の場所に設置された第２の情報処理装置３０に当該操作デバイス１０を接続しようとした場合、この操作デバイス１０に記憶されたキャリブレーションデータを用いても、第２の情報処理装置３０の設置場所における磁場環境では望ましい条件での補正を行えないことがあり得る。このような場合に、第２の情報処理装置３０は、自分自身が記憶するキャリブレーション実行済みフラグＦ１の値を参照することによって、接続された操作デバイス１０に記憶されているキャリブレーションデータが、自分自身のキャリブレーション処理によって生成されたものか否かを判別できる。
【００６１】
また、この例において、第２の情報処理装置３０と操作デバイス１０がペアリングされた後、再び操作デバイス１０を第１の情報処理装置３０とペアリングして使用する場合について考える。この場合、過去に第１の情報処理装置３０が操作デバイス１０のキャリブレーション処理を実行し、その結果第１の情報処理装置３０が当該操作デバイス１０に関連づけられたキャリブレーション実行済みフラグＦ１の値として「Ｙ」を記憶していたとしても、既に述べたように、第１の情報処理装置３０が再度のペアリング処理を実行する際に、当該操作デバイス１０に関連づけられたキャリブレーション実行済みフラグＦ１の値を、「Ｎ」に初期化することになる。つまり、第１の情報処理装置３０は、たとえ過去にある操作デバイス１０のキャリブレーション処理を実行したとしても、その操作デバイス１０がその後に第２の情報処理装置３０とペアリングされ、その結果第２の情報処理装置３０の設置場所でキャリブレーション処理をやり直した可能性がある場合には、当該操作デバイス１０のキャリブレーション処理を実行済みでないと判断することになる。このことによって、第１の情報処理装置３０が記憶するキャリブレーション実行済みフラグＦ１の値は、当該第１の情報処理装置３０の設置場所以外の場所で生成されたキャリブレーションデータが操作デバイス１０に記憶されている可能性がある場合には「Ｎ」となり、当該操作デバイス１０に記憶されたキャリブレーションデータが第１の情報処理装置３０のキャリブレーション処理によって生成されたものであることが確実な場合だけ「Ｙ」となることが保証される。
【００６２】
ここで、キャリブレーション動作の案内画像Ｉｇの表示例について、図１０〜図１６を用いて説明する。これらの図は、１回のキャリブレーション動作を行う際に表示装置３２の画面に表示される案内画像Ｉｇの時間変化を順に示している。本実施形態では、地磁気センサ２１は操作デバイス１０に設定された３つの基準面（ＸＹ平面、ＹＺ平面、ＺＸ平面）のそれぞれを基準として、地磁気の大きさを計測する。そのため、キャリブレーションを行う際には、ユーザがキャリブレーション対象デバイスを回転させることにより、キャリブレーション対象デバイスの向きを上下左右前後の６方向それぞれに変化させた状態で、地磁気の計測を行うことが望ましい。さらに、このようなキャリブレーション対象デバイスを回転させる動作は、実空間における地磁気センサ２１の位置をなるべく変化させないようにしながら行うことが望ましい。
【００６３】
ここで、ユーザに対してただキャリブレーション対象デバイスを回転させる動作を指示しただけの場合、ユーザは、自分が把持している部分を中心にキャリブレーション対象デバイスを回転させると想定される。ところが、図３に示されるように、地磁気センサ２１は、本体部１１の長手方向の中心位置よりは発光部１２に近い位置に配置されている。そのため、ユーザが本体部１１の中心近傍を把持して、その部分を回転中心としてキャリブレーション対象デバイスを回転させた場合、地磁気センサ２１の位置は実空間内で比較的大きく変化してしまうことになる。
【００６４】
そこで本実施形態では、発光部１２を回転中心としてキャリブレーション対象デバイスを回転させるように、ユーザに対する案内画像Ｉｇを表示する。これにより、本体部１１の中心位置を回転中心としてキャリブレーション対象デバイスを回転させる場合と比較して、地磁気センサ２１の位置の変化を小さくすることができる。なお、地磁気センサ２１が配置されている位置は外部からは分かりにくいため、地磁気センサ２１の配置位置に比較的近く、特徴的な形状の部材であって、かつユーザが持ちやすい発光部１２を回転中心とさせることで、ユーザが容易に案内画像Ｉｇの通りにキャリブレーション動作を行えるようにしている。
【００６５】
具体的に、まずキャリブレーション処理部４３は、図１０に示すように、キャリブレーション対象デバイスを所定の向きでユーザが保持する様子を示す案内画像Ｉｇを表示装置３２の画面に表示する。なお、図１０の案内画像Ｉｇには、キャリブレーション対象デバイスを示すデバイス画像Ｉｄのほか、当該キャリブレーション対象デバイスを保持するユーザの左手及び右手をそれぞれ示す左手画像Ｉｈ１及び右手画像Ｉｈ２が含まれている。
【００６６】
さらに、図１０において、キャリブレーション処理部４３は、実空間上に仮想的に配置された基準軸を示す基準軸画像Ｉｘ，Ｉｙ及びＩｚを案内画像Ｉｇに含めて表示している。ここで、基準軸画像Ｉｘ，Ｉｙ，及びＩｚは、ユーザがキャリブレーション対象デバイスを回転させるべき向きを示すとともに、デバイス画像Ｉｄとの相対的な位置関係によって、キャリブレーション対象デバイスのどの位置を回転中心としてキャリブレーション対象デバイスを回転させるべきかをも示している。具体的に、基準軸画像Ｉｘ，Ｉｙ，及びＩｚは、それぞれ、互いに直交するｘ軸、ｙ軸及びｚ軸を示しており、ｘ軸及びｙ軸は水平面内に設定された基準軸を、ｚ軸は鉛直方向に沿って設定された基準軸を、それぞれ示している。また、ｘ軸はユーザに対して左から右に向かう方向が正方向となるように設定され、ｙ軸はユーザに対して手前から奥側（表示装置３２側）に向かう方向が正方向となるように設定され、ｚ軸は鉛直下方から上方に向かう方向が正方向となるように設定されているものとする。図１０の案内画像Ｉｇは、キャリブレーション対象デバイスが、３つの基準軸画像Ｉｘ，Ｉｙ及びＩｚが交差する原点位置から、ｙ軸負方向に沿って配置された状態を示している。
【００６７】
その後、キャリブレーション処理部４３は、図１１から図１６に示すように、ユーザに対して、順にキャリブレーション対象デバイスを回転させる動作を促す案内画像Ｉｇを表示する。すなわち、まず図１１に示すように、図１０に示した初期状態の案内画像Ｉｇに対して、キャリブレーション対象デバイスを回転させるべき回転方向を示す矢印画像Ｉａを追加した案内画像Ｉｇを表示する。図１１では、ｚ軸を回転中心として水平面内で反時計回りにキャリブレーション対象デバイスを回転させる動作を指示する矢印画像Ｉａが表示されている。
【００６８】
続いて、そのままｚ軸を回転中心としてキャリブレーション対象デバイスを回転させる動作を案内する案内画像Ｉｇが、順に表示される。すなわち、図１１の案内画像Ｉｇが表示された後には、ｘ軸正方向に沿った位置にキャリブレーション対象デバイスが移動した様子を示すデバイス画像Ｉｄが表示され、その後、さらにキャリブレーション対象デバイスをそのまま回転させる動作を指示する矢印画像Ｉａ（Ｘ軸正方向からＹ軸正方向への回転を示す矢印画像Ｉａ）が表示される。図１２は、このようなデバイス画像Ｉｄ及び矢印画像Ｉａを含んだ案内画像Ｉｇを示している。その後は、図１３に示すように、ｙ軸正方向に沿ってキャリブレーション対象デバイスが配置された様子を示す案内画像Ｉｇが表示され、その次には、ｘ軸負方向に沿ってキャリブレーション対象デバイスが配置された様子を示す案内画像Ｉｇが表示される。
【００６９】
この状態で、次にキャリブレーション処理部４３は、ユーザに対して、ｙ軸を回転中心とした回転動作をユーザに指示する案内画像Ｉｇを表示する。すなわち、図１４に示すように、ｚ軸正方向に向かってキャリブレーション対象デバイスの向きを変化させるよう指示する矢印画像Ｉａを表示する。その後、キャリブレーション対象デバイスがｚ軸正方向に沿って配置された状態が示され、さらに図１５に示すように、ｚ軸負方向に向かってキャリブレーション対象デバイスの向きを変化させるよう指示する矢印画像Ｉａが表示される。最後に、図１６に示すように、キャリブレーション対象デバイスがｚ軸負方向に沿って配置された状態を示す案内画像Ｉｇが表示される。以上の案内画像Ｉｇに従ってキャリブレーション対象デバイスを回転させる動作をユーザが行うことによって、キャリブレーション対象デバイスは、その下端（発光部１２と反対側の端部）が、順に、ｙ軸負方向、ｘ軸正方向、ｙ軸正方向、ｘ軸負方向、ｚ軸正方向、及びｚ軸負方向の６方向を向くように、その姿勢を変化させる。その間の地磁気センサ２１の計測結果を取得することによって、キャリブレーション処理部４３は、キャリブレーションデータの算出を行う。
【００７０】
ここで、図１０から図１６に示されるように、ユーザがキャリブレーション動作を行う間に表示される案内画像Ｉｇは、常に発光部１２の位置がｘ軸、ｙ軸及びｚ軸の全てが交差する原点位置に一致するような状態を示す画像になっている。つまり、案内画像Ｉｇ内においては、キャリブレーション対象デバイスのうち、ユーザがキャリブレーション動作を行う際に回転中心とさせたい部分が、回転軸上に配置されていることになる。また、基準軸画像Ｉｘ，Ｉｙ及びＩｚは、案内画像Ｉｇが表示されている間、その位置が画面Ｓ内で変化しないようになっている。そのためユーザは、直感的に、キャリブレーション対象デバイスを回転させる動作を、発光部１２の実空間上における位置を動かさないようにしながら行うべきであることを理解できる。また、図１０や図１１に示すように、一方の手で発光部１２の位置を把持し、もう一方の手でその反対側の端部を把持するような把持の仕方を示す案内画像Ｉｇを表示することによって、ユーザは、自然に発光部１２の位置を手で持って、その位置を中心に回転動作を行うことになる。
【００７１】
なお、以上の例において、図１３から図１６では、画像の見やすさを考慮して左手画像Ｉｈ１及び右手画像Ｉｈ２が省略されている。しかしながら、キャリブレーション動作開始時の案内画像Ｉｇ（ここでは図１０から図１２の案内画像Ｉｇ）に左手画像Ｉｈ１及び右手画像Ｉｈ２を含めて表示することによって、ユーザに自然と発光部１２を把持させることができ、その後もユーザが同じ位置を持ちながらキャリブレーション動作を行うように促すことができる。なお、案内画像Ｉｇが表示されている間、常に左手画像Ｉｈ１及び右手画像Ｉｈ２を表示してもよい。
【００７２】
また、以上の説明では、デバイス画像Ｉｄは、案内画像Ｉｇ内において常にいずれかの基準軸に沿って配置された状態で表示されることとし、回転途中の状態については矢印画像Ｉａによって示すこととしている。しかしながら、これに限らず、例えばキャリブレーション処理部４３は、キャリブレーション対象デバイスがある基準軸方向から次の基準軸方向に徐々に移動する過程を示す動画像を案内画像Ｉｇとして表示してもよい。また、案内画像Ｉｇ内において、発光部１２の表示色は、前述したＳ１７の処理で実際にキャリブレーション対象デバイスの発光部１２を発光させた色と同じ色になるようにしてもよい。
【００７３】
また、案内画像Ｉｇには、その案内画像Ｉｇを表示している表示装置３２の画面位置を示す画面画像Ｉｓが含まれてもよい。図１７は、このような案内画像Ｉｇの一例を示す図であって、図１０の案内画像Ｉｇにさらに画面画像Ｉｓを追加した状態を示している。このような案内画像Ｉｇによれば、ｘ軸及びｙ軸が水平面内に設定され、ｚ軸が鉛直方向に沿って設定されていることを分かり易くすることができ、ユーザはどのような向きにキャリブレーション対象デバイスを回転させればよいのか、直感的に理解することができる。
【００７４】
次に、フラグ情報判定部４５が実行するフラグ情報の判定処理の具体例について、説明する。まず第１の例として、ユーザの指示に応じてアプリケーション実行部４４が新たなアプリケーションプログラムの実行を開始する際に、フラグ情報判定部４５がこのアプリケーションプログラムの実行に先立って実行する処理の流れの一例について、図１８のフロー図を用いて説明する。
【００７５】
まずフラグ情報判定部４５は、アプリケーション実行部４４が起動しようとしているアプリケーションプログラムが、地磁気センサ２１の計測結果を利用可能な種類のアプリケーションプログラムか否かを判定する（Ｓ３１）。フラグ情報判定部４５は、例えばアプリケーションプログラム内に記憶されたフラグ情報を参照することによって、この判定を行う。判定の結果、地磁気センサ２１を利用しないタイプのアプリケーションプログラムであった場合、フラグ情報判定部４５はそれ以上の処理を実行せず、アプリケーション実行部４４がアプリケーションプログラムの起動を開始する（Ｓ３７）。
【００７６】
一方、Ｓ３１で地磁気センサ２１を利用するタイプのアプリケーションプログラムと判定された場合、次にフラグ情報判定部４５は、地磁気センサ利用フラグＦ２を参照して、地磁気センサ２１の利用が可能か否かを判定する（Ｓ３２）。フラグＦ２の値が「Ｎ」の場合、当該情報処理装置３０は地磁気センサ２１の機能を利用しないという設定がなされていることになるので、フラグ情報判定部４５は処理を終了し、アプリケーション実行部４４がアプリケーションプログラムの起動を開始する（Ｓ３７）。この場合、アプリケーション実行部４４は、操作デバイス情報受信部４２が受信する地磁気情報は利用せずに、例えば発光部１２を撮像装置３１が撮像して得られる情報等を利用しながら、アプリケーションプログラムの処理を実行することになる。
【００７７】
Ｓ３２の判定においてフラグＦ２の値が「Ｙ」だった場合、続いてフラグ情報判定部４５は、地磁気センサ２１を内蔵する操作デバイス１０が情報処理装置３０に接続されているか否かを判定する（Ｓ３３）。判定の結果、地磁気センサ２１を内蔵する操作デバイス１０が情報処理装置３０に接続されておらず、他の種類の操作デバイスが接続されているだけの場合、フラグ情報判定部４５は処理を終了し、アプリケーション実行部４４がアプリケーションプログラムの起動を開始する（Ｓ３７）。
【００７８】
一方、地磁気センサ２１を内蔵した１又は複数の操作デバイス１０が情報処理装置３０に現在接続中の場合、フラグ情報判定部４５は、これらの操作デバイス１０のそれぞれについて、キャリブレーション実行済みフラグＦ１を参照する（Ｓ３４）。そして、現在接続中であって、キャリブレーション実行済みフラグＦ１の値として「Ｎ」が関連づけられている操作デバイス１０が一つでも存在するか否かを判定する（Ｓ３５）。このような操作デバイス１０が存在する場合には、フラグ情報判定部４５は、キャリブレーション処理の実行をユーザに促すメッセージを表示装置３２の画面に表示する（Ｓ３６）。このとき、操作デバイス１０が複数接続されているのであれば、そのうちのどの操作デバイス１０についてキャリブレーション処理が実行済みでないのかを示す情報（例えば、キャリブレーション未実施の操作デバイス１０の番号など）を併せて表示してもよい。また、例えばキャリブレーション未実施の操作デバイス１０の発光部１２を所定の色で発光させるなどの制御を実行してもよい。
【００７９】
Ｓ３６の表示後、又はＳ３５でキャリブレーション未実施の操作デバイス１０は存在しないと判定された場合、アプリケーション実行部４４がアプリケーションプログラムの起動を開始する（Ｓ３７）。なお、このフローの例では、キャリブレーション未実施の操作デバイス１０が存在すると判定された場合にも、単にユーザにその旨を知らせるメッセージを出力するだけで、そのままアプリケーションプログラムが実行されることとしている。しかしながら、キャリブレーション未実施の操作デバイス１０が存在する場合、例えばキャリブレーション処理部４３によるキャリブレーション処理を強制的に開始してもよい。あるいは、キャリブレーション処理を実行するか否かの選択を促す画面をユーザに提示し、ユーザの選択に応じてアプリケーションプログラムの起動前にキャリブレーション処理を開始してもよい。
【００８０】
次に、フラグ情報の判定処理の第２の例として、アプリケーション実行部４４がアプリケーションプログラムを実行中に、これまで接続されていなかった新たな操作デバイス１０が接続された場合にフラグ情報判定部４５が実行する処理の流れの一例について、図１９のフロー図を用いて説明する。なお、この第２の例における判定処理は、地磁気センサ２１の計測結果を利用するアプリケーションプログラムの実行中にのみ、実行されるものとする。
【００８１】
まず、ユーザが情報処理装置３０とペアリング済みの操作デバイス１０の電源ボタンをオンにするなどした場合、フラグ情報判定部４５は、新たな操作デバイス１０の接続を検知する（Ｓ４１）。そして、接続された操作デバイス１０に関連づけられたキャリブレーション実行済みフラグＦ１を参照する（Ｓ４２）。もしキャリブレーション実行済みフラグＦ１の値が「Ｙ」であれば、フラグ情報判定部４５は処理を終了する。これにより、アプリケーション実行部４４による処理が再開される（Ｓ４４）。
【００８２】
一方、キャリブレーション実行済みフラグＦ１の値が「Ｎ」の場合、フラグ情報判定部４５は、前述した図１８のフローにおけるＳ３６の処理と同様に、新たに接続された操作デバイス１０について、キャリブレーション処理の実行をユーザに促すメッセージを表示装置３２の画面に表示する（Ｓ４３）。その後、アプリケーション実行部４４による処理が再開される（Ｓ４４）。
【００８３】
以上説明したように、アプリケーションプログラムの実行開始時や、新たに操作デバイス１０が接続された時などにおいて、地磁気センサ２１の計測結果を利用するアプリケーションプログラムの処理を実行する前にキャリブレーション実行済みフラグＦ１を参照して判定を行うことによって、情報処理装置３０は、自分自身に接続された操作デバイス１０のそれぞれに、自分自身が生成したキャリブレーションデータが記憶されていない可能性がある場合に、その旨をユーザに通知するなどして、キャリブレーション処理の実行をユーザに促すことができる。
【００８４】
なお、本発明の実施の形態は、以上説明したものに限られない。例えば、キャリブレーション処理の実行時に表示される案内画像Ｉｇの内容は、以上説明したものとは別の順序や別の向きで操作デバイス１０を回転させる動作をユーザに指示するものであってもよい。
【００８５】
また、本実施形態において情報処理装置３０によるキャリブレーション処理の対象となるセンサは、地磁気センサに限らず、例えば加速度センサなど、各種のセンサであってよい。
【００８６】
また、キャリブレーション実行済みフラグＦ１に相当する情報は、操作デバイス１０側に記憶されることとしてもよい。この場合、操作デバイス１０は、キャリブレーション処理が実行された際に、当該キャリブレーション処理を実行した情報処理装置３０を特定する装置特定情報（例えば当該情報処理装置３０の接続先情報など）を、当該情報処理装置３０が生成したキャリブレーションデータとともに受信し、内蔵するメモリ内に格納する。また、情報処理装置３０は、上述したフラグ情報の判定処理において、キャリブレーション実行済みフラグＦ１の情報を参照する代わりに、判定対象となる操作デバイス１０から、当該操作デバイス１０が記憶している装置特定情報を取得する。そして、取得した装置特定情報を用いて、キャリブレーションが実行済みか否かの判定を行う。具体的に、情報処理装置３０は、操作デバイス１０から受信した装置特定情報が自分自身を示すものであるか否かを判定し、自分自身の装置特定情報が操作デバイス１０に記憶されている場合には、キャリブレーション実行済みフラグＦ１の値が「Ｙ」の場合と同様に、当該操作デバイス１０に記憶されたキャリブレーションデータを用いてよいと判断する。逆に、取得した装置特定情報が自分自身を示すものでない場合や、そもそも操作デバイス１０が装置特定情報を記憶していない場合には、キャリブレーション実行済みフラグＦ１の値が「Ｎ」の場合と同様に、キャリブレーション処理の実行を促すメッセージを出力する。
【００８７】
なお、この例では、操作デバイス１０は、複数のキャリブレーションデータを記憶してもよい。この場合、複数のキャリブレーションデータのそれぞれに対して、当該キャリブレーションデータを生成した情報処理装置３０の装置特定情報を関連づけて記憶する。そして、いずれかの情報処理装置３０と接続された際には、当該情報処理装置３０の装置特定情報を取得し、当該装置特定情報に関連づけられたキャリブレーションデータを用いて地磁気センサ２１の計測結果を補正した上で、当該情報処理装置３０に対して送信する。
【符号の説明】
【００８８】
１  情報処理システム、１０  操作デバイス、１１  本体部、１２  発光部、２０  基板、２１  地磁気センサ、３０  情報処理装置、３１  撮像装置、３２  表示装置、３３  制御部、３４  記憶部、３５  通信部、４１  操作デバイス管理部、４２  操作デバイス情報受信部、４３  キャリブレーション処理部、４４  アプリケーション実行部、４５  フラグ情報判定部。
【図１】
2012061058.tif 000003
【図２】
2012061058.tif 000004
【図３】
2012061058.tif 000005
【図４】
2012061058.tif 000006
【図５】
2012061058.tif 000007
【図６】
2012061058.tif 000008
【図７】
2012061058.tif 000009
【図８】
2012061058.tif 000010
【図９】
2012061058.tif 000011
【図１０】
2012061058.tif 000012
【図１１】
2012061058.tif 000013
【図１２】
2012061058.tif 000014
【図１３】
2012061058.tif 000015
【図１４】
2012061058.tif 000016
【図１５】
2012061058.tif 000017
【図１６】
2012061058.tif 000018
【図１７】
2012061058.tif 000019
【図１８】
2012061058.tif 000020
【図１９】
2012061058.tif 000021