WO1999030182A1 - A system for determining the spatial position and orientation of a body - Google Patents

A system for determining the spatial position and orientation of a body Download PDF

Info

Publication number
WO1999030182A1
WO1999030182A1 PCT/CA1998/001118 CA9801118W WO9930182A1 WO 1999030182 A1 WO1999030182 A1 WO 1999030182A1 CA 9801118 W CA9801118 W CA 9801118W WO 9930182 A1 WO9930182 A1 WO 9930182A1
Authority
WO
WIPO (PCT)
Prior art keywords
marker
segment
markers
energy
raw
Prior art date
Application number
PCT/CA1998/001118
Other languages
French (fr)
Inventor
Stephen Eldon Leis
Original Assignee
Northern Digital Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Northern Digital Inc. filed Critical Northern Digital Inc.
Priority to DE1034440T priority Critical patent/DE1034440T1/en
Priority to CA002312352A priority patent/CA2312352C/en
Priority to EP98958130A priority patent/EP1034440B1/en
Priority to AT98958130T priority patent/ATE253229T1/en
Priority to DE69819363T priority patent/DE69819363T2/en
Priority to JP2000524686A priority patent/JP2002505412A/en
Publication of WO1999030182A1 publication Critical patent/WO1999030182A1/en

Links

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S17/00Systems using the reflection or reradiation of electromagnetic waves other than radio waves, e.g. lidar systems
    • G01S17/87Combinations of systems using electromagnetic waves other than radio waves
    • G01S17/875Combinations of systems using electromagnetic waves other than radio waves for determining attitude
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S5/00Position-fixing by co-ordinating two or more direction or position line determinations; Position-fixing by co-ordinating two or more distance determinations
    • G01S5/16Position-fixing by co-ordinating two or more direction or position line determinations; Position-fixing by co-ordinating two or more distance determinations using electromagnetic waves other than radio waves
    • G01S5/163Determination of attitude
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S17/00Systems using the reflection or reradiation of electromagnetic waves other than radio waves, e.g. lidar systems
    • G01S17/74Systems using reradiation of electromagnetic waves other than radio waves, e.g. IFF, i.e. identification of friend or foe

