1.0 絶対ハンドヘルド装置ポインティング
これから、電子機器とともに使用するための「絶対ポインティング」ハンドヘルド装置システムを説明する。ハンドヘルド装置からの絶対ポインティングは、1)ハンドへルド装置がポイントされているディスプレイ上のまたはディスプレイの近くの位置を決定すること、および2)その位置に所定種類の画像(例えば、カーソル、アイコン、ハイライトされた領域、メニュー選択)をレンダリングし、および/または、その位置に表されたユーザインターフェイスフィーチャから所定種類の動作をトリガすることを含む。例えば、単純なカーソルの場合、ハンドヘルドはディスプレイ表面でポイントされ、ハンドヘルド装置がポイントしているディスプレイ上の位置にカーソルが表示される。ハンドヘルド装置が移動してディスプレイ上の新たな位置をポイントすると、カーソルはその新たな位置に表示される。
ハンドヘルド装置絶対ポインティングは、場合によっては単独で、1)ハンドヘルド装置がポイントされているディスプレイの近くの位置(例えば、ディスプレイの近くに配置された特定の電子機器の位置)を決定する、および2)ディスプレイ上の所定種類の画像(例えば、カーソル、アイコン、ハイライトされた領域、メニュー選択)をレンダリングし、および/または、その位置から所定動作をトリガすること(例えば、特定の電子機器に画像をレンダリングさせたり、そのポイントされた結果としてある特定の動作を行わせたりすること)も含む。ハンドヘルド装置からの絶対ポインティングは、場合によっては単独で、1)特定の器具(例えばランプ)または他のタイプの電気機器がポイントされていることを決定する、および2)その器具または他のタイプの電気機器において所定種類の動作をトリガすることも含む。簡便のため、以下の説明は、完全にではないが主に、まず上述した絶対ポインティングを利用する場合を参照する。ここで、ハンドヘルド装置は、ディスプレイにてポイントされてディスプレイ上のその位置においてまたはその位置から所定の動作を引き起こす。
所定種類の動作をトリガする場合、ハンドヘルド装置は、ディスプレイ上に表示されるユーザインターフェイスの一部(例えばアイコンまたはメニュー選択)となるフィーチャをポイントする。ここで、フィーチャとは、ユーザインターフェイスを介して制御される電子機器による所定種類の動作(例えば、テレビジョン信号の選択、ファイルのオープン、ソフトウェアルーチンの開始等)が引き起こされるということを意味すると理解される。
ハンドヘルド装置を持ったユーザが所定種類の動作をする(例えば、ハンドヘルド装置上のボタンを押す、またはユーザ自身の手首を「急に動かす」)と、信号がハンドヘルド装置から送信されて、フィーチャによって示唆された動作が究極的にはユーザによって所望されたものと解釈される。
図4aから図4cは、ハンドヘルド装置401とディスプレイ400'との間の絶対ポインティングの例を示す。ここで、ハンドヘルド装置401は異なる位置に位置決めされ、図4aから図4cの各々にわたって異なる表示位置(「x」)をポイントする。図4aから図4cの各々は、それぞれのハンドヘルド装置401とディスプレイ400'との配向に対する正面図(i)、上面図(ii)、および側面図(iii)を示す。正面図4a(i),4b(i),4c(i)は、ディスプレイ400'に対して直ぐ前で直面する視点から見たそれぞれのハンドヘルド装置401とディスプレイ400'との配向を示す。
上面図4a(ii),4b(ii),4c(ii)は、ディスプレイ400'およびハンドヘルド装置401の上部を直下に見下ろす、ディスプレイ400'上の視点から見たそれぞれのハンドヘルド装置401ディスプレイ400'との配向を示す。側面図4a(iii),4b(iii),4c(iii)は、ディスプレイの側面およびハンドヘルド装置の側面401を直視する、ディスプレイの「左」側からの視点から見たそれぞれのハンドヘルド装置401ディスプレイ400'との配向を示す。ここで、用語「左」は、ディスプレイ400'に対して正面で面して立っている観視者の視点から取られている。
なお、これらの図示は、+y'方向がディスプレイ400'表面の観視者に対して相対的に垂直に移動する方向であり、+x'方向がディスプレイ表面の観視者に対して右400'に向かって水平に移動する方向であり、+z'方向がディスプレイ400'表面の正面からまっすぐ離れるように移動する方向であることを示す。
図4aは、ハンドヘルド装置401がディスプレイの左側の下にあってディスプレイの右上角近くの位置をポイントする場合の、第1セットの視点を示す。図4bは、ハンドヘルド装置401がディスプレイの右側の下にあってディスプレイの左下角近くの位置をポイントする場合の、第2セットの視点を示す。図4cは、ハンドヘルド装置401がディスプレイの左側の上にあってディスプレイの右下角近くの位置をポイントする場合の、第3セットの視点を示す。重要なのは、単純なカーソル操作の場合、カーソルであれば、図4a(i)、図4b(i)および図4c(i)に見られる各「x」位置に現れるようにされることである。所定種類の動作をトリガする場合、所定の種類のユーザインターフェイスまたはアイコンは、図4a(i)、図4b(i)および図4c(i)に見られる各「x」位置に現れる。
図5aは、ハンドヘルド装置501、図4aから図4cに関連してたった今上述された絶対ポインティングを有効にすることができるディスプレイ500'および電子機器503の詳細な実施例を示す。ハンドヘルド装置501は、カメラおよびワイヤレス送信機505を含む。
ハンドヘルド装置のカメラによってキャプチャされた画像から得られたまたは処理された情報は、ハンドヘルド装置のワイヤレス送信機によってワイヤレス受信機508へ送信される。または、ハンドヘルド装置と電子機器503との間の通信が、ユニバーサルシリアルバス(USB)またはRS−232シリアルケーブルのような有線接続を使用して達成されてもよい。カーソルのディスプレイ500上の提示を制御するおよび/またはユーザインターフェイスをディスプレイ500'に提示する役割の電子回路(例えば、プロセッサ507、またはコントローラ、またはプログラムコードを実行しない回路のような)は、ハンドヘルド装置501によって送信される情報を受信する。電子回路は、様々なタイプの電子機器に統合されてよい。例えば、電子機器503は、a)テレビジョン、b)衛星TV受信機、c)ケーブルTV受信機、d)VCR、e)DVDプレーヤ、f)コンピュータ、g)CDプレーヤ、h)音楽受信機および/またはプレーヤ、i)ビデオゲームボックスまたはゲーム回路を含む他の所定タイプの機器、j)IPTV受信機および/またはテレビジョン、k)上記a)からi)に挙げられた1つ以上の電子機器物品からの信号を受信する「受信機」、l)ホームおよび/またはオフィス自動化機器(例えば、家事用スイッチを「オン」および「オフ」に切り替えるための回路を含む)、のいずれかであってよい。
所定の基本的に可能な操作によれば、電子回路は、この情報の受信に応答して、ハンドヘルド装置501がポイントしている表示位置にカーソル(または他の画像)が提示されるようにする、および/または、ハンドヘルド装置501がポイントしている表示位置にあるユーザインターフェイスフィーチャが所定の態様でハイライトされるようにする。ここで、センサによって検知可能な固定マーカ504'_1および504'_2がディスプレイ500'の近くに位置していることに注意されたい。図6aから図6dに関連してこの後すぐに説明するように、1)これらの固定マーカ504'_1から504'_2はハンドヘルド装置のカメラによって観測され、2)典型的には、ハンドヘルド装置501のフェイス506の視点からは、これらの位置の少なくとも1つ以上は、ハンドヘルド装置の位置およびポインティング方向の関数として「変化」する。
これらの固定マーカ504'_1から504'_2の位置をハンドヘルド装置のカメラによってキャプチャすることによって、および、(ハンドヘルド装置における、前記電子回路、両者の組み合わせ等との)数学的関係の自動実行によって、観測されたマーカ位置がディスプレイ表面上の被ポイント位置に関連付けられ、被ポイント表示位置にカーソルが現れるようにできる、および/または、被ポイント表示位置に提示されたユーザインターフェイスフィーチャから所定種類の動作をトリガすることができる。図5aの固定マーカは、1つの可能な2マーカ配置である。
ディスプレイ500'と同様に、両者互いに対して他の位置に配置された他の1つ、2つ、3つ、4つ、またはそれより多くのマーカを含む他の配置が可能である。
上述のように、様々な数のマーカの様々な配置が絶対ポインティングを可能にするために使用されてよい。本質的には、ハンドヘルド装置が所定軸上で「移動」すると、単数または複数のマーカの位置が、同じ軸上でハンドヘルド装置のセンサの視点から「移動」する。例えば、ハンドヘルド装置がx軸上で移動すると、ハンドヘルド装置のセンサの単数または複数のマーカの単数または複数の画素位置が変化する。こうして、単数または複数のマーカの所定配置を実施例ごとに変えることができる。さらに、マーカの数を増やすことにより、ハンドヘルド装置のポインティング位置をより正確に計算することが可能となる。しかしながら、以下のセクション4.0で詳細に説明されることだが、単数のマーカのみが使用される場合でも、少なくともいくつかのアプリケーションに対しては十分に正確と考えられる。
図5bから図5eは、単数のマーカ(図5b)、2つのマーカ(図5c)、3つのマーカ(図5d)および4つのマーカ(図5e)の実施例に対するいくつかの可能なマーカのレイアウト配置を探る。図5bから図5eに見られる各実施例に対して、マーカとディスプレイとの間の距離は変化する(もちろん、その距離は、マーカがハンドヘルド装置から見えないようであってはならない)。さらに、ディスプレイ自体の上にマーカを配置することもできる。
図5bは、単数のマーカ514がディスプレイの側辺に沿って配置される実施例を示す。代替的なアプローチにおいては、マーカは、ディスプレイの角にまたはその付近に配置される。図5c(i)は、マーカ515_1,516_1両者がディスプレイの同じ側辺上に位置する2マーカの実施例を示す。図5c(ii)は別の実施例を示す。ここで、マーカ515_2,516_2のペアのそれぞれは異なるディスプレイ側辺沿いに位置する。別の実施例では、2マーカの実施例のうちの1つまたは両方は、ディスプレイの1つ以上にまたはその近くに位置してよい(例えば、同じ角の周りにマーカのペアを配置すること、または、第1マーカを第1ディスプレイ角に、第2マーカを別のディスプレイ角に置くことによって)。2マーカのシステムでは、マーカのペアは同じまたは異なるz'位置に配置されてよい。
図5d(i)から図5d(iv)は、様々な3マーカの実施例を示す。図5d(i)には、3マーカのうちの各1つが異なるディスプレイ側辺上に位置することが示される。図5d(ii)には、3マーカのうちの各1つが同じディスプレイ側辺上に位置することが示される。図5d(iii)には、3マーカが同じディスプレイ側辺上にあり、そのマーカのうちの2つが同じy'軸位置を有することが示される。図5d(iv)は、3マーカが同じディスプレイ側辺上にあり、1つのマーカが他の2つのマーカとは異なるz'位置を有することが示される。他の様々な配置も可能である。一般には、ハンドヘルド装置によって3マーカが可視であり、かつ、その各々が固有のx',y',z'位置を有する限り、実行可能なシステムを実装することができる。
図5e(i)から図5e(iii)は、様々な4マーカの実施例を示す。図5e(i)のアプローチによれば、マーカの各1つはディスプレイの異なる側辺上に位置する。図5e(ii)のアプローチによれば、マーカの各1つはディスプレイの異なる角に位置する。図5e(iii)のアプローチによれば、1つ以上のマーカがディスプレイの同じ側辺上に位置する。2マーカおよび3マーカのシステムと同様に、ハンドヘルド装置によって3マーカが可視であり、かつ、その各々が固有のx',y',z'位置を有する限り、実行可能なシステムを実装することができる。
図6aから図6dは、ハンドヘルド装置のカメラによって観測されるとおりの、ディスプレイ表面に対して異なるハンドヘルド装置位置およびポインティング配向に対応する2マーカシステムのマーカの画像を示す(図4aから図4cと同様である)。図6aから図6dの各々は4つの分図(i)から(iv)を含む。図6a(i)、図6b(i)、図6c(i)および図6d(i)の各々は、ハンドヘルド装置のカメラの「画像キャプチャ」部分に対応する画素化センサ610上に観測されるとおりの、ディスプレイマーカ604'_1および604'_2の画像例604_1,604_2を含む。図6b(ii)、図6c(ii)および図6d(ii)の各々はハンドヘルド装置位置およびポインティング方向各々の正面図を示し、図6b(iii),図6c(iii)および図6d(iii)の各々はハンドヘルド装置位置およびポインティング方向各々の上面図を示し、図6b(iv),図6c(iv)および図6d(iv)の各々はハンドヘルド装置位置およびポインティング方向各々の側面図を示す。
図4aから図4c各々に関連して上述した(x',y',z')座標系は、図6aから図6dの分図(ii),(iii)および(iv)に対しても維持される。分図(i)に対しては、新たな座標軸(x,y)が導入されて、画素化センサの所定の画素位置を表す。ここで、+y方向はセンサ表面上方への垂直移動に対応し、+x方向はセンサ表面沿いの右方向への水平移動に対応する。画素化センサは、CMOS,CCD,またはフォトダイオードのアレイのような様々なテクノロジによって作られる。
まず図6aを参照すると、図6a(ii)から図6a(iv)には、ハンドヘルド装置601がディスプレイ600'の中心に直面していることが示されることがわかる。こうして、ハンドヘルド装置601によってポイントされるディスプレイ600'上の位置602'は、ディスプレイ600'の中心に対応する。この位置において、マーカ604'_1および604'_4は、ハンドヘルド装置のセンサ610上に画像604_1および604_2として現れる。ここで、マーカ画像位置604_1は画素位置x'=10,y'=14として観測され、マーカ画像位置604−_2は画素位置x'=16,y'=10として観測される。
操作に先立ち、センサ610上の検知されたマーカ位置を、ハンドヘルド装置がポイントしているディスプレイ600'上の位置に変換する数学的関係に現れる変数に対する値を決定するため、初期較正手順が必要になる。較正を行う方法にはいくつかあり、任意の所定手順は、使用されるシステムの所定実施例に依存する。1つの較正アプローチによれば、ユーザは1つ以上の画定位置(一般には画面上またはその近く)をポイントし、ハンドヘルド装置はマーカ画像604_1,604_2のセンサアレイ610上の位置を記録する(所定の較正手順のより詳細な説明は、以下のセクション4.0で与える)。より少数のマーカを含む実施例では、較正手順は、画面上(例えば対向する角)に一時的に表示される可視マーカ(典型的には2つ)を順次ポイントすることを含む。
較正後、ハンドヘルド装置の位置およびポインティング方向の変化に応答してのセンサ610表面上の観測マーカ画像604_1,604_2位置の変化は、それらの原較正位置を参照して画定することができる。そして、ハンドヘルド装置601がポイントしているディスプレイ600'上の位置に関連付けることができる。
図6b(i)は、ハンドヘルド装置601がディスプレイの中心(図6aのような)の前に位置したままではあるが、ディスプレイの中央上方をポイントする場合の観測センサ画像を示す。ハンドヘルド装置601の垂直ポインティング方向が変化しても水平位置が図6aに対して固定しているので、マーカ画像604_1および604_2に対するx座標値は、図6a(i)のそれらの値と比べて不変のままとなる(すなわち、マーカ画像604_1および604'_2各々に対してx'=10および16となる)。しかし、それらのy'座標値は図6a(i)のそれらの値に対して増加する。さらに、図6b(i)のマーカ画像604_1と604_2との間の垂直距離は、図6a(i)のこの距離と比べて圧縮される(すなわち、図6b(i)における16−13=3画素対図6a(i)における14−10=4画素となる)。
図6b(i)の観測されたマーカ画像位置の変化は、ディスプレイ600'上のハンドヘルド装置の正しいポインティング位置に数学的に関連付けることができる。そして、ポインティング位置にカーソルを生成するかまたは、ポインティング位置に現れるユーザインターフェイスフィーチャから動作をトリガするために使用することができる。かかる数学的関係の徹底した説明は、さらに以下の「絶対ハンドヘルド装置ポインティングのための数学的関係」という名称のセクション4.0において詳細に提示する。
一般に、より多数のマーカが使用されればされるほど、被ポイント表示位置をより詳細に決定することができるが、より多数の処理が必要になる。
1マーカ、2マーカ、3マーカおよび4マーカのシステムを実装するために適した数学的関係はセクション4.0で提示される。セクション4.0で与えられる関係は主に、検知されたマーカ画像位置の分析によって表示位置上のまたはその近くのハンドヘルド装置の絶対ポインティング方向、位置および配向を決定するための関係を表すが、マーカ画像のサイズおよび形状の分析によってこれらのシステムの精度を向上させることも理論的に可能である。
図6c(i)は、ハンドヘルド装置601が、図6bにおけるその位置の直上位置に向かって「上昇」するが、図6(a)のようなディスプレイ600に直面する場合の観測センサ画像を示す。ハンドヘルド装置601が図6(a)および図6(b)におけるその位置に対して物理的に上昇し、かつ、図6(a)におけるようなディスプレイに直面するので、マーカ画像604_1および604_2のx座標値は、この場合も不変である。しかし、図6c(i)のマーカ画像604_1と604_2との間の垂直距離は、図6b(i)におけるこの距離と比べてわずかに拡大される(すなわち、図6c(i)における17−13.5=3.5対図6a(i)における16−13=3となる)。
この場合も、図6c(i)の観測されたマーカ画像位置の変化は、ディスプレイ600'上のハンドヘルド装置の正しいポインティング位置に数学的に関連付けることができる。そして、ポインティング位置にカーソルを生成するかまたは、ポインティング位置に現れるユーザインターフェイスフィーチャから動作をトリガするために使用することができる。
図6d(i)は、ハンドヘルド装置601が、図6cにおけるその位置からすぐ左に移動するが、そのポインティング方向は図6cにおいてポイントされるのと同じ表示位置602'をポイントしたままとなるように調整される場合の観測センサ画像を示す。ハンドヘルド装置はy軸上ではなんら変化しないので、マーカ画像604_1および604_2のy'座標値は、図6c(i)のそれらの値と比べた場合に図6d(i)において不変のままである。さらに、ハンドヘルド装置のフェイスはx'軸上およびz'軸上の両方で実質的に変化するので、マーカ画像のx座標値は図6c(i)におけるそれらの値から実質的に変化する。この場合も、図6d(i)の観測されたマーカ画像位置の変化は、ディスプレイ600'上のハンドヘルド装置の正しいポインティング位置に数学的に関連付けることができる。そして、ポインティング位置にカーソルを生成するかまたは、ポインティング位置に現れるユーザインターフェイスフィーチャから動作をトリガするために使用することができる。
図7aから図7cは、異なるシステム設計を有する絶対ポインティングハンドヘルド装置システムによって実行可能な方法を示す。最も注意すべきことは、様々な設計間の違いには、ハンドヘルド装置によって行われるプロセスの程度が含まれるということである。図5aおよび図7aを参照すると、図7aは、ハンドヘルド装置501がマーカ画像データをキャプチャするだけでなく、観測マーカ画像位置をディスプレイ500上の所定の被ポイント位置に変換するために必要な数学的関係の計算すべても行う方法を示す。
こうして、ハンドヘルド装置501はワイヤレス受信機508にディスプレイ上の被ポイント位置の座標を変換する(714)。すべてのプロセスは、ハンドヘルド装置501が、1)そのカメラでマーカ画像データをキャプチャすること(711)、2)カメラの画素化センサ上の各マーカ画像の位置を特定すること(712)、3)数学的関係による計算を介してディスプレイ上のハンドヘルド装置の被ポイント位置を決定すること(713)、および4)被ポイント位置をワイヤレス受信機508へ送信すること(714)を含む。そして、ディスプレイ500上の表示内容を制御する役割の電子回路は、所定の効果が被ポイント位置に現れるようにする(715)(例えば、カーソル、メニューフィーチャのハイライト化等)。
図7bは、ハンドヘルド装置501が、数学的関係による計算を介してディスプレイ上のハンドヘルド装置の被ポイント位置を決定しないが、そのカメラによってマーカ画像データをキャプチャすること(721)に加えてさらにカメラの画素化センサ上の各マーカ画像の位置を特定する(722)方法を示す。こうして、ハンドヘルド装置501は、マーカ位置をワイヤレス受信機508へ送信する(723)。ディスプレイ500上の表示内容を制御する役割の電子回路はマーカ位置を受信し、数学的関係による計算を介してディスプレイ上のハンドヘルド装置の被ポイント位置を決定し724、次に、所定の効果が被ポイント位置に現れるようにする(725)(例えば、カーソル、メニューフィーチャのハイライト化等)。
図7cは、ハンドヘルド装置501が、数学的関係による計算を介してディスプレイ上のハンドヘルド装置の被ポイント位置を決定せず、また、カメラの画素化センサ上の各マーカ画像の位置を特定することもしない方法を示す。その代わりに、ハンドヘルド装置501はそのカメラによってマーカ画像をキャプチャし(731)、これらの画像を記述する情報をワイヤレス受信機508に送信する(732)。ディスプレイ500上の表示内容を制御する役割の電子回路はマーカ画像データを受信し、1)カメラの画素化センサ上の各マーカ画像の位置を特定し(733)、2)数学的関係による計算を介してディスプレイ上のハンドヘルド装置の被ポイント位置を決定し(734)、4)次に、所定の効果が被ポイント位置に現れるようにする(735)(例えば、カーソル、メニューフィーチャのハイライト化等)。
図7aから図7cの各々において、画像データは繰り返しキャプチャされる(711,721,731)。その結果、新たなディスプレイ上の被ポイント位置は、迅速な規則性で決定することができる(例えば、カーソルの移動は、ディスプレイ500上で少なくとも外見上は滑らかに追跡することができる)。
さらに、図7aから図7cの各々が、被ポイント位置において効果をディスプレイ上に現れるようにするプロセスを示すことに留意されたい。代替的にまたは組み合わせで、ハンドヘルド装置の「ボタン押し」または「ロール動作」の形態での付加的な情報がハンドヘルド装置から送信されて、電子機器は所定種類の動作をトリガする。例えば、被ポイント位置が表示アイコンまたはメニューに対応する場合、および、被ポイント位置に対してハンドヘルド装置から送信された情報が所定種類のボタン押しまたはロール動作も含む場合、表示内容を決定する役割の回路は、ハンドヘルド装置から送信された情報の集合を、ユーザがアイコンまたはメニュー項目を選択したものと解釈する。
詳細な数学的関係はセクション4.0で以下に詳細に提示するが、図8aから図8dおよび図9は、少なくとも所定の実施例において、観測マーカ画像位置をディスプレイ800'表面上のまたはその近くの所定の被ポイント位置802'に変換するのに利用可能な数学的関係に適用可能ないくつかの高度な詳細を与える。図8aから図8dは、適用可能な数学的関係の所定セットにおいて規定されかつ適用される様々な3次元概念を示す。
図8aの図示および図9のプロセスフローによれば、ディスプレイ800'上の被ポイント位置802を決定することは、1)倍率(M)を決定すること(901)、および2)倍率Mを使用して、マーカが観測されるセンサ軸位置をハンドヘルド装置がポイントしているディスプレイ上の対応軸位置に変換する数学的関係を実行すること(902)を含む。アプローチにおいて、1つの装置/ディスプレイ座標軸ペア(x,x')に対して第1倍率MXが計算されて、第2の装置/ディスプレイ座標軸(y,y')に対して第2倍率MYが計算される。したがって、図9に見られるプロセスは本質的に2回実行される。1回はx,x'軸ペアに対するものであり、もう1回はy,y'軸ペアに対するものである。
倍率MXは本質的には、x軸上の所定センサ位置に対してx軸上のセンサのマーカ位置に観測される変化と、x'軸上の所定ディスプレイ位置に対してディスプレイ上のポイントされたx'軸上位置の位置変化と割合である。ここで、所定センサ位置および所定ディスプレイ位置は較正中に決定される。セクション4.0で詳細に説明するが、倍率の精度は、ハンドヘルド装置に関する付加的な詳細が観測マーカ画像から集められる場合に向上する。具体的には、倍率の精度は、ディスプレイに対するハンドヘルド装置の位置(例えば、ディスプレイ802の中心とハンドヘルド装置の前との間の距離L820)および/またはディスプレイに対するハンドヘルド装置の配向(例えば、ハンドヘルド装置901の視野角θ)が決定されている場合に高めることができる。
様々な実施例によれば、1)ハンドヘルド装置のヨーまたはハンドヘルド装置のヨーの変化を計算する場合にはマーカ画像位置の左右移動が追跡され、および2)ハンドヘルド装置位置を計算する場合にはマーカ画像位置の相対的分離が追跡される。一般には、すべてのマーカ画像位置間の分離は、ディスプレイからの距離に反比例し、マーカ画像位置の異なるペアの相対的分離は、ディスプレイ表面に対するハンドヘルド装置の角度に依存する。
図8aおよび図8bはまた、ハンドヘルド装置の配向の別の特徴も示す。これは、ハンドヘルド装置の「ロール」φと称され、マーカ画像位置から追跡することができる。ここで、ハンドヘルド装置のロールは、ハンドヘルド装置のポインティングベクトル軸まわりのハンドヘルド装置の回転に対応する(すなわち、ハンドヘルド装置の前から突出するベクトルであり、それとディスプレイとの切片がディスプレイ上の被ポイント位置に対応する)。
ハンドヘルド装置のロールφを計算する場合、マーカ画像位置の集団回転が検知される。実施例において、ポインティングベクトルは、ハンドヘルド装置のセンサアレイの中心に始点があるものと仮定される。図8aおよび図8dは、ハンドヘルド装置のピッチγを示す。ハンドヘルド装置の有効ピッチまたは有効ピッチの変化はまた、ディスプレイ上の被ポイント位置をより正確に規定するように決定される。
装置のロール中にセンサ軸は画面軸に関して回転するので、計算されるカーソル位置がロール動作によって影響を受け、それにより所定のカーソル配置にオフセット誤差が生じる可能性がある。しかし、センサアレイの回転が、ディスプレイ上のカーソル位置決定に使用されるアルゴリズムにおいて適切に考慮されれば、ハンドヘルド装置のロールはそのポインティングベクトル計算になんら影響を与えない。さらに、1つの実施例によれば、ハンドヘルド装置のロールは、電子機器が行う所定種類の動作をトリガするために使用することができる。例えば、ユーザの「手首のひねり」を「ボタン押し」として解釈することができる(例えば、ユーザがハンドヘルド装置をアイコンまたはユーザインターフェイスメニュー項目をポイントした後に自身の手首をひねってそのアイコンまたはメニュー項目を「選択」する)。図10aおよび図10bは、ハンドヘルド装置のロール動作を追跡する、別の有用なアプリケーションを示す。図10aおよび図10は「仮想ダイヤル」機能に関する。仮想ダイヤルの実施例によれば、ダイヤル1010の図がディスプレイ上に表示される。図10aにおいて、ダイヤルはLOW1011の値にセットされるように示される。
ユーザがハンドヘルド装置をダイヤルにポイントして自身の手首をひねると、ダイヤルはユーザの手首の回転と連動して回転するように表示される。したがって、図10bにおいて、ユーザはハンドヘルド装置をダイヤルにポイントして自身の手首を時計方向1002にひねったことがわかる。それに応答して、表示される仮想ダイヤル1010は、ユーザの手首の回転が、「停止」されたとみなされるまで時計方向に回転された。これは、図10bによれば、MID1011の設定となる。さらなる実施例によれば、ユーザはハンドヘルド装置の回転中にハンドヘルド装置のボタンを押して、ダイヤル1010の回転をアクティベートする(すなわち、ユーザは手首の回転と組み合わせてボタンを押す必要がある)。こうして、ハンドヘルド装置は、1)ディスプレイ上の被ポイント位置(またはディスプレイ上の被ポイント位置が決定され得る情報)、2)ハンドヘルド装置のロール位置(またはハンドヘルド装置のロール動作が決定され得る情報)、3)ユーザがボタンを押していることを意味する情報、を送信する。
1つのアプローチによれば、マーカ自体が、ハンドヘルド装置のセンサによって検知される光源として動作する(例えば、マーカはLEDとして実装される)。他の実施例において、ハンドヘルド装置が、ハンドヘルド装置のセンサによって検知される光源として動作する。例えば、かかる1つのアプローチによれば、ハンドヘルド装置は、赤外線(IR)「フラッシュライト」を含む。これは、表示領域内にIR光を照らし、各マーカは「パッシブ」反射体として実装される。信号対ノイズ比を高めるために付加的な画像処理が使用されてよい。例えば、ハンドヘルド装置にとって検知可能な放射光の特性が反射された画像から減算されて、検知されたマーカ画像の信号対ノイズ比を本質的に向上させてもよい。さらなる実施例において、フラッシュライトは「ストロボ」となって、検知された各マーカ画像から減算される放射光の表示が、マーカ画像の検知の直前に行われる。また、IRフィルタが、カメラを覆って不要な光の除去を補助するように配置されてもよい。
反射マーカの使用で利益を得る他のアプリケーションには、例えば、ホームおよび/またはオフィス自動化回路の使用によって、単数のハンドヘルド装置を複数の器具に適用することが含まれる。1つのアプローチによれば、反射基準マーカが、制御される器具上またはその近くに位置決めされ、各装置に対しては反射マーカが所定の空間パターンで配列される。そして、ハンドヘルド装置は、その特定のパターンを認識することによって所定器具を認識することができる。ここで、器具の1つ以上はディスプレイさえ有していなくてもよいことに留意されたい。さらに適した言い方をすると,器具自体および/またはそのリモート使用は単純化されてよく(例えば、「オン」および「オフ」のような少数の状態のみを有するような)、それによって、器具をポインティングしてハンドヘルド装置上の1つまたは少数のボタンを押すという簡単な動作で、装置の使用が十分可能となる。かかる器具の例には、ランプ、ラジオおよびテレビジョンが含まれる。
所定装置/器具を特定する空間マーカのパターンには、様々なフォーマットを使用することができる。例として、バーコード(すなわちユニバーサルプロダクトコード)、および単純なオン/オフバイナリコードが含まれる。器具当たり要するマーカの数は、特定される必要がある異なる器具の数および/または使用されるパターンフォーマットに依存する。ほとんどの家事用途に対しては、その数は小さい(5よりも少ない)可能性が高い。ハンドヘルド装置が器具(例えばランプ)をポイントし、ハンドヘルド装置上の所定のボタンが押される(および/または装置に関する所定のジェスチャが行われる)と、ハンドヘルド装置はプログラムされて所定の指令をワイヤレス送信(例えばRFまたはIR)によって器具に、直接または中央指令ユニット(例えばX10のような電子機器503)を介して送信する。中央指令ユニットは、実際にはその指令を被ポイント器具に直接送信する。
1つのアプローチによると、コマンドは、ポイントされる器具の識別を含むパケットで送信される(すなわち、ハンドヘルド装置には、所定器具の各々を特定することができるパターン認識能力がプログラムされている)。別のアプローチでは、ハンドヘルド装置は画像パターンおよびハンドヘルド装置の動作(例えば、ボタン押し、ロール動作等)またはコマンドを別の装置(例えば前記中央指令ユニット)に送信する。次に、他の装置は、1)被ポイント器具を認識し、2)被ポイント器具にコマンドを送信/転送する。単純な電源オン/オフおよび異なる器具特性(例えば光強度、オーブン温度、音量等)の増/減を含む様々なコマンドが、器具に通信されてよい。
ハンドヘルド装置が器具に直接コマンドを出す場合、または、中間ユニット(例えば前記指令ユニット)が器具にワイヤレスでコマンドを出す場合、器具は、ホームおよび/またはオフィス自動化回路(例えば、(実行コードを備える)プロセッサ/コントローラに接続されたワイヤレス受信機を有する集積回路および/または(「選択」または「設定」回路(例えば、チャネル設定/選択、温度設定/選択、音量設定/選択等)のような)スイッチまたは他の機能的実行回路に接続された(実行コードを備えない)論理状態機械回路)として適正にみなされる所定種類のコマンド検知および機能的実行回路を備えるように構成される必要がある。なお、ハンドヘルド装置の使用を介した単純化器具のリモートコントロールは、ディスプレイ上の被ポイント位置を表示するのとは別個にまたはそれと組み合わせて実装されてよい。
2.0ハンドヘルド装置ハードウェア設計の実施例
図11および図12は、ハンドヘルド装置ハードウェア設計に関する。図11によると、ハンドヘルド装置は、(ハンドヘルド装置の前面に位置する)アパチャ1101、様々な光学要素(例えば、レンズ、ディフューザ、フィルタ等)を含む光学チャネル1102および画素化センサ1103を含む。同時に、アパチャ1101、光学チャネル1102およびセンサ1103は、出力1109がプロセッサまたはコントローラ1104に接続されたデジタルカメラを形成する(または、デジタルカメラの出力値は、それが読み取られてプロセッサまたはコントローラ1104に与えられるメモリ1105に書き込まれる)。
プログラムコード1106は、プロセッサ/コントローラ1104上で実行されて、様々な機能が達成される(例えば、マーカ画像検知、検知されたマーカ画像位置を所定の被ポイント表示位置に関連付ける数学的計算、検知されたマーカ画像位置をハンドヘルド装置のロール位置に関連付ける数学的計算、有線またはワイヤレス通信の受信および送信プロトコル等)。図11には示さないが、ハンドヘルド装置のプログラムコードを格納する不揮発性メモリ装置、およびプロセッサ/コントローラ1104に接続された1つ以上のボタンもある。実施例において、メモリ1105は、低コストおよび低電力消費ゆえにダイナミックランダムアクセスメモリ(DRAM)セルで作られる。
コントローラは、特別な目的の命令セットを有するプロセッサとして理解される。プロセッサは、プログラムコード1106命令を実行するように論理回路的に設計されると理解される。マイクロプロセッサ、マイクロコントローラ、組み込み型プロセッサおよび組み込み型コントローラのような異なる形態のプロセッサおよびコントローラが存在する。プロセッサまたはコントローラはまた、ワイヤレストランシーバ回路1107にも接続される。そして、これはワイヤレス信号を送信/受信するアンテナ1108に接続される。考えられるところでは、プロセッサ/コントローラ1104は、適用可能な数学的計算および/またはマーカ画像位置検知機能を行うように設計された専用論理回路に置換できる。
図7aに整合するプロセスフローによれば、画素化センサ1103からのデータは、画素化センサ1103上のマーカ画像位置を検知するプロセッサ/コントローラ1104によって処理される。次に、プロセッサ/コントローラ1104は、マーカ画像位置を所定の被ポイント表示位置に関連付ける数学的計算を実行する。次に、プロセッサ/コントローラは、ワイヤレス送信用に被ポイント位置を特定するデータを用意し、それをワイヤレストランシーバ回路1107に転送する。そして、ワイヤレストランシーバ回路1107はそれをワイヤレス装置から送信する。
ワイヤレストランシーバ回路は、送信および受信両方の回路を含む。単純な実施例では、回路1107はワイヤレス送信機回路である(すなわち、ハンドヘルド装置は、カメラのアパチャに入る電磁放射以外のワイヤレス信号を受信および処理するように設計されていない)。ワイヤレスユニバーサルシリアルバス(USB)、Z−Wave、IR、IEEE802.15.1(BLUETOOTH)、IEEE802.15.4(ZigBee)またはIEEE802.11(WiFi)規格のような様々なワイヤレスソリューション、およびUSBまたはRS−232のような有線ソリューションが存在する。別の可能な実施例では、ハンドヘルド装置は、ワイヤレスではなく有線によって情報を電子機器に送信する。こうして、ワイヤレストランシーバ1107およびアンテナ1108は、ドライバ回路1107、および適用可能な電気機器に接続される配線に置換される。
図7bに整合するプロセスフローによると、画素化センサ1103からのデータは、画素化センサ1103上のマーカ画像位置を検知するプロセッサ/コントローラ1104によって処理される。次に、プロセッサ/コントローラ1104は、ワイヤレス送信用にマーカ画像位置を特定するデータを用意し、それをワイヤレストランシーバ回路1107に転送する。そして、ワイヤレストランシーバ回路1107はそれをワイヤレス装置から送信する。
図7cに整合するプロセスフローによれば、プロセッサ/コントローラ1104は、画素化センサ1103からのデータをワイヤレス送信用に用意し、それをワイヤレストランシーバ回路1107に転送する。そして、ワイヤレストランシーバ回路1107はそれをワイヤレス装置から送信する。図7cに整合する別の実施例においては、プロセッサ/コントローラ1104は、単に画素化センサデータをワイヤレストランシーバ回路1107に転送する回路に置換される。なお、ワイヤレストランシーバ回路1107は、考えられるところでは、ハンドヘルド装置からの電気信号をケーブルを介してディスプレイに向けて駆動するための駆動回路に置換される。
図12は、ハンドヘルド装置のカメラのための光学チャネル設計の例を示す。図12の図示によると、「バンドパスフィルタ」は、本質的には画素化センサ1103の光学伝達関数、および光学フィルタの伝達関数ハンドヘルド装置の光学チャネル1102にによって生成される。図12の所定の実施例によれば、画素化センサ1103はシリコン系CMOSデバイスである。CCDおよび光ダイオードのアレイのような他のタイプのセンサが使用されてよい。CMOSデバイスは、940nm付近のピーク応答よりも上のそのパスバンドの上端でロールオフするローパスフィルタに本質的に対応する光学伝達関数1203を有する。光学チャネル1102は、940nmよりも下のそのパスバンドの下端でロールオフする赤外線(IR)ハイパスフィルタ1202を含むように作られる。Kodak Wratten 87C、Hoya IR−85またはそれらと同等の市販のIRパスフィルタがこの目的に適している。
これらの2つのフィルタ1202,1203を組み合わせることによって、940nm付近の狭いパスバンド1210aが得られる。ここで、図5に戻ると、マーカ504_1から504_4自体は、IR送信機(例えば光放射ダイオード(LED))となるように作られるが、理想的には、画素化センサ1103はその出力1109において強い検知「信号」を提示する。出力1109は、マーカ504_1から504_4から受信される電磁放射にほぼ対応し、ハンドヘルド装置のアパチャ1101を介して受信される他の電磁放射からのバックグラウンドがほとんどない。
しかし、他の光学的アプローチも可能である。例えば、ハンドヘルド装置501はそれ自体のIR送信機を含むように設計されてよく、マーカ504_1から504_4は単なる鏡(または、さらにIR反射鏡)として実装されてよい。光学チャネル1102自体の伝達関数は、所定のパスバンド(例えば、ハイパスフィルタとローパスフィルタとの両方を含むことによる)であってよい。さらに、考えられるところでは、画素化センサがローパスフィルタではなくハイパスフィルタに対応する伝達関数を有し、光学チャネル1102の伝達関数がローパスフィルタに対応するように作られてよい。
また、考えられるところでは、全体としてカメラの設計目的のパスバンド(すなわち、光学チャネルと画素化センサ1103)が、単なるハイパスフィルタまたはローパスフィルタであってもよい。他の実施例において、ハードウェアで行われる光学的フィルタリングはほとんどまたは全くなくて、むしろ、フィルタリング(あるとすれば)は、プロセッサ/コントローラ1104によって、または専用の論理回路によってソフトウェアで行われてよい。マーカ画像を形成するために使用される電磁放射の波長は、設計的な選択事項である。IRスペクトル内(約800−950nm)に存在するスペクトルのほかに、マーカ画像のための他の可能な波長範囲が使用されてよい。一般に、市販の光源およびセンサに基づくと、可視から近赤外(約400−1000nm)の領域のスペクトルが好ましい。シリコン系検知器アレイ(例えばCMOSおよびCCD)がこの波長範囲に最も好適である一方で、ガリウムヒ素およびゲルマニウムのような他の材料が使用されてさらにIRに及んでもよい。
なお、図13bに関連して以下に詳細に説明するが、光学チャネル1102は、ディフューザまたは「焦点外の」光学経路を含むように作られて、マーカ画像を故意にぼかしてより容易に検知されるようにしてよい。マーカサイズが大きければ大きいほど、マーカの真の中心位置のより正確な決定が可能になる。これは、サブ画素分解能をもたらす補間アルゴリズムを使用して達成することができる。
3.0 画像マーカ検知処理方法
図13a、図13b、図14および図15は、マーカ画像位置検知処理方法に関する。図7aおよび図7bのシステム方法によれば、マーカ画像位置検知はハンドヘルド装置によって行われる。図7cのシステム方法によれば、マーカ画像位置検知は、ディスプレイ上の表示内容を制御する役割の電子機器に関連する回路(または少なくとも、かかる回路に接続された回路)によって行われる。
図13aは、マーカ画像の放射によって照らされた画素化センサの図を示す。例えば、ハンドヘルド装置のカメラのパスバンドがバンドパスフィルタ(例えば、図12に関して説明したような)に対応して理想的には画素化センサがマーカからの電磁放射のみに応答する場合、画素が受けるマーカの放射量が、その画素の出力値を決定する。1つの実施例によれば、各画素は、256の異なる強度値を可能にする8ビット出力を有する。
理想的にマーカ画像放射のみが画素化センサに当たる場合、マーカからの放射によって十分に照らされる画素は256に近い「高」出力値を生成し、マーカからの放射によって部分的にのみ照らされる画素は128近くの「中」出力値を生成し、マーカからの放射を受けない画素は0近くの「低」出力値を生成する。もちろん、上述の値は、ハンドヘルド装置がマーカから離れた位置にあると落ち込む。図13aは、マーカからの放射によって照らされた画素領域を「暗部」として描いている。特に、暗部の円が見られる。したがって、円内の画素は理想的には256近くの値を有し、円周では約128の値を有し、円外の画素は0近くの値を有する。この場合、対応する画素の2次元(x,y)座標に相関するこれらの値の集合は、マーカの画像(または、このマーカ画像に対する画素化センサの出力信号)に対応する。
図13bは、図13aのマーカ画像よりも大きいマーカ画像の表示1302を示す。ここで、光学分野では十分に理解されることであるが、光は、光の小さな「点」に収束され得る。図13aは、光学チャネル1102での光学処理がマーカ画像を小さな画像に収束するように設計されている場合のマーカ画像を表す。それとは対照的に、図13bは、光学チャネル1102がディフューザを含み意図的にセンサ1103が光学チャネルの出力焦点の前後に位置するように設計され、その結果マーカ画像が故意にぼかされている場合の同じマーカ画像を示す。マーカ画像を故意にぼかすことにより、マーカ画像は、マーカ位置検知アルゴリズムによって容易に検知される。
この経験にそぐわない結果(すなわち、マーカ画像が明瞭に収束していない場合に検知マーカ画像位置の分解能が向上すること)は、画像により多くの画素(すなわちデータ)が存在することに起因する。この画像データを適切に処理することにより、画像の真の中心をより正確に決定することのできる高分解能補間を行うことができる。これにより、ユーザが自身のポインティング方向または配向を変更する場合に、より良好で滑らかな追跡をすることができる。この増大した分解能を達成することのトレードオフは、センサのピーク信号が弱小化することである。したがって、信号が検知できないほど弱小にならずに許容できるマーカ画像の拡大量には限りがある。実際には、マーカ画像サイズと信号強度との間には、マーカ画像信号強度、センサ感度、センサのノイズ信号およびバックグラウンド信号、マーカの間隔、ならびにマーカからユーザまでの最大距離(マーカ画像はひとたびセンサ上で互いに当たり始めるとそれ以上拡大されるべきではない)等のようないくつかのシステム因子に依存する最適なバランスがある。
図14および図15は、マーカ位置検知技術に関連する。図14は、ハンドヘルド装置のセンサによって提示される複数のマーカ画像の位置の検知プロセスを示す。図15は、センサの出力信号の例示となる図を与える。図14のプロセスによれば、マーカ画像(単純な場合には図15のマーカ1505'_1のような「マーカ」)が、センサの出力信号に検知される(1401)。ここで、例えば、「高」出力値(あからじめ決定されたしきい値より上)を与える十分な数の隣接画素を有するセンサの画素アレイの領域を特定することによってマーカを認識することができる。
ひとたびマーカが特定されると、検知されたマーカ1504'_1付近の領域1402,1520内の画素データは、マーカの「位置」を特定するためにさらに処理される。図13bのマーカ画像1302は、領域1504'_1に関連するデータの図示の例とみなすことができる。各画素位置が、画素位置を照らすマーカからの放射量が増大するに従って増大する関連強度値を有するということから考えて、図13bのマーカ画像1302は、強度値のアレイとしてみなすことができる。
図14に示すように、強度値は、x軸上の「水平方向」1403'_1で合計されて、抽出されたデータ領域1504'_1の各データロウに対し、そのロウに対する総計強度値が生成される。マーカ画像の形状に起因して、抽出されたデータ領域1504'_1の垂直方向の広がりにわたる総計強度値の分布は、「ベルカーブ」1305の分布(例えばガウスまたはガウス様分布)に近似することになる。同様に、強度値は、y軸上の「垂直方向」1403'_2で合計されて、抽出されたデータ領域1504'_1の各データカラムに対し、そのカラムに対する総計強度値が生成される。
この場合も、マーカ画像の形状に起因して、抽出されたデータ領域1504'_1の水平方向の広がりにわたる総計強度値の分布は、「ベルカーブ」1303の分布に近似することになる。次に、カーブフィッティング関数1404_1,1404_2が分布1303,1305の各々に適用され、その各々に対するフィッティング連続カーブ1304,1306が規定される。次に、水平方向フィッティングカーブ1304の最大値はマーカ画像1405_1の位置のx座標値1307(xo)とされ、次に、垂直方向フィッティングカーブ1306の最大値はマーカ画像1405_2の位置のy座標値1308(yo)とされる。その後、すべてのマーカが検知されてそれらの位置が決定されるまで、次のマーカに対してプロセスが繰り返される(1407)。単純なピーク検知に加えて、特にビームの分布が滑らかでもなく対称関数でもない場合には、中心決定のための他の方法が使用されてもよく有益である。
かかる方法は、フィッティングカーブの幅(例えば半値全幅−FWHM)を本質的に決定し、マーカ中心はFWHM点間の中心位置となる。
この場合、中心はピーク位置と同じではない。このアプローチに対する他のバリエーションも使用されてよい。これらのマーカ中心決定アルゴリズムサブ画素分解能を使用することが可能と考えられる。達成可能な分解能は、信号のノイズおよびデジタルセンサのサンプリングビット数によって限られる。例えば、8ビットのデジタル化でサンプリングされたノイズのない信号であれば、0.005画素空間分解能よりも低くなる。
信号の平均化によって、この分解能をさらに高めることができる。実際には、システムノイズおよびバックグラウンド信号の存在により、典型的には0.01画素から0.1画素までにわたる低下した分解能となる。
4.0絶対ハンドヘルド装置ポインティングのための数学的関係
1,2,3および4マーカシステムに対する絶対ハンドヘルド装置ポインティングおよび位置追跡のための様々な数学的アプローチの詳細が説明を以下に提示する。
4.1 1マーカ実施例
1マーカ実施例に対するアプローチによれば、主要な作業は、ハンドヘルド装置に位置決めされたセンサのポインティング方向をディスプレイ上の所望カーソル位置に関連付けることである。これは一般に、ディスプレイ(x',y')およびセンサ(x,y)両者に対する水平および垂直座標を含む2次元問題である。軸は直交するので、関連する方程式は分離可能であり、各軸に対して独立に式を導くことができる。このため、水平軸(x'およびx)に対する計算を最初に提示する。次に、これらを垂直軸(y'およびy)に拡張する。
図16は、座標系および符号規約を示す。「上面図」の視点からの水平次元の2つの異なるポインティング方向を図示し、変数がどのように関連するのかを示す。垂直次元に対しても類似の図が適用される。センサ1603およびディスプレイ1600'の座標に関する基本方程式は以下のようになる。
ここで、x0はセンサ1603の座標の原点、すなわち、所望のポインティング方向に対応する座標である(好ましい実施例ではx0はセンサ1603上の中心画素付近にあり、さらに適した言い方をすると、センサ視野1604はカーソルx'CURに中心を有する)。xREFは、基準マーカ画像のセンサ1603上の位置である(これはセンサ1603が移動すると移動する)。x'REFは、ディスプレイ1600'に対する基準マーカの実際の位置である。x'CURは、ディスプレイ1600'上の所望のカーソル位置である(これもセンサ1603が移動すると移動する)。Mxは、拡大倍率、すなわち、センサ1603の座標とディスプレイ1600'の座標との間のマッピングを決定する比例定数である。Mは、いくつかのシステム因子(例えば、ディスプレイに対するセンサ位置、センサ視野、ディスプレイサイズおよびディスプレイに対するセンサ配向)に依存し、一般に、x,x'座標およびy,y'座標は、M(MxおよびMy)に対して異なる値(大きさおよび符号)をとり得る。
方程式(1)は、基準マーカからディスプレイのカーソルまでの距離1605_1,1605_2および基準マーカ画像からセンサ原点までの距離1606_1,1606_2が、それらの相対的な局所座標系において、線形的に関連(すなわち比例)し、その比例定数すなわち倍率がMであることを示す。
(1)を、ディスプレイカーソルを追跡および移動するための実際のアルゴリズムに変換するために、1つの実施例によれば、(1)のいくつかの因子は、画面に対する所定位置において行われる初期較正ルーチンを使用して決定される。実際には、x位置およびy位置はセンサ1603上の画素数に対応し、x'位置およびy'位置はディスプレイ1600'上の画素数に対応する。また、画素数が各座標系における合計画素数に対応するので、x(y)およびx'(y')は、それに応じて正規化されることになる点に留意されたい。
較正中に決定される(1)の因子は、Mx,x0およびx'REFである(ここで、xREFは、センサ1603上の測定された基準マーカ画素数であり、x'CURは、アルゴリズムの出力−ディスプレイカーソルの画素数である)。一般に、x0は、センサ1603上の原点に対応する任意の所定画素数であるが、近似中心が最も自然に使用される。例えば、640×480のアレイサイズを有するセンサであれば、x0〜320およびy0〜240を有する。しかし、1つの実施例に対しては、これらの値は較正に先立って明示的に決定される必要がない。実際には、x0およびy0は、以下に示すように較正中に自動的に決定される。
したがって、Mxおよびx'REFは、較正中に明示的に決定される2つの因子である。x'REFを決定する1つの方法であれば、そのx'位置、およびディスプレイ1600'上の対応する相対画素数を物理的に測定することになる。なお、基準マーカをディスプレイ1600'自体内に物理的に位置決めする必要はない。
x'REFおよびMxの両者を同時に決定するための単純で正確な方法は、ディスプレイ1600'上の既知の位置において表示される2つの可視較正基準点を使用することである。一般に、較正基準点は異なるx座標およびy座標を有し、例えば画面の対向する角に位置決めされる。センサ1603で2つの較正基準点を順次ポインティングして記録することにより、各基準点に対して、センサ1603上の対応マーカ画像位置(基準マーカ画像位置のペアが記録される−1つは第1較正基準点に対応し、もう1つは第2較正基準点に対応する)、Mxおよびx'REFの両者をそのユーザ位置に対して決定することができる。この手順では、x'CALAおよびx'CALBは既知の較正基準点位置を表し、xREFAおよびxREFBは、対応する記録された基準マーカのセンサ画像位置である。方程式(1)において、これらの量でx'CURおよびxREF各々を置換すると、以下のようになる。
これら2つの方程式を減算することにより、Mxに対して以下の表現を得る。
ここで、Δx'CALは、ディスプレイ上の較正基準点間の分離(画素単位)であり(x'CALA−x'CALB)、ΔxREFは、センサ上の対応するマーカ画像位置の測定分離(画素単位)である(xREFA−xREFB)。
方程式(4)からひとたびMxが決定されると、方程式(2)および(3)からx'REFを決定することができる。
または、x'REFを得るために、方程式(2)および(3)両者を使用してそれらを合計して2で割ってもよい。
方程式(6)を方程式(1)に代入して項を並べ替えると、測定量に関するカーソル位置に対する式を得る。
Mxは方程式(4)から決定される。方程式(7)の右側第1項は、較正中の、所定ポインティング方向に対する基準マーカ画像(XREF)の実際の画素位置に対応するセンサ上のマーカ画像の平均画素位置(1/2(XREFA+XREFB))を表し、全体がMx倍される。これは、基準画像がセンサ1603上で移動するにつれてディスプレイ1600'上のカーソルが移動することになる量を本質的に決定する。右側の第2項は、画面上の較正基準点の平均画素位置であり、視線ポインティングを有効にするためにカーソル位置に適用される任意のオフセットを表す。
図17は、ディスプレイ1700'およびセンサ1703基準フレーム内の様々な(xおよびy)座標の例を示す。
なお、(6)を(1)に代入する際x0は消去されるので、方程式(7)はx0から独立である。これは、方程式(1)のx0が方程式(2)および(3)のそれと同じであるという仮定に基づく。これは一般に真であるが、必ずしも当てはまるとは限らない。すなわち、有効なx0は、較正手順中にポインティング方向によって決定される。較正中のポインティングにおける任意のオフセット(意図的であろうとなかろうと)によって、使用中のカーソル位置における同等のオフセットが得られる。
最初で述べたように、上記分析は水平次元に関する。垂直次元に対して類似の導出を適用することができる。方程式(1)−(7)は垂直座標において同等に対応する。したがって、yおよびy'の次元において得られるカーソル位置は以下によって決定される。
方程式(4)から明確なのは、M(MxおよびMy両者)は、較正中のディスプレイ1600'に対するユーザの位置の関数である(ΔxREFはユーザ位置に依存する)。したがって、ユーザの位置が変化するとMもそれに応じて変化することになる。非常に良好な近似に対しておよびほとんどの状況において、Mは、ディスプレイからのユーザの距離Lがその初期値L0から変化すると線形的に変化する。
ここで、M0は、L0に対応する較正倍率である。
このアプローチによれば、図18を参照すると、センサ1803から基準点1810'_1,1810'_2間の中間点1811'(例えばディスプレイ1800'の中心)までのLおよびL0が測定される。したがって、ユーザがディスプレイ1800'または初期較正が行われる基準点から遠くなるように2回移動すると、Mも2倍となる。さらに、Mも、ディスプレイ1800'に対するユーザの視野角の変化に依存する。
視野角の変化は、方程式(9)への三角関数補正因子の追加を考慮すればよい。
ここで、θ0は、初期較正条件に対応する視野角(画面法線から測定される)、θは、ユーザ移動後の現在の視野角、およびdは、ディスプレイ上の較正基準点1810_1,1810_2間の(x軸またはy軸上の)距離(例えばcmまたはmmの実単位で測定)である。方程式(10)は、視野角および距離の変化が倍率Mへ与える影響の正確な表現である。しかし、多数の条件のもと、かっこ内の最後の項は、Mに実質的または気付き得る誤差を導入することなく落とすことができる小さな補正因子である。したがって、Mに対する近似かつ単純な表現は以下のようになる。
方程式(10)に見ることができるように、かっこ内の項は1に近似し、以下の共通条件のもとでは無視できる。すなわち、較正中(θ0)および使用中(θ)両者において視野角が比較的小さい場合、または、dがLおよびL0と比べて小さい場合である。典型的な動作条件のもと、ユーザの視野角は〜25°よりも小さく変化し、画面からの距離は較正マーカ分離の少なくとも2倍である。この場合、方程式(11)を使用することによって導入される誤差は〜1%以下であり、これは通常の状況でユーザが感知できるよりも十分低い。ユーザがθ0=0近くの較正後システムの動作範囲(典型的にはθ〜45°)の端へ移動し、かつ、ユーザが画面のすぐ近く(d〜L)へ移動するという極端な状態では、誤差は〜12%となり、何人かのユーザが気付き得る。
実際には、この誤差は、操作位置により近いところ(例えば、45°近く)で較正することによって低減され得る。一般に、極端な操作条件が予測される場合、非常に高いポインティング精度が所望される場合、または、時々の再較正が不可能または好ましくない場合、厳密式(方程式(10))を使用してポインティング誤差を最小化することができる。しかし、ほとんどの状態では、正しい較正倍率を決定するには方程式(11)が適切である。また、Mが、方程式(7)および(8)で使用されるxおよびy成分の両方を有することに留意されたい。したがって、方程式(10)および(11)に現れる視野角は、MxおよびMyを各々決定するxおよびy成分の両方を有する。また、方程式(10)および(11)は、動きが1平面においてのみであること、すなわち、θがx成分またはy成分のみを有することを仮定していることに留意されたい。任意の動きという一般的な場合にはより複雑な方程式が含まれるが、後のセクションで取り上げる。図18に示すx'次元の方程式(10)および(11)に対する幾何形状は、ディスプレイ1800'および基準点1810_1,1810_2に対する初期較正位置(θ0およびL0に対応)から最終位置(θおよびLに対応)へのハンドヘルド装置の移動を示す。
上述のように、距離および視野角の変化を考慮する1つのアプローチは、ユーザの位置変化がポインティング精度に気付き得る誤差を作るほど十分な場合には、較正プロセスを繰り返すことである。知識がなければ、直接または間接にL、L0、θおよびθ0のいずれかの再較正が、ユーザ位置変化の際のMを補償する唯一のオプションとなる。したがって、再較正の必要性を回避するためには、L,L0,θおよびθ0を有効に測定して方程式(10)または(11)が使用することが必要となる。もちろん、これらの因子を直接的に物理測定することによっても較正の補正は可能であるが、このアプローチは実際には特に適さない。しかし、1つ以上の基準マーカをシステムに付加することによって、距離および視野角両者の決定を基本ポインティング能力に組み込むことが可能になる。自動的および動的な較正の補正が可能になることに加え、複数の基準点によって可能となる付加的な自由度のある感度は新たな可能性を開く。2マーカ配置の分析は次のセクションの主題である。
4.2 2マーカ実施例
2番目の固定マーカをシステムに付加することにより、(I)で説明した較正の補正問題を扱うことができる。これで済ますことができるのは、マーカ画像の分離をモニタできる一方でユーザが画面に対して移動するからである。マーカ画像の分離の変化は、距離または視野角の明示的知識なしに方程式(10)または(11)の補正因子を決定するために使用することができる。そして、Mは、再較正手順の必要性なしにリアルタイムで修正することができる。しかし、Mの変化はLおよびθ両者に依存するので、付加的情報なしには、距離および視野角の変化がMに与える影響を分離することはできない。それらが組み合わされた影響のみが感知されて考慮されるにもかかわらず、較正の補正にはこれで十分となる。次のセクションで説明される第3のマーカの付加により、距離および視野角両者の独立した検知が可能となる。
自動的な較正の補正は、セクション4.1で説明されたものと同様に、2マーカ実施例において行うことができる。この場合、距離および視野角の変化の影響を分離する必要がないので、方程式(10)および(11)は不要である。較正の補正にとって重要なのは、それが距離の変化からのものなのか視野角の変化からのものなのかにかかわらず、マーカ画像の分離の変化のみである。したがって、ユーザの移動に際してMを修正するためには方程式(4)が必要となる。この場合、方程式(4)のΔxREFは、(ディスプレイ較正マーカの距離の代わりに)センサ上の2つの基準マーカの画像間の分離になる。ユーザが画面に対して移動すると、倍率MはΔxREFの変化に伴い自動的に調整される。この動的な較正と上述の初期較正との間の主要な相違点は、較正に使用される2つのマーカは操作中いつでも感知されるという事実にある。このため、ユーザは、移動完了後に倍率Mを更新するための4.1で説明した較正手順を行う必要がない。
1つの実施例において、2つの基準マーカは互いにおよびディスプレイに十分近くに配置され、両者はすべての操作条件下でセンサの視野内に維持される。他方、それらは、ディスプレイから最も遠い操作距離において、または最大の視野角において、空間的に分離できるように十分に離れる必要がある。図5cに関して上述したように基準マーカに対して使用される配置は様々である(例えば、画面の対向角に各々1つ、隣接辺上の中心、同じ側辺の互いに隣等)。各配置にはその潜在的利点があるが、実際には、2つのマーカは通常、画面の同じ側辺に数センチメートル(典型的には5−15cm)離れて位置決めされる。
この配置は、両マーカが同じハウジングに配置されて単一の電源からともに電力を得るよう配線できるので最も都合がよい。ディスプレイの任意の側辺が使用可能であるが、通常は、ディスプレイの上部かつ水平方向の中心近くにマーカ装置を配置するのが最も都合がよい。マーカアセンブリが較正後認め得るほどに移動しない限り、正確な位置が重要となるわけではない。また、2つの基準マーカが同じx'またはy'座標を有する場合は、直交座標に関する付加的な空間情報がないので、この場合は動的な較正の補正は1つの軸上で行うことしかできない。しかし、リモートコントロール装置として使用する場合は、ユーザの動きのほとんどは、水平(x')軸上であるから、Mxの動的較正を可能とする同じx座標を有する2つの基準マーカで十分である。
基本的には、2つの基準マーカは、装置の位置および配向(すなわち自由度(degrees of freedom(DOFs))に関する付加的な空間情報を与える。動的較正に加えて、この情報は、装置のDOFsを測定および追跡することに依存する様々な他の機能に対して使用することができる。2マーカ実施例を使用して追跡できる2つの付加的なDOFsは、装置のロール(すなわち、センサのz軸まわりの回転、または装置と画面との間の直線)および画面からの距離である。上述のように、方程式(10)および(11)に示すように、角度および距離の感度は実際には2マーカ配置に組み合わされる。しかし、操作中にユーザの視野角がそれほど変化しない状態では、2マーカ配置は、方程式(9)および(4)の変形を使用することにより距離変化をモニタするために有効に使用することができる。
この場合、ΔrREFは、センサ上の2つの基準マーカの画像の測定された分離であり、ΔrREF0は、センサと実際のマーカ間の中間点との間の既知距離L0に対応する2つの基準マーカの画像の分離である。一般に、センサ上のマーカの画像間の分離に対する標準式は、Δr=((Δx)2+(Δy)2)1/2である。ここで、Δxはセンサ上の2つのマーカの画像のx座標における差分であり、Δyはセンサ上の2つのマーカの画像のy座標における差分である。
方程式(12)を使用した距離測定の手順は、センサと実際のマーカ間の中間点との既知の距離L0における、センサ上のマーカ画像間の分離ΔrREF0を記録することである。L0は測定してもよい。その後、方程式(12)がLを追跡するために使用される。また、ΔrREF0およびL0は定数なので、実験的に決定(例えば初期的に)されて方程式(12)に挿入されるシステム定数に組み込むことができる。システムの他の既知な側辺を使用することにより、上述の初期測定を行わずに、Lを決定および追跡することも可能である。例えば、結像レンズの焦点距離(または同等なものとして光学システムの視野およびセンササイズ)および実際の基準マーカの間隔Δr'REFが既知の場合、原則的にはセンサから画面までの距離(または画面付近に配置された基準マーカ)は以下により決定される。
ここで、fは結像レンズの焦点距離であり、ΔrREFはセンサ上の基準マーカ画像間隔であり、XSはx次元におけるセンササイズであり、tanθ1/2はセンサシステムの半角視野角(視野角の半分)の正接である。
Lを決定するために、システムに関するどの情報が既知であるかに応じて、方程式(13)における表現のいずれかを使用してもよい。例えば、典型的な配置は、10cmの基準分離、50°の視野角、およびx次元の640合計画素を備えるセンサを有する。x次元の40画素の測定基準画像分離に対しては、方程式(13)が画面までの距離1.71mを与える。ユーザが移動すると、ΔrREFはそれに応じて変化し、ユーザの距離が追跡される。
方程式(12)および(13)は本質的に同等であり、どちらかが使用されてよい。しかし、方程式(12)はシステムパラメータを直接測定量L0およびΔrREF0に組み込んでおり、システムに対する先行知識なしに所定倍率を決定する方法である。また、方程式(13)は、ユーザの視野角が0°であることを仮定する。または、傾斜した視野を考慮する(10)および(11)に類似の方程式を使用することもできる。方程式(12)は、直接較正測定手順によってユーザの視野角を本質的に考慮する(視野角が較正後に変化しない限り)。
2マーカ実施例を使用して視野角および距離を測定し追跡することが可能である。重要なのは、視野角(好ましくは大きさおよび符号の両方)に一意的に依存する基準マーカの1つ以上の特性の存在であり、これにより、角度と距離との分離が可能となる。かかる特性の1つは、異なる方向に配向する2つのマーカの相対的信号強度である。図19は、かかる配置の1つを示す。ここで、マーカはx'軸上の異なる方向に配置される。また、画面法線に対する角度の関数として各マーカの強度分布1901,1902も示される。この構成において、ユーザが直視視野の一方の側へまたは他方の側へ移動すると、2つの基準マーカの相対的信号強度(すなわち2つの測定信号の比)は、視野角に比例して変化する。その比は、直視視野の各側に対して異なる。
このようにして、比は距離に依存しないので、角度が決定されて上述の距離測定からは分離される。この構成を実装するための直接的な方法は、センサによって測定し、画面法線軸の各側の様々な既知視野角に対して各マーカからの信号強度を記録することによってシステムを較正することであろう。そして、信号の比が各角度に対して計算され、データから関数またはルックアップテーブルが生成される。または、基準信号の空間分布が既知の場合、視野角対信号比の解析的表現が生成されるかまたは見積もられる。例えば、各基準ソースの角度分布がガウス分布(光源に対する通常形態)の場合、視野角に対する2つのソースの信号比R(θ)は、単純な指数関数となる。その減衰率は各分布の幅Δθおよびソース間の角度分離2θ0に依存する。それら両者は、較正手順を使用して測定または決定される。
上記方程式(14)によれば、A1は第1基準マーカ1903のピーク信号強度であり、A2は第2基準マーカ1904のピーク信号強度である。
方程式(14)および図19は、両方のマーカが、画面法線に対して同じ分布幅および傾斜角を有することを仮定する。表現は任意の傾斜および異なる幅の一般的場合に対して修正可能であるが、図19の対称配置が最も自然である。基準マーカに対する他の信号分布に対してもこのアプローチを使用することができる。その結果、信号比と視野角との間に1対1の関係が得られる。このアプローチの主要な欠点は、各基準マーカのポインティング方向をオフセットする必要があることであり、そのため、マーカ間の角度がそれらの角度分布のかなりの割合を占める。この結果、システムの視野角が低減される。
視野角の低減は、マーカのポインティング軸間の角度分離にほぼ等しい。このため、この分離を最小にすることが望ましい。しかし、方程式(14)に見られるように、角度感度Rは角度分離とともに増加する。そのため、視野角範囲と視野角分解能との間には固有のトレードオフが存在する。なお、上述の「傾斜マーカ」構成は、マーカがxおよびy両方向で傾斜していない限り1次元において機能する。その影響は、有効な視野角をさらに低減する。最後に、2つのマーカ(例えばLED)の光学パワー(A1およびA2)の任意の変化が相関することによって任意の視野角におけるそれらの比(方程式(14)のA1/A2)が時間が経っても(例えば、それら両者のパワーが10%低下しても)一定のままである限りは、マーカ信号比を使用する方法は十分機能する。
しかし、いずれかのマーカのパワーまたは空間分布が他方と異なって変化する場合、視野角較正に誤差が導入されるので再較正を行う必要がある。この潜在的な問題に対する1つの可能な解決策は、相対的な信号変化がはるかに生じにくくなる反射(例えば逆反射体)マーカ設計を使用することであろう。したがって、傾斜マーカ構成によって、2マーカ実施例においては(マーカの分離により)距離および(信号比により)視野角両者を独立して決定することが原則的に可能である一方で、実際にはその利便性は、複雑さが増し、かつ、潜在的な誤差が導入されて、低減した視野角により制限される。距離および視野角を別個に感知および追跡するために好ましい方法は3つまたは4つのマーカを使用することである。これらの実施例は次のセクションで説明される。2マーカ配置を使用して測定可能な他のDOFは「ロール」である。これは、装置のz軸(センサアレイの平面に対して直交する軸)まわりの回転である。このDOFの追跡は、ユーザが装置で画面をポインティングしているまま装置を(例えば手首をひねることによって)回転させた場合の回転の大きさおよび方向を示す。装置のロールを測定かつ追跡する能力は、単純な手首の動作によって可能になる新たな機能および制御の可能性を導く。2つのマーカの基準マーカ画像座標の関数としてのロール角φの一般表現は以下のようになる。
ここで、Δxi=xi 2−xi 1およびΔyi=yi 2−yi 1およびi=0は、φ=0のロール角に関する座標に対応し、i=1はロール角φに関する座標に対応する。典型的には、φ=0のロール角は、ユーザが直立したままハンドヘルド装置によって画面をポイントし、かつ、手首がその自然な位置にある場合の通常操作条件に対応する。所望により、装置の他の配向に対するΔx0およびΔy0の値を再較正することによって、他のφ=0のロール角も可能である。
方程式(15)は、ディスプレイに関する基準マーカの任意の(x',y')座標に対する一般表現である。方程式(15)の符号規約では、装置の時計方向の回転(画面にポイントされている間の装置の背面から見て)が正のロール角に対応する。図20は、任意の2マーカ配置に対するロールに含まれる幾何形状を示す。2マーカ実施例の多くの配置において、マーカは、画面端に対して水平方向または垂直方向のいずれかに配置される。水平方向に配置された基準マーカの特別な場合には、Δy0=0であり、方程式(15)は以下まで変形される。
また、垂直方向に配置された基準マーカの場合には、Δx0=0であり、方程式(15)は以下まで変形される。
したがって、ロール角は、適切な方程式(15)−(17)に連動して、センサ上の2つのマーカのリアルタイムに測定された基準マーカ画像座標を使用して測定かつ追跡される。なお、一般に、ΔxiおよびΔyiの両者はユーザの視野角(画面に対するユーザ自身の位置)に依存してもよい。これにより、見かけ上のφは、装置のロールに変化がない場合でも視野角によって変化する。したがって、方程式(15)を使用する場合、Δx0およびΔy0に対して使用される値は、Δx1およびΔy1に対する値とほぼ同じ視野角に対応する必要がある。これは、周期的に再較正を行い、新たなユーザ位置のΔx0およびΔy0に対する新たな値を記録することによって達成される。
ロール角に対する感度の1つの結果は、装置が回転する際に、その基準フレームもまた画面のフレームに対して回転するということである。これは、基準マーカの見かけ上の回転を作る効果を有し、装置のポインティング動作に応じて、ポインティング方向の見かけ上の平行移動が生じ得る。したがって、補正のないままでは、装置のロールは、装置のz軸(ポインティング方向)が変化しない場合であっても、不都合なカーソル移動をもたらしかねない。さらに、センサの座標軸の回転に起因して、装置の回転に伴って生じるポインティング方向のなんらかの変化によりカーソル移動方向に誤差が生じる。その誤差はロール角に比例する。例えば、装置のロールが45度であり、かつ、ユーザがその後ポインティング方向を水平方向で変化させた場合、カーソルは、水平方向にではなく画面軸に対して45度移動する。
センサ座標軸の回転を適切に考慮して補正するためには、装置のロールの影響を、追跡アルゴリズムから取り除く必要がある。これにより、カーソルの位置および動きは装置の真のポインティング方向に正しく対応する。ロール補償手順の第1ステップは、適切ないずれかの方程式(15)−(17)を使用してロール角を正確に感知することである。ロールを補償しカーソル位置を正しく維持するために、原(x,y)座標をセンサ原点(x0,y0)まわりにφだけ回転することによって新たな基準フレームが生成される。ほとんどの場合、ポインティング方向に対応する原点は、アレイの中心画素である。点(x0,y0)まわりの所定角度回転を含む座標変換の一般表現は以下のようになる。
ここで、(x,y)は、原座標(回転前)であり、(xφ,yφ)は変換後の座標(回転後)である。この場合も、ここで使用される符号規約では、センサの時計方向の回転(画面にポイントされている間の)は正のφに対応する。方程式(18)は、回転された座標系を決定する。回転に対し補償して適切なカーソル位置を維持するためには、方程式(18)を原座標系に戻るように変換する必要がある。
方程式(19)は、測定された基準マーカ画像座標を変換して、回転前の座標系に戻す。この変換を適用することには2つの効果がある。正しい画面カーソル位置が維持されることと、回転された装置のポインティング方向が変化すると画面カーソルに対する適切な追跡方向が生成されることである。そして、各マーカ画像に対して変換された(x,y)座標は、カーソル追跡アルゴリズム(例えば、方程式(7)および(8)のxREFおよびyREF)で使用される。なお、カーソル追跡に使用される倍率MxおよびMyは、測定されたロール角に応じて修正する必要がある。ほとんどの場合、光学システムに対する倍率はxおよびyに対して同じである(典型的には球面レンズが使用される)。しかし、MxおよびMyは画素数で規定されるので、変換においてはセンサの画素寸法を考慮する必要がある。一般にカーソル追跡アルゴリズムにおいて、MxはMx(cos2φ+(py/px)sin2φ)に変換され、MyはMy(cos2φ+(py/px)sin2φ)に変換される。ここで、pxおよびpyは各センサ画素寸法である。方程式(15)に連動して方程式(19)を使用する手順により、装置が任意のロール角で回転されていても2マーカ実施例による正確なポインティングおよび追跡が可能になる。
なお、2マーカ実施例において、センサ上には2つの基準マーカ画像があるので、1マーカアプローチで上述された方程式を使用するポインティングおよび追跡のアルゴリズムは、2番目のマーカを考慮してわずかに修正される。原則的に、方程式(1)−(8)の各々は2つのバージョン−各マーカに対して1つ−を有する。しかし、マーカがお互いに対して固定されているので、各方程式の2つのバージョンは、お互いに対して単に空間的にシフトされ、それゆえにポインティングおよび追跡のための冗長なデータを含む。その結果、ポインティングおよび追跡に対して、実際には方程式の1つのセットのみが使用できる。もちろん、複数マーカの実施例における付加的なマーカが、視野角、距離およびロールのような付加的DOFsとして使用できるが、基本ポインティングは1つのマーカのみによって達成することができる。
したがって、複数マーカの実施例におけるポインティングのための別の方法は、1マーカ配置のための方程式と同等のものを使用する。これらの方程式のいくつかの形態が−各々プラス面とマイナス面とがあるが−使用される。最も単純なアプローチであれば、較正および追跡の両者においてマーカの1つ(例えば2マーカ実施例のマーカ1)に対応する方程式を使用するだろう。単純なアプローチであれば、3マーカおよび4マーカの配置に対しても使用できるだろう。または、実際の基準画像のいくつかまたはすべてから構成される基準画像座標を使用することもできる。この単純な例は、2つ以上のマーカの「質量中心」座標または平均座標となろう。したがって、nマーカに対しては、有効な基準座標は以下のようになろう。
ここで、xREFiは、i番目の基準マーカに対するセンサ上の基準マーカ画像座標である。同様の表現がy座標に対しても適用される。
次に、有効な基準座標が、1マーカ実施例に対するセクション4.1で上述されたポインティングおよび追跡アルゴリズムにおいて使用される。基準座標のその他の加重平均もまた、カーソル追跡用基準点として使用してよい。nマーカの実施例における基準として平均座標を使用することには、より正確かつ安定した基準点を生成できる潜在的な利点がある。個別のマーカ座標における任意のランダムなゆらぎが相殺されるからである。また、各マーカの識別が明確でない状態があるので、基準として平均位置を採用することは最適であろう。例えば、装置は傾斜されたり上下逆さまにされるかもしれず、その場合、マーカ画像の基準1および2への対応があいまいになり、画面カーソル位置にオフセットが生じる可能性がある。追跡アルゴリズムの複雑性がわずかに増大するというトレードオフはあるが、大抵の場合は必要となる計算の増大はかなり小さくて済む。
2つの基準マーカが異なるx'座標およびy'座標に位置決めされる場合(例えば、画面の対向角に対角線上に配置される場合)、セクション4.1で説明した可視ディスプレイ較正点の代わりに2つの基準マーカを使用することによって、上述の動的較正の調整に加えて初期較正を行うことができる。この代替的な装置較正手順は、較正がより早くかつより単純になる(およびこの手順の1つのバージョンにおいては分離較正ステップを完全に回避できる)という潜在的な利点を有する。しかし、これらの代替的なアプローチの各々において、カーソル追跡方程式にはいくつかの修正が必要となる。1マーカ配置におけるポインティングおよび追跡に対してセクション4.1で上述した基本的な導出は、2マーカ配置においても依然当てはまるが、今度は、各基準マーカに1つが対応する2つのセットの方程式が存在する点が異なる。この付加的基準の情報によって、様々な測定システムパラメータに関するカーソル位置の2つの異なるが同等の表現が得られる。各々はその利点および欠点がある。各々に対する関連結果を以下に示す。
1マーカに対する導出に類似する詳細な導出は示さない。
1つのアプローチにおいて、「シングルステップ」較正手順が使用される。ここで、ユーザは画面上の既知の位置(x'0,y'0)をハンドヘルド装置でポイントする。ユーザがポイントする1つの可視マーカまたはアイコンは較正精度を補助すべくディスプレイ上に表示されてもよいが、これは、画面中心または角のような容易に位置決めされる位置が使用される場合は特に必要がない。ユーザが(x'0,y'0)をポイントしている間、2つのマーカの対応するセンサ座標(x0 REFA,y0 REFA)および(x0 REFB,y0 REFB)が記録される。次に、画面カーソル位置が測定量から決定される。
較正ステップが行われるが、測定量が容易に測定されて基準マーカの物理的位置の知識には依存しない。本質的には、方程式(21)が、平均基準点位置に対応する、センサ上の平均基準マーカ位置の移動を追跡することによって、既知の基準「点」(例えばディスプレイの中心)に対応する正しいカーソル位置を決定する。そして、これは既知のディスプレイ基準点に対応する。
分離較正ステップが不要な別のアプローチは、実際の既知の基準マーカの位置を使用する。この場合のカーソル位置に対する方程式は以下のようになる。
ここで、(x'REFA,y'REFA)および(x'REFB,y'REFB)は、基準マーカの位置(画面座標系における画素で測定される)であり、(x0,y0)は、ハンドヘルド装置の光学軸に対応するセンサの原点である。これは典型的にはセンサの中心画素付近であるが、必ずしもそうとは限らない。例えば、光学軸がセンサの法線軸に対して平行でない場合には、センサの原点は中心画素からオフセットしかねない。これは、レンズ軸がセンサの中心にない場合に生じるかもしれない。このアプローチを使用すれば、ひとたびマーカ位置が既知(およびそれが固定されたまま)であれば、較正手順は不要となる。しかし、この方法は、基準マーカが移動されて新たな位置が方程式(22)において考慮されない場合には誤差の影響を受けやすい。較正に基づく方法であれば、基準マーカが移動する場合でも単純な再較正が必要となるだけである。
上述の2つのカーソル追跡アプローチの各々に対して、倍率Mは同じである。
方程式(23)は方程式(4)と同等である。ここで、2つの基準マーカ既知の分離(Δx'REF)はΔx'CALの代わりに使用され、ΔxREFは、2つの基準マーカ画像のセンサ上の分離である。なお、マーカ画像の分離はポインティング方向に依存しない(非常に良好な近似に対して)ので、ΔxREF=Δx0 REFである。類似の議論がy座標にも当てはまる。また、方程式(4)と(23)との間の符号の違いにも留意されたい。これは、2つの較正方法の違い−2つの較正マーカを順次ポインティングする(方程式(4))対2つの基準マーカをシングルステップで記録する(方程式(23))−の結果である。カーソルのポインティングおよび追跡ならびに較正に対する上述の3つの方法(2ステップ、1ステップおよび較正なし)の各々は、関連する利点および欠点を有し、いずれも2マーカ実施例における所定条件下で使用することができる。しかし、2つの基準マーカがx'軸またはy'軸上に整列している場合には、セクション4.1で説明した基本的な2ステップ方法が必要である。
4.3 3マーカ実施例
6つのDOFsの検知を原則的に可能にする2マーカ配置があるが、それらは各々、6つのDOFsすべてを検知する実際的な実装に対してはいくつかの制限を有する。3マーカまたは4マーカの配置を使用することによて、6つのDOFsすべてを感知することが実装容易となる。3番目の基準マーカを付加することによって、距離と視野角との分離を可能とする付加的な空間情報が利用可能となる。ポインティングおよび回転(ロール)の追跡は、2マーカ実施例に類似する態様で得ることができる。3番目のマーカが2マーカ配置に付加されて同じz'座標(例えば、画面の3つの角の各々に近いマーカ位置)に置かれると、いくつかの2マーカ配置を超える最小限の付加的情報(例えば、画面の隣接辺に近いマーカ)だけが存在する。
この場合、3番目のマーカは、視野角からの距離を分離するための増分的に価値のある基準データのみを付加する。
しかし、視野角のあいまいさ(画面中心の左対右または上対下)は残る。x'−y'平面(画面平面)から3番目のマーカを取り出して異なるz'座標に移動することによって、あいまいさなしの完全なポインティングおよび配向追跡を行うことが可能となる。マーカはセンサの視野内に存在する(すなわち、ユーザが画面近傍のどこかをポイントしている)必要があり、ユーザはマーカの視野内に存在する必要がある(例えば、ユーザは画面の側面または背面から離れすぎて立っていることができない)。典型的なマーカの視野は(+/−)30−45度であり、これは、ユーザ自身の実際の画面視野角に整合する。このセクションは、後者の「平面外」3マーカ配置に焦点を当てる。他の「平面内」3マーカ配置は、上述のセクション4.2で与えられる2マーカ解析の延長上にある。
平面外配置は、図21aおよび図21bに示される。この配置では、センサ上のマーカ画像位置によって、xおよびy両者の次元における視野角の大きさおよび符号両者の測定が可能となる(他の3マーカおよび2マーカ配置によっては視野角の大きさの検知のみが可能である)。1つの配置(図21aおよび図21bに示す)は、3つのマーカすべて2101_1,2101_2および2101_3をディスプレイ2100'の同じ側辺で互いに密接して有する。これは、マーカが共通のエンクロージャに配置可能であり1つの電源によって容易に電力供給可能であるという実際的な利点を有する。また、センサの必要な視野角を低減することもあり得る。しかし、1つがx'−y'平面から外れて配置される3つのマーカの任意の配置も許容できる。以下の方程式は、画面までの距離がマーカの分離よりもはるかに大きくユーザの視野角が小さい(方程式(36)参照)遠視野条件を仮定する。x'およびy'に対する視野角を計算すると、2つのセットの方程式が以下のように導かれる。第1のセットにおいては、ユーザがx'−z'平面またはy'−z'平面のどちらかにまたはその近くにいるという、よくあることではあるが特別な場合において有効な単純化表現が与えられる。これらの条件により、θxまたはθyのいずれかが、測定されたマーカ分離を距離および視野角に関連付ける基礎方程式において0に設定される。このため、比較的単純な式が得られる。この状態が該当するのは、多くの実際的な状態がこれらの平面にまたはその近くに限られたユーザを含むからである。これらの場合には、複雑な一般的解法よりも単純な式を実装する方が有用である。第2のセットにおいては、一般表現が、この場合も遠視野内の任意のユーザ位置の近似に対して与えられる。図21aを参照すると、x'次元の視野角に対する表現(θy≒0と仮定)は、システム定数および測定可能なマーカ座標に関して以下のようになる。
ここで、dはx'次元上の2つの外部マーカ(1および3)の間の実際のマーカ分離、Dはz'次元上のマーカ2101_1および2101_3に関して中間のマーカ(2)のオフセット、およびδrij=((xi−xj)2+(yi−yj)2)1/2は、マーカ画像iおよびjの間のセンサ2103上の分離である。かっこ内の第2項は、中心マーカ(2)が各外部マーカ(1および3)から等距離に位置していない非対称的なマーカ配置の場合の潜在的定数オフセットを表す。この場合、オフセット項は、ディスプレイ2100'のすぐ前面(θx=0)に位置している間にマーカ分離の測定を行うことによって決定される。または、オフセットは、測定値に対して定数「オフセット角度」を加算または減算することによって考慮することができる。オフセット角度θx0は、非対称的配置の幾何形状から簡単に決定することができる。
ここで、δr'0は、外部マーカの中間点からの中心マーカのオフセットである。方程式(25)を使用すると、オフセット角度は、オフセットが生じる方向に応じて測定値に対して加算または減算される。図21aおよび図21bならびに方程式(24)に示す幾何形状に対して、符号規約では、画面の観視側に面している場合に正の視野角は画面中心の右側に対応する。したがって、中心マーカが中間点の左側にある場合はオフセット角度は測定値から減算され、中心マーカが中間点の右側にある場合は測定値に加算される。なお、方程式(25)が任意のオフセットを考慮するべく使用される場合は方程式(24)のオフセット項が落とされる(δr0 ij=0)。それらは同じ関数だからである。
しかし、図21aおよび図21bの配置において、マーカ2101_1から2101_3は対称的に配置されているので、オフセット項は消去されて無視できるほど小さくなる。また、図21aおよび図21bに示す好ましい配置に対しては、マーカは水平方向に(x'次元上に)配置されるので、ハンドヘルド装置が回転されない限り、y座標は典型的にはθxの計算に登場しない。この場合、方程式(24)はx座標のみの関数まで変形される。しかし、視野角測定中に装置が回転される場合、マーカ画像座標はxおよびy成分の両方を有する。この場合、方程式(24)が使用される。なお、マーカ画像座標および分離がユーザの画面からの距離には依存するとしても、方程式(24)はユーザの画面からの距離には依存しない。これは、式が正規化されて距離の変化が分子および分母の両方に等しく影響するからである。
3つのマーカがx'軸上にある図21aおよび図21bの配置を使用すると、中心マーカ画像2が外部マーカ画像1、3の1つを遮る角度が存在することが明らかである。そして、大きな視野角のマーカ画像2はマーカ画像1または3を通り過ぎて移動し、マーカ識別それゆえ視野角のあいまいさが生じる。この問題は、dに対してDを小さくすることによって扱うことができる。その結果、あいまいさは大きな視野角−システムの通常の視野から外れる視野角−で生じる。この単純なアプローチの欠点は、方程式(24)からわかるように、Dを低減することによって角度分解能が低減するということである。妥協は、Dを十分小さく設定することによって達成され得る。その結果、遮りが通常の視野の端で生じ、分解能は最大になる。このアプローチが十分か否かは、必要な角度分解能、視野角、ディスプレイからの距離、およびマーカ分離(d)のようないくつかの因子による。典型的なポインティングアプリケーションに対しては、Dは遮りを回避できる程度に十分小さくされても依然十分な角度分解能が得られる可能性が高い。例えば、d=15cm、D=5cmを備えるシステムであって、利用可能な(遮られない)視野角>50度、全視野角45度の400画素センサ、および画面から3メートルの距離で0.1画素の分解能を与えるシステムは、直視近くで〜0.7度の角度分解能が視野の端近く(〜45度)で〜1度まで低下する。これは、〜3.7cmの側方移動に対応する。この分解能は、多くのアプリケーションに対して十分である。
Dを増大させることによって高い分解能を所望する場合、分解能の妥協を回避する解決策は、1つ以上のマーカをx'−z'平面から外に移動させて全視野角において遮りおよびあいまいさを防止することである。このアプローチに対する最も単純な配置は、外部マーカとは異なる高さに中心マーカ2101_2(すなわち、マーカ2101_1と2101_3とを結ぶ直線の上または下のオフセット)を有する。この配置に対しては、上述の遮りが回避されて、マーカ画像の識別にあいまいさは存在しない−マーカ画像2は常に例えばマーカ画像1および3の上にある。そして、Dは、分解能を向上させるために所望されるだけまたは実用的なだけ大きくすることができる。δrijが、マーカ画像の相対的位置に応じて正でも負でもよいことに留意することは重要である。具体的には、x2がx1とx3との間にある場合、方程式(24)のすべてのδrijは正である。しかし、x2<x1の場合はδr21<0であり、x2>x3の場合はδr32<0である。マーカがx'軸上に(マーカが水平方向に存在)およびx軸上に(装置のロールなし)配置される典型的な場合には、δrijに対するy成分は存在せず、δrijの平方根の符号のあいまいさも存在しない。マーカ2101_2に対してy'オフセットという一般的な場合には、視野角θxのための方程式になるマーカ画像2(x2,y2)の座標表現は、オフセットを考慮するために修正される必要がある。マーカ画像2のための新たな座標は、2つの直線の交点の座標である−1つはマーカ画像1と3とを結ぶ直線であり、1つはマーカ画像2を通過して第1の直線に直交する。本質的に、オフセットが存在しない場合にはマーカ画像2の座標が存在する。具体的には、方程式(24)の座標(x2,y2)の値は(x0 2,y0 2)によって置換される。ここで、
および、m=(y3−y1)/(x3−x1)は、マーカ画像1と3とを結ぶ直線の傾きであり、ロール角φ(方程式(16)参照)に関連する。
ハンドヘルド装置が視野角測定中は回転されないとう典型的な状態においては、m=0であり、(x0 2,y0 2)は、オフセットなしでマーカ画像2の座標に対する予測結果(x2,(y1+y3)/2)まで変形される。
オフセット配置の主要な目的は、任意の視野角に対して高い分解能を可能にすることにある。ここで、マーカ画像2はマーカ画像1または3の外に移動する。この状態は、装置がロールされる場合のマーカ識別における潜在的あいまいさを表す。というのは、マーカ画像2のy座標は、マーカ画像1および3のそれよりも大きいかまたは小さく、マーカ画像2のy座標は、他のマーカ画像と区別されるために使用されるだけだからである。この状態は、大きな視野角(マーカがマーカ画像1または3の外部にある)と大きなロール角とが同時に生じる場合に起こるので、通常の使用下で問題となる可能性はない。この状態が生じるかもしれない視野角およびロール角の所定値は、詳細な配置に依存する。この潜在的な問題に対する1つの解決策は、マーカ画像のそのy位置以外の所定の特性を使用してそれを他と区別することである。例えば、マーカ2101_2は変調される(繰り返し電源がオンオフされる)かもしれず、またはマーカ2101_1および2101_3とは異なる一定電源レベルに設定されるかもしれない。このようにして、マーカ画像2の識別が任意の視野角およびロール角のために決定される。
回転されたセンサの場合に、(x0 2,y0 2)を決定する方程式(26)の使用は、2マーカ配置で説明した装置の回転またはロール角を決定することで代用される。これは、マーカ画像1および3を使用してφ(傾きmに関連する)を得て、その後方程式(18)および(19)に記載の座標変換を行うことでなされ得る。このようにして、(x0 2,y0 2)に対するより単純な(m=0)表現を、θxを決定するために使用することができる。
y'次元の視野角はまた、「平面外」配置を使用して追跡することができる。幾何形状は図21bに示す。ユーザが垂直方向に(y'次元内で)移動すると、中心マーカ画像は外部マーカ画像に対してセンサのy次元で変位する。この変位は、適切に正規化されてθyを決定するために使用される。
y次元の視野角(θx≒0と仮定)に対する単純化された方程式は以下のようになる。
ここで、δyは、中心マーカ画像(2)のy座標の、直視(θy=0)におけるそのy座標からの変位である。一般に、変位はxおよびy座標両方を有し、その結果δy=((x2−x0 2)2+(y2−y0 2)2)1/2となる。ここで、(x2,y2)は中心マーカ画像2のセンサ座標であり、(x0 2,y0 2)は、外部点(1および3)を結ぶ直線と、マーカ画像2を通過するこの直線に対する法線との交点に対応するマーカ画像2の座標である(方程式(26)参照)。
マーカがx軸およびx'軸両者上に配向する通常の条件下では、変位に対する表現はδy=y2−(y1+y3)/2に単純化される。センサが回転されるかまたはマーカが水平方向に配置されない場合には、方程式(26)に連動してさらに一般化された変位の表現が使用できる。符号規約では、正の視野角は、ユーザの直視に対する垂直方向の移動に対応する。中心マーカ2101_2が外部マーカ2101_1,2101_3とは異なる高さ(y')にある場合、y'オフセットを考慮するための角度オフセットを方程式(27)に付加することができる。この角度オフセットθy0は幾何形状から容易に決定される。
ここで、δy'0は、外部マーカ2101_2,2101_3のy'座標に対する中心マーカ2101_2のy'における実際のオフセットである。ひとたび方程式(27)からθyの値が決定されると、オフセット角は、マーカオフセットの方向に応じて、測定値に対して加算または減算される。方程式(27)に対して記載された規約を使用すると、オフセット角は、中心マーカ2101_2が外部マーカ2101_1,2101_3よりも上の場合には加算され、中心マーカ2101_2が外部マーカよりも下の場合には減算される必要がある。
角度分解能は、垂直(θy)軸に対しても、同じ条件下では上述の水平軸に対する場合と同じであることがわかる。なお、θyに対しては、マーカの遮りまたはあいまいさは存在しない。このため、Dがどれくらい大きいくなり得るかについては基本的な制限が存在しない。したがって、Dを増加することによってθyに対して著しく高い分解能が得られるかもしれない。しかし、実際には、物理的制約からDの上限が存在するのが典型的である。
なお、図21aおよび21bの全幾何形状を90度回転させることによって、3つのマーカが垂直方向に整列し(中心マーカがz'で変位し)、θxおよびθyの表現は逆になる。最後に、ここで説明する平面外配置に対する2つの基本仮定は、ユーザが測定中ディスプレイをまたはその近くをポイントしているということと、マーカ(少なくともマーカ2101_1および2101_3)が画面端にほぼ平行または垂直に配列されているということである。マーカがディスプレイ端に対して所定角度で整列している場合、方程式はこの角度を考慮するために修正する必要がある。さらに適した言い方をすると、θxおよびθyの測定は実際にはマーカ軸を基準とするので、マーカ軸が画面軸と一致しない場合、2つのセットの軸間の角度オフセットが考慮されなければならず、方程式が複雑になる。このため、自然かつ好ましい配置は、図21aおよび図21bにおけるように画面に対して整列したマーカを有する。
上述のように、前記方程式および説明は、ユーザがθx=0またはθy=0の平面内に存在する状態に関連する(図21aおよび図21b)。ユーザがこれらの平面から外に移動すると、これらの方程式を使用する位置追跡上の誤差が大きくなる。角度における小さな偏差に対しては、角度の誤差は許容可能に小さい。例えば、ユーザがy'方向に+/−10°移動すると、方程式(24)を使用することによって導入される誤差は、x'方向の20°−45°範囲の視野角に対して2°−3°となり得る。一般に、視野角は、特別な場合の解決法を使用すると過小評価される。この誤差量は多くのアプリケーションに対して許容可能であるが、ユーザが意図された平面からさらに外れて移動すると誤差は急速に大きくなり得る。任意のユーザ位置の一般的な場合、θx=0またはθy=0の条件は有効ではなく、θxおよびθyの両方を含む基礎方程式を使用することができる。任意位置の一般的な場合、マーカ2は、マーカ1および3を結ぶ直線に対して平行および垂直の両方に変位する。この状態に対応する図は本質的には図21aと図21bとの組み合わせである。測定されたマーカ画像分離RijおよびL,θxおよびθyに関連する基礎方程式は、遠視野近似を用いると以下のようになる。
ここで、Rij=δrij/δr0 ijは、それらの較正値に正規化されたマーカ画像分離であり、L0は較正が行われる画面からの既知の距離であり、αはマーカの配置から決定される幾何定数である。
角度αは本質的には、マーカ配置の上部から見られるマーカ1および3ならびに1(または3)および2を結ぶ直線によって張られる角度である。遠視野条件に加えて、3つの付加的な仮定が方程式(29)−(30)で使用される。これらの方程式は、図21(好ましい配置)に示すように、マーカが対称的に配置されていること(マーカ2はx'軸上のマーカ1と2との中間にある)と、マーカ2がマーカ1および3と直線上にある(前から見ると)こととを仮定する。これらの条件を緩和することが可能である一方、対応する基礎方程式はより多くの定数が付加されて著しく複雑になる。さらに、非対称的にまたは垂直に変位したマーカを含む配置は、θx=0およびθy=0解決策に対して上述した方法と類似する方法を使用してより単純に扱うことができる。まとめると、方程式(25)および(28)にあるようなオフセット角度は、初期的にまたは較正手順中にのいずれかで決定することができる。そして、任意のユーザ位置に対して以下に与えられる方程式により計算される視野角に加算または減算される。しかし、好ましい配置では、オフセットは無視できるほど小さいかまたはゼロであり、以下に与えられる解決策を直接使用することができる。さらに、方程式(29)−(30)は、マーカ1および3がx'軸上に整列していることを仮定する。これは好ましい配置である。y'上に整列するマーカ1および3に対しては、本質的にθxおよびθyが入れ替えられた、対応するセットの方程式が使用される。マーカが任意の軸上に整列した他の配置も可能であり、関連する基礎方程式も導くことができるが、より複雑で付加的因子を含む。
方程式(29)は3つの独立した方程式のセットと、L、θxおよびθyに対して解くことができる3つの未知値からなる。
解は以下のようになる。
ここで、
およびk=2sinαcosαである。これらの方程式からわかるように、θxは、直接測定された量およびシステム定数から決定される。ひとたび方程式(31)からθxが決定されると、方程式(32)がθyを決定するために使用される。そして、方程式(33)がLを決定するために使用される。方程式(31)−(34)のセットにより、マーカがセンサによって検知可能であれば、任意点のいずれに対してもユーザ位置が決定される。しかし、いくつかの特別な場合が存在し、以下のように扱われる。
方程式(31)の正接関数の反復性ゆえに、|θx|>45°に対しては、θxの大きさおよび符号両者にはあいまいになる可能性がある。これらのあいまいさは、方程式(31)による結果とΔの符号とを比較することによって解決される。正しいθxの符号は、Δの符号から直接決定される。したがって、方程式(31)から計算されたθxの符号がΔの符号と異なる場合には、正しいθxを決定するために、90°がθxの計算値に対して加算または減算される必要がある。例えば、方程式(31)から計算されたθxの値が−40°であるがΔ>0(θx>0を示唆)の場合は、90°が計算値に加算されて補正された50°のθxが得られる。この状態は、大きな視野角に対してのみ生じるので実際にはまれである。しかし、θxを決定するアルゴリズムにこのステップを含めるのは単純なことである。また、θyの符号は方程式(32)から直接的に決定されるわけではない。
この場合、マーカ#2の相対的位置が使用されてθyの符号が決定される。方程式(27)で使用されるのと同様の方法で、θyの符号を決定するために、ひとたび方程式(32)からその大きさが計算されればδyの符号も使用できる。
θy=0の特別な場合において、方程式(31)が(オフセット項のない)方程式(24)と同等の表現にまで変形できることを(三角関数および代数の識別を使用して)示すことができる。同様に、θx=0の場合、方程式(31)および(32)は以下にまで変形される。
これはまた、方程式(27)と同等であることを示すことができる。最終的には、ユーザが本質的に画面の平面(z'=0)内に存在するθx=+/−90°の特別な場合において、方程式(32)が分解されて使用することができない。実際には、この状態はほぼ生じることはない。というのは、それは画面およびマーカの視野を越えているからである。しかし、位置情報が必要である一方でユーザが画面平面にまたはその近くに存在する(およびマーカが検知可能である)という起こりそうにない事象において、θyに対する別個の表現が基礎方程式(29)−(30)から容易に導くことができる。
ここで説明した3マーカの平面外配置は、装置に対して関連するDOFsのすべて−画面上のポインティング位置、画面からの距離、ロール角、および画面に対する視野角−を決定することができる。これらのパラメータの組み合わせによって、ハンドヘルド装置の位置および配向が完全に定義される。これらのパラメータを決定するための一般的手順は本質的に、前のセクションで説明したそれらの統合である。装置のポインティング方向(具体的には装置のポインティングベクトルと画面との交点)は、セクション4.1で説明された手順を使用して決定される。最初で述べたように、複数のマーカの場合、それらのいずれか1つはディスプレイカーソル基準として使用することができる。しかし、3マーカ配置においては、マーカ2101_2は典型的には中心に位置決めされ、ディスプレイの中心に配置されるので、これをカーソル基準点として使用するのは自然である。または、3つの基準マーカの中心または平均位置を(2マーカ配置と同様に)使用してもよい。なお、ユーザの視野角が変化すると平面外の幾何形状に起因して基準位置にわずかなオフセットが存在するが、このオフセットは極めて小さいのが典型的であり、典型的なポインティングアプリケーションで認識される可能性は低い。必要に応じて、小さい視野角依存補正因子を使用してポインティングのなんらかのオフセットを低減してもよい。そして、視野角は、このセクションで説明された手順を使用して決定される。
ロール角の決定は、2マーカ配置のためのセクション4.2で説明した手順の後に行われる。典型的には、マーカ2101_1および2101_3はφを決定するための2つの基準マーカとして使用されるが、任意のペアのマーカを、その位置が既知かつ固定であれば使用することができる。セクション4.2で説明したように、マーカがx'軸またはx軸上で整列していない場合には、見かけ上のロール角は視野角に依存し得る。セクション4.2で説明したように、この状態は、ひとたび視野角が変化すればφ=0の条件下でハンドヘルド装置を再較正することによって回避することができる。方程式(15)のΔx0およびΔy0がθxおよびθyに既知の依存関係を有することを考慮すれば、ロールから視野角の影響を自動的に較正または除去することもできる。したがって、θxおよびθyは、ロール角から独立して測定することができるので(マーカ分離の大きさのみが使用されてその配向は使用されないので)、それらの影響をロール測定から除去することができる。ロール角はマーカ画像のx座標およびy座標に依存し、その分離のみに依存するわけではないので、xおよびyに対する視野角の影響を決定する必要がある。これは、Δy0=0(θx=θy=φ=0という較正条件下においてx軸上で水平方向に整列したマーカ画像)を仮定する方程式(29)を使用して行うことができる。具体的には、典型的な遠視野条件下では、測定されたΔx0はcos(θx)のように変化し、Δy0はsin(θx)sin(θy)のように変化する。したがって、ロールの方程式に現れるΔx0およびΔy0の値であれば、それらをΔx0cos(θx)およびΔx0sin(θx)sin(θy)で各々視野角を考慮するべく置換することによって修正される。遠視野近似が有効ではない、または、高い精度が所望される場合は、方程式(10)に類似するより正確な表現が必要となるだろう。なお、方程式(26)の公式化を使用してロールを視野角と同時に決定することもできる。その方程式のmはロール角に関連し、本質的に方程式(16)と同等だからである。しかし、これは、水平方向に整列したマーカの場合にのみ当てはまる。任意に整列したマーカに対しては、mに対する表現は、それに応じて修正する必要があるだろう(方程式(15)参照)。
距離測定は視野角に敏感に依存する(しかし、視野角測定は、適切に行えば距離には依存しない)ので、距離は視野角が測定された後に決定する必要がある。また、ロール角測定は視野角に依存し得るので、視野角はロール角に先立って決定する必要がある。しかし、距離およびロール角は本質的に互いに独立なので、それらはいずれの順番で決定されてよい。直視に対しては2マーカ配置(方程式(12)および(13))で使用されるのと同じ表現を使用して、または、一般的な場合に対しては方程式(33)を使用して、距離を決定してよい。この場合も、任意のペアのマーカが使用されるが、好ましい方法では、距離Lを決定するためにマーカ2101_1および2101_3を使用するのが典型的である。
4.4 4マーカ実施例
セクション4.3で説明したように、3マーカ実施例は、関連するDOFsのすべてを検知することができるので、装置ポインティングおよび位置追跡の両者を必要とする、すべてではないにしてもほとんどのアプリケーションに対して十分である。しかし、3マーカ実施例の好ましい(平面外の)配置が不可能な、非現実的な、または望ましくない状態も存在し得る。例えば、好ましい3マーカ幾何形状の主要な欠点は、マーカの1つが他の2つに対して後方または前方に設置される必要があるということであり、視野角測定の分解能はこのオフセットを低減することによって高められる。これにより、マーカの1つが、空間的制限ゆえに不可能になりかねない不都合に大きな距離によってオフセットされる配置が生じ得る。
セクション4.3で説明した大きな視野角での遮り効果の可能性もまた、短所となり得る。遮るマーカを垂直に変位することによってこの問題を扱うことができる一方で、複雑性が若干増してマーカアセンブリのための空間をわずかに増やす必要がある。また、マーカがディスプレイ画面の上部(または場合によっては下部)に配置されて画面平面からわずかに後方に設置される典型的な配置では、十分大きな角度に対し、垂直視野角の1つは部分的にまたは完全にあいまいとなる。この潜在的な問題に対する解決策は、マーカを画面平面を越えて拡張することであろうが、これは不都合または非実用的となり得る。したがって、多くの状態においてこれらの潜在的な欠点のいずれも顕著でなく、かつ、好ましい3マーカ実施例がほとんどの場合十分に機能する一方で、「平面内」幾何形状が必要または所望される状態もあり得る。こうした場合には、所定の4マーカ配置は、3マーカ実施例のいくつかまたはすべての欠点を回避する単純な幾何形状を使用して、必要なDOF感度を与えることができる。結局、4マーカ実施例は、いくつかの状態においていくつかの付加的な利点を有し得る。
上述の1マーカ、2マーカ、および3マーカ実施例は、ポインティング、ロール角、および多くの場合は画面距離を追跡することができるので、4マーカ実施例の説明に対する主要な焦点を、視野角の大きさおよび符号の測定に当てる。しかし、測定されるマーカ画像の座標は、距離および視野角両者の関数であり、両者は解析的に決定される。他のDOFsは、一般に、前述のアプローチに対する直接的なバリエーションである。可能な4マーカ幾何形状のバラエティが存在するが(図5e参照)、このセクションでは、図5e(ii)および図22に示す好ましい配置に焦点を当てる。この幾何形状において、好ましい基準マーカは、画面の4角の各々にまたはその近くに配置される。マーカがともに近く画面の一方の側にある(好ましい2マーカおよび3マーカ実施例にあるような)同等な矩形配置を使用することもできるが、好ましい4角配置にはいくつかの技術的および実用的利点が存在する。これらを以下に説明する。
4マーカ配置の主要な利点は、xおよびy両者における距離および視野角測定の分離、ならびに角度符号の決定(例えば画面の左または右)が可能になることである。これらの変数は、固有的に結合され、セクション4.2で説明した基本的な2マーカ実施例におけるマーカ画像座標単独に基づいて分離できないことを想起されたい。他の実施例におけるように、基本測定は、4つのマーカ画像座標と、それらからの、その分離の決定とを含む。
様々な画像分離が使用されて距離および視野角が計算される。4マーカ配置に対しては、操作の2つの基本モードおよびレジームが存在する。ここでは、一方は「遠視野」と称し、他方は「近視野」と称する。2つのレジームに対する解は相補的であり、画像分離の異なる測定に依存する。遠視野は、ユーザの各マーカまでの距離がほぼ同じであり、等しいとみなされる領域として定義される。これは、マーカ分離がユーザの画面までの距離よりもはるかに小さい場合か、または、ユーザが小さな視野角で(すなわち画面中心近くに)位置決めされている場合に生じる。数学的には、遠視野は以下の条件が当てはまる場合として定義することができる。
なお、この条件は方程式(10)のかっこ内の最終項に関連し、それが無視できる方程式(11)に至る条件が遠視野に対応する。方程式(36)がどれほど小さくあるべきかは、許容してもよい距離または角度の誤差による。距離または角度のいずれかにおいて1%誤差までは許容できると仮定すると、具体的な遠視野条件を見積もることができる。遠視野に対して「最悪の場合」を見積もるために、+/−45度の大きな視野角が仮定される。この場合、ユーザは画面からL〜3.5dもの近さにあり、視野角測定において1%以下の誤差を維持できる。
ほとんどの場合において、視野角はそれよりも小さく、遠視野条件はさらに小さい距離においても満たされる。例えば、+/−12度の典型的な視野角に対しては、上記定義のように、L〜dから始まり、ユーザは画面までマーカ分離ほど近くてもよく、それでも遠視野内にある。そして、好ましい4マーカ実施例においてはマーカ分離dが画面寸法に近いので、ユーザは約1画面幅離れても遠視野内に残ることができる。セクション4.1で説明したように、遠視野の意義は、距離および視野角の計算において有用な近似が可能になることにある。これらの遠視野近似は解析を著しく単純化し、DOFsに対する閉形式解を可能にする。さらに、遠視野の距離はマーカ分離に比例し、2および3マーカ実施例に対してはdははるかに小さいのが典型的なので、これらの実施例は、通常の操作においてほぼ常に遠視野条件を満たす。したがって、前述のセクションで使用された解析はすべて遠視野条件を仮定していた。
対照的に、近視野のレジームは、方程式(36)の遠視野条件が無効な領域に、または、同等に、ユーザから各マーカまでの距離が等しいと仮定できない場合に存在する。このレジームにおいては、遠視野の誤差解決策は、許容可能制限を越えるかもしれず、各マーカまでの距離のバリエーションに依存する近視野解決策が使用される。ユーザがマーカから遠くへ移動すると、近視野解決策が敏感ではなくなり、遠視野解決策を使用することができる。ほとんどの状態では、距離および視野角の決定に対して遠視野解決策が適切となる。しかし、遠視野解決策に固有なのは、視野角の符号には鈍感ということである。近視野解決策(これはいくつかの仮定においては本質的に正確である)は、視野角変化に対してかなり鈍感であるが、角度の符号に対しては敏感である。したがって、多くの場合、より敏感な遠視野解決策が使用されて視野角の大きさが決定され、近視野解決策が使用されて角度の符号すなわち方向が決定される。
4マーカ実施例の基本的幾何形状を図22に示す。従来の球座標が使用されて、視野角θxおよびθy、およびマーカ原点までの距離Lが規定される。
原点は、マーカの中心点としてとられる。これは典型的には、画面中心であり、原点までの距離が測定される。図22を参照すると、主要な測定可能量は、センサ上のマーカ画像の様々な分離δrij=((xi−xj)2+(yi−yj)2)1/2である。ここで、i,j=1,2,3,4は各マーカに対応する。各画像分離は、対応する較正値δr0 ijを有する。これは、所定の既知の位置で決定される。好ましい実施例に対しては、この位置は、画面(またはマーカ)からの既知の距離L0および画面中心(θx=θy=0)においてとられる。以下の解析に対しては、画像分離はそれらの較正値に対して正規化され、公式がこれら正規化量Rij=δrij/δr0 ijによって表現される。遠視野アプローチと近視野アプローチとの基本的な違いは、遠視野が隣接辺(例えばR21およびR31)の組み合わせと対角線(R41およびR32)とを使用するのに対し、近視野が対向辺(例えばR31およびR42)の組み合わせを使用して距離および視野角を決定することにある。遠視野近似を使用すると、測定マーカ画像の分離RijおよびL、θxおよびθyに関する基礎方程式は以下のようになる。
ここで、αは、マーカ1と2とを結ぶ水平線と、マーカ1と4との対角線とで形成される角度によって決定される幾何定数である(図22参照)。マーカの矩形配置に対しては、幾何角度は以下のように定義される。
ここで、dxおよびdyは、x'およびy'方向各々の実際のマーカ分離である。マーカが画面の角に配置されると、典型的なマーカ配置は、正方形(α=45°)、4:3のアスペクト比(α=36.9°)、および16:9のアスペクト比(α=29.4°)となる。なお、2つの対向辺に対する公式は方程式(37)と同じであり、L,θx,およびθyの値は各表現において同じである。これは、配置が矩形であるということと、すべてのマーカに対する距離および角度が本質的に同じ(すなわち遠視野近似)であるということとに起因する。一般に、遠視野でさえ、各側辺までの距離は異なり(ユーザが正確に画面中心にいない限り)、Lは画面/マーカの中心にあるようにとられるので、すべての側辺が計算で使用されれば測定の精度を向上させることができる。したがって、対向辺の組み合わせが単なる1つの側辺の代わりに使用される。最も単純な組み合わせは2つの側辺の平均である。したがって、Rx=(R21+R43)/2およびRy=(R31+R42)/2が、方程式(37)の最初の2つの表現を各々置換することができる。また、より高い精度が必要な場合はより洗練された組み合わせを使用してもよいが、ほとんどの場合は単純平均が非常に良好な近似を与える。2つの対角方程式は、1つの表現に結合することができる。
ここで、k=4sinαcosαはシステム定数である。方程式(37)における隣接辺(R21およびR31)に対する公式に連動する方程式(39)は、3つの方程式のセット、および、今やL,θx,θyについて解くことができる3つの未知値を形成する。結果的な公式は以下のようになる。
測定量Rx,Ry,およびΔが方程式(40)で使用されてLが決定され、次に、Lが使用されて方程式(41)および(42)を各々に使用してθxおよびθyが決定される。L0は、マーカ/画面中心からの既知の距離に対応する。ここで、較正マーカ座標が決定され、基準座標として格納され、その後位置およびポインティング計算のために使用される。方程式(37)−(42)はまた、較正がθx=θy=0(画面の直接前面)で行われることを仮定する。視野角符号(方程式(39))を示すΔは正または負であり得るが、Δ2のみが方程式(41)および(42)に現れ、そのため視野角符号は解決しない。これは、遠視野条件に整合する−遠視野では、画面中心のどちら側からもマーカ配置はほぼ同じに見える。
角度の符号(左か右か、上か下か)を決定するために、対向辺間の違いを検知する必要がある。ユーザが遠視野にある場合、この違いは当然小さい。しかし、視野角の符号のみがこの側辺から要求される場合、近視野効果を使用して一方の側辺と他方の側辺とを区別することができる。したがって、ユーザが遠視野にある場合、方程式(40)−(42)が使用されて、距離および視野角の大きさが決定される。そして、視野角の符号を決定するために以下の条件が使用できる。R42−R31>0に対してはθx>0、R42−R31<0に対してはθx<0、およびR21−R42<0に対してはθy>0。なお、それにもかかわらず、これらの不等式は、画面中心近くまたは画面から遠くの位置に対しては固有的に不明確である。すなわち、不等式がほぼ等式になる遠視野となる。これらの場合、ユーザは遠視野レジームに十分入ったところにおいては、視野角の符号があいまいになり得る。この制限は平面内の幾何形状の特徴であるのに対して、セクション4.3で説明した3マーカを使用する平面外の幾何形状は、潜在的に高い感度を与え、角度符号のあいまいさが小さくなる。
遠視野条件の要求とは別に、方程式(40)−(42)が無効になる1つの状態がある。θx=+/−90°またはθy=+/−90°。この場合、ユーザは本質的に画面の平面内(z'=0)にあり、方程式(40)は未定義となり、距離を決定することができない。しかし、実際には、この状態は実質的に生じない。というのは、それは、システムの典型的な操作範囲の外だからである。ユーザは画面を見ることができず、マーカは一般にこの領域内のセンサによって検知することができない。したがって、この特別な場合はほとんど問題とはならない。ハンドヘルド装置の位置が所望される一方でユーザが画面平面内またはその近くにある(およびマーカが検知可能である)所定の場合があれば、その状態に当てはまる個別のセットの方程式を導くことができる。しかし、この場合は画面を見ながらポインティングする主要なアプリケーションとは関連しないので、これ以上説明しない。
本質的に正確であり、かつ、遠視野近似に依存しない、(37)に類似する方程式のセットを構築することができる。しかし、この、方程式(10)に類似する形態を有する結合方程式のセットは複雑であり、空間内の任意の位置を決定することは実質的に困難である。このため、方程式(37)に至る遠視野近似を使用するのである。方程式(37)は、遭遇する状態の多数において正確な位置決定を与えるのに十分である。しかし、ユーザが近視野にある場合、方程式(40)−(42)を用いての位置決定は正確ではなくなる。ユーザがマーカ/画面の近くにいて画面中心の近くではない極端な場合、すなわち方程式(36)が無効な場合、所定領域に当てはまるユーザ位置に対する別個のセットの方程式を導くことができる。近視野レジームでは、遠視野解決策に対して使用されたのとは異なるアプローチが必要となる。各マーカまでの距離が事実上等しいとは考えられないからである。方程式そのものに対して閉形式解を得ることはできないが、所定の、潜在的によくある状態において、かなり単純な解を導くことができる。方程式(37)を参照すると、x'−z'平面(θy≒0)上またはその近くのユーザの位置が制限されて、マーカによって形成される矩形の各側辺までの正確な距離が含まれる場合、側辺の2つに対して以下の単純化された方程式が得られる。
ここで、Lijは、ユーザからマーカiとjとを結ぶ直線の中心までの距離であり、L0 ijは、較正中の対応する距離である。同様に、ユーザの位置がy'−z'平面(θx≒0)に制限される場合は以下のようになる。
方程式(43)と(37)との2つの重要な違いは、θx≒0またはθy≒0の仮定の下で消去される三角関数項が存在しないことと、ユーザのマーカまでの距離が同じという近似とは対照的に、測定される画像分離(Rij)のユーザまでの実際の距離(Lij)への依存が含まれていることである。これらの条件下では、視野角への依存は距離因子Lijに含まれる。Lijを距離および視野角に関連付ける標準の三角関数のテクニックを使用すれば、θy≒0に対して以下の表現が得られる。
ここで、
および
ここで、
なお、L0 ijは(i,j)=(3,1)および(4,2)に対して当然等しいので、いずれの値も方程式(45)および(47)で使用することができる。同様の方程式のセットがθx≒0に対して以下のように導かれる。
これらの方程式のセットと、遠視野に対応するそれ(方程式(39)−(42))との重要な違いは、マーカ矩形の対向辺が隣接辺に対してここでは使用されることと、ΔxおよびΔyは正または負なので、視野角の符号が方程式(47)および(51)で決定されることである。したがって、近視野方程式を使用して、視野角の大きさおよび符号を決定することができる。残念ながら、これらの閉形式解は、ユーザがy'=0平面またはx'=0平面のいずれかにある場合にのみ厳密に有効となる。ユーザの位置がこれらの平面に近い場合も、ユーザがこれらの平面から離れるにつれて大きくなる小誤差を伴うが依然としてそれらを使用することができる。さらに、最初に述べたように、近視野解法の感度は、ユーザがマーカから離れるにつれて低減する。
したがって、実際には、ほとんどのユーザ位置が遠視野内に十分入るので、遠視野方程式を一般的に使用して、高い感度でユーザの距離および視野角の大きさを決定することができる。視野角の符号を決定するために、遠視野に対して最初に述べた条件を使用することができる(Rijの大きさを比較して)。または、ΔxおよびΔyの符号を使用することもできる。ユーザが近視野にあり、かつ、y'=0平面またはx'=0平面の近くにいることが既知である(例えば、動きがこれらの平面のいずれかに制限されている)特別な場合には、近視野方程式(方程式(45)−(52))を使用することができる。また、これらの方程式は正確なので、ユーザがy'=0平面またはx'=0平面の近くにいることが既知である場合は、遠視野においてであっても近視野方程式を使用することができる。しかし、遠視野方程式は、視野角変化に対して一般にはるかに大きな感度を有するので、好ましい方法は、適用可能な場合はいつでも遠視野方程式を使用する。
セクション4.2で説明したように、ポインティングおよび追跡は、1つ以上のマーカを使用して行うことができる。好ましい実施例は、セクション4.2で説明したように、方程式(20)を使用して、マーカ画像に対する「平均」座標を決定し、この座標の変化を追跡する。追跡する必要がある残りのDOFはロールである。2マーカ実施例に対する方程式(15)−(17)でとられるアプローチのバリエーションを、4マーカ実施例に対しても使用することができる。原則的には、任意の2つのマーカを、それらの初期座標が既知である限りにおいて、ロールの動きに対する基準として使用することができる。4マーカ実施例に対するロール検知および回転補償両者の手順は、前のセクションで説明した2または3マーカ実施例に対するそれと本質的に同じである。
複数のマーカを含む実施例のいずれに対しても潜在的な問題は、各マーカ、すなわちマーカ#1、#2等の正しい識別である。極めて多数の状態(ユーザ位置、ポインティング方向、およびロール角)に対しては、マーカの識別は明確である。例えば、4マーカ実施例では、マーカ画像#1はほぼ常に、画像センサ上の4マーカ配置の左角の上方にあり、その他のマーカは図22に示すマーカ#1に対する画像位置を有する。マーカ識別の曖昧さが存在する主要な状態は、装置が大きな量回転されて、マーカ配置が正方形(α=45°)の場合である。これらの場合において、マーカ#1は、位置および配向の誤差を導き得る例えばマーカ#2に通常占められる位置にあってよいが、ポインティング精度は、マーカの誤識別のいずれによっても著しい影響を受けるべきではない。
マーカ識別が問題となり得る場合には、関連する測定の問題のいずれかを扱うためのいくつかの方法が存在する。1つの方法は、ハンドヘルド装置が既知のロール角で初期較正されるように要求することである。そして、その後の動きがその初期配向に対して追跡される。このように、各マーカの識別は初期較正後は常に既知である。よりロバストな方法は、物理的区別を使用してマーカの少なくとも1つを一意的に特定することである。例えば、4マーカ実施例のマーカ#1、または3マーカ実施例の中央のマーカを一時的に変調してよい(例えば、繰り返してオンおよびオフに切り替える)。そして、追跡アルゴリズムをプログラムして変調されたマーカを、例えば#1として特定してよい。その他のマーカは、#1に対してその相対的位置を維持する。このアプローチの長所は、マーカの識別を確立するために較正が要求されないということである。短所は、より複雑なマーカのセットアップが要求されることである。
5.0 電子機器実施例
長々と上述してきたが、絶対ポインティングは、ハンドヘルド装置から送信された信号が処理され、かつ、それに応じて所定の影響が、ディスプレイ上に現れるように与えられる、および/または、電子機器によってトリガされる作動システムを含む。かかる電子機器の例は、以下のタイプの回路、すなわちa)テレビジョンのリモートコントロールから受信した信号を処理するために使用されるテレビジョン内の回路のような標準テレビジョン回路、b)衛星TV受信機回路、c)ケーブルTV受信機回路、d)VCR回路、e)DVDプレーヤ回路、f)コンピュータの回路、g)音楽プレーヤの回路(例えばCDプレーヤ回路、ステレオ受信機回路等)、h)ゲーム回路、i)IPTV受信機および/またはテレビジョン回路、j)上記a)からi)に挙げられたような1つ以上の電子機器物品からの信号を受信する「受信機」のための受信回路、k)ホームおよび/またはオフィス自動化機器(例えば、家事用スイッチを「オン」および「オフ」に切り替えるための回路を含む機器)、を含む電子機器を含む。
これらのタイプの回路の各々は典型的には、1)該当する所定タイプの機器のためのユーザインターフェイス(例えば、テレビジョン、TV受信機、DVDプレーヤ、VCRプレーヤ等の場合にはメニュー駆動ユーザインターフェイス、または、コンピュータの場合にはウィンドウズ(登録商標)系インターフェイス)を実装する、および/または、2)(ユーザインターフェイスに関連付けられた)カーソルもしくはアイコン、または、所定メニューオプションがハイライトされるメニュー系ユーザインターフェイスのためのハイライトメカニズムを実装するプログラムコードを実行する所定種類のプロセッサまたはコントローラを含む。
これらのプロセッサ上で、絶対ポインティングを実装するためのプログラムコード(例えば、マーカ画像位置を被ポイント表示位置に変換する数学的計算および/またはマーカ画像位置の識別の実行、ならびに直前のパラグラフで上述したプログラムコード)を実行することが見込まれている。図23aから図23eは、上述で概略されたような様々なタイプの電子機器のためのこれらのプロセッサを含む異なるアーキテクチャを示す。もちろん、他のタイプのアーキテクチャも可能である。簡便のため、図23aから図23eのいずれも、プログラムコードを格納するために典型的に使用される不揮発性メモリ装置(例えば、EPROM、EEPROM等のようなリードオンリーメモリ)を示していない。なお、図23aから図23eのアーキテクチャはそれらを含むと仮定される。
図23aは、パーソナルコンピュータ(PC)システムによく見られるアーキテクチャを示す。図23aのアーキテクチャによれば、メモリコントローラ2302は、プロセッサ2307_1(シングルコアまたはマルチコア)、グラフィックスコントローラ2304およびI/O制御ハブ2305によるメモリ2303_1へのアクセス要求を制御する。メモリ2303_1は典型的には、プロセッサ2307_1によって実行可能な命令およびこれらの命令が動作するデータを含む。ディスプレイには、グラフィックスコントローラ2304によって用意されたコンテンツ情報が与えられてよい。または、ディスプレイがプロセスチェーンのさらに下流にある場合は、ディスプレイ上にコンテンツをレンダリングするための上方が、(I/O2301_1のような)入力/出力(I/O)を介してコンピュータシステムから送信されてよい。I/Oは、プロセッサ2307_1によって処理されてプロセッサ2307_1が関連するシステムによって送信および/または受信される情報が通る任意の種類のチャネルである。例えば、ハンドヘルド装置によって送信される情報は、I/O(例えば、これはワイヤレストランシーバ回路を含む)を介して到着する。
図23bは、プロセッサ2307_2がメモリ2303_2に直結され、プロセッサ2307_2がそれ自体のI/O2303_2を受ける/供給するアーキテクチャを示す。図23cは、I/O 2306_3に対してバスが使用される点を除いて図23bに類似するアーキテクチャを示す。図23dは、メモリ2303_4がI/O2306_4と同じバスを共有するアーキテクチャを示す。図23eは、メモリ2303_5が、I/O2306_5とは異なるバスを介してアクセスされるアーキテクチャを示す。
6.0 多ユーザ実施例
他のアプリケーションは、具体的にはカーソル/メニュー選択制御が1人以上のユーザで共有されるかまたは複数のアクティブなカーソルを有することが所望される状態において、複数のユーザを同時に(すなわちパラレルに)または、ある場合には連続して(すなわちシリアルに)サポートする能力を含む。1つの共有カーソルまたは1つの共有メニューの場合には、各々リモートポインティング装置を有する個別のユーザが、画面カーソルの制御(それゆえ機能コマンドも)を所有し、および/または、所定のプロトコルを使用してメニュー選択を行う。共有プロトコルを確立するために使用される様々な方法がある。
1つのアプローチは、「集中化」することである。ここで、リモート装置の1つが、カーソルの制御を、制御ユニットへ所定のコマンドを送信することによって他のユーザのいずれかに手放すマスタコントローラとして指定される。他のアプローチにおいては、カーソルの制御はトークンパッシング方式のように「分散化」される(例えば、ハンドヘルド装置によってトークンがまわされて、トークンを持つ装置がカーソルを制御するとされる場合)。集中化方式または分散化方式のいずれにおいても、制御の優先権はアクティビティレベルを考慮するルールのセット(例えば、非アクティブリモートコントロールが優先権を失うかまたはアクティブコントロールが優先権を得るか)、所定のシーケンス(優先権がユーザのグループ間でまわされる)、または、所定の制御階層(例えば、ユーザ#1がコントロールを有している間アクティブ、ユーザ#2がコントロールを有している間アクティブかつ#1は非アクティブ等)に基づいて決定される。本明細書の要旨が包含する他の多くの共有プロトコルが、当業者によって容易に実装できる。
複数の同時にアクティブなカーソルおよび/またはメニュー選択を有する複数のユーザ(例えば、各ユーザに対して1つのカーソル)は、複数ユーザ環境のより高度な形態を表す。この場合、制御ユニットは、各装置の座標データに基づいてユーザのポインティング装置の各々に対応する画面カーソルを表示かつ移動する。ユーザの動作の各々を区別する補助として異なるカーソルアイコン(例えば色、形等)を使用してよい。複数のカーソルが同時に表示および制御されても、機能コマンドの優先権は、少なくとも、複数のカーソルによっておよび/または一度に1つのコマンドしか実行できないシステムにおいて1つの表示フィーチャがポイントされる状態のために決定する必要がある。優先権決定の最も単純な形態は、最初にコマンドを選択するのがどのユーザかに基づいてよい。コマンド優先権を決定するための他の手順は当業者にとっては明らかである。同時にアクティブなカーソルを有する複数のユーザは、ゲーム機能に対しては特に有用である。
7.0 ハンドヘルド装置の動作から生じるアプリケーション
図10a、図10bおよび「仮想ダイヤル」に関連して上述された説明から考えると、所定のポインティング動作または動きは、予めプログラムされた機能として解釈される。例えば、画面をポイントしながらの可視リモートの迅速な上方への動きすなわち急な動きは、「上への移動」コマンドとして解釈され、右への迅速な動きは、「右への移動」コマンド等として解釈される。基本的な選択機能はまた、画面カーソルが所望機能タブをポイントしながら、コンピュータマウスと同様に、ボタンの単純なクリックとしてハンドヘルド装置にプログラムされてもよい。または、カーソルが機能タブから離れるおよび戻る移動のような所定の動作が選択機能を可能にしてもよい。このジェスチャ能力によって、仮想ボタンおよび動作のプログラミングが可能となり、ポインティング装置上のハードコードされたボタンが必要なくなる。
距離および位置決定または見積もりに加えて、本発明の複数基準または複数センサの形態の別の側面は、セクション1および4で説明したようなポインティング装置の回転移動を感知する能力である。例えば、2つの基準マーカによって、ポインティング装置と画面とを結ぶ直線にほぼ平行な軸上の画面とポインティング装置との相対回転が検知できる。このタイプの動きは、1つの基準/1つのセンサの好ましい実施例では一般的には検知できない。というのは、それはポインティング方向の変化を表さないからである。このタイプの動きは、典型的にはロールと称され、ポインティング動作を表さないが、単純かつ直感的なジェスチャを介して他のコマンドおよび機能を可能にするために使用される。この回転またはひねりの動きを使用する一例は、上述の「仮想ダイヤル」であり、器具の様々な属性、例えば、音量、チャネル、ソングトラック等が制御される。本発明によって検知可能な他の基本的な動きまたは動作であり、前述されたものは、所定のコマンドまたは機能のために使用してよい。ハンドヘルド装置の操作の別の側面は、それをすべてのシステムが認識するべくユーザが画面境界内でポイントすることが要求されないことである。これは、システムの位置および配向感知能力の結果であり、実行可能な動作は、従来のマウスタイプのポインティング装置にあるような画面カーソルの位置に限定されない。ここで、ポインティング範囲は、装置のセンサの視野、および、画面サイズの代わりとしてのユーザの画面からの距離によって決定される。典型的には、利用可能なポインティング範囲は画面サイズよりも大きい。したがって、様々な機能またはコマンドに対して、画面境界を越えるポインティング動作を使用することができる。例えば、画面メニューを、ユーザが所定の境界(例えば画面端)を越えてポインタを向けたときにアクティベートまたは表示することができる。または、画面境界の外での上下移動が、表示画面メニュー上のスクロール機能をアクティベートしてもよい。他の多くの「画面外」動作が、絶対ポインティング装置のこの特性を使用して可能になる。
8.0 ゲームアプリケーション
上述の基本的なリモートコントロール機能に加え、絶対ポインティング装置の関連アプリケーションは、ビデオゲーム相互作用メカニズムすなわちゲームコントローラとしてのその使用である。従来のゲームコントローラは、マウスタイプまたはジョイスティックタイプの入力装置およびボタンに基づく。ここで、ゲーム機能(例えば、シーンのナビゲーション、武器の砲火等)は、標準のマウスまたはジョイスティックの動き(これらは比較的自然である)およびボタンを押すことによって制御される。具体的には、ビデオゲームのナビゲーションおよび動きの制御の側面は、装置の絶対ポインティングおよび位置感知能力によって著しく高められる。直接画面ポインティング能力に加え、画面距離、画面視野角、装置ロール角、ピッチ、およびヨーの感度により、従来のゲームコントローラに見られないプレーヤの自由度が可能となる。これらの特性は、直感的な3次元の動き(例えば、フライトシミュレーションを使用するゲーム)、および位置感応相互作用(例えば、プレーヤの移動につれてのシーンの視点移動、またはインアウトの動きを使用するスピード制御)のような様々な動作を制御するために使用することができる。ここで、「ユーザインターフェイス」という用語は、表示されるゲームインターフェイスをカバーするのに十分広いものとして解釈する必要がある。
9.0 締めくくりのコメント
上述により教示されたプロセスのいくつかは、所定の機能を実行するべく機械(半導体チップ上に配置されたプロセッサ、または抽象的なプログラムコードをプロセッサ特定プログラムコードに変換する「インタープリタ」(例えばJava(登録商標)仮想機械)のような)に機械実行命令のようなプログラムコードによって行うことができる。または、これらの機能は、機能実行のための配線論理回路を含む特定のハードウェアコンポーネント(例えば論理状態機械)によって、または、プログラムされたコンピュータコンポーネントおよび配線論理コンポーネントの任意の組み合わせによって行ってもよい。
プログラムコードを格納するために製品が使用されてよい。プログラムコードを格納する製品は、1つ以上のメモリ(例えば、1つ以上のフラッシュメモリ、ランダムアクセスメモリ(静的、動的その他))、光学ディスク、CD−ROM,DVD ROM,EPROM,EEPROM,磁気または光学カードまたは他のタイプの、電子命令格納に適した機械読み取り可能媒体として実施されるが、それに限られることはない。プログラムコードはまた、リモートコンピュータ(例えばサーバ)から要求コンピュータ(例えばクライアント)まで、伝搬媒体で実施されるデータ信号によって(例えば通信リンク(例えばネットワーク接続)を介して)ダウンロードされてよい。
上記明細書において、本発明を所定の実施例を参照して説明してきた。しかし、それに対する様々な修正および変形を、添付の請求項に記載される本発明の広い要旨および範囲から逸脱することなしに行い得ることは明らかである。したがって、明細書および図面は、限定の意味ではなく例示としてみなされるべきである。