Optical tracker
Claim Score by NHIP
Abstract
Optical tracking systems, method, and devices are described in which optical components detect light within a substantially planar region adjacent to a user device. Tracking logic may receive signals output by the optical components and determine coordinates associated with a movement of a pointing object through the substantially planar region. The tracking logic may then provide for translation of the coordinates into an action on a display, such as, for example, a movement of a cursor or other icon on the display.

Term
Term ended
Projected expiry passed 13 January 2026, 0.7 years ago.
- Priority and filed
- Published
- Projected expiry
- Today
20 claims: 3 independent, 17 dependent
- 1Broadest claimClaim Score 84, broad(NHIP)A method comprising:receiving pixel values from at least two sensors, the pixel values corresponding to a movement of a pointing object within a substantially planar region that includes at least a part of each of the two sensors and at least a part of the pointing object;determining coordinates associated with the movement of the pointing object, based on the pixel values;and providing the coordinates for translation into an action on a display.
- 11A system comprising:optical components including at least two sensors that are operable to detect a movement of a pointing object within a substantially planar region that includes at least a part of each of the at least two sensors and at least a part of the pointing object, and further operable to output pixel values corresponding to the movement;and tracking logic operable to determine coordinates of the pointing object within the planar region, based on the pixel values, and further operable to provide the coordinates for translation into an action on a display.
- 18A device comprising:a first image sensor disposed on an axis and operable to output first pixel values corresponding to a movement of a pointing object within a substantially planar region that includes the axis and the pointing object;a second image sensor disposed on the axis and operable to output second pixel values corresponding to the movement;and tracking logic operable to determine coordinates of the pointing object within the substantially planar region, based on the first pixel values and the second pixel values, and further operable to provide the coordinates for translation into an action on a display.
Independent claims3
99 paragraphs in 5 sections, as filed
TECHNICAL FIELD
0001This description relates to optical tracking techniques.
BACKGROUND
0002Tracking and/or pointing applications allow users to interact with computers and other devices in a fast, easy, and intuitive manner. An example of a tracking application is the well-known computer mouse, which allows users, for example, to control movement of a cursor or other icon within the context of a monitor or other display. Other tracking applications include touchpads that track a movement of a finger or other pointing device across a pressure-sensitive surface.
0003Optical tracking systems generally rely on some type of emission, reflection, and/or detection of light, that is translated, for example, into movement of a cursor or other icon within the context of a monitor or other display.
SUMMARY
0004Examples of optical tracking systems are described in which optical components (e.g., image sensors) detect light within a substantially planar region adjacent to a user device. Tracking logic may receive signals output by the optical components and determine coordinates associated with a surface-independent movement of a pointing object through the substantially planar region. For example, the pointing object may be moved through an open space adjacent to the device, without contact of the pointing object on a physical surface. The tracking logic may then provide for translation of the coordinates into an action on a display, such as, for example, a movement of a cursor or other icon on the display.
0005For example, a row of pixels of a 1-dimensional image sensor (or a designated row of pixels among a plurality of rows of pixels, e.g., in a 2-dimensional image sensor) may be used to detect the movement of the pointing object. Since 1-dimensional image sensors may have a limited field of view, corresponding, for example, to such a single row of pixels within the image sensor(s), pixels from such an image sensor may be effectively limited to detecting light within the substantially planar region and within a vicinity of the device. Then, the movement of the pointing object within the substantially planar region may be characterized using pixel values corresponding to light reflected from the pointing object within the substantially planar region, as the pointing object is moved through the substantially planar region.
0006In one example, two image sensors are used that are each disposed at least partially within the substantially planar region, so that the substantially planar region includes at least a part of each of the image sensors and at least a part of the pointing object. In this example, both image sensors detect the part of the pointing object within the substantially planar region, and triangulation calculations may be performed to determine x, y coordinates associated with the movement of the pointing object. In another example, only one image sensor is used, and x, y coordinates associated with the movement of the pointing object may be determined based on an apparent size of the part of the pointing object in the substantially planar region, relative to reference size information (e.g., a known diameter) of the part of the pointing object.
0007Further, additional optical sensing may be provided by virtue of a secondary substantially planar region in parallel with the substantially planar region (e.g., by using one or more additional image sensors to detect light from the secondary substantially planar region). Then, by tracking movement in the secondary substantially planar region (e.g., using the same techniques as just described), additional information may be obtained for controlling an action on a display. For example, a tilt of a finger that intersects both the substantially planar region and the secondary substantially planar region may be detected and translated into a desired action with respect to the display, such as, for example, an up-or-down scrolling through a text screen.
0008This Summary is provided to introduce selected concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter.
BRIEF DESCRIPTION OF THE DRAWINGS
0009<figref idref="DRAWINGS">FIG. 1</figref> is a block diagram of a system for performing optical tracking.
0010<figref idref="DRAWINGS">FIG. 2</figref> is a diagram of an example implementation of the optical tracking system of <figref idref="DRAWINGS">FIG. 1</figref>.
0011<figref idref="DRAWINGS">FIG. 3</figref> is a flowchart illustrating a process of the system(s) of FIGS. <b>1</b> and/or <b>2</b>.
0012<figref idref="DRAWINGS">FIG. 4A</figref> is a block diagram of an alternate implementation of the optical tracking system of <figref idref="DRAWINGS">FIG. 1</figref>.
0013<figref idref="DRAWINGS">FIG. 4B</figref> is a sideview of the optical tracking system of <figref idref="DRAWINGS">FIG. 4A</figref>.
0014<figref idref="DRAWINGS">FIG. 5</figref> is block diagram of a partial example implementation of the optical tracking system of <figref idref="DRAWINGS">FIGS. 4A and 4B</figref>.
0015<figref idref="DRAWINGS">FIG. 6</figref> is a flowchart illustrating a process of the systems of <figref idref="DRAWINGS">FIGS. 4A, 4B</figref>, and <b>5</b>.
0016<figref idref="DRAWINGS">FIGS. 7A, 7B</figref>, <b>7</b>C, and <b>7</b>D illustrate example implementations of the systems of one or more of <figref idref="DRAWINGS">FIGS. 1-6</figref>.
DETAILED DESCRIPTION
0017<figref idref="DRAWINGS">FIG. 1</figref> is a block diagram of a system <b>100</b> for performing optical tracking. In the example of <figref idref="DRAWINGS">FIG. 1</figref>, a user device <b>102</b> is illustrated that includes an optical tracking system <b>104</b>. The optical tracking system <b>104</b> is operable to detect light from a substantially planar region <b>106</b>. For example, the optical tracking system <b>104</b> may detect light reflected from a pointing object <b>108</b> (illustrated as a finger in the example of <figref idref="DRAWINGS">FIG. 1</figref>), so as to detect movement of the pointing object <b>108</b> through the substantially planar region <b>106</b>. Then, the optical tracking system <b>104</b> may determine coordinates describing the movement of the pointing object <b>108</b> within the two dimensions (i.e., in an x and/or y direction) of the substantially planar region <b>106</b>, and provide for translation of the coordinates into movement of a cursor <b>110</b> or other icon on a display <b>112</b>.
0018In the example of <figref idref="DRAWINGS">FIG. 1</figref>, the user device <b>102</b> may represent virtually any type of device that may be operated by a user (i.e., the user providing and moving the pointing object <b>108</b>). For example, the user device <b>102</b> may include one or more of a keyboard, a mouse, a wireless communications device, a personal digital assistant, a desktop computer, a tablet personal computer, a cell phone, a gaming device, and/or a laptop computer. Further, although the display <b>112</b> is illustrated separately in the example of <figref idref="DRAWINGS">FIG. 1</figref>, it should be understood that the user device <b>102</b> also may include, or may be associated with, a monitor or other display.
0019The optical tracking system <b>104</b> is operable to detect light from the substantially planar region <b>106</b> by, for example, effectively limiting a viewing field in which light is detected. For example, the optical tracking system <b>104</b> may provide only a limited number or distribution of light-sensitive pixels. As another example, the optical tracking system <b>104</b> may provide a larger number or distribution of light-sensitive pixels, and then discard information from all but specified ones of the pixels that correspond to the substantially planar region <b>106</b>.
0020Accordingly, the substantially planar region <b>106</b> may be understood to be included in a defined viewing field of the optical tracking system <b>104</b> (e.g., defined by appropriate provision, selection and/or activation of corresponding pixels). That is, as long as the pointing object <b>108</b> is moved within the viewing field of the optical tracking system <b>104</b> and within a certain distance of the user device <b>102</b>, then light reflected from the pointing object <b>108</b> may be detected and analyzed with respect to the substantially planar region <b>106</b>, for purposes of control of the cursor <b>110</b>. In this regard, the distance within which light reflected from the pointing object <b>108</b> is detected for purposes of control of the cursor <b>110</b> may be determined or designated by various techniques (as discussed below, for example, with respect to <figref idref="DRAWINGS">FIG. 2</figref>). Generally, however, it should be understood that the user may effectively determine this distance in practice, simply by noticing a distance at which an accuracy of control of the cursor <b>110</b> begins to suffer, and then staying comfortably within this distance during operation of the optical tracking system.
0021Based on the above description, it should be understood that designation of the substantially planar region <b>106</b> as such is not intended to imply the mathematical definition of a plane as having infinite extent and no thickness. Rather, the substantially planar region <b>106</b> represents a generally flat or level shape or surface within a space adjacent to the user device <b>102</b>, that, as just described, may be specified by appropriate provision, selection, and/or activation of pixels of the optical tracking system <b>104</b>. Therefore, the substantially planar region <b>106</b> does not necessarily represent, and is not limited to, a literal two-dimensional surface or space, but, rather, provides an effective two-dimensional space for purposes of control of the cursor <b>110</b>.
0022The more the substantially planar region <b>106</b> is (or can be) limited in thickness (e.g., by appropriate sensor/pixel selection), the less opportunity may exist for errors or inaccuracies in determining the movement of the pointing object <b>108</b>. For example, when the pointing object <b>108</b> includes a finger, as in the example of <figref idref="DRAWINGS">FIG. 1</figref>, an increased thickness of the substantially planar region <b>106</b> may result in inaccuracies resulting from surface inconsistencies in the finger through the substantially planar region <b>106</b>, as detected by the optical tracking system <b>104</b>.
0023Although the pointing object <b>108</b> is illustrated in the example of <figref idref="DRAWINGS">FIG. 1</figref> as a finger, it should be understood that virtually any type of pointing object may be used that is operable to provide a sufficient level of reflection of light for detection by the optical tracking system <b>104</b>. For example, a stylus or pen may be used, where the stylus or pen may have a defined shape (e.g., round or square). In some implementations, reflecting material may be added to, or incorporated into, the pointing object <b>108</b>, to increase an ease of detection by the optical tracking system <b>104</b>. In other implementations, a light source (e.g., an light-emitting diode (LED)) may be included on the pointing object <b>108</b>, in order to increase an amount of light detected by the optical tracking system <b>104</b>.
0024The cursor <b>110</b> is used to represent an example of a traditional type of cursor or other icon that may be controlled on the display <b>112</b> to obtain a desired action and/or result. For example, virtually any cursor control action of the cursor <b>110</b> that may be obtained by conventional mouse or touch-sensitive tracking surfaces may generally be provided on the display <b>112</b> by the optical tracking system <b>104</b>, using one or more of the techniques described below with respect to <figref idref="DRAWINGS">FIGS. 2-6</figref>. For example, movement of the cursor <b>110</b> to a desired portion of the display <b>112</b> may be performed, or selection of a particular file, document, or action that is designated on the display <b>112</b> may be performed. As a further example, a drawing function may be performed, in which movement of the cursor <b>110</b> provides a line drawing or similar effect on the display <b>112</b>. Also, specialized actions may be provided, including, for example, photo-editing functionality, web-browsing functionality, or gaming functionality.
0025The display <b>112</b> may be virtually any display that may be used with the user device <b>102</b>. For example, the display <b>112</b> may be integrated with the user device <b>102</b> (such as with a laptop computer, personal digital assistant, or mobile telephone), or may be separate from the user device <b>102</b> and in (wired or wireless) communication therewith (such as a monitor associated with a desktop computer, or with a television).
0026Further in <figref idref="DRAWINGS">FIG. 1</figref>, an optional surface <b>114</b> is shown in order to illustrate a capability of the optical tracking system <b>104</b> to detect surface-independent movements of the pointing object <b>108</b>. For example, in a case where the user device includes a keyboard, the surface <b>114</b> may represent a desk on which the keyboard rests. A user may control the cursor <b>110</b> simply by moving his or her finger (pointing object <b>108</b>) within the substantially planar region <b>106</b>. If the substantially planar region <b>106</b> is over the surface <b>114</b> (e.g., desk), then the user may trace his or her finger along the desk and within the substantially planar region <b>106</b>; however, it should be understood that operation of the optical tracking system <b>104</b> is not dependent on such contact between the finger and the desk to perform accurate optical tracking.
0027For example, if the keyboard (user device <b>102</b>) rests at the edge of a desk or other surface, then there may be no surface under the substantially planar region <b>106</b>, and the pointing object <b>108</b> may be moved in free and open space. As long as at least a part of the pointing object <b>108</b> moves within the substantially planar region <b>106</b>, then the desired action on the display <b>112</b> may be obtained.
0028Continuing the example of a keyboard, it may be the case that the user device <b>102</b> is a keyboard intended for use with television and/or media center systems (e.g., media centers that allow users to access computer files by way of a television). Such a keyboard may thus be primarily intended for use in a living room or other non-traditional space for operating a keyboard and/or controlling a display, where a desktop may not be practical or available. In these cases, the substantially planar region <b>106</b> may be provided adjacent to the keyboard (e.g., vertically from a top surface of the keyboard), so that movements of the pointing object <b>108</b> within a free space included in the substantially planar region <b>106</b> may be tracked without reference to, dependence on, or touching of, a physical surface such as the surface <b>114</b>.
0029Similarly, in other examples, the user device <b>102</b> may include a wireless communications device and/or a gaming device. Such devices, and similar devices, may be frequently used while being held in a hand of a user. In these cases, movement of the pointing object <b>108</b> may occur within the substantially planar region <b>106</b> in an open space adjacent to an edge surface of the user device <b>102</b>, so that cursor control actions or other actions may be obtained on a display of the user device <b>102</b>. Such implementations may allow, for example, a relatively larger display on the mobile device, since less space for user controls may be required.
0030In these and other implementations, the optical tracking system <b>104</b> may include optical components <b>116</b> that are operable to sense movements, including such surface-independent movements, and output pixel values corresponding thereto. Then, tracking logic <b>118</b> may be operable to receive the pixel values, and determine coordinates of the pointing object <b>108</b> within the substantially planar region <b>106</b> therefrom. Thus, the tracking logic <b>118</b> may provide for translation of the coordinates into an action on the display <b>112</b>, such as, for example, cursor control actions for controlling the cursor <b>110</b>.
0031For example, the optical components <b>116</b> may include one or more sensors, such as the sensors <b>120</b> and <b>122</b>. For example, the sensors <b>120</b> and <b>122</b> may operate by capturing light on grids of pixels on their respective surfaces, which may be formed by photosensitive diodes that also may be referred to as photosites, and that record an intensity or brightness of the detected light by accumulating a charge. The sensors <b>120</b> and <b>122</b> may include, for example, complementary metal-oxide-semiconductor (CMOS) sensors, or may include any other image sensor this is operable to detect light from the substantially planar region <b>106</b> and output a signal corresponding to an intensity or other characteristic of the light, such as, for example, a charge-coupled device (CCD) sensor. In some implementations, the sensors <b>120</b> and <b>122</b> may include CMOS image sensors having a linear response characteristic(s), so that a response of the sensors <b>120</b> and <b>122</b> varies linearly with an intensity of the detected light.
0032In the example of <figref idref="DRAWINGS">FIG. 1</figref>, the sensors <b>120</b> and <b>122</b> are each disposed at least partially within the substantially planar region <b>106</b>, and, more specifically, are disposed substantially along an axis <b>124</b> that is included within the substantially planar region <b>106</b>. For example, the axis <b>124</b> may be defined along a first row of pixels within the sensor <b>120</b> and a second row of pixels within the sensor <b>122</b>, so that these rows of pixels are included within the substantially planar region <b>106</b>. By using only these rows of pixels, light detected by the sensors <b>120</b> and <b>122</b> may substantially correspond only to light within the substantially planar region <b>106</b>.
0033In so doing, several advantages may be obtained in the example implementation of <figref idref="DRAWINGS">FIG. 1</figref>. For example, placement of the sensors <b>120</b> and <b>122</b> beside one another allows for a compact and discrete construction of the optical tracking system <b>104</b>. Also, restricting the field of view of the sensors <b>120</b> and <b>122</b> reduces an area of the pointing object <b>108</b> that is detected by the sensors <b>120</b> and <b>122</b>, which implies less opportunities for errors resulting from, for example, any surface irregularities on the pointing object <b>108</b>. Further, since less information is collected by the sensors <b>120</b> and <b>122</b> than if a wider field of view were employed, calculations to be performed by the tracking logic <b>118</b> may be reduced and/or simplified, and a reliability of results may be increased. Additionally, such construction and use of the sensors <b>120</b> and <b>122</b> allows for the use of 1-dimensional (1-D) sensors, which may be inexpensive compared to larger pixel arrays.
0034In <figref idref="DRAWINGS">FIG. 1</figref>, although the sensors <b>120</b> and <b>122</b> are illustrated and described as being included in the substantially planar region <b>106</b>, and although movement of the pointing object <b>108</b> is illustrated and described as occurring within the substantially planar region <b>106</b>, it should be understood that there is no requirement or limitation that movement of the pointing object <b>108</b> should or must be able to occur (and be detected) within an entirety of the substantially planar region <b>106</b>. For example, as illustrated and discussed below with respect to <figref idref="DRAWINGS">FIG. 2</figref>, various other optical components may be included in optical components <b>116</b>, such as lenses, light sources, or filters, and such optical components may be placed in between the sensors <b>120</b> and <b>122</b> and the pointing object <b>108</b>. Additionally, as described below with respect to <figref idref="DRAWINGS">FIG. 2</figref>, a “dead zone” may exist immediately outside of the optical components <b>116</b>, i.e., a limited region in which movement of the pointing object <b>108</b> may not be (sufficiently) accurately tracked.
0035In an implementation of the example of <figref idref="DRAWINGS">FIG. 1</figref>, a triangulation calculation is performed using the sensors <b>120</b> and <b>122</b> and the pointing object <b>108</b>. Specifically, for example, and as described in more detail with respect to <figref idref="DRAWINGS">FIG. 2</figref>, each sensor <b>120</b> and <b>122</b> may output pixel values from a row of pixels along the axis <b>124</b> to the tracking logic <b>118</b>, the pixel values corresponding to light reflected from the pointing object <b>108</b>. Then, the tracking logic <b>118</b> may determine a centroid or center of the pointing object <b>108</b> within the substantially planar region <b>106</b>, simply by, for example, taking a center-most pixel(s) from each of the two rows of pixels that register reflected images of the pointing object <b>108</b> along the axis <b>124</b>. Accordingly, the tracking logic <b>118</b> may perform a triangulation calculation using the two centroids, together with other pre-determined information about the optical components <b>116</b> (such as, for example, a known spacing between the sensors <b>120</b> and <b>122</b>, and/or a known spacing between each of the sensors <b>120</b> and <b>122</b> and corresponding lenses used to focus the light reflected from the pointing object <b>108</b> onto the sensors <b>120</b> and <b>122</b>).
0036Thus, the tracking logic <b>118</b> may determine, from the triangulation calculation, coordinates of the pointing object <b>108</b> within the substantially planar region <b>106</b>. For example, the tracking logic <b>118</b> may determine either relative or absolute coordinates of the pointing object. For example, determining relative coordinates may refer to determining a current coordinate of the pointing object <b>108</b> within the substantially planar region <b>106</b>, relative to an immediately-past coordinate, and without reference to any other frame of reference in or around the substantially planar region <b>106</b>. Such relative tracking is typically performed, for example, in many conventional mouse tracking devices, where movement of the mouse on a surface is not required to be within any particular defined field, but rather may occur on any suitable surface (with the user being responsible for orienting a corresponding cursor movement in a desired fashion relative to a display). Absolute coordinates, on the other hand, may refer to coordinates defined with respect to a fixed frame of reference. For example, if light from the substantially planar region <b>106</b> is detected immediately in front of the display <b>112</b>, then the perimeter of the display <b>112</b> may be used to define coordinates determined by the tracking logic <b>118</b>. As a result, in such examples, movement of the pointing object <b>108</b> in a particular region of the substantially planar region <b>106</b> and over a region of the display <b>112</b> will result in corresponding movement of the cursor <b>110</b> (or other action) within the corresponding display region.
0037Although the tracking logic <b>118</b>, and the optical tracking system <b>104</b> as a whole, is illustrated in the example of <figref idref="DRAWINGS">FIG. 1</figref> as being implemented as a single block or module within the user device <b>102</b>, it should be understood that some or all of the tracking logic <b>118</b> may be implemented outside of the user device <b>102</b>, and may be implemented in/by multiple instances and types of devices, peripherals, hardware, software, and/or firmware.
0038For example, the tracking logic <b>118</b> may include a processor (e.g., a micro-programmed control unit (MCU)) that is operable to control the sensors <b>120</b> and <b>122</b>, by, for example, providing power and timing information to the sensors <b>120</b> and <b>122</b>. In other words, for example, such a processor may be used as part of the (synchronized) selection and activation of desired rows of pixels of the sensors <b>120</b> and <b>122</b> that results in effective tracking of the pointing object <b>108</b> through the substantially planar region <b>106</b>, by, for example, limiting obtained pixel values from the sensors <b>120</b> and <b>122</b> to pixel values from rows of pixels on each of the sensors <b>120</b> and <b>122</b> that lie substantially along the axis <b>124</b>.
0039Additional computing resources (e.g., software or firmware) may be used to receive pixel values from, for example, the processor just mentioned, and perform calculations and other analysis thereof. For example, software may be used that has access to pre-defined information about the optical components <b>116</b> (e.g., a spacing between the sensors <b>120</b> and <b>122</b>), so that such software may use such information to perform the triangulation calculations referenced above and described in more detail below with respect to, for example, <figref idref="DRAWINGS">FIG. 2</figref>.
0040By way of example, then, elements of the tracking logic <b>118</b> may be implemented in a single component (which may be internal or external to the user device <b>102</b>), or in multiple components in communication with one another (any one, or all, of which may be internal or external to the user device <b>102</b>). For example, a processor within the user device <b>102</b> (e.g., a keyboard) may be in communication with a separate computing device (e.g., a desktop computer) by way of a serial port or other wired connection, or by way of a wireless connection, in order to transmit pixel values and/or full or partial results of calculations based on the pixel values.
0041Additionally, the tracking logic <b>118</b> may be directly or indirectly involved in providing results of the calculations (e.g., calculated coordinates of the pointing object <b>108</b>) for actual translation into an action on the display <b>112</b>. For example, in one implementation, the tracking logic <b>118</b> may be wholly responsible for translating relative coordinates of the pointing object <b>108</b> within the substantially planar region <b>106</b> into absolute coordinates associated with the frame of reference of the display <b>112</b>. However, such translation of relative coordinates of a tracking system (e.g., a conventional mouse) into absolute coordinates of a display may already be performed by existing systems. Therefore, it may be advantageous or efficient for the optical tracking system <b>118</b> to take advantage of existing software or firmware associated with the display <b>112</b>, the user device <b>102</b>, and/or a separate computing device (such as a desktop computer, not shown in <figref idref="DRAWINGS">FIG. 1</figref>). For example, the tracking logic <b>118</b> may output coordinates according to a format that matches an output of a conventional mouse, so that software or firmware receiving the coordinates may not require modification to operate with the optical tracking system <b>104</b>.
0042In addition to the various actions described above that may be provided with respect to the cursor <b>110</b> on the display <b>112</b>, it should be understood that other, secondary actions may be provided. For example, a movement of the pointing object <b>108</b> in a direction perpendicular to the substantially planar region <b>106</b> may cause the pointing object <b>108</b> either to begin intersecting the substantially planar region <b>106</b>, or to cease intersecting the substantially planar region <b>106</b>. Such movements may be detected by a corresponding presence or absence of reflected light detected by the sensors <b>120</b> and <b>122</b>, (e.g., a new determination of coordinates of the pointing object <b>108</b> within the substantially planar region <b>106</b>), and the secondary actions may be performed based thereon. For example, such movements may result in a secondary action such as a “clicking” or selection of a file, document, or hypertext link on the display <b>112</b> to which the cursor <b>110</b> is pointing. As another example of secondary actions that may be provided, movements within the substantially planar region <b>106</b> may be interpreted as gestures associated with particular functionality of the display <b>112</b>. For example, a rapid movement (or succession of movements) to the left within the substantially planar region <b>106</b> may be interpreted as a command to go “back” to a previous page within a browser, while a rapid movement to the right within the substantially planar region <b>106</b> may be interpreted as a command to go forward to a next page.
0043<figref idref="DRAWINGS">FIG. 2</figref> is a diagram of an example implementation of the optical tracking system <b>116</b> of <figref idref="DRAWINGS">FIG. 1</figref>. <figref idref="DRAWINGS">FIG. 2</figref> provides a more detailed view of a particular example of the sensors <b>120</b> and <b>122</b>, disposed along the axis <b>124</b> as described and illustrated above with reference to <figref idref="DRAWINGS">FIG. 1</figref>. Additionally, <figref idref="DRAWINGS">FIG. 2</figref> illustrates the substantially planar region <b>106</b>, as well as the pointing object <b>108</b>. <figref idref="DRAWINGS">FIG. 2</figref> also illustrates that the substantially planar region <b>106</b> includes, in the example of <figref idref="DRAWINGS">FIG. 2</figref>, a dead zone “L<sub>0</sub>” in which tracking of the pointing object <b>108</b> is limited or non-existent (e.g., due to non-overlap of fields of view of the sensors <b>120</b> and <b>122</b> within the dead zone L<sub>0</sub>).
0044Also, as should be understood from the above discussion with respect to <figref idref="DRAWINGS">FIG. 1</figref>, the illustrated outline of the substantially planar region <b>106</b> in <figref idref="DRAWINGS">FIG. 2</figref> is not intended to illustrate an absolute cut-off point or boundary, since, as explained, an effectiveness of the optical components <b>116</b> may diminish gradually over a distance therefrom. Thus, a design of the optical components <b>116</b> may be implemented with the intent that the substantially planar region <b>106</b> allows sufficient area for controlling the cursor <b>110</b> on the display <b>112</b>; however, it should be understood that if a user moves beyond this area, then control of the cursor <b>110</b> may diminish or cease. Nonetheless, in some implementations, physical perimeter(s) may be separately associated with the substantially planar region <b>106</b> and provided for a user. For example, the surface <b>114</b> may include a drawing surface that is attached or attachable to the user device <b>102</b>, on which a drawing perimeter is defined that is pre-calibrated to be safely within the substantially planar region <b>106</b>. In this way, a user may be assured of remaining within the substantially planar region <b>106</b> by staying within the identified perimeter, and, moreover, the optical tracking system <b>104</b> may be calibrated to use the drawing perimeter as a frame of reference for absolute tracking of the pointing object <b>108</b> with respect to the display <b>112</b>.
0045<figref idref="DRAWINGS">FIG. 2</figref> also illustrates examples of other components that may be included within the optical components <b>116</b>. For example, light source(s) <b>202</b> include, in the example of <figref idref="DRAWINGS">FIG. 2</figref>, a plurality of light-emitting diodes (LEDs), which emit light into the substantially planar region <b>106</b>. The light is reflected off of the pointing object <b>108</b> and received at the sensor <b>120</b> and the sensor <b>122</b> through a first lens <b>204</b> and a second lens <b>206</b>, respectively, as shown. Although three light-sources <b>202</b> are illustrated, it should be understood that more or fewer may be used. For example, no light sources <b>202</b> may be used in a case where ambient light is used to detect the pointing object <b>108</b>, or when the pointing object <b>108</b> itself includes a light emitting source.
0046As illustrated in the example of <figref idref="DRAWINGS">FIG. 2</figref>, then, the light sources <b>202</b> project light from the optical components <b>116</b>. This light is reflected from the pointing object <b>108</b>, and a portion of the reflected light that is within the substantially planar region <b>106</b> is detected by the sensors <b>120</b> and <b>122</b>. This light may be detected by a row of pixels at each of the sensors <b>120</b> and <b>122</b>. The two rows of pixels may each be analyzed by the tracking logic <b>118</b> to determine a centroid thereof, e.g., a centroid A′ is determined from a row of pixels from the sensor <b>120</b>, and a centroid A is determined from a row of pixels from the sensor <b>122</b>.
0047In the case where only a row of pixels is designated for use in each sensor <b>120</b> and <b>122</b>, calculation of the centroids A and A′ may simply involve determining a center-most pixel(s) in each designated row(s). Such a determination may be made quickly, easily, and reliably, even during rapid movements of the pointing object <b>108</b>. In other cases, it may be possible to use multiple rows of pixels of each of the sensors <b>120</b> and <b>122</b>, and then discard all pixel values outside of designated row(s) of each of the sensors <b>120</b> and <b>122</b> on the axis <b>124</b>. In still other cases, a plurality of rows of pixels may be read out of each of the sensors <b>120</b> and <b>122</b>, and then the centroids A and A′ may be calculated from each plurality, using known techniques (e.g., dividing a total shape of each plurality into known shapes, and then calculating the centroids A and A′ from a summation of the areas of the known shapes).
0048In the example of <figref idref="DRAWINGS">FIG. 2</figref>, the lenses <b>120</b> and <b>122</b> are illustrated as being placed along a “y” axis with a separation “a” between points “O” and “O′,” where the latter points are aligned with the centers of the lenses <b>204</b> and <b>206</b>, respectively. The sensor <b>120</b> and the sensor <b>122</b> are placed a distance “b” behind the lens <b>204</b> and the lens <b>206</b>, respectively. A center of the sensor <b>120</b> is placed a distance “d” above the point O′, while the sensor <b>122</b> is placed a distance “d” below the point O.
0049A filter <b>208</b> is placed between the lens <b>204</b> and the sensor <b>120</b>, and a filter <b>210</b> is placed between the lens <b>206</b> and the sensor <b>122</b>. The filters <b>208</b> and <b>210</b> may be used, for example, to filter out light that is not associated with the LEDs <b>202</b>, so that a sensitivity of the sensors <b>120</b> and <b>122</b> may effectively be increased. Additionally, or alternatively, light from the LEDs <b>202</b> may be modulated or otherwise controlled, in conjunction with control of a timing of image-taking by the sensors <b>120</b> and <b>122</b>, so as to synchronize projection of light and detection of reflected signal(s) from the pointing object <b>108</b> in an efficient and effective way.
0050With the information related to the centroids A and A′, as well as the known quantities a, b, O, and O′, the tracking logic <b>118</b> may determine x, y coordinates for the pointing object <b>108</b>, using, for example, various triangulation techniques. For example, an equivalence of angles θ<sub>1 </sub>and θ<sub>2 </sub>may be used to define two equations in the two unknowns x, y, in terms of the known quantities “a,” “b,” and the detected pixel lengths “OA,” and “O′A′” (i.e., a quantity of pixels between start and end points O, O′, A, and A′). Then, these equations may be solved for x, y to obtain Eqs. (1)-(2): <maths id="MATH-US-00001" num="1"><math overflow="scroll"><mtable><mtr><mtd><mrow><mi>x</mi><mo>=</mo><mfrac><mrow><mi>a</mi><mo></mo><mstyle><mtext> </mtext></mstyle><mo></mo><mi>b</mi></mrow><mrow><mrow><msup><mi>O</mi><mi>′</mi></msup><mo></mo><msup><mi>A</mi><mi>′</mi></msup></mrow><mo>-</mo><mi>OA</mi></mrow></mfrac></mrow></mtd><mtd><mrow><mi>Eq</mi><mo>.</mo><mstyle><mtext> </mtext></mstyle><mo></mo><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></mrow></mtd></mtr><mtr><mtd><mrow><mi>y</mi><mo>=</mo><mrow><mfrac><mi>a</mi><mn>2</mn></mfrac><mo>-</mo><mfrac><mrow><mi>a</mi><mo></mo><mstyle><mtext> </mtext></mstyle><mo></mo><msup><mi>O</mi><mi>′</mi></msup><mo></mo><msup><mi>A</mi><mi>′</mi></msup></mrow><mrow><mrow><msup><mi>O</mi><mi>′</mi></msup><mo></mo><msup><mi>A</mi><mi>′</mi></msup></mrow><mo>-</mo><mi>OA</mi></mrow></mfrac></mrow></mrow></mtd><mtd><mrow><mi>Eq</mi><mo>.</mo><mstyle><mtext> </mtext></mstyle><mo></mo><mrow><mo>(</mo><mn>2</mn><mo>)</mo></mrow></mrow></mtd></mtr></mtable></math></maths>
0051In order to obtain a desired range of coverage for the substantially planar region <b>106</b>, values of x, y may be inserted into Eqs. (1) and (2) to obtain required/workable ranges or values for a, b, OA, and/or O′A′. For example, the values of pixel lengths OA and O′A′ may be obtained for a desired x, y range and for known values of a and b, using Eqs. (3) and (4): <maths id="MATH-US-00002" num="2"><math overflow="scroll"><mtable><mtr><mtd><mrow><mrow><msup><mi>O</mi><mi>′</mi></msup><mo></mo><msup><mi>A</mi><mi>′</mi></msup></mrow><mo>=</mo><mfrac><mrow><mi>b</mi><mo></mo><mrow><mo>(</mo><mrow><mfrac><mi>a</mi><mn>2</mn></mfrac><mo>-</mo><mi>y</mi></mrow><mo>)</mo></mrow></mrow><mi>x</mi></mfrac></mrow></mtd><mtd><mrow><mi>Eq</mi><mo>.</mo><mstyle><mtext> </mtext></mstyle><mo></mo><mrow><mo>(</mo><mn>3</mn><mo>)</mo></mrow></mrow></mtd></mtr><mtr><mtd><mrow><mi>OA</mi><mo>=</mo><mfrac><mrow><mo>-</mo><mrow><mi>b</mi><mo></mo><mrow><mo>(</mo><mrow><mfrac><mi>a</mi><mn>2</mn></mfrac><mo>+</mo><mi>y</mi></mrow><mo>)</mo></mrow></mrow></mrow><mi>x</mi></mfrac></mrow></mtd><mtd><mrow><mi>Eq</mi><mo>.</mo><mstyle><mtext> </mtext></mstyle><mo></mo><mrow><mo>(</mo><mn>4</mn><mo>)</mo></mrow></mrow></mtd></mtr></mtable></math></maths>
0052As the pointing object <b>108</b> moves within the substantially planar region <b>106</b>, the pixel length end points A and A′ will shift on the sensors <b>122</b> and <b>120</b>, respectively. The optical components <b>116</b> may therefore improve resolution and/or coverage area by arranging for the shifting range of A and A′ to equal a length of the sensors <b>120</b> and <b>122</b>, thereby maximizing usage of an area(s) of the sensors <b>120</b> and <b>122</b>). For example, as shown, the sensors <b>120</b> and <b>122</b> may be arranged off-center from the lenses <b>204</b> and <b>206</b>, with the offset d. In this way, for example, full coverage of the substantially planar region <b>106</b> may be obtained, and most or all overlapping (and therefore wasting) of pixels of the sensors <b>120</b> and <b>122</b> may be eliminated. In other implementations, however, the points O and O′ may be defined at a center of the sensors <b>122</b> and <b>120</b>, respectively, or at another desired location.
0053A resolution of the image sensors <b>120</b> and <b>122</b> that may be used in the optical components <b>116</b> may be, for example 1024, 2048, or 4096 pixels. Of course, any appropriate resolution that is able to provide a needed or desired resolution for controlling the cursor <b>110</b> on the display <b>112</b> may be used. The lenses <b>204</b> and <b>208</b> may have, for example, focal lengths of 3.3 mm, and viewing angles of ninety-two degrees, or any other focal length or viewing angle that is operable to provide accurate tracking of the pointing object <b>108</b>.
0054In some implementations, the filters <b>208</b> and <b>210</b> may be provided as a film on the sensors <b>120</b> and <b>122</b>, respectively. In other implementations, the filters <b>208</b> and <b>210</b> may be provided as discrete components that are separate from the sensors <b>120</b> and <b>122</b>. In operation, the filters <b>208</b> and <b>210</b> prevent light that is reflected from the pointing object <b>108</b> but that does not match a wavelength of the source light(s) <b>202</b> from reaching the sensors <b>120</b> and <b>122</b>.
0055Further, as shown in <figref idref="DRAWINGS">FIG. 2</figref>, a material <b>212</b> may be included between the LEDs <b>202</b> and the substantially planar region <b>106</b>. The material <b>212</b> may include, for example, ground glass, and may serve, for example, to smooth out any non-uniformities that may be present in light from the light sources <b>202</b>. In this way, shadows, un-wanted reflections (e.g., from ancillary objects in the vicinity of the substantially planar region <b>106</b>), and other undesirable artifacts may be minimized, so that the desired reflections from the pointing object <b>108</b> may be detected reliably.
0056Although components of <figref idref="DRAWINGS">FIG. 2</figref> are illustrated to provide a particular example of the optical components <b>116</b>, it should be understood that many other implementations may be used. For example, as indicated by arrows <b>214</b>, the sensors <b>120</b> and <b>122</b> may be rotated along the axis <b>124</b> and in the plane of the substantially planar region <b>106</b>. Such rotations may serve either to reduce the dead zone L<sub>0</sub>, or to increase a range at which reflected light from the pointing object <b>108</b> in the substantially planar region <b>106</b> is detected.
0057For example, the sensors <b>120</b> and <b>122</b> may be angled inward toward one another along the axis <b>124</b>, so as to cause viewing areas of the sensors <b>120</b> and <b>122</b> to overlap closer to the y axis of <figref idref="DRAWINGS">FIG. 2</figref>, i.e., in an area within the example dead zone L<sub>0 </sub>of <figref idref="DRAWINGS">FIG. 2</figref>. In this way, movements of the pointing object <b>108</b> through the substantially planar region <b>106</b> may be tracked more closely to the user device <b>102</b>. Such implementations may be useful, for example, when the user device is compact in size, such as a mobile phone or personal digital assistant.
0058In other implementations, however, it may be desired to increase an area of the substantially planar region <b>106</b>, so that movements of the pointing object <b>108</b> may be tracked further from the user device <b>102</b> than in the illustrated example of <figref idref="DRAWINGS">FIG. 2</figref>. In this case, the sensors <b>120</b> and <b>122</b> may be angled more outward and/or away from one another along the axis <b>124</b>. It should be understood that such implementations may serve to increase an area of the substantially planar region <b>106</b>, with an accompanying increase in the dead zone L<sub>0</sub>. Such implementations may be useful, for example, where a greater range of detection is desired. In these and other implementations, modifications to the triangulation techniques described above (and/or below, with respect to <figref idref="DRAWINGS">FIG. 5</figref>) may be implemented to reflect the change(s) in configuration of the optical components <b>116</b> (e.g., the angling of the sensors <b>120</b> and <b>122</b> indicated by the arrows), as would be apparent.
0059<figref idref="DRAWINGS">FIG. 3</figref> is a flowchart <b>300</b> illustrating a process of the system(s) of FIGS. <b>1</b> and/or <b>2</b>. In the example of <figref idref="DRAWINGS">FIG. 3</figref>, a light source is projected from an optical tracking system into an adjacent area (<b>302</b>). For example, as described, light from the LEDs <b>202</b> may be projected so as to illuminate at least the substantially planar region <b>106</b>. Of course, other light sources may be used, including laser light sources. Also, as already mentioned with respect to <figref idref="DRAWINGS">FIG. 2</figref>, ambient light may be used, in which case no projected light may be required. Additionally, an amount or quantity of light may be selected for a given application; e.g., although three LEDs <b>202</b> are shown in <figref idref="DRAWINGS">FIG. 2</figref>, an appropriate number of one or more LEDs may be selected, as necessary or desired.
0060Further, in projecting the light, beam-forming components may be used within the optical components <b>116</b> that enhance an ability of the sensors <b>120</b> and <b>122</b> to detect light reflected from the pointing object <b>108</b>. For example, a light-forming technique may be used in which the source of light is located at a focal distance “f” of a cylindrical lens. In this example, the light source and the cylindrical lens produce light in a slice or fan region of produced light. Such a fan-shaped beam may be used to illuminate the pointing object <b>108</b>, and provide an effective way to minimize interference (e.g., scattering that may occur from an ancillary surface and/or from a tilting of the pointing object <b>108</b>). Such a fan beam also may provide an effective way to extend a detectable area in which the sensors <b>120</b> and <b>122</b> may accurately detect movement of the pointing object <b>108</b>, and may increase a sensitivity of the optical tracking system <b>104</b> to lateral movements of the pointing object <b>108</b>.
0061First pixel values are received from a first sensor, e.g., the sensor <b>120</b> (<b>304</b>), and second pixel values are received from a second sensor, e.g., the sensor <b>122</b> (<b>306</b>). For example, the sensor <b>120</b> and the sensor <b>122</b> may receive focused, filtered light reflected from the pointing object <b>108</b>, and may each output corresponding pixel values. As described above and illustrated in <figref idref="DRAWINGS">FIGS. 1 and 2</figref>, the sensors may be disposed at least partially in a common plane, and included in the substantially planar region <b>106</b>. Accordingly, the optical tracking system <b>104</b> may be made in a compact and modular form.
0062In receiving the pixel values, an output mode of the sensors <b>120</b> and <b>122</b> may be selected by the tracking logic <b>118</b> that appropriately outputs the desired pixel information, e.g., as a comparison voltage that provides information as to where the image(s) is and how many pixels are contained therein. The pixels may be read out according to certain pre-defined standards, e.g., pixel values below a certain threshold amount may not be kept, and activated pixels having a length of less than some predetermined amount (e.g., less than ten pixels) may be disregarded as noise.
0063Pixels may be read out according to a start signal and timing signal produced by the tracking logic <b>118</b>, within a defined exposure time (i.e., within a defined number of clock cycles). In some implementations, prior to the obtaining/reading of pixel values from the sensors <b>120</b> and <b>122</b>, a baseline reading of pixel values may be determined by, for example, reading out a certain number of pixels during a time when no light source is not being projected.
0064Centroids are determined from the pixel values (<b>308</b>). For example, during and/or after the reading/receiving of the pixel values, all pixels in a row (e.g., 2048 pixels) may be read out, and their positions recorded by the tracking logic <b>118</b>, so that start and end points of the pixel values corresponding to light reflected from the pointing object <b>108</b> within the substantially planar region <b>106</b> may be determined.
0065Using these start and end points, the tracking logic <b>118</b> may determine centroids A and A′, e.g., center-most pixel(s) from each of the two rows of pixels that register reflected images of the pointing object <b>108</b> along the axis <b>124</b>. As described above with respect to <figref idref="DRAWINGS">FIGS. 1 and 2</figref>, determination of each centroid may include a single pixel at the centroids A and A′, and, in other implementations, sub-pixel resolution may be obtained in determining the centroids A and A′.
0066Triangulation may then be performed based on the determined centroids, in order to determine coordinates of a pointing object (e.g., the pointing object <b>108</b>) during movement thereof through the substantially planar region <b>106</b> (<b>310</b>). For example, in the example of <figref idref="DRAWINGS">FIG. 2</figref>, the tracking logic <b>118</b> may use the distance “a” between centers of the lenses <b>204</b> and <b>206</b> and the distance “b” between the sensors <b>120</b>/<b>122</b> and lenses <b>204</b>/<b>206</b> to calculate from Eqs. (1) and (2) the x, y coordinates of the pointing object <b>108</b> during movement thereof through the substantially planar region <b>106</b>. Thus, absolute and/or relative position/movement information of a pointing object (e.g., the pointing object <b>108</b>) may be determined. For example, an absolute position within the substantially planar region <b>106</b> may be determined (e.g., determined absolutely with reference to some pre-defined perimeter coordinates/frame of reference, such as a boundary of the display <b>112</b>), and/or a relative motion of the pointing object <b>108</b> may be determined.
0067Finally, the determined coordinates may be provided for translation into a desired action(s) on a display (<b>312</b>). For example, as described above with respect <figref idref="DRAWINGS">FIG. 1</figref>, the tracking logic <b>118</b> may translate movement of the pointing object <b>108</b> into movement of the cursor <b>110</b> of the display <b>112</b>. As another example, the tracking logic <b>118</b> may provide the coordinates to an external system or computing resource for translation of the coordinates into the action on the display.
0068<figref idref="DRAWINGS">FIG. 4A</figref> is a block diagram of an alternate implementation of the optical tracking system of <figref idref="DRAWINGS">FIG. 1</figref>, and <figref idref="DRAWINGS">FIG. 4B</figref> is a sideview of <figref idref="DRAWINGS">FIG. 4A</figref> taken along cut-away line “A.” In the example of <figref idref="DRAWINGS">FIG. 4A</figref>, an optical tracking system <b>104</b><i>a </i>is illustrated that includes optical components <b>116</b><i>a </i>and tracking logic <b>118</b><i>a</i>. More specifically, the optical components <b>116</b><i>a </i>and the tracking logic <b>118</b><i>a </i>are operable to detect light from two substantially planar regions <b>106</b><i>a </i>and <b>106</b><i>b</i>. By determining x, y coordinate information of a pointing object <b>108</b><i>a </i>(illustrated as a stylus in <figref idref="DRAWINGS">FIGS. 4A and 4B</figref>) within each of the substantially planar regions <b>106</b><i>a </i>and <b>106</b><i>b</i>, additional information about the movement of the pointing object <b>108</b><i>a </i>may be determined beyond the two x, y coordinate determinations. For example, a relationship between x, y coordinates in the substantially planar region <b>106</b><i>a </i>and <i>x</i>, y coordinates in the substantially planar region <b>106</b><i>b </i>may be determined, and an action on the display <b>112</b> may be provided by the tracking logic <b>118</b><i>a</i>, based on the relationship.
0069For example, as may be seen in <figref idref="DRAWINGS">FIG. 4B</figref>, the pointing object <b>108</b><i>a </i>may be maintained by a user at a tilt with respect to the substantially planar region <b>106</b><i>a</i>, e.g., may form an angle with respect to both of the substantially planar regions <b>106</b><i>a </i>and <b>106</b><i>b</i>. Then, an existence, degree, or direction of the tilt may be used to indicate a “scrolling-up” action through a document, while a tilt in a second direction may be used to indicate a “scrolling-down” action. Tilt information also may be used to achieve various other effects, such as, for example, a “back” or “forward” command within a web browser.
0070In the example of <figref idref="DRAWINGS">FIGS. 4A and 4B</figref>, two sensors <b>402</b> and <b>404</b> are illustrated as being operable to detect light from the substantially planar regions <b>106</b><i>a </i>and <b>106</b><i>b</i>, respectively. As described in more detail below with respect to <figref idref="DRAWINGS">FIGS. 5 and 6</figref>, the tracking logic <b>118</b><i>a </i>may determine the x, y coordinates of the pointing object <b>108</b><i>a </i>within the substantially planar region <b>106</b><i>a </i>based on apparent size information of the pointing object <b>108</b><i>a </i>detected by the sensor <b>402</b> (e.g., a number and/or distribution of pixels read from the sensor <b>402</b>), relative to reference size information (e.g., relative to a known diameter of the pointing object <b>108</b><i>a</i>). Similarly, the sensor <b>404</b> may be used to determine the x, y coordinates of the pointing object <b>108</b><i>a </i>within the substantially planar region <b>106</b><i>b </i>based on apparent size information of the pointing object <b>108</b><i>a </i>detected by the sensor <b>404</b>, relative to reference size information.
0071Once the two sets of x, y coordinates are known, a relationship between a first part of the pointing object <b>108</b><i>a </i>that is within the substantially planar region <b>106</b><i>a </i>and a second part of the pointing object <b>108</b><i>a </i>that is within the substantially planar region <b>106</b><i>b </i>may be obtained. For example, where a distance D between the two sensors <b>402</b> and <b>404</b> is known, the two sets of x, y coordinates may be used to determine an angle θ<sub>3 </sub>formed by the pointing object <b>108</b><i>a </i>with the substantially planar region <b>106</b><i>b</i>. For example, the distance D may be considered to form a leg of a right triangle having the pointing object <b>108</b><i>a </i>as its hypotenuse, and having a portion of the substantially planar region(s) <b>106</b><i>a </i>and/or <b>106</b><i>b </i>as the third leg. Then, other information about such a triangle, including the angle θ<sub>3</sub>, may be determined using well-known geometrical relationships.
0072<figref idref="DRAWINGS">FIG. 5</figref> is block diagram of an example implementation of the optical tracking system <b>104</b><i>a </i>of <figref idref="DRAWINGS">FIGS. 4A and 4B</figref>, showing an example of the optical components <b>116</b><i>a</i>, and taken along a cut-away line B. Thus, in the example of <figref idref="DRAWINGS">FIG. 5</figref>, only the sensor <b>402</b> is illustrated, although it should be understood that the sensor <b>404</b> may be implemented in a similar way.
0073In <figref idref="DRAWINGS">FIG. 5</figref>, the pointing object <b>108</b><i>a </i>is illustrated as having a diameter <b>502</b>. For example, in the case of <figref idref="DRAWINGS">FIGS. 4A and 4B</figref>, the pointing object <b>108</b><i>a </i>may include a substantially cylindrical stylus having a known diameter “d” <b>502</b>. The sensor <b>402</b> may read out pixel values corresponding to light reflected from the pointing object <b>108</b><i>a</i>, and the tracking logic <b>118</b><i>a </i>may then determine apparent size information associated with the pointing object <b>108</b><i>a </i>from these pixel values.
0074For example, as illustrated in <figref idref="DRAWINGS">FIG. 5</figref>, the sensor <b>402</b> may read out start and end points of the pixel values, A′ and B′, respectively, corresponding to points A and B at ends of the diameter <b>502</b>. In this regard, it should be understood from the description of <figref idref="DRAWINGS">FIGS. 1 and 2</figref> above that the pixels read from the sensor <b>402</b> may be restricted to a designated and/or limited number of rows (e.g. a single row). In this way, light primarily from the substantially planar region <b>106</b><i>a </i>may be received at the sensor <b>402</b>, so that calculations may be simplified, and reliability may be increased, as described above with respect to <figref idref="DRAWINGS">FIGS. 1 and 2</figref>.
0075Then, the endpoints A′ and B′ may be considered to provide apparent size information associated with the pointing object <b>108</b><i>a</i>, since, as should be understood from <figref idref="DRAWINGS">FIG. 5</figref>, motion of the pointing object <b>108</b><i>a </i>within the substantially planar region <b>106</b><i>a </i>will correspond to changes in the start and end points A′ and B′. For example, as the pointing object <b>108</b><i>a </i>moves closer to the sensor <b>402</b> along an x axis, the distance A′B′ will increase, and, conversely, as the pointing object <b>108</b><i>a </i>moves farther from the sensor <b>402</b>, the distance A′B′ will decrease.
0076This apparent size information may thus be compared with reference size information, such as the known diameter <b>502</b>, in order to determine a location of the pointing object <b>108</b><i>a </i>within the substantially planar region <b>106</b><i>a</i>. For example, and similarly to the discussion above related to the triangulation calculations associated with <figref idref="DRAWINGS">FIG. 2</figref>, equivalent angles θ<sub>4 </sub>and θ<sub>5 </sub>may be used to determine x, y coordinates, based on known information including the distance “b” between the sensor <b>402</b> and a lens <b>504</b>.
0077For example, such calculations may include use of Eqs. (5) and (6): <maths id="MATH-US-00003" num="3"><math overflow="scroll"><mtable><mtr><mtd><mrow><mi>x</mi><mo>=</mo><mfrac><mrow><mi>b</mi><mo></mo><mstyle><mtext> </mtext></mstyle><mo></mo><mi>d</mi></mrow><mrow><mrow><msup><mi>O</mi><mi>′</mi></msup><mo></mo><msup><mi>B</mi><mi>′</mi></msup></mrow><mo>-</mo><mrow><msup><mi>O</mi><mi>′</mi></msup><mo></mo><msup><mi>A</mi><mi>′</mi></msup></mrow></mrow></mfrac></mrow></mtd><mtd><mrow><mi>Eq</mi><mo>.</mo><mstyle><mtext> </mtext></mstyle><mo></mo><mrow><mo>(</mo><mn>5</mn><mo>)</mo></mrow></mrow></mtd></mtr><mtr><mtd><mrow><mi>y</mi><mo>=</mo><mrow><mfrac><mi>d</mi><mi>b</mi></mfrac><mo></mo><mrow><mo>(</mo><mrow><mrow><msup><mi>O</mi><mi>′</mi></msup><mo></mo><msup><mi>B</mi><mi>′</mi></msup></mrow><mo>+</mo><mrow><msup><mi>O</mi><mi>′</mi></msup><mo></mo><msup><mi>A</mi><mi>′</mi></msup></mrow></mrow><mo>)</mo></mrow></mrow></mrow></mtd><mtd><mrow><mi>Eq</mi><mo>.</mo><mstyle><mtext> </mtext></mstyle><mo></mo><mrow><mo>(</mo><mn>6</mn><mo>)</mo></mrow></mrow></mtd></mtr></mtable></math></maths>
0078In other implementations, a size or diameter of the pointing object <b>108</b><i>a </i>may not be known. In this case, however, absolute tracking may be performed by a calibration procedure for the optical tracking system <b>116</b><i>a </i>(e.g. allowing the optical tracking system <b>116</b><i>a </i>to determine pixel lengths corresponding to a given pointing object at a plurality of locations within the substantially planar region <b>106</b><i>a</i>, and then using the determined size information from the calibration procedure as the known size information). Also, relative tracking may be performed, by comparing the apparent size information to reference size information determined with respect to the pointing object <b>108</b><i>a</i>. For example, by selecting a detected size of the pointing object <b>108</b><i>a </i>at a given time “t,” the tracking logic <b>118</b><i>a </i>may determine whether the pointing object <b>108</b><i>a </i>is moving closer or farther away from the sensor <b>402</b>, by judging current, apparent size information against the determined reference size information.
0079Also, although the pointing object <b>108</b><i>a </i>is illustrated in <figref idref="DRAWINGS">FIGS. 4A and 4B</figref> as a stylus, it should be understood that virtually any pointing object may be used. For example, the pointing object <b>108</b><i>a </i>may have a square or other sharply-delineated outline, which may allow the sensor <b>402</b> (and <b>404</b>) to easily detect the start and end points A′ and B′. In other implementations, as in <figref idref="DRAWINGS">FIG. 1</figref>, a finger, pen, or any other convenient pointing object may be used.
0080<figref idref="DRAWINGS">FIG. 6</figref> is a flowchart <b>600</b> illustrating a process of the systems of <figref idref="DRAWINGS">FIGS. 4A, 4B</figref>, and <b>5</b>. In the example of <figref idref="DRAWINGS">FIG. 6</figref>, parallel processes are illustrated that correspond to operations of the sensors <b>402</b> and <b>404</b>. For example, first pixel values may be received by the tracking logic <b>118</b><i>a </i>from the sensor <b>402</b>, which may be disposed beneath the sensor <b>404</b> (<b>602</b><i>a</i>), as shown in <figref idref="DRAWINGS">FIG. 4A</figref>. Second pixel values also may be received from the sensor <b>404</b>, which may be disposed above the sensor <b>402</b> (<b>602</b><i>b</i>). As should be apparent from <figref idref="DRAWINGS">FIG. 4A</figref> and <figref idref="DRAWINGS">FIG. 4B</figref>, the first and second sets of pixel values correspond to first and second parts, respectively, of the pointing object <b>108</b><i>a </i>that intersect both of the substantially planar regions <b>106</b><i>a </i>and <b>106</b><i>b</i>, also respectively.
0081Then, apparent size information may be determined for the first part of the pointing object <b>108</b><i>a </i>(<b>604</b><i>a</i>) and for the second part of the pointing object <b>108</b><i>a </i>(<b>604</b><i>b</i>), using the first and second pixel values, respectively. For example, as described above with respect to <figref idref="DRAWINGS">FIG. 5</figref> for the example of the single sensor <b>402</b>, a number of activated pixels between start and end points B′ and A′ may correspond to apparent size information of a diameter of the pointing object <b>108</b><i>a </i>(i.e., for first and second diameters corresponding to the first and second parts of the pointing object <b>108</b><i>a</i>, respectively), since this number of pixels will change as the pointing object <b>108</b><i>a </i>moves within the substantially planar regions <b>106</b><i>a </i>and <b>106</b><i>b. </i>
0082Once the apparent size information is determined, then first x, y coordinates of the first part of the pointing object <b>108</b><i>a </i>in the substantially planar region <b>106</b><i>a </i>may be obtained, e.g., using Eqs. (5) and (6), above (<b>606</b><i>a</i>). Similarly, second x, y coordinates of the second part of the pointing object <b>108</b><i>a </i>in the substantially planar region <b>106</b><i>b </i>may be obtained, e.g., using Eqs. (5) and (6), above (<b>606</b><i>b</i>).
0083Then, the first x, y coordinates of the first part of the pointing object <b>108</b><i>a </i>within the substantially planar region <b>106</b><i>a </i>may be provided by the tracking logic <b>118</b><i>a </i>for use in providing an action on a display (e.g., the display <b>112</b>) (<b>608</b>). In other words, once obtained, the first x, y coordinates detected with respect to the substantially planar region <b>106</b><i>a </i>may be used in much or exactly the same way as the x, y coordinates described above with respect to <figref idref="DRAWINGS">FIGS. 1-3</figref> to obtain a desired action on the display <b>112</b>. That is, the first x, y coordinates of the first part of the pointing object <b>108</b><i>a </i>may be used to provide cursor control actions, or any of the other actions described above with respect to <figref idref="DRAWINGS">FIGS. 1-3</figref>. In this regard, it should be understood that the sensor <b>402</b> and the substantially planar region <b>106</b><i>a </i>may provide such action(s) independently of the sensor <b>404</b> and the substantially planar region <b>106</b><i>b. </i>
0084Additionally, a relationship may be determined between the first x, y coordinates and the second x, y coordinates (<b>610</b>). For example, as described above with respect to <figref idref="DRAWINGS">FIG. 4</figref>, an angle of tilt that may exist between the substantially planar region <b>106</b><i>b </i>and the pointing object <b>108</b><i>a </i>may be determined, and used to provide an action on a display (e.g., the display <b>112</b>) (<b>612</b>).
0085For example, in one implementation, the user device <b>102</b> may be a keyboard, and the substantially planar regions <b>106</b><i>a </i>and <b>106</b><i>b </i>may be provided to a side of the keyboard. Then, a user may move the pointing object <b>108</b><i>a </i>oriented perpendicularly to the surface <b>114</b> (e.g., a desk) on which the keyboard may rest, i.e. in a vertical direction, so as to move the cursor <b>110</b> on the display <b>112</b> while, for example, browsing a web page. In this case, light detected by the sensor <b>402</b> within the substantially planar region <b>106</b><i>a </i>may be used to control the cursor <b>110</b> in moving around the display <b>112</b> (e.g., within a web browser). Then, if the user tilts the pointing object <b>108</b><i>a </i>toward him or herself, this may be detected by the sensor <b>404</b>, and interpreted by the tracking logic <b>118</b><i>a </i>as a command to scroll downward in the web page (or upward if the pointing object <b>108</b><i>a </i>is tilted away from the user). As another example, a tilt of the pointing object <b>108</b><i>a </i>to the left may be interpreted by the tracking logic as a command to go backward in the browser to a previous web page, while a tilt to the right may be interpreted as a command to go forward.
0086The tracking logic <b>118</b><i>a </i>also may be operable to implement variations on such commands by calculating other information about the relationship between the first x, y coordinates of the first part of the pointing object <b>108</b><i>a </i>in the substantially planar region <b>106</b><i>a</i>, and the second x, y coordinates of the second part of the pointing object <b>108</b><i>a </i>in the substantially planar region <b>106</b><i>b</i>. For example, the tracking logic <b>118</b><i>a </i>may determine a degree or extent of tilting of the pointing object <b>108</b><i>a </i>to supplement the actions described above. For example, in a case where a downward (i.e., toward the user) tilt causes a downward scrolling in a web page, a degree of the tilt (i.e., the angle θ<sub>3</sub>) may be measured, and a speed of the scrolling operation may be increased as the pointing object <b>108</b><i>a </i>is tilted more (i.e., as θ<sub>3 </sub>becomes more acute).
0087Although <figref idref="DRAWINGS">FIGS. 4A, 4B</figref>, and <b>5</b> are illustrated as using the sensors <b>402</b> and <b>404</b>, it should be understood that other configurations may be used. For example, in some implementations, the optical components <b>116</b><i>a </i>may detect light from the substantially planar regions <b>106</b><i>a </i>and <b>106</b><i>b </i>using the techniques described above with respect to <figref idref="DRAWINGS">FIGS. 1-3</figref>. That is, the operations of the sensors <b>120</b> and <b>122</b> described above with respect to <figref idref="DRAWINGS">FIGS. 2 and 3</figref> may be implemented to detect light from the substantially planar region <b>106</b><i>a</i>, and such operations may be duplicated by a second pair of sensors disposed above the sensors <b>120</b> and <b>122</b>, so as to detect light from the substantially planar region <b>106</b><i>b </i>above, and substantially in parallel with, the substantially planar region <b>106</b><i>a</i>. Then, the techniques of <figref idref="DRAWINGS">FIGS. 1-3</figref> may be used to determine x, y coordinates of the pointing object <b>108</b><i>a </i>in each of the substantially planar regions <b>106</b><i>a </i>and <b>106</b><i>b</i>, so that a relationship therebetween may be determined by the tracking logic <b>118</b><i>a</i>. In still other implementations, the sensors <b>120</b> and <b>122</b> of <figref idref="DRAWINGS">FIGS. 1-3</figref> may be used to determine first x, y coordinates of the first part of the pointing object <b>108</b><i>a </i>in the substantially planar region <b>106</b><i>a</i>, while the sensor <b>404</b> is used to determine x, y coordinates of the second part of the pointing object <b>108</b><i>a </i>in the substantially planar region <b>106</b><i>b. </i>
0088In yet another implementation, the sensors <b>402</b> and <b>404</b> may be considered to represent two pixel arrays (e.g., rows) of a single two-dimensional sensor. Then, the first pixel values and second pixel values may be read out (e.g., <b>602</b><i>a </i>and <b>602</b><i>b</i>) from the first and second pixel arrays (e.g., rows).
0089<figref idref="DRAWINGS">FIGS. 7A, 7B</figref>, <b>7</b>C, and <b>7</b>D illustrate example implementations of systems of one or more of <figref idref="DRAWINGS">FIGS. 1-6</figref>. In <figref idref="DRAWINGS">FIG. 7A</figref>, a keyboard <b>702</b> is illustrated as an example of the user device <b>102</b> of <figref idref="DRAWINGS">FIG. 1</figref>. A substantially planar region <b>704</b> may be associated with the keyboard <b>702</b>, as illustrated in <figref idref="DRAWINGS">FIG. 7A</figref>, and as should be understood from the above descriptions of <figref idref="DRAWINGS">FIGS. 1-6</figref>. Accordingly, control of the cursor <b>110</b> on the display <b>112</b> may be provided, and, moreover, it should be understood that a user may easily access the substantially planar region <b>704</b> during a typing operation or other use of the keyboard <b>702</b>, with minimal hand movement being required.
0090Also, as should be understood from the discussion of <figref idref="DRAWINGS">FIG. 1</figref>, the substantially planar region <b>704</b> may be adjacent to other portions, and in other orientations, than that illustrated in <figref idref="DRAWINGS">FIG. 7A</figref>. For example, the substantially planar region <b>704</b> may be adjacent to a top, front surface of the keyboard <b>702</b>, in a vertical direction and above the keyboard <b>702</b>. As also described with respect to <figref idref="DRAWINGS">FIG. 1</figref>, tracking of the pointing object <b>108</b> within the substantially planar region <b>704</b> may be performed without dependence on any physical surface on which the keyboard <b>702</b> may rest, so that surface-independent movement of the pointing object <b>108</b> through a free or open space adjacent the keyboard <b>702</b> may be tracked for control of the cursor <b>110</b>.
0091Finally in <figref idref="DRAWINGS">FIG. 7A</figref>, light from a substantially planar region <b>706</b> may be detected by an optical tracking system integrated with the display <b>112</b> itself. For example, a module(s) including the optical tracking system <b>104</b> or <b>104</b><i>a </i>may be disposed at a top, bottom, or side of the display <b>112</b>, so as to project the substantially planar region <b>706</b> in front of a screen of the display <b>112</b>. In this way, for example, the display <b>112</b> may effectively be turned into a touch-screen, so that a user may have the experience or feel of touching (or almost touching) a desired portion of the display <b>112</b>, in order, for example, to direct the cursor <b>110</b> or perform a drawing function across an area of the display <b>112</b>.
0092In the example of <figref idref="DRAWINGS">FIG. 7B</figref>, a personal digital assistant (PDA) <b>708</b> is illustrated, and may be used to provide optical tracking, where, for example, a substantially planar region <b>710</b> is detected at a bottom or side of the PDA <b>708</b>, and the resulting tracking may be performed with respect either to an integrated display <b>712</b> of the PDA, and/or an external display. In this way, a user may more easily work with the PDA <b>708</b> (or any other wireless communications device), despite a relatively small size of the device.
0093In the example of <figref idref="DRAWINGS">FIG. 7C</figref>, a mouse <b>714</b> is illustrated as detecting light from a substantially planar region <b>716</b>. For example, the mouse <b>714</b> may be used to provide conventional cursor-tracking functionality, while light from the substantially planar region <b>716</b> is detected at a side of the mouse <b>714</b>, in order to provide supplemental functionality, such as, for example, a drawing or scrolling function.
0094In the example of <figref idref="DRAWINGS">FIG. 7D</figref>, a keyboard <b>718</b> is illustrated as detecting light from a substantially planar region <b>720</b>, and, in particular, detects light reflected at a point <b>722</b> corresponding to a pointing object (not shown in <figref idref="DRAWINGS">FIG. 7D</figref>; e.g., the pointing object <b>108</b>). As shown, light from the substantially planar region <b>720</b> is detected from pointing object movement above the keyboard <b>718</b> and within a vertically-defined region over the keyboard <b>718</b>. In this way, for example, a user holding the keyboard <b>718</b> may control the cursor <b>110</b> without reference to any physical surface on which the keyboard <b>718</b> may rest. Such an implementation may be used, for example, by a user operating the display <b>112</b> as a television display, e.g., in a non-traditional setting for the keyboard <b>718</b>, such as a living room of the user.
0095Although <figref idref="DRAWINGS">FIGS. 7A-7D</figref> illustrate specific examples of the user device <b>102</b>, it should be understood that many other examples exist. For example, the user device <b>102</b> of <figref idref="DRAWINGS">FIG. 1</figref> also may generally represent other compact, portable computing devices, such as a cell phone, a tablet personal computer, and/or a portable gaming system. In the latter example, light from associated substantially planar region(s) may be used to allow various game functionalities to be implemented.
0096In still other example implementations, optical tracking system <b>104</b> may be implemented as a discrete module that may easily be inserted into, or integrated with, another component or device. For example, the optical tracking system <b>104</b> (or <b>104</b><i>a</i>) may be implemented in the context of a Personal Computer Memory Card International Association (PCMCIA) card, that may be inserted into a corresponding, standard slot of, for example, a laptop computer. In another implementation, such a module may be plugged into the keyboard <b>702</b> or other device using a Universal Serial Bus (USB) port or other connection technology.
0097Of course, any of the example implementations and techniques described above with respect to <figref idref="DRAWINGS">FIGS. 1-6</figref> may be used in the examples of <figref idref="DRAWINGS">FIGS. 7A-7D</figref>, and in the other examples just mentioned. For example, in any one of the examples of <figref idref="DRAWINGS">FIGS. 7A-7D</figref>, dual substantially planar regions may be used along the lines of <figref idref="DRAWINGS">FIGS. 4A and 4B</figref>, in order to provide the tilt detection functions described with respect thereto. Also, other features described with respect to <figref idref="DRAWINGS">FIGS. 1-6</figref> may be provided. For example, LEDs or other source lights may be included, as may be the various filters and/or beam-forming optics described above.
0098As described herein, optical tracking allows for various advantageous features, including, for example, direct finger cursor control, gesture detection capability, stylus inputs, a touch screen, and various other uses and applications. Described systems and methods provide good spatial resolution and accuracy, and responsive tracking speeds.
0099While certain features of the described implementations have been illustrated as described herein, many modifications, substitutions, changes and equivalents will now occur to those skilled in the art. It is, therefore, to be understood that the appended claims are intended to cover all such modifications and changes as fall within the true spirit of the embodiments of the invention.
Contents5
12 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7 Sheet 8 Sheet 9 Sheet 10 Sheet 11 Sheet 12
Every citation, both ways
| Document | Relation | Office | Cited during |
|---|---|---|---|
| US2011298708A1 | Cited by | United States of America | Pre-grant |
| USRE48054E | Cited by | United States of America | Search report |
| CN103345312A | Cited by | China | Search report |
| US9523771B2 | Cited by | United States of America | Applicant |
| US2015138085A1 | Cited by | United States of America | Pre-grant |
| US9936151B2 | Cited by | United States of America | Search report |
| EP2894546A1 | Cited by | European Patent Office (EPO) | Search report |
| US2002064382A1 | Cites | United States of America | Pre-grant |
| US2004178995A1 | Cites | United States of America | Pre-grant |
| US2006033713A1 | Cites | United States of America | Pre-grant |
| US2006176287A1 | Cites | United States of America | Pre-grant |
| US5317140A | Cites | United States of America | Pre-grant |
| US6100538A | Cites | United States of America | Pre-grant |
| US6362468B1 | Cites | United States of America | Pre-grant |
| US6421042B1 | Cites | United States of America | Pre-grant |
| US6838657B2 | Cites | United States of America | Pre-grant |
| US7034809B2 | Cites | United States of America | Pre-grant |
| US7202860B2 | Cites | United States of America | Pre-grant |
2 members in 1 office
Priority claims2
| Document | Office | Kind | Date |
|---|---|---|---|
| 26893705 | United States of America | A | |
| US20050268937 | – | – | – |
Members2
| Document | Office | Kind | |
|---|---|---|---|
| US2007103440A1 | United States of America | A1 | |
| US7534988B2 | United States of America | B2 |
60 transactions on the USPTO file
Allowed after 2 non-final rejections, 1 final rejection and 1 RCE.
- Non-final rejections
- 2
- Final rejections
- 1
- RCEs
- 1
- Appeals
- 0
Over time
Point at a mark for the transactionTransactions
| Event | Code | |
|---|---|---|
| Payment of Maintenance Fee, 12th Year, Large EntityM1553 | M1553 | |
| Correspondence Address ChangeC.ADB | C.ADB | |
| Recordation of Patent Grant MailedPGM/ | PGM/ | |
| Patent Issue Date Used in PTA CalculationAllowedPTAC | PTAC | |
| Email NotificationEML_NTR | EML_NTR | |
| Issue Notification MailedAllowedWPIR | WPIR | |
| Dispatch to FDCD1935 | D1935 | |
| Application Is Considered Ready for IssuePILS | PILS | |
| Issue Fee Payment VerifiedN084 | N084 | |
| Issue Fee Payment ReceivedIFEE | IFEE | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Notice of AllowanceAllowedMN/=. | MN/=. | |
| Notice of Allowance Data Verification CompletedAllowedN/=. | N/=. | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Paralegal or electronic terminal disclaimer approvedP574 | P574 | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Terminal Disclaimer FiledDIST | DIST | |
| Response after Non-Final ActionA... | A... | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Disposal for a RCE / CPA / R129AbandonedABN9 | ABN9 | |
| Request for Continued Examination (RCE)RCEX | RCEX | |
| Workflow - Request for RCE - BeginBRCE | BRCE | |
| Email NotificationEML_NTR | EML_NTR | |
| Mail Examiner Interview Summary (PTOL - 413)MEXIN | MEXIN | |
| Examiner Interview Summary Record (PTOL - 413)EXIN | EXIN | |
| Email NotificationEML_NTR | EML_NTR | |
| Mail Advisory Action (PTOL - 303)MCTAV | MCTAV | |
| Advisory Action (PTOL-303)CTAV | CTAV | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Response after Final ActionA.NE | A.NE | |
| Mail Post CardPST_CRD | PST_CRD | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Final Rejection (PTOL - 326)Final rejectionMCTFR | MCTFR | |
| Final RejectionFinal rejectionCTFR | CTFR | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Response after Non-Final ActionA... | A... | |
| Request for Extension of Time - GrantedXT/G | XT/G | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| PG-Pub Issue NotificationPG-ISSUE | PG-ISSUE | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Transfer Inquiry to GAUTI1050 | TI1050 | |
| IFW TSS Processing by Tech Center CompleteTSSCOMP | TSSCOMP | |
| Application Is Now CompleteCOMP | COMP | |
| Application Return from OIPEWROIPE | WROIPE | |
| Application Return TO OIPEROIPE | ROIPE | |
| Application Dispatched from OIPEOIPE | OIPE | |
| Application Is Now CompleteCOMP | COMP | |
| Cleared by L&R (LARS)L128 | L128 | |
| Referred to Level 2 (LARS) by OIPE CSRL198 | L198 | |
| IFW Scan & PACR Auto Security ReviewSCAN | SCAN | |
| Initial Exam Team nnIEXX | IEXX |
2 recorded assignments at the USPTO, latest first
- Now
Now: Held by
MICROSOFT TECHNOLOGY LICENSING LLC - 2014-12-09
Assignment of assignors interest.
Ownership change- From
- MICROSOFT CORPMICROSOFT CORPORATION
- To
- MICROSOFT TECHNOLOGY LICENSING LLC
Recorded 2014-12-09, Signed 2014-10-14
- 2009-04-13
Assignment of assignors interest.
Ownership change- From
- RANTA CRAIG SHE DEYONGZHAO TIANPENG
and 6 moreShow fewer
XIE JIANPINGMING HAILV LIANGXU JUNKONG YUANGUI HUAQIAO - To
- MICROSOFT CORPMICROSOFT CORPORATION
Recorded 2009-04-13, Signed 2005-10-26
6 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| Maintenance fee paymentMAFP | MAFP | |
| Fee paymentFPAY | FPAY | |
| AssignmentAS | AS | |
| Fee paymentFPAY | FPAY | |
| Information on status: patent grantGrantedPATENTED CASESTCF | STCF | |
| AssignmentAS | AS |
Numbers
- Publication
- 20070103440
- Publication, DOCDB
- 2007103440
- Publication, EPODOC
- US2007103440
- Application
- 11268937
- Application, DOCDB
- 26893705
- Application, EPODOC
- US20050268937
Titles
- English
- Optical tracker
Patent term adjustment
- A delay
- +159 daysthe office missed an examination deadline
- Applicant delay
- −93 days
- Net adjustment
- 66 days
Classification
- CPC, 1
- G06F3/0421
- IPC, 1
- G09G5 08
- USPC, 1
- 345166000