動き感知に基づく力強度および回転強度を入力する方法およびデバイス
本発明は、3次元空間上でのデバイスの動きに基づいてより自然かつ正確に力強度および回転強度を入力する装置に関するものである。本発明による3次元空間上で動作してユーザ命令を入力するための入力デバイスは、第1センサの出力値から、前記デバイスの姿勢に対して独立的な座標系における第1回転角を演算する第1演算部と、第2センサの出力値から、前記独立的な座標系における第2回転角を演算する第2演算部と、前記第1回転角と前記第2回転角を組合せて前記入力デバイスの姿勢角を求める姿勢角測定部、および前記入力デバイスの加速度と、前記姿勢角測定部から求めた入力デバイスの姿勢角を利用して前記独立的な座標系における力強度を計算する強度計算部を含む。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、動きセンサを具備したユーザ命令入力デバイスに関するものであって、より詳細には3次元空間上でのデバイスの動きに基づいてより自然かつ正確に力強度(force intensity)および回転強度(rotation intensity)を入力する装置に関するものである。
【背景技術】
【0002】
コンピュータ科学分野の発達につれ、ユーザがコンピュータデバイスに情報を入力できる多様なデバイスが開発されている。前記デバイスのうちあるグループはユーザ命令入力デバイスと呼ばれる。ユーザがこのようなデバイスのコンポーネントを操作することにより、ユーザ命令入力デバイスの移動に対応する位置データが生成される。そして、このような位置データはディスプレイ上に表示されるポインタイメージの動きに変換される。したがって、ユーザ命令入力デバイスを動かすことによって、ユーザはそのポインタイメージをディスプレイ上に表示されるオブジェクトと関連させることができる。前記オブジェクトとは、メニュー、ボタン、イメージなど選択されたとき、特定動作が実行されるようにするユーザインターフェースを意味する。その後ユーザはユーザ命令入力デバイスの特定ボタンを押すような選択動作を通じて、該当オブジェクトと関連した特定命令をすることができる。
【0003】
一般的な個人用コンピュータのユーザは自身のコンピュータを駆動するためのオペレーティングシステム(OS:Operating System)としてマイクロソフト社のウインドウズ(Windows)を使用している。これは既存のDOS(Disk Operating System)システムではサポートできない便利なマウス機能および多様なグラフィック機能に起因するが、ユーザはウインドウズを介して特定命令を入力するとき、いちいちキーボード入力を行わなくても、マウスのドラッグやスクロール、クリックなどにより簡便に命令を入力することができる。
【0004】
これとは対照にデジタルTV、セットトップボックス、ゲーム機などのように個人用コンピュータで使用されるキーボードやマウスを使用することができない映像表示装置では、リモコンという遠隔制御装置上に具備されたキーパッドを利用して多様な命令を入力する実情にある。このようにキーパッドを押す入力方式が主に使用された理由は、このような装置は個人用コンピュータとは異なり前記装置の操作のために特定の位置に固定されているものでもなく、リビングのような開放された空間での操作が必要であるためユーザがキーボードやマウスのように主に平面に固定して使用される入力手段を利用することが難しいからである。
【0005】
このような問題点を考慮し、最近ではジャイロスコープ、加速度計などの動きセンサを搭載した3次元ユーザ命令入力デバイスが開発されている。ユーザは3次元ユーザ命令入力デバイスを動かすことによってこれに対応するディスプレイ上のポインタイメージを所望する方向と速度で動かすことができ、前記ユーザ命令入力デバイス上に具備された特定ボタンを押すことによって所望するオブジェクトを選択して実行することができる。
【0006】
一方、最近ではゲーム機、航空シミュレーション機器、スポーツシミュレーション機器など3次元ユーザ命令入力デバイスを使用する多様なシステムが登場している。このような新しいシステムにおいては、単にユーザが入力デバイスを通じて画面上のオブジェクトの線形の動きを制御すること(例えば、画面上のポインタを制御すること)以外にも、入力デバイスを利用して3次元空間上に存在するオブジェクトに力を伝達したり、回転を加えたりするという多様な形態のユーザ命令を入力する方式が使用され得る。
【0007】
このように、力や回転などの慣性(momentum)をオブジェクトに伝達することにおいて最も重要な部分は、ユーザが実際入力デバイスを動かすことに対応して画面上のオブジェクトがどれほど自然に反応(または動作)するかである。このようなオブジェクトの自然な反応の可否はユーザ個人によって多少異なるように感じられる部分でもあるが、シミュレーションの次元から見ると特定入力に対する物理的反応は理論的には唯一である。したがって、その唯一の反応に近くなるように入力と反応間の関係を調節することカギといえる。
【発明の概要】
【発明が解決しようとする課題】
【0008】
本発明が解決しようとする課題は、3次元空間上で任意の動作を通じてユーザが力強度および回転強度をオブジェクトに自然に入力する方法および装置を提供することにある。
【0009】
本発明の技術的課題は以上で言及した技術的課題に制限されず、言及されていないまた他の技術的課題は次の記載から当業者に明確に理解できるであろう。
【課題を解決するための手段】
【0010】
前記技術的課題を達成するために本発明の一実施形態による3次元空間上で動作してユーザ命令を入力するための入力デバイスは、第1センサの出力値から、前記デバイスの姿勢に対して独立的な座標系における第1回転角を演算する第1演算部と、第2センサの出力値から、前記独立的な座標系における第2回転角を演算する第2演算部と、前記第1回転角と前記第2回転角を組合せて前記入力デバイスの姿勢角を求める姿勢角測定部、および前記入力デバイスの加速度と、前記姿勢角測定部から求めた入力デバイスの姿勢角を利用して前記独立的な座標系における力強度を計算する強度計算部を含む。
【0011】
前記技術的課題を達成するために本発明の他の実施形態による3次元空間上で動作してユーザ命令を入力するための入力デバイスは、少なくとも一つの方向に対する前記入力デバイスの加速度を感知するセンサと、前記感知された加速度から筐体フレームにおける力強度を計算する強度計算部、およびマッピング関数によって前記計算された力強度を最終的に出力される力強度にマッピングする強度マッピング部を含む。
【0012】
前記技術的課題を達成するために本発明のまた他の実施形態による3次元空間上で動作してユーザ命令を入力するための入力デバイスは、第1センサの出力値から、前記デバイスの姿勢に対して独立的な座標系における第1回転角を演算する第1演算部と、第2センサの出力値から、前記独立的な座標系における第2回転角を演算する第2演算部と、前記第1回転角と前記第2回転角を組合せて前記入力デバイスの姿勢角を求める姿勢角測定部、および前記入力デバイスの角速度と、前記姿勢角測定部から求めた入力デバイスの姿勢角を利用して前記独立的な座標系における回転強度を計算する強度計算部を含む。
【0013】
前記技術的課題を達成するために本発明のまた他の実施形態による3次元空間上で動作してユーザ命令を入力するための入力デバイスは、少なくとも一つの方向に対する前記入力デバイスの角速度を感知するセンサと、前記感知された角速度から筐体フレームにおける回転強度を計算する強度計算部、およびマッピング関数によって前記計算された回転強度を最終的に出力される回転強度にマッピングする強度マッピング部を含む。
【発明の効果】
【0014】
本発明による入力デバイスによれば、3次元空間上で任意の動作を通じて力強度または回転強度をオブジェクトに伝達する場合に、ユーザが前記オブジェクトらからより直観的かつ自然な反応を感じることができる。
【図面の簡単な説明】
【0015】
【図1】特定フレームで定義される三軸回転方向を示す図である。
【図2】本発明の一実施形態による入力デバイスを示すブロック図である。
【図3】本発明による一実施形態により加速度計を利用してロール値を測定する方法を示す図である。
【図4】本発明の一実施形態によるヨー角測定方法においてピッチおよびロール値を利用してヨー値を計算する方法を示す図である。
【図5】式5においてωxを利用する場合と利用しない場合を比較した図である。
【図6】式5においてωxを利用する場合と利用しない場合を比較した図である。
【図7】式5においてωxを利用する場合と利用しない場合を比較した図である。
【図8】動き推定関数を利用してデバイスの動きを推定するフローチャートである。
【図9】動き推定関数の例として使用された鐘形曲線を示す図である。
【図10】動き推定関数の例として使用された指数関数を示す図である。
【図11】筐体フレームにおける力強度ベクターを航法フレームの各平面上に投影させた面である。
【図12】図11で投影された力成分を姿勢角を利用して航法フレームの成分で各々分解した図である。
【図13】筐体フレームと航法フレームにおける力強度の差異を示すための図ある。
【図14】筐体フレームと航法フレームにおける力強度の差異を示すための図ある。
【図15】図13と同じ条件で力強度の結果を示す図である
【図16】図14と同じ条件で力強度の結果を示す図である。
【図17】図14と同じ条件で力強度の結果を示す図である。
【図18】本発明の一実施形態によるマッピング関数を示す図である。
【図19】本発明の一実施形態によるマッピング関数を示す図である。
【図20】本発明の一実施形態によるマッピング関数を示す図である。
【図21】図13のようにユーザが入力デバイスに力を加える条件で図20と同じマッピング関数の適用による出力力強度を示す図である。
【図22】図21において低下領域を拡大して示す図である。
【図23】図21においてスケーリング領域を拡大して示す図である。
【図24】図21において限定領域を拡大して示す図である。
【発明を実施するための形態】
【0016】
本発明の利点、特徴、およびそれらを達成する方法は、添付する図面と共に詳細に後述される実施形態を参照すれば明確になるであろう。しかし、本発明は、以下で開示される実施形態に限定されるものではなく、互いに異なる多様な形態で実現されることが可能である。本実施形態は、単に本発明の開示が完全になるように、本発明が属する技術分野で通常の知識を有する者に対して発明の範疇を完全に知らせるために提供されるものであり、本発明は、請求項の範疇によってのみ定義される。なお、明細書全体にかけて、同一の参照符号は同一の構成要素を指すものとする。
【0017】
以下添付された図を参照して本発明による一実施形態について詳細に説明する。
【0018】
本発明において、入力デバイスはユーザの動きの入力を受けて多様なオブジェクトに力強度および回転強度を直観的に伝達できるようにするインターフェース装置を意味する。前記デバイスはユーザの動きにより得られた情報を多様な情報機器あるいは様々なサービスに合わせて必要な情報に対応させる。例えば、3次元空間マウス、IPTV(internet protocol TV)リモコン、ゲーム入力装置などがこれに含まれてもよい。そして、前記オブジェクトは例えば、2次元ディスプレイ画面によって表現される仮想の3次元空間内に存在する物体を意味する。野球ゲームアプリケーションの場合、前記オブジェクトは仮想の3次元野球場内の野球のボールであってもよい。しかし、本発明におけるオブジェクトは仮想空間上のオブジェクトのみを意味するものではなく、実際物理力の伝達を受け反応できるシステムでの物体も含む概念である。
【0019】
次の図1は、特定フレーム(座標系)で定義される三軸回転方向を示す図である。x、y、z軸からなる特定フレームにおいて、ピッチ(θ)はy軸方向に対する回転を、ロール(φ)はx軸方向に対する回転を、そしてヨー(ψ)はz軸方向に対する回転をそれぞれ意味する。これら回転に対して陽(+)および陰(−)を決定する基準は右手座標系(right−handed coordinate)に従う。本発明では航法フレーム(navigation frame)および筐体フレーム(body frame)を含む二つのフレームを言及する。前記航法フレームは空間上に固定されており、互いに垂直である三軸XN、YN、ZNで構成された基準座標系を意味する。すなわち、航法フレームは装置の姿勢から独立的ともいえる。また筐体フレームは3次元空間に置かれた物体上に存在する互い垂直である三軸XB、YB、ZBで構成された相手座標系を意味する。図1においてX方向はユーザ命令入力デバイスが向かう基準方向を意味する。すなわち前記基準方向に向かった軸を基準にして回転するとロール回転になるのである。
【0020】
図2は、本発明の一実施形態によるユーザ命令入力デバイス100を示すブロック図である。ユーザ命令入力デバイス100は少なくとも一つ以上のディスプレイ装置(図示せず)上のオブジェクトを制御することができる。また、前記ディスプレイ装置は別途の固定された位置に設置されてもよいが携帯が可能なように前記ユーザ命令入力デバイス100と一体で具備されてもよい(例:携帯用ゲーム機)。
【0021】
入力デバイス100はより具体的な例として、角速度センサ110、加速度センサ120、フィルタ部130、処理ユニット(processing unit:190)および伝送部195を含んで構成されてもよい。また、処理ユニット190は第1演算部140、第2演算部150、姿勢角測定部160、強度(intensity)計算部170および強度マッピング部180を含んで構成されてもよい。
【0022】
角速度センサ110はデバイス100が筐体フレーム上で回転する角速度を感知してサンプリングなった出力値(デジタル値)を提供する。角速度センサ110としてはジャイロスコープが使用されてもよいが、前記ジャイロスコープは機械式、流体式、光学式、圧電式など多様な類型が使用されてもよい。具体的には角速度センサ110は互いに直交する二つの軸(筐体フレーム上の軸)に対する回転角速度、例えば、筐体フレームのx、y、z軸上の回転角速度(ωx、ωy、ωz)を求めることができる。
【0023】
加速度センサ120はデバイス100が筐体フレーム上での加速度を感知してサンプリングした出力値(デジタル値)を提供する。加速度センサ120としては圧電型(piezoelectric type)、可動コイル型(moving coil type)いずれを使用してもよい。具体的には加速度センサ120は互いに直交する三つの軸(筐体フレーム上の軸)に対する直線加速度(fx、fy、fz)を求める。
【0024】
フィルタ部130はデバイス100の用途に応じて低域通過フィルタ(low pass filter)、高域通過フィルタ(high pass filter)、オフセットフィルタ、またはスケーリングフィルタなどで実現されてもよく、前記角速度センサ110の出力および加速度センサ120の出力を受信して誤差補償を行う。フィルタ部130は誤差補償された回転角速度(ωx、ωy、ωz)は第1演算部140に提供し、誤差補償された直線加速度(fx、fy、fz)は第2演算部150に提供する。
【0025】
第2演算部150はフィルタ部130から提供される直線加速度(fx、fy、fz)値を利用し、航法フレームにおけるロール、ピッチおよびヨー(φXL、θXL、ψXL)(第2回転角)を計算する。その具体的な計算例は次の式1のとおりである。
【0026】
[式1]
【0027】
一般的には加速度のみでロール(φXL)およびピッチ(θXL)は簡単に求めることができるが、ヨー(ψXL)を求めるのは容易ではない。式1で計算されるヨー(ψXL)は疑似ヨー(pseudo yaw)であって、次の図3および4を参照して説明する。
【0028】
図3は、本発明による一実施形態により加速度計を利用してロール値を測定する方法を示す。Y軸方向加速度をfyとするとき、すでにピッチが発生したことを前提とすると、図1に示す(b)で重力加速度の鉛直成分はg・cosθとなる。したがって、ロール(Φ)は次の式2のとおりである。
【0029】
[式2]
【0030】
加速度計を利用してロール値を測定する方法は実施形態により多様な方法で計算することができる。
【0031】
図4は、本発明の一実施形態によるヨー角測定方法においてピッチおよびロール値を利用してヨー値を計算する方法を示す図である。図4の(a)は、ピッチが発生したことを前提にし、ロールおよびヨー角速度のベクター方向を示す。図4の(a)においてωyはロール角速度ベクターを示し、ωzはヨー角速度ベクターを示す。ヨー角速度ベクターは実際ヨーベクターではない実際ヨーベクターに対する投射されたベクター(projected vector)である。
【0032】
図4の(b)は、図2の(a)を側面から示す図である。図4の(b)から時間tに対してロール角速度ベクターωy、ヨー角速度ベクターωzおよびピッチ(θ)の間には次の式3のような関係が成立する。
【0033】
[式3]
【0034】
前記の式3から、ヨー(Ψ)は次の式4のように近似的に計算することができる。
【0035】
[式4]
【0036】
ただし、この式4はピッチθが0度や90度に近くなると適用できないので0度や90度に近い角度では一定の制限を付与しなければならない。前記式4を用いて各条件から実際測定されたヨー値は次のとおりである。
【0037】
【0038】
前記表のようにピッチ値を変化させながらロールを−80から+80まで変化させると測定されたヨー値の範囲が相異なるため、このような偏差を減らすためにスケール因子を使用して補正することができる。結果的に、ピッチ値が存在し、ロール値が変わると共にヨー値が変わる状況でヨーに対する近似値を計算することが可能である。
【0039】
第1演算部140はフィルタ部130から提供される角速度(ωx、ωy、ωz)値を利用し、航法フレームにおける三軸の回転角(φG、θG、ψG)(第1回転角)を計算する。オイラー角(Euler angle)を利用した具体的な計算式は次の式5のとおりである。式5は結局航法フレームにおける回転角(φG、θG、ψG)に対する微分方程式の形態を有する。
【0040】
[式5]
【0041】
一般的には3つの角速度で航法フレームにおける姿勢角を求めることもできる。しかし、本発明の好ましい実施形態においては2つの角速度(ωy、ωz)のみで航法フレームにおける三軸の角速度を計算するが、この場合式5のωxが問題になる。
【0042】
人の一般的な手および腕の動作の動きは、通常三軸座標系では単一軸で動く場合が多い。例えば、Z軸を基準にして回転またはY軸方向に回転などがそうである。また同時に2軸以上の複合的な動きが起きるとしても筐体フレームのX軸方向回転とY軸方向回転、筐体フレームのX軸方向回転とZ軸方向回転が共に動作する場合にはX軸方向動きが相対的にY軸、Z軸方向の動きよりその大きさが小さい傾向がある。
【0043】
したがって、式5において、筐体フレームのY軸方向角速度ωyとZ軸方向角速度ωzより筐体フレームのX軸方向角速度ωxが相対的に小さくなる。これによってωxを無視することはできるが、それにより姿勢角計算が正確に成されない。しかし、加速度計で求めたロール(φXL)情報を適切に使用するとωx軸の角速度計を使用した場合と類似の性能を確保することができる。
【0044】
図5〜7は、式5においてωxを利用する場合(点線)と利用しない場合(実線)を比較した結果である。X軸は単位サンプル数を、Y軸は角度(degree)を意味する。また各図面の右側グラフは左側グラフの円で表示した一定区間を拡大したものである。ωxを除去した場合はそうではない場合より2°〜4°程度の角度差と共に2〜10サンプル程度の遅延が発生する。しかし、計算周期が100Hz以上になると、ユーザが識別しにくい程度の角度差と遅延が発生するため、筐体フレームのX軸角速度計なしでも2軸に対する角速度計(筐体フレームのY軸角速度計、Z軸角速度計)のみを使用しても三軸に対する角速度計を使用した結果とほぼ差がないことを確認することができる。
【0045】
このような実験結果に基づいて式5は次の式6のように変形することができる。
【0046】
[式6]
【0047】
一方、人が入力装置を握って動くときのパターンをあらかじめ把握しておいて活用すると、ωxを除去した式6からさらに進んでωyの除去も可能である。この場合、式1のように、加速度計の出力を利用して求めた(φXL、θXL、ψXL)を利用してωy、ωzを使用しないことによって発生する誤差を解消することができる。
【0048】
式5および式6はオイラー角に基づいて、角速度(ωy、ωz)値から航法フレームにおける三軸の回転角(φG、θG、ψG)を計算することを例示したが、オイラー角の代わりに多少計算が複雑なクオータニオン(quaternion)に基づいて前記計算を行うこともできる。
【0049】
再び図2を参照すると、姿勢角測定部160は第2演算部150から得られた航法フレーム上の3つの回転角(φXL、θXL、ψXL)と、第1演算部140から得られた航法フレーム上の3つの回転角(φG、θG、ψG)を加重平均し、航法フレームにおける姿勢角(φ、θ、ψ)を求める。具体的な加重平均は次の式7により計算することができる。
【0050】
[式7]
【0051】
ここで、α1,α2およびα3はそれぞれφ、θ、ψに対する加重値として0から1の間の値を有する。以上の過程により航法フレームにおける姿勢角(φ、θ、ψ)を求めることは一実施形態に過ぎず、多様に変形することが可能である。例えば、式1で使用したψXLは直接磁気センサ(magnetic sensor)またはイメージセンサ(image sensor)などを利用して求めることもできる。前記磁気センサやイメージセンサによれば、航法フレームにおけるヨー角を直接求めることができるので、加速度センサで使用した式1のような変換過程は必要ない場合もある。
【0052】
式1の3つ目の式からψXLが計算されない場合、すなわちθXL=0である場合には、α3を1としておくことによってψXLを利用せずただψGによってψを計算することもできる。
【0053】
しかし、より正確に最終姿勢角(φ、θ、ψ)を求めるためには、α1,α2およびα3を任意に決定するよりは状態変化に合わせて適応的に決定する必要がある。これのために姿勢角測定部160は動き推定関数を使用することができる。
【0054】
動き推定関数は角速度センサおよび加速度センサ出力を利用したデータに基づいて動きを0から1の間に正規化させることによって細分化した動きを検出する関数を意味する。一例として、仮に検出されたデバイス100の動きがほぼない場合には加速度センサ120の値より信頼することができるため、αn=1になるようにマッピングし、前記動きが最大である場合には角速度センサ110の値をより信頼することができるため、αn=0になるようにマッピングし、その間の値を有する場合には停止と最大動きの間の適切な値にマッピングすることが必要である。
【0055】
図8は、動き推定関数を利用してデバイス100の動きを推定するフローチャートである。このような動き推定関数としては鐘形の曲線(bell shape curve)または指数関数(exponential function)などを利用することができる。鐘形の曲線は図9のような形態の曲線であって、具体的にはガウス関数(Gaussian function)、二乗余弦関数(Raised cosine function)などで表現することができる。また、指数関数は図10のような形態を有する、例えば、
のような関数である。図9および図10においてx軸はデバイス100の動きのサイズを示し、y軸は式7での加重値すなわち、αnを意味する。図9および図10の関数は共通に中央でピーク分を有し、左右に行くほど0に近接する形態を有する。
【0056】
このような動き推定関数を利用すると、単にデバイス100が停止したかを判断することを越え、停止、微細な動き、遅い動き、速い動きなどの細分化した動きを検出することができる。また、このように動きを測定することによってユーザの意図しない動き(例として、手の震えなどによるカーソルの動き)を除去できる基礎を提供することができる。また、動きのサイズに応じて後述するマッピング関数のスケール調節も可能になる。
【0057】
再び図2を参照すると、強度計算部170は本発明の第1実施形態により姿勢角測定部160から得られた姿勢角(φ,θ,ψ)、すなわち空間上に固定された航法フレーム上で入力デバイス100が成す角度と、フィルタ部130から提供される誤差補償された直線加速度(fx,fy,fz)に基づいて力強度(force intensity)(Fx,Fy,Fz)を求める。一方、強度計算部170は本発明の第2実施形態により姿勢角測定部160から得られた姿勢角(φ,θ,ψ)と,フィルタ部130から提供される誤差補償された回転角速度(ωx,ωy,ωz)に基づいて回転強度(rotation intensity)(Rx,Ry,Rz)を求める。もちろん、強度計算部170は前記力強度と回転強度を共に求めることもできる。
【0058】
以下では先ず、前記第1実施形態について詳細に説明する。
【0059】
力強度は入力デバイス100で実現できる多様な力成分を示す。3次元空間で姿勢角が推定されると、加速度計出力を利用して3次元空間に加えられる力、すなわち、力強度を計算することができる。しかし、前記力強度はフレーム(座標軸)の選択に応じて概ね次の3つに区分することができる。それは筐体フレーム上で定義される力強度(FB)、航法フレーム上で定義される力強度(FN)およびヨードリフトフレーム(yaw drift frame)上で定義される力強度(FY)である。前記FBは筐体フレーム上で各軸の成分であるFBx、FBy、FBzに分けられ、前記FNは航法フレーム上で各軸の成分であるFNx、FNy、FNzに分けられ、前記FYはヨードリフトフレーム上で各軸の成分のFYx、FYy、FYzに分けられる。前記ヨードリフトフレームとは、基本的には航法フレームと類似するが、航法フレームでヨー方向回転(筐体フレームを基準)を考慮しないフレームである。すなわち、ヨードリフトフレームにおける力強度は入力デバイス100のヘディング(heading)方向による航法フレームにおける力強度を意味するといえる。ヨードリフトフレームは航法フレームと共に入力デバイス100の姿勢から独立的なフレームに属するといえる。
【0060】
しかし、フィルタ部130から出力される直線加速度成分(fx、fy、fz)は筐体フレーム上で定義される値であるため、強度計算部170は前記加速度成分に適切なスケーリングを通じて筐体フレーム上での力強度(FBx、FBy、FBz)を簡単に計算することができる。また、強度計算部170は前記直線加速度成分(fx、fy、fz)および姿勢角測定部160から得られた姿勢角(φ、θ、ψ)に基づいて入力デバイス100の姿勢から独立的な座標系(フレーム)における力強度(Fx、Fy、Fz)を求めることもできる。
【0061】
前記独立的な座標系における力強度(Fx、Fy、Fz)とは、例えば、航法フレームにおける力強度(FNx、FNy、FNz)またはヨードリフトフレームにおける力強度(FYx、FYy、FYz)などであってもよい。強度計算部170が求める力強度(Fx、Fy、Fz)は適用されるアプリケーションによって重力補償(重力加速度補償)を含んでもよく含まなくてもよい。
【0062】
図11は、三軸(XB、YB、ZB)からなる筐体フレームにおける力強度ベクター(F)を三軸(XN、YN、ZN)からなる航法フレームの各平面上に投影された(projected)力成分(F1,F2,F3)と姿勢角(φ、θ、ψ)との関係を示す図である。
【0063】
前記投影された力成分(F1,F2,F3)を姿勢角(φ、θ、ψ)を利用して航法フレームの三軸(XN、YN、ZN)の成分で各々分解すると次の図12のとおりである。それぞれの軸(XN、YN、ZN)の成分を加算すると最終的に航法フレームにおける力強度(FNx、FNy、FNz)を求めることができる。
【0064】
図11および図12に示す幾何学的関係に基づいて、筐体フレームにおける力強度(FBx、FBy、FBz)を航法フレームにおける力強度(FNx、FNy、FNz)に変換する変換式を求めることができるが、その変換式は次の式8のとおりである。
【0065】
[式8]
【0066】
ここで、FNは航法フレームにおける力強度(FNx、FNy、FNz)成分からなる3次元ベクターであり、FBは筐体フレームにおける力強度(FBx、FBy、FBz)成分からなる3次元ベクターである。
【0067】
図13および13Bは、筐体フレームと航法フレームにおける力強度の差異を示すための図である。図13は、筐体フレームと航法フレームの方向を一致させた後x軸方向で力(f1)を加えるケースであり、図14は、図13において入力デバイス100を90°に立てた後筐体フレームのz軸方向(航法フレームのx軸方向)に力(f2)を加えるケースである。
【0068】
図15は、図13と同じ条件で力強度の結果を示す図である。予想のとおり、筐体フレームにおけるx軸方向力強度(FBx)と航法フレームにおけるx軸方向力強度(FNx)はほぼ一致する結果を示している。
【0069】
一方、図16および16は、図14と同じ条件で力強度の結果を示す図である。特に、図16は、筐体フレームと航法フレームにおけるx軸方向の力強度(FBx、FNx)を比較して示す。図16で航法フレームの力強度(FNx)は加えられた力に応じたプロファイルを示しており、筐体フレームの力強度(FBx)は時間(サンプリングデータのカウント)に関係なくほぼ0に近接する値を維持していることが分かる。理論的には筐体フレームの力強度(FBx)は正確に0を維持するべきであるが、入力デバイス100を把持する人の手の震え、加速度計の誤差などによって正確に0を維持しない。
【0070】
図17は、筐体フレームと航法フレームにおけるz軸方向の力強度(FBz、FNz)を比較して示す図である。図17で筐体フレームの力強度(FBx)は加えられた力に応じたプロファイルを示している。これに比べ、航法フレームの力強度(FNx)は一部の区間で若干の間の誤差はあるが、ほぼ0に近接する値を維持している。このように、式8に従い変換した結果が理論的な予想値と大きく差がないことを確認することができる。
【0071】
一方、筐体フレームにおける力強度(FBx、FBy、FBz)をヨードリフトフレームにおける力強度(FYx、FYy、FYz)に変換するための変換式は次の式9のとおりである。
【0072】
[式9]
【0073】
前記式9は式8でψに0を代入することによって簡単に得られる。なぜなら、ヨードリフトフレームは筐体フレームでヨー回転を考慮しない点から、航法フレーム上でヨー回転が存在してもそれは0と見なされるからである。
【0074】
前記筐体フレームの力強度を航法フレームの力強度に変換する変換マトリックス(CBN)や、筐体フレームの力強度をヨードリフトフレームの力強度に変換する変換マトリックス(CBY)はφ、θ、ψの組合せで構成される。したがって、入力デバイス100の姿勢に独立的なフレームで力強度を決定することにおいては、入力デバイス100の姿勢角、すなわちφ、θ、ψを正確に求めることが非常に重要である。筐体フレームでいくら正確な力強度を求めても前記姿勢角が正確でなければ変換された力強度の正確性も落ちるしかない。したがって、前述したように式1ないし式7に従いより正確な姿勢角を求めることが非常に重要であるといえる。
【0075】
以上で計算される力強度には当然重力加速度成分が含まれている。しかし、入力デバイス100を利用するアプリケーションによっては重力加速度成分を含まなければならない場合もあり得、重力加速度成分を除去しなければならない場合もあり得る。重力加速度は航法フレームにおける姿勢角のうちロール(φ)およびピッチ(θ)によって決定される。したがって、正確な姿勢角の計算は重力加速度成分を誤差なしで除去することにおいても必ず必要であることが分かる。
【0076】
再び図2を参照すると、強度マッピング部180は強度計算部170から求めた力強度(F)をマッピング関数によって最終的に出力される力強度(F')にマッピングする。力強度(F)はFNまたはFYを含んでもよい。
【0077】
図18および図19は、最も簡単な形態のマッピング関数の例を示している。このうち図18は
形態を有するフロアー(floor)関数を示し、図19は
形態を有するシーリング(ceiling)関数を示す。このようなマッピング関数は簡単な関係によって入力力強度(F)を出力力強度(F')に対応させることができる。このとき、前記k値の変化に応じて関数の入力値は縮小または除去されることができ、一定以上の入力値は比例する出力値に変換されることもできる。しかし、図18および図19のようなマッピング関数は特定値以上の過度な入力値に対して出力値を適切に制限できないという短所がある。すなわち、図18および図19のマッピング関数は後述する図20のマッピング関数に含まれる低下領域、スケーリング領域および限定領域の機能のうち、限定領域の機能が欠如している。
【0078】
図20のマッピング関数は図18および図19よりは多少複雑な3つの領域に分けられる。第1領域(part 1)は関数の入力値を縮小させてマッピングする低下領域(depression area)である。また、第2領域(part 2)は入力値をほぼ比例する出力値にマッピングするスケーリング領域(scaling area)である。最後に、第3領域は一定値以上の入力に対してその出力値を制限させる限定領域(limitation area)である。
【0079】
図20のマッピング関数は一例として
のようなシグモイド関数が使用されてもよい。ここで、力の方向は陽と陰がいずれも存在するため、前記シグモイド関数は座標の原点を中心に対称する。すなわち、図20のマッピング関数は同一の二つのシグモイド関数の結合で成されている。
【0080】
図20の3つの領域の意味についてより詳細に調べると次のとおりである。最初の領域である低下領域はユーザの力の作用が微細な領域である。この領域では入力力強度(F)と出力力強度(F')を1:1にマッピングさせるのではなく、出力力強度(F')を減らしてマッピングする。これはユーザの手の震えなどのように意図しない力強度を除去する機能を提供する。しかし、小さい力強度までも微細に実現する必要があるアプリケーションでは、低下領域を適切に上昇させてその動きが表現されるようにすることもできる。
【0081】
次の領域であるスケーリング領域は実際のユーザの力強度をディスプレイ装置上での位置情報にほぼ比例的にマッピングさせる領域であり、例えば±128の整数値にマッピングされる。
【0082】
最後の領域である限定領域はユーザの力強度が相対的に大きくても出力力強度(F')がそれほど大きくないように制限するための領域である。図20においてマッピング関数は原点に対して対称である形態を有するため、ユーザの力強度に対して陽と陰の方向に対称的出力を誘導することができる。
【0083】
このように、本発明でのマッピング関数は例示的に図18および図19に示す関数と、図20に示す関数を例示的に含むがこれに限定されない。例えば、本発明のマッピング関数は、関数の入力値を縮小または除去して出力する低下領域と、関数の入力値をほぼ比例する出力値にマッピングするスケーリング領域と、一定値以上の入力値に対してその出力値を制限する限定領域のうち少なくとも2つの領域を含んで成されるようにすることもできる。このような観点で、図18および図19の関数は低下領域とスケーリング領域で成されていると見ることができ、図20の関数は低下領域、スケーリング領域および限定領域をすべて含んで成されていると見ることができる。
【0084】
図21は、図13のおようにユーザが入力デバイス100に力(または加速度)を加える条件で、図20のようなマッピング関数の適用による出力力強度(F')を示す図である。このうち第1領域(part 1)はユーザが入力デバイス100をただ持っている状態であり、第2領域(part 2)は適切な力を加える状態であり、第3領域(part 3)は強い力を加える状態である。図21を参照すると第1領域では低下機能(depression function)を、第2領域ではスケーリング機能(scaling function)を第3領域では限定機能(limitation function)を提供することを確認することができる。
【0085】
図22、図23および図24は、前記3種類領域を各々拡大して示す図である。先に、図22は、低下領域での入力力強度(F)と出力力強度(F')の関係を示している。低下領域はユーザが入力デバイス100をただ持っている場合であるが、実際に図22に示すように陽陰の方向に不規則な波形を示す。しかし、図20の第1領域(part 1)のようなマッピング関数によってこのような不規則な波形は一定範囲を越えないようにカットオフ(cut−off)される。
【0086】
図23は、スケーリング領域での入力力強度(F)と出力力強度(F')の関係を示している。スケーリング領域はユーザが入力デバイス100に一定範囲以内の適切な力を加えた場合である。したがって、入力力強度(F)と出力力強度(F')はほぼ比例する形態を示している。図23は、スケーリング因子を1と設定した場合を例えているが、適用されるアプリケーションによってスケーリング因子はいくらでも他の値と設定され得ることはもちろんである。
【0087】
図24は、限定領域での入力力強度(F)と出力力強度(F')の関係を示している。限定領域はユーザが入力デバイス100に強い力を加えた場合である。一定数値を越える入力力強度(F)は図20の第3領域(part 3)のようなマッピング関数によって出力される力強度(F')が最大限界(図22の例では±128)を外れないように限定する。
【0088】
力強度は以上で説明したマッピング関数によって±128範囲あるいは±256範囲内の整数のように定規化されたデジタル値に変換され得る(もちろん浮動小数点(float)タイプのデジタル値に変換されることもできる)。マッピング関数によりアナログ値をこのようなデジタル値に変換すると、ノイズ低減効果が得られる。また一般的に加速度計を使用して計算された値はほぼ浮動小数点タイプのデータである。
【0089】
例えば、IEEE754定義によれば、単精度浮動小数点(single precision float)は4バイト、倍精度浮動小数点(double precision float)は8バイトが使用される。このような浮動小数点タイプのデータをデジタル化して整数形態のデータ(通常1〜2バイト)に変換するとデータ容量が減少され得、したがって通信上で伝送しなければならないデータの容量もまた減少され得る。
【0090】
例えば、浮動小数点値をそのまま使用する場合、それぞれの軸による浮動小数点タイプのデータは4バイトを必要とし、三つの軸の値をすべて伝送すると、総12バイトの容量が必要である。しかし、力強度を±1024にマッピングする場合には、それぞれの軸に対して符号を含み、11ビットが必要であり、三つの軸すべてに対しては総33ビットが必要である。これは約4バイトのサイズであってアナログ値をそのまま使用する場合より1/3に減った結果である。
【0091】
一方、力強度に対するマッピング関数の限定(limitation)範囲を調節することによってデジタル値の解像度を調節することができる。例えば、加速度計出力を利用して計算された入力力強度(F)を0g〜1gの範囲に限定し、±1024でデジタル化するマッピング関数を使用すれば約1mg (1g/1024≒1mg)の解像度が提供される。もし、入力力強度(F)を0g〜2gの範囲に限定し、これを±1024でデジタル化するマッピング関数を使用すれば、約2mgの解像度が提供されることである。このように、力強度に対するデジタル化された情報を提供するマッピング関数は設計者の意図に応じて必要な解像度の調節を可能にするだけでなく、少ないノイズと共に軽いデータ通信も可能にする。
【0092】
以上では強度計算部170および強度マッピング部180が計算してマッピングする対象が力強度である第1実施形態について説明した。しかし、本発明の第2実施形態によれば、強度計算部170および強度マッピング部170は回転強度を計算しマッピングすることもできる。
【0093】
回転強度(rotation intensity)は入力デバイス100が表現できる多様な回転成分を意味する。力強度と同様に、3次元空間で姿勢角が推定されれば角速度センサ110の出力から、装置の姿勢から独立的な座標系における回転成分、例えば、航法フレームにおける回転強度(RN)が計算され得る。角速度センサ110またはフィルタ部130の出力は筐体フレームにおける回転角速度(ωx、ωy、ωz)である。強度計算部170はこのような回転角速度を時間に対して積分し、筐体フレームにおける回転角ベクター(RB)、すなわち筐体フレームにおける回転強度(RBx、RBy、RBz)を求めることができる。
【0094】
筐体フレームにおける回転強度ベクター(RB)を航法フレームにおける回転強度ベクター(RN)に変換する変換式の例は次の式10のとおりである。ここで、回転強度ベクター(RN)は回転強度(RNx、RNy、RNz)で構成されて、変換マトリックス(TBN)は姿勢角測定部160から得られた姿勢角、すなわちφ、θ、ψの組合せで構成される。
【0095】
[式10]
【0096】
本発明の第2実施形態において、強度計算部170はこのような方法でデバイスの姿勢から独立的な航法フレームで回転強度を計算することができる。
【0097】
強度マッピング部180は強度計算部170から求めた回転強度(RN)をマッピング関数によって実際出力される回転強度(RN')にマッピングする。このようなマッピング過程は第1実施形態と同様の方式で行われることができるため反復された説明は省略する。
【0098】
最後に図2を参照すると、伝送部195はアプリケーションの種類によって強度マッピング部180から出力される力強度および/または回転強度をディスプレイ装置に無線で伝送する。もちろん、ディスプレイ装置が入力デバイス100と一体で実現された場合にはメインプロセッサに前記データを伝達すれば良い。前記無線伝送はブルートゥース、赤外線通信、IEEE 802.11無線ラン標準、IEEE 802.15.3無線ラン標準その他の無線通信規約に従い行われ得る。
【0099】
今まで図2の各ブロックはメモリ上の所定領域で行われるタスク、クラス、サブルーチン、プロセス、オブジェクト、実行スレッド、プログラムのようなソフトウェア(software)や、FPGA(field−programmable gate array)やASIC(application−specific integrated circuit)のようなハードウェア(hardware)で実現することができ、また前記ソフトウェアおよびハードウェアの組合せで構成されてもよい。また、各ブロックは特定の論理的機能を行うための一つ以上の実行可能なインストラクションを含むモジュール、セグメントまたはコードの一部を示すことができる。また、いくつの代替実行例では、ブロックで言及された機能が順序を外れて発生することも可能である。例えば、連続して図示されている2つのブロックは、実質的に同時に行われてもよく、またはそのブロックが時々該当する機能によって逆順に行われてもよい。
【0100】
以上のような、本発明の一実施形態によるユーザ命令入力デバイス100は次のようないくつかの実質的な利点を提供することができる。
【0101】
1.簡潔なシステム
本発明による入力デバイス100は式7のような加重平均の概念と、動き推定関数、マッピング関数などを使用することができる。したがって、モデル基盤のフィルタリング、例えば、線形フィルタリング(linear filtering)、カルマンフィルタリング(Kalman filtering)、カルマンスムージング(Kalman smoothing)、拡張カルマンフィルタリング(extended Kalman filtering)、状態−空間推定(state−space estimation)、期待値最大化(Expectation−Maximization)などに必要なデータのサンプリングのため複雑な演算とそれにともなう初期化に所要される時間は必要としない。
【0102】
それ共に動き推定関数およびマッピング関数はFFT(Fast Fourier Transform)のように多くのリソースを占めるマトリックス演算とは異なって入力と出力が1:1に対応する単純化された関数の形態である。したがって、このような単純化された関数を利用することにより演算時間とリソースが顕著に減る。
【0103】
2.航法フレームの姿勢角(attitude angle in navigation frame)
入力デバイス100は筐体フレームの回転および加速度を測定して航法フレームの姿勢情報を求める。このように求めた航法フレームの姿勢情報により位置情報(例:ポインタの動き)を制御するため、筐体フレームの傾きに関係なく前記位置情報が実現され得る。またこのような航法フレームにおけるロール、ピッチ、ヨー情報(姿勢角情報)を利用して前述したようにユーザパターンに合わせた動きの実現、直観的な動きの実現、ディスプレイ装置の状態制御などの多様な応用が可能である。そして製品デザインにおいても筐体フレームの回転方向に対する制限がないため、ユーザ命令入力デバイス100の外観に関する多様なデザインが可能になる。
【0104】
3.動き検出(Movement measure)
既存技術では単純停止のみを判断することに比べ、ユーザ命令入力デバイス100では動き測定関数により停止、微細動き、遅い動き、速い動きなどの多様な動き検出が可能であり、このような多様な形態の動き検出により、さらに改善された動きを実現することができる基礎を提供する。また、動き検出に使用する動き推定関数は入力と出力が1:1に対応して多くのリソースを占めない。
【0105】
4.マッピング(Mapping )
低下領域、スケーリング領域および限定領域で構成されたマッピング関数はユーザにより細密で直観的な動きを提供する。低下領域を介して手の震えのような動きが除去され、スケーリング領域を介して微細な動きを実現することができ、限定領域を介して過度な動きの制限が可能になる。このようなマッピング機能は必要に応じて所望する領域の値のみを有することも可能である。
【0106】
またマッピング関数は浮動小数点(float)値を正規化されたデジタル値に変換させることもできるが、このようなデジタル化により、ノイズの減少、通信上の伝送データ容量の減少などのデジタル信号が有する長所を提供することができる。また、このとき使用されるマッピング関数はモデル基盤のフィルタリングのように別途の初期化時間とデータのサンプリングを必要とせず、入力と出力が1:1に対応する単純化された関数である。
【0107】
5.加重平均を利用した安定かつ正確な動きの実現(Stable and correct movement using weighted average)
ユーザ命令入力デバイス100では、角速度計出力と加速度計出力で実現した各情報に基づいて加重平均を求めるため、より安定かつ正確な動きの実現が可能である。角速度計のみを利用する場合、角速度を積分して角度を実現する過程でバイアス変化による累積誤差が発生し、これは結局角度の発散を起こすが、このような問題を解決するための多様な従来の技術が知られている。このような従来の技術としては、カルマンフィルタによりバイアスを推定する方法、周波数分析によりデジタルフィルタを使用する方法、与えられた時間および臨界値などを分析してバイアスを推定する方法などがある。しかし、このような従来の技術はいずれもシステムのリソースを過度に消耗し、多くの演算量を必要とする短所がある。
【0108】
これに比べ、ユーザ命令入力デバイス100の場合、角速度計と共に加速度計を利用して加重平均の概念を適用するので加速度計によって角度の発散を簡単に制限することができる。これによって、角速度計のバイアス推定時に使用するモデルまたはフィルタを単純に構成することができ、姿勢角測定の正確性を向上させることができる。このように求めた姿勢角によりさらに安定かつ正確な動きが実現することができる。
【0109】
また、ユーザ命令入力デバイス100では、動き推定関数によって動きが検出されると、検出された動きに応じてそれぞれの加重値(式7のα1,α2,α3)を変更することによってユーザが意図する多様な動きを表現することができる。すなわち、状況に適合した動きの実現が可能になるという意味である。
【0110】
6.システムの初期化時間の短縮(Reducing system initial time)
ユーザ命令入力デバイス100の単純化されたシステムによれば、デバイスの初期化時間を短縮させることができる。その代表的な例として、前述した加重平均の概念を挙げることができる。角速度計のみで角度を実現する場合、累積誤差を最小化するため、カルマンフィルタリングのような別途のフィルタリング技法が要求される。前記カルマンフィルタリングの場合、初期バイアス推定、あるいはバイアスセットのための初期化ステップが必須に要求される。
【0111】
これに対し、ユーザ命令入力デバイス100は角速度計と共に加速度計出力を持って加重平均を利用して各情報を実現することによって、このような初期化ステップなしで正確な角度を求めることができる。すなわち、システムの単純化を追求しながらも、姿勢角測定の正確度を向上させることができる。
【0112】
また、マッピング関数もモデル基盤のフィルタリングと異なって1:1対応を主とするため、このような初期化時間の短縮に一定部分を寄与する。
【0113】
7.システムの消費電力の減少(Reducing power consumption)
ユーザ命令入力デバイス100の単純化されたシステムによれば、初期化時間を短縮および演算量減少に基づいて消費電力の減少を追求することができる。システムの初期化時間が短縮されることによって大きくは動作モード、低電力モード(power down mode)、パワーオフモード(power off mode)などの単純化された作動モードを有することができる。
【0114】
従来の技術では動作モードに入るためにシステムを安定化させるにスタンバイモード(standby−mode)のような臨時ステップが必要であった。しかし、ユーザ命令入力デバイス100ではスタンバイモードのような臨時ステップを必要としないため、デバイスが使用されないときには選択的に特定構成要素に提供される電源をオフ(off)させることができる。したがって、デバイス電源のオン−オフが容易になると消費電力をさらに減少させることができるのである。
【0115】
8.力強度(Force intensity)の提供
入力デバイス100は姿勢角と共に加速度と関連する情報として力強度を提供する。加速度と関連する情報として加速度計の出力値をそのまま使用する場合、重力成分が含まれることによって動くのによる正確な情報の実現が難しい。また加速度計出力に対する単なるスケーリングを使用するとノイズの増加をもたらす。
【0116】
本発明の入力デバイス100において、強度計算部170は姿勢角測定部160から提供された姿勢角と、加速度センサ120の出力値に基づいて航法フレームまたはヨードリフトフレーム上での力強度を計算することができる。また、強度マッピング部180は強度計算部170で計算された力強度をマッピングされた情報に変換する。このようなマッピングによって入力デバイス100のユーザは直観的でかつ自然な力感覚を感じることができる。
【0117】
また、入力デバイス100は姿勢角測定部160から求めた姿勢角情報を利用して重力成分を除去しない力強度、または重力成分を除去した力強度を求めることもできる。
【0118】
9.回転強度(Rotation intensity)の提供
入力デバイス100は以上の姿勢角、力強度とともに回転強度という情報も提供することができる。力強度が線形の動きに対する情報を意味するとしたら、回転強度は回転の動きに対する情報を意味する。
【0119】
本発明の入力デバイス100において、強度計算部170は姿勢角測定部160から提供された姿勢角と、角速度センサ110の出力値に基づいて航法フレーム上での回転強度を計算することができる。また、強度マッピング部180は強度計算部170で計算された回転強度をマッピングされた情報に変換する。このようなマッピングによって、入力デバイス100のユーザは直観的でかつ自然な回転感覚を感じることができる。
【0120】
実際の人の動きは線形の動きと回転の動きが複合的に成されるが、前記力強度と回転強度を複合的に応用するとより改善されかつ多様な動きの表現が可能になる。したがって、入力デバイス100はゲーム入力装置のような他のアプリケーションで多様に応用することができる。
【0121】
以上添付された図面を参照して本発明の実施形態について説明したが、本発明が属する技術分野における通常の知識を有する者は、本発明が、その技術的思想や必須の特徴を変更しない範囲で他の具体的な形態で実施され得ることを理解することができる。したがって、上記実施形態はすべての面で例示的なものであり、限定的でないものと理解しなければならない。
【符号の説明】
【0122】
100 入力デバイス
110 角速度センサ
120 加速度センサ
130 フィルタ部
140 第1演算部
150 第2演算部
160 姿勢角測定部
170 強度計算部
180 強度マッピング部
190 処理ユニット
195 伝送部
【技術分野】
【0001】
本発明は、動きセンサを具備したユーザ命令入力デバイスに関するものであって、より詳細には3次元空間上でのデバイスの動きに基づいてより自然かつ正確に力強度(force intensity)および回転強度(rotation intensity)を入力する装置に関するものである。
【背景技術】
【0002】
コンピュータ科学分野の発達につれ、ユーザがコンピュータデバイスに情報を入力できる多様なデバイスが開発されている。前記デバイスのうちあるグループはユーザ命令入力デバイスと呼ばれる。ユーザがこのようなデバイスのコンポーネントを操作することにより、ユーザ命令入力デバイスの移動に対応する位置データが生成される。そして、このような位置データはディスプレイ上に表示されるポインタイメージの動きに変換される。したがって、ユーザ命令入力デバイスを動かすことによって、ユーザはそのポインタイメージをディスプレイ上に表示されるオブジェクトと関連させることができる。前記オブジェクトとは、メニュー、ボタン、イメージなど選択されたとき、特定動作が実行されるようにするユーザインターフェースを意味する。その後ユーザはユーザ命令入力デバイスの特定ボタンを押すような選択動作を通じて、該当オブジェクトと関連した特定命令をすることができる。
【0003】
一般的な個人用コンピュータのユーザは自身のコンピュータを駆動するためのオペレーティングシステム(OS:Operating System)としてマイクロソフト社のウインドウズ(Windows)を使用している。これは既存のDOS(Disk Operating System)システムではサポートできない便利なマウス機能および多様なグラフィック機能に起因するが、ユーザはウインドウズを介して特定命令を入力するとき、いちいちキーボード入力を行わなくても、マウスのドラッグやスクロール、クリックなどにより簡便に命令を入力することができる。
【0004】
これとは対照にデジタルTV、セットトップボックス、ゲーム機などのように個人用コンピュータで使用されるキーボードやマウスを使用することができない映像表示装置では、リモコンという遠隔制御装置上に具備されたキーパッドを利用して多様な命令を入力する実情にある。このようにキーパッドを押す入力方式が主に使用された理由は、このような装置は個人用コンピュータとは異なり前記装置の操作のために特定の位置に固定されているものでもなく、リビングのような開放された空間での操作が必要であるためユーザがキーボードやマウスのように主に平面に固定して使用される入力手段を利用することが難しいからである。
【0005】
このような問題点を考慮し、最近ではジャイロスコープ、加速度計などの動きセンサを搭載した3次元ユーザ命令入力デバイスが開発されている。ユーザは3次元ユーザ命令入力デバイスを動かすことによってこれに対応するディスプレイ上のポインタイメージを所望する方向と速度で動かすことができ、前記ユーザ命令入力デバイス上に具備された特定ボタンを押すことによって所望するオブジェクトを選択して実行することができる。
【0006】
一方、最近ではゲーム機、航空シミュレーション機器、スポーツシミュレーション機器など3次元ユーザ命令入力デバイスを使用する多様なシステムが登場している。このような新しいシステムにおいては、単にユーザが入力デバイスを通じて画面上のオブジェクトの線形の動きを制御すること(例えば、画面上のポインタを制御すること)以外にも、入力デバイスを利用して3次元空間上に存在するオブジェクトに力を伝達したり、回転を加えたりするという多様な形態のユーザ命令を入力する方式が使用され得る。
【0007】
このように、力や回転などの慣性(momentum)をオブジェクトに伝達することにおいて最も重要な部分は、ユーザが実際入力デバイスを動かすことに対応して画面上のオブジェクトがどれほど自然に反応(または動作)するかである。このようなオブジェクトの自然な反応の可否はユーザ個人によって多少異なるように感じられる部分でもあるが、シミュレーションの次元から見ると特定入力に対する物理的反応は理論的には唯一である。したがって、その唯一の反応に近くなるように入力と反応間の関係を調節することカギといえる。
【発明の概要】
【発明が解決しようとする課題】
【0008】
本発明が解決しようとする課題は、3次元空間上で任意の動作を通じてユーザが力強度および回転強度をオブジェクトに自然に入力する方法および装置を提供することにある。
【0009】
本発明の技術的課題は以上で言及した技術的課題に制限されず、言及されていないまた他の技術的課題は次の記載から当業者に明確に理解できるであろう。
【課題を解決するための手段】
【0010】
前記技術的課題を達成するために本発明の一実施形態による3次元空間上で動作してユーザ命令を入力するための入力デバイスは、第1センサの出力値から、前記デバイスの姿勢に対して独立的な座標系における第1回転角を演算する第1演算部と、第2センサの出力値から、前記独立的な座標系における第2回転角を演算する第2演算部と、前記第1回転角と前記第2回転角を組合せて前記入力デバイスの姿勢角を求める姿勢角測定部、および前記入力デバイスの加速度と、前記姿勢角測定部から求めた入力デバイスの姿勢角を利用して前記独立的な座標系における力強度を計算する強度計算部を含む。
【0011】
前記技術的課題を達成するために本発明の他の実施形態による3次元空間上で動作してユーザ命令を入力するための入力デバイスは、少なくとも一つの方向に対する前記入力デバイスの加速度を感知するセンサと、前記感知された加速度から筐体フレームにおける力強度を計算する強度計算部、およびマッピング関数によって前記計算された力強度を最終的に出力される力強度にマッピングする強度マッピング部を含む。
【0012】
前記技術的課題を達成するために本発明のまた他の実施形態による3次元空間上で動作してユーザ命令を入力するための入力デバイスは、第1センサの出力値から、前記デバイスの姿勢に対して独立的な座標系における第1回転角を演算する第1演算部と、第2センサの出力値から、前記独立的な座標系における第2回転角を演算する第2演算部と、前記第1回転角と前記第2回転角を組合せて前記入力デバイスの姿勢角を求める姿勢角測定部、および前記入力デバイスの角速度と、前記姿勢角測定部から求めた入力デバイスの姿勢角を利用して前記独立的な座標系における回転強度を計算する強度計算部を含む。
【0013】
前記技術的課題を達成するために本発明のまた他の実施形態による3次元空間上で動作してユーザ命令を入力するための入力デバイスは、少なくとも一つの方向に対する前記入力デバイスの角速度を感知するセンサと、前記感知された角速度から筐体フレームにおける回転強度を計算する強度計算部、およびマッピング関数によって前記計算された回転強度を最終的に出力される回転強度にマッピングする強度マッピング部を含む。
【発明の効果】
【0014】
本発明による入力デバイスによれば、3次元空間上で任意の動作を通じて力強度または回転強度をオブジェクトに伝達する場合に、ユーザが前記オブジェクトらからより直観的かつ自然な反応を感じることができる。
【図面の簡単な説明】
【0015】
【図1】特定フレームで定義される三軸回転方向を示す図である。
【図2】本発明の一実施形態による入力デバイスを示すブロック図である。
【図3】本発明による一実施形態により加速度計を利用してロール値を測定する方法を示す図である。
【図4】本発明の一実施形態によるヨー角測定方法においてピッチおよびロール値を利用してヨー値を計算する方法を示す図である。
【図5】式5においてωxを利用する場合と利用しない場合を比較した図である。
【図6】式5においてωxを利用する場合と利用しない場合を比較した図である。
【図7】式5においてωxを利用する場合と利用しない場合を比較した図である。
【図8】動き推定関数を利用してデバイスの動きを推定するフローチャートである。
【図9】動き推定関数の例として使用された鐘形曲線を示す図である。
【図10】動き推定関数の例として使用された指数関数を示す図である。
【図11】筐体フレームにおける力強度ベクターを航法フレームの各平面上に投影させた面である。
【図12】図11で投影された力成分を姿勢角を利用して航法フレームの成分で各々分解した図である。
【図13】筐体フレームと航法フレームにおける力強度の差異を示すための図ある。
【図14】筐体フレームと航法フレームにおける力強度の差異を示すための図ある。
【図15】図13と同じ条件で力強度の結果を示す図である
【図16】図14と同じ条件で力強度の結果を示す図である。
【図17】図14と同じ条件で力強度の結果を示す図である。
【図18】本発明の一実施形態によるマッピング関数を示す図である。
【図19】本発明の一実施形態によるマッピング関数を示す図である。
【図20】本発明の一実施形態によるマッピング関数を示す図である。
【図21】図13のようにユーザが入力デバイスに力を加える条件で図20と同じマッピング関数の適用による出力力強度を示す図である。
【図22】図21において低下領域を拡大して示す図である。
【図23】図21においてスケーリング領域を拡大して示す図である。
【図24】図21において限定領域を拡大して示す図である。
【発明を実施するための形態】
【0016】
本発明の利点、特徴、およびそれらを達成する方法は、添付する図面と共に詳細に後述される実施形態を参照すれば明確になるであろう。しかし、本発明は、以下で開示される実施形態に限定されるものではなく、互いに異なる多様な形態で実現されることが可能である。本実施形態は、単に本発明の開示が完全になるように、本発明が属する技術分野で通常の知識を有する者に対して発明の範疇を完全に知らせるために提供されるものであり、本発明は、請求項の範疇によってのみ定義される。なお、明細書全体にかけて、同一の参照符号は同一の構成要素を指すものとする。
【0017】
以下添付された図を参照して本発明による一実施形態について詳細に説明する。
【0018】
本発明において、入力デバイスはユーザの動きの入力を受けて多様なオブジェクトに力強度および回転強度を直観的に伝達できるようにするインターフェース装置を意味する。前記デバイスはユーザの動きにより得られた情報を多様な情報機器あるいは様々なサービスに合わせて必要な情報に対応させる。例えば、3次元空間マウス、IPTV(internet protocol TV)リモコン、ゲーム入力装置などがこれに含まれてもよい。そして、前記オブジェクトは例えば、2次元ディスプレイ画面によって表現される仮想の3次元空間内に存在する物体を意味する。野球ゲームアプリケーションの場合、前記オブジェクトは仮想の3次元野球場内の野球のボールであってもよい。しかし、本発明におけるオブジェクトは仮想空間上のオブジェクトのみを意味するものではなく、実際物理力の伝達を受け反応できるシステムでの物体も含む概念である。
【0019】
次の図1は、特定フレーム(座標系)で定義される三軸回転方向を示す図である。x、y、z軸からなる特定フレームにおいて、ピッチ(θ)はy軸方向に対する回転を、ロール(φ)はx軸方向に対する回転を、そしてヨー(ψ)はz軸方向に対する回転をそれぞれ意味する。これら回転に対して陽(+)および陰(−)を決定する基準は右手座標系(right−handed coordinate)に従う。本発明では航法フレーム(navigation frame)および筐体フレーム(body frame)を含む二つのフレームを言及する。前記航法フレームは空間上に固定されており、互いに垂直である三軸XN、YN、ZNで構成された基準座標系を意味する。すなわち、航法フレームは装置の姿勢から独立的ともいえる。また筐体フレームは3次元空間に置かれた物体上に存在する互い垂直である三軸XB、YB、ZBで構成された相手座標系を意味する。図1においてX方向はユーザ命令入力デバイスが向かう基準方向を意味する。すなわち前記基準方向に向かった軸を基準にして回転するとロール回転になるのである。
【0020】
図2は、本発明の一実施形態によるユーザ命令入力デバイス100を示すブロック図である。ユーザ命令入力デバイス100は少なくとも一つ以上のディスプレイ装置(図示せず)上のオブジェクトを制御することができる。また、前記ディスプレイ装置は別途の固定された位置に設置されてもよいが携帯が可能なように前記ユーザ命令入力デバイス100と一体で具備されてもよい(例:携帯用ゲーム機)。
【0021】
入力デバイス100はより具体的な例として、角速度センサ110、加速度センサ120、フィルタ部130、処理ユニット(processing unit:190)および伝送部195を含んで構成されてもよい。また、処理ユニット190は第1演算部140、第2演算部150、姿勢角測定部160、強度(intensity)計算部170および強度マッピング部180を含んで構成されてもよい。
【0022】
角速度センサ110はデバイス100が筐体フレーム上で回転する角速度を感知してサンプリングなった出力値(デジタル値)を提供する。角速度センサ110としてはジャイロスコープが使用されてもよいが、前記ジャイロスコープは機械式、流体式、光学式、圧電式など多様な類型が使用されてもよい。具体的には角速度センサ110は互いに直交する二つの軸(筐体フレーム上の軸)に対する回転角速度、例えば、筐体フレームのx、y、z軸上の回転角速度(ωx、ωy、ωz)を求めることができる。
【0023】
加速度センサ120はデバイス100が筐体フレーム上での加速度を感知してサンプリングした出力値(デジタル値)を提供する。加速度センサ120としては圧電型(piezoelectric type)、可動コイル型(moving coil type)いずれを使用してもよい。具体的には加速度センサ120は互いに直交する三つの軸(筐体フレーム上の軸)に対する直線加速度(fx、fy、fz)を求める。
【0024】
フィルタ部130はデバイス100の用途に応じて低域通過フィルタ(low pass filter)、高域通過フィルタ(high pass filter)、オフセットフィルタ、またはスケーリングフィルタなどで実現されてもよく、前記角速度センサ110の出力および加速度センサ120の出力を受信して誤差補償を行う。フィルタ部130は誤差補償された回転角速度(ωx、ωy、ωz)は第1演算部140に提供し、誤差補償された直線加速度(fx、fy、fz)は第2演算部150に提供する。
【0025】
第2演算部150はフィルタ部130から提供される直線加速度(fx、fy、fz)値を利用し、航法フレームにおけるロール、ピッチおよびヨー(φXL、θXL、ψXL)(第2回転角)を計算する。その具体的な計算例は次の式1のとおりである。
【0026】
[式1]
【0027】
一般的には加速度のみでロール(φXL)およびピッチ(θXL)は簡単に求めることができるが、ヨー(ψXL)を求めるのは容易ではない。式1で計算されるヨー(ψXL)は疑似ヨー(pseudo yaw)であって、次の図3および4を参照して説明する。
【0028】
図3は、本発明による一実施形態により加速度計を利用してロール値を測定する方法を示す。Y軸方向加速度をfyとするとき、すでにピッチが発生したことを前提とすると、図1に示す(b)で重力加速度の鉛直成分はg・cosθとなる。したがって、ロール(Φ)は次の式2のとおりである。
【0029】
[式2]
【0030】
加速度計を利用してロール値を測定する方法は実施形態により多様な方法で計算することができる。
【0031】
図4は、本発明の一実施形態によるヨー角測定方法においてピッチおよびロール値を利用してヨー値を計算する方法を示す図である。図4の(a)は、ピッチが発生したことを前提にし、ロールおよびヨー角速度のベクター方向を示す。図4の(a)においてωyはロール角速度ベクターを示し、ωzはヨー角速度ベクターを示す。ヨー角速度ベクターは実際ヨーベクターではない実際ヨーベクターに対する投射されたベクター(projected vector)である。
【0032】
図4の(b)は、図2の(a)を側面から示す図である。図4の(b)から時間tに対してロール角速度ベクターωy、ヨー角速度ベクターωzおよびピッチ(θ)の間には次の式3のような関係が成立する。
【0033】
[式3]
【0034】
前記の式3から、ヨー(Ψ)は次の式4のように近似的に計算することができる。
【0035】
[式4]
【0036】
ただし、この式4はピッチθが0度や90度に近くなると適用できないので0度や90度に近い角度では一定の制限を付与しなければならない。前記式4を用いて各条件から実際測定されたヨー値は次のとおりである。
【0037】
【0038】
前記表のようにピッチ値を変化させながらロールを−80から+80まで変化させると測定されたヨー値の範囲が相異なるため、このような偏差を減らすためにスケール因子を使用して補正することができる。結果的に、ピッチ値が存在し、ロール値が変わると共にヨー値が変わる状況でヨーに対する近似値を計算することが可能である。
【0039】
第1演算部140はフィルタ部130から提供される角速度(ωx、ωy、ωz)値を利用し、航法フレームにおける三軸の回転角(φG、θG、ψG)(第1回転角)を計算する。オイラー角(Euler angle)を利用した具体的な計算式は次の式5のとおりである。式5は結局航法フレームにおける回転角(φG、θG、ψG)に対する微分方程式の形態を有する。
【0040】
[式5]
【0041】
一般的には3つの角速度で航法フレームにおける姿勢角を求めることもできる。しかし、本発明の好ましい実施形態においては2つの角速度(ωy、ωz)のみで航法フレームにおける三軸の角速度を計算するが、この場合式5のωxが問題になる。
【0042】
人の一般的な手および腕の動作の動きは、通常三軸座標系では単一軸で動く場合が多い。例えば、Z軸を基準にして回転またはY軸方向に回転などがそうである。また同時に2軸以上の複合的な動きが起きるとしても筐体フレームのX軸方向回転とY軸方向回転、筐体フレームのX軸方向回転とZ軸方向回転が共に動作する場合にはX軸方向動きが相対的にY軸、Z軸方向の動きよりその大きさが小さい傾向がある。
【0043】
したがって、式5において、筐体フレームのY軸方向角速度ωyとZ軸方向角速度ωzより筐体フレームのX軸方向角速度ωxが相対的に小さくなる。これによってωxを無視することはできるが、それにより姿勢角計算が正確に成されない。しかし、加速度計で求めたロール(φXL)情報を適切に使用するとωx軸の角速度計を使用した場合と類似の性能を確保することができる。
【0044】
図5〜7は、式5においてωxを利用する場合(点線)と利用しない場合(実線)を比較した結果である。X軸は単位サンプル数を、Y軸は角度(degree)を意味する。また各図面の右側グラフは左側グラフの円で表示した一定区間を拡大したものである。ωxを除去した場合はそうではない場合より2°〜4°程度の角度差と共に2〜10サンプル程度の遅延が発生する。しかし、計算周期が100Hz以上になると、ユーザが識別しにくい程度の角度差と遅延が発生するため、筐体フレームのX軸角速度計なしでも2軸に対する角速度計(筐体フレームのY軸角速度計、Z軸角速度計)のみを使用しても三軸に対する角速度計を使用した結果とほぼ差がないことを確認することができる。
【0045】
このような実験結果に基づいて式5は次の式6のように変形することができる。
【0046】
[式6]
【0047】
一方、人が入力装置を握って動くときのパターンをあらかじめ把握しておいて活用すると、ωxを除去した式6からさらに進んでωyの除去も可能である。この場合、式1のように、加速度計の出力を利用して求めた(φXL、θXL、ψXL)を利用してωy、ωzを使用しないことによって発生する誤差を解消することができる。
【0048】
式5および式6はオイラー角に基づいて、角速度(ωy、ωz)値から航法フレームにおける三軸の回転角(φG、θG、ψG)を計算することを例示したが、オイラー角の代わりに多少計算が複雑なクオータニオン(quaternion)に基づいて前記計算を行うこともできる。
【0049】
再び図2を参照すると、姿勢角測定部160は第2演算部150から得られた航法フレーム上の3つの回転角(φXL、θXL、ψXL)と、第1演算部140から得られた航法フレーム上の3つの回転角(φG、θG、ψG)を加重平均し、航法フレームにおける姿勢角(φ、θ、ψ)を求める。具体的な加重平均は次の式7により計算することができる。
【0050】
[式7]
【0051】
ここで、α1,α2およびα3はそれぞれφ、θ、ψに対する加重値として0から1の間の値を有する。以上の過程により航法フレームにおける姿勢角(φ、θ、ψ)を求めることは一実施形態に過ぎず、多様に変形することが可能である。例えば、式1で使用したψXLは直接磁気センサ(magnetic sensor)またはイメージセンサ(image sensor)などを利用して求めることもできる。前記磁気センサやイメージセンサによれば、航法フレームにおけるヨー角を直接求めることができるので、加速度センサで使用した式1のような変換過程は必要ない場合もある。
【0052】
式1の3つ目の式からψXLが計算されない場合、すなわちθXL=0である場合には、α3を1としておくことによってψXLを利用せずただψGによってψを計算することもできる。
【0053】
しかし、より正確に最終姿勢角(φ、θ、ψ)を求めるためには、α1,α2およびα3を任意に決定するよりは状態変化に合わせて適応的に決定する必要がある。これのために姿勢角測定部160は動き推定関数を使用することができる。
【0054】
動き推定関数は角速度センサおよび加速度センサ出力を利用したデータに基づいて動きを0から1の間に正規化させることによって細分化した動きを検出する関数を意味する。一例として、仮に検出されたデバイス100の動きがほぼない場合には加速度センサ120の値より信頼することができるため、αn=1になるようにマッピングし、前記動きが最大である場合には角速度センサ110の値をより信頼することができるため、αn=0になるようにマッピングし、その間の値を有する場合には停止と最大動きの間の適切な値にマッピングすることが必要である。
【0055】
図8は、動き推定関数を利用してデバイス100の動きを推定するフローチャートである。このような動き推定関数としては鐘形の曲線(bell shape curve)または指数関数(exponential function)などを利用することができる。鐘形の曲線は図9のような形態の曲線であって、具体的にはガウス関数(Gaussian function)、二乗余弦関数(Raised cosine function)などで表現することができる。また、指数関数は図10のような形態を有する、例えば、
のような関数である。図9および図10においてx軸はデバイス100の動きのサイズを示し、y軸は式7での加重値すなわち、αnを意味する。図9および図10の関数は共通に中央でピーク分を有し、左右に行くほど0に近接する形態を有する。
【0056】
このような動き推定関数を利用すると、単にデバイス100が停止したかを判断することを越え、停止、微細な動き、遅い動き、速い動きなどの細分化した動きを検出することができる。また、このように動きを測定することによってユーザの意図しない動き(例として、手の震えなどによるカーソルの動き)を除去できる基礎を提供することができる。また、動きのサイズに応じて後述するマッピング関数のスケール調節も可能になる。
【0057】
再び図2を参照すると、強度計算部170は本発明の第1実施形態により姿勢角測定部160から得られた姿勢角(φ,θ,ψ)、すなわち空間上に固定された航法フレーム上で入力デバイス100が成す角度と、フィルタ部130から提供される誤差補償された直線加速度(fx,fy,fz)に基づいて力強度(force intensity)(Fx,Fy,Fz)を求める。一方、強度計算部170は本発明の第2実施形態により姿勢角測定部160から得られた姿勢角(φ,θ,ψ)と,フィルタ部130から提供される誤差補償された回転角速度(ωx,ωy,ωz)に基づいて回転強度(rotation intensity)(Rx,Ry,Rz)を求める。もちろん、強度計算部170は前記力強度と回転強度を共に求めることもできる。
【0058】
以下では先ず、前記第1実施形態について詳細に説明する。
【0059】
力強度は入力デバイス100で実現できる多様な力成分を示す。3次元空間で姿勢角が推定されると、加速度計出力を利用して3次元空間に加えられる力、すなわち、力強度を計算することができる。しかし、前記力強度はフレーム(座標軸)の選択に応じて概ね次の3つに区分することができる。それは筐体フレーム上で定義される力強度(FB)、航法フレーム上で定義される力強度(FN)およびヨードリフトフレーム(yaw drift frame)上で定義される力強度(FY)である。前記FBは筐体フレーム上で各軸の成分であるFBx、FBy、FBzに分けられ、前記FNは航法フレーム上で各軸の成分であるFNx、FNy、FNzに分けられ、前記FYはヨードリフトフレーム上で各軸の成分のFYx、FYy、FYzに分けられる。前記ヨードリフトフレームとは、基本的には航法フレームと類似するが、航法フレームでヨー方向回転(筐体フレームを基準)を考慮しないフレームである。すなわち、ヨードリフトフレームにおける力強度は入力デバイス100のヘディング(heading)方向による航法フレームにおける力強度を意味するといえる。ヨードリフトフレームは航法フレームと共に入力デバイス100の姿勢から独立的なフレームに属するといえる。
【0060】
しかし、フィルタ部130から出力される直線加速度成分(fx、fy、fz)は筐体フレーム上で定義される値であるため、強度計算部170は前記加速度成分に適切なスケーリングを通じて筐体フレーム上での力強度(FBx、FBy、FBz)を簡単に計算することができる。また、強度計算部170は前記直線加速度成分(fx、fy、fz)および姿勢角測定部160から得られた姿勢角(φ、θ、ψ)に基づいて入力デバイス100の姿勢から独立的な座標系(フレーム)における力強度(Fx、Fy、Fz)を求めることもできる。
【0061】
前記独立的な座標系における力強度(Fx、Fy、Fz)とは、例えば、航法フレームにおける力強度(FNx、FNy、FNz)またはヨードリフトフレームにおける力強度(FYx、FYy、FYz)などであってもよい。強度計算部170が求める力強度(Fx、Fy、Fz)は適用されるアプリケーションによって重力補償(重力加速度補償)を含んでもよく含まなくてもよい。
【0062】
図11は、三軸(XB、YB、ZB)からなる筐体フレームにおける力強度ベクター(F)を三軸(XN、YN、ZN)からなる航法フレームの各平面上に投影された(projected)力成分(F1,F2,F3)と姿勢角(φ、θ、ψ)との関係を示す図である。
【0063】
前記投影された力成分(F1,F2,F3)を姿勢角(φ、θ、ψ)を利用して航法フレームの三軸(XN、YN、ZN)の成分で各々分解すると次の図12のとおりである。それぞれの軸(XN、YN、ZN)の成分を加算すると最終的に航法フレームにおける力強度(FNx、FNy、FNz)を求めることができる。
【0064】
図11および図12に示す幾何学的関係に基づいて、筐体フレームにおける力強度(FBx、FBy、FBz)を航法フレームにおける力強度(FNx、FNy、FNz)に変換する変換式を求めることができるが、その変換式は次の式8のとおりである。
【0065】
[式8]
【0066】
ここで、FNは航法フレームにおける力強度(FNx、FNy、FNz)成分からなる3次元ベクターであり、FBは筐体フレームにおける力強度(FBx、FBy、FBz)成分からなる3次元ベクターである。
【0067】
図13および13Bは、筐体フレームと航法フレームにおける力強度の差異を示すための図である。図13は、筐体フレームと航法フレームの方向を一致させた後x軸方向で力(f1)を加えるケースであり、図14は、図13において入力デバイス100を90°に立てた後筐体フレームのz軸方向(航法フレームのx軸方向)に力(f2)を加えるケースである。
【0068】
図15は、図13と同じ条件で力強度の結果を示す図である。予想のとおり、筐体フレームにおけるx軸方向力強度(FBx)と航法フレームにおけるx軸方向力強度(FNx)はほぼ一致する結果を示している。
【0069】
一方、図16および16は、図14と同じ条件で力強度の結果を示す図である。特に、図16は、筐体フレームと航法フレームにおけるx軸方向の力強度(FBx、FNx)を比較して示す。図16で航法フレームの力強度(FNx)は加えられた力に応じたプロファイルを示しており、筐体フレームの力強度(FBx)は時間(サンプリングデータのカウント)に関係なくほぼ0に近接する値を維持していることが分かる。理論的には筐体フレームの力強度(FBx)は正確に0を維持するべきであるが、入力デバイス100を把持する人の手の震え、加速度計の誤差などによって正確に0を維持しない。
【0070】
図17は、筐体フレームと航法フレームにおけるz軸方向の力強度(FBz、FNz)を比較して示す図である。図17で筐体フレームの力強度(FBx)は加えられた力に応じたプロファイルを示している。これに比べ、航法フレームの力強度(FNx)は一部の区間で若干の間の誤差はあるが、ほぼ0に近接する値を維持している。このように、式8に従い変換した結果が理論的な予想値と大きく差がないことを確認することができる。
【0071】
一方、筐体フレームにおける力強度(FBx、FBy、FBz)をヨードリフトフレームにおける力強度(FYx、FYy、FYz)に変換するための変換式は次の式9のとおりである。
【0072】
[式9]
【0073】
前記式9は式8でψに0を代入することによって簡単に得られる。なぜなら、ヨードリフトフレームは筐体フレームでヨー回転を考慮しない点から、航法フレーム上でヨー回転が存在してもそれは0と見なされるからである。
【0074】
前記筐体フレームの力強度を航法フレームの力強度に変換する変換マトリックス(CBN)や、筐体フレームの力強度をヨードリフトフレームの力強度に変換する変換マトリックス(CBY)はφ、θ、ψの組合せで構成される。したがって、入力デバイス100の姿勢に独立的なフレームで力強度を決定することにおいては、入力デバイス100の姿勢角、すなわちφ、θ、ψを正確に求めることが非常に重要である。筐体フレームでいくら正確な力強度を求めても前記姿勢角が正確でなければ変換された力強度の正確性も落ちるしかない。したがって、前述したように式1ないし式7に従いより正確な姿勢角を求めることが非常に重要であるといえる。
【0075】
以上で計算される力強度には当然重力加速度成分が含まれている。しかし、入力デバイス100を利用するアプリケーションによっては重力加速度成分を含まなければならない場合もあり得、重力加速度成分を除去しなければならない場合もあり得る。重力加速度は航法フレームにおける姿勢角のうちロール(φ)およびピッチ(θ)によって決定される。したがって、正確な姿勢角の計算は重力加速度成分を誤差なしで除去することにおいても必ず必要であることが分かる。
【0076】
再び図2を参照すると、強度マッピング部180は強度計算部170から求めた力強度(F)をマッピング関数によって最終的に出力される力強度(F')にマッピングする。力強度(F)はFNまたはFYを含んでもよい。
【0077】
図18および図19は、最も簡単な形態のマッピング関数の例を示している。このうち図18は
形態を有するフロアー(floor)関数を示し、図19は
形態を有するシーリング(ceiling)関数を示す。このようなマッピング関数は簡単な関係によって入力力強度(F)を出力力強度(F')に対応させることができる。このとき、前記k値の変化に応じて関数の入力値は縮小または除去されることができ、一定以上の入力値は比例する出力値に変換されることもできる。しかし、図18および図19のようなマッピング関数は特定値以上の過度な入力値に対して出力値を適切に制限できないという短所がある。すなわち、図18および図19のマッピング関数は後述する図20のマッピング関数に含まれる低下領域、スケーリング領域および限定領域の機能のうち、限定領域の機能が欠如している。
【0078】
図20のマッピング関数は図18および図19よりは多少複雑な3つの領域に分けられる。第1領域(part 1)は関数の入力値を縮小させてマッピングする低下領域(depression area)である。また、第2領域(part 2)は入力値をほぼ比例する出力値にマッピングするスケーリング領域(scaling area)である。最後に、第3領域は一定値以上の入力に対してその出力値を制限させる限定領域(limitation area)である。
【0079】
図20のマッピング関数は一例として
のようなシグモイド関数が使用されてもよい。ここで、力の方向は陽と陰がいずれも存在するため、前記シグモイド関数は座標の原点を中心に対称する。すなわち、図20のマッピング関数は同一の二つのシグモイド関数の結合で成されている。
【0080】
図20の3つの領域の意味についてより詳細に調べると次のとおりである。最初の領域である低下領域はユーザの力の作用が微細な領域である。この領域では入力力強度(F)と出力力強度(F')を1:1にマッピングさせるのではなく、出力力強度(F')を減らしてマッピングする。これはユーザの手の震えなどのように意図しない力強度を除去する機能を提供する。しかし、小さい力強度までも微細に実現する必要があるアプリケーションでは、低下領域を適切に上昇させてその動きが表現されるようにすることもできる。
【0081】
次の領域であるスケーリング領域は実際のユーザの力強度をディスプレイ装置上での位置情報にほぼ比例的にマッピングさせる領域であり、例えば±128の整数値にマッピングされる。
【0082】
最後の領域である限定領域はユーザの力強度が相対的に大きくても出力力強度(F')がそれほど大きくないように制限するための領域である。図20においてマッピング関数は原点に対して対称である形態を有するため、ユーザの力強度に対して陽と陰の方向に対称的出力を誘導することができる。
【0083】
このように、本発明でのマッピング関数は例示的に図18および図19に示す関数と、図20に示す関数を例示的に含むがこれに限定されない。例えば、本発明のマッピング関数は、関数の入力値を縮小または除去して出力する低下領域と、関数の入力値をほぼ比例する出力値にマッピングするスケーリング領域と、一定値以上の入力値に対してその出力値を制限する限定領域のうち少なくとも2つの領域を含んで成されるようにすることもできる。このような観点で、図18および図19の関数は低下領域とスケーリング領域で成されていると見ることができ、図20の関数は低下領域、スケーリング領域および限定領域をすべて含んで成されていると見ることができる。
【0084】
図21は、図13のおようにユーザが入力デバイス100に力(または加速度)を加える条件で、図20のようなマッピング関数の適用による出力力強度(F')を示す図である。このうち第1領域(part 1)はユーザが入力デバイス100をただ持っている状態であり、第2領域(part 2)は適切な力を加える状態であり、第3領域(part 3)は強い力を加える状態である。図21を参照すると第1領域では低下機能(depression function)を、第2領域ではスケーリング機能(scaling function)を第3領域では限定機能(limitation function)を提供することを確認することができる。
【0085】
図22、図23および図24は、前記3種類領域を各々拡大して示す図である。先に、図22は、低下領域での入力力強度(F)と出力力強度(F')の関係を示している。低下領域はユーザが入力デバイス100をただ持っている場合であるが、実際に図22に示すように陽陰の方向に不規則な波形を示す。しかし、図20の第1領域(part 1)のようなマッピング関数によってこのような不規則な波形は一定範囲を越えないようにカットオフ(cut−off)される。
【0086】
図23は、スケーリング領域での入力力強度(F)と出力力強度(F')の関係を示している。スケーリング領域はユーザが入力デバイス100に一定範囲以内の適切な力を加えた場合である。したがって、入力力強度(F)と出力力強度(F')はほぼ比例する形態を示している。図23は、スケーリング因子を1と設定した場合を例えているが、適用されるアプリケーションによってスケーリング因子はいくらでも他の値と設定され得ることはもちろんである。
【0087】
図24は、限定領域での入力力強度(F)と出力力強度(F')の関係を示している。限定領域はユーザが入力デバイス100に強い力を加えた場合である。一定数値を越える入力力強度(F)は図20の第3領域(part 3)のようなマッピング関数によって出力される力強度(F')が最大限界(図22の例では±128)を外れないように限定する。
【0088】
力強度は以上で説明したマッピング関数によって±128範囲あるいは±256範囲内の整数のように定規化されたデジタル値に変換され得る(もちろん浮動小数点(float)タイプのデジタル値に変換されることもできる)。マッピング関数によりアナログ値をこのようなデジタル値に変換すると、ノイズ低減効果が得られる。また一般的に加速度計を使用して計算された値はほぼ浮動小数点タイプのデータである。
【0089】
例えば、IEEE754定義によれば、単精度浮動小数点(single precision float)は4バイト、倍精度浮動小数点(double precision float)は8バイトが使用される。このような浮動小数点タイプのデータをデジタル化して整数形態のデータ(通常1〜2バイト)に変換するとデータ容量が減少され得、したがって通信上で伝送しなければならないデータの容量もまた減少され得る。
【0090】
例えば、浮動小数点値をそのまま使用する場合、それぞれの軸による浮動小数点タイプのデータは4バイトを必要とし、三つの軸の値をすべて伝送すると、総12バイトの容量が必要である。しかし、力強度を±1024にマッピングする場合には、それぞれの軸に対して符号を含み、11ビットが必要であり、三つの軸すべてに対しては総33ビットが必要である。これは約4バイトのサイズであってアナログ値をそのまま使用する場合より1/3に減った結果である。
【0091】
一方、力強度に対するマッピング関数の限定(limitation)範囲を調節することによってデジタル値の解像度を調節することができる。例えば、加速度計出力を利用して計算された入力力強度(F)を0g〜1gの範囲に限定し、±1024でデジタル化するマッピング関数を使用すれば約1mg (1g/1024≒1mg)の解像度が提供される。もし、入力力強度(F)を0g〜2gの範囲に限定し、これを±1024でデジタル化するマッピング関数を使用すれば、約2mgの解像度が提供されることである。このように、力強度に対するデジタル化された情報を提供するマッピング関数は設計者の意図に応じて必要な解像度の調節を可能にするだけでなく、少ないノイズと共に軽いデータ通信も可能にする。
【0092】
以上では強度計算部170および強度マッピング部180が計算してマッピングする対象が力強度である第1実施形態について説明した。しかし、本発明の第2実施形態によれば、強度計算部170および強度マッピング部170は回転強度を計算しマッピングすることもできる。
【0093】
回転強度(rotation intensity)は入力デバイス100が表現できる多様な回転成分を意味する。力強度と同様に、3次元空間で姿勢角が推定されれば角速度センサ110の出力から、装置の姿勢から独立的な座標系における回転成分、例えば、航法フレームにおける回転強度(RN)が計算され得る。角速度センサ110またはフィルタ部130の出力は筐体フレームにおける回転角速度(ωx、ωy、ωz)である。強度計算部170はこのような回転角速度を時間に対して積分し、筐体フレームにおける回転角ベクター(RB)、すなわち筐体フレームにおける回転強度(RBx、RBy、RBz)を求めることができる。
【0094】
筐体フレームにおける回転強度ベクター(RB)を航法フレームにおける回転強度ベクター(RN)に変換する変換式の例は次の式10のとおりである。ここで、回転強度ベクター(RN)は回転強度(RNx、RNy、RNz)で構成されて、変換マトリックス(TBN)は姿勢角測定部160から得られた姿勢角、すなわちφ、θ、ψの組合せで構成される。
【0095】
[式10]
【0096】
本発明の第2実施形態において、強度計算部170はこのような方法でデバイスの姿勢から独立的な航法フレームで回転強度を計算することができる。
【0097】
強度マッピング部180は強度計算部170から求めた回転強度(RN)をマッピング関数によって実際出力される回転強度(RN')にマッピングする。このようなマッピング過程は第1実施形態と同様の方式で行われることができるため反復された説明は省略する。
【0098】
最後に図2を参照すると、伝送部195はアプリケーションの種類によって強度マッピング部180から出力される力強度および/または回転強度をディスプレイ装置に無線で伝送する。もちろん、ディスプレイ装置が入力デバイス100と一体で実現された場合にはメインプロセッサに前記データを伝達すれば良い。前記無線伝送はブルートゥース、赤外線通信、IEEE 802.11無線ラン標準、IEEE 802.15.3無線ラン標準その他の無線通信規約に従い行われ得る。
【0099】
今まで図2の各ブロックはメモリ上の所定領域で行われるタスク、クラス、サブルーチン、プロセス、オブジェクト、実行スレッド、プログラムのようなソフトウェア(software)や、FPGA(field−programmable gate array)やASIC(application−specific integrated circuit)のようなハードウェア(hardware)で実現することができ、また前記ソフトウェアおよびハードウェアの組合せで構成されてもよい。また、各ブロックは特定の論理的機能を行うための一つ以上の実行可能なインストラクションを含むモジュール、セグメントまたはコードの一部を示すことができる。また、いくつの代替実行例では、ブロックで言及された機能が順序を外れて発生することも可能である。例えば、連続して図示されている2つのブロックは、実質的に同時に行われてもよく、またはそのブロックが時々該当する機能によって逆順に行われてもよい。
【0100】
以上のような、本発明の一実施形態によるユーザ命令入力デバイス100は次のようないくつかの実質的な利点を提供することができる。
【0101】
1.簡潔なシステム
本発明による入力デバイス100は式7のような加重平均の概念と、動き推定関数、マッピング関数などを使用することができる。したがって、モデル基盤のフィルタリング、例えば、線形フィルタリング(linear filtering)、カルマンフィルタリング(Kalman filtering)、カルマンスムージング(Kalman smoothing)、拡張カルマンフィルタリング(extended Kalman filtering)、状態−空間推定(state−space estimation)、期待値最大化(Expectation−Maximization)などに必要なデータのサンプリングのため複雑な演算とそれにともなう初期化に所要される時間は必要としない。
【0102】
それ共に動き推定関数およびマッピング関数はFFT(Fast Fourier Transform)のように多くのリソースを占めるマトリックス演算とは異なって入力と出力が1:1に対応する単純化された関数の形態である。したがって、このような単純化された関数を利用することにより演算時間とリソースが顕著に減る。
【0103】
2.航法フレームの姿勢角(attitude angle in navigation frame)
入力デバイス100は筐体フレームの回転および加速度を測定して航法フレームの姿勢情報を求める。このように求めた航法フレームの姿勢情報により位置情報(例:ポインタの動き)を制御するため、筐体フレームの傾きに関係なく前記位置情報が実現され得る。またこのような航法フレームにおけるロール、ピッチ、ヨー情報(姿勢角情報)を利用して前述したようにユーザパターンに合わせた動きの実現、直観的な動きの実現、ディスプレイ装置の状態制御などの多様な応用が可能である。そして製品デザインにおいても筐体フレームの回転方向に対する制限がないため、ユーザ命令入力デバイス100の外観に関する多様なデザインが可能になる。
【0104】
3.動き検出(Movement measure)
既存技術では単純停止のみを判断することに比べ、ユーザ命令入力デバイス100では動き測定関数により停止、微細動き、遅い動き、速い動きなどの多様な動き検出が可能であり、このような多様な形態の動き検出により、さらに改善された動きを実現することができる基礎を提供する。また、動き検出に使用する動き推定関数は入力と出力が1:1に対応して多くのリソースを占めない。
【0105】
4.マッピング(Mapping )
低下領域、スケーリング領域および限定領域で構成されたマッピング関数はユーザにより細密で直観的な動きを提供する。低下領域を介して手の震えのような動きが除去され、スケーリング領域を介して微細な動きを実現することができ、限定領域を介して過度な動きの制限が可能になる。このようなマッピング機能は必要に応じて所望する領域の値のみを有することも可能である。
【0106】
またマッピング関数は浮動小数点(float)値を正規化されたデジタル値に変換させることもできるが、このようなデジタル化により、ノイズの減少、通信上の伝送データ容量の減少などのデジタル信号が有する長所を提供することができる。また、このとき使用されるマッピング関数はモデル基盤のフィルタリングのように別途の初期化時間とデータのサンプリングを必要とせず、入力と出力が1:1に対応する単純化された関数である。
【0107】
5.加重平均を利用した安定かつ正確な動きの実現(Stable and correct movement using weighted average)
ユーザ命令入力デバイス100では、角速度計出力と加速度計出力で実現した各情報に基づいて加重平均を求めるため、より安定かつ正確な動きの実現が可能である。角速度計のみを利用する場合、角速度を積分して角度を実現する過程でバイアス変化による累積誤差が発生し、これは結局角度の発散を起こすが、このような問題を解決するための多様な従来の技術が知られている。このような従来の技術としては、カルマンフィルタによりバイアスを推定する方法、周波数分析によりデジタルフィルタを使用する方法、与えられた時間および臨界値などを分析してバイアスを推定する方法などがある。しかし、このような従来の技術はいずれもシステムのリソースを過度に消耗し、多くの演算量を必要とする短所がある。
【0108】
これに比べ、ユーザ命令入力デバイス100の場合、角速度計と共に加速度計を利用して加重平均の概念を適用するので加速度計によって角度の発散を簡単に制限することができる。これによって、角速度計のバイアス推定時に使用するモデルまたはフィルタを単純に構成することができ、姿勢角測定の正確性を向上させることができる。このように求めた姿勢角によりさらに安定かつ正確な動きが実現することができる。
【0109】
また、ユーザ命令入力デバイス100では、動き推定関数によって動きが検出されると、検出された動きに応じてそれぞれの加重値(式7のα1,α2,α3)を変更することによってユーザが意図する多様な動きを表現することができる。すなわち、状況に適合した動きの実現が可能になるという意味である。
【0110】
6.システムの初期化時間の短縮(Reducing system initial time)
ユーザ命令入力デバイス100の単純化されたシステムによれば、デバイスの初期化時間を短縮させることができる。その代表的な例として、前述した加重平均の概念を挙げることができる。角速度計のみで角度を実現する場合、累積誤差を最小化するため、カルマンフィルタリングのような別途のフィルタリング技法が要求される。前記カルマンフィルタリングの場合、初期バイアス推定、あるいはバイアスセットのための初期化ステップが必須に要求される。
【0111】
これに対し、ユーザ命令入力デバイス100は角速度計と共に加速度計出力を持って加重平均を利用して各情報を実現することによって、このような初期化ステップなしで正確な角度を求めることができる。すなわち、システムの単純化を追求しながらも、姿勢角測定の正確度を向上させることができる。
【0112】
また、マッピング関数もモデル基盤のフィルタリングと異なって1:1対応を主とするため、このような初期化時間の短縮に一定部分を寄与する。
【0113】
7.システムの消費電力の減少(Reducing power consumption)
ユーザ命令入力デバイス100の単純化されたシステムによれば、初期化時間を短縮および演算量減少に基づいて消費電力の減少を追求することができる。システムの初期化時間が短縮されることによって大きくは動作モード、低電力モード(power down mode)、パワーオフモード(power off mode)などの単純化された作動モードを有することができる。
【0114】
従来の技術では動作モードに入るためにシステムを安定化させるにスタンバイモード(standby−mode)のような臨時ステップが必要であった。しかし、ユーザ命令入力デバイス100ではスタンバイモードのような臨時ステップを必要としないため、デバイスが使用されないときには選択的に特定構成要素に提供される電源をオフ(off)させることができる。したがって、デバイス電源のオン−オフが容易になると消費電力をさらに減少させることができるのである。
【0115】
8.力強度(Force intensity)の提供
入力デバイス100は姿勢角と共に加速度と関連する情報として力強度を提供する。加速度と関連する情報として加速度計の出力値をそのまま使用する場合、重力成分が含まれることによって動くのによる正確な情報の実現が難しい。また加速度計出力に対する単なるスケーリングを使用するとノイズの増加をもたらす。
【0116】
本発明の入力デバイス100において、強度計算部170は姿勢角測定部160から提供された姿勢角と、加速度センサ120の出力値に基づいて航法フレームまたはヨードリフトフレーム上での力強度を計算することができる。また、強度マッピング部180は強度計算部170で計算された力強度をマッピングされた情報に変換する。このようなマッピングによって入力デバイス100のユーザは直観的でかつ自然な力感覚を感じることができる。
【0117】
また、入力デバイス100は姿勢角測定部160から求めた姿勢角情報を利用して重力成分を除去しない力強度、または重力成分を除去した力強度を求めることもできる。
【0118】
9.回転強度(Rotation intensity)の提供
入力デバイス100は以上の姿勢角、力強度とともに回転強度という情報も提供することができる。力強度が線形の動きに対する情報を意味するとしたら、回転強度は回転の動きに対する情報を意味する。
【0119】
本発明の入力デバイス100において、強度計算部170は姿勢角測定部160から提供された姿勢角と、角速度センサ110の出力値に基づいて航法フレーム上での回転強度を計算することができる。また、強度マッピング部180は強度計算部170で計算された回転強度をマッピングされた情報に変換する。このようなマッピングによって、入力デバイス100のユーザは直観的でかつ自然な回転感覚を感じることができる。
【0120】
実際の人の動きは線形の動きと回転の動きが複合的に成されるが、前記力強度と回転強度を複合的に応用するとより改善されかつ多様な動きの表現が可能になる。したがって、入力デバイス100はゲーム入力装置のような他のアプリケーションで多様に応用することができる。
【0121】
以上添付された図面を参照して本発明の実施形態について説明したが、本発明が属する技術分野における通常の知識を有する者は、本発明が、その技術的思想や必須の特徴を変更しない範囲で他の具体的な形態で実施され得ることを理解することができる。したがって、上記実施形態はすべての面で例示的なものであり、限定的でないものと理解しなければならない。
【符号の説明】
【0122】
100 入力デバイス
110 角速度センサ
120 加速度センサ
130 フィルタ部
140 第1演算部
150 第2演算部
160 姿勢角測定部
170 強度計算部
180 強度マッピング部
190 処理ユニット
195 伝送部
【特許請求の範囲】
【請求項1】
3次元空間上で動作してユーザ命令を入力するための入力デバイスであって、
第1センサの出力値から、前記デバイスの姿勢に対して独立的な座標系における第1回転角を演算する第1演算部と、
第2センサの出力値から、前記独立的な座標系における第2回転角を演算する第2演算部と、
前記第1回転角と前記第2回転角を組合せて前記入力デバイスの姿勢角を求める姿勢角測定部、および
前記入力デバイスの加速度と、前記姿勢角測定部から求めた入力デバイスの姿勢角を利用して前記独立的な座標系における力強度を計算する強度計算部を含む入力デバイス。
【請求項2】
マッピング関数によって前記計算された力強度を最終的に出力される力強度にマッピングする強度マッピング部をさらに含む請求項1に記載の入力デバイス。
【請求項3】
前記マッピング関数は、
関数の入力値を縮小または除去して出力する低下領域と、関数の入力値をほぼ比例する出力値にマッピングするスケーリング領域と、一定値以上の入力値に対してその出力値を制限する限定領域のうち少なくとも2つ以上の領域を含む請求項2に記載の入力デバイス。
【請求項4】
前記強度計算部は、
前記加速度から筐体フレームにおける力強度を計算し、前記計算された力強度を前記独立的な座標系における力強度に変換する請求項1に記載の入力デバイス。
【請求項5】
前記独立的な座標系は航法フレーム(navigation frame)またはヨードリフトフレーム(yaw drift frame)である請求項4に記載の入力デバイス。
【請求項6】
前記演算された第1回転角と前記第2回転角は、
加重平均によって組合せわせられる請求項1に記載の入力デバイス。
【請求項7】
前記加重平均に使用される加重値は、
所定の動き推定関数によって推定されるが、前記動き推定関数は前記デバイスの動きがない場合には前記姿勢角に第2回転角のみが反映されるように前記加重値を設定し、前記デバイスの動きが最大である場合には前記姿勢角に第1回転角のみが反映されるように前記加重値を設定し、前記デバイスの動きがその間の場合には停止と最大動きの間の値で前記加重値を設定する請求項6に記載の入力デバイス。
【請求項8】
前記第1回転角は、
前記第1センサの出力値および前記第1回転角を変数とする微分方程式から演算される請求項1に記載の入力デバイス。
【請求項9】
前記第2回転角のうちヨー(yaw)は、前記第2回転角のうちロール(roll)およびピッチ(pitch)の組合せから演算される請求項1に記載の入力デバイス。
【請求項10】
3次元空間上で動作してユーザ命令を入力するための入力デバイスであって、
少なくとも一つの方向に対する前記入力デバイスの加速度を感知するセンサと、
前記感知された加速度から筐体フレームにおける力強度を計算する強度計算部、および
マッピング関数によって前記計算された力強度を最終的に出力される力強度にマッピングする強度マッピング部を含む入力デバイス。
【請求項11】
前記マッピング関数は、
関数の入力値を縮小または除去して出力する低下領域と、関数の入力値をほぼ比例する出力値にマッピングするスケーリング領域と、一定値以上の入力値に対してその出力値を制限する限定領域のうち少なくとも2つ以上の領域を含む請求項10に記載の入力デバイス。
【請求項12】
3次元空間上で動作してユーザ命令を入力するための入力デバイスであって、
第1センサの出力値から、前記デバイスの姿勢に対して独立的な座標系における第1回転角を演算する第1演算部と、
第2センサの出力値から、前記独立的な座標系における第2回転角を演算する第2演算部と、
前記第1回転角と前記第2回転角を組合せて前記入力デバイスの姿勢角を求める姿勢角測定部、および
前記入力デバイスの角速度と、前記姿勢角測定部から求めた入力デバイスの姿勢角を利用して前記独立的な座標系における回転強度を計算する強度計算部を含む入力デバイス。
【請求項13】
マッピング関数によって前記計算された回転強度を最終的に出力される回転強度にマッピングする強度マッピング部をさらに含む請求項12に記載の入力デバイス。
【請求項14】
前記マッピング関数は、
関数の入力値を縮小または除去して出力する低下領域と、関数の入力値をほぼ比例する出力値にマッピングするスケーリング領域と、一定値以上の入力値に対してその出力値を制限する限定領域のうち少なくとも2つ以上の領域を含む請求項13に記載の入力デバイス。
【請求項15】
前記強度計算部は、
前記加速度から筐体フレームにおける回転強度を計算し、前記計算された回転強度を前記独立的な座標系における回転強度に変換する請求項12に記載の入力デバイス。
【請求項16】
前記独立的な座標系は、航法フレーム(navigation frame)またはヨードリフトフレーム(yaw drift frame)である請求項15に記載の入力デバイス。
【請求項17】
3次元空間上で動作してユーザ命令を入力するための入力デバイスであって、
少なくとも一つの方向に対する前記入力デバイスの角速度を感知するセンサと、
前記感知された角速度から筐体フレームにおける回転強度を計算する強度計算部、および
マッピング関数によって前記計算された回転強度を最終的に出力される回転強度にマッピングする強度マッピング部を含む入力デバイス。
【請求項18】
前記マッピング関数は、
関数の入力値を縮小または除去して出力する低下領域と、関数の入力値をほぼ比例する出力値にマッピングするスケーリング領域と、一定値以上の入力値に対してその出力値を制限する限定領域のうち少なくとも2つ以上の領域を含む請求項17に記載の入力デバイス。
【請求項19】
3次元空間上で動作する入力デバイスを利用してユーザ命令を入力する方法であって、
第1センサの出力値から、前記デバイスの姿勢に対して独立的な座標系における第1回転角を演算するステップと、
第2センサの出力値から、前記独立的な座標系における第2回転角を演算するステップと、
前記第1回転角と前記第2回転角を組合せて前記入力デバイスの姿勢角を求めるステップ、および
前記入力デバイスの加速度と、前記姿勢角測定部から求めた入力デバイスの姿勢角を利用して前記独立的な座標系における力強度を計算するステップを含む方法。
【請求項20】
3次元空間上で動作する入力デバイスを利用して、ユーザ命令を入力する方法であって、
第1センサの出力値から、前記デバイスの姿勢に対して独立的な座標系における第1回転角を演算するステップと、
第2センサの出力値から、前記独立的な座標系における第2回転角を演算するステップと、
前記第1回転角と前記第2回転角を組合せて前記入力デバイスの姿勢角を求めるステップ、および
前記デバイスの角速度と前記入力デバイスの姿勢角を利用して前記独立的な座標系における回転強度を計算するステップを含む方法。
【請求項1】
3次元空間上で動作してユーザ命令を入力するための入力デバイスであって、
第1センサの出力値から、前記デバイスの姿勢に対して独立的な座標系における第1回転角を演算する第1演算部と、
第2センサの出力値から、前記独立的な座標系における第2回転角を演算する第2演算部と、
前記第1回転角と前記第2回転角を組合せて前記入力デバイスの姿勢角を求める姿勢角測定部、および
前記入力デバイスの加速度と、前記姿勢角測定部から求めた入力デバイスの姿勢角を利用して前記独立的な座標系における力強度を計算する強度計算部を含む入力デバイス。
【請求項2】
マッピング関数によって前記計算された力強度を最終的に出力される力強度にマッピングする強度マッピング部をさらに含む請求項1に記載の入力デバイス。
【請求項3】
前記マッピング関数は、
関数の入力値を縮小または除去して出力する低下領域と、関数の入力値をほぼ比例する出力値にマッピングするスケーリング領域と、一定値以上の入力値に対してその出力値を制限する限定領域のうち少なくとも2つ以上の領域を含む請求項2に記載の入力デバイス。
【請求項4】
前記強度計算部は、
前記加速度から筐体フレームにおける力強度を計算し、前記計算された力強度を前記独立的な座標系における力強度に変換する請求項1に記載の入力デバイス。
【請求項5】
前記独立的な座標系は航法フレーム(navigation frame)またはヨードリフトフレーム(yaw drift frame)である請求項4に記載の入力デバイス。
【請求項6】
前記演算された第1回転角と前記第2回転角は、
加重平均によって組合せわせられる請求項1に記載の入力デバイス。
【請求項7】
前記加重平均に使用される加重値は、
所定の動き推定関数によって推定されるが、前記動き推定関数は前記デバイスの動きがない場合には前記姿勢角に第2回転角のみが反映されるように前記加重値を設定し、前記デバイスの動きが最大である場合には前記姿勢角に第1回転角のみが反映されるように前記加重値を設定し、前記デバイスの動きがその間の場合には停止と最大動きの間の値で前記加重値を設定する請求項6に記載の入力デバイス。
【請求項8】
前記第1回転角は、
前記第1センサの出力値および前記第1回転角を変数とする微分方程式から演算される請求項1に記載の入力デバイス。
【請求項9】
前記第2回転角のうちヨー(yaw)は、前記第2回転角のうちロール(roll)およびピッチ(pitch)の組合せから演算される請求項1に記載の入力デバイス。
【請求項10】
3次元空間上で動作してユーザ命令を入力するための入力デバイスであって、
少なくとも一つの方向に対する前記入力デバイスの加速度を感知するセンサと、
前記感知された加速度から筐体フレームにおける力強度を計算する強度計算部、および
マッピング関数によって前記計算された力強度を最終的に出力される力強度にマッピングする強度マッピング部を含む入力デバイス。
【請求項11】
前記マッピング関数は、
関数の入力値を縮小または除去して出力する低下領域と、関数の入力値をほぼ比例する出力値にマッピングするスケーリング領域と、一定値以上の入力値に対してその出力値を制限する限定領域のうち少なくとも2つ以上の領域を含む請求項10に記載の入力デバイス。
【請求項12】
3次元空間上で動作してユーザ命令を入力するための入力デバイスであって、
第1センサの出力値から、前記デバイスの姿勢に対して独立的な座標系における第1回転角を演算する第1演算部と、
第2センサの出力値から、前記独立的な座標系における第2回転角を演算する第2演算部と、
前記第1回転角と前記第2回転角を組合せて前記入力デバイスの姿勢角を求める姿勢角測定部、および
前記入力デバイスの角速度と、前記姿勢角測定部から求めた入力デバイスの姿勢角を利用して前記独立的な座標系における回転強度を計算する強度計算部を含む入力デバイス。
【請求項13】
マッピング関数によって前記計算された回転強度を最終的に出力される回転強度にマッピングする強度マッピング部をさらに含む請求項12に記載の入力デバイス。
【請求項14】
前記マッピング関数は、
関数の入力値を縮小または除去して出力する低下領域と、関数の入力値をほぼ比例する出力値にマッピングするスケーリング領域と、一定値以上の入力値に対してその出力値を制限する限定領域のうち少なくとも2つ以上の領域を含む請求項13に記載の入力デバイス。
【請求項15】
前記強度計算部は、
前記加速度から筐体フレームにおける回転強度を計算し、前記計算された回転強度を前記独立的な座標系における回転強度に変換する請求項12に記載の入力デバイス。
【請求項16】
前記独立的な座標系は、航法フレーム(navigation frame)またはヨードリフトフレーム(yaw drift frame)である請求項15に記載の入力デバイス。
【請求項17】
3次元空間上で動作してユーザ命令を入力するための入力デバイスであって、
少なくとも一つの方向に対する前記入力デバイスの角速度を感知するセンサと、
前記感知された角速度から筐体フレームにおける回転強度を計算する強度計算部、および
マッピング関数によって前記計算された回転強度を最終的に出力される回転強度にマッピングする強度マッピング部を含む入力デバイス。
【請求項18】
前記マッピング関数は、
関数の入力値を縮小または除去して出力する低下領域と、関数の入力値をほぼ比例する出力値にマッピングするスケーリング領域と、一定値以上の入力値に対してその出力値を制限する限定領域のうち少なくとも2つ以上の領域を含む請求項17に記載の入力デバイス。
【請求項19】
3次元空間上で動作する入力デバイスを利用してユーザ命令を入力する方法であって、
第1センサの出力値から、前記デバイスの姿勢に対して独立的な座標系における第1回転角を演算するステップと、
第2センサの出力値から、前記独立的な座標系における第2回転角を演算するステップと、
前記第1回転角と前記第2回転角を組合せて前記入力デバイスの姿勢角を求めるステップ、および
前記入力デバイスの加速度と、前記姿勢角測定部から求めた入力デバイスの姿勢角を利用して前記独立的な座標系における力強度を計算するステップを含む方法。
【請求項20】
3次元空間上で動作する入力デバイスを利用して、ユーザ命令を入力する方法であって、
第1センサの出力値から、前記デバイスの姿勢に対して独立的な座標系における第1回転角を演算するステップと、
第2センサの出力値から、前記独立的な座標系における第2回転角を演算するステップと、
前記第1回転角と前記第2回転角を組合せて前記入力デバイスの姿勢角を求めるステップ、および
前記デバイスの角速度と前記入力デバイスの姿勢角を利用して前記独立的な座標系における回転強度を計算するステップを含む方法。
【図1】
【図2】
【図3(a)】
【図3(b)】
【図3(c)】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図2】
【図3(a)】
【図3(b)】
【図3(c)】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【公表番号】特表2012−508417(P2012−508417A)
【公表日】平成24年4月5日(2012.4.5)
【国際特許分類】
【出願番号】特願2011−535521(P2011−535521)
【出願日】平成21年11月10日(2009.11.10)
【国際出願番号】PCT/KR2009/006572
【国際公開番号】WO2010/056024
【国際公開日】平成22年5月20日(2010.5.20)
【出願人】(511007266)マイクロインフィニティー、インコーポレイテッド (3)
【Fターム(参考)】
【公表日】平成24年4月5日(2012.4.5)
【国際特許分類】
【出願日】平成21年11月10日(2009.11.10)
【国際出願番号】PCT/KR2009/006572
【国際公開番号】WO2010/056024
【国際公開日】平成22年5月20日(2010.5.20)
【出願人】(511007266)マイクロインフィニティー、インコーポレイテッド (3)
【Fターム(参考)】
[ Back to top ]