(57)【特許請求の範囲】
【請求項１】
ローカル座標系における直交３軸の検出軸を有する加速度センサ、前記直交３軸の検出軸を有する角速度センサ及び前記直交３軸の検出軸を有する磁気センサを備えた、ユーザにより３次元空間内で任意の姿勢で操作され得る操作デバイスの、前記加速度センサ、前記角速度センサ及び前記磁気センサでそれぞれ検出された加速度、角速度及び磁気強度の情報を取得する取得手段と、
前記３次元空間を表すグローバル座標系における前記操作デバイスの姿勢角度の情報を用いて、前記取得手段により取得された角速度及び加速度を、前記グローバル座標系におけるグローバル角速度及びグローバル加速度にそれぞれ変換する座標変換手段と、
前記ユーザによる前記操作デバイスの操作の開始時に前記取得手段で取得された前記加速度及び前記磁気強度の情報に基づき、前記姿勢角度のうち、前記操作デバイスの前記グローバル座標系における初期の前記姿勢角度である初期姿勢角度を算出する初期姿勢角度算出手段と、
前記座標変換手段で変換された前記グローバル角速度の情報に基づき、前記操作デバイスの前記グローバル座標系における前記姿勢角度を更新する更新手段と、
前記座標変換手段に、前記初期姿勢角度算出手段で算出された前記初期姿勢角度の情報を用いて、前記操作の開始時に前記取得手段で取得された第１の角速度及び第１の加速度を前記グローバル角速度及び前記グローバル加速度にそれぞれ変換させ、前記更新された姿勢角度の情報を用いて、前記第１の角速度及び第１の加速度が取得された後に取得された第２の角速度及び第２の加速度を前記グローバル角速度及び前記グローバル加速度にそれぞれ変換させる制御手段と
を具備する情報処理装置。
【請求項２】
請求項１に記載の情報処理装置であって、
前記取得手段で取得された、前記加速度、前記角速度及び前記磁気強度のうち、少なくとも１つの情報を用いて、前記ユーザにより前記操作デバイスの操作が開始されたことを判定する判定手段をさらに具備する情報処理装置。
【請求項３】
請求項１または２に記載の情報処理装置であって、
前記操作デバイスの操作対象物は、前記情報処理装置と電気的に接続された表示デバイスの画面に表示される３次元画像である
情報処理装置。
【請求項４】
操作デバイスであって、
ローカル座標系における直交３軸の検出軸を有する加速度センサと、
前記直交３軸の検出軸を有する角速度センサと、
前記直交３軸の検出軸を有する磁気センサと、
前記加速度センサ、前記角速度センサ及び前記磁気センサでそれぞれ検出された加速度、角速度及び磁気強度の情報を送信する送信手段とを有し、
ユーザにより３次元空間内で任意の姿勢で操作され得る操作デバイスと、
制御装置であって、
前記操作デバイスから送信された前記情報を受信する受信手段と、
前記３次元空間を表すグローバル座標系における前記操作デバイスの姿勢角度の情報を用いて、前記受信された角速度及び加速度を、前記グローバル座標系におけるグローバル角速度及びグローバル加速度にそれぞれ変換する座標変換手段と、
前記ユーザによる前記操作デバイスの操作の開始時に前記受信手段で受信された前記加速度及び前記磁気強度の情報に基づき、前記姿勢角度のうち、前記操作デバイスの前記グローバル座標系における初期の前記姿勢角度である初期姿勢角度を算出する初期姿勢角度算出手段と、
前記座標変換手段で変換された前記グローバル角速度の情報に基づき、前記操作デバイスの前記グローバル座標系における前記姿勢角度を更新する更新手段と、
前記座標変換手段に、前記初期姿勢角度算出手段で算出された前記初期姿勢角度の情報を用いて、前記操作の開始時に前記受信手段で受信された第１の角速度及び第１の加速度を前記グローバル角速度及び前記グローバル加速度にそれぞれ変換させ、前記更新された姿勢角度の情報を用いて、前記第１の角速度及び第１の加速度が受信された後に受信された第２の角速度及び第２の加速度を前記グローバル角速度及び前記グローバル加速度にそれぞれ変換させる制御手段と
を有する制御装置と
を具備する情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、加速度センサ等を有する操作デバイスが、ユーザにより３次元空間内で操作される時に、その加速度センサ等から得られる情報に基づき、操作デバイスの動きに応じた操作対象物の動きを実現するための演算を実行する情報処理装置、情報処理システム及び情報処理方法に関する。
【背景技術】
【０００２】
近年、空間操作型の操作装置あるいは入力装置が多種提案されている。例えば、特許文献１に記載の入力装置は、３次元空間内で６次元のマウスの動きを検出する。具体的には、この入力装置は、直交３軸の加速度を検出する加速度計及び直交３軸まわりの回転速度を検出する回転速度センサを備えている。この入力装置を含むシステムは、得られた加速度及び回転速度に基づいて、自身の位置及び姿勢などを判別し、表示装置等のコンピュータは、ＧＵＩ（Graphical User Interface）に、その入力装置の動きに応じた動きを実現させる（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特表平６−５０１１１９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、ユーザが、特許文献１に記載の入力装置等の操作デバイスを用いて操作対象物を操作する場合、操作デバイスに内蔵されたセンサの検出軸と操作対象物の軸を一致させるようにして、操作デバイスを把持する必要がある。これは、ユーザが操作デバイスを把持して操作を開始したり、誤差（操作デバイスの動きと操作対象物の動きの誤差等）の補正を行ったりする際に、ユーザは自身の手元を確認しながら操作デバイスを所定の方向に向ける必要があることを意味する。
【０００５】
このように、操作デバイスをユーザが握って自身の手元を確認する等、頻繁に視線を変更したり、その手元の方に頻繁に注意を払ったりする場合、疲労感及び動揺病等の、ユーは自律神経失調状態を生じやすくなる。
【０００６】
そこで、ユーザが任意の方向に向けてあるいは任意の握り方でそれを把持しても、つまり、操作デバイスが３次元空間内における任意の姿勢で把持されても、操作対象物を操作可能にする操作デバイスの実現が望まれる。このような操作デバイスを実現するためには、センサの検出軸と操作対象物の軸との関係（つまり３次元空間内における操作デバイスの姿勢）が、ユーザの意識によらずに、操作デバイスあるいはそれを含むシステムにより認識される必要がある。
【０００７】
また、特に加速度センサを備える操作デバイスをユーザが操作して動かす時、加速度センサにより重力加速度及び運動加速度の両方が検出されるので、上記操作デバイスの姿勢認識のための演算には工夫を要する。
【０００８】
以上のような事情に鑑み、本発明の目的は、ユーザに把持される操作デバイスの姿勢が３次元空間内におけるどのような姿勢となる場合であっても、演算誤差の発生を抑制しながら操作デバイスの姿勢を認識して、操作デバイスによる操作を可能にする情報処理装置、情報処理システム及び情報処理方法を提供することにある。
【課題を解決するための手段】
【０００９】
上記目的を達成するため、本発明の一形態に係る情報処理装置は、取得手段と、座標変換手段と、初期姿勢角度算出手段と、更新手段と、制御手段とを具備する。
【００１０】
操作デバイスは、ローカル座標系における直交３軸の検出軸を有する加速度センサ、前記直交３軸の検出軸を有する角速度センサ及び前記直交３軸の検出軸を有する磁気センサを備え、ユーザにより３次元空間内で任意の姿勢で操作され得る。  
前記取得手段は、前記操作デバイスの、前記加速度センサ、前記角速度センサ及び前記磁気センサでそれぞれ検出された加速度、角速度及び磁気強度の情報を取得する。  
前記変換手段は、前記３次元空間を表すグローバル座標系における前記操作デバイスの姿勢角度の情報に基づき、前記取得手段で取得された前記角速度を、前記グローバル座標系におけるグローバル角速度に変換する。  
初期姿勢角度算出手段は、前記ユーザによる前記操作デバイスの操作の開始時に前記取得手段で取得された前記加速度及び前記磁気強度の情報に基づき、前記姿勢角度のうち、前記操作デバイスの前記グローバル座標系における初期の前記姿勢角度を算出する。  
前記更新手段は、前記座標変換手段で変換された前記グローバル角速度の情報に基づき、前記操作デバイスの前記グローバル座標系における前記姿勢角度を更新する。  
前記制御手段は、前記座標変換手段に、前記角度算出手段で算出された前記初期姿勢角度の情報を用いて、前記操作の開始時に前記取得手段で取得された前記第１の角速度を前記グローバル角速度に変換させ、前記更新された姿勢角度の情報を用いて、前記第１の角速度が取得された後に取得された第２の角速度を前記グローバル角速度に変換させる。  
【００１１】
本発明では、直交３軸の加速度、角速度及び磁気強度の情報に基づき、操作デバイスのグローバル座標系における初期姿勢角度を含む姿勢角度が算出される。したがって、ユーザは、３次元空間内で任意の姿勢にある操作デバイスを用いて操作対象物を操作することができる。
また、ユーザによる操作開始時には、加速度センサにより得られた加速度を含む情報に基づき算出される初期姿勢角度の情報を用いて座標変換手段により第１の角速度が変換される。つまり、操作が開始される瞬間には、加速度センサには実質的に重力加速度のみが検出され、初期姿勢角度算出手段によりこの重力加速度を含む情報に基づき初期姿勢角度が算出され、座標変換手段においてその算出された情報が用いられる。
【００１２】
しかし、その後のユーザの操作中は、加速度センサでは、重力加速度に、運動加速度（慣性加速度）が加えられた値が検出される。したがって、仮に、ユーザの操作中に加速度センサで得られるこのような運動加速度を含む加速度に基づき姿勢角度を算出した場合、大きな誤差が発生する。
【００１３】
そこで、初期値として取得された第１の角速度より後に取得された第２の角速度については、運動加速度の情報を含まない情報、つまり、少なくとも１度更新された姿勢角度の情報に基づき、座標変換処理が実行される。
【００１４】
これにより、ユーザによる操作デバイスの操作中において発生する運動加速度の影響が、操作デバイスの姿勢角度の演算に及んでその演算に誤差を発生させる、といった事態を抑制することができる。
【００１５】
前記座標変換手段は、前記取得手段で取得された前記加速度を、前記更新手段で更新された前記操作デバイスの姿勢角度の情報に基づき、前記グローバル座標系におけるグローバル加速度に変換してもよい。更新手段で更新された姿勢角度の情報には、上述のように運動加速度の情報は含まれないので、この姿勢角度の情報に基づき加速度がグローバル加速度に変換されることにより、操作デバイスの動きを操作対象物に反映させることができる。
【００１６】
前記情報処理装置は、前記取得手段で取得された、前記加速度、前記角速度及び前記磁気強度のうち、少なくとも１つの情報を用いて、前記ユーザにより前記操作デバイスの操作が開始されたことを判定する判定手段をさらに具備してもよい。これにより、操作デバイスの操作の開始時が規定されるため、操作デバイスの初期の姿勢角度の出力タイミングを明確に規定することができる。
【００１７】
前記操作デバイスの操作対象物は、前記情報処理装置と電気的に接続された表示デバイスの画面に表示される３次元画像であってもよい。
【００１８】
本発明の一形態に係る情報処理システムは、操作デバイスと、制御装置とを具備する。
前記操作デバイスは、ローカル座標系における直交３軸の検出軸を有する加速度センサと、前記直交３軸の検出軸を有する角速度センサと、前記直交３軸の検出軸を有する磁気センサと、前記加速度センサ、前記角速度センサ及び前記磁気センサでそれぞれ検出された加速度、角速度及び磁気強度の情報を送信する送信手段とを有し、ユーザにより３次元空間内で任意の姿勢で操作され得る。  
前記制御装置は、前記操作デバイスから送信された前記情報を受信する受信手段と、上述したような、座標変換手段と、初期姿勢角度算出手段と、更新手段と、制御手段とを具備する。
【００１９】
本発明の一形態に係る情報処理方法は、ローカル座標系における直交３軸の検出軸を有する加速度センサ、前記直交３軸の検出軸を有する角速度センサ及び前記直交３軸の検出軸を有する磁気センサを備えた、ユーザにより３次元空間内で任意の姿勢で操作され得る操作デバイスの、前記加速度センサ、前記角速度センサ及び前記磁気センサでそれぞれ検出された加速度、角速度及び磁気強度の情報を取得することを含む。  
前記ユーザによる前記操作デバイスの操作の開始時に前記取得された前記加速度及び前記磁気強度の情報に基づき、前記３次元空間を表すグローバル座標系における前記操作デバイスの姿勢角度のうち、初期の姿勢角度が算出される。  
前記算出された初期の姿勢角度を用いて、前記操作の開始時に取得された第１の角速度が、前記グローバル座標系におけるグローバル角速度に変換される。
前記変換された前記グローバル角速度の情報に基づき、前記初期の姿勢角度に代わる新たな姿勢角度が算出される。  
前記算出された新たな姿勢角度の情報を用いて、前記第１の角速度が取得された後に取得された第２の角速度が前記グローバル角速度に変換される。
【発明の効果】
【００２０】
以上、本発明によれば、ユーザに把持される操作デバイスの姿勢が３次元空間内におけるどのような姿勢となる場合であっても、演算誤差の発生を抑制しながら操作デバイスの姿勢を認識して、操作デバイスによる操作を可能にする。
【図面の簡単な説明】
【００２１】
【図１】図１は、本発明の一実施形態に係る情報処理システムを示す図である。
【図２】図２は、操作デバイスのハードウェアの構成を示す図である。
【図３】図３は、表示デバイスのハードウェアの構成を示す図である。
【図４】図４は、操作デバイスの各センサの検出軸及びこれらの相対的な配置を説明するための図である。
【図５】図５は、ローカル座標系とグローバル座標系の関係を示す図である。
【図６】図６は、操作デバイスの処理を示すフローチャートである。
【図７】図７は、図６に示した演算処理の原理を説明するための図であり、センサ基板の傾き（姿勢）がグローバル座標系において傾いている状態を示す図である。
【図８】図８は、図７と同様、図６に示した演算処理の原理を説明するための図である。
【図９】図９は、ユーザが操作デバイスを用いて実際にオブジェクトを操作している様子を示す図である。
【図１０】図１０は、表示デバイスの表示部と、ユーザ（の眼）との距離を示す図である。
【図１１】図１１は、３Ｄ映像の奥行き方向（X軸方向）での表示原理を説明するための図であり、オブジェクトが表示部の奥に表示される形態を示す。
【図１２】図１２は、３Ｄ映像の奥行き方向（X軸方向）での表示原理を説明するための図であり、オブジェクトが表示部より手前に表示される形態を示す。
【発明を実施するための形態】
【００２２】
以下、図面を参照しながら、本発明の実施形態を説明する。
【００２３】
[情報処理システムの構成]
図１は、本発明の一実施形態に係る情報処理システムを示す図である。
【００２４】
この情報処理システムは、ユーザにより操作される操作デバイス１０と、この操作デバイス１０から送信された操作情報を受信して、その情報に基づいて表示処理を実行する表示デバイス５０とを備える。操作デバイス１０と表示デバイス５０とは電気的に接続されており、本実施形態では、赤外線や電波等の無線により通信が行われる接続されている。
【００２５】
操作デバイス１０は、人が手で握ることができる程度の大きさに形成され、例えば球形状をなしている。表示デバイス５０は、ユーザの操作デバイス１０を用いた操作により、表示部５２の画面内でオブジェクト（操作対象物）５１を回転させたり、移動させたり等、その表示の制御を実行する制御装置として機能する。
【００２６】
表示デバイス５０の典型例としては、例えば３Ｄ（Dimension）ＴＶ等、３Ｄのオブジェクト５１を表示可能な装置である。操作対象物は、３Ｄ画像に限られず、アイコンやポインタ等の２Ｄ画像であってもよい。あるいはアイコンやポン他が３Ｄ画像で表示されてもよい。
【００２７】
図２は、操作デバイス１０のハードウェアの構成を示す図である。操作デバイス１０は、加速度センサ５、角速度センサ６、磁気センサ７、ＣＰＵ２、ＲＡＭ３、ＲＯＭ４及び送信機８を備えている。また、操作デバイス１０は、図示しない電源、圧力センサ９や書き換え可能なメモリ等を備えている。ＣＰＵ２の代わりとして、例えばＦＰＧＡ（Field Programmable Gate Array）等のようなプログラム可能なハードウェアが用いられてもよい。角速度センサ６としては、例えばコリオリ力を利用して角速度そのものを検出するデバイスが用いられる。
【００２８】
これらのハードウェアは、球形の筐体１１内に、筐体１１に対して固定されるようにして配置されている。圧力センサ９は、例えば筐体１１の内面側に複数取り付けられており、これらの圧力センサ群により、ユーザの加圧位置及びその圧力を検知する。
【００２９】
図３は、表示デバイス５０のハードウェアの構成を示す図である。表示デバイス５０は、一般的なコンピュータと同様に、ＣＰＵ５３、ＲＯＭ５４及びＲＡＭ５５を備え、また、表示部５２、通信部５６及び記憶部５７を有する。通信部５６は、ここでは主に受信機として機能する。記憶部５７は、典型的にはＲＯＭ５４やＲＡＭ５５に対して補助的な（２次的な）記憶部である。
【００３０】
なお、この表示デバイス５０は、操作デバイス１０からの送信された情報を受信してオブジェクト５１の表示を制御する制御部分（制御装置）と、表示部５２とが一体となった構成を有しているが、これらは別体で有線または無線により通信できるように互いに接続されていてもよい。
【００３１】
図４は、操作デバイス１０の各センサの検出軸及びこれらの相対的な配置を説明するための図である。加速度センサ５、角速度センサ６及び磁気センサ７は、すべて、直交３軸の検出軸をそれぞれ有している。すなわち、加速度センサ５は、３つの検出軸に対応するセンサ（５ａ，５ｂ，５ｃ）を有する。角速度センサ６及び磁気センサ７も同様に、センサ（６ａ，６ｂ，６ｃ）、（７ａ，７ｂ，７ｃ）をそれぞれ有する。
【００３２】
例えば、これらセンサ５、６及び７のすべてが共通の１つのパッケージにパッケージングされている。あるいは、これらセンサ５、６及び７が別々のパッケージングでパッケージされ、共通の１つのセンサ基板上に搭載されている。
【００３３】
操作デバイス１０のＲＯＭ４や図示しないメモリ、及び／または、表示デバイス５０のＲＯＭ５４や記憶部５７には、後述する図６に示す処理を実現するためのソフトウェア等が格納されている。図６に示す処理は、操作デバイス１０の姿勢を認識するための処理である。以下に説明する形態では、主にＣＰＵ２及び上記ソフトウェアが制御手段として機能する。
【００３４】
図５は、ローカル座標系とグローバル座標系の関係を示す図である。
【００３５】
地面上には表示デバイス５０が置かれている。ここでは、この地面あるいは表示デバイス５０に固定された座標系をグローバル座標系という。そして、このグローバル座標系に対して自由に動くことが可能な座標であって、操作デバイス１０のセンサ基板２０に対して固定された座標系を、ローカル座標系という。センサ基板２０とは、上記したように、加速度センサ５、角速度センサ６及び磁気センサ７が搭載された共通の基板である。
【００３６】
説明の便宜のため、以降では、グローバル座標系を大文字（X、Y、Z）で表し、ローカル座標系を小文字（x、y、z）で表す。しかし、文章を理解しやすくするため、できるだけ「ローカル」、「グローバル」の表現を用いて説明する。グローバル座標系において地面をX-Y平面とし、ローカル座標系の基板の主面に平行な面をx-y平面とする。
【００３７】
[操作デバイスの処理内容]
図６は、操作デバイスの処理を示すフローチャートである。
【００３８】
各センサ５（５ａ，５ｂ，５ｃ）、６（６ａ，６ｂ，６ｃ）、７（７ａ，７ｂ，７ｃ）にから出力される信号は、ＡＤ変換器によりデジタル情報に変換される（ステップ１０１）。この場合、主にＣＰＵ２は、加速度、角速度及び磁気強度の情報を取得する取得手段として機能する。取得手段により取得された情報は、まず開始判定の処理（ステップ１０２）に用いられる。開始判定とは、ユーザが操作デバイスを把持して操作を開始したか否かの判定である。
【００３９】
この開始判定処理は、例えば、加速度センサ５、角速度センサ６及び磁気センサ７のうち少なくとも１つから得られた情報を用いて実行される。図６では、例えばすべてのセンサ５、６及び７から得られた情報を用いて開始判定処理が実行されているが、以下の式１及び２を用いた開始判定処理では、加速度センサ５のみが用いられる。開始判定処理が実行される時、例えばＣＰＵ５等及びこの演算内容が記述されたソフトウェアは、判定手段として機能する。
【００４０】
【数１】
0005640716.tif 000002
ax、ay、az：加速度センサ（５ａ、５ｂ、５ｃ）で検出された３軸の加速度（ローカル加速度）
B、C：定数
【００４１】
式１の「定数」は、例えばゼロに近い値が設定される。式１が成立しない場合、それは加速度センサ５に重力加速度以外に運動加速度が加わったことを意味し、操作デバイスが動いたと判定される。式２では、検出された加速度が所定の範囲外にあるときに、操作デバイスが動いたと判定される。
【００４２】
ステップ１０３以降の処理は、操作が開始されたと判定された場合に実行される処理である。
【００４３】
操作デバイス１０による操作の開始時に、ステップ１０３では、加速度センサ５で検出された加速度（特にx及びy軸方向における加速度（ax，ay））の情報に基づき、操作デバイス１０の、グローバルX及びY軸まわりの初期姿勢角度がそれぞれ算出される。図７は、その演算処理の原理を説明するための図であり、センサ基板２０の傾き（姿勢）がグローバル座標系において傾いている状態を示す図である。
【００４４】
例えばグローバルY軸まわりの初期姿勢角度、つまりX軸からの角度θxを算出する場合には、加速度axの情報に基づき、下の式３により演算される。式３において、図８に示すように、例えばx軸の加速度センサ５ａで検出される重力１Gの値をAxGとし、センサ基板２０が傾いた状態（加速度センサ５（５ａ）が傾いた状態）における、加速度センサ５ａの値をaxとしている。
【００４５】
同様に、加速度ayの情報に基づき、グローバルX軸まわりの初期姿勢角度、つまりY軸からの角度θyが式４により演算される。重力１Ｇに対するy軸の加速度センサ５ｂの値をAyGとする。
【００４６】
【数２】
0005640716.tif 000003
AxG、AyG：x、y軸の加速度センサ５ａ、５ｂでそれぞれ検出される重力加速度１G
ax、ay、az：x、y、z軸の加速度センサ５ａ、５ｂ、５ｃでそれぞれ検出されている現在の値（ローカル加速度）
θx、θy：グローバル座標系でのセンサ基板のX、Y軸からの初期姿勢角度
【００４７】
なお、式３及び４では正弦が用いられたが、余弦や他の演算方法によっても初期姿勢角度を算出することができる。
【００４８】
次に、ステップ１０４では、ステップ１０３で算出された情報、及び、磁気センサ７で検出されたローカル座標系における各軸方向での磁気強度の情報に基づき、操作デバイス１０のグローバルZ軸まわりの初期姿勢角度（方位）が算出される。
【００４９】
この演算には、下の式５が用いられる。式５では、x、y、z軸の磁気センサ７ａ、７ｂ、７ｃでそれぞれ検出された磁気強度（ローカル磁気強度）をhx、hy、hzとする。また、演算により求められるグローバルX、Y、Z軸方向の磁気強度（グローバル磁気強度）をHx、Hy、Hzとする。
【００５０】
【数３】
0005640716.tif 000004
hx、hy、hz：ローカル座標系におけるx、y、z軸方向の磁気強度（ローカル磁気強度）
Hx、Hy：グローバルX、Y軸方向の磁気強度（グローバル磁気強度）
θz：グローバルZ軸周りの初期姿勢角度（方位）
【００５１】
このように地磁気を検出する磁気センサ７を用いることにより、操作デバイス１０は、グローバルZ軸まわりでのセンサ基板２０の方位を認識することができる。式３〜５を演算する場合において、ＣＰＵ２及びこの演算内容が記述されたソフトウェアは、初期姿勢角度算出手段として機能する。
【００５２】
以上のようにして、ステップ１０３及び１０４の演算処理により、操作デバイス１０は、グローバル座標系における、センサ基板２０の初期の姿勢（X、Y、Z軸に対する傾き）を認識することができる。つまり、ユーザが操作デバイス１０の握り方及びその方向等を意識せずとも、操作デバイス１０が自らの姿勢を認識することができる。その結果、ユーザは、３次元空間内で任意の姿勢にある操作デバイスを用いて操作を開始することができる。
【００５３】
次に、ステップ１０５では、ステップ１０３及び１０４で算出された初期姿勢角度（θx、θy、θz）の情報に基づき、操作開始時に、つまり操作開始直後に角速度センサ６で検出された角速度が、グローバル座標系におけるグローバル角速度に変換される。すなわちこれは回転座標変換である。この演算処理には、式６が用いられる。この場合、ＣＰＵ２及びこの演算内容が記述されたソフトウェアは、座標変換手段として機能する。
【００５４】
【数４】
0005640716.tif 000005
wx、wy、wz：ローカルx、y、z軸まわりの角速度（ローカル角速度）
Wx、Wy、Wz：グローバルX、Y、Z軸まわりの角速度（グローバル角速度）
【００５５】
ステップ１０６では、このようにして算出されたグローバル角速度を用いて、グローバルX軸まわりの角度Rxが算出される。つまりグローバル角度（のX軸方向成分）が算出される。この演算処理には、式７が用いられる。この演算処理は台形積分法を用いている。グローバルY、Z軸まわりの角度Ry、Rzも、Rxと同様に算出される。このステップ１０６の処理の意味は、初期姿勢角度（θx、θy、θz）を新たな姿勢角度（Rx、Ry、Rz）に変更する、つまり姿勢角度を更新することである。この場合、ＣＰＵ２及びこの演算内容が記述されたソフトウェアは、更新手段として機能する。
【００５６】
【数５】
0005640716.tif 000006
Rx：グローバル座標系におけるX軸まわりの角度（グローバル角度（グローバル姿勢角度））
(tn)：n番目に得られた値を意味する
Δt =tn- tn-1
【００５７】
このようにグローバル角度が算出されると、この情報が送信機８により、表示デバイス５０に送信（出力）される（ステップ１０７）。現時点では、このグローバル角度は、初期の（つまり、操作開始時の）グローバル角度である。表示デバイス５０は、この情報を受信し、その初期のグローバル角度を、オブジェクト５１の動きの開始の姿勢角度としてオブジェクト５１を表示することができる。表示デバイス５０は、２回目以降のグローバル角度の情報を受信すると、そのグローバル角度に応じた姿勢を持つオブジェクト５１を表示部５２に表示する。
【００５８】
なお、式７のような台形積分法に限られず、中点法やシンプソン法等、各種の積分処理によっても、グローバル角度を求めることができる。
【００５９】
ここで初期には、ステップ１０５では、座標変換手段は、初期姿勢角度（θx、θy、θz）の情報に基づき、ローカル角速度（初期値）について座標変換処理を実行した。しかし、２回目以降（初期以外）のステップ１０５の処理では、座標変換手段は、ステップ１０６で算出されたグローバル角度（Rx、Ry、Rz）の情報に基づき、ローカル角速度（２回目以降の値）について座標変換処理を実行する。この演算処理には、下の式８が用いられる。
【００６０】
【数６】
0005640716.tif 000007
【００６１】
操作デバイス１０のグローバル角度は、徐々に（刻々と）変わっていく。したがって、具体的には、式８では、下記の式に示すようにグローバル角度が逐次加算された値に基づき、回転座標変換が行われる。  
Rx' =Rx(tn)+Rx(tn+1)
Ry' =Ry(tn)+Ry(tn+1)
Rz' =Rz(tn)+Rz(tn+1)
しかし、表示デバイス５０による画像表示のためのソフトウェアの仕様によっては、式８（下記の式９も同様）において、（Rx'、Ry'、Rz'）の代わりに、（Rx、Ry、Rz）が用いられてもよい。
【００６２】
ステップ１０６で算出されたグローバル角度（Rx、Ry、Rz）の情報は、ステップ１０８における処理にも用いられる。ステップ１０８では、座標変換手段は、式８と同様にグローバル角度の情報を用いて、ローカル加速度をグローバル加速度に変換する。この演算処理は、下の式９が用いられる。
【００６３】
【数７】
0005640716.tif 000008
Ax、Ay、Az：グローバルX、Y、Z軸まわりの加速度（グローバル加速度）
【００６４】
このようにステップ１０８においても、初期以外においては、座標変換手段は、グローバル角度の情報に基づいて座標変換を実行する。
【００６５】
以上のように、最初に初期姿勢角度が算出されれば、２回目以降の演算ではその初期姿勢角度を用いずに、ステップ１０６で算出されたグローバル角度が用いられる。以下、この理由について説明する。
【００６６】
ユーザによる操作デバイス１０の操作開始時には、加速度センサ５により得られた加速度を含む情報に基づき算出される初期姿勢角度の情報を用いてローカル角速度がグローバル角速度に変換される。つまり、操作が開始される瞬間には、加速度センサ５には実質的に重力加速度のみが検出され、この重力加速度を含む情報に基づき初期姿勢角度が算出され、その初期姿勢角度に基づき座標変換が行われる。
【００６７】
しかし、その後のユーザの操作中は、加速度センサ５では、重力加速度に、運動加速度（慣性加速度）が加えられた値が検出される。すなわち、ユーザの操作中は、センサ基板２０の姿勢は刻々と変わる。したがって、仮に、ユーザの操作中に加速度センサ５で得られるこのような運動加速度を含む加速度に基づき姿勢角度を算出した場合、大きな誤差が発生する。
【００６８】
そこで本実施形態では、初期値として取得されたローカル角速度より後に取得されたローカル角速度については、運動加速度の情報を含まない情報、つまり、少なくとも１度、ローカル角速度を用いて更新された姿勢角度の情報（ステップ１０５及び１０６を少なくとも１度経て得られる情報）に基づき、変換処理が実行される。ローカル角速度値は、運動加速度には影響されない値だからである。
【００６９】
このような演算処理によれば、ユーザによる操作デバイス１０の操作中において発生する運動加速度による影響が、操作デバイス１０の姿勢角度の演算に及んでその演算に誤差を発生させる、といった事態を抑制することができる。
【００７０】
次に、ステップ１０９では、ステップ１０８で算出されたグローバル加速度に基づき速度が算出され、さらにステップ１１０で、その速度から移動距離が算出される。これらの演算処理は、上記したステップ１０６での各種の積分法を用いて実行され得る。ステップ１１１では、操作デバイス１０は算出された距離の情報を表示デバイス５０に送信（出力）する。表示デバイス５０は、この距離の情報を受信し、この距離に応じた分の距離をオブジェクト５１が移動するように、これを表示部５２に表示する。
【００７１】
上述のように、ステップ１０６で更新された姿勢角度の情報には、運動加速度の情報は含まれないので、この姿勢角度の情報に基づきローカル加速度がグローバル加速度に変換されることにより、操作デバイス１０の動きをオブジェクト５１の動きとして忠実に再現することができる。これにより、ユーザは直感的な操作が可能となる。
【００７２】
以上のように、本実施形態では、ユーザに把持される操作デバイス１０の姿勢が３次元空間内におけるどのような姿勢となる場合であっても、演算誤差の発生を抑制しながらセンサ基板２０の姿勢を認識して、操作デバイス１０によるオブジェクト５１の操作が可能となる。
【００７３】
上記では、図６に示した処理をすべて操作デバイス１０が実行する形態を示した。しかし、図６に示した処理の一部を表示デバイス５０が実行してもよい。例えば、操作デバイス１０は、ステップ１０１までを実行し、各センサ５，６及び７で検出された加速度、角速度及び磁気強度の情報を表示デバイス５０に送信する。表示デバイス５０をこれらの情報を受信し、ステップ１０２以降の処理を実行する。あるいは、例えば操作デバイス１０がステップ１０２、・・・、または１０５までの処理を実行し、残りの処理は表示デバイス５０が実行してもよい。
【００７４】
操作デバイス１０及び表示デバイス５０がどの処理を担当するかは、例えばそれらの演算処理能力、それらのコスト、チップサイズ等の環境から適宜判断されればよい。
【００７５】
[情報処理システムの応用例の具体的説明]
図９は、ユーザが操作デバイス１０を用いて実際にオブジェクト５１を操作している様子を示す図である。これは、表示デバイス５０として３ＤＴＶの表示部５２から、ユーザが操作デバイス１０をグローバル座標系のX軸の負方向に沿って引いた時の様子である。この場合、表示デバイス５０は、視差を調整してそのユーザの操作に応じてユーザの手前にオブジェクト５１を移動するように表示する。同様に、ユーザが操作デバイス１０をグローバル座標系のX軸の正方向に沿って押し出した時、表示デバイス５０は、オブジェクト５１を表示部５２の奥行き方向に動くように表示する。
【００７６】
このようなグローバルX軸上の３Ｄ表示は、グローバル座標における操作デバイス１０の動きと、表示デバイス５０に表示される映像の視差とを関連付けることで可能になる。図１０に示すように、表示デバイス５０の表示部５２と、ユーザ（の眼）との距離、つまり視聴距離をLとする。
【００７７】
図１１及び１２は、３Ｄ映像の奥行き方向（X軸方向）での表示原理を説明するための図である。図１１を参照して、
L：視聴距離、
P：映像視差、
E：眼球間の距離、
D：オブジェクトの奥行き
とすると、
D:P =(D+L):E より、P =(D×E)/(D+L) となる。
【００７８】
例えば、E=65mm, L=2mとして、表示部５２の奥24m(D=24m)の位置にオブジェクト５１が表示されているようにユーザに見せたい場合、P=6cmとなる。つまり、互いに6cmずれた、オブジェクト５１を構成する視差画像５１ａ及び５１ｂを生成すればよい。
【００７９】
この視差Pと、グローバル座標系における操作デバイス１０の画面内での移動距離Tを、
P =αT (αは比例定数)
として関連付けることで、グローバル座標のX軸方向での操作デバイス１０の動きを３Ｄ映像と結びつけることができる。
【００８０】
図１２に示す形態も図１１と同様な考え方をとる。  
D:P =(L-D):E より、P =(D×E)/(L-D) となる。
【００８１】
例えば、E=65mm, L=2mとして、表示部５２の手前1.2m(D=1.2m)の位置にオブジェクト５１が表示されているようにユーザに見せたい場合、P=10cmとなる。つまり、互いに10cmずれた、オブジェクト５１を構成する視差画像５１ａ及び５１ｂを生成すればよい。
【００８２】
この視差Pと、グローバル座標系における操作デバイス１０の画面内での移動距離Tを、
P =αT (αは比例定数)
として関連付けることで、グローバル座標のX軸方向での操作デバイス１０の動きを３Ｄ映像と結びつけることができる。
【００８３】
[その他の実施形態]
本発明に係る実施形態は、以上説明した実施形態に限定されず、他の種々の実施形態が実現される。
【００８４】
上記実施形態では、ステップ１０２の開始判定処理で操作が開始されと判定された時点から最初に各センサで検出された値を、ローカル値（ローカル加速度、ローカル角速度、ローカル磁気強度）として説明した。しかし、その開始判定処理で操作が開始されたと判定された時点から、各センサで、少ない所定の回数検出された値のうちいずれか、あるいは、それらの平均値や中間値等がローカル値とされてもよい。すなわち、操作開始時とは、操作が開始された後の所定期間を含む概念であり、ユーザにより、オブジェクトの最初の動き出しに違和感を持たない程度の期間を含む概念である。この所定の期間は、操作デバイスや表示デバイスのＣＰＵのクロック周波数にもよる。
【００８５】
上記実施形態では、操作デバイス１０と表示デバイス５０と無線により接続されていたが有線でもよい。それらの間の通信媒体はインターネットでもよい。
【００８６】
上記実施形態では、操作デバイス１０と表示デバイス５０が同じ部屋内にある場合を例に挙げたが、例えばそれらが別々の建物や遠隔地にあってもよい。その場合、両者の間の通信媒体は上述のようにインターネットでもよい。
【００８７】
操作対象物は、画面に表示される画像に限られず、現実の、ロボットやその他の機械であってもよい。その場合、上記のように遠隔操作が実現されてもよい。
【００８８】
上記操作デバイス１０の外形は球形であったが、これに限られず、さまざまな外形を採用することができる。
【符号の説明】
【００８９】
２、５３…ＣＰＵ
５（５ａ、５ｂ、５ｃ）…加速度センサ
６（６ａ、６ｂ、６ｃ）…角速度センサ
７（７ａ、７ｂ、７ｃ）…磁気センサ
１０…操作デバイス
５０…表示デバイス
５１…オブジェクト
【図１】
0005640716.tif 000009
【図２】
0005640716.tif 000010
【図３】
0005640716.tif 000011
【図４】
0005640716.tif 000012
【図５】
0005640716.tif 000013
【図６】
0005640716.tif 000014
【図７】
0005640716.tif 000015
【図８】
0005640716.tif 000016
【図９】
0005640716.tif 000017
【図１０】
0005640716.tif 000018
【図１１】
0005640716.tif 000019
【図１２】
0005640716.tif 000020