説明

プログラム、情報記憶媒体、加速度センサの誤差測定方法、加速度センサの誤差測定装置及びゲームシステム

【課題】加速度センサの向きに関係なく得られた検出情報に基づき、加速度センサのオフセット誤差情報及び感度誤差情報を計算可能なプログラム、情報記憶媒体、加速度センサの誤差測定方法及び誤差測定装置並びにゲームシステムを提供すること。
【解決手段】加速度センサ20の互いに直交する3つの検出軸方向の各感度及び各オフセットに対応した6つのパラメータを含む楕円体の方程式の変数に、加速度センサ20の検出情報に基づく6組の加速度情報を代入し、当該6つのパラメータを未知数とする連立2次方程式を作成する。この連立2次方程式を、6つの未知数の少なくとも1つを含む式でそれぞれ表される5つの新たな未知数を含む連立1次方程式に帰着させて当該連立1次方程式を解く。5つの新たな未知数の値から元の6つの未知数の値を計算し、計算結果に基づいて加速度センサの3つの検出軸方向のオフセット誤差情報及び感度誤差情報を計算する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プログラム、情報記憶媒体、加速度センサの誤差測定方法、加速度センサの誤差測定装置及びゲームシステムに関する。
【背景技術】
【0002】
最近では、ゲーム用のコントローラに加速度センサを設けてコントローラの向きや動きを検出して、ゲーム入力とすることが可能なゲーム装置が存在する。このようなゲーム装置では、検出された向きや動きに応じてゲーム空間のオブジェクトの向きや動きを制御して、当該オブジェクトを含むゲーム画像を生成するゲームが実現されている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2003−225467号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
このようなゲームにおいてはコントローラの向きや動きに応じて矛盾なく動作するゲーム画像を生成することが重要なポイントとなる。ところが、コントローラに内蔵されている加速度センサには誤差(個体差)がある。そのため、加速度センサを使うゲームを開発する際に、幾つかのコントローラで正しく動作することを確認しても、他のコントローラでの動作については不確実さが残る。
【0005】
従来、加速度センサの誤差の測定方法として、加速度センサの各検出軸方向を上向き及び下向きにした状態で静止させて各検出軸方向に重力加速度のみが加わる状態に設定し、得られた検出値から加速度センサの各検出軸方向のオフセット誤差と感度誤差を算出する手法が行われていた。
【0006】
しかし、この手法では、加速度センサの各検出軸方向を正確に上向き及び下向きに合わせた状態で静止させなければ誤差を正確に測定できないため、煩わしい操作が必要であるとともに測定に時間がかかるという問題があった。
【0007】
本発明は、以上のような課題に鑑みてなされたものであり、本発明のいくつかの態様によれば、加速度センサの向きに関係なく得られた検出情報に基づき、加速度センサのオフセット誤差情報及び感度誤差情報を計算可能なプログラム、情報記憶媒体、加速度センサの誤差測定方法及び誤差測定装置並びにゲームシステムを提供することができる。
【課題を解決するための手段】
【0008】
(1)本発明は、加速度センサのオフセット誤差情報及び感度誤差情報を計算するプログラムであって、前記加速度センサの互いに直交する3つの検出軸方向の各感度及び各オフセットに対応した6つのパラメータを含む楕円体の方程式の変数に、前記加速度センサの検出情報に基づく6組の加速度情報を代入し、前記6つのパラメータを未知数とする6つの2次方程式からなる連立2次方程式を作成する連立方程式作成部と、前記連立2次方程式を、前記6つの未知数の少なくとも1つを含む式でそれぞれ表される5つの新たな未知数を含むとともに前記6つの未知数のいずれも含まない5つの1次方程式からなる連立1次方程式に帰着させて当該連立1次方程式を解く連立方程式計算部と、前記5つの新たな未知数の値から前記6つの未知数の値を計算し、計算結果に基づいて前記加速度センサの前記3つの検出軸方向のオフセット誤差情報及び感度誤差情報を計算する加速度誤差計算部として、コンピュータを機能させる、プログラムに関するものである。また本発明は、コンピュータに読み取り可能な情報記憶媒体であって、上記各部として本体装置を機能させるプログラムを記憶(記録)した情報記憶媒体に関するものである。
【0009】
加速度センサのオフセット誤差情報は、オフセット誤差そのものであってもよいし、オフセット誤差を一義的に導き出せる他の任意の情報であってもよい。
【0010】
同様に、加速度センサの感度誤差情報は、感度誤差そのものであってもよいし、感度誤差を一義的に導き出せる他の任意の情報であってもよい。
【0011】
本発明によれば、加速度センサの検出情報に基づく任意の6組の加速度情報が得られれば代数的に加速度センサのオフセット誤差情報及び感度誤差情報を計算することができる。従って、従来手法のように加速度センサの各検出軸方向を正確に上向き及び下向きに合わせた状態での検出情報が得られなくとも、加速度センサの向きに関係なく得られた検出情報に基づきオフセット誤差情報及び感度誤差情報を計算することができる。
【0012】
また、ニュートン法(ニュートン・ラプソン法)により、コンピュータで連立2次方程式の解を反復計算により得る方法では計算が収束するまでに時間がかかるが、本発明によれば、連立2次方程式を連立1次方程式に帰着させて代数的に解くので計算時間を短縮することができる。
【0013】
(2)また、本発明に係るプログラム及び情報記憶媒体では、前記連立方程式計算部は、前記連立1次方程式の係数行列がその対角要素の絶対値が対角要素でない他のすべての要素の絶対値よりも大きくなるように前記連立1次方程式を作成するようにしてもよい。
【0014】
例えば、所定の規則に従って6組の加速度情報を作成し、連立2次方程式から所定の規則に従って連立1次方程式を作成することにより、対角要素の絶対値が対角要素でない他のすべての要素の絶対値よりも大きくなる係数行列を作成することができる。
【0015】
このようにすれば、連立1次方程式の計算過程でピボット選択を行わなくても解が得られるとともに計算誤差もより小さくなるので、計算負荷を増やさずに連立1次方程式を安定して精度良く解くことができる。
【0016】
(3)また、本発明に係るプログラム及び情報記憶媒体では、前記連立方程式計算部は、前記6組の加速度情報の中で第1の検出軸方向の値が最大及び最小の2つの前記加速度情報を前記楕円体の方程式の変数にそれぞれ代入して得られた2つの2次方程式の一方から他方を減算して得られる多項式に基づいて前記1次方程式の1つを作成し、前記6組の加速度情報の中で第2の検出軸方向の値が最大及び最小の2つの前記加速度情報を前記楕円体の方程式の変数にそれぞれ代入して得られた2つの2次方程式の一方から他方を減算して得られる多項式に基づいて前記1次方程式の他の1つを作成し、前記6組の加速度情報の中で第3の検出軸方向の値が最大及び最小の2つの前記加速度情報を前記楕円体の方程式の変数にそれぞれ代入して得られた2つの2次方程式の一方から他方を減算して得られる多項式に基づいて前記1次方程式の他の1つを作成するようにしてもよい。
【0017】
例えば、連立方程式計算部は、前記6組の加速度情報の中で第1の検出軸方向の値が最大及び最小の2つの前記加速度情報を検出し、当該2つの加速度情報を前記楕円体の方程式の変数にそれぞれ代入して得られた2つの2次方程式の一方から他方を減算して得られる多項式に基づいて前記1次方程式の1つを作成し、前記6組の加速度情報の中で第2の検出軸方向の値が最大及び最小の2つの前記加速度情報を検出し、当該2つの加速度情報を前記楕円体の方程式の変数にそれぞれ代入して得られた2つの2次方程式の一方から他方を減算して得られる多項式に基づいて前記1次方程式の他の1つを作成し、前記6組の加速度情報の中で第3の検出軸方向の値が最大及び最小の2つの前記加速度情報を検出し、当該2つの加速度情報を前記楕円体の方程式の変数にそれぞれ代入して得られた2つの2次方程式の一方から他方を減算して得られる多項式に基づいて前記1次方程式の他の1つを作成するようにしてもよい。
【0018】
また、例えば、連立方程式計算部は、前記6組の加速度情報の中で、第1の検出軸方向の値が最大、前記第1の検出軸方向の値が最小、第2の検出軸方向の値が最大、前記第2の検出軸方向の値が最小、第3の検出軸方向の値が最大、前記第3の検出軸方向の値が最小となる前記加速度情報がぞれぞれあらかじめ決められており、前記6組の加速度情報の中で前記第1の検出軸方向の値が最大及び最小の2つの前記加速度情報を前記楕円体の方程式の変数にそれぞれ代入して得られた2つの2次方程式の一方から他方を減算して得られる多項式に基づいて前記1次方程式の1つを作成し、前記6組の加速度情報の中で前記第2の検出軸方向の値が最大及び最小の2つの前記加速度情報を前記楕円体の方程式の変数にそれぞれ代入して得られた2つの2次方程式の一方から他方を減算して得られる多項式に基づいて前記1次方程式の他の1つを作成し、前記6組の加速度情報の中で前記第3の検出軸方向の値が最大及び最小の2つの前記加速度情報を前記楕円体の方程式の変数にそれぞれ代入して得られた2つの2次方程式の一方から他方を減算して得られる多項式に基づいて前記1次方程式の他の1つを作成するようにしてもよい。
【0019】
このようにすれば、連立1次方程式の係数行列において、少なくとも3つの1次方程式に対応する3行に含まれる3つの対角要素の絶対値が比較的大きくなるとともに、当該3行に含まれる他の要素をほぼ0にすることができる。従って、連立1次方程式の計算過程で、少なくとも、この3つの1次方程式についての計算では計算誤差をより小さくすることができるので、連立1次方程式を安定して精度良く解くことが容易になる。
【0020】
(4)また、本発明に係るプログラム及び情報記憶媒体では、前記連立方程式計算部は、前記連立2次方程式の任意の2つの2次方程式を演算して得られる多項式又は当該多項式を変形した多項式の各項に含まれる、前記6つの未知数から構成される式又は当該式を実数倍した式を前記5つの新たな未知数と対応させて前記連立1次方程式を作成するようにしてもよい。
【0021】
例えば、前記連立方程式計算部は、前記6つのパラメータのうち、前記加速度センサの3つの検出軸方向の感度のパラメータをそれぞれa,b,c、前記加速度センサの3つの検出軸方向のオフセットのパラメータをそれぞれp,q,rとした時、前記5つの新たな未知数α,β,γ,δ,εを、α=p,β=(a/b)q,γ=(a/c)r,δ=a/b,ε=a/cとして前記連立1次方程式を作成するようにしてもよい。
【0022】
(5)また、本発明に係るプログラム及び情報記憶媒体では、前記連立方程式計算部は、前記加速度センサの3つの検出軸で作られる3次元空間において互いに直交する所定の3つの軸がそれぞれ重力方向(すなわち、重力が加わる方向)の逆方向又はその近傍を向く状態で得られる3組の前記検出情報に基づく3組の前記加速度情報と、前記前記所定の3つの軸がそれぞれ重力方向又はその近傍を向く状態で得られる3組の前記検出情報に基づく3組の前記加速度情報と、を用いて前記連立2次方程式を作成するようにしてもよい。
【0023】
このようにすれば、加速度センサの3つの検出軸で作られる3次元空間上で、6組の加速度情報に対応する6点が互いに十分離れた位置になるので、この6組の加速度情報を用いればより精度良く楕円体の方程式を特定することができる。すなわち、加速度センサのオフセット誤差情報及び感度誤差情報をより精度良く計算することができる。
【0024】
(6)また、本発明に係るプログラム及び情報記憶媒体では、前記連立方程式作成部は、前記加速度センサの3つの検出軸をx軸、y軸、z軸とし、前記6つのパラメータのうち、前記加速度センサのx軸方向、y軸方向、z軸方向の感度のパラメータをそれぞれa,b,c、前記加速度センサのx軸方向、y軸方向、z軸方向のオフセットのパラメータをぞれぞれp,q,rとした時、前記楕円体の方程式として方程式{(x−p)/a}+{(y−q)/b}+{(z−r)/c}=1を用いるようにしてもよい。
【0025】
(7)また、本発明に係るプログラム及び情報記憶媒体では、前記加速度センサの前記検出情報を取得し、取得した前記検出情報に基づいて前記加速度情報を生成する加速度情報生成部を含むようにしてもよい。
【0026】
(8)また、本発明に係るプログラム及び情報記憶媒体では、前記加速度情報生成部は、前記検出情報に基づいて、前記加速度センサの運動による加速度が無視できる状態であるか否かを判定し、前記加速度センサの運動による加速度が無視できる状態での前記検出情報に基づいて、前記加速度情報を生成するようにしてもよい。
【0027】
「運動による加速度が無視できる状態」とは、運動による加速度が0又は0に近い状態であり、加速度センサが静止している状態や等速運動している状態を含む。
【0028】
このようにすれば、加速度情報の各々は3つの検出軸方向の重力加速度成分がより正確に反映されるので、より精度良く楕円体の方程式を特定することができる。すなわち、加速度センサのオフセット誤差情報及び感度誤差情報をより精度良く計算することができる。
【0029】
(9)また、本発明に係るプログラム及び情報記憶媒体では、前記加速度情報生成部は、前記検出情報の変動幅が所定の条件を満たす状態が所定時間持続すれば前記加速度センサの運動による加速度が無視できる状態であると判定するようにしてもよい。
【0030】
「前記検出情報の変動幅が所定の条件を満たす状態」とは、例えば、前記検出情報の変動幅が所定値以下又は所定値未満である状態であってもよい。
【0031】
(10)また、本発明に係るプログラム及び情報記憶媒体では、前記加速度情報生成部は、前記所定時間に取得した複数の前記検出情報に基づいて前記加速度情報を生成するようにしてもよい。
【0032】
例えば、前記加速度情報生成部は、前記所定時間に取得した複数の前記検出情報の全部又は一部の平均値を前記加速度情報とするようにしてもよい。
【0033】
このようにすれば、加速度センサの検出情報に含まれるランダムなノイズや丸め誤差の影響を減らすことができるので、加速度センサのオフセット誤差情報及び感度誤差情報をさらに精度良く計算することができる。
【0034】
(11)また、本発明は、加速度センサのオフセット誤差情報及び感度誤差情報を計算する加速度センサの誤差測定方法であって、前記加速度センサの互いに直交する3つの検出軸で作られる3次元空間において互いに直交する所定の3つの軸のうちの第1の軸が重力方向の逆方向又はその近傍を向く状態で前記加速度センサの検出情報を取得し、当該検出情報に基づいて第1の加速度情報を生成する第1の加速度情報生成ステップと、前記第1の軸が重力方向又はその近傍を向く状態で前記加速度センサの検出情報を取得し、当該検出情報に基づいて第2の加速度情報を生成する第2の加速度情報生成ステップと、前記所定の3つの軸のうちの第2の軸が重力方向の逆方向又はその近傍を向く状態で前記加速度センサの検出情報を取得し、当該検出情報に基づいて第3の加速度情報を生成する第3の加速度情報生成ステップと、前記第2の軸が重力方向又はその近傍を向く状態で前記加速度センサの検出情報を取得し、当該検出情報に基づいて第4の加速度情報を生成する第4の加速度情報生成ステップと、前記所定の3つの軸のうちの第3の軸が重力方向の逆方向又はその近傍を向く状態で前記加速度センサの検出情報を取得し、当該検出情報に基づいて第5の加速度情報を生成する第5の加速度情報生成ステップと、前記第3の軸が重力方向又はその近傍を向く状態で前記加速度センサの検出情報を取得し、当該検出情報に基づいて第6の加速度情報を生成する第6の加速度情報生成ステップと、前記加速度センサの3つの検出軸方向の各感度及び各オフセットに対応した6つのパラメータを含む楕円体の方程式の変数に、前記第1の加速度情報、前記第2の加速度情報、前記第3の加速度情報、前記第4の加速度情報、前記第5の加速度情報及び前記第6の加速度情報をそれぞれ代入し、前記6つのパラメータを未知数とする6つの2次方程式からなる連立2次方程式を作成する連立方程式作成ステップと、前記連立2次方程式を、前記6つの未知数の少なくとも1つを含む式でそれぞれ表される5つの新たな未知数を含むとともに前記6つの未知数のいずれも含まない5つの1次方程式からなる連立1次方程式に帰着させて当該連立1次方程式を解く連立方程式計算ステップと、前記5つの新たな未知数の値から前記6つの未知数の値を計算し、計算結果に基づいて前記加速度センサの前記3つの検出軸方向のオフセット誤差情報及び感度誤差情報を計算する誤差計算ステップと、を含む、加速度センサの誤差測定方法に関するものである。
【0035】
本発明によれば、加速度センサの向きに関係なく得られた検出情報に基づきオフセット誤差情報及び感度誤差情報を計算することができるとともに、連立2次方程式を連立1次方程式に帰着させて代数的に解くので計算時間を短縮することができる。
【0036】
また、本発明によれば、加速度センサの3つの検出軸で作られる3次元空間上で、6組の加速度情報に対応する6点が互いに十分離れた位置になるので、この6組の加速度情報を用いればより精度良く楕円体の方程式を特定することができる。すなわち、加速度センサのオフセット誤差情報及び感度誤差情報をより精度良く計算することができる。
【0037】
(12)また、本発明は、加速度センサのオフセット誤差情報及び感度誤差情報を測定する加速度センサの誤差測定装置であって、前記加速度センサの検出情報を取得し、取得した前記検出情報に基づいて6組の加速度情報を生成する加速度情報生成部と、前記加速度センサの互いに直交する3つの検出軸方向の各感度及び各オフセットに対応した6つのパラメータを含む楕円体の方程式の変数に、前記6組の加速度情報を代入し、前記6つのパラメータを未知数とする6つの2次方程式からなる連立2次方程式を作成する連立方程式作成部と、前記連立2次方程式を、前記6つの未知数の少なくとも1つを含む式でそれぞれ表される5つの新たな未知数を含むとともに前記6つの未知数のいずれも含まない5つの1次方程式からなる連立1次方程式に帰着させて当該連立1次方程式を解く連立方程式計算部と、前記5つの新たな未知数の値から前記6つの未知数の値を計算し、計算結果に基づいて前記加速度センサの前記3つの検出軸方向のオフセット誤差情報及び感度誤差情報を計算する加速度誤差計算部と、を含む加速度センサの誤差測定装置に関するものである。
【0038】
本発明によれば、加速度センサの向きに関係なく取得した検出情報に基づきオフセット誤差情報及び感度誤差情報を計算することができるとともに、連立2次方程式を連立1次方程式に帰着させて代数的に解くので計算時間を短縮することができる。
【0039】
(13)また、本発明は、プレイヤの入力動作に応じて変化する加速度を検出する加速度センサを備えた入力装置から前記加速度センサの検出情報を取得してゲーム演算を行うゲームシステムであって、前記加速度センサの前記検出情報に基づいて、前記加速度センサのオフセット誤差情報及び感度誤差情報を計算して記憶部に記憶させる加速度誤差測定部と、前記記憶部に記憶された前記オフセット誤差情報及び前記感度誤差情報に基づいて、前記加速度センサの検出情報を補正してゲーム演算を行うゲーム演算部と、を含み、前記加速度誤差測定部は、前記入力装置から前記加速度センサの前記検出情報を取得し、取得した前記検出情報に基づいて6組の加速度情報を生成する加速度情報生成部と、前記加速度センサの互いに直交する3つの検出軸方向の各感度及び各オフセットに対応した6つのパラメータを含む楕円体の方程式の変数に、前記6組の加速度情報を代入し、前記6つのパラメータを未知数とする6つの2次方程式からなる連立2次方程式を作成する連立方程式作成部と、前記連立2次方程式を、前記6つの未知数の少なくとも1つを含む式でそれぞれ表される5つの新たな未知数を含むとともに前記6つの未知数のいずれも含まない5つの1次方程式からなる連立1次方程式に帰着させて当該連立1次方程式を解く連立方程式計算部と、前記5つの新たな未知数の値から前記6つの未知数の値を計算し、計算結果に基づいて前記加速度センサの前記3つの検出軸方向のオフセット誤差情報及び感度誤差情報を計算する加速度誤差計算部と、前記オフセット誤差情報及び前記感度誤差情報を前記記憶部に記憶させる加速度誤差設定部と、を含む、ゲームシステムに関するものである。
【0040】
本発明によれば、ゲーム演算を開始する前に、加速度センサの向きに関係なく得られた検出情報に基づきオフセット誤差情報及び感度誤差情報を計算することができる。従って、加速度センサのオフセット誤差情報及び感度誤差情報を測定するために、プレイヤが加速度センサの各検出軸が正確に上向き及び下向きになるように入力装置を保持する煩わしさがなくなる。そして、記憶部に記憶されたオフセット誤差情報及び感度誤差情報に基づいて、加速度センサの検出情報を補正するので、プレイヤの入力操作をより正確に反映したゲーム演算を行うことができる。
【0041】
(14)また、本発明に係るゲームシステムでは、前記加速度誤差測定部は、ゲームプログラムの起動時又は加速度誤差測定イベントが発生した場合に、前記検出情報を取得して前記オフセット誤差情報及び前記感度誤差情報の計算を行い、計算した前記オフセット誤差情報及び前記感度誤差情報を前記記憶部に記憶させるようにしてもよい。
【0042】
例えば、プレイヤが所定の操作入力を行うことにより、加速度誤差測定イベントを自発的に発生させてもよいし、ゲームシステムが所定の条件が成立するか否かを判定して加速度誤差測定イベントを発生させるか否かを決定するようにしてもよい。
【図面の簡単な説明】
【0043】
【図1】加速度センサの誤差測定装置の機能ブロック図。
【図2】図2(A)〜図2(D)は、測定対象装置の概略外観図。
【図3】式(8)で表される球を模式的に表した図。
【図4】式(9)で表される楕円体を模式的に表した図。
【図5】6個の測定値(6組の加速度情報)と式(9)で表される楕円体の関係について説明するための図。
【図6】独立な連立方程式の構成について説明するための図。
【図7】独立な連立方程式の構成について説明するための図。
【図8】独立な連立方程式の構成について説明するための図。
【図9】独立な連立方程式の構成について説明するための図。
【図10】独立な連立方程式の構成について説明するための図。
【図11】独立な連立方程式の構成について説明するための図。
【図12】独立な連立方程式の構成について説明するための図。
【図13】表1に示す測定により得られた6個の測定値の配置を示す図。
【図14】x、y、zいずれかの1軸方向の測定値の時系列の一例を示す図。
【図15】本実施形態の加速度センサの誤差測定装置の処理例を示すフローチャート。
【図16】加速度情報を生成する処理例を示すフローチャート。
【図17】加速度センサの誤差測定精度をさらに良くするための処理例を示すフローチャート。
【図18】本実施形態のゲームシステムの機能ブロック図。
【図19】本実施形態のゲームシステムの処理例を示すフローチャート。
【発明を実施するための形態】
【0044】
以下、本発明の好適な実施形態について図面を用いて詳細に説明する。なお、以下に説明する実施の形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また以下で説明される構成の全てが本発明の必須構成要件であるとは限らない。
【0045】
1.加速度センサの誤差測定装置
1−1.構成
図1は、加速度センサの誤差測定装置の機能ブロック図の一例である。なお本実施形態の加速度センサの誤差測定装置では、図1の各部を全て含む必要はなく、その一部を省略した構成としてもよい。以下では、「加速度センサの誤差測定装置」を、「加速度誤差測定装置」と表記する。
【0046】
本実施形態の加速度誤差測定装置1は、測定対象装置2に含まれる加速度センサ20のオフセット誤差情報及び感度誤差情報を測定する処理を行う。
【0047】
本実施形態では、測定対象装置2は、加速度センサ20、マイコン22、通信部24を含んで構成されている。例えば、測定対象装置2として、図2(A)〜図2(C)に示すようなゲームコントローラや図2(D)に示すような携帯電話機などが考えられる。
【0048】
加速度センサ20は、互いに直交する3軸方向(x軸方向、y軸方向、z軸方向)の加速度を検出する。測定対象装置2の向きが変わると加速度センサ20の向きも変わる。また、測定対象装置によって、加速度センサの向きはそれぞれ異なる。例えば、図2(A)〜図2(D)に示す測定対象装置2では、それぞれの加速度センサ20の3つの検出軸方向が図2(A)〜図2(D)に示す方向になっている。
【0049】
そして、加速度センサ20は、一定時間(例えば、5msec)毎に3軸分の加速度を検出し、加速度センサ20によって検出された加速度値(検出情報)は、通信部24によって加速度誤差測定装置1に送信される。
【0050】
マイコン(マイクロコンピュータ)22は、加速度センサ20が検出した加速度値(検出情報)を通信部24を介して加速度誤差測定装置1に送信させる処理を行う。
【0051】
通信部24は、アンテナ、無線モジュールを含み、例えばBluetooth(ブルートゥース;登録商標)などの通信方式により、加速度誤差測定装置1にデータを無線で送信する。通信部24は、加速度センサ20によって検出された加速度値(検出情報)を、所定時間間隔で順次加速度誤差測定装置1に送信している。なお、通信部24は、加速度誤差測定装置1と通信ケーブルで接続し、当該通信ケーブルを介して検出情報の送信を行うようにしてもよい。
【0052】
本実施形態の加速度誤差測定装置1は、処理部10、記憶部30、操作部32、表示部34、情報記憶媒体36、通信部38、音出力部40を含んで構成される。
【0053】
記憶部30は、処理部10や通信部38などのワーク領域となるもので、その機能はRAM(VRAM)などのハードウェアにより実現できる。
【0054】
操作部32は、ユーザが加速度センサの誤差測定の開始や終了などを指示する操作データを入力するためのものであり、その機能は、操作ボタン、タッチパネル型ディスプレイ、キーボード、マウスなどにより実現できる。
【0055】
表示部34は、処理部10により指示された情報を出力するものであり、その機能は、CRTディスプレイ、LCD(液晶ディスプレイ)、OELD有機ELディスプレイ、PDP(プラズマディスプレイパネル)、タッチパネル型ディスプレイ、或いはHMD(ヘッドマウントディスプレイ)などのハードウェアにより実現できる。
【0056】
音出力部40は、処理部10により指示された音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどのハードウェアにより実現できる。
【0057】
通信部38は、アンテナ、無線モジュールを含み、例えばBluetooth(ブルートゥース;登録商標)などの通信方式により、測定対象装置2の通信部24を介して、測定対象装置2からデータを受信する。例えば、通信部38は、測定対象装置2において加速度センサ20よる検出情報を、所定時間間隔で順次受信する。
【0058】
また、通信部38は、ネットワーク(インターネット)を介してサーバと通信することができるようにしてもよい。その機能は、各種プロセッサ又は通信用ASIC、ネットワーク・インタフェース・カードなどのハードウェアや、プログラムなどにより実現できる。また、通信部38は、有線、無線いずれの通信も行うことができる。
【0059】
処理部10(プロセッサ)は、測定対象装置2から受信した加速度センサ20の検出情報や情報記憶媒体36から記憶部30に展開されたプログラム等に基づいて処理を行う。
【0060】
本実施形態の処理部10は、加速度情報生成部11、連立方程式作成部12、連立方程式計算部13、加速度誤差計算部14を含む。また、処理部10は、表示制御部15や音出力制御部16を含んでもよい。
【0061】
加速度情報生成部11は、測定対象装置2から加速度センサ20の検出情報を取得し、取得した検出情報に基づいて加速度情報を生成する処理を行う。
【0062】
例えば、加速度情報生成部11は、加速度センサ20の検出情報に基づいて、加速度センサ20の運動による加速度が無視できる状態であるか否かを判定し、加速度センサ20の運動による加速度が無視できる状態での検出情報に基づいて、加速度情報を生成するようにしてもよい。
【0063】
また、例えば、加速度情報生成部11は、加速度センサ20の検出情報の変動幅が所定の条件を満たす状態(例えば、所定値以下である状態)が所定時間持続すれば加速度センサ20の運動による加速度が無視できる状態であると判定するようにしてもよい。
【0064】
また、例えば、加速度情報生成部11は、前記所定時間に取得した複数の検出情報に基づいて前記加速度情報を生成する(例えば、前記所定時間に取得した複数の検出情報の全部又は一部の平均値を加速度情報とする)ようにしてもよい。
【0065】
連立方程式作成部12は、加速度センサ20の互いに直交する3つの検出軸方向の各感度及び各オフセットに対応した6つのパラメータを含む楕円体の方程式の変数に、加速度センサ20の検出情報に基づく6組の加速度情報を代入し、前記6つのパラメータを未知数とする6つの2次方程式からなる連立2次方程式を作成する処理を行う。
【0066】
例えば、連立方程式作成部12は、加速度センサ20の3つの検出軸をx軸、y軸、z軸とし、前記6つのパラメータのうち、加速度センサ20のx軸方向、y軸方向、z軸方向の感度のパラメータをそれぞれa,b,c、加速度センサ20のx軸方向、y軸方向、z軸方向のオフセットのパラメータをぞれぞれp,q,rとした時、楕円体の方程式として方程式{(x−p)/a}+{(y−q)/b}+{(z−r)/c}=1を用いるようにしてもよい。
【0067】
連立方程式計算部13は、連立方程式作成部12が作成した連立2次方程式を、前記6つの未知数の少なくとも1つを含む式でそれぞれ表される5つの新たな未知数を含むとともに前記6つの未知数のいずれも含まない5つの1次方程式からなる連立1次方程式に帰着させて当該連立1次方程式を解く処理を行う。
【0068】
また、例えば、連立方程式計算部13は、連立1次方程式の係数行列がその対角要素の絶対値が対角要素でない他のすべての要素の絶対値よりも大きくなるように連立1次方程式を作成するようにしてもよい。
【0069】
また、例えば、連立方程式計算部13は、加速度センサ20の検出情報に基づく6組の加速度情報の中で第1の検出軸方向の値が最大及び最小の2つの加速度情報を楕円体の方程式の変数にそれぞれ代入して得られた2つの2次方程式の一方から他方を減算して得られる多項式に基づいて1次方程式の1つを作成し、前記6組の加速度情報の中で第2の検出軸方向の値が最大及び最小の2つの加速度情報を楕円体の方程式の変数にそれぞれ代入して得られた2つの2次方程式の一方から他方を減算して得られる多項式に基づいて1次方程式の他の1つを作成し、前記6組の加速度情報の中で第3の検出軸方向の値が最大及び最小の2つの加速度情報を楕円体の方程式の変数にそれぞれ代入して得られた2つの2次方程式の一方から他方を減算して得られる多項式に基づいて1次方程式の他の1つを作成するようにしてもよい。
【0070】
また、例えば、連立方程式計算部13は、連立2次方程式の任意の2つの2次方程式を演算して得られる多項式又は当該多項式を変形した多項式の各項に含まれる、前記6つの未知数から構成される式又は当該式を実数倍した式を前記5つの新たな未知数と対応させて連立1次方程式を作成するようにしてもよい。
【0071】
また、例えば、連立方程式計算部13は、加速度センサ20の3つの検出軸で作られる3次元空間において互いに直交する所定の3つの軸がそれぞれ重力方向の逆方向又はその近傍を向く状態で得られる3組の検出情報に基づく3組の加速度情報と、前記所定の3つの軸がそれぞれ重力方向又はその近傍を向く状態で得られる3組の検出情報に基づく3組の加速度情報と、を用いて連立2次方程式を作成するようにしてもよい。
【0072】
加速度誤差計算部14は、連立方程式計算部13により得られた前記5つの新たな未知数の値から前記6つの未知数の値を計算し、計算結果に基づいて加速度センサ20の3つの検出軸方向のオフセット誤差情報及び感度誤差情報を計算する処理を行う。
【0073】
表示制御部15は、表示部34に所定の情報を表示させる処理を行う。例えば、表示制御部15は、測定開始や測定終了を示す情報、測定結果のオフセット誤差情報及び感度誤差情報などを表示部34に表示させるようにしてもよい。また、表示制御部15は、測定開始後に加速度センサ20の検出情報の所定の条件を満たす状態(例えば、所定値以下である状態)が所定時間持続した場合に測定終了を示す情報を表示部34に表示させるようにしてもよい。
【0074】
音出力制御部16は、音出力部40から所定の音を出力させる処理を行う。例えば、音制御部16は、測定開始や測定終了を示す音を表示部34を音出力部40から出力させるようにしてもよい。また、音制御部16は、測定開始後に加速度センサ20の検出情報の変動幅が所定の条件を満たす状態(例えば、所定値以下である状態)が所定時間持続した場合に測定終了を示す音を音出力部40から出力させるようにしてもよい。
【0075】
情報記憶媒体36(コンピュータにより読み取り可能な媒体)は、プログラムやデータなどを格納するものであり、その機能は、光ディスク(CD、DVD)、光磁気ディスク(MO)、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ(ROM)などにより実現できる。処理部10は、情報記憶媒体36に格納されるプログラム(データ)に基づいて本実施形態の種々の処理を行う。即ち情報記憶媒体36には、本実施形態の各部としてコンピュータを機能させるためのプログラム(各部の処理をコンピュータに実行させるためのプログラム)が記憶される。
【0076】
なお、本実施形態の各部としてコンピュータを機能させるためのプログラム(データ)は、サーバが有する、記憶部、情報記憶媒体からネットワークを介して情報記憶媒体36(または、記憶部30)に配信するようにしてもよい。このようなサーバの情報記憶媒体の使用も本発明の範囲に含まれる。
【0077】
1−2.加速度センサの誤差測定方法
1−2−1.誤差の意味
加速度センサに作用している真の加速度をTとする。Tは運動による加速度だけでなく、重力をも含んでいるとする。例えば、センサが静止している状態では、T=1Gである。「G」は加速度の単位で1G=9.80665m/sである。なお、重力(重力加速度)の大きさは、厳密には緯度や標高等によって異なるが、その違いは僅かなので、ここでは一定の値であるとする。真の加速度Tに対して、センサで測定して得られた値がMであるとする。このとき、次式(1)のようにMとTの差を誤差Eとする。
【0078】
【数1】

