High speed, high precision six degree-of-freedom optical tracker system and method
10156912 ยท 2018-12-18
Assignee
Inventors
- Steven Martinez (Albuquerque, NM, US)
- Erik Erben (Rio Rancho, NM, US)
- Michael Rawson (Albuquerque, NM, US)
Cpc classification
F21V23/003
MECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
G06F3/0346
PHYSICS
H05B47/115
ELECTRICITY
F21V19/003
MECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
Y02B20/40
GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
G06F3/0308
PHYSICS
F21Y2115/10
MECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
International classification
G06F3/03
PHYSICS
F21V19/00
MECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
Abstract
A six degree-of-freedom optical tracker system includes LEDs that are mounted on a structure, and are each configured to emit light. An LED controller is coupled to the LEDs and supplies drive current to each of the LEDs in a manner that causes the LEDs to sequentially and individually emit light. A single position sensing device that is spaced apart from each of the LEDs receives the light emitted from each of the LEDs and supplies position data for each LED. A processor receives the position data and determines the position and orientation of the structure relative to the single position sensing device.
Claims
1. A six degree-of-freedom optical tracker system, comprising: a structure adapted to be disposed on a subject and moveable to a position and orientation; a plurality of light emitting diodes (LEDs) mounted on the structure and disposed on the structure at a specific position relative to a reference position, each LED coupled to receive a drive current and configured, upon receipt of the drive current, to emit light; an LED controller coupled to the LEDs and configured to supply the drive current to each of the LEDs in a manner that causes the LEDs to sequentially and individually emit light; a fixedly mounted position sensing device spaced apart from, and non-movable relative to, each of the LEDs, the position sensing device having a field of view (FOV) and having a gain that is variable, the position sensing device configured to receive the light emitted from each of the LEDs within the FOV and to supply position data for each LED; and a processor coupled to receive the position data supplied from the position sensing device, the processor configured to implement a structure model and a camera model, the structure model including 3D locations of each LED relative to a predefined origin on the structure, the camera model including lens and sensor parameters determined during a calibration procedure, the processor configured, upon receipt of the position data, to: (i) determine the position and orientation of the structure relative to the position sensing device based on the position data and the specific position of each LED relative to the reference position, (ii) determine if one or more of the LEDs is outside of the FOV of the position sensing device, (iii) disable only the one more LEDs determined to be outside of the FOV of the position sensing device, (iv) continuously enable the LEDs not determined to be outside of the FOV of the position sensing device; and (v) selectively vary the gain of the position sensing device based on the light emitted from each of the LEDs and the ambient light conditions.
2. The system of claim 1, wherein the processor is in operable communication with the LED controller and is further configured to command the LED controller to supply the drive current to each of the LEDs.
3. The system of claim 1, wherein: the processor is further configured to supply a plurality of timing pulses to the LED controller; and the LED controller is configured, upon receipt of the timing pulses, to supply the drive current to each of the LEDs.
4. The system of claim 3, wherein the timing pulses comprise: a series of sync pulses, each sync pulse supplied at a predetermined periodicity; a plurality of individual LED pulses supplied between each of the sync pulses, each the individual LED pulses associated with a different one of the LEDs, and each of the individual LED pulses supplied a predetermined number of times between each of the sync pulses.
5. The system of claim 1, wherein: the LED controller comprises a plurality of LED driver amplifiers, each driver amplifier having a gain that is variable, and each driver configured to supply the drive current to a different one of the LEDs; and the processor is further configured to selectively command the LED controller to vary the drive current to one or more of the LEDs, vary the gain of one or more LED driver amplifiers, or both.
6. A method of detecting position and orientation of a structure using a single position detecting device that has a field of view (FOV) and a variable gain, and that is spaced apart from, and non-movably mounted relative to, the structure, the method comprising the steps of: sequentially and individually supplying drive current from an LED controller to a plurality of light emitting diodes (LEDs) that are mounted on the structure to thereby sequentially and individually cause the LEDs to emit light, each LED being mounted on the structure at a specific position relative to a reference position; generating, using the single position sensing device, position data for each LED from the light that is emitted from each of the LEDs within the FOV of the single position sensing device; processing, in a processor that implements a structure model and a camera model, the position data and the specific position of each of the LEDs relative to the reference position to determine (i) the position and orientation of the structure relative to the single position sensing device and (ii) if one or more of the LEDs is outside of the FOV of the position sensing device; and using the processor to selectively command the LED controller to vary the drive current to one or more of the LEDs; and using the processor to (i) disable only the one more LEDs determined to be outside of the FOV of the position sensing device, (ii) continuously enable the LEDs not determined to be outside of the FOV of the position sensing device, and (iii) selectively vary the gain of the position sensing device based on the light emitted from each of the LEDs and ambient light conditions, wherein: the structure model includes 3D locations of each LED relative to a predefined origin on the structure, and the camera model includes lens and sensor parameters determined during a calibration procedure.
7. The method of claim 6, further comprising: supplying a plurality of timing pulses from the processor to the LED controller; and supplying the drive current from the LED controller to each of the LEDs in response to the timing pulses.
8. The method of claim 7, wherein the timing pulses comprise: a series of sync pulses, each sync pulse supplied at a predetermined periodicity; a plurality of individual LED pulses supplied between each of the sync pulses, each of the individual LED pulses associated with a different one of the LEDs, and each of the individual LED pulses supplied a predetermined number of times between each of the sync pulses.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1) The present invention will hereinafter be described in conjunction with the following drawing figures, wherein like numerals denote like elements, and wherein:
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
DETAILED DESCRIPTION
(11) The following detailed description is merely exemplary in nature and is not intended to limit the invention or the application and uses of the invention. As used herein, the word exemplary means serving as an example, instance, or illustration. Thus, any embodiment described herein as exemplary is not necessarily to be construed as preferred or advantageous over other embodiments. All of the embodiments described herein are exemplary embodiments provided to enable persons skilled in the art to make or use the invention and not to limit the scope of the invention which is defined by the claims. Furthermore, there is no intention to be bound by any expressed or implied theory presented in the preceding technical field, background, brief summary, or the following detailed description.
(12) In view of the foregoing, although the disclosed systems and methods may be described, in some contexts, as being implemented to track the position and orientation of a user's head for use with a near-to-eye (NTE) display device, it will be appreciated that the systems and methods may also be used to track the position and orientation of numerous parts of a body, or of various non-human subjects, both animate and inanimate.
(13) Referring now to
(14) It will be appreciated that the structure 110 may vary in configuration and implementation, as may the subject on which the structure is disposed. For example, the structure may be a helmet, a band, a hat, or a visor, just to name a few. Moreover, the subject may be a human, a non-human, or an inanimate object such as, for example, a robotic device. In one particular embodiment, which is depicted in
(15) Returning once again to
(16) The LED controller 104 is coupled to, and supplies the drive current to, each of the LEDs 102. More specifically, the LED controller 104 is configured to supply the drive current to each of the LEDs 102 in a manner that causes the LEDs 102 to sequentially and individually emit light. The LED controller 104 may be variously configured and implemented, but in the depicted embodiment the LED controller 104 includes a plurality of LED driver amplifiers 112 (e.g., 112-1, 112-2, 112-3, . . . 112-8). Each of the driver amplifiers 112 is associated with a different one of the LEDs 102, and is thus configured to supply the drive current to its associated LED 102. As will be described in more detail further below, each driver amplifier 112 is also configured, in response to commands from the processor 110, to vary the current it supplies to its associated LED 102.
(17) The single position sensing device 106 is spaced apart from each of the LEDs 102 and is fixedly mounted. The position sensing device 106, which has a field of view (FOV), is configured to receive, via a lens system 107, the light that is emitted from each of the LEDs 102 within the FOV, and to supply position data for each of the LEDs 102 within the FOV. It will be appreciated that the position sensing device 106 may be implemented using any one of numerous known devices that are sensitive to the light emitted from the LEDs 102. For example, the position sensing device 106 may be implemented using a two-dimensional (2D) duo-lateral or tetra-lateral type photodiode position sensing device, just to name two types of non-limiting devices that may be used. For completeness, a simplified representation of a duo-lateral type photodiode position sensing device is depicted in
(18) As shown in
(19) Regardless of how the position sensing device 106 is specifically implemented, the processor 108 is coupled to receive the position data supplied from the single position sensing device 106 and is configured, upon receipt of the position data, to determine the position and orientation of the structure 110 relative to the position sensing device 106. It will be appreciated that although the processor 108 is depicted using a single functional block, it may be implemented using a plurality of digital and/or analog devices. Moreover, it may be implemented using a central processing unit (CPU), a graphics processing unit (GPU), a field programmable gate array (FPGA), an application specific integrated circuit (ASIC), a microcontroller, or any other logic device or combination thereof.
(20) Regardless of how the processor 108 is specifically implemented, unlike presently known 6-DOF systems, the processor 108 determines the position and orientation of the structure 110 using position data from only a single position sensing device 106. To do so, the processor 108 implements one or more models to determine the position and orientation of the structure 110 based on the position data supplied from the position sensing device 106 and the specific position of each LED relative to the above-mentioned reference position.
(21) More specifically, the processor 108, at least in the depicted embodiment, implements a structure model 116 and a camera model 118. The structure model 116 includes the 3D location of each LED 102 relative to a predefined origin on the structure 110. It will be appreciated that the predefined origin may be any one of numerous locations on the structure. The camera model 118 includes lens and sensor parameters that are determined during well-known camera calibration procedures. The image of each LED 102, as projected through space, the lens system 107, and onto the sensing device 400 provides the data that the processor 108 uses to calculate the position and orientation of the structure 110 relative to the position sensing device 106. It will be appreciated that the processor 108 could implement any one of numerous techniques to determine the position and orientation. One technique particular technique is disclosed in D. DeMenthon and L. S. Davis, Model-Based Object Pose in 25 Lines of Code, International Journal of Computer Vision, 15, pp. 123-141, June 1995, and is referred to therein as POSIT.
(22) In addition to determining the position and orientation of the structure 110 relative to the position sensing device 106, the processor 108 is also in operable communication with the LED controller 104 and is further configured to command the LED controller 104 to supply the drive currents to each of the LEDs 104. More specifically, the processor 108 is configured to supply a plurality of timing pulses to the LED controller 104, and the LED controller 104 is configured, upon receipt of the timing pulses, to supply the drive currents to each of the LEDs 104. Although the implementation of the timing pulses may vary, in the depicted embodiment, which is illustrated more clearly in
(23) The sync pulses 502 are supplied at a predetermined periodicity. It will be appreciated that the predetermined periodicity may vary. In the depicted embodiment the set periodicity is approximately 200 sec, but this periodicity is merely exemplary of one embodiment, and may vary as needed or desired. Regardless of the predetermined periodicity, the individual LED pulses 504 are supplied between each of the sync pulses 502. As may be readily appreciated, and as
(24) With reference now to
(25) From the above, it may be appreciated that there is one sync pulse per frame (200 sec apart) to synchronize the timing of the LED controller 104 and the position sensing device 106. The LEDs 102 then flash in sequence a number of times (1 up to 10 times) for each frame. The position sensing device 106 acquires data at precise times when each LED 102 is on, and also when each is off for ambient compensation. The frame cycle then repeats.
(26) The processor 108 is also preferably configured, upon receipt of the position data, to perform basic validity checks. For example, the processor 108, based on the position data supplied from the position sensing detector 106, may identify when the position sensing detector 106 is in saturation, may determine whether or not each of the LEDs 102 is within the FOV of the position sensing detector 106, and may command the LED controller 104 to vary the drive current to one or more of the LEDs 102, vary the gain of the LNA 114, or both.
(27) The processor 108 may implement the validity checks using any one of numerous processes. In the depicted embodiment, however, the processor implements the validity checks based on the relative magnitudes of the electrode currents due to LED emissions and ambient conditions (I.sub.X1(sa), I.sub.X2(s+a), I.sub.Y1(s+1), I.sub.Y2(s+a)). For example, the processor 108 determines when the position sensing detector 106 is in saturation by comparing the sum of the magnitudes of electrode currents (e.g., I.sub.X1(s+a)+I.sub.X2(s+a) or I.sub.Y1(s+a)+I.sub.Y2(s+a)) to a predetermined and configurable saturation threshold current value (PSD_Sat_Thr). If the sum of the electrode current magnitudes exceeds the predetermined saturation threshold current value, then the position sensing device 106 is in saturation. This also means that the determined position is invalid and that the LED 102 drive current should be reduced.
(28) The processor 108 determines that each individual LED 102 is within the FOV of the position sensing device 106 by comparing the sum of the magnitudes of the electrode currents (e.g., I.sub.X1(s+a)+I.sub.X2(s+a) or I.sub.Y1(s+a)+I.sub.Y2(s+a)) to a predetermined and configurable visual threshold current value (LED_Vis_Thr). More specifically, if the sum of the electrode current magnitudes due to LED emissions and ambient conditions exceeds the sum of the electrode current magnitudes due to ambient conditions and predetermined visual threshold current value (e.g., I.sub.X1(s+a)+I.sub.X2(s+a)>I.sub.X1(a)+I.sub.X2(a)+LED_Vis_Thr, or I.sub.Y1(s+a)+I.sub.Y2(s+a)>I.sub.Y1(a)+I.sub.Y2(a)+LED_Vis_Thr), then the LED 102 is within the FOV, otherwise it is not. It will be appreciated that he visual threshold current value is selected to provide a minimum offset over that of the ambient light conditions to ensure an indirect light source or reflection does not cause a false negative.
(29) The processor 108 determines whether it needs to command the LED controller 104 to vary the drive current to one or more of the LEDs 102, vary the amplifier gain of one or more of the driver amplifiers 112, or both by also comparing electrode currents to predetermined and configurable threshold current values. In particular, if an electrode current due to LED emissions and ambient conditions exceeds a predetermined and configurable high threshold current value (High_Thr) (e.g., (I.sub.X1(s+a) or I.sub.X2(sa) or I.sub.Y1(s+a) or I.sub.Y2(s+a)>High_Thr), then this indicates that the LNA 114 is saturating and thus the position data is invalid. In response, the processor 108 will reduce the gain of the LNA 114, command the LED controller 104 to reduce the LED drive current, or both.
(30) On the other hand, if the sum of the electrode current magnitudes due to LED emissions and ambient conditions is less than a predetermined and configurable low threshold current value (Low_Thr) (e.g., I.sub.X1(s+a)+I.sub.X2(s+a)<Low_Thr, or I.sub.Y1(s+a)+I.sub.Y2(s+a)<Low_Thr), then this indicates that the signal level is below optimum. In response, the processor 108 will increase the gain of the LNA 114, command the LED controller 104 to increase the LED drive current, or both.
(31) It should be noted that although the 6-DOF system 100 depicted in
(32) In order to maximize the LED coverage in the FOV of the position sensing device(s) 106 of the systems 100 depicted
(33) Although the number of LEDs 102 disposed on the structure 110 is increased, the processor 108 is configured to illuminate only a portion of the LEDs 102. In particular, only those LEDs 102 within the FOV of the position sensing device(s) 106. For example, and with reference to
(34) Disabling the LEDs 102 outside of the FOV of the position sensing device(s) 106 reduces light noise that may be caused by reflections off surfaces in the user's proximity from LEDs 102 outside of the FOV. This improves system accuracy and minimizes the possibility of interfering with an adjacent tracking system that may be used by another user (e.g., pilot/co-pilot). In addition, by not illuminating LEDs 102 outside of the FOV, the amount of heat generation is reduced. By doing this in near real time, the power requirements of the configurations depicted in
(35) The system and method described herein provides a high precision, high speed, relatively lightweight tracking system that may provide, for example, accurate and jitter-free registration and rendering of display elements on an NTE display device.
(36) Those of skill in the art will appreciate that the various illustrative logical blocks, modules, circuits, and algorithm steps described in connection with the embodiments disclosed herein may be implemented as electronic hardware, computer software, or combinations of both. Some of the embodiments and implementations are described above in terms of functional and/or logical block components (or modules) and various processing steps. However, it should be appreciated that such block components (or modules) may be realized by any number of hardware, software, and/or firmware components configured to perform the specified functions. To clearly illustrate this interchangeability of hardware and software, various illustrative components, blocks, modules, circuits, and steps have been described above generally in terms of their functionality. Whether such functionality is implemented as hardware or software depends upon the particular application and design constraints imposed on the overall system. Skilled artisans may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present invention. For example, an embodiment of a system or a component may employ various integrated circuit components, e.g., memory elements, digital signal processing elements, logic elements, look-up tables, or the like, which may carry out a variety of functions under the control of one or more microprocessors or other control devices. In addition, those skilled in the art will appreciate that embodiments described herein are merely exemplary implementations.
(37) The various illustrative logical blocks, modules, and circuits described in connection with the embodiments disclosed herein may be implemented or performed with a general purpose processor, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA) or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions described herein. A general-purpose processor may be a microprocessor, but in the alternative, the processor may be any conventional processor, controller, microcontroller, or state machine. A processor may also be implemented as a combination of computing devices, e.g., a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration.
(38) The steps of a method or algorithm described in connection with the embodiments disclosed herein may be embodied directly in hardware, in a software module executed by a processor, or in a combination of the two. A software module may reside in RAM memory, flash memory, ROM memory, EPROM memory, EEPROM memory, registers, hard disk, a removable disk, a CD-ROM, or any other form of storage medium known in the art. An exemplary storage medium is coupled to the processor such that the processor can read information from, and write information to, the storage medium. In the alternative, the storage medium may be integral to the processor. The processor and the storage medium may reside in an ASIC. The ASIC may reside in a user terminal. In the alternative, the processor and the storage medium may reside as discrete components in a user terminal.
(39) In this document, relational terms such as first and second, and the like may be used solely to distinguish one entity or action from another entity or action without necessarily requiring or implying any actual such relationship or order between such entities or actions. Numerical ordinals such as first, second, third, etc. simply denote different singles of a plurality and do not imply any order or sequence unless specifically defined by the claim language. The sequence of the text in any of the claims does not imply that process steps must be performed in a temporal or logical order according to such sequence unless it is specifically defined by the language of the claim. The process steps may be interchanged in any order without departing from the scope of the invention as long as such an interchange does not contradict the claim language and is not logically nonsensical.
(40) Furthermore, depending on the context, words such as connect or coupled to used in describing a relationship between different elements do not imply that a direct physical connection must be made between these elements. For example, two elements may be connected to each other physically, electronically, logically, or in any other manner, through one or more additional elements.
(41) While at least one exemplary embodiment has been presented in the foregoing detailed description of the invention, it should be appreciated that a vast number of variations exist. It should also be appreciated that the exemplary embodiment or exemplary embodiments are only examples, and are not intended to limit the scope, applicability, or configuration of the invention in any way. Rather, the foregoing detailed description will provide those skilled in the art with a convenient road map for implementing an exemplary embodiment of the invention. It being understood that various changes may be made in the function and arrangement of elements described in an exemplary embodiment without departing from the scope of the invention as set forth in the appended claims.