(57)【特許請求の範囲】
【請求項１】
デバイスの移動をカーソル位置にマッピングする方法であって、
前記デバイスの直線位置および角度位置の少なくとも一方を推定するステップと、
第1のカーソルロケーションを生成する第1のマッピングアルゴリズムと第2のカーソルロケーションを生成する第2のマッピングアルゴリズムの両方を使用して、前記推定された直線位置および前記推定された角度位置の少なくとも一方を処理するステップと、
最終カーソル出力を生成するために、前記第1のカーソルロケーションおよび前記第2のカーソルロケーションを結合するステップとを含み、
前記マッピングアルゴリズムの少なくとも一方は、絶対ポインティングアルゴリズムであり、前記絶対ポインティングアルゴリズムは、デバイス角度運動に対するカーソル運動の比が、前記デバイスとカーソルが表示されるディスプレイとの間の距離の関数として変化する特性を有する、
方法。
【請求項２】
前記絶対ポインティングアルゴリズムは、前記デバイスの前ポインティング方向(本体-フレームx軸)と、前記カーソルが表示されるディスプレイの表面の交差に基づいてデバイス運動をカーソルロケーションにマッピングする請求項1に記載の方法。
【請求項３】
前記絶対ポインティングアルゴリズムは、
【数１】
0005866199.tif 000128
として定義され、式中、
uuxは、ユーザの参照フレームにおける直線位置x軸の検出値であり、
uuyは、ユーザの参照フレームにおける直線位置y軸の検出値であり、
uuzは、ユーザの参照フレームにおける直線位置z軸の検出値であり、
uxoxは、ユーザの参照フレームにおける本体-フレームx軸の検出値であり、
uxoyは、ユーザの参照フレームにおけるy軸に沿う本体-フレームy軸の検出値であり、
uxozは、ユーザの参照フレームにおけるz軸に沿う本体-フレームz軸の検出値であり、
【数２】
0005866199.tif 000129
は、カーソル座標におけるディスプレイ座標系原点の2Dベクトル値である請求項2に記載の方法。
【請求項４】
デバイスの移動をカーソル位置にマッピングする方法であって、
前記デバイスの直線位置および角度位置の少なくとも一方を推定するステップと、
第1のカーソルロケーションを生成する第1のマッピングアルゴリズムと第2のカーソルロケーションを生成する第2のマッピングアルゴリズムの両方を使用して、前記推定された直線位置および前記推定された角度位置の少なくとも一方を処理するステップと、
最終カーソル出力を生成するために、前記第1のカーソルロケーションおよび前記第2のカーソルロケーションを結合するステップとを含み、
前記マッピングアルゴリズムの少なくとも一方は、絶対不変アルゴリズムであり、前記絶対不変アルゴリズムは、デバイス直線位置および角度位置からカーソルロケーションへの直接的再現可能マッピングを提供する特性ならびに直線運動および角度運動に対するカーソル応答性が、ある運動範囲にわたって一貫性がある第2の特性を有する、
方法。
【請求項５】
前記絶対不変アルゴリズムは、直線位置値の項および直線位置と独立である角度位置から計算された項の和としてカーソル位置を生成する請求項4に記載の方法。
【請求項６】
前記絶対不変アルゴリズムは、
【数３】
0005866199.tif 000130
として定義されるか、または、
【数４】
0005866199.tif 000131
によって近似され、式中、
qは、前記角度位置であり、
uuyは、ユーザの参照フレームにおける直線位置y軸の検出値であり、
uuzは、ユーザの参照フレームにおける直線位置z軸の検出値であり、
uxoxは、ユーザの参照フレームにおける本体-フレームx軸の検出値であり、
uxoyは、ユーザの参照フレームにおける本体-フレームy軸の検出値であり、
uxozは、ユーザの参照フレームにおける本体-フレームz軸の検出値であり、
【数５】
0005866199.tif 000132
は、カーソル座標におけるディスプレイ座標系原点の2Dベクトル値である請求項5に記載の方法。
【請求項７】
デバイスの移動をカーソル位置にマッピングする方法であって、
前記デバイスの直線位置および角度位置の少なくとも一方を推定するステップと、
第1のカーソルロケーションを生成する第1のマッピングアルゴリズムと第2のカーソルロケーションを生成する第2のマッピングアルゴリズムの両方を使用して、前記推定された直線位置および前記推定された角度位置の少なくとも一方を処理するステップと、
最終カーソル出力を生成するために、前記第1のカーソルロケーションおよび前記第2のカーソルロケーションを結合するステップとを含み、
前記マッピングアルゴリズムの少なくとも一方は、前記デバイスに向くように移動する中間の仮想ディスプレイを作成し、
前記中間の仮想ディスプレイは、前記デバイスの前ポインティング方向(本体-フレームx軸)と、前記デバイスに少なくとも部分的に向くように回転して中間の平面仮想ディスプレイを作成する前記カーソルが表示されるディスプレイの表面の交差に基づいて、デバイス運動をカーソルロケーションにマッピングし、
前記中間の平面仮想ディスプレイは、
【数６】
0005866199.tif 000133
として定義され、式中、
uxΔは、ユーザ参照フレームにおける仮想ディスプレイx軸の検出値であり、
uyΔは、ユーザ参照フレームにおける仮想ディスプレイy軸の検出値であり、
uzΔは、ユーザ参照フレームにおける仮想ディスプレイz軸の検出値であり、
wyは、仮想ディスプレイ参照フレームにおける直線位置y軸の検出値であり、
wzは、仮想ディスプレイ参照フレームにおける直線位置z軸の検出値であり、
sxは、仮想ディスプレイ参照フレームにおける本体-フレームx軸の検出値であり、
syは、仮想ディスプレイ参照フレームにおける本体-フレームy軸の検出値であり、
szは、仮想ディスプレイ参照フレームにおける本体-フレームz軸の検出値であり、
【数７】
0005866199.tif 000134
は、カーソル座標における前記仮想ディスプレイの座標系原点の2Dベクトル値である
方法。
【請求項８】
デバイスの移動をカーソル位置にマッピングする方法であって、
前記デバイスの直線位置および角度位置の少なくとも一方を推定するステップと、
第1のカーソルロケーションを生成する第1のマッピングアルゴリズムと第2のカーソルロケーションを生成する第2のマッピングアルゴリズムの両方を使用して、前記推定された直線位置および前記推定された角度位置の少なくとも一方を処理するステップと、
最終カーソル出力を生成するために、前記第1のカーソルロケーションおよび前記第2のカーソルロケーションを結合するステップとを含み、
前記マッピングアルゴリズムの少なくとも一方は、前記デバイスに向くように移動する中間の仮想ディスプレイを作成し、
前記マッピングアルゴリズムの少なくとも一方は、前記デバイスに向くように移動する中間の球仮想ディスプレイを作成する
方法。
【請求項９】
前記球仮想ディスプレイは、変換行列によって前記仮想ディスプレイ座標に変換され、かつ、カーソルロケーションに変換される前記推定される角度位置の球座標に基づいて、デバイス運動をカーソルロケーションにマッピングする請求項8に記載の方法。
【請求項１０】
前記マッピングは、前記デバイスの前記推定される直線位置を使用することなく実施される請求項9に記載の方法。
【請求項１１】
前記球仮想ディスプレイは、
【数８】
0005866199.tif 000135
として定義され、式中、
bxは、仮想ディスプレイ参照フレームにおける本体-フレームx軸の検出値であり、
byは、仮想ディスプレイ参照フレームにおける本体-フレームy軸の検出値であり、
bzは、仮想ディスプレイ参照フレームにおける本体-フレームz軸の検出値であり、
【数９】
0005866199.tif 000136
は、任意の定数の3×3変換行列であり、前記行列には、スケール、回転、並進、せん断、反射、直交射影、アフィン変換、および透視射影の任意の組合せを適用できる請求項10に記載の方法。
【請求項１２】
前記マッピングアルゴリズムの少なくとも一方は、カーソルロケーションの変化を確定するために、前記デバイスと前記仮想ディスプレイとの間の角度の変化を使用する中間相対球仮想ディスプレイを作成する請求項8に記載の方法。
【請求項１３】
前記中間相対球仮想ディスプレイは、変換行列によって修正され、かつ、カーソルのロケーションの変化に変換される本体-フレーム角速度に基づいてデバイス運動をカーソルロケーションにマッピングする請求項12に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、その開示が参照により本明細書に組み込まれる2008年7月1日に出願された「3D Pointer Mapping」という名称の米国仮特許出願シリアル番号第61/077,238号に関し、かつ、それからの優先権を主張する。
【０００２】
本発明は、3Dポインティングデバイスならびに他のタイプのデバイスで使用し得るマッピング技法、システム、ソフトウェア、およびデバイスを述べる。
【背景技術】
【０００３】
情報の伝達に関連する技術は、この数十年の間に急速に進化した。(ほんのいくつかを挙げると)テレビ、携帯電話、インターネット、および光通信技法が組み合わさって、利用可能な情報およびエンターテインメントの選択肢が消費者に過剰供給されている。例としてテレビを取上げると、この30年は、ケーブルテレビサービス、衛星テレビサービス、ペイパービュー方式の映画、およびビデオオンデマンドの導入を見てきた。1960年代のテレビ視聴者は一般に、そのテレビ受信機上でおそらく4つまたは5つの電波テレビチャンネルを受信することができたが、今日のテレビ視聴者は、何百、何千、また潜在的には何百万ものショーおよび情報チャンネルから選択する機会を得ている。現在主としてホテルなどで使用されているビデオオンデマンド技術は、何千もの映画タイトルの中からホームエンターテインメント選択についての可能性を提供している。
【０００４】
それほど多くの情報およびコンテンツをエンドユーザに提供する技術的な能力は、機会と課題の両方を、システム設計者およびサービスプロバイダに与える。1つの課題は、一般にエンドユーザは、少ない数よりむしろ、より多くの選択肢を有することを好むが、この選好は、選択プロセスが迅速かつ単純であるという願望によって釣合いをとられることである。残念ながら、エンドユーザが、それによってメディアアイテムにアクセスするシステムおよびインタフェースの開発は、迅速でも単純でもない選択プロセスをもたらした。テレビ番組の例について再び考慮されたい。テレビが初期段階にあったとき、どの番組を視聴するかを決定することは、主として選択肢が少数であったため、比較的に単純なプロセスであった。印刷されたガイドが調べられることになり、このガイドはたとえば、(1)近くのテレビチャンネルと、(2)それらのチャンネル上で送信される番組と、(3)日時との対応を示した一連の列および行としてフォーマットされた。テレビはチューナのつまみを調整することによって所望のチャンネルに合わせられ、視聴者は、選択した番組を見ていた。後に、視聴者が離れたところからテレビをチューニングすることを可能にする遠隔コントロールデバイスが導入された。ユーザテレビインタフェースへのこの追加は、「チャンネルサーフィン」として知られている現象をもたらし、このチャンネルサーフィンによって視聴者は、多数のチャンネル上で放送されている短い部分を迅速に視聴して、その時々でどの番組を見ることができるかを素早く知ることができた。
【０００５】
チャンネルの数および視聴可能なコンテンツの量が劇的に増加したにもかかわらず、テレビ用の一般に入手可能なユーザインタフェース、コントロールデバイスオプションおよびフレームワークは、この30年にわたってあまり変化しなかった。印刷されたガイドが、番組情報を伝えるための依然として最も普及している手段である。上下の矢印を備えた複数ボタンの遠隔コントロールは、依然として最も普及しているチャンネル/コンテンツ選択手段である。テレビユーザインタフェースを設計し実装する人々の、入手可能なメディアコンテンツの増加への反応は、既存の選択手順およびインタフェースオブジェクトの簡単な拡張を行うことであった。したがって、印刷されたガイド内の行の数は、より多くのチャンネルを収容するように増加されてきた。遠隔コントロールデバイス上のボタンの数は、たとえば図1に示すように、追加の機能およびコンテンツ処理をサポートするように増加してきた。しかし、この手法によって、視聴者が入手可能な情報を調べるのに要する時間と、選択を実施するのに要する動作の複雑さの両方が著しく増加した。消費者は、遅くかつ複雑すぎると既に見なしているインタフェースをさらに複雑にすることになる新しいサービスに抵抗があるため、ほぼ間違いなく、既存のインタフェースの扱いにくい性質が、一部のサービス、たとえばビデオオンデマンドの商業実施の妨げとなってきた。
【０００６】
帯域幅およびコンテンツの増加に加えて、ユーザインタフェースのボトルネックの問題が、技術の集約により深刻になりつつある。消費者は、多数の別個のコンポーネントではなく、一体化されたシステムを購入する選択肢を有することに肯定的に反応している。この傾向の例には、以前は独立していた3つのコンポーネントが今日では一体化されたユニットとして販売されることが多い、一体型テレビ/VCR/DVDがある。この傾向は継続する可能性が高く、潜在的に、家庭で現在見受けられる通信デバイスの全てが、一体化ユニット、たとえばテレビ/VCR/DVD/インターネットアクセス/ラジオ/ステレオユニットとしてパッケージ化されることになるという最終結果をもたらす。別個のコンポーネントを購入し続ける人々でさえ、おそらく別個のコンポーネントの間のシームレスなコントロールおよび相互作用を望むであろう。このさらなる集約に伴って、ユーザインタフェースの複雑さが増す可能性が生じる。たとえば、いわゆる「汎用(universal)」遠隔ユニットが、たとえばTV遠隔ユニットとVCR遠隔ユニットの機能を組み合わせるために導入される場合、これらの汎用遠隔ユニット上のボタンの数は一般に、TV遠隔ユニットまたはVCR遠隔ユニット上に個々にあるボタンの数よりも多かった。この追加された数のボタンおよび機能は、遠隔ユニット上のまさに正しいボタンを捜し求めることなくしては、TVまたはVCRの最も単純な側面以外のどんなことをもコントロールすることを非常に難しくする。しばしば、これらの汎用遠隔ユニットは、特定のテレビに固有の多くのコントロールレベルまたは特徴にアクセスするのに十分なボタンを提供しない。これらの場合では、元のデバイスの遠隔ユニットが依然として必要とされ、また複数の遠隔ユニットを扱う元来の煩わしさは、集約の複雑さから生じるユーザインタフェースの問題のせいで残ったままである。一部の遠隔ユニットは、エキスパートコマンドでプログラムされ得る「ソフト(soft)」ボタンを追加することによってこの問題に対処してきた。これらのソフトボタンは、その動作(action)を示すための付属のLCDディスプレイを有することがある。これらもまた、テレビから目を離して遠隔コントロールを見ることなく使用することが難しいという欠点を有する。しかし、これらの遠隔ユニットのなお別の欠点は、ボタンの数を減少させようとするモードの使用である。これらの「モード付きの(moded)」汎用遠隔ユニットでは、遠隔ユニットがテレビ、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号に提案された。
【０００８】
本明細書の場合、特に重要なのは、こうしたフレームワークならびに他のアプリケーションおよびシステムと相互作用するために使用可能な遠隔デバイスである。先に組み込まれた出願に述べるように、たとえば、トラックボール、「マウス(mouse)」タイプポインティングデバイス、ライトペン、などを含む、種々の異なるタイプの遠隔デバイスが、こうしたフレームワークと共に使用され得る。しかし、こうしたフレームワーク(および他のアプリケーション)と共に使用され得る別のカテゴリの遠隔デバイスは、3Dポインティングデバイスである。成句(phrase)「3Dポインティング(3D pointing)」は、本明細書で、3次元空間内の運動を測定する入力デバイスの能力を指すために使用される。3次元空間は、6自由度(degrees of freedom)(6DOF)、すなわち、3軸の直線運動および3軸の角度運動を有する。用語6DOFが一般に使用されるが、時間の7番目の次元が自動的に含まれる。デバイスの位置(または姿勢)は、その直線位置と角度位置(配向)によって表されてもよい。3Dポインティングデバイスは、たとえばディスプレイの前の空間において6自由度内で移動し、ユーザインタフェースの対応する能力は、これらの運動を、ユーザインタフェースコマンド、たとえばディスプレイ上のカーソルの移動に直接変換する。そのため、「3Dポインティング(3D pointing)」は、たとえば従来のコンピュータマウスポインティング技法と異なり、従来のコンピュータマウスポインティング技法は、そこからのマウスの相対的移動がコンピュータディスプレイ上のカーソル移動に変換されるプロキシ表面として、表面、たとえばデスク表面またはマウスパッドを使用する。3Dポインティングデバイスの例は、その開示が参照により本明細書に組み込まれるMatthew G. Libertyに対する米国特許第7,118,518号(以降で、'518号特許と呼ぶ)に見出され得る。運動データは、3Dポインティングデバイスとホストシステムとの間で転送される。運動データ転送は、有線、無線周波数、超音波、および赤外線を含む任意の通信リンクによって実施されてもよい。
【０００９】
2つの主要な方法、すなわち、絶対ポインティングと相対ポインティングが、デバイス運動をカーソル運動にマッピングするために存在する。絶対ポインティングの場合、所望のカーソルロケーションは、デバイスのフォワードベクトルが、ディスプレイの平面に交差するロケーションである。3Dポインタがレーザポインタであった場合、このカーソルロケーションは、射影されたレーザドットのロケーションであることになる。絶対ポインティングの場合、角度運動についてのポインティング解像度は、直線位置と共に変わる。ユーザがディスプレイから離れれば離れるほど、より微細な角度運動がターゲットオブジェクトに対して必要とされる。角度運動解像度はまた、軸外角と共に変わる。ユーザがディスプレイの脇にいるとき、ユーザがディスプレイのすぐ前で同じ距離のところにいるときに比べて、より小さな角度運動が必要とされる。ポインティング解像度のこの変動は、一貫性がないユーザ体験をもたらす。テレビ遠隔コントロールの場合、この変動は、家庭間で、さらに同じ家庭の座席間で一貫性がない挙動をもたらす。しかし、絶対ポインティングは通常、再現可能でありかつ時間不変である。3Dポインタが同じ位置に設置される場合、カーソルは同じ位置に戻ることになる。絶対ポインティングはまた、非較正であり、初期開始位置を参照する可能性がある。
【００１０】
相対ポインティングの場合、全ての運動についてのポインティング解像度は、ディスプレイからの直線位置および角度位置に無関係である。しかし、デバイスは、ディスプレイ上のカーソルと整列しなくてもよい。相対ポインティングは、ポインティング性能を劇的に改善することができるポインタバリスティックスを含む非直線処理を可能にする。ポインタバリスティックスは、たとえば、http://www.microsoft.com/whdc/archive/pointer-bal.mspx.に記載される。相対ポインティングは、カーソル運動を表示境界に制限する場合が多く、表示境界を越える運動は全て無視される。これによって、ユーザがリラックスし、快適な位置を見出すことが可能になるが、一部のアプリケーションは、デバイス位置とカーソルロケーションとの間の固定マッピングから利益を得る。
【００１１】
しかし、解決策が、純粋な絶対ポインティングおよび純粋な相対ポインティングを超えて存在する。したがって、たとえばディスプレイに対するデバイス移動のマッピングの領域、一般に手持ち式デバイス設計、より具体的には3Dポインタ設計において依然として改善の余地が存在する。本明細書の残りについて、絶対ポインティングは、真の絶対ポインティングに最も類似する特性を有する解決策を指し、相対ポインティングは、真の相対ポインティングに最も類似する特性を有する解決策を指す。
【先行技術文献】
【特許文献】
【００１２】
【特許文献１】米国特許出願シリアル番号第10/768,432号
【特許文献２】米国特許第7,118,518号
【特許文献３】米国特許出願シリアル番号第11/480,662号
【特許文献４】米国特許出願シリアル番号第11/437,215号
【特許文献５】米国特許出願シリアル番号第12/424,090号
【特許文献６】米国特許出願シリアル番号第12/163,229号
【特許文献７】米国特許第5,627,565号
【特許文献８】米国特許第7,158,118号
【発明の概要】
【課題を解決するための手段】
【００１３】
1つの例示的な実施形態によれば、デバイスの移動をカーソル位置にマッピングする方法が述べられる。デバイスの直線位置および角度位置が推定される。推定された直線位置および角度位置は、さらに、第1のカーソルロケーションを生成する第1のマッピングアルゴリズムと第2のカーソルロケーションを生成する第2のマッピングアルゴリズムの両方を使用して処理される。第1のカーソルロケーションおよび第2のカーソルロケーションは、最終カーソル出力を生成するために結合される。こうした技法は、たとえば種々のオブジェクトと相互作用するためにカーソルがそこで使用されるユーザインタフェースに関連するよりロバストなユーザ体験を提供するために、たとえば2つのマッピングアルゴリズムの強みを結合するために使用され得る。
【００１４】
別の例示的な実施形態によれば、3Dポインティングデバイスは、3Dポインティングデバイスの移動に関連する出力を生成するように構成された少なくとも1つのセンサとプロセッサとを含む。プロセッサは、出力を使用してデバイスの直線位置および角度位置を推定し、第1のカーソルロケーションを生成する第1のマッピングアルゴリズムと第2のカーソルロケーションを生成する第2のマッピングアルゴリズムの両方を使用して、推定された直線位置および角度位置を処理し、最終カーソル出力を生成するために、第1のカーソルロケーションおよび第2のカーソルロケーションを結合するように構成される。
【００１５】
別の例示的な実施形態によれば、システムは、3Dポインティングデバイスであって、前記3Dポインティングデバイスの移動に関連する出力を生成するように構成された少なくとも1つのセンサを有する、3Dポインティングデバイスと、3Dポインティングデバイスと通信状態にあり、かつ、3Dポインティングデバイスからの前記出力に関連するデータを受信するように構成されたシステムコントローラとを含む。3Dポインティングデバイスおよびシステムコントローラの少なくとも一方は、出力を使用して、前記デバイスの直線位置および角度位置の少なくとも一方を推定し、第1のカーソルロケーションを生成する第1のマッピングアルゴリズムと第2のカーソルロケーションを生成する第2のマッピングアルゴリズムの両方を使用して、推定された直線位置および角度位置の少なくとも一方を処理し、最終カーソル出力を生成するために、第1のカーソルロケーションおよび第2のカーソルロケーションを結合するプロセッサを含む。
【００１６】
別の例示的な実施形態によれば、デバイスの移動をカーソル位置にマッピングする方法は、デバイスの直線位置および角度位置を推定するステップと、カーソルロケーションを生成するために、マッピングアルゴリズムを使用して推定された直線位置および角度位置を処理するステップとを含み、マッピングアルゴリズムは、絶対不変アルゴリズムであり、絶対不変アルゴリズムは、デバイス直線位置および角度位置からカーソルロケーションへの直接的再現可能マッピングを提供する第1の特性ならびに直線運動および角度運動に対するカーソル応答性が、ある運動範囲にわたって一貫性がある第2の特性を有する。
【００１７】
別の例示的な実施形態によれば、デバイスの移動をカーソル位置にマッピングする方法は、デバイスの直線位置および角度位置の少なくとも一方を推定するステップと、カーソルロケーションを生成するために、マッピングアルゴリズムを使用して推定された直線位置および角度位置の少なくとも一方を処理するステップとを含み、マッピングアルゴリズムは、デバイスに向くように移動する中間仮想ディスプレイを作成する。
【００１８】
別の例示的な実施形態によれば、デバイスの移動をカーソル位置にマッピングする方法は、デバイスの角度位置を推定するステップと、カーソルロケーションを生成するために、マッピングアルゴリズムを使用して推定された角度位置を処理するステップとを含み、マッピングアルゴリズムは、角度位置球面射影を使用して、デバイスの前記推定された角度位置をカーソル座標にマッピングする。
【００１９】
添付図面は、例示的な実施形態を示す。
【図面の簡単な説明】
【００２０】
【図１】エンターテインメントシステム用の従来の遠隔コントロールユニットを示す図である。
【図２】例示的な実施形態が実装され得る、例示的なメディアシステムを示す図である。
【図３】本発明の例示的な実施形態による3Dポインティングデバイスを示す図である。
【図４】角速度検知および直線加速度検知を含む図4の3Dポインティングデバイスの破断図である。
【図５】別の例示的な実施形態による3Dポインティングデバイスを示す図である。
【図６】ある例示的な実施形態による「10フィート」インタフェースの一部として使用される図5の3Dポインティングデバイスを示す図である。
【図７】種々の例示的な実施形態による、表示されるカーソル運動へのデバイス運動のマッピングを示す図である。
【図８】例示的な実施形態による、表示されるカーソル運動へのデバイス運動のマッピングに関連する機能を示す図である。
【図９】例示的な実施形態による、表示されるカーソル運動へのデバイス運動のマッピングに関連する機能を示す図である。
【図１０】例示的な実施形態による、表示されるカーソル運動へのデバイス運動のマッピングに関連する機能を示す図である。
【図１１】例示的な実施形態による、表示されるカーソル運動へのデバイス運動のマッピングに関連する機能を示す図である。
【図１２】例示的な実施形態による、表示されるカーソル運動へのデバイス運動のマッピングに関連する機能を示す図である。
【図１３】例示的な実施形態による、デバイスの移動をカーソル位置にマッピングする方法を示すフローチャートである。
【発明を実施するための形態】
【００２１】
本発明の以下の詳細な説明は、添付の図面を参照する。異なる図面内の同じ参考番号は、同じまたは類似の要素を同じものとして扱う。同様に、以下の詳細な説明は、本発明を限定しない。代わりに、本発明の範囲は、添付の特許請求の範囲によって規定される。
【００２２】
この説明のためのあるコンテキストを提供するために、本発明が実装され得る例示的な集約メディアシステム200が、最初に、図2に関して述べられるであろう。しかし、本発明は、このタイプのメディアシステムでの実施態様に限定されないこと、および、より多くのまたは少ないコンポーネントがこのシステム内に含まれ得ることが当業者に理解されるであろう。このシステムでは、入出力(input/output)(I/O )バス210は、メディアシステム200内のシステムコンポーネントを互いに接続する。I/Oバス210は、メディアシステムコンポーネント間で信号をルーティングするための多数の異なるメカニズムおよび技法のうちの任意のメカニズムおよび技法を表す。たとえば、I/Oバス210は、オーディオ信号をルーティングする適切な数の独立したオーディオ「パッチ(patch)」ケーブルと、ビデオ信号をルーティングする同軸ケーブルと、コントロール信号をルーティングする2線式シリアルラインあるいは赤外線または無線周波数送受信機と、他のタイプの信号をルーティングする光ファイバまたは他の任意のルーティングメカニズムとを含んでもよい。
【００２３】
この例示的な実施形態では、メディアシステム200は、I/Oバス210に結合されたテレビ/モニタ212と、ビデオカセットレコーダ(video cassette recorder)(VCR) 214と、デジタルビデオディスク(digital video disk)(DVD)レコーダ/再生デバイス216と、オーディオ/ビデオチューナ218と、コンパクトディスクプレーヤ220とを含む。VCR214、DVD216、およびコンパクトディスクプレーヤ220は、単一のディスクまたは単一のカセットデバイスであってよく、または別法として、複数のディスクまたは複数のカセットデバイスであってよい。それらは、独立のユニットであっても、一緒に一体化されていてもよい。さらに、メディアシステム200は、マイク/スピーカシステム222と、ビデオカメラ224と、無線I/Oコントロールデバイス226とを含む。本発明の例示的な実施形態によれば、無線I/Oコントロールデバイス226は、以下に述べる例示的な実施形態のうちの1つの実施形態による3Dポインティングデバイスである。無線I/Oコントロールデバイス226は、たとえばIRまたはRF送信機または送受信機を使用して、エンターテインメントシステム200と通信し得る。あるいは、I/Oコントロールデバイスは、ワイヤを介してエンターテインメントシステム200に接続され得る。
【００２４】
エンターテインメントシステム200はまた、システムコントローラ228を含む。本発明の1つの例示的な実施形態によれば、システムコントローラ228は、複数のエンターテインメントシステムデータソースから利用可能なエンターテインメントシステムデータを格納し表示し、またシステムコンポーネントのそれぞれに関連するいろいろの特徴(feature)をコントロールするように動作する。図2に示すように、システムコントローラ228は、必要に応じて、I/Oバス210を介してシステムコンポーネントのそれぞれに直接的または間接的に結合される。1つの例示的な実施形態では、I/Oバス210に加えて、または、その代わりに、システムコントローラ228は、IR信号またはRF信号を介してシステムコンポーネントと通信することが可能な無線通信送信機(または送受信機)によって構成される。コントロール媒体によらず、システムコントローラ228は、以下に述べるグラフィカルユーザインタフェースを介してメディアシステム200のメディアコンポーネントをコントロールするように構成される。
【００２５】
図2にさらに示すように、メディアシステム200は、種々のメディアソースおよびサービスプロバイダからメディアアイテムを受信するように構成されてもよい。この例示的な実施形態では、メディアシステム200は、以下のソース、すなわちケーブル放送230、(たとえば衛星放送アンテナを介した)衛星放送232、(たとえば空中アンテナを介した)放送テレビ網243の超短波(very high frequency)(VHF)または極超短波(ultra high frequency)(UHF)無線周波数通信、電話網236、およびケーブルモデム238(またはインターネットコンテンツの別のソース)のいずれかまたは全てからメディア入力を受信し、任意選択で、そこに情報を送信する。図2に関して示し述べるメディアコンポーネントおよびメディアソースが、単に例示であること、および、メディアシステム200が、両者をより多く含んでもよく、より少なく含んでもよいことを当業者は理解するであろう。たとえば、システムへの他のタイプの入力は、AM/FMラジオおよび衛星ラジオを含む。
【００２６】
この例示的なエンターテインメントシステムおよびそれに関連するフレームワークに関するより詳細は、参照により先に組み込まれた米国特許出願「A Control Framework with a Zoomable Graphical User Interface for Organizing, Selecting and Launching Media Items」に見出され得る。あるいは、本発明による遠隔デバイスは、他のシステム、たとえばディスプレイ、プロセッサ、およびメモリシステムを含む、たとえばコンピュータシステムと共に、または、種々の他のシステムおよびアプリケーションと共に使用され得る。
【００２７】
背景技術の節で述べたように、3Dポインタとして動作する遠隔デバイスは、本明細書の場合、特に重要である。こうしたデバイスは、移動たとえばジェスチャをユーザインタフェースに対するコマンドに変換することを可能にする。例示的な3Dポインティングデバイス400は図3に示される。図3では、3Dポインティングデバイス400のユーザ移動は、たとえば、3Dポインティングデバイス400のx軸姿勢(ロール)、y軸高度(ピッチ)、および/またはz軸方位(ヨー)運動の組合せによって定義され得る。さらに、本発明の一部の例示的な実施形態はまた、カーソル移動コマンドまたは他のユーザインタフェースコマンドを生成するために、x軸、y軸、およびz軸に沿って3Dポインティングデバイス400の直線移動を測定し得る。図3の例示的な実施形態では、3Dポインティングデバイス400は、2つのボタン402および404ならびにスクロールホイール406を含むが、他の例示的な実施形態は、他の物理的構成を含むことになる。本発明の例示的な実施形態によれば、3Dポインティングデバイス400がディスプレイ408の前でユーザによって保持されること、および、たとえばディスプレイ408上でカーソル410を移動させるために、3Dポインティングデバイス400の運動が、ディスプレイ408上に表示される情報を相互作用するために使用可能である出力に、3Dポインティングデバイス400によって変換されることが予想される。たとえば、y軸を中心とする3Dポインティングデバイス400の回転は、3Dポインティングデバイス400によって検知され、ディスプレイ408のy2軸に沿ってカーソル410を移動させるために、システムによって使用可能な出力に変換され得る。同様に、z軸を中心とする3Dポインティングデバイス400の回転は、3Dポインティングデバイス400によって検知され、ディスプレイ408のx2軸に沿ってカーソル410を移動させるために、システムによって使用可能な出力に変換され得る。3Dポインティングデバイス400の出力は、カーソル移動以外の(または、カーソル移動に加えて)多数の方法でディスプレイ408と相互作用するために使用され得る。たとえば、カーソルフェージング、ボリューム、またはメディアトランスポート(再生、一時停止、早送り、および巻き戻し)を制御し得ることが理解されるであろう。入力コマンドは、カーソル移動に加えた動作、たとえばディスプレイの特定の領域上でのズームインまたはズームアウトを含んでもよい。カーソルは、視認可能であっても、視認可能でなくてもよい。同様に、3Dポインティングデバイス400のx軸の回りで検知される3Dポインティングデバイス400の回転は、ユーザインタフェースに対する入力を提供するために、y軸および/またはz軸回転に加えて、または、それの代替として使用され得る。
【００２８】
本発明の1つの純粋に例証的で例示的な実施形態によれば、2つの軸の角速度検知420および422ならびに3つの軸の直線加速度検知424は、図4に示すように、3Dポインティングデバイス400内のセンサとして採用され得る。この例示的な実施形態は慣性センサを採用するが、本発明は、そのように限定されず、他の例示的な実施形態と共に使用され得る他のタイプのセンサの実施例が以下に提供されることが理解されるであろう。回転センサ420、422は、たとえば、Invensense社によって作られたIDG-500またはIXZ-500センサを使用して実装され得る。あるいは、その実施形態は、IDG-500およびIXZ-500の組合せとして実装される要素420および422を使用して3軸の角速度全てを測定し得る。他のタイプの回転センサが、回転センサ420および422として採用され得ること、および、Invensense社製センサが、例証的な実施例として純粋に採用され得ることが当業者によって理解されるであろう。従来のジャイロスコープと違って、これらの回転センサは、共振質量を提供するためにMEMS技術を使用し、共振質量は、一方向だけに沿って共振し得るようにフレームに取付けられる。共振質量は、センサが固着される本体が、センサの検知軸の回りに回転すると変位する(displace)。この変位は、検知軸に沿う回転に関連する角速度を確定するために、コリオリ加速度効果を使用して測定され得る。他のセンサ/センサパッケージが使用されてもよく、また、角速度センサ420、422は、1-D、2-D、または3-Dセンサであり得る。加速度計424は、たとえば、STMicroelectronics社によって製造されたLIS331DLHなどの3軸直線加速度計であり得る。しかし、2軸直線加速度計は、デバイスが、重力を測定し、残りの第3の値を数学的に計算することを仮定することによって使用され得る。さらに、加速度計(複数可)および回転センサ(複数可)は、単一センサパッケージ内にパッケージされ得る。センサおよびセンサパッケージの他の変形はまた、これらの例示的な実施形態と共に使用されてもよい。
【００２９】
例示的な実施形態は、図3および4に示す工業設計に限定されるのではなく、代わりに、任意の工業用フォームファクタ、図5として示す別の実施例で展開され得る。図5の例示的な実施形態では、3Dポインティングデバイス500は、リング形状ハウジング501、2つのボタン502および504、ならびにスクロールホイール506およびグリップ507を含むが、他の例示的な実施形態は、他の物理的構成を含んでもよい。2つのボタン502および504ならびにスクロールホイール506を含む領域508は、リング形状ハウジング501の外側部分上に配設される「コントロールエリア(control area)」508と本明細書で呼ばれる。この例示的な実施形態に関するより詳細は、その開示が参照により本明細書に組み込まれる2006年7月3日に出願された「3D Pointing Devices」という名称の米国特許出願シリアル番号第11/480,662号に見出され得る。
【００３０】
こうしたデバイスは、たとえば、図6に示すように、通常のリビングルームにおけるソファとテレビとの間のいわゆる「10フィート」インタフェース内の使用を含む多数のアプリケーションを有する。図6では、3Dポインティングデバイス500は、異なる位置間を移動するため、その移動は、3Dポインティングデバイス500内の1つまたは複数のセンサによって検出され、テレビ620(または、関連するシステムコンポーネント、たとえば、セットトップボックス(図示せず))に送信される。3Dポインティングデバイス500の移動は、たとえば、テレビ620上に表示され、かつ、ユーザインタフェースと相互作用するために使用されるカーソル640の移動に変換されるまたはマッピングされ得る(こうしたマッピングの例が以下に提供される)。3Dポインティングデバイス500を介してユーザが相互作用し得る例示的なユーザインタフェースの詳細は、たとえば、その開示が参照により本明細書に組み込まれる、先に組み込まれた米国特許出願シリアル番号第10/768,432号ならびに2006年5月19日に出願された「Global Navigation Objects in User Interfaces」という名称の米国特許出願シリアル番号第11/437,215号に見出され得る。別の例示的な実施形態は、その開示が参照により本明細書に組み込まれる2009年4月15日に出願された「Tracking Determination Based On Intensity Angular Gradient Of A Wave」という名称の米国特許出願シリアル番号第12/424,090号に見出され得る検知システムを含む他のセンサを含んでもよい。
【００３１】
これらの例示的な実施形態による例示的な3Dポインティングデバイス400を実装するときに直面する課題は、高価でないコンポーネント、たとえば回転センサ502および504を採用し、一方同時に、3Dポインティングデバイス400の移動と、3Dポインティングデバイス400の特定の移動にユーザインタフェースがどのように反応することになるかに関するユーザの予測と、その移動に応答するユーザインタフェースの実際の性能との間に高い相関の程度を提供することである。たとえば、3Dポインティングデバイス400が移動しない場合、ユーザは、おそらく、カーソルがディスプレイを横切ってドリフトするはずがないと予測することになる。同様に、ユーザが、純粋にy軸の回りに3Dポインティングデバイス400を回転させる場合、ユーザは、おそらく、ディスプレイ408上での結果得られるカーソル移動が、任意の有意なx軸成分を含むことに気付くことを予測しないであろう。本発明の例示的な実施形態のこれらのまた他の態様を達成するために、種々の測定および計算が、たとえば、手持ち式デバイス400によって実施され、種々の測定および計算は、センサ420、422、および424の1つまたは複数のセンサの出力を調整するために、かつ/または、センサ420、422、および424の出力に基づいてユーザインタフェースについて適切な出力を確定するためにプロセッサによって使用される入力の一部として使用される。これらの測定および計算は、大まかに2つのカテゴリに入る因子を補償するために使用される。2つのカテゴリに入る因子とは、(1)3Dポインティングデバイス400に固有の因子、たとえば、デバイス400内で使用される特定のセンサ420、422、および424に関連する誤差、または、センサがデバイス400内に搭載される方法、および、(2)3Dポインティングデバイス400に固有ではないが、代わりに、ユーザが3Dポインティングデバイス400を使用する方法に関連する因子、たとえば、直線加速度、傾斜、および微震である。これらの作用を処理する一部の例示的な技法は、参照により先に組み込まれた'518号特許に記載される。しかし、検知された運動に対するバイアスまたはオフセット誤差の寄与を処理するさらなる技法は、その開示が参照により本明細書に組み込まれる「Real-Time Dynamic Tracking Of Bias」という名称の、2008年6月27日に出願された米国特許出願シリアル番号第12/163,229号に記載される。
【００３２】
マッピング
先に述べたように、ユーザが6自由度で移動させる3Dポインティングデバイスは、運動をカーソル運動に変換するために使用され得る。異なるアプリケーションは、デバイス運動がカーソル運動にどのようにマッピングされるべきかに関して異なる要求および要件を有する。これらの例示的な実施形態は、改善された3Dポインタ性能を提供し、各アプリケーションについて最適応答を送出するように構成されている、デバイス運動をカーソル運動にマッピングする新規な方法を述べる。とりわけ、本発明の例示的な実施形態は、新しい3Dポインタマッピング方法および所与のアプリケーションについて最適応答を提供するために代替のマッピング方法と組み合わせる方法を述べる。これらは、たとえば、絶対ポインティングに関して主要な問題である、ディスプレイに対するユーザの位置の関数としてのカーソル解像度変動を低減し得る。同時に、例示的な実施形態は、一部の相対ポインティングアプリケーションについて問題となり得る、デバイス位置とカーソル位置との間の一定マッピングを提供し得る。
【００３３】
1つの例示的な実施形態は、
1.6自由度で運動を測定するデバイスと、
2.デバイス運動をカーソル運動に変換する1つまたは複数のアルゴリズムと、
3.アルゴリズムからのカーソル運動出力を結合する(combine)方法と、
4.カーソルを表示するビジュアルディスプレイと
を含む。
【００３４】
図7に示す例示的な実施形態では、ユーザは、デバイス701を保持し、ディスプレイ702上に現れるカーソル703をコントロールするように身振りをする。デバイス701は、通常、センサの集合を含み、その実施例が先に述べられた。検知システムは、直線加速度計、角度位置センサ(従来のジャイロスコープ)、角速度センサ(MEMSジャイロスコープ)、磁束計、カメラ、光学、超音波、およびRFを含む1つまたは複数のセンサからなってもよい。検知システムは、デバイスの直線位置および角度位置の推定値を提供するためにセンサデータを処理する。デバイスの位置は、その後、カーソルロケーションをもたらすために1つまたは複数のマッピングアルゴリズムによって処理される。カーソルロケーションは、その後、最終カーソル出力を生成するために結合される。カーソル運動情報は、その後、ディスプレイ702上でカーソルを駆動する。デバイス701は、ワイヤを介してまたは無線でディスプレイ702に接続されてもよい。アルゴリズムは、デバイス701、ディスプレイ702、または中間処理ユニット(図7には示されず、たとえば、デバイス701とディスプレイ702の両方に接続されたシステムコンソール)上で実行されてもよい。
【００３５】
1つの例示的な実施形態によれば、デバイス701は、3軸加速度計および3軸ジャイロスコープを含む電池式で手持ち式のデバイスであるが、より少ないまたは他のセンサが含まれ得ることが理解されるであろう。この例示的な実施形態によれば、デバイス701は、その直線位置および角度位置を推定するためにセンサデータを処理し、さらに、カーソル運動データを生成するために、直線位置および角度位置を処理する。カーソル運動データは、プロプライエタリ2.4GHzRFリンクを通じて、たとえば図2でシステムコントローラ228により示すセットトップボックスに通信される。データは、セットトップボックス内のRFハードウェアによって受信され、USBバスを通じて主セットトップボックスプロセッサに通信される。主セットトップボックスプロセッサは、この実施例では、デバイス701によって指定されるようにカーソルを移動させる。NTSCの場合30Hzまたは60Hz(PALの場合25Hzまたは50hz)で、セットトップボックスは、画像をレンダリングし、たとえばHDMI、コンポーネント、Sビデオ、および/または複合出力を通じて、ディスプレイに画像を送出する。ディスプレイは、画像を受信し、ユーザに画像を表示する。先に述べたように、この例示的な実施形態に従って、種々の処理ステージが、手持ち式デバイス701において実施されるが、手持ち式デバイス701と通信するセットトップボックスまたは他のコントローラは、処理、たとえば、直線位置および角度位置の推定、ならびに/または、推定された直線位置および角度位置の1つまたは複数のカーソルロケーションへのマッピングの一部または全てを実施し得る。
【００３６】
例示的な実施形態に従って採用され得るマッピング技法を説明する前に、説明を導くために、いくつかの数学的表記が以下で導入される。
小文字は、スカラー変数、x、y、zを表し、
太字の小文字は、ベクトル、
【００３７】
【数１】
0005866199.tif 000002
【００３８】
を表し、
太字の大文字は、行列、
【００３９】
【数２】
0005866199.tif 000003
【００４０】
を表し、
ベクトルは、列ベクトル(N×1行列)であると仮定され、
【００４１】
【数３】
0005866199.tif 000004
【００４２】
は、ベクトル
【００４３】
【数４】
0005866199.tif 000005
【００４４】
の大きさであり、
【００４５】
【数５】
0005866199.tif 000006
【００４６】
は、ベクトル
【００４７】
【数６】
0005866199.tif 000007
【００４８】
と
【００４９】
【数７】
0005866199.tif 000008
【００５０】
のドット積であり、
【００５１】
【数８】
0005866199.tif 000009
【００５２】
は、ベクトル
【００５３】
【数９】
0005866199.tif 000010
【００５４】
と
【００５５】
【数１０】
0005866199.tif 000011
【００５６】
のクロス積であり、
【００５７】
【数１１】
0005866199.tif 000012
【００５８】
は、行列
【００５９】
【数１２】
0005866199.tif 000013
【００６０】
とベクトル
【００６１】
【数１３】
0005866199.tif 000014
【００６２】
の行列乗算であり、
【００６３】
【数１４】
0005866199.tif 000015
【００６４】
は、行列転置であり、
【００６５】
【数１５】
0005866199.tif 000016
【００６６】
は、
【００６７】
【数１６】
0005866199.tif 000017
【００６８】
の方向の単位ベクトルであり、
【００６９】
【数１７】
0005866199.tif 000018
【００７０】
は、スカラー成分q0および長さ3のベクトル
【００７１】
【数１８】
0005866199.tif 000019
【００７２】
を有するクオータニオン
【００７３】
【数１９】
0005866199.tif 000020
【００７４】
であり、
【００７５】
【数２０】
0005866199.tif 000021
【００７６】
ただしqはクオータニオン
【００７７】
【数２１】
0005866199.tif 000022
【００７８】
であり、
【００７９】
【数２２】
0005866199.tif 000023
【００８０】
は、
【００８１】
【数２３】
0005866199.tif 000024
【００８２】
と
【００８３】
【数２４】
0005866199.tif 000025
【００８４】
のクオータニオン乗算であり、
【００８５】
【数２５】
0005866199.tif 000026
【００８６】
は、
【００８７】
【数２６】
0005866199.tif 000027
【００８８】
のクオータニオン共役
【００８９】
【数２７】
0005866199.tif 000028
【００９０】
であり、
【００９１】
【数２８】
0005866199.tif 000029
【００９２】
は、本体-フレーム座標において定義されたベクトル
【００９３】
【数２９】
0005866199.tif 000030
【００９４】
であり、
【００９５】
【数３０】
0005866199.tif 000031
【００９６】
は、ユーザ-フレーム座標において定義されたベクトル
【００９７】
【数３１】
0005866199.tif 000032
【００９８】
であり、
長さ2のベクトル
【００９９】
【数３２】
0005866199.tif 000033
【０１００】
は、(vx,vy)と名付けられたサブコンポーネントを有すると仮定され、
長さ3のベクトル
【０１０１】
【数３３】
0005866199.tif 000034
【０１０２】
は、(vx,vy,vz)と名付けられたサブコンポーネントを有すると仮定される。
【０１０３】
この表記を使用して、図7に示すように、カーソル移動になるようにデバイス運動を処理する例示的な技法が、ここで考慮されるであろう。図は、2つの座標系を示す。第1の座標系、すなわち、ユーザ-フレーム座標系は、この実施例ではディスプレイの中心であるように任意に選択され、(x,y,z)からなる。ユーザ-フレーム座標系は、ディスプレイに関して固定している。座標系は、ディスプレイに入る方向にx、ディスプレイの右方向にy、ディスプレイの下方向にzを有し、通常の航空宇宙座標系の慣行に対応する。代替の慣行が、代わりに使用され、たとえば、PCディスプレイ座標(x右方向、y下方向、zディスプレイに入る方向)およびHID(xディスプレイから出る方向、y右方向、z下方向)を含むことを当業者は認識するであろう。この説明のために、ユーザ-フレーム軸は、
【０１０４】
【数３４】
0005866199.tif 000035
【０１０５】
として任意に定義されるであろう。ユーザ-フレーム座標系の軸および原点は、本発明を実質的に(materially)変更することなく選択され得ることを当業者は認識するであろう。先の説明は、デカルト座標系を仮定するが、球座標などの他の座標系もまた、本発明に影響を及ぼすことなく使用され得る。
【０１０６】
この例示的な実施形態の第2の座標系は、デバイスの本体-フレーム座標系である。本体-フレーム座標系は、デバイスに対して固定である。本体-フレーム原点は、通常、デバイスの中心であるが、それは必要とされない。本体-フレーム軸は、(xo,yo,zo)として示され、xoはデバイスの前面から出る方向、yoは右方向、zoは下方向である。この説明のために、本体-フレーム軸は、
bxo=[1,0,0]
uyo=[0,1,0]
uzo=[0,0,1]
として任意に定義される。本体-フレーム座標系の軸および原点は、本発明を実質的に変更することなく選択され得ることを当業者は認識するであろう。先の説明は、デカルト座標系を仮定するが、球座標などの他の座標系もまた、本発明に影響を及ぼすことなく使用され得る。
【０１０７】
長さ3のベクトル
【０１０８】
【数３５】
0005866199.tif 000036
【０１０９】
は、ユーザ-フレーム座標系の原点であり、ディスプレイに固定されていると定義される。
【０１１０】
【数３６】
0005866199.tif 000037
【０１１１】
は、本発明の場合、(0,0,0)として定義される。長さ3のベクトル
【０１１２】
【数３７】
0005866199.tif 000038
【０１１３】
は、本体-フレーム座標系の原点であり、ディスプレイに固定されていると定義される。
【０１１４】
【数３８】
0005866199.tif 000039
【０１１５】
は、本発明の場合、(0,0,0)として定義される。長さ3のベクトル
【０１１６】
【数３９】
0005866199.tif 000040
【０１１７】
は、ディスプレイ座標系の原点であり、ディスプレイに固定されていると定義される。
【０１１８】
【数４０】
0005866199.tif 000041
【０１１９】
は、本発明の場合、(0,cx,cy)として定義される。長さ3のベクトル
【０１２０】
【数４１】
0005866199.tif 000042
【０１２１】
は、3-D空間内のデバイスの直線位置として定義される。
【０１２２】
【数４２】
0005866199.tif 000043
【０１２３】
である。長さ3のベクトル
【０１２４】
【数４３】
0005866199.tif 000044
【０１２５】
は、デバイスの本体-フレーム座標系の原点
【０１２６】
【数４４】
0005866199.tif 000045
【０１２７】
からユーザ-フレーム座標系の原点
【０１２８】
【数４５】
0005866199.tif 000046
【０１２９】
までのベクトルである。数学的に、
【０１３０】
【数４６】
0005866199.tif 000047
【０１３１】
である。
【０１３２】
クオータニオン
【０１３３】
【数４７】
0005866199.tif 000048
【０１３４】
は、ユーザ-フレーム座標に関するデバイスの角度位置として定義される。本説明の場合、
【０１３５】
【数４８】
0005866199.tif 000049
【０１３６】
は、単位クオータニオン
【０１３７】
【数４９】
0005866199.tif 000050
【０１３８】
として定義される。クオータニオンの代わりに、たとえばオイラー角(Euler angle)、方向余弦行列(direction cosine matrix)(DCM)、およびベクトル/角度を含む任意の所望の代替の角度位置表現もまた使用され得る。長さ2のベクトル
【０１３９】
【数５０】
0005866199.tif 000051
【０１４０】
は、2-Dディスプレイ座標として与えられるディスプレイ上のポインティングデバイスのカーソルロケーションである。長さ2のベクトル
【０１４１】
【数５１】
0005866199.tif 000052
【０１４２】
は、ディスプレイ座標系のカーソルロケーションである。長さ3のベクトル
【０１４３】
【数５２】
0005866199.tif 000053
【０１４４】
は、角速度である。先の慣行に従って、
【０１４５】
【数５３】
0005866199.tif 000054
【０１４６】
は、ユーザ-フレーム座標における角速度であり、
【０１４７】
【数５４】
0005866199.tif 000055
【０１４８】
は、デバイスの本体-フレーム座標における角速度である。本体-フレーム座標におけるベクトルが与えられると、ユーザ-フレーム座標におけるベクトルは、等式
【０１４９】
【数５５】
0005866199.tif 000056
【０１５０】
を使用して見出され得る。ユーザ-フレーム座標におけるベクトルが与えられると、本体-フレーム座標におけるベクトルは、等式
【０１５１】
【数５６】
0005866199.tif 000057
【０１５２】
を使用して見出され得る。
【０１５３】
この例示的な数学的コンテキストが与えられると、絶対ポインティングを使用してデバイス運動をカーソルロケーションにマッピングすることが、最初に考慮されるであろう。絶対ポインティングシステムにおけるカーソルは、ディスプレイおよびデバイスの
【０１５４】
【数５７】
0005866199.tif 000058
【０１５５】
の軸を含むラインの交差に配置されるべきである。たとえば、レーザポインタがデバイス701に適切に搭載される場合、ディスプレイ702上でのカーソルロケーションおよびレーザポインタのドットは同じ位置にあるべきである。ユーザ-フレーム座標が与えられたときの、絶対ポインティングについての完全な数学等式は、
【０１５６】
【数５８】
0005866199.tif 000059
【０１５７】
である。絶対ポインティングは、ユーザがディスプレイ上のターゲットを直接ねらうシューティングゲームに特に適する。絶対ポインティングは、人間が、我々の環境において物理的オブジェクトに対してどのように自分の腕、手、および指を指すかに類似する。絶対ポインティングによって、カーソル運動とデバイス角度運動の比が、距離の関数として変化する。デバイスがディスプレイから離れれば離れるほど、ディスプレイ上で所与の距離だけカーソルを移動させるために、より小さな角度運動が必要とされる。同様に、デバイスが
【０１５８】
【数５９】
0005866199.tif 000060
【０１５９】
軸から離れれば離れるほど、カーソルを移動させるために、より小さな角度運動が必要とされる。そのため、たとえば、絶対ポインティングアルゴリズムは、デバイスの前ポインティング方向(本体-フレームx軸)と、カーソルが表示されるディスプレイの表面の交差に基づいてデバイス運動をカーソルロケーションにマッピングする。
【０１６０】
【数６０】
0005866199.tif 000061
【０１６１】
の値は、距離補正因子に相当する。この距離補正因子は、その開示が参照により本明細書に組み込まれる「Space coordinates detecting device and input apparatus using same」という名称の米国特許第5,627,565号によって述べられる。
【０１６２】
次に、相対ポインティングまたは「本体-フレーム(body-frame)」相対ポインティングが考慮されるであろう。一部のアプリケーションは、ディスプレイにおける直接ポインティングを必要としない、または、任意の意味のある参照フレームを有さない可能性がある。こうした場合、アプリケーションは、主要な参照としてデバイス自体を使用するように選択してもよい。ディスプレイの位置またはデバイスの位置によらず、
【０１６３】
【数６１】
0005866199.tif 000062
【０１６４】
が正である限り、ユーザが、デバイスを、
【０１６５】
【数６２】
0005866199.tif 000063
【０１６６】
軸に沿って直線的に移動させる、または、
【０１６７】
【数６３】
0005866199.tif 000064
【０１６８】
軸の回りに回転させる場合、カーソルは、常に右に移動することになる。
【０１６９】
オイラー積分に関して離散時間を仮定すると、本体-フレーム相対ポインティングは、
【０１７０】
【数６４】
0005866199.tif 000065
【０１７１】
によって数学的に定義される。デバイスが、この等式において両方の項を実装する必要がないことに留意されたい。相対ポインティングは、機能的に図8に示される。相対ポインティングの場合、絶対ポインティングと違って、カーソル運動の量は、デバイス800の位置によって影響を受けない。しかし、デバイスの前方向およびカーソルロケーションは、確定的でなく、経時的に変わる可能性がある。一部のアプリケーションの場合、このデカップリングが有益である。実際のカーソルロケーションは、図8のvPointerと呼ばれる
【０１７２】
【数６５】
0005866199.tif 000066
【０１７３】
の非線形関数(ポインタバリスティックス802としばしば呼ばれる非線形関数である)を使用して計算されてもよい。従来の2-Dコンピュータマウスは、その見かけの可用性および性能を改善するためにポインタバリスティックス802を使用し、この機能は、3Dポインタマッピングでも使用され得る。ポインタバリスティックス802の出力vSysは、その後、ブロック804にて、境界条件等を受けるスクリーン上でカーソルを移動させるために使用される。
【０１７４】
本体-フレーム相対ポインティングは、いくつかの利点を提供するが、ユーザは、デバイスの位置を気にせず、デバイスが行う相対移動だけを気にすることが多い。そのため、本明細書で考慮される第3のタイプのマッピングは、「ユーザ-フレーム相対ポインティング(user-frame relative pointing)」と呼ばれる。ユーザ-フレーム相対ポインティングでは、ユーザが、ユーザ-フレーム
【０１７５】
【数６６】
0005866199.tif 000067
【０１７６】
軸の回りにデバイスを回転させる場合、カーソルは右に移動すべきである。ユーザが、ユーザ-フレーム
【０１７７】
【数６７】
0005866199.tif 000068
【０１７８】
軸に沿ってデバイスを直線状に移動させる場合、カーソルは、下に移動すべきである。
【０１７９】
オイラー積分に関して離散時間を仮定すると、ユーザ-フレーム相対ポインティングは、
【０１８０】
【数６８】
0005866199.tif 000069
【０１８１】
によって数学的に定義される。デバイスは両方の項を実装する必要がないことに留意されたい。その開示が参照によって組み込まれる米国特許第7,158,118号は、ユーザ-フレーム相対ポインティングに関する詳細および開示を含む。その特許に記載される1つの例示的な実施形態では、-bzは加速度計によって測定される。本体-フレーム相対ポインティングの場合と同様に、ユーザ-フレーム相対ポインティングの場合、カーソル運動の量は、デバイスの位置によって影響を受けない。しかし、デバイスの前方向およびカーソルロケーションは、確定的でなく、経時的に変わる可能性がある。一部のアプリケーションの場合、このデカップリングが有益である。実際のカーソルロケーションは、ポインタバリスティックスとしばしば呼ばれる
【０１８２】
【数６９】
0005866199.tif 000070
【０１８３】
の非線形関数を使用して計算されてもよい。従来の2-Dコンピュータマウスは、その見かけの可用性および性能を改善するためにポインタバリスティックスを使用する。
【０１８４】
多くのアプリケーションの場合、デバイス応答性は、部屋内でのその位置によらず、一定であるべきであるが、依然としてディスプレイの方を指しているべきである。例示的な実施形態によれば、本明細書で「絶対不変ポインティング(absolute invariant pointing)」と呼ばれる第4のマッピング技法が、各方法のマイナスの要因を最小にしながら、相対ポインティングの利益の多くを絶対ポインティングの利益と混合する。絶対不変ポインティングは、
【０１８５】
【数７０】
0005866199.tif 000071
【０１８６】
によって数学的に定義され得る。式中、cは定数である。
【０１８７】
絶対不変ポインティングは、上述した絶対ポインティングそれ自体(per se)のように、デバイス直線位置および角度位置からカーソルロケーションへの直接的再現可能マッピングを含む。同時に、直線運動および角度運動に対するカーソル応答性が、運動範囲にわたって一貫性がある。デバイスが、ディスプレイ中心の左または右に配置される場合、ユーザは、通常、ディスプレイ垂直ベクトル
【０１８８】
【数７１】
0005866199.tif 000072
【０１８９】
ではなく、デバイスからディスプレイへのベクトルに関して左または右にデバイスを移動させようとする。これは、デバイスが
【０１９０】
【数７２】
0005866199.tif 000073
【０１９１】
軸から離れるにつれて、直線運動解像度の見かけ上の損失をもたらす。そのため、この例示的な実施形態による絶対不変マッピングアルゴリズムは、直線位置値の項と、直線位置と独立の角度位置から計算された項の和としてカーソル位置を生成する。
【０１９２】
「仮想ディスプレイ(virtual display)」と呼ばれる第5のマッピング技法は、デバイスが軸外に移動するにつれて、「絶対不変ポインティング(absolute invariant pointing)」に関して見出される見かけ上の直線解像度の損失を低減する。「仮想ディスプレイ」技法は、デバイスに向くように移動する中間仮想ディスプレイを作成する可能性がある。デバイスに向くように移動することによって、仮想ディスプレイは、デバイスがまるでディスプレイのすぐ前にあるかのように、同じ解像度を維持する。完全仮想ディスプレイは、デバイスに直接向くように移動する。新しい仮想ディスプレイ座標系は、軸
【０１９３】
【数７３】
0005866199.tif 000074
【０１９４】
を有する構造によって作成される。数学的項では、
【０１９５】
【数７４】
0005866199.tif 000075
【０１９６】
である。
【０１９７】
通常、新しい座標系は、要件としてではないが、好ましくは、
【０１９８】
【数７５】
0005866199.tif 000076
【０１９９】
軸を「水平(horizontal)」として、また、
【０２００】
【数７６】
0005866199.tif 000077
【０２０１】
軸を「垂直(vertical)」として維持することになる。所定の構造によって、残りの軸は、
【０２０２】
【数７７】
0005866199.tif 000078
【０２０３】
であることになる。デバイスに向くように仮想ディスプレイを完全に回転させることによって、デバイスが原点から離れて指すにつれて、カーソル応答は、著しく非直線的になる。これらの影響を最小にするのに役立つために、仮想ディスプレイ座標系は、デバイスに向かって完全に回転する必要がない。
【０２０４】
【数７８】
0005866199.tif 000079
【０２０５】
と
【０２０６】
【数７９】
0005866199.tif 000080
【０２０７】
との間で
【０２０８】
【数８０】
0005866199.tif 000081
【０２０９】
を構築するために、スケーリングファクタが適用される。たとえば、
【０２１０】
【数８１】
0005866199.tif 000082
【０２１１】
である。式中、cは0と1との間の(0と1を含めて)値である。
【０２１２】
仮想ディスプレイは、平面仮想ディスプレイを作成するために、絶対ポインティングアルゴリズムに適用され得る。
【０２１３】
【数８２】
0005866199.tif 000083
【０２１４】
仮想ディスプレイ方法はまた、上述した絶対ポインティングおよび絶対不変ポインティングを含む任意の絶対または擬似絶対マッピング方法に適用され得る。カーソルが非平面ディスプレイ上に存在する場合、この方法は、非平面ディスプレイの仮想ディスプレイを作成するように容易に適合され得る。そのため、例示的な実施形態によれば、中間平面仮想ディスプレイは、デバイスの前ポインティング方向(本体-フレームx軸)と、デバイスに少なくとも部分的に向くように回転してカーソルが表示されるディスプレイの表面の交差に基づいて、デバイス運動をカーソルロケーションにマッピングする。
【０２１５】
多くのアプリケーションの場合、角度応答は、直線応答より重要である。しかし、仮想ディスプレイ方法は、一貫性がある角度応答を持たない。角度応答性は、相対ポインティングではなく、絶対ポインティングと同様である。
【０２１６】
「仮想球ディスプレイ(virtual spherical display)」と呼ばれる第6のマッピング技法は、「仮想ディスプレイ」と違って一定の角度応答を維持する。たとえば、極座標への変換が、最初に実施される場合、すなわち、
【０２１７】
【数８３】
0005866199.tif 000084
【０２１８】
である。その後、アルゴリズムは、
【０２１９】
【数８４】
0005866199.tif 000085
【０２２０】
のように、同次座標を使用して、θおよびφそして最後に
【０２２１】
【数８５】
0005866199.tif 000086
【０２２２】
について解かれ得る。式中、
【０２２３】
【数８６】
0005866199.tif 000087
【０２２４】
は任意の定数の3×3一般変換行列である。行列Tは、スケール、回転、並進、せん断、反射、直交射影、アフィン変換、および透視射影の任意の組合せを適用する可能性がある。そのため、この例示的な実施形態による球仮想ディスプレイは、変換行列によって仮想ディスプレイ座標に変換され、かつ、カーソルロケーションに変換される推定角度位置の球座標に基づいて、デバイス運動をカーソルロケーションにマッピングする。
【０２２５】
球仮想ディスプレイ方法は、「相対球仮想ディスプレイ(relative spherical virtual display)」と呼ばれる第7のマッピング技法を作成するために、相対ポインティングに適用され得る。角度を使用してカーソルを制御する代わりに、この方法は、カーソルの変化を駆動するために、角度の変化を使用する。
【０２２６】
【数８７】
0005866199.tif 000088
【０２２７】
式中、
【０２２８】
【数８８】
0005866199.tif 000089
【０２２９】
は任意の定数の3×3一般変換行列である。行列Tは、スケール、回転、並進、せん断、反射、直交射影、アフィン変換、および透視射影の任意の組合せを適用する可能性がある。そのため、この例示的な実施形態による中間相対球仮想ディスプレイは、変換行列によって修正され、かつ、カーソルのロケーションの変化に変換される本体-フレーム角速度に基づいてデバイス運動をカーソルロケーションにマッピングする。
【０２３０】
角度位置はまた、球面射影を使用してカーソル座標にマッピングされ得る。この第8のマッピング方法は、「角度位置球面射影(angular position spherical projection)」として知られる。
【０２３１】
【数８９】
0005866199.tif 000090
【０２３２】
式中、
【０２３３】
【数９０】
0005866199.tif 000091
【０２３４】
は、任意の初期角度位置回転値である。その後、アルゴリズムは、
【０２３５】
【数９１】
0005866199.tif 000092
【０２３６】
のように、同次座標を使用して、θおよびφそして最後に
【０２３７】
【数９２】
0005866199.tif 000093
【０２３８】
について解かれ得る。式中、
【０２３９】
【数９３】
0005866199.tif 000094
【０２４０】
は任意の定数の3×3一般変換行列である。行列Tは、スケール、回転、並進、せん断、反射、直交射影、アフィン変換、および透視射影の任意の組合せを適用する可能性がある。同次座標における
【０２４１】
【数９４】
0005866199.tif 000095
【０２４２】
の第3行が1に等しくない場合、
【０２４３】
【数９５】
0005866199.tif 000096
【０２４４】
は、1になるようにスケーリングされ得ることに当業者は留意するであろう。
【０２４５】
上述した絶対方法の全てまたは一部の出力は、簡単な線型結合またはより複雑な非線型結合によって結合され得る。たとえば、アプリケーションが、ほぼ絶対的であるが、改善された角度解像度ポインティング一貫性を有することを望むと仮定する。この場合、上述した「絶対ポインティングマッピング(absolute pointing mapping)」と「不変絶対ポインティングマッピング(invariant absolute pointing mapping)」との結合が実施され得る。例示的な実施形態は、たとえば、上述した方法の任意の2つ以上の方法を結合するために、簡単な線型結合(または、より複雑な非線形プロセス)を使用し得る。各方法piについて、アプリケーションが、重み係数ciを割当てる。最終結果
【０２４６】
【数９６】
0005866199.tif 000097
【０２４７】
は、
【０２４８】
【数９７】
0005866199.tif 000098
【０２４９】
である。一貫性があるカーソル応答を維持するために、理想的には、
【０２５０】
【数９８】
0005866199.tif 000099
【０２５１】
であるが、この制約は必要とされない。
【０２５２】
同様に、上述した相対方法の全てまたは一部の出力は、簡単な線型結合またはより複雑な非線型結合によって結合され得る。たとえば、デバイスの角度位置と角速度が共に、特異な欠陥を有していたと仮定する。ある実施形態は、「ユーザ-フレーム相対ポインティング」と「相対球仮想ディスプレイ」との同じ線型結合を使用することができ、これによって各方法の欠点が半減する。例示的な実施形態は、方法を結合するために、簡単な線型結合を使用する。各方法piについて、アプリケーションが、重み係数ciを割当てる。最終結果
【０２５３】
【数９９】
0005866199.tif 000100
【０２５４】
は、
【０２５５】
【数１００】
0005866199.tif 000101
【０２５６】
であるが、一貫性があるカーソル応答を維持するために、理想的には、
【０２５７】
【数１０１】
0005866199.tif 000102
【０２５８】
であるが、この制約は必要とされない。
【０２５９】
絶対ポインティング方法と相対ポインティング方法を結合することもまた、これらの例示的な実施形態に従って考慮される。結合された絶対ポインティングマッピングと相対ポインティングマッピングが採用され得る一方法は、主に相対ポインティングを通してカーソルを制御するが、カーソル移動を調整するのに絶対ポインティングを使用するように採用され、それにより、参照からの長期ドリフトが回避され得る。長期ドリフトを回避することは、相対ポインティング解決策の場合に代表的である、カーソルの周期的な再センタリングをなくすことになる。ある例示的な実施形態に従って、相対ポインティングを使用するときで、かつ、非直線ポインタバリスティックスを使用するとき、3Dポインタ位置とカーソル位置との間のマッピングは、時間変動性があり、かつ、運動の位置および範囲、また同様に、移動速度に依存する。3Dポインタ位置およびその関連するカーソルロケーションの履歴を保持することによって、3Dポインタ位置に基づいてカーソル位置を定義する適応的マップを定義することが可能である。このマップは、カーソル位置の履歴と、マップによってカーソル位置にマッピングされた3Dポインタ位置の履歴との間の差を最小にするようにさせられ得る。
【０２６０】
こうした実施形態の実施例は図9に示される。この特定の例示的な実施形態では、「ユーザ-フレーム相対ポインティング」マッピングは、「角度位置球面射影」と結合され、そのマッピングは共に、個々に上述されている。ポインティングデバイス900は、下側分岐902上で、図8に関して上述したユーザ-フレーム相対ポインティングデータであるvPointerデータを出力する。上側分岐904上で、ポインティングデバイス900は、絶対ポインティングマッピングアルゴリズムによって入力として使用される角度位置を出力する。この例示的な実施形態で、任意の3×3一般変換行列Tを含むマップがブロック906にて作成され、3×3一般変換行列
【０２６１】
【数１０２】
0005866199.tif 000103
【０２６２】
は、出力角度位置に関して種々の変換、たとえば、スケール(軸のうちの任意の軸における伸張)、(直交性を保持する)回転、(本質的に軸を非直交性にさせる)せん断、(データの2-Dアプリケーションを補償するオフセット)並進、反射、任意の他のアフィン変換、または透視射影を実施し得る。マップはまた、原点値(クオータニオン)を定義する。マップがどのように作成され得るかの詳細な実施例は、図10に示される。
【０２６３】
図10では、ブロック1002にて、公称原点からの逸脱を補償するようにデバイスの測定された角度位置をマッピングするために、デバイスからの角度位置出力が、最初に回転される。初期回転を適用した後、ブロック1004にて、角度位置は、球座標に変換される。ブロック1006にて、現在のサンプルが、そのサンプルについて重みを確定するために評価される。重みは、カーソルが目下のところスクリーン上に配置される場所と、ポインティングデバイス900の角度位置との間の現在マップを定義することに対して、以前の各ポイントがどれだけ重要であるかを取り込む。重みは、どのデータポイントが、セーブする価値があるかを判定するのを補助し、また、マップを見出す最小2乗解の一部として使用され得る。例示的な実施態様では、主要な重みは、ポインティングデバイスの絶対角度位置に基づいて各サンプルに適用される。デバイスの全動作範囲は、固定セットの小領域に分割される。各領域内の第1のデータポイントは、最も大きな重みを得、その領域内の全ての将来のポイントは、より小さな重みを得る。さらに、目下の角速度に基づく2次的な重みは、デバイスが静止しているポイントが、デバイスが動作中であるポイントより重要であるように適用される。この重みに基づいて、カーソル位置、角度位置、および重み付けされたサンプルの最良のN個のサンプルが、セーブされ、ブロック1008、1010、および1012においてマップ計算のためにそれぞれ使用される。マップは、球座標への変換のため、入力データが適度の範囲内に留まることを保証するために、回転原点を最初に計算することによって、ブロック1014で作成される。カーソルが表示境界を越えて移動した場合、原点およびセーブされた状態が、新しいアライメントを定義するために調整され得る。次に、方位角/高度対のセットをカーソル位置のセットに変換することになる3×3一般変換行列
【０２６４】
【数１０３】
0005866199.tif 000104
【０２６５】
が作成される。
【０２６６】
【数１０４】
0005866199.tif 000105
【０２６７】
を見出す一方法は、
【０２６８】
【数１０５】
0005866199.tif 000106
【０２６９】
として、N個のセーブされたサンプルのそれぞれについて誤差ベクトル
【０２７０】
【数１０６】
0005866199.tif 000107
【０２７１】
を定義し、最小2乗誤差
【０２７２】
【数１０７】
0005866199.tif 000108
【０２７３】
を最小にすることである。式中、wnは、各サンプルについての重みである。QR分解または特異値分解などのムーア-ペンローズ擬似逆行列および直交分解を使用して正規方程式を反転させることを含む、この線形最小2乗問題に対する解を見出すために多くの方法が存在することを当業者は認識するであろう。QR分解は、例示的な実施態様において使用される。
【０２７４】
図9に戻って、マップは、ブロック906によって定義されると、ブロック908にて、参照カーソルロケーション
【０２７５】
【数１０８】
0005866199.tif 000109
【０２７６】
を生成するために、目下の3Dポインタ位置をディスプレイ座標にマッピングするために使用される。この例示的なプロセスに関するより詳細は、図11に示される。図11では、ブロック1102にて、デバイス900の角度位置は、ブロック1002に関して上述した方法と同じ方法で回転され、出力は、
【０２７７】
【数１０９】
0005866199.tif 000110
【０２７８】
と呼ばれる2×1ベクトルを生成するために、ブロック1104によって球座標に変換される。これは、その後、同次座標に変換され、その後、ブロック1106にて、マップ行列Tによって乗算され、
【０２７９】
【数１１０】
0005866199.tif 000111
【０２８０】
をもたらす。こうして、
【０２８１】
【数１１１】
0005866199.tif 000112
【０２８２】
値は、この例示的な結合されたマッピングの絶対ポインティングシステム成分に基づいて、カーソルについて所望のロケーションを表す。
【０２８３】
再び図9に戻って、相対ポインティング値
【０２８４】
【数１１２】
0005866199.tif 000113
【０２８５】
絶対ポインティング値
【０２８６】
【数１１３】
0005866199.tif 000114
【０２８７】
および目下のカーソル位置
【０２８８】
【数１１４】
0005866199.tif 000115
【０２８９】
は、ダイナミックバリスティックス関数910に入力される。ダイナミックバリスティックス関数910は、これらの入力を取得し、この例示的な実施形態では、相対ポインティング値を調整するために、絶対ポインティング値および目下のカーソル位置を使用する。より具体的には、図12に示すように、目下のカーソル位置および参照カーソル位置は、カーソル移動がカーソルに適用される前に、カーソル移動を調整するために使用される。カーソルを調整する一方法は、新しいカーソル位置が参照ポイントに近くなるように、目下の速度ベクトルのスケールおよび角度に対して小さな調整を実施することである。最初に、ブロック1202にて、参照速度ベクトル
【０２９０】
【数１１５】
0005866199.tif 000116
【０２９１】
を得るために、目下のポイントが、参照ポイントから減算される。この参照ベクトルは、ブロック1204にて、ベクトル間の角度を見出すために、元の速度
【０２９２】
【数１１６】
0005866199.tif 000117
【０２９３】
と比較される。この角度は、ブロック1206にて、一定の最大値に制限され、その後、図12のブロック1208に示すように、
【０２９４】
【数１１７】
0005866199.tif 000118
【０２９５】
を生成するために、ベクトル
【０２９６】
【数１１８】
0005866199.tif 000119
【０２９７】
を回転させるために使用される。次に、ブロック1210に示すように、参照ポイントに最も近い次のポイントを得ることになる
【０２９８】
【数１１９】
0005866199.tif 000120
【０２９９】
のスケーリングを見出すために、参照ベクトルが
【０３００】
【数１２０】
0005866199.tif 000121
【０３０１】
上に射影される。このスケーリングは、最大値と最小値との間に制限され(ブロック1212)、その後、ブロック1214にて
【０３０２】
【数１２１】
0005866199.tif 000122
【０３０３】
に適用される。最大角度および最大スケールに関する制限は、どれだけ多くの補正が適用されることになるかを制御するように調節され得る。
【０３０４】
絶対ポインティング方法と相対ポインティング方法を結合することによって、相対ポインティングの利益を維持するが、依然として、ディスプレイにマッピングする3Dデバイス位置の固定領域を維持することが可能である。これは、ドリフトが少ない相対ポインティングを可能にし、ドリフトが少ない相対ポインティングは、時間t0において3Dポインタ位置
【０３０５】
【数１２２】
0005866199.tif 000123
【０３０６】
およびカーソルロケーション
【０３０７】
【数１２３】
0005866199.tif 000124
【０３０８】
が与えられると、時間t1>t0においてデバイスを位置
【０３０９】
【数１２４】
0005866199.tif 000125
【０３１０】
に戻すことが、
【０３１１】
【数１２５】
0005866199.tif 000126
【０３１２】
であるようにカーソルロケーションを
【０３１３】
【数１２６】
0005866199.tif 000127
【０３１４】
に戻すことになる不変数を有する。
【０３１５】
先のマッピング技法の多数の変形および代替が想定される。たとえば、結合は、完全マッピング方法に制限される必要はない。各マッピング方法の各項は、それ自信の重み付き係数が割当てられ得る。さらに、仮想ディスプレイは、デバイスを完全に追従する必要はない。妥協は、
1.直線運動を適切にスケーリングするために、実際のデバイス位置に対して任意のx軸値を加算する(または減算する)こと、
2.デバイスから仮想ディスプレイまでの距離をアルゴリズム的に増減させること、
3.直線運動に対する応答を増減させるために、デバイスの実際の位置にスケール係数を乗算すること、
4.  上記因子のうちの任意の因子の組合せ
を含む。代替の仮想ディスプレイ表面が使用され得る。上記テキストは、平面および球を述べるが、仮想ディスプレイは、円柱、楕円、および高次表面に拡張され得る。
【０３１６】
したがって、1つの例示的な実施形態によれば、デバイスの移動をカーソル位置にマッピングする方法は、図13のフローチャートに示すステップを含み得る。図13では、ステップ1300にて、3Dポインティングデバイスの直線位置および角度位置の少なくとも1つが推定され得る(または、検知され得る、測定され得る、検出され得るなどをされ得る)。場合によっては、上述した例示的なマッピングアルゴリズムは、マッピングアルゴリズムへの入力として、デバイスの直線位置だけ、デバイスの角度位置だけ、または、デバイスの直線位置と角度位置の両方を使用してもよい。その後、ステップ1302にて、推定された直線位置および推定された角度位置の少なくとも一方が、第1のカーソルロケーションを生成する第1のマッピングアルゴリズムと第2のカーソルロケーションを生成する第2のマッピングアルゴリズムの両方を使用して処理される。その結果は、ステップ1304にて、最終カーソル出力を生成するために結合される。
【０３１７】
マッピングアルゴリズムは、部分的なまたは不完全な運動データに関して動作してもよい。たとえば、ユーザ-フレーム相対ポインティングは、2つの項の一方だけに関して有用である。一部のアプリケーションは、両方ではないが、角度運動か直線運動のいずれかを収集しながら、ユーザ-フレーム相対ポインティングを利用し得る。センサ(複数可)は、ユーザ-フレーム座標か、本体-フレーム座標か、または、ユーザ-フレーム座標と本体-フレーム座標の組合せにおいて運動を収集し、推定してもよい。マッピングアルゴリズムは、本体-フレーム座標系か、ユーザ-フレーム座標系か、または、任意の他の座標系において動作してもよい。運動は、デカルトおよび球を含む任意の座標系で測定されてもよい。マッピングアルゴリズムは、速度および加速度を含む直線位置の微分を使用してもよい。マッピングアルゴリズムは、速度および加速度を含む角度位置の微分を使用してもよい。マッピング結合方法は、たいしたことではなく、1つのマッピング方法からデータを使用するだけであってよい。他のアルゴリズムについての因子は0であってよい。0値の係数を有する数学的項は、最終実施態様において計算される、または、現れる必要はない。
【０３１８】
本発明の例示的な実施形態に従ってデータを処理するシステムおよび方法は、メモリデバイスに含まれる命令のシーケンスを実行する1つまたは複数のプロセッサによって実施され得る。こうした命令は、2次データ記憶デバイス(複数可)などの他のコンピュータ読取り可能媒体からメモリデバイス内に読取られてもよい。メモリデバイスに含まれる命令のシーケンスの実行は、たとえば上述したようにプロセッサに動作させる。代替の実施形態では、ハードワイヤ回路は、本発明を実装するソフトウェア命令の代わりにまたはそれと共に使用されてもよい。こうしたソフトウェアは、センサを含む、デバイス、たとえば3Dポインティングデバイスまたは他のデバイス内に収容されるプロセッサ上で実行されてもよく、または、ソフトウェアは、センサを含むデバイスと通信する、別のデバイス、たとえばシステムコントローラ、ゲームコンソール、パーソナルコンピュータなどの中に収容されたプロセッサまたはコンピュータ上で実行されてもよい。こうした場合、データは、センサを含むデバイスと、上述したポインタマッピングを実施するソフトウェアを実行するプロセッサを含むデバイスとの間で、ワイヤラインを介してまたは無線で転送されてもよい。他の例示的な実施形態によれば、ポインタマッピングに関して上述した処理の一部は、センサを含むデバイス内で実施されてもよく、一方、処理の残りは、センサを含むデバイスから部分的に処理されたデータを受信した後に第2のデバイスにおいて実施される。
【０３１９】
先の例示的な実施形態は、1つまたは複数の回転センサおよび加速度計を含む検知パッケージに関するが、これらの例示的な実施形態によるポインタマッピング技法は、これらのタイプのセンサだけに限定されない。代わりに、本明細書で述べるポインタマッピング技法は、たとえば、加速度計(複数可)だけ、光および慣性センサ(たとえば、回転センサ、ジャイロスコープ、角速度センサ、または直線加速度計)、磁束計および慣性センサ(たとえば、回転センサ、ジャイロスコープ、または直線加速度計)、磁束計および光センサ、または他のセンサの組合せを含むデバイスに適用され得る。さらに、本明細書で述べる例示的な実施形態は3Dポインティングデバイスおよびアプリケーションの文脈でカーソルマッピングに関するが、こうした技法は、そのように限定されず、他のアプリケーション、たとえば、医療アプリケーション、ゲーミング、カメラ、軍事アプリケーションなどに関連する方法およびデバイスにおいて採用されてもよい。
【０３２０】
上記の例示的な実施形態は、本発明を限定するのではなく、全ての点で、例証的であることを意図される。そのため、本発明は、当業者によって、本明細書に含まれる説明から導出され得る詳細な実施態様において多くの変形が可能である。たとえば、先の例示的な実施形態は、とりわけ、デバイスの移動を検出する慣性センサの使用を述べるが、他のタイプのセンサ(たとえば、超音波、磁気、または光)が、上述した信号処理と共に、慣性センサの代わりにまたはそれに加えて使用され得る。こうした全ての変形および修正は、特許請求の範囲によって規定される本発明の範囲および趣旨の範囲内にあると考えられる。本出願の説明で使用される要素、行為または手段は、そのように明示的に述べられない限り、本発明にとって重大なまたは本質的なものと解釈されるべきでない。同様に、本明細書で使用されるように、冠詞「1つの(a)」は、1つまたは複数のアイテムを含むと意図される。
【符号の説明】
【０３２１】
200  メディアシステム
210  入出力(I/O)バス
212  テレビ/モニタ
214  ビデオカセットレコーダ
216  デジタルビデオディスクレコーダ/再生デバイス
218  オーディオ/ビデオチューナ
220  コンパクトディスクプレーヤ
222  マイク/スピーカシステム
224  ビデオカメラ
226  無線I/Oコントロールデバイス
228  システムコントローラ
230  ケーブル放送
232  衛星放送
400、500  3Dポインティングシステム
402、404、502、504  ボタン
406、506  スクロールホイール
408、702  ディスプレイ
420、422  角速度センサ(回転センサ)
424  直線加速度計
501  リング形状ハウジング
507  グリップ
508  コントロールエリア
620  テレビ
640、703  カーソル
701  デバイス
【図１】
0005866199.tif 000137
【図２】
0005866199.tif 000138
【図３】
0005866199.tif 000139
【図４】
0005866199.tif 000140
【図５】
0005866199.tif 000141
【図６】
0005866199.tif 000142
【図７】
0005866199.tif 000143
【図８】
0005866199.tif 000144
【図９】
0005866199.tif 000145
【図１０】
0005866199.tif 000146
【図１１】
0005866199.tif 000147
【図１２】
0005866199.tif 000148
【図１３】
0005866199.tif 000149