CN1722071B - 用于复合跟踪系统的方法和装置 - Google Patents

用于复合跟踪系统的方法和装置 Download PDF

Info

Publication number
CN1722071B
CN1722071B CN2005100795546A CN200510079554A CN1722071B CN 1722071 B CN1722071 B CN 1722071B CN 2005100795546 A CN2005100795546 A CN 2005100795546A CN 200510079554 A CN200510079554 A CN 200510079554A CN 1722071 B CN1722071 B CN 1722071B
Authority
CN
China
Prior art keywords
data
tracing subsystem
absolute
subsystem
tracing
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.)
Expired - Fee Related
Application number
CN2005100795546A
Other languages
English (en)
Other versions
CN1722071A (zh
Inventor
G·拉森
J·波普
R·巴德亚
R·T·克兰
T·奥利弗
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 Technology Licensing LLC
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 CN1722071A publication Critical patent/CN1722071A/zh
Application granted granted Critical
Publication of CN1722071B publication Critical patent/CN1722071B/zh
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

描述了用于跟踪装置运动的一种方法、装置和系统。该方法包括这些步骤:实现用于跟踪装置在平面上位置的第一跟踪子系统,确定是否要实现用于跟踪装置在平面上位置的第二跟踪子系统,捕捉对应于平面上位置的数据,并基于已捕捉数据确定装置在平面上的位置。然后该装置位置被传送到主计算机并在应用程序中使用。该第一和第二跟踪子系统可分别是相对和绝对跟踪子系统。

Description

用于复合跟踪系统的方法和装置
技术领域
本发明诸方面一般涉及用于检测诸如计算机输入装置的装置的运动的跟踪系统,尤其涉及通过绝对和相对跟踪方法来跟踪装置运动的复合跟踪装置。
背景技术
用户与计算机的交互每天都在持续增长。更多的工作需要人们与计算机交互,而更多的人选择在工作和娱乐上都与计算机交互。各种与计算机交互的跟踪装置包括电子鼠标、键盘、操纵杆、以及触摸板。包括个人数字助理(PDA)、蜂窝电话、以及电子笔的其它跟踪装置使用户能与不同计算机和计算机系统交互。
随着用户交互的增加,更精确交互的需要也增加了。例如,用户可在运行用于处理图像的应用程序的主计算机上处理用数码相机捕捉的图像。她可能想要在图像的某些部分上改变色彩或对比度,以使草的绿色和天空的蓝色更亮丽。这样做时,用户可通过使用各种用于与主计算机交互的跟踪装置之一来标识要处理的图像部分。用户可能有带有可驱动按键的鼠标,使用户能按压按键以圈选她想要处理的部分。在这种情形中,用户可能想要有对要进行处理部分的非常精确的标识。
跟踪装置属于两类系统之一:相对跟踪系统和绝对跟踪系统。相对跟踪系统无论是否知道绝对位置都有能力分辨从一位置到另一位置的相对运动。相对光学跟踪方法包括图像相关性、基于微分图案梯度的、基于激光斑点的、以及基于多普勒的等等。相对跟踪系统的一个特征是一个或多个传感器检测随时间改变的信号,并可用各种方法处理以确定相对位置的变化。绝对跟踪系统无论先前的确定怎样都具有分辨装置位置的能力。诸如鼠标和跟踪球的计算机输入装置实现相对跟踪系统,而电子笔通常实现绝对跟踪系统。跟踪装置通常不包括相对和绝对跟踪系统。从技术角度而言组合这两种的成本、尺寸和难度使制造商在构建装置时分别选择两种方法之一。这样,当用户操作输入装置用于与一计算机交互时,她可能不能与另一计算机进行适当交互或更精确地与一计算机交互。用户必须具有两种不同的装置用于执行不同的跟踪方法。
发明内容
因此,需要一种计算机输入装置跟踪系统,它可基于相对跟踪系统和绝对跟踪系统来跟踪装置的运动,并将被跟踪运动的位置作为输入发送给计算机应用程序。本发明一方面提供了一种用于跟踪装置运动的方法,该方法包括这些步骤:实现用于跟踪装置在平面上位置的第一跟踪子系统,确定是否要实现用于跟踪装置在平面上位置的第二跟踪子系统,捕捉对应于平面上位置的数据,并基于已捕捉数据确定装置在平面上的位置。然后该装置位置被传送到主计算机并在应用程序中使用。
另一方面提供用于跟踪装置运动的系统,该系统包括一装置和一主计算机。该装置包括被配置成跟踪装置位置的传感器,以及被配置成接收已捕捉数据并输出由该装置确定的位置数据的第一跟踪子系统。主计算机包括第二跟踪子系统,该第二跟踪子系统被配置成输出代表性位置数据,其中主计算机与装置进行通信且被配置成接收已确定的位置数据,计算装置的代表性位置数据,并将该代表性位置数据应用为应用程序的输入。
根据本发明的至少一方面,描述了一种被配置成基于绝对跟踪子系统和相对跟踪子系统跟踪位置的装置。复合跟踪装置和/或系统包括两种跟踪方法。
附图说明
参阅附图,可更好地理解本发明的前述发明内容以及以下说明性实施例的详细描述,其中这些实施例作为示例而不作为有关本发明的限制被包括在内。
图1A示出可实现本发明某些方面的通用数字计算环境的视图;
图1B到1M示出支持本发明一个或多个方面的通用计算机环境;
图2A和2B是根据本发明至少一方面带有相对跟踪系统和绝对跟踪系统的计算机输入装置的示意侧视图;
图3A是根据本发明至少一方面用于跟踪复合跟踪装置的位置的复合跟踪装置的说明性实施例的功能框图;
图3B是根据本发明至少一方面用于跟踪装置位置的复合跟踪装置的说明性实施例的功能框图;
图3C是根据本发明至少一方面用于跟踪复合跟踪装置的位置的复合跟踪装置的说明性实施例的功能框图;
图4A和4B是根据本发明至少一方面跟踪接触点位置的说明性实施例的示意图;
图5是根据本发明至少一方面跟踪接触点位置的说明性实施例的另一示意图;
图6示出了用于编码文档位置的一种示例技术(迷宫图案);
图7是根据本发明至少一方面跟踪经编码表面上接触点的计算机输入装置的说明性实施例的示意图;
图8是根据本发明至少一方面用于计算机应用程序的计算机装置跟踪系统的说明性实施例的示意图;
图9是根据本发明至少一方面被遮盖编码表面的说明性实施例的示意图;
图10是根据本发明至少一方面用于跟踪装置运动的说明性方法的流程图;
图11A和11B是根据本发明至少一方面用于跟踪装置运动的说明性方法的流程图;
图12是根据本发明至少一方面用于跟踪装置运动的另一说明性方法的流程图;以及
图13是根据本发明至少一方面用于跟踪装置运动的说明性方法的流程图。
具体实施方式
在本发明以下说明书中要参照附图,这些附图形成本说明书的一部分,且其中作为说明示出了本发明可实践的特定示例。要理解可利用其它实施例,且可作结构和功能的修改而不背离本发明的范围。
图1示出了可在其中实现本发明的适当计算系统环境100。该计算系统环境100仅是适当计算环境的一个示例,并非旨在提出对本发明使用或功能性范围作任何限制。计算环境100也不应被解释为对示例性操作环境100中所示的任一组件或其组合有任何依赖性或任何需求。
本发明也可在很多其它通用或专用计算系统环境或配置中操作。适于本发明使用的众所周知的计算系统、环境、和/或配置的示例包括,但不限于,个人计算机、服务器计算机、手持式或膝上型装置、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电器、网络PC、小型计算机、大型机、包括任一种以上系统或装置的分布式计算环境等等。
本发明可在计算机可执行指令的一般环境中进行说明,诸如由计算机执行的程序模块。一般而言,程序模块包括执行具体任务或实现具体抽象数据类型的例程、程序、对象、组件、数据结构等等。本发明还可在任务由经通信网络连接的远程处理装置执行的分布式计算环境中实践。在分布式计算环境中,程序模块可置于包括存储器存储设备的本地和远程计算机存储介质中。
参照图1A,实现本发明的示例性系统包括以计算机110形式的通用计算装置。计算机110的组件可包括,但不限于,处理单元120、系统存储器130以及把包括系统存储器在内的各种系统组件耦合到处理单元120的系统总线121。系统总线121可能是若干总线结构类型中的任何一种,包括存储器总线或存储器控制器、外围总线、以及使用多种总线结构的任一种的本地总线。作为示例,而非限制,这些结构包括工业标准结构(ISA)总线、微信道结构(MCA)总线、增强型ISA(EISA)总线、视频电子标准协会(VESA)局部总线和也称为Mezzanine总线的外围部件互连(PCI)总线。
计算机110通常包括各种计算机可读介质。计算机可读介质可以是能被计算机110访问的任何可用介质,并包括易失性和非易失性介质、可移动和不可移动介质。作为示例,而非限制,计算机可读介质可包括计算机存储介质和通信介质。计算机存储介质包括以任何方法或技术实现、用于存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息的易失性和非易失性介质、可移动和不可移动介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其它存储器技术、CD-ROM、数字化多功能光盘(DVD)或其它光学存储技术、磁盒、磁带、磁盘存储器或其它磁性存储设备、或任何其它可用于存储所需信息并可由计算机110访问的介质。通信介质通常在诸如载波或其它传输机制的已调制数据信号中体现计算机可读指令、数据结构、程序模块、或其它数据,且包括任何信息传输介质。术语“已调制数据信号”意指在信号中用对信息编码方式设置或改变其一个或多个特征的信号。作为示例,而非限制,通信介质包括诸如有线网络或直接连线连接的有线介质,和诸如声学、射频(RF)、红外线和其它无线介质的无线介质。以上任何介质的组合也应包括在计算机可读介质的范围中。
系统存储器130包括诸如只读存储器(ROM)131和随机存取存储器(RAM)132的易失性和/或非易失性存储器形式的计算机可读介质。包含有助于计算机110如起动时在元件间传送信息的基本例程的基本输入/输出系统(BIOS)133通常存储在ROM 131中。RAM 132通常包含可被处理单元120立即访问和/或当时正被操作的数据和/或程序模块。作为示例,而非限制,图1A示出了操作系统134、应用程序135、其它程序模块136、和程序数据137。
计算机110还可包括其它可移动/不可移动、易失性/非易失性计算机存储介质。仅作为示例,图1A图示了读取和写入不可移动、非易失性磁性介质的硬盘驱动器141,读取和写入可移动、非易失性磁盘152的磁盘驱动器151,读取和写入可移动、非易失性光盘156,诸如CD-ROM或其它光学介质的光盘驱动器155。其它也用在示例性计算环境中的可移动/不可移动、易失性/非易失性计算机存储介质包括,但不限于,如磁带、闪存卡、数字化视频光盘、数字化录像带、固态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输入命令和信息。其它输入装置(未示出)可包括笔、电子笔和书写板、话筒、操纵杆、游戏垫、卫星接收器、扫描仪等等。这些和其它输入设备常常通过与系统总线耦合的用户输入接口160与处理单元120相连,但也可通过例如并行端口、游戏端口或通用串行总线(USB)的其它接口连接。监视器191或其它类型的显示设备也可通过诸如视频接口190的接口与系统总线121相连。除显示器以外,计算机还可包括诸如扬声器197和打印机196的其它输出设备,它们通过输出外围接口195相连。
计算机110可以在使用与一台或多台远程计算机,诸如远程计算机180的逻辑连接的网络化环境中运行。远程计算机180可以是个人计算机、服务器、路由器、网络PC、对等装置或其它公共网络节点,而且通常包括上述与个人计算机110相关的许多或全部组件,尽管在图1A中仅图示了存储器存储设备181。图1A中所描绘的逻辑连接包括局域网(LAN)171和广域网(WAN)173,但也可包括其它网络。这样的网络化环境在办公室、企业范围计算机网络、内联网和因特网上是常见的。
当用于LAN网络化环境中时,计算机110通过网络接口或适配器170与LAN171连接。当用于WAN网络化环境中时,计算机110通常包括调制解调器172或其它用于在广域网173,诸如因特网中建立通信的装置。可以是内置式或外置式的调制解调器172与系统总线121通过用户输入接口160或其它适当机制连接。在网络化环境中,与计算机110相关的程序模块或其一部分可存储在远程存储器存储装置中。作为示例,而非限制,图1A示出了驻留于远程计算机180中的远程应用程序185。应当理解,所示网络连接是示例性的,且其它用于在计算机间建立通信连接的技术也可以使用。
可以理解,所示网络连接是示例性的,且可使用在计算机之间建立通信链接的其它装置。假定存在诸如TCP/IP、以太网、FTP、HTTP等的各种众所周知协议的任一种,且可用客户机-服务器配置来操作系统以允许用户从基于web的服务器中检索网页。可使用各种常规web浏览器的任一种来在网页上显示和处理数据。
编程接口(或更简称为接口)可被视为使一个或多个代码分段能与一个或多个其它代码分段通信,或能访问其所提供的功能性的任意机制、进程、和协议。或者,编程接口可被视为系统组件的能够与其它组件的一个或多个机制、方法、函数调用、模块等通信耦合的一个或多个机制、方法、函数调用、模块、对象等。前面句子中的术语“代码分段”旨在包括一个或多个指令或代码行,并包括例如代码模块、对象、子程序、函数等等,无论所应用的是何种术语,或者是否单独编译代码分段,或者代码分段是否被提供为源、中间体、或对象代码,或者是否在运行时系统或进程中利用代码分段,或者它们是否位于同一机器或不同机器或分布在多个机器上,或者代码分段所表示的功能是否整个地在软件中、硬件中、还是硬件和软件的合成中实现。
在概念上,编程接口一般可如图1B或1C所示。图1B示出接口1为第一代码分段和第二代码分段通信的通道。图1C示出包括接口对象I1和I2(可以是或不是第一和第二代码分段一部分)的一接口,使得系统的第一和第二代码分段能通过媒体M通信。在图1C的视图中,可将接口对象I1和I2视为同一系统的独立接口,也可视为对象I1和I2加上媒体M组成了接口。尽管图1B和1C示出了双向流和流每一侧上的接口,某些实现可仅具有单向的信息流(或如以下所述的无信息流),或者可仅在一侧具有接口对象。作为示例,而非限制,诸如应用程序编程接口(API)、进入点、方法、函数、子程序、远程过程调用、以及组件对象模型(COM)接口的术语,都被包括在编程接口的定义中。
这种编程接口的各个方面可包括:第一代码分段向第二代码分段传送信息(其中在最广泛意义上使用“信息”,并包括数据、命令、请求等)的方法;第二代码分段接收信息的方法;以及信息的结构、序列、语法、组织、模式、信息的定时、和内容。这样,不管媒体是有线、无线、或两者合成,只要信息以接口定义的方式传输,基层的传输媒体本身对接口的操作就不重要了。在某些情况中,信息不在常规意义上的一个方向或两个方向上传递,因为当一代码分段仅访问由第二代码分段执行的功能时,信息传递可通过另一机制(例如信息置于与代码分段之间与信息流分开的缓存器、文件等)进行或者不存在。任意或所有这些方面在给定情况中可能是重要的,例如,取决于代码分段是否是松散耦合或紧密耦合配置中系统的一部分,因此该列表应被视为是说明性且非限制的。
该编程接口的概念对本领域技术人员是众所周知的,且在本发明以上详细描述中显然。然而,可有实现编程接口的其它方法,并且除非被确切排除,它们也将被包括在本说明书结束处陈述的权利要求书中。这些其它方法会显得比图1B和1C的简化视图更深奥或更复杂,但即便如此它们仍执行完成相同总体结果的相似功能。我们将简要描述编程接口的部分说明性任选实施例。
A.分解
通过将通信分成多个离散通信可间接地完成从一个代码分段到另一代码分段的通信。这在图1D和1E中进行示意描述。如图所示,可根据可划分功能组来描述某些接口。因而,可分解图1B和1C的接口功能以获取同样的结果,正如数学上可提供24,或者为2x2x3x2。相应地,如图1D所示,可划分由接口1提供的功能以将该接口的通信转换成多个接口:接口1A、接口1B、接口1C等而获取同样的结果。如图1E所示,可再次将接口I1提供的功能划分成多个接口:I1a、I1b、I1c等而获取同样的结果。类似地,从第一代码分段接收信息的第二代码分段的接口I2也可被分解成多个接口:I2a、I2b、I2c等。在分解时,包括在第一代码分段中的接口数量不需要匹配包括在第二代码分段中的接口数量。在图1D和1E的任一情形中,接口1和I1的功能实质分别与图1B和1C的一样。接口的分解也可遵从结合、交换、以及其它数学属性使得分解难以识别。例如,操作的顺序在某些应用中并不重要,且因而由接口实现的功能可在到达接口之前由另一段代码或接口很好地实现,或者由系统的独立组件执行。此外,编程领域技术人员可理解,有各种各样获取同样结果而作不同函数调用的方法。
B.重新定义
在某些情形中,略去、添加、或重新定义编程接口的某些方面(例如参数)而仍完成所要结果是可能的。这如图1F和1G所示。例如,假设图1B的接口1包括一函数调用Square(input,precision,output),它包括三个参数input(输入),precision(精度)和output(输出),并从第一代码分段发往第二代码分段。如果中间参数precision在给定情形中无关紧要,如图1F所示,则可略去它甚至用meaningless(无意义)参数替换它(在此情形中)。也可添加不重要的additional(附加)参数。在任一情形中,只要在输入由第二代码分段进行square(平方)之后返回输出,就可获得square的功能。对计算机系统某些下游部分或其它部分precision可以是非常好的有意义的参数;然而,一旦认为precision对于计算square的有限目的而言是不必要的,则替换或略去它。例如,替代传送有效的precision值,可传送诸如生日的无意义值而不会不利地影响结果。类似地,如图1G所示,由接口I1’替换接口I1,它进行了对接口略去或添加参数的重新定义。接口I2可类似地被重定义为接口I2’,它进行了略去不必要参数或在其它地方进行处理的参数的重新定义。此处的要点是,在某些情形中,编程接口可包括某些目的所不需要的一些方面,诸如参数,因此可略去或重新定义它们,或者在其它地方进行处理用于其它目的。
C.内联编码
合并两个独立代码模块的部分或所有功能从而使它们之间的“接口”改变形式也是可行的。例如,可将图1B和1C的功能分别转换成图1H和1I的功能。在图1H中,先前图1B的第一代码分段和第二代码分段被合并成一包含它们两者的模块。在此情形中,代码分段仍然可互相通信,但接口则被调整为更适于单个模块的形式。因而,例如,正式的调用和返回语句不再必要,但是依照接口1的类似处理或响应仍然有效。类似地,如图1I所示,图1C的接口I2的一部分(或全部)可被写入I1内以形成接口I1”。如图所示,接口I2被划分成I2a和I2b,而接口部分I2a被与接口I1内联编码以形成接口I1”。作为具体示例,考虑lzi图1C的接口I1执行函数调用square(input,output),它在由第二代码分段处理用input传送的值(以平方之)之后由接口I2接收,并用output传送回平方后的值。在此情形中,由第二代码分段(平方input)执行的处理无需调用接口就可由第一代码分段执行。
D.分离
通过将通信分成多个离散通信可间接地完成从一个代码分段到另一代码分段的通信。这在图1J和1K中进行示意描述。如图1J所示,提供一个或多个中间件(分离接口,因为它们从原始接口中分离功能和/或接口功能)以转换第一接口接口1上的通信以使它们遵从一不同接口(在此情形中为接口2A、接口2B和接口2C)。可这样完成:例如,有已安装的应用程序基础根据接口1协议被设计为与操作系统通信,但是随后操作系统被更改成使用一不同接口(在此情形中为接口2A、接口2B和接口2C)。要点是,由第二代码分段使用的原始接口被更改,从而它不再与第一代码分段使用的接口兼容,且因而使用一中间体使得新旧接口兼容。类似地,如图1K所示,可用分离接口DI1引入第三代码分段以接收来自接口I1的通信,并用分离接口DI2以将接口功能传送给例如经重新设计与DI2一起工作的接口I2a和I2b,但仍提供同样的功能结果。类似地,DI1和DI2可一起工作以将图1C接口I1和I2的功能翻译成一新操作系统,而仍提供同样的或相似的功能结果。
E.重写
另一可能变体是动态地重写代码以用其它东西替换接口功能而仍取得同样的总体结果。例如,可有一系统,其中以中间语言(例如微软IL、JavaByteCode等)呈现的代码分段被提供给执行环境中的运行时(JIT)编译器或解释器(诸如由.Net框架、Java运行时间环境、或其它类似运行时间类型环境所提供的)。可编写JIT编译器以动态转换从第一代码分段到第二代码分段的通信,即让它们遵从第二代码分段(原始或不同的第二代码分段)所需的一不同接口。这在图1L和1M中描述。如图1L所示,该方法类似于上述分离情形。可这样完成:例如,其中已安装的应用程序基础根据接口1协议被设计为与操作系统通信,但是随后操作系统被更改成使用一不同接口。可使用JIT编译器以遵从已安装了基础的应用程序到操作系统的新接口在运行中的通信。如图1M所示,动态地重写接口的方法可被应用于动态分解,或用其它方法改变接口。
还要注意,用于通过任选实施例获取与接口相同或相似结果的上述情形也可以各种方法组合,串行地和/或并行地,或者用其它介入代码。因而,以上呈现的任选实施例并非互相排斥,而是可以加以混合、匹配和组合以产生与图1B和1C所示一般情形相同或等效的情形。还要注意,由于使用大多数编程结构,有许多未在此描述的可获取接口相同或相似功能的其它类似方法,但虽然如此仍可由本发明的精神和范围来表示,即,要注意,在接口值之下的接口至少代表部分功能,并使能有利结果。
图2A是带有内部组件的示意表示的计算机输入装置200的侧视图。计算机输入装置200包括一外壳205。外壳205的底部实质上是被安排置于桌子或桌子顶部表面上的平面,但也可由用户握住。外壳205上部的形状适于与人手舒适交互并支持它。计算机输入装置200可以是在图1A示为鼠标的计算机输入装置161。计算机输入装置200可包括可驱动按键,使用户能按压和单击一条目和/或用计算机输入装置200执行一动作。计算机输入装置200还可包括一滚动轮209。计算机输入装置200还可被示为包括控制系统210、相对跟踪子系统220、绝对跟踪子系统230、以及传感器240。标记元素210、220、230和240以虚线形式示出以表示这些元素在计算机输入装置200内部。本领域技术人员应理解,众多输入装置可被包括在术语计算机输入装置中。示例计算机输入装置包括鼠标、跟踪球鼠标、触摸板、操纵杆、以及附加在人身上的电子装置,诸如手套,戴上后它可用来跟踪用于将信息输入计算机的人手或手指的运动。
控制系统210可以是用于数据计算、信号处理、并与主计算机通过接口相连的硅片、数字组件、和/或微处理器组件(未示出)。控制系统210被示为与每个子系统-相对跟踪子系统220和绝对跟踪子系统230相连接。每个跟踪子系统220和230被示为与传感器240相连。如图2A所示,每个子系统使用传感器240用于捕捉跟踪计算机输入装置200运动的数据。尽管未在图2A中示出,每个跟踪子系统可具有独立的用于跟踪目的的传感器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可包括可驱动按键和/或诸如零行程二进制接触传感器或压敏电阻器(FSR)的传感器,使用户能按击一条目和/或用计算机输入装置201执行一动作。计算机输入装置201还可被示为包括控制系统210、相对跟踪子系统220、绝对跟踪子系统230、以及传感器240。标记元素210、220、230和240以虚线形式示出以表示这些组件在计算机输入装置201内部。
控制系统210可以是用于计算数据、处理信号、并与主计算机通过接口相连的硅片、数字组件、和/或微处理器组件(未示出)。控制系统210被示为与每个子系统-相对跟踪子系统220和绝对跟踪子系统230相连接。每个跟踪子系统220和230被示为与传感器240相连。如图2B所示,每个子系统使用传感器240用于捕捉跟踪计算机输入装置201运动的数据。尽管未在图2B中示出,每个跟踪子系统220和230可具有独立的用于跟踪目的的传感器240。此外,应理解传感器240可被包括在每个子系统220和230中。应理解,如果在两个子系统220和230中使用了一个公共传感器240,每个子系统的帧速率可能会不同,且提供给每个子系统的数据质量也会不同。例如,对于绝对位置解码可捕捉并需要较大的数据集,而对于相对跟踪则可使用该数据的子集从而允许较快的处理。
传感器240捕捉对应于计算机输入装置201运动的数据。该数据通过相对跟踪子系统220和/或绝对跟踪子系统230传送,其中数据被处理以确定表示计算机输入装置201近似位置的位置数据。然后位置数据被发送到控制系统210,随后数据被发送到主计算机(未示出)用于在应用程序中使用。例如,计算机输入装置201的运动可对应于主计算机的显示屏上光标位置的移动,如图8所示并在下面描述。尽管未在图2B中示出,控制系统210可包括一存储器,用于存储在后来发送给主计算机的位置数据。
计算机输入装置201示出被配置成通过相对跟踪方法和/或绝对跟踪方法来跟踪计算机输入装置201的运动的复合跟踪装置的说明性示例。基于相对跟踪方法和/或绝对跟踪方法进行跟踪的能力包含在计算机输入装置201的同一物理外壳206中。本领域技术人员应理解,控制系统210、相对跟踪子系统220、以及绝对跟踪子系统230可通过硬件组件、软件组件、固件组件、和/或硬件、软件、和固件组件的任意组合来实现。
图3A示出由两个跟踪子系统220和230组成的复合跟踪装置300。每个子系统包含收集数据的传感器240a和240b,以及控制传感器240a和240b并收集和处理来自传感器240a和240b的数据的处理器324和334。传感器240a和240b可以是由跟踪子系统220和230共享的同一传感器。传感器240a和240b可以是光学和/或磁性传感器或某些其它类型的传感器。复合跟踪装置300被示为与主计算机390通信。复合跟踪装置300通过控制系统210与主计算机390通信。控制210系统可包括一存储器(未示出),它可存储用于后来处理和/或传送到主计算机390的已捕捉数据。控制系统210可通过各种方法与主计算机390通信,包括通过串行端口或USB端口的硬接线连接、通过诸如蓝牙的无线通信路径、和/或任意其它类型的通信方法。
控制系统210被示为分别通过跟踪引擎324和334与每个子系统220和230收发信号和数据。相对跟踪引擎324是相对跟踪子系统220的一部分。相对跟踪引擎324接收来自控制系统210的控制信号,并响应以向传感器240a发送适当信号。相对跟踪引擎324还接收来自传感器240a的数据。数据可包括用以跟踪复合跟踪装置300的位置的光学信息和/或测量数据。在接收来自传感器240a的数据之后,相对跟踪引擎324可处理数据以确定要通过控制系统210发送给主计算机390的位置数据。或者,相对跟踪引擎324可向控制系统210传递从传感器240a接收的数据,该控制系统210可执行计算以根据相对跟踪方法确定装置300的位置,和/或可通过控制系统210向主计算机390传递数据,该主计算机可执行计算以根据相对跟踪方法确定装置300的位置。根据各个实施例,计算可由相对跟踪引擎324、控制系统210和/或主计算机390执行。
类似于相对跟踪子系统220,绝对跟踪子系统230可包括传感器240b和绝对跟踪引擎334。绝对跟踪引擎334接收来自控制系统210的控制信号,并响应以向传感器240b发送适当信号。绝对跟踪引擎334还接收来自传感器240b的数据。在接收来自传感器240b的数据之后,绝对跟踪引擎334可处理数据以确定要通过控制系统210发送给主计算机390的位置数据。或者,绝对跟踪引擎334可向控制系统210传递从传感器240b接收的数据,该控制系统210可执行计算以根据绝对跟踪方法确定位置,和/或可通过控制系统210向主计算机390传递数据,该主计算机可执行必要的计算以根据绝对跟踪方法确定复合跟踪装置300的位置。根据各个实施例,计算可由绝对跟踪引擎334、控制系统210和/或主计算机390执行。
控制系统210吸收数据并用某些方法将其传送出去。如在这里所述,跟踪子系统220和230的组件可用某些方法进行组合和/或共享。例如,每个子系统中的传感器240a和240b可以是一公共传感器240。该绝对子系统230向控制系统210提供绝对位置数据,而相对跟踪子系统220提供相对运动数据。取决于用户需要、两个跟踪子系统的效率、和/或要确定装置300的更精确位置,可分开或一起使用相对运动数据和绝对运动数据。
在本发明另一实施例中,可使用传感器240a来捕捉由相对跟踪引擎324使用的数据。相对跟踪子系统220可以是由复合跟踪装置300使用的缺省跟踪子系统。在起动绝对跟踪子系统之前,相对跟踪子系统220可操作预定时间和/或距离。例如,相对跟踪子系统220可捕捉数据,且两秒后传感器240b捕捉一图像。绝对跟踪引擎334可立即处理数据,以确定用于最终通过控制系统210传送到主计算机390的绝对位置数据。绝对位置数据和/或相对位置数据可存储在复合跟踪装置300内的存储器中(未示出)。在另一实施例中,绝对跟踪子系统230可以是缺省跟踪子系统。
图3B是根据本发明至少一方面用于跟踪装置360的位置的复合跟踪系统350的说明性实施例的功能框图。复合跟踪系统350包括一装置360。装置360可以是基于相对跟踪方法跟踪其位置的计算机输入装置。相对跟踪子系统220包括传感器240和相对跟踪引擎324。如上在图3A所述,传感器240捕捉数据并向相对跟踪引擎324发送数据。相对跟踪引擎324处理数据并向控制系统210发送已处理的位置数据,而控制系统则将位置数据发送给主计算机390。类似地,控制系统210通过控制信号来控制传感器240和相对跟踪引擎324的操作。
如图3B所示,主机390包括一绝对跟踪引擎370。绝对跟踪引擎370可基于绝对跟踪方法来计算装置360的位置。可由绝对跟踪引擎370使用从传感器240接收的数据,以根据绝对跟踪方法确定装置360的运动。如图所示,装置360和主计算机390组成复合跟踪系统350。尽管未在图中示出,本领域技术人员应理解,用来基于绝对和/或相对跟踪方法确定位置数据的数据计算可完全由诸如计算机鼠标、电子笔、或个人数字助理的装置执行,或完全由主计算机或两者的组合执行。
在本发明另一实施例中,传感器240可用来捕捉由相对跟踪引擎324使用的数据。相对跟踪子系统220可以是由装置360使用的缺省跟踪子系统。在为了进行绝对跟踪处理而捕捉图像快照之前,相对跟踪子系统220可操作预定时间和/或距离。例如,相对跟踪子系统220可捕捉数据,且两秒后传感器240b捕捉一图像。被捕捉数据可存储在装置360内的存储器中(未示出)。有时数据可通过控制系统210传送到主计算机390。在主计算机上,可基于所接收的捕捉数据和绝对跟踪引擎370来确定绝对位置数据。在另一实施例中,绝对跟踪子系统230可以是缺省跟踪子系统。
图3C示出由两个跟踪子系统220和230组成的复合跟踪装置380。复合跟踪装置380还包括收集数据的传感器240。每个子系统220和230包含控制传感器240并收集和处理来自传感器240的数据处理器324和334。传感器240可以是光学和/或磁性传感器或某些其它类型的传感器。复合跟踪装置380被示为与主计算机390通信。复合跟踪装置380通过控制系统210与主计算机390通信。控制系统210可通过各种方法与主计算机390通信,包括硬接线通信路径、无线通信路径、和/或任意其它类型的通信路径。
控制系统210被示为分别通过跟踪引擎324和334与每个子系统220和230收发信号和数据。相对跟踪引擎324是相对跟踪子系统220的一部分。相对跟踪引擎324接收来自控制系统210的控制信号,并响应以向传感器240发送适当信号。相对跟踪引擎324还接收来自传感器240的数据。数据可包括用以跟踪复合跟踪装置380的位置的光学信息和/或测量数据。在接收来自传感器240的数据之后,相对跟踪引擎324可处理数据以确定要通过控制系统210发送给主计算机390的位置数据。或者,相对跟踪引擎324可向控制系统210传递从传感器240接收的数据,该控制系统210可执行计算以根据相对跟踪方法确定装置380的位置,和/或可通过控制系统210向主计算机390传递数据,该主计算机可执行计算以根据相对跟踪方法确定装置380的位置。根据各个实施例,计算可由相对跟踪引擎324、控制系统210和/或主计算机390执行。
类似于相对跟踪子系统220,绝对跟踪子系统230可包括绝对跟踪引擎334。绝对跟踪引擎334接收来自控制系统210的控制信号,并响应以向传感器240发送适当信号。绝对跟踪引擎334还接收来自传感器240的数据。在接收来自传感器240的数据之后,绝对跟踪引擎334可处理数据以确定要通过控制系统210发送给主计算机390的位置数据。或者,绝对跟踪引擎334可向控制系统210传递从传感器240接收的数据,该控制系统210可执行计算以根据绝对跟踪方法确定位置,和/或可通过控制系统210向主计算机390传递数据,该主计算机可执行必要的计算以根据绝对跟踪方法确定复合跟踪装置380的位置。根据各个实施例,计算可由绝对跟踪引擎334、控制系统210和/或主计算机390执行。
控制系统210吸收数据并用某些方法将其传送出去。该绝对子系统230向控制系统210提供绝对位置数据,而相对跟踪子系统220提供相对运动数据。取决于用户需要、两个跟踪子系统的效率、和/或要确定装置380的更精确位置,可分开或一起使用相对运动数据和绝对运动数据。
图4A和4B是根据本发明至少一方面跟踪接触点位置的说明性实施例的示意图。图4A是使用绝对跟踪子系统以及相对跟踪子系统以确保装置运动的精确确定的系统的说明性示例。图4A示出由绝对跟踪子系统相对不频繁地(在机器的时间尺度上)计算的各位置以确定装置的绝对位置(waypoint)。然后使用相对跟踪子系统以确定被示为相对路径的中间位置。如果在所分配的时隙内绝对跟踪子系统诸如由于遮盖而不能确定装置位置,则装置位置可基于相对跟踪子系统持续更新。图4B就示出了这样的情形。如图所示,waypoint 2不见了,例如因为下层的编码图案被遮盖而不能基于绝对跟踪子系统准确确定。例如,如图9所示和后面所述,文本数据可遮蔽底层的编码图案,从而限制系统准确确定装置绝对位置的能力。由于waypoint 2在图4B中不见了,相对跟踪方法继续跟踪装置位置到waypoint 3。
由航位推测法的导航被定义为通过计算从已知地点行进的距离、方向和时间量来估算一位置。Waypoint是由绝对子系统确定的绝对位置,而航位推测法导航确定这些waypoint之间的路径。由航位推测法计算的位置易发生由距离、方向和时间的计算误差所组合成的误差。然而,根据本发明至少一方面,绝对跟踪子系统可提供绝对位置参量,从而使控制系统能校正任何先前确定的中间位置误差。然后重建装置所行进的真实路径,如图5所示。因而,相对跟踪子系统向控制系统提供跟踪数据,而绝对跟踪子系统提供周期性的waypoint数据以与相对跟踪数据同步,从而允许误差校正。
按照处理功率、尺寸、价格和功率消耗每个子系统有不同成本。取决于给定复合跟踪装置或系统的架构和/或目的,对这些成本的权衡将不同。因此,相应地改变两个子系统之间的权衡是有用的。为了大部分和/或全部目的用户可能想要某一类型的跟踪发生。或者,可使用缺省的跟踪系统,和/或基于某些类型的效率(经济、节约能量、和/或计算时间)来作实现特定跟踪系统的决定。
为了有助于装置的检测和/或定位,装置置于其上的对象表面可包括指示该表面区域位置的图像数据。在一示例性实施例中,成像或扫描的表面可包括主计算机或其它外部计算装置的显示屏,它可对应于台式计算机、膝上型计算机、书写板PCTM、个人数据助理、电话、数码相机、或可显示信息的任何装置的显示器。相应地,在书写板PCTM屏幕上产生的空白文档或其它图像可包括对应于表示整个文档中该文档部分或图像的任意其它部分位置的代码的数据。该信息可由图像组成,这些图像可包括字母字符、编码图案、或可由于表示位置的图像数据的任意可辨别图案。被选择在指示对象表面上的区域位置中使用的图像可取决于扫描装置的灵敏性,诸如传感器的象素分辨率,和/或包含在要扫描表面中的图像数据的象素分辨率。然后可使用从该表面提取的位置信息来基于绝对跟踪方法跟踪装置在表面上的运动。使用该位置信息,可准确产生对应于装置运动的电子墨水或其它信息。可使用位置信息来检测输入受影响的表面位置,并提供装置在表面上运动的指示。结果位置信息可与字处理软件交互使用以产生例如文档中的变化。
在一可选实施例中,结合装置使用的对象由纸张与例如包括在背景中的位置信息组成。该位置信息可以代码、光学表示、或可由与装置相关联的传感器感应的并用以表示纸张上特定点的绝对位置的其它形式结合。
图6示出一种用于编码文档位置的技术示例。在此示例中,图像的背景可包括以较大组合看形成类似迷宫图案600的细线。迷宫设计600中的每组线条由具有例如与文档的另一部分604相比较可指示迷宫图案部分位置602的独特方向和位置的一些细线组成。对在被捕捉图像中发现的迷宫图案600的解码可根据许多解码方案执行。迷宫图案600是稍微可见的。迷宫图案600被配置成不与写、画、和/或读相干扰。例如,用户可将迷宫图案600置于白色打印纸上。用户可将纸张与一表面连接在一起,诸如办公室和/或会议室的墙面,并在纸张上作标记从而使装置能跟踪其在纸张上的绝对运动。迷宫图案600可用激光打印机或任何其它打印进程打印在透明胶片上。另一方面,迷宫图案可被打印在一张纸上。本领域技术人员应理解,放置迷宫图案600的介质不限于如上所述的透明胶片和/或纸张的示例,且可包括任何类型用于写和/或画的介质,诸如但不限于建筑图纸、墙、木质表面、黑板表面、计算机屏幕、以及地板。本领域技术人员应理解,将编码图案置于表面之上的墨水对用户而言是可见或不可见的。如果对用户不可见,则需要红外或紫外光源来使下层图案可见。
在一实施例中,可解码线条的特定排列和组合以产生位置信息。在另一实施例中,被捕捉数据位置的指示可通过从图像中提取对应于采样图案的代码,并使用该代码对包含标识该区域位置的数据的查询表格寻址来导出。一种类型的图案600称为水印图案。水印图案可以是叠加在显示于计算机屏幕的正常图像上的低可见度的两维(2D)比特图案。对比特图案进行编码使得位于屏幕上任何地方的其较小子集可被解码以产生该子集区域的位置。这使诸如手持式笔或其它装置的成像装置能确定其在图案上的绝对位置。在水印图案中,可解码位置在表面上用给定间距或间隔被规则地隔开。该间隔定义可解码每个位置地点进而装置位置的精度。这些位置是绝对的,因为它们不随时间改变或不依赖于与其它位置的相对关系。在另一实施例中,诸如PC、笔记本电脑、或TabletPC屏幕上的水印可改变。在这样的实施例中,可使用屏幕象素而不是打印在纸张上来显示水印和文档内容,使应用程序能基于与用户的交互而显示经更改的水印。尽管示图中的说明性示例示出了各种两维配置的编码图案600,本领域技术人员应理解该编码图案600可以是包括一维配置中可解码位置的点型图案。示图中示出的示例并不限于特定类型的编码图案600。
此外,水印图案也可嵌于诸如纸张文档或计算机显示器的表面上,从而图案在该表面上的每个“位置”是可唯一解码的。尽管水印图案的一个用途是跟踪装置在表面内位置的装置能力,该水印也可编码附加数据。可在图案中编码位置数据和/或附加数据。附加数据可以与解码位置数据方法相似的方式进行解码。该附加数据可在较低层次上进行编码,但在表面上比编码位置数据占用了更大的空间。可使用单个或多个应用程序来仅恢复位置数据、仅恢复附加数据、或恢复位置数据和附加数据。附加信息的某些示例包括图像、文件标识、音频文件和/或片断、视频文件和/或片断、安全特征、密码特征、生物统计信息、和/或与其它信息的链接。
诸如图案600的水印图案的设计可有众多考虑因素。这些考虑因素之一是表面上水印图案的密度。水印图案需要足够淡从而对装置用户而言是不引人注意的,同时还编码数量和质量足够的信息用于发挥装置的正常功能。此外,可设计编码信息以符合允许可接受的差错检测/校正程度的对冗余和完整性的最低要求。为了尝试最小化使图案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。用户可在笔记本类型计算机810的屏幕805上使用电子笔800。屏幕805是其中可跟踪电子笔800位置的预定区域。当用户在屏幕805的表面上移动电子笔800时,可基于相对跟踪系统来跟踪电子笔的位置。接触点822和824可相对其它位置、接触点的轨迹、和/或某些其它相关特征来确定。
根据本发明至少一方面,用户可在诸如包括如图6所示嵌入图案600的纸张的编码纸830上使用同一电子笔800。当用户在纸张830的表面上移动电子笔800时,可跟踪电子笔800的接触点在纸张830表面上的运动840。运动840可基于绝对跟踪方法利用编码表面信息来跟踪。例如,用户可在纸张830上绘制一对象,而该对象被输入到运行于主计算机上的应用程序。与主计算机相连的监视器850显示相应对象842。电子笔800与主计算机通信以发送由运行于主计算机上的应用程序使用的绝对位置数据。本领域技术人员应理解,应用程序也可在主计算机之外。因此,在至少一实施例中,可无需主计算机将复合跟踪装置800用于绝对跟踪和/或相对跟踪。
图9是根据本发明至少一方面被遮盖编码表面600的说明性实施例的示意图。图9示出本发明复合跟踪系统的一实施例。如图所示,文本910写在编码表面600的某些部分920之上。例如,用户可用黑色墨水将一字母写在编码表面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,确定是否需要更高精度。当用户想要装置运动的更准确表示时,这种情形会产生。如果需要更高精度,则在步骤1236选择替换在步骤1232所实现方法的可选跟踪方法。如果不需要更高精度,则过程直接移到步骤1240。在步骤1240确定装置位置,而在步骤1242已确定的位置数据被发送给主计算机。在另一实施例中,位置数据在发送给主计算机之前可存储在装置上的存储器中。在步骤1244,位置数据在运行于主计算机之上或其外部的应用程序中使用。过程继续到步骤1250,其中确定是否还要捕捉数据。如果还有数据存在,过程返回到步骤1210或1220。如果不存在,过程结束。
图13是根据本发明至少一方面用于跟踪装置运动的另一说明性方法的流程图。过程开始,且在步骤1302,确定是否到了捕捉图像数据的时间。该时间可以是预定时间和/或装置的运动距离。如果时间未到,过程返回到步骤1302。如果时间已到,则过程移到步骤1304。在步骤1304,捕捉图像数据。
在步骤1306,确定是否已触发绝对跟踪方法。当装置的移动已达预定距离和/或预定时间已过,这样的情形会产生。如果在步骤1306已触发了绝对跟踪方法,则过程移到步骤1308,其中实现绝对跟踪方法。如果绝对跟踪方法未在步骤1306触发,则过程继续到步骤1310。
在步骤1310,在被捕捉的图像数据上实现相对跟踪方法。在步骤1312,确定装置位置的相对变化是否会引起对绝对跟踪方法的触发。如果装置位置的相对变化的确会引起对绝对跟踪方法的触发,则过程继续到步骤1316,其中设置绝对跟踪方法的触发。然后过程返回到步骤1308。如果装置位置的相对变化不会引起对绝对跟踪方法的触发,则过程继续到步骤1314。在步骤1314,确定从已确定最后的绝对跟踪位置起是否过了预定时间和/或距离。如果时间已过,过程继续到步骤1316,其中设置绝对跟踪方法的触发。如果没有,过程结束。
在一实施例中,相对跟踪子系统仅在有不充分可见的水印图案时才实现,以有效解码绝对位置。当控制系统确定来自绝对子系统的位置数据不充足和/或缺少时,实现相对跟踪子系统。在另一实施例中,相对跟踪子系统可比绝对子系统需要较少时间来处理被捕捉数据。在这样的情形中,可利用相对跟踪子系统来收集大部分数据,而绝对跟踪子系统则提供周期性的waypoint用于误差校正。在又一实施例中,绝对跟踪子系统和下层水印图案提供粗略的路径信息,而相对跟踪子系统内插附加的路径信息以提供更高的位置精度。
来自每个子系统的数据提供了有用的信息以简化其它方的处理。例如,对于多自由度系统的方向,可使用由绝对跟踪子系统计算的数据来降低相对跟踪子系统中的处理载荷。类似地,来自相对跟踪子系统的预计位置数据可在绝对位置的解码中允许较好的初始条件估算以及较有限的处理要求。
尽管示出了包括本发明各方面的说明性系统和方法,本领域技术人员将理解本发明并不限于这些实施例。特别是根据以上教学,本领域技术人员可作更改。可以理解和认为,可作更改而不背离本发明的真实精神和范围。因而本说明书被视为对本发明是说明性的而不是限制性的。

Claims (37)

1.一种用于跟踪装置运动的方法,其特征在于,所述方法包括以下步骤:
实现用于跟踪所述装置在一平面上的位置的第一跟踪子系统;
确定是否实现用于跟踪所述装置在所述平面上的位置的第二跟踪子系统;
响应于确定实现所述第二跟踪子系统来实现所述第二跟踪子系统;
捕捉对应于所述平面上的所述装置的位置的数据;以及
基于所述已捕捉数据确定所述装置在所述平面上的位置;
其中确定是否实现第二跟踪子系统是基于所述第一跟踪子系统是否已经操作了一预定的时间以及所述装置沿着所述平面的移动是否已经达到一预定的距离;
其中来自所述第一跟踪子系统的数据以及来自所述第二跟踪子系统的数据提供有用的信息以简化对方的处理,其中使用由所述第二跟踪子系统计算的数据来降低所述第一跟踪子系统中的处理载荷,并且,来自所述第一跟踪子系统的预计位置数据可在绝对位置的解码中允许较好的初始条件估算以及较有限的处理要求。
2.如权利要求1所述的方法,其特征在于,还包括将所述装置的位置传送给计算机的步骤。
3.如权利要求2所述的方法,其特征在于,还包括将所述装置的位置应用为在所述计算机上操作的应用程序的输入的步骤。
4.如权利要求3所述的方法,其特征在于,所述应用程序确定一光标位置。
5.如权利要求4所述的方法,其特征在于,还包括响应于所述应用步骤,将所述光标位置显示在显示器上的步骤。
6.如权利要求1所述的方法,其特征在于,还包括确定所述装置的位置是否已改变的步骤。
7.如权利要求1所述的方法,其特征在于,所述第一跟踪子系统是相对跟踪子系统而所述第二跟踪子系统是绝对跟踪子系统。
8.如权利要求1所述的方法,其特征在于,所述确定所述装置在所述平面上的位置的步骤是基于所述已实现的第一跟踪子系统。
9.如权利要求1所述的方法,其特征在于,所述确定所述装置在所述平面上的位置的步骤是基于所述已实现的第二跟踪子系统。
10.如权利要求1所述的方法,其特征在于,所述确定所述装置在所述平面上的位置的步骤是基于所述已实现的第一和第二跟踪子系统。
11.如权利要求1所述的方法,其特征在于,所述第一跟踪子系统是缺省的跟踪子系统。
12.如权利要求1所述的方法,其特征在于,在确定要实现所述第二跟踪子系统之后,所述方法还包括禁用所述第一跟踪子系统的实现的步骤,其中所述确定所述装置在所述平面上的位置的步骤是基于所述被实现的第二跟踪子系统。
13.如权利要求1所述的方法,其特征在于,还包括将所述被捕捉数据发送给计算机的步骤,其中所述确定所述装置在所述平面上的位置的步骤由所述计算机执行。
14.如权利要求1所述的方法,其特征在于,还包括比较所述第一跟踪子系统和所述第二跟踪子系统的效率的步骤。
15.如权利要求14所述的方法,其特征在于,所述比较所述第一跟踪子系统和所述第二跟踪子系统的效率的步骤是基于一设置。
16.如权利要求1所述的方法,其特征在于,所述确定是否要实现所述第二跟踪子系统的步骤还包括确定所述第一跟踪子系统是否已无法跟踪所述装置的位置。
17.如权利要求16所述的方法,其特征在于,当对应于所述平面上位置的所述数据缺少或被遮盖时,所述第一跟踪子系统已无法跟踪所述装置的位置。
18.如权利要求1所述的方法,其特征在于,所述捕捉数据的步骤包括以下步骤:
从所述装置输出一光线;
捕捉在所述平面上编码的一部分数据;以及
解码所述编码数据。
19.如权利要求18所述的方法,其特征在于,所述编码数据包括位置数据和附加数据。
20.如权利要求18所述的方法,其特征在于,所述平面是一水印平面。
21.如权利要求1所述的方法,其特征在于,还包括将所述被捕捉数据存储在存储器中的步骤。
22.如权利要求21所述的方法,其特征在于,所述存储器位于所述装置内。
23.如权利要求21所述的方法,其特征在于,所述装置是电子笔类型的装置。
24.如权利要求1所述的方法,其特征在于,所述确定是否要实现所述第二跟踪子系统的步骤包括触发所述第二跟踪子系统以响应于由所述第一跟踪子系统捕捉的数据而实现的步骤。
25.一种用于跟踪的装置,其特征在于,包括:
一相对跟踪子系统;
一绝对跟踪子系统;以及
一控制系统,被配置成向所述相对跟踪子系统和所述绝对跟踪子系统收发信号;
其中所述绝对跟踪子系统被配置成在所述相对跟踪子系统已经操作一预定的时间后以及在所述装置沿着一平面已经移动了一预定距离后,跟踪所述装置在所述平面上的位置;
其中来自所述相对跟踪子系统的数据以及来自所述绝对跟踪子系统的数据提供有用的信息以简化对方的处理,其中使用由所述绝对跟踪子系统计算的数据来降低所述相对跟踪子系统中的处理载荷,并且,来自所述相对跟踪子系统的预计位置数据可在绝对位置的解码中允许较好的初始条件估算以及较有限的处理要求。
26.如权利要求25所述的装置,其特征在于,还包括一传感器,其中所述相对跟踪子系统包括一相对跟踪引擎,且所述传感器向所述相对跟踪引擎提供数据用于确定相对位置数据。
27.如权利要求25所述的装置,其特征在于,还包括一传感器,其中所述绝对跟踪子系统包括一绝对跟踪引擎,且所述传感器向所述绝对跟踪引擎提供数据用于确定绝对位置数据。
28.如权利要求25所述的装置,其特征在于,还包括至少两个传感器,其中第一传感器向所述相对跟踪子系统提供数据,而第二传感器向所述绝对跟踪子系统提供数据。
29.如权利要求25所述的装置,其特征在于,从所述相对跟踪子系统和绝对跟踪子系统接收的信号包括位置数据。
30.如权利要求25所述的装置,其特征在于,所述控制系统还被配置成将位置数据传送给主计算机。
31.如权利要求30所述的装置,其特征在于,还包括被配置成存储所述位置数据的一存储器。
32.如权利要求25所述的装置,其特征在于,所述相对跟踪子系统、所述绝对跟踪子系统、以及所述控制系统至少部分地由固件实现。
33.一种用于跟踪装置运动的系统,其特征在于,所述系统包括:
一装置,所述装置包括:
一传感器,被配置成捕捉对应于所述装置位置的数据;以及
一第一跟踪子系统,被配置成接收所述被捕捉数据并输出所述装置的被确定位置数据;以及
一主计算机,包括一第二跟踪子系统,所述第二跟踪子系统被配置成输出代表性位置数据,
其中所述第二跟踪子系统被配置成在所述第一跟踪子系统已经操作了一预定时间后以及在所述装置沿着一平面已经移动了一预定距离后,输出代表性位置数据,
其中所述主计算机与所述装置通信,并被配置成接收所述被确定位置数据,计算所述装置的代表性位置数据,并将所述代表性位置数据应用为应用程序的输入;
其中来自所述第一跟踪子系统的数据以及来自所述第二跟踪子系统的数据提供有用的信息以简化对方的处理,其中使用由所述第二跟踪子系统计算的数据来降低所述第一跟踪子系统中的处理载荷,并且,来自所述第一跟踪子系统的预计位置数据可在绝对位置的解码中允许较好的初始条件估算以及较有限的处理要求。
34.如权利要求33所述的系统,其特征在于,所述主计算机被配置成基于所述接收的被确定位置数据来计算所述代表性位置数据。
35.如权利要求33所述的系统,其特征在于,所述第一跟踪子系统是一相对跟踪子系统而所述第二跟踪子系统是一绝对跟踪子系统。
36.如权利要求33所述的系统,其特征在于,所述装置是一手持式装置。
37.如权利要求33所述的系统,其特征在于,所述装置是一电子笔类型的装置。
CN2005100795546A 2004-07-15 2005-06-15 用于复合跟踪系统的方法和装置 Expired - Fee Related CN1722071B (zh)

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
CN1722071A CN1722071A (zh) 2006-01-18
CN1722071B true CN1722071B (zh) 2011-12-07

Family

ID=34982182

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2005100795546A Expired - Fee Related CN1722071B (zh) 2004-07-15 2005-06-15 用于复合跟踪系统的方法和装置

Country Status (4)

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

Families Citing this family (35)

* 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
US8457346B2 (en) * 2001-04-24 2013-06-04 Digimarc Corporation Digital watermarking image signals on-chip
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
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
US8181884B2 (en) 2003-11-17 2012-05-22 Digimarc Corporation Machine-readable features for objects
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
US9082319B2 (en) * 2006-01-24 2015-07-14 Carnegie Mellon University Method, apparatus, and system for computer-aided tracking, navigation and motion teaching
US20080192234A1 (en) * 2007-02-08 2008-08-14 Silverbrook Research Pty Ltd Method of sensing motion of a sensing device relative to a surface
US8094347B2 (en) * 2007-08-01 2012-01-10 Silverbrook Research Pty Ltd. Method of scanning regions larger than the scan swath using a handheld scanner
WO2009029723A1 (en) * 2007-08-28 2009-03-05 Marvell World Trade Ltd. Determining position and velocity of a handheld device
US20110227825A1 (en) * 2008-07-01 2011-09-22 Hillcrest Laboratories, Inc. 3D Pointer Mapping
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
WO2022230753A1 (ja) * 2021-04-30 2022-11-03 株式会社ワコム 座標出力装置、ペン型デバイス、及び電子機器
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 (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5805144A (en) * 1994-12-14 1998-09-08 Dell Usa, L.P. Mouse pointing device having integrated touchpad
EP1133753B1 (de) * 1998-11-19 2004-02-11 Daniel Gens Vorrichtung und verfahren zum aufzeichnen von daten, die einer geschriebenen oder gezeichneten information entsprechen
CN1499446A (zh) * 2002-10-31 2004-05-26 通用计算装置

Family Cites Families (14)

* 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
JPH0410025A (ja) * 1990-04-27 1992-01-14 Toshiba Corp 座標入力装置
EP0578692B1 (en) * 1991-04-03 1995-06-14 Hewlett-Packard Company Position-sensing apparatus
DE69214844T2 (de) * 1992-09-30 1997-03-06 Hewlett Packard Co Anfangsspurrueckgewinnung in positionserfassungssystemen, die fenstermuster gebrauchen
JP3277052B2 (ja) * 1993-11-19 2002-04-22 シャープ株式会社 座標入力装置、および座標入力方法
US5652412A (en) * 1994-07-11 1997-07-29 Sia Technology Corp. Pen and paper information recording system
US5578813A (en) * 1995-03-02 1996-11-26 Allen; Ross R. Freehand image scanning device which compensates for non-linear movement
JP4049877B2 (ja) * 1997-03-31 2008-02-20 株式会社ワコム 電子ペンを用いたコンピュータシステム
MXPA02002247A (es) * 1999-08-30 2002-09-30 Anoto Ab Bloc de notas.
US6992655B2 (en) * 2000-02-18 2006-01-31 Anoto Ab Input unit arrangement
JP3995866B2 (ja) * 2000-04-14 2007-10-24 株式会社リコー 入力装置
JP3775779B2 (ja) * 2000-10-30 2006-05-17 株式会社国際電気通信基礎技術研究所 歩行航行装置およびそれを用いたナビゲーションシステム
EP1413974A1 (en) * 2002-10-24 2004-04-28 Hewlett-Packard Company Hybrid sensing techniques for position determination
US7154477B1 (en) * 2003-09-03 2006-12-26 Apple Computer, Inc. Hybrid low power computer mouse

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5805144A (en) * 1994-12-14 1998-09-08 Dell Usa, L.P. Mouse pointing device having integrated touchpad
EP1133753B1 (de) * 1998-11-19 2004-02-11 Daniel Gens Vorrichtung und verfahren zum aufzeichnen von daten, die einer geschriebenen oder gezeichneten information entsprechen
CN1499446A (zh) * 2002-10-31 2004-05-26 通用计算装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
说明书第15页第28行到第16页第18行、附图2-7.

Also Published As

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

Similar Documents

Publication Publication Date Title
CN1722071B (zh) 用于复合跟踪系统的方法和装置
CN100465866C (zh) 通用计算设备的光学系统设计
CN100422915C (zh) 通用计算设备
CN1641683B (zh) 通过m阵列解码和快速图像匹配的笔划定位
CN100442214C (zh) 通过确定获取的图像的位置确定电子笔笔尖的位置的方法
US10225428B2 (en) Image processing for handheld scanner
US7477784B2 (en) Spatial transforms from displayed codes
CN1322329B (zh) 采用扫描传感器的输入设备
KR101026630B1 (ko) 범용 컴퓨팅 장치
CN102541256B (zh) 具有视觉反馈的位置知晓姿势作为输入方法
US7483018B2 (en) Systems and methods for providing a combined pen and mouse input device in a computing system
CN100489897C (zh) 有效的嵌入式交互编码
Margetis et al. Augmented interaction with physical books in an Ambient Intelligence learning environment
JP4217577B2 (ja) 受動的な埋め込み対話符号化
Khan et al. Recent advances in vision-based indoor navigation: A systematic literature review
CN102362251A (zh) 用于提供对应用程序的增强控制的用户界面
US20130033461A1 (en) System for notetaking with source document referencing
CN101238428A (zh) 自由空间指点和手写
JP2003256876A (ja) 複合現実感表示装置及び方法、記憶媒体、並びにコンピュータ・プログラム
JP2003523572A (ja) 入力ユニットの構成
CN107533465A (zh) 具有自动化提取的辅助层
US20130033460A1 (en) Method of notetaking using optically imaging pen with source document referencing
RU2347271C2 (ru) Глобальная локализация путем быстрого согласования изображений
Rice et al. Cantag: an open source software toolkit for designing and deploying marker-based vision systems
US20130033429A1 (en) Method of notetaking with source document referencing

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150427

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150427

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.

CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20111207

Termination date: 20180615