【0079】
誤差Eの大きさはTの値によって変わるので、EはTの関数として表される。Tの2次以上の成分は僅かなので、次式(2)のようにEをTの1次式で近似する。
【0080】
【数2】

【0081】
T=0における測定値Mのずれがeとなるので、eはオフセット誤差と呼ばれる(0G誤差とも呼ばれる)。一方eは、センサの感度のずれに相当するので、感度誤差と呼ばれる。もし誤差が全くなければe=0,e=0である。MとTの関係は次式(3)で表される。
【0082】
【数3】

【0083】
1−2−2.加速度センサの誤差測定(1軸)
加速度センサの1つの検出軸(x,y,zのうちの1つ)のみを対象として、オフセット誤差と感度誤差を測定する方法について考える。加速度センサの検出軸方向を真上または真下に向け、静止状態でのセンサ出力を測定すれば、以下のようにして誤差を求めることができる。
【0084】
検出軸を真上に向けた静止状態での測定値(前記の検出情報に相当する)をmとする。この状態での真の加速度値は1Gなので、式(3)より次式(4)が得られる。
【0085】
【数4】

【0086】
同様に、検出軸を真下に向けた静止状態での測定値をmとする。この状態での真の加速度値は−1Gなので、式(3)より次式(5)が得られる。
【0087】
【数5】

