JP2006031709A - 複合追跡システムの方法および装置 - Google Patents

複合追跡システムの方法および装置 Download PDF

Info

Publication number
JP2006031709A
JP2006031709A JP2005207255A JP2005207255A JP2006031709A JP 2006031709 A JP2006031709 A JP 2006031709A JP 2005207255 A JP2005207255 A JP 2005207255A JP 2005207255 A JP2005207255 A JP 2005207255A JP 2006031709 A JP2006031709 A JP 2006031709A
Authority
JP
Japan
Prior art keywords
data
tracking
tracking subsystem
relative
absolute
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2005207255A
Other languages
English (en)
Other versions
JP5133507B2 (ja
Inventor
Glen Larsen
ラーセン グレン
Jeremiah Pope
ポープ ジェレミー
Rajeev Badyal
バジャル ラジェフ
Randall T Crane
ティー.クレーン ランダール
Thomas Oliver
オリバー トーマス
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2006031709A publication Critical patent/JP2006031709A/ja
Application granted granted Critical
Publication of JP5133507B2 publication Critical patent/JP5133507B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/0304Detection arrangements using opto-electronic means
    • G06F3/0317Detection arrangements using opto-electronic means in co-operation with a patterned surface, e.g. absolute position or relative movement detection for an optical mouse or pen positioned with respect to a coded surface
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/0304Detection arrangements using opto-electronic means
    • G06F3/0317Detection arrangements using opto-electronic means in co-operation with a patterned surface, e.g. absolute position or relative movement detection for an optical mouse or pen positioned with respect to a coded surface
    • G06F3/0321Detection arrangements using opto-electronic means in co-operation with a patterned surface, e.g. absolute position or relative movement detection for an optical mouse or pen positioned with respect to a coded surface by optically sensing the absolute position with respect to a regularly patterned surface forming a passive digitiser, e.g. pen optically detecting position indicative tags printed on a paper sheet
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/0354Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of 2D relative movements between the device, or an operating part thereof, and a plane or surface, e.g. 2D mice, trackballs, pens or pucks
    • G06F3/03543Mice or pucks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/0354Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of 2D relative movements between the device, or an operating part thereof, and a plane or surface, e.g. 2D mice, trackballs, pens or pucks
    • G06F3/03545Pens or stylus

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Position Input By Displaying (AREA)
  • User Interface Of Digital Computer (AREA)
  • Control Of Position Or Direction (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)

Abstract

【課題】 装置の動きを追跡する方法、装置、およびシステムを提供すること。
【解決手段】 本発明の方法は、表面に対する装置の位置を追跡する第1の追跡サブシステムを実行するステップと、表面に対する装置の位置を追跡する第2の追跡サブシステムを実行するかどうかを判断するステップと、表面の位置に対応するデータを取り込むステップと、取り込んだデータに基づいて表面に対する装置の位置を決定するステップとを含む。次に、装置の位置は、ホストコンピュータに送信され、アプリケーションプログラムで使用することができる。第1および第2の追跡サブシステムは、それぞれ相対および絶対追跡サブシステムとすることができる。
【選択図】 図3C

Description

本発明の諸態様は一般に、コンピュータ入力装置などの装置の動きを検出するための追跡システムに関する。より詳細には、本発明の諸態様は、絶対および相対追跡法によって装置の動きを追跡する複合追跡装置に関する。
ユーザとコンピュータとの対話は、日々増大を続けている。より多くの仕事で各個人がコンピュータと対話する必要があり、益々多くの人々が仕事と娯楽の両方でコンピュータとの対話を選択している。コンピュータと対話するための様々な追跡装置には、マウス、キーボード、ジョイスティック、タッチパッドなどがある。パーソナルデジタルアシスタント(PDA)、携帯電話、電子ペンなど他の追跡装置によって、ユーザが様々なコンピュータおよびコンピュータシステムと対話することも可能である。
ユーザ対話の増加に加えて、より正確な対話を求める要求も増加している。例えば、ユーザは、デジタルカメラで取り込んだ画像を、画像操作用のアプリケーションプログラムが動作するホストコンピュータ上で処理することができる。ユーザは、画像の一部の色やコントラストを変更して、芝生の緑色、あるいは空の青色を明るくしたいと望むことがあるだろう。その際、ユーザは、様々な追跡装置の1つを用いてホストコンピュータと対話することによって、画像の各部を識別し処理することができる。ユーザは、操作可能なボタンを備えたマウスを用い、そのボタンを押して保持することによって、処理したい部分を取り囲むことができる。このようなシナリオでは、ユーザはおそらく、処理部分を非常に正確に識別したいと望むはずである。
追跡装置は、2種類のシステムのうちの一方、すなわち相対追跡システムまたは絶対追跡システムのどちらかに分類することができる。相対追跡システムは、絶対位置の知識とは関係なく、ある位置から別の位置への相対的な動きを認識する機能を有する。相対光学追跡の方法には、とりわけ画像相関、微分パターン勾配(differential pattern gradient)、レーザスペックル、ドップラなどをベースにしたものが含まれる。相対追跡システムの特徴の1つは、1つまたは複数のセンサが、時間と共に変化する信号を検出し、その信号を様々な方法で処理して相対的な位置の変化を決定できることである。絶対追跡システムは、以前の決定とは無関係に装置の位置を認識する機能を有する。マウスやトラックボールなどのコンピュータ入力装置が相対追跡システムを実装しているのに対し、電子ペンは一般に絶対追跡システムを実装している。追跡システムは一般に、相対追跡システムと絶対追跡システムとの両方を含むことはない。その両者を組み合わせることのコスト、サイズ、技術的見地からの困難さにより、各製造業者は、各装置を構築する際に、それら2つの方法の一方を選択してきた。そのため、ユーザが、あるコンピュータとの対話のために入力装置を操作しているとき、そのユーザは、他のコンピュータとは適切に対話できない場合があり、またその操作中のコンピュータとも正確な対話ができない場合がある。様々な追跡方法を実施するためには、ユーザは2つの異なる装置を用意する必要がある。
したがって、相対追跡システムおよび絶対追跡システムの両方に基づいて装置の動きを追跡することができ、追跡した動きの位置をコンピュータアプリケーションの入力として送信できるコンピュータ入力装置追跡システムが求められている。
本発明の一態様では、装置の動きを追跡する方法が提供される。この方法は、表面に対する装置の位置を追跡する第1の追跡サブシステムを実行するステップと、表面に対する装置の位置を追跡する第2の追跡システムを実行するかどうかを判断するステップと、表面上の位置に対応するデータを取り込むステップと、取り込んだデータに基づいて表面に対する装置の位置を決定するステップとを含む。次いで、装置の位置は、ホストコンピュータに送信され、アプリケーションプログラムで使用される。
他の態様では、装置とホストコンピュータを含み、装置の動きを追跡するシステムが提供される。この装置は、装置の位置を追跡するように構成されたセンサと、取り込まれたデータを受け取り、その装置の決定された位置データを出力するように構成された第1の追跡サブシステムとを含む。ホストコンピュータは、位置を表すデータを出力するように構成された、第2の追跡サブシステムを含む。この場合、ホストコンピュータは、前述の装置と通信すると共に、決定された位置データを受信し、装置の位置を表すデータを計算し、その位置データをアプリケーションプログラムの入力として適用するように構成される。
本発明の少なくとも一態様によれば、絶対追跡サブシステムおよび相対追跡サブシステムの両方に基づいて位置を追跡するように構成された装置が記載される。複合追跡装置および/またはシステムとは、両方の追跡方法を含むものである。
本発明の前述の要約、ならびに例示的実施形態についての以下の詳細な説明は、添付の図面と併せて読むことにより、より良く理解されるはずである。これらの図面は、例示のために添付されたものであり、特許請求の範囲に記載の本発明を限定するものではない。
様々な例示的実施形態についての以下の説明では、添付の図面を参照している。添付の図面は、本発明の一部をなすものであり、各図面には、例示のために、本発明を実施できる様々な実施形態が示されている。他の実施形態も使用可能であり、本発明の範囲を逸脱することなく構造上、機能上の修正をなし得ることを理解されたい。
図1は、本発明を実装することができる、適切なコンピュータシステム環境100の一例を示す。コンピュータシステム環境100は、適切なコンピュータ環境の一例に過ぎず、本発明の使用および機能の範囲に関し、いかなる制限を課することを意図したものでもない。コンピュータシステム環境100は、例示的コンピュータシステム環境100に示された各コンポーネントの任意の1つまたは組合せに関し、まったくそれらに依存するものではなく、それらを要件とするものでもないと解釈されたい。
本発明は、他の多数の汎用または専用のコンピュータシステム環境または構成と共に使用することができる。本発明と共に適切に使用できる周知のコンピュータシステム、環境、および/または構成には、これに限定されるものではないが、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドまたはまたはラップトップ装置、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セットトップボックス、プログラマブル家電、ネットワークPC、ミニコンピュータ、メインフレームコンピュータ、上記のシステムまたは装置のいずれかを含む分散コンピュータ環境などがある。
本発明は、コンピュータによって実行される、プログラムモジュールなどコンピュータ実行可能な命令の一般的な文脈で説明することができる。一般に、プログラムモジュールには、特定のタスクを実行するか、または特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などが含まれる。本発明は、分散コンピュータ環境でも実施することができ、その場合、各タスクは、通信ネットワークによって接続されたリモート処理装置によって実施することができる。分散コンピュータ環境では、プログラムモジュールは、ローカルおよびリモートの両方のコンピュータメディア、例えばメモリ記憶装置などに置くことができる。
図1Aを参照すると、本発明を実装するための一例示的システムには、コンピュータ110のような形の汎用コンピュータ装置が含まれる。コンピュータ110の各コンポーネントには、これに限定されるものではないが、処理ユニット120、システムメモリ130、システムバス121などが含まれる。システムバス121は、システムメモリなど様々なシステムコンポーネントを処理ユニット120に結合する。システムバス121は、いくつかの種類のバス構造のいずれであってもよく、例えば、様々なバスアーキテクチャのいずれかを使用するメモリバスまたはメモリコントローラ、ペリフェラルバス、ローカルバスなどであってもよい。これに限定されるものではないが、例として、このようなアーキテクチャには、ISA(Industry Standard Architecture)バス、MCA(Micro Channel Architecture)バス、EISA(Enhanced ISA)バス、VESA(Video Electronics Standards Association)バス、メザニン(Mezzanine)バスとも呼ばれるPCI(Peripheral Component Interconnect)バスなどがある。
一般に、コンピュータ110は、様々なコンピュータ可読媒体を含む。コンピュータ可読媒体は、コンピュータ110がアクセスできる、任意の使用可能な媒体であってよく、揮発性および不揮発性メディアのいずれでも、またリムーバブルおよび非リムーバブルメディアのいずれでもよい。限定の意味ではなく、例として、コンピュータ可読媒体は、コンピュータ記憶メディアおよび通信メディアを含むことができる。コンピュータ記憶メディアは、コンピュータ可読命令、データ構造、プログラムモジュール、その他の情報を記憶するための任意の方法または技術で実装された、揮発性および不揮発性の、リムーバブルおよび非リムーバブルな媒体を含む。これに限定されるものではないが、コンピュータ記憶媒体には、RAM(ランダムアクセスメモリ)、ROM(読み出し専用メモリ)、EEPROM(電気的消去可能なプログラマブルROM)、フラッシュメモリ、その他のメモリ技術製品、CD−ROM、DVD(digital versatile disks)、その他の光ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置、その他の磁気記憶装置、その他、所望の情報の格納に使用でき、またコンピュータ110がアクセスできる任意の媒体を含む。一般に通信媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、その他のデータなどを、搬送波もしくは他の伝送機構など変調されたデータ信号の形で実施すると共に、任意の情報送達媒体を含む。「変調されたデータ信号」という用語は、信号中の情報をコード化するような方法で設定または変更された、1つまたは複数の信号特性を有する信号を意味する。限定の意味ではなく例として、通信媒体には、有線ネットワーク、直接有線接続などの有線媒体、ならびに音響、RF、赤外などの無線媒体が含まれる。上記の媒体の任意の組合せもまた、コンピュータ可読媒体の範囲に含まれるものとする。
システムメモリ130は、ROM131、RAM132など、揮発性および/または不揮発性メモリの形のコンピュータ記憶媒体を含む。基本入/出力システム(BIOS)133は、例えば起動時などに、コンピュータ110内の各要素間で情報を転送できるようにする基本ルーチンを含み、通常はROM131に格納されている。RAM132は一般に、処理ユニット120によって即時にアクセス可能なかつ/または現在動作中の、データモジュールおよび/またはプログラムモジュールを含む。限定の意味ではなく例として、図1Aには、オペレーティングシステム134、アプリケーションプログラム135、他のプログラムモジュール136、およびプログラムデータ137が示されている。
コンピュータ110は、他のリムーバブル/非リムーバブル、揮発性/不揮発性のコンピュータ記憶メディアを含むこともできる。例示の意味だけで、図1Aには、非リムーバブルな不揮発性の磁気媒体に読み書きをするハードディスクドライブ141、リムーバブルな不揮発性磁気ディスク152に読み書きをする磁気ディスクドライブ151、およびリムーバブルな不揮発性光ディスク156、例えばCD−ROM、その他の光媒体に読み書きする光ディスクドライブ155が示されている。例示的動作環境で使用できる、他のリムーバブル/非リムーバブル、揮発性/不揮発性の記憶媒体には、これには限定されないが、磁気テープカセット、フラッシュメモリカード、DVD、デジタルビデオテープ、半導体RAM、半導体ROMなどがある。ハードディスクドライブ141は一般に、インタフェース140などの非リムーバブルなメモリインタフェースを介してシステムバス121に接続され、磁気ディスクドライブ151および光ディスクドライブ155は一般に、インタフェース150などのリムーバブルなメモリインタフェースを介してシステムバス121に接続される。
上で説明し図1Aに示した、各ドライブおよびそれに関連するコンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、およびコンピュータ110用の他のデータを記憶する。図1Aにおいて、例えば、ハードディスクドライブ141は、オペレーティングシステム144、アプリケーションプログラム145、他のプログラムモジュール146、およびプログラムデータ147を格納するように図示されている。これらの各コンポーネントが、オペレーティングシステム134、アプリケーションプログラム135、他のプログラムモジュール136、およびプログラムデータ137とは同一であっても、異なっていてもよいことに留意されたい。オペレーティングシステム144、アプリケーションプログラム145、他のプログラムモジュール146、およびプログラムデータ147は、それらが、異なるコピーであってもよいことを示すために、本明細書では異なる番号が与えられている。ユーザは、入力装置、例えばデジタルカメラ163、キーボード162、およびポインティング装置161などを介して、コンピュータ110に命令または情報を入力する。ポインティング装置とは、一般にマウス、トラックボール、タッチパッドを意味する。他の入力装置(図示せず)には、ペン、スタイラスおよびタブレット、マイクロホン、ジョイスティック、ゲームパッド、衛星放送受信アンテナ、スキャナなどがある。これらおよび他の入力装置は、システムバス121に結合されたユーザ入力インタフェース160を介して処理ユニット120に接続されることも多い。ただし、パラレルポート、ゲームポート、USB(universal serial bus)など、他のインタフェースおよびバス構造を用いて接続することもできる。モニタ191または他の種類の表示装置も、ビデオインタフェース190などのインタフェースを介してシステムバス121に接続される。モニタの他に、コンピュータは、例えば、出力ペリフェラルインタフェース195を介して接続されるスピーカ197、プリンタ196など他の周辺出力装置を含むこともできる。
コンピュータ110は、1つまたは複数のリモートコンピュータ、例えばリモートコンピュータ180などへの論理接続を使用してネットワーク環境で動作することができる。リモートコンピュータ180は、パーソナルコンピュータ、サーバ、ルータ、ネットワークPC、ピア装置、または他の共用ネットワークノードであってもよい。また、図1Aにはメモリ記憶装置181だけが示されているが、一般に、コンピュータ110に関連して上で説明した要素の多く、またはそのすべてを含むことができる。図1Aに描かれた論理接続は、LAN(ローカルエリアネットワーク)171およびWAN(広域ネットワーク)173を含むが、他のネットワークを含むこともできる。このようなネットワーク環境は、オフィス、企業規模のコンピュータネットワーク、イントラネット、およびインターネットでは一般的なものである。
LANネットワーク環境で使用されるとき、コンピュータ110は、ネットワークインタフェースまたはアダプタ170を介してLAN171に接続される。WANネットワーク環境で使用されるとき、コンピュータ110は通常、インターネットなどのWAN173を介して通信を確立するためのモデム172、その他の手段を含む。モデム172は、内蔵でも外付けでもよいが、ユーザ入力インタフェース160または他の適切な機構を介してシステムバス121に接続することができる。ネットワーク環境では、コンピュータ110に関連して示された各プログラムモジュールまたはその一部は、リモートのメモリ記憶装置に格納することができる。限定の意味ではなく例示として、図1Aには、リモートのアプリケーションプログラムが、メモリ装置181上に常駐するように示されている。
図示されたネットワーク環境が例示的なものであり、コンピュータ間の通信リンクを確立する他の手段が使用可能であることを理解されたい。TCP/IP、イーサネット(登録商標)、FTP、HTTPなど、様々な周知のプロトコルのいずれかが存在するものと想定されるので、このシステムは、クライアントサーバ構成の中で動作することができ、ユーザがウェブベースのサーバからウェブページを取り出すことを可能にする。ウェブページ上のデータを表示し操作するためには、様々な従来のウェブブラウザの任意のものを使用することができる。
プログラムインタフェース(または、より簡単にインタフェース)は、1つまたは複数のコードセグメントが、1つまたは複数の他のコードセグメントによって提供される機能と通信するか、またはその機能にアクセスすることを可能にする機構、プロセス、プロトコルのいずれかと見なすことができる。あるいは、プログラムインタフェースは、あるシステムの、あるコンポーネントの1つまたは複数の機構、メソッド、関数呼び出し、モジュール、オブジェクト等であって、他のコンポーネントの1つまたは複数の機構、メソッド、関数呼び出し、モジュール等と通信によって結合できるものと見なすこともできる。前文の「コードセグメント」という用語は、1つまたは複数の命令またはコードからなるラインを含むことが意図され、例えば、コードモジュール、オブジェクト、サブルーチン、関数などを含む。この用語は、適用される用語を問わず、またコードセグメントが別々にコンパイルされるかどうか、コードセグメントがソースまたは中間コードまたはオブジェクトコードとして提供されるかどうか、コードセグメントがランタイムシステムまたはプロセスで使用されるかどうか、それらが同一マシンに置かれるかまたは異なるマシンに置かれるかまたは複数のマシンに配布されるかどうか、あるいはコードセグメントによって表される機能が、すべてソフトウェアで実装されるか、すべてハードウェアで実装されるか、またはハードウェアとソフトウェアの組合せで実装されるかどうかを問わない。
概念的には、プログラムインタフェースは、一般に図1Bまたは図1Cに示したようなものと見なすことができる。図1Bには、第1および第2のコードセグメントが通信する通路としてのインタフェース、すなわちインタフェース1が示されている。図1Cは、インタフェースがインタフェースオブジェクトI1およびI2(これらは、第1および第2のコードセグメントの一部であってもなくてもよい)を含むように図示されている。このオブジェクトにより、システムの第1および第2のコードセグメントは、媒体Mを介して通信することができる。図1Cにおいて、インタフェースオブジェクトI1およびI2は同一システムの別個のインタフェースと見なすこともできるし、オブジェクトI1およびI2に媒体Mを加えたものが、インタフェースを構成すると見なすこともできる。図1Bおよび1Cには、双方向のフローおよびフローの各端部のインタフェースが示されているが、実装によっては、一方向だけに情報フローが存在する(または以下で説明するように情報フローが存在しない)ことがあり、また片側だけにインタフェースオブジェクトが存在することもあり得る。限定の意味ではなく例として、アプリケーションプログラムインタフェース(API)、エントリポイント、メソッド、関数、サブルーチン、リモートプロシージャコール、コンポーネントオブジェクトモデル(COM)インタフェースなどの用語は、プログラムインタフェースの定義の範囲内に含まれる。
このようなプログラムインタフェースの諸態様には、第1のコードセグメントが第2のコードセグメントに情報(この場合、「情報」という用語は最も広い意味で使用され、データ、命令、要求などを含む)を送信する方法、第2のコードセグメントが情報を受信する方法、ならびに情報の構造、シーケンス、構文、構成、スキーマ、タイミング、およびコンテンツが含まれる。この件に関して、基になる送信媒体そのものは、有線であっても、無線であっても、あるいはその両方の組合せであってもよく、インタフェースの定義に従って情報が送信される限りインタフェースの動作にとってさほど重要ではないかもしれない。状況によっては、情報は従来の意味での一方向または双方向には通過しない場合がある。例えば、情報送信が他の機構による(例えば、情報がコードセグメント間の情報フローとは別に、バッファ、ファイルなどに置かれる)かまたは情報転送が存在しない場合、またはあるコードセグメントが単に第2のコードセグメントによって実施される機能にだけアクセスする場合などである。所与の状況において、例えば、各コードセグメントが、疎結合(loosely coupled)構成のシステムの一部であるかどうか、または密結合(tightly coupled)構成のシステムの一部であるかどうかに応じて、このような態様のいずれか、またはすべてが重要になることもある。したがって、このリストは例示的なものであり、限定的なものではないと見なすべきである。
プログラムインタフェースについてのこの考えは、当業者には既知のものであり、また本発明の前述の詳細な説明からも明らかである。しかし、プログラムインタフェースを実装する他の方法も存在する。したがって、明示的に除外しない限り、それらの方法も添付の特許請求の範囲の記載に含まれることが意図される。そのような他の方法は、図1Bおよび1Cの単純化された図と比べ、より高度で複雑なものに見えるかもしれないが、それらの方法もやはり、同様の機能を実施してほぼ同様の結果を達成するものである。次に、プログラムインタフェースの、いくつかの例示的代替実装について簡単に説明する。
A.分割(FACTORING)
あるコードセグメントから他のコードセグメントへの通信は、通信を複数の別個の通信に分割して間接的に達成することができる。このことが、図1Dおよび図1Eに示されている。図示のように、いくつかのインタフェースは、分割可能な機能の組によって記述することができる。したがって、数学的に24が2×2×3×2で与えられるように、図1Bおよび1Cのインタフェース機能を要素に分割して、同一の結果を達成することができる。したがって、図1Dに示したように、インタフェース、すなわちインタフェース1によって提供される機能を再分割して、そのインタフェースの通信を複数のインタフェース、すなわちインタフェースA、インタフェースB、インタフェースC等に変換し、しかも同一の結果を達成することができる。図1Eに示したように、インタフェースI1によって提供される機能を複数のインタフェースI1a,I1b、I1cに分割し、しかも同一の結果を達成することができる。同様に、第1のコードセグメントから情報を受信する第2のコードセグメントのインタフェースI2は、複数のインタフェースI2a、I2b、I2c等に分割することができる。分割する際に、第1のコードセグメントに含まれるインタフェースの数は、第2のコードセグメントに含まれるインタフェースの数に一致する必要はない。図1Dおよび1Eのいずれの場合でも、インタフェース、すなわちインタフェース1およびI1の機能上の趣旨は、それぞれ図1Bおよび1Cのものと同一に維持される。インタフェースの分割はまた、分割したことが認識し難くなるように結合、交換、その他の数学的特性に従うことができる。例えば、動作の順番が重要でないこともある。したがって、あるインタフェースによって実施される機能は、他のコードまたはインタフェースによって、またはシステムの他のコンポーネントによって、そのインタフェースに到着する前にうまく実施できることもある。さらに、プログラミング技術分野の技術者ならば、同一の結果を達成する様々な関数呼び出しを行う様々な方法が存在することが理解できよう。
B.再定義(REDEFINITION)
場合によっては、プログラムインタフェースのあるアスペクト(例えば、パラメータ)を無視、追加、または再定義しても、所期の結果を達成できることがある。このことが、図1Fおよび1Gに示されている。例えば、図1Bのインタフェース、すなわちインタフェース1が、関数呼び出しSquare(入力,精度,出力)、すなわち3つのパラメータ入力、精度、出力を含む呼び出しを備えており、その呼び出しが第1のコードセグメントから第2のコードセグメントに発行されたと想定する。図1Fに示したように、所与のシナリオにおいて真中のパラメータである精度が無関係の場合には、それを無視するか、あるいは(この状況で)意味のないパラメータで置き換えることができる。無関係のパラメータを追加することもできる。いずれの場合でも、入力が第2のコードセグメントによって二乗(square)された後で戻される限り二乗の機能は達成することができる。精度は、そのコンピュータシステムの下流、または他の部分にとっては、十分意味のあるパラメータになり得る。しかし、二乗を計算するという限られた目的のために精度が不必要だと認識されると、そのパラメータを置き換えること、または無視することができる。例えば、有効な精度値を送る代わりに、誕生日など意味のない値を、結果に悪影響を与えることなく送ることができる。同様に、図1Gに示したように、インタフェースI1をインタフェースI1’で置き換えて、パラメータを無視するか、またはインタフェースにパラメータを追加するように再定義することができる。同様に、インタフェースI2をインタフェースI2’として再定義することによって、不必要なパラメータまたは他の場所で処理されるパラメータを無視するように再定義することもできる。ここで重要なことは、場合によっては、プログラムインタフェースが、ある目的のために不必要な、パラメータなどのアスペクトを含むことができることであり、したがってそれらのパラメータを無視もしくは再定義すること、または他の場所で他の目的のために処理することができるということである。
C.インラインコーディング(INLINE CODING)
2つの別個のコードモジュールの機能の一部またはすべてをマージして、それらの間の「インタフェース」の形を変更することも可能である。例えば、図1Bおよび1Cの機能を、それぞれ図1Hおよび図1Iの機能に変換することができる。図1Hにおいて、図1Bの以前の第1および第2のコードセグメントは、その両方を含むモジュールにマージされる。この場合、各コードセグメントはやはり相互に通信させることもできるが、インタフェースは単一のモジュールにさらに適した形に適合させることができる。したがって、例えば、正式なCallおよびReturnステートメントはもはや必要ないかもしれないが、インタフェース、インタフェース1に従った、類似の処理または応答は、引き続き実施することができる。同様に、図I1に示したように、図1CのインタフェースI2の一部(またはすべて)をインタフェースI1のインラインに書き込んで、インタフェースI1”を形成することができる。図示のように、インタフェースI2はI2aとI2bに分割され、インタフェース部I2aはインタフェースI1と共にインラインでコード化されてインタフェースI1”が形成される。具体例として、図1CのインタフェースI1が関数呼び出しsquare(入力、出力)を実行し、それがインタフェースI2で受信され、(二乗のために)入力を介して送られた値が第2のコードセグメントによって処理された後で、二乗された結果が出力を介して送り返される場合を考える。このような場合には、第2のコードセグメントによって実施される処理(入力の二乗)は、第1のコードセグメントによって、インタフェースへの呼び出しなしに実施することができる。
D.分離(DIVORCE)
あるコードセグメントから他のコードセグメントへの通信は、通信を複数の別個の通信に分割して間接的に実施することができる。この概略が、図1Jおよび1Kに示されている。図1Jに示したように、1つまたは複数のミドルウェア(機能および/またはインタフェース機能を元のインタフェースから分離するので、分離インタフェースと呼ばれる)が提供されて、第1のインタフェース、すなわちインタフェース1上の通信を、別のインタフェース、この場合はインタフェース2A,インタフェース2B、インタフェース2Cに従うように変換する。このことは、例えばインタフェース1のプロトコルに従うオペレ−ティングシステムと通信するように設計されたアプリケーションのインストールベースがあり、次いで、そのオペレーティングシステムが別のインタフェース、この場合はインタフェース2A、インタフェース2B、およびインタフェース2Cの各インタフェースを使用するように変更されるような場合に実施することができる。重要なのは、第2のコードセグメントによって使用される元のインタフェースが、もはや第1のコードセグメントによって使用されるインタフェースと互換でなくなるように変更されることであり、したがって、中間物を使用して新旧のインタフェースの互換を取るということである。同様に、図1Kに示したように、第3のコードセグメントを分離インタフェースDI1に導入してインタフェースI1からの通信を受信すると共に、それを分離インタフェースDI2にも導入して、そのインタフェース機能を、例えば、DI2と共に動作するように再設計されたインタフェースI2aおよびI2bに送信することによって、同一の機能結果を提供することができる。同様に、DI1とDI2が共同して動作することで、図1CのインタフェースI1およびI2の機能を新しいオペレーティングシステム用に変換しても、同一のまたは類似の機能結果を提供することができる。
E.書換え(REWRITING)
他の可能な変形は、コードを動的に書き換えて、インタフェース機能をほぼ同一の結果を達成する何か他のもので置き換えることである。例えば、中間言語(例えば、Microsoft IL、Java(登録商標)ByteCodeなど)で記述されたコードセグメントが、実行環境(.Net framework、Java(登録商標)ランタイム環境、または他の類似のランタイム環境など)のジャストインタイム(JIT)コンパイラまたはインタープリタに提供されるシステムが存在し得る。JITコンパイラは、通信を第1のコードセグメントから第2のコードセグメントに動的に変換するように記述することができる。すなわち、第2のコードセグメント(すなわち、元の第2のコードセグメント、または異なる第2のコードセグメント)で必要とされる他のインタフェースに通信を一致させることができる。このことが、図1Lおよび1Mに示されている。図1Lから分かるように、このアプローチは、上記の分離シナリオと類似している。例えば、アプリケーションのインストールベースがインタフェース1のプロトコルに従うオペレ−ティングシステムと通信するように設計されているが、次いで、そのオペレーティングシステムが別のインタフェースを使用するように変更される場合に、このアプローチを実施することができる。JITコンパイラを使用して、実行中に通信を、インストールベースのアプリケーションからそのオペレーティングシステムの新しいインタフェースに一致させることができる。図1Mに示したように、動的にインタフェースを書き換えるこのアプローチを適用して、インタフェースを動的に分割(factor)、あるいは動的に変更することができる。
インタフェースとして同一のまたは類似の結果を代替実施形態によって達成するための上記のシナリオが、様々な方法で直列および/または並列に組み合わせることができ、また他の中間コードとも組み合わせることができることに留意されたい。したがって、上記の代替実施形態は、相互に排他的なものではなく、混合し、適合させ、組み合わせることによって図1Bおよび図1Cに示された一般的なシナリオと同一のまたは等価なシナリオを生成することができる。多くのプログラミング構成と同様に、インタフェースの同一のまたは類似の機能を達成するための、本明細書には記載されていないかもしれないが、やはり本発明の趣旨および範囲によって表すことができる他の類似の方法が存在することにも留意されたい。すなわち、インタフェースの価値の基になるのは、少なくとも部分的にはインタフェースによって示される機能であり、またインタフェースによって可能になる有利な結果であることに留意されたい。
図2Aは、内部コンポーネントの概略表示を含む、コンピュータ入力装置200の側面図である。コンピュータ入力装置200はハウジング205を含む。ハウジング205の底部は、机上または卓上などの支持表面上に置かれるように構成されたほぼフラットな平面であるが、またユーザが容易に手で持つことができるものでもある。ハウジング205の上部は、人間の手と快適に調和し、それを支持するように形成される。コンピュータ入力装置200は、図1Aにマウスとして示されたコンピュータ入力装置161であってもよい。コンピュータ入力装置200は、ユーザが、押してエントリをクリックし、かつ/またはコンピュータ入力装置200を用いた動作を実施することを可能にする、動作可能なボタン207を備える。コンピュータ入力装置200は、スクロールホイール209を備えていることもある。コンピュータ入力装置200はまた、制御システム210、相対追跡サブシステム220、絶対追跡サブシステム230、およびセンサ240を含むように示されている。参照要素210,220,230、および240は、これらのコンポーネントがコンピュータ入力装置200に内蔵できることを示すために破線の形で示されている。当業者ならば、コンピュータ入力装置という用語に、いくつかの異なる装置を含めることができることを理解されたい。コンピュータ入力装置の例には、マウス、電子ペン、PDA(携帯情報端末)、デジタルカメラ、携帯電話、トラックボールマウス、タッチパッド、ジョイスティック、および個人が装着できる電子装置、例えばグローブなどが含まれる。グローブは、装着されたときに、個人の手および/または指の動きを追跡して、情報をコンピュータに入力するために使用できるものである。
制御システム210は、データの計算、信号処理、およびホストコンピュータ(図示せず)とのインタフェースのためのものであり、シリコンチップ、デジタル部品、および/またはマイクロプロセッサ部品などで構成することができる。制御システム210は、各サブシステム、すなわち相対追跡サブシステム220および絶対追跡サブシステム230と接続された形で図示されている。追跡サブシステム220および230は、センサ240に接続されて示されている。図2Aに示されるように、各サブシステムは、コンピュータ入力装置200の動きを追跡するデータを、センサ240を使用して取り込む。図2Aには示されていないが、各追跡サブシステム220および230は、追跡のために独立したセンサ240を備えることができる。さらに、センサ240を各サブシステム220および230内に含めることができることを理解されたい。サブシステム220および230の両方に共通のセンサ240が使用される場合は、各サブシステムに対するフレームレートは異なっていてもよいこと、したがって各サブシステムに提供されるデータの品質は異なっていてもよいことを理解されたい。例えば、絶対位置解読には、より大きなデータセットが取り込まれ、必要とされるが、そのデータのサブセットを相対追跡用に使用して、より迅速な処理を可能にすることができる。
センサ240は、コンピュータ入力装置200の動きに対応するデータを取り込む。データは、相対追跡サブシステム220および/または絶対追跡サブシステム230に送られ、そこでデータ処理されて、コンピュータ入力装置200の近似的な位置を示す位置データが決定される。次に、その位置データは、制御システム210に送られ、次いでホストコンピュータ(図示せず)に送られて、アプリケーションプログラムで使用される。例えば、コンピュータ入力装置200の動きは、図8に示し、以下で説明するように、ホストコンピュータの表示器上のカーソル位置の動きに対応させることができる。図2Aには示されていないが、制御システム210は、位置データを格納するためのメモリを備えることができ、後ほどそのデータをホストコンピュータに送信することができる。
コンピュータ入力装置200は、相対追跡法および/または絶対追跡法によってコンピュータ入力装置200の動きを追跡するように構成された複合追跡装置の一例を示すものである。相対追跡法および絶対追跡法に基づいて追跡する各機能は、コンピュータ入力装置200の同一の物理ハウジング205内に含まれる。当業者なら、制御システム210、相対追跡サブシステム220、および絶対追跡サブシステム230が、ハードウェアコンポーネント、ソフトウェアコンポーネント、ファームウェアコンポーネント、および/またはハードウェア、ソフトウェア、ファームウェアコンポーネントの任意の組合せによって実装できることを理解されたい。
図2Bは、内部コンポーネントの概略表示を含む、コンピュータ入力装置201の側面図である。コンピュータ入力装置201は、ハウジング206を含む。コンピュータ入力装置201は、電子ペンタイプの装置であってもよい。コンピュータ入力装置201は、操作可能ボタンおよび/またはセンサ、例えばゼロトラベルバイナリ接触センサ(zero travel binary contact sensor)または力感応型抵抗体(FSR)を含むことができ、それによって、ユーザが押してエントリをクリックすること、および/またはコンピュータ入力装置201を用いた動作を実施することを可能にする。コンピュータ入力装置201はまた、制御システム210、相対追跡サブシステム220、絶対追跡サブシステム230、およびセンサ240を含むように図示されている。参照要素210、220、230、および240は、それらのコンポーネントをコンピュータ入力装置210に内蔵できることを示すために破線で示されている。
制御システム210は、カスタムシリコンチップ、デジタル部品、および/またはマイクロプロセッサ部品などで構成することができ、データの計算、信号の処理、およびホストコンピュータ(図示せず)とのインタフェースのために使用できる。制御装置210は、サブシステム、すなわち相対追跡サブシステム220および絶対追跡サブシステム230と接続されるように示されている。追跡サブシステム220および230は、センサ240に接続された状態で示されている。図2Bに示されるように、各サブシステムは、コンピュータ入力装置201の動きを追跡するためのデータを、センサ240を使用して取り込む。図2Bには示されていないが、追跡サブシステム220および230は、追跡用に独立のセンサ240を備えることができる。さらに、センサ240を、サブシステム220および230の内部に含めることができることを理解されたい。サブシステム220および230の両方に共通のセンサ240が使用される場合は、各サブシステムに対するフレームレートは異なっていてもよく、したがって各サブシステムに提供されるデータの品質は異なっていてもよいことを理解されたい。例えば、絶対位置解読には、より大きなデータセットが取り込まれ、必要とされるが、そのデータのサブセットを相対追跡用に使用して、より迅速な処理を可能にすることができる。
センサ240は、コンピュータ入力装置201の動きに対応するデータを取り込む。データは、相対追跡サブシステム220および/または絶対追跡サブシステム230に送られ、そこでデータ処理されて、コンピュータ入力装置200の近似的な位置を表す位置データが決定される。次に、位置データは、制御システム210に送られ、次いでホストコンピュータ(図示せず)に送信されて、アプリケーションプログラムで使用される。例えば、コンピュータ入力装置201の動きは、図8に示し、以下で説明するように、ホストコンピュータの表示器のカーソル位置の動きに対応させることができる。図2Bには示されていないが、制御システム210は、位置データを格納するためのメモリを備えることができ、そのデータを後からホストコンピュータに送信することができる。
コンピュータ入力装置201は、相対追跡法および/または絶対追跡法によってコンピュータ入力装置201の動きを追跡するように構成された複合追跡装置の一例を示すものである。相対追跡法および絶対追跡法に基づいて追跡する各機能は、コンピュータ入力装置201の同一の物理ハウジング206内に含まれる。当業者なら、制御システム210、相対追跡サブシステム220、および絶対追跡サブシステム230が、ハードウェアコンポーネント、ソフトウェアコンポーネント、ファームウェアコンポーネント、および/またはハードウェア、ソフトウェア、ファームウェアコンポーネントの任意の組合せによって実装できることを理解されたい。
図3Aは、2つの追跡サブシステム220および230によって構成される複合追跡装置300を示す。各サブシステムは、データを収集するセンサ240aおよび240b、ならびにそれらのセンサ240aおよび240bを制御し、センサ240aおよび240bからデータを収集し処理するプロセッサ324および334を含む。センサ240aおよび240bは、両方の追跡サブシステム220および230によって共用される同一のセンサ240であってもよい。センサ240aおよび240bは光学および/または磁気センサ、あるいは何か他の種類のセンサであってもよい。複合追跡装置300は、ホストコンピュータ390と通信するように示されている。複合追跡装置300は、制御装置210を介してホストコンピュータ390と通信する。制御システム210は、後での処理および/またはホストコンピュータ390への送信のために、取り込んだデータを格納するメモリ(図示せず)を備えることができる。制御システム210は、様々な方法、例えば、シリアルもしくはUSBポートによる有線接続、Bluetooth技術などの無線通信経路、および/または他の任意の種類の通信方法によってホストコンピュータ390と通信することができる。
制御システム210は、サブシステム220と230の間で、それぞれ追跡エンジン324および334を介して、信号およびデータを送受信するように示されている。相対追跡エンジン324は相対追跡サブシステム220の一部である。相対追跡エンジン324は、制御システム210から制御信号を受信し、それに応答して、センサ240aに適切な信号を送信する。相対追跡エンジン324はまた、センサ240aからのデータも受信する。このデータには、複合追跡装置300の位置を追跡するために使用される光学情報および/または測定データを含めることができる。センサ240aからデータを受信したとき、相対追跡エンジン324は、そのデータを処理して相対位置データを決定することができる。決定されたデータは、制御システム210を介してホストコンピュータ390に送信される。あるいは、相対追跡エンジン324は、センサ240aから受信したデータを制御システム210に送ることもできる。相対追跡エンジン324は、計算を実施して相対追跡法に従って装置300の位置を決定すること、および/または制御システム210を介してホストコンピュータ390にデータを送信することができる。ホストコンピュータ390は、必要な計算を実施して、相対追跡法に基づいて複合追跡装置380の位置を決定することができる。様々な実施形態に従って、計算は、相対追跡エンジン324、制御システム210、および/またはホストコンピュータ390によって実施することができる。
相対追跡サブシステム220と同様に、絶対追跡システム230はセンサ240bおよび絶対追跡エンジン334を含むことができる。絶対追跡エンジン334は、制御システム210から制御信号を受信し、それに応答して、センサ240bに適切な信号を送信する。絶対追跡エンジン334はまた、センサ240bからのデータも受信する。センサ240bからデータを受信したとき、絶対追跡エンジン334は、データを処理して絶対位置データを決定することができる。決定されたデータは、制御システム210を介してホストコンピュータ390に送信される。あるいは、絶対追跡エンジン334は、センサ240bから受信したデータを制御システム210に送ることもできる。絶対追跡エンジン334は、計算を実施して絶対追跡法に従って複合追跡装置300の位置を決定すること、および/または制御システム210を介してホストコンピュータ390にデータを送信することができる。ホストコンピュータ390は、必要な計算を実施して、絶対追跡法に基づいて複合追跡装置300の位置を決定することができる。計算は、様々な実施形態に従って、絶対追跡エンジン334、制御システム210、および/またはホストコンピュータ390によって実施することができる。
制御システム210は、データを取り込み、それを何らかの方法で通信する。本明細書で説明するように、追跡サブシステム220および230の各コンポーネントは、何らかの方法で組み合わせること、および/または共用することができる。例えば、各サブシステムのセンサ240aおよび240bは、共通のセンサ240であってもよい。相対追跡サブシステム220が相対的な動きのデータを提供するのに対し、絶対サブシステム230は絶対位置データを制御システム210に提供する。相対動きデータおよび絶対位置データは、ユーザの必要性、2つの追跡サブシステムの有効性に応じて、かつ/または装置300のより正確な位置を決定するために、個別にまたは共同して使用することができる。
本発明の他の実施形態では、センサ240aを使用して、相対追跡エンジン324によって使用されるデータを取り込むことができる。相対追跡サブシステム220は、複合追跡装置300によって使用されるデフォルトの追跡サブシステムにすることができる。相対追跡サブシステム220を、所定の時間および/または距離にわたって動作させた後で、絶対追跡サブシステム230を起動することができる。例えば、相対追跡サブシステムがデータを取り込み、その2秒後に、センサ240bが画像を取り込むようにすることができる。絶対追跡エンジン334は、データを直ちに処理して絶対位置データを決定し、最終的にそのデータを、制御システム210を介してホストコンピュータ390に送信することができる。絶対位置データおよび/または相対位置データは、複合追跡装置300内のメモリ(図示せず)に格納することができる。他の実施形態では、絶対追跡サブシステム230をデフォルトの追跡サブシステムにすることもできる。
図3Bは、本発明の少なくとも一態様による、装置360の位置を追跡する複合追跡システム350の例示的一実施形態を示す機能ブロック図である。複合追跡システム350は、装置360を含む。装置360は、相対追跡法に基づいてその位置を追跡するコンピュータ入力装置であってもよい。装置360は、相対追跡サブシステム220を含む。相対追跡サブシステム220は、センサ240および相対追跡エンジン324を含む。先に図3Aに示したように、センサ240は、データを取り込み、そのデータを相対追跡エンジン324に送る。相対追跡エンジン324はそのデータを処理し、処理した位置データを制御システム210に送る。制御システムは、その位置データをホストコンピュータ390に送る。同様に、制御システム210は、制御信号によってセンサ240および相対追跡エンジン324の動作を制御する。
図3Bに示したように、ホスト390は絶対追跡エンジン370を含む。絶対追跡エンジン370は、絶対追跡法に基づいて装置360の位置を計算することができる。センサ240から受信したデータを絶対追跡エンジン370が使用して、絶対追跡法に従って装置360の動きを決定する。図示のように、装置360およびホストコンピュータ390は、複合追跡システム350を構成する。図には示されていないが、当業者ならば、絶対および/または相対追跡法に基づいて位置データを決定するためのデータ計算が、コンピュータマウス、電子ペン、PDAなどの装置によって、またはホストコンピュータによって、またはその両者の組合せによって完全に実施し得ることを理解されたい。
本発明の他の実施形態によれば、センサ240を使用して相対追跡エンジン324によって使用されるデータを取り込むことができる。相対追跡サブシステム220を、装置360によって使用されるデフォルトの追跡サブシステムにすることができる。相対追跡サブシステム220は、所定の時間および/または距離の間、相対追跡サブシステム220を動作させてから、絶対追跡処理のために画像のスナップショットを取り込むことができる。例えば、相対追跡サブシステム220がデータを取り込み、その2秒後に、センサ240が画像を取り込むようにすることもできる。取り込まれたデータは、装置360内のメモリ(図示せず)に格納することができる。そのデータは、後ほど、制御システム210を介してホストコンピュータ390に送信することができる。ホストコンピュータでは、受信したキャプチャデータおよび絶対追跡エンジン370に基づいて絶対位置データを決定することができる。他の実施形態では、絶対追跡サブシステム230をデフォルトの追跡サブシステムにすることもできる。
図3Cは、2つの追跡サブシステム220および230によって構成される複合追跡装置380を示す。複合追跡装置380もまた、データを収集するセンサ240を含む。サブシステム220および230はそれぞれ、プロセッサ324および334を含む。各プロセッサは、センサ240を制御し、センサ240からのデータを収集し処理する。センサ240は、光学および/または磁気センサ240、あるいは何か他の種類のセンサであってもよい。複合追跡装置380は、制御システム210を介してホストコンピュータ390と通信する。制御システム210は、様々な方法、例えばハードワイヤード通信経路、無線通信経路、および/または他の任意の種類の通信経路によってホストコンピュータ390と通信することができる。
制御システム210は、サブシステム220および230との間で、それぞれ追跡エンジン324および334を介して信号およびデータを送受信するように示されている。相対追跡エンジン324は相対追跡サブシステム220の一部である。相対追跡エンジン324は、制御システム210から制御信号を受信し、それに応答して、センサ240に適切な信号を送信する。相対追跡エンジン324はまた、センサ240からのデータも受信する。データには、複合追跡装置380の位置を追跡するために使用される、光学情報および/または測定データを含めることができる。センサ240からデータを受信したとき、相対追跡エンジン324は、そのデータを処理して相対位置データを決定することができる。決定されたデータは、制御システム210を介してホストコンピュータ390に送信される。あるいは、相対追跡エンジン324は、センサ240から受信したデータを制御システム210に送ることもできる。相対追跡エンジン324は、計算を実施して相対追跡法に従って装置380の位置を決定すること、および/または制御システム210を介してホストコンピュータ390にデータを送信することができる。ホストコンピュータ390は、必要な計算を実施して、相対追跡法に基づいて複合追跡装置380の位置を決定することができる。計算は、様々な実施形態に従って、相対追跡エンジン324、制御システム210、および/またはホストコンピュータ390によって実施することができる。
相対追跡サブシステム220と同様に、絶対追跡システム230は絶対追跡エンジン334を含むことができる。絶対追跡エンジン334は、制御システム210から制御信号を受信し、それに応答して、センサ240に適切な信号を送信する。絶対追跡エンジン334もまた、センサ240からのデータを受信する。センサ240からデータを受信したとき、絶対追跡エンジン334は、データを処理して絶対位置データを決定することができる。決定されたデータは、制御システム210を介してホストコンピュータ390に送信される。あるいは、絶対追跡エンジン334は、センサ240から受信したデータを制御システム210に送ることもできる。絶対追跡エンジン334は、計算を実施して絶対追跡法に従って複合追跡装置380の位置を決定すること、および/または制御システム210を介してホストコンピュータ390にデータを送信することができる。ホストコンピュータ390は、必要な計算を実施して、絶対追跡法に基づいて複合追跡装置380の位置を決定することができる。計算は、様々な実施形態に従って、絶対追跡エンジン334、制御システム210、および/またはホストコンピュータ390によって実施することができる。
制御システム210は、データを取り込み、それを何らかの方法で通信する。相対追跡サブシステム220が相対的な動きのデータを提供するのに対し、絶対サブシステム230は絶対位置データを制御システム210に提供する。相対的な動きのデータおよび絶対的な位置データは、ユーザの必要性、2つの追跡サブシステムの有効性に応じて、かつ/または装置380のより正確な位置を決定するために、個別にまたは共同して使用することができる。
図4Aおよび4Bは、本発明の少なくとも一態様による、接触ポイントの追跡位置の例示的一実施形態を示す概略図である。図4Aは、相対追跡サブシステムと併せて絶対的追跡サブシステムを使用して、装置の動きの正確な決定を保証するシステムの一例を示すものである。図4Aは、装置の絶対位置(ウェイポイント(waypoint))を決定するために、絶対追跡サブシステムによって(マシンの時間尺度で)比較的少ない頻度で計算された位置を示す。次に、相対追跡サブシステムを使用して、相対経路として示された中間位置(intermediate position)が決定される。絶対追跡サブシステムが、割り振られた時間枠の間に、例えばオクルージョン(occlusion)のために装置の位置を決定できなかった場合は、装置の位置は相対追跡サブシステムに基づいて更新を続けることができる。図4Bは、まさにそのような状況を示している。図示のように、例えば、下にあるコード化されたパターンが遮られたことにより、絶対追跡サブシステムに基づいてウェイポイント2を正確に決定できなかったためにウェイポイント2が欠落している。例えば、図9に示し後述するように、本文が下にあるコード化されたパターンを遮り、その結果、システムが装置の絶対位置を正確に決定できない場合がある。図4Bでウェイポイント2が欠落しているので、ウェイポイント3まで相対追跡法で装置の位置の追跡を継続する。
デッドレコニング(dead reckoning)による航法は、既知の場所から移動した距離、方向、および時間量を計算することによって、ある位置を推測することと定義される。ウェイポイントは、絶対サブシステムによって決定された絶対位置であり、デッドレコニング航法はそれらのウェイポイント間の経路を決定する。デッドレコニングによって計算された位置は、距離、方向、および時間の計算における複合誤差に起因する誤差の影響を受ける。しかし、本発明の少なくとも一態様によれば、絶対追跡サブシステムは絶対位置参照を提供し、その結果、制御システムは、以前に決定した任意の中間位置における誤差を訂正することができる。装置が移動した実際の経路は、図5に示したように再生成される。したがって、相対追跡サブシステムは制御システムに追跡データを提供し、絶対追跡サブシステムは相対追跡データと同期するように定期的にウェイポイントのデータを提供し、その結果、誤差訂正が可能になる。
各サブシステムは、処理能力、サイズ、価格、および消費電力において異なるコストを有する。所与の複合追跡装置またはシステムのアーキテクチャおよび/または目的に応じて、これらのコストのバランスは異なるものになる。したがって、それらに従って、この2つのサブシステムの間のバランスを変更することが有用な場合もある。ユーザが、大部分のかつ/またはすべての目的で、特定の種類の追跡を実施したいと望む場合もある。あるいは、デフォルトの追跡システムを使用し、かつ/またはある種の効率、すなわち経済性、電力消費、および/または計算時間などに基づく判断によって特定の追跡システムを実装することもできる。
装置の検出および/または位置決めのために、装置が置かれた物体の表面は、表面の各領域の位置を示す画像データを含むことができる。例示的一実施形態では、画像が取得されるかまたはスキャンされる表面には、ホストコンピュータまたは他の外部コンピュータ装置の表示器を含めることができる。この表示器は、デスクトップコンピュータ、ラップトップコンピュータ、Tablet PC(商標)、携帯情報端末(PDA)、電話、デジタルカメラ、または情報を表示できる任意の装置のモニタに相当するものであってもよい。したがって、Tablet PCの画面上に生成された書込み用紙または他の画像には、全体の文書中の特定の部分の位置、または画像の任意の他の部分の位置を表すコードに対応するデータを含めることができる。この情報は、英数字文字、コードパターン、または位置を指示するために使用できる任意の認識可能な画像データパターンを含む画像から構成することができる。物体の表面上の各領域の位置を指示する際に使用するために選択される1つまたは複数の画像は、センサのピクセル解像度、および/またはスキャンされる表面に含まれる画像データのピクセル解像度など、スキャン装置の感度に依存することがある。次に、表面から抽出された位置情報を使用して、その表面上の装置の動きを絶対追跡法に基づいて追跡することができる。位置情報を使用して、電子インクの情報、あるいは装置の動きに対応する他の情報を正確に生成することもできる。位置情報を使用して、表面上で入力が影響を受ける位置を検出すること、ならびに表面全体にわたって装置の動きの指示を提供することができる。結果として得られた位置情報を使用して、例えば、ワードプロセッサソフトウェアと対話しながら文書を変更することができる。
代替実施形態では、本装置と組み合わせて使用される対象物を、例えば、背景に位置情報が含まれた紙で構成することができる。位置情報は、本装置に付随するセンサによって検出され、紙上の特定の位置の絶対位置を表すために使用される、コード、光学表現、その他の形式など任意の形で組み込むことができる。
図6は、文書の位置をコード化するための技術の一例を示す。この例では、画像の背景は、全体として見ると迷路状のパターン600を形成する細線を含んでいる。迷路模様600内の各線のグループは数本の細線から構成され、例えば、一意の方向や配置により、文書の他の部分604と比較して、迷路パターンのその部分の位置602を指示することができる。取り込まれた画像に含まれる迷路パターン600の解読は、多くの解読方式に従って実施することができる。迷路パターン600は、ほとんど見えないこともある。迷路パターン600は、書込み、描画、および/または読取りを妨げないように構成される。例えば、ユーザは、白い印刷用紙の上に迷路パターン600を配置することもできる。ユーザは、オフィスおよび/または会議室の壁などの表面に紙を貼り付け、紙の上に注釈をつけて、装置が紙全体にわたるそれ自体の絶対的な動きを追跡できるようにすることもできる。迷路パターン600は、レーザプリンタまたは任意の他の印刷プロセスを使用して、透明フィルム上に印刷することができる。あるいは、迷路パターン600を紙の上に印刷することもできる。当業者ならば、迷路パターン600を配置する媒体が、透明フィルムおよび/または紙など上記の例に限定されるものではないこと、またその媒体に、文書用および/または描画用の任意の種類の媒体、これに限定されるものではないが、例えば工作用紙、壁、木の表面、黒板の表面、コンピュータ画面、床などを含めることができることを理解されたい。当業者ならば、コード化されたパターンを表面に配置するために使用されるインクが、ユーザにとって可視であっても、不可視であってもよいことを理解されたい。ユーザにとって可視の場合は、下にあるパターンを見るために、赤外または紫外の光源が必要になることもある。
一実施形態では、各線の特定の構成およびグループを解読して位置情報を生成することができる。他の実施形態では、取り込まれたデータの位置の指示は、サンプルパターンに対応する画像からコードを抽出し、そのコードを使用して、その領域の位置を識別するデータを含むルックアップテーブルのアドレスを指定することによって得ることができる。ある種類のパターン600は、透かしパターンと呼ばれている。透かしパターンは、コンピュータ画面上に表示された通常の画像の上に重ね合わされた、かすかに見える2次元(2D)ビットパターンであってもよい。各ビットパターンは、画面上の任意の場所に置かれた、そのビットパターンの小さなサブセットを解読してそのサブセット領域の位置を生成できるようにコード化される。これにより、イメージング装置、例えばハンドヘルドスタイラス、ペンなどの装置が、パターン上のそれ自体の絶対位置を決定することが可能になる。透かしパターンにおいては、解読可能な位置が、所与のピッチまたは間隔で、表面全体にわたって規則正しい間隔で配置される。この間隔は、各位置の配置、したがって装置の位置を解読できる精度を規定する。これらの位置は、時間と共に変化することがなく、また他の位置との相対的な関係によって変化することもないという意味で絶対的である。他の実施形態では、透かしは、例えばPC、ノートブックコンピュータ、TabletPCなどの画面上で変更することができる。このような実施形態では、透かしおよび文書の内容は、紙上に印刷されるというより、むしろスクリーン画素を使用して表示することができ、その結果アプリケーションは、ユーザによる対話に基づいて修正された透かしを表示することが可能になる。各図に示された例には、様々な2次元構成のコード化されたパターン600が示されているが、当業者ならば、コード化されたパターン600が、1次元構成で解読可能な位置を含むドットタイプのパターンであってもよいことを理解されたい。各図に示した例は、特定の種類のコード化されたパターン600に限定されるものではない。
また、透かしパターンは、紙文書やコンピュータモニタなどの表面に、そのパターンが表面上の各「位置」で一意に解読可能になるように組み込むことができる。透かしパターンの1つの用途には、装置が、ある表面内のその装置の位置を追跡する機能があるが、透かしによって追加のデータをコード化することもできる。位置データおよび/または追加のデータは、パターンの形でコード化することができる。追加のデータは、位置データを解読する方法と類似の方法で解読することができる。この追加のデータは、低位レベルでコード化することもできるが、コード化された位置データと比べると、表面上のより大きなスペースを占めることになる。単一または複数のアプリケーションを使用して、位置データだけ、追加のデータだけ、または位置データと追加のデータの両方を復元することができる。追加の情報の例として、画像、ファイル識別、オーディオファイルおよび/またはクリップ、ビデオファイルおよび/またはクリップ、セキュリティ機能、暗号機能、バイオメトリック情報、および/または他の情報へのリンクなどがある。
例えば、パターン600などの透かしパターンの設計では、多くの検討事項を考慮する場合もある。このような検討事項の1つが、表面上の透かしパターンの濃度である。透かしパターンは、装置の適切な機能のために、十分な量と質の情報をコード化しながらも、装置のユーザが許容できるほど目立たないように十分に薄い必要がある。さらに、コード化される情報は、誤り検出/訂正のレベルが許容できるレベルになるように、冗長性と完全性についての最低限の要件を満たすように設計される場合がある。パターン600がユーザの妨げになるレベルを最小にしようと試みる場合は、可能な限り少ない情報をコード化するのが望ましいが、一方装置の機能を最大にしようと試みる場合は、情報の量および冗長性を最大にするのが望ましいはずである。どのような要求も、可能な位置情報の濃度のバランスによって達成できる可能性があり、それによって、位置精度を増しながら、パターンに起因するユーザへの妨げを最小にできる可能性がある。
透かしベースの絶対追跡システムは、透かしパターンが欠落しているかまたは遮られた状況では、位置を追跡する機能が失われることになる。追跡装置が有用になり得る表面の多くは、透かし以外のパターン、印刷、またはデータを含んでいる。このような場合の一例が図9に示されており、それについて以下で説明する。このような障害物には、テキスト、画像、表面の模様、影などが考えられる。これらの障害物は、表面に組み込まれた透かしパターンを遮る可能性があり、それにより透かしパターンを取り込み、処理して、一意の固定位置または他のデータを解読するこの装置の機能を低下させる可能性がある。このような状況では、装置は、それ自体の現在位置を失うことになり、機能の低下を引き起こすことがある。
相対追跡システムは、多くの表面上での動きを追跡するために有用である。位置データが存在しない場合でも、センサ240によって取り込まれた画像を解析して画像取込み時の装置の位置を決定することができる。連続する画像を使用して、異なる時間における装置の相対位置の変化を計算することができる。これらの画像の相関関係により、表面上での装置の正確な軌跡を生成することができる。この軌跡情報を使用して、例えば、手書きのストロークを正確に表す電子インクを生成することができる。
本発明の一実施形態では、電子ペン201など、電子ペンタイプのコンピュータ入力装置は、相対追跡サブシステムで使用するためのデータを取り込む。相対追跡サブシステムは、絶対追跡サブシステムが起動される前に、所定の時間および/または距離にわたり相対追跡処理用のデータを取り込む。所定の距離および/または時間によって、絶対追跡サブシステムの開始を起動することもできる。絶対追跡サブシステムは、取り込んだデータを直ちに処理して絶対位置データを決定し、最終的にそのデータをホストコンピュータに送信することができる。あるいは、絶対位置データおよび/または相対位置データを電子ペンのメモリに格納して、後からホストコンピュータに送信することもできる。他の実施形態では、電子ペンタイプのコンピュータ入力装置は絶対データを取り込み、続いてそのデータは、ホストコンピュータで、アプリケーションへの入力として追跡用に処理される。
図7は、本発明の少なくとも一態様による、コード化された表面600上の接触ポイント720の位置を追跡するコンピュータ入力装置200の例示的一実施形態を示す概略図である。コンピュータ入力装置200は、例示のために、コード化された表面600の上方に示されている。コンピュータ入力装置200は、例えばコード化された表面600がマウスパッドに組み込まれている場合には、コード化された表面600の上に載っていることもある。図示のように、センサ240は、コンピュータ入力装置200から送出され、符号化された表面600からコンピュータ入力装置200に反射される光710に対応するデータを取り込む、光学センサであってもよい。光710は、コード化された表面600上の接触ポイント720の位置に関する画像データを含む。光学システムは、接触ポイント720の位置を検出するための一方法に過ぎず、当業者ならば、レーダーおよび磁気ベースのシステムなど、他の種類のナビゲーションシステムが使用できることを理解されたい。
図8は、本発明の少なくとも一態様による、コンピュータアプリケーションと共に使用されるコンピュータ装置追跡システムの例示的一実施形態を示す概略図である。図8は、コンピュータ入力装置800を使用して、相対追跡法および絶対追跡法に基づいてコンピュータ入力装置800の動きをどのように追跡できるかを示す。図8では、コンピュータ入力装置800は、電子ペン800として示されている。ユーザは、電子ペン800をノートブックタイプコンピュータ810の画面805上で使用することができる。画面805は、電子ペン800の位置を追跡することが可能なあらかじめ定義された領域である。ユーザが電子ペン800を画面805の表面上で移動させたとき、相対追跡システムに基づいて電子ペンの位置を追跡することができる。接触ポイント822および824は、他の位置、接触ポイントの軌跡、および/または他の相対的な特性に対して相対的に決定することができる。
本発明の少なくとも一態様によれば、ユーザは、コード化された紙830、例えば図6に示された組み込みパターン600を含んだ紙などの上でも同一の電子ペン800を使用することができる。ユーザが紙830の表面上で電子ペン800を移動させたとき、紙830の表面に対する、電子ペン800の接触ポイントの動き840を追跡することができる。動き840は、コード化された表面の情報を使用する絶対追跡法に基づいて追跡される。例えば、ユーザは紙830上に対象物を描くことができ、その対象物をホストコンピュータ上で動作するアプリケーションプログラムに入力することができる。ホストコンピュータに接続されたモニタ850は、対応する対象物842を表示する。電子ペン800は、ホストコンピュータと通信して、ホストコンピュータ上で動作するアプリケーションが使用する絶対位置データを送信する。当業者ならば、アプリケーションプログラムがホストコンピュータの外部にあってもよいことを理解されたい。したがって、少なくとも一実施形態によれば、複合追跡装置800を、絶対追跡目的および/または相対追跡目的でホストコンピュータなしで使用することができる。
図9は、本発明の少なくとも一態様による、遮られたコード化された表面600の例示的一実施形態を示す概略図である。図9は、本発明の複合追跡システムの一実施形態を説明するためのものである。図示のように、コード化された表面600のある部分920に文書910が上書きされている。例えば、コード化された表面600上に、ユーザが黒インクで文字を書き込み、それが、ある領域で、下にあるパターンを遮る930場合がある。このような状況では、絶対追跡システム単体では、遮られた部分920での装置の動きを正確に追跡することは困難になる。本発明の少なくとも一実施形態によれば、システムは、相対追跡サブシステムを使用して、遮られた部分920での装置の位置を決定することができる。したがって、装置の位置および動きのより正確な表現が得られることになる。
図10は、本発明の少なくとも一態様による、複合追跡装置の動きを追跡するための例示的一方法を示す流れ図である。処理が開始され、ステップ1002で、ユーザが特定の追跡方法の選択を指定したかどうかが判断される。例えば、ユーザは、複合追跡装置に相対追跡法によって追跡させたいと決定することができる。ユーザ定義の選択が存在する場合には、処理はステップ1004に移り、そのステップで、複合追跡装置によってユーザ定義の追跡方法が実行される。ユーザ定義の選択が存在しない場合には、処理はステップ1012に移動する。ステップ1012で、デフォルトの追跡法が実行されるかどうかが判断される。例えば、ユーザおよび/または製造業者が事前にプログラムして、特定のデフォルト追跡法を複合追跡装置に実装することができる。デフォルトの追跡法が実行される場合は、処理はステップ1014に移り、そのステップでデフォルトの追跡法が実行される。デフォルトが存在しない場合は、処理はステップ1022に移動する。
ステップ1022で、最も有効な追跡方法が決定される。この最も有効な追跡方法の決定は、任意の数のパラメータに基づいて実施できる。例えば、絶対追跡法はより正確であるが、処理により多くの電力を必要とし、かつ/またはデータの処理により長い時間がかかる可能性がある。一方、相対追跡法は、実装がより安価で少ない電力で済むが、あまり正確な結果が提供されない可能性がある。最も有効な方法の決定は、事前の設定に基づいてシステムによって、かつ/またはどのような効率、例えば処理時間、節電、精度などを設定するかのユーザ入力によって行うことができる。ステップ1024では、ステップ1022で決定された最も有効な方法が実行される。
通った経路のいずれについても、処理はステップ1030に移り、そのステップで、センサがデータを取り込めるかどうかが判断される。例えば、ステップ1030は、絶対追跡法を使用して、下にあるコード化されたパターンをセンサが取り込むことができるかどうかを判断することを含む。ステップ1030はさらに、画像データを取り込むのに十分な長さでセンサが組み込まれているかを判断することを含むこともできる。センサがデータを取り込めない場合は、処理はステップ1032に移り、そのステップで、タイムアウト時間に達したかどうかについての別の判断がなされる。例えば、装置は、他の動作を実施する前に、所定の時間を取ってデータの取込みを試みることができる。タイムアウト時間に達した場合は、処理は終了する。タイムアウト時間に達していない場合は、処理はステップ1030に戻る。ステップ1030で、センサがデータを取り込むことができる場合は、処理はステップ1034に移り、このステップでデータが取り込まれる。
ステップ1036で、実行された追跡方法が、取り込んだ画像データを使用できるかどうかが判断される。実行された追跡方法が、取り込んだ画像データを使用できる場合は、ステップ1038で装置の位置が決定される。決定ステップ1038は、複合追跡装置、ホストコンピュータ、および/または何か他の装置によって、ステップ1004、1014、または1024で実行された方法によって実施することができる。この例では、複合追跡装置がステップ1038で決定する。次に、プロセスステップ1046に進む。ステップ1036で、実行された追跡方法が取り込まれた画像データを使用できない場合は、処理はステップ1040に進む。
ステップ1040で、代替追跡方法が実行される。例えば、ユーザが、ステップ1002で絶対追跡法を実行することを選択した場合は、ステップ1040で、システムは相対追跡法を実行する。このような状況は、下にあるコード化されたパターンが遮られ、絶対追跡システムによって正確に識別できないときに生じる。ステップ1042で、複合追跡装置の位置が決定される。決定は、ステップ1040で実行された代替追跡方法に基づいて行われる。処理はステップ1044に進み、このステップで、システムはステップ1030で実行された以前の追跡方法に戻る。処理はステップ1046に続く。
決定された位置データは、ステップ1046でホストコンピュータに送信され、次いで、ステップ1048で、ホストコンピュータ上で動作する、またはホストコンピュータの外部で動作するアプリケーションで使用される。処理はステップ1050に移り、そのステップで、さらに取り込むデータがあるかどうか、例えば装置が移動したかどうかが判断される。さらに取り込むデータがある場合は、処理はステップ1030に戻る。取り込むデータがない場合は、処理は終了する。当業者ならば、位置データを格納しておき、後からホストコンピュータに送信できること、および図10に示された例示の処理が一例に過ぎないことを理解されたい。
図11Aは、本発明の少なくとも一態様による、装置の動きを追跡する他の例示的方法を示す流れ図である。処理が開始され、ステップ1102で、装置の動きが検出される。動きが検出されたとき、相対追跡システムはステップ1110でデータを取り込み、また絶対追跡システムはステップ1120でデータを取り込む。次に、ステップ1130で、相対位置データおよび絶対位置データを使用して装置の位置を決定する。このような実装を使用して、正確な位置情報を生成することができる。次に、ステップ1140で、位置データはホストコンピュータに送信される。ステップ1150で、ホストコンピュータは、ホストコンピュータ上で、またはホストコンピュータの外部で動作するアプリケーションプログラムにそのデータを使用する。処理はステップ1160に移り、そのステップで、さらにデータを取り込む必要があるかどうかが判断される。さらにデータを取り込む必要がある場合、処理はステップ1102に戻る。取り込む必要がない場合は、処理は終了する。当業者ならば、位置データをホストコンピュータに送信する前に、位置データを装置上のメモリに格納することができること、および図11Aに示された例が一例に過ぎないことを理解されたい。
図11Bは、本発明の少なくとも一態様による、装置の動きを追跡する代替の一例示的方法を示す流れ図である。この例示的処理は、電子ペン型コンピュータ入力装置に実装することができる。処理が開始され、ステップ1102で、装置の動きが検出される。動きが検出されたとき、相対追跡システムはステップ1110でデータを取り込み、また絶対追跡システムはステップ1120でデータを取り込む。次に、ステップ1130で、相対位置データおよび絶対位置データを使用して、装置の位置を決定する。このような実装を使用して、正確な位置情報を生成することができる。処理はステップ1160に移り、そのステップで、さらにデータを取り込む必要があるかどうかが判断される。さらにデータを取り込む必要がある場合には、処理はステップ1102に戻る。取り込む必要がない場合は、処理はステップ1140進む。次に、ステップ1140で、位置データはホストコンピュータに送信される。ステップ1150で、ホストコンピュータは、ホストコンピュータ上で、またはホストコンピュータの外部で動作するアプリケーションプログラムのためにそのデータを使用する。この例において、ステップ1130で決定された位置データは、ステップ1140でそのデータがホストコンピュータに送信されるまで、電子ペン型コンピュータ入力装置のメモリに格納しておくことができる。当業者ならば、位置データは、ホストコンピュータに送信する前に、装置内のメモリに格納しておくことができることを理解されたい。
図12は、本発明の少なくとも一態様による、装置の動きを追跡する他の例示的方法を示す流れ図である。処理が開始され、ステップ1202で、この装置と共に使用される下にある表面がコード化された表面かどうかが判断される。表面がコード化されている場合は、ステップ1210で、システムは絶対追跡法が実行される。コード化されていない場合は、ステップ1220で、システムは相対追跡法を実行する。どちらの状況でも、処理はステップ1232に移動する。ステップ1232で、センサはデータを取り込む。
ステップ1234で、より精度が必要かどうかが判断される。このような状況は、ユーザが、装置の動きのより正確な表現を望むときに生ずることがある。より精度が必要な場合は、ステップ1232で実行された方法に対する代替追跡方法が、ステップ1236で選択される。より精度が必要でない場合は、処理は直接ステップ1240に移る。ステップ1240で装置の位置が決定され、決定された位置データがステップ1242でホストコンピュータに送信される。他の実施形態では、位置データをホストコンピュータに送信する前に、そのデータを装置のメモリに格納することができる。ステップ1244で、位置データは、ホストコンピュータ上で、またはホストコンピュータの外部で動作するアプリケーションプログラムで使用される。処理はステップ1250に続き、そのステップで、さらに取り込むべきデータが存在するかどうかが判断される。さらにデータを取り込む場合には、処理はステップ1210または1220に戻る。取り込むべきデータが存在しない場合は、処理は終了する。
図13は、本発明の少なくとも一態様による、装置の動きを追跡する他の例示的方法を示す流れ図である。処理が開始され、ステップ1302で、画像データを取り込む時間に達したかどうかが判断される。この時間は、所定の時間および/または装置の移動距離であってもよい。時間に達していない場合は、処理はステップ1302に戻る。時間に達している場合は、処理はステップ1304に移る。ステップ1304で、画像データが取り込まれる。
ステップ1306で、絶対追跡法が起動されているかどうかが判断される。このような状況は、装置の動きが所定の距離に達したこと、および/または所定の時間が経過したことによって生ずる。ステップ1306で、絶対追跡法が起動されている場合は、処理はステップ1308に移り、そのステップで絶対追跡法が実行される。ステップ1306で、絶対追跡法が起動されていない場合は、処理はステップ1310に進む。
ステップ1310で、取り込まれた画像データ上で、相対追跡法が実行される。ステップ1312で、装置の位置の相対変化により絶対追跡法の起動が設定されたかどうかが判断される。位置の相対変化により起動が設定されている場合は、処理はステップ1316に進み、そのステップで絶対追跡法の起動が設定される。次に、処理はステップ1308に戻る。装置の位置の相対変化により起動が設定されていない場合は、処理はステップ1314に進む。ステップ1314で、この前の絶対追跡位置が決定されてから所定の時間遅延および/または距離が経過したかどうかが判断される。時間遅延が経過している場合、処理はステップ1316に進み、そのステップで絶対追跡法の起動が設定される。経過していない場合は、処理は終了する。
一実施形態では、絶対位置を有効に解読するために不十分な見え方の透かしパターン部分が存在するときだけ、相対追跡サブシステムが実行される。次に、相対追跡サブシステムは、絶対サブシステムからのデータが不適切かつ/または欠落していると制御システムが判断したときに実行される。他の実施形態では、相対追跡サブシステムは、取り込んだデータの処理に必要な時間が、絶対サブシステムより短くて済む場合がある。このような状況下では、大部分のデータ収集に相対追跡サブシステムを使用することができ、絶対追跡サブシステムは、エラー訂正用の周期的なウェイポイントを提供する。他の実施形態では、絶対追跡サブシステムと基になる透かしパターンによって粗い経路情報を提供し、相対追跡サブシステムによって追加の経路情報を補間してより正確な位置を提供する。
各サブシステムからのデータは、他方での処理を容易にするのに役立つ情報を提供する。例えば、多自由度のシステムでは、絶対追跡サブシステムによって計算された方向データを使用して、相対追跡サブシステムでの処理負荷を軽減することができる。同様に、相対追跡サブシステムからの予想位置データを用いると、絶対位置の解読におけるより良い初期条件推定値、およびより限定された処理要件を考慮することができる。
本明細書で説明したように、本発明の様々な態様を実施するための例示のシステムおよび方法を示したが、当業者ならば、本発明がこれらの実施形態に限定されるものではないことを理解されよう。当業者ならば、特に前述の教示に照らして様々な修正形態が実施できるはずである。例えば、前述の実施形態の各要素は、単独で、または他の実施形態の各要素と組み合わせて、もしくは部分的に組み合わせて使用することができる。本発明の真の趣旨および範囲を逸脱することなく、様々な修正形態を実施し得ることも認識し理解されたい。したがって、記載内容は、本発明を例示するものであり限定するものではないと見なされたい。
本発明のいくつかの態様を実装することができる汎用デジタルコンピュータ環境を示す概略図である。 本発明の1つまたは複数の態様をサポートする汎用コンピュータ環境を示す図である。 本発明の1つまたは複数の態様をサポートする汎用コンピュータ環境を示す図である。 本発明の1つまたは複数の態様をサポートする汎用コンピュータ環境を示す図である。 本発明の1つまたは複数の態様をサポートする汎用コンピュータ環境を示す図である。 本発明の1つまたは複数の態様をサポートする汎用コンピュータ環境を示す図である。 本発明の1つまたは複数の態様をサポートする汎用コンピュータ環境を示す図である。 本発明の1つまたは複数の態様をサポートする汎用コンピュータ環境を示す図である。 本発明の1つまたは複数の態様をサポートする汎用コンピュータ環境を示す図である。 本発明の1つまたは複数の態様をサポートする汎用コンピュータ環境を示す図である。 本発明の1つまたは複数の態様をサポートする汎用コンピュータ環境を示す図である。 本発明の1つまたは複数の態様をサポートする汎用コンピュータ環境を示す図である。 本発明の1つまたは複数の態様をサポートする汎用コンピュータ環境を示す図である。 本発明の少なくとも一態様による、相対追跡システムおよび絶対追跡システムの両方を備えたコンピュータ入力装置の概略側面図である。 本発明の少なくとも一態様による、相対追跡システムおよび絶対追跡システムの両方を備えたコンピュータ入力装置の概略側面図である。 本発明の少なくとも一態様による、複合追跡装置の位置を追跡するための複合追跡装置の一例示的実施形態を示す機能ブロック図である。 本発明の少なくとも一態様による、ある装置の位置を追跡するための複合追跡装置の一例示的実施形態を示す機能ブロック図である。 本発明の少なくとも一態様による、複合追跡装置の位置を追跡するための複合追跡装置の一例示的実施形態を示す機能ブロック図である。 本発明の少なくとも一態様による、接触ポイントの位置を追跡する例示的一実施形態を示す概略図である。 本発明の少なくとも一態様による、接触ポイントの位置を追跡する例示的一実施形態を示す概略図である。 本発明の少なくとも一態様による、接触ポイントの位置を追跡する例示的一実施形態を示す他の概略図である。 文書の位置をコード化するための一例示的技術(迷路パターン)を示す図である。 本発明の少なくとも一態様による、コード化された表面上の接触ポイントを追跡するコンピュータ入力装置の例示的一実施形態を示す概略図である。 本発明の少なくとも一態様による、コンピュータアプリケーションと共に使用されるコンピュータ装置追跡システムの例示的一実施形態を示す概略図である。 本発明の少なくとも一態様による、遮られたコード化された表面の例示的一実施形態を示す概略図である。 本発明の少なくとも一態様による、装置の動きを追跡するための一例示的方法を示す流れ図である。 本発明の少なくとも一態様による、装置の動きを追跡するための一例示的方法を示す流れ図である。 本発明の少なくとも一態様による、装置の動きを追跡するための一例示的方法を示す流れ図である。 本発明の少なくとも一態様による、装置の動きを追跡するための他の例示的方法を示す流れ図である。 本発明の少なくとも一態様による、装置の動きを追跡するための一例示的方法を示す流れ図である。
符号の説明
120 処理ユニット
121 システムバス
130 システムメモリ
131 (ROM)
132 (RAM)
133 BIOS
134 オペレーティングシステム
135 アプリケーションプログラム
136 他のプログラムモジュール
137 プログラムデータ
140 非リムーバブル不揮発メモリインタフェース
144 オペレーティングシステム
145 アプリケーションプログラム
146 他のオペレーティングシステム
147 プログラムデータ
150 リムーバブル不揮発メモリインタフェース
160 ユーザ入力インタフェース
161 マウス
162 キーボード
163 デジタルカメラ
170 ネットワークインタフェース
171 ローカルエリアネットワーク(LAN)
172 モデム
173 広域ネットワーク(WAN)
180 リモートコンピュータ
181 メモリ
185 アプリケーションプログラム
190 ビデオインタフェース
191 モニタ
195 出力ペリフェラルインタフェース
196 プリンタ
197 スピーカ
210 制御システム
220 相対追跡サブシステム
230 絶対追跡サブシステム
240、240a センサ
300 複合追跡装置
324 相対追跡エンジン
334 絶対追跡エンジン
360 装置
370 絶対追跡エンジン
380 複合追跡装置
390 ホスト

Claims (39)

  1. 装置の動きを追跡する方法であって、
    表面に対する装置の位置を追跡する第1の追跡サブシステムを実行するステップと、
    前記表面に対する前記装置の位置を追跡する第2の追跡サブシステムを実行するかどうかを判断するステップと、
    前記表面上の位置に対応するデータを取り込むステップと、
    前記表面に対する前記装置の位置を前記取り込んだデータに基づいて決定するステップと
    を含むことを特徴とする方法。
  2. 前記装置の前記位置をコンピュータに送信するステップをさらに含むことを特徴とする請求項1に記載の方法。
  3. 前記装置の前記位置を前記コンピュータ上で動作するアプリケーションの入力として適用するステップをさらに含むことを特徴とする請求項2に記載の方法。
  4. 前記アプリケーションは、カーソル位置を決定することを特徴とする請求項3に記載の方法。
  5. 前記適用ステップに応答して、前記カーソル位置を表示器上に表示するステップをさらに含むことを特徴とする請求項4に記載の方法。
  6. 前記装置の前記位置が変化したかどうかを判断するステップをさらに含むことを特徴とする請求項1に記載の方法。
  7. 前記第1の追跡サブシステムは相対追跡サブシステムであり、前記第2の追跡サブシステムは絶対追跡サブシステムであることを特徴とする請求項1に記載の方法。
  8. 前記表面に対する前記装置の前記位置を決定する前記ステップは、前記実行された第1の追跡サブシステムに基づくことを特徴とする請求項1に記載の方法。
  9. 前記表面に対する前記装置の前記位置を決定する前記ステップは、前記実行された第2の追跡システムに基づくことを特徴とする請求項1に記載の方法。
  10. 前記表面に対する前記装置の前記位置を決定する前記ステップは、前記実行された第1および第2の追跡システムに基づくことを特徴とする請求項1に記載の方法。
  11. 前記第1の追跡サブシステムは、デフォルトの追跡サブシステムであることを特徴とする請求項1に記載の方法。
  12. 前記第2の追跡サブシステムを実行することを決定すると直ちに、前記方法は、前記第1の追跡サブシステムの実行を不能にするステップをさらに含み、前記表面に対する前記装置の前記位置を決定する前記ステップは、前記実行される第2の追跡サブシステムに基づくことを特徴とする請求項1に記載の方法。
  13. 前記取り込んだデータをコンピュータに送信するステップをさらに含み、前記表面に対する前記装置の前記位置を決定する前記ステップは、前記コンピュータによって実施されることを特徴とする請求項1に記載の方法。
  14. 前記第1の追跡サブシステムの有効性を前記第2の追跡サブシステムと比較するステップをさらに含むことを特徴とする請求項1に記載の方法。
  15. 前記第1の追跡サブシステムの有効性を前記第2の追跡サブシステムと比較する前記ステップは、設定に基づくことを特徴とする請求項14に記載の方法。
  16. 前記第2の追跡サブシステムを実行するかどうかを判断する前記ステップは、前記第1の追跡サブシステムが前記装置の前記位置の追跡に失敗したかどうかを判断するステップを含むことを特徴とする請求項1に記載の方法。
  17. 前記表面上の前記位置に対応する前記データが欠落しているかまたは遮られているときに、前記第1の追跡サブシステムは前記装置の前記位置の追跡に失敗することを特徴とする請求項16に記載の方法。
  18. データを取り込む前記ステップは、
    前記装置から光を出力するステップと、
    前記表面上にコード化されたデータの一部を取り込むステップと、
    前記コード化されたデータを解読するステップと
    を含むことを特徴とする請求項1に記載の方法。
  19. 前記コード化されたデータは、位置データおよび追加のデータを含むことを特徴とする請求項18に記載の方法。
  20. 前記表面は透かし表面であることを特徴とする請求項18に記載の方法。
  21. 前記取り込んだデータをメモリに格納するステップをさらに含むことを特徴とする請求項1に記載の方法。
  22. 前記メモリは、前記装置内にあることを特徴とする請求項21に記載の方法。
  23. 前記装置は電子ペン型の装置であることを特徴とする請求項21に記載の方法。
  24. 前記第2の追跡サブシステムを実行するかどうかを決定する前記ステップは、前記第1の追跡サブシステムによって取り込まれたデータに応答して前記第2の追跡サブシステムの実行を起動するステップを含むことを特徴とする請求項1に記載の方法。
  25. 請求項1の前記諸ステップを実施するためのコンピュータ実行可能な命令を含むことを特徴とするコンピュータ可読の媒体。
  26. 相対追跡サブシステムと、
    絶対追跡サブシステムと、
    前記相対追跡サブシステムおよび前記絶対追跡サブシステムの間で信号の送受信を行うように構成された制御システムと
    を含むことを特徴とする装置。
  27. センサをさらに含み、前記相対追跡サブシステムは相対追跡エンジンを含み、前記センサは相対位置データを決定するために前記相対追跡エンジンにデータを提供することを特徴とする請求項26に記載の装置。
  28. センサをさらに含み、前記絶対追跡サブシステムは絶対追跡エンジンを含み、前記センサは絶対位置データを決定するために前記絶対追跡エンジンにデータを提供することを特徴とする請求項26に記載の装置。
  29. 少なくとも2つのセンサをさらに含み、第1のセンサは前記相対追跡サブシステムにデータを提供し、第2のセンサは前記絶対追跡サブシステムにデータを提供することを特徴とする請求項26に記載の装置。
  30. 前記相対追跡サブシステムおよび前記絶対追跡サブシステムから受信した前記各信号は、位置データを含むことを特徴とする請求項26に記載の装置。
  31. 前記制御システムは、位置データをホストコンピュータに送信するようにさらに構成されることを特徴とする請求項26に記載の装置。
  32. 前記位置データを格納するように構成されたメモリをさらに含むことを特徴とする請求項31に記載の装置。
  33. 前記相対追跡サブシステム、前記絶対追跡サブシステム、および前記制御システムは、少なくとも一部がファームウェアによって実行されることを特徴とする請求項26に記載の装置。
  34. 装置の動きを追跡するシステムであって、
    装置の位置に対応するデータを取り込むように構成されたセンサ、および前記取り込まれたデータを受信し前記装置の決定された位置データを出力するように構成された第1の追跡サブシステムを含む装置と、
    位置を表すデータを出力するように構成された第2の追跡サブシステムを含むホストコンピュータと
    を含み、
    前記ホストコンピュータは、前記装置と通信すると共に、前記決定された位置データを受信し、前記装置の位置を表すデータを計算し、かつ前記位置を表すデータを入力としてアプリケーションに適用するように構成されることを特徴とするシステム。
  35. 前記ホストコンピュータは、前記受信した決定された位置データに基づいて前記代表位置データを計算するように構成されることを特徴とする請求項34に記載のシステム。
  36. 前記第1の追跡サブシステムは相対追跡サブシステムであり、前記第2の追跡サブシステムは絶対追跡サブシステムであることを特徴とする請求項34に記載のシステム。
  37. 前記装置は、ハンドヘルドの装置であることを特徴とする請求項34に記載のシステム。
  38. 前記装置は、電子ペン型の装置であることを特徴とする請求項34に記載のシステム。
  39. 装置の動きを表すデータを処理するためのソフトウェアアーキテクチャであって、
    相対位置データを受信し、前記相対位置データに基づいて絶対位置データを計算するように構成された少なくとも1つのコンポーネントと、
    前記コンポーネントにアクセスするための少なくとも1つのアプリケーションプログラムインタフェースと
    を含むことを特徴とするアーキテクチャ。

JP2005207255A 2004-07-15 2005-07-15 複合追跡システムの方法および装置 Expired - Fee Related JP5133507B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/891,484 2004-07-15
US10/891,484 US7656395B2 (en) 2004-07-15 2004-07-15 Methods and apparatuses for compound tracking systems

Publications (2)

Publication Number Publication Date
JP2006031709A true JP2006031709A (ja) 2006-02-02
JP5133507B2 JP5133507B2 (ja) 2013-01-30

Family

ID=34982182

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005207255A Expired - Fee Related JP5133507B2 (ja) 2004-07-15 2005-07-15 複合追跡システムの方法および装置

Country Status (4)

Country Link
US (1) US7656395B2 (ja)
EP (1) EP1617319A3 (ja)
JP (1) JP5133507B2 (ja)
CN (1) CN1722071B (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010537590A (ja) * 2007-08-28 2010-12-02 マーベル ワールド トレード リミテッド ハンドヘルドデバイスの位置および速度の決定
JP2011527053A (ja) * 2008-07-01 2011-10-20 ヒルクレスト・ラボラトリーズ・インコーポレイテッド 3dポインタマッピング
WO2022230753A1 (ja) * 2021-04-30 2022-11-03 株式会社ワコム 座標出力装置、ペン型デバイス、及び電子機器

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8103877B2 (en) * 2000-12-21 2012-01-24 Digimarc Corporation Content identification and electronic tickets, coupons and credits
US8103592B2 (en) * 2003-10-08 2012-01-24 Microsoft Corporation First computer process and second computer process proxy-executing code on behalf of first process
US7979911B2 (en) * 2003-10-08 2011-07-12 Microsoft Corporation First computer process and second computer process proxy-executing code from third computer process on behalf of first process
US8181884B2 (en) 2003-11-17 2012-05-22 Digimarc Corporation Machine-readable features for objects
JP4981455B2 (ja) 2004-02-04 2012-07-18 ディジマーク コーポレイション オンチップでの電子透かしの入ったイメージ信号及び電子透かしを通じた写真によるトラベルログ
US20060267967A1 (en) * 2005-05-24 2006-11-30 Microsoft Corporation Phrasing extensions and multiple modes in one spring-loaded control
US20060267966A1 (en) * 2005-05-24 2006-11-30 Microsoft Corporation Hover widgets: using the tracking state to extend capabilities of pen-operated devices
WO2007087351A2 (en) * 2006-01-24 2007-08-02 Carnegie Mellon University Method, apparatus, and system for computer-aided tracking, navigation, and motion teaching
US20080192006A1 (en) * 2007-02-08 2008-08-14 Silverbrook Research Pty Ltd System for enabling user input and cursor control
TW200919299A (en) * 2007-08-01 2009-05-01 Silverbrook Res Pty Ltd Handheld scanner for coded surfaces
US8442620B2 (en) * 2008-10-01 2013-05-14 Pacesetter, Inc. Implantable lead/electrode delivery measurement and feedback system
KR20100070733A (ko) * 2008-12-18 2010-06-28 삼성전자주식회사 아이템 표시방법 및 이를 적용한 디스플레이 장치
US8121618B2 (en) * 2009-10-28 2012-02-21 Digimarc Corporation Intuitive computing methods and systems
TWM385041U (en) * 2010-02-02 2010-07-21 Sunrex Technology Corp Directional input device
US8351651B2 (en) * 2010-04-26 2013-01-08 Microsoft Corporation Hand-location post-process refinement in a tracking system
US20130130798A1 (en) * 2010-07-12 2013-05-23 Amit NIR Video game controller
US9223471B2 (en) 2010-12-28 2015-12-29 Microsoft Technology Licensing, Llc Touch screen control
US8730518B2 (en) * 2011-08-18 2014-05-20 Raytheon Company Application of color imagery to a rewritable color surface
CN102981641A (zh) * 2011-09-02 2013-03-20 联想(北京)有限公司 输入设备、电子设备以及控制光标移动的方法
AT512592B1 (de) * 2012-03-12 2017-07-15 Isiqiri Interface Tech Gmbh Computeranlage und ein Steuerungsverfahren dafür
TWI482054B (zh) 2012-03-15 2015-04-21 Wen Chieh Geoffrey Lee 具有多數個彩色光源的高解析度與高敏感度移動偵測器
CN102710978B (zh) * 2012-04-12 2016-06-29 深圳Tcl新技术有限公司 电视机的光标移动方法及装置
US9182840B2 (en) * 2012-07-31 2015-11-10 Blackberry Limited Apparatus and method pertaining to a stylus having a plurality of non-passive location modalities
US20140098074A1 (en) * 2012-10-09 2014-04-10 Research In Motion Limited Apparatus and method pertaining to the use of multiple location modalities with a stylus
US10254855B2 (en) 2013-06-04 2019-04-09 Wen-Chieh Geoffrey Lee High resolution and high sensitivity three-dimensional (3D) cursor maneuvering device
CN104035719A (zh) * 2014-06-26 2014-09-10 苏宁云商集团股份有限公司 大屏幕触摸操作方法、装置及大屏幕触摸终端
US9489045B2 (en) * 2015-03-26 2016-11-08 Honeywell International Inc. Methods and apparatus for providing a snapshot truthing system for a tracker
US11307730B2 (en) 2018-10-19 2022-04-19 Wen-Chieh Geoffrey Lee Pervasive 3D graphical user interface configured for machine learning
US11216150B2 (en) 2019-06-28 2022-01-04 Wen-Chieh Geoffrey Lee Pervasive 3D graphical user interface with vector field functionality
EP4040271A1 (en) * 2021-02-08 2022-08-10 Infineon Technologies AG A pointing device for detecting motion relative to a surface and a method for detecting motion of a pointing device relative to a surface
EP4155883A1 (en) * 2021-09-24 2023-03-29 Freshape SA A writable-erasable medium and a hand holdable writing device
EP4273673A1 (en) * 2022-05-05 2023-11-08 Freshape SA A full-color, writable-erasable display system

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0410025A (ja) * 1990-04-27 1992-01-14 Toshiba Corp 座標入力装置
JPH07141104A (ja) * 1993-11-19 1995-06-02 Sharp Corp 座標入力装置、座標特定情報の表示装置および方法ならびに座標特定情報表示板
JPH10333817A (ja) * 1997-03-31 1998-12-18 Wacom Co Ltd 電子ペンを用いたコンピュータシステム
JP2001296961A (ja) * 2000-04-14 2001-10-26 Ricoh Co Ltd 入力装置
JP2002139340A (ja) * 2000-10-30 2002-05-17 Atr Media Integration & Communications Res Lab 歩行航行装置およびそれを用いたナビゲーションシステム
JP2003508843A (ja) * 1999-08-30 2003-03-04 アノト・アクティエボラーク ノートパッド

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4794384A (en) 1984-09-27 1988-12-27 Xerox Corporation Optical translator device
EP0578692B1 (en) 1991-04-03 1995-06-14 Hewlett-Packard Company Position-sensing apparatus
WO1994008316A1 (en) 1992-09-30 1994-04-14 Hewlett Packard Company Initial track recovery in position-sensing systems that use windowing patterns
US5652412A (en) * 1994-07-11 1997-07-29 Sia Technology Corp. Pen and paper information recording system
US5805144A (en) * 1994-12-14 1998-09-08 Dell Usa, L.P. Mouse pointing device having integrated touchpad
US5578813A (en) 1995-03-02 1996-11-26 Allen; Ross R. Freehand image scanning device which compensates for non-linear movement
DE19853505A1 (de) 1998-11-19 2000-05-25 Daniel Gens Vorrichtung zum Aufnehmen und Speichern von analogen Daten
US6992655B2 (en) * 2000-02-18 2006-01-31 Anoto Ab Input unit arrangement
EP1413974A1 (en) * 2002-10-24 2004-04-28 Hewlett-Packard Company Hybrid sensing techniques for position determination
US7009594B2 (en) * 2002-10-31 2006-03-07 Microsoft Corporation Universal computing device
US7154477B1 (en) * 2003-09-03 2006-12-26 Apple Computer, Inc. Hybrid low power computer mouse

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0410025A (ja) * 1990-04-27 1992-01-14 Toshiba Corp 座標入力装置
JPH07141104A (ja) * 1993-11-19 1995-06-02 Sharp Corp 座標入力装置、座標特定情報の表示装置および方法ならびに座標特定情報表示板
JPH10333817A (ja) * 1997-03-31 1998-12-18 Wacom Co Ltd 電子ペンを用いたコンピュータシステム
JP2003508843A (ja) * 1999-08-30 2003-03-04 アノト・アクティエボラーク ノートパッド
JP2001296961A (ja) * 2000-04-14 2001-10-26 Ricoh Co Ltd 入力装置
JP2002139340A (ja) * 2000-10-30 2002-05-17 Atr Media Integration & Communications Res Lab 歩行航行装置およびそれを用いたナビゲーションシステム

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010537590A (ja) * 2007-08-28 2010-12-02 マーベル ワールド トレード リミテッド ハンドヘルドデバイスの位置および速度の決定
JP2011527053A (ja) * 2008-07-01 2011-10-20 ヒルクレスト・ラボラトリーズ・インコーポレイテッド 3dポインタマッピング
US10620726B2 (en) 2008-07-01 2020-04-14 Idhl Holdings, Inc. 3D pointer mapping
WO2022230753A1 (ja) * 2021-04-30 2022-11-03 株式会社ワコム 座標出力装置、ペン型デバイス、及び電子機器

Also Published As

Publication number Publication date
CN1722071B (zh) 2011-12-07
US20060012562A1 (en) 2006-01-19
CN1722071A (zh) 2006-01-18
EP1617319A3 (en) 2007-04-04
US7656395B2 (en) 2010-02-02
EP1617319A2 (en) 2006-01-18
JP5133507B2 (ja) 2013-01-30

Similar Documents

Publication Publication Date Title
JP5133507B2 (ja) 複合追跡システムの方法および装置
US7483018B2 (en) Systems and methods for providing a combined pen and mouse input device in a computing system
JP3983774B2 (ja) 光学デバイスおよび準備された表面に関するコーディングされたパターン
TW464800B (en) A method for inputting data to an electronic device, an article comprising a medium for storing instructions, and an image processing system
KR101026580B1 (ko) 문서의 이미지를 인코딩하기 위한 시스템 및 데이터 스트림을 패턴으로서 인코딩하기 위한 방법
US6690357B1 (en) Input device using scanning sensors
CA2491843C (en) Global localization by fast image matching
US7532366B1 (en) Embedded interaction code printing with Microsoft Office documents
US20060267957A1 (en) Touch Input Data Handling
CA2491770A1 (en) Local localization using fast image match
CA2491579C (en) Enhanced approach of m-array decoding and error correction
JP2003523572A (ja) 入力ユニットの構成
JP2012185824A (ja) ログイン時の自動的動作実行
US7826074B1 (en) Fast embedded interaction code printing with custom postscript commands
JP4500036B2 (ja) 画像投影表示装置、画像投影表示方法および画像投影表示プログラム
US20080180412A1 (en) Dual mode digitizer
US20050088427A1 (en) Transferring pen information between unmanaged and managed code
Champaneria PADCAM: a portable, human-centric system for handwriting capture

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080714

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20101020

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101026

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110126

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110809

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111101

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120330

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120727

RD13 Notification of appointment of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7433

Effective date: 20120730

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20120730

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20120817

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20121030

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121108

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20151116

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees