(57)【要約】      （修正有）【課題】少なくとも1つのセンサを使用してハンドヘルドデバイスの動きを検出する３Ｄポインティングデバイスおよびポインティング方法を提供する。【解決手段】システムおよび方法は、少なくとも1つのセンサを使用してハンドヘルドデバイスの動きを検出するハンドヘルドデバイス、例えば、自由空間ポインティングデバイスを提供することにより、以上、およびその他の必要性に応える。検出された動きは、次に、所望される出力に、例えば、カーソルの動きにマップされる。【選択図】図５
2011238250.tif 000002
【特許請求の範囲】
【請求項１】
ポインティングデバイスにおいて、
当該ポインティングデバイスの動きを検出するための少なくとも1つのセンサを含み、該少なくとも１つのセンサは、さらに、
第1の軸を中心とするポインティングデバイスの回転を測定し、前記回転に関連する第1の回転出力を生成するための第1の回転センサと、
第2の軸を中心とするポインティングデバイスの回転を測定し、前記回転に関連する第2の回転出力を生成するための第2の回転センサと、
ポインティングデバイスの加速度を測定し、前記加速度に関連する加速度出力を出力するための加速度計と、
を含み、
当該ポインティングデバイスは、さらに、前記検出された動きを修正し、該修正された検出された動きに基づき、複数の状態の中から前記ポインティングデバイスの状態を判定するための処理ユニットを含み、
前記処理ユニットは、前記加速度に基づき、前記第１の回転出力および前記第２の回転出力を修正し、
前記複数の状態は、静止状態を含んでいることを特徴とするポインティングデバイス。
【請求項２】
前記複数の状態は、前記ポインティングデバイスが現在ユーザにより把持されているという少なくとも１つの状態を含んでいることを特徴とする請求項１に記載のポインティングデバイス。
【請求項３】
前記第1の回転センサは、第1のフレームに取り付けられた第1の共鳴する質量をさらに含み、前記第1の回転センサ内の前記第1の共鳴する質量は、前記第1の軸に沿って共鳴し、前記第1の軸に沿った前記第1の共鳴する質量のずれは、コリオリの加速効果を使用して前記第1の回転センサによって測定されて、前記第1の回転出力が生成される請求項１に記載のポインティングデバイス。
【請求項４】
前記第2の回転センサは、第2のフレームに取り付けられた第2の共鳴する質量をさらに含み、前記第2の回転センサ内の前記第2の共鳴する質量は、前記第2の軸に沿って共鳴し、前記第2の軸に沿った前記第2の共鳴する質量のずれは、コリオリの加速効果を使用して前記第2の回転センサによって測定されて、前記第2の回転出力が生成される請求項３に記載のポインティングデバイス。
【請求項５】
前記処理ユニットは、ポインティングデバイスの直線加速度を補償するように前記第1の回転出力および前記第2の回転出力を変更する請求項１に記載のポインティングデバイス。
【請求項６】
前記処理ユニットは、前記第1の軸に沿って前記加速度計によって検出された第1の加速度に、第1の利得行列を掛けて、第1の結果を前記第1の回転出力と組み合わせ、前記第2の軸に沿って前記加速度計によって検出された第2の加速度に、第2の利得行列を掛けて、第2の結果を前記第2の回転出力と組み合わせる請求項５に記載のポインティングデバイス。
【請求項７】
前記処理ユニットは、ポインティングデバイスの傾きを補償するように前記第1の回転出力および前記第2の回転出力を変更する請求項１に記載のポインティングデバイス。
【請求項８】
前記処理ユニットは、ポインティングデバイスの慣性基準フレームに入るように前記第1の回転出力および前記第2の回転出力を回転させることにより、前記傾きを補償する請求項７に記載のポインティングデバイス。
【請求項９】
前記出力ユニットは、θが、前記傾きであり、ayが、前記第1の回転出力であり、azが、前記第2の回転出力である
【数１】
2011238250.tif 000007
を計算することにより、前記慣性基準フレームに入るように前記第1の回転出力および前記第2の回転出力を回転させる請求項８に記載のポインティングデバイス。
【請求項１０】
前記処理ユニットは、ポインティングデバイスの傾きを補償するように前記第1の回転出力および前記第2の回転出力を変更することも行う請求項５に記載のポインティングデバイス。
【請求項１１】
前記処理ユニットは、前記第1の回転出力および前記第2の回転出力が、直線加速度に関して補償された後、ポインティングデバイスの慣性基準フレームに入るように前記第1の回転出力および前記第2の回転出力を回転させることにより、前記傾きを補償する請求項１０に記載のポインティングデバイス。
【請求項１２】
前記処理ユニットは、θが、前記傾きであり、ayが、直線加速度に関して補償された前記第1の回転出力であり、azが、直線加速度に関して補償された前記第2の回転出力である
【数２】
2011238250.tif 000008
を計算することにより、前記第1の回転出力および前記第2の回転出力が、直線加速度に関して補償された後、前記慣性基準フレームに入るように前記第1の回転出力および前記第2の回転出力を回転させる請求項１１に記載のポインティングデバイス。
【請求項１３】
前記加速度計は、少なくとも2つの異なる軸に沿ってポインティングデバイスの加速度を測定する請求項１に記載のポインティングデバイス。
【請求項１４】
ポインティングデバイスの動きを検出するための少なくとも1つのセンサと、
前記検出されたポインティングデバイスの動きを修正し、該修正された動きに基づき、静止状態を含む複数の状態の中から前記ポインティングデバイスの状態を判定するための処理ユニットと、を含むことを特徴とするポインティングデバイス。
【請求項１５】
前記少なくとも1つのセンサは、
第1の軸を中心とするポインティングデバイスの回転を測定するため、および前記回転に関連する第1の回転出力を生成するための第1の回転センサと、
第2の軸を中心とするポインティングデバイスの回転を測定するため、および前記回転に関連する第2の回転出力を生成するための第2の回転センサと、
ポインティングデバイスの加速度を測定し、前記加速度に関連する加速度出力を出力するための加速度計とをさらに含む請求項１４に記載のポインティングデバイス。
【請求項１６】
前記処理ユニットは、前記少なくとも1つのセンサにより検出された動きを周波数ドメインに修正し、所定の周波数範囲内の周波数応答の大きさを分析して、ポインティングデバイスが静止状態にあるかどうかを判定する請求項１４に記載のポインティングデバイス。
【請求項１７】
前記ポインティングデバイスの複数の状態は、安定状態、およびアクティブ状態を含み、
前記処理ユニットは、前記所定の周波数範囲内の前記周波数応答の前記分析に基づき、前記ポインティングデバイスが安定状態かまたはアクティブ状態かを判定することを特徴とする請求項１６に記載のポインティングデバイス。
【請求項１８】
前記処理ユニットは、ポインティングデバイスが、所定の期間にわたって静止状態にあると判定された場合、前記少なくとも1つのセンサに関連する較正情報を更新する請求項１４に記載のポインティングデバイス。
【請求項１９】
前記処理ユニットは、ポインティングデバイスが、前記所定の期間にわたって静止状態にあると判定された場合、少なくとも1つのセンサの1つまたは複数の回転センサに関連するオフセット値を更新する請求項１８に記載のポインティングデバイス。
【請求項２０】
デバイスに関連する動きを検出するステップと、
前記検出された動きを修正するステップと、
前記ポインティングデバイスの状態を複数の状態の中から判定するステップと、
前記判定するステップで判定された状態に基づき、システムを制御するステップと、
を含み、
前記複数の状態は、ユーザによって現在、把持されている状態を含み、
前記判定するステップは、前記修正された検出された動きに基づくことを特徴とする前記システムを制御するための方法。
【請求項２１】
前記ポインティングデバイスの状態が、ユーザによって現在、把持されている状態であると検出されているならば、前記動きに関連する微動パターンに基づき、前記ユーザを識別するステップをさらに含む請求項２０に記載の方法。
【請求項２２】
前記識別するステップに基づき、前記システムを選択的にオンにするステップをさらに含む請求項２１に記載の方法。
【請求項２３】
前記ポインティングデバイスの状態が、前記ユーザによって現在、把持されている状態であると検出されているならば、前記システムをオンにするステップをさらに含む請求項２０に記載の方法。
【請求項２４】
前記ユーザの身元に基づき、前記システムへのアクセスを制限するステップをさらに含む請求項２１に記載の方法。
【請求項２５】
前記システムは、メディアシステムであり、前記アクセスを制限するステップは、
前記身元に基づき、前記ユーザがメディアアイテムにアクセスすることを選択的に許すステップをさらに含む請求項２４に記載の方法。
【請求項２６】
前記微動パターンを複数の格納された微動パターンと比較することにより、前記ユーザの身元を判定するステップをさらに含む請求項２１に記載の方法。
【請求項２７】
前記微動パターン、および前記複数の格納された微動パターンは、周波数ドメインにある請求項２６に記載の方法。
【請求項２８】
前記微動パターン、および前記複数の格納された微動パターンは、時間ドメインにある請求項２６に記載の方法。
【請求項２９】
前記微動パターンと、前記複数の格納された微動パターンの間で一致が生じない場合、前記微動パターンは、格納される請求項２６に記載の方法。
【請求項３０】
前記微動パターンと、前記複数の格納された微動パターンの間で一致が生じない場合、前記ユーザには、既定のシステムアクセス許可セットが割り当てられる請求項２６に記載の方法。
【請求項３１】
前記識別するステップに応答して、前記ユーザに関連する選好設定を取り出すステップをさらに含む請求項２１に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願
本出願は、参照により開示が本明細書に組み込まれている、「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号の優先権も主張する。また、本出願は、参照により開示が本明細書に組み込まれている、「Methods and Devices for Removing Unintentional Movement in Free Space Pointing Devices」という名称の2005年1月5日に出願した米国特許仮出願第60/641,383号にも関連し、第60/641,383号の優先権も主張する。また、本出願は、参照により開示が本明細書に組み込まれている、「Freespace Pointing Devices and Methods for Using Same」という名称の2005年1月5日に出願した米国特許仮出願第60/641,410号にも関連し、第60/641,410号の優先権も主張する。また、本出願は、参照により開示が本明細書に組み込まれている、「Handheld Remote Control Device」という名称の2005年1月5日に出願した米国特許仮出願第60/641,405号にも関連し、第60/641,405号の優先権も主張する。また、本出願は、すべて同時に出願し、すべて参照により本明細書に組み込まれている、「Methods and Devices for Removing Unintentional Movement in Free Space Pointing Devices」、「Free Space Pointing Devices with Tilt Compensation and Improved Usability」、「Methods and Devices for Identifying Users Based on Tremor」という名称の米国特許出願第11/119,987号、第11/119,719号、および第11/119,688号にも関連する。
【０００２】
本発明は、３Ｄポインティング技術、ポインティングシステム、およびポインティングデバイス、ならびに他のタイプのハンドヘルドデバイスにおいて使用可能ないくつかの技術およびデバイスを説明する。
【背景技術】
【０００３】
情報通信に関連する技術は、ここ数十年の間に急速に進化している。テレビ、セルラー電話機、インターネット、およびオプションの通信技術(いくつかだけを挙げると)が一緒になってもたらす利用可能な情報、およびエンターテイメントオプションの洪水に、消費者は見舞われている。テレビを例にとると、この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対の直交するジンバルによって吊り下げられ、振子デバイスによってスピン軸を公称で垂直に配向されている。電気光学シャフト角エンコーダが、ユーザによってハンドヘルドコントローラデバイスが操作されると、デバイスの向きを感知し、結果の電気出力が、コンピュータディスプレイのスクリーン上のカーソルの動きを制御するのにコンピュータが使用できるフォーマットに変換される。
【００１０】
しかし、おおむね、ハンドヘルドデバイス設計の分野において、より具体的には、３Ｄポインタ設計の分野において改良の相当な余地が存在する。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】米国特許仮出願第60/566,444号
【特許文献２】米国特許仮出願第60/612,571号
【特許文献３】米国特許仮出願第60/641,383号
【特許文献４】米国特許仮出願第60/641,410号
【特許文献５】米国特許仮出願第60/641,405号
【特許文献６】米国特許出願第11/119,987号
【特許文献７】米国特許出願第11/119,719号
【特許文献８】米国特許出願第11/119,688号
【特許文献９】米国特許出願第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つのセンサを使用してハンドヘルドデバイスの動きを検出するハンドヘルドデバイス、例えば、３Ｄポインティングデバイスを提供することにより、以上、およびその他の必要性に応える。検出された動きは、次に、所望される出力に、例えば、カーソルの動きにマップされる。
【課題を解決するための手段】
【００１４】
本発明の例示的な実施形態によれば、ポインティングデバイスは、第1の軸を中心とするポインティングデバイスの回転を測定し、その回転に関連する第1の回転出力を生成するための第1の回転センサと、第2の軸を中心とするポインティングデバイスの回転を測定し、その回転に関連する第2の回転出力を生成するための第2の回転センサと、ポインティングデバイスの加速度を測定し、その加速度に関連する加速度出力を出力するための加速度計と、その加速度に基づいて第1の回転出力、および第2の回転出力を変更するため、およびその変更された第1の回転出力、および第2の回転出力に基づいて出力を生成するための処理ユニットとを含む。
【００１５】
本発明の別の例示的な実施形態によれば、３Ｄポインティングを制御するための方法は、３Ｄポインティングデバイスに関連する動きの欠如を検出するステップと、検出するステップの結果、３Ｄポインティングデバイスを低電力状態にするステップとを含む。
【００１６】
本発明のさらに別の例示的な実施形態によれば、システムを制御するための方法は、デバイスに関連する動きを検出するステップと、デバイスが、現在、ユーザによって把持されていることを動きが示すかどうかを判定するステップと、判定するステップの結果に基づいてシステムを制御するステップとを含む。
【００１７】
添付の図面は、本発明の例示的な諸実施形態を示す。
【図面の簡単な説明】
【００１８】
【図１】エンターテイメントシステムのための従来のリモコンユニットを示す図である。
【図２】本発明の例示的な諸実施形態が実施されることが可能な、例示的なメディアシステムを示す図である。
【図３】本発明の例示的な実施形態による３Ｄポインティングデバイスを示す図である。
【図４】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は、単に例示的な例として使用されていることが当業者には理解されよう。従来のジャイロスコープとは異なり、これらの回転センサは、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,ay,az)という表記を使用して示され、x、y、zは、x軸方向、y軸方向、およびz軸方向における３Ｄポインティングデバイスの加速にそれぞれ関連する例示的な3軸加速度計506のサンプリングされた出力値であり、ayは、y軸を中心とする３Ｄポインティングデバイスの回転に関連する回転センサ502からのサンプリングされた出力値であり、azは、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からのサンプリングされた回転データazに関する直線加速度補償が、ブロック614でもたらされることが可能である。利得行列、Cは、製造上の違いに起因して、回転センサの間で異なる。Cは、多くの回転センサに関する平均値を使用して計算されてもよく、あるいは各回転センサに関してカスタム計算されてもよい。
【００３３】
加速度計データと同様に、サンプリングされた回転データ612は、次に、ファンクション616において、サンプリングされた単位値から、角回転の速度に、例えば、ラジアン/秒に関連する値に変換される。また、この変換ステップは、サンプリングされた回転データを、例えば、スケールおよびオフセットに関して、補償するファンクション618によってもたらされる較正を含むことも可能である。ayとazの両方に関する変換/較正は、例えば、以下の数式を使用して達せられることが可能である。すなわち、
α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)では、ユーザは、0度のx軸回転値を有するものとして定義されることが可能な、例示的な慣性基準フレームにおいて３Ｄポインティングデバイス400を把持している。慣性基準フレームは、単に例として、図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を想定すると、カーソル410は、図6(d)で示されるとおり、代わりに、x2軸方向とy2軸方向の両方で並進させられる。これは、回転センサ502の感知軸が、現時点で、y軸とz軸の間の向きにされている(ユーザの手の中のデバイスの向きのため)という事実に起因する。同様に、回転センサ504の感知軸もまた、y軸とz軸の間の向きにされている(ただし、異なる象限における)。３Ｄポインティングデバイス400がどのように把持されているかに関してユーザにトランスペアレントなインタフェースを提供するため、本発明の例示的な諸実施形態による傾き補償は、回転センサ502および504から出力された読み取り値を、それらのセンサからの読み取り値を処理して、３Ｄポインティングデバイス400の回転モーションを示す情報にすることの一環として、変換して慣性基準フレームに戻す。
【００３９】
本発明の例示的な諸実施形態によれば、図5に戻ると、以上のことは、ファンクション622において、加速度計506から受け取られる入力yおよび入力zを使用して３Ｄポインティングデバイス400の傾きを算出することにより、達せられることが可能である。より具体的には、加速度データは、前述したとおり、変換され、較正された後、LPF624においてローパスフィルタリングされて、平均加速度(重力加速度)値を傾き算出ファンクション622に与えることが可能である。次に、傾きθが、ファンクション622において以下のとおり計算されることが可能である。すなわち、
【００４０】
【数１】
2011238250.tif 000003
【００４１】
値θは、0による除算を防止するようにatan2(y,z)として数値的に計算されて、正しい符号を与えることが可能である。次に、ファンクション620が、以下の数式を使用して、変換/較正済みの入力αyおよびαzの回転Rを実行して、
【００４２】
【数２】
2011238250.tif 000004
【００４３】
変換/較正済みの入力αyおよびαzを回転させて、傾きθを補償することができる。この例示的な実施形態において説明される傾き補償は、筐体基準フレームからのセンサ読み取り値をユーザの基準フレームに変換するためのより一般的な技術のサブセットであり、それらの技術は、「Free Space Pointing Devices with Tilt Compensation and Improved Usability」という名称の、前段で参照により組み込まれた特許出願でさらに説明されている。
【００４４】
較正済みのセンサ読み取り値が、直線加速度に関して補償され、３Ｄポインティングデバイス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軸を中心とする回転速度は、加速度計によって生成されたデータを使用し、以下を計算して、計算されることが可能である。すなわち、
【００４７】
【数３】
2011238250.tif 000005
【００４８】
加えて、回転センサによって測定されない寄生加速度効果も、除去されなければならない。それらの効果には、実際の直線加速度、回転速度および回転加速度に起因して測定された加速度、および人間の微動に起因する加速度が含まれる。
【００４９】
簡単に前述したとおり、静止検出ファンクション608は、３Ｄポインティングデバイス400が、例えば、静止しているか、またはアクティブである(動いている)かを判定するように動作することができる。この分類は、いくつかの異なる仕方で実行されることが可能である。1つの仕方は、本発明の例示的な実施形態によれば、所定のウインドウ、例えば、毎1/4秒にわたって、すべての入力(x,y,z,αy,αz)のサンプリングされた入力データの分散を計算することである。その分散が、次に、閾値と比較されて、３Ｄポインティングデバイスが、静止している、またはアクティブであると分類される。
【００５０】
本発明の例示的な諸実施形態による別の静止検出技術には、例えば、入力データに高速フーリエ変換(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の所定の閾値を下回って低下した場合に生じるものと考慮されたい。ACTIVE状態にある場合、モーションセンサ(例えば、回転センサおよび/または加速度計)から受け取られたデータは、線形フィルタリング、カルマンフィルタリング、カルマン平滑化、状態空間推定、期待値最大化、またはその他のモデルベースの技術などの、1つまたは複数の処理技術を使用して、ユーザによって導入された意図的な動きに関連する第1のデータと、ユーザによって導入された意図的でない動き(微動)に関連する第2のデータに分けられることが可能である。第1のデータは、次に、ハンドヘルドデバイスの意図される動き(例えば、カーソルの動きをサポートする)に関連する出力を生成するようにさらに処理されることが可能であるのに対して、第2のデータは、以下により詳細に説明するとおり、例えば、ユーザ識別のために、微動入力として使用されることが可能である。
【００５３】
状態遷移は、解釈されたセンサ出力に基づく、いくつかの異なる条件によって判定されることが可能である。例示的な条件メトリックは、時間ウインドウにわたる解釈された信号の変動、基準値と、時間ウインドウにわたる解釈された信号との間の閾値、基準値と、時間ウインドウにわたるフィルタリング済みの解釈された信号との間の閾値が含まれ、基準値と、開始時からの解釈された信号との間の閾値が、状態遷移を判定するのに使用されることが可能である。以上の条件メトリックのすべて、または任意の組み合わせが、状態遷移をトリガするのに使用されることが可能である。代替的に、他のメトリックも使用されることが可能である。本発明の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の静止状態からの遷移、または静止状態への遷移に基づき、表示されること、またはスクリーンから除去されることも可能である。
【００６１】
(微動)
前述したとおり、ハンドヘルドデバイスがSTABLE状態にある期間は、例えば、特定のユーザに関連する微動データを記憶するのに使用されることが可能である。通常、各ユーザは、異なる微動パターンを示す。本発明の例示的な諸実施形態によれば、ユーザ微動のその特性を使用して、ユーザ側の他のアクション(例えば、パスワードを入力すること)を全く要求せずに、いずれのユーザが、ハンドヘルドデバイスを現在、把持しているかを識別することができる。例えば、ユーザの微動パターンは、ユーザが、例えば、10秒間、可能な限りしっかりと３Ｄポインティングデバイスを把持するように要求される初期手続き中に、ハンドヘルドまたはシステムによって記憶されることが可能である(３Ｄポインティングデバイス400の中に格納されるか、またはシステムに伝送される)。
【００６２】
このパターンは、様々なユーザインタフェース機能を実行するユーザの固有の(または準固有の)シグネチャとして使用されることが可能である。例えば、ユーザインタフェースおよび/またはハンドヘルドデバイスは、現在の微動パターンをメモリの中に格納されているパターンと比較することにより、一群のユーザから、例えば、家族から、ユーザを識別することができる。この識別は、その後、例えば、その識別されたユーザに関連する選好設定を取り出すのに使用されることが可能である。例えば、３Ｄポインティングデバイスが、前段で参照により組み込まれた特許出願で説明されるメディアシステムと一緒に使用される場合、システムが、微動パターン比較を介してユーザを認識した後、そのユーザに関連するメディア選択アイテム表示選好が、アクティブにされることが可能である。また、システムセキュリティも、微動認識を使用して実施されることが可能であり、例えば、ユーザが３Ｄポインティングデバイス400を持ち上げた後に実行されるユーザ識別に基づき、システムへのアクセスが、禁止される、または制限されることが可能である。
【００６３】
本発明による微動パターン検出、微動パターン分類、および微動パターン格納のためのスキームを実施するのに、いくつかの異なるアプローチがとられることが可能である。1つの例示的な実施形態を、図9〜12に関連して以下に説明する。微動パターンを分類するための全体的な方法が、図9の流れ図に示されている。図9では、ステップ900において、データセットが、複数のユーザから収集される。データセット収集は、ユーザが、所定の期間(例えば、5〜15秒)にわたって意図的な動きを導入せずに、デバイスを把持するよう求められる訓練/初期プロセスの一環であること、またはハンドヘルドデバイスの使用中に「オンザフライ」で実行されることが可能である。さらに、データ収集は、ハンドヘルドデバイスを所定の方向で把持している間に実行されることが可能である。図10(a)〜図10(d)に示される、いくつかの単に例示的な周波数スペクトルデータが、4つの異なる向きで３Ｄポインティングデバイス400を把持する特定のユーザに関して収集された。
【００６４】
図9に戻ると、収集されたデータは、次に、ハンドヘルドデバイス400の異なるユーザにそれぞれが関連付けられたクラスを識別するために処理されることが可能である。例えば、ステップ902で、1つまたは複数の特徴セットが、収集されたデータの各セットから、分類プロセスにおいて使用するために抽出されることが可能である。ステップ902で使用するために選択された特定の1つまたは複数の特徴セットが、微動データに関する良好なクラス区別をもたらすように選択され、例えば、分類プールの中で区別されるべきユーザの数、ステップ900で収集されるべき訓練データの量およびタイプ、デバイス特性、例えば、図8に関連して前述した状態情報、および関連するベイズユーザ情報(例えば、時間帯)を含む、微動プロセスを介してユーザ識別に関連付けられる実施パラメータに依存して、異なることが可能である。ステップ902で使用されることが可能な特徴セットの例示的なリストを、以下にテーブル1として提供する。
【００６５】
【表１】
2011238250.tif 000006
【００６６】
以上の特徴セット、および対応する試験のいくつかに関する情報は、参照により開示が本明細書に組み込まれている、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月で見ることができる。以下により詳細に説明する、本発明の1つの単に例示的な実施形態によれば、収集されたデータのパワースペクトル密度(PSD)からの低周波数スペクトルが、ステップ902において、特徴セットとして使用された。前段でリストアップしたドメイン、変換、その他に加え、特徴セットは、微動検出/識別が使用されるべきハンドヘルドデバイス内で利用可能なセンサの数およびタイプに基づいて異なることも可能である。例えば、前述の例示的な諸実施形態で説明したハンドヘルドの、３Ｄポインティングデバイス400では、微動データは、回転センサ、加速度計のいずれか、または両方、あるいは回転センサと加速度計の任意の組み合わせから収集されることが可能である。
【００６７】
収集されたデータから特徴セットを抽出した後、ステップ904で、特徴セットは、縮小されることが可能である。より具体的には、ステップ904で、特徴セットは、クラス(ユーザら)を区別する目的の特徴セットを最もよく表す特徴セットにまで縮小されることが可能である。例えば、ユーザ微動データのDC値が、縮小された特徴セットから除外されることが可能である一方で、ユーザ微動データの9Hz値は、縮小された特徴セットの中に含められることが可能である。というのは、この9Hz値は、異なるユーザの手の微動を区別する際に、より役に立つと見込まれるからである。縮小された特徴セットは、例えば、主成分分析(PCA)アルゴリズムを使用して判定されるMost Expressive Feature(MEF)セットであることが可能である。PCAアルゴリズムは、特徴セットの特異値分解を使用して、特徴ベクトルを最もよく表現する(例えば、最小平均二乗誤差(MMSE)の点で)基底ベクトルの適切なセットを自動的に求める。PCA技術を適用するための例は、参照により開示が本明細書に組み込まれている、P.NavarreteおよびJ.Ruiz-del Solar著、「Eigenspace-Based Recognition of Faces: Comparisons and a New Approach」、Image Analysis and Processing、2001年で見ることができる。
【００６８】
次に、縮小された特徴セットは、ステップ908で、クラスタを識別するのに使用されることが可能であり、この識別は、監督された学習、すなわち、いずれの個人ユーザが、いずれのデータセットに寄与したかについてのアプリオリの知識に基づいてプロセスが作用する学習を使用して、または監督されていない学習、すなわち、プロセスが、アプリオリの情報を全く有さない学習を使用して実行されることが可能である。例えば、K平均クラスタ化およびRBFニューラルネット分類を含め、様々な技術が、本発明の例示的な諸実施形態に従って、微動データに関連するクラスタを判定するのに適用されることが可能である。クラスタが識別されると、ステップ910で、現在のセンサ出力に基づき、新たな特徴ベクトルが、一部のクラスタの範囲内にあるか、または一部のクラスタの範囲外にあるかを区別するのに、すなわち、ハンドヘルドデバイス400を現在、把持しているユーザを識別するのに、識別されたクラスタに関連する推定された統計(例えば、平均および/または共分散)が、使用されることが可能である。学習方法は、初期ユーザ/クラスタインスタンス化の後、センサ動作中にクラスタ中心を純化することにより、センサ状態情報(例えば、図8に関連して前述した)の使用を介して強化されることが可能である。このようにして、最大量の利用可能なデータを使用してクラスタが純化されて(監督された形で)、さらなる監督されていない学習がサポートされる。
【００６９】
検出された手の微動に基づいてユーザを識別するための前述した例示的な諸技術を試験するのに、他の4名のユーザに関連するデータセット(図10(a)〜図10(d)に示されたデータに加えて)が、おおむね図9の流れ図に関連して前述した形で、収集され、分析されて、手の微動の分析を使用して、異なるユーザらを区別する/識別することができることが証明された。データセットの2つは、ハンドヘルドデバイスを把持している同一の人から収集されたのに対して、他の3つのデータセットは、ハンドヘルドデバイスを把持している異なる人々から収集された。この試験では、データは、ステップ900で、5つのデータセットのそれぞれに関して、回転センサ812の両方から収集された。データセットのそれぞれが、ゼロ平均および単位分散を得るように処理された。この例示的な試験に関して、ステップ902で、PSD推定(例えば、ピーク周波数)からの低周波数スペクトルが、特徴セット抽出のために使用され、データ収集時間にわたって平均された。より具体的には、256ポイントFFTが、0〜30Hzの周波数範囲内のN=2048ポイントにわたって75%の重なりで平均された。抽出された特徴セットは、PCAアルゴリズムを使用して、38×20行列から20×20行列にまで縮小され、アルゴリズムは、抽出された特徴セットに関連する一部の固有ベクトルが、他の固有ベクトルほど表現力がなく、破棄されることが可能であると正しく認識した。図11は、この実施例では、ステップ904の一環として生成される固有値を示す。図11で、線1100は、特徴セット2(回転センサ504、z軸回転から収集されたデータ)に関連する固有値を示し、線1102は、特徴セット1(回転センサ502、y軸回転から収集されたデータ)に関連する固有値を示す。
【００７０】
この試験ケースでは、クラスタ化するステップは、いずれのユーザがいずれのデータセットを生成したかについてのアプリオリの知識(監督された学習)に基づいて実行された。実際のインプリメンテーションでは、自動化されたクラスタ化技術、例えば、前述した諸技術の1つが、ステップ906で使用される。この単に例示的な試験の場合、クラスタは、回転センサ502と回転センサ504から受け取られたデータに関して別々に識別されて、各データセットに関連する2つのクラス重心が定義された。次に、データセットの中の各ベクトルと2つのクラス重心との間の距離(この実施例では、ユークリッド距離)の合計が、計算された。このプロセスの結果が、図12に示されている。図12では、x軸は、縮小されたデータセットのベクトルを表し、y軸は、距離を表し、垂直の線は、距離を異なるクラス(ユーザ)中心に区分化する。各区分内で、関連するクラスのベクトル‐重心距離は、その他のクラスのベクトル‐重心距離よりも大幅に低く、良好なクラス分離、およびユーザがハンドヘルドデバイスに生じさせる手の微動に基づいてユーザを区別/識別する能力を示すことを見て取ることができる。例えば、特徴セットなどの一部の特定の選択が、例示される試験を実行するために行われたが、それらの選択は、本明細書で述べたとおり、単に例示的である。
【００７１】
本発明の例示的な諸実施形態によるいくつかの変形形態が、使用されることが可能である。例えば、クラスタが、ステップ908で識別されると、各クラスタの判別特徴を強調するために、クラス判別ステップが実行されることが可能である。クラス判別式は、セット内で最小グループ化をもたらし、セット間で最大距離をもたらす変換行列をデータに適用するように作用する。全体的な共分散を記述する行列、および複数のクラスタの各クラスタの共分散の合計を記述する別の行列を所与として、線形判別式のタスクは、クラス間の距離を最大化することと、クラス内散乱を最小化することを同時に行う線形変換を導き出すことである。パターン認識の一般的な分野において、いくつかの判別式、例えば、フィッシャ線形判別式(FLD)が知られているが、本明細書で説明されるとおり、手の微動に基づいてユーザを識別するという特定の問題にすべてが適している可能性は低い。前段の実施例で使用された1つの特定の判別式は、EFM-1判別式として知られており、参照により開示が本明細書に組み込まれている、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つまたは複数のモーションセンサを組み込んだ、またはハンドヘルドデバイスに関連する手の微動を測定するための他の何らかの機構を有する任意のハンドヘルドデバイス、例えば、セル電話機、PDAなどにおいて使用されることも可能である。訓練期間を使用して、例えば、ステップ900〜908が実行されることが可能であり、その後、ハンドヘルドデバイスは、現在のユーザの手の微動に関連するデータを単に収集し、そのデータを、あらかじめ確立されたユーザクラスと比較して、現在のユーザを識別することができる。次に、その識別情報が、実施例を前述した、いくつかの異なる応用例において使用されることが可能である。
【００７３】
例えば、ユーザの身元(微動ベースの認識、または別の識別技術によって認識された)を使用して、そのユーザによって行われたジェスチャが解釈されて、ユーザインタフェースに、例えば、参照により前段で組み込まれた特許出願のユーザインタフェースにコマンドがシグナルされることが可能である。例えば、時間にわたる動きのパターンが、特定のインタフェースコマンドに関連付けられるジェスチャベースのコマンドシステムにおいて、異なるユーザらが、ハンドヘルドの時間にわたる、いくらか異なる動きパターンを使用して、同一のインタフェースコマンドを開始することができる(異なる筆跡スタイルを有する異なる人々と同様に)。ユーザ識別を可能にする能力は、次に、異なるジェスチャパターンにマップされ、例えば、ハンドヘルドの中、またはシステムの中に格納されて、システム全体が、時間にわたる動きの各パターンを、ユーザによって意図されるコマンドジェスチャとして正しく識別するようになることが可能である。
【００７４】
(基準フレームマッピング)
前述したとおり、本発明の例示的な諸実施形態は、３Ｄポインティングデバイス内のセンサから受け取られた動きデータを処理して、そのデータを、３Ｄポインティングデバイスの筐体の基準フレームから、別の基準フレームに、例えば、ユーザの基準フレームに変換する。スクリーン上、例えば、テレビ上に表示されるユーザインタフェースを制御するのに使用される３Ｄポインティングデバイスの例示的な応用例では、ユーザの基準フレームは、テレビスクリーンに関連する座標系であることが可能である。いずれにせよ、筐体基準フレームから別の基準フレームへのデータの変換は、デバイスの見地からではなく、ユーザの見地からの操作をもたらすことにより、ハンドヘルドデバイスの使いやすさを向上させる。このため、ユーザが、３Ｄポインティングデバイスを把持しながら、ディスプレイの前方で左から右に手を動かすと、カーソルは、３Ｄポインティングデバイスの向きにかかわらず、左から右の方向に移動する。
【００７５】
この説明を簡単にするため、３Ｄポインティングデバイスに関連する例示的な処理システムが、例えば、より詳細に前述したとおり、図13に示されている。図13では、ハンドヘルドシステムは、1つまたは複数のセンサ1301、例えば、回転センサ、ジャイロスコープ、加速度計、磁力計、光センサ、カメラ、または以上の任意の組み合わせを使用して、動きを感知する。センサは、次に、ブロック1302で解釈されて、生じた動きの推定をもたらす。次に、処理ブロック1303が、デバイスの自然の(筐体)基準フレームからの測定された動きを、ユーザの基準フレームに変換する。次に、その動きが、意味のあるアクションにマップされ1304、アクションが、ブロック1305で解釈され、システムに転送されて、スクリーン上のカーソルを動かすことなどの、意味のある応答がもたらされる。
【００７６】
ブロック1303は、検出された動きを、デバイスの基準フレームではなく、ユーザの基準フレームに変換する。向きは、オイラー角、方向余弦行列(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の異なる表現に基づき、わずかに異なる可能性があることに留意されたい。図14は、筐体基準フレームからユーザの基準フレームへの変換をグラフで示す。
【００７８】
動作中、デバイスは、インプリメンテーションに依存する形でQを推定して、以上の変換を実行する。前述した1つの例示的なインプリメンテーションには、傾き(すなわち３Ｄポインティングデバイスがユーザによって把持される仕方に基づく３Ｄポインティングデバイスのx軸ロールの変動)を補償することがかかわる。向きは、筐体フレームの重力加速度に起因する加速度、Abをまず推定することにより、計算される。定義上、ユーザフレームにおける重力加速度に起因する加速度ベクトル、Agは、[0,0,-1]に設定される。重力加速度は、方位(z軸を中心とする回転)を推定することができないので、方位に関する筐体フレーム推定が使用される。したがって、回転四元数は、z=0平面に回転の軸を有する。以下は、回転四元数を計算するための、いくつかの数学的に等価な方法の1つである。すなわち、
V=‖Ab‖x‖Ag‖  (単位ベクトルのクロス乗積)
qV=‖V‖
α=sin-1|V|
Q=Quaternion[qV,α/2]=[qV*sin(α/2),cos(α/2)]
次に、位置が、ユーザフレームにおける加速度の二重積分として計算される。ユーザフレームにおける加速度は、前述のQによってユーザフレームに入るように回転させられた筐体フレームの加速度である。通常、原点は、デバイスが最初にアクティブにされた際、0であるものと想定されるが、原点は、通常の動作中に手動で、または自動的にリセットされてもよい。
【００７９】
一般に、デバイスが動いていない場合、Pu'、Pu''、Wu、およびWu''はすべて、0である。この例示的な実施形態では、Pb''およびWbが測定される。無限の数の回転Qが存在するが、利用可能なセットから最小限の回転が選択されて、Wbに基づき、Wuを推定するのに使用されることが可能である。代替的に、Qは、離散時間積分を使用して以下に示されるとおり、Wbを時間にわたって積分することにより、想定される開始オフセット向きQoを使用して計算されてもよい。すなわち、
WbAngle=|Wb|*period
QDELTA=[‖Wb‖sin(WbAngle),cos(WbAngle)]
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の基準フレームを選択するための技術として、ユーザ認識および明示的コマンド(例えば、ボタン選択またはユーザインタフェース選択)を含む。
【００８５】
さらに、前述した例示的な諸実施形態の一部は、速度ドメインでデータを扱うが、本発明は、そのように限定されない。本発明によるマッピングまたは変換は、代替的に、またはさらに、例えば、位置データまたは加速度データに対して実行されることも可能であり、並進の動き、回転の動き、またはその両方の動きためであることも可能である。また、処理の順序は、重要ではない。例えば、ハンドヘルドデバイスが、ジェスチャコマンドを出力するのに使用されている場合、マッピングが、まず実行され、次に、ジェスチャが判定されることが可能であり、あるいはジェスチャが、まず判定されることが可能であり、次に、マッピングが実行されることが可能である。
【００８６】
(意図的でない動きの除去)
本発明の例示的な諸実施形態によれば、感知された動きを処理するための諸技術は、例えば、ボタン作動などの、他のユーザ‐デバイス対話、および/または微動に起因する望ましくない効果を除去する。一般に、図15に示されるとおり、システムへの入力は、ハンドヘルドの３Ｄポインティングデバイスの人間の動きである。その動きが、デバイスによって感知され(ブロック1510)、例えば、ブロック1512で、代表的な動きになるように処理される。この処理の詳細な実施例は、前段で説明した。しかし、本発明のそれらの例示的な実施形態は、前述した例示的なハンドヘルドの３Ｄポインティングデバイス400における応用に限定されず、他のハンドヘルドデバイス、例えば、他のタイプの動きセンサを使用する３Ｄポインティングデバイスも含むことを明確に意図していることに留意されたい。代表的な動きは、次に、意味のある表現に変換され(ブロック1514)、この表現は、ブロック1516で、本発明の例示的な諸実施形態による例示的な「人的要因」技術によって処理される。本明細書で説明される例示的な実施形態では、人的要因処理1516の出力は、次に、例えば、2Dポインタの動きにマップされる。処理された動きは、次に、ハンドヘルドデバイスによって出力され、その動きの例が、スクリーン上のポインタの動きを制御するのに使用されることが可能なデータである。
【００８７】
本発明のこの例示的な実施形態は、ボタンクリックを含む、ユーザによって開始されたイベント中の動きを処理するための様々な異なる技術を含む。第1の例示的な実施形態によれば、ユーザアクション、例えば、ボタンクリックが行われた後、モーションセンサ、例えば、回転センサ、加速度計、磁力計、ジャイロスコープ、カメラ、または以上の任意の組み合わせによって生成された動き情報を処理するのに、距離閾値と時間閾値がともに使用される。距離だけでは、ボタンクリック中に安定しているとともに応答性のよいポインタをもたらすのに十分でない可能性がある。ハンドヘルドデバイスによってボタンの押し下げが検出されると、1516からの出力されたポインタの動きは、距離が距離閾値を超えるまで、または経過した時間の量が時間閾値を超えるまで、抑圧される。距離閾値と時間閾値のいずれか、または両方が、例えば、ボタン押し下げアクションとボタン解放アクションに関して異なる可能性がある。例示的なボタン処理は、オプションとして、コマンドをハンドヘルドに送ることによって無効にされてもよい。
【００８８】
また、異なるボタンが、互いに異なる閾値を有することも可能である。ボタンクリック中にハンドヘルドが経験する動きの量は、ユーザ、ボタン作動の力、ボタン移動距離、および支持体(通常、ユーザの手)のハンドヘルド中心に対するボタンの位置を含むが、以上には限定されない、いくつかの要因に依存する。ボタン動き処理パラメータは、各ボタンのパフォーマンスを最適化するように個々に設定されてもよい。加えて、パラメータは、セッション履歴に基づき、またはユーザがシステムに知られている場合、ユーザに基づき、学習されることも可能である。
【００８９】
さらに、人的要因処理ファンクション1516が、ハンドヘルドデバイスの過去の動きの履歴を格納し、追跡することが可能である。例えば、ボタンが押し下げられたことをハンドヘルドデバイスが検出すると、ハンドヘルドデバイス内の処理ユニットが、ユーザによって開始されたボタンイベントより前の時点まで後退することができる。ボタンを物理的に作動させることは、心理学的試験および動的デバイス測定によって判定されることが可能な、不定の測定可能な時間を要する。ボタンが作動させられると、デバイスは、ボタン作動が行われる間/行われた後にモーションセンサから取り込まれたデータサンプルを削除することにより、ボタン作動が行われたのより前の状態に戻ることができる。したがって、ボタン押し下げ中に生じた不規則な動きが、無視され、「消去」される。例えば、検出されたボタン押し下げに応答して、ブロック1516からの出力が、検出された位置P1(ボタン押し下げアクションの後に続く)から、呼び戻された位置P2まで変化することが可能であり、この位置P2は、所定の期間、ボタン押し下げアクション検出に先立ってブロック1516によって、以前に出力されている。デバイスが、1つのボタンアクションを既に処理しており、別のボタンアクションが行われた際に、動きを依然として抑圧している場合、人的要因処理ファンクション1516が、後退プロセスを繰り返すことは必要ない可能性がある。
【００９０】
ユーザインタフェースにおいて、少なくとも2つの通常のタイプのボタンアクティブ化が行われる可能性がある。図16に示される第1のタイプ(微細モードクリック)では、ユーザは、小さい目標の上の正確な作動を意図し、デバイスを注意深く位置合わせし、動きを止め、次に、ボタンを押し下げる。第2のタイプ(粗モードクリック)では、目標は、大きく、ユーザは、次のアクションを予期し、すなわち、ユーザは、目標の上で止める、またはさまようことなしに、ポインタを単に減速させ、代わりに、「オンザフライ」で目標をクリックすることを目指すことができる。微細モードクリックの場合、前述した処理技術は、ハンドヘルドデバイス内のモーションセンサからの複合データ出力ストリームから、意図的でない動きデータを正確に除去するように動作する。しかし、第2のタイプの動きの場合、さらなる拡張が、パフォーマンスを向上させるのに役立つ可能性がある。
【００９１】
粗モードクリックによって提起されるさらなる課題に対処するため、人的要因処理ユニット1516は、第2の代替の技術、または補足的な技術を使用することができる。この第2の例示的な実施形態によれば、モーションセンサから受け取られた動きデータが、動きベクトルになるように処理され、ユーザは、ボタン作動中に、カーソルの何らかの動きの変化、またはデバイスからの他の関連する出力を意図する可能性があるものと想定される。ニュートンの第1法則で知られているとおり、「運動している物体は、運動を続ける」。このため、ハンドヘルドデバイス上でボタンが押されると、そのことにより、経路から外れる高周波数の動きが生じる。動きベクトル、およびフィルタリングされた動き情報を使用して、ポインティングデバイスからの出力は、ユーザによって開始されたイベント中、またはそのイベントの後、それまでの動きの履歴と整合性のある形で継続することが可能である。これは、処理チェーンにフィルタを追加することによって達せられることが可能である。フィルタは、イベント自体に関連する高周波数の動きを排除しながら、ユーザによって開始されたイベント中、およびそのイベント後の、意図された動きを許すように設計される。ローパスフィルタリングなどの多くの処理方法が、高周波数成分の除去を可能にするが、待ち時間の増加という犠牲を払う。待ち時間(デバイスの動きと、ポインタが動く時点の間の時間)は、ユーザに重要である可能性があるので、本発明の例示的な諸実施形態は、ユーザによって開始されたイベントが検出されると(例えば、ユーザイベントをユーザインタフェースに伝えるのにハンドヘルドデバイスによって使用されるのと同一の信号に基づき)、信号処理パスに入るように切り替えられる適応フィルタを使用することができる。適応フィルタは、急な高周波数のボタン押し下げを弱めるローパスフィルタとして構成される。適応フィルタリングブロックへのさらなる入力は、ボタンが完全に跳ね返り制御される前に行われる、オプションのボタン活動前警告である。ボタン活動前警告は、その警告なしの場合よりも早期に、ボタンイベントが処理に通知されることを可能にすることにより、フィルタ待ち時間用件を少なくする。ボタン活動前警告を伴う適応フィルタは、意図される動きと待ち時間の間の技術上のトレードオフを最小限に抑える。
【００９２】
本発明のさらに別の例示的な実施形態によれば、３Ｄポインティングデバイスの設計者は、通常、望ましくない動きの方向を設計時に知っているので、動きの乱れの方向は、したがって、デバイスのエルゴノミクス、および意図される使用に基づいて分かる。例えば、設計者は、デバイスを基準としたボタン作動の方向を知っている。主要な動きは、ボタン移動ベクトルに平行な直線の動き、またはユーザグリップを中心とするトルクによる回転の動きから成る。その知識は、ボタン作動の動きの知識を含む方向選好フィルタの実施を可能にする。例えば、フィルタ設計は、カルマンフィルタや適応フィルタなどの状態空間フィルタを含むことが可能である。そのようなフィルタは、ボタン作動中に、知られている方向の意図される経路からの所望されない逸脱を検出し、次に、ボタン作動中に、所望される動きの経路を補間する。この選好フィルタリングは、意図されないボタンの動きを依然として除去しながら、方向の意図される変化中、より応答性のよいポインタをもたらす。状態空間フィルタは、通常の使用の過程で、設計パラメータを学習するように拡張されることが可能であることが、当業者には認識されよう。
【００９３】
本発明の例示的な諸実施形態による人的要因処理ファンクション916は、前述した技術のいずれか、または両方を実施することができ、両方が使用される場合、それらの技術の間で切り替えを行うクラシファイアを提供する。例えば、第1の正確なタイプのボタンクリックが検出された場合、第1の技術が使用されることが可能である。第2のそれほど正確でないボタンクリックが検出されると、第2の技術が使用されることが可能である。技術の間で切り替えを行うための1つのクラシファイアは、ボタン作動の時点における、またはボタン作動の直前の時点におけるハンドヘルドデバイスの速度を使用することができる。例えば、ハンドヘルドデバイスの速度が、所定の速度閾値を下回っている場合、ハンドヘルドデバイスが、所定の距離閾値を超えて動いたことをモーションセンサによって検出された動きが示すか、または所定の時間が経過するまで、検出されたイベントに続いて生成された動きデータを破棄する第1の技術が使用され、そうではなく、(b)ハンドヘルドデバイスの速度が、所定の速度を超えている場合、検出されたイベントに続いて生成された動きデータをフィルタリングする第2の技術が使用される。
【００９４】
以上の例示的な諸実施形態で述べたボタンクリックまたはボタン押し下げは、ボタン押し下げとボタン解放をともに含むが、以上には限定されない。以上の技術のすべては、望ましくない動きを生じさせる、いずれの既知のデバイス対話にも適用されることが可能であり、ボタンクリックに限定されない。例えば、以上の諸技術は、スクロールホイール作動、タッチパッド使用、または容量性ストリップにも適用されることが可能である。このため、本発明の例示的な諸実施形態は、別のイベントをアクティブにすること、または非アクティブにすることに基づいて生じる不要な動きを取り消すための方法およびデバイスを説明する。
【００９５】
前述した方法に関するパラメータは、イベントに関する予期される動き特性をサポートするように適合されることが可能である。例示的な実施形態では、ボタン押し下げに関するパラメータは、ボタン解放に関するパラメータとは異なることが可能である。動きの取り消しに加えて、ユーザインタフェースは、本発明によるユーザイベントの扱いに、さらなる制約を課す、または示唆することができる。例えば、Microsoft Windows(登録商標)オペレーティングシステムでは、ボタンが押し下げられている間にカーソルが動いた場合、「ドラッグ」アクションが開始される。したがって、ユーザによるボタン押し下げアクションに応答する動きデータ処理に関連するパラメータは、不要なドラッグイベントを防止するために、ボタン作動中のポインタの動きを制限する傾向がある値を有することが可能である。これとは対照的に、Microsoft Windows(登録商標)オペレーティングシステムにおけるボタン解放後のカーソルの動きは、ユーザインタフェースにおけるオブジェクトに対してほとんど影響を与えず、したがって、本発明による例示的な動きデータ処理は、ボタン押し下げに続く動きデータ処理に関連する、対応するパラメータと比べて、ポインタの動きをそれほど制限しない傾向にあるパラメータ(例えば、時間閾値および/または距離閾値、フィルタ係数、その他)を使用することが可能である。
【００９６】
動きは、不要なボタンの動きを除去するのに役立つ、いくつかの異なる形で、速度ドメインまたは位置ドメインにおいて処理されることが可能である。速度ドメインにおける単純なフィルタリングが使用されてもよい。フィルタは、FIRフィルタまたはIIRフィルタであることが可能であるが、それらのフィルタは、望ましくない量の処理遅延を生じさせる可能性がある。適応フィルタが、それほど多くの遅延を生じさせずに、うまく使用されることが可能である。
【００９７】
本発明の例示的な諸実施形態は、カルマンフィルタ(または拡張されたカルマンフィルタ)としても実施されることが可能である。カルマンフィルタは、最も可能性の高い使用シナリオ(静止している、または動いている)を選択し、適切な動きを適用することができる。ニューラルネットワークが、同一の結果のために使用されることが可能である。このため、本発明は、(a)イベントが生じたことを検出するため、(b)ユーザの意図する動きを推測するため、および(c)ハンドヘルドデバイスの実際の動きではなく、ユーザの意図する動きを解釈するための方法を提供することが理解されよう。動きは、6DOF３Ｄドメイン、またはマップされた2DOFポインティングドメインにおいてであることが可能である。6DOF３Ｄドメインは、デバイスの筐体基準フレーム、またはユーザの基準フレームにあることが可能である。
【００９８】
本発明の別の例示的な実施形態によれば、ユーザによって開始されたイベントに関連する動きは、モデル化されて、モーションセンサから収集された動きデータに基づいてハンドヘルドデバイスから出力をもたらす動きの等式に明示的に含められることが可能である。より具体的には、ユーザによって開始されたイベントのボタン押し下げの例を使用すると、ボタン押し下げによって生じさせられる動きが、アプリオリにモデル化されて、ボタン押し下げアクションに関連する1つまたは複数の例示的な動きの大きさおよび方向が算出され、それらの値が、次に、ハンドヘルドデバイスのメモリユニットの中に格納されることが可能である。次に、ボタン押し下げが検出されると、ハンドヘルドデバイスの処理ユニットは、動きの等式におけるモデル化された動きを使用して、出力が、ボタン押し下げに関連していた、モーションセンサによって検出された動きではなく、ユーザの意図する動きを反映するように、出力を適応させることができる。処理ユニットは、モデル化された値を様々な異なる形で使用すること、例えば、それらの値を、検出された動きの値から引くこと、特定のユーザによって開始されたイベントに関連するモデル化された値に基づいて、検出された動きの値を弱めること、ハンドヘルドの出力に関連する意味マップを調整することなどができる。
【００９９】
このため、本発明の例示的な諸実施形態は、テレビを制御することを含め、様々な用途のためにハンドヘルドリモコンを実施する革新的な方法を説明することを見て取ることができる。また、デバイスは、他のアプリケーションのために、例えば、パーソナルコンピュータに対する入力デバイスおよびオブジェクトコントロールとして使用されることも可能である。
【０１００】
リモコンはもはや、ボタンのミニチュアキーボードに似る必要がない(今日の通常のIRリモートは、40個のボタンを有する)。むしろ、本発明によるリモコンデバイスは、ポインティングの活動が、ボタンの単なる押し下げに加えて、情報を伝えるという点で、マウスによく似ていることが可能である。結果は、デバイスおよびアプリケーションのリモコンのための、はるかに強力なユーザ環境である。マウスのない今日のPCを想像すると、それが今日のTV制御環境である。次に、マウス様の機能をTVに追加することを想像されたい。もたらされるのは、大いに向上したユーザ体験である。要求されるのは、ポインティングおよびボタンアクティブ化を可能にすることができる無線ハンドヘルドだけである。本発明は、まさにそのようなデバイスを説明する。従来のリモコンに優るこの設計の1つの利点は、この設計が、ボタンアクティブ化を検出することに加え、ユーザが、スクリーン上でカーソルを位置づけることを可能にすることである。結果は、ジェスチャ認識に加え、スクリーンセンシティブなボタンおよびコントロールが可能なことである。結果は、機能を追加することが、新たなボタンが追加されることを要する、従来のリモコンと比べると、非常に強力で柔軟性があり、拡張性のあるユーザインタフェースである。本発明の例示的な諸実施形態は、例えば、デバイスの角速度を測定するMEMSベースの回転センサを使用するハンドヘルドリモコンデバイスを使用して、以上の能力を提供する。加えて、例示的な諸実施形態は、意図的でない動きを除去するティーチ筐体フレーム調整、較正、および後処理を可能にする。結果は、従来のハンドヘルドリモコンデバイスより、パフォーマンスが良好であり、安価であり、小さい完全に独特なインプリメンテーションである。
【０１０１】
それらの例示的な諸技術は、MEMSセンサを使用して、回転角速度および直線加速度を測定する。次に、較正が、静止検出と一緒に使用されて、生の読み取り値が調整され、スケーリングされる。次に、直線加速度読み取り値が、積分されて、ハンドヘルド筐体フレームの向きを算出するのに使用される。この向きデータが、次に、回転速度読み取り値を、適切な基準フレームにマップするのに使用される。最終ステップは、人間の微動のような意図的でない動きがフィルタリングされて除去されるように、すべての動きの読み取り値が、後処理されることである。
【０１０２】
本発明の例示的な諸実施形態によるデータを処理するためのシステムおよび方法は、メモリデバイスの中に含まれる命令シーケンスを実行する1つまたは複数のプロセッサによって実行されることが可能である。そのような命令は、2次データ記憶デバイスなどの、他のコンピュータ可読媒体から、メモリデバイスの中に読み込まれてもよい。メモリデバイスの中に含まれる命令シーケンスの実行により、プロセッサは、例えば、前述したとおり、動作するようにさせられる。代替の諸実施形態では、本発明を実施するのに、ソフトウェア命令の代わりに、またはソフトウェア命令と組み合わせて、配線回路が使用されてもよい。
【０１０３】
前述した例示的な諸実施形態は、すべての点で、本発明を制限するのではなく、例示することを意図している。このため、本発明は、当業者によって本明細書に含まれる説明から導き出されることが可能な、詳細な実施の多くの変形が可能である。例えば、以上の例示的な諸実施形態は、とりわけ、デバイスの動きを検出する慣性センサの使用を説明したが、前述した信号処理に関連して、慣性センサの代わりに、または慣性センサに加えて、他のタイプのセンサ(例えば、超音波、磁気、または光学)が使用されることも可能である。すべてのそのような変形形態および変更形態が、添付の特許請求の範囲によって定義される、本発明の範囲および趣旨に含まれるものと考えられる。本出願の説明において使用されるいずれの要素、動作、または命令も、特に明記しない限り、本発明に不可欠である、または必須であると解釈されてはならない。また、本明細書で使用する冠詞「a」は、1つまたは複数のアイテムを含むことを意図している。
【符号の説明】
【０１０４】
400  ポインティングデバイス
402、404  ボタン
406  スクロールホイール
408  ディスプレイ
410  カーソル
502、504、506  センサ
【図１】
2011238250.tif 000009
【図２】
2011238250.tif 000010
【図３】
2011238250.tif 000011
【図４】
2011238250.tif 000012
【図５】
2011238250.tif 000013
【図６Ａ】
2011238250.tif 000014
【図６Ｂ】
2011238250.tif 000015
【図６Ｃ】
2011238250.tif 000016
【図６Ｄ】
2011238250.tif 000017
【図７】
2011238250.tif 000018
【図８】
2011238250.tif 000019
【図９】
2011238250.tif 000020
【図１０ａ】
2011238250.tif 000021
【図１０ｂ】
2011238250.tif 000022
【図１０ｃ】
2011238250.tif 000023
【図１０ｄ】
2011238250.tif 000024
【図１１】
2011238250.tif 000025
【図１２】
2011238250.tif 000026
【図１３】
2011238250.tif 000027
【図１４】
2011238250.tif 000028
【図１５】
2011238250.tif 000029
【図１６】
2011238250.tif 000030