【0088】
式(4)、(5)よりe,eを求めると、次式(6)、(7)のようになる。
【0089】
【数6】

【0090】
【数7】

【0091】
の単位はGで、eは単位なし(無次元)である。このように、加速度センサの検出軸の向きを垂直方向に合わせることができれば、誤差は容易に求められる。
【0092】
加速度センサがゲームコントローラに内蔵されているものとする。コントローラの形状が箱型で、面の向き(表面の法線の方向)が加速度センサの検出軸方向と一致している場合は、誤差測定は容易に行なえる。水平面と見なせる面(例えば机の上)にコントローラを置けば、加速度センサの検出軸を垂直方向に合わせることができる。
【0093】
しかし、コントローラの形状が曲面でできている場合や、コントローラの外形が加速度センサの検出軸方向と合っていない場合には、センサの検出軸を垂直方向に合わせる操作に手間が掛かる。例えば、コントローラを支えた状態で向きを調整して、測定値が最大(あるいは最小)になるような方向を探す等の操作が必要となる。
【0094】
1−2−3.加速度センサの誤差測定(任意方向)
1−2−3−1.楕円体の方程式
加速度センサの向きを気にせずに誤差測定できる方法について考える。加速度センサが搭載されたコントローラを、様々な向きで静止させ、センサ出力値を調べるものとする。毎回向きを変えてN回の測定を行ない、その結果のx,y,z各軸の値を、それぞれx,y,z(i=1,2,・・・,N)とする。ただし、加速度の単位はGとする。
【0095】
コントローラには1Gの重力のみが作用しているので、もし加速度センサに誤差がなければ、ベクトル(x,y,z)の大きさは1となる。したがって、次式(8)が成立し、N個の測定値は全て、原点を中心とする半径1の球面上に乗る。図3は、式(8)で表される球を模式的に表した図である。
【0096】
【数8】

【0097】
これに対して、加速度センサの誤差を考慮すると、感度誤差によるスケール(拡大・縮小)と、オフセット誤差による平行移動が、x,y,z各軸方向に加わる。そのため、式(8)の球ではなく、次式(9)のように主軸がx,y,z軸に平行な楕円体(axis aligned ellipsoid) となる。ただしa>0,b>0,c>0とする。図4は、式(9)で表される楕円体を模式的に表した図である。
【0098】
【数9】

【0099】
中心座標p,q,rがそれぞれx,y,z方向のオフセット誤差に相当し、a−1,b−1,c−1がそれぞれx,y,z方向の感度誤差に相当する。この楕円体の式が決まれば、加速度センサの誤差が得られたことになる。
【0100】
1−2−3−2.方程式の解法
式(9)の未知数はp,q,r,a,b,cの6個なので、解が求まるためには6個の方程式が必要である。そこで、6個の測定値(x,y,z),(x,y,z),・・・,(x,y,z)を使って、次のように連立方程式を作る。図5に示すように、この6個の測定値(前記の6組の加速度情報に相当する)は、式(9)で表される楕円体の面上に乗る。
【0101】
【数10】

【0102】
この連立方程式は、未知数p,q,r,a,b,cの2次方程式なので、解くのが困難である。そこで、以下のようにして連立1次方程式に帰着させる。
【0103】
まず、式(10b)から式(10a)を引いて変形すると、次式(11)が得られる。
【0104】
【数11】