Definitions

  • This invention relates generally to systems for determining the spatial position and angular orientation (i.e. pose) of a body, or object.
  • a body or object
  • One such system includes passive retro-reflectors as point markers, or targets, affixed to the body and a second system includes active radiating emitters as the affixed point markers. Both techniques operate by projecting the image of a high contrasting marker onto spaced sensors and using mathematical processing to determine the three dimensional coordinates of each one of the point markers.
  • 3D three dimensional coordinates
  • x,y and z positions and pitch, yaw and roll angular orientations are then used as discrete points, or may be considered as a set if their geometric arrangement is known, resulting in the determination of the position and angular orientation of the body (i.e., six degrees of freedom: x,y and z positions and pitch, yaw and roll angular orientations) in space relative to a three dimensional coordinate system centered at a preselected point in space, typically at a point fixed relative to the sensors.
  • a pointing device can be made out of the body whereby the end tip of the pointing device is in a known position relative to the markers.
  • Such a pointing device can be used as a digitizing pointer held by hand as in reverse engineering applications. An operator moves this pointing body to various known places on a manufactured component and the accuracy of the manufacturing processes is determined from analysis of the determined end tip position of the pointing device.
  • This application requires a highly accurate system.
  • the instrument pose is being tracked with respect to the patient. Certain surgical instruments have affixed to them markers. This information can be used to allow the surgeon to see where the instrument is pointing on a MR or CT scan, and what is beyond the end tip of the surgical instrument. This application also requires a highly accurate system.
  • multiple charge couple device (CCD) sensors are used to detect the energy emitted by the marker.
  • a single point marker is energized per sensor cycle to emit infrared energy.
  • the emitted energy focused onto the sensor is collected (i.e. integrated) and shifted to the sensor processing circuitry.
  • the marker In order to determine the 3D position of the marker, the marker must be detected on at least three sensor axes (i.e. to cover a minimum of 3 orthogonal planes) .
  • an energy source is energized to emit infrared energy in the general direction of the retro-reflective marker.
  • Multiple CCD sensors are then used to detect the energy reflected by the marker.
  • the reflected energy focused onto the sensor is collected (i.e., integrated) and shifted to the sensor processing circuitry.
  • the marker In order to determine the 3D position of the marker, the marker must be detected on at least three sensor axes (i.e. to cover a minimum of 3 orthogonal planes) .
  • DeMenthon Patent Number 5, 227, 985
  • DeMenthon Patent Number 5, 227, 985
  • Triangulation methods have a distinct advantage of projection methods for the depth accuracy. Triangulation methods, also called stereometric techniques, were rejected due to the costly hardware required to perform real-time calculations.
  • a system for determining the spatial position and orientation of each of a plurality of bodies has at least three markers in a predetermined, relative geometric relationship.
  • the markers are adapted to emit energy in response to an activation signal and/or to reflect energy impinging upon such passive marker from an activatable energy source.
  • a common energy detector is provided for detecting the energy emitted by the active marker and the energy reflected by the passive marker.
  • a common processor is provided.
  • the processor has a memory. The memory has stored therein the predetermined, relative geometric relation of the markers for each one of the bodies.
  • the processor compares the stored predetermined geometric relation of the markers for each of the bodies with the energy detected by the energy detector to identify the bodies emitting/or reflecting the detected energy.
  • each body must have markers in a known and fixed relative geometry and must have unique segment lengths amongst all pairs of all the markers, where the term unique is a threshold value difference based on the accuracy of the system (i.e., the difference in the geometric relations of the markers for the bodies is detectable) .
  • Multiple objects can be tracked simultaneously if pairs of like segments amongst all bodies being tracked have unique relative angles, again where the term unique is a threshold value difference based on the accuracy of the system.
  • the marker geometry can be collinear or coplanar as required by the applications.
  • a system is provided adapted to track the pose of a body with 3 or greater markers in a known relative geometry, subject to simple placement rules, which are not limited to being non-coplanar or non-collinear .
  • the system is able to use a cost effective, low speed, area array sensors that can track multiple markers in a single sensor cycle, thus increasing the apparent sampling rate of each of the markers .
  • the system uses a stereometric arrangement of sensors, thus providing adequate accuracy for high performance applications such as surgical application.
  • the system as able to use cost effective digital signal processors and simple processing calculations steps which will automatically and positively identify the discrete markers of the body in three-dimensions (3D) and operate in the presence of many false markers and multiple bodies in close proximity.
  • the system is adapted to determine the pose of one or more bodies in real-time in a closed form solution using a single sensor cycle image rather than using predictive methods to continue tracking the pose of a body given several sensor cycle images .
  • system is adapted to automatically recognize and track various bodies that are known in advance of tracking.
  • FIG. 1 is a block diagram of a system for determining the spatial position and orientation of a pair of rigid bodies according to the invention
  • FIG. 2 shows the pair of bodies adapted for use in the system of FIG. 1 ;
  • FIG. 3 is a diagram of a Tables stored in a memory of a processor used in the system of FIG. 1;
  • FIGS. 4, 5, 6, 6A-6B, 7, 7A-7C, 8 and 8A-8B are flow diagrams which diagrammatically illustrate the sequence of operations of the system of FIG. 1, where FIG. 7 shows the relationship among FIGS. 7A-7C and FIG. 8 shows the relationship between FIGS. 8A and 8B;
  • FIGS. 9A, 9B to 18 illustrate detailed examples of the elements in the memory of FIG. 3 at various stages of execution the system of FIG. 1.
  • a system 10 for determining the spatial position and orientation of one or more, here a pair of, rigid bodies 11a, lib, is provided.
  • the rigid bodies 11a, lib shown and described in more detail in FIG. 2, are different surgical instruments.
  • rigid body 11a has a plurality of, here two passive, retro-reflecting point markers 12a, 12c, and one active, emitting marker 12b affixed thereto.
  • each of the energy retro-reflecting markers 12a, 12c includes a sphere, affixable to body 11a, covered with a retro-reflective material as is generally available and well known in the art.
  • the markers 12a, 12b, 12c are affixed to body 11a in a predetermined, fixed relative geometric relationship.
  • the predetermined, fixed relative geometric relation is defined -by simple placement rules described below.
  • the system 10 includes a common energy detection system 14 for detecting both the energy emitted by the active marker 12b affixed to body 11a and the energy reflected by the passive markers 12a, 12c affixed to the body 11a.
  • the common detector system 14 includes a pair of spaced, left mounted and right mounted sensor assemblies 14L and 14R, respectively.
  • Each one of the sensor assemblies 14L, 14R includes: a two-dimensional, charge couple device (CCD) sensor 18L, 18R (FIG. 1) , respectively; a focusing lens 22L, 22R, respectively, as shown; and, a plurality of light energy emitting sources 24L, 24R (here infrared energy emitting diodes) , respectively, as shown.
  • CCD charge couple device
  • Each of the sensor assemblies 14R and 14L has its own u, v, z co-ordinate system aligned with its associated directional infrared energy sources 24L, 24R, respectively.
  • the light emitting sources 24L, 24R are evenly distributed circumferentially 1 about the zs axis of each of the sensor assemblies 14R and 14L, respectively.
  • the plurality of light emitting sources 24L, 24R is energized with electrical energy by a processor section 26.
  • the processor section 26 includes a processor 28, host computer 30, display 32 and controller 34.
  • the processor 28 energizes the light emitting sources 24L, 24R via a signal on line 36.
  • the plurality of light emitting sources 24L, 24R operate to produce an incident directional energy beam of infrared energy with a direction of propagation aimed along a directional axis which generally corresponds to the zs axis of each of the sensor assemblies 14L, 14R associated with that directional energy source 24L, 24R.
  • the incident directional energy beam created by the directional infrared energy source is of a size, shape and intensity that corresponds to the volumetric field of view of its associated sensor assembly 14L, 14R and sufficient to provide an incident directional energy beam throughout the measurement volume.
  • the sensor assemblies 14L, 14R are each able to produce output signals on lines 39L, 39R, respectively, which represent the intensity of energy focused thereon. During each sensor cycle, the energy focused thereon is collected (i.e. integrated) and then shifted to the processor 28.
  • the sensor assemblies 14L and 14R are mounted to a fixed reference and are separated from each other by a predetermined distance, here 500 mm.
  • the sensor assemblies 14L, 14R each have a field of view sufficient to observe a common measurement volume
  • 14R has its own associated lens 22L, 22R, respectively, for focusing both the reflected energy from the energy retro-reflecting markers 12a, 12c and the emitted energy from the energy emitting marker 12b, in order to create a focused energy image of the emitted or reflected energy from the markers 12a, 12b, 12c respectively on the lenses 22L, 22R associated sensor assemblies 14R, 14L, respectively.
  • the processor 28 is coupled to the sensor assemblies 14L and 14R and determines the two-dimensional u, v positions of the focused energy image on each of the sensor assemblies 14L and 14R. Then, using the u, v position of the focused energy image of the same marker 12a, 12b, 12c on each of the sensor assemblies 14L and 14R to generate left and Right Sensor Energy Source Location Tables 50L, 50R (FIGS. 3 and 9A, 9B) and set the Left-Sources and Right Sources counters 51L, 51R, to be described.
  • the processor 28 is coupled to the host computer 30 in order that the spatial position of the bodies 11a, lib can be displayed on display 32 or further processed by the host computer 30. As noted above, the processor 28 is coupled to the directional energy sources 24L, 24R in order that the processing section 26 can activate the directional energy sources 24R and 24L at appropriate times. The processor 28 is also coupled to the controller 34 in order that the processor 28 can signal the controller 34 to activate the energy emitting markers 12b at the required time via line 27. The operation of system 10 will be described for body
  • the active marker 12b is fed via a cable 27 (FIG. 1) to controller 34, as shown.
  • the energy emitting marker 12b include an infrared energy emitting diode of marker 12b which, upon being energized with electrical energy fed thereto by controller 34 via the cable 27, emits infrared light energy.
  • infrared energy emitting diodes are generally available and well known in the art.
  • the rigid bodies 11a and lib are have affixed thereto markers 12a-12c and 12d-12f, respectively. It should first be understood that it is not relevant that marker 12a, and 12c are retro-reflective and marker 12b is active. This configuration is for example only and the methods described below are independent of the marker type.
  • Each body 11a, lib has the markers 12a, 12b, 12c and 12d, 12e, 12f, respectively, affixed to it in a predetermined (i.e., known) and fixed relative geometry. Further, the relative geometry for the markers 12a, 12b and 12c must be detectably different from the relative geometry of markers 12c, 12d and 12f of body lib. Thus, as shown in FIG.
  • the markers 12a, 12b and 12c of body 11a are separated by line segments SLab, SLbc and SLac, respectively, as shown. Further, the line segments SLab, SLbc, and SLac intersect, as shown to form angles 0ab, ⁇ bc, and 0ac, as shown. Likewise, the markers 12d, 12e and 12f of body lib are separated by line segments SLde, SLef and SLdf, respectively, as shown.
  • segment length SLab must vary in length from segment SLac and SLbc, as must segment length SLbc vary in length from segment SLac.
  • the variance, ⁇ in the preferred embodiment is 5.0 mm.
  • a body with 3 markers will have 3 segments. In general, however, the number of segments is equal to N*(N-l)/2, where N is the total number of markers.
  • Body 11a has a pair of segments SLab, SLbc which are equal in length to the pair of segments SLde, SLef on body lib; these can still be tracked if the relative angle ⁇ ab between segment SLab, SLbc on body 11a is different than the relative angle ⁇ de between segment SLde, SLef on body lib.
  • the marker geometry can be collinear, non-collinear, co-planar or non-coplanar, as required by the application.
  • the pair of bodies 11a, lib are tracked simultaneously if pairs of like segments amongst all bodies 11a, lib being tracked have unique relative angles, again where the term unique is a threshold value difference based on the accuracy of the system 10. That is, the markers 12a-12c, 12d-12f are placed on bodies 11a, lib, respectively to provide each one of the bodies 11a, lib with a unique signature, or finger-print, that can be recognized and tracked by the processor 28.
  • the processor 28 has a memory 40 (FIG. 3) which stores three sets of Tables, 42-48; 50L, 50R, and 52; and 56-62.
  • a first set of the Tables i.e., A Rigid Body Definition Set of Tables, 42-48) defines the predetermined geometric relationship of the markers 12a-12d, 12e-12f for each one of the bodies 11a, lib;
  • a second set of the Tables i.e., Sensor Generated Data Tables, 50L, 50R and 52
  • a third set of Tables i.e., Processing Tables, 56-62) which are generated by the processor while the rigid bodies 11a, lib are being identified and tracked.
  • These Tables (and Counters 51L, 51R and 53, to be described) , reside in the processor 28 and are used by the processor 28 during the
  • Rigid Body Definition Tables, 42-48 The Rigid Body Definition Tables include: a Marker Position Table, 42; a Marker Segment Table, 44; -a Marker Segment Dot (•) Product Table, 46 and a Marker Segment Set Table, 48. These Rigid Body Definition Tables, 42-48 are for all bodies 11a, lib and contain a priori known information about geometric relationship of the markers 12a-12c and 12d-12f, that are affixed to rigid bodies 11a. lib, respectively, to thereby provide each one of the bodies 11a, lib with a unique signature, or finger-print, that can be recognized and tracked by the processor 28. These Rigid Body Definition Tables, 42-48 are initialized once prior to the identification and subsequent tracking operations of the processor 28.
  • the Marker Position Table 42 includes the 3D position (X', Y' , Z' ) of each marker 12a, 12b and 12c associated with the rigid body 11a, for example. Referring to FIG. 11, the Marker Position Table 42, is shown for body 11a, it being understood that Table 42 has a similar table for body lib. The 3D position of marker 12a, 12b, and 12c is shown. Segment Length Table, 44
  • Each rigid body 11a, lib has a Marker Segment Length Table 44, (FIG. 12) associated with it that contains the set of segment lengths of a body 11a, lib.
  • a segment is considered the line joining a pair of markers 12a, 12b, 12c for body 11a and markers 12d, 12e and 12f for body lib.
  • body 11a has segments SLab, SLbc, and SLac and body lib has segments SLde, SLef and SLdf.
  • the complete set of segments for a body is every combination of marker pairs.
  • N N * (N - 1) /2 segments for a body where N is the number of markers affixed to the body.
  • Marker Segment Length Table 44 is shown for body 11a.
  • the segment lengths SLab, SLbc, and SLac are shown.
  • Each rigid body 11a, lib has a Marker Segment Set Table 48 (FIG. 13) associated with it that contains the marker segment sets. There is one entry in the Table 48 for each marker. Each marker entry will contain 2 or more segments that are connected to this marker. There will be N-l segments attached to each marker for an N marker body.
  • FIG. 13 shows the set of segments for a rigid body 11a. Each marker 12a, 12b, 12c has associated with it two segments (i.e., segment 1 and segment 2, in FIG. 13) . Thus, as indicated in FIGS. 2 and 13, for body 11a, marker 12a is attached to segments SLab and SLac; marker 12b is attached to segments SLab and SLbc. Marker 12c is attached to segments SLac and SLbc. It is understood that a similar table would be for marker lib.
  • Segment Dot (•) Product Table, 46 Each rigid body has a Segment Dot (•) Product Table 46 (FIG. 14) associated with it that contains the list of dot (•) products between each combination of segments.
  • the dot (•) product is used as a determination of the angle, ⁇ , between the segment lengths, SL, when the segments are treated as vectors transposed to the origin of X, Y, Z system 10 co-ordinate system.
  • N N* (N-l) /2 combinations of segment pairs where N is the number of segments in the rigid body.
  • the example FIG. 14 shows the set of dot (•) products for body 11a.
  • the dot (•) product for angle ⁇ a,b between segment lengths SLab and SLbc is shown to be 3600.
  • the dot (•) product for angle ⁇ a,c between segment lengths SLab and SLac is shown to be 0 and the dot (•) product for angle ⁇ b,c between segment lengths SLbc and SLac is shown to be 2500. It should be understood that a similar table exists for body lib.
  • Sensor Generated Data Tables, 50L, 50R and 52 The Sensor Generated Data Tables 50L, 5OR and 52 include: Left and Right Sensor Energy Source Location Tables 50L, 50R; and a Raw 3D Marker Table 52.
  • the Left-Sources and Right-Sources Counters 51L, 51R contain the number of the energy spots detected on the left and right sensor 18L, 18R respectively.
  • Each entry will have a U and V value corresponding to the center of mass of the energy spot along the U axis and the V axis of the associated sensor 18L, 18R.
  • Raw 3D Marker Table 52 (FIGS. 3, 10) in memory 40 that contains a single entry for each determined but unqualified marker location (raw markers) .
  • Each entry has an X, Y and Z (i.e., the X, Y, Z system 10 co-ordinate system) value corresponding to the coordinate system of the position sensor with the origin midpoint between the image sensors 18L, 18R.
  • the Raw Marker Counter 53 contains the number of raw markers detected. Referring to FIG. 10, an example is given of 4 raw markers. In this example the markers 12a, 12b, and 12c of body 11a are detected and one stray unknown marker. The allocation of these markers R1-R4 is not known at this time with respect to markers 12a-12c and 12d-12f on body 11a and lib, respectively. The sequence of operations will be used to determine the correspondence of these markers to body 11a or body lib.
  • Processing Tables, 56-62 The Processing Tables are: a Segment Raw Marker Cross Reference Table 56; a Qualified Segment Table 58; a Measured Marker Position Table 60; and, a Calculated Rigid Body Position and Orientation (Pose) Table 62. These Processing Tables 56-62 are produced by the processor 28 for each of the rigid bodies 11a, lib and are generated by the processor 28 while the rigid bodies are being recognized (i.e., identified) and tracked. Segment Raw Marker Cross Reference Table, 56 Each rigid body has a Segment Raw Marker Cross Reference Table 56 (FIGS. 3, 15) associated with it that contains all the raw marker 12a, 12b and 12c pairs that have a separation distance close to the defined segment length of the rigid body.
  • the term close is defined by a length difference between the defined segment and the segment under test, which is less than some predefined value (i.e., a distance detectable by the system 10) . In the preferred embodiment this value is 1.5 mm.
  • the following example (FIG. 15) illustrates pairs of markers that match the predefined segment lengths SLab, SLbc, SLac of the body 11a.
  • the raw marker pair data is determined by the processor 28 in accordance with a method to be described in connection with FIG. 6. Suffice it to say here, however, that, in this example, the two sets of four raw energy data S1-S8 detected by the right and left sensors 14L, 14R, FIGS.
  • raw markers R1-R4 are converted by the processor 28 into four raw markers R1-R4 (in the system 10 X, Y, Z co-ordinate system) and are stored in the 3D Raw Marker Table, 52 (FIG. 10) .
  • R1-R4 there are six segment lengths (i.e., SL12, SL13, SL14 , SL23, SL24 and SL34) .
  • raw markers Rl and R2 are separated by a segment length SL12 which is close to the length of segment SLab.
  • Raw markers (Rl, R4), (R3, R4) , and (R2, R3) are all separated by a length close to length of segment SLbc.
  • raw markers (R2 , R4) , and (Rl, R3) are all separated by a length close to length of segment SLac. This data is stored in the Segment Raw Marker Cross Reference Table, 56 as indicated in FIG. 15. Qualified Segment Table, 58
  • Each rigid body has a Calculated Rigid Body Position and Orientation Table 62 (FIGS. 3, 18) associated with it that contains the transformation of the rigid body.
  • This is the pose that is determined from the Measured Marker Position Table 60 (FIG. 17) based on the Marker Position Table 42 (FIG. 11) .
  • the pose is the transformation that moves the Marker Position Table 42 into the same space X, Y, Z co-ordinate system of system 10, as shown in Measured Marker Position Table 60.
  • the example shown in FIG. 18 illustrates the pose of body 11a.
  • the energy sources 24L and 24R (FIG. 1) and active marker 12b are activated.
  • these energy sources are focussed through the lens system 22L, 22R and project an image on the CCD sensors 18L, 18R. This image is scanned from the sensors 18L, 18R and any intensity above a certain threshold value will be analyzed by the processor 28.
  • Step 1 the energy sources 24L and 24R (FIG. 1) and active marker 12b are activated.
  • these energy sources are focussed through the lens system 22L, 22R and project an image on the CCD sensors 18L, 18R. This image is scanned from the sensors 18L, 18R and any intensity above a certain threshold value will be analyzed by the processor 28.
  • the position of the sensor energy sources are stored in Left and Right Sensor Energy Source Location Tables 50L, 50R
  • FIGS. 3, 9A, 9B The position is in units of pixels.
  • the horizontal axis of the sensor is called U and the vertical axis is called V.
  • a left and right sensor 18L, 18R is used.
  • the Left Sources and Right Sources Counters 51L, 51R, respectively, are set to the number of detected energy sources on the left and right sensors 18L, 18R respectively.
  • Step 403 appropriate Tables (i.e., Tables 52, 56) and Counters 51L, 51R and 53) are initialized for the subsequent sequence of operations.
  • Step 404 the energy sources stored in the Left and Right Sensor Energy Source Location Tables 50L, 50R are analyzed by processor 26 and Raw 3D Marker Table 52 (FIG. 10) is generated.
  • the Raw Marker Counter 53 is set to the number of raw markers detected. At this time it is unknown what these markers are. Some may be markers from the body or bodies being tracked, other may be reflections, and still others may be artifacts caused by the marker detection method. Triangulation methods to generate the 3D position from stereoscopic views is well known in the art and one method will be described later in the section Generate Raw 3D Marker Table 52.
  • Steps 405 and 406 the distance, i.e. segment lengths, SL12 , SL13, SL14, SL23, SL24 and SL34, between all combinations of Raw 3D Markers pairs is calculated. These calculated lengths are compared to the Segment Length Table 44 (FIG. 12) for each body 11a, lib being tracked. Matches are placed in the Segment Raw Marker Cross Reference Table 56 (FIG. 15) for each body 11a, lib. These steps are described in detail in FIG. 6 in connection with the Generate Segment Raw Marker Cross Reference Table 56 (FIG. 15) .
  • Step 407 all possible segment guesses in the Segment Raw Marker Cross Reference Table 56 (FIG. 15) for each body 11a, lib are verified by comparing the relative angles, ?, between the segment lengths, SL, of the body 11a, lib. These steps are described in detail later in the connection with FIG. 7, Segment Verify.
  • Step 408 the correspondence between the raw 3D markers R1-R4, in the example given above, and the bodies 11a, lib actual markers 12a-12c, 12d-12f, respectively, is determined by set intersection methods using the body's Marker Segment Set Table 48 (FIG. 13) in conjunction with the body's Segment Raw Marker Cross Reference Table 56 (FIG. 15) .
  • the raw 3D markers are mapped into the body' s Measured Marker Position Table 60 (FIG. 17) .
  • Step 409 the body's orientation (pose) is determined by the markers contained in the body's Measured Marker Position Table 60 (FIG. 17) .
  • Methods for determining the 6 degrees of freedom for a rigid body from discrete markers is well known in the art and will not be described here.
  • Step 410 the pose of all the bodies are stored in Table 62 (FIG. 18) and can be displayed.
  • the pose can also be stored, transmitted to another computer, or further processed, as desired.
  • the energy sources S -S , S -S (FIGS. 9A and 9B) stored in the Left and Right Sensor Energy Source Location Tables 50L, 50R are analyzed and Raw 3D Markers R1-R4 (FIG. 10) are determined.
  • the Raw Marker Counter 53 is set to the number of raw markers detected. Referring now to FIG. 5, the following method for generating 3D positions from two stereoscopic images will be described. The following method is well known in the art and other methods are available.
  • Step 501 the Raw Marker Counter 53 is initially set to 0.
  • Parametric lines equations are generated for each Left Sensor Energy Source 14L and each Right Sensor Energy Source 14R in Steps 502, 503, 504 and 505.
  • Steps 506, 507, and 512 to 515 a double loop is processed that will pair every left line with every right line.
  • the number of total iterations of this loop will be equal to Left Sources 52L * Right Sources 52R.
  • Steps 508 and 509 the minimum distance between a left and a right line is determined. If this distance is less than a predefined minimum then the lines are considered intersecting and a possible 3D marker R -R has been discovered. This marker is considered Raw since it is unknown at this time if it is a valid marker.
  • Step 510 and 511 the 3D mid-point between the left and right lines is placed in the Raw 3D Marker Table 52 (FIG. 10) .
  • the Raw Marker Counter 53 is incremented.
  • the Raw Marker Counter 53 contains the number of Raw Markers detected and the Raw 3D Marker Table 52 (FIG. 10) is complete. From this point forward all subsequent decisions are made on 3D markers and the 2D Sensor Energy Locations are no longer required. For the example there are 4 Raw 3D Markers R1-R4 detected. It is unknown at this time what each of the markers is.
  • Steps 601, 602, and 613 to 616 Generate Segment Raw Marker Cross Reference Table, 56 for all Rigid Bodies.
  • Steps 601, 602, and 613 to 616 a two deep processing loop is controlled.
  • the two outer most loops are indexed by counters N and L, not shown but included in processor 26, used to pair up all combinations of Raw 3D Markers R1-R4.
  • N'*(N'-l)/2 segments (maker pairs) where N' is equal to Raw Markers R1-R4, for example.
  • N' 4.
  • the segment length between Raw 3D Markers N and L is calculated once per iteration of the outer two loops (Steps 603) . This length is called the test segment and is used in the following section.
  • Steps 604, 611 and 612 a processing loop is controlled by counter J, not shown but included in processor 28, that sequences through all the rigid bodies being tracked.
  • Steps 605, 609, and 610 a processing loop is controlled by counter K, not shown but included in processor 28, that sequences through all the segments within one of the bodies 11a, lib, here indicated in general by body J.
  • the segment matching is performed in Steps 606, 607 and 608.
  • the segment K of body J is compared to the test segment. A segment is considered to be a match if the difference is less than a predefined value.
  • the Raw 3D Marker pair index counters N and L values are placed in the next available pair in the Segment Raw Marker Cross Reference Table 56 (FIG.
  • the counter "Total Raw Pairs", not shown but included in processor 28, for segment K is incremented.
  • the predefined value is a function of the system accuracy and is kept as small as practical to reduce the number of segment matches, but large enough to avoid, unnecessarily rejecting valid segments.
  • segment length SLab has a single match being Raw 3D Marker pairs Rl and R2.
  • Segment length SLbc has 3 matches being Raw 3D Marker pairs: Rl and R4 ; R3 and R4 ; and, R2 and R3.
  • Segment length SLac has two matches being Raw 3D Marker pairs : R2 and R4 ; and, Rl and R3. It is clear that 3 of the 6 segments are not part of the rigid body 11a and must be eliminated by Segment Verify (FIG. 7) .
  • Segment Verification All possible segments defined by the Raw 43D Marker pairs in the Segment Raw Marker Cross Reference Table, 56 (FIG. 15) for each body 11a, lib are verified by comparing the relative angles, ⁇ , between the segment lengths, SL, of the body 11a, lib. The method will become clear by examining the flow diagram shown in FIGS. 7, 7A-7C using the following example. The segment verify operation has a five deep control loop.
  • Steps 701, 726 and 727 a processing loop is controlled by counter L that sequences through all the rigid bodies being tracked.
  • Step 701 the Qualified Segment Table, 58 (FIG. 16) is cleared for the rigid body L being verified.
  • a processing loop is controlled by counter J in Steps 702, 724, and 725, which sequences through all the segment lengths SL of body L. The control loop is entered if the segment J is not already qualified, as indicated in the Qualified Segment Table, 58 (FIG. 16) .
  • a processing loop is controlled by counter N in Steps
  • Step 704 the vector X, transposed to the system 10 co-ordinate axis origin, is calculated for the Raw 3D Marker pair N of segment J for body L.
  • a processing loop is controlled by counter K in Steps 706, 718, and 719, which sequences through all the segment lengths subsequent to segment J within body L.
  • a processing loop is controlled by counter M in Steps 707, 716, and 717, which sequences through all the Raw 3D Marker pairs in the Segment Raw Marker Cross Reference Table, 56 (FIG. 15) of body L for segment K.
  • the vector Y transposed to the origin, is calculated for the Raw 3D Marker pair M of segment K for body L.
  • the dot (•) product between vector X and vector Y is determined.
  • This dot (•) product is compared to the actual dot (•) product for segment pair J and K as stored in Segment Dot Product Table, 46 (FIG. 14) for body L. If the difference is less than a predefined value, a match is found.
  • the predefined value is a function of the system 10 accuracy and is kept as small as practical to reduce the number of false segment matches, but large enough to avoid unnecessarily rejecting valid segments.
  • the preferred embodiment uses a value of 200.
  • Steps 712 to 715 the valid Raw 3D Marker pair N and M is be moved to the first position in row J and K.
  • a Total Raw Pairs Counter not shown, is set to 1 and all other Raw 3D Marker pairs are eliminated.
  • the segments J and K are set to true in the Qualified Segment Table, 58 (FIG. 16) .
  • Step 722 Upon completion of each iteration of control loop J a test will be performed in Step 722. If segment J is not qualified after comparison to all subsequent segments, it is considered a bad segment.
  • Step 723 all Raw 3D Marker pairs are eliminated for segment J and the counter Total Raw Pairs will be set to 0.
  • the process repeats for all bodies 11a, lib (Steps 725-728) .
  • Advance J to next segment length SLac This segment is qualified. Advance J to next segment . This was the last segment. Advance L to next body. This was the last body. Complete, See Table (Step 158) .
  • the correspondence between the Raw 3D Markers indexed in the Segment Raw Marker Cross Reference Table, 56 (FIG. 15) and the bodies actual markers is determined by set intersection methods using the body's Marker Segment Set Table, 48 (FIG. 13) .
  • the raw 3D markers R1-R4 are mapped into the body's Measured Marker Position Table, 60 (FIG. 17) .
  • These steps are described below as illustrated with an example using flow diagram FIG. 8, Marker Correspondence Extraction.
  • the marker correspondence extraction operation has a three deep control loop. In Steps 801, 825, and 826, a processing loop is controlled by counter K that will sequence through all the rigid bodies being tracked.
  • a processing loop is controlled by counter N in Steps 802, 823, and 824, which will sequence through all the markers of body K. Set intersection is determined using registers Ml and M2. These are initially set to empty in Step 803.
  • a processing loop is controlled by counter J in Steps 804, 812, and 813, which sequence through all the segment lengths attached to marker N of body K. For any given marker there will be B-l connecting segments, where B is the total number of markers for the body.
  • Step 805 L is set to the segment number indexed by J for marker N of body K in the Marker Segment Set Table, 48 (FIG. 13) .
  • Steps 807 through 811 if there is a qualified segment length SL in the Segment Raw Marker Cross Reference
  • Ml is empty, then Ml is set to the first marker of the pair and M2 is set to the second marker of the pair. If Ml is not empty then a test is made to determine if Ml is equal to either the first or second marker of the pair. If Ml is not equal to either marker then it does not intersect with the set and will be set to rejected. Identically M2 is tested to either the first or second marker of the pair. If M2 is not equal to either marker then it does not intersect with the set and it will be set to rejected. This is repeated for all connecting segments to marker N.
  • Ml and M2 can have various states which are tested in Steps 814, 815-817, 818-820, and 821-822. If Ml is a valid marker and M2 is rejected then the raw marker referenced by Ml corresponds to marker N. If M2 is a valid marker and Ml is rejected then the raw marker referenced by M2 corresponds to marker N.
  • the Raw 3D Marker position referenced by Ml or M2 can be copied to the Measured Marker Position Table, 60 (FIG. 17) . If both Ml and M2 are rejected or empty then there is no corresponding raw marker for marker N and the Measured Marker Position Table, 60 (FIG. 17) will be set to missing for this marker.
  • N marker 12a. Set Ml and M2 to empty.
  • the raw marker pair is Rl , R2.
  • the above sequence is repeated for markers 12b and 12c.
  • the process repeats with raw marker R2 mapping into actual marker 12a, raw marker R4 mapping into actual marker 12b, and raw marker Rl mapping into actual marker 12c.

Abstract

A system for determining the spatial position and orientation of each of a plurality of bodies. Each one of the bodies has at least three markers in a predetermined, relative geometric relationship. The markers are adapted to emit energy in response to an activation signal and/or to reflect energy impinging upon such passive marker from an activatable energy source. A common energy detector is provided for detecting the energy emitted by the active marker and the energy reflected by the passive marker. A common processor is provided. The processor has a memory. The memory has stored therein the predetermined, relative geometric relation of the markers for each one of the bodies. The processor compares the stored predetermined geometric relation of the markers for each of the bodies with the energy detected by the energy detector to identify the bodies emitting, or reflecting the detected energy. With such an arrangement, a body can be tracked using a very simple sequence of operation in real-time with robust positive marker identification by taking advantage of a simple marker placement methodology. Multiple bodies can thereby be tracked simultaneously.

Description

A SYSTEM FOR DETERMINING THE SPATIAL POSITION AND ORIENTATION
OF A BODY
Background of the Invention This invention relates generally to systems for determining the spatial position and angular orientation (i.e. pose) of a body, or object.
As is known in the art, systems are available for determining the spatial position and angular orientation of a body (or object) . One such system includes passive retro-reflectors as point markers, or targets, affixed to the body and a second system includes active radiating emitters as the affixed point markers. Both techniques operate by projecting the image of a high contrasting marker onto spaced sensors and using mathematical processing to determine the three dimensional coordinates of each one of the point markers. These three dimensional coordinates (i.e., 3D) are then used as discrete points, or may be considered as a set if their geometric arrangement is known, resulting in the determination of the position and angular orientation of the body (i.e., six degrees of freedom: x,y and z positions and pitch, yaw and roll angular orientations) in space relative to a three dimensional coordinate system centered at a preselected point in space, typically at a point fixed relative to the sensors.
Determining the spatial position and either the vector angle or angular orientation of a body has several uses. For example, a pointing device can be made out of the body whereby the end tip of the pointing device is in a known position relative to the markers. Such a pointing device can be used as a digitizing pointer held by hand as in reverse engineering applications. An operator moves this pointing body to various known places on a manufactured component and the accuracy of the manufacturing processes is determined from analysis of the determined end tip position of the pointing device. This application requires a highly accurate system. In another applications, such as in an image guided surgical procedure the instrument pose is being tracked with respect to the patient. Certain surgical instruments have affixed to them markers. This information can be used to allow the surgeon to see where the instrument is pointing on a MR or CT scan, and what is beyond the end tip of the surgical instrument. This application also requires a highly accurate system.
In one emitting marker (i.e., an active marker) system, multiple charge couple device (CCD) sensors are used to detect the energy emitted by the marker. A single point marker is energized per sensor cycle to emit infrared energy. During each sensor cycle, the emitted energy focused onto the sensor is collected (i.e. integrated) and shifted to the sensor processing circuitry. In order to determine the 3D position of the marker, the marker must be detected on at least three sensor axes (i.e. to cover a minimum of 3 orthogonal planes) . There are many advantages to a system which uses emitting markers including high contrast images being produced on the sensors, control over activation of each of the markers affording positive and automatic marker discrimination, and the ability to use high speed linear sensors. High speed linear sensors are relatively expensive and only one marker can be tracked during a single sensor cycle.
In one retro-reflective marker (i.e., a passive marker) system, an energy source is energized to emit infrared energy in the general direction of the retro-reflective marker. Multiple CCD sensors are then used to detect the energy reflected by the marker. During each sensor cycle, the reflected energy focused onto the sensor is collected (i.e., integrated) and shifted to the sensor processing circuitry. In order to determine the 3D position of the marker, the marker must be detected on at least three sensor axes (i.e. to cover a minimum of 3 orthogonal planes) . There are many advantages to a retro-reflective marker system including the use of wireless markers and the ability to use inexpensive low speed area array sensors. These systems, however, suffer from problems associated with positively identifying markers.
It is desirable to use a cost effective area array sensor which is capable of tracking multiple markers during a single sensor cycle. As is known in the art there are systems that make use of single area array sensor and inexpensive components. DeMenthon (Patent Number 5, 227, 985) teaches a system which uses a single sensor and matrix techniques to determine the pose of a body. This system is limited to noncoplanar markers and is based on projection methods to extract 6D information from 2D images. This method will not have sufficient accuracy for medical applications. As is well known in the art, the error in the depth measurement is prohibitively large for this type of system. Triangulation methods have a distinct advantage of projection methods for the depth accuracy. Triangulation methods, also called stereometric techniques, were rejected due to the costly hardware required to perform real-time calculations. Multiple marker triangulation methods with area array sensors have the additional problem of poor marker identification, which is typically solved with human intervention. Prior systems can operate poorly in the presence of real -life situations of stray IR sources and reflections that will appear to be unwanted and unexpected markers. Prior systems can also operate poorly in the presence of multiple bodies in close proximity to each other.
Summary of the Invention In accordance with the present invention, a system for determining the spatial position and orientation of each of a plurality of bodies is provided. Each one of the bodies has at least three markers in a predetermined, relative geometric relationship. The markers are adapted to emit energy in response to an activation signal and/or to reflect energy impinging upon such passive marker from an activatable energy source. A common energy detector is provided for detecting the energy emitted by the active marker and the energy reflected by the passive marker. A common processor is provided. The processor has a memory. The memory has stored therein the predetermined, relative geometric relation of the markers for each one of the bodies. The processor compares the stored predetermined geometric relation of the markers for each of the bodies with the energy detected by the energy detector to identify the bodies emitting/or reflecting the detected energy. With such an arrangement, a body can be tracked using a very simple sequence of operation in.real-time with robust positive marker identification by taking advantage of a simple marker placement methodology. Multiple bodies can thereby be tracked simultaneously.
In accordance with another feature of the invention, each body must have markers in a known and fixed relative geometry and must have unique segment lengths amongst all pairs of all the markers, where the term unique is a threshold value difference based on the accuracy of the system (i.e., the difference in the geometric relations of the markers for the bodies is detectable) . Multiple objects can be tracked simultaneously if pairs of like segments amongst all bodies being tracked have unique relative angles, again where the term unique is a threshold value difference based on the accuracy of the system. The marker geometry can be collinear or coplanar as required by the applications.
Further, with such an arrangement, a system is provided adapted to track the pose of a body with 3 or greater markers in a known relative geometry, subject to simple placement rules, which are not limited to being non-coplanar or non-collinear . The system is able to use a cost effective, low speed, area array sensors that can track multiple markers in a single sensor cycle, thus increasing the apparent sampling rate of each of the markers .
In accordance with another feature of the invention, the system uses a stereometric arrangement of sensors, thus providing adequate accuracy for high performance applications such as surgical application.
Further, the system as able to use cost effective digital signal processors and simple processing calculations steps which will automatically and positively identify the discrete markers of the body in three-dimensions (3D) and operate in the presence of many false markers and multiple bodies in close proximity. The system is adapted to determine the pose of one or more bodies in real-time in a closed form solution using a single sensor cycle image rather than using predictive methods to continue tracking the pose of a body given several sensor cycle images .
Further, the system is adapted to automatically recognize and track various bodies that are known in advance of tracking.
Brief Description of the Drawings Other features of the invention will become more readily apparent with reference to the following description taken together with the following drawings, in which:
FIG. 1 is a block diagram of a system for determining the spatial position and orientation of a pair of rigid bodies according to the invention;
FIG. 2 shows the pair of bodies adapted for use in the system of FIG. 1 ;
FIG. 3 is a diagram of a Tables stored in a memory of a processor used in the system of FIG. 1; FIGS. 4, 5, 6, 6A-6B, 7, 7A-7C, 8 and 8A-8B are flow diagrams which diagrammatically illustrate the sequence of operations of the system of FIG. 1, where FIG. 7 shows the relationship among FIGS. 7A-7C and FIG. 8 shows the relationship between FIGS. 8A and 8B; FIGS. 9A, 9B to 18 illustrate detailed examples of the elements in the memory of FIG. 3 at various stages of execution the system of FIG. 1.
Description of the Preferred Embodiments Referring now to FIGS. 1, a system 10 is provided for determining the spatial position and orientation of one or more, here a pair of, rigid bodies 11a, lib, is provided. Here, the rigid bodies 11a, lib, shown and described in more detail in FIG. 2, are different surgical instruments. Here, rigid body 11a has a plurality of, here two passive, retro-reflecting point markers 12a, 12c, and one active, emitting marker 12b affixed thereto. Here, each of the energy retro-reflecting markers 12a, 12c includes a sphere, affixable to body 11a, covered with a retro-reflective material as is generally available and well known in the art. The markers 12a, 12b, 12c are affixed to body 11a in a predetermined, fixed relative geometric relationship. The predetermined, fixed relative geometric relation is defined -by simple placement rules described below.
Referring again to FIG. 1, the system 10 includes a common energy detection system 14 for detecting both the energy emitted by the active marker 12b affixed to body 11a and the energy reflected by the passive markers 12a, 12c affixed to the body 11a. The common detector system 14 includes a pair of spaced, left mounted and right mounted sensor assemblies 14L and 14R, respectively. Each one of the sensor assemblies 14L, 14R includes: a two-dimensional, charge couple device (CCD) sensor 18L, 18R (FIG. 1) , respectively; a focusing lens 22L, 22R, respectively, as shown; and, a plurality of light energy emitting sources 24L, 24R (here infrared energy emitting diodes) , respectively, as shown.
Each of the sensor assemblies 14R and 14L has its own u, v, z co-ordinate system aligned with its associated directional infrared energy sources 24L, 24R, respectively.
The light emitting sources 24L, 24R are evenly distributed circumferentially 1 about the zs axis of each of the sensor assemblies 14R and 14L, respectively. The plurality of light emitting sources 24L, 24R is energized with electrical energy by a processor section 26. The processor section 26 includes a processor 28, host computer 30, display 32 and controller 34.
The processor 28 energizes the light emitting sources 24L, 24R via a signal on line 36. The plurality of light emitting sources 24L, 24R operate to produce an incident directional energy beam of infrared energy with a direction of propagation aimed along a directional axis which generally corresponds to the zs axis of each of the sensor assemblies 14L, 14R associated with that directional energy source 24L, 24R. The incident directional energy beam created by the directional infrared energy source is of a size, shape and intensity that corresponds to the volumetric field of view of its associated sensor assembly 14L, 14R and sufficient to provide an incident directional energy beam throughout the measurement volume.
The sensor assemblies 14L, 14R are each able to produce output signals on lines 39L, 39R, respectively, which represent the intensity of energy focused thereon. During each sensor cycle, the energy focused thereon is collected (i.e. integrated) and then shifted to the processor 28. Here, the sensor assemblies 14L and 14R are mounted to a fixed reference and are separated from each other by a predetermined distance, here 500 mm. Here, the sensor assemblies 14L, 14R each have a field of view sufficient to observe a common measurement volume
3 of approximately lm centered along the z axis at approximately 1.9m from the origin point which is midway between the lenses 22L and 22R. As noted above, each of the sensor assemblies 14 and
14R has its own associated lens 22L, 22R, respectively, for focusing both the reflected energy from the energy retro-reflecting markers 12a, 12c and the emitted energy from the energy emitting marker 12b, in order to create a focused energy image of the emitted or reflected energy from the markers 12a, 12b, 12c respectively on the lenses 22L, 22R associated sensor assemblies 14R, 14L, respectively.
The processor 28 is coupled to the sensor assemblies 14L and 14R and determines the two-dimensional u, v positions of the focused energy image on each of the sensor assemblies 14L and 14R. Then, using the u, v position of the focused energy image of the same marker 12a, 12b, 12c on each of the sensor assemblies 14L and 14R to generate left and Right Sensor Energy Source Location Tables 50L, 50R (FIGS. 3 and 9A, 9B) and set the Left-Sources and Right Sources counters 51L, 51R, to be described.
The processor 28 is coupled to the host computer 30 in order that the spatial position of the bodies 11a, lib can be displayed on display 32 or further processed by the host computer 30. As noted above, the processor 28 is coupled to the directional energy sources 24L, 24R in order that the processing section 26 can activate the directional energy sources 24R and 24L at appropriate times. The processor 28 is also coupled to the controller 34 in order that the processor 28 can signal the controller 34 to activate the energy emitting markers 12b at the required time via line 27. The operation of system 10 will be described for body
11a, it being understood that the sequence of operations is substantially the same, or equivalent, for other rigid bodies, such as body lib. Thus, the active marker 12b is fed via a cable 27 (FIG. 1) to controller 34, as shown. Here, as noted above, the energy emitting marker 12b include an infrared energy emitting diode of marker 12b which, upon being energized with electrical energy fed thereto by controller 34 via the cable 27, emits infrared light energy. Such infrared energy emitting diodes are generally available and well known in the art.
Referring now in more detail to FIG. 2, the rigid bodies 11a and lib are have affixed thereto markers 12a-12c and 12d-12f, respectively. It should first be understood that it is not relevant that marker 12a, and 12c are retro-reflective and marker 12b is active. This configuration is for example only and the methods described below are independent of the marker type. Each body 11a, lib has the markers 12a, 12b, 12c and 12d, 12e, 12f, respectively, affixed to it in a predetermined (i.e., known) and fixed relative geometry. Further, the relative geometry for the markers 12a, 12b and 12c must be detectably different from the relative geometry of markers 12c, 12d and 12f of body lib. Thus, as shown in FIG. 2, the markers 12a, 12b and 12c of body 11a are separated by line segments SLab, SLbc and SLac, respectively, as shown. Further, the line segments SLab, SLbc, and SLac intersect, as shown to form angles 0ab, θbc, and 0ac, as shown. Likewise, the markers 12d, 12e and 12f of body lib are separated by line segments SLde, SLef and SLdf, respectively, as shown. Further, the line segments SLde, SLef, and SLdf intersect, as shown, to form angles θde , θef , and θdf, as shown Further, segment length SLab must vary in length from segment SLac and SLbc, as must segment length SLbc vary in length from segment SLac. The variance, Δ, in the preferred embodiment is 5.0 mm. Thus, if the length of segment SLab is SLab, the length of segment SLbc is at least SLab+Δ and the length of segment SLac is at least SLab+Δ and at least SLab±Δ . That is, the length of all the segments SLab, SLbc and SLac must differ from each other by Δ. Further, a body with 3 markers will have 3 segments. In general, however, the number of segments is equal to N*(N-l)/2, where N is the total number of markers. Body 11a has a pair of segments SLab, SLbc which are equal in length to the pair of segments SLde, SLef on body lib; these can still be tracked if the relative angle θab between segment SLab, SLbc on body 11a is different than the relative angle θde between segment SLde, SLef on body lib. The marker geometry can be collinear, non-collinear, co-planar or non-coplanar, as required by the application. The pair of bodies 11a, lib are tracked simultaneously if pairs of like segments amongst all bodies 11a, lib being tracked have unique relative angles, again where the term unique is a threshold value difference based on the accuracy of the system 10. That is, the markers 12a-12c, 12d-12f are placed on bodies 11a, lib, respectively to provide each one of the bodies 11a, lib with a unique signature, or finger-print, that can be recognized and tracked by the processor 28.
Before discussing the operation of the system 10, it should first be noted that the processor 28 has a memory 40 (FIG. 3) which stores three sets of Tables, 42-48; 50L, 50R, and 52; and 56-62. A first set of the Tables (i.e., A Rigid Body Definition Set of Tables, 42-48) defines the predetermined geometric relationship of the markers 12a-12d, 12e-12f for each one of the bodies 11a, lib; a second set of the Tables (i.e., Sensor Generated Data Tables, 50L, 50R and 52) contain information that is generated each time the sensors 14L, 14R are scanned and these Tables 50L, 50R and 52 are therefore not associated with any particular body; and, a third set of Tables (i.e., Processing Tables, 56-62) which are generated by the processor while the rigid bodies 11a, lib are being identified and tracked. These Tables (and Counters 51L, 51R and 53, to be described) , reside in the processor 28 and are used by the processor 28 during the operating sequence thereof.
Rigid Body Definition Tables, 42-48 The Rigid Body Definition Tables include: a Marker Position Table, 42; a Marker Segment Table, 44; -a Marker Segment Dot (•) Product Table, 46 and a Marker Segment Set Table, 48. These Rigid Body Definition Tables, 42-48 are for all bodies 11a, lib and contain a priori known information about geometric relationship of the markers 12a-12c and 12d-12f, that are affixed to rigid bodies 11a. lib, respectively, to thereby provide each one of the bodies 11a, lib with a unique signature, or finger-print, that can be recognized and tracked by the processor 28. These Rigid Body Definition Tables, 42-48 are initialized once prior to the identification and subsequent tracking operations of the processor 28.
Marker Position Table, 42 Each rigid body 11a, lib, has associated with it a Marker Position Table 42, as shown for body 11a in FIG. 11. The Marker Position Table 42 includes the 3D position (X', Y' , Z' ) of each marker 12a, 12b and 12c associated with the rigid body 11a, for example. Referring to FIG. 11, the Marker Position Table 42, is shown for body 11a, it being understood that Table 42 has a similar table for body lib. The 3D position of marker 12a, 12b, and 12c is shown. Segment Length Table, 44
Each rigid body 11a, lib has a Marker Segment Length Table 44, (FIG. 12) associated with it that contains the set of segment lengths of a body 11a, lib. A segment is considered the line joining a pair of markers 12a, 12b, 12c for body 11a and markers 12d, 12e and 12f for body lib. Thus, as noted above in connection with FIG. 2, body 11a has segments SLab, SLbc, and SLac and body lib has segments SLde, SLef and SLdf. The complete set of segments for a body is every combination of marker pairs. Thus, there are N* (N - 1) /2 segments for a body where N is the number of markers affixed to the body.
Referring to FIG. 12, Marker Segment Length Table 44, is shown for body 11a. The segment lengths SLab, SLbc, and SLac are shown.
Marker Segment Set Table, 48 Each rigid body 11a, lib has a Marker Segment Set Table 48 (FIG. 13) associated with it that contains the marker segment sets. There is one entry in the Table 48 for each marker. Each marker entry will contain 2 or more segments that are connected to this marker. There will be N-l segments attached to each marker for an N marker body. FIG. 13 shows the set of segments for a rigid body 11a. Each marker 12a, 12b, 12c has associated with it two segments (i.e., segment 1 and segment 2, in FIG. 13) . Thus, as indicated in FIGS. 2 and 13, for body 11a, marker 12a is attached to segments SLab and SLac; marker 12b is attached to segments SLab and SLbc. Marker 12c is attached to segments SLac and SLbc. It is understood that a similar table would be for marker lib.
Segment Dot (•) Product Table, 46 Each rigid body has a Segment Dot (•) Product Table 46 (FIG. 14) associated with it that contains the list of dot (•) products between each combination of segments. The dot (•) product is used as a determination of the angle, θ, between the segment lengths, SL, when the segments are treated as vectors transposed to the origin of X, Y, Z system 10 co-ordinate system. There will be N* (N-l) /2 combinations of segment pairs where N is the number of segments in the rigid body. The example FIG. 14 shows the set of dot (•) products for body 11a. Here, the dot (•) product for angle θa,b between segment lengths SLab and SLbc is shown to be 3600. Likewise the dot (•) product for angle θa,c between segment lengths SLab and SLac is shown to be 0 and the dot (•) product for angle θb,c between segment lengths SLbc and SLac is shown to be 2500. It should be understood that a similar table exists for body lib. Sensor Generated Data Tables, 50L, 50R and 52 The Sensor Generated Data Tables 50L, 5OR and 52 include: Left and Right Sensor Energy Source Location Tables 50L, 50R; and a Raw 3D Marker Table 52.
Left and Right Sensor Energy Source Tables, 50L, 50R
There is one Sensor Energy Source Table 50L and 50R in memory 40 for each area array CCD sensor 18L, 18R (FIGS. 1, 9A, 9B) . There will be one entry for each energy spot detected on the CCD sensor 18L, 18R. The Left-Sources and Right-Sources Counters 51L, 51R, respectively, contain the number of the energy spots detected on the left and right sensor 18L, 18R respectively. Each entry will have a U and V value corresponding to the center of mass of the energy spot along the U axis and the V axis of the associated sensor 18L, 18R. In the preferred embodiment there will be left and right sensor energy source Tables, 50L, 50R (FIG. 3) . Here, the are four energy sources S--S., S-.-Sft, detected by each one of the sensors 18L, 18R, respectively, as indicated in FIG. 9A and 9B. It is noted that the sources S_ ±-S o0 are in the u,v co-ordinates of the sensors 18L, 18R, as indicated in FIGS. 9A and 9B. Raw 3D Marker Table, 52
There is single Raw 3D Marker Table 52, (FIGS. 3, 10) in memory 40 that contains a single entry for each determined but unqualified marker location (raw markers) . Each entry has an X, Y and Z (i.e., the X, Y, Z system 10 co-ordinate system) value corresponding to the coordinate system of the position sensor with the origin midpoint between the image sensors 18L, 18R. The Raw Marker Counter 53, contains the number of raw markers detected. Referring to FIG. 10, an example is given of 4 raw markers. In this example the markers 12a, 12b, and 12c of body 11a are detected and one stray unknown marker. The allocation of these markers R1-R4 is not known at this time with respect to markers 12a-12c and 12d-12f on body 11a and lib, respectively. The sequence of operations will be used to determine the correspondence of these markers to body 11a or body lib.
Processing Tables, 56-62 The Processing Tables are: a Segment Raw Marker Cross Reference Table 56; a Qualified Segment Table 58; a Measured Marker Position Table 60; and, a Calculated Rigid Body Position and Orientation (Pose) Table 62. These Processing Tables 56-62 are produced by the processor 28 for each of the rigid bodies 11a, lib and are generated by the processor 28 while the rigid bodies are being recognized (i.e., identified) and tracked. Segment Raw Marker Cross Reference Table, 56 Each rigid body has a Segment Raw Marker Cross Reference Table 56 (FIGS. 3, 15) associated with it that contains all the raw marker 12a, 12b and 12c pairs that have a separation distance close to the defined segment length of the rigid body. The term close is defined by a length difference between the defined segment and the segment under test, which is less than some predefined value (i.e., a distance detectable by the system 10) . In the preferred embodiment this value is 1.5 mm. The following example (FIG. 15) illustrates pairs of markers that match the predefined segment lengths SLab, SLbc, SLac of the body 11a. The raw marker pair data is determined by the processor 28 in accordance with a method to be described in connection with FIG. 6. Suffice it to say here, however, that, in this example, the two sets of four raw energy data S1-S8 detected by the right and left sensors 14L, 14R, FIGS. 9A, 9B) are converted by the processor 28 into four raw markers R1-R4 (in the system 10 X, Y, Z co-ordinate system) and are stored in the 3D Raw Marker Table, 52 (FIG. 10) . Thus, because there are four raw markers R1-R4 there are six segment lengths (i.e., SL12, SL13, SL14 , SL23, SL24 and SL34) . Here, in this example, raw markers Rl and R2 are separated by a segment length SL12 which is close to the length of segment SLab. Raw markers (Rl, R4), (R3, R4) , and (R2, R3) are all separated by a length close to length of segment SLbc. Also raw markers (R2 , R4) , and (Rl, R3) are all separated by a length close to length of segment SLac. This data is stored in the Segment Raw Marker Cross Reference Table, 56 as indicated in FIG. 15. Qualified Segment Table, 58
There is one Qualified Segment Table 58 (FIGS. 3, 16) for each rigid body 11a, lib. This Table 58 is generated during the segment verify phase, to be described in connection with FIG. 7. Suffice it to say here, however, that there is one entry for each segment of the rigid body. The example in FIG. 16 shows segment SLab, SLbc, and SLac of body 11a are all qualified. Measured Marker Position Table, 60 Each rigid body 11a, lib has a Measured Marker Position Table 60 (FIGS. 3, 17) associated with it that contains the 3D positions of the raw markers R1-R4 that have been identified, validated, and mapped. to the body actual markers 12a-12c, 12d-12f. The example given in FIG. 17 shows the measured position of markers 12a, 12b, and 12c of body 11a where actual marker 12a corresponds to raw marker R2 , actual marker 12b corresponds to raw marker R4 , and actual marker 12c corresponds to raw marker Rl .
Calculated Rigid Body Position and Orientation Table, 62
Each rigid body has a Calculated Rigid Body Position and Orientation Table 62 (FIGS. 3, 18) associated with it that contains the transformation of the rigid body. This is the pose that is determined from the Measured Marker Position Table 60 (FIG. 17) based on the Marker Position Table 42 (FIG. 11) . In other words, the pose is the transformation that moves the Marker Position Table 42 into the same space X, Y, Z co-ordinate system of system 10, as shown in Measured Marker Position Table 60. The example shown in FIG. 18 illustrates the pose of body 11a.
Sequence of Operations Overview The pose, or orientation, of a body or bodies can be determined simultaneously and in real time from the following operations as illustrated in the flow diagram FIG. 4. In Step
401, the energy sources 24L and 24R (FIG. 1) and active marker 12b are activated. Referring to FIG. 1 these energy sources are focussed through the lens system 22L, 22R and project an image on the CCD sensors 18L, 18R. This image is scanned from the sensors 18L, 18R and any intensity above a certain threshold value will be analyzed by the processor 28. In Step
402, the position of the sensor energy sources are stored in Left and Right Sensor Energy Source Location Tables 50L, 50R
(FIGS. 3, 9A, 9B) . The position is in units of pixels. The horizontal axis of the sensor is called U and the vertical axis is called V. In the preferred embodiment, a left and right sensor 18L, 18R is used. The Left Sources and Right Sources Counters 51L, 51R, respectively, are set to the number of detected energy sources on the left and right sensors 18L, 18R respectively. In the example described in connection with FIGS. 9A and 9B there are four detected energy sources S--S., S,_-S0 detected by each of the sensors 18L, 18R, respectively; thus the count in each one of the counters 51L and 51R are, in that example, 4.
In Step 403, appropriate Tables (i.e., Tables 52, 56) and Counters 51L, 51R and 53) are initialized for the subsequent sequence of operations. The Raw 3D Marker Table 52, the Raw Marker Counter 53 and the Segment Raw Marker Cross Reference Table 56, are all cleared. In Step 404, the energy sources stored in the Left and Right Sensor Energy Source Location Tables 50L, 50R are analyzed by processor 26 and Raw 3D Marker Table 52 (FIG. 10) is generated. The Raw Marker Counter 53 is set to the number of raw markers detected. At this time it is unknown what these markers are. Some may be markers from the body or bodies being tracked, other may be reflections, and still others may be artifacts caused by the marker detection method. Triangulation methods to generate the 3D position from stereoscopic views is well known in the art and one method will be described later in the section Generate Raw 3D Marker Table 52.
In Steps 405 and 406, the distance, i.e. segment lengths, SL12 , SL13, SL14, SL23, SL24 and SL34, between all combinations of Raw 3D Markers pairs is calculated. These calculated lengths are compared to the Segment Length Table 44 (FIG. 12) for each body 11a, lib being tracked. Matches are placed in the Segment Raw Marker Cross Reference Table 56 (FIG. 15) for each body 11a, lib. These steps are described in detail in FIG. 6 in connection with the Generate Segment Raw Marker Cross Reference Table 56 (FIG. 15) .
In Step 407, all possible segment guesses in the Segment Raw Marker Cross Reference Table 56 (FIG. 15) for each body 11a, lib are verified by comparing the relative angles, ?, between the segment lengths, SL, of the body 11a, lib. These steps are described in detail later in the connection with FIG. 7, Segment Verify. In Step 408, the correspondence between the raw 3D markers R1-R4, in the example given above, and the bodies 11a, lib actual markers 12a-12c, 12d-12f, respectively, is determined by set intersection methods using the body's Marker Segment Set Table 48 (FIG. 13) in conjunction with the body's Segment Raw Marker Cross Reference Table 56 (FIG. 15) . The raw 3D markers are mapped into the body' s Measured Marker Position Table 60 (FIG. 17) . These Steps are described in detail later in connection with FIG. 8, Marker Correspondence Extraction.
In Step 409, the body's orientation (pose) is determined by the markers contained in the body's Measured Marker Position Table 60 (FIG. 17) . Methods for determining the 6 degrees of freedom for a rigid body from discrete markers is well known in the art and will not be described here.
Finally, in Step 410, the pose of all the bodies are stored in Table 62 (FIG. 18) and can be displayed. The pose can also be stored, transmitted to another computer, or further processed, as desired. The above sequence will become more readily apparent with the use of an example and the detailed descriptions below.
Generation of the Raw 3D Marker Table, 52 The energy sources S -S , S -S (FIGS. 9A and 9B) stored in the Left and Right Sensor Energy Source Location Tables 50L, 50R are analyzed and Raw 3D Markers R1-R4 (FIG. 10) are determined. The Raw Marker Counter 53 is set to the number of raw markers detected. Referring now to FIG. 5, the following method for generating 3D positions from two stereoscopic images will be described. The following method is well known in the art and other methods are available.
In Step 501, the Raw Marker Counter 53 is initially set to 0. Parametric lines equations are generated for each Left Sensor Energy Source 14L and each Right Sensor Energy Source 14R in Steps 502, 503, 504 and 505. A. line is between a point on one of the sensors 18L, 18R (i.e., at the V=U=Z =0, or origin of the sensors co-ordinate system) and one of the energy source S1-S4. Thus, there are four lines (i.e., left lines) from sensor 18L to each of the detected sources S1-S4. Likewise, there are four lines (i.e., right lines) from sensor 18R to each of the detected energy sources S5-S8. In Steps 506, 507, and 512 to 515, a double loop is processed that will pair every left line with every right line. The number of total iterations of this loop will be equal to Left Sources 52L * Right Sources 52R. In the example described above, there are 4 Left Sources S1-S4 and 4 Right Sources S5-S8 (FIGS. 9A and 9B) that will take 16 iterations to compute Table 52 (FIG. 10) . In Steps 508 and 509, the minimum distance between a left and a right line is determined. If this distance is less than a predefined minimum then the lines are considered intersecting and a possible 3D marker R -R has been discovered. This marker is considered Raw since it is unknown at this time if it is a valid marker. There are 4 such matches in example shown in FIG. 10. The minimum separation is a function of the system accuracy and is kept as small as practical to reduce the number of false markers. In Step 510 and 511, the 3D mid-point between the left and right lines is placed in the Raw 3D Marker Table 52 (FIG. 10) . The Raw Marker Counter 53 is incremented.
Upon completion of Steps 501 to 515, the Raw Marker Counter 53 contains the number of Raw Markers detected and the Raw 3D Marker Table 52 (FIG. 10) is complete. From this point forward all subsequent decisions are made on 3D markers and the 2D Sensor Energy Locations are no longer required. For the example there are 4 Raw 3D Markers R1-R4 detected. It is unknown at this time what each of the markers is.
Generation of the Segment Raw Marker Cross Reference Table, 56 (FIG. 15) for All Rigid Bodies
In overview, the next sequence will perform the following. All the possible segments between all Raw 3D Markers (e.g. R1-R4) in Table 52 (FIG. 10) are compared to all the segment lengths SLab, SLbc, SLac, and SLde, SLef, SLdf of each body 11a, lib, respectively, m Table 44, FIG. 12. If a match is discovered the Raw 3D Marker pair is added to the Segment Raw Marker Cross Reference Table 56 (FIG. 15) for that body. The same raw segment under test may match to several rigid bodies. As well, a rigid body segment may have several raw test segments that match. These will be filtered out in a later operation, Segment Verify (FIG. 7) . The above will be clarified by use of an example and the flow diagram FIG. 6, Generate Segment Raw Marker Cross Reference Table, 56 for all Rigid Bodies. In Steps 601, 602, and 613 to 616, a two deep processing loop is controlled. The two outer most loops are indexed by counters N and L, not shown but included in processor 26, used to pair up all combinations of Raw 3D Markers R1-R4. There are N'*(N'-l)/2 segments (maker pairs) where N' is equal to Raw Markers R1-R4, for example. Here, N' =4. The segment length between Raw 3D Markers N and L is calculated once per iteration of the outer two loops (Steps 603) . This length is called the test segment and is used in the following section.
In Steps 604, 611 and 612, a processing loop is controlled by counter J, not shown but included in processor 28, that sequences through all the rigid bodies being tracked. In Steps 605, 609, and 610, a processing loop is controlled by counter K, not shown but included in processor 28, that sequences through all the segments within one of the bodies 11a, lib, here indicated in general by body J. The segment matching is performed in Steps 606, 607 and 608. The segment K of body J is compared to the test segment. A segment is considered to be a match if the difference is less than a predefined value. When a match occurs the Raw 3D Marker pair index counters N and L values are placed in the next available pair in the Segment Raw Marker Cross Reference Table 56 (FIG. 15) for body J for segment K. The counter "Total Raw Pairs", not shown but included in processor 28, for segment K is incremented. The predefined value is a function of the system accuracy and is kept as small as practical to reduce the number of segment matches, but large enough to avoid, unnecessarily rejecting valid segments.
In the given example referring to FIG. 15, for body 11a, segment length SLab has a single match being Raw 3D Marker pairs Rl and R2. Segment length SLbc has 3 matches being Raw 3D Marker pairs: Rl and R4 ; R3 and R4 ; and, R2 and R3. Segment length SLac has two matches being Raw 3D Marker pairs : R2 and R4 ; and, Rl and R3. It is clear that 3 of the 6 segments are not part of the rigid body 11a and must be eliminated by Segment Verify (FIG. 7) .
Segment Verification All possible segments defined by the Raw 43D Marker pairs in the Segment Raw Marker Cross Reference Table, 56 (FIG. 15) for each body 11a, lib are verified by comparing the relative angles, θ, between the segment lengths, SL, of the body 11a, lib. The method will become clear by examining the flow diagram shown in FIGS. 7, 7A-7C using the following example. The segment verify operation has a five deep control loop.
In Steps 701, 726 and 727, a processing loop is controlled by counter L that sequences through all the rigid bodies being tracked. In Step 701, the Qualified Segment Table, 58 (FIG. 16) is cleared for the rigid body L being verified. A processing loop is controlled by counter J in Steps 702, 724, and 725, which sequences through all the segment lengths SL of body L. The control loop is entered if the segment J is not already qualified, as indicated in the Qualified Segment Table, 58 (FIG. 16) . A processing loop is controlled by counter N in Steps
704, 720, and 721, which sequence through all the Raw 3D Marker pairs in the Segment Raw Marker Cross Reference Table, 56 (FIG. 15) of body L for segment J if the segment J in the Qualified Segment Table, 58 (FIG. 16) has not been qualified (i.e., set to FALSE (Step 703) . In Step 705, the vector X, transposed to the system 10 co-ordinate axis origin, is calculated for the Raw 3D Marker pair N of segment J for body L. A processing loop is controlled by counter K in Steps 706, 718, and 719, which sequences through all the segment lengths subsequent to segment J within body L.
A processing loop is controlled by counter M in Steps 707, 716, and 717, which sequences through all the Raw 3D Marker pairs in the Segment Raw Marker Cross Reference Table, 56 (FIG. 15) of body L for segment K. In Steps 708 through 711, the vector Y, transposed to the origin, is calculated for the Raw 3D Marker pair M of segment K for body L. The dot (•) product between vector X and vector Y is determined. This dot (•) product is compared to the actual dot (•) product for segment pair J and K as stored in Segment Dot Product Table, 46 (FIG. 14) for body L. If the difference is less than a predefined value, a match is found. The predefined value is a function of the system 10 accuracy and is kept as small as practical to reduce the number of false segment matches, but large enough to avoid unnecessarily rejecting valid segments. The preferred embodiment uses a value of 200.
When a match is found both segments are considered validated and Raw 3D Marker pairs N and M, for segments J and K in the Segment Raw Marker Cross Reference Table, 56 (FIG. 15) are considered true. In Steps 712 to 715, the valid Raw 3D Marker pair N and M is be moved to the first position in row J and K. A Total Raw Pairs Counter, not shown, is set to 1 and all other Raw 3D Marker pairs are eliminated. The segments J and K are set to true in the Qualified Segment Table, 58 (FIG. 16) . Upon completion of each iteration of control loop J a test will be performed in Step 722. If segment J is not qualified after comparison to all subsequent segments, it is considered a bad segment. In Step 723, all Raw 3D Marker pairs are eliminated for segment J and the counter Total Raw Pairs will be set to 0. The process repeats for all bodies 11a, lib (Steps 725-728) .
An example will now be described referring to the Segment Raw Marker Cross Reference Table, 56 (FIG. 15) , Segment
Dot Product Table, 46 (FIG. 14) , Raw 3D Marker Table, 52 (FIG.
10) , and the flow diagram FIG. 7, Segment Verify. The following sequence of events can be traced through the flow diagram. L = body 11a.
J = segment length SLab
Segment length SLab is not qualified. N = pair 1 (Rl , R2 ) of SLab
Generate vector for pair N (Rl, R2)
K = segment length SLbc
M = pair 1 (Rl, R4) of segment length SLbc Generate vector for pair M (Rl, R4)
Generate dot product, (•). (Rl, R2)«(R1, R4) =
3599.995117
Compare to dot product Table, 46 (FIG. 14) for SLab,
SLbc = 3600 Match is found.
Delete Pair 2 (R3, R4) and pair 3 (R2, R3) of segment length SLbc.
Set segment length SLbc to qualified.
Set segment length SLab to qualified. Advance M to next pair.
This was the last pair of segment length SLbc.
Advance K to segment length SLac.
M = pair 1 of segment length SLac
Generate vector for pair M (2,4) Generate dot product (•), (Rl, R2) • (R2, R4) =
0.001304
Compare to dot product Table, 46 (FIG. 14) for segment lengths SLab, SLac = 0 Match is found. Delete Pair 2 (Rl, R3) of segment length SLac.
Set segment length SLac to qualified. Set segment length SLab to qualified. Advance M to next pair. This was the last pair of segment length SLab. Advance K to next segment.
This was the last segment. Advance N to next pair. This was the last pair. Advance J to next segment length SLbc. This segment is qualified.
Advance J to next segment length SLac. This segment is qualified. Advance J to next segment . This was the last segment. Advance L to next body. This was the last body. Complete, See Table (Step 158) .
Marker Correspondence Extraction The correspondence between the Raw 3D Markers indexed in the Segment Raw Marker Cross Reference Table, 56 (FIG. 15) and the bodies actual markers is determined by set intersection methods using the body's Marker Segment Set Table, 48 (FIG. 13) . The raw 3D markers R1-R4 are mapped into the body's Measured Marker Position Table, 60 (FIG. 17) . These steps are described below as illustrated with an example using flow diagram FIG. 8, Marker Correspondence Extraction. The marker correspondence extraction operation has a three deep control loop. In Steps 801, 825, and 826, a processing loop is controlled by counter K that will sequence through all the rigid bodies being tracked. A processing loop is controlled by counter N in Steps 802, 823, and 824, which will sequence through all the markers of body K. Set intersection is determined using registers Ml and M2. These are initially set to empty in Step 803. A processing loop is controlled by counter J in Steps 804, 812, and 813, which sequence through all the segment lengths attached to marker N of body K. For any given marker there will be B-l connecting segments, where B is the total number of markers for the body. In Step 805, L is set to the segment number indexed by J for marker N of body K in the Marker Segment Set Table, 48 (FIG. 13) . In Steps 807 through 811, if there is a qualified segment length SL in the Segment Raw Marker Cross Reference
Table, 56 (FIG. 15) the set intersection of markers is tested. If Ml is empty, then Ml is set to the first marker of the pair and M2 is set to the second marker of the pair. If Ml is not empty then a test is made to determine if Ml is equal to either the first or second marker of the pair. If Ml is not equal to either marker then it does not intersect with the set and will be set to rejected. Identically M2 is tested to either the first or second marker of the pair. If M2 is not equal to either marker then it does not intersect with the set and it will be set to rejected. This is repeated for all connecting segments to marker N.
At this time Ml and M2 can have various states which are tested in Steps 814, 815-817, 818-820, and 821-822. If Ml is a valid marker and M2 is rejected then the raw marker referenced by Ml corresponds to marker N. If M2 is a valid marker and Ml is rejected then the raw marker referenced by M2 corresponds to marker N. The Raw 3D Marker position referenced by Ml or M2 can be copied to the Measured Marker Position Table, 60 (FIG. 17) . If both Ml and M2 are rejected or empty then there is no corresponding raw marker for marker N and the Measured Marker Position Table, 60 (FIG. 17) will be set to missing for this marker.
Example Working through an example will clarify the above statements. Referring to Segment Raw Marker Cross Reference Table, 56 (FIG. 15), Marker Segment Set Table, 48 (FIG. 13), Raw 3D Marker Table, 52 (FIG. 10) , Measured Marker Position Table, 60 and the flow diagram FIG. 8, Marker Correspondence Extraction. The following sequence of events can be traced through the flow diagram. K = body 11a.
N = marker 12a. Set Ml and M2 to empty.
Set J to first segment in Marker Segment Set Table, 48 (FIG. 13) for marker 12a. Set L to segment length SLab as referenced by J.
There is a qualified SLab segment in the Segment Raw Marker Cross Reference Table, 56 (FIG. 16) . The raw marker pair is Rl , R2.
Ml is empty therefore set Ml = Rl and M2 = R2. Advance J to second segment in Marker Segment Set
Table, 48 (FIG. 13) for marker 12a.
Set L to segment length SLac as referenced by J. There is a qualified SLac segment in the Segment Raw Marker
Cross Reference Table, 56 (FIG. 15) . The raw marker pair is R2 , R4. Ml is not empty. Ml does not equal R2 or R4 , therefore set Ml to rejected.
M2 does equal R2.
Advance J to third segment in Marker Segment Set Table, 48 (FIG. 13) for marker 12a. This was the last segment for marker N
Test Ml and M2.
Ml is rejected and M2 is equal to R2 therefore Raw 3D Marker R2 corresponds to actual marker N (12a) .
Copy 3D into Measured Marker Position Table, 60 (FIG. 17) .
Advance N to marker 12b.
The above sequence is repeated for markers 12b and 12c. The process repeats with raw marker R2 mapping into actual marker 12a, raw marker R4 mapping into actual marker 12b, and raw marker Rl mapping into actual marker 12c.
Determination of Body Orientation (Pose) At this time we have all the information required to determine the pose of the rigid body. This is well understood in the art and will not be described here. The pose is stored in the Calculated Rigid Body Position and Orientation Table, 62 (FIG. 18) .
Other embodiments are within the spirit and scope of the appended claim.

Claims

What is claimed is:
1. A system for determining the spatial position and orientation of each of a plurality of bodies, comprising: at least three markers affixed to each one of the markers in a predetermined, relative geometric relationship. such markers being adapted to emit energy in response to an activation signal and/or to reflect energy impinging upon such passive marker from an activatable energy source; an energy detector for detecting the energy emitted by the active marker and the energy reflected by the passive marker,- a processor having: a memory, such memory having stored therein the predetermined, relative geometric relation of the markers for each one of the bodies; and wherein the processor compares the stored predetermined geometric relation of the markers for each of the bodies with the energy detected by the energy detector to identify the bodies emitting/or reflecting the detected energy.
PCT/CA1998/001118 1997-12-05 1998-12-02 A system for determining the spatial position and orientation of a body WO1999030182A1 (en)

Priority Applications (6)

Application Number Priority Date Filing Date Title
DE1034440T DE1034440T1 (en) 1997-12-05 1998-12-02 SYSTEM FOR DETERMINING THE SPATIAL POSITION AND ORIENTATION OF A BODY
CA002312352A CA2312352C (en) 1997-12-05 1998-12-02 A system for determining the spatial position and orientation of a body
EP98958130A EP1034440B1 (en) 1997-12-05 1998-12-02 A system for determining the spatial position and orientation of a body
AT98958130T ATE253229T1 (en) 1997-12-05 1998-12-02 SYSTEM FOR DETERMINING THE SPATIAL POSITION AND ORIENTATION OF A BODY
DE69819363T DE69819363T2 (en) 1997-12-05 1998-12-02 SYSTEM FOR DETERMINING THE SPATIAL POSITION AND ORIENTATION OF A BODY
JP2000524686A JP2002505412A (en) 1997-12-05 1998-12-02 System for detecting the spatial position and direction of multiple objects

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/985,462 US6061644A (en) 1997-12-05 1997-12-05 System for determining the spatial position and orientation of a body
US08/985,462 1997-12-05

Publications (1)

Publication Number Publication Date
WO1999030182A1 true WO1999030182A1 (en) 1999-06-17

Family

ID=25531511

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CA1998/001118 WO1999030182A1 (en) 1997-12-05 1998-12-02 A system for determining the spatial position and orientation of a body

Country Status (8)

Country Link
US (1) US6061644A (en)
EP (1) EP1034440B1 (en)
JP (1) JP2002505412A (en)
CN (1) CN1199054C (en)
AT (1) ATE253229T1 (en)
CA (1) CA2312352C (en)
DE (2) DE69819363T2 (en)
WO (1) WO1999030182A1 (en)

Cited By (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6363940B1 (en) 1998-05-14 2002-04-02 Calypso Medical Technologies, Inc. System and method for bracketing and removing tissue
WO2003001237A2 (en) * 2001-06-23 2003-01-03 Forschungszentrum Karlsruhe Gmbh Optical 3d position measuring system for simultaneously detecting six degrees of freedom
EP1341466A1 (en) * 1998-05-14 2003-09-10 Calypso Medical, Inc Systems and methods for stabilizing a targert location within a human body
DE10051415C2 (en) * 2000-10-17 2003-10-09 Advanced Realtime Tracking Gmb Optical tracking system and method
US6812842B2 (en) 2001-12-20 2004-11-02 Calypso Medical Technologies, Inc. System for excitation of a leadless miniature marker
US6822570B2 (en) 2001-12-20 2004-11-23 Calypso Medical Technologies, Inc. System for spatially adjustable excitation of leadless miniature marker
US6838990B2 (en) 2001-12-20 2005-01-04 Calypso Medical Technologies, Inc. System for excitation leadless miniature marker
US6889833B2 (en) 2002-12-30 2005-05-10 Calypso Medical Technologies, Inc. Packaged systems for implanting markers in a patient and methods for manufacturing and using such systems
US7588569B2 (en) 2002-03-22 2009-09-15 Karl Storz Gmbh & Co. Kg Medical instrument for the treatment of tissue by means of a high-frequency current and medical system with a medical instrument of this type
US7657303B2 (en) 2001-06-08 2010-02-02 Calypso Medical Technologies, Inc. Guided radiation therapy system
US7728280B2 (en) 2006-12-11 2010-06-01 Brainlab Ag Multi-band tracking and calibration system
GB2425352B (en) * 2005-04-21 2010-07-14 Agilent Technologies Inc System and method of determining orientation information
RU2442997C2 (en) * 2009-07-06 2012-02-20 Федеральное Государственное Образовательное Учреждение Высшего Профессионального Образования Военная Академия Войсковой Противовоздушной Обороны Вооруженных Сил Российской Федерации Method for target ranging and optoelectronic system of search and track (its variants)
WO2013155388A1 (en) * 2012-04-12 2013-10-17 University Of Florida Research Foundation, Inc. Ambiguity-free optical tracking system
EP2661155A1 (en) * 2012-04-30 2013-11-06 Zumtobel Lighting GmbH Multifunctional sensor unit and method for the adjustment of said unit
US8857043B2 (en) 2002-12-30 2014-10-14 Varian Medical Systems, Inc. Method of manufacturing an implantable marker with a leadless signal transmitter
US9238151B2 (en) 2004-07-23 2016-01-19 Varian Medical Systems, Inc. Dynamic/adaptive treatment planning for radiation therapy
US9237860B2 (en) 2008-06-05 2016-01-19 Varian Medical Systems, Inc. Motion compensation for medical imaging and associated systems and methods
US9248003B2 (en) 2002-12-30 2016-02-02 Varian Medical Systems, Inc. Receiver used in marker localization sensing system and tunable to marker frequency
US9283053B2 (en) 2005-09-19 2016-03-15 Varian Medical Systems, Inc. Apparatus and methods for implanting objects, such as bronchoscopically implanting markers in the lung of patients
US9586059B2 (en) 2004-07-23 2017-03-07 Varian Medical Systems, Inc. User interface for guided radiation therapy
US9616248B2 (en) 2002-06-05 2017-04-11 Varian Medical Systems, Inc. Integrated radiation therapy systems and methods for treating a target in a patient
US9623208B2 (en) 2004-01-12 2017-04-18 Varian Medical Systems, Inc. Instruments with location markers and methods for tracking instruments through anatomical passageways
EP3281584A1 (en) * 2016-08-10 2018-02-14 Giant Manufacturing Co., Ltd. Dynamic motion detection system
US9919165B2 (en) 2014-05-07 2018-03-20 Varian Medical Systems, Inc. Systems and methods for fiducial to plan association
US10043284B2 (en) 2014-05-07 2018-08-07 Varian Medical Systems, Inc. Systems and methods for real-time tumor tracking
US10195464B2 (en) 2004-06-24 2019-02-05 Varian Medical Systems, Inc. Systems and methods for treating a lung of a patient using guided radiation therapy or surgery
US10293135B2 (en) 2010-10-01 2019-05-21 Varian Medical Systems, Inc. Delivery catheter for and method of delivering implant, for example, bronchoscopically implanting a marker in a lung

Families Citing this family (205)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6301549B1 (en) * 1998-06-26 2001-10-09 Lucent Technologies, Inc. Three dimensional object boundary and motion determination device and method of operation thereof
US8788020B2 (en) 1998-10-23 2014-07-22 Varian Medical Systems, Inc. Method and system for radiation application
US6937696B1 (en) 1998-10-23 2005-08-30 Varian Medical Systems Technologies, Inc. Method and system for predictive physiological gating
US6621889B1 (en) * 1998-10-23 2003-09-16 Varian Medical Systems, Inc. Method and system for predictive physiological gating of radiation therapy
US6279579B1 (en) * 1998-10-23 2001-08-28 Varian Medical Systems, Inc. Method and system for positioning patients for medical treatment procedures
US6973202B2 (en) * 1998-10-23 2005-12-06 Varian Medical Systems Technologies, Inc. Single-camera tracking of an object
US6980679B2 (en) * 1998-10-23 2005-12-27 Varian Medical System Technologies, Inc. Method and system for monitoring breathing activity of a subject
US7483049B2 (en) * 1998-11-20 2009-01-27 Aman James A Optimizations for live event, real-time, 3D object tracking
US6707487B1 (en) * 1998-11-20 2004-03-16 In The Play, Inc. Method for representing real-time motion
US6567116B1 (en) * 1998-11-20 2003-05-20 James A. Aman Multiple object tracking system
US7085400B1 (en) 2000-06-14 2006-08-01 Surgical Navigation Technologies, Inc. System and method for image based sensor calibration
EP2130511A1 (en) * 2000-11-17 2009-12-09 Calypso Medical, Inc System for locating and defining a target location within a human body
JP3759429B2 (en) * 2001-05-23 2006-03-22 株式会社東芝 Obstacle detection apparatus and method
US7769430B2 (en) * 2001-06-26 2010-08-03 Varian Medical Systems, Inc. Patient visual instruction techniques for synchronizing breathing with a medical procedure
US7135978B2 (en) * 2001-09-14 2006-11-14 Calypso Medical Technologies, Inc. Miniature resonating marker assembly
US6711431B2 (en) 2002-02-13 2004-03-23 Kinamed, Inc. Non-imaging, computer assisted navigation system for hip replacement surgery
US7634306B2 (en) * 2002-02-13 2009-12-15 Kinamed, Inc. Non-image, computer assisted navigation system for joint replacement surgery with modular implant system
KR100480780B1 (en) * 2002-03-07 2005-04-06 삼성전자주식회사 Method and apparatus for tracking an object from video data
US6757582B2 (en) 2002-05-03 2004-06-29 Carnegie Mellon University Methods and systems to control a shaping tool
DE10226398B4 (en) * 2002-06-13 2012-12-06 Carl Zeiss Ag Method and device for detecting the position of an object in space
US6878896B2 (en) 2002-07-24 2005-04-12 United Parcel Service Of America, Inc. Synchronous semi-automatic parallel sorting
ATE463213T1 (en) * 2002-08-09 2010-04-15 Kinamed Inc NON-IMAGING LOCATION PROCEDURES FOR HIP SURGERY
WO2004016178A2 (en) * 2002-08-16 2004-02-26 Orthosoft Inc. Interface apparatus for passive tracking systems and method of use thereof
US7912529B2 (en) 2002-12-30 2011-03-22 Calypso Medical Technologies, Inc. Panel-type sensor/source array assembly
US7926491B2 (en) * 2002-12-31 2011-04-19 Calypso Medical Technologies, Inc. Method and apparatus for sensing field strength signals to estimate location of a wireless implantable marker
US7247160B2 (en) * 2002-12-30 2007-07-24 Calypso Medical Technologies, Inc. Apparatuses and methods for percutaneously implanting objects in patients
WO2004079546A2 (en) * 2003-03-04 2004-09-16 United Parcel Service Of America, Inc. System for projecting a handling instruction onto a moving item or parcel
US7063256B2 (en) * 2003-03-04 2006-06-20 United Parcel Service Of America Item tracking and processing systems and methods
JP4253567B2 (en) * 2003-03-28 2009-04-15 オリンパス株式会社 Data authoring processor
US7310441B2 (en) * 2003-04-11 2007-12-18 Intel Corporation Method and apparatus for three-dimensional tracking of infra-red beacons
JP4346950B2 (en) * 2003-05-02 2009-10-21 キヤノン株式会社 Information processing method and apparatus
US7639134B2 (en) * 2003-05-07 2009-12-29 Savi Technology, Inc. Item-level visibility of nested and adjacent containers
US20050162269A1 (en) * 2003-05-07 2005-07-28 Lambright Stephen J. Dual mode reader device
US20050049485A1 (en) * 2003-08-27 2005-03-03 Harmon Kim R. Multiple configuration array for a surgical navigation system
US8571639B2 (en) * 2003-09-05 2013-10-29 Varian Medical Systems, Inc. Systems and methods for gating medical procedures
JP4502361B2 (en) * 2003-09-30 2010-07-14 キヤノン株式会社 Index attitude detection method and apparatus
WO2005032390A1 (en) 2003-10-09 2005-04-14 Ap Technologies Sa Robot-assisted medical treatment device
DE10350861A1 (en) * 2003-10-31 2005-06-02 Steinbichler Optotechnik Gmbh Method for calibrating a 3D measuring device
US7104947B2 (en) * 2003-11-17 2006-09-12 Neuronetics, Inc. Determining stimulation levels for transcranial magnetic stimulation
US8196589B2 (en) 2003-12-24 2012-06-12 Calypso Medical Technologies, Inc. Implantable marker with wireless signal transmitter
US20050154284A1 (en) * 2003-12-31 2005-07-14 Wright J. N. Method and system for calibration of a marker localization sensing array
US20050154280A1 (en) * 2003-12-31 2005-07-14 Wright J. N. Receiver used in marker localization sensing system
US7684849B2 (en) * 2003-12-31 2010-03-23 Calypso Medical Technologies, Inc. Marker localization sensing system synchronized with radiation source
US7651459B2 (en) * 2004-01-06 2010-01-26 Neuronetics, Inc. Method and apparatus for coil positioning for TMS studies
US20050215888A1 (en) * 2004-03-05 2005-09-29 Grimm James E Universal support arm and tracking array
US20060052691A1 (en) * 2004-03-05 2006-03-09 Hall Maleata Y Adjustable navigated tracking element mount
US7702178B2 (en) * 2004-03-15 2010-04-20 Sarnoff Corporation Method and apparatus for providing noise reduction
US8177702B2 (en) 2004-04-15 2012-05-15 Neuronetics, Inc. Method and apparatus for determining the proximity of a TMS coil to a subject's head
US20050245820A1 (en) * 2004-04-28 2005-11-03 Sarin Vineet K Method and apparatus for verifying and correcting tracking of an anatomical structure during surgery
US7755486B2 (en) * 2004-05-06 2010-07-13 Savi Technology, Inc. Expanded compatibility RFID tags
US7561717B2 (en) * 2004-07-09 2009-07-14 United Parcel Service Of America, Inc. System and method for displaying item information
US8095203B2 (en) * 2004-07-23 2012-01-10 Varian Medical Systems, Inc. Data processing for real-time tracking of a target in radiation therapy
US7899513B2 (en) * 2004-07-23 2011-03-01 Calypso Medical Technologies, Inc. Modular software system for guided radiation therapy
EP1771223A4 (en) * 2004-07-23 2009-04-22 Calypso Med Technologies Inc Apparatuses and methods for percutaneously implanting objects in patients
EP1778086A4 (en) * 2004-07-23 2009-03-18 Calypso Med Technologies Inc Systems and methods for real time tracking of targets in radiation therapy and other medical applications
US7852317B2 (en) 2005-01-12 2010-12-14 Thinkoptics, Inc. Handheld device for handheld vision based absolute pointing system
US8088058B2 (en) * 2005-01-20 2012-01-03 Neuronetics, Inc. Articulating arm
US20060161059A1 (en) * 2005-01-20 2006-07-20 Zimmer Technology, Inc. Variable geometry reference array
US20060199159A1 (en) * 2005-03-01 2006-09-07 Neuronetics, Inc. Head phantom for simulating the patient response to magnetic stimulation
WO2007010330A1 (en) 2005-07-15 2007-01-25 Gulhivair Holding Sa Device and method for a computer-assisted internal bone digitising for orthopaedic surgery and traumatology
US7824324B2 (en) 2005-07-27 2010-11-02 Neuronetics, Inc. Magnetic core for medical procedures
US8014565B2 (en) * 2005-08-26 2011-09-06 Sony Corporation Labeling used in motion capture
US8054312B2 (en) * 2005-08-26 2011-11-08 Sony Corporation Material for motion capture costumes and props
US7720259B2 (en) * 2005-08-26 2010-05-18 Sony Corporation Motion capture using primary and secondary markers
US7294815B2 (en) * 2005-09-06 2007-11-13 Avago Technologies General Ip (Singapore) Pte. Ltd. System and method for generating positional and orientation information of an object
WO2007061890A2 (en) 2005-11-17 2007-05-31 Calypso Medical Technologies, Inc. Apparatus and methods for using an electromagnetic transponder in orthopedic procedures
DE112007000340T5 (en) * 2006-02-09 2008-12-18 Northern Digital Inc., Waterloo Retroreflective brand tracking systems
IL177080A0 (en) * 2006-03-15 2007-08-19 Israel Aerospace Ind Ltd Combat training system and method
US7796119B2 (en) * 2006-04-03 2010-09-14 Avago Technologies General Ip (Singapore) Pte. Ltd. Position determination with reference
ES2569411T3 (en) 2006-05-19 2016-05-10 The Queen's Medical Center Motion tracking system for adaptive real-time imaging and spectroscopy
WO2008008847A2 (en) * 2006-07-11 2008-01-17 Sony Corporation Using quantum nanodots in motion pictures or video games
US8913003B2 (en) * 2006-07-17 2014-12-16 Thinkoptics, Inc. Free-space multi-dimensional absolute pointer using a projection marker system
US7767967B2 (en) * 2006-11-01 2010-08-03 Sony Corporation Capturing motion using quantum nanodot sensors
WO2008052348A1 (en) * 2006-11-02 2008-05-08 Northern Digital Inc. Integrated mapping system
US9176598B2 (en) * 2007-05-08 2015-11-03 Thinkoptics, Inc. Free-space multi-dimensional absolute pointer with improved performance
US9884200B2 (en) * 2008-03-10 2018-02-06 Neuronetics, Inc. Apparatus for coil positioning for TMS studies
DE102008023760A1 (en) 2008-05-15 2009-12-03 Medizin & Service Gmbh Position and condition determining arrangement for cross hole at intramedullary nail, has two cameras optically connected to markers by geometrical arrangement of markers to derive three 2-dimensional image coordinates
US8086026B2 (en) * 2008-06-27 2011-12-27 Waldean Schulz Method and system for the determination of object positions in a volume
US20100061596A1 (en) * 2008-09-05 2010-03-11 Varian Medical Systems Technologies, Inc. Video-Based Breathing Monitoring Without Fiducial Tracking
US10667727B2 (en) * 2008-09-05 2020-06-02 Varian Medical Systems, Inc. Systems and methods for determining a state of a patient
WO2010052874A1 (en) * 2008-11-05 2010-05-14 パナソニック株式会社 Object position estimation system, object position estimation device, object position estimation method, and object position estimation program
US8588892B2 (en) 2008-12-02 2013-11-19 Avenir Medical Inc. Method and system for aligning a prosthesis during surgery using active sensors
WO2010080905A2 (en) * 2009-01-08 2010-07-15 The Board Of Regents Of The University Of Texas System Real-time in vivo radiation dosimetry using scintillation detectors
US9943704B1 (en) 2009-01-21 2018-04-17 Varian Medical Systems, Inc. Method and system for fiducials contained in removable device for radiation therapy
WO2010095437A1 (en) * 2009-02-19 2010-08-26 パナソニック株式会社 System for estimating object position, device for estimating object position, method for estimating object position, and program for estimating object position
TWI403690B (en) * 2009-10-26 2013-08-01 Ind Tech Res Inst Self-localizing device and method thereof
US9839486B2 (en) 2010-04-14 2017-12-12 Smith & Nephew, Inc. Systems and methods for patient-based computer assisted surgical procedures
WO2011134083A1 (en) 2010-04-28 2011-11-03 Ryerson University System and methods for intraoperative guidance feedback
JP2012057996A (en) 2010-09-07 2012-03-22 Mitsutoyo Corp Image measuring device and image measuring method
CN102012512B (en) * 2010-11-29 2012-07-04 四川川大智胜软件股份有限公司 Method for identifying A/C mode response signals of airborne transponder
CA2821670A1 (en) 2010-12-17 2012-06-21 Avenir Medical Inc. Method and system for aligning a prosthesis during surgery
US8385596B2 (en) * 2010-12-21 2013-02-26 Microsoft Corporation First person shooter control with virtual skeleton
US9201185B2 (en) 2011-02-04 2015-12-01 Microsoft Technology Licensing, Llc Directional backlighting for display panels
US8920172B1 (en) * 2011-03-15 2014-12-30 Motion Reality, Inc. Method and system for tracking hardware in a motion capture environment
US8687172B2 (en) 2011-04-13 2014-04-01 Ivan Faul Optical digitizer with improved distance measurement capability
US9833637B2 (en) 2011-05-02 2017-12-05 Radiadyne Llc Skin patch dosimeter
US9606209B2 (en) 2011-08-26 2017-03-28 Kineticor, Inc. Methods, systems, and devices for intra-scan motion correction
US8668345B2 (en) 2011-11-30 2014-03-11 Izi Medical Products Retro-reflective marker with snap on threaded post
US9052414B2 (en) 2012-02-07 2015-06-09 Microsoft Technology Licensing, Llc Virtual image device
US9354748B2 (en) 2012-02-13 2016-05-31 Microsoft Technology Licensing, Llc Optical stylus interaction
US8661573B2 (en) 2012-02-29 2014-03-04 Izi Medical Products Protective cover for medical device having adhesive mechanism
US8749529B2 (en) 2012-03-01 2014-06-10 Microsoft Corporation Sensor-in-pixel display system with near infrared filter
US9075566B2 (en) 2012-03-02 2015-07-07 Microsoft Technoogy Licensing, LLC Flexible hinge spine
US8873227B2 (en) 2012-03-02 2014-10-28 Microsoft Corporation Flexible hinge support layer
USRE48963E1 (en) 2012-03-02 2022-03-08 Microsoft Technology Licensing, Llc Connection device for computing devices
US9426905B2 (en) 2012-03-02 2016-08-23 Microsoft Technology Licensing, Llc Connection device for computing devices
US9064654B2 (en) 2012-03-02 2015-06-23 Microsoft Technology Licensing, Llc Method of manufacturing an input device
US9298236B2 (en) 2012-03-02 2016-03-29 Microsoft Technology Licensing, Llc Multi-stage power adapter configured to provide a first power level upon initial connection of the power adapter to the host device and a second power level thereafter upon notification from the host device to the power adapter
US9460029B2 (en) 2012-03-02 2016-10-04 Microsoft Technology Licensing, Llc Pressure sensitive keys
US9360893B2 (en) 2012-03-02 2016-06-07 Microsoft Technology Licensing, Llc Input device writing surface
US9870066B2 (en) 2012-03-02 2018-01-16 Microsoft Technology Licensing, Llc Method of manufacturing an input device
US9314188B2 (en) 2012-04-12 2016-04-19 Intellijoint Surgical Inc. Computer-assisted joint replacement surgery and navigation systems
US20130300590A1 (en) 2012-05-14 2013-11-14 Paul Henry Dietz Audio Feedback
US10031556B2 (en) 2012-06-08 2018-07-24 Microsoft Technology Licensing, Llc User experience adaptation
US8947353B2 (en) 2012-06-12 2015-02-03 Microsoft Corporation Photosensor array gesture detection
US9019615B2 (en) 2012-06-12 2015-04-28 Microsoft Technology Licensing, Llc Wide field-of-view virtual image projector
US9684382B2 (en) 2012-06-13 2017-06-20 Microsoft Technology Licensing, Llc Input device configuration having capacitive and pressure sensors
US9459160B2 (en) 2012-06-13 2016-10-04 Microsoft Technology Licensing, Llc Input device sensor configuration
US9073123B2 (en) 2012-06-13 2015-07-07 Microsoft Technology Licensing, Llc Housing vents
US9256089B2 (en) 2012-06-15 2016-02-09 Microsoft Technology Licensing, Llc Object-detecting backlight unit
US9355345B2 (en) 2012-07-23 2016-05-31 Microsoft Technology Licensing, Llc Transparent tags with encoded data
US8964379B2 (en) 2012-08-20 2015-02-24 Microsoft Corporation Switchable magnetic lock
US9008757B2 (en) 2012-09-26 2015-04-14 Stryker Corporation Navigation system including optical and non-optical sensors
US9152173B2 (en) 2012-10-09 2015-10-06 Microsoft Technology Licensing, Llc Transparent display device
US8654030B1 (en) 2012-10-16 2014-02-18 Microsoft Corporation Antenna placement
EP2908970B1 (en) 2012-10-17 2018-01-03 Microsoft Technology Licensing, LLC Metal alloy injection molding protrusions
WO2014059618A1 (en) 2012-10-17 2014-04-24 Microsoft Corporation Graphic formation via material ablation
WO2014059625A1 (en) 2012-10-17 2014-04-24 Microsoft Corporation Metal alloy injection molding overflows
CA2928460C (en) 2012-10-30 2021-10-19 Truinject Medical Corp. System for injection training
US8952892B2 (en) 2012-11-01 2015-02-10 Microsoft Corporation Input location correction tables for input panels
US8786767B2 (en) 2012-11-02 2014-07-22 Microsoft Corporation Rapid synchronized lighting and shuttering
US9513748B2 (en) 2012-12-13 2016-12-06 Microsoft Technology Licensing, Llc Combined display panel circuit
KR101371387B1 (en) * 2013-01-18 2014-03-10 경북대학교 산학협력단 Tracking system and method for tracking using the same
US9717461B2 (en) 2013-01-24 2017-08-01 Kineticor, Inc. Systems, devices, and methods for tracking and compensating for patient motion during a medical imaging scan
US10327708B2 (en) 2013-01-24 2019-06-25 Kineticor, Inc. Systems, devices, and methods for tracking and compensating for patient motion during a medical imaging scan
US9305365B2 (en) 2013-01-24 2016-04-05 Kineticor, Inc. Systems, devices, and methods for tracking moving targets
WO2014120734A1 (en) 2013-02-01 2014-08-07 Kineticor, Inc. Motion tracking system for real time adaptive motion compensation in biomedical imaging
US9176538B2 (en) 2013-02-05 2015-11-03 Microsoft Technology Licensing, Llc Input device configurations
US10578499B2 (en) 2013-02-17 2020-03-03 Microsoft Technology Licensing, Llc Piezo-actuated virtual buttons for touch surfaces
KR101446173B1 (en) * 2013-02-21 2014-10-01 주식회사 고영테크놀러지 Tracking system and method for tracking using the same
US9638835B2 (en) 2013-03-05 2017-05-02 Microsoft Technology Licensing, Llc Asymmetric aberration correcting lens
US9247998B2 (en) 2013-03-15 2016-02-02 Intellijoint Surgical Inc. System and method for intra-operative leg position measurement
US9304549B2 (en) 2013-03-28 2016-04-05 Microsoft Technology Licensing, Llc Hinge mechanism for rotatable component attachment
EP2787320B1 (en) 2013-04-05 2017-09-20 Leica Geosystems AG Total station with scan functionality and selectable scan modi
US9480415B2 (en) 2013-04-26 2016-11-01 Medtronic Navigation, Inc. Electromagnetic coil apparatuses for surgical navigation and corresponding methods
US9552777B2 (en) 2013-05-10 2017-01-24 Microsoft Technology Licensing, Llc Phase control backlight
JP2015011480A (en) * 2013-06-27 2015-01-19 カシオ計算機株式会社 Image generation device, image generation method and program
EP3017317B2 (en) * 2013-07-04 2022-06-15 Signify Holding B.V. Determining orientation
US9448631B2 (en) 2013-12-31 2016-09-20 Microsoft Technology Licensing, Llc Input device haptics and pressure sensing
CA2972754A1 (en) 2014-01-17 2015-07-23 Clark B. Foster Injection site training system
US9317072B2 (en) 2014-01-28 2016-04-19 Microsoft Technology Licensing, Llc Hinge mechanism with preset positions
US9759854B2 (en) 2014-02-17 2017-09-12 Microsoft Technology Licensing, Llc Input device outer layer and backlighting
US10290231B2 (en) 2014-03-13 2019-05-14 Truinject Corp. Automated detection of performance characteristics in an injection training system
US10120420B2 (en) 2014-03-21 2018-11-06 Microsoft Technology Licensing, Llc Lockable display and techniques enabling use of lockable displays
CN106572810A (en) 2014-03-24 2017-04-19 凯内蒂科尔股份有限公司 Systems, methods, and devices for removing prospective motion correction from medical imaging scans
EP2944283B1 (en) 2014-05-14 2018-08-15 Stryker European Holdings I, LLC Navigation system for tracking the position of a work target
WO2016014718A1 (en) 2014-07-23 2016-01-28 Kineticor, Inc. Systems, devices, and methods for tracking and compensating for patient motion during a medical imaging scan
US10324733B2 (en) 2014-07-30 2019-06-18 Microsoft Technology Licensing, Llc Shutdown notifications
US9424048B2 (en) 2014-09-15 2016-08-23 Microsoft Technology Licensing, Llc Inductive peripheral retention device
US9447620B2 (en) 2014-09-30 2016-09-20 Microsoft Technology Licensing, Llc Hinge mechanism with multiple preset positions
CN107072740B (en) 2014-11-21 2020-05-22 思外科有限公司 Visual tracking system and visible light communication system for transmitting data between tracking recognizers
BR112017011443A2 (en) 2014-12-01 2018-02-27 Truinject Corp omnidirectional light emitting training instrument
EP3047809B1 (en) 2015-01-23 2022-04-13 Storz Medical Ag Extracorporeal shock wave lithotripsy system having off-line ultrasound localization
US11096605B2 (en) 2015-03-31 2021-08-24 Medtronic Navigation, Inc. Modular coil assembly
US9924103B2 (en) * 2015-04-09 2018-03-20 The Boeing Company Automated local positioning system calibration using optically readable markers
US10416799B2 (en) 2015-06-03 2019-09-17 Microsoft Technology Licensing, Llc Force sensing and inadvertent input control of an input device
US10222889B2 (en) 2015-06-03 2019-03-05 Microsoft Technology Licensing, Llc Force inputs and cursor control
US9752361B2 (en) 2015-06-18 2017-09-05 Microsoft Technology Licensing, Llc Multistage hinge
US9864415B2 (en) 2015-06-30 2018-01-09 Microsoft Technology Licensing, Llc Multistage friction hinge
US9860145B2 (en) 2015-07-02 2018-01-02 Microsoft Technology Licensing, Llc Recording of inter-application data flow
US9733915B2 (en) 2015-07-02 2017-08-15 Microsoft Technology Licensing, Llc Building of compound application chain applications
US9785484B2 (en) 2015-07-02 2017-10-10 Microsoft Technology Licensing, Llc Distributed application interfacing across different hardware
US9733993B2 (en) 2015-07-02 2017-08-15 Microsoft Technology Licensing, Llc Application sharing using endpoint interface entities
US10261985B2 (en) 2015-07-02 2019-04-16 Microsoft Technology Licensing, Llc Output rendering in dynamic redefining application
US9712472B2 (en) 2015-07-02 2017-07-18 Microsoft Technology Licensing, Llc Application spawning responsive to communication
US9658836B2 (en) 2015-07-02 2017-05-23 Microsoft Technology Licensing, Llc Automated generation of transformation chain compatible class
US10198252B2 (en) 2015-07-02 2019-02-05 Microsoft Technology Licensing, Llc Transformation chain application splitting
US10031724B2 (en) 2015-07-08 2018-07-24 Microsoft Technology Licensing, Llc Application operation responsive to object spatial status
US10198405B2 (en) 2015-07-08 2019-02-05 Microsoft Technology Licensing, Llc Rule-based layout of changing information
US9943247B2 (en) 2015-07-28 2018-04-17 The University Of Hawai'i Systems, devices, and methods for detecting false movements for motion correction during a medical imaging scan
US10277582B2 (en) 2015-08-27 2019-04-30 Microsoft Technology Licensing, Llc Application service architecture
EP3365049A2 (en) 2015-10-20 2018-08-29 Truinject Medical Corp. Injection system
US10905496B2 (en) * 2015-11-16 2021-02-02 Think Surgical, Inc. Method for confirming registration of tracked bones
WO2017091479A1 (en) 2015-11-23 2017-06-01 Kineticor, Inc. Systems, devices, and methods for tracking and compensating for patient motion during a medical imaging scan
EP3380032A4 (en) 2015-11-24 2019-12-18 Think Surgical, Inc. Active robotic pin placement in total knee arthroplasty
US10061385B2 (en) 2016-01-22 2018-08-28 Microsoft Technology Licensing, Llc Haptic feedback for a touch input device
US10352689B2 (en) * 2016-01-28 2019-07-16 Symbol Technologies, Llc Methods and systems for high precision locationing with depth values
EP3419544A4 (en) 2016-02-26 2019-10-23 Think Surgical, Inc. Method and system for guiding user positioning of a robot
WO2017151441A2 (en) 2016-02-29 2017-09-08 Truinject Medical Corp. Cosmetic and therapeutic injection safety systems, methods, and devices
US10849688B2 (en) 2016-03-02 2020-12-01 Truinject Corp. Sensory enhanced environments for injection aid and social training
US11185373B2 (en) 2016-03-02 2021-11-30 Think Surgical, Inc. Method for recovering a registration of a bone
US10344797B2 (en) 2016-04-05 2019-07-09 Microsoft Technology Licensing, Llc Hinge with multiple preset positions
US10037057B2 (en) 2016-09-22 2018-07-31 Microsoft Technology Licensing, Llc Friction hinge
US11207114B2 (en) 2016-09-26 2021-12-28 Think Surgical, Inc. Pin placement holder for surgical pin driver
US10772685B2 (en) 2017-01-16 2020-09-15 Think Surgical, Inc. System and method for bone re-registration and marker installation
US10269266B2 (en) 2017-01-23 2019-04-23 Truinject Corp. Syringe dose and position measuring apparatus
JP2018151832A (en) * 2017-03-13 2018-09-27 キヤノン株式会社 Information processing device, information processing method, and, program
US10471478B2 (en) 2017-04-28 2019-11-12 United Parcel Service Of America, Inc. Conveyor belt assembly for identifying an asset sort location and methods of utilizing the same
CN109282750B (en) * 2017-07-21 2020-10-16 镱钛科技股份有限公司 Optical measurement system, optical measurement device and measurement method thereof
US20190096066A1 (en) * 2017-09-28 2019-03-28 4Sense, Inc. System and Method for Segmenting Out Multiple Body Parts
US11154369B2 (en) 2018-01-24 2021-10-26 Think Surgical, Inc. Environmental mapping for robotic assisted surgery
US11439411B2 (en) 2019-05-24 2022-09-13 Think Surgical, Inc. System and method to improve surgical cutting in the presence of surgical debris
EP3815643A1 (en) 2019-10-29 2021-05-05 Think Surgical, Inc. Two degree of freedom system
CN112263786B (en) * 2020-10-26 2022-11-25 中国人民解放军空军军医大学 Positioning device for esophageal cancer treatment
CN116636313A (en) 2020-12-04 2023-08-22 利奥癌症治疗公司 Multiaxial medical imaging

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4652917A (en) * 1981-10-28 1987-03-24 Honeywell Inc. Remote attitude sensor using single camera and spiral patterns
US4764668A (en) * 1985-11-27 1988-08-16 Alcatel Espace System for locating an object provided with at least one passive target pattern
US5617335A (en) * 1992-01-30 1997-04-01 Fujitsu Limited System for and method of recognizating and tracking target mark
US5828770A (en) * 1996-02-20 1998-10-27 Northern Digital Inc. System for determining the spatial position and angular orientation of an object

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4649504A (en) * 1984-05-22 1987-03-10 Cae Electronics, Ltd. Optical position and orientation measurement techniques
JPS62293115A (en) * 1986-06-12 1987-12-19 Takenaka Komuten Co Ltd Automatic measuring instrument for position and attitude of moving body
JP2896539B2 (en) * 1991-06-19 1999-05-31 株式会社竹中工務店 How to detect unique information such as object position and angle
US5227985A (en) * 1991-08-19 1993-07-13 University Of Maryland Computer vision system for position monitoring in three dimensions using non-coplanar light sources attached to a monitored object
JPH0696397A (en) * 1992-09-16 1994-04-08 Mitsubishi Electric Corp Device and method for image tracking

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4652917A (en) * 1981-10-28 1987-03-24 Honeywell Inc. Remote attitude sensor using single camera and spiral patterns
US4764668A (en) * 1985-11-27 1988-08-16 Alcatel Espace System for locating an object provided with at least one passive target pattern
US5617335A (en) * 1992-01-30 1997-04-01 Fujitsu Limited System for and method of recognizating and tracking target mark
US5828770A (en) * 1996-02-20 1998-10-27 Northern Digital Inc. System for determining the spatial position and angular orientation of an object

Cited By (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1341466A4 (en) * 1998-05-14 2006-07-05 Calypso Medical Inc Systems and methods for stabilizing a targert location within a human body
US6363940B1 (en) 1998-05-14 2002-04-02 Calypso Medical Technologies, Inc. System and method for bracketing and removing tissue
EP1341466A1 (en) * 1998-05-14 2003-09-10 Calypso Medical, Inc Systems and methods for stabilizing a targert location within a human body
DE10051415C2 (en) * 2000-10-17 2003-10-09 Advanced Realtime Tracking Gmb Optical tracking system and method
US9072895B2 (en) 2001-06-08 2015-07-07 Varian Medical Systems, Inc. Guided radiation therapy system
US7657301B2 (en) 2001-06-08 2010-02-02 Calypso Medical Technologies, Inc. Guided radiation therapy system
US7657302B2 (en) 2001-06-08 2010-02-02 Calypso Medical Technologies, Inc. Guided radiation therapy system
US7657303B2 (en) 2001-06-08 2010-02-02 Calypso Medical Technologies, Inc. Guided radiation therapy system
WO2003001237A3 (en) * 2001-06-23 2003-11-20 Karlsruhe Forschzent Optical 3d position measuring system for simultaneously detecting six degrees of freedom
WO2003001237A2 (en) * 2001-06-23 2003-01-03 Forschungszentrum Karlsruhe Gmbh Optical 3d position measuring system for simultaneously detecting six degrees of freedom
US6812842B2 (en) 2001-12-20 2004-11-02 Calypso Medical Technologies, Inc. System for excitation of a leadless miniature marker
US6822570B2 (en) 2001-12-20 2004-11-23 Calypso Medical Technologies, Inc. System for spatially adjustable excitation of leadless miniature marker
US6838990B2 (en) 2001-12-20 2005-01-04 Calypso Medical Technologies, Inc. System for excitation leadless miniature marker
US7176798B2 (en) 2001-12-20 2007-02-13 Calypso Medical Technologies, Inc. System for spatially adjustable excitation of leadless miniature marker
US7588569B2 (en) 2002-03-22 2009-09-15 Karl Storz Gmbh & Co. Kg Medical instrument for the treatment of tissue by means of a high-frequency current and medical system with a medical instrument of this type
US9616248B2 (en) 2002-06-05 2017-04-11 Varian Medical Systems, Inc. Integrated radiation therapy systems and methods for treating a target in a patient
US9682253B2 (en) 2002-06-05 2017-06-20 Varian Medical Systems, Inc. Integrated radiation therapy systems and methods for treating a target in a patient
US8297030B2 (en) 2002-12-30 2012-10-30 Varian Medical Systems, Inc. Methods for manufacturing packaged systems for implanting markers in a patient
US8011508B2 (en) 2002-12-30 2011-09-06 Calypso Medical Technologies, Inc. Packaged systems for implanting markers in a patient and methods for manufacturing and using such systems
US6889833B2 (en) 2002-12-30 2005-05-10 Calypso Medical Technologies, Inc. Packaged systems for implanting markers in a patient and methods for manufacturing and using such systems
US8857043B2 (en) 2002-12-30 2014-10-14 Varian Medical Systems, Inc. Method of manufacturing an implantable marker with a leadless signal transmitter
US7407054B2 (en) 2002-12-30 2008-08-05 Calypso Medical Technologies, Inc. Packaged systems for implanting markers in a patient and methods for manufacturing and using such systems
US9248003B2 (en) 2002-12-30 2016-02-02 Varian Medical Systems, Inc. Receiver used in marker localization sensing system and tunable to marker frequency
US9623208B2 (en) 2004-01-12 2017-04-18 Varian Medical Systems, Inc. Instruments with location markers and methods for tracking instruments through anatomical passageways
US11439847B2 (en) 2004-06-24 2022-09-13 Varian Medical Systems, Inc. Systems and methods for treating a lung of a patient using guided radiation therapy or surgery
US10195464B2 (en) 2004-06-24 2019-02-05 Varian Medical Systems, Inc. Systems and methods for treating a lung of a patient using guided radiation therapy or surgery
US9238151B2 (en) 2004-07-23 2016-01-19 Varian Medical Systems, Inc. Dynamic/adaptive treatment planning for radiation therapy
US9586059B2 (en) 2004-07-23 2017-03-07 Varian Medical Systems, Inc. User interface for guided radiation therapy
GB2425352B (en) * 2005-04-21 2010-07-14 Agilent Technologies Inc System and method of determining orientation information
US10653496B2 (en) 2005-09-19 2020-05-19 Varian Medical Systems, Inc. Apparatus and methods for implanting objects, such as a bronchoscopically implanting markers in the lung of patients
US9283053B2 (en) 2005-09-19 2016-03-15 Varian Medical Systems, Inc. Apparatus and methods for implanting objects, such as bronchoscopically implanting markers in the lung of patients
US7728280B2 (en) 2006-12-11 2010-06-01 Brainlab Ag Multi-band tracking and calibration system
US9237860B2 (en) 2008-06-05 2016-01-19 Varian Medical Systems, Inc. Motion compensation for medical imaging and associated systems and methods
RU2442997C2 (en) * 2009-07-06 2012-02-20 Федеральное Государственное Образовательное Учреждение Высшего Профессионального Образования Военная Академия Войсковой Противовоздушной Обороны Вооруженных Сил Российской Федерации Method for target ranging and optoelectronic system of search and track (its variants)
US10293135B2 (en) 2010-10-01 2019-05-21 Varian Medical Systems, Inc. Delivery catheter for and method of delivering implant, for example, bronchoscopically implanting a marker in a lung
US9561387B2 (en) 2012-04-12 2017-02-07 Unitversity of Florida Research Foundation, Inc. Ambiguity-free optical tracking system
US9511243B2 (en) 2012-04-12 2016-12-06 University Of Florida Research Foundation, Inc. Prevention of setup errors in radiotherapy
WO2013155388A1 (en) * 2012-04-12 2013-10-17 University Of Florida Research Foundation, Inc. Ambiguity-free optical tracking system
EP2661155A1 (en) * 2012-04-30 2013-11-06 Zumtobel Lighting GmbH Multifunctional sensor unit and method for the adjustment of said unit
US9919165B2 (en) 2014-05-07 2018-03-20 Varian Medical Systems, Inc. Systems and methods for fiducial to plan association
US10043284B2 (en) 2014-05-07 2018-08-07 Varian Medical Systems, Inc. Systems and methods for real-time tumor tracking
EP3281584A1 (en) * 2016-08-10 2018-02-14 Giant Manufacturing Co., Ltd. Dynamic motion detection system
US10704890B2 (en) 2016-08-10 2020-07-07 Giant Manufacturing Co., Ltd. Dynamic motion detection system

Also Published As

Publication number Publication date
US6061644A (en) 2000-05-09
EP1034440B1 (en) 2003-10-29
JP2002505412A (en) 2002-02-19
DE1034440T1 (en) 2001-05-03
CN1283272A (en) 2001-02-07
CN1199054C (en) 2005-04-27
DE69819363D1 (en) 2003-12-04
CA2312352A1 (en) 1999-06-17
DE69819363T2 (en) 2004-08-05
CA2312352C (en) 2005-09-06
EP1034440A1 (en) 2000-09-13
ATE253229T1 (en) 2003-11-15

Similar Documents

Publication Publication Date Title
US6061644A (en) System for determining the spatial position and orientation of a body
CA2272357C (en) A system for determining the spatial position of a target
US9612331B2 (en) Laser tracker with functionality for graphical target preparation
US9188430B2 (en) Compensation of a structured light scanner that is tracked in six degrees-of-freedom
US10105186B2 (en) Virtual rigid body optical tracking system and method
US11335182B2 (en) Methods and systems for detecting intrusions in a monitored volume
Yagi et al. Map-based navigation for a mobile robot with omnidirectional image sensor COPIS
US7289227B2 (en) System and tracker for tracking an object, and related methods
US4893183A (en) Robotic vision system
US5446548A (en) Patient positioning and monitoring system
US5363185A (en) Method and apparatus for identifying three-dimensional coordinates and orientation to a robot
EP3719441A1 (en) Three-dimensional measuring system
CN109410282B (en) Method and device for detecting and tracking transfusion rod
EP0290237B1 (en) Synchronous optical scanning apparatus
US20230122788A1 (en) Method and device for the recognition of blooming in a lidar measurement
Yun et al. Omnidirectional 3D point clouds using dual kinect sensors
US5351056A (en) Target tracking in clutter degraded scenes using central level stereo processing
Payandeh et al. Application of imaging to the laproscopic surgery
CN113048878A (en) Optical positioning system and method and multi-view three-dimensional reconstruction system and method
Monchaud 3-D vision and range finding techniques
JPH06289123A (en) Optical measuring system

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 98811823.8

Country of ref document: CN

AK Designated states

Kind code of ref document: A1

Designated state(s): CA CN JP

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE

121 Ep: the epo has been informed by wipo that ep was designated in this application
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
ENP Entry into the national phase

Ref document number: 2312352

Country of ref document: CA

Ref document number: 2312352

Country of ref document: CA

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 1998958130

Country of ref document: EP

WWP Wipo information: published in national office

Ref document number: 1998958130

Country of ref document: EP

WWG Wipo information: grant in national office

Ref document number: 1998958130

Country of ref document: EP