The present invention relates generally to an apparatus and method for processing data derived from a pose of an elongate object having a tip in contact with a plane surface.
When an object moves with respect to stationary references such as a ground plane, fixed points, lines or reference surfaces, knowledge of the object's inclination with respect to these references can be used to derive a variety of its parameters of motion as well as its pose. Over time, many useful coordinate systems and methods have been developed to track the pose of objects and to parameterize their equations of motion. For a theoretical background the reader is referred to textbooks on classical mechanics such as Goldstein et al., Classical Mechanics, 3rd Edition, Addison Wesley 2002.
In one specific field it is important to know the pose of an object to derive the position of its tip while it contacts a plane surface. Various types of elongate objects can benefit from knowledge of their pose and position of their tip, and more precisely the absolute position (in world coordinates) of their tip while it is in contact with a plane surface. These objects include walking canes when in touch with the ground, pointers when in touch with a display or projection surface, writing devices when in touch with a writing surface, and styluses when in touch with an input screen.
The need to determine the absolute position of the tip or nib is deeply felt in the field of input devices such as pens and styluses. Here, the absolute position of the tip has to be known in order to analyze the information written or traced by the user on the writing surface. Numerous teachings of pens and related input devices providing relative tip position and absolute tip position are discussed in the prior art. Some of these teachings rely on inertial navigation devices including gyroscopes and accelerometers as described in U.S. Pat. Nos. 6,492,981; 6,212,296; 6,181,329; 5,981,884; 5,902,968. Other techniques combine inertial navigation with force sensing as described in U.S. Pat. Nos. 6,081,261; 5,434,371. The prior art also teaches capturing and analyzing forces applied to the pen point in U.S. Pat. No. 5,548,092. Still other techniques rely on triangulation using signal receivers and auxiliary devices on or adjacent to the writing surface as found in U.S. Pat. Nos. 6,177,927; 6,124,847; 6,104,387; 6,100,877; 5,977,958; 5,484,966. It should be noted that various forms of radiation including short radio-frequency (RF) pulses, infra-red (1R) pulses, and ultrasound pulses have been taught for triangulation and related techniques. A few examples of yet another set of solutions employing digitizers or tablets are discussed in U.S. Pat. Nos. 6,050,490; 5,750,939; 4,471,162.
The prior art also addresses the use of optical systems to provide relative, and in some cases, absolute position of the tip of a pen or stylus on a surface. For example, U.S. Pat. No. 6,153,836 teaches emitting two light beams from the stylus to two receivers that determine angles with respect to a two-dimensional coordinate system defined within the surface. The tip position of the stylus is found with the aid of these angles and knowledge of the location of the receivers. U.S. Pat. No. 6,044,165 teaches integration of force sensing at the tip of the pen with an optical imaging system having a camera positioned in the world coordinates and looking at the pen and paper. Still other teachings use optical systems observing the tip of the pen and its vicinity. These teachings include, among others, U.S. Pat. Nos. 6,031,936; 5,960,124; 5,850,058. According to another approach, the disclosure in U.S. Pat. No. 5,103,486 proposes using an optical ballpoint in the pen. More recently, optical systems using a light source directing light at paper have been taught, e.g., as described in U.S. Pat. Nos. 6,650,320; 6,592,039 as well as WO 00217222 and U.S. Pat. Appl. Nos. 2003-0106985; 2002-0048404.
In some prior art approaches the writing surface is provided with special markings that the optical system can recognize. Some early examples of pens using special markings on the writing surface include U.S. Pat. Nos. 5,661,506; 5,652,412. More recently, such approach has been taught in U.S. Pat. Appl. 2003-0107558 and related literature. For still further references, the reader is referred to U.S. Pat. Nos. 7,203,384 and 7,088,440 and the references cited therein.
Most of the prior art approaches listed above are limited in that they yield relative position of the tip on the writing surface. Tablets and digitizers obtain absolute position but they are bulky and inconvenient. Of the approaches that provide absolute position of the tip without tablets by using optical systems, most rely on observing the relationship of markings provided on the writing surface to the tip of the pen. This approach is limiting it that it requires a specially-marked writing surface, which acts as a quasi-tablet.
In addition to being cumbersome, state-of-the-art pens and styluses employing optical systems usually generate a limited data set. In fact, most only provide data corresponding to the trace traversed on the writing surface. Meanwhile, there are many applications that could benefit from a rich stream of data from the pen or stylus. In fact, the prior art indicates many situations in which interactions between a user employing a pen or stylus and a machine, e.g., a computer, are limited. For a few examples of applications and systems that could benefit from a richer stream of data from the pen or stylus the reader is referred to U.S. Pat. Nos. 6,565,611; 6,502,114; 6,493,736; 6,474,888; 6,454,482; 6,415,256; 6,396,481 and U.S. Pat. Appl. Nos. 2003-0195820; 2003-0163525; 2003-0107558; 2003-0038790; 2003-0029919; 2003-0025713; 2003-0006975; 2002-0148655; 2002-0145587 and U.S. Pat. No. 6,661,920.
In view of the shortcomings of the prior art, it is the object of the invention to provide an apparatus and method for processing pose data derived from a pose of an elongate object such as a jotting implement, cane, pointer or a robotic arm. Specifically, it is an object of the invention to provide for processing of pose data derived in this manner and identification of a subset of the pose data for use as control data or input data in applications.
These and numerous other advantages will become apparent upon reading the detailed description in conjunction with the drawing figures.
The present invention provides a method for processing pose data derived from a pose of an elongate object whose tip is contacting a plane surface with one or more invariant features. In accordance with the method, the tip is placed on the surface and the physical pose of the elongate object is measured optically from on-board the elongate object with the aid of the invariant feature. The pose data corresponding to the pose is prepared and a subset of the pose data is identified. The subset is transmitted to an application such as a user application, where the subset can serve as command data or input data. The elongate object can undergo a motion while its tip is contacting a surface. Thus, in a preferred embodiment the method calls for periodically measuring the pose data at measurement times ti such that the pose data at successive measurement times ti can be used to describe the motion at a desired temporal resolution.
The subset can include all or a portion of orientation data that describe the orientation of the elongate object in space. The orientation data can include an inclination angle θ or any angle or set of angles describing orientation in suitable coordinates, e.g., polar coordinates. Alternatively, the subset can include all or a portion of position data of the tip on the surface. The position can be a relative position of the tip relative to any feature including one or more of the invariant features or an absolute position of the tip on the surface in world coordinates. The subset can also contain a mix of orientation and position data.
In one embodiment, the orientation of the elongate object is described by Euler angles and the subset of the pose data includes at least one Euler angle. In fact, in this embodiment the inclination angle θ can be simply the second Euler angle. In addition, the subset can contain a roll angle ψ (third Euler angle) and a rotation angle φ (first Euler angle). The orientation data contained can be used as any type of input. For example, the orientation data can represent control data that is used for executing commands in the application or input data that is entered into the application or simply stored in an appropriate format. Of course, the position data can also be used as any type of input, including control data and input data. It should be noted, that the subset can also contain all of the pose data, e.g., when the application is a motion-capture application.
The invariant features can be permanent or temporary, and spatial or temporal. The plane surface can be a jotting surface, such as a paper surface, a screen, a tablet, a pad or any other type of surface on which a user can perform a jotting operation. In this embodiment the elongate object is preferably a jotting implement such as a pen, pencil or stylus. In general, the elongate object can also be a pointer, a robotic arm or a cane. In fact, the elongate object is any object that whose pose can be used to derive input data.
The invention further provides an apparatus for processing pose data describing the motion of the elongate object whose tip is contacting the surface. The apparatus has a measuring arrangement for optically measuring the pose from on-board the elongate object. The measurement can be periodic at measurement times ti and the periodicity of this measurement is chosen depending on the application and resolution, e.g., temporal resolution, of pose and pose data required. The apparatus has a processor for preparing the pose data corresponding to the pose and identifying a subset of the pose data. A communication link is provided for transmitting the subset to an application.
The processor is preferably mounted on the elongate object. In applications where considerable data processing is performed by the processor, the processor can be remote. The communication link is preferably a wireless communication link.
The subset separated from the pose data by the processor can be sent to the application for further processing the subset, e.g., using it as input data, by using the same or a different communication link, depending on the location of the host running the user application for which the subset is used as input data. For example, the host is a computer and the application is a data file. In this case the subset can contain input data into the data file. Alternatively, the host is a digital device and the user application is an executable file for executing a command and the subset contains control data. The application can also be a motion-capture application for capturing the motion of the elongate object, or a trace-capture application for capturing the trace described by the tip of the elongate object on the surface during the motion.
The details of the invention will now be described in detail with reference to the drawing figures.
The present invention will be best understood by first referring to
Elongate object 14 is any type of generally elongated object whose pose when object 14 is stationary or in motion yields useful pose data 12. For example, elongate object 14 is a cane used for walking support and surface 18 is a walking surface, or elongate object 14 is a robotic arm and surface 18 is a work surface. In still other cases, elongate object 14 is a pointer and surface 18 a screen, or elongate object 14 is a jotting implement, such as a pen, pencil or stylus and surface 18 is a jotting surface. In the present embodiment elongate object 14 is a pointer and surface 18 is a screen or a tracing surface.
Elongate object 14 has an on-board measuring arrangement 22 for optically measuring its pose with the aid of one or more invariant features 32, 34, 36 on surface 18. In the present case all features 32, 34, 36 are on surface 18. In general, however, it is also possible to use features that are not in the plane of surface 18 if there is a sufficient number of features on surface 18.
In the present embodiment, invariant features are an edge 32, a reference point 34 and a surface structure 36. These invariant features are merely exemplary of the types of features that can be temporarily or permanently associated with surface 18 and be used for measuring the pose of object 14. Invariant features 32, 34, 36 are used in deriving a relative or absolute position of tip 16 on surface 18 and for measuring the remaining portion of the pose, i.e., the orientation of pointer 14. Preferably, the positions of invariant features 32, 34 and 36 are defined in world coordinates (Xo,Yo,Zo). Furthermore, if possible, the location of invariant features 32, 34 and 36 is preferably such that at least a subset of them is visible to arrangement 22 for all poses that object 14 is expected to assume.
A number of optical measurement methods using on-board arrangement 22 to recover pose of object 14 can be employed. In any of these methods arrangement 22 uses on-board elements to obtain pose data 12 in accordance with any well-known pose recovery technique including geometric invariance, triangulation, ranging, path integration and motion analysis.
In the preferred embodiment arrangement 22 is an optical measurement arrangement such as an imaging system or a scanning system mounted on pointer 14 for on-board determination of the pose with reference to one or more of invariant features 32, 34, 36 on surface 18.
Apparatus 10 has a processor 26 for preparing pose data 12 corresponding to the pose of pointer 14 and for identifying a subset 48 of pose data 12 required by an application 28. Specifically, application 28 uses subset 48 which may contain all or less than all of pose data 12. Note that processor 26 can be located on pointer 14 or be remote, as is the case in this embodiment.
A communication link 24 is provided for sending pose data 12 to application 28. Preferably, communication link 24 is a wireless communication link established with the aid of a wireless transmitter 30 mounted on pointer 14. In embodiments where processor 26 and application 28 are mounted on pointer 14, communication link 24 can be an electrical connection. In still other embodiments, communication link 24 can be a wired remote link.
During operation a user 38 holds pointer 14 in hand. User 38 places tip 16 of pointer 14 on surface 18 with invariant features 32, 34, 36 and executes a movement such that pointer 14 executes a motion 40. For better visualization, motion 40 is indicated in dashed lines 42, 44 that mark the positions assumed by tip 16 and end 46 of pointer 14 during motion 40.
For the purposes of this invention, line 42 is referred to as the trace of tip 16. Also, for the purposes of the present invention, motion 40 is defined to end at the time when tip 16 stops contacting surface 18.
Motion 40 may produce no movement of end 46 or tip 16, i.e., no trace 42. In fact, motion 40 is not limited by any parameter other than that tip 16 must remain in contact with surface 18. Thus, changes in orientation of pointer 14 are also considered to be motion 40, just as changes in position (i.e., change in x and y coordinates) of tip 16 on surface 18. In the present case, orientation of pointer 14 is described by inclination angle θ, rotation angle φ and roll angle ψ referenced with respect to a center axis C.A. of pointer 14. A change in at least one of these angles constitutes motion 40.
In the present case, tip 16 touches down on surface 18 at point 48. At the time of touch down center axis C.A. of pointer 14 is inclined to a surface normal Z′ at inclination angle θ equal to θo. Furthermore, rotation and roll angles φ, ψ are equal to φo, ψo respectively. For convenience, in the present embodiment angles θ, φ, ψ are Euler angles. Of course, other angles can be used to describe the orientation of pointer 14. In fact, a person skilled in the art will appreciate that any convention for describing the rotations of pointer 16 can be adapted for this description. For example, the four Caylyle-Klein angles or quaternions can be employed.
Center axis C.A. is collinear with the Z′ axis and it passes through tip 16 and the origin of non-rotated object coordinates (X′,Y′,Z′). In the passive rotation convention used herein objects coordinates will be attached to pointer 14 while pointer 14 is rotated from initial upright position.
Now,
A third counterclockwise rotation by third Euler angle ψ is applied to twice rotated object coordinates (X′″, Y′″, Z′″) as shown in
Now, referring back to
To describe the absolute pose of pointer 14 it is convenient to relate Euler rotated object coordinates describing the orientation of pointer 14 to world coordinates (Xo,Yo,Zo). To do this, one notes that the orientation of object axis Z′ in world coordinates (Xo,Yo,Zo) prior to the three Euler rotations is normal to plane (Xo,Yo). Second Euler angle θ defines the only counterclockwise rotation of object coordinates that is not about an object Z axis (this second rotation is about the X″=X′″ axis rather than axis Z′, Z″ or Z′″). Thus, Euler angle θ is an inclination angle θ between the completely Euler rotated object axis Z or axis C.A. and original object axis Z′, which is normal to plane (Xo,Yo) at the point of contact of tip 16.
Optical measuring arrangement 22 measures the pose of pointer 14 during motion 40 at measurement times ti and processor 26 prepares corresponding pose data 12. Pose data 12 consists of measured values of parameters (φ,θ,ψ,x,y,z) at measurement times ti. Invariant features 32, 34, 36 whose positions are defined in world coordinates (Xo,Yo,Zo) are employed by optical measuring arrangement 22 to express pose data 12 in world coordinates (Xo,Yo,Zo). The frequency of the periodic measurements depends on the use of pose data 12 and desired performance, e.g., temporal resolution. It should be noted that periodic measurement is not limited to any predetermined time or frequency schedule. In other words, the times between any two successive measurements of the pose can be arbitrary. Preferably, however, arrangement 22 measures the pose at a frequency that is high enough to obtain pose data 12 that describe motion 40 at the temporal resolution required by application 28.
Wireless transmitter 30 of communication link 24 sends pose data 12 or parameters (φ,θ,ψ,x,y,z) collected at measurement times ti to processor 26. Pose data 12 can be transmitted continuously, in bursts, in parts, at arbitrary or preset times or as otherwise desired. Processor 26 prepares a subset 48 of pose data 12, for example the absolute position (x,y) of tip 16 and sends it to application 28. Application 28 uses absolute position (x,y) of tip 16 at measurement times ti to chart trace 42 of tip 16 on surface 18 as pointer 14 executes motion 40. In other words, unit 28 recovers trace 42 corresponding to the movement of tip 16. Note that the resolution of trace 42 recovered by unit 28 can be improved by increasing the number of pose measurements or increasing the frequency of measurement times ti. It should be noted that pose data 12 should be formatted for appropriate communications between transmitter 30, processor 26 and application 28. Any suitable communication and formatting standards, e.g., IEEE interface standards, can be adapted for these purposes. For specific examples of formatting standards the reader is referred to Rick Poyner, LGC/Telegraphics, “Wintab™ Interface Specification: 16-bit and 32-bit API Reference”, revision of May 9, 1996; Universal Serial Bus (USB), “Device Class Definition for Human Interface Devices (HID)”, Firmware Specification, USB Implementers' Forum, Jun. 27, 2001 and six-degree of freedom interface by Ulrica Larsson and Johanna Pettersson, “Development and evaluation of a 6DOF interface to be used in a medical application”, Thesis, Linkopings University, Department of Science and Technology, Sweden, Jun. 5, 2002.
The remaining pose data 12, i.e., (φ,θ,ψ,z) can also be used in the present embodiment. Specifically, processor 26 can prepare additional subsets or send all of the remaining pose data as a single subset to application 28 or to a different application or device serving a different function. Any mix of orientation and position data derived from pose data 12 can be used in subset 48. In fact, in some embodiments processor 26 keeps all pose data 12 in subset 48 such that all pose data 12 is used by application 28. This is done when application 28 has to reconstruct the entire motion 40 and not just trace 42 of tip 16 on surface 18. For example, this is done when application 28 includes a motion-capture application. Once again, the temporal resolution of motion 40 can be improved by increasing the frequency of measurement times ti. Note that in this case parameters of pose data 12 that vary slowly are oversampled.
It should also be noted that surface 18 is plane and hence the value of parameter z does not change. Thus, z can be set at a constant value, e.g., z=0, and left out of pose data 12 to reduce the amount of data that needs to be transmitted by transmitter 30.
In
In step 58 all pose data 12 is selected and passed to a subset formatting or preparing step 60A. In step 60A pose data 12 is prepared in the form of subset 48A as required by application 28. For example, pose data 12 is arranged in a particular order and provided with appropriate footer, header and redundancy bits (not shown), or as otherwise indicated by data porting standards such as those of Rick Poyner, LGC/Telegraphics (op. cit.).
In step 62, only a portion of pose data 12 is selected. Three exemplary cases of partial selection are shown. In the first case, only position data is required by application 28. Hence, in a step 59B only position data (x,y,z) is selected and the remaining pose data 12 is discarded. In a subsequent step 60B, position data (x,y,z) is prepared in the form of subset 48B as required by application 28 and/or as dictated by the porting standards. In the second case, in a step 59C, only orientation data (φ,θ,ψ) is selected and the rest of pose data 12 is discarded. Then, in a step 60C, orientation data (φ,θ,ψ) is prepared in the form of a subset 48C for use by application 28. In the third case, in a step 59D, a mix of pose data 12, including some position data and some orientation data are selected and processed correspondingly in a step 60D to prepare a subset 48D.
A person skilled in the art will appreciate that the functions described can be shared between processor 26 and application 28, e.g., as required by the system architecture and data porting standards. For example, some preparation of subset 48 can be performed by application 28 upon receipt. It should also be noted that in some embodiments pose data 12 can be pre-processed by transmitter 30 or post-processed at any point before or after preparation of the corresponding subset 48 in accordance with any suitable algorithm. For example, a statistical algorithm, such as a least squares fit can be applied to pose data 12 derived at different measurement times ti or to successive subsets 48. Furthermore, quantities such as time derivatives of any or all parameters of pose data 12, i.e.,
can be computed. Also, various sampling techniques, e.g., oversampling can be used.
Subset 48 is transmitted to application 28 via a communication channel 72. Application 28 receives subset 48 as an input that is treated or routed according to its use. For example, in a step 64, subset 48 is used as control data. Thus, subset 48 is interpreted as an executable command 66 or as a part of an executable command. On the other hand, in a step 68, subset 48 is used as input data and saved to a data file 70.
In one embodiment, application 28 passes information to processor 26 to change the selection criteria for subset 48. Such information can be passed via communication channel 72 or over an alternative link, e.g., a feedback link 74. For example, application 28 requests subset 48A to be transmitted and uses subset 48A as input data for data file 70. At other times, application 28 requests subset 48C to be transmitted and uses subset 48C as command data for executable command 66. Alternatively, processor 26 can indicate a priori whether any subset 48 should be treated as input data or control data. In still another alternative, user 38 can indicate with the aid of a separate apparatus, e.g., a switch mounted on pointer 14 (not shown), whether subset 48 is intended as control data or input data. A person skilled in the art will recognize that there exist a large number of active and passive methods for determining the interpretation and handling of data being transmitted in subset 48 by both processor 26 and application 28.
In general, the optical measuring performed by on-board optical measuring arrangement can be implemented in a number of ways. For example,
An optical measuring system 108 is mounted on object 100 for performing on-board optical measurements of pose. In fact, system 108 is an imaging system or image capturing system for optically measuring the pose of object 100 using invariant feature 106. Imaging system 108 has a lens 110 and an image capturing device 112 in the form of an electronic optical sensor or pixel array positioned in an image plane 114 defined by lens 110. Preferably, lens 110 has a wide field of view Θ and a substantially single viewpoint for preserving 3-D perspective information of nearby surroundings. Lens 110 can include various optics including refractive, reflective and/or catadioptric optics accompanied by optical relays, mirrors, apertures, field flatteners, image guides and other elements, as will be appreciated by one skilled in the art. In fact, lens 110 should be selected as appropriate for imaging surface 104.
Array 112 has imaging pixels 116 positioned in image plane 114 described by orthogonal axes XI, YI. These axes are parallel to axes X and Y of rotated object coordinates. The Euler angles from non-rotated to rotated object coordinates are as indicated.
During operation, radiation 118 such as sunlight or artificial illumination is incident on surface 104. A scattered portion 118′ of radiation 118 travels to elongate object 110 at an angle of incidence θi to central axis C.A. More precisely, scattered portion 118′ such as that propagating along path 120 scattered from a point Pp of a corner of invariant feature 106 arrives within solid angle Θ and is imaged by imaging system 108 on image plane 114 at image point PI. Scattered portion 118′ from point Pp and from the remainder of feature 106 and plane 104 or their portions carries with it image information. This spatial intensity variation or image information is used to determine the pose of object 100 in accordance with any technique for recovering position from an image of surface 104 and feature 106 produced on imaging pixels 116 of array 112. A person skilled in the art will recognize that perspective imaging is particularly well-suited for this purpose. For more information on appropriate imaging optics and methods the reader is referred to U.S. patent application Ser. No. 10/640,942.
Another alternative for implementing an on-board optical measuring arrangement is shown in
Scanning system 138 has a source 140 of probe radiation 142, an arm 144, and a scan mirror 146 for directing probe radiation 142 at surface 134. Scanning system 138 uses a driver for driving scan mirror 146 to scan surface 134 and invariant features 136. For example, scan mirror 146 is a biaxial scan mirror driven by a biaxial driver. Mirror 146 directs radiation 142 at a scan angle α with respect to a mirror axis M.A., which in the present embodiment is parallel to a center axis C.A. of object 130. The driver varies scan angle σ in accordance with a scan pattern 148 to effectuate the scan of surface 134 and features 136. At a particular scan angle σ, radiation 142 is incident on surface 134 at a particular point Po and at an angle of incidence or inclination angle δ with respect to surface 134. Point Po moves over surface 134 and features 136 in accordance with scan pattern 148 as dictated by the driver and pose of object 130.
Probe radiation 142 scatters at point Po based on incident directions of probe radiation 142 to surface 134, frequency f of probe radiation 142, as well as physical characteristics of surface 134 and of invariant features 136. The response of a back-scattered portion 142′ of probe radiation 142 to surface 134 and features 136 can thus be described by temporal changes in the intensity of back-scattered portion 142′ as scanning occurs. In general, the response of back-scattered portion 142′ to surface 134 and to features 136 can include not only a change in intensity but also a polarization-based response. This response of back-scattered portion 142′ of probe radiation 142 to surface 134 and to invariant features 136 can be used to measure the pose of object 130. It should be noted that any invariant feature yielding a detectable reaction to probe radiation 142 and whose position in world coordinates is fixed can be used.
The pose of object 130 in 3-D space includes the position of tip 132 on surface 134 as well as the orientation of elongate object 130 in three dimensional space. In this embodiment, the position of tip 132 in world coordinates (Xo,Yo,Zo) is expressed by a vector Do and the orientation by Euler angles (φ,θ,ψ). This is particularly convenient, since the inclination of elongate object 130 to plane surface 134 described by an inclination angle θ between an axis of object 130, in this case axis C.A. and a normal to surface 134, i.e., axis Z′, and second Euler angle θ are equivalent.
Surface 134 and invariant features 136A and 136B cause a temporal intensity variation in back-scattered portion 142′ corresponding to scan point Po of probe radiation 142 traversing them. The temporal intensity variation of back-scattered portion 142′ is measured by a detector 150. In the present embodiment, detector 150 and an optic 152, e.g., a beam-splitter, are provided on object 130 to direct back-scattered portion 142′ of probe radiation 142 to detector 150 for detecting the intensity variation. The pose of object 130 is obtained from the knowledge of scan pattern 148, surface 134 and invariant features 136 in accordance with any suitable spatio-temporal scanning technique. Additional knowledge such as inclination angle θ or second Euler angle and third Euler angle ψ can be employed in deriving absolute position of tip 132. Angles θ and ψ can be obtained from an inclinometer (not shown) or any other apparatus and/or method. For some specific examples of scanning techniques that can be used in measuring the pose of object 130 reader is referred to U.S. Pat. No. 7,088,440.
In still other embodiments the on-board optical measuring arrangement can combine elements of imaging and scanning in a hybrid system. For example, pixel arrays with passive imaging pixels and active illumination pixels can be used to form hybrid imaging and scanning elements. In addition, systems with distinct points of view can be used to take advantage of stereo imaging and scanning techniques. In still other embodiments, one can use an optical system having a pixel array that operates in a projection rather than imaging mode, i.e., the optics associated with this system do not perform only imaging but also project radiation from the pixel array. A person skilled in the art will recognize that there exist a large number of alternatives for constructing the optical measuring arrangement.
A housing 210 is mounted at a top end 212 of pen 200. Housing 210 has an optical measuring arrangement 214 for optically measuring the pose of pen 200 from on-board pen 200. Optical measuring arrangement 214 is an imaging system, a scanning system or a hybrid system. Surface 204 of paper 206 has invariant features 216A, 216B, 216C, and 216D in the form of paper edges. Features 216 are used by optical measuring arrangement 214 to measure the pose of pen 200.
Housing 210 holds a processor 218 for preparing pose data corresponding to the pose measured by optical measuring arrangement 214 and identifying a subset 220 of the pose data. A transmitter 222 is provided in housing 210 for transmitting subset 220 to an application 224 via a wireless communication link 226. Since the elements in housing 210 and their operation have been described above they will not be addressed in detail in this embodiment.
A user holds pen 200 in hand 228 and moves it while contacting surface 204 to produce marks representing handwriting, for example. Hand 228 is indicated in a dashed outline for better visualization. A pressure sensor or other device (not shown) ascertains contact between nib 202 and surface 204. While the user is jotting, optical measuring apparatus periodically measures the pose of pen 200. In particular, while pen 200 is in motion corresponding to jotting, optical measuring arrangement 214 measures the pose periodically at measurement times ti such that the pose data describes the motion of pen 200 in sufficient detail to be useful in application 224.
For example, when application 224 is a general motion-capture application the frequency of measurement times ti is on the order of 75 Hz. In some motion-capture applications such as biometric applications requiring precise knowledge of the motion pen 200, e.g., to derive a biometric of hand 228, more frequent measurement times ti, e.g., in excess of 100 Hz can be used. In particular, such precise knowledge can be required when the biometric application is a user verification application. In another embodiment, application 224 is a trace-capture application for capturing traces 230A, 230B and 230C marked by pen 200 on paper 206. More precisely, application 224 is an on-line or off-line handwriting recognition application requiring that measurement times ti be on the order of 100 Hz (Δt= 1/100 s) to properly recognize handwriting. Another application 224 may require that a distance Δs that nib 202 moves on paper surface 204 between successive measurements be on the order of 1/200 of an inch or about 0.12 mm. In still another embodiment, the trace-capture application can be a signature verification application that can require higher precision than handwriting recognition. It should be noted that the biometric application can also perform user identification and/or signature verification. In the present embodiment, application 224 is an on-line handwriting recognition application and measurement times ti are repeated at a frequency on the order of 100 Hz.
During operation the user moves hand 228 translating to a motion of pen 200 resulting in ink traces 230 on surface 204 of paper 206. Traces 230 are produced when nib 202 contacts surface 204 at a writing point during the motion. Optical measuring arrangement 214 measures the pose of pen 200 periodically at measurement times ti with the aid of invariant features 216 while traces 230 are being produced.
A first writing point Pwdn, sometimes referred to as pen-down, and a last writing point Pwup, sometimes referred to as pen-up, are indicated on trace 230A which nib 202 produced during a motion 232 of pen 200. Also indicated is an intermediate writing point Pwm at a location at which nib 202 was located during a specific measurement time tm. Two writing points at successive measurement times tn and tn+1 are also shown and, for illustrative purposes, a time duration Δt between them. Trace 230B is shown in the process of being written by the user. Trace 230C has already been written, and two writing points at successive measurement times tn and tn+1 are shown separated by a distance Δs.
Application 224 is an on-line handwriting recognition application and so the frequency of measurement times ti between pen-down and pen-up points for each trace 230A, 230B and 230C is on the order of 100 Hz such that time duration Δt is about 1/100 s. Therefore, pose of pen 200 is measured by arrangement 214 with a temporal resolution of about 1/100 s.
Processor 218 prepares pose data corresponding to the succession of poses assumed by pen 200 in motions executed between pen-down and pen-up points. Processor 218 also identifies the pose data this is required in subset 220 to run application 224. In some handwriting recognition applications, subset 220 need only contain the absolute positions of nib 202 at measurement times ti corresponding to writing points Pwi. In other words, subset 220 only contains position data of nib 202 on surface 204 rather than orientation data of pen 200. Furthermore, the locations of writing points Pwi are expressed by corresponding vectors Di in global coordinates (Xo,Yo,Zo) having an origin at the top right corner of paper 206.
In an alternative embodiment, handwriting recognition application 224 requires orientation data in subset 220. For example, an on-line handwriting recognition application 224 requires inclination angle θ to be contained in subset 220. Note that inclination angle θ is also the second Euler angle. Still other handwriting recognition application 224 requires subset 220 to contain more or even all orientation data, i.e., all three Euler angles. In fact, processor 218 can be informed by application 224 of its particular requirements at any given time with respect to subset 220, e.g., via communication link 226. In cases where subset 220 is to contain additional information, such as first or higher-order derivatives of any combination of or all position and orientation data, e.g., second order derivatives
these can either be computed by processor 218 and included in subset 220, or they can be computed by application 224, as convenient.
In an alternative embodiment, pen 200 is a stylus that leaves no traces 230. In other words, nib 202 is a point that makes no markings. In this embodiment surface 204 does not have to be a paper surface; it can be replaced by any plane surface on which jotting can be performed. Otherwise the method is the same as described above.
Tip 252 is placed on a plane surface 256 with invariant features 258A, 258B, 258C, and 258D. The measurement arrangement relies on features 258 for periodically measuring the pose of stylus 250 at measurement times ti when tip 252 contacts surface 256. The processor prepares pose data corresponding to the pose and identifies a subset 260 to be transmitted. In the present case, subset 260 contains all pose data and is transmitted after each measurement time ti with a time stamp, also referenced by ti. Position data is expressed in the form of a vector Di in world coordinates (Xo,Yo,Zo) selected by the optical measurement arrangement. Orientation data is expressed in Euler angles.
Transmitter 262 transmits subset 260 via communication links 264A, 264B, 264C and 264D to various devices having resident applications requiring subset 260. Specifically, link 264A connects to a network 266 that in turn connects to a computer 268, e.g., a personal computer that runs an application 270 requiring subset 260. Network 266 can be any type of network, including the internet, a local area network (LAN), a telephone network or any network capable of transmitting subset 260. Link 264B connects to a local host 272, e.g., a host computer, which is in communication with computer 268 via web 274. It should be noted that application 270 can be shared between computer 268 and local host 272, or each can use set 260 for its own separate application. Alternatively, local host 272 can serve as a relay computer only. Link 264C connects directly to computer 268 and may be a short-distance link, e.g., a link which is only active when stylus 250 is operating in proximity to computer 268. Link 264D connects to a device 276 running another application 278. For example, device 276 is a personal digital assistant (PDA) or a cellular telephone. In fact, link 264D can be an infrared link or an ultrasound link, in which case a corresponding transmitter is used to replace wireless transmitter 262. It should be noted that stylus 250 can communicate via any combination of links 264 with any device it needs to be in communication with at any given time. The devices may use links 264 to communicate their availability and subset preferences to stylus 250 at any time.
During operation, stylus 250 can include in subset 260 absolute position data or vector Di expressed in world coordinates. Alternatively, stylus 250 can include in subset 260 relative position data or vector Dri in relative coordinates (Xr,Yr,Zr). In still another alternative, subset 260 includes relative position data with respect to the previous position, i.e., vector ΔD=Dri−Dri−1. That is because some applications require only knowledge of the relative position of tip 252. It should also be noted that the processing of pose data and identification of subset 260 is a task that can be shared between pen 250 and any other devices. In fact, the processor required for processing the pose to derive the pose data and identify subset 260 can reside entirely on another device, e.g., on computer 268.
In a second step 284, a processor in the intended host (local host or remote host, as the case may be) determines the requirements for subset 260. This selection can be made based on an intended application 300. For example, when application 300 only requires the parameters already contained in subset 260, then subset 260 is forwarded to step 286 for preparation and direct use. Alternatively, when application 300 requires additional parameters, subset 260 is forwarded to step 288 for derivation of these additional parameters.
For example, the additional parameters are derivatives of one or more of the parameters in subset 260. Thus, subset 260 is sent to a differentiation module 290 and then to a preparation module 292 for supplementing subset 260 with the derivatives. In the example shown, time derivatives of Euler angles φ and θ are required and thus, supplemented and prepared subset 260′ contains these time derivatives. Alternatively, statistical information about one or more of the parameters in subset 260 are required. Thus, subset 260 is sent to a statistics module 294 and then to a preparation module 296 for supplementing subset 260 with the statistical information. In the present example, the statistical information is a standard deviation of second Euler angle θ. Thus, supplemented and prepared subset 260″ contains the parameters of subset 260 and standard deviation of angle θ.
A person skilled in the art will appreciate that the functions described can be shared between local and remote hosts as well as application 300, e.g., as required by the system architecture and data porting standards. For example, some preparation and supplementing of subset 260 can be performed by application 300 upon receipt.
Subset 260 is transmitted to application 300 for use as an input that is treated or routed according to its use. For example, in a step 302, subset 260′ is used as control data. Thus, subset 260′ is interpreted as an executable command 304 or as a part of an executable command and used in an executable file 310. On the other hand, in a step 306, subset 260″ is used as input data and saved to a data file 308.
In one specific application, application 300 is a trace-capture application and subset 260′ is used as control data in accordance with standard Boolean logic. Specifically, application includes a Boolean logic symbol reformatting function to translate the control data into a Boolean logic command, e.g., OR, AND or XOR.
A user 326 employs jotting implement 320 by placing its tip 328 on surface 322 and executing motions to generate pose data. Pose data is processed into subsets and transmitted to a variety of user devices that include, but are not limited to, a mainframe computer 330, a joystick 332, a cellular telephone 334, a personal computer 336 and a personal digital assistant 338. Each of these devices uses the appropriate portion of the subset. For example, joystick 332 strips all parameters other than Euler angles φ, θ and uses these as control data. Alternatively, joystick 332 retains Euler angle ψ and uses it as control data to emulate an activation button function. On the other hand, cellular telephone 334 uses Euler angles to select dial numbers and position data as control data to execute a dial command.
It should be noted that the elongate object can be any type of elongate device whose physical pose can yield useful data. Thus, although the above examples indicate that the elongate object is a jotting implement, pointer, cane, or robotic arm other elongate objects can be used. Also, the subset identified form the pose data can be supplemented with various additional data that may be derived from other devices that are or are not on-board the elongate object.
Furthermore, the pose data and/or data in the subset can be encrypted for user protection or other reasons, as necessary.
It will be evident to a person skilled in the art that the present invention admits of various other embodiments. Therefore, its scope should be judged by the claims and their legal equivalents.
Number | Name | Date | Kind |
---|---|---|---|
4070649 | Wright, Jr. et al. | Jan 1978 | A |
4471162 | Aono et al. | Sep 1984 | A |
5103486 | Grippi | Apr 1992 | A |
5166668 | Aoyagi | Nov 1992 | A |
5215397 | Taguchi et al. | Jun 1993 | A |
5226091 | Howell | Jul 1993 | A |
5294792 | Lewis et al. | Mar 1994 | A |
5333209 | Sinden et al. | Jul 1994 | A |
5434371 | Brooks | Jul 1995 | A |
5477012 | Sekendur | Dec 1995 | A |
5484966 | Segen | Jan 1996 | A |
5517579 | Baron | May 1996 | A |
5533141 | Futatsugi et al. | Jul 1996 | A |
5544255 | Smithies et al. | Aug 1996 | A |
5548092 | Shriver | Aug 1996 | A |
5577135 | Grajski et al. | Nov 1996 | A |
5581276 | Cipolla et al. | Dec 1996 | A |
5587558 | Matsushima | Dec 1996 | A |
5640589 | Takayama et al. | Jun 1997 | A |
5647017 | Smithies et al. | Jul 1997 | A |
5652412 | Lazzouni et al. | Jul 1997 | A |
5661506 | Lazzouni et al. | Aug 1997 | A |
5694153 | Aoyagi et al. | Dec 1997 | A |
5717168 | LeBuisser et al. | Feb 1998 | A |
5737740 | Henderson et al. | Apr 1998 | A |
5748808 | Taguchi et al. | May 1998 | A |
5750939 | Makinwa et al. | May 1998 | A |
5768417 | Errico et al. | Jun 1998 | A |
5774602 | Taguchi et al. | Jun 1998 | A |
5781661 | Hiraiwa et al. | Jul 1998 | A |
5818955 | Smithies et al. | Oct 1998 | A |
5850058 | Tano et al. | Dec 1998 | A |
5852434 | Sekendur | Dec 1998 | A |
5870492 | Shimizu et al. | Feb 1999 | A |
5902968 | Sato et al. | May 1999 | A |
5930380 | Kashi et al. | Jul 1999 | A |
5939702 | Knighton et al. | Aug 1999 | A |
5959617 | Bird et al. | Sep 1999 | A |
5960124 | Taguchi et al. | Sep 1999 | A |
5977958 | Baron et al. | Nov 1999 | A |
5981884 | Sato et al. | Nov 1999 | A |
6031936 | Nakamura | Feb 2000 | A |
6044165 | Perona et al. | Mar 2000 | A |
6050490 | Leichner et al. | Apr 2000 | A |
6064751 | Smithies et al. | May 2000 | A |
6081261 | Wolff et al. | Jun 2000 | A |
6084985 | Dolfing et al. | Jul 2000 | A |
6091835 | Smithies et al. | Jul 2000 | A |
6100877 | Chery et al. | Aug 2000 | A |
6104387 | Chery et al. | Aug 2000 | A |
6104388 | Nagai et al. | Aug 2000 | A |
6108444 | Sydea-Mahmood | Aug 2000 | A |
6111565 | Chery et al. | Aug 2000 | A |
6124847 | Chery et al. | Sep 2000 | A |
6130666 | Persidsky | Oct 2000 | A |
6147681 | Chery et al. | Nov 2000 | A |
6153836 | Goszyk | Nov 2000 | A |
6167376 | Ditzik | Dec 2000 | A |
6177927 | Chery et al. | Jan 2001 | B1 |
6181329 | Stork et al. | Jan 2001 | B1 |
6184873 | Ward et al. | Feb 2001 | B1 |
6188392 | O'Connor et al. | Feb 2001 | B1 |
6208330 | Hasegawa et al. | Mar 2001 | B1 |
6212296 | Stork et al. | Apr 2001 | B1 |
6213398 | Southworth et al. | Apr 2001 | B1 |
6243503 | Teufel et al. | Jun 2001 | B1 |
6249274 | Svancarek et al. | Jun 2001 | B1 |
6262719 | Bi et al. | Jul 2001 | B1 |
6292177 | Holtzman et al. | Sep 2001 | B1 |
6330359 | Kawabata | Dec 2001 | B1 |
6334003 | Yokota | Dec 2001 | B1 |
6335723 | Wood et al. | Jan 2002 | B1 |
6335724 | Takekawa et al. | Jan 2002 | B1 |
6335727 | Morishita et al. | Jan 2002 | B1 |
6348914 | Tuli | Feb 2002 | B1 |
6366697 | Goldberg et al. | Apr 2002 | B1 |
6396481 | Challa et al. | May 2002 | B1 |
6414673 | Wood et al. | Jul 2002 | B1 |
6415256 | Ditzik | Jul 2002 | B1 |
6421042 | Omura et al. | Jul 2002 | B1 |
6422775 | Bramlett et al. | Jul 2002 | B1 |
6424340 | Holtzman et al. | Jul 2002 | B1 |
6429856 | Omura et al. | Aug 2002 | B1 |
6437314 | Usuda et al. | Aug 2002 | B1 |
6454482 | Silverbrook et al. | Sep 2002 | B1 |
6456749 | Kasabach et al. | Sep 2002 | B1 |
6474888 | Lapstun et al. | Nov 2002 | B1 |
6492981 | Stork et al. | Dec 2002 | B1 |
6493736 | Forcier | Dec 2002 | B1 |
6502114 | Forcier | Dec 2002 | B1 |
6556190 | Fleck et al. | Apr 2003 | B2 |
6565611 | Wilcox et al. | May 2003 | B1 |
6573887 | O'Donnell, Jr. | Jun 2003 | B1 |
6577299 | Schiller et al. | Jun 2003 | B1 |
6592039 | Smith et al. | Jul 2003 | B1 |
6625296 | Price et al. | Sep 2003 | B2 |
6627870 | Lapstun et al. | Sep 2003 | B1 |
6628847 | Kasabach et al. | Sep 2003 | B1 |
6650320 | Zimmerman | Nov 2003 | B1 |
6661920 | Skinner | Dec 2003 | B1 |
6686579 | Fagin et al. | Feb 2004 | B2 |
6686910 | O'Donnell, Jr. | Feb 2004 | B2 |
6687876 | Schilt et al. | Feb 2004 | B1 |
6689966 | Wiebe | Feb 2004 | B2 |
20010020936 | Tsuji | Sep 2001 | A1 |
20020001029 | Abe | Jan 2002 | A1 |
20020028017 | Munich et al. | Mar 2002 | A1 |
20020048404 | Fahraeus et al. | Apr 2002 | A1 |
20020118181 | Sekendur | Aug 2002 | A1 |
20020145587 | Watanabe | Oct 2002 | A1 |
20020148655 | Cho et al. | Oct 2002 | A1 |
20020158848 | Sekendur | Oct 2002 | A1 |
20020163511 | Sekendur | Nov 2002 | A1 |
20020180714 | Duret | Dec 2002 | A1 |
20030006973 | Omura et al. | Jan 2003 | A1 |
20030006975 | Moriya et al. | Jan 2003 | A1 |
20030025713 | Wang et al. | Feb 2003 | A1 |
20030025951 | Pollard et al. | Feb 2003 | A1 |
20030029919 | Lynggaard et al. | Feb 2003 | A1 |
20030034961 | Kao | Feb 2003 | A1 |
20030038790 | Koyama et al. | Feb 2003 | A1 |
20030106985 | Fagin et al. | Jun 2003 | A1 |
20030107558 | Bryborn et al. | Jun 2003 | A1 |
20030146906 | Lin | Aug 2003 | A1 |
20030156145 | Hullender et al. | Aug 2003 | A1 |
20030163525 | Hendriks et al. | Aug 2003 | A1 |
20030195820 | Silverbrook et al. | Oct 2003 | A1 |
Number | Date | Country |
---|---|---|
0649549 | Feb 1997 | EP |
WO 0217222 | Feb 2002 | WO |
WO 02058029 | Jul 2002 | WO |
WO 02064380 | Aug 2002 | WO |
WO 02069247 | Sep 2002 | WO |
WO 02084634 | Oct 2002 | WO |
Entry |
---|
U.S. Appl. No. 10/640,942, Carl. |
U.S. Appl. No. 10/745,371, Buermann et al. |
Larsson and Pettersson, Development and evaluation of a 6DOF interface to be used in a medical application, Linkopings Univ., Sweden, Jun. 5, 2002. |
Poyner, LCS/Telegraphics, “Wintab Interface Specification: 16 bit and 32-bit API Reference”, Revised May 9, 1996. |
Universal Serial Bus (USB), “Device Class Definition for Human Interface Devices (HID)”, Firmware Specification, USB Implementers' Forum, Jun. 27, 2001. |
Ait-Aider et al., “Adaptation of Lowe's Camera Pose Recovery Algorithm to Mobile Robot Self-Localisation”, Robotica 2002. |
Ansar et al., “Linear Pose Estimation from Points or Lines”, ECCV 2002, LNCS 2353, pp. 282-296, Springer-Verlag Berlin Heidelberg 2002. |
Batista et al., “Pose View Stability Analysis for Camera Look Angles Computation”, Institute of Systems and Robotics—Dep. of Elec. Engineering, Univ. of Coimbra, Portugal. |
Corradini et al., “A Map-based System Using Speech and 3D Gestures for Pervasive Computing”, Center for Human-Computer Communciation, Oregon Health & Science Univ. |
Joquet et al., “‘Pen-like’ Natural Graphic Gesture Capture Disposal, Based on a Micro-System”, Dept. of Systems for Information and Health, CEA-Leti Grenoble. |
Schroering et al., “A New Input Device for 3D Sketching”, Washington University in St. Louis. |
Ude, “Nonlinear Least Squares Optimisation of Unit Quaternion Functions for Pose Estimation from Corresponding Features”, Conf. Pattern Recognition, Brisbane, pp. 425-427 Aug. 98. |
Number | Date | Country | |
---|---|---|---|
20050168437 A1 | Aug 2005 | US |