【0105】
ここで、未知数を次のように置き換える。
【0106】
【数12】

【0107】
すると、式(11)は次式(13)のようにα,β,γ,δ,εの1次式となる。
【0108】
【数13】

【0109】
同様にして、式(10a)〜(10f)の中から2つの式を選び、その差をとって1次式を作る。6個の式から2個の式を選ぶので、=15とおりの式ができるが、そのうち独立なものは5個である。この5元連立1次方程式を解くことによりα,β,γ,δ,εが求まる。
【0110】
p,q,rは次式(14)により得られる。
【0111】
【数14】

【0112】
式(10a)を変形すると次式(15)が得られ、この式からaが求められる。
【0113】
【数15】

【0114】
b,cは次式(16)により得られる。
【0115】
【数16】

【0116】
以上の計算で求めたp,q,rが、それぞれx,y,z方向のオフセット誤差である。また、a−1,b−1,c−1がそれぞれx,y,z方向の感度誤差である。
【0117】
1−2−3−3.独立な連立方程式の構成
連立方程式(10a)〜(10f)を解く際に、この6つの2次式の中から式を2つ選び、その差をとって1次式を作った。式の選び方は=15とおりあるので、15個の1次式を作ることができる。しかし、そのうち独立なものは5個しかない。グラフ理論を使ってこのことを説明する。なお、式番号を見やすくするために、(10a),(10b),・・・,(10f)の替わりに、それぞれ(a),(b),・・・,(f)と書くことにする。
【0118】
図6のように6個のノード(点)A,B,・・・,Fを配置し、それぞれが2次式(a),(b),・・・,(f)を意味するものとする。また、式(a),(b),・・・,(f)を、それぞれノードA,B,・・・,Fのノード式と呼ぶことにする。2つのノード式の差から作った1次式を、そのノードを結ぶエッジ(線分)で表すものとする。例えば図7のエッジABは、1次式(a)−(b)を意味する。エッジに対応する1次式を、エッジ式と呼ぶことにする。連立1次方程式は、例えば図8のように、グラフとして表される。図8は5個の1次式を表している。
【0119】
前述のように連立1次方程式とグラフを対応させると、次のことが言える。
【0120】
「連立1次方程式が独立であるための必要十分条件は、グラフがサイクルを含まないことである。」
【0121】
サイクルとは閉じた経路のことで、閉道ともいう。図8は独立な連立1次方程式を表すグラフの一例である。これに対して、図9はサイクルB−C−E−Bを含むので独立ではない(従属な式を含む)。
【0122】
連立1次方程式の独立性とグラフのサイクルとの関係は、以下のようにして導かれる。
【0123】
[必要条件]
図10のグラフには、2つのエッジ式(a)−(b)と(b)−(c)が存在する。この2つの式から、((a)−(b))+((b)−(c))の計算により1次式(a)−(c)を作ることができる。したがって、図10にエッジACを追加した図11の状態は、従属な式を含んでいることになる。この考え方を一般化すると、「グラフがサイクルを含むならば、エッジ式は従属な式を含む」ことが導かれる。
【0124】
[十分条件]
一方、「グラフがサイクルを含まなければ、エッジ式は独立である」ことは、以下のように説明できる。サイクルを含まないグラフから1本のエッジを取り除くと、グラフは2つの部分(部分グラフ)GとGに分かれる。例えば、図8のグラフからエッジCEを取り除くと、図12のようにG={{A,B,C,D},{AB,BC,CD}}とG={{E,F},{EF}}に分かれる。この図12の4つのエッジ式から、新たにエッジ式(c)−(e)が作れるかどうかを考える。(c)を含むエッジ式を作ると、例えば(c)−(a)のように、必ずGの他のノードのノード式を含んだものになる。同様に、(e)を含むエッジ式は必ずGの他のノードのノード式を含んでいる。G,Gに共通するノードは存在しないので、(c)と(e)の両方を含む1次式を作れば、例えば(c)−(e)−(a)+(f)のように、必ず(c),(e)以外の項が消えずに残ってしまう。したがって、図12の状態からエッジ式(c)−(e)を作ることはできない。よって、図8のグラフにおいてエッジ式(c)−(e)は独立である。同様の理由により、図8において、エッジ式(b)−(c)も独立である。
【0125】
また、図8のエッジ式(a)−(b)が独立であることは、次のように説明される。このグラフからエッジABを取り除くと、残る部分グラフG,Gのうち一方は、ノードAのみ(エッジを持たない)となる。式(a)を含むエッジ式が存在しないので、既存のエッジ式からエッジ式(a)−(b)を作ることはできない。したがって、図8のグラフにおいて、エッジ式(a)−(b)は独立である。同様の理由により、図8においてエッジ式(c)−(d),(e)−(f)も独立である。
【0126】
以上の考え方を一般化すると、「グラフがサイクルを含まなければ、エッジ式は独立である」ことが導かれる。
【0127】
サイクルを含まないグラフは、(1本以上の)木(tree)構造になる。また、2本の木を1本のエッジで繋ぐと1本の木になる。したがって、与えられたノードを使って、サイクルを含まない、エッジ数が最大のグラフを作ると、1本の木になる。
【0128】
木においては、エッジの数はノードの数より1少ないことが知られている。以上のことから、ノード式が6個の場合、独立な1次式は5個まで作れることになる。
【0129】
1−2−3−4.計算精度の向上
6個の測定値から誤差を求める計算は、3次元空間上の6点を通る楕円体を求めることに相当する。そのため、計算結果の精度を良くするには、6つの測定値x,y,z(i=1,2,・・・,6)はxyz空間上で互いになるべく離れているほうが良いと、直観的に推測される。このことは、測定値が近接していると、式(13)の係数の相対精度が低くなることからも理解できる。
【0130】
また、連立1次方程式を解くアルゴリズムは種々存在するが、その多く(Gaussの消去法、Gauss-Jordan法、Gauss-Seidel法等)は、係数行列の対角要素の値(絶対値)が小さい場合に、解の精度の低下や、解が求まらないという不具合を生じる。そのため、連立1次方程式を作る際には、係数行列の対角要素の絶対値が大きくなるように構成することが重要である。
【0131】
そこで、x,y,zを測定する際には、加速度センサのx軸がほぼ上方向を向くようにする。同様に、表1のように6回の測定を、それぞれ向きを変えて行なう。向きは正確である必要はない。このように設定することで、6個の測定値はxyz空間上で互いに十分離れた位置になる。
【0132】
【表1】

【0133】
図13は、表1に示す6回の測定により得られた測定値m〜mの、式(9)で表される楕円体の面上の配置を示している。例えば、加速度センサのx軸方向が正確に上方向すなわち真上方向(重力方向の逆方向)を向いて静止した状態であれば測定値mは(a+p,q,r)になり、加速度センサのx軸方向が正確に下方向すなわち真下方向(重力方向)を向いて静止した状態であれば測定値mは(−a+p,q,r)になる。同様に、加速度センサのy軸方向が真上方向を向いて静止した状態であれば測定値mは(p,b+q,r)になり、加速度センサのy軸方向が真下方向を向いて静止した状態であれば測定値mは(p,−b+q,r)になる。同様に、加速度センサのz軸方向が真上方向を向いて静止した状態であれば測定値mは(p,q,c+r)になり、加速度センサのz軸方向が真下方向を向いて静止した状態であれば測定値mは(p,q,−c+r)になる。
【0134】
ただし、加速度センサのx軸、y軸、z軸を合わせる向きは正確である必要はなく、真上方向又は真下方向の近傍を向くようにすればよい。このようにしても、測定値m〜mは、加速度センサのx軸、y軸、z軸を真上方向又は真下方向に合わせた時の測定値を中心点とする所定範囲(図13において斜線で示す範囲)に存在するので、xyz空間上で互いに十分離れた位置になる。
【0135】
また、加速度センサが通常の精度であれば、a≒1,b≒1,c≒1,p≒0,q≒0,r≒0なので、各測定値は概ね次のような値になる。
【0136】
【数17】

【0137】
そこで、連立1次方程式を次にように構成する。
【0138】
すなわち、まず、式(10a)−式(10b),式(10c)−式(10d),式(10e)−式(10f),式(10a)−式(10c)+式(10b)−式(10d),式(10a)−式(10e)+式(10b)−式(10f)により次式(18a)〜(18e)を得る。
【0139】
【数18】

【0140】
次に、式(18a)〜(18e)に式(12)を代入すると、次式(19a)〜(19e)からなる連立1次方程式が得られる。
【0141】
【数19】

【0142】
従って、式(19a)〜(19e)からなる連立1次方程式において、α,β,γ,δ,εの係数を要素とする係数行列をMとすると、式(19a)〜(19e)からなる連立1次方程式は次のように表すことができる。
【0143】
【数20】

【0144】
また、係数行列Mは次式(21)のようになる。
【0145】
【数21】

【0146】
すると、式(17)より、係数行列Mは概ね次のような値になり、対角要素の絶対値が他の要素の絶対値よりも大きい値になる。
【0147】
【数22】

