JP4873507B2 - ディジタルデータ補正プログラムおよびディジタルデータ補正装置 - Google Patents
ディジタルデータ補正プログラムおよびディジタルデータ補正装置 Download PDFInfo
- Publication number
- JP4873507B2 JP4873507B2 JP2009241175A JP2009241175A JP4873507B2 JP 4873507 B2 JP4873507 B2 JP 4873507B2 JP 2009241175 A JP2009241175 A JP 2009241175A JP 2009241175 A JP2009241175 A JP 2009241175A JP 4873507 B2 JP4873507 B2 JP 4873507B2
- Authority
- JP
- Japan
- Prior art keywords
- digital data
- data
- correction
- corrected
- value
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000012937 correction Methods 0.000 title claims description 89
- 239000000872 buffer Substances 0.000 claims description 93
- 238000004364 calculation method Methods 0.000 claims description 40
- 238000000034 method Methods 0.000 claims description 23
- 230000008569 process Effects 0.000 claims description 22
- 230000006870 function Effects 0.000 claims description 9
- 230000001133 acceleration Effects 0.000 description 38
- 238000012545 processing Methods 0.000 description 24
- 238000004891 communication Methods 0.000 description 21
- 230000008859 change Effects 0.000 description 20
- 230000033001 locomotion Effects 0.000 description 20
- 238000003384 imaging method Methods 0.000 description 13
- 239000003550 marker Substances 0.000 description 12
- 238000006243 chemical reaction Methods 0.000 description 11
- 230000003287 optical effect Effects 0.000 description 8
- 238000013500 data storage Methods 0.000 description 7
- 230000004044 response Effects 0.000 description 7
- 230000003068 static effect Effects 0.000 description 7
- 238000003860 storage Methods 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 230000009471 action Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 230000003247 decreasing effect Effects 0.000 description 3
- 230000001419 dependent effect Effects 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 2
- 230000008094 contradictory effect Effects 0.000 description 2
- 230000009191 jumping Effects 0.000 description 2
- 238000010137 moulding (plastic) Methods 0.000 description 2
- 238000004080 punching Methods 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 210000000078 claw Anatomy 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000007599 discharging Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000001771 impaired effect Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000003825 pressing Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 230000005236 sound signal Effects 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
Images
Landscapes
- Indication And Recording Devices For Special Purposes And Tariff Metering Devices (AREA)
- Gyroscopes (AREA)
Description
1に開示されている。
など他の規格に従って実行されてもよい。
ボタンないしスタートボタン38gが設けられる。一方、ハウジング36の下面には凹部が形成されており、当該凹部の後方側傾斜面にはBボタン38hが設けられる。これら各ボタン(スイッチ)38a‐38hには、ゲーム装置12が実行するゲームプログラムに応じてそれぞれ適宜な機能が割り当てられる。また、ハウジング36の上面には、遠隔からゲーム装置12本体の電源をオン/オフするための電源スイッチ38iが設けられる。リモコン32に設けられる各ボタン(スイッチ)を、包括的に参照符号38を用いて操作手段または入力手段として示すこともある。
画角を調整する等のゲームの操作に使用される。または、1ボタン38bおよび2ボタン38cは、Aボタン38dおよびBボタン38hと同じ操作或いは補助的な操作をする場合に用いるようにしてもよい。
タ50を挟んで横方向(X軸方向)に対向する位置に、1対のフック52が設けられている。ジャイロセンサユニット34をリモコン32に装着するべく、コネクタ50をコネクタ42に接続すると、1対のフック52はハウジング36後面の1対の孔44(図2(A))に挿入され、フック52の爪がハウジング36の内壁に引っ掛かる。これによって、ジャイロセンサユニット34は、リモコン32の後面に固定される。
作画命令)を受け、そのコマンドに従ってゲーム画像データを生成する。ただし、CPU
60は、グラフィクスコマンドに加えて、ゲーム画像データの生成に必要な画像生成プログラムをGPU62bに与える。
必要があるデータ(「送信データ」とする)の有無を検出し、当該送信データが有る場合には、無線通信モジュール70およびアンテナ70aを介してネットワークに送信する。また、入出力プロセッサ62aは、他のゲーム装置から送信されるデータ(「受信データ」とする)を、ネットワーク、アンテナ70aおよび無線通信モジュール70を介して受信し、当該受信データをフラッシュメモリ64に記憶する。ただし、受信データが一定の条件を満たさない場合には、当該受信データはそのまま破棄される。さらに、入出力プロセッサ62aは、ダウンロードサーバからダウンロードしたデータ(ダウンロードデータとする)をネットワーク、アンテナ70aおよび無線通信モジュール70を介して受信し、そのダウンロードデータをフラッシュメモリ64に記憶する。
ータを取得するだけでなく、ゲーム装置12からコントローラ14に所定の命令を送信し、コントローラ14の動作をゲーム装置12から制御することもできる。
イモードでは、このファンも停止される。
の搬送波をコントローラデータで変調し、その微弱電波信号をアンテナ94から放射する。つまり、コントローラデータは、無線モジュール92で微弱電波信号に変調されてリモコン32から送信される。微弱電波信号はゲーム装置12側の無線コントローラモジュール(Bluetooth通信ユニット)72で受信される。受信された微弱電波信号について復調
や復号を行うことによって、ゲーム装置12はコントローラデータを取得することができる。ゲーム装置12のCPU60は、コントローラ14から取得したコントローラデータに基づいてゲーム処理を行う。なお、リモコン32とゲーム装置12との無線通信は、無線LANなど他の規格に従って実行されてもよい。
密に言うと、プレイヤは、リモコン32の先端面(撮像情報演算部40が撮像する光の入射口36b側)がマーカ30aおよび30bの方を向く状態でリモコン32を把持する。ただし、図1からも分かるように、マーカ30aおよび30bは、モニタ26の画面の横方向と平行に配置されている。この状態で、プレイヤは、リモコン32が指示する画面上の位置を変更したり、リモコン32と各マーカ30aおよび30bとの距離を変更したりすることによってゲーム操作を行う。
たがって、任意の1/200秒間に、操作部38からの操作データと、撮像情報演算部40のからの位置座標データと、加速度センサ84からの加速度データと、ジャイロセンサ56からの角速度データとが、1回ずつ通信部86に出力される。
する。
ームメイン処理プログラム96a、画像生成プログラム96b、画像表示プログラム96c、角速度検出プログラム96dおよび加速度検出プログラム96eなどによって構成される。
角速度データ、加速度データ等のディジタルデータが格納される。
して説明する。図13に示すゲームメイン処理の最初のステップS1において、図11に
示すデータ記憶領域98のフラグレジスタ領域98dに設定されている修正オフセット値ofsを初期化する。修正オフセット値ofsは、温度ドリフト等により、ジャイロセンサ56から出力される角速度がゼロであることを示すアナログ値に対応付けられたディジタルの整数値データが、実際に速度がゼロであることを示すアナログ値を変換したディジタルの整数値データとの間に差異が生じた際に、その差異をなくす(減らす)ための補正に用いられるオフセット値(ゼロ点オフセット値)である。この初期化の際に格納される初期値(デバイス固有値)は、たとえば、ジャイロセンサユニット34に含まれる個々のジャイロセンサ56に固有のもので、ジャイロセンサ56の工場出荷時に設定されている。個々では、そのデバイス固有の初期値を修正オフセット値ofsとして設定する。たとえば、工
場で25°Cで計測した値が初期値となる。工場出荷後に、所定の方法により更新可能であってもよい。
ンデックスidxに「0」を設定する。ただし、この初期値は、「0」から「BUFS−1」の
範囲のどの値であってもよい。ここで、BUFSとは、FIFOバッファ100の大きさを示す数値であり、たとえばフラグレジスタ領域98dにバッファ容量BUFSとして記憶されている。たとえば、バッファ容量BUFSが「400」で設定された大きさのFIFOバッファ100であれば、バッファインデックスidxの初期値は「0」から「399(400−1
)」の範囲で設定される。
“NO”なら、ステップS14でオフセット補正フラグcfgを1に設定してステップS1
5に進む。オフセット補正フラグcfgとは、修正オフセット値ofsを補正する必要があるかどうかを示すフラグで、修正オフセット値ofsを補正する必要がない場合(等速操作を行
う可能性がある場合)は0が、修正オフセット値ofsを補正する必要がある場合(等速操
作を行う可能性がない場合)は1が設定される。
なったか、プレイヤがゲームを終了するようにリモコン32を操作したとき、ステップS15で“YES”となり、ゲームを終了する。ステップS15で“NO”なら、先のステップS7に戻って角速度データの取得およびゲーム処理等を引き続き行う。
リメントする(idx←(idx+1)%BUFS)。ここで、記号「%」は、剰余を示す演算子であり、モジュロ演算が行われる。たとえば、バッファ容量BUFSが「400」で設定された大きさのFIFOバッファ100で処理が行われていれば、バッファインデックスidxは「0」
から「399」の範囲を1ずつ増加するように更新(インクリメント)される。ただし、モジュロ演算が行われることにより、「399」は「0」に更新される。このように剰余を用いてバッファインデックスidxを更新している理由は、容量が予め定められたループ
バッファであるFIFOバッファ100に含まれる複数段の直列に接続されたデータバッファを順序立てて効率よく利用するために行うバッファインデックスidxの更新処理を効
率的に行う為である。
納する。
度データdataに格納した角速度データ(最新の角速度データ)と過去の角速度データ(FIFOバッファ100のデータバッファに格納された角速度データ)との比較処理の準備(変数やカウンタの初期化または設定)をこのステップS37で実行する。
まり、初期状態としてステップS33で角速度データdataに書き込んだ角速度データが合計値sumに格納される。そして、定数C1を用いて、安定範囲(下限)d1および安定範囲(
上限)d2(ともにフラグレジスタ領域98dに形成される。)を設定する。つまり、安定範囲(下限)d1に下限値data-C1を設定し、安定範囲(上限)d2に上限値data+C1を設定する。なお、安定範囲(下限)d1および安定範囲(上限)d2にそれぞれ設定する下限値および上限値によって、先のステップS33で書き込んだ角速度データdataを中心として上下均等な範囲(上下C1分の幅)を設定することになる。他の例では、定数C1は変数として、角速度データdataや連続個数ct等に応じて変化させても良いし、その他の状況に応じて変化させても良い。
ァインデックスidxで示される位置のFIFOバッファ100のデータバッファから遡っ
て調べるデータバッファの位置を指定するための値であって、フラグレジスタ領域98dに設定されている。そして、この変数iを「1」ずつ減らす方向にずらして((idx-1+BUFS)%BUFS))、その変数が指定するデータバッファ内の値を調べ、変数iが変数i2になったとき、その遡り検索を終了する。ただし、変数i2は(idx-CMAX+BUFS)%BUFSで示される。ここで、最大検索数CMAXで示す数値は、最大何個のデータを遡って調べるかを示す数値である。つまり、最大検索数CMAX分の検索を行った際に、変数iがずらされた位置を示す値が変
数i2となる。したがって、バッファ容量BUFSはこの最大検索数CMAXより大きくなければならない(BUFS≧CMAX)。たとえば、最大検索数CMAXはCMAX=400が設定される。このように剰余を用いて変数iおよび変数i2を設定している理由は、バッファインデックスidxを更新する際に剰余を用いている理由と同じである。また、変数iを設定する際にバッファ容量BUFSを加算している(+BUFS)理由は、バッファインデックスidxが0の場合には「idx-1」
がマイナス(−)になってしまい、マイナスの値に対してモジュロ演算を行うと正しい計算結果を得ることができないためである。
内の値が、安定範囲(下限)d1および安定範囲(上限)d2で設定された安定範囲内にあるかどうかを判断する(d1≦buf[i]≦d2)。もし、ステップS39で“YES”が判断され
るとき、つまり、変数iで指定されるデータバッファ内の値が安定範囲(下限)d1および
安定範囲(上限)d2で設定された安定範囲内に含まれる(角速度データdataに近い値である)ときは、続くステップS41において、上記安定範囲内に含まれる値つまり、その変数iで指定されるデータバッファ内の値を合計値sumに加算する。つまり、変数iで指定さ
れるデータバッファ内の値が上記安定範囲の条件(安定範囲(下限)d1および安定範囲(上限)d2で設定された安定範囲内に含まれる)を満たすときは、そのデータバッファの値によって合計値を更新する。その後、ステップS43において、連続個数ctをインクリメントする。これにより、上記安定範囲の条件を連続して満たすデータバッファの個数が連続個数ctによってカウントされる。さらにこのステップS43においては、上記変数iを
「1」減らす方向にずらして更新する(i←(i-1+BUFS)%BUFS))。変数iを更新する際にバッファ容量BUFSを加算している(+BUFS)理由は、ステップS37で変数iの設定を行う時
と同様の理由である。そして、ステップS45において、最大検索数CMAX分の検索を行ったかどうかを判断する。すなわち、変数iが更新されて、変数i2に達したかどうかを判断
している。ここで、最大検索数CMAX分の検索を行っていれば“YES”が判断され、ステップS47に進む。一方、最大検索数CMAX分の検索を行っていなければ“NO”が判断され、その場合には、先のステップS39に戻って検索を継続する。
が格納され、合計値sumには、そのデータバッファ内の値の合計値が格納されていること
になる。つまり、ステップS35で角速度データ書き込んだデータバッファの位置から遡って、新しいデータバッファから古いデータバッファへ順に、連続して上記安定範囲内(d1≦buf[i]≦d2)に含まれるデータバッファを繰り返し取得して、その個数(連続個数ct
)及び合計値(合計値sum)を算出する(ただし、検索する上限数は最大検索数CMAX)。
ち角速度データdataが格納されたデータバッファから遡って連続して最大検索数CMAX分のデータバッファの値がすべて安定範囲(下限)d1および安定範囲(上限)d2で設定された範囲内に入っていたとき(ステップS45で“YES”が判断されたとき)、最大値「1」になるようにして正規化している。
で決まる。たとえば、最大検索数CMAXが400のときに399個目のデータでステップS39にて“NO”に分岐した場合(ct=399)は、静止具合値aは399/400になる。また、最大検索数CMAXが400のときに1個目のデータでステップS39にて“NO”に分岐した場合(ct=1)は、静止具合値aは1/400になる。つまり、静止具合値aは
、角速度データdataが格納されたデータバッファから遡って連続してどれくらい前までデータバッファの値が上記安定所定範囲内に収まっていたか(安定していたか)を示す指標である。
たとき、つまりステップS39で“YES”と判断される回数(連続個数ctの値)が多い(大きい)ときと少ない(小さい)ときとの差を大きくする。すなわち、静止具合値aを
そのまま使うと連続個数ctに比例するだけであるが、べき乗たとえば、k乗することによ
って、連続個数ctに対して累乗的に静止具合値aが変化するように設定でき、連続個数ct
を用いた処理を行う場合に、連続個数ctが大きいときと小さいときとの差を明確に出すことができる。実施例では、k=32に設定した。ただし、k=1の時ように、静止具合値aが
連続個数ctに比例するような値であっても実施可能である。さらに他の例では、kを変数
として、角速度データdataや連続個数ct等に応じて変化させても良いし、その他の状況に応じて変化させても良い。
、角速度データdataの補正を行う(data←data+(sum÷ct-data)×a)。つまり、合計値sumに格納している合計値を連続個数ctで割り、その商から角速度データdataを減じ、その
結果に静止具合値aを乗算して角速度データdataに加算する。このことは換言すれば、静
止具合値aの値に応じて、角速度データdataを採用するか平均値(sum÷ct)を採用するかの重み付けが決まるということである。したがって、静止具合値aが大きければ大きいほ
ど平均値の重みが重くなるように(平均値の影響が大きくなるように)、平均値と角速度データdataの加重平均値が算出される。また、静止具合値aが小さければ小さいほど角速
度データdataの重みが重くなるように(角速度データdataの影響が大きくなるように)、平均値と角速度データdataの加重平均値が算出される。この算出された加重平均値で角速度データdataが補正される。つまり、静止具合値aが大きければ大きいほど、すなわち、リモコン32すなわちジャイロセンサユニット34の動きの変化が少ない(安定している)期間が長ければ長いほど、平均値の重みが重くなる(平均値の影響が大きくなる)ので
、角速度データdataは、精度が高く、ぶれを抑えた滑らかな信頼度の高い値に補正される。また、静止具合値aが小さければ小さいほど、すなわち、リモコン32すなわちジャイロセンサユニット34に変化が大きい(速度変化が大きい)動きが与えられた際には、角速度データdataの重みが重くなる(角速度データdataの影響が大きくなる)ので、角速度データdataは、変化の大きい動きを迅速に反映するような追従性の高い(レスポンスのよい)値に補正される。
るが、ステップS39において、角速度データdataが格納されたデータバッファから遡って連続して安定範囲(下限)d1および安定範囲(上限)d2で設定された安定範囲内に収まると判断されたデータバッファのみが、連続個数ctと合計値sumに影響を与え、変化の大
きい動きが行われた際のデータは影響を与えにくい為、常に静止具合値aを1として、す
なわち角速度データdataに平均値(sum÷ct)を代入することにより、角速度データdata
の補正を行っても良い。更には、静止具合値aに対して所定の閾値を設けて、静止具合値aが所定の閾値を上回ったときのみ、ステップS49による補正を行ったり、逆に静止具合値aが所定の閾値を下回ったときのみ、ステップS49による補正を行ったりしてもよい
。
タdataと平均値データとの加重平均が算出されるので、連続している度合い(静止具合値a)が大きいときには平均値データが重い重み付けで採用される(平均値の影響が大きく
なる)ために、精度が高く、ぶれを抑えた滑らかな信頼度の高い角速度データdataが得られる。逆に、連続している度合い(静止具合値a)が小さいときには角速度データdataが
重い重み付けで採用される(角速度データdataの影響が大きくなる)ために、たとえば急激な変動が生じている場合には、角速度データdataはその変動を迅速に反映するように補正されるので、変化の大きい動きを迅速に反映するような追従性の高い(レスポンスのよい)角速度データdataが得られる。
いながらも、機敏な反応が求められるときには、変化の大きい動きを迅速に反映するような追従性の高い(レスポンスのよい)ディジタルデータ(出力データ)が得られ、二律背
反的な要求に効果的に応えることができる。
センサユニット34の動きの変化が少ない(安定している)期間が長ければ長いほど)、ジャイロセンサ56から出力される角速度におけるゼロ点のオフセットとして用いている修正オフセット値ofsを、ステップS49で補正された角速度データdataに近づける補正
も行うことで、温度ドリフトによりゼロ点のずれを軽減することができる。
。具体的には、図13のステップS11において、ゲーム処理中に、リモコン32すなわちジャイロセンサユニット34を等速で移動させる操作を行う可能性がある場面かどうかを判断した結果に基づき、図13のステップS13または図13のステップS14でセット(リセット)されたオフセット補正フラグcfgに基づいて判定する。オフセット補正フ
ラグcfgが1、すなわち、図13のステップS11で“NO”に分岐し、ステップS14
でオフセット補正フラグcfgを1に設定した場合であり、リモコン32すなわちジャイロ
センサユニット34を等速で移動させる操作を行う可能性がない場合には、ステップS53で修正オフセット値ofsの補正を行う。また、オフセット補正フラグcfgが0、すなわち、図13のステップS11で“YES”に分岐し、ステップS13でオフセット補正フラグcfgを0に設定した場合であり、リモコン32すなわちジャイロセンサユニット34を
等速で移動させる操作を行う可能性がある場合には、修正オフセット値ofsの補正は行わ
ずに、ステップS55に進む。
ャイロセンサユニット34の動きの変化が少ない(安定している)期間が長ければ長いほど)、リモコン32すなわちジャイロセンサユニット34の動きの変化が少ない(安定している)といえるので、静止具合値aの大きさに応じて、ステップS49で補正された角
速度データdataが、コントローラの静止状態における角速度データ(ゼロ点)であるように補正を行う度合いを算出して、その度合いに応じたオフセット値(修正オフセット値ofs)を補正する。
た静止具合値aをそのまま利用すると、短期間で角速度データdataが、コントローラの静
止状態における角速度データ(ゼロ点)であるように補正されてしまい、角速度データdataの値が出にくくなってしまうためである。また、ゼロ点のずれの原因となる温度ドリフトという現象は変化の激しい現象ではなく、この補正は反応良く行う必要がないためでもある。他の例では、定数C2は変数として、角速度データdataや連続個数ct等に応じて変化させても良いし、その他の状況に応じて変化させても良い。そして、その変更された静止具合値aを使って、修正オフセット値ofsを補正する。つまり、修正オフセット値ofsに対
して、ステップS49で補正された角速度データdataから修正オフセット値ofsを減算し
た結果に、定数C2を乗算して変更した静止具合値aを掛けた値を加算する。したがって、
静止具合値aに応じて、ステップS49で補正された角速度データdataと修正オフセット
値ofsとの差分を、所定の割合(定数C2を乗算して変更した静止具合値a)に応じて、修正オフセット値ofsに加算される。その結果、静止具合値(静止の程度)aが大きければ大きいほど(リモコン32すなわちジャイロセンサユニット34の動きの変化が少ない(安定している)期間が長ければ長いほど)、修正オフセット値ofsがステップS49で補正さ
れた角速度データdataに近い値に補正される、換言すれば、修正オフセット値ofsがステ
ップS49で補正された角速度データdataに収束する割合が大きく(度合いが強く)なる。また他の例では、所定の条件を満たす時(例えば、角速度データdataから修正オフセット値ofsを減算した結果が所定値以下の場合)にのみ、修正オフセット値ofsを補正しても良い。
るゼロ点の補正を考慮した上で、角速度データdataが再度補正され、図13のステップS9にリターンする。なお、図13のステップS11で“YES”に分岐し、ステップS13でオフセット補正フラグcfgを0に設定した場合であり、リモコン32すなわちジャイ
ロセンサユニット34を等速で移動させる操作を行う可能性がある場合には、ステップS53で補正が行われないままの修正オフセット値ofsをそのまま用いて、角速度データdataの補正が行われる。
34の動きの変化が少ない(安定している)期間の長さ)により実施例のようなリモコン32すなわちジャイロセンサユニット34の安定状態の判定を行うと、リモコン32すなわちジャイロセンサユニット34を等速で移動させ続けた場合にも、静止具合値(静止の程度)aが大きい(リモコン32すなわちジャイロセンサユニット34の動きの変化が少
ない(安定している)期間が長い)と判定されるという現象が起こる。ステップS49における角速度データdataの補正に関しては、等速で移動させ続けた場合にコントローラ14すなわちリモコン32から出力される角速度データは同じ(または近い)データが出力され続け、変化の大きい動きを迅速に反映するような追従性は求められない為に、平均値データが重い重み付けで採用される(平均値の影響が大きくなる)ことには問題はないが、ステップS53における修正オフセット値ofsの補正に関しては、修正オフセット値ofsがステップS49で補正された角速度データdataに近い値に補正される割合が大きく(度合いが強く)なってしまい、リモコン32すなわちジャイロセンサユニット34の移動している状態を、コントローラの静止状態における角速度データ(ゼロ点)であるように補正されてしまうという問題が生じる。ただし、実施例のようなゲームシステムでは、リモコン32すなわちジャイロセンサ56を人が手に持って操作することを前提にしているため、角速度におけるゼロ点のオフセット修正が起こるほど、機械のように正確にリモコン32すなわちジャイロセンサユニット34を等速で移動させ続けられないということで、実用においては問題になることはない、ということもできる。
ン32すなわちジャイロセンサユニット34でゲーム画面上の弓を動かして何かを慎重に狙う場合、リモコン32すなわちジャイロセンサユニット34が静かに等速で動かされる可能性がある。したがって、この実施例においては、たとえば矢を番える前まではゼロ点オフセットの修正処理機能をONにしておき、矢を番えて慎重に狙いだしたらOFFにするようにしている。それらの判定基準として用いられているのが、前述のオフセット補正フラグcfgである。
はなく、たとえば加速度センサについてはゼロ点のオフセットという考え方はない。
。
正確なゼロ値が安定して出力される例
まず、或る状態として、ジャイロセンサのゼロ点の値が「2.4」であり、プログラム中における修正オフセット値ofsも「2.4」である正常な状況を示す。この場合、リモ
コン32すなわちジャイロセンサユニット34を手に持って静止させていると(完全に固定していない)、入力されるディジタルデータは、統計的に平均値が「2.4」になるように、たまに変動して、たとえば次のようになる。
ディジタルデータ:2 2 2 3 3 2 2 2 3 3
この場合、最新のディジタルデータは「2」または「3」となるが、いずれの場合でも、過去に安定範囲(下限)d1および安定範囲(上限)d2で設定された範囲内の値が続く回数(連続個数ct)は最大検索数CMAXの「10」と等しくなり、図14のステップS47において算出される静止具合値aは「1」になる。
ず、ステップS55の最終出力データとしては、以下のように、「2.4-2.4」=0
.0が続くことになる。
ディジタルデータ:2 2 2 3 3 2 2 2 3 3
アナログ出力:0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
ゼロ点が変化したときに補正される例
次に、上記状態からセンサのゼロ点が「3.6」に変化した場合、上記同様にリモコン32すなわちジャイロセンサユニット34を静止させていると、平均値が「3.6」となる次のような変動を生じる。
ディジタルデータ:2 2 2 3 3 (4) 4 4 3 3 4 4 4 3 3
上記ディジタルデータの左から6番目の括弧付の「4」でゼロ点変化が生じたとすると、このときの各ステップ中の変数は表1のようになる。
ディジタルデータ:2 2 2 3 3 4 4 4 3 3 4 4 4 3 3
アナログ出力:0.0 0.0 0.0 0.0 0.0 (1.0) 0.6 0.3 0.0 0.0 0.1 0.0 0.0 0.0 0.0
したがって、左から7番目のデータからゼロ点の補正がかかり始め、左から12番目のデータで補正が完了する。
センサを動かしたときにすばやく出力データに反映される例
さらに、上記状態から正方向への回転を行った場合、たとえば次のような入力になる。ディジタルデータ:4 4 4 3 3 4 (5) 6 7 8 10 12 16 20 25
上記ディジタルデータの左から7番目の括弧付きの「5」で回転を始めたとすると、このときの各ステップ中の変数は表2のようになる。
ディジタル入力:4 4 4 3 3 4 5 6 7 8 10 12 16 20 25
アナログ出力:0.1 0.0 0.0 0.0 0.0 0.0 (1.0) 1.6 2.1 2.5 4.1 5.5 8.6 11.3 14.7
したがって、左から7番目の括弧付の「1.0」で、回転が生じる。
12 …ゲーム装置
14 …コントローラ
32 …リモコン
34 …ジャイロセンサユニット
56 …ジャイロセンサ
60 …CPU
62 …システムLSI
100 …FIFOバッファ
Claims (13)
- 所定のセンサで計測したアナログ量を変換したディジタルデータを補正するディジタルデータ補正装置のコンピュータに実行させるディジタルデータ補正プログラムであって、前記コンピュータを、
前記ディジタルデータを順次記憶するバッファ手段、
最新のディジタルデータに対する安定範囲を算出する安定範囲算出手段、
前記バッファ手段に記憶されたディジタルデータのうち、前記最新のディジタルデータから遡って連続して前記安定範囲内にあるディジタルデータの平均値を算出する平均値算出手段、
前記平均値算出手段で算出された平均値を用いて前記最新のディジタルデータを補正するデータ補正手段、
前記バッファ手段に記憶されたディジタルデータのうち、前記最新のディジタルデータから遡って連続して前記安定範囲内にあるディジタルデータの連続度合いを算出する連続度合い算出手段、
前記連続度合いに応じて、前記データ補正手段で補正後のディジタルデータに収束する修正オフセット値を算出する修正オフセット値算出手段、および
前記データ補正手段で補正後のディジタルデータを前記修正オフセット値で補正するオフセット補正手段として機能させる、ディジタルデータ補正プログラム。 - 前記連続度合い算出手段は、前記バッファ手段に記憶されたディジタルデータのうち、前記最新のディジタルデータから遡って連続して前記安定範囲内にあるディジタルデータの連続個数を算出する連続個数算出手段を含み、
前記データ補正手段は、前記連続個数に基づいて、前記最新のディジタルデータと前記平均値との加重平均値を算出する加重平均値算出手段を含み、前記加重平均値を補正後のディジタルデータとする、請求項1記載のディジタルデータ補正プログラム。 - 前記加重平均値算出手段は、前記連続個数が多いほど、前記平均値の重みを重くする、請求項2記載のディジタルデータ補正プログラム。
- 前記加重平均値算出手段は、前記連続個数のべき乗に比例して、前記平均値の重みを重くする、請求項3記載のディジタルデータ補正プログラム。
- 前記安定範囲は、前記最新のディジタルデータを含む範囲である、請求項1記載のディジタルデータ補正プログラム。
- 前記安定範囲は、前記最新のディジタルデータを中心とした上下均等な範囲である、請求項5記載のディジタルデータ補正プログラム。
- 前記連続度合い算出手段は、前記バッファ手段に記憶されたディジタルデータのうち、前記最新のディジタルデータから遡って連続して前記安定範囲内にあるディジタルデータの連続個数を算出する連続個数算出手段を含み、
前記修正オフセット値算出手段は、前記連続個数に応じて、前記データ補正手段で補正後のディジタルデータに収束する修正オフセット値を算出する、請求項1記載のディジタルデータ補正プログラム。 - 前記修正オフセット値算出手段は、前記連続個数が多いほど、前記データ補正手段で補正後のディジタルデータに収束する度合いの強い修正オフセット値を算出する、請求項7記載のディジタルデータ補正プログラム。
- 前記修正オフセット値算出手段は、前記連続個数のべき乗に比例して、前記データ補正手段で補正後のディジタルデータに収束する度合いの強い修正オフセット値を算出する、請求項8記載のディジタルデータ補正プログラム。
- 前記オフセット補正手段は、前記修正オフセット値で補正した補正後のディジタルデータを出力するデータ出力手段を含む、請求項1記載のディジタルデータ補正プログラム。
- 前記センサはジャイロセンサを含み、前記ディジタルデータは角速度データである、請求項1ないし10のいずれかに記載のディジタルデータ補正プログラム。
- 前記ジャイロセンサはゲーム機のコントローラに設けられ、前記ゲーム機は前記ディジタルデータに基づいてゲーム処理を実行する、請求項11記載のディジタルデータ補正プログラム。
- 所定のセンサで計測したアナログ量を変換したディジタルデータを補正するディジタルデータ補正装置であって、
前記ディジタルデータを順次記憶するバッファ手段、
最新のディジタルデータに対する安定範囲を算出する安定範囲算出手段、
前記バッファ手段に記憶されたディジタルデータのうち、前記最新のディジタルデータから遡って連続して前記安定範囲内にあるディジタルデータの平均値を算出する平均値算出手段、
前記平均値算出手段で算出された平均値を用いて前記最新のディジタルデータを補正するデータ補正手段、
前記バッファ手段に記憶されたディジタルデータのうち、前記最新のディジタルデータから遡って連続して前記安定範囲内にあるディジタルデータの連続度合いを算出する連続度合い算出手段、
前記連続度合いに応じて、前記データ補正手段で補正後のディジタルデータに収束する修正オフセット値を算出する修正オフセット値算出手段、および
前記データ補正手段で補正後のディジタルデータを前記修正オフセット値で補正するオフセット補正手段を備える、ディジタルデータ補正装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009241175A JP4873507B2 (ja) | 2009-10-20 | 2009-10-20 | ディジタルデータ補正プログラムおよびディジタルデータ補正装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009241175A JP4873507B2 (ja) | 2009-10-20 | 2009-10-20 | ディジタルデータ補正プログラムおよびディジタルデータ補正装置 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008181804A Division JP4439572B2 (ja) | 2008-07-11 | 2008-07-11 | ディジタルデータ補正プログラムおよびディジタルデータ補正装置 |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2010048814A JP2010048814A (ja) | 2010-03-04 |
JP2010048814A5 JP2010048814A5 (ja) | 2011-06-16 |
JP4873507B2 true JP4873507B2 (ja) | 2012-02-08 |
Family
ID=42065983
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009241175A Active JP4873507B2 (ja) | 2009-10-20 | 2009-10-20 | ディジタルデータ補正プログラムおよびディジタルデータ補正装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4873507B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5614527B2 (ja) | 2010-03-05 | 2014-10-29 | セイコーエプソン株式会社 | 姿勢情報算出装置、姿勢情報算出システム、姿勢情報算出方法及び姿勢情報算出プログラム |
KR102361148B1 (ko) * | 2018-10-30 | 2022-02-10 | 에이케이시스 주식회사 | 응용프로그램 구동 환경을 제공하는 가상 안드로이드 장치를 이용한 제어 시스템 |
-
2009
- 2009-10-20 JP JP2009241175A patent/JP4873507B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
JP2010048814A (ja) | 2010-03-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4439572B2 (ja) | ディジタルデータ補正プログラムおよびディジタルデータ補正装置 | |
US9283482B2 (en) | Game apparatus for performing game processing according to an attitude of an input device and game program | |
JP5224832B2 (ja) | 情報処理プログラムおよび情報処理装置 | |
US8884875B2 (en) | Information processing apparatus and computer-readable recording medium recording information processing program | |
US20080204407A1 (en) | Computer-readable storage medium having stored therein information processing program and information processing apparatus | |
US20120046767A1 (en) | Information processing apparatus, information processing system, and information processing method | |
US20120302345A1 (en) | Game system, game apparatus, computer-readable storage medium having stored therein game program, and game processing method | |
US9751013B2 (en) | Storage medium, information processing system, and information processing method for adjusting images based on movement information | |
US8690673B2 (en) | Game apparatus, storage medium, game controlling method and game system | |
JP5429918B2 (ja) | 情報処理プログラムおよび情報処理装置 | |
US8144933B2 (en) | Storage medium having information processing program stored thereon and information processing apparatus | |
JP5529401B2 (ja) | ゲームプログラムおよびゲーム装置 | |
JP4873507B2 (ja) | ディジタルデータ補正プログラムおよびディジタルデータ補正装置 | |
JP5225961B2 (ja) | ディジタルデータ補正プログラムおよびディジタルデータ補正装置 | |
JP5225970B2 (ja) | ディジタルデータ補正プログラムおよびディジタルデータ補正装置 | |
EP1886718B1 (en) | Game apparatus and storage medium storing game program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110426 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20111116 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20111116 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20141202 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 Ref document number: 4873507 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |