(57)【特許請求の範囲】
【請求項１】
３次元空間上で動作するユーザ命令入力デバイスであって、
筐体フレームに対する少なくとも一つの軸を中心にした前記デバイスの角速度を感知する第１センサと、
少なくとも一つの方向に対する前記デバイスの加速度を感知する第２センサ、および
前記デバイスの姿勢から独立的な座標系に対する原点と前記筐体フレームの原点を同一に設定した状態に基づき、前記第１センサの出力値を、前記デバイスの姿勢から独立的な座標系における第１回転角に変換し、前記第２センサの出力値を、前記座標系における第２回転角に変換し、前記第１回転角と前記第２回転角を組合せて最終姿勢角を求める処理ユニットを含むユーザ命令入力デバイス。
【請求項２】
前記第１センサは、
第１軸を中心にした前記デバイスの回転および前記第１軸と垂直である第二軸を中心にした前記デバイスの回転を感知する角速度センサである、請求項１に記載のユーザ命令入力デバイス。
【請求項３】
前記第１回転角と前記第２回転角は、
加重平均によって組合せられる、請求項１に記載のユーザ命令入力デバイス。
【請求項４】
前記加重平均に使用される加重値は、
所定の動き推定関数によって推定されるが、前記動き推定関数は前記デバイスの動きがない場合には前記最終姿勢角に第２回転角のみが反映されるように前記加重値を設定し、前記デバイスの動きが最大である場合には前記最終姿勢角に第１回転角のみが反映されるように前記加重値を設定し、前記デバイスの動きがその間である場合には停止と最大動きの間の値で前記加重値を設定する、請求項３に記載のユーザ命令入力デバイス。
【請求項５】
前記第１回転角は、
前記第１センサの出力値および前記第１回転角が組合せられた微分方程式から演算される、請求項１に記載のユーザ命令入力デバイス。
【請求項６】
前記第２回転角のうちヨー（ｙａｗ）は、前記第２回転角のうちロール（ｒｏｌｌ）およびピッチ（ｐｉｔｃｈ）の組合せから演算される、請求項１に記載のユーザ命令入力デバイス。
【請求項７】
前記最終姿勢角は、
各々少なくともヨー（ｙａｗ）およびピッチ（ｐｉｔｃｈ）を含む、請求項１に記載のユーザ命令入力デバイス。
【請求項８】
前記ヨーの変化量はディスプレイ上のポインタの横方向変位に対応し、前記ピッチの変化量はディスプレイ上のポインタの縦方向変位に対応する、請求項７に記載のユーザ命令入力デバイス。
【請求項９】
前記ヨーの変化量と横方向変位との関係、および前記ピッチの変化量とｙ軸変位との関係は所定のマッピング関数によってマッピングされる、請求項８に記載のユーザ命令入力デバイス。
【請求項１０】
前記マッピング関数は、関数の入力値を縮小または除去してマッピングする低下領域と、関数の入力値をほぼ比例する出力値にマッピングするスケーリング領域と、一定値以上の入力値に対し、その出力値を制限する限定領域のうち少なくとも２つの領域を含む、請求項９に記載のユーザ命令入力デバイス。
【請求項１１】
３次元空間上で動作するユーザ命令入力デバイスを利用してユーザ命令を入力する方法であって、
筐体フレームに対する少なくとも一つの軸を中心にした前記デバイスの角速度を第１センサによって感知するステップと、
少なくとも一つの方向に対する前記デバイスの加速度を第２センサによって感知するステップと、
前記デバイスの姿勢から独立的な座標系に対する原点と前記筐体フレームの原点を同一に設定した状態に基づき、前記第１センサの出力値を、前記デバイスの姿勢から独立的な座標系における第１回転角に変換するステップと、
前記デバイスの姿勢から独立的な座標系に対する原点と前記筐体フレームの原点を同一に設定した状態に基づき、前記第２センサの出力値を、前記座標系における第２回転角に変換するステップと、
前記第１回転角と前記第２回転角を組合せて最終姿勢角を求めるステップ、および
前記求めた最終姿勢角の変化量に対応する位置変位を出力するユーザ命令入力方法。
【請求項１２】
３次元空間上で動作するユーザ命令入力デバイスであって、
筐体フレームに対する少なくとも一つの軸を中心にした前記デバイスの角速度を感知する第１センサと、
前記デバイスの回転角を感知する第２センサ、および
前記デバイスの姿勢から独立的な座標系に対する原点と前記筐体フレームの原点を同一に設定した状態に基づき、前記第１センサの出力値を、前記デバイスの姿勢から独立的な座標系における回転角に変換し、感知された回転角と前記変換された回転角を組合せて最終姿勢角を求める処理ユニットを含むユーザ命令入力デバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動きセンサを具備したユーザ命令入力デバイスに関するものであって、より詳細には３次元空間上でのデバイスの動きに基づいてより自然かつ正確にユーザ命令を入力する装置に関するものである。
【背景技術】
【０００２】
コンピュータ科学分野の発達につれ、ユーザがコンピュータデバイスに情報を入力できる多様なデバイスが開発されている。前記デバイスのうちあるグループはユーザ命令入力デバイスと呼ばれる。ユーザがこのようなデバイスのコンポーネントを操作することにより、ユーザ命令入力デバイスの移動に対応する位置データが生成される。そして、このような位置データはディスプレイ上に表示されるポインタイメージの動きに変換される。したがって、ユーザ命令入力デバイスを動かすことによって、ユーザはそのポインタイメージをディスプレイ上に表示されるオブジェクトと関連させることができる。前記オブジェクトとは、メニュー、ボタン、イメージなど選択されたとき、特定動作が実行されるようにするユーザインターフェースを意味する。その後ユーザはユーザ命令入力デバイスの特定ボタンを押すような選択動作を通じて、該当オブジェクトと関連した特定命令をすることができる。
【０００３】
一般的な個人用コンピュータのユーザは自身のコンピュータを駆動するためのオペレーティングシステム（ＯＳ：Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）としてマイクロソフト社のウインドウズ（Ｗｉｎｄｏｗｓ）を使用している。これは既存のＤＯＳ（Ｄｉｓｋ  Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）システムではサポートできない便利なマウス機能および多様なグラフィック機能に起因するが、ユーザはウインドウズを介して特定命令を入力するとき、いちいちキーボード入力を行わなくても、マウスのドラッグやスクロール、クリックなどにより簡便に命令を入力することができる。
【０００４】
一方、これとは対照にデジタルＴＶ、セットトップボックス、ゲーム機などのように個人用コンピュータで使用されるキーボードやマウスを使用することができない映像表示装置では、リモコンという遠隔制御装置上に具備されたキーパッドを利用して多様な命令を入力する実情にある。このようにキーパッドを押す入力方式が主に使用された理由は、このような装置は個人用コンピュータとは異なり前記装置の操作のために特定の位置に固定されているものでもなく、リビングのような開放された空間での操作が必要であるためユーザがキーボードやマウスのように主に平面に固定して使用される入力手段を利用することが難しいからである。
【０００５】
このような問題点を考慮し、最近ではジャイロスコープ、加速度計などの動きセンサを搭載した３次元ユーザ命令入力デバイスが開発されている。ユーザは３次元ユーザ命令入力デバイスを動かすことによってこれに対応するディスプレイ上のポインタ  イメージを所望する方向と速度で動かすことができ、前記ユーザ命令入力デバイス上に具備された特定ボタンを押すことによって所望するオブジェクトを選択して実行することができる。
【０００６】
しかし、既存のマウスなどのように固定された２次元平面での動作を通じて、ユーザ命令を入力する技術とは異なって、３次元空間上で任意の動作を通じて、ディスプレイ上のポインタや特定のオブジェクト（例：ゲームのユニット）を動かすユーザ命令入力デバイスにおいて自然かつ正確な動きを伝達することはそれほど容易でない。それはユーザが前記デバイスを把持している姿勢（ｐｏｓｅ）、前記デバイスがディスプレイ装置に向かっている方向（ｏｒｉｅｎｔａｔｉｏｎ）や距離などによってユーザが意図しない動きが伝達され得るからである。
【０００７】
実際、加速度計、角速度計あるいは加速度計と角速度計を利用して３次元空間上の動きを測定し、それから得られた情報を活用した入力装置に関する発明は１９８０年代から引き続いてきた。本発明の出発点は単に加速度計および角速度計を利用して入力装置を実現することにあるのではなく、簡潔なシステム（すなわち、少ない演算量を消耗するシステム）を有しても、ユーザの意図に自然に符合する入力装置を実現することにある。
【発明の概要】
【発明が解決しようとする課題】
【０００８】
本発明が解決しようとする課題は、３次元空間上で任意の動作を通じてユーザ命令を入力するデバイスにおいて、より自然かつ正確なユーザ命令の入力を可能にすることにある。
【０００９】
本発明の技術的課題は、以上で言及した技術的課題に制限されず、言及されていないまた他の技術的課題は次の記載から当業者に明確に理解できるであろう。
【課題を解決するための手段】
【００１０】
前記技術的課題を達成するために、本発明の一実施形態による３次元空間上で動作するユーザ命令入力デバイスは、少なくとも一つの軸を中心にした前記デバイスの角速度を感知する第１センサと、少なくとも一つの方向に対する前記デバイスの加速度を感知する第２センサ、および前記第１センサの出力値から、前記デバイスの姿勢から独立的な座標系における第１回転角を演算し、前記第２センサの出力値から前記座標系における第２回転角を演算し、前記第１回転角と前記第２回転角を組合せて最終姿勢角を求める処理ユニットを含む。
【００１１】
前記技術的課題を達成するために、本発明の一実施形態による３次元空間上で動作するユーザ命令入力デバイスを利用してユーザ命令を入力する方法は、少なくとも一つの軸を中心にした前記デバイスの角速度を感知するステップと、少なくとも一つの方向に対する前記デバイスの加速度を感知するステップと、前記第１センサの出力値を前記デバイスの姿勢から独立的な座標系における第１回転角として演算するステップと、前記第２センサの出力値を前記座標系における第２回転角として演算するステップと、前記第１回転角と前記第２回転角を組合せて最終姿勢角を求めるステップ、および前記求めた最終姿勢角の変化量に対応する位置変位を出力するステップを含む。
【発明の効果】
【００１２】
本発明によるポインティングデバイスを利用したユーザ命令入力システムおよび方法によれば、３次元空間上でユーザ命令を入力するデバイスにおいて、ユーザの直観的な感覚と符合するようにディスプレイ装置上のオブジェクトを制御することができる。
【図面の簡単な説明】
【００１３】
【図１】特定フレームで定義される三軸回転方向を示す図である。
【図２】本発明の一実施形態によるユーザ命令入力デバイスを示すブロック図である。
【図３】本発明による一実施形態により加速度計を利用してロール値を測定する方法を示す図である。
【図４】本発明の一実施形態によるヨー角測定方法においてピッチおよびロール値を利用してヨー値（ｙａｗ  ｖａｌｕｅ）を計算する方法を示す図である。
【図５】式５においてωｘを利用する場合と利用しない場合を比較した図である。
【図６】式５においてωｘを利用する場合と利用しない場合を比較した図である。
【図７】式５においてωｘを利用する場合と利用しない場合を比較した図である。
【図８】動き推定関数を利用してデバイスの動きを推定するフローチャートである。
【図９】動き推定関数の例として使用された鐘形の曲線を示す図である。
【図１０】動き推定関数の例として使用された指数関数を示す図である。
【図１１】本発明の一実施形態によるマッピング関数を示す図である。
【図１２】本発明の一実施形態によるマッピング関数を示す図である。
【図１３】本発明の一実施形態によるマッピング関数を示す図である。
【図１４】ピッチ方向回転に関し、マッピングスケールを適用する例を示す図である。
【図１５】ピッチ方向回転に関し、マッピングスケールを適用する例を示す図である。
【図１６】ピッチ方向回転に関し、マッピングスケールを適用する例を示す図である。
【図１７】ヨー方向回転に関し、マッピングスケールを適用する例を示す図である。
【図１８】ヨー方向回転に関し、マッピングスケールを適用する例を示す図である。
【図１９】本発明の一実施形態による筐体フレームと航法フレームとの間の原点が一致することを示す図である。
【図２０】従来技術による筐体フレームと航法フレームとの間の原点が不一致することを示す図である。
【発明を実施するための形態】
【００１４】
本発明の利点、特徴、およびそれらを達成する方法は、添付する図面と共に詳細に後述される実施形態を参照すれば明確になるであろう。しかし、本発明は、以下で開示される実施形態に限定されるものではなく、互いに異なる多様な形態で実現されることが可能である。本実施形態は、単に本発明の開示が完全になるように、本発明が属する技術分野で通常の知識を有する者に対して発明の範疇を完全に知らせるために提供されるものであり、本発明は、請求項の範疇によってのみ定義される。なお、明細書全体にかけて、同一の参照符号は同一の構成要素を指すものとする。
【００１５】
以下添付された図面を参照して本発明による一実施形態について詳細に説明する。
【００１６】
本発明において、ユーザ命令入力デバイスはユーザの動きの入力を受け、直観的に多様なコンテンツを利用できるようにするインターフェース装置を意味する。前記デバイスはユーザの動きにより得られた情報を多様な情報機器あるいは様々なサービスに合わせて必要な情報に対応させる。例えば、３次元空間マウス、ＩＰＴＶ（ｉｎｔｅｒｎｅｔ  ｐｒｏｔｏｃｏｌ  ＴＶ）リモコン、ゲーム入力装置などがこれに含まれ得る。
【００１７】
次の図１は特定フレーム（座標系）で定義される三軸回転方向を示す図である。ｘ、ｙ、ｚ軸からなる特定フレームにおいて、ピッチ（θ）はｙ軸方向に対する回転を、ロール（φ）はｘ軸方向に対する回転を、そしてヨー（ψ）はｚ軸方向に対する回転をそれぞれ意味する。これら回転に対して陽（＋）および陰（−）を決定する基準は右手座標系（ｒｉｇｈｔ−ｈａｎｄｅｄ  ｃｏｏｒｄｉｎａｔｅ）に従う。本発明では航法フレーム（ｎａｖｉｇａｔｉｏｎ  ｆｒａｍｅ）および筐体フレーム（ｂｏｄｙ  ｆｒａｍｅ）を含む二つのフレームを言及する。前記航法フレームは空間上に固定されており、互いに垂直である三軸ＸＮ、ＹＮ、ＺＮで構成された基準座標系を意味する。すなわち、航法フレームは装置の姿勢から独立的ともいえる。また筐体フレームは３次元空間に置かれた物体上に存在する互い垂直である三軸ＸＢ、ＹＢ、ＺＢで構成された相手座標系を意味する。図１においてＸ方向はユーザ命令入力デバイスが向かう基準方向を意味する。すなわち前記基準方向に向かった軸を基準にして回転するとロール回転になるのである。
【００１８】
図２は、本発明の一実施形態によるユーザ命令入力デバイス１００を示すブロック図である。ユーザ命令入力デバイス１００は少なくとも一つ以上のディスプレイ装置（図示せず）上のオブジェクトを制御することができる。前記オブジェクトはディスプレイ上のポインタであってもよく、ゲーム中の物体であってもよい。また、前記ディスプレイ装置は別途の固定された位置に設置されてもよいが携帯が可能なように前記ユーザ命令入力デバイス１００と一体で具備されてもよい（例：携帯用ゲーム機）。
【００１９】
ユーザ命令入力デバイス１００はより具体的な例として、角速度センサ１１０、加速度センサ１２０、フィルタ部１３０、処理ユニット（ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ：１９０）および出力部１８０を含んで構成されてもよい。また、処理ユニット１９０は第１演算部１４０、第２演算部１５０、姿勢角測定部１６０および変位マッピング部１７０を含んで構成されてもよい。
【００２０】
角速度センサ１１０はデバイス１００が筐体フレーム上で回転する角速度を感知してサンプリングした出力値（デジタル値）を提供する。角速度センサ１１０としてはジャイロスコープが使用されてもよいが、前記ジャイロスコープは機械式、流体式、光学式、圧電式など多様な類型が使用されてもよい。具体的には角速度センサ１１０は互いに直交する二つの軸（筐体フレーム上の軸）に対する回転角速度、例えば、筐体フレームのＸ、Ｙ軸およびＺ軸上の回転角速度（ωｘ、ωｙ、ωｚ）を求めることができる。
【００２１】
加速度センサ１２０はデバイス１００が筐体フレーム上での加速度を感知してサンプリングした出力値（デジタル値）を提供する。加速度センサ１２０としては圧電型（ｐｉｅｚｏｅｌｅｃｔｒｉｃ  ｔｙｐｅ）、可動コイル型（ｍｏｖｉｎｇ  ｃｏｉｌ  ｔｙｐｅ）いずれを使用してもよい。具体的には加速度センサ１２０は互いに直交する３つの軸（筐体フレーム上の軸）に対する直線加速度（ｆｘ、ｆｙ、ｆｚ）を求める。
【００２２】
フィルタ部１３０はデバイス１００の用途に応じて低域通過フィルタ（ｌｏｗ  ｐａｓｓ  ｆｉｌｔｅｒ）、高域通過フィルタ（ｈｉｇｈ  ｐａｓｓ  ｆｉｌｔｅｒ）、オフセットフィルタ、またはスケーリングフィルタなどで構成されてもよく、前記角速度センサ１１０の出力および加速度センサ１２０の出力を受信して誤差補償を行う。フィルタ部１３０は誤差補償された回転角速度（ωｘ、ωｙ、ωｚ）は第１演算部１４０に提供し、誤差補償された直線加速度（ｆｘ、ｆｙ、ｆｚ）は第２演算部１５０に提供する。
【００２３】
第２演算部１５０はフィルタ部１３０から提供される直線加速度（ｆｘ、ｆｙ、ｆｚ）値を利用し、航法フレームにおけるロール、ピッチおよびヨー（φＸＬ、θＸＬ、ψＸＬ）（第２回転角）を計算する。その具体的な計算例は次の式１のとおりである。
[式１]
0005427240.tif 000002
【００２４】
一般的には加速度のみでロールおよびピッチ（φＸＬ、θＸＬ）は簡単に求めることができるが、ヨーを求めるのは容易ではない。本発明において加速度から計算されるヨー（ψＸＬ）は疑似ヨー（ｐｓｅｕｄｏ  ｙａｗ）であって、次の図３および４を参照して説明する。
【００２５】
図３は、本発明による一実施形態による加速度計を利用してロール値を測定する方法を示す。Ｙ軸方向加速度をｆｙとするとき、すでにピッチが発生したことを前提とすると、図１に示す（ｂ）で重力加速度の鉛直成分はｇ・ｃｏｓθとなる。したがって、ロール（Φ）は次の式２のとおりである。
[式２]
0005427240.tif 000003
【００２６】
加速度計を利用してロール値を測定する方法は実施形態によって多様な方法で計算することができる。
【００２７】
図４は、本発明の一実施形態によるヨー角測定方法においてピッチおよびロール値を利用してヨー値を計算する方法を示す図である。図４の（ａ）は、ピッチが発生したことを前提にし、ロールおよびヨー角速度のベクター方向を示す。図４の（ａ）においてωｙはロール角速度ベクターを示し、ωｚはヨー角速度ベクターを示す。ヨー角速度ベクターは実際ヨーベクターではない実際ヨーベクターに対するプロジェクトされたベクターである。
【００２８】
図４の（ｂ）は、図２の（ａ）を側面から示す図である。図４の（ｂ）から時間ｔに対してロール角速度ベクターωｙ、ヨー角速度ベクターωｚおよびピッチ（θ）の間には次の式３のような関係が成立する。
[式３]
0005427240.tif 000004
【００２９】
前記の式３から、ヨー（Ψ）は次の式４のように近似的に計算することができる。
[式４]
0005427240.tif 000005
【００３０】
ただし、この式４はピッチθが０度や９０度に近くなると適用できないので０度や９０度に近い角度では一定の制限を付与しなければならない。前記式４を用いて各条件から実際測定されたヨー値は次のとおりである。
0005427240.tif 000006
【００３１】
前記表のようにピッチ値を変化させながらロールを−８０から＋８０まで変化させると測定されたヨー値の範囲が相異なるため、このような偏差を減らすためにスケール因子を使用して補正することができる。結果的に、ピッチ値が存在し、ロール値が変わると共にヨー値が変わる状況でヨーに対する近似値を計算することが可能である。
【００３２】
第１演算部１４０はフィルタ部１３０から提供される角速度（ωｘ、ωｙ、ωｚ）値を利用し、航法フレームにおける三軸の回転角（φＧ、θＧ、ψＧ）（第１回転角）を計算する。オイラー角（Ｅｕｌｅｒ  ａｎｇｌｅ）を利用した具体的な計算式は次の式５のとおりである。式５は結局航法フレームにおける回転角（φＧ、θＧ、ψＧ）に対する微分方程式の形態を有する。
[式５]
0005427240.tif 000007
【００３３】
一般的には３個の角速度で航法フレームにおける姿勢角を求めることもできる。しかし、本発明の好ましい実施形態においては二個の角速度（ωｙ、ωｚ）のみで航法フレームにおける三軸の角速度を計算するが、この場合式５のωｘが問題になる。
【００３４】
人の一般的な手および腕の動作の動きは、通常三軸座標系では単一軸で動く場合が多い。例えば、Ｚ軸を基準にして回転またはＹ軸方向に回転などがそうである。また同時に二軸以上の複合的な動きが起きるとしても筐体フレームのＸ軸方向回転とＹ軸方向回転、筐体フレームのＸ軸方向回転とＺ軸方向回転が共に動作する場合にはＸ軸方向動きが相対的にＹ軸、Ｚ軸方向の動きよりその大きさが小さい傾向がある。
【００３５】
したがって、式５において、筐体フレームのＹ軸方向角速度ωｙとＺ軸方向角速度ωｚより筐体フレームのＸ軸方向角速度ωｘが相対的に小さくなる。これによってωｘを無視することはできるが、それにより姿勢角計算が正確に成されない。しかし、加速度計で求めたロール（φＸＬ）情報を適切に使用するとωｘ軸の角速度計を使用した場合と類似の性能を確保することができる。
【００３６】
図５〜７は、式５においてωｘを利用する場合（点線）と利用しない場合（実線）を比較した結果である。Ｘ軸は単位サンプル数を、Ｙ軸は角度（ｄｅｇｒｅｅ）を意味する。また各図面の右側グラフは左側グラフの円で表示した一定区間を拡大したものである。ωｘを除去した場合はそうではない場合より２°〜４°程度の角度差と共に２〜１０サンプル程度の遅延が発生する。しかし、計算周期が１００Ｈｚ以上になると、ユーザが識別しにくい程度の角度差と遅延が発生するため、筐体フレームのＸ軸角速度計なしでも二軸に対する角速度計（筐体フレームのＹ軸角速度計、Ｚ軸角速度計）のみを使用しても三軸に対する角速度計を使用した結果とほぼ差がないことを確認することができる。
【００３７】
このような実験結果に基づいて式５は次の式６のように変形することができる。
[式６]
0005427240.tif 000008
【００３８】
一方、人が入力装置を握って動くときのパターンをあらかじめ把握しておいて活用すると、ωｘを除去した式６からさらに進んでωｙも除去することが可能である。この場合、式１のように、加速度計の出力を利用して求めた（φＸＬ、θＸＬ、ψＸＬ）を利用してωｙ、ωｚを使用しないことによって発生する誤差を解消することができる。
【００３９】
式５および式６はオイラー角に基づいて、角速度（ωｙ、ωｚ）値から航法フレームにおける三軸の回転角（φＧ、θＧ、ψＧ）を計算することを例示したが、オイラー角の代わりに多少計算が複雑なクオータニオン（ｑｕａｔｅｒｎｉｏｎ）に基づいて前記計算を行うこともできる。
【００４０】
再び図２を参照すると、姿勢角測定部１６０は第２演算部１５０から得られた航法フレーム上の３つの回転角（φＸＬ、θＸＬ、ψＸＬ）と、第１演算部１４０から得られた航法フレーム上の３つの回転角（φＧ、θＧ、ψＧ）を加重平均し、航法フレームにおける姿勢角（φ、θ、ψ）を求める。具体的な加重平均は次の式７により計算することができる。
[式７]
0005427240.tif 000009
【００４１】
ここで、α１，α２およびα３はそれぞれφ、θ、ψに対する加重値として０から１の間の値を有する。以上の過程により航法フレームにおける姿勢角（φ、θ、ψ）を求めることは一実施形態に過ぎず、多様に変形することが可能である。例えば、式１で使用したψＸＬは直接磁気センサ（ｍａｇｎｅｔｉｃ  ｓｅｎｓｏｒ）またはイメージセンサ（ｉｍａｇｅ  ｓｅｎｓｏｒ）などを利用して求めることもできる。前記磁気センサやイメージセンサによれば、航法フレームにおけるヨー角を直接求めることができるので、加速度センサで使用した式１のような変換過程は必要ない。
【００４２】
式１の３つ目の式からψＸＬが計算されない場合、すなわちθＸＬ＝０である場合には、α３を１としておくことによってψＸＬを利用せずただψＧによってψを計算することもできる。
【００４３】
しかし、より正確に最終姿勢角（φ、θ、ψ）を求めるためには、α１，α２およびα３を任意に決定するよりは状態変化に合わせて適応的に決定する必要がある。これのために姿勢角測定部１６０は動き推定関数を使用することができる。
【００４４】
動き推定関数は角速度センサおよび加速度センサ出力を利用したデータに基づいて動きを０から１の間に正規化させることによって細分化した動きを検出する関数を意味する。一例として、仮に検出されたデバイス１００の動きがほぼない場合には加速度センサ１２０の値より信頼することができるため、αｎ＝１になるようにマッピングし、前記動きが最大である場合には角速度センサ１１０の値をより信頼することができるため、αｎ＝０になるようにマッピングし、その間の値を有する場合には停止と最大動きの間の適切な値にマッピングすることが必要である。
【００４５】
図８は、動き推定関数を利用してデバイス１００の動きを推定するフローチャートである。このような動き推定関数としては鐘形の曲線（ｂｅｌｌ  ｓｈａｐｅ  ｃｕｒｖｅ）または指数関数（ｅｘｐｏｎｅｎｔｉａｌ  ｆｕｎｃｔｉｏｎ）などを利用することができる。鐘形の曲線は図９のような形態の曲線であって、具体的にはガウス関数（Ｇａｕｓｓｉａｎ  ｆｕｎｃｔｉｏｎ）、二乗余弦関数（Ｒａｉｓｅｄ  ｃｏｓｉｎｅ  ｆｕｎｃｔｉｏｎ）などで表現することができる。また、指数関数は図１０のような形態を有する、例えば、
0005427240.tif 000010
のような関数である。図９および図１０においてｘ軸はデバイス１００の動きのサイズを示し、ｙ軸は式７での加重値すなわち、αｎを意味する。図９および図１０の関数は共通に中央でピーク分を有し、左右に行くほど０に近接する形態を有する。
【００４６】
このような動き推定関数を利用すると、単にデバイス１００が停止したかを判断することを越え、停止、微細な動き、遅い動き、速い動きなどの細分化した動きを検出することができる。また、このように動きを測定することによってユーザの意図しない動き（例として、手の震えなどによるカーソルの動き）を除去できる基礎を提供することができる。また、動きのサイズに応じて後述するマッピング関数のスケール調節も可能になる。
【００４７】
再び図２を参照すると、変位マッピング部１７０は姿勢角測定部１６０から得られた姿勢角（φ、θ、ψ）自体がディスプレイ装置のオブジェクトを制御することに使用され得る。例えば、飛行シミュレーションゲーム上の飛行体は前記姿勢角によってそれぞれの軸方向回転が制御され得るものである。一方、ディスプレイ装置の２次元画面上に存在するポインタの場合にはこのような航法座標系における姿勢角（φ、θ、ψ）の変化量（変位）とマッピングされる必要がある。一例として、ポインタ制御デバイスの自然な動きを表現するためにはディスプレイ画面上の横方向動き（Δｘ）はヨーの変化量（Δψ）と対応し、縦方向動き（Δｙ）はピッチの変化量（Δθ）と対応するようにする。
【００４８】
このような関係は次の式８のように表現することができる。
[式８]
0005427240.tif 000011
【００４９】
ここで、ｋは特定サンプリング時点を示すインデックスである。
【００５０】
前記のような対応関係を定義するために本発明ではマッピング関数を導入する。図１３および１２は多様なマッピング関数の例を示す図であって、横方向動き（Δｘ）とヨーの変化量（Δψ）との対応関係を示す。これは縦方向動き（Δｙ）とピッチの変化量（Δθ）との対応関係においても同様である。
【００５１】
図１１および図１２は最も簡単な形態のマッピング関数の例を示す。その中でも図１１は
0005427240.tif 000012
形態を有するフロアー（ｆｌｏｏｒ）関数を示し、図１２は
0005427240.tif 000013
形態を有するシーリング（ｃｅｉｌｉｎｇ）関数を示す。このようなマッピング関数は簡単な関係によってヨーまたはピッチの変化量をディスプレイ上の横方向または縦方向動きに対応させることができる。このとき、前記ｋ値の変化に応じて関数の入力値は縮小または除去することができ、一定以上の入力値は比例する出力値に変換することもできる。しかし、図１１および図１２のようなマッピング関数は特定値以上の過度な入力値に対して出力値を適切に制限できないという短所がある。すなわち、図１１および図１２のマッピング関数は後述する図１３のマッピング関数に含まれる低下領域、スケーリング領域および限定領域の機能のうち、限定領域の機能が欠如している。
【００５２】
図１３のマッピング関数は図１１および図１２よりは多少複雑な３個の領域に分けられる。第１領域（ｐａｒｔ  １）は関数の入力値を縮小させてマッピングする低下領域（ｄｅｐｒｅｓｓｉｏｎ  ａｒｅａ）である。また、第２領域（ｐａｒｔ  ２）は入力値をほぼ比例する出力値にマッピングするスケーリング領域（ｓｃａｌｉｎｇ  ａｒｅａ）である。最後に、第３領域は一定値以上の入力に対し、その出力値を制限させる限定領域（ｌｉｍｉｔａｔｉｏｎ  ａｒｅａ）である。
【００５３】
図１３のマッピング関数は、一例として
0005427240.tif 000014
のようなシグモイド関数を使用することができる。ここで、動きの方向は陽と陰がいずれも存在するため、前記シグモイド関数は座標の原点を中心に対称する。すなわち、図１３のマッピング関数は同一の二つのシグモイド関数の結合で成されている。このようなマッピングにより得られる位置変位（Δｘ、Δｙ）はＨＩＤ（Ｈｕｍａｎ  Ｉｎｔｅｒｆａｃｅ  Ｄｅｖｉｃｅ）マウスの標準として定められた値を使用することが好ましい。
【００５４】
図１３の３つの領域の意味についてより詳しく調べると次のとおりである。第１領域である低下領域はユーザのポインティング動きが微細な領域である。この領域では姿勢角の変位を位置変位と１：  １にマッピングさせず、位置変位を減らしてマッピングする。これはユーザの手の震えなどのような意図しない動きを除去する機能を提供する。しかし、小さい動きまでも微細に実現する必要があるアプリケーションでは、低下領域を適切に上昇させてその動きが表現されるようにすることもできる。
【００５５】
第２領域であるスケーリング領域は実際のユーザ動きをディスプレイ装置上での位置情報にほぼ比例的にマッピングさせる領域であって、ＨＩＤマウス基準に合わせて±１２８の整数値にマッピングすることができる。
【００５６】
第３領域である限定領域はユーザの動きが相対的に大きくても位置変位（Δｘ、Δｙ）がそれほど大きくないように制限するための領域である。図１３でマッピング関数は原点に対して対称の形態を有するためユーザの動きに対して陽と陰の方向に対称的な出力を誘導することができる。
【００５７】
一方、このようなマッピング関数はユーザの動きパターンに合わせて多様にスケーリングすることができるが、以下ではこれについて説明する。
【００５８】
ピッチ（θ）方向に対してユーザが最も楽にデバイス１００を握る状態は図１４のように約５°〜１０°程度のピッチ角を有するようにデバイス１００が持たれている状態である。しかし、デバイス１００のピッチ角がさらに上げられた状態、すなわちピッチ角が約３０°〜５０°以上の場合になれば、ユーザ手首の動き限界によってＹ軸陽の方向に向かうポインタ１０の制御が、相対的にＹ軸の陰の方向に向かうポインタ１０の制御に比べて難しくなる。このように位置情報実現において手首の動きの限界による困難を以下では手首ジャミング（ｗｒｉｓｔ  ｊａｍｍｉｎｇ）という。これはヨー（ψ）の角方向に対しても同様に存在し得る。（これと同様のｗｒｉｓｔ  ｊａｍｍｉｎｇが存在する。）
【００５９】
図１５ではこのような手首ジャミングの例を示すが、デバイス１００が約４０°以上上げられた状態であるが、ディスプレイ画面上のポインタ１０の位置はディスプレイ装置の下側の付近に置かれている。このような場合、ユーザは手首の動きの限界によってこれ以上ディスプレイ装置の上側方向の動きが難しくなる。
【００６０】
したがって、本発明の一実施形態によるデバイス１００においては、姿勢角情報のうち一つのピッチ（θ）各を利用してそれが一定角度を越えると、図１６のように陽のピッチ角方向に上げる動きに対してはスケールを増加させ、陰のピッチ角方向に下げる動きに対してはそのスケールを減少させる。これによってユーザはユーザが最も楽に感じる状態すなわち、約５°〜１０°程度のピッチ角を上げた状態で引続きポインティングができるように誘導する。
【００６１】
デバイス１００の変位マッピング部１７０は単純にマッピング関数全体に適用されるマッピングスケール（ｍａｐｐｉｎｇ  ｓｃａｌｅ）を調節することで簡単にこのような動作を実行することができる。前記マッピングスケールの調節はピッチ角情報に応じてさらに細分化して多様に適用することができるだけではなく、デバイス１００のピッチ角が陰の方向に下がった状態に対しても同様に適用することができる。
【００６２】
要（ψ）角に対してもピッチ（θ）角と同様の技法を適用することができる。ユーザがデバイス１００を操作する場合には、図１７のように通常ヨー回転方向に約±４５°以内で動くようになる。しかし、仮にデバイス１００のヨー角がこの範囲から外れるとユーザは手首の動き限界によってポインティングの困難を感じる。
【００６３】
したがって、本発明の一実施形態によるデバイス１００においては、ヨー角が陽の方向に一定角度を越えた場合には、図１８のように陽のヨー角方向に回転する動きに対してはスケールを増加させ、陰のヨー角方向に回転する動きに対してはそのスケールを減少させる。デバイス１００のヨー角が陰の方向に一定角度を越える状態に対しても同様に適用することができる。これによってユーザはユーザが最も楽に感じる約±４５°のヨー角内でポインティングを継続することができる。デバイス１００の変位マッピング部１７０は単にマッピング関数全体に適用されるマッピングスケール（ｍａｐｐｉｎｇ  ｓｃａｌｅ）を調節することで簡単にこのような動作を実行することができる。
【００６４】
一方、デバイス１００がピッチ方向に９０°上げられた場合にはディスプレイ画面上での位置変位（Δｘ、Δｙ）が制限されるようにすることができる。例えば、変位マッピング部１７０はθが９０°付近ではΔψおよびΔθを０と設定してマッピングされる位置変位（Δｘ、Δｙ）が発生しないようにすることができる。なぜなら、ピッチ角が９０°になると式６の３番目の式（ψに関する式）で特異点（ｓｉｎｇｕｌａｒ  ｐｏｉｎｔ）が発生してユーザが意図しないポインタの動きが発生し得るからである。
【００６５】
これに対して式６でオイラー角ではないクオータニオン（ｑｕａｔｅｒｎｉｏｎ）角を利用して計算すると、このような問題を解決することはできるが、演算量が増加する問題が発生するので一長一短がある。しかし、実際ユーザがデバイス１００を垂直に持ったままポインタを操作する場合はほぼないといってもよく、たとえこのような場合にも上記のように位置変位を制限する方式で充分に解消することが可能である。
【００６６】
再び図２を参照すると、出力部１８０はアプリケーションの種類によって姿勢角測定部１６０から提供される姿勢角（φ、θ、Ψ）または変位マッピング部１７０から提供される位置変位（Δｘ、Δｙ）をディスプレイ装置に無線で伝送する。もちろん、ディスプレイ装置がデバイス１００と一体で実現された場合にはメインプロセッサに前記データを伝達すればよい。前記無線伝送はブルートゥース、赤外線通信、ＩＥＥＥ  ８０２．１１無線ラン標準、ＩＥＥＥ  ８０２．１５．３無線ラン標準、その他の無線通信規約に従い行われ得る。
【００６７】
今まで図２の各ブロックはメモリ上の所定領域で行われるタスク、クラス、サブルーチン、プロセス、オブジェクト、実行スレッド、プログラムのようなソフトウェア（ｓｏｆｔｗａｒｅ）や、ＦＰＧＡ（ｆｉｅｌｄ−ｐｒｏｇｒａｍｍａｂｌｅ  ｇａｔｅ  ａｒｒａｙ）やＡＳＩＣ（ａｐｐｌｉｃａｔｉｏｎ−ｓｐｅｃｉｆｉｃ  ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔ）のようなハードウェア（ｈａｒｄｗａｒｅ）で実現することができ、また前記ソフトウェアおよびハードウェアの組合せで構成されてもよい。また、各ブロックは特定の論理的機能を行うための一つ以上の実行可能なインストラクションを含むモジュール、セグメントまたはコードの一部を示すことができる。また、いくつの代替実行例では、ブロックで言及された機能が順序を外れて発生することも可能である。例えば、連続して図示されている２つのブロックは、実質的に同時に行われてもよく、またはそのブロックが時々該当する機能によって逆順に行われてもよい。
【００６８】
以上のような、本発明の一実施形態によるユーザ命令入力デバイス１００は次のようないくつかの実質的な利点を提供することができる。
【００６９】
１．簡潔なシステム
ユーザ命令入力デバイス１００は筐体フレームの情報を航法フレームに変換する過程で両座標系（フレーム）の間で回転情報に対する変換のみを利用する。すなわち、筐体フレームの原点と航法フレームの原点は、次の図１９のように同一な状態で維持される。このようにすると、座標系変換時、両座標系の間の原点の変化（図２０のＯ２−Ｏ１）が省略されるため演算量が減少され得る。
【００７０】
また、式７のように、加重平均の概念と動き推定関数、マッピング関数を使用することによって、モデル基盤のフィルタリング、例えば、線形フィルタリング（ｌｉｎｅａｒ  ｆｉｌｔｅｒｉｎｇ）、カルマンフィルタリング（Ｋａｌｍａｎ  ｆｉｌｔｅｒｉｎｇ）、カルマンスムージング（Ｋａｌｍａｎ  ｓｍｏｏｔｈｉｎｇ）、拡張カルマンフィルタリング（ｅｘｔｅｎｄｅｄ  Ｋａｌｍａｎ  ｆｉｌｔｅｒｉｎｇ）、状態−空間推定（ｓｔａｔｅ−ｓｐａｃｅ  ｅｓｔｉｍａｔｉｏｎ）、期待値最大化（Ｅｘｐｅｃｔａｔｉｏｎ−Ｍａｘｉｍｉｚａｔｉｏｎ）などに必要なデータのサンプリングのため複雑な演算とそれにともなう初期化に所要される時間は必要としない。
【００７１】
それと共に動き推定関数およびマッピング関数はＦＦＴ（Ｆａｓｔ  Ｆｏｕｒｉｅｒ  Ｔｒａｎｓｆｏｒｍ）のように多くのリソースを占めるマトリックス演算とは異なって入力と出力が１：１に対応する単純化された関数の形態である。したがって、このような単純化された関数を利用することにより演算時間とリソースが顕著に減る。
【００７２】
２．航法フレームの姿勢角（ａｔｔｉｔｕｄｅ  ａｎｇｌｅ  ｉｎ  ｎａｖｉｇａｔｉｏｎ  ｆｒａｍｅ）
ユーザ命令入力デバイス１００は筐体フレームの回転および加速度を測定して航法フレームの姿勢情報を求める。このように求めた航法フレームの姿勢情報により位置情報（例：ポインタの動き）を制御するため、筐体フレームの傾きに関係なく前記位置情報が実現され得る。またこのような航法フレームにおけるロール、ピッチ、ヨー情報（姿勢角情報）を利用して前述したようにユーザパターンに合わせた動きの実現、直観的な動きの実現、ディスプレイ装置の状態制御などの多様な応用が可能である。そして製品デザインにおいても筐体フレームの回転方向に対する制限がないため、ユーザ命令入力デバイス１００の外観に関する多様なデザインが可能になる。
【００７３】
３．動き検出（Ｍｏｖｅｍｅｎｔ  ｍｅａｓｕｒｅ）
既存技術では単純停止のみを判断することに比べ、ユーザ命令入力デバイス１００では動き測定関数により停止、微細動き、遅い動き、速い動きなどの多様な動き検出が可能であり、このような多様な形態の動き検出により、さらに改善された動きを実現することができる基礎を提供する。また、動き検出に使用する動き推定関数は入力と出力が１：１に対応して多くのリソースを占めない。
【００７４】
４．マッピング（Ｍａｐｐｉｎｇ  ）
低下領域、スケーリング領域および限定領域で構成されたマッピング関数はユーザにより細密で直観的な動きを提供する。低下領域を介して手の震えのような動きが除去され、スケーリング領域を介して微細な動きを実現することができ、限定領域を介して過度な動きの制限が可能になる。このようなマッピング機能は必要に応じて所望する領域の値のみを有することも可能である。
【００７５】
またマッピング関数は浮動小数点（ｆｌｏａｔ）値を正規化されたデジタル値に変換させることもできるが、このようなデジタル化により、ノイズの減少、通信上の伝送データ容量の減少などのデジタル信号が有する長所を提供することができる。また、このとき使用されるマッピング関数はモデル基盤のフィルタリングのように別途の初期化時間とデータのサンプリングを必要とせず、入力と出力が１：１に対応する単純化された関数である。
【００７６】
５．加重平均を利用した安定かつ正確な動きの実現（Ｓｔａｂｌｅ  ａｎｄ  ｃｏｒｒｅｃｔ  ｍｏｖｅｍｅｎｔ  ｕｓｉｎｇ  ｗｅｉｇｈｔｅｄ  ａｖｅｒａｇｅ）
ユーザ命令入力デバイス１００では、角速度計出力と加速度計出力で実現した各情報に基づいて加重平均を求めるため、より安定かつ正確な動きの実現が可能である。角速度計のみを利用する場合、角速度を積分して角度を実現する過程でバイアス変化による累積誤差が発生し、これは結局角度の発散を起こすが、このような問題を解決するための多様な従来の技術が知られている。このような従来の技術としては、カルマンフィルタによりバイアスを推定する方法、周波数分析によりデジタルフィルタを使用する方法、与えられた時間および臨界値などを分析してバイアスを推定する方法などがある。しかし、このような従来の技術はいずれもシステムのリソースを過度に消耗し、多くの演算量を必要とする短所がある。
【００７７】
これに比べ、ユーザ命令入力デバイス１００の場合、角速度計と共に加速度計を利用して加重平均の概念を適用するので加速度計によって角度の発散を簡単に制限することができる。これによって、角速度計のバイアス推定時に使用するモデルまたはフィルタを単純に構成することができ、姿勢角測定の正確性を向上させることができる。このように求めた姿勢角によりさらに安定かつ正確な動きが実現することができる。
【００７８】
また、ユーザ命令入力デバイス１００では、動き推定関数によって動きが検出されると、検出された動きに応じてそれぞれの加重値（式７のα１，α２，α３）を変更することによってユーザが意図する多様な動きを表現することができる。すなわち、状況に適合した動きの実現が可能になるという意味である。
【００７９】
６．システムの初期化時間の短縮（Ｒｅｄｕｃｉｎｇ  ｓｙｓｔｅｍ  ｉｎｉｔｉａｌ  ｔｉｍｅ）
ユーザ命令入力デバイス１００の単純化されたシステムによれば、デバイスの初期化時間を短縮させることができる。その代表的な例として、前述した加重平均の概念を挙げることができる。角速度計のみで角度を実現する場合、累積誤差を最小化するため、カルマンフィルタリングのような別途のフィルタリング技法が要求される。前記カルマンフィルタリングの場合、初期バイアス推定、あるいはバイアスセットのための初期化ステップが必須に要求される。
【００８０】
これに対し、ユーザ命令入力デバイス１００は角速度計と共に加速度計出力を持って加重平均を利用して各情報を実現することによって、このような初期化ステップなしで正確な角度を求めることができる。すなわち、システムの単純化を追求しながらも、姿勢角測定の正確度を向上させることができる。
【００８１】
また、マッピング関数もモデル基盤のフィルタリングと異なって１：１対応を主とするため、このような初期化時間の短縮に一定部分を寄与する。
【００８２】
７．システムの消費電力の減少（Ｒｅｄｕｃｉｎｇ  ｐｏｗｅｒ  ｃｏｎｓｕｍｐｔｉｏｎ）
ユーザ命令入力デバイス１００の単純化されたシステムによれば、初期化時間を短縮および演算量減少に基づいて消費電力の減少を追求することができる。システムの初期化時間が短縮されることによって大きくは動作モード、低電力モード（ｐｏｗｅｒ  ｄｏｗｎ  ｍｏｄｅ）、パワーオフモード（ｐｏｗｅｒ  ｏｆｆ  ｍｏｄｅ）などの単純化された作動モードを有することができる。
【００８３】
従来の技術では動作モードに入るためにシステムを安定化させるにスタンバイモード（ｓｔａｎｄｂｙ−ｍｏｄｅ）のような臨時ステップが必要であった。しかし、ユーザ命令入力デバイス１００ではスタンバイモードのような臨時ステップを必要としないため、デバイスが使用されないときには選択的に特定構成要素に提供される電源をオフ（ｏｆｆ）させることができる。したがって、デバイス電源のオン−オフが容易になると消費電力をさらに減少させることができるのである。
【００８４】
以上添付された図面を参照して本発明の実施形態について説明したが、本発明が属する技術分野における通常の知識を有する者は、本発明がその技術的思想や必須の特徴を変更しない範囲で他の具体的な形態で実施され得ることを理解することができる。したがって、上記実施形態はすべての面で例示的なものであり、限定的でないものと理解しなければならない。
【符号の説明】
【００８５】
１００    ユーザ命令入力デバイス
１０    角速度センサ
１２０    加速度センサ
１３０    フィルタ部
１４０    第１演算部
１５０    第２演算部
１６０    姿勢角測定部
１７０    変位マッピング部
１８０    出力部
１９０    処理ユニット
【図１】
0005427240.tif 000015
【図２】
0005427240.tif 000016
【図３（ａ）】
0005427240.tif 000017
【図３（ｂ）】
0005427240.tif 000018
【図３（ｃ）】
0005427240.tif 000019
【図４】
0005427240.tif 000020
【図５】
0005427240.tif 000021
【図６】
0005427240.tif 000022
【図７】
0005427240.tif 000023
【図８】
0005427240.tif 000024
【図９】
0005427240.tif 000025
【図１０】
0005427240.tif 000026
【図１１】
0005427240.tif 000027
【図１２】
0005427240.tif 000028
【図１３】
0005427240.tif 000029
【図１４】
0005427240.tif 000030
【図１５】
0005427240.tif 000031
【図１６】
0005427240.tif 000032
【図１７】
0005427240.tif 000033
【図１８】
0005427240.tif 000034
【図１９】
0005427240.tif 000035
【図２０】
0005427240.tif 000036