【0148】
この係数行列を使うことにより、連立1次方程式を安定して精度良く解くことができる。
【0149】
一般に、所定の規則に従って加速度センサの向きを変えて測定を行い、得られた6個の測定値を用いて連立2次方程式(10a)〜(10f)から所定の規則に従って連立1次方程式を作成すれば、対角要素の絶対値が他の要素の絶対値よりも大きい係数行列を得ることができる。
【0150】
1−2−4.静止状態の検出
以上の方法を使って加速度センサの誤差を測定する場合、測定時に加速度センサを静止させる必要がある。本来は、加速運動をしていなければよいので、等速直線運動は許容されるが、現実的には静止させるほうが容易である。
【0151】
測定値が殆んど変動しない状態が一定時間持続した場合に、静止していると判定する。厳密には、この判定基準は正しくない。本来は、加速運動していない状態(静止状態を含む)のみOK判定を出すべきところを、等加速度運動していてもOKになってしまうからである。しかし実際には、もし等加速度運動がある程度持続すればその方向に移動するはずなので、移動していないと確認できる状態(机の上に置いた状態等)であれば、この判定方法で問題はない。
【0152】
実際の例としては、測定値の変動幅が0.03G以下の状態が1秒間持続した場合に、静止していると判断する。そして、この1秒間の測定値を平均した値を1個の測定値(x,y,z)として扱う。また、このように平均をとることによって、ランダムなノイズやセンサの丸め誤差の影響を減らし、測定値の信頼度を上げることができる。
【0153】
図14を用いて、本実施形態の加速度誤差測定装置1が測定対象装置2(加速度センサ20)が静止しているか否かを判定する処理の具体的な例を説明する。図14は、x軸方向、y軸方向、z軸方向のいずれかの1軸方向(例えば、x軸方向)の測定値の時系列の一例を示す図であり、測定間隔は5msecである。加速度誤差測定装置1は、時刻tにおいて加速度センサの測定値の取得を開始し、測定値の変動幅が0.03G以下の状態が1秒間持続するか否かを判定する。具体的には、まず、時刻tから1秒経過後の時刻tにおいて、時刻t〜tの1秒間に取得した測定値の変動幅が0.03G以下であるか否かを判定する。例えば、時刻t〜tの1秒間に取得した測定値の最大値と最小値の差が0.03G以下であるか否かを判定すればよい。
【0154】
ここで、時刻t〜tの1秒間に取得した測定値の変動幅が0.03Gよりも大きい(時刻tでの測定値(最小値)と時刻tでの測定値(最大値)の差が0.03Gより大きい)ため、加速度誤差測定装置1は、次に、時刻tから5msec経過後の時刻tにおいて、加速度センサの測定値を新たに取得し、時刻t〜tの1秒間に取得した測定値の変動幅が0.03G以下であるか否かを判定する。このように、加速度誤差測定装置1は、5msec経過する毎に過去1秒間(直近の1秒間)に取得した測定値の変動幅が0.03G以下になるまで加速度センサの測定値を新たに取得する処理を繰り返す。そして、加速度誤差測定装置1は、時刻tから時刻tまでの1秒間の測定値の変動幅(最大値と最小値の差)が0.03G以下となるので、測定対象装置2(加速度センサ20)が静止していると判定し、時刻tにおいて測定値の取得を終了する。
【0155】
ただし、加速度誤差測定装置1は、時刻tから時刻tまでの1秒間に、他の2軸方向(例えば、y軸方向とz軸方向)のいずれかの測定値の変動幅が0.03Gを超えれば、測定対象装置2(加速度センサ20)が静止していないと判定し、3軸方向の測定値の変動幅のすべてが0.03G以下の状態が1秒間持続するまで3軸方向の測定値の取得を継続する。
【0156】
そして、加速度誤差測定装置1は、時刻tから時刻tまでの1秒間の3軸方向の各測定値を平均した値を1個の測定値(x,y,z)として扱う。すなわち、同様の処理を全部で6回行えば、ランダムなノイズやセンサの丸め誤差の影響を減らした平均値としての6個の測定値(x,y,z)〜(x,y,z)を得ることができる。
【0157】
なお、図14の例では、時刻tでの判定において、時刻tでの測定値(時刻t〜tでの最小値)と時刻tでの測定値(時刻t〜tでの最大値)の差が0.03Gより大きいことがわかる。そこで、時刻tから1秒経過後の時刻をtとすると、時刻t〜tのいずれにおいても過去1秒間に取得した測定値の変動幅が0.03Gよりも大きいことが明らかであるので、時刻t〜tでは判定処理を行わないようにしてもよい。
【0158】
1−3.加速度センサの誤差測定装置の処理
次に、本実施形態の加速度センサの誤差測定装置の処理例について図15のフローチャートを用いて説明する。
【0159】
まず、加速度誤差測定装置1は、式(9)に示した楕円体の方程式の変数(x,y,z)に、6組の加速度情報(x,y,z)〜(x,y,z)をそれぞれ代入し、式(10a)〜式(10f)に示したa,b,c,p,q,rを未知数とする6つの2次方程式からなる連立2次方程式を作成するステップS10、連立方程式作成ステップ。
【0160】
次に、ステップS20で作成したa,b,c,p,q,rを未知数とする連立2次方程式を、α,β,γ,δ,εを未知数とする5つの1次方程式からなる連立1次方程式に帰着させて当該連立1次方程式を解くステップS20、連立方程式計算ステップ。
【0161】
ここで、α,β,γ,δ,εとa,b,c,p,q,rの対応関係はあらかじめ定義されており、例えば、式(12)に示したように、式(10a)−式(10b)により得られる多項式(11)の各項に含まれる、未知数a,b,c,p,q,rから構成される式p,(a/b)q,(a/c)r,a/b,a/cを未知数α,β,γ,δ,εと対応させてもよい。また、例えば、式p,(a/b)q,(a/c)r,a/b,a/cを、多項式(11)の各項に含まれる各定数で実数倍した式2p,2(a/b)q,2(a/c)r,a/b,a/cを未知数α,β,γ,δ,εと対応させてもよい。さらに、例えば、多項式(11)を変形した多項式の各項に含まれる、未知数a,b,c,p,q,rから構成される式又は当該式を実数倍した式を未知数α,β,γ,δ,εと対応させてもよい。
【0162】
また、加速度誤差測定装置1は、ステップS20において、式(10a)〜式(10f)に示した6つの2次方程式に対して、あらかじめ決められた演算を施して連立1次方程式を作成する。例えば、前述したように、式(10a)−式(10b),式(10c)−式(10d),式(10e)−式(10f),式(10a)−式(10c)+式(10b)−式(10d),式(10a)−式(10e)+式(10b)−式(10f)により1次方程式(19a)〜(19e)を作成するようにしてもよい。
【0163】
最後に、加速度誤差測定装置1は、ステップS20で求まった未知数α,β,γ,δ,εの値から未知数a,b,c,p,q,rの値を計算し、計算結果に基づいて加速度センサの3つの検出軸方向のオフセット誤差情報(例えばp,q,r)及び感度誤差情報(例えばa−1,b−1,c−1)を計算するステップS30、加速度誤差計算ステップ。
【0164】
次に、本実施形態の加速度センサの誤差測定装置が加速度情報を生成する処理例について図16のフローチャートを用いて説明する。
【0165】
まず、加速度誤差測定装置1は、所定時間Tが経過するまで測定対象装置2から加速度センサ20の検出情報を取得する(ステップS50、S60)。
【0166】
所定時間Tが経過すると(ステップS60でYesの場合)、次に、加速度誤差測定装置1は、過去T時間に取得した検出情報の変動幅が所定値(図4に示した例では0.03G)以下か否かを判定する(ステップS70)。
【0167】
ステップS70において、検出情報の変動幅が所定値よりも大きい場合(ステップS70でNoの場合)、加速度誤差測定装置1は、加速度センサ20の次の検出情報を取得し(ステップS80)、再度、ステップS70の判定処理を行う。
【0168】
ステップS70において、検出情報の変動幅が所定値以下である場合(ステップS70でYesの場合)、加速度誤差測定装置1は、過去T時間に取得した検出情報の平均値を計算して加速度情報(x,y,z)とする(ステップS90)。
【0169】
加速度誤差測定装置1は、ステップS50〜S90の処理を6回繰り返すことにより、6組の加速度情報(x,y,z)〜(x,y,z)を作成する。
【0170】
加速度センサの誤差測定精度をさらに良くするための処理例について図17のフローチャートを用いて説明する。
【0171】
まず、加速度センサ20の3つの検出軸(x軸、y軸、z軸)で作られる3次元空間において互いに直交する3つの軸(ξ軸、邇イ、謗イとする)のうちのξ軸が真上方向(重力方向の逆方向)又はその近傍を向くように測定対象装置2をセットする(ステップS100)。ここで、ξ軸、邇イ、謗イは、あらかじめ決められた互いに直交する3つの軸であり、例えば、測定対象装置2の形状を考慮して決めてもよい。なお、ξ軸、邇イ、謗イは、加速度センサ20の3つの検出軸(x軸、y軸、z軸)とそれぞれ一致してもよく、その場合、図17のフローチャートによる処理は表1に対応した処理となる。
【0172】
次に、例えば、図16に示したフローチャートに従い、加速度情報(x,y,z)の生成処理を行う(ステップS110)。
【0173】
なお、ステップS100及びS110は、第1の加速度情報生成ステップに相当する。
【0174】
次に、ξ軸が真下方向(重力方向)又はその近傍を向くように測定対象装置2をセットする(ステップS120)。
【0175】
次に、例えば、図16に示したフローチャートに従い、加速度情報(x,y,z)の生成処理を行う(ステップS130)。
【0176】
なお、ステップS120及びS130は、第2の加速度情報生成ステップに相当する。
【0177】
次に、邇イが真上方向又はその近傍を向くように測定対象装置2をセットし(ステップS140)、例えば、図16に示したフローチャートに従い、加速度情報(x,y,z)の生成処理を行う(ステップS150)。
【0178】
なお、ステップS140及びS150は、第3の加速度情報生成ステップに相当する。
【0179】
次に、邇イが真下方向又はその近傍を向くように測定対象装置2をセットし(ステップS160)、例えば、図16に示したフローチャートに従い、加速度情報(x,y,z)の生成処理を行う(ステップS170)。
【0180】
なお、ステップS160及びS170は、第4の加速度情報生成ステップに相当する。
【0181】
次に、謗イが真上方向又はその近傍を向くように測定対象装置2をセットし(ステップS180)、例えば、図16に示したフローチャートに従い、加速度情報(x,y,z)の生成処理を行う(ステップS190)。
【0182】
なお、ステップS180及びS190は、第5の加速度情報生成ステップに相当する。
【0183】
次に、謗イが真下方向又はその近傍を向くように測定対象装置2をセットし(ステップS200)、例えば、図16に示したフローチャートに従い、加速度情報(x,y,z)の生成処理を行う(ステップS210)。
【0184】
なお、ステップS200及びS210は、第6の加速度情報生成ステップに相当する。
【0185】
最後に、例えば、図15に示したフローチャートに従い、加速度センサ20のオフセット誤差情報及び感度誤差情報の計算処理を行う(ステップS220)。
【0186】
1−4.本実施形態の効果
本実施形態によれば、加速度センサ20の検出情報に基づく任意の6組の加速度情報(x,y,z)〜(x,y,z)が得られれば代数的に加速度センサ20のオフセット誤差p,q,r及び感度誤差a−1,b−1,c−1を計算することができる。従って、従来手法のように加速度センサ20の各検出軸方向を正確に上向き及び下向きに合わせた状態での検出情報が得られなくとも、加速度センサ20の向きに関係なく得られた検出情報に基づきオフセット誤差p,q,r及び感度誤差a−1,b−1,c−1を計算することができる。
【0187】
また、ニュートン法(ニュートン・ラプソン法)により、コンピュータで連立2次方程式の解を反復計算により得る方法では計算が収束するまでに時間がかかるが、本実施形態によれば、連立2次方程式(10a)〜(10f)を連立1次方程式に帰着させて代数的に解くので計算時間を短縮することができる。
【0188】
また、本実施形態において、係数行列Mが式(22)のようになるようにすれば係数行列Mの対角要素の絶対値が他の要素の絶対値よりも大きい値になるので、連立1次方程式(19a)〜(19e)の計算過程でピボット選択を行わなくても解が得られるとともに計算誤差もより小さくなる。従って、計算負荷を増やさずに連立1次方程式(19a)〜(19e)を安定して精度良く解くことができる。
【0189】
また、本実施形態において、図17に示したように、互いに直交するξ軸、邇イ、謗イがそれぞれ真上方向近傍及び真下方向近傍を向くようにして得られた6組の加速度情報(x,y,z)〜(x,y,z)を用いれば、加速度センサ20のx軸、y軸、z軸で作られるxyz空間上で、6組の加速度情報に対応する6点が互いに十分離れた位置になる。従って、この6組の加速度情報を用いればより精度良く楕円体の方程式(9)を特定することができるので、加速度センサ20のオフセット誤差p,q,r及び感度誤差a−1,b−1,c−1をより精度良く計算することができる。
【0190】
また、本実施形態において、図16に示したように、加速度センサ20の検出情報の変動幅が所定値以下である状態が所定時間持続した場合に当該所定時間に取得した検出情報の平均値を加速度情報(x,y,z)〜(x,y,z)とすれば、加速度情報(x,y,z)〜(x,y,z)はx,y,z軸方向の重力加速度成分がより正確に反映されるので、より精度良く楕円体の方程式(9)を特定することができる。また、加速度センサ20の検出情報に含まれるランダムなノイズや丸め誤差の影響を減らすことができるので、加速度センサ20のオフセット誤差p,q,r及び感度誤差a−1,b−1,c−1をさらに精度良く計算することができる。
【0191】
そして、本実施形態において、測定対象装置2としてゲームコントローラを想定すると、ゲームコントローラに含まれる加速度センサのオフセット誤差及び感度誤差が分かるので、加速度センサの検出情報を補正して誤差なしの状態や誤差最大の状態でアプリケーションの動作確認テストができる。
【0192】
2.ゲームシステム
2−1.構成
図18は、本実施形態のゲームシステムの機能ブロック図の一例である。なお本実施形態のゲームシステムでは、図18の各部を全て含む必要はなく、その一部を省略した構成としてもよい。
【0193】
本実施形態のゲームシステムは、本体装置100、入力装置200、情報記憶媒体180、表示部(表示装置)190、スピーカ192、光源198を含んで構成されている。
【0194】
入力装置200は、加速度センサ210、撮像部220、スピーカ230、振動部240、マイコン250、通信部260によって構成されている。
【0195】
加速度センサ210は、3軸(x軸、y軸、z軸)の加速度を検出する。すなわち、加速度センサ210は、上下方向、左右方向、及び、前後方向の加速度を検出することができる。なお、加速度センサ210は、一定時間(例えば、5msec)毎に加速度を検出している。加速度センサ210によって検出された加速度値(検出情報)は、通信部260によって本体装置100に送信される。
【0196】
撮像部220は、赤外線フィルタ222、レンズ224、撮像素子(イメージセンサ)226、画像処理回路228を含む。赤外線フィルタ222は、入力装置200の前方に配置され、表示部190に関連付けられて配置されている光源198から入射する光から赤外線のみを通過させる。レンズ224は、赤外線フィルタ222を透過した赤外線を集光して撮像素子226へ出射する。撮像素子226は、例えば、CMOSセンサやCCDのような固体撮像素子であり、レンズ224が集光した赤外線を撮像して撮像画像を生成する。撮像素子226で生成された撮像画像は、画像処理回路228で処理される。例えば、撮像素子226から得られた撮像画像を処理して高輝度部分を検知し、撮像画像における光源の位置情報(特定位置)を検出する。なお、光源が複数存在する場合には、撮像画像上の位置情報を検出する。また、検出した位置情報は、通信部260によって、本体装置100に送信される。
【0197】
スピーカ230は、本体装置100から通信部260を介して取得した音を出力する。
【0198】
振動部(バイブレータ)240は、本体装置100から送信された振動信号を受信して、振動信号に基づいて作動する。
【0199】
マイコン(マイクロコンピュータ)250は、受信した本体装置100からのデータに応じて、音を出力する制御や、バイブレータを作動させる制御を行う。また、加速度センサ210が検出した加速度値(検出情報)を通信部260を介して本体装置100に送信させる処理を行ったり、撮像部220によって検出された位置情報を、通信部260を介して本体装置100に送信させる処理を行う。
【0200】
通信部260は、アンテナ、無線モジュールを含み、例えばBluetooth(ブルートゥース;登録商標)などの通信方式により、本体装置100とデータを無線で送受信する。通信部260は、加速度センサ210によって検出された加速度値(検出情報)や撮像部220において検出した位置情報等を、所定の時間間隔で順次本体装置100に送信している。なお、通信部260は、本体装置100と通信ケーブルで接続し、当該通信ケーブルを介して情報の送受信を行うようにしてもよい。
【0201】
なお、入力装置200は、例えば、図2(A)〜図2(C)に示したようなコントローラであってもよく、操作部270として、ボタン、レバー(アナログパッド)、マウス、十字キー、タッチパネル型ディスプレイなどの操作子を更に設けてもよい。また、入力装置200はプレイヤの入力動作によって変化する角速度を検出するジャイロセンサを備えていてもよい。
【0202】
また入力装置200は、プレイヤが把持して動かすものであってもよいし、プレイヤが身につけて動かすものであってもよい。また、入力装置200には、プレイヤが把持する刀型コントローラや銃型コントローラ、あるいはプレイヤが身につける(プレイヤが手に装着する)グローブ型コントローラなど実際の道具を模して作られたコントローラも含まれる。また入力装置200には、入力装置200と一体化されている本体装置100(ゲーム装置、携帯型ゲーム装置)、携帯電話機なども含まれる。
【0203】
次に、本実施形態の本体装置100について説明する。本実施形態の本体装置100は、記憶部170、処理部110、通信部196によって構成される。
【0204】
記憶部170は、処理部110や通信部194などのワーク領域となるもので、その機能はRAM(VRAM)などのハードウェアにより実現できる。
【0205】
特に、本実施形態の記憶部170は、主記憶部172、描画バッファ174、音データ記憶部176を含む。主記憶部172は、処理部110や通信部194などのワーク領域となるもので、その機能はRAM(VRAM)などのハードウェアにより実現できる。また、描画バッファ174は、描画部140において生成された画像を記憶する。
【0206】
また、音データ記憶部176は、プレイヤの入力動作に対する入力装置200の反応を示す確認音や、ゲーム演算処理に伴い出力される効果音を記憶する。なお、確認音は、検出情報に応じて複数種類記憶する。また、効果音は、モーションや、所与のイベントに応じて複数種類記憶する。また、加速度センサ210によって検出される加速度の方向(上方向、下方向、左方向、右方向、前方向、後方向)に応じて複数種類の確認音を記憶してもよい。
【0207】
情報記憶媒体180(コンピュータにより読み取り可能な媒体)は、プログラムやデータなどを格納するものであり、その機能は、光ディスク(CD、DVD)、光磁気ディスク(MO)、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ(ROM)などにより実現できる。処理部110は、情報記憶媒体180に格納されるプログラム(データ)に基づいて本実施形態の種々の処理を行う。即ち情報記憶媒体180には、本実施形態の各部としてコンピュータを機能させるためのプログラム(各部の処理をコンピュータに実行させるためのプログラム)が記憶される。なお情報記憶媒体180は、メモリカードに、プレイヤの個人データやゲームのセーブデータなどを記憶するものも含む。
【0208】
表示部190は、処理部110により生成された画像等を出力するものであり、その機能は、CRTディスプレイ、LCD(液晶ディスプレイ)、OELD有機ELディスプレイ、PDP(プラズマディスプレイパネル)、タッチパネル型ディスプレイ、或いはHMD(ヘッドマウントディスプレイ)などのハードウェアにより実現できる。
【0209】
スピーカ192は、音制御部150により再生する音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどのハードウェアにより実現できる。なお、スピーカ192は、表示部に備えられたスピーカとしてもよい。例えば、テレビ(家庭用テレビジョン受像機)を表示部190としている場合には、テレビのスピーカとすることができる。
【0210】
光源198は、例えばLEDであり、表示部190に関連付けられて配置される。
【0211】
通信部196は、ネットワーク(インターネット)を介して他の本体装置(ゲーム装置)と通信することができる。その機能は、各種プロセッサ又は通信用ASIC、ネットワーク・インタフェース・カードなどのハードウェアや、プログラムなどにより実現できる。また、通信部196は、有線、無線いずれの通信も行うことができる。
【0212】
また、通信部196は、アンテナ、無線モジュールを含み、例えばBluetooth(ブルートゥース;登録商標)などの通信方式により、入力装置200の通信部260を介して、入力装置200とデータを送受信する。例えば、通信部196は、確認音、効果音等の音データ、及び、振動信号を、入力装置200に送信し、入力装置200において、加速度センサ210や撮像素子226によって検出された情報を所定の間隔で受信する。
【0213】
なお、本実施形態の各部としてコンピュータを機能させるためのプログラム(データ)は、サーバが有する、記憶部、情報記憶媒体からネットワークを介して情報記憶媒体180(または、記憶部170)に配信するようにしてもよい。このようなサーバの情報記憶媒体の使用も本発明の範囲に含まれる。
【0214】
処理部110(プロセッサ)は、入力装置200から受信した検出情報や情報記憶媒体180から記憶部170に展開されたプログラム等に基づいて、ゲーム演算処理、画像生成処理、或いは音制御の処理などを行う。
【0215】
特に本実施形態の処理部110は、加速度誤差測定部120、ゲーム演算部130、描画部140、音制御部150、振動制御部160を含む。
【0216】
加速度誤差測定部120は、加速度情報生成部121、連立方程式作成部122、連立方程式計算部123、加速度誤差計算部124、加速度誤差設定部125を含む。
【0217】
加速度情報生成部121は、入力装置200から加速度センサ210の検出情報を取得し、取得した検出情報に基づいて加速度情報を生成する処理を行う。
【0218】
例えば、加速度情報生成部121は、加速度センサ210の検出情報に基づいて、加速度センサ210の運動による加速度が無視できる状態であるか否かを判定し、加速度センサ210の運動による加速度が無視できる状態での検出情報に基づいて、加速度情報を生成するようにしてもよい。
【0219】
また、例えば、加速度情報生成部121は、加速度センサ210の検出情報の変動幅が所定の条件を満たす状態(例えば、所定値以下である状態)が所定時間持続すれば加速度センサ210の運動による加速度が無視できる状態であると判定するようにしてもよい。
【0220】
また、例えば、加速度情報生成部121は、前記所定時間に取得した複数の検出情報に基づいて前記加速度情報を生成する(例えば、前記所定時間に取得した複数の検出情報の全部又は一部の平均値を加速度情報とする)ようにしてもよい。
【0221】
連立方程式作成部122は、加速度センサ210の互いに直交する3つの検出軸方向(x軸方向、y軸方向、z軸方向)の各感度及び各オフセットに対応した6つのパラメータa,b,c,p,q,rを含む楕円体の方程式の変数に、加速度センサ210の検出情報に基づく6組の加速度情報を代入し、6つのパラメータa,b,c,p,q,rを未知数とする6つの2次方程式からなる連立2次方程式を作成する処理を行う。
【0222】
例えば、連立方程式作成部122は、楕円体の方程式として方程式{(x−p)/a}+{(y−q)/b}+{(z−r)/c}=1を用いるようにしてもよい。
【0223】
連立方程式計算部123は、連立方程式作成部122が作成した連立2次方程式を、6つの未知数a,b,c,p,q,rの少なくとも1つを含む式でそれぞれ表される5つの新たな未知数α,β,γ,δ,εを含むとともに6つの未知数a,b,c,p,q,rのいずれも含まない5つの1次方程式からなる連立1次方程式に帰着させて当該連立1次方程式を解く処理を行う。
【0224】
また、例えば、連立方程式計算部123は、連立1次方程式の係数行列がその対角要素の絶対値が対角要素でない他のすべての要素の絶対値よりも大きくなるように連立1次方程式を作成するようにしてもよい。
【0225】
また、例えば、連立方程式計算部123は、加速度センサ210の検出情報に基づく6組の加速度情報の中で第1の検出軸方向(例えばx軸方向)の値が最大及び最小の2つの加速度情報を楕円体の方程式の変数にそれぞれ代入して得られた2つの2次方程式の一方から他方を減算して得られる多項式に基づいて1次方程式の1つを作成し、前記6組の加速度情報の中で第2の検出軸方向(例えばy軸方向)の値が最大及び最小の2つの加速度情報を楕円体の方程式の変数にそれぞれ代入して得られた2つの2次方程式の一方から他方を減算して得られる多項式に基づいて1次方程式の他の1つを作成し、前記6組の加速度情報の中で第3の検出軸方向(例えばz軸方向)の値が最大及び最小の2つの加速度情報を楕円体の方程式の変数にそれぞれ代入して得られた2つの2次方程式の一方から他方を減算して得られる多項式に基づいて1次方程式の他の1つを作成するようにしてもよい。
【0226】
また、例えば、連立方程式計算部123は、連立2次方程式の任意の2つの2次方程式を演算して得られる多項式又は当該多項式を変形した多項式の各項に含まれる、6つの未知数a,b,c,p,q,rから構成される式又は当該式を実数倍した式を5つの新たな未知数α,β,γ,δ,εと対応させて連立1次方程式を作成するようにしてもよい。
【0227】
また、例えば、連立方程式計算部123は、加速度センサ210の3つの検出軸(x軸、y軸、z軸)で作られる3次元空間において互いに直交する所定の3つの軸(ξ軸、邇イ、謗イ)がそれぞれ重力方向の逆方向(真上方向)又はその近傍を向く状態で得られる3組の検出情報に基づく3組の加速度情報と、前記所定の3つの軸(ξ軸、邇イ、謗イ)がそれぞれ重力方向(真下方向)又はその近傍を向く状態で得られる3組の検出情報に基づく3組の加速度情報と、を用いて連立2次方程式を作成するようにしてもよい。
【0228】
加速度誤差計算部124は、連立方程式計算部123により得られた5つの新たな未知数α,β,γ,δ,εの値から6つの未知数a,b,c,p,q,rの値を計算し、計算結果に基づいて加速度センサ210の3つの検出軸方向(x軸方向、y軸方向、z軸方向)のオフセット誤差情報及び感度誤差情報を計算する処理を行う。
【0229】
加速度誤差設定部125は、加速度誤差計算部124が計算したオフセット誤差情報及び感度誤差情報を記憶部170に記憶させる処理を行う。
【0230】
なお、加速度誤差測定部120は、ゲームプログラムの起動時又は加速度誤差測定イベントが発生した場合に、加速度センサ210の検出情報を取得してオフセット誤差情報及び感度誤差情報の計算を行い、計算したオフセット誤差情報及び感度誤差情報を記憶部170に記憶させる一連の処理を行うようにしてもよい。この場合、例えば、加速度センサ210の誤差情報を測定して記憶部170に記憶させるためのモード(加速度誤差情報設定モード)が設定された場合に、加速度誤差測定イベントが発生するようにしてもよい。そして、プレイヤが所定の操作入力を行うことにより、自発的に加速度誤差情報設定モードに設定してもよいし、処理部110が所定の条件が成立するか否かを判定して加速度誤差情報設定モードに設定するか否かを決定するようにしてもよい。
【0231】
ゲーム演算部130は、キャラクタ(プレイヤキャラクタ、敵キャラクタ)、移動体(車、飛行機など)、建物、樹木、柱、壁、マップ(地形)などの表示物を表す各種オブジェクト(ポリゴン、自由曲面又はサブディビジョンサーフェスなどのプリミティブで構成されるオブジェクト)をオブジェクト空間に配置設定する処理を行う。即ちワールド座標系でのオブジェクトの位置や回転角度(向き、方向と同義)を決定し、その位置(X、Y、Z)にその回転角度(X、Y、Z軸回りでの回転角度)でオブジェクトを配置する。
【0232】
また、ゲーム演算部130は、オブジェクト空間内の所与(任意)の視点から見える画像を生成するための仮想カメラ(視点)の制御処理を行う。具体的には、仮想カメラの位置(X、Y、Z)又は回転角度(X、Y、Z軸回りでの回転角度)を制御する処理(視点位置、視線方向あるいは画角を制御する処理)を行う。
【0233】
例えば、仮想カメラによりオブジェクト(例えば、キャラクタ等)を後方から撮影する場合には、オブジェクトの位置又は回転の変化に仮想カメラが追従するように、仮想カメラの位置又は回転角度(仮想カメラの向き)を制御する。この場合には、オブジェクトの位置、回転角度又は速度などの情報に基づいて、仮想カメラを制御できる。或いは、仮想カメラを、予め決められた回転角度で回転させたり、予め決められた移動経路で移動させる制御を行ってもよい。この場合には、仮想カメラの位置(移動経路)又は回転角度を特定するための仮想カメラデータに基づいて仮想カメラを制御する。なお、仮想カメラ(視点)が複数存在する場合には、それぞれの仮想カメラについて上記の制御処理が行われる。
【0234】
また、ゲーム演算部130は、モデル(キャラクタ、車、飛行機等)の移動・動作演算(移動・動作シミュレーション)を行う。すなわち、プログラム(移動・動作アルゴリズム)や、モーションデータなどに基づいて、モデルをオブジェクト空間内で移動させたり、オブジェクトを動作(モーション、アニメーション)させたりする処理を行う。具体的には、オブジェクトの移動情報(位置、回転角度、速度、或いは加速度)や動作情報(オブジェクトを構成する各パーツの位置、或いは回転角度)を、1フレーム(1/60秒)毎に順次求めるシミュレーション処理を行う。なおフレームは、オブジェクトの移動・動作処理(シミュレーション処理)や画像生成処理を行う時間の単位である。
【0235】
描画部140は、処理部110で行われる種々の処理(ゲーム演算処理)の結果に基づいて描画処理を行い、これにより画像を生成し、表示部190に出力する。いわゆる3次元ゲーム画像を生成する場合には、まず表示物(オブジェクト、モデル)を定義する各頂点の頂点データ(頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等)を含む表示物データ(オブジェクトデータ、モデルデータ)が入力され、入力された表示物データに含まれる頂点データに基づいて、頂点処理が行われる。なお頂点処理を行うに際して、必要に応じてポリゴンを再分割するための頂点生成処理(テッセレーション、曲面分割、ポリゴン分割)を行うようにしてもよい。頂点処理では、頂点の移動処理や、座標変換(ワールド座標変換、カメラ座標変換)、クリッピング処理、透視変換、あるいは光源処理等のジオメトリ処理が行われ、その処理結果に基づいて、表示物を構成する頂点群について与えられた頂点データを変更(更新、調整)する。そして、頂点処理後の頂点データに基づいてラスタライズ(走査変換)が行われ、ポリゴン(プリミティブ)の面とピクセルとが対応づけられる。そしてラスタライズに続いて、画像を構成するピクセル(表示画面を構成するフラグメント)を描画するピクセル処理(フラグメント処理)が行われる。ピクセル処理では、テクスチャの読出し(テクスチャマッピング)、色データの設定/変更、半透明合成、アンチエイリアス等の各種処理を行って、画像を構成するピクセルの最終的な描画色を決定し、透視変換されたオブジェクトの描画色を描画バッファ176(ピクセル単位で画像情報を記憶できるバッファ。VRAM、レンダリングターゲット)に出力(描画)する。すなわち、ピクセル処理では、画像情報(色、法線、輝度、α値等)をピクセル単位で設定あるいは変更するパーピクセル処理を行う。これにより、オブジェクト空間内に設定された仮想カメラ(所与の視点)から見える画像が生成される。なお、仮想カメラ(視点)が複数存在する場合には、それぞれの仮想カメラから見える画像を分割画像として1画面に表示できるように画像を生成することができる。
【0236】
なお描画部140が行う頂点処理やピクセル処理は、シェーディング言語によって記述されたシェーダプログラムによって、ポリゴン(プリミティブ)の描画処理をプログラム可能にするハードウェア、いわゆるプログラマブルシェーダ(頂点シェーダやピクセルシェーダ)により実現されてもよい。プログラマブルシェーダでは、頂点単位の処理やピクセル単位の処理がプログラム可能になることで描画処理内容の自由度が高く、ハードウェアによる固定的な描画処理に比べて表現力を大幅に向上させることができる。
【0237】
そして描画部140は、表示物を描画する際に、ジオメトリ処理、テクスチャマッピング、隠面消去処理、αブレンディング等を行う。
【0238】
ジオメトリ処理では、表示物に関して、座標変換、クリッピング処理、透視投影変換、或いは光源計算等の処理が行われる。そして、ジオメトリ処理後(透視投影変換後)の表示物データ(表示物の頂点の位置座標、テクスチャ座標、色データ(輝度データ)、法線ベクトル、或いはα値等)は、主記憶部172に保存される。
【0239】
テクスチャマッピングは、記憶部170に記憶されるテクスチャ(テクセル値)を表示物にマッピングするための処理である。具体的には、表示物の頂点に設定(付与)されるテクスチャ座標等を用いて記憶部170からテクスチャ(色(RGB)、α値などの表面プロパティ)を読み出す。そして、2次元の画像であるテクスチャを表示物にマッピングする。この場合に、ピクセルとテクセルとを対応づける処理や、テクセルの補間としてバイリニア補間などを行う。
【0240】
隠面消去処理としては、描画ピクセルのZ値(奥行き情報)が格納されるZバッファ(奥行きバッファ)を用いたZバッファ法(奥行き比較法、Zテスト)による隠面消去処理を行うことができる。すなわちオブジェクトのプリミティブに対応する描画ピクセルを描画する際に、Zバッファに格納されるZ値を参照する。そして参照されたZバッファのZ値と、プリミティブの描画ピクセルでのZ値とを比較し、描画ピクセルでのZ値が、仮想カメラから見て手前側となるZ値(例えば小さなZ値)である場合には、その描画ピクセルの描画処理を行うとともにZバッファのZ値を新たなZ値に更新する。
【0241】
αブレンディング(α合成)は、α値(A値)に基づく半透明合成処理(通常αブレンディング、加算αブレンディング又は減算αブレンディング等)のことである。例えば、通常αブレンディングでは、α値を合成の強さとして線形補間を行うことにより2つの色を合成した色を求める処理を行う。
【0242】
なお、α値は、各ピクセル(テクセル、ドット)に関連づけて記憶できる情報であり、例えばRGBの各色成分の輝度を表す色情報以外のプラスアルファの情報である。α値は、マスク情報、半透明度(透明度、不透明度と等価)、バンプ情報などとして使用できる。
【0243】
音制御部150は、処理部110で行われる種々の処理(ゲーム演算処理等)の結果に基づいて音データ記憶部176に記憶されている音(確認音、効果音を含む)を、入力装置のスピーカ230及びスピーカ192の少なくとも一方から出力させる処理を行う。
【0244】
振動制御部160は、入力装置に設けられた振動部240に振動させる処理を行う。
【0245】
なお、本実施形態のゲームシステムは、1人のプレイヤのみがプレイできるシングルプレイヤモード専用のシステムにしてもよいし、複数のプレイヤがプレイできるマルチプレイヤモードも備えるシステムにしてもよい。また複数のプレイヤがプレイする場合に、これらの複数のプレイヤに提供するゲーム画像やゲーム音を、1つの本体装置、表示部を用いて生成してもよい。また、ネットワーク(伝送ライン、通信回線)などで接続された複数のゲーム装置を用いて分散処理により生成してもよい。また、本実施形態は、複数のプレイヤでゲームを行う場合には、複数のプレイヤの入力装置毎に、検出情報に基づいて所定条件を満たすか否かの判定や、判定結果に基づく音制御や、振動制御を行う。
【0246】
2−2.本実施形態の具体的な処理
次に、本実施形態のゲームシステムの処理例について図19のフローチャートを用いて説明する。
【0247】
ゲームプログラムが起動すると、本体装置100は、まず、加速度誤差情報設定モードか否かを判定する(ステップS300)。
【0248】
加速度誤差情報設定モードである場合(ステップS300でNoの場合)、本体装置100は、表示部190を介して、プレイヤに対して入力装置200を第1の姿勢で固定するように指示する表示を行う(ステップS310)。第1の姿勢はあらかじめ決められた所定の姿勢であり、例えば、ξ軸(x軸と一致してもよい)が真上方向又はその近傍を向くような姿勢である。プレイヤが補助具などを使用して入力装置200を第1の姿勢に固定すると、本体装置100は加速度センサ210の検出情報を取得し、1組目の加速度情報(x,y,z)を生成する(ステップS320)。ステップS320の処理は、例えば、図16のフローチャートに示した処理と同様であってもよい。
【0249】
次に、本体装置100は、表示部190を介して、プレイヤに対して入力装置200を第2の姿勢で固定するように指示する表示を行う(ステップS330)。第2の姿勢はあらかじめ決められた姿勢であり、例えば、ξ軸(x軸と一致してもよい)が真下方向又はその近傍を向くような姿勢である。プレイヤが入力装置200を第2の姿勢に固定すると、本体装置100は加速度センサ210の検出情報を取得し、2組目の加速度情報(x,y,z)を生成する(ステップS340)。ステップS340の処理は、例えば、図16のフローチャートに示した処理と同様であってもよい。
【0250】
次に、本体装置100は、表示部190を介して、プレイヤに対して入力装置200を第3の姿勢で固定するように指示する表示を行う(ステップS350)。第3の姿勢はあらかじめ決められた姿勢であり、例えば、邇イ(y軸と一致してもよい)が真上方向又はその近傍を向くような姿勢である。プレイヤが入力装置200を第3の姿勢に固定すると、本体装置100は加速度センサ210の検出情報を取得し、3組目の加速度情報(x,y,z)を生成する(ステップS360)。ステップS360の処理は、例えば、図16のフローチャートに示した処理と同様であってもよい。
【0251】
次に、本体装置100は、表示部190を介して、プレイヤに対して入力装置200を第4の姿勢で固定するように指示する表示を行う(ステップS370)。第4の姿勢はあらかじめ決められた姿勢であり、例えば、邇イ(y軸と一致してもよい)が真下方向又はその近傍を向くような姿勢である。プレイヤが入力装置200を第4の姿勢に固定すると、本体装置100は加速度センサ210の検出情報を取得し、4組目の加速度情報(x,y,z)を生成する(ステップS380)。ステップS380の処理は、例えば、図16のフローチャートに示した処理と同様であってもよい。
【0252】
次に、本体装置100は、表示部190を介して、プレイヤに対して入力装置200を第5の姿勢で固定するように指示する表示を行う(ステップS390)。第5の姿勢はあらかじめ決められた姿勢であり、例えば、謗イ(z軸と一致してもよい)が真上方向又はその近傍を向くような姿勢である。プレイヤが入力装置200を第5の姿勢に固定すると、本体装置100は加速度センサ210の検出情報を取得し、5組目の加速度情報(x,y,z)を生成する(ステップS400)。ステップS400の処理は、例えば、図16のフローチャートに示した処理と同様であってもよい。
【0253】
次に、本体装置100は、表示部190を介して、プレイヤに対して入力装置200を第6の姿勢で固定するように指示する表示を行う(ステップS410)。第6の姿勢はあらかじめ決められた姿勢であり、例えば、謗イ(z軸と一致してもよい)が真下方向又はその近傍を向くような姿勢である。プレイヤが入力装置200を第6の姿勢に固定すると、本体装置100は加速度センサ210の検出情報を取得し、6組目の加速度情報(x,y,z)を生成する(ステップS420)。ステップS420の処理は、例えば、図16のフローチャートに示した処理と同様であってもよい。
【0254】
次に、本体装置100は、ステップS310〜S320で生成した6組の加速度情報(x,y,z)〜(x,y,z)を用いて、加速度センサ210の3つの検出軸方向のオフセット誤差情報及び感度誤差情報を計算する(ステップS430)。ステップS430の処理は、例えば、図15のフローチャートに示した処理と同様であってもよい。
【0255】
次に、本体装置100は、ステップS430で計算した、加速度センサ210の3つの検出軸方向のオフセット誤差情報及び感度誤差情報を記憶部170に記憶する(ステップS440)。ここで、本体装置100は、ゲームプログラムの次回の起動時においてもこのオフセット誤差情報及び感度誤差情報を使用するために、情報記憶媒体180に書き込むようにしてもよい。
【0256】
そして、本体装置100は、ゲーム演算を開始し、記憶部170に記憶されたオフセット誤差情報及び感度誤差情報に基づいて、取得した加速度センサ210の検出情報を補正しながらゲーム演算を行う(ステップS450)。
【0257】
一方、ステップS300において、加速度誤差情報設定モードでない場合(ステップS300でNoの場合)、本体装置100は、入力装置2に対応づけてあらかじめ定義された加速度センサ210のオフセット誤差情報及び感度誤差情報に基づいて、取得した加速度センサ210の検出情報を補正しながらゲーム演算を行う(ステップS450)。また、本体装置100は、過去にステップS310〜S440の処理を行い情報記憶媒体180にオフセット誤差情報及び感度誤差情報が記憶されている場合には、情報記憶媒体180からオフセット誤差情報及び感度誤差情報を読み出して記憶部170に書き込み、取得した加速度センサ210の検出情報の補正を行うようにしてもよい。
【0258】
なお、スタート直後(ステップS300の直前)に加速度誤差情報設定モードが設定されるようにすれば、ゲームプログラムが起動する度に、最新のオフセット誤差情報及び感度誤差情報を用いて加速度センサ210の検出情報を補正することができる。こうすれば、例えば、ゲームプログラム起動時の温度やノイズの影響も考慮した補正を行うことができる。また、オフセット誤差情報及び感度誤差情報が情報記憶媒体180に記憶されていない場合や情報記憶媒体180に記憶されてから所定時間以上経過している場合等に加速度誤差情報設定モードが設定されるようにすれば、ゲームプログラム起動時に、プレイヤが入力装置を所定の姿勢に固定する操作を毎回行う手間を省くことができる。
【0259】
このように、本実施形態のゲームシステムによれば、ゲーム演算を開始する前に、加速度センサ210の向きに関係なく得られた検出情報に基づきオフセット誤差及び感度誤差を計算することができる。従って、加速度センサ210のオフセット誤差及び感度誤差を測定するために、プレイヤが加速度センサ210の各検出軸が正確に上向き及び下向きになるように入力装置200を保持する煩わしさがなくなる。
【0260】
そして、本実施形態において、アプリケーション(ゲームプログラム)に加速度センサ210の誤差測定プログラムを組み込んでおき、アプリケーションの起動時に加速度センサ210のオフセット誤差及び感度誤差を測定すれば、当該アプリケーションは加速度センサ210の検出情報を補正することによってオフセット誤差及び感度誤差の影響を受けずに、プレイヤの入力操作をより正確に反映したゲーム演算を行うことができる。
【0261】
なお、本発明は本実施形態に限定されず、本発明の要旨の範囲内で種々の変形実施が可能である。
【0262】
本発明は、実施の形態で説明した構成と実質的に同一の構成(例えば、機能、方法及び結果が同一の構成、あるいは目的及び効果が同一の構成)を含む。また、本発明は、実施の形態で説明した構成の本質的でない部分を置き換えた構成を含む。また、本発明は、実施の形態で説明した構成と同一の作用効果を奏する構成又は同一の目的を達成することができる構成を含む。また、本発明は、実施の形態で説明した構成に公知技術を付加した構成を含む。
【符号の説明】
【0263】
1 加速度誤差測定装置、2 測定対象装置、10 処理部、11 加速度情報生成部、12 連立方程式作成部、13 連立方程式計算部、14 加速度誤差計算部、15 表示制御部、16 音出力制御部、20 加速度センサ、22 マイコン、24 通信部、30 記憶部、32 操作部、34 表示部、36 情報記憶媒体、38 通信部、40 音出力部、100 本体装置、110 処理部、120 加速度誤差測定部、121 加速度情報生成部、122 連立方程式作成部、123 連立方程式計算部、124 加速度誤差計算部、125 加速度誤差設定部、130 ゲーム演算部、140 描画部、150 音制御部、160 振動制御部、170 記憶部、172 主記憶部、174 描画バッファ、176 音データ記憶部、180 情報記憶媒体、190 表示部、192 スピーカ、196 通信部、198 光源、200 入力装置、210 加速度センサ、220 撮像部、222 赤外線フィルタ、224 レンズ、226 撮像素子、228 画像処理回路、230 スピーカ、240 振動部、250 マイコン、260 通信部、270 操作部

【特許請求の範囲】
【請求項1】
加速度センサのオフセット誤差情報及び感度誤差情報を計算するプログラムであって、
前記加速度センサの互いに直交する3つの検出軸方向の各感度及び各オフセットに対応した6つのパラメータを含む楕円体の方程式の変数に、前記加速度センサの検出情報に基づく6組の加速度情報を代入し、前記6つのパラメータを未知数とする6つの2次方程式からなる連立2次方程式を作成する連立方程式作成部と、
前記連立2次方程式を、前記6つの未知数の少なくとも1つを含む式でそれぞれ表される5つの新たな未知数を含むとともに前記6つの未知数のいずれも含まない5つの1次方程式からなる連立1次方程式に帰着させて当該連立1次方程式を解く連立方程式計算部と、
前記5つの新たな未知数の値から前記6つの未知数の値を計算し、計算結果に基づいて前記加速度センサの前記3つの検出軸方向のオフセット誤差情報及び感度誤差情報を計算する加速度誤差計算部として、コンピュータを機能させる、プログラム。
【請求項2】
請求項1において、
前記連立方程式計算部は、
前記連立1次方程式の係数行列がその対角要素の絶対値が対角要素でない他のすべての要素の絶対値よりも大きくなるように前記連立1次方程式を作成する、プログラム。
【請求項3】
請求項1又は2において、
前記連立方程式計算部は、
前記6組の加速度情報の中で第1の検出軸方向の値が最大及び最小の2つの前記加速度情報を前記楕円体の方程式の変数にそれぞれ代入して得られた2つの2次方程式の一方から他方を減算して得られる多項式に基づいて前記1次方程式の1つを作成し、前記6組の加速度情報の中で第2の検出軸方向の値が最大及び最小の2つの前記加速度情報を前記楕円体の方程式の変数にそれぞれ代入して得られた2つの2次方程式の一方から他方を減算して得られる多項式に基づいて前記1次方程式の他の1つを作成し、前記6組の加速度情報の中で第3の検出軸方向の値が最大及び最小の2つの前記加速度情報を前記楕円体の方程式の変数にそれぞれ代入して得られた2つの2次方程式の一方から他方を減算して得られる多項式に基づいて前記1次方程式の他の1つを作成する、プログラム。
【請求項4】
請求項1乃至3のいずれかにおいて、
前記連立方程式計算部は、
前記連立2次方程式の任意の2つの2次方程式を演算して得られる多項式又は当該多項式を変形した多項式の各項に含まれる、前記6つの未知数から構成される式又は当該式を実数倍した式を前記5つの新たな未知数と対応させて前記連立1次方程式を作成する、プログラム。
【請求項5】
請求項1乃至4のいずれかにおいて、
前記連立方程式計算部は、
前記加速度センサの3つの検出軸で作られる3次元空間において互いに直交する所定の3つの軸がそれぞれ重力方向の逆方向又はその近傍を向く状態で得られる3組の前記検出情報に基づく3組の前記加速度情報と、前記前記所定の3つの軸がそれぞれ重力方向又はその近傍を向く状態で得られる3組の前記検出情報に基づく3組の前記加速度情報と、を用いて前記連立2次方程式を作成する、プログラム。
【請求項6】
請求項1乃至5のいずれかにおいて、
前記連立方程式作成部は、
前記加速度センサの3つの検出軸をx軸、y軸、z軸とし、前記6つのパラメータのうち、前記加速度センサのx軸方向、y軸方向、z軸方向の感度のパラメータをそれぞれa,b,c、前記加速度センサのx軸方向、y軸方向、z軸方向のオフセットのパラメータをぞれぞれp,q,rとした時、前記楕円体の方程式として方程式{(x−p)/a}+{(y−q)/b}+{(z−r)/c}=1を用いる、プログラム。
【請求項7】
請求項1乃至6のいずれかにおいて、
前記加速度センサの前記検出情報を取得し、取得した前記検出情報に基づいて前記加速度情報を生成する加速度情報生成部を含む、プログラム。
【請求項8】
請求項7において、
前記加速度情報生成部は、
前記検出情報に基づいて、前記加速度センサの運動による加速度が無視できる状態であるか否かを判定し、前記加速度センサの運動による加速度が無視できる状態での前記検出情報に基づいて、前記加速度情報を生成する、プログラム。
【請求項9】
請求項8において、
前記加速度情報生成部は、
前記検出情報の変動幅が所定の条件を満たす状態が所定時間持続すれば前記加速度センサの運動による加速度が無視できる状態であると判定する、プログラム。
【請求項10】
請求項9において、
前記加速度情報生成部は、
前記所定時間に取得した複数の前記検出情報に基づいて前記加速度情報を生成する、プログラム。
【請求項11】
コンピュータに読み取り可能な情報記憶媒体であって、請求項1乃至9のいずれかに記載のプログラムを記憶している、情報記憶媒体。
【請求項12】
加速度センサのオフセット誤差情報及び感度誤差情報を計算する加速度センサの誤差測定方法であって、
前記加速度センサの互いに直交する3つの検出軸で作られる3次元空間において互いに直交する所定の3つの軸のうちの第1の軸が重力方向の逆方向又はその近傍を向く状態で前記加速度センサの検出情報を取得し、当該検出情報に基づいて第1の加速度情報を生成する第1の加速度情報生成ステップと、
前記第1の軸が重力方向又はその近傍を向く状態で前記加速度センサの検出情報を取得し、当該検出情報に基づいて第2の加速度情報を生成する第2の加速度情報生成ステップと、
前記所定の3つの軸のうちの第2の軸が重力方向の逆方向又はその近傍を向く状態で前記加速度センサの検出情報を取得し、当該検出情報に基づいて第3の加速度情報を生成する第3の加速度情報生成ステップと、
前記第2の軸が重力方向又はその近傍を向く状態で前記加速度センサの検出情報を取得し、当該検出情報に基づいて第4の加速度情報を生成する第4の加速度情報生成ステップと、
前記所定の3つの軸のうちの第3の軸が重力方向の逆方向又はその近傍を向く状態で前記加速度センサの検出情報を取得し、当該検出情報に基づいて第5の加速度情報を生成する第5の加速度情報生成ステップと、
前記第3の軸が重力方向又はその近傍を向く状態で前記加速度センサの検出情報を取得し、当該検出情報に基づいて第6の加速度情報を生成する第6の加速度情報生成ステップと、
前記加速度センサの3つの検出軸方向の各感度及び各オフセットに対応した6つのパラメータを含む楕円体の方程式の変数に、前記第1の加速度情報、前記第2の加速度情報、前記第3の加速度情報、前記第4の加速度情報、前記第5の加速度情報及び前記第6の加速度情報をそれぞれ代入し、前記6つのパラメータを未知数とする6つの2次方程式からなる連立2次方程式を作成する連立方程式作成ステップと、
前記連立2次方程式を、前記6つの未知数の少なくとも1つを含む式でそれぞれ表される5つの新たな未知数を含むとともに前記6つの未知数のいずれも含まない5つの1次方程式からなる連立1次方程式に帰着させて当該連立1次方程式を解く連立方程式計算ステップと、
前記5つの新たな未知数の値から前記6つの未知数の値を計算し、計算結果に基づいて前記加速度センサの前記3つの検出軸方向のオフセット誤差情報及び感度誤差情報を計算する誤差計算ステップと、を含む、加速度センサの誤差測定方法。
【請求項13】
加速度センサのオフセット誤差情報及び感度誤差情報を測定する加速度センサの誤差測定装置であって、
前記加速度センサの検出情報を取得し、取得した前記検出情報に基づいて6組の加速度情報を生成する加速度情報生成部と、
前記加速度センサの互いに直交する3つの検出軸方向の各感度及び各オフセットに対応した6つのパラメータを含む楕円体の方程式の変数に、前記6組の加速度情報を代入し、前記6つのパラメータを未知数とする6つの2次方程式からなる連立2次方程式を作成する連立方程式作成部と、
前記連立2次方程式を、前記6つの未知数の少なくとも1つを含む式でそれぞれ表される5つの新たな未知数を含むとともに前記6つの未知数のいずれも含まない5つの1次方程式からなる連立1次方程式に帰着させて当該連立1次方程式を解く連立方程式計算部と、
前記5つの新たな未知数の値から前記6つの未知数の値を計算し、計算結果に基づいて前記加速度センサの前記3つの検出軸方向のオフセット誤差情報及び感度誤差情報を計算する加速度誤差計算部と、を含む加速度センサの誤差測定装置。
【請求項14】
プレイヤの入力動作に応じて変化する加速度を検出する加速度センサを備えた入力装置から前記加速度センサの検出情報を取得してゲーム演算を行うゲームシステムであって、
前記加速度センサの前記検出情報に基づいて、前記加速度センサのオフセット誤差情報及び感度誤差情報を計算して記憶部に記憶させる加速度誤差測定部と、
前記記憶部に記憶された前記オフセット誤差情報及び前記感度誤差情報に基づいて、前記加速度センサの検出情報を補正してゲーム演算を行うゲーム演算部と、を含み、
前記加速度誤差測定部は、
前記入力装置から前記加速度センサの前記検出情報を取得し、取得した前記検出情報に基づいて6組の加速度情報を生成する加速度情報生成部と、
前記加速度センサの互いに直交する3つの検出軸方向の各感度及び各オフセットに対応した6つのパラメータを含む楕円体の方程式の変数に、前記6組の加速度情報を代入し、前記6つのパラメータを未知数とする6つの2次方程式からなる連立2次方程式を作成する連立方程式作成部と、
前記連立2次方程式を、前記6つの未知数の少なくとも1つを含む式でそれぞれ表される5つの新たな未知数を含むとともに前記6つの未知数のいずれも含まない5つの1次方程式からなる連立1次方程式に帰着させて当該連立1次方程式を解く連立方程式計算部と、
前記5つの新たな未知数の値から前記6つの未知数の値を計算し、計算結果に基づいて前記加速度センサの前記3つの検出軸方向のオフセット誤差情報及び感度誤差情報を計算する加速度誤差計算部と、
前記オフセット誤差情報及び前記感度誤差情報を前記記憶部に記憶させる加速度誤差設定部と、を含む、ゲームシステム。
【請求項15】
請求項14において、
前記加速度誤差測定部は、
ゲームプログラムの起動時又は加速度誤差測定イベントが発生した場合に、前記検出情報を取得して前記オフセット誤差情報及び前記感度誤差情報の計算を行い、計算した前記オフセット誤差情報及び前記感度誤差情報を前記記憶部に記憶させる、ゲームシステム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate