説明

情報処理装置、情報処理システム及び情報処理方法

【課題】演算処理による誤差の蓄積に起因する、速度または移動距離の検出精度の悪化を防止し、実用的な、速度または移動距離の検出精度を実現することができる情報処理装置、情報処理システム及び情報処理方法を提供すること。
【解決手段】ユーザによる操作デバイス10の操作中の前半期間は演算誤差の発生が少なく、操作中の後半期間に演算誤差が大きくなるという事実、また、無意識操作における加速と減速の特性の類似性がある。そこで、演算誤差が少ない加速期間内に得られた情報に基づき、加速終了時刻から移動終了時刻までの期間内の操作デバイス10の動きの演算結果の情報が補正される。これにより、演算処理による誤差の蓄積に起因する動きの検出精度の悪化を防止し、実用的な、動きの検出精度を実現することができる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、加速度センサ等を有する操作デバイスが、ユーザにより3次元空間内で操作される時に、その加速度センサ等から得られる情報に基づき、操作デバイスの動きに応じた操作対象物の動きを実現するための演算を実行する情報処理装置、情報処理システム及び情報処理方法に関する。
【背景技術】
【0002】
一般に、3次元空間内で操作される操作デバイスは加速度センサを有し、この加速度センサから得られた加速度を2回積分することにより、操作デバイスの移動距離を算出する。しかし、2回の積分演算では、演算結果の移動距離に大きな誤差が発生、また、積分回数が多いほど、その誤差が蓄積していく、という問題があった。そこで、移動距離の演算には何らかの補正が必要になる。
【0003】
特許文献1に記載の操作デバイス(入力装置)は、加速度センサ及び角速度センサを備えている。この入力装置では、加速度センサで得られた加速度を1回積分して得た速度を、角速度センサで得られた角速度や角加速度を用いて補正する手法が開示されている。
【0004】
ところで、ユーザが操作デバイスを把持して3次元空間内で操作する時、直線的にそれを移動させるように操作したつもりでも、それは、手首や肘を中心として操作デバイスを振るような動作となる。したがって、そのように操作される操作デバイスの移動には、曲線移動や回転移動が含まれ、計算結果の移動距離に誤差が生じ、移動操作を検出するデバイスとして実用的な、速度や移動距離の検出精度を実現できない、という問題があった。
【0005】
このような問題を解決するため、特許文献2及び3のデバイスが提案されている。これらのデバイスは、加速度センサ及び角速度センサを備えている。これらのデバイスは、加速度センサの検出値を用いてデバイスの姿勢角度(傾き)を算出し、その姿勢角度に基づき、角速度センサ(あるいは加速度センサ)で得られる検出値を、基準の座標系(地面に固定のグローバル座標系)における値に変換している。これによりデバイスの曲線移動及び回転移動に伴い発生する誤差が軽減される。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2008−305044号公報
【特許文献2】国際公開第2009−008372号パンフレット
【特許文献3】米国特許第7262760号明細書
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、加速度センサの特性上、操作デバイスの移動操作中は、重力加速度の他に運動加速度(慣性加速度)が加わった検出値が出力される。例えば、特許文献2の図34には、そのような運動加速度の影響を除去するような補正の演算処理が開示されているが、特に、操作デバイスの移動操作の後半部分、つまり減速時には演算処理による誤差の蓄積が増えるおそれがある。
【0008】
また、このような加速度センサや角速度センサを備えた操作デバイスでは、それらのセンサで検出された加速度や角速度の積分演算をする場合、操作デバイスの移動操作の後半部分である減速時には、このような演算誤差の蓄積による、速度や移動距離の検出精度の悪化が懸念される。
【0009】
以上のような事情に鑑み、本発明の課題は、演算処理による誤差の蓄積に起因する、速度または移動距離の検出精度の悪化を防止し、実用的な、速度または移動距離の検出精度を実現することができる情報処理装置、情報処理システム及び情報処理方法を提供することにある。
【課題を解決するための手段】
【0010】
上記目的を達成するため、本発明の一形態に係る情報処理装置は、演算手段と、補正手段とを具備する。
前記演算手段は、ユーザにより操作される、加速度センサを有する操作デバイスの、前記加速度センサで検出される加速度の情報に基づき、前記操作デバイスの、速度または移動距離の情報である動き情報を算出する。
前記補正手段は、前記加速度センサにより前記操作デバイスの加速開始時刻から加速終了時刻までの期間である加速期間内に得られた情報に基づき、前記操作デバイスの前記加速終了時刻からその移動が終了する移動終了時刻までの期間内における、前記演算手段により算出される前記操作デバイスの前記動き情報を補正する。
【0011】
加速期間内に得られた動き情報に含まれる演算誤差の蓄積は比較的少ない。したがって、本発明では、そのような加速期間内に得られた情報に基づき、加速終了時刻から移動終了時刻までの期間内の操作デバイスの動きの演算結果の情報が補正される。これにより、演算処理による誤差の蓄積に起因する動きの検出精度の悪化を防止し、実用的な、動きの検出精度を実現することができる。
【0012】
加速期間内に得られた情報には、演算手段による演算結果の情報も含まれる。
【0013】
前記補正手段は、前記加速度センサにより前記加速期間内の少なくとも一部の時間を計測する手段と、前記計測された時間に基づき、前記操作デバイスの移動が終了する予定時刻である移動終了予定時刻を算出する手段とを有してもよい。その場合、前記補正手段は、前記加速終了時刻から前記算出された移動終了予定時刻までの期間内の少なくとも一部における前記動き情報を補正する。ユーザが操作デバイスを動かす場合、加速期間内の少なくとも一部の時間から、操作デバイスの移動が終了する時刻をある程度予測することができる。補正手段は、この推測された(算出された)移動終了予定時刻を用いて、その移動終了予定時刻までの動き情報を補正する。
【0014】
前記補正手段は、前記動き情報のうち前記速度を、前記加速終了時刻から一定とし、前記移動終了予定時刻でゼロとしてもよい。
【0015】
前記補正手段は、前記動き情報のうち前記速度を前記移動終了予定時刻でゼロとするように、前記加速終了時刻以降における前記速度を減衰させてもよい。これにより、操作デバイスの動きに対応した自然な操作対象物の動きを実現することができる。
【0016】
前記補正手段は、前記動き情報のうち前記移動距離を、前記移動終了予定時刻までに一定間隔の離散値へ収束させてもよい。
【0017】
前記補正手段は、前記加速終了時刻から前記加速期間分の時間が経過した時刻を、前記移動終了予定時刻として算出してもよい。ユーザが操作デバイスを動かす場合、加速期間分の時間と、減速期間分の時間とは近い値になることがわかっているので、本発明によれば、複雑な演算を行うことなく移動終了時刻を予測することができる。
前記補正手段は、前記加速終了時刻から前記加速期間分の時間が経過した時刻に所定の時間を加算または減算した時刻を、前記移動終了予定時刻として算出してもよい。加速期間分の時間より、前記加速終了時刻から前記移動終了時刻までの時間が若干長くなる、または短くなる場合がある。これらの場合、所定の時間を適宜設定することにより、複雑な演算を行うことなく移動終了時刻を予測することができる。
【0018】
前記補正手段は、前記演算手段により算出された前記動き情報に基づき、前記所定の時間を可変に制御してもよい。動き情報に基づいて、動的に所定の時間が変更されることにより、操作デバイスに対応した正確な動きを検出することができる。
【0019】
前記補正手段は、前記加速終了時刻における前記動き情報と閾値とを比較することで、前記所定の時間を設定してもよい。
【0020】
前記情報処理装置は、前記ユーザによる前記操作デバイスの操作状態の情報を得る操作状態取得手段をさらに具備してもよい。その場合、前記補正手段は、前記加速終了時刻から前記算出された前記移動終了予定時刻までの期間のうち少なくとも一部の期間に得られた前記操作状態の情報に応じて、前記動き情報を補正する。これにより、加速終了時刻から移動終了予定時刻までの期間におけるユーザの操作状態に応じた、操作対象物の様々な動きを実現することができる。
【0021】
前記操作状態取得手段は、前記加速度センサにより検出された前記加速度を取得し、前記補正手段は、前記取得された加速度に基づき前記動き情報を補正してもよい。
【0022】
前記操作状態取得手段は、前記操作デバイスがさらに有する角速度センサにより検出された角速度を取得し、前記補正手段は、前記取得された角速度に基づき前記動き情報を補正してもよい。
【0023】
前記操作状態取得手段は、前記操作デバイスがさらに有する圧力センサにより検出された、前記ユーザが前記操作デバイスを把持する時の圧力を取得し、前記補正手段は、前記取得された圧力に基づき前記動き情報を補正してもよい。
【0024】
前記操作状態取得手段は、前記操作デバイスがさらに有する、前記ユーザに操作される機械スイッチにより検出された信号を取得し、前記補正手段は、前記取得された信号に基づき前記動き情報を補正してもよい。
【0025】
前記補正手段は、前記加速終了時刻から前記算出された前記移動終了予定時刻までの期間のうち少なくとも一部の期間に得られた前記操作状態の情報に応じて、前記移動終了予定時刻を変更してもよい。
【0026】
前記操作状態取得手段は、前記加速度センサにより検出された前記加速度を取得し、前記補正手段は、前記取得された加速度に基づき前記移動終了予定時刻を変更してもよい。
【0027】
操作状態取得手段は、上記少なくとも一部の期間内の所定のタイミングで加速度を1回取得してもよいし、その期間内で周期的(逐次も含む)に取得してもよい。その場合、変更手段は、1回だけ取得された加速度に基づき、移動終了予定時刻を1回だけ変更してもよいし、周期的(逐次も含む)に取得された加速度に基づき、移動終了予定時刻を周期的(逐次も含む)に変更してもよい。このことは、加速度だけでなく、角速度センサで検出された角速度、圧力センサで検出された圧力、機械スイッチにより検出された信号についても同様である。
【0028】
前記操作状態取得手段は、前記操作デバイスがさらに有する角速度センサにより検出された角速度を取得し、前記補正手段は、前記取得された角速度に基づき前記移動終了予定時刻を変更してもよい。
【0029】
前記操作状態取得手段は、前記操作デバイスがさらに有する圧力センサにより検出された、前記ユーザが前記操作デバイスを把持する時の圧力を取得し、前記補正手段は、前記取得された圧力に基づき前記移動終了予定時刻を変更してもよい。
【0030】
前記操作状態取得手段は、前記操作デバイスがさらに有する、前記ユーザに操作される機械スイッチにより検出された信号を取得し、前記補正手段は、前記取得された信号に基づき前記移動終了予定時刻を変更してもよい。
【0031】
本発明の一形態に係る情報処理システムは、操作デバイスと、制御装置とを具備する。
前記操作デバイスは、加速度センサと、前記加速度センサで検出された加速度の情報を送信する送信手段とを有し、ユーザにより操作される。
前記制御装置は、受信手段と、演算手段と、補正手段とを有する。
前記受信手段は、前記操作デバイスの前記送信手段で送信された前記加速度の情報を受信する。
【0032】
前記演算手段は、前記受信された加速度の情報に基づき、前記操作デバイスの、速度または移動距離の情報である動き情報を算出する。前記補正手段は、前記加速度センサにより前記操作デバイスの加速開始時刻から加速終了時刻までの期間である加速期間内に得られた情報に基づき、前記操作デバイスの前記加速終了時刻からその移動が終了する移動終了時刻までの期間内における、前記演算手段により算出される前記操作デバイスの前記動き情報を補正する。そして制御装置は、前記補正された動き情報に基づき、前記操作デバイスの操作対象物を制御する。
【0033】
本発明の一形態に係る情報処理方法は、コンピュータにより実行され、ユーザにより操作される、加速度センサを有する操作デバイスの、前記加速度センサで検出される加速度の情報に基づき、前記操作デバイスの、速度または移動距離の情報である動き情報を算出することを含む。
【0034】
そして、前記加速度センサにより前記操作デバイスの加速開始時刻から加速終了時刻までの期間である加速期間内に得られた情報に基づき、前記操作デバイスの前記加速終了時刻からその移動が終了する移動終了時刻までの期間内における、前記演算手段により算出される前記操作デバイスの前記動き情報が補正される。
【発明の効果】
【0035】
以上、本発明によれば、演算処理による誤差の蓄積に起因する、速度または移動距離の検出精度の悪化を防止し、実用的な、速度または移動距離の検出精度を実現することができる。
【図面の簡単な説明】
【0036】
【図1】図1は、本発明の一実施形態に係る情報処理システムを示す図である。
【図2】図2は、操作デバイスのハードウェアの構成を示す図である。
【図3】図3は、表示デバイスのハードウェアの構成を示す図である。
【図4】図4に示す処理は、操作デバイス及び表示デバイスが行う処理を示したフローチャート的な機能ブロック図である。
【図5】図5は、ローカル座標系とグローバル座標系の関係を示す図である。
【図6】図6は、本発明者らが実験で用いた、加速度を計測する機械式移動ステージを示す写真である。
【図7】図7は、その機械式移動ステージ上に加速度センサが固定され、ステージの移動途中で等速を保つようにして、ステージが移動する時の加速度センサにより検出される加速度の出力波形のプロファイルを示す図である。
【図8】図8は、人間が操作デバイスを把持して、これを直線的に移動させた場合の加速度の出力波形のプロファイルを示す図である。
【図9】図9は、人間が操作デバイスの移動操作中に、無意識にその移動方向を変えたり(曲線移動)、操作デバイス自体を回転させたり(回転運動)する時の操作デバイスの動きを示す図である。
【図10】図10Aは、ローカルx軸の加速度を示すプロファイルである。図10Bは、Z軸周りの回転運動があった時のロール角を示すプロファイルである。図10Cは補正後のグローバルX軸の加速度を示すプロファイルである。
【図11】図11は、人間が操作デバイスを操作する時の操作範囲を説明するための図である。
【図12】図12は、本実施形態に係る補正処理の概念を示す図である。
【図13】図13は、座標変換部によりグローバル座標系に変換された後の、ローカル3軸のうち任意の1軸についての加速度の出力波形のプロファイルを示す図である。
【図14】図14は、加速度のベクトル和のスカラー値のプロファイルを示す図である。
【図15】図15は、移動終了予定時刻の算出方法のパターンの例を示す図である。
【図16】図16は、移動終了予定時刻の算出方法のパターンの別の例を示す図である。
【図17】図17は、移動終了予定時刻の算出方法のパターンの別の例を示す図である。
【図18】図18は、移動終了予定時刻の算出方法のパターンの別の例を示す図である。
【図19】図19は、補正演算部による補正処理において移動終了予定時刻に関する補正処理の例を示す図である。
【図20】図20は、移動終了予定時刻に関する補正処理の別の例を示す図である。
【図21】図21は、移動終了予定時刻に関する補正処理の別の例を示す図である。
【図22】図22は、補正演算部による補正処理において、減速期間内に得られる操作状態に応じて動き情報を補正する例を示す図である。
【図23】図23は、図22に示した補正処理の概念図である。
【図24】図24は、補正演算部による補正処理において、減速期間内に得られる操作状態に応じて動き情報を補正する別の例を示す図である。
【図25】図25は、図24に示した補正処理の概念図である。
【発明を実施するための形態】
【0037】
以下、図面を参照しながら、本発明の実施形態を説明する。
【0038】
[情報処理システムの構成]
図1は、本発明の一実施形態に係る情報処理システムを示す図である。
【0039】
この情報処理システムは、ユーザにより操作される操作デバイス10と、この操作デバイス10から送信された操作情報を受信して、その情報に基づいて表示処理を実行する表示デバイス50とを備える。操作デバイス10と表示デバイス50とは電気的に接続されており、本実施形態では、赤外線や電波等の無線により通信が行われる。
【0040】
操作デバイス10は、人が手で握ることができる程度の大きさに形成され、例えば球形状をなしている。操作デバイス10の形状は、球形に限られず、ユーザが操作デバイス10の向きや姿勢を認識できるような形状(球形以外の形状)であってもよい。表示デバイス50は、ユーザの操作デバイス10を用いた操作により、表示部52の画面内でオブジェクト(操作対象物)51を回転させたり、移動させたり等、その表示の制御を実行する制御装置として機能する。
【0041】
表示デバイス50の典型例としては、例えば3D(Dimension)TV等、3Dのオブジェクト51を表示可能な装置である。操作対象物は、3D画像に限られず、アイコンやポインタ等の2D画像であってもよい。あるいはアイコンやポインタ等が3D画像で表示されてもよい。
【0042】
図2は、操作デバイス10のハードウェアの構成を示す図である。操作デバイス10は、MCU(Micro Control Unit)1、電源2、RAM3、ROM4、通信機5、加速度センサ12、角速度センサ13、磁気センサ14、圧力センサ15、機械スイッチ16等を備える。また、操作デバイス10は、図示しない書き換え可能なメモリ等を備えている。MCU1の代わりとして、例えばFPGA(Field Programmable Gate Array)等のようなプログラム可能なハードウェアが用いられてもよい。
【0043】
加速度センサ12及び角速度センサ13は、典型的には直交3軸の検出軸を有する。あるいはこれらは、直交2軸の検出軸を有していてもよい。
【0044】
これらのハードウェアは、球形の筐体11内に、筐体11に対して固定されるようにして配置されている。圧力センサ15は、例えば筐体11の内面側に複数取り付けられており、これらの圧力センサ群により、ユーザの加圧位置及びその圧力を検知する。機械スイッチ16は、例えば押しボタンやディップスイッチのような、ユーザがそのスイッチに触れて操作する機械式のスイッチである。機械スイッチ16がユーザにより操作されることにより、ON/OFFの2値の電気信号、あるいは3値以上の電気信号が発生する。通信機5は、ここでは主に送信機として機能する。
【0045】
加速度センサ12、角速度センサ13及び磁気センサ14のすべてが共通の1つのパッケージにパッケージングされている。あるいは、これらセンサ12、13及び14が別々のパッケージングでパッケージされ、共通の1つのセンサ基板上に搭載されている。
【0046】
図3は、表示デバイス50のハードウェアの構成を示す図である。表示デバイス50は、一般的なコンピュータと同様に、CPU53、ROM54及びRAM55を備え、また、表示部52、通信部56及び記憶部57を有する。通信部56は、ここでは主に受信機として機能する。記憶部57は、典型的にはROM54やRAM55に対して補助的な(2次的な)記憶部である。
【0047】
なお、この表示デバイス50は、操作デバイス10から送信された情報を受信してオブジェクト51の表示を制御する制御部分(制御装置)と、表示部52とが一体となった構成を有している。しかし、これらは別体で有線または無線により通信できるように互いに接続されていてもよい。
【0048】
操作デバイス10のROM4や図示しないメモリ、及び/または、表示デバイス50のROM54や記憶部57には、図4に示す処理を実現するためのソフトウェア等が格納されている。図4に示す処理は、操作デバイス10及び表示デバイス50が行う処理を示す機能ブロック図である。この例では、表示デバイス50が、本実施形態に係る特徴的な技術を持つ情報処理装置として機能する。
【0049】
典型的には、操作デバイス10の、各センサ12〜15及び機械スイッチ16から出力された情報は、通信機5(図2参照)を介して表示デバイス50に送信され、表示デバイス50がそれらの情報を通信部56(図3参照)を介して受信する。そして表示デバイス50が各部での処理を実行する。
【0050】
図5は、ローカル座標系とグローバル座標系の関係を示す図である。
【0051】
地面上には表示デバイス50が置かれている。ここでは、この地面あるいは表示デバイス50に固定された座標系をグローバル座標系という。このグローバル座標系に対して自由に動くことが可能な座標であって、操作デバイス10のセンサ基板20に対して固定された座標系を、ローカル座標系という。センサ基板20とは、上記したように、加速度センサ12、角速度センサ13及び磁気センサ14が搭載された共通の基板である。
【0052】
[情報処理システムによる演算処理方法]
図4を参照して、姿勢角度演算部102は、加速度センサ12及び磁気センサ14で検出される検出値に基づき、操作デバイス10の姿勢角度を算出する。この姿勢角度の算出は、公知の種々の方法により実現することができる。
【0053】
例えば、加速度センサ12及び磁気センサ14でそれぞれ検出される直交3軸の加速度、直交3軸の磁気強度に基づき、三角関数を用いて、グローバル座標系における操作デバイス10の姿勢角度(グローバル姿勢角度)が算出される。
【0054】
このような方法に限られず角速度センサ13で検出される角速度と、加速度センサ12で検出される加速度を用いて、グローバル姿勢角度を算出することができる。あるいは、角速度と磁気強度と用いても、グローバル姿勢角度を算出可能である。
【0055】
座標変換部104は、このように算出されたグローバル姿勢角度を用いて、ローカル座標系で検出された加速度及び角速度を、グローバル座標系での加速度及び角速度に変換する。この変換は、グローバル姿勢角度についての三角関数を用いた回転座標変換により実現することができる。
【0056】
移動状態検出部103は、ユーザによる操作デバイス10の移動状態の情報を検出する。移動状態(操作状態)の情報とは、各センサ12〜13で得られる検出値、総圧力演算部101で算出された総圧力、または、機械スイッチ16による信号、から得られる情報等である。
【0057】
なお、総圧力演算部101は、圧力センサ15の群で検出された圧力の総和である。演算に用いられる圧力としては、総圧力に限られず、例えば1つの圧力センサからの圧力でもよいし、圧力センサ15の群で検出された圧力の平均値でもよいし、その他の演算方法により算出された圧力でもよい。
【0058】
また、移動状態検出部103は、加速度に関連する情報として、操作デバイス10の加速期間内、減速期間内などの時間を計測するタイマーの機能(計測手段)を備える。
【0059】
積分演算部105は、座標変換部で変換されたそれぞれ加速度及び角速度を積分演算する。加速度の2回の積分により移動距離が算出され、角速度の1回の積分により角度が算出される。加速度の1回の積分により速度も算出される。
【0060】
角速度が積分されて得られる角度(変位角度)は、例えば2回目の処理ループ時に座標変換部104に戻され、座標変換部104は、この角度を用いて回転座標変換を実行する。このように、2回目の処理ループでは、加速度センサ12による検出値が用いられず、角速度が用いられることにより演算誤差を抑制することができる。ユーザの操作中は加速度センサ12で検出される重力加速度に運動加速度(慣性加速度)が加わり、その場合、正確なグローバル姿勢角度を算出できないからである。
【0061】
なお、積分演算部105において、角速度の積分演算は必ずしも実行されなくてもよい。
【0062】
姿勢角度演算部102、座標変換部104及び積分演算部105は、演算手段として機能する。
【0063】
補正手段の一部として機能する補正演算部106は、積分演算部105から出力された速度または移動距離の情報である動き情報を補正する。これについては後述する。
【0064】
アプリケーション用出力値変換部107は、補正演算部106から出力された、補正された少なくとも速度または移動距離の情報を、表示デバイス50が画面にオブジェクトを表示するためのアプリケーションソフトウェア用の出力値に変換する。
【0065】
以上説明した各部101〜107での処理の流れは、所定の周波数で繰り返し実行される。
【0066】
[人間が操作デバイスを操作する時の加速度の特性について]
【0067】
ここで、人間と機械が、それぞれ、操作デバイス10を直線的に動かした時の、加速度センサで検出される加速度について説明する。図6は、本発明者らが実験で用いた装置を示す写真である。この装置は、直線状に1次元的に移動するステージを備え、コンピュータプログラムにより自由な移動操作を行うことができる機械式移動ステージである。
【0068】
図7は、その機械式移動ステージ上に加速度センサが固定され、ステージの移動途中で等速を保つようにして、ステージが移動する時の加速度センサにより検出される加速度の出力波形のプロファイルを示す図である。ステージの移動軸(つまりグローバル座標軸)と、加速度センサの検出軸とが一致するように加速度センサがステージ上に設置されている。ピーク加速度は、0.15G程度である。
【0069】
図に示すように、加速期間(グラフの+側)、等速期間及び減速期間(グラフの−側)のプロファイルがはっきり現れている。
【0070】
図8は、人間が加速度センサ12(を有する操作デバイス10)を把持して、これを直線的に移動させた場合の加速度の出力波形のプロファイルを示す図である。具体的には、人間が、その加速度センサ12のローカル座標系の検出軸(ローカル軸)のうち1軸と、グローバル座標系での1軸とを一致させるように、かつ、等速を意識するようにして、腕を動かすようにしてこの操作デバイス10を移動させた。
【0071】
図に示すように、人間がフリーハンドで等速移動を意識して操作したつもりでも、図7に示したプロファイルのような、加速、等速、減速のはっきりしたプロファイルは現れなかった。図8では、緩やかに連続的に"加速"から"減速"へ移行するプロファイルが得られた。
【0072】
また、図7と比べ、移動操作中の大きな波形の乱れ、つまり手ぶれが発生している。
【0073】
さらに、移動終了後の静止時においても、加速度は、移動開始前の加速度(実質的に0G)に戻ることはなく、−側の加速度が検出されている。これは、図9に示すように、移動操作中にユーザが無意識にその移動方向を変えたり(曲線移動)、操作デバイス10自体を回転させたり(回転運動)する結果、加速度センサのローカル軸で重力加速度(あるいはその変動)が検出されてしまっているからである。
【0074】
これらの手ぶれ、曲線移動及び回転運動によって生じる加速度センサの検出誤差が原因で、人間がフリーハンドで操作デバイス10を操作する時に演算(積分演算も含む)により求められる速度または移動距離の情報である動き情報に誤差が発生する。
【0075】
なお、ここでいう曲線移動や回転運動は、操作デバイス10の自転及び公転の両方の広義の回転運動に含まれる概念である。つまり、この広義の回転運動とは、その回転運動が原因で角速度センサ13によって角速度が検出されるように操作される、ユーザの操作デバイス10の操作の仕方を意味する。
【0076】
これらのような曲線移動または回転運動による演算誤差は、上述のようなローカル座標系からグローバル座標系への座標変換処理によって抑制される。図10Aは、ローカルx軸(図5参照)で検出される加速度のプロファイルである。例えば図10Bに示すように減速時にグローバルZ軸周りの回転運動(ロール角方向の運動)があった場合に、ローカルx軸の加速度は、図8に示したものと同様に重力加速度の成分が検出されている。姿勢角度演算部102及び座標変換部104による処理が実行されることにより、このような回転運動による誤差は、図10Cに示すように補正される。
【0077】
このような補正が行われる場合でも、加速度センサの特性上、操作デバイスの移動操作中は、重力加速度の他に運動加速度(慣性加速度)が加わった検出値が出力されるので、演算処理開始から時間が経つほど演算誤差が蓄積されていく。
【0078】
また、一般に加速度センサ及び角速度センサは、そのセンサデバイス自身のドリフト誤差も発生するため、動き情報を算出する過程で、上記同様に、演算処理開始から時間が経つほど演算誤差が蓄積されていく。
【0079】
ここで図11に示すように、人間が操作デバイス10を操作する状況に注目すると、人間の腕の長さの制限から、人間が操作デバイス10を把持して腕を動かす時の操作デバイス10の移動距離は、高々数十cmである。図8のプロファイルから分かるように、人間がその移動距離内で無意識に操作デバイス10を移動させて停止させるまで、加速と減速の特性が大きく異なるように操作することは考えにくい。
【0080】
上記したように、ユーザによる操作デバイス10の操作中の前半期間は演算誤差の発生が少なく、操作中の後半期間に演算誤差が大きくなるという事実、また、無意識操作における加速と減速の特性の類似性から、次のようなことが言える。すなわち、前半期間に得られた情報から、移動開始から終了までの一連のユーザの移動操作全体を予測し、後半期間に蓄積が大きくなる誤差を低減する、といったコンセプトを持つ補正処理が行われても、ユーザにとっての自然な操作感は損なわれないと考えられる。
【0081】
前半期間、すなわち加速期間内に得られる情報として、図12に示すように、大きく分けて次の2つがある。
1.それは、加速度に関する時間情報であり、図13〜18を参照して後で説明するように、移動終了予定時刻を算出するために、加速期間内の少なくとも一部の期間内で得られる、加速度に関する時間情報である。下記の「補正処理の方法1」で説明する内容は、主にこの時間情報についてである。
2.それは、加速度に関する時間情報以外の情報であり、上記移動状態(操作状態)の情報である。なお、後述する「補正処理の方法2」では、「加速期間」でなく「加速終了時刻から移動終了時刻までの期間」で得られた操作状態の情報について説明する。
【0082】
[補正処理の方法1]
【0083】
図13は、座標変換部104によりグローバル座標系に変換された後の、ローカル3軸のうち任意の1軸についての加速度の出力波形のプロファイルを示す図である。このプロファイルの情報は、上述の「加速期間に得られた情報」のうちの1つである「加速度に関する時間情報」を得るためのソース情報となる。本実施形態では、このようなS字形のプロファイルを5つの状態(6つの期間)に分けている。
【0084】
期間a及びf:停止状態
期間b:加速状態(移動(加速)開始時刻から加速度最高値に到達するまで期間)
期間c:加速状態(加速度最高値への到達から加速終了時刻までの期間)
期間d:減速状態(加速終了時刻から加速度最低値に到達するまでの期間)
期間e:減速状態(加速度最低値への到達から減速終了時刻)
【0085】
ここで、期間eの終了時刻は、減速度(負の加速度)が0に到達する時刻であるが、人間が操作デバイス10を操作する際、この時刻は、その移動の終了時刻に近い、あるいは実質的に一致する。
【0086】
補正演算部106が動き情報を補正する前提処理として、移動状態検出部103は、図13に示した、座標変換後のプロファイルの情報から、必要な情報(加速度に関する時間情報)を得る。図12に示したプロファイルに限られず、移動状態検出部103は、図14に示すように、加速度センサ12のローカル3軸でそれぞれ得られる加速度のベクトル和であるスカラー値を算出し、このスカラー値を表すプロファイル(M字形)を生成してもよい。
【0087】
以下では、図14に示したプロファイルの情報に基づき、必要な情報を得る形態について説明する。
【0088】
補正演算部106が動き情報を補正する前提処理として、例えば、移動状態検出部103は、予測される移動終了時刻である移動終了予定時刻を算出する。この時、移動状態検出部103は、補正手段の一部として機能する。
【0089】
図15〜18は、その移動終了予定時刻の算出方法のパターンの例をそれぞれ示す図である。これらの例では、加速期間内に得られる情報として、時間の情報を挙げている。具体的には、移動状態検出部103は、加速期間(期間b+c)内の少なくとも一部の時間をタイマーにより計測し、その時間の情報に基づき、移動終了予定時刻を算出する。
【0090】
図15に示す例では、加速期間分の時間が計測され、加速終了時刻からその計測された加速期間分の時間が経過した時刻が、移動終了予定時刻として設定される。つまり、
移動終了予定時刻=加速終了時刻+加速期間分の時間
である。すなわち、演算誤差の少ない加速期間における情報を、減速期間に適用して減速期間分の時間を予測している。上述したように、加速と減速の特性の類似性より、加速期間分の時間と、減速期間分の時間とは近い値になることがわかっているので、このような方法により、複雑な演算を行うことなく移動終了時刻を予測することができる。
【0091】
図16に示す例では、加速期間のうち加速度増加期間(期間b)分の時間が計測され、その加速度増加終了時刻から、その計測された時間の3倍分の時間が経過した時刻が、移動終了予定時刻として設定される。つまり、
移動終了予定時刻=加速度増加終了時刻+3×加速度増加期間分の時間
となる。
【0092】
図17に示す例では、加速期間分の時間が計測され、加速終了時刻からその加速期間分の時間が経過した時刻に、所定の時間(例えば固定時間)を加えた時刻が、移動終了予定時刻として設定される。つまり、
移動終了予定時刻=加速終了時刻+加速期間分の時間±所定の時間
となる。加速期間分の時間より、前記加速終了時刻から前記移動終了時刻までの時間が若干長くなる場合がある。この場合、所定の時間が加算されることにより、複雑な演算を行うことなく移動終了時刻を予測することができる。
【0093】
図18に示す例では、上記所定の時間が可変に制御される。つまり、この所定の時間は調整時間である。その可変制御の仕方は種々の方法がある。例えば、図18の上に示したプロファイルは、上記積分演算部105で算出された動き情報のうち速度を示すもので、この速度の情報に基づいて、その調整時間が可変に制御される。具体的には、速度の閾値が設定され、速度の最高値とその閾値とが比較され、その最高値が閾値を超えた場合(高速移動の場合)、調整時間がa(例えばa=50ms)として設定される。その最高値が閾値以下の場合(低速移動の場合)、調整時間が、aより長い時間であるb(例えばb=200ms)として設定される。閾値が2値以上に設定されてもよいし、また、調整時間が3値以上に設定されてもよい。
【0094】
このように、速度に基づいて動的に調整時間が変更されることにより、操作デバイス10に対応した正確な動きを検出することができ、その動きをオブジェクトに再現することができる。
【0095】
図18に示す例と同様に、移動距離に基づいて所定の時間が可変に制御されてもよい。つまり、積分演算部105で算出された移動距離と閾値とが比較され、その比較結果の情報に応じて、調整時間が決定される。
【0096】
以上のように移動終了予定時刻が設定されると、補正演算部106は、加速終了時刻から設定された移動終了予定時刻までにおける、つまり、減速期間内における、積分演算部105で算出された動き情報を補正する。図19〜21は、その補正演算部106による補正処理の例をそれぞれ示す図である。
【0097】
図19に示す例では、補正演算部106は、加速終了時刻から移動終了予定時刻までの期間内において、加速終了時刻における速度、すなわちその最高値を保持するように、積分演算部105で算出される速度(演算誤差を含む速度)を逐次補正する。最高値が保持される場合に限られず、最高値に近い速度が一定に保持されてもよい。そして移動終了予定時刻でその速度が0となる。
【0098】
図19に示す例のアプリケーションの例としては、例えば野球ゲームで、ピッチャーがオブジェクトとしてのボールを投げ、そのボールが速度最高値でピッチャーの手を離れ、そのボールが一定速度であるその最高値の速度で進むような表示制御が挙げられる。
【0099】
図20に示す例では、補正演算部106は、速度を移動終了予定時刻で実質的に0とするように、加速終了時刻以降の、算出される速度(演算誤差を含む速度)を逐次補正して減衰させる。この減衰時の速度のプロファイルは、一次関数的でもよいし、指数関数的でもよい。これにより、操作デバイス10の動きに対応した自然なオブジェクトの動きを実現することができる。
【0100】
図21示す例では、補正演算部106は、動き情報のうち移動距離を、移動終了予定時刻までに一定間隔の離散値へ収束させる。この例では、離散値の間隔は100mmに設定されているが、適宜設定の変更可能である。
【0101】
以上のように、本実施形態では、演算誤差が少ない加速期間内に得られた情報に基づき、加速終了時刻から移動終了時刻までの期間内の操作デバイス10の動きの演算結果の情報が補正される。これにより、演算処理による誤差の蓄積に起因する動きの検出精度の悪化を防止し、実用的な、動きの検出精度を実現することができる。
【0102】
[補正処理の方法2]
【0103】
以降では、以上で説明した補正処理とは別形態の補正処理について説明する。この補正処理は、加速終了時刻から移動終了予定時刻までの期間のうち少なくとも一部の期間に得られた、ユーザによる操作デバイス10の操作状態の情報に応じて、動き情報を補正する。
【0104】
操作状態の情報とは、上記したように、各センサ12〜15で得られる検出情報、総圧力演算部101で算出された総圧力、または、機械スイッチ16による信号から得られる情報等である。この操作状態の情報は、移動状態検出部103により取得され、この時、移動状態検出部103は、操作状態取得手段として機能する。
【0105】
図22及び23は、その補正処理の例を説明するための図である。ユーザがグローバルX軸に沿って操作デバイス10を移動させ、加速終了時刻から移動終了予定時刻までの期間内で、図23に示すようにユーザがそのX軸周り(ヨー角)の正方向に操作デバイス10を回転させる。つまりこの操作は、ユーザが操作デバイス10を、グローバル座標系で水平右方向へ移動させ、後半期間で例えばそれを手前に引くような操作である。この回転速度、つまり角速度は角速度センサ13により検出される。
【0106】
図23中、「情報取得タイミング」は、上記したように加速期間内の情報を得るタイミングであり、例えば上記した加速度に関する時間情報などを得るタイミングである。
【0107】
移動状態検出部103は、検出された角速度が閾値を超えた場合に、ユーザによる意図的な操作であると判定すればよい。そのようなユーザの意図的な回転操作があった場合、図22の下の図に示すように、その回転角度に応じて例えば減速期間内の速度のプロファイルを逐次補正する。表示部52で表示されるオブジェクトが3Dのオブジェクトである場合、この補正処理により、その3Dオブジェクトが後半期間で手前に近づくように表示される。
【0108】
この補正処理は、図20で示した補正処理と組み合わせで実行されてもよい。この場合、図20で示した補正処理が前提となり、この補正処理が実行された上で図22及び23に示した補正処理が実行される。
【0109】
図24及び25は、別の補正処理の例を説明するための図である。この例では圧力センサ15の群による総圧力の情報が用いられる。加速期間中で得られる総圧力に比べ、減速期間で握る総圧力がユーザによる意図により大きくされた場合、その総圧力の検出に基づき速度または移動距離を大きくする。総圧力の変動に応じて逐次補正が行われてもよい。意図的か否かの判定は、閾値判定が用いられればよい。このような補正処理が実行された場合、移動終了予定時刻ではオブジェクトが停止せずに、所定の速度で移動するように表示される。つまり、ユーザが操作デバイス10の移動を停止させた後でも、オブジェクトは移動し続けるように表示される。
【0110】
逆に加速期間の総圧力より減速期間の総圧力を小さくした場合、速度または移動距離が小さくなるように補正され、これにより、移動終了予定時刻よりも前にオブジェクトが停止するように表示される。
【0111】
あるいは、減速期間内で総圧力が大きくされた場合、総圧力の検出に基づき速度または移動距離を小さく(大きく)してもよい。
【0112】
[補正処理の方法3]で説明するように、操作状態に応じて移動終了予定時刻を変更することによっても、このような補正処理を実現することが可能である。
【0113】
図22〜25で示した補正処理の他、減速期間内に例えば加速度センサ12により検出された加速度に基づき、あるいは、機械スイッチにより検出された信号に基づき、動き情報が補正されてもよい。検出された加速度に基づき動き情報が補正される例として、減速期間内に、それまでと同じ方向に加速度が検出された場合、その方向に移動終了予定時刻にオブジェクトが停止せずに移動し続けるように表示される、といった例も実現可能である。
【0114】
機械スイッチの信号に基づき動き情報が補正される例として、例えば減速期間内に機械スイッチがONとされた場合、例えば図19〜25を参照して説明したように動き情報が補正され、OFFとされた場合に、その補正処理が中止される、といった例も実現可能である。
【0115】
[補正処理の方法3]
【0116】
上記補正処理の方法2では、減速期間内の操作状態に応じて、動き情報が補正される例を示した。別の補正処理として、減速期間内に検出された加速度、角速度、総圧力、または、機械スイッチの信号の情報に応じて、移動終了予定時刻が変更される。
【0117】
例えば、減速期間内に加速度が閾値を超えた場合、移動終了予定時刻を短縮(あるいは延長)する補正処理を実現できる。減速期間内に角速度が閾値を超えた場合についても、これと同様である。
【0118】
例えば、減速期間内に総圧力がそれまでより大きくなった場合、移動終了予定時刻を所定の時間延長し、総圧力がそれまでより小さくなった場合、移動終了予定時刻を所定の時間を短縮する補正処理を実現できる。あるいはその逆でもよい。
【0119】
あるいは、ユーザが、減速期間内に操作デバイス10を握るのをやめた場合(総圧力が実質的に0となった場合)、移動終了予定時刻をその総圧力が実質的に0とされた時刻(その直後)とすることも可能である。この場合、ユーザが操作デバイス10を握ることをやめたタイミングで、オブジェクトが停止するように表示される。
【0120】
あるいは、減速期間内に機械スイッチがONとされた場合、そのスイッチがOFFとなるまで終了予定時刻を無制限に延長し続ける、といった補正処理を実現できる。
【0121】
[その他の実施形態]
本発明に係る実施形態は、以上説明した実施形態に限定されず、他の種々の実施形態が実現される。
【0122】
上記実施形態では、例えば図4で示したように、表示デバイス50が各部101〜107での処理を実行した。しかし、操作デバイス10が、各部101〜107のうち少なくとも一部の処理を実行してもよい。すなわち、操作デバイス10が本実施形態の特徴を持つ情報処理装置として機能してもよい。
【0123】
操作デバイス10による操作対象物として、表示デバイス50に表示されるオブジェクトに限られず、例えば遠隔制御される機械やロボット等でもよい。
【符号の説明】
【0124】
1…MCU
4…ROM
5…通信機
10…操作デバイス
12…加速度センサ
13…角速度センサ
14…磁気センサ
15…圧力センサ
16…機械スイッチ
50…表示デバイス
54…CPU
56…通信部
101…総圧力演算部
102…姿勢角度演算部
103…移動状態検出部
104…座標変換部
105…積分演算部
106…補正演算部
107…アプリケーション用出力値変換部

【特許請求の範囲】
【請求項1】
ユーザにより操作される、加速度センサを有する操作デバイスの、前記加速度センサで検出される加速度の情報に基づき、前記操作デバイスの、速度または移動距離の情報である動き情報を算出する演算手段と、
前記加速度センサにより前記操作デバイスの加速開始時刻から加速終了時刻までの期間である加速期間内に得られた情報に基づき、前記操作デバイスの前記加速終了時刻からその移動が終了する移動終了時刻までの期間内における、前記演算手段により算出される前記操作デバイスの前記動き情報を補正する補正手段と
を具備する情報処理装置。
【請求項2】
請求項1に記載の情報処理装置であって、
前記補正手段は、前記加速度センサにより前記加速期間内の少なくとも一部の時間を計測する手段と、前記計測された時間に基づき、前記操作デバイスの移動が終了する予定時刻である移動終了予定時刻を算出する手段とを有し、前記加速終了時刻から前記算出された移動終了予定時刻までの期間内の少なくとも一部における前記動き情報を補正する
情報処理装置。
【請求項3】
請求項2に記載の情報処理装置であって、
前記補正手段は、前記動き情報のうち前記速度を、前記加速終了時刻から一定とし、前記移動終了予定時刻でゼロとする
情報処理装置。
【請求項4】
請求項2に記載の情報処理装置であって、
前記補正手段は、前記動き情報のうち前記速度を前記移動終了予定時刻でゼロとするように、前記加速終了時刻以降における前記速度を減衰させる
情報処理装置。
【請求項5】
請求項2に記載の情報処理装置であって、
前記補正手段は、前記動き情報のうち前記移動距離を、前記移動終了予定時刻までに一定間隔の離散値へ収束させる
情報処理装置。
【請求項6】
請求項2から5のうちいずれか1項に記載の情報処理装置であって、
前記補正手段は、前記加速終了時刻から前記加速期間分の時間が経過した時刻を、前記移動終了予定時刻として算出する
情報処理装置。
【請求項7】
請求項2から5のうちいずれか1項に記載の情報処理装置であって、
前記補正手段は、前記加速終了時刻から前記加速期間分の時間が経過した時刻に所定の時間を加算または減算した時刻を、前記移動終了予定時刻として算出する
情報処理装置。
【請求項8】
請求項7に記載の情報処理装置であって、
前記補正手段は、前記演算手段により算出された前記動き情報に基づき、前記所定の時間を可変に制御する
情報処理装置。
【請求項9】
請求項8に記載の情報処理装置であって、
前記補正手段は、前記加速終了時刻における前記動き情報と閾値とを比較することで、前記所定の時間を設定する
情報処理装置。
【請求項10】
請求項2から5のうちいずれか1項に記載の情報処理装置であって、
前記ユーザによる前記操作デバイスの操作状態の情報を得る操作状態取得手段をさらに具備し、
前記補正手段は、前記加速終了時刻から前記算出された前記移動終了予定時刻までの期間のうち少なくとも一部の期間に得られた前記操作状態の情報に応じて、前記動き情報を補正する
情報処理装置。
【請求項11】
請求項10に記載の情報処理装置であって、
前記操作状態取得手段は、前記加速度センサにより検出された前記加速度を取得し、
前記補正手段は、前記取得された加速度に基づき前記動き情報を補正する
情報処理装置。
【請求項12】
請求項10に記載の情報処理装置であって、
前記操作状態取得手段は、前記操作デバイスがさらに有する角速度センサにより検出された角速度を取得し、
前記補正手段は、前記取得された角速度に基づき前記動き情報を補正する
情報処理装置。
【請求項13】
請求項10に記載の情報処理装置であって、
前記操作状態取得手段は、前記操作デバイスがさらに有する圧力センサにより検出された、前記ユーザが前記操作デバイスを把持する時の圧力を取得し、
前記補正手段は、前記取得された圧力に基づき前記動き情報を補正する
情報処理装置。
【請求項14】
請求項10に記載の情報処理装置であって、
前記操作状態取得手段は、前記操作デバイスがさらに有する、前記ユーザに操作される機械スイッチにより検出された信号を取得し、
前記補正手段は、前記取得された信号に基づき前記動き情報を補正する
情報処理装置。
【請求項15】
請求項2から7のうちいずれか1項に記載の情報処理装置であって、
前記ユーザによる前記操作デバイスの操作状態の情報を得る操作状態取得手段をさらに具備し、
前記補正手段は、前記加速終了時刻から前記算出された前記移動終了予定時刻までの期間のうち少なくとも一部の期間に得られた前記操作状態の情報に応じて、前記移動終了予定時刻を変更する
情報処理装置。
【請求項16】
請求項15に記載の情報処理装置であって、
前記操作状態取得手段は、前記加速度センサにより検出された前記加速度を取得し、
前記補正手段は、前記取得された加速度に基づき前記移動終了予定時刻を変更する
情報処理装置。
【請求項17】
請求項15に記載の情報処理装置であって、
前記操作状態取得手段は、前記操作デバイスがさらに有する角速度センサにより検出された角速度を取得し、
前記補正手段は、前記取得された角速度に基づき前記移動終了予定時刻を変更する
情報処理装置。
【請求項18】
請求項15に記載の情報処理装置であって、
前記操作状態取得手段は、前記操作デバイスがさらに有する圧力センサにより検出された、前記ユーザが前記操作デバイスを把持する時の圧力を取得し、
前記補正手段は、前記取得された圧力に基づき前記移動終了予定時刻を変更する
情報処理装置。
【請求項19】
請求項15に記載の情報処理装置であって、
前記操作状態取得手段は、前記操作デバイスがさらに有する、前記ユーザに操作される機械スイッチにより検出された信号を取得し、
前記補正手段は、前記取得された信号に基づき前記移動終了予定時刻を変更する
情報処理装置。
【請求項20】
加速度センサと、前記加速度センサで検出された加速度の情報を送信する送信手段とを有し、ユーザにより操作される操作デバイスと、
前記操作デバイスの前記送信手段で送信された前記加速度の情報を受信する受信手段と、前記受信された加速度の情報に基づき、前記操作デバイスの、速度または移動距離の情報である動き情報を算出する演算手段と、前記加速度センサにより前記操作デバイスの加速開始時刻から加速終了時刻までの期間である加速期間内に得られた情報に基づき、前記操作デバイスの前記加速終了時刻からその移動が終了する移動終了時刻までの期間内における、前記演算手段により算出される前記操作デバイスの前記動き情報を補正する補正手段とを有し、前記補正された動き情報に基づき、前記操作デバイスの操作対象物を制御する制御装置と
を具備する情報処理システム。
【請求項21】
ユーザにより操作される、加速度センサを有する操作デバイスの、前記加速度センサで検出される加速度の情報に基づき、前記操作デバイスの、速度または移動距離の情報である動き情報を算出し、
前記加速度センサにより前記操作デバイスの加速開始時刻から加速終了時刻までの期間である加速期間内に得られた情報に基づき、前記操作デバイスの前記加速終了時刻からその移動が終了する移動終了時刻までの期間内における、前記演算手段により算出される前記操作デバイスの前記動き情報を補正する
コンピュータによる情報処理方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
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

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図24】
image rotate

【図6】
image rotate

【図23】
image rotate

【図25】
image rotate