(57)【特許請求の範囲】
【請求項１】
操作デバイスの並進及び回転の動きを検出可能な動きセンサを有する操作デバイスから得られる情報の処理装置であって、
前記操作デバイスが操作面に置かれてユーザーにより前記操作デバイスが操作された場合、前記操作デバイスの２次元的な動きに応じた前記動きセンサの検出値に基づき、演算を実行する２次元演算モードと、前記ユーザーにより３次元空間で前記操作デバイスが操作された場合、前記操作デバイスの３次元的な動きに応じた前記動きセンサの検出値に基づき、演算を実行する３次元演算モードとを有する演算部と、
前記動きセンサの検出値、及び、前記動きセンサの検出値とは別の情報のうち少なくとも一方に基づき、前記演算部が前記２次元演算モード及び前記３次元演算モードのうちいずれで演算すべきかを判定する判定部とを具備し、
前記操作デバイスは、前記動きセンサとして、ローカル座標系における直交３軸の検出軸を有する加速度センサ、前記直交３軸の検出軸を有する角速度センサ及び前記直交３軸の検出軸を有する磁気センサを備えた操作デバイスであり、
前記演算部は、
前記加速度センサ、前記角速度センサ及び前記磁気センサでそれぞれ検出された加速度、角速度及び磁気強度の情報を取得する取得部と、
前記３次元空間を表すグローバル座標系における前記操作デバイスの姿勢角度の情報を用いて、前記取得部で取得された前記角速度及び加速度を、前記グローバル座標系におけるグローバル角速度及びグローバル加速度にそれぞれ変換する座標変換部と、
前記ユーザーによる前記操作デバイスの操作の開始時に前記取得部で取得された前記加速度及び前記磁気強度の情報に基づき、前記姿勢角度のうち、前記操作デバイスの前記グローバル座標系における初期の前記姿勢角度である初期姿勢角度を算出する初期姿勢角度算出部と、
前記座標変換部で変換された前記グローバル角速度の情報に基づき、前記操作デバイスの前記グローバル座標系における前記姿勢角度を更新する更新部と、
前記座標変換部に、前記初期姿勢角度算出部で算出された前記初期姿勢角度の情報を用いて、前記操作の開始時に前記取得部で取得された第１の角速度及び第１の加速度を前記グローバル角速度及び前記グローバル加速度にそれぞれ変換させ、前記更新された姿勢角度の情報を用いて、前記第１の角速度及び第１の加速度が取得された後に取得された第２の角速度及び第２の加速度を、前記グローバル角速度及び前記グローバル加速度にそれぞれ変換させる制御部と
を有することにより、前記３次元演算モードを実現する
情報処理装置。
【請求項２】
請求項１に記載の情報処理装置であって、
前記演算部は、前記操作デバイスが有する曲面状の外面が前記操作面に接触した状態で前記ユーザーにより前記操作デバイスが操作される場合の演算モードを、前記２次元演算モードとして、前記演算を実行する
情報処理装置。
【請求項３】
請求項２に記載の情報処理装置であって、
前記操作デバイスは、前記外面を含む表面と、前記表面に加えられる力を検出する圧力センサを有し、
前記判定部は、前記圧力センサの検出値を前記別の情報として取得する
情報処理装置。
【請求項４】
請求項３に記載の情報処理装置であって、
前記判定部は、前記操作デバイスによる加圧力以上の力が前記表面に加えられることを前記圧力センサが検出した場合、前記演算部が前記２次元演算モードで演算すべきと判定し、そうでない場合、前記演算部が前記３次元演算モードで演算すべきと判定する
情報処理装置。
【請求項５】
請求項１から４のうちいずれか１項に記載の情報処理装置であって、
前記判定部は、前記動きセンサによる検出値に前記ユーザーの手振れによる成分が含まれる場合、前記演算部が前記３次元演算モードで演算すべきと判定し、そうでない場合、前記演算部が前記２次元演算モードで演算すべきであると判定する
情報処理装置。
【請求項６】
請求項１から５のうちいずれか１項に記載の情報処理装置であって、
前記判定部は、静電容量センサ、気圧センサ、光学センサ、超音波センサ、またはひずみセンサの検出値を前記別の情報として取得する
情報処理装置。
【請求項７】
請求項２から４のうちいずれか１項に記載の情報処理装置であって、
前記判定部は、前記操作デバイスの前記外面に対応する形状を有する前記操作面を含むステージが有するセンサの検出値を、前記別の情報として取得する
情報処理装置。
【請求項８】
請求項１に記載の情報処理装置であって、
前記ユーザーの入力操作により、前記２次元演算モード及び前記３次元演算モードを切り替えるアプリケーションソフトウェアを記憶する記憶部をさらに具備する情報処理装置。
【請求項９】
請求項１から８のうちいずれか１項に記載の情報処理装置であって、
前記操作デバイスの外形は球形である
情報処理装置。
【請求項１０】
請求項１から９のうちいずれか１項に記載の情報処理装置であって、
前記演算部は、
前記２次元演算モードでは、画面上に表示される第１の操作対象画像を、前記操作デバイスの動きに応じて前記画面上で動かすための情報を生成し、
前記３次元演算モードでは、前記画面上に表示される、前記第１の操作対象画像とは異なる第２の操作対象画像を、前記操作デバイスの動きに応じて前記画面上で動かすための情報を生成する
情報処理装置。
【請求項１１】
請求項１０に記載の情報処理装置であって、
前記演算部は、前記３次元演算モードでは、前記第２の操作対象画像として、視差を有する複数の画像で形成される３次元画像である第２の操作対象画像を動かすための情報を生成する
情報処理装置。
【請求項１２】
請求項１０に記載の情報処理装置であって、
前記第２の操作対象画像を、前記第１の操作対象画像の、前記画面上の所定の座標位置に関連する画像として記憶する画像記憶部をさらに具備する情報処理装置。
【請求項１３】
請求項１１または１２に記載の情報処理装置であって、
前記第１の操作対象画像は、地図画像である
情報処理装置。
【請求項１４】
請求項１０に記載の情報処理装置であって、
前記演算部は、前記２次元演算モードでは、前記ユーザーの前記操作デバイスへの入力操作による前記操作デバイスの動きに応じて、前記画面上に表示される画像を選択するためのポインター画像を生成する
情報処理装置。
【請求項１５】
請求項１４に記載の情報処理装置であって、
前記演算部は、前記３次元演算モードでは、前記操作デバイスの動きに応じて前記画面上で前記ポインター画像により選択された前記画像を動かすための情報を生成する
情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、動きを検出するセンサを有する操作デバイスを含む入力装置、またそのセンサにより得られた情報を処理する情報処理装置及び情処理方法に関する。
【背景技術】
【０００２】
近年、空間操作（３次元操作）型の操作装置あるいは入力装置が多種提案されている。例えば、特許文献１に記載の入力装置は、３次元空間内で６次元のマウスの動きを検出する。具体的には、この入力装置は、直交３軸の加速度を検出する加速度計及び直交３軸まわりの回転速度を検出する回転速度センサを備えている。この入力装置を含むシステムは、得られた加速度及び回転速度に基づいて、自身の位置及び姿勢などを判別し、表示装置等のコンピュータは、ＧＵＩ（Graphical User Interface）に、その入力装置の動きに応じた動きを実現させる（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特表平６−５０１１１９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、２次元的に表示された操作対象物の操作には、２次元操作型の入力装置が用いられ、３次元的に表示された操作対象物の操作には３次元操作型の入力装置が用いられる場合がある。この場合、ユーザーは、別々の入力装置を用いる必要があり、操作が煩雑となる。
【０００５】
以上のような事情に鑑み、本技術の目的は、ユーザーが容易に２次元操作及び３次元操作の両方を行うことができる情報処理装置及び情報処理方法を提供することにある。
【０００６】
本技術の別の目的は、ユーザーが２次元操作及び３次元操作の両方を行う際に、便利な入力装置を提供することにある。
【課題を解決するための手段】
【０００７】
上記目的を達成するため、本技術に係る情報処理装置は、操作デバイスの並進及び回転の動きを検出可能な動きセンサを有する操作デバイスから得られる情報の処理装置であり、演算部と、判定部とを具備する。
前記演算部は、２次元演算モードと３次元演算モードとを有する。前記２次元演算モードは、前記操作デバイスが操作面に置かれてユーザーにより前記操作デバイスが操作された場合、前記操作デバイスの２次元的な動きに応じた前記動きセンサの検出値に基づき、演算を実行するモードである。前記３次元演算モードは、前記ユーザーにより３次元空間で前記操作デバイスが操作された場合、前記操作デバイスの３次元的な動きに応じた前記動きセンサの検出値に基づき、演算を実行するモードである。
前記判定部は、前記動きセンサの検出値に基づき、及び、前記動きセンサの検出値とは別の情報のうち少なくとも一方に基づき、前記演算部が前記２次元演算モード及び前記３次元演算モードのうちいずれで演算すべきかを判定する。
【０００８】
情報処理装置は、２次元演算モード及び３次元演算モードのうちいずれで演算すべきかを判定する判定部を備えているので、ユーザーの２次元及び３次元操作の両方に対応することができる。したがって、ユーザーは、別々の入力装置を用いる必要がなく、容易に２次元及び３次元操作の両方の操作を行うことができる。
【０００９】
前記演算部は、前記操作デバイスが有する曲面状の外面が前記操作面に接触した状態で前記ユーザーにより前記操作デバイスが操作される場合の演算モードを、前記２次元演算モードとして、前記演算を実行してもよい。
前記操作デバイスは、前記外面を含む表面と、前記表面に加えられる力を検出する圧力センサを有し、前記判定部は、前記圧力センサの検出値を前記別の情報として取得してもよい。
【００１０】
前記判定部は、前記操作デバイスによる加圧力以上の力が前記表面に加えられることを前記圧力センサが検出した場合、前記演算部が前記２次元演算モードで演算すべきと判定し、そうでない場合、前記演算部が前記３次元演算モードで演算すべきと判定してもよい。操作デバイスが操作面に置かれている時は、圧力センサは、ユーザーがその操作デバイスに手を置いて操作デバイスの重さ以上の力がその表面に加えられるので、その場合、演算部は２次元演算モードで演算する。ユーザーが操作デバイスを持ち、操作面から離した時、圧力センサは操作デバイスの重さより小さい力が表面に加えられるので、その場合、演算部は３次元演算モードで演算する。
【００１１】
前記判定部は、前記動きセンサによる検出値に前記ユーザーの手振れによる成分が含まれる場合、前記演算部が前記３次元演算モードで演算すべきと判定し、そうでない場合、前記演算部が前記２次元演算モードで演算すべきであると判定してもよい。ユーザーが３次元空間で操作デバイスを持つ場合、動きセンサの検出値にはユーザーの手振れの成分が含まれるので、その場合、演算部は３次元演算モードで演算する。本技術は、下記のように磁気センサにも適用可能である。
【００１２】
前記判定部は、静電容量センサ、気圧センサ、光学センサ、超音波センサ、またはひずみセンサの検出値を前記別の情報として取得してもよい。
【００１３】
前記判定部は、前記操作デバイスの前記外面に対応する形状を有する前記操作面を含むステージが有するセンサの検出値を、前記別の情報として取得してもよい。
【００１４】
前記情報処理装置は、前記ユーザーの入力操作により、前記２次元演算モード及び前記３次元演算モードを切り替えるアプリケーションソフトウェアを記憶する記憶部をさらに具備してもよい。これにより、情報処理装置は、ユーザーが意図した時に、確実に演算モードの切り替えを行うことができる。
【００１５】
前記操作デバイスは、ローカル座標系における直交３軸の検出軸を有する加速度センサ、前記直交３軸の検出軸を有する角速度センサ及び前記直交３軸の検出軸を有する磁気センサを備えた、前記ユーザーにより３次元空間内で任意の姿勢で操作され得る操作デバイスであってもよい。
その場合、演算部は、取得部と、座標変換部と、初期姿勢角度算出部と、更新部と、制御部とを有してもよい。
前記取得部は、前記加速度センサ、前記角速度センサ及び前記磁気センサでそれぞれ検出された加速度、角速度及び磁気強度の情報を取得する。
前記座標変換部は、前記３次元空間を表すグローバル座標系における前記操作デバイスの姿勢角度の情報を用いて、前記取得部で取得された前記角速度を、前記グローバル座標系におけるグローバル角速度に変換する。
前記初期姿勢角度算出部は、前記ユーザーによる前記操作デバイスの操作の開始時に前記取得部で取得された前記加速度及び前記磁気強度の情報に基づき、前記姿勢角度のうち、前記操作デバイスの前記グローバル座標系における初期の前記姿勢角度を算出する。
前記更新部は、前記座標変換部で変換された前記グローバル角速度の情報に基づき、前記操作デバイスの前記グローバル座標系における前記姿勢角度を更新する。
前記制御部は、前記座標変換部に、前記初期姿勢角度算出部で算出された前記初期姿勢角度の情報を用いて、前記操作の開始時に前記取得部で取得された前記第１の角速度を前記グローバル角速度に変換させ、前記更新された姿勢角度の情報を用いて、前記第１の角速度が取得された後に取得された第２の角速度を前記グローバル角速度に変換させる。
【００１６】
これにより、座標変換部により変換されて得られたグローバル角速度の情報を、操作デバイスによる操作対象物の動き、または操作対象物の画像の変化に対応させることができる。
【００１７】
前記演算部は、前記座標変換部が、前記取得部で取得された前記加速度を、前記更新部で更新された前記操作デバイスの姿勢角度の情報に基づき、前記グローバル座標系におけるグローバル加速度に変換することにより、前記３次元演算モードを実現してもよい。これにより３次元空間内での、操作デバイスの特に並進の動きに応じたグローバル加速度の情報を、操作対象物の動き、または操作対象物の画像の変化に対応させることができる。
【００１８】
前記操作デバイスの外形は球形であってもよい。
【００１９】
前記演算部は、前記２次元演算モードでは、画面上に表示される第１の操作対象画像を、前記操作デバイスの動きに応じて前記画面上で動かすための情報を生成してもよい。そして、前記演算部は。前記３次元演算モードでは、前記画面上に表示される、前記第１の操作対象画像とは異なる第２の操作対象画像を、前記操作デバイスの動きに応じて前記画面上で動かすための情報を生成してもよい。これにより、ユーザーは、２次元操作に適した第１の操作対象画像と、３次元操作に適した第２の操作対象画像を操作することができる。第１及び第２の操作対象画像としては、以下のようなものがある。
【００２０】
前記演算部は、前記３次元演算モードでは、前記第２の操作対象画像として、視差を有する複数の画像で形成される３次元画像である第２の操作対象画像を動かすための情報を生成してもよい。
【００２１】
前記情報処理装置は、前記第２の操作対象画像を、前記第１の操作対象画像の、前記画面上の所定の座標位置に関連する画像として記憶する画像記憶部をさらに具備してもよい。
【００２２】
前記演算部は、前記２次元演算モードでは、前記ユーザーの前記操作デバイスへの入力操作による前記操作デバイスの動きに応じて、前記画面上に表示される画像を選択するためのポインター画像を生成してもよい。また、前記演算部は、前記３次元演算モードでは、前記操作デバイスの動きに応じて前記画面上で前記ポインター画像により選択された前記画像を動かすための情報を生成してもよい。
【００２３】
以上説明した演算部及び判定部のうち少なくとも一方は、操作デバイスに設けられておらず、操作デバイスからの出力信号を受信する受信機器に設けられていてもよい
【００２４】
本技術に係る情報処理方法は、操作デバイスの並進及び回転の動きを検出可能な動きセンサを有する操作デバイスから得られる情報の処理方法である。
前記操作デバイスが操作面に置かれてユーザーにより前記操作デバイスが操作された場合、前記操作デバイスの２次元的な動きに応じた前記動きセンサの検出値に基づき、第１の演算が実行される。
前記ユーザーにより３次元空間で前記操作デバイスが操作された場合、前記操作デバイスの３次元的な動きに応じた前記動きセンサの検出値に基づき、第２の演算が実行される。
前記動きセンサの検出値に基づき、及び、前記動きセンサの検出値とは別の情報のうち少なくとも一方に基づき、前記第１の演算及び前記第２の演算のうちいずれを実行すべきかが判定される。
【００２５】
本技術に係る入力装置は、ステージと、操作デバイスとを具備する。
前記ステージは、操作面を有する。
前記操作デバイスは、前記操作デバイスが前記操作面に置かれた時に該操作面に接触する外面と、操作デバイスの並進及び回転の動きを検出可能な動きセンサとを有し、前記ステージから離れることが可能である。
【００２６】
ステージの操作面に、操作デバイスの外面が接触した状態で、ユーザーはこの操作デバイスの２次元操作を行うことができる。また、ユーザーはステージから操作デバイスを離して、３次元操作を行うことができ、便利である。
【００２７】
前記ステージは、前記操作デバイスの前記外面の形状に対応する形状に形成された前記操作面を有してもよい。これにより、ユーザーは操作デバイスをステージ上で回転させることで、２次元操作を行うことができる。
【００２８】
前記ステージは、前記ステージの少なくとも並進の動きを検出可能なセンサを有してもよい。これにより、入力装置は、２次元操作が行われる場合に、ステージに設けられたセンサの検出値の情報を用いることができる。
【００２９】
前記操作デバイスの前記外形は球形であってもよい。
【発明の効果】
【００３０】
以上、本技術によれば、ユーザーが容易に２次元操作及び３次元操作の両方を行うことができる。
【図面の簡単な説明】
【００３１】
【図１】図１は、本発明の一実施形態に係る情報処理装置を含む情報処理システムを示す図である。
【図２】図２は、操作デバイスのハードウェアの構成を示す図である。
【図３】図３は、表示デバイスのハードウェアの構成を示す図である。
【図４】図４は、操作デバイスの各センサの検出軸及びこれらの相対的な配置を説明するための図である。
【図５】図５は、ローカル座標系とグローバル座標系の関係を示す図である。
【図６】図６は、操作デバイスの2D操作の基本的な操作方法を説明するための図である。
【図７】図７は、操作デバイスの3D操作の基本的な操作方法を説明するための図である。
【図８】図８は、ユーザーが2D操作と3D操作を切り替える様子を示す図である。
【図９】図９Ａ〜Ｃは、具体的な2D操作の方法を説明するための図である。
【図１０】図１０は、具体的な3D操作の方法を説明するための図である。
【図１１】図１１は、操作デバイスの処理を示すフローチャートである。
【図１２】図１２は、2D演算モードでの演算処理を示すフローチャートである。
【図１３】図１３は、その演算処理の原理を説明するための図であり、センサ基板の傾き（姿勢）がグローバル座標系において傾いている状態を示す図である。
【図１４】図１４は、図１３と同様、図１２に示した演算処理の原理を説明するための図である。
【図１５】図１５は、3D演算モードの演算処理を示すフローチャートである。
【図１６】１６は、情報処理システムのアプリケーション例１を説明するための図である。
【図１７】図１７は、情報処理システムのアプリケーション例２を説明するための図である。
【図１８】図１８は、情報処理システムのアプリケーション例３を説明するための図である。
【図１９】図１９は、情報処理システムのアプリケーション例４を説明するための図である。
【図２０】図２０は、操作デバイスの他の実施形態を示す斜視図である。
【図２１】図２１は、その入力装置を示す斜視図である。
【図２２】図２２は、入力装置の使用方法を説明するための図である。
【図２３】図２３は、入力装置の他の使用方法を説明するための図である。
【発明を実施するための形態】
【００３２】
以下、図面を参照しながら、本技術の実施形態を説明する。
【００３３】
[情報処理システムの構成]
【００３４】
図１は、本発明の一実施形態に係る情報処理装置を含む情報処理システムを示す図である。
【００３５】
この情報処理システム１００は、ユーザーにより操作される操作デバイス１０と、この操作デバイス１０から送信された操作情報を受信して、その情報に基づいて表示処理を実行する表示デバイス５０とを備える。操作デバイス１０と表示デバイス５０とは電気的に接続されており、本実施形態では、それらのデバイス１０及び５０の間で赤外線や電波等の無線により通信が行われるように接続されている。
【００３６】
操作デバイス１０は、人が手で握ることができる程度の大きさに形成されている。操作デバイス１０は、曲面状の外面１０ａを含む表面（球の表面全体）を有しており、典型的には球形状をなしている。後述するが、ユーザーは、操作デバイスの表面を操作面３０（図６参照）に接触させた状態で、２次元操作を行う。操作面３０は、床面、テーブル面、デスク面等であってもよいし、ユーザー自身の身体の一部、例えば太もも等であってもよい。
【００３７】
表示デバイス５０は、ユーザーの操作デバイス１０を用いた操作により、表示部５２の画面内でオブジェクト（操作対象画像）５１の画像を変化させるために、その表示画像を生成し、またその表示の制御を実行する。画像を変化させるとは、例えば、操作対象物が移動する（回転及び並進のうち少なくとも一方を含む）、その形状、模様、色等が変化する、その数が増える等、何でもよい。ユーザーが操作デバイス１０を用いて操作することにより、表示デバイス５０は、その操作デバイス１０の動きに応じてオブジェクトを変化させる。
【００３８】
表示デバイス５０の典型例としては、例えば3D（Dimension）ＴＶ等、3Dのオブジェクト５１を表示可能な装置である。操作対象物は、3D画像に限られず、アイコンやポインター等の２Ｄ画像であってもよい。あるいはアイコンやポインターが3D画像で表示されてもよい。
【００３９】
図２は、操作デバイス１０のハードウェアの構成を示す図である。操作デバイス１０は、ＣＰＵ２、ＲＡＭ３、ＲＯＭ４及び送信機９を備えている。また、操作デバイス１０は、動きセンサとして、加速度センサ５、角速度センサ６、磁気センサ７の３種類のセンサを備えている。さらに操作デバイス１０は、圧力センサ８、図示しない電源及び書き換え可能なメモリ等を備えている。ＣＰＵ２の代わりとして、例えばＦＰＧＡ（Field Programmable Gate Array）等のようなプログラム可能なハードウェアが用いられてもよい。角速度センサ６としては、例えばコリオリ力を利用して角速度そのものを検出するデバイスが用いられる。
【００４０】
これらのハードウェアは、球形の筐体１１内に、筐体１１に対して固定されるようにして配置されている。圧力センサ８は、例えば筐体１１の内面側に複数取り付けられており、これらの圧力センサ群により、ユーザーの加圧位置及びその加圧力を検知する。圧力センサ８操作デバイス１０の表面付近に均等に散らばるように配置されている。
【００４１】
図３は、表示デバイス５０のハードウェアの構成を示す図である。表示デバイス５０は、一般的なコンピュータと同様に、ＣＰＵ５３、ＲＯＭ５４及びＲＡＭ５５を備え、また、表示部５２、通信部５６及び記憶部５７を有する。通信部５６は、ここでは主に受信機として機能する。記憶部５７は、典型的にはＲＯＭ５４やＲＡＭ５５に対して補助的な（２次的な）記憶部である。
【００４２】
なお、この表示デバイス５０は、操作デバイス１０からの送信された情報を受信してオブジェクト５１の表示を制御する制御部分と、表示部５２とが一体となった構成を有しているが、これらは別体で有線または無線により通信できるように互いに接続されていてもよい。
【００４３】
図４は、操作デバイス１０の各センサの検出軸及びこれらの相対的な配置を説明するための図である。加速度センサ５、角速度センサ６及び磁気センサ７は、すべて、直交３軸の検出軸をそれぞれ有している。すなわち、加速度センサ５は、３つの検出軸に対応するセンサ（５ａ，５ｂ，５ｃ）を有する。角速度センサ６及び磁気センサ７も同様に、センサ（６ａ，６ｂ，６ｃ）、（７ａ，７ｂ，７ｃ）をそれぞれ有する。
【００４４】
例えば、これらセンサ５、６及び７のすべてが共通の１つのパッケージにパッケージングされている。あるいは、これらセンサ５、６及び７が別々のパッケージングでパッケージされ、共通の１つのセンサ基板上に搭載されている。
【００４５】
操作デバイス１０のＲＯＭ４や図示しないメモリ、及び／または、表示デバイス５０のＲＯＭ５４や記憶部５７には、後述する図６に示す処理を実現するためのソフトウェア等が格納されている。図６に示す処理は、操作デバイス１０の姿勢及び動きを認識するための処理である。以下に説明する形態では、主にＣＰＵ２及び上記ソフトウェアが制御部として機能する。
【００４６】
図５は、ローカル座標系とグローバル座標系の関係を示す図である。
【００４７】
地面上には表示デバイス５０が置かれている。ここでは、この地面あるいは表示デバイス５０に固定された座標系をグローバル座標系という。そして、このグローバル座標系に対して自由に動くことが可能な座標であって、操作デバイス１０のセンサ基板２０に対して固定された座標系を、ローカル座標系という。センサ基板２０とは、上記したように、加速度センサ５、角速度センサ６及び磁気センサ７が搭載された共通の基板である。
【００４８】
説明の便宜のため、以降では、グローバル座標系を大文字（X、Y、Z）で表し、ローカル座標系を小文字（x、y、z）で表す。しかし、文章を理解しやすくするため、できるだけ「ローカル」、「グローバル」の表現を用いて説明する。グローバル座標系において地面をX-Y平面とし、ローカル座標系の基板の主面に平行な面をx-y平面とする。
【００４９】
[操作デバイスの基本的な操作方法]
【００５０】
図６及び７は、操作デバイス１０の基本的な操作方法を説明するための図である。図６は、２次元操作の例を示し、図７は、３次元操作の例を示している。
【００５１】
図６に示すように、ユーザーは、操作デバイス１０の外面１０ａを上記の操作面３０に接触させた状態で、つまり２次元の面内で操作デバイス１０を任意の方向に回転させるようにして操作する。これを２次元操作（以下、2D操作という）という。2D操作では、典型的には、表示デバイスで2Dで表示されたオブジェクト５１が操作対象となる。
【００５２】
図７に示すように、ユーザーは、操作デバイス１０を操作面３０から離した状態で、つまり、3D空間内で操作デバイス１０を任意方向に並進及び回転させるようにして操作する。これを３次元操作（以下、3D操作という）という。3D操作では、典型的には、表示デバイスで、3D画像、すなわち3Dで表示されたオブジェクト５１が操作対象となる。
【００５３】
ここでいう3D画像は、視差を含む複数の画像で形成される画像であり、人間の錯覚を利用して形成される画像である。以下の説明では、この3D画像と2D画像とを区別する。
【００５４】
図８に示すように、ユーザーは、2D操作及び3D操作を適宜切り替えて、操作デバイス１０を操作することができる。ユーザーにとって、3D操作によって、2D画像を操作した方が、操作しやすい場合もあるので、本技術は、ユーザーの3D操作によっても2D画像の変化を実現することができる。またその逆の場合も想定され得る。
【００５５】
[操作デバイスの具体的な操作方法]
【００５６】
（2D操作）
図９Ａ〜Ｃは、具体的な2D操作の方法を説明するための図である。
【００５７】
図９Ａでは、ユーザーが自身の手と操作面３０との間に操作デバイス１０を挟むようにしてそれを把持し、X及びY軸の成分のうち少なくとも一方の成分を含む軸の周りに回転させる。この回転の概念には、もちろん傾斜の概念も含まれる。ユーザーの操作デバイス１０の把持の仕方は、図９Ａのように操作デバイス１０を握るような形態でなくてもよく、例えば操作デバイス１０を握らずに上から軽く押さえ付けるような形態でもよい。この場合、ユーザーは操作デバイス１０をなでるようにして操作する。
【００５８】
図９Ｂでは、ユーザーが自身の手と操作面３０との間に操作デバイス１０を挟むようにしてそれを把持し、Z軸の周りに回転させる。この場合、ユーザーは手首をひねるようにして操作デバイス１０を操作する。
【００５９】
図９Ｃでは、ユーザーが操作デバイス１０を操作面３０上で転がす。この場合、ユーザーが操作デバイス１０を離した後、操作デバイス１０がそのユーザーにより与えられた力や位置エネルギーを基に、その慣性力で転がる。
【００６０】
（3D操作）
図１０Ａ〜Ｃは、具体的な3D操作の方法を説明するための図である。
【００６１】
3D操作では、主に3D画像を操作する時に用いられるが、上記したように、図１０Ａに示すように2D画像を操作する時に用いられてもよい。図１０Ａでは、ユーザーは2Dのオブジェクト５１を任意の方向に回転させる
【００６２】
図１０Ｂ及びＣでは、ユーザーは3Dのオブジェクト５１を任意の方向に回転させたり、任意の方向に並進移動させたりする。これにより、ユーザーはあたかも3Dのオブジェクト５１を触って動かしている感覚を得ることができる。
【００６３】
[操作デバイスの処理]
【００６４】
図１１は、操作デバイス１０の処理を示すフローチャートである。この処理は、操作デバイス１０の記憶デバイス（ＲＯＭやＲＡＭ）に記憶されたソフトウェア資源と、ＣＰＵ等のハードウェア資源との協働により実現される。以下では、便宜的に、処理の主体をＣＰＵ２として説明する。
【００６５】
加速度センサ５、角速度センサ６、磁気センサ７及び圧力センサ８から得られるアナログの検出値の信号が、図示しないA/D変換器によりデジタル信号に変換される。ＣＰＵ２は、A/D変換器から出力された各検出値のデジタル信号を取得し（取得部）、これらの情報に基づいて開始判定の処理を行う（ステップ１０１）。開始判定とは、ユーザーが操作デバイス１０を把持して操作を開始したか否かの判定である。
【００６６】
この開始判定処理は、例えば、加速度センサ５、角速度センサ６、磁気センサ７及び圧力センサ８のうち少なくとも１つから得られた情報を用いて実行される。例えば、ＣＰＵ２は、各センサ５ａ、５ｂ、５ｃ、６ａ、６ｂ、６ｃ、７ａ、７ｂ、７ｃ及び８のうち、少なくとも１つの検出値が変化した場合に、操作デバイス１０による操作が開始されたと判定すればよい。
【００６７】
あるいは、開始判定処理は、この操作デバイス１０に設けられた、ボタン等の機械的なスイッチのON/OFFにより実行されてもよい。あるいは、ＣＰＵ２は、情報処理システムがアプリケーションを起動した時に、操作が開始された判定してもよい。
【００６８】
ＣＰＵ２は、ユーザーによる操作が開始されたと判定した場合、その操作が2D操作であるか3D操作であるか、すなわち、2D演算モード及び3D演算モードのいずれで、演算（オブジェクト５１を変化させるための情報を生成する演算）を実行すべきかを判定する（ステップ１０２）。この場合、ＣＰＵ２は判定部として機能する。
【００６９】
そして、ＣＰＵ２は、その操作が2D操作である場合、2D演算モードで演算を実行し（ステップ１０３）、3D操作である場合、3D演算モードで演算を実行する（ステップ１０４）。この場合、ＣＰＵ２は、演算部として機能する。
【００７０】
（2D/3D操作の判定処理）
以下、ステップ１０２の2D操作及び3D操作の判定処理について説明する。ＣＰＵ２は、各センサ５〜８の検出値を利用して判定処理を実行することができる。以下、センサの種類ごとに分けて判定処理を説明する。
【００７１】
＜圧力センサ＞
圧力センサ８は、操作デバイス１０の表面（外面１０ａ）付近に均等に散りばめられている。操作デバイス１０が操作面３０に置かれている場合、複数の圧力センサ８のうち少なくとも１つが、操作デバイス１０の自重による実質的に一定の加圧力を検出する。また、2D操作では、図９Ａ及びＢに示したように、ユーザーがその操作デバイス１０の上から手を添えると、その加圧力はさらに増す。つまり、複数の圧力センサ８のうち少なくとも１つが、操作デバイス１０の重さによる加圧力以上の力が、操作デバイス１０の表面に加えられていることを検出した場合、ＣＰＵ２はユーザーによる操作が2D操作であると判定する。
【００７２】
一方、3D操作では、操作デバイス１０が空中にあるため、上記のような加圧力が検出されず、上記ユーザーが操作デバイス１０を押さえ込む時の加圧力より小さい値が検出される。この場合、ＣＰＵ２はユーザーによる操作が3D操作であると判定する。
【００７３】
なお、圧力センサによる検出値は、上記動きセンサ（加速度センサ５、角速度センサ６及び磁気センサ７）による検出値とは別の情報となる。
【００７４】
＜加速度センサ、角速度センサ、磁気センサ＞
2D操作では、ユーザーは操作面３０に操作デバイス１０を置いて操作するので、加速度センサ５、角速度センサ６及び磁気センサ７の各検出値内に、ユーザーによる手振れによる成分（微小振動）が実質的に含まれない。
【００７５】
手振れ成分は、1〜20Hz程度であるため、手振れ成分がある場合、検出値からその手振れ成分をローパスフィルタ等により抽出することができる。したがって、ＣＰＵ２は、手振れ成分を抽出した場合、ユーザーによる操作が3D操作であると判定し、そうでない場合、それが2D操作であると判定する。
【００７６】
以下の各種のセンサは図２では示されていないが、操作デバイス１０が以下の各種のセンサを持っている場合には、以下に説明する処理も有効である。以下の各種のセンサの検出値も、上記動きセンサによる検出値とは別の情報となる。
【００７７】
＜静電容量センサ＞
静電容量センサは、センシング領域に存在する電気容量をセンシングすることができる。2D操作の場合、操作デバイス１０はアースされている状態であるので、検出される電気容量は低い。3D操作の場合、そのアースされている時の静電容量より高い値が検出される。これにより2D/3D操作の判定処理が可能となる。
【００７８】
＜気圧センサ＞
操作デバイス１０が操作面３０に置かれて操作されている2D操作と、操作デバイス１０が空中で操作されている3D操作とを比べると、その操作デバイス１０が位置する高さが異なる。この高さの変化を気圧センサにより検出することが可能である。現行の気圧センは、高さ数cmごとの気圧の変化を検出することができるので、この原理を2D/3D操作の判定処理に応用することができる。
【００７９】
＜光学センサ＞
例えば反射型の光学センサは、ある波長の光を放出し、その光の戻り光を検出することで物体と光学センサとの距離を測定することができる。2D操作では、操作デバイス１０はユーザーの手と操作面３０との間に挟まれ、光学センサは操作面３０からの戻り光を検出できる光量が多いか、または戻り光を検出している時間が長い。一方、3D操作ではその戻り光を検出できる期間は短いか、または戻り光の光量が減少する。これにより、2D/3D操作の判定処理が可能となる。
【００８０】
＜超音波センサ＞
超音波センサも光学センサと同様に、超音波を発振させて、物体から跳ね返ってくる超音波を検出することで、この超音波センサと物体との距離を測定することができる。これは、先述の光学センサと同様の使い方で、操作デバイス１０の周辺環境をセンシングできるので、2D/3D操作の判定処理が可能となる。
【００８１】
＜ひずみセンサ＞
ひずみセンサは、配線の抵抗変化を検出することで、数μmのひずみを検出できる精度を持つ。2D操作では、操作デバイス１０はユーザーの手と操作面３０との間に挟まれ、これにより操作デバイス１０がゆがみ、これをひずみセンサが検出する。3D操作では、このゆがみはほとんど発生しないか、またはわずかにゆがむだけである。これにより、2D/3D操作の判定処理が可能となる。
【００８２】
以上説明した各センサの精度が低い場合は、これらのうち少なくとも２つのセンサによる検出を組み合わせて、2D/3D操作の判定処理が実行されることにより、その判定処理の精度を向上させることができる。
【００８３】
以上のように、2D/3D操作の判定処理の方法は、センサの検出値を利用する形態に限られない。例えば操作デバイス１０に設けられた機械的なボタン等のスイッチ、または、アプリケーションソフトウェア上のスイッチ機能によって、2D/3Dの演算モードの切り替えが行われるようにしてもよい。上記ボタンスイッチや、アプリケーションソフトウェア上のスイッチは、ユーザーの操作によって切り替えられる。あるいは、ユーザーが操作デバイス１０を意図的に力を加えて握り、圧力センサにより閾値を超える加圧力が検出された場合に、2D/3D操作の切り替えが実行されてもよい。これらのような構成によれば、ユーザーが意図した時に演算モードの切り替えが行われる。
【００８４】
[2D/3D演算モードによる演算処理]
【００８５】
次に、2D演算モード及び3D演算モードの演算処理の内容を説明する。
【００８６】
（2D演算モード）
図１２は、2D演算モードでの演算処理を示すフローチャートである。操作デバイス１０の外形は球形なので、ＣＰＵは、操作デバイス１０の上下左右は決められていないため、現時点での操作デバイス１０の姿勢を認識する必要がある。
【００８７】
操作デバイス１０による操作の開始時に、ステップ２０１では、加速度センサ５で検出された加速度（特にx及びy軸方向における加速度（ax，ay））の情報に基づき、操作デバイス１０の、グローバルX及びY軸周りの初期姿勢角度がそれぞれ算出される。図１３は、その演算処理の原理を説明するための図であり、センサ基板２０の傾き（姿勢）がグローバル座標系において傾いている状態を示す図である。
【００８８】
例えばグローバルY軸周りの初期姿勢角度、つまりX軸からの角度θxを算出する場合には、加速度axの情報に基づき、下の式１により演算される。式１において、図１４に示すように、例えばx軸の加速度センサ５ａで検出される重力１Gの値をAxGとし、センサ基板２０が傾いた状態（加速度センサ５（５ａ）が傾いた状態）における、加速度センサ５ａの値をaxとしている。
【００８９】
同様に、加速度ayの情報に基づき、グローバルX軸周りの初期姿勢角度、つまりY軸からの角度θyが式２により演算される。重力１Ｇに対するy軸の加速度センサ５ｂの値をAyGとする。
【００９０】
【数１】
0005810707.tif 000002
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とする。
【００９４】
【数２】
0005810707.tif 000003
hx、hy、hz：ローカル座標系におけるx、y、z軸方向の磁気強度（ローカル磁気強度）
Hx、Hy：グローバルX、Y軸方向の磁気強度（グローバル磁気強度）
θz：グローバルZ軸周りの初期姿勢角度（方位）
【００９５】
このように地磁気を検出する磁気センサ７を用いることにより、操作デバイス１０は、グローバルZ軸周りでのセンサ基板２０の方位を認識することができる。式１〜３を演算する場合において、ＣＰＵ２及びこの演算内容が記述されたソフトウェアは、初期姿勢角度算出部として機能する。
【００９６】
以上のようにして、ステップ２０１及び２０２の演算処理により、操作デバイス１０は、グローバル座標系における、センサ基板２０の初期の姿勢（X、Y、Z軸に対する傾き）を認識することができる。つまり、ユーザーが操作デバイス１０の握り方及びその方向等を意識せずとも、操作デバイス１０が自らの姿勢を認識することができる。その結果、ユーザーは、２次元の面内で任意の姿勢にある操作デバイス１０を用いて操作を開始することができる。
【００９７】
次に、ステップ２０３では、ステップ２０１及び２０２で算出された初期姿勢角度（θx、θy、θz）の情報に基づき、操作開始時に、つまり操作開始直後に角速度センサ６で検出された角速度が、グローバル座標系におけるグローバル角速度に変換される。すなわちこれは回転座標変換である。この演算処理には、式４が用いられる。この場合、ＣＰＵ２及びこの演算内容が記述されたソフトウェアは、座標変換部として機能する。
【００９８】
【数３】
0005810707.tif 000004
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）に変更する、つまり姿勢角度を更新することである。この場合、ＣＰＵ２及びこの演算内容が記述されたソフトウェアは、更新部として機能する。
【０１００】
【数４】
0005810707.tif 000005
Rx：グローバル座標系におけるX軸周りの角度（グローバル角度（グローバル姿勢角度））
(tn)：n番目に得られた値を意味する
Δt =tn- tn-1
【０１０１】
このようにグローバル角度が算出されると、この情報が送信機９により、表示デバイス５０に送信（出力）される（ステップ２０５）。現時点では、このグローバル角度は、初期の（つまり、操作開始時の）グローバル角度である。表示デバイス５０は、この情報を受信する。表示デバイス５０は、その初期のグローバル角度（Rx、Ry、Rz）のうち（Ry、Rx）に定数をそれぞれかけた値を、表示部５２の画面上での、オブジェクト５１の座標値（X,Y）に割り当てる。このようにして、操作デバイス１０の初期姿勢と、オブジェクト５１の初期姿勢（座標）とが対応する。
【０１０２】
そして、表示デバイス５０は、２回目以降のグローバル角度の情報を受信すると、そのグローバル角度に応じた、画面内での位置、または姿勢を持つオブジェクト５１を表示部５２に表示する。この場合、ユーザーの操作デバイス１０の回転角度に対応して、オブジェクト５１が画面内を移動してもよいし、あるいは、回転してもよい。これは、アプリケーションの違いによる。
【０１０３】
なお、式５のような台形積分法に限られず、中点法やシンプソン法等、各種の積分処理によっても、グローバル角度を求めることができる。
【０１０４】
ここで初期には、ステップ２０３では、座標変換部は、初期姿勢角度（θx、θy、θz）の情報に基づき、ローカル角速度（初期値）について座標変換処理を実行した。しかし、２回目以降（初期以外）のステップ２０３の処理では、座標変換部は、ステップ２０４で算出されたグローバル角度（Rx、Ry、Rz）の情報に基づき、ローカル角速度（２回目以降の値）について座標変換処理を実行する。この演算処理には、下の式６が用いられる。
【０１０５】
【数５】
0005810707.tif 000006
【０１０６】
操作デバイス１０のグローバル角度は、徐々に（刻々と）変わっていく。したがって、具体的には、式６では、下記の式に示すようにグローバル角度が逐次加算された値に基づき、回転座標変換が行われる。  
【０１０７】
Rx' =Rx(tn)+Rx(tn+1)
Ry' =Ry(tn)+Ry(tn+1)
Rz' =Rz(tn)+Rz(tn+1)
【０１０８】
しかし、表示デバイス５０による画像表示のためのソフトウェアの仕様によっては、式６（後述する下記の式７も同様）において、（Rx'、Ry'、Rz'）の代わりに、（Rx、Ry、Rz）が用いられてもよい。
【０１０９】
以上のように、最初に初期姿勢角度が算出されれば、２回目以降の演算ではその初期姿勢角度を用いずに、ステップ２０４で算出されたグローバル角度が用いられる。以下、この理由について説明する。
【０１１０】
ユーザーによる操作デバイス１０の操作開始時には、加速度センサ５により得られた加速度を含む情報に基づき算出される初期姿勢角度の情報を用いてローカル角速度がグローバル角速度に変換される。つまり、操作が開始される瞬間には、加速度センサ５には実質的に重力加速度のみが検出され、この重力加速度を含む情報に基づき初期姿勢角度が算出され、その初期姿勢角度に基づき座標変換が行われる。
【０１１１】
しかし、その後のユーザーの操作中は、加速度センサ５では、重力加速度に、運動加速度（慣性加速度）が加えられた値が検出される。すなわち、ユーザーの操作中は、センサ基板２０の姿勢は刻々と変わる。したがって、仮に、ユーザーの操作中に加速度センサ５で得られるこのような運動加速度を含む加速度に基づき姿勢角度を算出した場合、誤差が発生するおそれがある。
【０１１２】
そこで本実施形態では、初期値として取得されたローカル角速度より後に取得されたローカル角速度については、運動加速度の情報を含まない情報、つまり、少なくとも１度、ローカル角速度を用いて更新された姿勢角度の情報（ステップ２０３及び２０４を少なくとも１度経て得られる情報）に基づき、変換処理が実行される。ローカル角速度値は、運動加速度には影響されない値だからである。
【０１１３】
このような演算処理によれば、ユーザーによる操作デバイス１０の操作中において発生する運動加速度による影響が、操作デバイス１０の姿勢角度の演算に及んでその演算に誤差を発生させる、といった事態を抑制することができる。
【０１１４】
（3D演算モード）
次に、3D演算モードの処理を説明する。図１５はその処理内容を示すフローチャートである。
【０１１５】
3D演算モードにおいても、ＣＰＵ２はステップ２０５までは図１２に示した処理と同じ処理を実行する。ユーザーが操作デバイス１０を回転させた場合、ＣＰＵ２は、図１２に示したステップ２０５で計算されたグローバル角度の情報を、表示デバイス５０に送信する。表示デバイス５０は、これを受信し、この情報に基づき、オブジェクト５１を生成する。これにより、操作デバイス１０の回転角に応じて、オブジェクト５１がその回転角で回転するように表示部５２に表示される。
【０１１６】
図１５を参照して、ステップ２０４で算出されたグローバル角度（Rx、Ry、Rz）の情報は、ステップ２０６における処理に用いられる。ステップ２０６では、座標変換部は、式６と同様にグローバル角度の情報を用いて、ローカル加速度をグローバル加速度に変換する。この演算処理は、下の式７が用いられる。
【０１１７】
【数６】
0005810707.tif 000007
Ax、Ay、Az：グローバルX、Y、Z軸まわりの加速度（グローバル加速度）
【０１１８】
このようにステップ２０６においても、初期以外においては、ＣＰＵ２は、グローバル角度の情報に基づいて座標変換を実行する。
【０１１９】
次に、ステップ２０７では、ステップ２０６で算出されたグローバル加速度に基づき速度が算出され、さらにステップ２０８で、その速度から移動距離（並進移動距離）が算出される。これらの演算処理は、上記したステップ２０４での各種の積分法を用いて実行され得る。ステップ２０９では、操作デバイス１０は算出された距離の情報を表示デバイス５０に送信（出力）する。表示デバイス５０は、この距離の情報を受信し、この距離に応じた分の距離をオブジェクト５１が移動するように、これを表示部５２に表示する。
【０１２０】
もちろん、ユーザーが操作デバイス１０を回転させながら並進移動させた場合、表示デバイス５０は、それに応じてオブジェクト５１を回転させながら並進移動させる。
【０１２１】
上述のように、ステップ２０４で更新された姿勢角度の情報には、運動加速度の情報は含まれないので、この姿勢角度の情報に基づきローカル加速度がグローバル加速度に変換されることにより、操作デバイス１０の動きをオブジェクト５１の動きとして忠実に再現することができる。これにより、ユーザーは直感的な操作が可能となる。
【０１２２】
以上のように、本実施形態では、操作デバイス１０は、２次元演算モード及び３次元演算モードのうちいずれで演算すべきかを判定するので、ユーザーの２次元及び３次元操作の両方に対応することができる。したがって、ユーザーは、別々の入力装置を用いる必要がなく、容易に２次元及び３次元操作の両方の操作を行うことができる。
【０１２３】
また、本実施形態では、ユーザーに把持される操作デバイス１０の姿勢が３次元空間内におけるどのような姿勢となる場合であっても、演算誤差の発生を抑制しながらセンサ基板２０の姿勢を認識して、操作デバイス１０によるオブジェクト５１の操作が可能となる。
【０１２４】
上記では、図１１、１２及び１５に示した処理をすべて操作デバイス１０が実行する形態を示した。しかし、図１１、１２及び１５に示した処理の一部を表示デバイス５０が実行してもよい。例えば、操作デバイス１０は、図１１のステップ１０１あるいは１０２までの処理を実行し、表示デバイス５０が、ステップ１０２、１０３、または１０４からの処理を実行してもよい。
【０１２５】
操作デバイス１０及び表示デバイス５０がどの処理を担当するかは、例えばそれらの演算処理能力、それらのコスト、チップサイズ等の環境から適宜判断されればよい。
【０１２６】
以上の説明では、操作デバイス１０の動きと、オブジェクト５１の動きとが対応する（同じである）として説明した。しかし、それらは同じでなくてもよく、例えば操作デバイス１０の所定の動きにより、オブジェクト５１の動きが加速する、減速する、あるいは止まる等の表示も実現可能である。
【０１２７】
あるいは、ユーザーが操作デバイス１０を握って力を加えることにより、この加圧位置及び加圧力を圧力センサ８が検出し、表示デバイス５０がその加圧位置及び加圧力に応じて、オブジェクト５１を変形させるように画像を生成することも可能である。
【０１２８】
ＦＰＳ（first person shooter：主観視線でオブジェクトを操作する機能を備えたゲーム）などにおいて、操作デバイス１０の回転を視線の移動（画面全体の移動）に割り当てる等の機能を実現することができる。
【０１２９】
[アプリケーションの例]
【０１３０】
（アプリケーション例１）
図１６は、情報処理システムのアプリケーション例１を説明するための図である。この例では、操作デバイス１０または表示デバイス５０は、上図の2D操作では、画面上に表示される画像（第１の操作対象画像）を、操作デバイス１０の動きに応じて画面上で動かすための情報を生成する。下図の3D操作では、操作デバイス１０または表示デバイス５０は、画面上に表示される、上記の2D操作において表示されたオブジェクト５１とは異なる画像（第２の操作対象画像）を、操作デバイス１０の動きに応じて画面上で動かすための情報を生成する。
【０１３１】
具体的には、それは以下のような処理である。上図では、ユーザーは、操作デバイス１０の2D操作により画面上のポインター５１ｂを動かして、オブジェクト５１ａを選択する。この場合、操作デバイス１０（または表示デバイス５０）は、ポインター画像を生成する。例えばユーザーは、操作デバイス１０を握って力を加えたり、ボタンを押したりすることにより、ポインター５１ｂを用いてオブジェクト５１ａを指定（クリック）することができる。
【０１３２】
上記第１の操作対象画像はポインター５１ｂである。そして、オブジェクト５１ａが選択されると、そのオブジェクト５１ａが第１の操作対象画像になる。この選択されたオブジェクト５１ａが、操作デバイス１０によるユーザーの2D操作により操作され得る。すなわち、操作デバイス１０は（または表示デバイス５０）は、ポインターにより選択された画像を動かすための情報を生成する。
【０１３３】
一方、ユーザーが操作デバイス１０を操作面３０から離して持ち上げると、上記2D/3Dの判定処理により3D演算モードに切り替わる。3D操作では、表示デバイス５０は、そのオブジェクト５１ｆを3D画像として表示する。この場合、3D画像が第２の操作対象画像となる。
【０１３４】
なお、2D操作から3D操作への切り替えは、既述のように、操作デバイス１０に設けられた機械的なボタン等のスイッチ、または、アプリケーションソフトウェア上のスイッチ機能によって実行されてもよい。
【０１３５】
（アプリケーション例２）
図１７は、情報処理システムのアプリケーション例２を説明するための図である。
【０１３６】
上図に示す2D操作では、操作対象画像が平面的な地図画像５１ｃである。ユーザーが操作デバイス１０を動かすことにより、この地図画像５１ｃをスキャン（パン）する。
【０１３７】
下図に示す3D操作では、操作対象画像が、上記平面的な地図画像５１ｃとは異なり、奥行き情報を持ったＦＰＳ機能を持つ地図のような画像５１ｄとなる。ただし、上記地図画像５１ｃを構成する座標群のうち、少なくとも１つの座標位置に、画像５１ｄが関連付けられて、記憶部５７等の記憶デバイスに記憶されている（画像記憶部）。この場合、この地図画像５１ｃの所定の位置（座標位置）がユーザーにより指定されることにより、その位置周辺の風景や街並みを構成する画像５１ｄが生成される。画像５１ｄは2D画像でもよいし、3D画像でもよい。ユーザーが操作デバイス１０を上下左右に動かしたり、回転させたりすることにより、アアプリケーションソフトウェアは、予めその動きに関連付けられた動きを、この画像５１ｄに与える。すなわち、本例２では、2D/3D操作でユーザーの視線が変更されている。
【０１３８】
（アプリケーション例３）
図１８は、情報処理システムのアプリケーション例３を説明するための図である。
【０１３９】
上図に示す2D操作では、操作対象画像がポインター５１ｂであり、ユーザーは操作デバイス１０を動かすことでこのポインター５１ｂを動かす。ユーザーは、ポインター５１ｂを用いて、寝かせてある写真画像５１ｅを選択すると、この写真画像５１ｅが操作対象画像になる。この状態では、写真画像が2D操作で操作され得る状態となる。写真画像の2D操作は、例えばズームイン、ズームアウト、パン、回転などがある。
【０１４０】
一方、下図に示す3D操作では、アプリケーションソフトウェアは、その操作デバイス１０の動きに応じて、その選択された写真画像５１ｅを起き上がらせるような表示を可能とする。この場合、ユーザーは、例えば操作デバイス１０を自分に向けて上回転（正回転）させるようにこれを操作することにより、このような写真画像５１ｅの動きが可能となる。
【０１４１】
例えば上図では、写真画像５１ｅは仮想空間では２次元面（例えばデスク面）に置かれた状態にあり、下図では、写真画像５１ｅの下辺が回転軸となって写真画像５１ｅが回転することにより、写真画像５１ｅが起き上がる。
【０１４２】
（アプリケーション例４）
図１９は、情報処理システムのアプリケーション例４を説明するための図である。
【０１４３】
上図に示す2D操作の説明は、図１６の上図と同様である。下図の3D操作において、ユーザーは操作デバイス１０を持ち上げただけでは、操作対象画像は2D画像のままである。下図に示すように、3D操作において、ユーザーが手前に操作デバイス１０を引いた時に、表示デバイス５０は、2Dの操作対象画像が画面から引き抜かれるように、3Dの操作対象画像を生成する。その後の操作は、図１６の下図に示した3D操作と同様である。
【０１４４】
[操作デバイスの他の実施形態]
【０１４５】
図２０は、操作デバイスの他の実施形態を示す斜視図である。これ以降の説明では、上記した実施形態に係る操作デバイス１０が含む部材や機能等について同様のものは説明を簡略化または省略し、異なる点を中心に説明する。
【０１４６】
この操作デバイス１１０は、半球形状を有し、上部平面１１１と、2D操作において操作面３０に接触可能な下半球面１１２とを有する。2D操作においては、ユーザーは自身の手のひらに上部平面１１１の一部または全部が接した状態で、操作デバイス１１０を操作する。上部平面１１１が操作面３０に接触することはなく、操作デバイス１１０は起き上がりこぼしのような動きをする。3D操作は、基本的には上記の実施形態と同様の操作であるが、典型的には、ユーザーは自身の手のひらに上部平面１１１の一部または全部が接した状態で、3D空間内でこの操作デバイス１１０を動かす。
【０１４７】
このような操作デバイス１１０の形状のほか、例えば卵形状、球の3/4程度の形状、楕円体、曲面状の下半球面１１２を有する多面体、これらのうち少なくとも２つの組み合わせの形状がある。
【０１４８】
これら球形以外の形状を有する操作デバイスのうち、上下方向が予め特定されている形状を有する操作デバイスは、その動きを検出するための演算方法として、上記で説明した演算方法以外にも、公知の様々な方法を用いることができる。例えば、少なくとも、異なる２軸の加速度センサ及び異なる２軸の角速度センサを備えることにより、この操作デバイスのＣＰＵは操作デバイスの動きを検出可能である。また、また、上下方向が予め特定されている形状を有する操作デバイスは、例えば、加速度センサ５、角速度センサ６及び磁気センサ７のうち少なくとも２つ、または、加速度センサ５及び角速度センサ６のうち少なくとも１つが、動きセンサとして機能する。
【０１４９】
[入力装置]
【０１５０】
次に、操作デバイスの他の実施形態として、入力装置２００を説明する。図２１は、その入力装置を示す斜視図である。
【０１５１】
この入力装置２００は、ステージ４０（あるいはクレードル）と、このステージ４０に載置されこのステージ４０から離れることが可能な操作デバイス１０とを備える。典型的な操作対象としては、上記のように表示デバイス５０に表示される画像である。
【０１５２】
操作デバイス１０は、基本的には上記の操作デバイス１０と同様の形状、構造及び機能を有する。ステージ４０は、操作デバイス１０の表面の形状に対応する形状に形成された操作面４１を有し、操作面４１は例えば半球面状を有する。操作デバイス１０は、この半球面状の操作面４１に接するようにしてステージに置かれている。
【０１５３】
[入力装置の使用方法]
【０１５４】
（例１）
図２２は、入力装置２００の使用方法を説明するための図である。
【０１５５】
2D操作では、ユーザーは、左図に示すようにステージ４０上の操作デバイス１０を任意の方向に回転させる。つまり、2D操作では、トラックボールのような操作方法で入力装置２００が使用される。3D操作では、右図に示すように、ユーザーは、ステージ４０から操作デバイス１０を持ち上げて操作する。
【０１５６】
2D/3D判定処理は上記したものと同様であるが、後述するように、ステージ４０に設けられたセンサによってそれが行われてもよい。また、入力装置２００の操作対象及びその操作方法の例として、図１６〜１９で示したアプリケーション例がある。これらは、以下の例２も同様である。
【０１５７】
（例２）
図２３は、入力装置２００の他の使用方法を説明するための図である。
【０１５８】
2D操作では、左図に示すように、ユーザーは操作デバイス１０を把持し、操作デバイス１０及びステージ４０を一体的に平面上で動かす。これは、マウスをX-Y平面上で操作する時と同様の操作である。この場合、光学センサ、加速度センサ、トラックボールセンサ等、そのステージ４０の平面上での並進の動きを検出できる図示しないセンサがステージ４０に内蔵されている。3D操作では右図に示すように、ユーザーは、ステージ４０から操作デバイス１０を持ち上げて操作する。
【０１５９】
上記した2D/3D判定処理により、現在の操作が2D操作であると判定された場合、操作デバイス１０の動きのセンシングが無効とされ、ステージ４０の動きのセンシングが有効とされる。2D/3D操作の切り替え時、操作デバイス１０及びステージ４０のいずれがそのセンシングを担当するかを決めるために、操作デバイス１０とステージ４０とが直接通信してもよい。あるいは、上記のような表示デバイス５０とは別のサーバー等の装置を介して、操作デバイス１０とステージ４０とが通信してもよい。
【０１６０】
[入力装置による2D/3D操作の判定処理]
【０１６１】
入力装置２００による2D/3D操作の判定処理は、以下のように、ステージ４０に設けられた各種のセンサによって行われてもよい。この場合、ステージ４０は、これらのセンサの他、典型的にはＣＰＵやメモリをさらに備え、そのＣＰＵが2D/3D操作の判定処理を実行してもよい。
【０１６２】
＜圧力センサ＞
ステージ４０の操作面４１に１つ以上の圧力センサが設けられる。この圧力センサが、少なくとも操作デバイス１０の重さによる加圧力を検出している場合には、現在の操作が2D操作であると判定できる。また、そうでない場合、現在の操作が3D操作であると判定される。
【０１６３】
＜磁気センサ＞
ステージ４０に設けられた１つ以上の磁気センサが、操作デバイス１０の内部に存在する磁性体を検出する。磁気センサで検出されるその磁気強度が閾値を超える場合は、現在の操作が2D操作であると判定され、その磁気強度が閾値以下である場合、現在の操作が3D操作であると判定される。
【０１６４】
＜静電容量センサ＞
ステージ４０の操作面４１に１つ以上の静電容量センサが設けられる。操作デバイス１０がステージ４０に置かれている場合とそうでない場合とで、静電容量センサにより検出値が異なる。これにより、2D/3D操作の判定処理が可能となる。
【０１６５】
＜光学センサ＞
ステージ４０の操作面４１に、例えば１つ以上の反射型光学センサが設けられる。操作デバイス１０がステージ４０に置かれている場合とそうでない場合とで、その反射型光学センサの受光量が異なる。これにより、2D/3D操作の判定処理が可能となる。
【０１６６】
あるいは、操作面４１の２箇所にそれぞれ配置された受光部と発光部とを有する透過型光学センサが設けられていても、2D/3D操作の判定処理が可能である。
【０１６７】
＜超音波センサ＞
ステージ４０の操作面４１に、例えば１つ以上の反射型超音波センサが設けられる。2D操作の場合、発せられた超音波が操作デバイス１０から跳ね返ってくるので、それが検出されるが、3Dでは検出されない。これにより、2D/3D操作の判定処理が可能となる。
【０１６８】
あるいは、操作面４１の２箇所にそれぞれ配置された超音波の送信部と受信部とを有する透過型光学センサが設けられていても、2D/3D操作の判定処理が可能である。
【０１６９】
＜ひずみセンサ＞
ステージ４０の操作面４１に、例えば１つ以上のひずみセンサが設けられる。操作デバイス１０がステージ４０に置かれている場合、ひずみセンサは、その操作デバイス１０の重さ分の、操作面４１のひずみを検出するが、3D操作ではそれを検出しない。これにより、2D/3D操作の判定処理が可能となる。
【０１７０】
以上説明した各センサの精度が低い場合は、これらのうち少なくとも２つのセンサによる検出を組み合わせて、2D/3D操作の判定処理が実行されることにより、その判定処理の精度を向上させることができる。あるいは、ステージ４０に設けられた上記各センサのうち少なくとも１つと、操作デバイス１０に設けられた上記した各センサのうち少なくとも１つとを組み合わせて、2D/3D操作の判定処理が実行されることにより、その判定処理の精度を向上させることができる。
【０１７１】
[その他の実施形態]
【０１７２】
本技術は、以上説明した実施形態に限定されず、他の種々の実施形態が実現される。
【０１７３】
上記操作対象画像は、操作デバイスの動きに対応した動きをするオブジェクトでなくてもよい。例えば、操作対象画像は、テレビのチャンネルの切り替えやボリュームの調整等のために表示される画像であってもよい。その場合、操作デバイス１０が操作に応じたその切り替えや調整時に、その画像が変化するように、表示デバイス５０はその画像を生成する。
【０１７４】
図２１に示した入力装置２００のステージ４０に、角速度センサ等、Ｚ軸（図２３に示したような2D操作でのX-Y操作平面に垂直な軸）周りの回転を検出できるセンサが設けられていてもよい。
【０１７５】
上記各実施形態に係る操作デバイスは、操作面に接触する外面が曲面状であった。しかし、その外面は、曲面に限られず、平面、または平面及び曲面の組み合わせでもよい。
【０１７６】
以上説明した各形態の特徴部分のうち、少なくとも２つの特徴部分を組み合わせることも可能である。
【０１７７】
本技術は以下のような構成もとることができる。
（１）操作デバイスの並進及び回転の動きを検出可能な動きセンサを有する操作デバイスから得られる情報の処理装置であって、
前記操作デバイスが操作面に置かれて前記操作デバイスが有する曲面状の外面が前記操作面に接触した状態で、ユーザーにより前記操作デバイスが操作された場合、前記操作デバイスの２次元的な動きに応じた前記動きセンサの検出値に基づき、演算を実行する２次元演算モードと、前記ユーザーにより３次元空間で前記操作デバイスが操作された場合、前記操作デバイスの３次元的な動きに応じた前記動きセンサの検出値に基づき、演算を実行する３次元演算モードとを有する演算部と、
前記動きセンサの検出値、及び、前記動きセンサの検出値とは別の情報のうち少なくとも一方に基づき、前記演算部が前記２次元演算モード及び前記３次元演算モードのうちいずれで演算すべきかを判定する判定部と
を具備する。
（２）（１）に記載の情報処理装置であって、
前記演算部は、前記操作デバイスが有する曲面状の外面が前記操作面に接触した状態で前記ユーザーにより前記操作デバイスが操作される場合の演算モードを、前記２次元演算モードとして、前記演算を実行する
情報処理装置。
（３）（２）に記載の情報処理装置であって、
前記操作デバイスは、前記外面を含む表面と、前記表面に加えられる力を検出する圧力センサを有し、
前記判定部は、前記圧力センサの検出値を前記別の情報として取得する
情報処理装置。
（４）（３）に記載の情報処理装置であって、
前記判定部は、前記操作デバイスによる加圧力以上の力が前記表面に加えられることを前記圧力センサが検出した場合、前記演算部が前記２次元演算モードで演算すべきと判定し、そうでない場合、前記演算部が前記３次元演算モードで演算すべきと判定する
情報処理装置。
（５）（１）から（４）のういずれか１つに記載の情報処理装置であって、
前記判定部は、前記動きセンサによる検出値に前記ユーザーの手振れによる成分が含まれる場合、前記演算部が前記３次元演算モードで演算すべきと判定し、そうでない場合、前記演算部が前記２次元演算モードで演算すべきであると判定する
情報処理装置。
（６）（１）から（５）のうちいずれか１つに記載の情報処理装置であって、
前記判定部は、静電容量センサ、気圧センサ、光学センサ、超音波センサ、またはひずみセンサの検出値を前記別の情報として取得する
情報処理装置。
（７）（１）から（５）のうちいずれか１つに記載の情報処理装置であって、
前記判定部は、前記操作デバイスの前記外面に対応する形状を有する前記操作面を含むステージが有するセンサの検出値を、前記別の情報として取得する
情報処理装置。
（８）（１）に記載の情報処理装置であって、
前記ユーザーの入力操作により、前記２次元演算モード及び前記３次元演算モードを切り替えるアプリケーションソフトウェアを記憶する記憶部をさらに具備する情報処理装置。
（９）（１）から（８）のうちいずれか１つに記載の情報処理装置であって、
前記操作デバイスは、ローカル座標系における直交３軸の検出軸を有する加速度センサ、前記直交３軸の検出軸を有する角速度センサ及び前記直交３軸の検出軸を有する磁気センサを備えた、前記ユーザーにより３次元空間内で任意の姿勢で操作され得る操作デバイスであり、
前記演算部は、
前記加速度センサ、前記角速度センサ及び前記磁気センサでそれぞれ検出された加速度、角速度及び磁気強度の情報を取得する取得部と、
前記３次元空間を表すグローバル座標系における前記操作デバイスの姿勢角度の情報を用いて、前記取得部で取得された前記角速度を、前記グローバル座標系におけるグローバル角速度に変換する座標変換部と、
前記ユーザーによる前記操作デバイスの操作の開始時に前記取得部で取得された前記加速度及び前記磁気強度の情報に基づき、前記姿勢角度のうち、前記操作デバイスの前記グローバル座標系における初期の前記姿勢角度を算出する初期姿勢角度算出部と、
前記座標変換部で変換された前記グローバル角速度の情報に基づき、前記操作デバイスの前記グローバル座標系における前記姿勢角度を更新する更新部と、
前記座標変換部に、前記初期姿勢角度算出部で算出された前記初期姿勢角度の情報を用いて、前記操作の開始時に前記取得部で取得された前記第１の角速度を前記グローバル角速度に変換させ、前記更新された姿勢角度の情報を用いて、前記第１の角速度が取得された後に取得された第２の角速度を前記グローバル角速度に変換させる制御部と
を有することにより、前記２次元演算モードを実現する
情報処理装置。
（１０）（９）に記載の情報処理装置であって、
前記演算部は、前記座標変換部が、前記取得部で取得された前記加速度を、前記更新部で更新された前記操作デバイスの姿勢角度の情報に基づき、前記グローバル座標系におけるグローバル加速度に変換することにより、前記３次元演算モードを実現する
情報処理装置。
（１１）（１）から（１０）のうちいずれか１つに記載の情報処理装置であって、
前記操作デバイスの外形は球形である
情報処理装置。
（１２）（１）から（１１）のうちいずれか１つに記載の情報処理装置であって、
前記演算部は、
前記２次元演算モードでは、画面上に表示される第１の操作対象画像を、前記操作デバイスの動きに応じて前記画面上で動かすための情報を生成し、
前記３次元演算モードでは、前記画面上に表示される、前記第１の操作対象画像とは異なる第２の操作対象画像を、前記操作デバイスの動きに応じて前記画面上で動かすための情報を生成する
情報処理装置。
（１３）（１２）に記載の情報処理装置であって、
前記演算部は、前記３次元演算モードでは、前記第２の操作対象画像として、視差を有する複数の画像で形成される３次元画像である第２の操作対象画像を動かすための情報を生成する
情報処理装置。
（１４）（１２）に記載の情報処理装置であって、
前記第２の操作対象画像を、前記第１の操作対象画像の、前記画面上の所定の座標位置に関連する画像として記憶する画像記憶部をさらに具備する情報処理装置。
（１５）（１）から（１１）のうちいずれか１つに記載の情報処理装置であって、
前記演算部は、前記２次元演算モードでは、前記ユーザーの前記操作デバイスへの入力操作による前記操作デバイスの動きに応じて、前記画面上に表示される画像を選択するためのポインター画像を生成する
情報処理装置。
（１６）（１５）に記載の情報処理装置であって、
前記演算部は、前記３次元演算モードでは、前記操作デバイスの動きに応じて前記画面上で前記ポインター画像により選択された前記画像を動かすための情報を生成する
情報処理装置。
（１７）操作デバイスの並進及び回転の動きを検出可能な動きセンサを有する操作デバイスから得られる情報の処理方法であって、
前記操作デバイスが操作面に置かれてユーザーにより前記操作デバイスが操作された場合、前記操作デバイスの２次元的な動きに応じた前記動きセンサの検出値に基づき、第１の演算を実行し、
前記ユーザーにより３次元空間で前記操作デバイスが操作された場合、前記操作デバイスの３次元的な動きに応じた前記動きセンサの検出値に基づき、第２の演算を実行し、
前記動きセンサの検出値、及び、前記動きセンサの検出値とは別の情報のうち少なくとも一方に基づき、前記第１の演算及び前記第２の演算のうちいずれを実行すべきかを判定する
情報処理方法。
（１８）操作面を有するステージと、
操作デバイスが前記操作面に置かれた時に該操作面に接触する外面と、操作デバイスの並進及び回転の動きを検出可能な動きセンサとを有し、前記ステージから離れることが可能な操作デバイスと
を具備する入力装置。
（１９）（１８）に記載の入力装置であって、
前記ステージは、前記操作デバイスの前記外面の形状に対応する形状に形成された前記操作面を有する
入力装置。
（２０）（１８）または（１９）に記載の入力装置であって、
前記ステージは、前記ステージの少なくとも並進の動きを検出可能なセンサを有する
入力装置。
（２１）（１８）から（２０）のうちいずれか１つに記載の入力装置であって、
前記操作デバイスの前記外形は球形である
入力装置。
【符号の説明】
【０１７８】
２…ＣＰＵ
５…加速度センサ
６…角速度センサ
７…磁気センサ
８…圧力センサ
１０、１１０…操作デバイス
３０、４１…操作面
４０…ステージ
５０…表示デバイス
５１…オブジェクト（操作対象画像）
５１ｂ…ポインター
５１ｃ…地図画像
５１ｄ…ＦＰＳ画像
５１ｅ…写真画像
５２…表示部
５３…ＣＰＵ
１００…情報処理システム
２００…入力装置
【図１】
0005810707.tif 000008
【図２】
0005810707.tif 000009
【図３】
0005810707.tif 000010
【図４】
0005810707.tif 000011
【図５】
0005810707.tif 000012
【図６】
0005810707.tif 000013
【図７】
0005810707.tif 000014
【図８】
0005810707.tif 000015
【図９】
0005810707.tif 000016
【図１０】
0005810707.tif 000017
【図１１】
0005810707.tif 000018
【図１２】
0005810707.tif 000019
【図１３】
0005810707.tif 000020
【図１４】
0005810707.tif 000021
【図１５】
0005810707.tif 000022
【図１６】
0005810707.tif 000023
【図１７】
0005810707.tif 000024
【図１８】
0005810707.tif 000025
【図１９】
0005810707.tif 000026
【図２０】
0005810707.tif 000027
【図２１】
0005810707.tif 000028
【図２２】
0005810707.tif 000029
【図２３】
0005810707.tif 000030