(57)【特許請求の範囲】
【請求項１】
ハンドヘルドデバイスであって、
第１の軸に関する前記ハンドヘルドデバイスの回転を判定すると共に、該回転に関連する第１の出力を生成すると共に、第２の軸に関する前記ハンドヘルドデバイスの回転を判定すると共に、該回転に関連する第２の出力を生成するための少なくとも１つのセンサと、
前記ハンドヘルドデバイスの加速度を判定すると共に、該加速度に関連する加速度出力を出力するための加速度計と、
前記第１及び前記第２の出力、そして前記加速度出力を受信すると共に、
（ａ）前記加速度出力に基づいて、絶対基準と比較した前記ハンドヘルドデバイスの向きを判定し、
（ｂ）前記判定された向きを使用して前記第１及び前記第２の出力の少なくとも１つを処理し、
（ｃ）前記ハンドヘルドデバイスに関する意図しない動きを判定し、
（ｄ）前記意図しない動きを補償するように、前記第１及び前記第２の出力の少なくとも１つを処理する
ための処理ユニットと
を備え、
前記処理ユニットは、前記ハンドヘルドデバイスに関する動きの周波数特性と予め設定された人間の微動周波数の範囲とを利用して前記意図しない動きの判定をするように、さらに構成されている、ハンドヘルドデバイス。
【請求項２】
前記絶対基準は、重力である、請求項１に記載のハンドヘルドデバイス。
【請求項３】
前記意図しない動きは、手の微動である、請求項１に記載のハンドヘルドデバイス。
【請求項４】
前記意図しない動きは、前記ハンドヘルドデバイスに配置されたボタンを押す動作に関連している、請求項１に記載のハンドヘルドデバイス。
【請求項５】
前記処理ユニットは、前記判定された向きの影響を除去するために前記ハンドヘルドデバイスに関連するボディ座標系からユーザの座標系に前記第１及び前記第２の出力を変換するように、さらに構成されている、請求項１に記載のハンドヘルドデバイス。
【請求項６】
前記ユーザの座標系は、テレビスクリーンに関連する、請求項５に記載のハンドヘルドデバイス。
【請求項７】
前記変換する構成は、
【数１】
0006026483.tif 000005
を計算することにより、前記ユーザの座標系に入るように前記第１及び前記第２の出力を回転させる構成をさらに具備し、
ここで、θが、前記判定された向きであり、αyが、前記第１の出力であり、αzが、前記第２の出力である、請求項５に記載のハンドヘルドデバイス。
【請求項８】
前記判定された向きは、前記ハンドヘルドデバイスの傾きである、請求項１に記載のハンドヘルドデバイス。
【請求項９】
第１の軸に関するハンドヘルドデバイスの回転を判定すると共に、該回転に関連する第１の出力を生成すると共に、第２の軸に関する前記ハンドヘルドデバイスの回転を判定すると共に、該回転に関連する第２の出力を生成するステップと、
前記ハンドヘルドデバイスの加速度を判定すると共に、該加速度に関連する加速度出力を出力するステップと、
処理ユニットによって、前記第１及び前記第２の出力、そして前記加速度出力を受信すると共に、
（ａ）前記加速度出力に基づいて、絶対基準と比較した前記ハンドヘルドデバイスの向きを判定し、
（ｂ）前記判定された向きを使用して前記第１及び前記第２の出力の少なくとも１つを処理し、
（ｃ）前記ハンドヘルドデバイスに関する意図しない動きを判定し、
（ｄ）前記意図しない動きを補償するように、前記第１及び前記第２の出力の少なくとも１つを処理する、ステップと
を含み、
前記意図しない動きを判定するステップは、前記ハンドヘルドデバイスに関する動きの周波数特性と予め設定された人間の微動周波数の範囲とを使用して前記意図しない動きの判定をするステップを、さらに含む、方法。
【請求項１０】
前記絶対基準は、重力である、請求項９に記載の方法。
【請求項１１】
前記意図しない動きは、手の微動である、請求項９に記載の方法。
【請求項１２】
前記意図しない動きは、前記ハンドヘルドデバイスに配置されたボタンを押す動作に関連している、請求項９に記載の方法。
【請求項１３】
前記判定された向きの影響を除去するために前記ハンドヘルドデバイスに関連するボディ座標系からユーザの座標系に前記第１及び前記第２の出力を変換するステップ、をさらに含む、請求項９に記載の方法。
【請求項１４】
前記ユーザの座標系は、テレビスクリーンに関連する、請求項１３に記載の方法。
【請求項１５】
前記変換するステップは、
【数２】
0006026483.tif 000006
を計算することにより、前記ユーザの座標系に入るように前記第１及び前記第２の出力を回転させるステップをさらに有し、
ここで、θが、前記判定された向きであり、αyが、前記第１の出力であり、αzが、前記第２の出力である、請求項１３に記載の方法。
【請求項１６】
前記判定された向きは、前記ハンドヘルドデバイスの傾きである、請求項９に記載の方法。
【請求項１７】
プログラム命令を保存している不揮発性コンピュータ読み取り可能記憶媒体であって、前記プログラム命令は、プロセッサによって実行されるとき、
第１の軸に関するハンドヘルドデバイスの回転を判定すると共に、該回転に関連する第１の出力を生成すると共に、第２の軸に関する前記ハンドヘルドデバイスの回転を判定すると共に、該回転に関連する第２の出力を生成するステップと、
前記ハンドヘルドデバイスの加速度を判定すると共に、該加速度に関連する加速度出力を出力するステップと、
処理ユニットによって、前記第１及び前記第２の出力、そして前記加速度出力を受信すると共に、
（ａ）前記加速度出力に基づいて、絶対基準と比較した前記ハンドヘルドデバイスの向きを判定し、
（ｂ）前記判定された向きを使用して前記第１及び前記第２の出力の少なくとも１つを処理し、
（ｃ）前記ハンドヘルドデバイスに関する意図しない動きを判定し、
（ｄ）前記意図しない動きを補償するように、前記第１及び前記第２の出力の少なくとも１つを処理する、ステップと
を含み、
前記意図しない動きを判定するステップは、前記ハンドヘルドデバイスに関する動きの周波数特性と予め設定された人間の微動周波数の範囲とを使用して前記意図しない動きの判定をするステップを、さらに含む、方法を実行させる、不揮発性コンピュータ読み取り可能記憶媒体。
【請求項１８】
前記絶対基準は、重力である、請求項１７に記載の不揮発性コンピュータ読み取り可能記憶媒体。
【請求項１９】
前記意図しない動きは、手の微動である、請求項１７に記載の不揮発性コンピュータ読み取り可能記憶媒体。
【請求項２０】
前記意図しない動きは、前記ハンドヘルドデバイスに配置されたボタンを押す動作に関連している、請求項１７に記載の不揮発性コンピュータ読み取り可能記憶媒体。
【請求項２１】
前記方法は、前記判定された向きの影響を除去するために前記ハンドヘルドデバイスに関連するボディ座標系からユーザの座標系に前記第１及び前記第２の出力を変換するステップ、さらに含む、請求項１７に記載の不揮発性コンピュータ読み取り可能記憶媒体。
【請求項２２】
前記ユーザの座標系は、テレビスクリーンに関連する、請求項２１に記載の不揮発性コンピュータ読み取り可能記憶媒体。
【請求項２３】
前記変換するステップは、
【数３】
0006026483.tif 000007
を計算することにより、前記ユーザの座標系に入るように前記第１及び前記第２の出力を回転させるステップをさらに有し、
ここで、θが、前記判定された向きであり、αyが、前記第１の出力であり、αzが、前記第２の出力である、請求項２１に記載の不揮発性コンピュータ読み取り可能記憶媒体。
【請求項２４】
前記判定された向きは、前記ハンドヘルドデバイスの傾きである、請求項１７に記載の不揮発性コンピュータ読み取り可能記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願
本出願は、参照により開示が本明細書に組み込まれている、「Freespace Pointing Device」という名称の2004年4月30日に出願した米国特許仮出願第60/566,444号に関連し、第60/566,444号の優先権を主張する。また、本出願は、参照により開示が本明細書に組み込まれている、「Free Space Pointing Devices and Methods」という名称の2004年9月23日に出願した米国特許仮出願第60/612,571号にも関連し、第60/612,571号の優先権も主張する。また、本出願は、参照により開示が本明細書に組み込まれている、「Freespace Pointing Devices and Methods for Using Same」という名称の2005年1月5日に出願した米国特許仮出願第60/641,410号にも関連し、第60/641,410号の優先権も主張する。また、本出願は、すべて同時に出願し、すべて参照により本明細書に組み込まれている、「Methods and Devices for Removing Unintentional Movement in Free Space Pointing Devices」、「Methods and Devices for Identifying Users Based on Tremor」、「Free Space Pointing Devices and Methods」という名称の米国特許出願第11/119,987号、第11/119,688号、および第11/119,663号にも関連する。
【０００２】
本発明は、おおむね、ハンドヘルドポインティングデバイスに関し、より具体的には、３Ｄポインティングデバイス、ならびに３Ｄポインティングデバイスに関連する傾き補償および向上した使いやすさのための技術に関する。
【背景技術】
【０００３】
情報通信に関連する技術は、ここ数十年の間に急速に進化している。テレビ、セルラー電話機、インターネット、およびオプションの通信技術(いくつかだけを挙げると)が一緒になってもたらす利用可能な情報、およびエンターテイメントオプションの洪水に、消費者は見舞われている。テレビを例にとると、この30年間に、ケーブルテレビサービス、衛星テレビサービス、従量料金制の映画およびビデオオンデマンドが導入されている。1960年代のテレビ視聴者は、おそらく4つ、または5つの放送TVチャネルを通常、受信することができたのに対して、今日のTV視聴者は、数百チャネル、数千チャネル、また、場合により、数百万チャネルのショーおよび情報から選択する機会を有する。ホテルなどで現在、主に使用されているビデオオンデマンド技術は、数千の映画タイトルからのホームエンターテイメント選択の可能性を提供する。
【０００４】
エンドユーザにそれほど多くの情報およびコンテンツを提供する技術能力は、機会とともに課題も、システム設計者およびサービスプロバイダにもたらす。1つの課題は、エンドユーザが、より少ない選択肢ではなく、より多くの選択肢を有することを通常、選好する一方で、この選好は、選択プロセスが迅速であるとともに簡単であることの欲求と天秤に掛けられる。残念ながら、エンドユーザがメディアアイテムにアクセスするシステムおよびインタフェースの進展は、迅速でも簡単でもない選択プロセスをもたらしている。テレビ番組の例を再び考慮されたい。テレビの揺籃期には、いずれの番組を観るかを決めることは、選択肢の数が少なかったことに主に起因して、比較的簡単なプロセスであった。人は、例えば、(1)近くのテレビチャネル、(2)それらのチャネルで送信される番組、および(3)日付と時刻の間の対応を示す一連の列と行としてフォーマットされた、印刷された案内を調べた。テレビが、チューナノブを調整することによって所望のチャネルにチューニングが合わせられ、視聴者は、選択された番組を観た。後に、視聴者が、テレビを離れたところからチューニングすることを可能にするリモコンデバイスが導入された。このユーザ‐テレビインタフェースの追加は、視聴者が、いくつかのチャネルで放送されている短いセグメントを敏速に観て、任意の所与の時点でどのような番組が選択可能であるかを素早く知ることができる、「チャネルサーフィン」として知られる現象を生じさせた。
【０００５】
チャネルの数、および視聴可能なコンテンツの量が劇的に増加したことにもかかわらず、テレビに関する一般に利用可能なユーザインタフェース、コントロールデバイスオプション、およびフレームワークは、ここ30年間であまり変化していない。印刷された案内が、依然として、番組情報を伝えるための最も普及した機構である。上向き矢印と下向き矢印を有する複数ボタンリモコンが、依然として、最も普及しているチャネル/コンテンツ選択機構である。利用可能なメディアコンテンツの増加に対する、TVユーザインタフェースを設計し、実施する人々の反応は、既存の選択手続きおよびインタフェースオブジェクトの単純明快な拡張であった。このため、印刷された案内における行の数は、より多くのチャネルに対応するように増やされた。リモコンデバイス上のボタンの数は、例えば、図1に示されるとおり、さらなる機能およびコンテンツの取り扱いをサポートするように増やされた。しかし、このアプローチは、視聴者が、利用可能な情報を点検するのに要求される時間と、選択を実施するのに要求されるアクションの複雑さをともに大幅に増大させた。消費者は、消費者が既に、遅すぎ、複雑すぎると見なしているインタフェースの複雑さを増大させる新たなサービスに抵抗を示すので、既存のインタフェースの面倒な性質は、一部のサービス、例えば、ビデオオンデマンドの商業的実施を阻害してきたといえる。
【０００６】
帯域幅とコンテンツの増加に加えて、ユーザインタフェースがネックとなる問題は、技術の集約によって悪化させられている。消費者は、いくつかの分離されたコンポーネントよりはむしろ、統合されたシステムを購入するオプションを有することに肯定的に反応している。この傾向の例が、3つの以前は独立していたコンポーネントが、今日では、しばしば、統合されたユニットとして販売される、一体型のテレビ/VCR/DVDである。この傾向は、続く可能性が高く、家庭で現在、見られる、すべてではないにしても、ほとんどの通信デバイスが、統合されたユニットとして、例えば、テレビ/VCR/DVD/インターネットアクセス/ラジオ/ステレオユニットとして一緒にひとまとめにされるという最終結果がもたらされる可能性がある。別々のコンポーネントを購入しつづける人々でさえ、それらの別々のコンポーネントのシームレスな制御、および相互動作を所望する可能性が高い。この向上した集約には、ユーザインタフェースがより複雑になる可能性が伴う。例えば、いわゆる「汎用」リモートユニットが、例えば、TVリモートユニットとVCRリモートユニットの機能を組み合わせるように導入された際、それらの汎用リモートユニット上のボタンの数は、TVリモートユニット上、またはVCRリモートユニット上で個々に存在するボタンの数より、通常、多かった。この増えたボタン数および機能により、TVまたはVCRの最も単純な諸態様以外は何であれ、リモート上の厳密に正しいボタンを探し求めることなしに、制御することが非常に困難になる。多くの場合、それらの汎用リモートは、一部のTVに固有である多くのレベルの制御または機能にアクセスする十分なボタンを提供しない。それらのケースでは、元のデバイスリモートユニットが、依然として、必要とされ、集約の複雑さから生じるユーザインタフェース問題に起因して、複数のリモートを扱う元の煩わしさは、そのままである。一部のリモートユニットは、エキスパートコマンドでプログラミングされることが可能な「ソフト」ボタンを追加することにより、この問題に対処している。それらのソフトボタンは、ときとして、それらのボタンのアクションを示す、付随するLCDディスプレイを有する。それらのリモートユニットも、TVから目を離してリモコンに目を向けることなしに使用するのが困難であるという欠点を有する。それらのリモートユニットのさらに別の欠点は、ボタンの数を減らそうとして複数のモードを使用することである。それらの「モード付き」汎用リモートユニットでは、TV、DVDプレーヤ、ケーブルセットトップボックス、VCR、その他のいずれとリモートが通信するかを選択する特別なボタンが存在する。このことは、誤ったデバイスにコマンドを送信すること、リモートが正しいモードになっていることを確かめるためにユーザがリモートを見ることを余儀なくすることを含め、多くの操作性問題を生じさせ、複数のデバイスの統合を簡単にすることを全くもたらさない。それらの汎用リモートデバイスの最も進んだものは、複数のデバイスに対するコマンドシーケンスを、ユーザがリモートにプログラミングするのを可能にすることにより、ある程度の統合をもたらす。これは、あまりにも難しい作業であるため、多くのユーザは、ユーザの汎用リモー���ユニットをプログラミングするのにプロのインストール技術者を雇う。
【０００７】
また、エンドユーザとメディアシステムの間のスクリーンインタフェースを近代化するいくつかの試みも行われてきた。しかし、それらの試みは、いくつか欠点があるなかで、とりわけ、メディアアイテムの大きい集まりと、メディアアイテムの小さい集まりの間で用意にスケーリングを行うことができないという欠点を通常、抱えている。例えば、アイテムのリストに依拠するインタフェースは、メディアアイテムの小さい集まりの場合には、うまく機能するが、メディアアイテムの大きい集まりの場合は、ブラウズするのが面倒である。階層型ナビゲーション(例えば、ツリー構造)に依拠するインタフェースは、メディアアイテムの大きい集まりの場合、リストインタフェースよりも迅速に目を通すことできる可能性があるが、メディアアイテムの小さい集まりに直ちに適用可能ではない。加えて、ユーザは、ツリー構造において3つ以上のレイヤをユーザが通らなければならない選択プロセスには、関心を失う傾向がある。以上のケースのすべてに関して、現在のリモートユニットは、リストまたは階層を移動するのにアップボタンおよびダウンボタンをユーザが繰り返し押し下げることを余儀なくすることにより、以上の選択プロセッサをさらに面倒にしている。ページアップおよびページダウンのような選択スキップコントロールが利用可能な場合、ユーザは、通常、リモートを見て、それらの特別なボタンを見つけるか、またはそれらのボタンが存在していることすら知るのに、訓練されなければならない。したがって、ユーザとメディアシステムの間のコントロールインタフェースおよびスクリーンインタフェースを単純化するとともに、選択プロセスをスピードアップする一方で、ユーザへの多数のメディアアイテム、および新たなサービスの供給を円滑にすることにより、サービスプロバイダが、エンドユーザ機器に利用可能な帯域幅の増加を活用することを同時に可能にする、編成フレームワーク、編成技術、および編成システムが、参照により開示が本明細書に組み込まれている、「A Control Framework with a Zoomable Graphical User Interface for Organizing, Selecting and Launching Media Items」という名称の2004年1月30日に出願した、米国特許出願第10/768,432号で提案されている。
【０００８】
本明細書の特別な関心対象は、そのようなフレームワーク、ならびにその他のアプリケーションおよびシステムと対話するのに使用可能なリモートデバイスである。前段で組み込まれた出願で述べられるとおり、例えば、トラックボール、「マウス」タイプのポインティングデバイス、ライトペン、その他を含め、様々な異なるタイプのリモートデバイスが、そのようなフレームワークとともに使用されることが可能である。しかし、そのようなフレームワーク(および他のアプリケーション)とともに使用されることが可能な別のカテゴリのリモートデバイスは、３Ｄポインティングデバイスである。「３Ｄポインティング」という句は、本明細書では、入力デバイスが、例えば、ディスプレイスクリーンの前方の空中で、3(またはそれより多くの)次元で動く能力、およびユーザインタフェースが、それらの動きを、直接ユーザインタフェースコマンドに、例えば、ディスプレイスクリーン上のカーソルの動きに変換する、対応する能力を指す。３Ｄポインティングデバイス間のデータの転送は、無線で、または３Ｄポインティングデバイスを別のデバイスに接続する配線を介して実行されることが可能である。このため、「３Ｄポインティング」は例えば、表面、例えば、デスクトップ表面またはマウスパッドを代理表面として使用して、その表面から、マウスの相対的動きが、コンピュータディスプレイスクリーン上のカーソルの動きに変換される、従来のコンピュータマウスポインティング技術とは異なる。３Ｄポインティングデバイスの実施例は、米国特許第5,440,326号で見ることができる。
【０００９】
第'326号特許は、とりわけ、コンピュータのディスプレイ上のカーソルの位置を制御するためのポインティングデバイスとして使用されるように適合された垂直ジャイロスコープを説明している。ジャイロスコープのコアにおけるモータが、ハンドヘルドコントローラデバイスからの2対の直交するジンバルによって吊り下げられ、振子デバイスによってスピン軸を公称で垂直に配向されている。電気光学シャフト角エンコーダが、ユーザによってハンドヘルドコントローラデバイスが操作されると、デバイスの向きを感知し、結果の電気出力が、コンピュータディスプレイのスクリーン上のカーソルの動きを制御するのにコンピュータが使用できるフォーマットに変換される。
【００１０】
しかし、３Ｄポインタに関連する使用の自由度は、さらなる課題を生じさせる。例えば、３Ｄポインティングデバイスが置かれる代理表面は、一般に、全く存在しないので、ハンドヘルド制御デバイスの向きは、ユーザごとに、または使用のたびにさえ、相当に異なる可能性がある。３Ｄポインティングデバイスが、例えば、スクリーン上に表示されたカーソルの動きを制御するのに使用される場合、ハンドヘルドデバイスの検出された動きと、スクリーン上のカーソルの動きの間で、いくらかのマッピングが実行される。
【００１１】
このマッピングを実行するための1つの技術は、３Ｄポインティングデバイスの検出された動きを、カーソルの意図される動きにマップするための座標系として、デバイスのボディ座標を使用することである。「ボディ座標」という用語は、以下により詳細に説明するとおり動かされる物体の筐体に関連する軸のセットを指す。しかし、ボディ座標系を使用して、マッピングを実行することは、いくつかの欠点を有する。例えば、そうすることは、ユーザが所望するカーソルの動きを得るために、ユーザが、デバイスをある向きで把持することを要求する。例えば、ユーザが、デバイスを側部で把持し、デバイスを左から右に動かした場合、カーソルは、スクリーン上で、水平にではなく、垂直に動く。
【先行技術文献】
【特許文献】
【００１２】
【特許文献１】米国特許仮出願第60/566,444号
【特許文献２】米国特許仮出願第60/612,571号
【特許文献３】米国特許仮出願第60/641,410号
【特許文献４】米国特許出願第11/119,987号
【特許文献５】米国特許出願第11/119,688号
【特許文献６】米国特許出願第11/119,663号
【特許文献７】米国特許出願第10/768,432号
【特許文献８】米国特許第5,440,326号
【非特許文献】
【００１３】
【非特許文献１】J.Jakubowski、K.Kwiatos、A.Chwaleba、S.Osowski、「Higher Order Statistics and Neural Network For Tremor Recognition」、IEEE Transactions on Biomedical Engineering、vol.49、no.2、152〜159頁、IEEE、2002年2月
【非特許文献２】P.Navarrete、J.Ruiz-del Solar、「Eigenspace-Based Recognition of Faces: Comparisons and a New Approach」、Image Analysis and Processing、2001年
【非特許文献３】C.Liu、H.Wechsler、「Enhanced Fisher Linear Discriminant Models for Face Recognition」という題名の論文、Proc.14th International Conference on Pattern Recognition、Qeensland Australia、August、17〜20頁、1998年
【発明の概要】
【発明が解決しようとする課題】
【００１４】
したがって、本発明は、従来の３Ｄポインティングデバイスに関連する以上、およびその他の問題に対処する形で、センサから受け取られたデータを処理するための方法およびデバイスを説明する。
【課題を解決するための手段】
【００１５】
本発明によるシステムおよび方法は、感知された動きデータを、第1の座標系(例えば、３Ｄポインティングデバイスの筐体)から第2の座標系(例えば、ユーザの座標系)に変換することにより、使いやすさを向上させる３Ｄポインティングデバイスを説明する。本発明の1つの例示的な実施形態は、３Ｄポインティングデバイスがユーザによって把持されている傾きの向きに関連する効果を除去する。
【００１６】
本発明の例示的な実施形態によれば、ハンドヘルドポインティングデバイスは、第1の軸を中心とするポインティングデバイスの回転を測定して、その回転に関連する第1の回転出力を生成するための第1の回転センサと、第2の軸を中心とするポインティングデバイスの回転を測定して、その回転に関連する第2の回転出力を生成するための第2の回転センサと、ポインティングデバイスの加速度を測定して、その加速度に関連する加速度出力を出力するための加速度計と、第1の回転出力および第2の回転出力、および加速度出力を受け取るため、および(a)ユーザが、ハンドヘルドポインティングデバイスを把持している形に関連する傾きの効果を除去するために、第1の回転出力および第2の回転出力、および加速度出力を、ハンドヘルドポインティングデバイスに関連するボディ座標系からユーザの座標系に変換し、(b)スクリーンカーソルの動きに関連するx座標とy座標に関連する、変換された第1の回転出力および第2の回転出力、および変換された加速度出力に基づくデータを算出するための処理ユニットとを含み、変換するステップは、スクリーンカーソルの動きを、ユーザがハンドヘルドデバイスを把持している向きとは実質的に独立にレンダリングする。
【００１７】
本発明の別の例示的な実施形態によれば、３Ｄポインティングデバイスを使用するための方法が、３Ｄポインティングデバイスの動きを検出するステップと、検出された動きを、３Ｄポインティングデバイスに関連するボディ座標系から慣性座標系に変換することにより、検出された動きを補償するステップとを含む。
【００１８】
本発明のさらに別の例示的な実施形態によれば、３Ｄハンドヘルドデバイスが、３Ｄポインティングデバイスの動きを検出するための少なくとも1つのセンサと、検出された動きを、３Ｄポインティングデバイスに関連するボディ座標系から慣性座標系に変換することにより、検出された動きを補償するための処理デバイスとを含む。
【００１９】
添付の図面は、本発明の例示的な諸実施形態を示す。
【図面の簡単な説明】
【００２０】
【図１】エンターテイメントシステムのための従来のリモコンユニットを示す図である。
【図２】本発明の例示的な諸実施形態が実施されることが可能な、例示的なメディアシステムを示す図である。
【図３】本発明の例示的な実施形態による３Ｄポインティングデバイスを示す図である。
【図４】2つの回転センサと、1つの加速度計とを含む図4の３Ｄポインティングデバイスを示す破断図である。
【図５】本発明の例示的な実施形態による３Ｄポインティングデバイスに関連するデータの処理を示すブロック図である。
【図６ａ】傾きの効果を示す図である。
【図６ｂ】傾きの効果を示す図である。
【図６ｃ】傾きの効果を示す図である。
【図６ｄ】傾きの効果を示す図である。
【図７】本発明の例示的な実施形態による３Ｄポインティングデバイスのハードウェアアーキテクチャを示す図である。
【図８】本発明の例示的な実施形態による静止検出機構を示す状態図である。
【図９】本発明の例示的な実施形態による、感知された動きデータの、第1の座標系から第2の座標系への変換を示すブロック図である。
【図１０】本発明の例示的な実施形態による、感知された動きデータの、第1の座標系から第2の座標系への変換を示すグラフである。
【発明を実施するための形態】
【００２１】
本発明の以下の詳細な説明は、添付の図面を参照する。異なる図面における同一の符号は、同一または同様の要素を識別する。また、以下の詳細な説明は、本発明を限定しない。代わりに、本発明の範囲は、添付の特許請求の範囲によって定義される。
【００２２】
以下の説明のいくらかの文脈を提供するため、本発明が実施されることが可能な例示的な集約されたメディアシステム200をまず、図2に関連して説明する。しかし、本発明は、そのタイプのメディアシステムにおける実施に限定されず、より多い、またはより少ないコンポーネントがシステムに含まれることも可能であることが、当業者には理解されよう。システム200では、入出力(I/O)バス210が、メディアシステム200内のシステムコンポーネントを一緒に接続している。I/Oバス210は、メディアシステムコンポーネント間で信号を転送するための、いくつかの異なる機構および技術のいずれかを表す。例えば、I/Oバス210には、オーディオ信号を転送する適切な数の独立したオーディオ「パッチ」ケーブル、ビデオ信号を転送する同軸ケーブル、制御信号を転送する2線シリアル回線または無線周波数トランシーバ、その他のタイプの信号を転送する光ファイバまたは任意の他のルーティング機構が含まれることが可能である。
【００２３】
この例示的な実施形態では、メディアシステム200は、I/Oバス210に結合されたテレビ/モニタ212、ビデオカセットレコーダ(VCR)214、デジタルビデオディスク(DVD)レコーダ/再生デバイス216、オーディオ/ビデオチューナ218、およびコンパクトディスクプレーヤ220を含む。VCR214、DVD216、およびコンパクトディスクプレーヤ220は、単一のディスク、または単一のカセットデバイスであることが可能であり、あるいは代替的に、複数のディスク、または複数のカセットデバイスであってもよい。VCR214、DVD216、およびコンパクトディスクプレーヤ220は、独立したユニットであっても、一緒に一体化されてもよい。さらに、メディアシステム200は、マイク/スピーカシステム222、ビデオカメラ224、および無線I/O制御デバイス226を含む。本発明の例示的な実施形態によれば、無線I/O制御デバイス226は、以下に説明する例示的な諸実施形態の1つによる３Ｄデバイスである。無線I/O制御デバイス226は、例えば、IRまたはRFの送信機またはトランシーバを使用してエンターテイメントシステム200と通信することができる。代替として、I/O制御デバイスは、配線を介してエンターテイメントシステム200に接続されることも可能である。
【００２４】
また、エンターテイメントシステム200は、システムコントローラ228も含む。本発明の1つの例示的な実施形態によれば、システムコントローラ228は、複数のエンターテイメントシステムデータソースから利用可能なエンターテイメントシステムデータを格納して、表示し、システムコンポーネントのそれぞれに関連する多種多様な機能を制御するように動作する。図2に示されるとおり、システムコントローラ228は、I/Oバス210を介して、必要に応じて、システムコンポーネントのそれぞれに直接に、または間接的に結合される。1つの例示的な実施形態では、I/Oバス210に加えて、またはI/Oバス210の代わりに、システムコントローラ228は、IR信号またはRF信号を介してシステムコンポーネントと通信することができる無線通信送信機(またはトランシーバ)を備えて構成される。制御媒体にかかわらず、システムコントローラ228は、以下に説明するグラフィカルユーザインタフェースを介してメディアシステム200のメディアコンポーネントを制御するように構成される。
【００２５】
図2にさらに示されるとおり、メディアシステム200は、様々なメディアソースおよびサービスプロバイダからメディアアイテムを受信するように構成されることが可能である。この例示的な実施形態では、メディアシステム200は、以下のソースのいずれか、またはすべてからメディア入力を受信し、オプションとして、以下のソースのいずれか、またはすべてに情報を送信する。すなわち、ケーブルブロードキャスト230、衛星ブロードキャスト232(例えば、サテライトディッシュを介する)、ブロードキャストテレビネットワーク234の超短波(VHF)または極超短波(UHF)の無線周波数通信(例えば、アンテナを介する)、電話網236、およびケーブルモデム238(またはインターネットコンテンツの別のソース)である。図2に関連して示され、説明されるメディアコンポーネントおよびメディアソースは、単に例示的であり、メディアシステム200は、この両方をより少なく、またはより多く含むことも可能であることが当業者には理解されよう。例えば、システムに対する他のタイプの入力には、AM/FMラジオおよび衛星ラジオが含まれる。
【００２６】
以上の例示的なエンターテイメントシステム、およびこのシステムに関連するフレームワークに関するさらなる詳細は、前段で参照により組み込まれている米国特許出願、「A Control Framework with a Zoomable Graphical User Interface for Organizing, Selecting and Launching Media Items」で見ることができる。代替として、本発明によるリモートデバイスは、他のシステム、例えば、例えば、ディスプレイ、プロセッサ、およびメモリシステムを含むコンピュータシステムと一緒に、または他の様々なシステムおよびアプリケーションと一緒に使用されることが可能である。
【００２７】
「背景技術」のセクションで述べたとおり、３Ｄポインタとして動作するリモートデバイスが、本明細書の特別な関心対象である。そのようなデバイスは、動き、例えば、ジェスチャを、ユーザインタフェースに対するコマンドに変換することを可能にする。例示的な３Ｄポインティングデバイス400が、図3に示されている。図3では、３Ｄポインティングのユーザの動きが、例えば、３Ｄポインティングデバイス400のx軸姿勢(ロール)モーション、y軸エレベーション(ピッチ)モーション、および/またはz軸方位(ヨー)モーションの組み合わせに関して定義されることが可能である。加えて、本発明の一部の例示的な実施形態は、x軸、y軸、およびz軸に沿った３Ｄポインティングデバイス400の直線の動きを測定して、カーソルの動き、または他のユーザインタフェースコマンドを生成することもできる。図3の例示的な実施形態では、３Ｄポインティングデバイス400は、2つのボタン402および404、ならびにスクロールホイール406を含むが、他の例示的な諸実施形態は、他の物理的構成を含む。本発明の例示的な諸実施形態によれば、３Ｄポインティングデバイス400は、ディスプレイ408の前方でユーザによって把持され、３Ｄポインティングデバイス400の動きが、３Ｄポインティングデバイスによって、例えば、ディスプレイ408上のカーソル410を動かすように、ディスプレイ408上で表示される情報と対話するのに使用可能な出力に変換されるものと予期される。例えば、y軸を中心とする３Ｄポインティングデバイス400の回転が、３Ｄポインティングデバイス400によって感知されて、ディスプレイ408のy2軸に沿ってカーソル410を動かすようにシステムが使用できる出力に変換されることが可能である。同様に、z軸を中心とする３Ｄポインティングデバイス408の回転が、３Ｄポインティングデバイス400によって感知されて、ディスプレイ408のx2軸に沿ってカーソル410を動かすようにシステムが使用できる出力に変換されることが可能である。３Ｄポインティングデバイス400の出力は、カーソルの動き以外(またはそれに加えて)のいくつかの形で、ディスプレイ408と対話するのに使用されることが可能であり、例えば、出力は、カーソルフェージング、音量、またはメディアトランスポート(再生、一時停止、早送り、および巻き戻し)を制御することができることが理解されよう。入力コマンドは、カーソルの動きに加えて、操作、例えば、ディスプレイの特定の領域に対するズームインまたはズームアウトを含むことが可能である。カーソルは、可視であっても、可視でなくてもよい。同様に、３Ｄポインティングデバイス400のx軸を中心として感知される３Ｄポインティングデバイス400の回転が、y軸回転および/またはz軸回転に加えて、またはそれらの回転の代替として使用されて、ユーザインタフェースに入力を与えることも可能である。
【００２８】
本発明の1つの例示的な実施形態によれば、2つの回転センサ502および504、ならびに1つの加速度計506が、図4に示されるとおり、３Ｄポインティングデバイス400内のセンサ群として使用されることが可能である。回転センサ502および504は、例えば、アナログデバイシーズによって製造されるADXRS150センサまたはADXRS401センサを使用して実施されることが可能である。他のタイプの回転センサも、回転センサ502および504として使用されることが可能であり、ADXRS150およびADXRS401は、単に例示的な例として使用されていることが当業者には理解されよう。従来のジャイロスコープとは異なり、ADXRS150の回転センサは、MEMS技術を使用して、1方向に沿ってだけ共鳴することが可能なようにフレームに取り付けられた共鳴する質量をもたらす。共鳴する質量は、センサが固定された筐体が、センサの感知軸を中心に回転させられると、ずれる。そのずれが、コリオリの加速効果を使用して測定されて、感知軸に沿った回転に関連する角速度が算出されることが可能である。回転センサ502および504が、単一の感知軸を有する(例えば、ADXRS150のように)場合、センサ502および504は、センサ502および504の感知軸が、測定されるべき回転と揃えられるように３Ｄポインティングデバイス400内に装着されることが可能である。本発明のこの例示的な実施形態の場合、このことは、図4に示されるとおり、回転センサ504は、センサ504の感知軸がy軸と平行になるように装着され、回転センサ502は、センサ502の感知軸がz軸と平行になるように装着されることを意味する。しかし、回転センサ502および504の感知軸を、所望される測定軸と平行になるように揃えることは、本発明の例示的な諸実施形態が、軸間のオフセットを補償するための技術も提供するので、要求されないことに留意されたい。
【００２９】
本発明による例示的な３Ｄポインティングデバイス400を実施する際に直面する1つの課題は、あまりにも高価ではない一方で、３Ｄポインティングデバイス400の動き、ユーザインタフェースが、３Ｄポインティングデバイスのその特定の動きにどのように反応するかに関するユーザの期待、およびその動きに応答する実際のユーザインタフェースパフォーマンスの間における高い度合いの相互関係をもたらすコンポーネント、例えば、回転センサ502および504を使用することである。例えば、３Ｄポインティングデバイス400が動いていない場合、ユーザは、カーソルがスクリーン上をドリフトすべきではないと期待する可能性が高い。同様に、ユーザが、３Ｄポインティングデバイス400を、純粋にy軸を中心に回転させた場合、ユーザは、ディスプレイ408上のもたらされるカーソルの動きが、有意なx2軸成分は全く含むことを期待しない可能性が高い。本発明の例示的な諸実施形態の以上、およびその他の態様を実現するのに、様々な測定および計算が、ハンドヘルドデバイス400によって実行され、それらの測定および計算は、センサ502、504、および506の1つまたは複数の出力を調整するのに、かつ/またはプロセッサによって入力の一部として使用されて、センサ502、504、および506の出力に基づき、ユーザインタフェースに関する適切な出力が算出される。それらの測定および計算は、広くは、以下の2つのカテゴリに入る要因を補償するのに使用される。すなわち、(1)３Ｄポインティングデバイス400に固有の要因、例えば、デバイス400内で使用される特定のセンサ502、504、および506に関連する誤差、またはデバイス400内にセンサが装着されている仕方に関連する誤差、および(2)３Ｄポインティングデバイス400に固有ではなく、代わりに、ユーザが、３Ｄポインティングデバイス400を使用する仕方、例えば、直線加速度、傾き、および微動に関連する要因である。それらの効果のそれぞれに対処するための例示的な技術を以下に説明する。
【００３０】
本発明の例示的な諸実施形態による３Ｄポインティングデバイスの一般的な動作を説明するプロセスモデル600が、図5に示されている。回転センサ502および504、ならびに加速度計506は、周期的に、例えば、毎秒200サンプル、サンプリングされるアナログ信号を生成する。この説明では、それらの入力のセットは、(x,y,z,αy,αz)という表記を使用して示され、x、y、zは、x軸方向、y軸方向、およびz軸方向における３Ｄポインティングデバイスの加速にそれぞれ関連する例示的な3軸加速度計506のサンプリングされた出力値であり、αyは、y軸を中心とする３Ｄポインティングデバイスの回転に関連する回転センサ502からのサンプリングされた出力値であり、αzは、z軸を中心とする３Ｄポインティングデバイス400の回転に関連する回転センサ504からのサンプリングされた出力値である。
【００３１】
加速度計506からの出力がもたらされ、加速度計506が、アナログ出力をもたらす場合、その出力は、A/D変換器(図示せず)によってサンプリングされ、デジタル化されて、サンプリングされた加速度計出力602が生成される。サンプリングされた出力値は、変換ファンクション604によって示されるとおり、生の単位から、加速度の単位に、例えば、重力加速度(g)に変換される。加速度較正ブロック606が、変換ファンクション604のために使用される値をもたらす。加速度計出力602のこの較正には、例えば、加速度計506に関連するスケール誤差、オフセット誤差、および軸合わせ不良誤差の1つまたは複数の補償が含まれることが可能である。加速度計データの例示的な補償は、以下の数式を使用して実行されることが可能である。すなわち、
A=S*((M-P).*G(T)) (1)
ただし、Mは、サンプリングされた出力値(x,y,z)から成る3×1列ベクトルであり、Pは、センサオフセットの3×1列ベクトルであり、Sは、スケール補償、軸合わせ不良補償とセンサ回転補償をともに含む3×3行列である。G(T)は、温度の関数である利得係数である。「*」演算子は、行列乗算を表し、「.」演算子は、要素乗算を表す。例示的な加速度計506は、+/-2gという例示的な最大範囲を有する。センサオフセット、Pは、0gの加速度計測定値の場合のセンサ出力、M指す。スケールは、サンプリングされた単位値とgの間の変換係数を指す。任意の所与の加速度計センサの実際のスケールは、例えば、製造のばらつきに起因して、それらの公称のスケール値からずれる可能性がある。したがって、前述の数式におけるスケール係数は、その偏差に比例する。
【００３２】
加速度計506のスケール偏差およびオフセット偏差は、例えば、1gの力を1つの軸に沿って加え、結果、R1を測定することによって測定されることが可能である。次に、1gの力が加えられて、測定値R2がもたらされる。個別の軸スケール、s、および個別の軸オフセット、pは、以下のとおり計算されることが可能である。すなわち、
s=(R1-R2)/2 (2)
p=(R1+R2)/2 (3)
この単純なケースでは、Pは、各軸に関するpの列ベクトルであり、Sは、各軸に関する1/sの対角行列である。
【００３３】
しかし、スケールおよびオフセットに加えて、加速度計506によって生成される読み取り値は、交差軸効果を被る可能性もある。交差軸効果には、例えば、加速度計506が３Ｄポインティングデバイス400内に装着された際に、加速度計506の感知軸の1つまたは複数が、慣性座標系における対応する軸と揃えられていない、合わせ不良の軸、または、例えば、軸は適切に揃えられているものの、純粋にy軸の加速力により、加速度計506のz軸に沿ったセンサ読み取り値がもたらされる可能性がある、加速度計506自体の機械加工に関連する機械的誤差が含まれる。以上の効果の両方とも、やはり、測定され、ファンクション606によって実行される較正に加えられることが可能である。
【００３４】
加速度計506は、本発明の例示的な諸実施形態による例示的な３Ｄポインティングデバイスにおいていくつかの目的を果たす。例えば、回転センサ502および504が、前述した例示的なコリオリ効果回転センサを使用して実施される場合、回転センサ502および504の出力は、各回転センサによって経験される直線加速度に基づいて異なる。このため、加速度計506の1つの例示的な使用は、直線加速度の違いによって生じさせられる、回転センサ502および504によって生成される読み取り値の変動を補償することである。これは、変換された加速度計読み取り値に利得行列610を掛けて、その結果から(またはその結果に)、対応するサンプリングされた回転センサデータ612を引くこと(または足すこと)によって達せられることが可能である。例えば、回転センサ502からのサンプリングされた回転データayが、ブロック614で、以下のとおり、直線加速度に関して補償されることが可能である。すなわち、
αy'=αy-C*A (4)
ただし、Cは、単位数/gで与えられる各軸に沿った直線加速度に対する回転センサ感受性の1×3行ベクトルであり、Aは、較正された直線加速度である。同様に、回転センサ504からのサンプリングされた回転データαzに関する直線加速度補償が、ブロック614でもたらされることが可能である。利得行列、Cは、製造上の違いに起因して、回転センサの間で異なる。Cは、多くの回転センサに関する平均値を使用して計算されてもよく、あるいは各回転センサに関してカスタム計算されてもよい。
【００３５】
加速度計データと同様に、サンプリングされた回転データ612は、次に、ファンクション616において、サンプリングされた単位値から、角回転の速度に、例えば、ラジアン/秒に関連する値に変換される。また、この変換ステップは、サンプリングされた回転データを、例えば、スケールおよびオフセットに関して、補償するファンクション618によってもたらされる較正を含むことも可能である。αyとαzの両方に関する変換/較正は、例えば、以下の数式を使用して達せられることが可能である。すなわち、
αrad/秒=(α'-offset(T))*scale+dOffset (5)
ただし、α'は、変換/較正される値を指し、offset(T)は、温度に関連するオフセット値を指し、scaleは、サンプリングされた単位値とラジアン/秒の間の変換係数を指し、dOffsetは、動的なオフセット値を指す。数式(5)は、行列式として実施されてもよく、その場合、scaleを除き、すべての変数はベクトルである。行列式の形態では、scaleは、軸合わせ不良および回転オフセット係数を補正する。これらの変数のそれぞれについて、以下により詳細に説明する。
【００３６】
オフセット値、offset(T)およびdOffsetは、いくつかの異なる形で算出されることが可能である。３Ｄポインティングデバイス400が、例えば、y軸方向で回転されていない場合、センサ502は、オフセット値を出力するはずである。しかし、そのオフセットは、温度によって非常に影響されている可能性があり、したがって、このオフセット値は、変動する可能性が高い。オフセット温度較正が、工場において実行されることが可能であり、その場合、offset(T)の値は、ハンドヘルドデバイス400に事前にプログラミングされることが可能であり、あるいは代替的に、オフセット温度較正は、デバイスの寿命中に動的に学習されることも可能である。動的オフセット補償を達するのに、温度センサ619からの入力が、回転較正ファンクション618において使用されて、offset(T)の現在の値が計算される。offset(T)パラメータは、センサ読み取り値からオフセットバイアスの大半を取り除く。しかし、0の動きにおいてほぼすべてのカーソルドリフトを無効にすることが、高性能のポインティングデバイスをもたらすのに役立つ可能性がある。したがって、追加の係数、dOffsetが、３Ｄポインティングデバイス400が使用されている間に、動的に計算されることが可能である。静止検出ファンクション608が、ハンドヘルドが静止している可能性が高い場合、およびオフセットが再計算されなければならない場合を判定する。したがって、静止検出ファンクション608を実施するための例示的な技術、および用法を以下に説明する。
【００３７】
dOffset計算の例示的な実施は、ローパスフィルタリングされた較正済みのセンサ出力を使用する。静止出力検出ファンクション608は、例えば、ローパスフィルタ出力の平均値の計算をトリガする指示を回転較正ファンクション618に与える。また、静止出力検出ファンクション608は、新たに計算された平均値が、dOffsetの既存の値にいつ繰り込まれるかも制御することができる。多数の異なる技術が、dOffsetの既存の値、および単純平均、ローパスフィルタリング、およびカルマンフィルタリングを含むが、以上には限定されない新たな平均から、dOffsetの新たな値を計算するために使用されることが可能であることが、当業者には認識されよう。さらに、回転センサ502および504のオフセット補償に関する多数の変種が使用されることが可能であることも、当業者には認識されよう。例えば、offset(T)ファンクションは、定数値(例えば、温度で変化しない)を有することが可能であり、2つより多くのオフセット補償値が、使用されることが可能であり、かつ/または単一のオフセット値だけが、オフセット補償のために計算/使用されることが可能である。
【００３８】
ブロック616における変換/較正の後、ファンクション620において、回転センサ502および504からの入力は、それらの入力を回転させて、慣性座標系に入れるように、すなわち、ユーザが３Ｄポインティングデバイス400を把持している仕方に関連する傾きを補償するように、さらに処理されることが可能である。傾き補正は、本発明による３Ｄポインティングデバイスの使用パターンの違いを補償するように意図されているので、本発明の一部の例示的な諸実施形態の別の重要な態様である。より具体的には、本発明の例示的な諸実施形態による傾き補償は、複数のユーザが、異なるx軸回転位置でポインティングデバイスを手に把持するが、３Ｄポインティングデバイス400内の回転センサ502および504の感知軸は、固定であるという事実を補償することを意図している。ディスプレイ408上のカーソルの並進は、ユーザが３Ｄポインティングデバイス400を握る仕方に実質的に左右されない、例えば、ユーザが３Ｄポインティングデバイス400を把持している向きにかかわらず、ディスプレイ508の水平の次元(x2軸)におおむね対応する形で行き来するように３Ｄポインティングデバイス400を回転させることは、x2軸に沿ったカーソルの並進をもたらすべきであるのに対して、ディスプレイ508の垂直の次元(y2軸)におおむね対応する形で上下するように３Ｄポインティングデバイスを回転させることは、y2軸に沿ったカーソルの並進をもたらすべきであることが望ましい。
【００３９】
本発明の例示的な諸実施形態による傾き補償の必要性をよりよく理解するため、図6(a)に示された例を考慮されたい。図6(a)では、ユーザは、３Ｄポインティングデバイス400を、0度のx軸回転値を有するものとして定義されることが可能な例示的な慣性座標系において把持しており、例えば、慣性座標系は、３Ｄポインティングデバイスの底部が、例えば、テレビが配置されている部屋のフロアに実質的に平行になっている座標であることが可能である。慣性座標系は、単に例として、図6(a)に示された向きに対応することが可能であり、あるいは他の任意の向きとして定義されることが可能である。y軸方向またはz軸方向における３Ｄポインティングデバイス400の回転は、回転センサ502および504によってそれぞれ感知される。例えば、図6(b)に示される、量Δzだけのz軸を中心とした３Ｄポインティングデバイス400の回転は、ディスプレイ408上のx2軸次元における対応するカーソルの並進、Δx2(すなわち、カーソル410の破線バージョンと破線でないバージョンの間の距離)をもたらす。
【００４０】
他方、ユーザが、３Ｄポインティングデバイス400を異なる向きで、例えば、慣性座標系に対していくらかの量のx軸回転で把持した場合、センサ502および504によってもたらされる情報は、ユーザによって意図されるインタフェースアクションの正確な表現をもたらさない(傾き補償がない)。例えば、図6(c)を参照して、ユーザが、図6(a)に示されるとおり、例示的な慣性座標系に対して45度のx軸回転で３Ｄポインティングデバイス400を把持する状況を考慮されたい。同一のz軸回転Δzが、図6(b)の実施例におけるように、ユーザによって３Ｄポインティングデバイス400に与えられるものと想定すると、カーソル410は、図6(d)で示されるとおり、代わりに、x2軸方向とy2軸方向の両方で並進させられる。これは、回転センサ502の感知軸が、現時点で、y軸とz軸の間の向きにされている(ユーザの手の中のデバイスの向きのため)という事実に起因する。同様に、回転センサ504の感知軸もまた、y軸とz軸の間の向きにされている(ただし、異なる象限における)。３Ｄポインティングデバイス400がどのように把持されているかに関してユーザにトランスペアレントなインタフェースを提供するため、本発明の例示的な諸実施形態による傾き補償は、回転センサ502および504から出力された読み取り値を、それらのセンサからの読み取り値を処理して、３Ｄポインティングデバイス400の回転モーションを示す情報にすることの一環として、変換して慣性座標系に戻す。
【００４１】
本発明の例示的な諸実施形態によれば、図5に戻ると、以上のことは、ファンクション622において、加速度計506から受け取られる入力yおよび入力zを使用して３Ｄポインティングデバイス400の傾きを算出することにより、達せられることが可能である。より具体的には、加速度データは、前述したとおり、変換され、較正された後、LPF624においてローパスフィルタリングされて、平均加速度(重力加速度)値を傾き算出ファンクション622に与えることが可能である。次に、傾きθが、ファンクション622において以下のとおり計算されることが可能である。すなわち、
【００４２】
【数１】
0006026483.tif 000002
【００４３】
値θは、0による除算を防止するようにatan2(y,z)として数値的に計算されて、正しい符号を与えることが可能である。次に、ファンクション620が、以下の数式を使用して、変換/較正済みの入力αyおよびαzの回転Rを実行して、
【００４４】
【数２】
0006026483.tif 000003
【００４５】
変換/較正済みの入力αyおよびαzを回転させて、傾きθを補償することができる。この例示的な実施形態において説明される傾き補償は、以下で説明する本発明の別の例示的実施形態による、ボディ座標系からのセンサ読み取り値をユーザの座標系に変換するためのより一般的な技術のサブセットである。
【００４６】
較正済みのセンサ読み取り値が、直線加速度に関して補償され、３Ｄポインティングデバイス400の角回転を示す読み取り値になるように処理され、傾きに関して補償されると、ブロック626および628で後処理が実行されることが可能である。例示的な後処理には、人間の微動などの様々な要因の補償が含まれることが可能である。微動は、いくつかの異なる方法を使用して除去されることが可能であるが、微動を除去する1つのやり方は、ヒステリシスを使用することによる。回転ファンクション620によってもたらされた角速度が、角位置をもたらすように組み込まれる。較正された大きさのヒステリシスが、次に、角位置に適用される。ヒステリシスブロックの出力の微分が行われて、角速度が再びもたらされる。結果の出力が、次に、ファンクション628においてスケーリングされて(例えば、サンプリング周期に基づき)、インタフェース内の結果、例えば、ディスプレイ408上のカーソル410の動きを生じさせるのに使用される。
【００４７】
本発明による例示的な３Ｄポインティングデバイスのプロセス説明を提供したので、図7は、例示的なハードウェアアーキテクチャを示す。図7では、プロセッサ800が、スクロールホイール802、JTAG804、LED806、スイッチマトリックス808、IR光検出器810、回転センサ812、加速度計814、およびトランシーバ816を含む、３Ｄポインティングデバイスの他の要素と通信する。スクロールホイール802は、ユーザが、スクロールホイール802を時計方向に、または反時計方向に回転させることによってインタフェースに入力を与えることを可能にするオプションの入力コンポーネントである。JTAG804は、プログラミング‐デバッグインタフェースをプロセッサに与える。LED806は、例えば、ボタンが押されると、視覚的フィードバックをユーザに与える。スイッチマトリックス808は、入力、例えば、３Ｄポインティングデバイス400上のボタンが押し下げられた、または解放されたという指示を受け取り、それらの入力は、次に、プロセッサ800に転送される。例示的な３Ｄポインティングデバイスが、他のリモコンからのIRコードを知ることを可能にするオプションのIR光検出器810が、提供されることが可能である。回転センサ812は、例えば、前述したとおり、３Ｄポインティングデバイスのy軸回転およびz軸回転に関する読み取り値をプロセッサ800に与える。加速度計814は、例えば、傾き補償を実行し、直線加速度が、回転センサ812によって生成される回転読み取り値に導入する誤差を補償するように、前述したとおり使用されることが可能な、３Ｄポインティングデバイス400の直線加速度に関する読み取り値をプロセッサ800に与える。トランシーバ816が、３Ｄポインティングデバイス400との間で、例えば、システムコントローラ228に、またはコンピュータに関連するプロセッサに情報を通信するのに使用される。トランシーバ816は、例えば、短距離無線通信のためにBluetooth（登録商標）標準に準拠して動作する無線トランシーバ、または赤外線トランシーバであることが可能である。代替的に、３Ｄポインティングデバイス400は、有線接続を介してシステムと通信することもできる。
【００４８】
図4の例示的な実施形態では、３Ｄポインティングデバイス400は、2つの回転センサ502および504、ならびに加速度計506を含む。しかし、本発明の別の実施形態によれば、３Ｄポインティングデバイスは、代替的に、例えば、z軸方向の角速度を測定するための1つだけの回転センサと、加速度計とを含むことも可能である。そのような例示的な実施形態の場合、前述したのと同様の機能が、加速度計を使用して、回転センサによって感知されない軸に沿った角速度を測定することによって提供されることが可能である。例えば、y軸を中心とする回転速度は、加速度計によって生成されたデータを使用し、以下を計算して、計算されることが可能である。すなわち、
【００４９】
【数３】
0006026483.tif 000004
【００５０】
加えて、回転センサによって測定されない寄生加速度効果も、除去されなければならない。それらの効果には、実際の直線加速度、回転速度および回転加速度に起因して測定された加速度、および人間の微動に起因する加速度が含まれる。
【００５１】
簡単に前述したとおり、静止検出ファンクション608は、３Ｄポインティングデバイス400が、例えば、静止しているか、またはアクティブである(動いている)かを判定するように動作することができる。この分類は、いくつかの異なる仕方で実行されることが可能である。1つの仕方は、本発明の例示的な実施形態によれば、所定のウインドウ、例えば、毎1/4秒にわたって、すべての入力(x,y,z,ay,az)のサンプリングされた入力データの分散を計算することである。その分散が、次に、閾値と比較されて、３Ｄポインティングデバイスが、静止している、またはアクティブであると分類される。
【００５２】
本発明の例示的な諸実施形態による別の静止検出技術には、例えば、入力データに高速フーリエ変換(FFT)を実行することにより、入力を周波数ドメインに変換することがかかわる。次に、そのデータが、例えば、ピーク検出方法を使用して分析されて、３Ｄポインティングデバイス400が静止しているか、またはアクティブであるかが判定されることが可能である。さらに、第3のカテゴリ、具体的には、ユーザが、３Ｄポインティングデバイス400を把持しているが、デバイス400を動かしていないケース(本明細書では、「安定した」状態とも呼ばれる)が、区別されることが可能である。この第3のカテゴリは、３Ｄポインティングデバイス400がユーザによって把持されている場合にユーザの手の微動によって導入される、３Ｄポインティングデバイス400の小さい動きを検出することにより、静止(把持されていない)およびアクティブから区別されることが可能である。また、ピーク検出も、この判定を行うのに、静止検出ファンクション608によって使用されることが可能である。人間の微動周波数の範囲内、例えば、公称で8〜12Hzの範囲内のピークは、通常、およそ20dBだけ、デバイスの雑音フロア(デバイスが静止しており、把持されていない場合に生じる)を超える。
【００５３】
以上の例では、周波数ドメインの変動が、特定の周波数範囲内で検出されたが、監視され、３Ｄポインティングデバイス400のステータスを特徴付けるのに使用される実際の周波数範囲は、様々である可能性がある。例えば、公称の微動周波数範囲は、例えば、３Ｄポインティングデバイス400のエルゴノミクスおよび重量に基づき、例えば、8〜12Hzから4〜7Hzに移る可能性がある。
【００５４】
本発明の別の例示的な実施形態によれば、静止検出機構608は、状態マシンを含むことが可能である。例示的な状態マシンが、図8に示されている。図8では、ACTIVE状態が、この実施例では、３Ｄポインティングデバイス400が動いており、例えば、ユーザインタフェースに入力を与えるのに使用されている間の既定の状態である。３Ｄポインティングデバイス400は、リセット入力によって示されるデバイスの起動時に、ACTIVE状態に入る。３Ｄポインティングデバイス400は、動くのを止めた場合、INACTIVE状態に入ることが可能である。図8に示される様々な状態遷移が、回転センサ502と回転センサ504のいずれか、または両方から出力されたデータ、加速度計506から出力されたデータ、時間ドメインデータ、周波数ドメインデータ、または以上の任意の組み合わせを含むが、以上には限定されない、いくつかの異なる基準のいずれかによってトリガされることが可能である。状態遷移条件は、「ConditionstateA→stateB」という規約を使用して、本明細書で一般的に示される。例えば、３Ｄポインティングデバイス400は、conditionactive→inactiveが生じると、ACTIVE状態からINACTIVE状態に遷移する。単に例示のため、conditionactive→inactiveは、例示的な３Ｄポインティングデバイス400では、回転センサと加速度計の両方からの平均偏差値および/または標準偏差値が、第1の所定の期間にわたって第1の所定の閾値を下回って低下した場合に生じるものと考慮されたい。
【００５５】
状態遷移は、解釈されたセンサ出力に基づく、いくつかの異なる条件によって判定されることが可能である。例示的な条件メトリックは、時間ウインドウにわたる解釈された信号の変動、基準値と、時間ウインドウにわたる解釈された信号との間の閾値、基準値と、時間ウインドウにわたるフィルタリング済みの解釈された信号との間の閾値が含まれ、基準値と、開始時からの解釈された信号との間の閾値が、状態遷移を判定するのに使用されることが可能である。以上の条件メトリックのすべて、または任意の組み合わせが、状態遷移をトリガするのに使用されることが可能である。代替的に、他のメトリックも使用されることが可能である。本発明の1つの例示的な実施形態によれば、INACTIVE状態からACTIVE状態への遷移は、(1)時間ウインドウにわたるセンサ出力の平均値が、所定の閾値より大きい場合、または(2)時間ウインドウにわたるセンサ出力の値の変動が、所定の閾値より大きい場合、または(3)センサ値の間の瞬間デルタが、所定の閾値より大きい場合に生じる。
【００５６】
INACTIVE状態は、３Ｄポインティングデバイス400が依然、使用されている、例えば、1/10秒のオーダの、短い休止と、安定した条件または静止条件への実際の遷移とを、静止検出機構608が区別することを可能にする。これにより、以下に説明するSTABLE状態中、およびSTATIONARY状態中に実行されるファンクションが、３Ｄポインティングデバイスが使用されている間に、意図せずに実行されることが防止される。３Ｄポインティングデバイス400は、conditionactive→inactiveが生じた場合、例えば、３Ｄポインティングデバイス400が、再び動くことを始めて、回転センサおよび加速度計からの測定された出力が、INACTIVE状態で第2の所定の期間が経過する前に第1の閾値を超えた場合、ACTIVE状態に戻るように遷移する。
【００５７】
３Ｄポインティングデバイス400は、第2の所定の期間が経過した後、STABLE状態またはSTATIONARY状態に遷移する。前述したとおり、STABLE状態は、人によって把持されているが、実質的に動いていないという３Ｄポインティングデバイス400の特徴付けを反映する一方で、STATIONARY状態は、人によって把持されていないという３Ｄポインティングデバイスの特徴付けを反映する。このため、本発明による例示的な状態マシンは、手の微動に関連する最小の動きが存在する場合、第2の所定の期間が経過した後に、STABLE状態への遷移を可能にし、さもなければ、STATIONARY状態への遷移を可能にすることができる。
【００５８】
STABLE状態およびSTATIONARY状態は、３Ｄポインティングデバイス400が、様々なファンクションを実行することができる時間を定義する。例えば、STABLE状態は、ユーザが、３Ｄポインティングデバイス400を把持しているが、デバイス400を動かしていない時間を反映することを意図しているので、デバイスは、３Ｄポインティングデバイス400がSTABLE状態にある間の、３Ｄポインティングデバイス400の動きを、例えば、回転センサおよび/または加速度計からの出力を、STABLE状態にある最中に格納することにより、記録することができる。それらの格納された測定値は、以下に説明するとおり、特定のユーザまたはユーザらに関連する微動パターンを判定するのに使用されることが可能である。同様に、STATIONARY状態にある間、３Ｄポインティングデバイス400は、前述したとおり、オフセットを補償する際に使用するために、回転センサおよび/または加速度計からの読み取り値を得ることができる。
【００５９】
３Ｄポインティングデバイス400が、STABLE状態またはSTATIONARY状態にある間に、動くことを始めた場合、これにより、ACTIVE状態に戻ることがトリガされることが可能である。さもなければ、測定が行われた後、デバイスは、SLEEP状態に遷移することができる。スリープ状態にある間、デバイスは、３Ｄポインティングデバイスの電力消費量が低減され、例えば、回転センサおよび/または加速度計のサンプリングレートも低減されるパワーダウンモードに入ることができる。また、SLEEP状態には、外部コマンドを介して入ることも可能であり、したがって、ユーザ、または別のデバイスが、SLEEP状態に入るよう３Ｄポインティングデバイス400に命令することができる。
【００６０】
別のコマンドを受け取ると、または３Ｄポインティングデバイス400が動くことを始めると、デバイスは、SLEEP状態からWAKEUP状態に遷移することができる。INACTIVE状態と同様に、WAKEUP状態は、ACTIVE状態への遷移が妥当であること、例えば、３Ｄポインティングデバイス400が、意図せずに突き動かされていないことをデバイスが確認する機会を提供する。
【００６１】
状態遷移のための諸条件は、対称的であっても、異なってもよい。このため、conditionactive→inactiveに関連する閾値は、conditioninactive→activeに関連する閾値と同一である(または異なる)ことが可能である。これにより、本発明による３Ｄポインティングデバイスが、ユーザ入力をより正確にキャプチャすることが可能になる。例えば、状態マシンインプリメンテーションを含む例示的な諸実施形態は、とりわけ、静止条件に入る遷移に関する閾値が、静止条件から出る遷移に関する閾値とは異なることを許す。
【００６２】
ある状態に入ること、またはある状態を離れることは、他のデバイスファンクションをトリガするのに使用されることも可能である。例えば、ユーザインタフェースが、任意の状態からACTIVE状態への遷移に基づいて起動されることが可能である。逆に、３Ｄポインティングデバイスおよび/またはユーザインタフェースが、ACTIVEまたはSTABLEからSTATIONARYまたはINACTIVEに３Ｄポインティングデバイスが遷移すると、オフにされる(またはスリープモードに入る)ことも可能である。代替的に、カーソル410が、３Ｄポインティングデバイス400の静止状態からの遷移、または静止状態への遷移に基づき、表示されること、またはスクリーンから除去されることも可能である。
【００６３】
前述したとおり、本発明の例示的な諸実施形態は、３Ｄポインティングデバイス内のセンサから受け取られた動きデータを処理して、そのデータを、３Ｄポインティングデバイスの筐体の座標系から、別の座標系に、例えば、ユーザの座標系に変換する。スクリーン上、例えば、テレビ上に表示されるユーザインタフェースを制御するのに使用される３Ｄポインティングデバイスの例示的な応用例では、ユーザの座標系は、テレビスクリーンに関連する座標系であることが可能である。いずれにせよ、ボディ座標系から別の座標系へのデータの変換は、デバイスの見地からではなく、ユーザの見地からの操作をもたらすことにより、ハンドヘルドデバイスの使いやすさを向上させる。このため、ユーザが、３Ｄポインティングデバイスを把持しながら、ディスプレイの前方で左から右に手を動かすと、カーソルは、３Ｄポインティングデバイスの向きにかかわらず、左から右の方向に移動する。
【００６４】
この説明を簡単にするため、３Ｄポインティングデバイスに関連する例示的な処理システムが、例えば、より詳細に前述したとおり、図9に示されている。図9では、ハンドヘルドシステムは、1つまたは複数のセンサ901、例えば、回転センサ、ジャイロスコープ、加速度計、磁力計、光センサ、カメラ、または以上の任意の組み合わせを使用して、動きを感知する。センサは、次に、ブロック902で解釈されて、生じた動きの推定をもたらす。次に、処理ブロック903が、デバイスの自然の(ボディ)座標系からの測定された動きを、ユーザの座標系に変換する。次に、その動きが、意味のあるアクションにマップされ904、アクションが、ブロック905で解釈され、システムに転送されて、スクリーン上のカーソルを動かすことなどの、意味のある応答がもたらされる。
【００６５】
ブロック903は、検出された動きを、デバイスの座標系ではなく、ユーザの座標系に変換する。向きは、オイラー角、方向余弦行列(DCM)、または単位四元数を含む、多くの異なる数学的に類似した方法によって表現されることが可能である。位置は、一般に、メートル、センチメートル、フィート、インチ、およびマイルを含むが、以上には限定されない一貫した単位で、座標系原点からのオフセットとして表現される。前述した1つの例示的な実施形態では、３Ｄポインティングデバイスは、加速度および回転速度を含む慣性力を測定する。それらの力は、デバイス内に装着されたデバイスの筐体に相対的に測定される。測定されたデータをユーザ座標系に変換するため、デバイスは、デバイスの位置、およびデバイスの向きを推定する。
【００６６】
この例示的な実施形態では、ユーザ座標系は、静止しており、固定の向きを有するものと想定されるが、本発明によるこの技術は、時間につれ変化する座標に直接に変換することによって、または静止した座標にまず変換し、次に、動く座標に変換することによって、ユーザの座標系が静止していないケースにも容易に拡張されることが可能であることが、当業者には理解されよう。静止した、固定の向きのユーザ座標系例の場合、ボディ座標からユーザ座標への変換は、以下の数式の使用によって実行されることが可能である。すなわち、
Pu=Rotate(Pb,Q)+Pdelta
Pu'=Rotate(Pb',Q)
Pu''=Rotate(Pb'',Q)
Wu=Rotate(Wb,Q)
Wu'=Rotate(Wb',Q)
ただし、
Rotateは、四元数回転演算子を表し、したがって、Rotate(A,Q)は、Q*AQに等しく、ただし、Q*は、共役四元数であり、ベクトルAは、Aに等しい複素成分と、0に等しい実成分とを有する四元数であり、
Puは、ユーザ座標系における位置であり、
Pbは、デバイス座標系における位置であり、
'は、微分を表す。したがって、Pu'は、ユーザ座標系における速度である、ユーザ座標系における位置の微分であり、
Wuは、ユーザ座標系における筐体角度でのデバイスの角速度であり、
Wbは、ボディ座標系における筐体角度でのデバイスの角速度であり、
Pdeltaは、ユーザ座標系座標系における、ユーザ座標系の原点と、ボディ座標系との差であり、
Qは、ボディ座標からユーザ座標への回転を表す、正規化された回転四元数である。ユーザ座標からボディ座標に回転させる回転四元数は、Q*であるので、QをR*で置き換えることができ、ただし、Rは、ユーザ座標からボディ座標への回転である。Qは、オイラー角および方向余弦行列(DCM)を含む、いくつかの等価の形態で表現されることが可能であり、前述の数式は、等価の形態においては、Qの異なる表現に基づき、わずかに異なる可能性があることに留意されたい。図10は、ボディ座標系からユーザの座標系への変換をグラフで示す。
【００６７】
動作中、デバイスは、インプリメンテーションに依存する形でQを推定して、以上の変換を実行する。前述した1つの例示的なインプリメンテーションには、傾き(すなわち３Ｄポインティングデバイスがユーザによって把持される仕方に基づく３Ｄポインティングデバイスのx軸ロールの変動)を補償することがかかわる。向きは、ボディ座標の重力加速度に起因する加速度、Abをまず推定することにより、計算される。定義上、ユーザ座標における重力加速度に起因する加速度ベクトル、Agは、[0,0,-1]に設定される。重力加速度は、方位(z軸を中心とする回転)を推定することができないので、方位に関するボディ座標推定が使用される。したがって、回転四元数は、z=0平面に回転の軸を有する。以下は、回転四元数を計算するための、いくつかの数学的に等価な方法の1つである。すなわち、
V=‖Ab‖x‖Ag‖ (単位ベクトルのクロス乗積)
qV=‖V‖
α=sin-1|V|
Q=Quaternion[qV,α]=[qV*sin(α/2),cos(α/2)]
次に、位置が、ユーザ座標における加速度の二重積分として計算される。ユーザ座標における加速度は、前述のQによってユーザ座標に入るように回転させられたボディ座標の加速度である。通常、原点は、デバイスが最初にアクティブにされた際、0であるものと想定されるが、原点は、通常の動作中に手動で、または自動的にリセットされてもよい。
【００６８】
一般に、デバイスが動いていない場合、Pu'、Pu''、Wu、およびWu''はすべて、0である。この例示的な実施形態では、Pb''およびWbが測定される。無限の数の回転Qが存在するが、利用可能なセットから最小限の回転が選択されて、Wbに基づき、Wuを推定するのに使用されることが可能である。代替的に、Qは、離散時間積分を使用して以下に示されるとおり、Wbを時間にわたって積分することにより、想定される開始オフセット向きQoを使用して計算されてもよい。すなわち、
WbAngle=|Wb|*period
QDELTA=Quaternion[Wb,WbAngle]=[‖Wb‖*sin(WbAngle/2),cos(WbAngle/2)]
QNEXT=Q0**QDELTA
ただし、*は、乗算を表し、**は、四元数乗算を表す。さらなる安定性が、重力加速度および地球の磁場を含み、前述した結果と組み合わされた定常場ベクトルによってもたらされることが可能である。この組み合わせは、カルマンフィルタリングを含むが、それには限定されない、いくつかの数値方法およびフィルタリング方法を使用して達せられることが可能である。
【００６９】
様々な異なるセンサが、それらのセンサが、デバイスの筐体に対する動きを測定する限り、使用されることが可能である。例示的なセンサには、加速度計、回転センサ、ジャイロスコープ、磁力計、およびカメラが含まれる。ユーザ座標は、静止している必要はない。例えば、ユーザの座標系が、ユーザの前腕であるように選択された場合、デバイスは、手首および指の動きだけに応答する。
【００７０】
可換特性は、本発明で説明される座標系変換だけに当てはまることが、当業者には認識されよう。したがって、数学的操作の順序は、本明細書で説明される本発明に実質的に影響を与えることなく、変更されることが可能である。さらに、多くのモーション処理アルゴリズムは、特に、ユーザ座標が、不変の向きを有して静止しているように選択される場合、いずれの座標系でも同等に作用することが可能である。
【００７１】
使用の容易さをもたらすことに加え、本発明のこの例示的な実施形態による座標系変換は、ハンドヘルドデバイスインプリメンテーションにおける他の課題に対処するのにも使用されることが可能である。例えば、センサ(加速度計などの)が、ボディ座標系における回転の中心に正確に配置されていない場合、測定される加速度には、座標の加速度と、座標の回転に起因する加速度成分がともに含まれる。したがって、測定された加速度は、以下の関係式を使用して、デバイスのボディ座標内の異なる目標位置に、まず変換されることが可能である。すなわち、
Abody=Aaccelerometer+ω'xR+ωx(ωxR)
ただし、Rは、加速度計から目標位置までのベクトルであり、ωは、ボディ座標系の角速度であり、ω'は、ボディ座標系の角加速度である。デバイスのボディ座標が、加速度計からRにあるように構築されている場合、ボディ座標は、0の角加速度効果を有するべきであり、ユーザ座標におけるデバイスの動きを計算するのに、より容易に使用されることが可能である。これにより、加速度計と、ボディ座標系の中心との間の意図的な位置合わせ不良、または意図的でない位置合わせ不良が補償される。さらに、重力加速度ベクトルの推定は、回転の中心で作用する力の数がより少ないので、はるかに簡単になる。すると、
Auster=Rotate(Abody,Q)
であり、ただし、Qは、ボディ座標系から加速度計座標系までの回転である。
【００７２】
残念ながら、異なるユーザは、Rに関して異なる値を有する。例えば、あるユーザは、肘を回すことによってハンドヘルドデバイスを使用する可能性があるのに対して、別のユーザは、手首を回すことによってデバイスを使用する可能性がある。加えて、人々は、異なるサイズの手首および前腕を有する。より向上した使いやすさのため、ハンドヘルドのこの例示的な実施形態は、Rを動的に計算し、筐体原点を動かして、筐体原点が、角モーションに起因する最小の加速度成分を有するようにする。例示的な実施形態は、Rを[Rx,0,0]と定義し、Abody-Rotate[Ag,Q]を使用し、Abody-Rotate[Ag,Q]を最小化するRxについて解くことにより、Rを推定する。Rxを計算する最小化を実行することが可能な、再帰的最小二乗法およびカルマンフィルタリングを含む、多くの数値方法が存在することに留意されたい。
【００７３】
以上に基づき、本発明は、1つの座標系(例えば、ボディ座標系)から別の座標系(例えば、ユーザの座標系)にハンドヘルドデバイスの感知された動きをマップするための様々な技術を説明することが理解されよう。それらのマッピングは、ハンドヘルドデバイスの使用に関連する他のマッピング、例えば、感知された動きのカーソルの動きへのマッピングとは独立であることも、他のマッピングと組み合わせられることも可能である。さらに、本発明による変換は、動きの等式の入力側、または出力側の見地から、並進の動き、および回転の動き、またはそれらの動きの任意のサブセットのために、感知された動きを3つすべての次元で変換するように実行されることが可能である。さらに、感知された動きがマップされる、または変換される座標系の選択は、いくつかの異なる形で行われることが可能である。前段で提供された一実施例は、第2の座標系が、デバイスの傾きに関連するユーザの座標系であることを示すが、他の多くの変形形態が可能である。例えば、ユーザは、ユーザの所望の座標系を選択することができ、その設定が、複数のユーザ選好の1つとしてハンドヘルドの中に格納され、変換を実行するのに使用されることが可能である。第2の座標系は、任意のいくつかの技術に基づいて選択されることが可能である。第2の座標系は、明示的なコマンド(例えば、ボタン選択またはユーザインタフェース選択)に基づいて、またはデバイス使用パターン、微動、およびその他のバイオメトリックによって判定されるユーザ認識を介して自動的に、選択されることが可能である。
【００７４】
さらに、前述した例示的な諸実施形態の一部は、速度ドメインでデータを扱うが、本発明は、そのように限定されない。本発明によるマッピングまたは変換は、代替的に、またはさらに、例えば、位置データまたは加速度データに対して実行されることも可能であり、並進の動き、回転の動き、またはその両方の動きためであることも可能である。また、処理の順序は、重要ではない。例えば、ハンドヘルドデバイスが、ジェスチャコマンドを出力するのに使用されている場合、マッピングが、まず実行され、次に、ジェスチャが判定されることが可能であり、あるいはジェスチャが、まず判定されることが可能であり、次に、マッピングが実行されることが可能である。
【００７５】
前述した例示的な諸実施形態は、すべての点で、本発明を制限するのではなく、例示することを意図している。このため、本発明は、当業者によって本明細書に含まれる説明から導き出されることが可能な、詳細な実施の多くの変形が可能である。例えば、以上の例示的な諸実施形態は、とりわけ、デバイスの動きを検出する慣性センサの使用を説明したが、前述した信号処理に関連して、慣性センサの代わりに、または慣性センサに加えて、他のタイプのセンサ(例えば、超音波、磁気、または光学)が使用されることも可能である。すべてのそのような変形形態および変更形態が、添付の特許請求の範囲によって定義される、本発明の範囲および趣旨に含まれるものと考えられる。本出願の説明において使用されるいずれの要素、動作、または命令も、特に明記しない限り、本発明に不可欠である、または必須であると解釈されてはならない。また、本明細書で使用する冠詞「a」は、1つまたは複数のアイテムを含むことを意図している。
【符号の説明】
【００７６】
400 ポインティングデバイス
402、404 ボタン
406、802 スクロールホイール
408 ディスプレイ
410 カーソル
502、504、506、810、812、814 センサ
800 プロセッサ
804 JTAG
806 LED
808 スイッチマトリックス
816 トランシーバ
【図１】
0006026483.tif 000008
【図２】
0006026483.tif 000009
【図３】
0006026483.tif 000010
【図４】
0006026483.tif 000011
【図５】
0006026483.tif 000012
【図６ａ】
0006026483.tif 000013
【図６ｂ】
0006026483.tif 000014
【図６ｃ】
0006026483.tif 000015
【図６ｄ】
0006026483.tif 000016
【図７】
0006026483.tif 000017
【図８】
0006026483.tif 000018
【図９】
0006026483.tif 000019
【図１０】
0006026483.tif 000020