EP1424538A1 - Method and apparatus for tracking position and orientation of a stylus and for digitizing a 3-D object - Google Patents

Method and apparatus for tracking position and orientation of a stylus and for digitizing a 3-D object Download PDF

Info

Publication number
EP1424538A1
EP1424538A1 EP03028886A EP03028886A EP1424538A1 EP 1424538 A1 EP1424538 A1 EP 1424538A1 EP 03028886 A EP03028886 A EP 03028886A EP 03028886 A EP03028886 A EP 03028886A EP 1424538 A1 EP1424538 A1 EP 1424538A1
Authority
EP
European Patent Office
Prior art keywords
probe
probe apparatus
recited
stylus
contour line
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
EP03028886A
Other languages
German (de)
French (fr)
Other versions
EP1424538B1 (en
Inventor
Louis B. Rosenberg
Scott B. Brave
Bruce M. Schena
Bernard G. Jackson
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Immersion Corp
Original Assignee
Immersion Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Immersion Corp filed Critical Immersion Corp
Publication of EP1424538A1 publication Critical patent/EP1424538A1/en
Application granted granted Critical
Publication of EP1424538B1 publication Critical patent/EP1424538B1/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1679Programme controls characterised by the tasks executed
    • B25J9/1692Calibration of manipulator
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01BMEASURING LENGTH, THICKNESS OR SIMILAR LINEAR DIMENSIONS; MEASURING ANGLES; MEASURING AREAS; MEASURING IRREGULARITIES OF SURFACES OR CONTOURS
    • G01B21/00Measuring arrangements or details thereof, where the measuring technique is not covered by the other groups of this subclass, unspecified or not relevant
    • G01B21/02Measuring arrangements or details thereof, where the measuring technique is not covered by the other groups of this subclass, unspecified or not relevant for measuring length, width, or thickness
    • G01B21/04Measuring arrangements or details thereof, where the measuring technique is not covered by the other groups of this subclass, unspecified or not relevant for measuring length, width, or thickness by measuring coordinates of points
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01BMEASURING LENGTH, THICKNESS OR SIMILAR LINEAR DIMENSIONS; MEASURING ANGLES; MEASURING AREAS; MEASURING IRREGULARITIES OF SURFACES OR CONTOURS
    • G01B21/00Measuring arrangements or details thereof, where the measuring technique is not covered by the other groups of this subclass, unspecified or not relevant
    • G01B21/02Measuring arrangements or details thereof, where the measuring technique is not covered by the other groups of this subclass, unspecified or not relevant for measuring length, width, or thickness
    • G01B21/04Measuring arrangements or details thereof, where the measuring technique is not covered by the other groups of this subclass, unspecified or not relevant for measuring length, width, or thickness by measuring coordinates of points
    • G01B21/042Calibration or calibration artifacts
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01BMEASURING LENGTH, THICKNESS OR SIMILAR LINEAR DIMENSIONS; MEASURING ANGLES; MEASURING AREAS; MEASURING IRREGULARITIES OF SURFACES OR CONTOURS
    • G01B5/00Measuring arrangements characterised by the use of mechanical techniques
    • G01B5/004Measuring arrangements characterised by the use of mechanical techniques for measuring coordinates of points
    • G01B5/008Measuring arrangements characterised by the use of mechanical techniques for measuring coordinates of points using coordinate measuring machines
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/42Recording and playback systems, i.e. in which the programme is recorded from a cycle of operations, e.g. the cycle of operations being manually controlled, after which this record is played back on the same machine
    • G05B19/4202Recording and playback systems, i.e. in which the programme is recorded from a cycle of operations, e.g. the cycle of operations being manually controlled, after which this record is played back on the same machine preparation of the programme medium using a drawing, a model
    • G05B19/4207Recording and playback systems, i.e. in which the programme is recorded from a cycle of operations, e.g. the cycle of operations being manually controlled, after which this record is played back on the same machine preparation of the programme medium using a drawing, a model in which a model is traced or scanned and corresponding data recorded
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/016Input arrangements with force or tactile feedback as computer generated output to the user
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/0346Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of the device orientation or free movement in a 3D space, e.g. 3D mice, 6-DOF [six degrees of freedom] pointers using gyroscopes, accelerometers or tilt-sensors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/038Control and interface arrangements therefor, e.g. drivers or device-embedded control circuitry
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/038Control and interface arrangements therefor, e.g. drivers or device-embedded control circuitry
    • G06F3/0383Signal control means within the pointing device
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/10Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by input arrangements for converting player-generated signals into game device control signals
    • A63F2300/1037Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by input arrangements for converting player-generated signals into game device control signals being specially adapted for converting control signals received from the game device into a haptic signal, e.g. using force feedback
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/37Measurements
    • G05B2219/37021Robot controls position of touch probe
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/37Measurements
    • G05B2219/37043Touch probe, store position of touch point on surface
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/39Robotics, robotics to robotics hand
    • G05B2219/39015With different manipulator configurations, contact known sphere, ballbar
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/39Robotics, robotics to robotics hand
    • G05B2219/39021With probe, touch reference positions
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/39Robotics, robotics to robotics hand
    • G05B2219/39024Calibration of manipulator
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/39Robotics, robotics to robotics hand
    • G05B2219/39048Closed loop kinematic self calibration, grip part of robot with hand
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/45Nc applications
    • G05B2219/45055Assembly
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/45Nc applications
    • G05B2219/45061Measuring robot
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/01Indexing scheme relating to G06F3/01
    • G06F2203/015Force feedback applied to a joystick
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01HELECTRIC SWITCHES; RELAYS; SELECTORS; EMERGENCY PROTECTIVE DEVICES
    • H01H3/00Mechanisms for operating contacts
    • H01H2003/008Mechanisms for operating contacts with a haptic or a tactile feedback controlled by electrical means, e.g. a motor or magnetofriction

Definitions

  • the present invention relates generally to input devices for interfacing with computer systems, and more particularly to computer input devices that provide spatial information about a three-dimensional object to computer systems which provide a representation of the object.
  • Three-dimensional (3-D) digitization is the process of sensing a three-dimensional object and creating a three-dimensional representation of the object which can be manipulated as digital data by a computer system.
  • Detailed and accurate three-dimensional models can be created and manipulated by computer systems for use by animators, engineers, scientists, designers, architects, and others who have a need for a realistic three-dimensional, manipulable model derived from a real, physical object.
  • a common type of digitizing apparatus utilizes a probe device, such as a stylus or other pointer, to trace over surfaces a three-dimensional object and thereby provide the spatial coordinate data of the object to a host computer system.
  • the host computer system can sample the probe device to receive discrete data points at different spatial coordinates.
  • the points can be joined together and displayed as a "mesh representation", which is a wire-frame type model comprising a set of vertices with interconnecting lines or polygons (typically called a "data set").
  • a realistic 3-dimensional shaded model can be created by a computer system from the mesh representation of an object.
  • a common type of probe apparatus utilizes mechanical linkages and sensors to determine the position of the stylus or other probe that is tracing the three-dimensional object.
  • the stylus is fixed to one end of a series of mechanical linkages, and the other end of the linkage chain is connected to a base fixed to a stationary surface.
  • Sensors can be included in joints of the linkage chain to sense the relative orientation of linkages, and therefore the stylus, are located with respect to the base.
  • the angle data read by the sensors can be converted into coordinate data by a microprocessor interface or by the host computer system.
  • the user is further constrained by the joints of the linkage assembly. Since wires are routed through the joints to carry electrical signals from sensors located therein, the joints typically include stops which limit the motion of a joint to under 360 degrees to prevent twisting and stressing the wires.
  • this limited movement can inconvenience the user when tracing an object, especially when a limit to a joint is reached in a particular direction and further movement of the stylus in that direction is required to trace the surface of the object.
  • Digitizing apparatuses often use less expensive relative sensors which detect a change in the position of a linkage of the digitizing apparatus rather than reading an absolute angle for the position of the linkage.
  • a "zeroing" procedure is often accomplished each time the apparatus is powered up to provide reference starting angles for the relative sensors. For example, in the prior art, zeroing can be accomplished by moving each individual joint to a stop of the joint and starting angles are "zeroed" at those points.
  • this procedure can be very time consuming to move each individual joint each time the apparatus is powered up.
  • digitizing apparatuses use a "home position" to provide starting angles.
  • the stylus is placed into a receptacle on the base of the apparatus such that the reference starting angles for all the sensors is known when the apparatus is powered up.
  • having the receptacle for a home position on the base of the apparatus typically requires a larger base that covers a larger surface area on a support surface such as a tabletop, which can be inconvenient.
  • the more degrees of freedom on a digitizing apparatus the more joints that need to be zeroed between the base and the probe. The greater the number joints to be zeroed, the greater the chance for error to be introduced in the zeroing process.
  • the present invention provides a measuring system for measuring three-dimensional (3-D) coordinates.
  • the probe apparatus is used to digitize three-dimensional objects into a mesh representation manipulable by a computer system.
  • Various improvements to a probe arm linkage, a calibration method and zeroing method for a probe apparatus, a rotary table for supporting an object to be digitized, a method for developing a mesh representation by a computer system, and a method for assembling a probe arm linkage are described herein.
  • a probe apparatus of the present invention for sensing the position and orientation of a probe for sensing the position and orientation of a probe, such as a stylus, includes a first joint member coupled to the probe that provides two degrees of freedom to the probe, and a first linkage rotatably coupled to the first joint member. Further, a second joint member is rigidly coupled to the first linkage and provides one degree of freedom to the probe. A second linkage is rigidly coupled to the second joint member, and a third joint member is rotatably coupled to the other end of the second linkage. The third joint member provides two degrees of freedom to the probe. Finally, a support base is coupled to the third joint member for supporting the probe apparatus. Transducers of the probe apparatus provide angular signals for the provided degrees of freedom to describe a position and orientation of the probe.
  • the probe apparatus provides 3-D data describing a 3-D object to the computer system.
  • An electronics interface is included within a housing of said support base and provides the angular signals from the sensors to a computer system.
  • the joint members can include a multistage stop joint of the present invention which provides over 360 degrees of rotational movement about an axis.
  • the transducer for one of the first joint member degrees of freedom is positioned in the second joint member.
  • the first joint member can provide three degrees of freedom to the probe in an alternate embodiment.
  • a method of the present invention for calibrating a probe apparatus for measuring 3-D coordinates includes a step of sampling multiple orientations of the stylus as the orientation of the stylus is varied at an arbitrary point within the probe's work volume. The position of the stylus tip remains fixed while the user varies the orientation of the stylus. Multiple orientations are sampled from data provided by sensors on the probe apparatus. Spatial coordinates are then determined for the stylus at each of the sampled orientations of the stylus. Next, error values between the spatial coordinates of the sampled orientations are determined. Finally, the probe apparatus is optimized by determining calibration parameters based on the error values and using the calibration parameters when determining the position and orientation of the probe during normal operation.
  • previous calibration parameters are loaded from a memory device before the calibration process and are adjusted to become new calibration parameters.
  • the adjusted parameters are preferably stored on an EPROM memory device which is unable to store data over previously written data stored in the EPROM.
  • the adjusted calibration parameters are stored as a most recent set of calibration parameters in a specific section of the EPROM such that, when calibration parameters are retrieved during operation of the probe apparatus, only the most recent set of calibration parameters are retrieved.
  • the calibration steps can be repeated when the stylus is placed at a different position in the selected volume and the sampled orientations from both of the positions can be used when determining the error values.
  • a method of the present invention for zeroing the sensors of a probe apparatus of a three-dimensional coordinate measuring system having relative sensors, such as the probe apparatus described above, includes placing the stylus (or other probe) in a receptacle positioned on one of the joints or one of the linkages of the probe apparatus.
  • This receptacle preferably takes the form of a small bore or shallow divot.
  • the linkage arm assembly can be in only one possible configuration while the stylus is positioned in the receptacle; this one configuration is known as a "home position.”
  • An indication is then received to zero the sensors of the probe apparatus, such as powering up the probe apparatus.
  • Starting angles are then assigned to the sensors when the probe apparatus is in the home position. The starting angles provide a zero angle reference for the sensors of the probe apparatus. Preferably, the starting angles have previously been calibrated for the particular probe apparatus that is undergoing the zeroing process.
  • a rotary table of the present invention is for use with a 3-D digitizing system that includes a probe apparatus for measuring 3-D coordinates on an object resting on the rotary table, such as the probe apparatus described above.
  • the rotary table includes a support base and a turntable which rotates.
  • a sensor is coupled to the support base which measures an angular rotation of the turntable and provides the angular rotation to a host computer system.
  • the host computer system includes the turntable rotation in a determination of the position and orientation of the probe when the probe is contacting the object resting on the turntable.
  • the angular rotation is included in the probe determination when the probe has contacted the object before the turntable has been rotated and after the turntable has been rotated so that the object can be referenced at its new position.
  • the sensor is preferably positioned near the center of said turntable such that a shaft of the sensor is coupled to the turntable.
  • the turntable also preferably includes a receptacle positioned near a periphery (or the center) of the turntable for receiving the probe in an initialization procedure for locating the turntable relative to the probe apparatus.
  • the initialization procedure can include placing the probe in the receptacle, rotating the turntable while the probe is positioned in the receptacle, sampling multiple positions and orientations of the probe as the turntable is rotated, and determining the position and orientation of the rotary table relative to the probe apparatus using the sampled positions and orientations of the probe.
  • the support base of the table is coupled to the base of the probe apparatus such that the position and orientation of the rotary table is fixed relative to the probe apparatus.
  • a method of the present invention for developing a mesh representation of a three-dimensional object by a computer system includes receiving a data point from a probe corresponding to a surface point on a surface of a three-dimensional (3-D) object.
  • the data point is added to an end of a current contour line of the mesh representation, where the current contour line includes data points corresponding to surface points on the surface of the 3-D object.
  • a triangle is then created in the mesh representation that includes a data point of the current contour line, a data point of a previous contour line, and a third data point from either the current contour line or the previous contour line.
  • the previous contour line is adjacent to the current contour line and includes data points previously received from the probe. The triangle is created only when the current contour line is not the first and only contour line of the mesh representation.
  • data points of the triangle are chosen based on the distance between data points of the current contour line and data points of the previous contour line.
  • a normal vector is assigned to the created triangle that indicates the exterior surface of the mesh representation.
  • the orientation of the normal vector is based on orientation data included in the data points of the triangle.
  • the triangle is displayed on a display screen of the host computer immediately after the triangle is created, thus displaying the mesh representation incrementally.
  • a triangle is created for each data point of the previous contour line that is not included in a triangle in a "close mesh" process.
  • the data points are provided to the host computer from the probe as a user is tracing the probe across the surface of the object.
  • the data points can be provided when a user control is activated or after the user traces the probe a minimum distance on the object.
  • a method of the present invention for providing a selection template that allows commands to be selected by a probe apparatus includes defining a template area as the selection template within a selected volume that the stylus of the probe apparatus can reach.
  • a selection area is defined within the template area and is associated with a command to the host computer.
  • the command associated with the selection area is provided to the host computer to select a function of said host computer or of the probe apparatus when the tip of the stylus is positioned within the selection area.
  • a plurality of selection areas are defined within the template area that are each associated with a different command.
  • the selection areas can include indicia such as icons and labels.
  • a method of the present invention is also described for assembling a linkage assembly including a plurality of joints and a linkage used in a probe apparatus for measuring three-dimensional coordinates, such as the probe described above.
  • Two joint fixtures are positioned a desired distance apart and have a desired angle offset from each other.
  • a joint of the linkage assembly is placed in each of the joint fixtures.
  • the joints can be moved relative to the linkage connecting the joints so that the joints fit in the joint fixtures.
  • the joints are then bonded to the linkage while the joints are placed in the joint fixtures.
  • the linkage is preferably made of graphite, which is well adapted to the bonding process.
  • the probe arm apparatus provides a lightweight, accurate device for the user to handle.
  • the calibration method allows a probe to be positioned at an arbitrary point in a volume and thus avoid expensive precision fixtures.
  • the zeroing method is more accurate and allows only one possible physical configuration of the probe arm to be in the home position.
  • the method of the present invention for assembling linkages and joints for a probe apparatus allows accurate lengths and angles between joints.
  • the rotary table allows an object to be re-oriented by a user during digitization without a cumbersome procedure and with great accuracy.
  • the method for developing a mesh representation allows a user to incrementally view a mesh representation and quickly and accurately finds the orientation of the mesh polygons.
  • the selection template allows the user to conveniently select commands and functions of the host computer and probe during a digitization process.
  • a digitizing system 10 for measuring a three-dimensional (3-D) object and providing a representation of the three-dimensional object in a computer system includes a probe apparatus 12, a rotary table 14, an electronic interface 16, and a host computer 18.
  • a three-dimensional object 20 is shown resting on rotary table 14.
  • the illustrated digitizing system 10 is directed to providing a highly accurate representation of object 20 which host computer 18 can display, edit, copy, provide to other computer systems, or otherwise manipulate.
  • Probe apparatus 12 is provided to allow a user to measure and transmit location information of object 20 to host computer 18.
  • a probe that is traced over a 3-D object, such as object 20 can provide coordinate information describing the 3-D geometry of object 20.
  • this coordinate information is provided using sensors operative to measure positions of the probe apparatus as it is moved to various locations with respect to the fixed base. This is described in greater detail below.
  • Probe apparatus 12 preferably includes a stylus probe 22 and a mechanical linkage assembly 25.
  • Stylus 22 is a pen-like rod that can be manipulated between a user's fingers to allow a fine degree of control of the probe apparatus.
  • Stylus 22 includes a tip 23 that is used to reference the location of a point pointed to by the probe apparatus.
  • Probes other than stylus 22 can be used in other embodiments. For example, a curved or angled member, hand grip, palm-supported stylus, or other type of probe can be used.
  • Stylus 22 is coupled to mechanical linkage assembly 25.
  • Linkage assembly 25 (or “arm") preferably includes joint members 24, 26, and 28, linkages 30, 32 and 34, and base 33.
  • Base 33 also preferably includes a base joint 35 coupled between the base and linkage 34.
  • Stylus 22 is coupled to linkage 30 via joint member 24, and linkage 30 is coupled to linkage 32 via joint member 26.
  • Linkage 32 is coupled to base 33 via joint member 28.
  • Base 33 is preferably securely placed upon or fixed to a support surface 37, such as a tabletop.
  • joint member 24, 26, 28, and 35 provides one or more degrees of freedom to stylus 22 within three-dimensional coordinate space defined by x-axis 36, y-axis 38, and z-axis 40 with respect to fixed base 33.
  • joint member 24 includes two joints which allow stylus 22 to move about axis A1, as shown by arrows 42 and about axis A2, as shown by arrows 44.
  • joint member 24 and stylus 22 can be rotated about axis A2 while linkage 30 remains fixed in joint member 26.
  • Joint member 26 includes one joint that allows stylus 22, joint member 24, and linkage 30 to move about axis A3, as shown by arrows 46.
  • Joint member 28 includes two joints that allow stylus 22, joint members 24 and 26, and linkages 30 and 32 to move about axis A4, as shown by arrows 48, and about axis A5, as shown by arrows 50.
  • Joint member 28 actually includes member 31, which rotates about axis A4, and member 34, which is separated from base 33 by joint 35 and rotates to allow linkage assembly 23 to rotate with reference to base 33.
  • Joint 35 allows joint members 24, 26, and 28, linkages 30 and 32, and stylus 22 to move about axis A5.
  • the stylus 22 of the preferred probe apparatus 12 thus can be moved in five degrees of freedom about the axis A1-A5.
  • stylus 22 can be rotated about an axis A6 that is parallel to the lengthwise direction of the stylus to provide a sixth degree of freedom.
  • less degrees of freedom can be provided to stylus 22 in some embodiments where more than three or four degrees of freedom are not necessary.
  • the linkage assembly of the present invention has unique features.
  • Joint member 28 includes two joints and provides two degrees of freedom about axes A4 and A5.
  • Joint member 26 is isolated from the other joint members by linkages 30 and 32 and provides only one degree of freedom about axis A3.
  • Joint member 24 includes two joints that each provide stylus 22 a degree of freedom about axis A1 and A2, respectively.
  • linkage assembly has a 2 joint, linkage, 1 joint, linkage, 2 joint configuration. This configuration has the advantage that linkages 30 and 32 need not rotate about a longitudinal axis through the center of each of the linkages, i.e., linkage 30 does not rotate about axis A2 and linkage 32 does not rotate about an axis A7 extending longitudinally through the center of linkage 32.
  • Linkages 30 and 32 are thus rigidly coupled to and fixed to joint member 26 and joint member 28, respectively. Since linkages 30 and 32 do not have to rotate as described, any eccentricities (bends, warps, twists, etc.) in the linkages 30 and 32 therefore do not introduce error into the sensing of stylus 22 when stylus 22 is moved.
  • member 31 of joint member 28 preferably includes a weighted end 29.
  • a heavy material such as lead or another metal, is included within end 29 to counterbalance linkage assembly 23.
  • joint member 26 (the "elbow” of the arm) does not get “lock” as easily in a fully extended position as when end 29 is not weighted, i.e., the weight counterbalances the linkage assembly so that it is easier to move joint 26 from the extended position.
  • the extended position occurs when linkages 30 and 32 are approximately arranged in a straight line. Weighted end 29 also allows stylus 22 to be moved more easily in the working volume.
  • sensors 54 are included in joint members 24, 26, 28, and 35 to measure the change in angle between linkages after power up of probe apparatus 12.
  • position refers to the linear coordinate position of tip 23 of stylus 22 along x-axis 36, y-axis 38, and z-axis 40 with respect to an origin O at base 33.
  • each point in space has a unique position having x, y, and z coordinates.
  • orientation refers to the roll, pitch, and yaw of stylus 22 at a particular position with respect to the origin at base 33.
  • the tip 23 of stylus 22 may be at a position (x, y, z) while the stylus 22 has a particular orientation including an angle defined by yaw and pitch coordinates and a spin defined by a roll coordinate.
  • Each of the transducers therefore preferably provides angular position signals or "annular signals" for one of the degrees of freedom of the apparatus.
  • Sensor 54a is preferably included in joint member 24, two sensors 54b and 54c are included in joint member 26, one sensor 54d is included in joint member 28, and one sensor 54e is included in base 33 (or member 34).
  • Sensor 54b is preferably coupled to joint member 24 via a shaft 55 which is directed through the interior of linkage 30.
  • shaft 55 also rotates, and this rotation is detected by sensor 54b.
  • the position of sensor 54b in joint member 26 allows joint member 24 to be as small as possible, which allows stylus 22 to be manipulated more conveniently by the user.
  • An additional sensor can be included in joint member 24 to measure movement of stylus 22 about axis A6 in other embodiments.
  • this additional sensor can be positioned in joint member 26 and coupled to stylus 22 with cables or shafts similar to shaft 55.
  • the sensors can be placed in other locations of linkage assembly 23 in other embodiments.
  • Sensors 54 are preferably relative optical encoders for measuring the angle change of rotation of a sensor shaft aligned with a particular axis A1-A5, as is well known to those skilled in the art.
  • a suitable sensor 54 for example, is an optical encoder manufactured by Hewlett Packard.
  • other types of sensors can be used, such as absolute encoders, potentiometers, magnetic sensors, etc., as well as sensors that detect linear motion rather than angular rotation.
  • a user can "trace" the contours, edges, and surfaces of object 20 with stylus 22 to relay position and orientation information of the stylus to host computer 18, i.e. the user can "digitize” object 20.
  • “tracing” refers to contacting tip 23 of stylus 22 on a surface of object 20 and moving the stylus along the surface.
  • Sensors 54 of the probe apparatus relay relative angular orientations of linkage assembly 25 and stylus 22 as the stylus is moved to host computer 18, which converts the angle information into coordinates and into a mesh representation (a type of geometric representation) of the surface that was traced.
  • Methods of tracing an object with a stylus for such a purpose are well-known to those skilled in the art, and are described in greater detail with reference to Figure 9.
  • Probe apparatus 12 can be used for a variety of different applications other than digitizing 3-D objects.
  • Virtually any apparatus that spatially measures an object and transmits coordinate information to a host computer can be used with rotary table 14.
  • Rotary table 14 is supported by support surface 37 within the work volume of probe apparatus 12, where the "work volume” is defined herein as the entire volume surrounding probe apparatus 12 which can be reached by tip 23 of stylus 22.
  • Other types of 3-D measuring apparatuses have work volumes defined by the reachable volume of a probe element that contacts the object.
  • the rotary table of the present invention is preferably placed such that the entire table 14 is included in the work volume.
  • other embodiments of the rotary table 14 may be attached to base 33 of probe apparatus 12, as discussed in greater detail with respect to Figure 6.
  • Rotary table 14 includes a turntable 60 and a table base 62.
  • Turntable 60 can be rotated about axis B 1 as indicated by arrow 64 while table base 62 remains fixed in place.
  • Object 20 rests on a surface of turntable 60, and is preferably coupled to the surface by cords, glue, screws, or other fasteners to prevent the object from moving relative to the rotating surface 60.
  • rotary table 14 outputs signals on bus 66 to an interface 16 or host computer 18 indicating any change in location of object 20 about axis B1. This is described in greater detail with reference to Figure 6.
  • Rotary table 14 allows a user to move object 20 so as to angle the object more favorably for tracing with stylus 22.
  • the object can be moved by rotating surface 60 about axis B 1 until the desired surface of the object is more accessible to stylus 22. Moving the object 20 on the rotary table of the present invention does not cause errors in further coordinate measurements of the object 20.
  • rotary table 14 can be used with a wide variety of three-dimensional digitizing apparatuses. Virtually any apparatus that spatially measures an object and transmits measured information to a host computer can be used with rotary table 14.
  • Foot pedal 68 is preferably coupled to probe apparatus 12 by a bus 70.
  • Foot pedal 68 includes a activation pedal 71 or similar control, such as a button, switch, etc.
  • the foot pedal 68 is preferably placed below or to the side of support surface 37 to allow a user of probe apparatus 14 to access the pedal easily.
  • the relative angles read by sensors 54 from a reference position are read by host computer 18, and the host computer calculates the current position and orientation of stylus 22 and tip 23 using the angle information.
  • the position and orientation is expressed as a coordinate "point", i.e. a set of x, y, z, roll, pitch, yaw coordinates.
  • Foot pedal is conveniently placed so that a user can use his or her foot to activate the pedal. The user thus does not have to remove or shift his or her hands from stylus 22 or probe apparatus 12 when sending coordinate information to host computer 18.
  • foot pedal 68 can be provided as a button or switch located on stylus 22, on a different location of linkage assembly 25, on rotary table 14, or as a separate hand control.
  • foot pedal 68 can be coupled to probe apparatus 12 and be separately coupled to host computer 18 or interface 16, or could be connected to the host computer via rotary table 14. A method of digitizing object 20 using foot pedal 68 is described in greater detail with respect to Figure 11.
  • Electronics interface 16 is coupled to probe apparatus 12 by a bus 72.
  • interface 16 is included within the outer casing of base 33 (or member 34) of the probe apparatus.
  • interface 16 can be provided external both to probe apparatus 12 and host computer 18, or the interface can be provided within host computer 18.
  • interface 16 serves as an input/output (I/O) device to receive angles from sensors 54 of probe apparatus 12 and transmit those angles to host computer 18, as well as to transmit commands from host computer 18 to probe apparatus 12.
  • interface 16 can transmit coordinate data that was calculated from the raw angle data to host computer 18.
  • the interface 16 can also receive commands from foot pedal 68, rotary table 14, or other buttons and/or controls of probe apparatus 12. Interface 16 is described in greater detail with reference to Figure 1a.
  • Host computer 18 receives coordinate data from probe apparatus 12 describing object 20.
  • Computer 18 uses the coordinate data to develop a representation of the object 20.
  • the computer can form and display a highly accurate pictorial representation of object 20, called a "mesh" representation, which includes precise measurements, angles, and other spatial information.
  • Host computer preferably includes standard components such as a microprocessor, random access memory (RAM), read-only memory (ROM), input/output electronics, and storage devices such as a hard disk drive, CD ROM drive, etc.
  • host computer 18 is a personal computer or workstation, such as an IBM-PC AT or Macintosh personal computer, or a SUN or Silicon Graphics workstation.
  • the host computer system is a personal computer which operates under the MS-DOS or Windows operating systems in conformance with an IBM PC AT standard.
  • the host computer 18 is preferably coupled to a display screen 76 which can be used to display a mesh representation 78 of object 20 to the user.
  • the mesh representation is shown in greater detail with respect to Figure 10.
  • mesh representation 78 can be displayed as the user is tracing over object 20 so that the user can incrementally view how the object is being represented within computer system 18. This helps a user to spot tracing mistakes as soon as the mistakes are made, rather than having to wait for the entire object to be traced and then viewing a resulting mesh representation. This preferred method is described in greater detail with respect to Figure 11.
  • Display screen 76 also preferably displays a user interface to an operating system implemented by host computer 18.
  • Software can be implemented on host computer 18 such that commands are displayed to the user on display screen 76 to offer various options when tracing an object, entering coordinates, displaying the mesh representation, or a shaded model derived from the mesh representation, etc., as is well known to those skilled in the art.
  • a cursor or pointer 77 displayed by the operating system or application program running on computer system 18 is preferably displayed to access functions to manipulate the displayed mesh representation or to access features of probe apparatus 12 and rotary table 14.
  • the pointer can traditionally be manipulated by an input pointing device such as a mouse, trackball, touch pad, or the like.
  • stylus 22 of probe apparatus 12 can also preferably be used to control pointer 77.
  • the host computer can receive the position data for stylus 22 and convert the data into 2-dimensional coordinates.
  • the host computer 18 would then move pointer 77 to those 2-dimensional coordinates, as is well known to those skilled in the art.
  • the conversion of 3-D coordinates to 2-D coordinates can be accomplished by simply ignoring a third coordinate, such as the z-coordinate; or, all three coordinates can be converted into 2-D coordinates by projecting data into a given plane.
  • Foot pedal 71 can be used similarly to a mouse or other pointing device button.
  • the control of pointer 77 by stylus 22 can be implemented as a mode, where the user can select whether to be in computer cursor control mode or in 3-D trace mesh mode. These modes can be selected or toggled by software running on host computer 18 through command in an operating system or by using selection template 80 (described below).
  • Selection template 80 presents a collection of selection areas 82 within template 80 describing options, commands, and other functions which relate to probe apparatus 12 and host computer 18. These functions are preferably implemented using software running on host computer 18; however, the functions can be implemented on a controller microprocessor in probe apparatus 12 or a different connected controller or computer system for digitizing system 10.
  • Template 80 preferably has a thin, planar shape with a flat surface and is made out of a material such as card stock, plastic, or other durable material. Alternatively, template 80 can be a rectilinear, cubic, or other three-dimensional shape having a flat surface to display selection areas 80. Selection areas 80 can include indicia such as word commands, e.g., "start new mesh", as well as icons, shapes, and other pictures.
  • probe apparatus 12 When a user moves tip 43 of stylus 22 onto or over a selection area of template 80, a function of probe apparatus 12 or control software running on host computer 18 is implemented. For example, if the user moves the stylus 22 onto a square icon labeled "Save Mesh", then the three-dimensional mesh currently displayed on display screen 76 is saved to a storage device coupled to host computer 18, such as a hard disk. As described below with reference to Figure 8, other commands can be selected to erase a mesh, start a new mesh, load a mesh from a storage device, copy a mesh, select modes of probe apparatus 12 such as "auto-trigger" mode (described below), etc.
  • a separate sensing device such as the conventional type of contact-sensitive tablet used for detecting a stylus, is not coupled to template 80 to determine the functions or commands pointed to by stylus 22. This is because the position and orientation of tip 43 of stylus 22 with respect to the base 33 is already known to host computer 18 through the sensors 54 of probe apparatus 12.
  • the area defined by template 80 in the work volume of probe apparatus 12 is preferably initialized in a setup procedure for probe apparatus 12 which determines the position and orientation of the template with respect to the fixed base (described with reference to Figures 6 and 8).
  • the template and the locations of selection areas 82 are defined in the setup procedure, so that when tip 43 of stylus 22 is pointing to those defined selection areas, host computer 18 implements a predefined function for that selection area.
  • Template 80 is shown attached to the support surface 37 in Figure 1. Template 80 can also be attached, for example, to base 33 or linkage 34 of probe apparatus 12, rotary table 14, or a different convenient surface within the work volume of probe apparatus 12 with a known location with respect to base 33.
  • FIG. 1a is a block diagram illustrating a preferred electronics interface 16 for the digitizing system 10 shown in Figure 1.
  • Interface 16 preferably includes a microprocessor 86, random access memory (RAM) 88, read-only memory (ROM) 90, and input/output (I/O) circuitry 92.
  • Microprocessor 86 receives digital signals from the sensors 54 of the probe apparatus and provides angle data to host computer 18, and also may receive commands from host computer 18. Alternately, microprocessor 86 can also compute coordinate data from the angle data.
  • RAM 88 can provide storage for bookkeeping and temporary data.
  • ROM 90 stores instructions for microprocessor 86 to follow and can be an erasable programmable read only memory (EPROM), for example.
  • ROM 90 also preferably stores calibration parameters and other parameters as described subsequently.
  • Microprocessor 86, RAM 88, and ROM 90 can be coupled together by an address/data/control bus 87.
  • these components are all integrated in a microcontroller chip, such as Motorola 68HCl1, the use of which is well known to those skilled in the art.
  • I/O circuitry is coupled to bus 87 and can include a variety of circuits and processors for use with probe apparatus 12. Sensors 54, peripherals 94, and host computer 18 are coupled to I/O circuitry 92. I/O circuitry can include preprocessors for converting digital sensor information to angular changes and sending the angle information to microprocessor 86, as well as other sensor interface circuitry. For example, quadrature counters such as the Quadrature Chip LS7166 from Hewlett Packard can be used to continually read the output of an optical encoder sensor and determine an angular change in sensor position. Microprocessor 86 can then provide the joint angles to host computer 18 or convert the angles to the spatial location of the stylus.
  • quadrature counters such as the Quadrature Chip LS7166 from Hewlett Packard can be used to continually read the output of an optical encoder sensor and determine an angular change in sensor position.
  • Microprocessor 86 can then provide the joint angles to host computer 18 or convert the angles to the spatial location of the stylus
  • interface circuitry can also be used.
  • an electronic interface is described in U.S. Patent Application Serial No. 08/092,974, filed July 16, 1993 and entitled "3-D Mechanical Mouse” assigned to the assignee of the present invention and incorporated herein by reference in its entirety.
  • the electronic interface described therein was designed for the Immersion PROBETM 3-D mechanical mouse and has six channels corresponding to the six degrees of freedom of the Immersion PROBE.
  • Peripherals 94 are also coupled to I/O circuitry 92 and include foot pedal 71, rotary table 14 (in some embodiments), and any other buttons or other input devices that input information to probe apparatus 12. Peripherals 94 can also include any output devices coupled to the probe apparatus, such as lights, sound speakers, displays, etc.
  • Host computer 18 is also coupled to I/O circuitry 92. In the preferred embodiment, a serial port of computer system 18, such as an RS-232 port, connects the I/O circuitry to computer system 18. Alternatively, a parallel port of host computer system 18 can be coupled to I/O circuitry 92, or a plug-in card and slot or other access of computer system 18.
  • Figure 2 is a flow diagram illustrating a method 100 of initializing and using probe apparatus 12 and rotary table 14 and to develop a mesh representation of object 20 that is manipulable by host computer 18. The process assumes that the user has connected probe apparatus 12 and rotary table 14 to host computer 18 and interface 16.
  • Process 100 presents one example sequence to perform the included steps. In other embodiments, these steps can be performed in other sequences, or some steps can be omitted.
  • the process begins at 102, and, in step 104, the sensors of the probe apparatus 12 are preferably "zeroed" such that the sensors can reference a known relative orientation of linkages and joint members of the probe apparatus.
  • Such a procedure is typically necessary when using relative sensors, as in the preferred embodiment of the present invention.
  • Relative sensors measure only changes in angular rotation (or translation), and do not measure an absolute angle.
  • the zeroing procedure provides reference angles for the sensors which the sensors can use as a reference point from which to measure.
  • the preferred zeroing procedure of the present invention is described in greater detail with respect to Figures 3a and 3b.
  • next step 106 the probe apparatus 12 is calibrated, if necessary. Typically, this step is performed by the manufacturer of probe apparatus 12 before the probe apparatus is available to the user, and step 106 is thus usually omitted when a typical user uses the probe apparatus. However, the probe apparatus may become physically stressed such that linkage or joints are bent or otherwise moved relative to other linkages, thus causing error in measurements. The probe apparatus could then be re-calibrated at step 106.
  • a preferred calibration procedure of the present invention for probe apparatus 12 (or other 3-D probe apparatuses) is described in greater detail with respect to Figure 5.
  • next step 108 the position and orientation of rotary table 14 , if being used, with respect to the origin in base 33 is found.
  • This step allows interface 16 and/or host computer 18 to reference the rotary table relative to the probe apparatus.
  • host computer 18 can determine the change in position and orientation of object 20 and compensate so that the user can continue tracing the object at the new location without introducing error to the mesh representation 78 displayed on screen 76.
  • the position and orientation of the selection template 80 with respect to base 33 can be found in step 108, if the template is being used. Step 108 is described in greater detail with respect to Figure 6.
  • a mesh representation 78 of object 20 is developed in host computer system 18 as the object is traced with stylus 22 of probe apparatus 12.
  • the user preferably traces along non-intersecting contour lines along the surface of object 20, as described below.
  • Data points are provided to host computer 18 as the stylus is being traced, and the 3-D mesh representation is developed from the data points.
  • Step 108 can be implemented multiple times for different objects 20 or the same object 20 without having to again perform steps 104-108 (unless the probe apparatus is powered down).
  • the process 100 is then complete at 112.
  • Figure 3a is a flow diagram illustrating step 104 of Figure 2, in which the sensors of probe apparatus 12 are "zeroed.”
  • This process assumes that relative sensors are being used in joint members 24, 26, and 28 of probe apparatus 12.
  • Relative sensors such as relative optical encoders, are typically less expensive and are thus more preferable than absolute sensors such as absolute encoders, potentiometers, and resolvers. Since relative sensors only measure changes in angular rotation or translation, an absolute angle is derived. In this process, starting reference angles are given so that absolute angles can be derived from relative changes in angles. The process of determining starting reference angles is known as "zeroing" the sensors, since the known starting reference angle is typically considered to be 0 degrees (or the equivalent), and all changes in angle are treated relative to the zero angle.
  • the preferred zeroing process of the present invention begins at 114, in which the probe apparatus 12 is not yet powered up.
  • the stylus 22 is placed by the user in a "home position" by placing the stylus in a receptacle which is preferably on the first joint or linkage of the probe apparatus after base 33.
  • This joint/linkage is member 34 of joint member 28 in the probe apparatus 12 shown in Figure 1.
  • the home position is a standard position in which the links of linkage assembly 23 of the probe apparatus are always provided at known, predetermined starting angles relative to each other and to base 33. An example of a home position is shown in Figure 4.
  • Figure 4 is a perspective view of probe apparatus 12 where the probe apparatus 12 is in a home position of the present invention.
  • Stylus 22 has been placed into an aperture 122 on a stop 124, where stop 124 is coupled to member 34, as shown in greater detail with respect to Figure 4a.
  • Stop 124 prevents joint member 28 from rotating past a certain point about axis A4.
  • linkage 32, linkage 30, and stylus 22 are positioned at known "starting angles.” That is, it is assumed that the stylus has been placed in aperture 122 and that the linkage assembly is in this home position when the probe apparatus is powered up.
  • Each joint member 24, 26, and 28 is at a particular starting position having a known starting angle.
  • the home position of Figure 4 is specifically arranged so that stylus 22 can fit in aperture 122 only when the home position shown in Figure 4 is assumed by the linkage assembly 23, i.e. only one physical configuration of the linkage assembly is possible when stylus 22 is placed in aperture 122.
  • linkage 24 for example, is rotated 180 degrees about axis A2
  • stylus 22 cannot fit into aperture 22. This prevents undesired configurations of the linkage assembly that provide different angles to the joints of the probe apparatus than the assumed starting angles.
  • stylus 22 is placed in an aperture of member 34 which is closest to and one joint removed from base 33.
  • sensor 54e is not included in the home position and does not have to be assigned an assumed starting angle. With less joint angles assumed, the less error that is introduced into the zeroing process.
  • linkage assembly 23 may be rotated about axis A5 without affecting the home position of the probe apparatus 12.
  • Member 34 is not at a known starting angle; however, it is not necessary to know the starting angle for member 34 relative to base 33, since the angle with respect to support surface 37 or other areas external to probe apparatus 12 is not required to zero the sensors. Member 34 thus may conveniently be positioned at any angle relative to base 33, and that angle is considered the zero angle.
  • probe apparatus 12 is powered up.
  • the user can activate a power switch located at base 33 of probe apparatus 12.
  • Normal calibration parameters for the probe linkage lengths, etc., as described with reference to Figure 5, can also be loaded upon power-up.
  • interface 16 or host computer 18 reads calibrated starting angles from a memory or storage device of probe apparatus 12, such as EPROM 90 and assigns the calibrated starting angles to the current positions of the joints.
  • the calibrated starting angles are fine-tuned starting angles which compensate for slight manufacturing deviations in the linkages and joints of the probe apparatus.
  • a probe apparatus may be positioned generally at the desired angles, but may be positioned a few degrees or fractions of a degree from the desired starting angles (due to, for example, manufacturing variation).
  • calibrated starting angles of a probe arm are stored in a memory device of each probe arm. These starting angles are slightly different for each manufactured probe apparatus 12.
  • a starting angle for each of the joints of the provided five degrees of freedom is stored, except for member 34 (since the angle for sensor 54e is not known).
  • only n-1 starting angles need be stored. This is because the final (nth) starting angle can be derived by geometrical techniques from the other known starting angles. Such geometrical techniques are well known to those skilled in the art.
  • the microprocessor 86 preferably assigns the starting angles to the current sensor positions of the joints by setting angle values to known values. For example, in the preferred embodiment, quadrature chips are used to read angle values from the sensors. The microprocessor can clear the counts in the quadrature chips or set the initial counts to predefined calibrated starting angle counts (where the "counts" can be, for example, counts of notches within optical encoder sensors that can be converted to conventional angle values). The zeroing process is then complete.
  • Figure 3b is a flow diagram illustrating a second, alternate zeroing process 104' to the process 104 described above.
  • process 104' there is no home position provided.
  • a reference mark or signal for each sensor 54 is used to determine where the reference zero angles are located on the joints of probe apparatus 12.
  • This embodiment is most appropriate for sensors such as rotary optical encoders, in which a wheel having notches is rotated as the shaft of the encoder is rotated. An emitter of a beam of electromagnetic energy emits the beam through the notches in the wheel and a detector thus detects when notches rotate by to read the change in angle of the sensor shaft.
  • Such encoders, and similar types of sensors are well known to those skilled in the art.
  • This second embodiment of a zeroing process uses the notches or similar detected marks of sensors like the optical encoder.
  • An index mark is placed at a predetermined position in the sensing range of each sensor at each joint of probe apparatus 12.
  • a wider index notch can be placed on the wheel inside the encoder.
  • the sensor can determine when the wider notch is detected, since it differs from all the other notches.
  • interface 16 knows where in the range of a sensor that the index mark is located.
  • the starting angle of the joint has been determined, and an assumed starting angle value assigned to that position of the joint.
  • the process 104' begins at 124, and, in step 126, the probe apparatus is powered up.
  • the user moves the stylus 22 of probe apparatus 12 between two predetermined locations within the working volume with respect to the base 33, and interface 16 reads the sensors as the user moves the stylus.
  • the two predetermined locations are designed to allow a natural, fluid motion of the stylus 22 that assures that every index mark of every sensor on the probe apparatus is detected by each sensor and output to interface 16.
  • the two locations can be a point on the base 33 of probe apparatus and a point straight out from the base toward the edge of the working volume. The points do not have to be precise, since the index marks should be designed to be detected by the sensors well within the range of motion provided by the user. This allows a simple, easy motion to zero all the sensors of the probe apparatus. The user can easily move the stylus in a fluid and natural motion without having to separately move each individual joint.
  • step 130 stored calibrated starting angles are read from a memory device of the probe apparatus (or a different coupled memory device) and assigned to the detected index mark positions of the joints. Calibrated starting angles are similar to those described with respect to step 120 of Figure 3a, and provide additional accuracy to the zeroing procedure. The calibrated starting angles have been compensated for slight physical differences of a particular sensor. Each index mark position of each joint is assigned the corresponding starting angle. The process is then complete as indicated at 132.
  • FIG 5 is a flow diagram illustrating step 106 of Figure 2, in which the probe apparatus is calibrated, if necessary.
  • This calibration process is typically accomplished for each individual probe apparatus by a manufacturer before the probe apparatus can be obtained by an end-user.
  • the end-user might also desire to perform the calibration process in the event error is introduced into the probe apparatus.
  • Calibration allows variations in the manufactured parts of probe apparatus 12 to be accounted for and any error associated with the variations substantially removed. Variations including the lengths of linkages, angular offsets between linkages (twists), and linear offsets between axes can be compensated for by storing calibration parameters for each of the joints and linkages of the probe apparatus. For example, the calibration process described herein can more than double the accuracy of the probe apparatus. The calibration process of the present invention utilizes relative errors at any desired probe location, rather than the more tedious and expensive prior art method of calibrating using absolute errors at two known probe locations.
  • step 139 previous calibration parameters calculated from the last calibration and stored in memory are loaded. If this is the first time that the probe apparatus is being calibrated, then nominal calibration parameters are loaded which, for example, assume ideal dimensions for the probe apparatus.
  • the calibration parameters are loaded from EPROM 90 of interface 16. Since a given location in the EPROM can only be written to once (burned in) and never erased, the calibration parameters are preferably organized such that a set of parameters is stored only in a specific section of the EPROM. For example, the more recently the calibration parameters were calculated, the higher is the address of EPROM 90 where the set of parameters is stored. Thus, in step 139, the latest, most recent previous calibration parameters can be retrieved from the EPROM. Alternatively, other types of memory, such as battery backed RAM or other types of ROM, can be used to store the calibration parameters; or, host computer 18 can store the calibration parameters.
  • step 140 stylus tip 43 is placed by the user, manufacturer, etc. at a freely-chosen position within the work volume of the stylus. For example, a shallow divot on a surface, such as support surface 37, can be provided for this purpose.
  • the sensors of the probe apparatus are read and the current position and orientation of the stylus is recorded.
  • the user manipulates the stylus so that the position of the stylus remains fixed and the orientation of the stylus is varied, i.e., the x, y, and z coordinates of the stylus tip do not change, while the stylus 22 is moved to different orientations.
  • the sensors are read at one or more sampled orientations of the stylus.
  • a sampled orientation includes angle values from all sensors on the probe apparatus at a particular stylus orientation.
  • the position (x, y, z coordinates) of the stylus should be the same at each sampled orientation. For example, as the user is moving the stylus in the cone-shaped motion, at least two configurations can be sampled by interface 16 or host computer 18.
  • step 148 one or more spatial coordinates of the stylus tip 43 are determined for each sampled orientation of the stylus.
  • the angle values at each orientation that were read in step 146 are used with well-known kinematic equations to derive x, y, and z position coordinate values for each sampled orientation (as is normally accomplished when the position and orientation of stylus 22 are determined during digitizing operation).
  • the previous (or nominal) calibration parameters are used in these kinematic equations.
  • error values between the x, y, and z coordinates of the sampled orientations are determined and stored, preferably in the memory device of the probe apparatus.
  • the probe apparatus were perfectly calibrated, there would be no difference between the x, y, and z coordinates of the different sampled orientations, since the stylus tip was fixed at one position.
  • small variations in the probe apparatus cause errors to be introduced when the joints are rotated, as when the orientation of the stylus is varied.
  • the kinematic equations will typically produce x, y, and z coordinates that are slightly different for each sampled variation.
  • the differences between these derived coordinates are stored. For example, if three sampled orientations are read, the x coordinates are compared between each of the sampled orientations.
  • the difference between the first and second sampled orientations are stored as one error value, the different between the first and third orientations are stored as a different error value, etc.
  • step 152 the process checks if the above steps should be repeated when the stylus is moved to a new, freely-chosen (x, y, z) position that is different from the position chosen previously. This depends on the desired accuracy of the calibration; data collected at more than one stylus position can be combined to achieve more accurate results. If a repeat process is desired, the process returns to step 140, where the stylus tip is placed at a new position and data is collected at that position. If no repeat process is desired, then step 154 is performed, in which the previous or nominal calibration parameters are adjusted using all recorded error values, and the adjusted calibration parameters are stored in a storage or memory device. For example, an optimization procedure can be implemented which adjusts the calibration parameters until the error values are at a minimum or under a predetermined threshold.
  • the calibrations parameters Once the calibrations parameters have been adjusted to the desired amount, they are stored. These calibration parameters can thus be used every time the probe apparatus is powered up and used. In the preferred embodiment, the calibration parameters are burned into a particular section of EPROM 90, as described above. Whenever the probe apparatus is powered up, as in the zeroing process of Figure 3a or 3b, only the latest, most recently determined calibration parameters are loaded. Using such a method, the EPROM 90 can store a number of sets of calibration parameters before its storage space is exhausted. The process is then complete at 156.
  • the calibration process of the present invention allows a user to pick an arbitrary or random point in the work volume of the probe apparatus and vary the orientation of the stylus at that point.
  • the stylus preferably has at least five degrees of freedom to allow the stylus orientation to be varied. This procedure provides highly accurate calibration values and avoids the expensive, tedious methods of the prior art in which the stylus must be placed at several locations whose locations are precisely known.
  • Figure 6 is a flow diagram illustrating step 108 of Figure 2, in which the position and orientation of the rotary table 14 and selection template 80 are determined with respect to the origin at base 33 so that these items may be used during a digitization process.
  • the determination of the coordinate information for the rotary table is described first, although the template and table initializations can be performed in any desired order. In addition, depending on the accuracy desired, either of steps 162 and 164 can be omitted from the present process in alternate embodiments.
  • Steps 162-165 are provided to locate rotary table 14 relative to the probe apparatus 12.
  • the process begins at 160, and in step 162, the position of rotary table 14 is determined and stored on a storage or memory device, such as a device of host computer 18. More specifically, the position of the center of rotary table is determined using stylus 22 of probe apparatus 12.
  • a sleeve, aperture, or other receptacle is positioned in the middle of the rotary table into which the stylus can be inserted to provide a precise position of the rotary table 14 with respect to the base of linkage assembly 23.
  • rotating surface 60 of rotary table 14 includes a recessed sleeve or divot 170 positioned in the center of rotating surface 60 and able to receive tip 43 of stylus 22.
  • the probe controller can read and record the angles of sensors 54 of probe apparatus 12.
  • next step 164 of Figure 6 multiple configurations of the stylus are read and recorded as the stylus is rotated with the table.
  • a shallow divot 172 or similar receptacle is preferably placed near the periphery of rotary table 14.
  • the user places tip 43 of stylus 22 in the divot 172 and rotates the table while keeping stylus 22 placed in the divot.
  • interface 16 reads and stores sensor angle values at multiple stylus positions from both sensors 54 of probe apparatus 12 and sensor 174 of the rotary table (described below).
  • sensor angle values at multiple stylus positions from both sensors 54 of probe apparatus 12 and sensor 174 of the rotary table (described below).
  • at least three different sets of angles are read and stored as coordinates as the stylus is rotated.
  • the user can move the stylus to multiple points on the periphery of the rotating surface 60 by picking up the stylus and moving it to the new points, rather than rotating surface 60 with the stylus.
  • step 165 the position of the center of the rotary table 14 with respect to base 33 and the orientation of the plane of the surface of turntable 60 with respect to the orientation of the plane of arm base 33 are preferably determined.
  • the difference in orientations of the turntable 60 and base 33 can be assumed to be zero if both table 14 and probe apparatus 12 rest on a flat surface.
  • These features of the rotary table are derived from the angle values read in steps 162 and 164 using geometrical techniques, as is well known to those skilled in the art.
  • the center of the table can also be determined just using the data collected in step 164; however, the data from step 162 provides a more accurate determination. Thus, the location and orientation of the rotary table with respect to the base of the probe apparatus is determined.
  • steps 162-164 can be omitted by coupling the rotary table 14 to base 33 of probe apparatus 12.
  • a connecting member can be coupled to base 33 at one end and to table base 62 at its other end.
  • the rotary table would thus be at a fixed, known position and orientation with reference to the probe apparatus 12, and the locating process of steps 162-166 would not be necessary.
  • calibration factors can also be determined and stored for the rotary table, similarly to the starting angles for the home position of the probe apparatus as described in Figure 3a, to compensate for variations in dimensions in individual probe/table apparatuses.
  • rotary table 14 includes a sensor 174 which is preferably positioned at the center of the table 14 and is coupled to base 62.
  • the sensor shaft can be coupled to rotating surface 60.
  • Sensor 174 can be an optical encoder as described above or a different type of sensor, such as a potentiometer, resolver, hall effect sensor, etc. Alternatively, sensor 174 can be positioned near the edge of rotating surface 60.
  • Sensor 174 is operative to sense the rotation of rotating surface 60. For example, if the user rotates the surface 60 by ⁇ degrees in the direction shown by arrow 176 so that object 20 is at a new position (and orientation), sensor 170 detects this amount of rotation and transmits the information to interface 16 and/or host computer 18.
  • a coordinate transformation can be applied to the angle data using the known ⁇ value to derive the new position and orientation of the object.
  • Such a coordinate transformation is well known to those skilled in the art. This allows the user to rotate the object to gain easier access to different surfaces on the object and then continue tracing the object with minimal distraction and very little loss in accuracy.
  • the coordinate transformation can be performed by host computer 18 that receives independent data from probe apparatus 12 and rotary table 14. Or, interface 16 can perform the transformation and provide transformed coordinates to host computer 18.
  • Rotary table 14 preferably is coupled to interface electronics 16 which are positioned within the probe apparatus 12. Probe apparatus 12 thus provides signals from the sensors of probe apparatus 12 as well as the sensor 174 of rotary table 14 to a single I/O port of host computer 18. Alternatively, the interface electronics can be housed in a discrete box that is separate from probe apparatus 12 and rotary table 14, as shown in Figure 7. Alternatively, interface electronics 16 can be housed within rotary table 14. In yet a different embodiment, rotary table 14 can include sensor interface circuitry only for rotary table 14, and can provide angle information to interface electronics 16.
  • rotary table can be provided with its own interface electronics that are independently routed to a second I/O port of host computer 18 that is different from the I/O port receiving information from probe apparatus 12.
  • Template 80 includes selection areas 82, which can include icons, shapes, letters, numbers, words, etc.
  • the user may position tip 43 of stylus 22 within, for example, icon 180, to activate a function of software that host computer 18 is running or a function of probe apparatus 12 or even rotary table 14.
  • template 80 does not require any separate sensing apparatus such as a computer tablet or the like, since the probe apparatus 12 can be used to uniquely locate selection areas 82 and provide commands based on selections of stylus 22.
  • the user can position the stylus at a top or bottom boundary 182 and a left or right boundary 184.
  • the host computer would thus be informed of the precise location of a planar, rectilinear template 80 within the working volume of probe apparatus 12.
  • the stylus can be positioned at three reference points, for example, that are located at the comers of the template.
  • the host computer can be provided with predetermined functions that are to be implemented if the stylus is within a specific selection area 82 referenced as a position offset from an edge of template 80.
  • autotrigger mode can be activated using the template shown in Figure 8 if stylus tip 43 is first found to be within the template boundaries 182 and 184, and is also found to have an offset within ⁇ x, ⁇ y from the left and top edges (i.e., within selection area 82).
  • Selection area 82 examples of Figure 8 include commands to manipulate mesh representation 78, such as "end mesh”, “end line”, “erase mesh”, etc. Many of these commands are described in greater detail with reference to Figure 11. Other methods can also be used to position template 80 with reference to probe apparatus 12 and to determine functions selected within the template 80. The process of Figure 6 is then complete at 168.
  • Figure 9 is a detailed view of object 20 that is to be traced to develop a mesh representation.
  • Object 20 has a surface 190 shown with surface lines 192 displayed thereon.
  • the user can contact the surface 190 of object 20 with stylus 22 and trace the stylus along these surface lines 192, as shown by arrow 191.
  • surface lines 192 need not be actually drawn on object 20; the user simply has to trace stylus 22 generally along the surface 190 following paths similar to lines 192.
  • the user can draw or etch surface lines 192 on surface 190 to help to guide stylus 22 on the object.
  • data points are sampled along the surface lines by the sensors 54 of probe apparatus 12, as described below.
  • the data points are then sent from the probe apparatus 12 to host computer 18.
  • the data is sent either sent as raw angle data from interface 16, which the host computer converts to coordinates (x, y, z and roll, pitch, yaw); or, the angle data is converted to coordinate values by interface 16 and then sent to computer system 18.
  • FIG 10 is an illustration of mesh representation 78 (also referred to as a "mesh") that is developed by host computer 18 using the method of the present invention after a user has traced surface lines 192 of object 20 shown in Figure 9.
  • Mesh representation 78 includes contour lines 194 which are computer-generated lines that generally follow corresponding surface lines 192 on object 20 which the user traced.
  • Contour lines 194 each include a number of points 196 which were provided as angle values or coordinates to host computer 18 from probe apparatus 12. Each point 196 describes a corresponding surface point on surface 190 of object 20.
  • point or “data point” refers to the data, such as angle values or coordinates, that describe the current position and orientation of the stylus 22, while “surface point” refers to the corresponding portion on the surface of the object which is pointed to by the stylus 22.
  • Each point after being converted from angle data to coordinate data, includes x, y, and z position data as well as roll, pitch and yaw orientation data.
  • Computer system 18 receives points 196 and connects the points to form contour lines.
  • Mesh lines 198 are also added to connect the points 196 of one contour line to the points 196 of an adjacent contour line.
  • the creation of mesh lines for the present invention is described in greater detail in the process of Figure 11.
  • Mesh lines 198 and contour lines 194 define triangles 199, as described below.
  • Mesh representation 78 can be manipulated by host computer system 18 in many ways, as is well known by those skilled in the art. For example, mesh representation can be rendered and displayed having color and surface shading to create a realistic-looking 3-D representation; or mesh representation 78 can be rotated, copied, or edited as the user desires using functions of computer system 18.
  • FIG 11 is a flow diagram illustrating step 110 of Figure 2, in which a mesh representation of object 20 is developed by computer system 18 using a preferred method of the present invention.
  • the process begins at 200.
  • step 202 a start new mesh command is received by host computer system 18 from the user. This command can be entered by the user using standard interface devices or using selection template 80.
  • step 204 the process checks if the foot pedal 71 is down, i.e. has been activated by the user. In other embodiments, other activation controls can be checked, such as a button on stylus 22, etc. If the foot pedal is not activated, then the process continues to wait at step 204 for the user to activate the foot pedal.
  • step 206 is implemented, in which the current point pointed to by tip 43 of stylus 22 is input to the host computer system 18 and is added to the current contour line. If this is the first point entered for a line, then that point begins a new contour line.
  • next step 208 a triangle is created for the current point between the current contour line and the last contour line using the orientation of stylus 22 or other used probe device.
  • the created triangle is also preferably displayed in this step, although the triangle need not be displayed in other embodiments.
  • This step is described in greater detail with reference to Figure 12.
  • One of the advantages of the method of the present invention is that points and triangles are incrementally added to mesh representation 78 and displayed to the user as the user adds each new point when tracing. The user can thus view display screen 76 and quickly determine if a mesh is being created properly during the tracing process, i.e., the user does not have to wait until the entire object is traced before viewing the resulting mesh representation.
  • Another advantage of the present invention is that the orientation of the stylus (or other probe) is used to help create triangles in the mesh. This is described in greater detail below.
  • step 210 the process checks if auto-trigger mode has been selected by the user.
  • Auto-trigger mode allows points to be input to computer system 18 from probe apparatus 12 automatically while the user traces surface lines 192. If auto-trigger mode has been selected by the user (either before the current contour line was begun or during the input of the current line), then step 212 is implemented, in which the process checks whether foot pedal 71 is "up", i.e., deactivated.
  • foot pedal 71 is "up", i.e., deactivated.
  • points are automatically input to host computer system 18 from probe apparatus 12 as long as the user continues to activate foot pedal 71 (and the stylus moves a minimum distance, explained below). Once the user releases (deactivates) the foot pedal, points will no longer be automatically entered.
  • step 222 If the foot pedal is up, then the process continues to step 222, detailed below. If the foot pedal is still down in step 212, the process continues to step 214, where the process checks if the stylus 22 has been traced for the minimum distance.
  • a point is automatically input to computer system 18 when the stylus 22 has been moved a minimum predetermined distance by the user along a surface line. For example, the minimum distance can be set to 0.2 inches. While auto-trigger mode has been selected and the foot pedal is being activated, a point will be input to computer system 18 every 0.2 inches the user moves stylus 22. In alternate embodiments, other criteria can be used to determined when points are entered. For example, a minimum length of time can be specified, such as 2 seconds. Thus, while in auto-trigger mode and foot pedal 71 is being activated, a new point is automatically input to host computer 18 every 2 seconds, regardless of the current stylus position.
  • step 214 If the stylus 22 has not been moved the minimum distance in step 214, then the process returns to step 212 to check whether the foot pedal is still being activated. In actuality, steps 212 and 214 (and 210) can be checked simultaneously by host computer system 18 as "events" which may occur at any time, as is well known to those skilled in the art. A foot pedal deactivation in step 212 takes precedence over the other checks. Once the probe has been moved the minimum distance in step 214, the process returns to step 206 to add the current point to the current line at the current position of stylus tip 43.
  • step 216 If auto-trigger mode has not been selected by the user as checked in step 210, then the process checks in step 216 if an "end mesh" command has been entered.
  • An end mesh command indicates that the user is finished entering data and that either the mesh representation is complete or that the user will continue to input data at a later time. Thus, if an end mesh command has been entered, the process is complete at 217. If an end mesh command has not been entered, then, in step 218, the process checks if an "end line” command has been entered by the user. The end line command indicates that the user has finished the current contour line and will enter a new contour line. If an end line command has been entered, the process continues to step 222, detailed below.
  • step 220 the process checks if the foot pedal is up.
  • a point is entered by activating the foot pedal once and then deactivating it, i.e., pushing down on the foot pedal and releasing it. If the foot pedal has not been released, then a new point cannot be entered, so the process returns to step 216 to check for an end mesh command, end line command, or a foot pedal deactivation. Similar to steps 210, 212 and 214 described above, steps 216, 218 and 220 can preferably be checked simultaneously. Once the foot pedal has been released in step 220, the process returns to step 204 to check for the foot pedal to be activated again to enter a new data point.
  • step 222 is implemented.
  • the mesh representation 78 is closed. Depending on what points have been entered on the current contour line, this may cause additional triangles to be created in the mesh. Step 222 is described in greater detail with reference to Figure 17.
  • step 224 the process checks if an end mesh command has been received. This is similar to step 216, described above. If an end mesh command is received, then the process is complete at 217. If no end mesh command is received, then it is assumed that the user wishes to enter another contour line, and, in step 226, the last line is set equal to the current line, and a new current line is ready to be received. The process then returns to step 204 to wait for the foot pedal to be activated.
  • FIG 12 is a flow diagram illustrating step 208 of Figure 11, in which a triangle is created and preferably displayed for the current point between the current line and the last line using the orientation of the probe.
  • a mesh representation 230 as shown in Figure 13 and additional figures will be referenced.
  • Mesh representation 230 includes four contour lines: line A-F which includes points A, B, C, D, E, and F; line G-J which includes points G, H, I, and J; line K-P which includes points K, L, M, N, O, and P; and line Q-S which includes points Q, R, and S.
  • Mesh lines are shown between the points of each adjacent contour line.
  • the method of the present invention allows the contour lines to be input in any direction, so the lines can be entered, for example, in the order of A-B-C-D-E-F, or in the order of F-E-D-C-B-A.
  • the points of a mesh representation are located relative to each other by host computer 18 by examining the (x, y, z) portion of each point. The roll, pitch, yaw portion of each point is used to find the normal vectors, described below.
  • step 236 the process checks if the current contour line is the first line of the mesh representation. If so, then two possible triangles cannot yet be created and one of the triangles selected (as detailed below), so the process is complete at 235. If the current line is not the first line of the mesh in step 236, then, in step 238, the process checks if the current point is the first point of the current line. Since, in the described method, a triangle cannot be created until the second or later point of the current line is entered, the process is complete at 235 if the current point is the first point. If the current point is not the first point, then, in step 240, the process checks if the current point is the second point of the current line.
  • step 242 in which the first point of the last line is decided. Since the last line has two end points, one of those end points is chosen as the first point of the last line. This determines the "meshing direction," i.e., the order of points in the last line which are to be connected with the current line. In the preferred embodiment, the closest point on the last line to the current point is chosen as the first point of the last line. It thus is of no significance in which order the user inputted the points on the last line, since the closest point is chosen. In alternate embodiments, other criteria can determine which point of the last line is chosen as the first point.
  • the process can also check if the points of the last line, when examined in the decided meshing direction starting from the chosen first point, follow a path that is approximately in the same direction the points of the current line. If the directions are not the same, the opposite end point of the last line should be chosen as the first point of the last line.
  • step 244 a variable INDEX is set equal to the first point of the last line. INDEX holds the value(s) (i.e. coordinates or angle values) of a particular point in a contour line.
  • step 246 is performed, in which one or more triangles are added between the current line and the last line for the current point. This is described in greater detail with reference to Figure 14.
  • step A-F is first entered and is then considered the last line.
  • Point G is the current point.
  • the process of Figure 12 ends after step 238 since point G is the first point of the line.
  • point H is input and is considered the current point. Since H is the second point of the current line, step 242 decides that point A will be the first point of the last line, since point A is closer to point H than to point F.
  • Triangles are then added between the last line and the current line, as detailed below.
  • Figure 14 is a flow diagram illustrating step 246 of Figure 12, in which triangles are added between current line and the last line for the current point.
  • the process begins at 250.
  • step 252 the process checks if INDEX is the last point of the last line. If this condition is true, then no more triangles need be added between the current line and last line, and the process is complete at 258. If INDEX is not the last point of the last line, then, in step 254, the process checks if the distance between INDEX and the current point is less than the distance between INDEX+1 and the last point of the current line ("last point"). This step checks the hypotenuses of two possible triangles that can be added using the current point, as explained below.
  • Figure 15a is a diagrammatic illustration providing a portion of mesh 230 of Figure 13 as an example.
  • Contour line A-F has been previously entered by the user and is designated the last line.
  • Point G is added as the beginning of a new contour line, and starts the current line.
  • Point H is then added, and point A is chosen as the first point of the last line A-F.
  • two possible triangles can be created between the current line and the last line: triangle ABG and triangle AHG.
  • INDEX has been set equal to point A
  • INDEX+1 is the next point after INDEX, i.e., point B
  • the last point is point G.
  • step 254 of Figure 14 the process checks if the distance between point A (INDEX) and point H (the current point) is less than the distance between point B (INDEX+1) and point G (last point), i.e., if hypotenuse AH is less than hypotenuse BG.
  • step 256 is implemented, in which the triangle at (INDEX, current point, last point) is added to the mesh representation.
  • the points of the triangle are added to a list of triangles for the mesh.
  • Step 256 also adds a normal vector for the added triangle to the list of triangles. The normal vector is described in greater detail below. For example, as shown in Figure 15a, this triangle corresponds to triangle AHG. In the example shown, however, this triangle would not be added, since hypotenuse AH is not less than hypotenuse BG.
  • step 260 the triangle at (INDEX, INDEX + 1, last point) is added to the mesh representation.
  • This step is similar to step 256, i.e., the triangle and normal vector are added to the triangle list. As shown in Figure 15a, this triangle corresponds to triangle ABG. In the example of Figure 15a, this triangle would be added, the results of which are shown in Figure 15b.
  • INDEX is incremented to the next point on the last line in step 262. For example, INDEX is set equal to point B once triangle ABG is added, and INDEX + 1 thus becomes point C.
  • step 262 the process returns to step 254 to check the hypotenuses for the new INDEX points.
  • the process is not complete after step 262 since, if step 254 is false, it indicates that more than one triangle can be added for the current point. Thus, additional triangles are added by checking the conditions of step 254 with the new INDEX point.
  • Step 254 checks if hypotenuse BH has a smaller length than hypotenuse CG.
  • hypotenuse CG has a smaller length, so triangle BCG is added to the mesh representation, as shown in Figure 15c.
  • INDEX is again incremented, and thus is now point C.
  • step 254 the process checks if hypotenuse CH has a smaller length than hypotenuse DG.
  • Hypotenuse CH is smaller, so step 256 adds triangle CHG, as shown in Figure 15d. The process is then complete at 258, so that a new point is eventually input by the user in step 206 of Figure 11.
  • Process 246 is then again implemented for new point I as the current point, as shown in Figure 15d.
  • the process checks if hypotenuse CI has less length than hypotenuse DH. DH has less length, so the triangle CDH is added in step 260 and INDEX is incremented in step 262. As shown in Figure 15e, triangles are added until the last point J of the current line is input. A new contour line is then begun with the input of points K and L, and the last line is set to line G-J. Triangles continue to be added to mesh representation 230 in a similar fashion.
  • a triangle includes one point from the current contour line, one point from the last contour line, and a third point that is either from the current line or the last line, depending on the distances between the examined hypotenuses.
  • step 254 can check for different conditions to determine which triangle to add to the mesh representation. For example, the area of triangle (INDEX, current point, last point) can be compared to the area of triangle (INDEX, INDEX + 1, last point). The triangle with the smallest area can be added to the mesh. Alternatively, the perimeter distance of the two possible triangles can be compared, where the triangle with the smaller perimeter distance is added to the mesh representation. Other conditions can be checked in other embodiments.
  • a normal vector for that triangle is also determined.
  • Figure 16 shows stylus 22 tracing a surface line 192 on object 20.
  • a portion of mesh representation 78 that is being developed in host computer 18 is also shown superimposed on the corresponding surface portion of object 20.
  • Triangles 199 are added to the mesh representation 78 as stylus 22 moves.
  • a normal vector 270 is also determined for each added triangle 199.
  • the normal vector is used by rendering processes and other processes that manipulate a mesh representation to determine which side of a triangle 199 (or other polygon) is facing "outward", i.e. which side of the triangle is the exterior surface of the 3-D object represented by the mesh representation.
  • the normal vector 270 points outward to show which side of a triangle is the exterior surface.
  • processes can use the normal vector information to provide shadows and shading on a rendered object from a virtual light source.
  • the normal vector 270 for a triangle is quickly and easily determined.
  • the x, y and z coordinates of the points of a triangle 199 define the position of the triangle in space, but do not define the orientation of the triangle.
  • the position of the normal vector is known, but not the orientation of the vector.
  • the orientation of the stylus is known and recorded in the points as well as the position.
  • the orientation of a triangle can thus be determined from the orientation coordinates of roll, pitch, and yaw included in each point.
  • the orientation of a normal vector is defined as opposite to the orientation of the stylus at the time when the stylus is adding the points of the triangle.
  • the normal vector can be defined as the same orientation as the stylus.
  • the orientation coordinates of 1-3 points of triangle 199 can be examined to determine the normal vector; since all of these points were traced by the user from the same side of the object (the exterior side), any of the points can be used to determine this direction.
  • FIG 17 is a flow diagram illustrating step 222 of Figure 11, in which a close mesh process is implemented.
  • the process begins at 274.
  • step 276 the process checks if INDEX is the last point of the last line. If so, then the process is complete at 278. If INDEX is not the last point of the last line, then, in step 280, a triangle (INDEX, INDEX + 1, current point) is added to the mesh representation and the triangle list with a normal vector, similar to steps 256 and 260 described with reference to Figure 14.
  • INDEX is incremented to the next point of the last line, and the process returns to step 276 to check if INDEX is the last point of the last line.
  • An example of this process is described with reference to Figures 18a and 18b.
  • Figure 18a is a diagrammatic illustration showing a portion of a mesh representation 284 which makes use of the close mesh process of Figure 17.
  • Line A-F is the last line
  • line G-I is the current line
  • point C is INDEX.
  • step 280 of Figure 17 adds the triangle at (INDEX, INDEX + 1, current point), which in this example is triangle CDI.
  • INDEX is then incremented in step 282.
  • triangle DEI is added, and in the final iteration, triangle EFI is added.
  • INDEX point F
  • the final mesh representation 284 is shown in Figure 18b.
  • FIG 19 is a flow diagram illustrating a preferred assembly process 300 for assembling the precision linkages and joints of probe apparatus 12 or a similar device having such linkages and joints.
  • the process begins at 302.
  • joint fixtures are provided at a precise distance apart from each other and within a precise angle of each other. Such joint fixtures are adapted to secure a joint in place, and are well known to those skilled in the art.
  • the precise distance is the desired length of a linkage in the linkage assembly.
  • the precise angle is the desired angle or offset from a linear position between the joints.
  • a joint-linkage assembly is connected to the fixtures such that the joints in the assembly are positioned the precise distance and angle apart.
  • a joint linkage assembly can be connected that includes joint members 24, 26, and 28 and linkages 30 and 32 as shown in Figure 1.
  • the linkages are preferably loosely connected to the joints so that the joint members can be adjusted to fit into the joint fixtures.
  • the linkages are bonded to the joint members at the precise distance and angle.
  • the bonding process provides negligible residual stress, such that when the joint members are removed from the joint fixtures, they will not deflect or flex.
  • Figure 20 is a schematic diagram showing joint fixtures 312a and 312b.
  • the joint fixtures are provided a precise distance d apart from one another, where d is a desired length for a linkage in the joint-linkage assembly.
  • the fixtures are also provided a precise angle ⁇ offset from each other, if such an offset is desired.
  • the joint fixtures can be coupled together by member 313 to provide a precise position of the fixtures relative to each other.
  • Joint-linkage assembly 314 is placed in the fixtures such that each joint member 316a and 316b is in a fixture and secured in place. After the joint members 316 have been secured, linkage 318 is bonded in place.
  • the described thus provides a simple, inexpensive method for assembling joints and linkages with a high degree of accuracy.
  • Linkage 318 which is assembled by process 300 and linkages 30 and 32 of the probe apparatus of Figure 1 are made of graphite in the preferred embodiment of the present invention.
  • Graphite allows linkages to be have a lighter weight, stiffer structure, and be far more temperature stable than linkages of the prior art, which are typically made from aluminum.
  • linkages made of graphite By using linkages made of graphite, a lightweight, easy to use and precise instrument that retains its precision over time is the result.
  • graphite works well in the bonding assembly process described in Figure 19, since graphite linkages are not as well adapted for other fastening processes. For example, graphite is not well suited to be screwed into joint members or similarly fastened with rotary or linear tension.
  • Figure 21a and 21b illustrate a front view and a side view, respectively, of a multistage stop joint 320 for the present invention.
  • the multistage stop of the present invention allows a linkage or probe of probe apparatus 12, such as stylus 22, to be moved greater than 360 degrees about an axis provided by the multistage stop joint. This allows a greater freedom of movement for the user when tracing object 20 with the probe apparatus.
  • Joint 320 includes a first member 322 of joint 320 and a second member 324 of joint 320.
  • first member 322 is coupled to stylus 22; first member can be coupled to other linkages 30, 32, or 34 of probe apparatus 12 as well.
  • a user can rotate stylus 22 about an axis A1 by rotating first member 322 about axis A1.
  • Second member 324 typically stays fixed in place on linkage assembly 23.
  • Figure 21b shows second member 324 coupled to linkage 30.
  • first member 322 can remain fixed while second member 324 is rotated about axis A1.
  • First member 322 includes a first stop 326 and second member includes a second stop 328.
  • a sensor 336 can be positioned in second member 324 which is coupled to first member 322 via shaft 337.
  • a middle member 330 is preferably coupled to first member 322.
  • middle member 330 can be coupled to second member 324.
  • Middle member 326 rotates about axis A1 independently of first member 322 and second member 324 and includes a third stop 332.
  • first stop 326 When first member 322 is rotated about axis A1 in, for example, the counterclockwise direction indicated by arrow 334, first stop 326 eventually impacts third stop 332. If third stop 322 has no obstructions in its path, the middle member 330 is rotated in conjunction first member 322 in the direction of arrow 334. Once third stop impacts second stop 328, however, no further rotation of first member 322 and middle member 330 is allowed, since second member 324 is fixed in place. This configuration of middle member impacting second stop 328 is shown in Figure 21a.
  • First member 322 can be rotated in the direction opposite to arrow 334 (clockwise) from the position shown in Figure 21a. First member 322 is allowed to rotate clockwise almost 360 degrees before impacting third guide 322. Both first member 322 and middle member 330 are then rotated in conjunction in the clockwise direction. Again, the middle member 330 is allowed almost 360 degrees of rotation before impacting second guide 324, which obstructs any further rotation.
  • first member 322 is allowed almost 720 degrees of rotation (i.e., two full rotations) in the direction opposite to arrow 334 from the position shown in Figure 21 a until second stop is impacted.
  • the multistage stop joint 320 thus allows a greater range of motion to stylus 22 and any other linkages that are coupled to similar joints.
  • the stylus 22 is still limited in its movement by stops, however, which is important in that a wire bundle that is routed through joint 320 does not become overly stressed or twisted (which would occur if joint 320 had no stops at all).
  • the probe apparatus 12 can be used to control objects, such as a virtual stylus, in a virtual reality simulation.

Abstract

A method and apparatus for measuring three-dimensional (3-D) coordinates. A 3-D object can be digitized into a mesh representation manipulable by a computer system (18) by tracing a stylus of a probe apparatus (22) over surfaces of the object. The probe apparatus includes an arm having a series of linkages and joints. The arm can be assembled by placing the ejoints of the arm in joint fixtures a desired distance and angle apart and bonding the joints to a linkage. The probe apparatus is calibrated by placing the etip of the stylus (22) at an arbitrary point in a work volume and varying the stylus orientation to find error values and determine calibration parameters. The sensors of the probe apparatus are zeroed by placing the probe apparatus in the only posible home position and assigning assumed starting angle to the sensors.

Description

    Technical Field
  • The present invention relates generally to input devices for interfacing with computer systems, and more particularly to computer input devices that provide spatial information about a three-dimensional object to computer systems which provide a representation of the object.
  • Background Art
  • Three-dimensional (3-D) digitization is the process of sensing a three-dimensional object and creating a three-dimensional representation of the object which can be manipulated as digital data by a computer system. Detailed and accurate three-dimensional models can be created and manipulated by computer systems for use by animators, engineers, scientists, designers, architects, and others who have a need for a realistic three-dimensional, manipulable model derived from a real, physical object.
  • Many types of devices are available which can digitize three dimensional objects. A common type of digitizing apparatus utilizes a probe device, such as a stylus or other pointer, to trace over surfaces a three-dimensional object and thereby provide the spatial coordinate data of the object to a host computer system. The host computer system can sample the probe device to receive discrete data points at different spatial coordinates. The points can be joined together and displayed as a "mesh representation", which is a wire-frame type model comprising a set of vertices with interconnecting lines or polygons (typically called a "data set"). A realistic 3-dimensional shaded model can be created by a computer system from the mesh representation of an object.
  • A common type of probe apparatus utilizes mechanical linkages and sensors to determine the position of the stylus or other probe that is tracing the three-dimensional object. The stylus is fixed to one end of a series of mechanical linkages, and the other end of the linkage chain is connected to a base fixed to a stationary surface. Sensors can be included in joints of the linkage chain to sense the relative orientation of linkages, and therefore the stylus, are located with respect to the base. The angle data read by the sensors can be converted into coordinate data by a microprocessor interface or by the host computer system.
  • Problems with prior art 3-D digitizing methods often occur because the user is too constrained when tracing an object that is to be digitized. Typically, the user is required to trace the object along particular surfaces of the object and in particular directions on the surfaces. This can often cause errors in the resulting mesh representation when a surface is traced in the wrong direction or points are not connected properly. In addition, a user often cannot view a resulting mesh representation until the entire object or a large portion of the object has been traced by the digitizing apparatus. This allows further errors to be introduced into the mesh representation and causes more time to be spent correcting mesh representations, since the user cannot immediately determine if a point has been entered inaccurately.
  • Other inaccuracies are introduced when using prior art methods and apparatuses for digitizing 3-D objects. For example, a user may wish to move or rotate an object that has been only partially digitized to gain access to hard-to-reach surfaces on the object. The object can be placed on a rotary table, for example, to assist in easily rotating the object. However, once the object is moved, the host computer system can no longer develop a mesh representation from the old position of the object. In the prior art digitizers, a user must first select three or more points on the object, move the object to the desired new position, and re-select the same three or more points on the object at the new position. The host computer can transform the coordinates, taking into account the new position of the object, and thus continue developing the mesh representation. However, such a procedure typically introduces error into the mesh representation, since it is difficult to accurately re-select the same points at the object's new position. In addition, it is time consuming to perform such a procedure and unduly interrupts the digitizing process.
  • In many prior art digitizing apparatuses, the user is further constrained by the joints of the linkage assembly. Since wires are routed through the joints to carry electrical signals from sensors located therein, the joints typically include stops which limit the motion of a joint to under 360 degrees to prevent twisting and stressing the wires. However, this limited movement can inconvenience the user when tracing an object, especially when a limit to a joint is reached in a particular direction and further movement of the stylus in that direction is required to trace the surface of the object.
  • Further problems exist with the prior art digitizing apparatuses. Since the digitizing apparatuses must accurately sense an object to provide valid coordinate data to the computer system, calibration of the sensors of the apparatuses is of paramount importance to compensate for variations in the mechanical structure of the linkages and joints. In the prior art, calibration is typically accomplished by placing the stylus or other probe device at known locations in space and to record position readings at those known locations. Deviations between the known locations and the measured position readings can be used as error parameters to fine tune calibration parameters. However, such a calibration method requires that known locations be defined and that the stylus be accurately fixed to those known locations. This can require expensive precision fixtures. In addition, this calibration method is a slow and careful one, and can be tedious.
  • In addition, other initialization procedures of the prior art can be awkward or time consuming. Digitizing apparatuses often use less expensive relative sensors which detect a change in the position of a linkage of the digitizing apparatus rather than reading an absolute angle for the position of the linkage. When using such relative sensors, a "zeroing" procedure is often accomplished each time the apparatus is powered up to provide reference starting angles for the relative sensors. For example, in the prior art, zeroing can be accomplished by moving each individual joint to a stop of the joint and starting angles are "zeroed" at those points. However, in digitizing apparatuses having four, five or six degrees of freedom, this procedure can be very time consuming to move each individual joint each time the apparatus is powered up. Other digitizing apparatuses use a "home position" to provide starting angles. The stylus is placed into a receptacle on the base of the apparatus such that the reference starting angles for all the sensors is known when the apparatus is powered up. However, having the receptacle for a home position on the base of the apparatus typically requires a larger base that covers a larger surface area on a support surface such as a tabletop, which can be inconvenient. In addition, the more degrees of freedom on a digitizing apparatus, the more joints that need to be zeroed between the base and the probe. The greater the number joints to be zeroed, the greater the chance for error to be introduced in the zeroing process.
  • Disclosure of the Invention
  • The present invention provides a measuring system for measuring three-dimensional (3-D) coordinates. In the preferred embodiment, the probe apparatus is used to digitize three-dimensional objects into a mesh representation manipulable by a computer system. Various improvements to a probe arm linkage, a calibration method and zeroing method for a probe apparatus, a rotary table for supporting an object to be digitized, a method for developing a mesh representation by a computer system, and a method for assembling a probe arm linkage are described herein.
  • A probe apparatus of the present invention for sensing the position and orientation of a probe, such as a stylus, includes a first joint member coupled to the probe that provides two degrees of freedom to the probe, and a first linkage rotatably coupled to the first joint member. Further, a second joint member is rigidly coupled to the first linkage and provides one degree of freedom to the probe. A second linkage is rigidly coupled to the second joint member, and a third joint member is rotatably coupled to the other end of the second linkage. The third joint member provides two degrees of freedom to the probe. Finally, a support base is coupled to the third joint member for supporting the probe apparatus. Transducers of the probe apparatus provide angular signals for the provided degrees of freedom to describe a position and orientation of the probe. Preferably, the probe apparatus provides 3-D data describing a 3-D object to the computer system. An electronics interface is included within a housing of said support base and provides the angular signals from the sensors to a computer system. The joint members can include a multistage stop joint of the present invention which provides over 360 degrees of rotational movement about an axis. To allow the first joint member to be small and the stylus to be easily manipulable by the user, the transducer for one of the first joint member degrees of freedom is positioned in the second joint member. The first joint member can provide three degrees of freedom to the probe in an alternate embodiment.
  • A method of the present invention for calibrating a probe apparatus for measuring 3-D coordinates, such as the probe apparatus described above, includes a step of sampling multiple orientations of the stylus as the orientation of the stylus is varied at an arbitrary point within the probe's work volume. The position of the stylus tip remains fixed while the user varies the orientation of the stylus. Multiple orientations are sampled from data provided by sensors on the probe apparatus. Spatial coordinates are then determined for the stylus at each of the sampled orientations of the stylus. Next, error values between the spatial coordinates of the sampled orientations are determined. Finally, the probe apparatus is optimized by determining calibration parameters based on the error values and using the calibration parameters when determining the position and orientation of the probe during normal operation. Preferably, previous calibration parameters are loaded from a memory device before the calibration process and are adjusted to become new calibration parameters. The adjusted parameters are preferably stored on an EPROM memory device which is unable to store data over previously written data stored in the EPROM. The adjusted calibration parameters are stored as a most recent set of calibration parameters in a specific section of the EPROM such that, when calibration parameters are retrieved during operation of the probe apparatus, only the most recent set of calibration parameters are retrieved. The calibration steps can be repeated when the stylus is placed at a different position in the selected volume and the sampled orientations from both of the positions can be used when determining the error values.
  • A method of the present invention for zeroing the sensors of a probe apparatus of a three-dimensional coordinate measuring system having relative sensors, such as the probe apparatus described above, includes placing the stylus (or other probe) in a receptacle positioned on one of the joints or one of the linkages of the probe apparatus. This receptacle preferably takes the form of a small bore or shallow divot. The linkage arm assembly can be in only one possible configuration while the stylus is positioned in the receptacle; this one configuration is known as a "home position." An indication is then received to zero the sensors of the probe apparatus, such as powering up the probe apparatus. Starting angles are then assigned to the sensors when the probe apparatus is in the home position. The starting angles provide a zero angle reference for the sensors of the probe apparatus. Preferably, the starting angles have previously been calibrated for the particular probe apparatus that is undergoing the zeroing process.
  • A rotary table of the present invention is for use with a 3-D digitizing system that includes a probe apparatus for measuring 3-D coordinates on an object resting on the rotary table, such as the probe apparatus described above. The rotary table includes a support base and a turntable which rotates. A sensor is coupled to the support base which measures an angular rotation of the turntable and provides the angular rotation to a host computer system. The host computer system includes the turntable rotation in a determination of the position and orientation of the probe when the probe is contacting the object resting on the turntable. The angular rotation is included in the probe determination when the probe has contacted the object before the turntable has been rotated and after the turntable has been rotated so that the object can be referenced at its new position. The sensor is preferably positioned near the center of said turntable such that a shaft of the sensor is coupled to the turntable. The turntable also preferably includes a receptacle positioned near a periphery (or the center) of the turntable for receiving the probe in an initialization procedure for locating the turntable relative to the probe apparatus. For example, the initialization procedure can include placing the probe in the receptacle, rotating the turntable while the probe is positioned in the receptacle, sampling multiple positions and orientations of the probe as the turntable is rotated, and determining the position and orientation of the rotary table relative to the probe apparatus using the sampled positions and orientations of the probe. Alternatively, the support base of the table is coupled to the base of the probe apparatus such that the position and orientation of the rotary table is fixed relative to the probe apparatus.
  • A method of the present invention for developing a mesh representation of a three-dimensional object by a computer system includes receiving a data point from a probe corresponding to a surface point on a surface of a three-dimensional (3-D) object. The data point is added to an end of a current contour line of the mesh representation, where the current contour line includes data points corresponding to surface points on the surface of the 3-D object. A triangle is then created in the mesh representation that includes a data point of the current contour line, a data point of a previous contour line, and a third data point from either the current contour line or the previous contour line. The previous contour line is adjacent to the current contour line and includes data points previously received from the probe. The triangle is created only when the current contour line is not the first and only contour line of the mesh representation. Preferably, data points of the triangle are chosen based on the distance between data points of the current contour line and data points of the previous contour line. In addition, a normal vector is assigned to the created triangle that indicates the exterior surface of the mesh representation. The orientation of the normal vector is based on orientation data included in the data points of the triangle. The triangle is displayed on a display screen of the host computer immediately after the triangle is created, thus displaying the mesh representation incrementally. When the received data point is the last data point of the current contour line, a triangle is created for each data point of the previous contour line that is not included in a triangle in a "close mesh" process. The data points are provided to the host computer from the probe as a user is tracing the probe across the surface of the object. The data points can be provided when a user control is activated or after the user traces the probe a minimum distance on the object.
  • A method of the present invention for providing a selection template that allows commands to be selected by a probe apparatus includes defining a template area as the selection template within a selected volume that the stylus of the probe apparatus can reach. A selection area is defined within the template area and is associated with a command to the host computer. The command associated with the selection area is provided to the host computer to select a function of said host computer or of the probe apparatus when the tip of the stylus is positioned within the selection area. Preferably, a plurality of selection areas are defined within the template area that are each associated with a different command. The selection areas can include indicia such as icons and labels. Some of the commands can manipulate the mesh representation of the object displayed by the host computer.
  • A method of the present invention is also described for assembling a linkage assembly including a plurality of joints and a linkage used in a probe apparatus for measuring three-dimensional coordinates, such as the probe described above. Two joint fixtures are positioned a desired distance apart and have a desired angle offset from each other. A joint of the linkage assembly is placed in each of the joint fixtures. The joints can be moved relative to the linkage connecting the joints so that the joints fit in the joint fixtures. The joints are then bonded to the linkage while the joints are placed in the joint fixtures. The linkage is preferably made of graphite, which is well adapted to the bonding process.
  • The features of the present invention allow for a more accurate, more convenient, and less expensive coordinate measuring and 3-D digitizing system than the systems of the prior art. Specifically, the probe arm apparatus provides a lightweight, accurate device for the user to handle. The calibration method allows a probe to be positioned at an arbitrary point in a volume and thus avoid expensive precision fixtures. The zeroing method is more accurate and allows only one possible physical configuration of the probe arm to be in the home position. The method of the present invention for assembling linkages and joints for a probe apparatus allows accurate lengths and angles between joints. The rotary table allows an object to be re-oriented by a user during digitization without a cumbersome procedure and with great accuracy. The method for developing a mesh representation allows a user to incrementally view a mesh representation and quickly and accurately finds the orientation of the mesh polygons. Finally, the selection template allows the user to conveniently select commands and functions of the host computer and probe during a digitization process.
  • These and other advantages of the present invention will become apparent to those skilled in the art upon a reading of the following specification of the invention and a study of the several figures of the drawing.
  • Brief Description of the Drawings
  • Figure 1 is a perspective view of a measuring and digitizing system in accordance with the present invention;
  • Figure 1a is a block diagram of interface electronics for use with the digitizing system of Figure 1;
  • Figure 2 is a flow diagram illustrating a method of initializing and using the digitizing system of Figure 1;
  • Figure 3a is a flow diagram illustrating a zeroing process for the probe apparatus of the digitizing system;
  • Figure 3b is a flow diagram illustrating an alternate zeroing process to the process of Figure 3a;
  • Figure 4 is a perspective view of the probe apparatus of Figure 1 in a home position;
  • Figure 4a is a detail view of the aperture for holding the stylus in the home position;
  • Figure 5 is a flow diagram illustrating a calibration process of the present invention for the probe apparatus of Figure 1;
  • Figure 6 is a flow diagram illustrating a process of initializing a rotary table and selection template of the present invention;
  • Figure 7 is a perspective view of the rotary table of the present invention;
  • Figure 8 is a top plan view of the selection template of the present invention;
  • Figure 9 is a perspective view of an object that is to be digitized by the present invention;
  • Figure 10 is a diagrammatic view of a mesh representation of the object shown in Figure 9;
  • Figure 11 is a flow diagram illustrating a process of the present invention for developing a mesh representation such as the one shown in Figure 10;
  • Figure 12 is a flow diagram illustrating the step of Figure 11 for creating triangles in a mesh representation;
  • Figure 13 is a diagram illustrating an example mesh representation developed by the process of Figure 11;
  • Figure 14 is a flow diagram illustrating the step of Figure 12 for adding triangles between two contour lines of the mesh representation;
  • Figures 15a, 15b, 15c, 15d, and 15e are diagrams illustrating the method of Figure 12 for adding triangles using the mesh representation of Figure 13;
  • Figure 16 is a diagram illustrating the normal vectors for triangles added to the mesh representation;
  • Figure 17 is a flow diagram illustrating the step of Figure 11 for closing the mesh representation;
  • Figures 18a and 18b are diagrams of a mesh representation illustrating the process of Figure 17 for closing a mesh representation;
  • Figure 19 is a flow diagram illustrating a method of assembling linkage assemblies used in the probe apparatus of Figure 1;
  • Figure 20 is a schematic diagram illustrating the method of Figure 19; and
  • Figures 21a and 21b are front and side views of a multistage stop joint of the present invention for use with the probe apparatus of Figure 1.
  • Best Modes for Carrying out the Invention
  • In Figure 1, a digitizing system 10 for measuring a three-dimensional (3-D) object and providing a representation of the three-dimensional object in a computer system includes a probe apparatus 12, a rotary table 14, an electronic interface 16, and a host computer 18. A three-dimensional object 20 is shown resting on rotary table 14. The illustrated digitizing system 10 is directed to providing a highly accurate representation of object 20 which host computer 18 can display, edit, copy, provide to other computer systems, or otherwise manipulate.
  • Probe apparatus 12 is provided to allow a user to measure and transmit location information of object 20 to host computer 18. As is well-known to those skilled in the art, a probe that is traced over a 3-D object, such as object 20, can provide coordinate information describing the 3-D geometry of object 20. In the preferred probe apparatus, this coordinate information is provided using sensors operative to measure positions of the probe apparatus as it is moved to various locations with respect to the fixed base. This is described in greater detail below.
  • Probe apparatus 12 preferably includes a stylus probe 22 and a mechanical linkage assembly 25. Stylus 22 is a pen-like rod that can be manipulated between a user's fingers to allow a fine degree of control of the probe apparatus. Stylus 22 includes a tip 23 that is used to reference the location of a point pointed to by the probe apparatus. Probes other than stylus 22 can be used in other embodiments. For example, a curved or angled member, hand grip, palm-supported stylus, or other type of probe can be used.
  • Stylus 22 is coupled to mechanical linkage assembly 25. Linkage assembly 25 (or "arm") preferably includes joint members 24, 26, and 28, linkages 30, 32 and 34, and base 33. Base 33 also preferably includes a base joint 35 coupled between the base and linkage 34. Stylus 22 is coupled to linkage 30 via joint member 24, and linkage 30 is coupled to linkage 32 via joint member 26. Linkage 32 is coupled to base 33 via joint member 28. The term "joint member", as used herein, refers to a connection mechanism between individual linkage components that may includes at least one "joint" which provides a degree of freedom. Base 33 is preferably securely placed upon or fixed to a support surface 37, such as a tabletop.
  • Each joint member 24, 26, 28, and 35 provides one or more degrees of freedom to stylus 22 within three-dimensional coordinate space defined by x-axis 36, y-axis 38, and z-axis 40 with respect to fixed base 33. For example, joint member 24 includes two joints which allow stylus 22 to move about axis A1, as shown by arrows 42 and about axis A2, as shown by arrows 44. Preferably, joint member 24 and stylus 22 can be rotated about axis A2 while linkage 30 remains fixed in joint member 26. Joint member 26 includes one joint that allows stylus 22, joint member 24, and linkage 30 to move about axis A3, as shown by arrows 46. Joint member 28 includes two joints that allow stylus 22, joint members 24 and 26, and linkages 30 and 32 to move about axis A4, as shown by arrows 48, and about axis A5, as shown by arrows 50. Joint member 28 actually includes member 31, which rotates about axis A4, and member 34, which is separated from base 33 by joint 35 and rotates to allow linkage assembly 23 to rotate with reference to base 33. Joint 35 allows joint members 24, 26, and 28, linkages 30 and 32, and stylus 22 to move about axis A5. The stylus 22 of the preferred probe apparatus 12 thus can be moved in five degrees of freedom about the axis A1-A5.
  • In alternate embodiments, additional degrees of freedom can be added. For example, stylus 22 can be rotated about an axis A6 that is parallel to the lengthwise direction of the stylus to provide a sixth degree of freedom. Conversely, less degrees of freedom can be provided to stylus 22 in some embodiments where more than three or four degrees of freedom are not necessary.
  • The linkage assembly of the present invention has unique features. Joint member 28 includes two joints and provides two degrees of freedom about axes A4 and A5. Joint member 26 is isolated from the other joint members by linkages 30 and 32 and provides only one degree of freedom about axis A3. Joint member 24 includes two joints that each provide stylus 22 a degree of freedom about axis A1 and A2, respectively. Thus, linkage assembly has a 2 joint, linkage, 1 joint, linkage, 2 joint configuration. This configuration has the advantage that linkages 30 and 32 need not rotate about a longitudinal axis through the center of each of the linkages, i.e., linkage 30 does not rotate about axis A2 and linkage 32 does not rotate about an axis A7 extending longitudinally through the center of linkage 32. Linkages 30 and 32 are thus rigidly coupled to and fixed to joint member 26 and joint member 28, respectively. Since linkages 30 and 32 do not have to rotate as described, any eccentricities (bends, warps, twists, etc.) in the linkages 30 and 32 therefore do not introduce error into the sensing of stylus 22 when stylus 22 is moved.
  • In addition, member 31 of joint member 28 preferably includes a weighted end 29. A heavy material, such as lead or another metal, is included within end 29 to counterbalance linkage assembly 23. When end 29 is properly weighted, joint member 26 (the "elbow" of the arm) does not get "lock" as easily in a fully extended position as when end 29 is not weighted, i.e., the weight counterbalances the linkage assembly so that it is easier to move joint 26 from the extended position. The extended position occurs when linkages 30 and 32 are approximately arranged in a straight line. Weighted end 29 also allows stylus 22 to be moved more easily in the working volume.
  • Preferably, sensors 54 (or similar types of transducers) are included in joint members 24, 26, 28, and 35 to measure the change in angle between linkages after power up of probe apparatus 12. Herein, the term "position" refers to the linear coordinate position of tip 23 of stylus 22 along x-axis 36, y-axis 38, and z-axis 40 with respect to an origin O at base 33. For example, each point in space has a unique position having x, y, and z coordinates. The term "orientation", as used herein, refers to the roll, pitch, and yaw of stylus 22 at a particular position with respect to the origin at base 33. For example, the tip 23 of stylus 22 may be at a position (x, y, z) while the stylus 22 has a particular orientation including an angle defined by yaw and pitch coordinates and a spin defined by a roll coordinate. Each of the transducers therefore preferably provides angular position signals or "annular signals" for one of the degrees of freedom of the apparatus.
  • Sensor 54a is preferably included in joint member 24, two sensors 54b and 54c are included in joint member 26, one sensor 54d is included in joint member 28, and one sensor 54e is included in base 33 (or member 34). Sensor 54b is preferably coupled to joint member 24 via a shaft 55 which is directed through the interior of linkage 30. Thus, when joint member 24 is rotated about axis A2, shaft 55 also rotates, and this rotation is detected by sensor 54b. The position of sensor 54b in joint member 26 allows joint member 24 to be as small as possible, which allows stylus 22 to be manipulated more conveniently by the user. An additional sensor can be included in joint member 24 to measure movement of stylus 22 about axis A6 in other embodiments. Alternatively, to keep joint member 24 as small as possible, this additional sensor can be positioned in joint member 26 and coupled to stylus 22 with cables or shafts similar to shaft 55. The sensors can be placed in other locations of linkage assembly 23 in other embodiments. Sensors 54 are preferably relative optical encoders for measuring the angle change of rotation of a sensor shaft aligned with a particular axis A1-A5, as is well known to those skilled in the art. A suitable sensor 54, for example, is an optical encoder manufactured by Hewlett Packard. Alternatively, other types of sensors can be used, such as absolute encoders, potentiometers, magnetic sensors, etc., as well as sensors that detect linear motion rather than angular rotation.
  • A user can "trace" the contours, edges, and surfaces of object 20 with stylus 22 to relay position and orientation information of the stylus to host computer 18, i.e. the user can "digitize" object 20. Herein, "tracing" refers to contacting tip 23 of stylus 22 on a surface of object 20 and moving the stylus along the surface. Sensors 54 of the probe apparatus relay relative angular orientations of linkage assembly 25 and stylus 22 as the stylus is moved to host computer 18, which converts the angle information into coordinates and into a mesh representation (a type of geometric representation) of the surface that was traced. Methods of tracing an object with a stylus for such a purpose are well-known to those skilled in the art, and are described in greater detail with reference to Figure 9.
  • Probe apparatus 12 can be used for a variety of different applications other than digitizing 3-D objects. For example, Virtually any apparatus that spatially measures an object and transmits coordinate information to a host computer can be used with rotary table 14.
  • Rotary table 14 is supported by support surface 37 within the work volume of probe apparatus 12, where the "work volume" is defined herein as the entire volume surrounding probe apparatus 12 which can be reached by tip 23 of stylus 22. Other types of 3-D measuring apparatuses have work volumes defined by the reachable volume of a probe element that contacts the object. The rotary table of the present invention is preferably placed such that the entire table 14 is included in the work volume. In addition, other embodiments of the rotary table 14 may be attached to base 33 of probe apparatus 12, as discussed in greater detail with respect to Figure 6.
  • Rotary table 14 includes a turntable 60 and a table base 62. Turntable 60 can be rotated about axis B 1 as indicated by arrow 64 while table base 62 remains fixed in place. Object 20 rests on a surface of turntable 60, and is preferably coupled to the surface by cords, glue, screws, or other fasteners to prevent the object from moving relative to the rotating surface 60. In addition, rotary table 14 outputs signals on bus 66 to an interface 16 or host computer 18 indicating any change in location of object 20 about axis B1. This is described in greater detail with reference to Figure 6. Rotary table 14 allows a user to move object 20 so as to angle the object more favorably for tracing with stylus 22. For example, if object 20 presents some surfaces that are difficult to contact with tip 23 of stylus 22, the object can be moved by rotating surface 60 about axis B 1 until the desired surface of the object is more accessible to stylus 22. Moving the object 20 on the rotary table of the present invention does not cause errors in further coordinate measurements of the object 20.
  • It should be noted that rotary table 14 can be used with a wide variety of three-dimensional digitizing apparatuses. Virtually any apparatus that spatially measures an object and transmits measured information to a host computer can be used with rotary table 14.
  • Foot pedal 68 is preferably coupled to probe apparatus 12 by a bus 70. Foot pedal 68 includes a activation pedal 71 or similar control, such as a button, switch, etc. The foot pedal 68 is preferably placed below or to the side of support surface 37 to allow a user of probe apparatus 14 to access the pedal easily. When foot pedal 68 is activated by a user, the relative angles read by sensors 54 from a reference position are read by host computer 18, and the host computer calculates the current position and orientation of stylus 22 and tip 23 using the angle information. The position and orientation is expressed as a coordinate "point", i.e. a set of x, y, z, roll, pitch, yaw coordinates. Foot pedal is conveniently placed so that a user can use his or her foot to activate the pedal. The user thus does not have to remove or shift his or her hands from stylus 22 or probe apparatus 12 when sending coordinate information to host computer 18. Alternatively, foot pedal 68 can be provided as a button or switch located on stylus 22, on a different location of linkage assembly 25, on rotary table 14, or as a separate hand control. Also, foot pedal 68 can be coupled to probe apparatus 12 and be separately coupled to host computer 18 or interface 16, or could be connected to the host computer via rotary table 14. A method of digitizing object 20 using foot pedal 68 is described in greater detail with respect to Figure 11.
  • Electronics interface 16 is coupled to probe apparatus 12 by a bus 72. In the preferred embodiment, interface 16 is included within the outer casing of base 33 (or member 34) of the probe apparatus. Alternatively, interface 16 can be provided external both to probe apparatus 12 and host computer 18, or the interface can be provided within host computer 18. In the preferred embodiment, interface 16 serves as an input/output (I/O) device to receive angles from sensors 54 of probe apparatus 12 and transmit those angles to host computer 18, as well as to transmit commands from host computer 18 to probe apparatus 12. Alternatively, interface 16 can transmit coordinate data that was calculated from the raw angle data to host computer 18. The interface 16 can also receive commands from foot pedal 68, rotary table 14, or other buttons and/or controls of probe apparatus 12. Interface 16 is described in greater detail with reference to Figure 1a.
  • Host computer 18 receives coordinate data from probe apparatus 12 describing object 20. Computer 18 uses the coordinate data to develop a representation of the object 20. For example, in the described embodiment, the computer can form and display a highly accurate pictorial representation of object 20, called a "mesh" representation, which includes precise measurements, angles, and other spatial information. Host computer preferably includes standard components such as a microprocessor, random access memory (RAM), read-only memory (ROM), input/output electronics, and storage devices such as a hard disk drive, CD ROM drive, etc. Preferably, host computer 18 is a personal computer or workstation, such as an IBM-PC AT or Macintosh personal computer, or a SUN or Silicon Graphics workstation. Most commonly, the host computer system is a personal computer which operates under the MS-DOS or Windows operating systems in conformance with an IBM PC AT standard.
  • The host computer 18 is preferably coupled to a display screen 76 which can be used to display a mesh representation 78 of object 20 to the user. The mesh representation is shown in greater detail with respect to Figure 10. In the preferred method of the present invention, mesh representation 78 can be displayed as the user is tracing over object 20 so that the user can incrementally view how the object is being represented within computer system 18. This helps a user to spot tracing mistakes as soon as the mistakes are made, rather than having to wait for the entire object to be traced and then viewing a resulting mesh representation. This preferred method is described in greater detail with respect to Figure 11.
  • Display screen 76 also preferably displays a user interface to an operating system implemented by host computer 18. Software can be implemented on host computer 18 such that commands are displayed to the user on display screen 76 to offer various options when tracing an object, entering coordinates, displaying the mesh representation, or a shaded model derived from the mesh representation, etc., as is well known to those skilled in the art.
  • A cursor or pointer 77 displayed by the operating system or application program running on computer system 18 is preferably displayed to access functions to manipulate the displayed mesh representation or to access features of probe apparatus 12 and rotary table 14. The pointer can traditionally be manipulated by an input pointing device such as a mouse, trackball, touch pad, or the like. In the present invention, stylus 22 of probe apparatus 12 can also preferably be used to control pointer 77. As the stylus is moved through 3-D space, the host computer can receive the position data for stylus 22 and convert the data into 2-dimensional coordinates. The host computer 18 would then move pointer 77 to those 2-dimensional coordinates, as is well known to those skilled in the art. The conversion of 3-D coordinates to 2-D coordinates can be accomplished by simply ignoring a third coordinate, such as the z-coordinate; or, all three coordinates can be converted into 2-D coordinates by projecting data into a given plane. Foot pedal 71 can be used similarly to a mouse or other pointing device button. The control of pointer 77 by stylus 22 can be implemented as a mode, where the user can select whether to be in computer cursor control mode or in 3-D trace mesh mode. These modes can be selected or toggled by software running on host computer 18 through command in an operating system or by using selection template 80 (described below).
  • Selection template 80 presents a collection of selection areas 82 within template 80 describing options, commands, and other functions which relate to probe apparatus 12 and host computer 18. These functions are preferably implemented using software running on host computer 18; however, the functions can be implemented on a controller microprocessor in probe apparatus 12 or a different connected controller or computer system for digitizing system 10. Template 80 preferably has a thin, planar shape with a flat surface and is made out of a material such as card stock, plastic, or other durable material. Alternatively, template 80 can be a rectilinear, cubic, or other three-dimensional shape having a flat surface to display selection areas 80. Selection areas 80 can include indicia such as word commands, e.g., "start new mesh", as well as icons, shapes, and other pictures. When a user moves tip 43 of stylus 22 onto or over a selection area of template 80, a function of probe apparatus 12 or control software running on host computer 18 is implemented. For example, if the user moves the stylus 22 onto a square icon labeled "Save Mesh", then the three-dimensional mesh currently displayed on display screen 76 is saved to a storage device coupled to host computer 18, such as a hard disk. As described below with reference to Figure 8, other commands can be selected to erase a mesh, start a new mesh, load a mesh from a storage device, copy a mesh, select modes of probe apparatus 12 such as "auto-trigger" mode (described below), etc.
  • A separate sensing device, such as the conventional type of contact-sensitive tablet used for detecting a stylus, is not coupled to template 80 to determine the functions or commands pointed to by stylus 22. This is because the position and orientation of tip 43 of stylus 22 with respect to the base 33 is already known to host computer 18 through the sensors 54 of probe apparatus 12. The area defined by template 80 in the work volume of probe apparatus 12 is preferably initialized in a setup procedure for probe apparatus 12 which determines the position and orientation of the template with respect to the fixed base (described with reference to Figures 6 and 8). The template and the locations of selection areas 82 are defined in the setup procedure, so that when tip 43 of stylus 22 is pointing to those defined selection areas, host computer 18 implements a predefined function for that selection area. This provides a very convenient method for the user to select commands while tracing object 20, since the user does not have to manipulate a separate input device, such as a mouse or trackball device, and does not have to view and move a cursor video screen. The user can simply touch the stylus 22 onto the desired command. Template 80 is shown attached to the support surface 37 in Figure 1. Template 80 can also be attached, for example, to base 33 or linkage 34 of probe apparatus 12, rotary table 14, or a different convenient surface within the work volume of probe apparatus 12 with a known location with respect to base 33.
  • Figure 1a is a block diagram illustrating a preferred electronics interface 16 for the digitizing system 10 shown in Figure 1. Interface 16 preferably includes a microprocessor 86, random access memory (RAM) 88, read-only memory (ROM) 90, and input/output (I/O) circuitry 92. Microprocessor 86 receives digital signals from the sensors 54 of the probe apparatus and provides angle data to host computer 18, and also may receive commands from host computer 18. Alternately, microprocessor 86 can also compute coordinate data from the angle data. RAM 88 can provide storage for bookkeeping and temporary data. ROM 90 stores instructions for microprocessor 86 to follow and can be an erasable programmable read only memory (EPROM), for example. ROM 90 also preferably stores calibration parameters and other parameters as described subsequently. Microprocessor 86, RAM 88, and ROM 90 can be coupled together by an address/data/control bus 87. Preferably, these components are all integrated in a microcontroller chip, such as Motorola 68HCl1, the use of which is well known to those skilled in the art.
  • I/O circuitry is coupled to bus 87 and can include a variety of circuits and processors for use with probe apparatus 12. Sensors 54, peripherals 94, and host computer 18 are coupled to I/O circuitry 92. I/O circuitry can include preprocessors for converting digital sensor information to angular changes and sending the angle information to microprocessor 86, as well as other sensor interface circuitry. For example, quadrature counters such as the Quadrature Chip LS7166 from Hewlett Packard can be used to continually read the output of an optical encoder sensor and determine an angular change in sensor position. Microprocessor 86 can then provide the joint angles to host computer 18 or convert the angles to the spatial location of the stylus.
  • Other types of interface circuitry can also be used. For example, an electronic interface is described in U.S. Patent Application Serial No. 08/092,974, filed July 16, 1993 and entitled "3-D Mechanical Mouse" assigned to the assignee of the present invention and incorporated herein by reference in its entirety. The electronic interface described therein was designed for the Immersion PROBE™ 3-D mechanical mouse and has six channels corresponding to the six degrees of freedom of the Immersion PROBE.
  • Peripherals 94 are also coupled to I/O circuitry 92 and include foot pedal 71, rotary table 14 (in some embodiments), and any other buttons or other input devices that input information to probe apparatus 12. Peripherals 94 can also include any output devices coupled to the probe apparatus, such as lights, sound speakers, displays, etc. Host computer 18 is also coupled to I/O circuitry 92. In the preferred embodiment, a serial port of computer system 18, such as an RS-232 port, connects the I/O circuitry to computer system 18. Alternatively, a parallel port of host computer system 18 can be coupled to I/O circuitry 92, or a plug-in card and slot or other access of computer system 18.
  • Figure 2 is a flow diagram illustrating a method 100 of initializing and using probe apparatus 12 and rotary table 14 and to develop a mesh representation of object 20 that is manipulable by host computer 18. The process assumes that the user has connected probe apparatus 12 and rotary table 14 to host computer 18 and interface 16. Process 100, as described, presents one example sequence to perform the included steps. In other embodiments, these steps can be performed in other sequences, or some steps can be omitted.
  • The process begins at 102, and, in step 104, the sensors of the probe apparatus 12 are preferably "zeroed" such that the sensors can reference a known relative orientation of linkages and joint members of the probe apparatus. Such a procedure is typically necessary when using relative sensors, as in the preferred embodiment of the present invention. Relative sensors measure only changes in angular rotation (or translation), and do not measure an absolute angle. The zeroing procedure provides reference angles for the sensors which the sensors can use as a reference point from which to measure. The preferred zeroing procedure of the present invention is described in greater detail with respect to Figures 3a and 3b.
  • In next step 106, the probe apparatus 12 is calibrated, if necessary. Typically, this step is performed by the manufacturer of probe apparatus 12 before the probe apparatus is available to the user, and step 106 is thus usually omitted when a typical user uses the probe apparatus. However, the probe apparatus may become physically stressed such that linkage or joints are bent or otherwise moved relative to other linkages, thus causing error in measurements. The probe apparatus could then be re-calibrated at step 106. A preferred calibration procedure of the present invention for probe apparatus 12 (or other 3-D probe apparatuses) is described in greater detail with respect to Figure 5.
  • In next step 108, the position and orientation of rotary table 14 , if being used, with respect to the origin in base 33 is found. This step allows interface 16 and/or host computer 18 to reference the rotary table relative to the probe apparatus. When rotary table 14 is turned by the user, host computer 18 then can determine the change in position and orientation of object 20 and compensate so that the user can continue tracing the object at the new location without introducing error to the mesh representation 78 displayed on screen 76. In addition, the position and orientation of the selection template 80 with respect to base 33 can be found in step 108, if the template is being used. Step 108 is described in greater detail with respect to Figure 6.
  • In next step 110, a mesh representation 78 of object 20 is developed in host computer system 18 as the object is traced with stylus 22 of probe apparatus 12. The user preferably traces along non-intersecting contour lines along the surface of object 20, as described below. Data points are provided to host computer 18 as the stylus is being traced, and the 3-D mesh representation is developed from the data points. A preferred method of developing a 3-D mesh representation of a 3-D object is described in greater detail with respect to Figure 11. Step 108 can be implemented multiple times for different objects 20 or the same object 20 without having to again perform steps 104-108 (unless the probe apparatus is powered down). The process 100 is then complete at 112.
  • Figure 3a is a flow diagram illustrating step 104 of Figure 2, in which the sensors of probe apparatus 12 are "zeroed." This process assumes that relative sensors are being used in joint members 24, 26, and 28 of probe apparatus 12. Relative sensors, such as relative optical encoders, are typically less expensive and are thus more preferable than absolute sensors such as absolute encoders, potentiometers, and resolvers. Since relative sensors only measure changes in angular rotation or translation, an absolute angle is derived. In this process, starting reference angles are given so that absolute angles can be derived from relative changes in angles. The process of determining starting reference angles is known as "zeroing" the sensors, since the known starting reference angle is typically considered to be 0 degrees (or the equivalent), and all changes in angle are treated relative to the zero angle.
  • The preferred zeroing process of the present invention begins at 114, in which the probe apparatus 12 is not yet powered up. In step 116, the stylus 22 is placed by the user in a "home position" by placing the stylus in a receptacle which is preferably on the first joint or linkage of the probe apparatus after base 33. This joint/linkage is member 34 of joint member 28 in the probe apparatus 12 shown in Figure 1. The home position is a standard position in which the links of linkage assembly 23 of the probe apparatus are always provided at known, predetermined starting angles relative to each other and to base 33. An example of a home position is shown in Figure 4.
  • Figure 4 is a perspective view of probe apparatus 12 where the probe apparatus 12 is in a home position of the present invention. Stylus 22 has been placed into an aperture 122 on a stop 124, where stop 124 is coupled to member 34, as shown in greater detail with respect to Figure 4a. Stop 124 prevents joint member 28 from rotating past a certain point about axis A4. When stylus 22 is in aperture 122, then linkage 32, linkage 30, and stylus 22 are positioned at known "starting angles." That is, it is assumed that the stylus has been placed in aperture 122 and that the linkage assembly is in this home position when the probe apparatus is powered up. Each joint member 24, 26, and 28 is at a particular starting position having a known starting angle. It is these starting angles that are considered the zero position for the sensors of probe apparatus 12. When stylus 22 is moved by a user, the change in angles of linkage assembly 23 from the home position starting angles is read by sensors 54. Each new position of stylus 22, when sampled, is defined in terms of the angle change from the home position. The angle changes can then be converted into coordinate values.
  • The home position of Figure 4 is specifically arranged so that stylus 22 can fit in aperture 122 only when the home position shown in Figure 4 is assumed by the linkage assembly 23, i.e. only one physical configuration of the linkage assembly is possible when stylus 22 is placed in aperture 122. Thus, if linkage 24, for example, is rotated 180 degrees about axis A2, stylus 22 cannot fit into aperture 22. This prevents undesired configurations of the linkage assembly that provide different angles to the joints of the probe apparatus than the assumed starting angles.
  • In the present invention, stylus 22 is placed in an aperture of member 34 which is closest to and one joint removed from base 33. This has the advantage that sensor 54e is not included in the home position and does not have to be assigned an assumed starting angle. With less joint angles assumed, the less error that is introduced into the zeroing process. Also, linkage assembly 23 may be rotated about axis A5 without affecting the home position of the probe apparatus 12. Member 34 is not at a known starting angle; however, it is not necessary to know the starting angle for member 34 relative to base 33, since the angle with respect to support surface 37 or other areas external to probe apparatus 12 is not required to zero the sensors. Member 34 thus may conveniently be positioned at any angle relative to base 33, and that angle is considered the zero angle.
  • Referring back to Figure 3a, in next step 118, probe apparatus 12 is powered up. For example, the user can activate a power switch located at base 33 of probe apparatus 12. Normal calibration parameters for the probe linkage lengths, etc., as described with reference to Figure 5, can also be loaded upon power-up. In next step 120, interface 16 (or host computer 18) reads calibrated starting angles from a memory or storage device of probe apparatus 12, such as EPROM 90 and assigns the calibrated starting angles to the current positions of the joints. The calibrated starting angles are fine-tuned starting angles which compensate for slight manufacturing deviations in the linkages and joints of the probe apparatus. For example, a probe apparatus may be positioned generally at the desired angles, but may be positioned a few degrees or fractions of a degree from the desired starting angles (due to, for example, manufacturing variation). To allow greater accuracy in digitizing 3-D objects, calibrated starting angles of a probe arm are stored in a memory device of each probe arm. These starting angles are slightly different for each manufactured probe apparatus 12. In the described embodiment, a starting angle for each of the joints of the provided five degrees of freedom is stored, except for member 34 (since the angle for sensor 54e is not known). In other embodiments, for n joints having known starting angles, only n-1 starting angles need be stored. This is because the final (nth) starting angle can be derived by geometrical techniques from the other known starting angles. Such geometrical techniques are well known to those skilled in the art.
  • The microprocessor 86 preferably assigns the starting angles to the current sensor positions of the joints by setting angle values to known values. For example, in the preferred embodiment, quadrature chips are used to read angle values from the sensors. The microprocessor can clear the counts in the quadrature chips or set the initial counts to predefined calibrated starting angle counts (where the "counts" can be, for example, counts of notches within optical encoder sensors that can be converted to conventional angle values). The zeroing process is then complete.
  • Figure 3b is a flow diagram illustrating a second, alternate zeroing process 104' to the process 104 described above. In process 104', there is no home position provided. In this embodiment, a reference mark or signal for each sensor 54 is used to determine where the reference zero angles are located on the joints of probe apparatus 12. This embodiment is most appropriate for sensors such as rotary optical encoders, in which a wheel having notches is rotated as the shaft of the encoder is rotated. An emitter of a beam of electromagnetic energy emits the beam through the notches in the wheel and a detector thus detects when notches rotate by to read the change in angle of the sensor shaft. Such encoders, and similar types of sensors, are well known to those skilled in the art.
  • This second embodiment of a zeroing process uses the notches or similar detected marks of sensors like the optical encoder. An index mark is placed at a predetermined position in the sensing range of each sensor at each joint of probe apparatus 12. For example, in the optical encoders, a wider index notch can be placed on the wheel inside the encoder. The sensor can determine when the wider notch is detected, since it differs from all the other notches. Thus, interface 16 knows where in the range of a sensor that the index mark is located. When the index mark is detected, the starting angle of the joint has been determined, and an assumed starting angle value assigned to that position of the joint.
  • The process 104' begins at 124, and, in step 126, the probe apparatus is powered up. In next step 128, the user moves the stylus 22 of probe apparatus 12 between two predetermined locations within the working volume with respect to the base 33, and interface 16 reads the sensors as the user moves the stylus. Preferably, the two predetermined locations are designed to allow a natural, fluid motion of the stylus 22 that assures that every index mark of every sensor on the probe apparatus is detected by each sensor and output to interface 16. For example, the two locations can be a point on the base 33 of probe apparatus and a point straight out from the base toward the edge of the working volume. The points do not have to be precise, since the index marks should be designed to be detected by the sensors well within the range of motion provided by the user. This allows a simple, easy motion to zero all the sensors of the probe apparatus. The user can easily move the stylus in a fluid and natural motion without having to separately move each individual joint.
  • In next step 130, stored calibrated starting angles are read from a memory device of the probe apparatus (or a different coupled memory device) and assigned to the detected index mark positions of the joints. Calibrated starting angles are similar to those described with respect to step 120 of Figure 3a, and provide additional accuracy to the zeroing procedure. The calibrated starting angles have been compensated for slight physical differences of a particular sensor. Each index mark position of each joint is assigned the corresponding starting angle. The process is then complete as indicated at 132.
  • Figure 5 is a flow diagram illustrating step 106 of Figure 2, in which the probe apparatus is calibrated, if necessary. This calibration process is typically accomplished for each individual probe apparatus by a manufacturer before the probe apparatus can be obtained by an end-user. The end-user might also desire to perform the calibration process in the event error is introduced into the probe apparatus.
  • Calibration allows variations in the manufactured parts of probe apparatus 12 to be accounted for and any error associated with the variations substantially removed. Variations including the lengths of linkages, angular offsets between linkages (twists), and linear offsets between axes can be compensated for by storing calibration parameters for each of the joints and linkages of the probe apparatus. For example, the calibration process described herein can more than double the accuracy of the probe apparatus. The calibration process of the present invention utilizes relative errors at any desired probe location, rather than the more tedious and expensive prior art method of calibrating using absolute errors at two known probe locations.
  • The process begins at 138. In step 139, previous calibration parameters calculated from the last calibration and stored in memory are loaded. If this is the first time that the probe apparatus is being calibrated, then nominal calibration parameters are loaded which, for example, assume ideal dimensions for the probe apparatus. In the preferred embodiment, the calibration parameters are loaded from EPROM 90 of interface 16. Since a given location in the EPROM can only be written to once (burned in) and never erased, the calibration parameters are preferably organized such that a set of parameters is stored only in a specific section of the EPROM. For example, the more recently the calibration parameters were calculated, the higher is the address of EPROM 90 where the set of parameters is stored. Thus, in step 139, the latest, most recent previous calibration parameters can be retrieved from the EPROM. Alternatively, other types of memory, such as battery backed RAM or other types of ROM, can be used to store the calibration parameters; or, host computer 18 can store the calibration parameters.
  • In step 140, stylus tip 43 is placed by the user, manufacturer, etc. at a freely-chosen position within the work volume of the stylus. For example, a shallow divot on a surface, such as support surface 37, can be provided for this purpose. In next step 140, the sensors of the probe apparatus are read and the current position and orientation of the stylus is recorded. In next step 144, the user manipulates the stylus so that the position of the stylus remains fixed and the orientation of the stylus is varied, i.e., the x, y, and z coordinates of the stylus tip do not change, while the stylus 22 is moved to different orientations. For example, this can be accomplished by placing tip 43 in the abovementioned shallow divot, and rotating the end opposite to tip 43 of the stylus 22 in a conical shape about the divot. In next step 146, the sensors are read at one or more sampled orientations of the stylus. A sampled orientation includes angle values from all sensors on the probe apparatus at a particular stylus orientation. The position (x, y, z coordinates) of the stylus should be the same at each sampled orientation. For example, as the user is moving the stylus in the cone-shaped motion, at least two configurations can be sampled by interface 16 or host computer 18.
  • In step 148, one or more spatial coordinates of the stylus tip 43 are determined for each sampled orientation of the stylus. The angle values at each orientation that were read in step 146 are used with well-known kinematic equations to derive x, y, and z position coordinate values for each sampled orientation (as is normally accomplished when the position and orientation of stylus 22 are determined during digitizing operation). The previous (or nominal) calibration parameters are used in these kinematic equations. In next step 150, error values between the x, y, and z coordinates of the sampled orientations are determined and stored, preferably in the memory device of the probe apparatus. If the probe apparatus were perfectly calibrated, there would be no difference between the x, y, and z coordinates of the different sampled orientations, since the stylus tip was fixed at one position. However, small variations in the probe apparatus cause errors to be introduced when the joints are rotated, as when the orientation of the stylus is varied. Thus, the kinematic equations will typically produce x, y, and z coordinates that are slightly different for each sampled variation. The differences between these derived coordinates are stored. For example, if three sampled orientations are read, the x coordinates are compared between each of the sampled orientations. The difference between the first and second sampled orientations are stored as one error value, the different between the first and third orientations are stored as a different error value, etc.
  • In step 152, the process checks if the above steps should be repeated when the stylus is moved to a new, freely-chosen (x, y, z) position that is different from the position chosen previously. This depends on the desired accuracy of the calibration; data collected at more than one stylus position can be combined to achieve more accurate results. If a repeat process is desired, the process returns to step 140, where the stylus tip is placed at a new position and data is collected at that position. If no repeat process is desired, then step 154 is performed, in which the previous or nominal calibration parameters are adjusted using all recorded error values, and the adjusted calibration parameters are stored in a storage or memory device. For example, an optimization procedure can be implemented which adjusts the calibration parameters until the error values are at a minimum or under a predetermined threshold. Such optimization procedures using known calibration parameters and error values are well known to those skilled in the art. Once the calibrations parameters have been adjusted to the desired amount, they are stored. These calibration parameters can thus be used every time the probe apparatus is powered up and used. In the preferred embodiment, the calibration parameters are burned into a particular section of EPROM 90, as described above. Whenever the probe apparatus is powered up, as in the zeroing process of Figure 3a or 3b, only the latest, most recently determined calibration parameters are loaded. Using such a method, the EPROM 90 can store a number of sets of calibration parameters before its storage space is exhausted. The process is then complete at 156.
  • The calibration process of the present invention allows a user to pick an arbitrary or random point in the work volume of the probe apparatus and vary the orientation of the stylus at that point. Thus, the stylus preferably has at least five degrees of freedom to allow the stylus orientation to be varied. This procedure provides highly accurate calibration values and avoids the expensive, tedious methods of the prior art in which the stylus must be placed at several locations whose locations are precisely known.
  • Figure 6 is a flow diagram illustrating step 108 of Figure 2, in which the position and orientation of the rotary table 14 and selection template 80 are determined with respect to the origin at base 33 so that these items may be used during a digitization process. The determination of the coordinate information for the rotary table is described first, although the template and table initializations can be performed in any desired order. In addition, depending on the accuracy desired, either of steps 162 and 164 can be omitted from the present process in alternate embodiments.
  • Steps 162-165 are provided to locate rotary table 14 relative to the probe apparatus 12. The process begins at 160, and in step 162, the position of rotary table 14 is determined and stored on a storage or memory device, such as a device of host computer 18. More specifically, the position of the center of rotary table is determined using stylus 22 of probe apparatus 12. Preferably, a sleeve, aperture, or other receptacle is positioned in the middle of the rotary table into which the stylus can be inserted to provide a precise position of the rotary table 14 with respect to the base of linkage assembly 23. For example, referring to Figure 7, rotating surface 60 of rotary table 14 includes a recessed sleeve or divot 170 positioned in the center of rotating surface 60 and able to receive tip 43 of stylus 22. Once stylus 22 is placed in sleeve 170, the probe controller can read and record the angles of sensors 54 of probe apparatus 12.
  • In next step 164 of Figure 6, multiple configurations of the stylus are read and recorded as the stylus is rotated with the table. Referring to Figure 7, a shallow divot 172 or similar receptacle is preferably placed near the periphery of rotary table 14. The user places tip 43 of stylus 22 in the divot 172 and rotates the table while keeping stylus 22 placed in the divot. As the stylus is rotated by the user, interface 16 reads and stores sensor angle values at multiple stylus positions from both sensors 54 of probe apparatus 12 and sensor 174 of the rotary table (described below). Preferably, at least three different sets of angles are read and stored as coordinates as the stylus is rotated. In an alternative embodiment, the user can move the stylus to multiple points on the periphery of the rotating surface 60 by picking up the stylus and moving it to the new points, rather than rotating surface 60 with the stylus.
  • In step 165, the position of the center of the rotary table 14 with respect to base 33 and the orientation of the plane of the surface of turntable 60 with respect to the orientation of the plane of arm base 33 are preferably determined. In some embodiments, the difference in orientations of the turntable 60 and base 33 can be assumed to be zero if both table 14 and probe apparatus 12 rest on a flat surface. These features of the rotary table are derived from the angle values read in steps 162 and 164 using geometrical techniques, as is well known to those skilled in the art. The center of the table can also be determined just using the data collected in step 164; however, the data from step 162 provides a more accurate determination. Thus, the location and orientation of the rotary table with respect to the base of the probe apparatus is determined.
  • In an alternate embodiment, steps 162-164 can be omitted by coupling the rotary table 14 to base 33 of probe apparatus 12. For example, a connecting member can be coupled to base 33 at one end and to table base 62 at its other end. The rotary table would thus be at a fixed, known position and orientation with reference to the probe apparatus 12, and the locating process of steps 162-166 would not be necessary. In such an embodiment, calibration factors can also be determined and stored for the rotary table, similarly to the starting angles for the home position of the probe apparatus as described in Figure 3a, to compensate for variations in dimensions in individual probe/table apparatuses.
  • Referring again to Figure 7, rotary table 14 includes a sensor 174 which is preferably positioned at the center of the table 14 and is coupled to base 62. The sensor shaft can be coupled to rotating surface 60. Sensor 174 can be an optical encoder as described above or a different type of sensor, such as a potentiometer, resolver, hall effect sensor, etc. Alternatively, sensor 174 can be positioned near the edge of rotating surface 60.
  • Sensor 174 is operative to sense the rotation of rotating surface 60. For example, if the user rotates the surface 60 by  degrees in the direction shown by arrow 176 so that object 20 is at a new position (and orientation), sensor 170 detects this amount of rotation and transmits the information to interface 16 and/or host computer 18. Thus, when the probe apparatus provides angle values when tracing the object at the new position, a coordinate transformation can be applied to the angle data using the known  value to derive the new position and orientation of the object. Such a coordinate transformation is well known to those skilled in the art. This allows the user to rotate the object to gain easier access to different surfaces on the object and then continue tracing the object with minimal distraction and very little loss in accuracy. This avoids the time-consuming and error-prone methods of the prior art, which require a user to provide new coordinate information about the object at its new rotated position by pointing the stylus to several points on the object. The coordinate transformation can be performed by host computer 18 that receives independent data from probe apparatus 12 and rotary table 14. Or, interface 16 can perform the transformation and provide transformed coordinates to host computer 18.
  • Interface 16 is also shown in Figure 7. Rotary table 14 preferably is coupled to interface electronics 16 which are positioned within the probe apparatus 12. Probe apparatus 12 thus provides signals from the sensors of probe apparatus 12 as well as the sensor 174 of rotary table 14 to a single I/O port of host computer 18. Alternatively, the interface electronics can be housed in a discrete box that is separate from probe apparatus 12 and rotary table 14, as shown in Figure 7. Alternatively, interface electronics 16 can be housed within rotary table 14. In yet a different embodiment, rotary table 14 can include sensor interface circuitry only for rotary table 14, and can provide angle information to interface electronics 16.
  • In a different embodiment, rotary table can be provided with its own interface electronics that are independently routed to a second I/O port of host computer 18 that is different from the I/O port receiving information from probe apparatus 12.
  • Referring back to Figure 6, in next step 166, the position of selection template 80 with reference to probe apparatus 12 is sensed and stored. An example of a selection template 80 is shown in Figure 8. Template 80 includes selection areas 82, which can include icons, shapes, letters, numbers, words, etc. The user may position tip 43 of stylus 22 within, for example, icon 180, to activate a function of software that host computer 18 is running or a function of probe apparatus 12 or even rotary table 14. As explained above, template 80 does not require any separate sensing apparatus such as a computer tablet or the like, since the probe apparatus 12 can be used to uniquely locate selection areas 82 and provide commands based on selections of stylus 22.
  • To sense and record the position of selection template 80 with respect to base 33, various methods can be used. For example, the user can position the stylus at a top or bottom boundary 182 and a left or right boundary 184. The host computer would thus be informed of the precise location of a planar, rectilinear template 80 within the working volume of probe apparatus 12. Or, the stylus can be positioned at three reference points, for example, that are located at the comers of the template. The host computer can be provided with predetermined functions that are to be implemented if the stylus is within a specific selection area 82 referenced as a position offset from an edge of template 80. For example, "autotrigger mode" can be activated using the template shown in Figure 8 if stylus tip 43 is first found to be within the template boundaries 182 and 184, and is also found to have an offset within Δx, Δy from the left and top edges (i.e., within selection area 82). Selection area 82 examples of Figure 8 include commands to manipulate mesh representation 78, such as "end mesh", "end line", "erase mesh", etc. Many of these commands are described in greater detail with reference to Figure 11. Other methods can also be used to position template 80 with reference to probe apparatus 12 and to determine functions selected within the template 80. The process of Figure 6 is then complete at 168.
  • Figure 9 is a detailed view of object 20 that is to be traced to develop a mesh representation. Object 20 has a surface 190 shown with surface lines 192 displayed thereon. The user can contact the surface 190 of object 20 with stylus 22 and trace the stylus along these surface lines 192, as shown by arrow 191. Typically, surface lines 192 need not be actually drawn on object 20; the user simply has to trace stylus 22 generally along the surface 190 following paths similar to lines 192. Alternatively, the user can draw or etch surface lines 192 on surface 190 to help to guide stylus 22 on the object. As the user traces surface lines 192, data points are sampled along the surface lines by the sensors 54 of probe apparatus 12, as described below. The data points are then sent from the probe apparatus 12 to host computer 18. The data is sent either sent as raw angle data from interface 16, which the host computer converts to coordinates (x, y, z and roll, pitch, yaw); or, the angle data is converted to coordinate values by interface 16 and then sent to computer system 18.
  • For the method of the present invention, there are general preferred guidelines to follow when tracing surface lines 192 on the surface 190 of an object. Surface lines 192 should be consecutively traced on object 20, i.e., a surface line should not be traced between two other surface lines that have both previously been traced and defined as contour lines (see Figure 10). Also, the data points in a surface line 192 should be entered consecutively, i.e., a point should not be specified between two points that have been previously defined on the same surface line 162. The method of the present invention, however, allows the surface lines to be traced in either of the two possible directions, regardless of the direction that previous surface lines were traced (detailed below).
  • Figure 10 is an illustration of mesh representation 78 (also referred to as a "mesh") that is developed by host computer 18 using the method of the present invention after a user has traced surface lines 192 of object 20 shown in Figure 9. Mesh representation 78 includes contour lines 194 which are computer-generated lines that generally follow corresponding surface lines 192 on object 20 which the user traced. Contour lines 194 each include a number of points 196 which were provided as angle values or coordinates to host computer 18 from probe apparatus 12. Each point 196 describes a corresponding surface point on surface 190 of object 20. Herein, "point" or "data point" refers to the data, such as angle values or coordinates, that describe the current position and orientation of the stylus 22, while "surface point" refers to the corresponding portion on the surface of the object which is pointed to by the stylus 22. Each point, after being converted from angle data to coordinate data, includes x, y, and z position data as well as roll, pitch and yaw orientation data.
  • Computer system 18 receives points 196 and connects the points to form contour lines. Mesh lines 198 are also added to connect the points 196 of one contour line to the points 196 of an adjacent contour line. The creation of mesh lines for the present invention is described in greater detail in the process of Figure 11. Mesh lines 198 and contour lines 194 define triangles 199, as described below. Mesh representation 78 can be manipulated by host computer system 18 in many ways, as is well known by those skilled in the art. For example, mesh representation can be rendered and displayed having color and surface shading to create a realistic-looking 3-D representation; or mesh representation 78 can be rotated, copied, or edited as the user desires using functions of computer system 18.
  • Figure 11 is a flow diagram illustrating step 110 of Figure 2, in which a mesh representation of object 20 is developed by computer system 18 using a preferred method of the present invention. The process begins at 200. In step 202, a start new mesh command is received by host computer system 18 from the user. This command can be entered by the user using standard interface devices or using selection template 80. In next step 204, the process checks if the foot pedal 71 is down, i.e. has been activated by the user. In other embodiments, other activation controls can be checked, such as a button on stylus 22, etc. If the foot pedal is not activated, then the process continues to wait at step 204 for the user to activate the foot pedal. Once the foot pedal is activated, step 206 is implemented, in which the current point pointed to by tip 43 of stylus 22 is input to the host computer system 18 and is added to the current contour line. If this is the first point entered for a line, then that point begins a new contour line.
  • In next step 208, a triangle is created for the current point between the current contour line and the last contour line using the orientation of stylus 22 or other used probe device. The created triangle is also preferably displayed in this step, although the triangle need not be displayed in other embodiments. This step is described in greater detail with reference to Figure 12. One of the advantages of the method of the present invention is that points and triangles are incrementally added to mesh representation 78 and displayed to the user as the user adds each new point when tracing. The user can thus view display screen 76 and quickly determine if a mesh is being created properly during the tracing process, i.e., the user does not have to wait until the entire object is traced before viewing the resulting mesh representation. Another advantage of the present invention is that the orientation of the stylus (or other probe) is used to help create triangles in the mesh. This is described in greater detail below.
  • In next step 210, the process checks if auto-trigger mode has been selected by the user. Auto-trigger mode allows points to be input to computer system 18 from probe apparatus 12 automatically while the user traces surface lines 192. If auto-trigger mode has been selected by the user (either before the current contour line was begun or during the input of the current line), then step 212 is implemented, in which the process checks whether foot pedal 71 is "up", i.e., deactivated. In the preferred embodiment, in auto-trigger mode, points are automatically input to host computer system 18 from probe apparatus 12 as long as the user continues to activate foot pedal 71 (and the stylus moves a minimum distance, explained below). Once the user releases (deactivates) the foot pedal, points will no longer be automatically entered. If the foot pedal is up, then the process continues to step 222, detailed below. If the foot pedal is still down in step 212, the process continues to step 214, where the process checks if the stylus 22 has been traced for the minimum distance. In the preferred embodiment, a point is automatically input to computer system 18 when the stylus 22 has been moved a minimum predetermined distance by the user along a surface line. For example, the minimum distance can be set to 0.2 inches. While auto-trigger mode has been selected and the foot pedal is being activated, a point will be input to computer system 18 every 0.2 inches the user moves stylus 22. In alternate embodiments, other criteria can be used to determined when points are entered. For example, a minimum length of time can be specified, such as 2 seconds. Thus, while in auto-trigger mode and foot pedal 71 is being activated, a new point is automatically input to host computer 18 every 2 seconds, regardless of the current stylus position.
  • If the stylus 22 has not been moved the minimum distance in step 214, then the process returns to step 212 to check whether the foot pedal is still being activated. In actuality, steps 212 and 214 (and 210) can be checked simultaneously by host computer system 18 as "events" which may occur at any time, as is well known to those skilled in the art. A foot pedal deactivation in step 212 takes precedence over the other checks. Once the probe has been moved the minimum distance in step 214, the process returns to step 206 to add the current point to the current line at the current position of stylus tip 43.
  • If auto-trigger mode has not been selected by the user as checked in step 210, then the process checks in step 216 if an "end mesh" command has been entered. An end mesh command indicates that the user is finished entering data and that either the mesh representation is complete or that the user will continue to input data at a later time. Thus, if an end mesh command has been entered, the process is complete at 217. If an end mesh command has not been entered, then, in step 218, the process checks if an "end line" command has been entered by the user. The end line command indicates that the user has finished the current contour line and will enter a new contour line. If an end line command has been entered, the process continues to step 222, detailed below. If no end line command has been entered, then, in step 220, the process checks if the foot pedal is up. In the preferred embodiment, when not in auto-trigger mode, a point is entered by activating the foot pedal once and then deactivating it, i.e., pushing down on the foot pedal and releasing it. If the foot pedal has not been released, then a new point cannot be entered, so the process returns to step 216 to check for an end mesh command, end line command, or a foot pedal deactivation. Similar to steps 210, 212 and 214 described above, steps 216, 218 and 220 can preferably be checked simultaneously. Once the foot pedal has been released in step 220, the process returns to step 204 to check for the foot pedal to be activated again to enter a new data point.
  • If the foot pedal is deactivated in autotrigger mode from step 212, or if an end line command is received in step 218, then step 222 is implemented. In step 222, the mesh representation 78 is closed. Depending on what points have been entered on the current contour line, this may cause additional triangles to be created in the mesh. Step 222 is described in greater detail with reference to Figure 17. In next step 224, the process checks if an end mesh command has been received. This is similar to step 216, described above. If an end mesh command is received, then the process is complete at 217. If no end mesh command is received, then it is assumed that the user wishes to enter another contour line, and, in step 226, the last line is set equal to the current line, and a new current line is ready to be received. The process then returns to step 204 to wait for the foot pedal to be activated.
  • Figure 12 is a flow diagram illustrating step 208 of Figure 11, in which a triangle is created and preferably displayed for the current point between the current line and the last line using the orientation of the probe. During the following explanation, a mesh representation 230 as shown in Figure 13 and additional figures will be referenced. Mesh representation 230 includes four contour lines: line A-F which includes points A, B, C, D, E, and F; line G-J which includes points G, H, I, and J; line K-P which includes points K, L, M, N, O, and P; and line Q-S which includes points Q, R, and S. Mesh lines are shown between the points of each adjacent contour line. The method of the present invention allows the contour lines to be input in any direction, so the lines can be entered, for example, in the order of A-B-C-D-E-F, or in the order of F-E-D-C-B-A. The points of a mesh representation are located relative to each other by host computer 18 by examining the (x, y, z) portion of each point. The roll, pitch, yaw portion of each point is used to find the normal vectors, described below.
  • Referring back to Figure 12, the process begins at 234. In step 236, the process checks if the current contour line is the first line of the mesh representation. If so, then two possible triangles cannot yet be created and one of the triangles selected (as detailed below), so the process is complete at 235. If the current line is not the first line of the mesh in step 236, then, in step 238, the process checks if the current point is the first point of the current line. Since, in the described method, a triangle cannot be created until the second or later point of the current line is entered, the process is complete at 235 if the current point is the first point. If the current point is not the first point, then, in step 240, the process checks if the current point is the second point of the current line. If so, then step 242 is implemented, in which the first point of the last line is decided. Since the last line has two end points, one of those end points is chosen as the first point of the last line. This determines the "meshing direction," i.e., the order of points in the last line which are to be connected with the current line. In the preferred embodiment, the closest point on the last line to the current point is chosen as the first point of the last line. It thus is of no significance in which order the user inputted the points on the last line, since the closest point is chosen. In alternate embodiments, other criteria can determine which point of the last line is chosen as the first point. For example, the process can also check if the points of the last line, when examined in the decided meshing direction starting from the chosen first point, follow a path that is approximately in the same direction the points of the current line. If the directions are not the same, the opposite end point of the last line should be chosen as the first point of the last line.
  • In next step 244, a variable INDEX is set equal to the first point of the last line. INDEX holds the value(s) (i.e. coordinates or angle values) of a particular point in a contour line. After step 244, or if the current point is not the second point of the current line, then step 246 is performed, in which one or more triangles are added between the current line and the last line for the current point. This is described in greater detail with reference to Figure 14.
  • For example, in the mesh representation 230 shown in Figure 13, line A-F is first entered and is then considered the last line. Point G is the current point. The process of Figure 12 ends after step 238 since point G is the first point of the line. Next, point H is input and is considered the current point. Since H is the second point of the current line, step 242 decides that point A will be the first point of the last line, since point A is closer to point H than to point F. Triangles are then added between the last line and the current line, as detailed below.
  • Figure 14 is a flow diagram illustrating step 246 of Figure 12, in which triangles are added between current line and the last line for the current point. The process begins at 250. In step 252, the process checks if INDEX is the last point of the last line. If this condition is true, then no more triangles need be added between the current line and last line, and the process is complete at 258. If INDEX is not the last point of the last line, then, in step 254, the process checks if the distance between INDEX and the current point is less than the distance between INDEX+1 and the last point of the current line ("last point"). This step checks the hypotenuses of two possible triangles that can be added using the current point, as explained below.
  • Figure 15a is a diagrammatic illustration providing a portion of mesh 230 of Figure 13 as an example. Contour line A-F has been previously entered by the user and is designated the last line. Point G is added as the beginning of a new contour line, and starts the current line. Point H is then added, and point A is chosen as the first point of the last line A-F. After point H has been input, two possible triangles can be created between the current line and the last line: triangle ABG and triangle AHG. In this example, INDEX has been set equal to point A, INDEX+1 is the next point after INDEX, i.e., point B, and the last point is point G. Thus, in step 254 of Figure 14, the process checks if the distance between point A (INDEX) and point H (the current point) is less than the distance between point B (INDEX+1) and point G (last point), i.e., if hypotenuse AH is less than hypotenuse BG.
  • Referring back to Figure 14, if the distance between INDEX and the current point has the lesser value, then step 256 is implemented, in which the triangle at (INDEX, current point, last point) is added to the mesh representation. Preferably, when a triangle is added, the points of the triangle are added to a list of triangles for the mesh. Step 256 also adds a normal vector for the added triangle to the list of triangles. The normal vector is described in greater detail below. For example, as shown in Figure 15a, this triangle corresponds to triangle AHG. In the example shown, however, this triangle would not be added, since hypotenuse AH is not less than hypotenuse BG. After step 256, the process is complete at 258.
  • If the distance between INDEX + 1 and last point has the lesser value in step 254, then, in step 260, the triangle at (INDEX, INDEX + 1, last point) is added to the mesh representation. This step is similar to step 256, i.e., the triangle and normal vector are added to the triangle list. As shown in Figure 15a, this triangle corresponds to triangle ABG. In the example of Figure 15a, this triangle would be added, the results of which are shown in Figure 15b. After step 260, INDEX is incremented to the next point on the last line in step 262. For example, INDEX is set equal to point B once triangle ABG is added, and INDEX + 1 thus becomes point C.
  • After step 262, the process returns to step 254 to check the hypotenuses for the new INDEX points. The process is not complete after step 262 since, if step 254 is false, it indicates that more than one triangle can be added for the current point. Thus, additional triangles are added by checking the conditions of step 254 with the new INDEX point.
  • For example, in Figure 15b, triangle ABG has been added. INDEX is now point B, and INDEX + 1 is point C. Step 254 checks if hypotenuse BH has a smaller length than hypotenuse CG. In this example, hypotenuse CG has a smaller length, so triangle BCG is added to the mesh representation, as shown in Figure 15c. INDEX is again incremented, and thus is now point C. In step 254, the process checks if hypotenuse CH has a smaller length than hypotenuse DG. Hypotenuse CH is smaller, so step 256 adds triangle CHG, as shown in Figure 15d. The process is then complete at 258, so that a new point is eventually input by the user in step 206 of Figure 11. Process 246 is then again implemented for new point I as the current point, as shown in Figure 15d. In step 254 of Figure 14, the process checks if hypotenuse CI has less length than hypotenuse DH. DH has less length, so the triangle CDH is added in step 260 and INDEX is incremented in step 262. As shown in Figure 15e, triangles are added until the last point J of the current line is input. A new contour line is then begun with the input of points K and L, and the last line is set to line G-J. Triangles continue to be added to mesh representation 230 in a similar fashion. Thus, in the developed mesh representation of the present invention, a triangle includes one point from the current contour line, one point from the last contour line, and a third point that is either from the current line or the last line, depending on the distances between the examined hypotenuses.
  • In alternate embodiments, step 254 can check for different conditions to determine which triangle to add to the mesh representation. For example, the area of triangle (INDEX, current point, last point) can be compared to the area of triangle (INDEX, INDEX + 1, last point). The triangle with the smallest area can be added to the mesh. Alternatively, the perimeter distance of the two possible triangles can be compared, where the triangle with the smaller perimeter distance is added to the mesh representation. Other conditions can be checked in other embodiments.
  • When a triangle is added to the mesh representation in step 256 or step 260, a normal vector for that triangle is also determined. Figure 16 shows stylus 22 tracing a surface line 192 on object 20. A portion of mesh representation 78 that is being developed in host computer 18 is also shown superimposed on the corresponding surface portion of object 20. Triangles 199 are added to the mesh representation 78 as stylus 22 moves. A normal vector 270 is also determined for each added triangle 199. The normal vector is used by rendering processes and other processes that manipulate a mesh representation to determine which side of a triangle 199 (or other polygon) is facing "outward", i.e. which side of the triangle is the exterior surface of the 3-D object represented by the mesh representation. The normal vector 270 points outward to show which side of a triangle is the exterior surface. For example, processes can use the normal vector information to provide shadows and shading on a rendered object from a virtual light source.
  • In the present invention, the normal vector 270 for a triangle is quickly and easily determined. The x, y and z coordinates of the points of a triangle 199 define the position of the triangle in space, but do not define the orientation of the triangle. Thus the position of the normal vector is known, but not the orientation of the vector. However, since the stylus of the preferred embodiment has five degrees of freedom, the orientation of the stylus is known and recorded in the points as well as the position. The orientation of a triangle can thus be determined from the orientation coordinates of roll, pitch, and yaw included in each point. Preferably, the orientation of a normal vector is defined as opposite to the orientation of the stylus at the time when the stylus is adding the points of the triangle. This assumes that the external surface of object 20 is being traced (as shown in Figure 16). In other embodiments, the normal vector can be defined as the same orientation as the stylus. The orientation coordinates of 1-3 points of triangle 199 can be examined to determine the normal vector; since all of these points were traced by the user from the same side of the object (the exterior side), any of the points can be used to determine this direction.
  • Figure 17 is a flow diagram illustrating step 222 of Figure 11, in which a close mesh process is implemented. The process begins at 274. In step 276, the process checks if INDEX is the last point of the last line. If so, then the process is complete at 278. If INDEX is not the last point of the last line, then, in step 280, a triangle (INDEX, INDEX + 1, current point) is added to the mesh representation and the triangle list with a normal vector, similar to steps 256 and 260 described with reference to Figure 14. In next step 282, INDEX is incremented to the next point of the last line, and the process returns to step 276 to check if INDEX is the last point of the last line. An example of this process is described with reference to Figures 18a and 18b.
  • Figure 18a is a diagrammatic illustration showing a portion of a mesh representation 284 which makes use of the close mesh process of Figure 17. Line A-F is the last line, line G-I is the current line and point C is INDEX. The user has indicated that point I is the last point of the current line with an end line command; thus, the close mesh procedure of Figure 17 is implemented. Since point C is not the last point of the last line, step 280 of Figure 17 adds the triangle at (INDEX, INDEX + 1, current point), which in this example is triangle CDI. INDEX is then incremented in step 282. In the next iteration, triangle DEI is added, and in the final iteration, triangle EFI is added. At that stage in the iteration, INDEX (point F) is found to be the last point of the last line in step 276, so that the process is complete at 278. The final mesh representation 284 is shown in Figure 18b.
  • Figure 19 is a flow diagram illustrating a preferred assembly process 300 for assembling the precision linkages and joints of probe apparatus 12 or a similar device having such linkages and joints. The process begins at 302. In step 304, joint fixtures are provided at a precise distance apart from each other and within a precise angle of each other. Such joint fixtures are adapted to secure a joint in place, and are well known to those skilled in the art. The precise distance is the desired length of a linkage in the linkage assembly. The precise angle is the desired angle or offset from a linear position between the joints. In next step 306, a joint-linkage assembly is connected to the fixtures such that the joints in the assembly are positioned the precise distance and angle apart. For example, a joint linkage assembly can be connected that includes joint members 24, 26, and 28 and linkages 30 and 32 as shown in Figure 1. The linkages are preferably loosely connected to the joints so that the joint members can be adjusted to fit into the joint fixtures. In step 308, the linkages are bonded to the joint members at the precise distance and angle. Such a process is well known to those skilled in the art. The bonding process provides negligible residual stress, such that when the joint members are removed from the joint fixtures, they will not deflect or flex.
  • For example, Figure 20 is a schematic diagram showing joint fixtures 312a and 312b. The joint fixtures are provided a precise distance d apart from one another, where d is a desired length for a linkage in the joint-linkage assembly. The fixtures are also provided a precise angle α offset from each other, if such an offset is desired. The joint fixtures can be coupled together by member 313 to provide a precise position of the fixtures relative to each other. Joint-linkage assembly 314 is placed in the fixtures such that each joint member 316a and 316b is in a fixture and secured in place. After the joint members 316 have been secured, linkage 318 is bonded in place. The described thus provides a simple, inexpensive method for assembling joints and linkages with a high degree of accuracy.
  • Linkage 318 which is assembled by process 300 and linkages 30 and 32 of the probe apparatus of Figure 1 are made of graphite in the preferred embodiment of the present invention. Graphite allows linkages to be have a lighter weight, stiffer structure, and be far more temperature stable than linkages of the prior art, which are typically made from aluminum. By using linkages made of graphite, a lightweight, easy to use and precise instrument that retains its precision over time is the result. In addition, graphite works well in the bonding assembly process described in Figure 19, since graphite linkages are not as well adapted for other fastening processes. For example, graphite is not well suited to be screwed into joint members or similarly fastened with rotary or linear tension.
  • Figure 21a and 21b illustrate a front view and a side view, respectively, of a multistage stop joint 320 for the present invention. The multistage stop of the present invention allows a linkage or probe of probe apparatus 12, such as stylus 22, to be moved greater than 360 degrees about an axis provided by the multistage stop joint. This allows a greater freedom of movement for the user when tracing object 20 with the probe apparatus.
  • Joint 320 includes a first member 322 of joint 320 and a second member 324 of joint 320. In the example of Figures 21a and 21b, first member 322 is coupled to stylus 22; first member can be coupled to other linkages 30, 32, or 34 of probe apparatus 12 as well. Typically, a user can rotate stylus 22 about an axis A1 by rotating first member 322 about axis A1. Second member 324 typically stays fixed in place on linkage assembly 23. Figure 21b shows second member 324 coupled to linkage 30. Alternatively, first member 322 can remain fixed while second member 324 is rotated about axis A1. First member 322 includes a first stop 326 and second member includes a second stop 328. In addition, a sensor 336 can be positioned in second member 324 which is coupled to first member 322 via shaft 337.
  • A middle member 330 is preferably coupled to first member 322. Alternatively, middle member 330 can be coupled to second member 324. Middle member 326 rotates about axis A1 independently of first member 322 and second member 324 and includes a third stop 332.
  • When first member 322 is rotated about axis A1 in, for example, the counterclockwise direction indicated by arrow 334, first stop 326 eventually impacts third stop 332. If third stop 322 has no obstructions in its path, the middle member 330 is rotated in conjunction first member 322 in the direction of arrow 334. Once third stop impacts second stop 328, however, no further rotation of first member 322 and middle member 330 is allowed, since second member 324 is fixed in place. This configuration of middle member impacting second stop 328 is shown in Figure 21a.
  • First member 322 can be rotated in the direction opposite to arrow 334 (clockwise) from the position shown in Figure 21a. First member 322 is allowed to rotate clockwise almost 360 degrees before impacting third guide 322. Both first member 322 and middle member 330 are then rotated in conjunction in the clockwise direction. Again, the middle member 330 is allowed almost 360 degrees of rotation before impacting second guide 324, which obstructs any further rotation.
  • Thus, first member 322 is allowed almost 720 degrees of rotation (i.e., two full rotations) in the direction opposite to arrow 334 from the position shown in Figure 21 a until second stop is impacted. The multistage stop joint 320 thus allows a greater range of motion to stylus 22 and any other linkages that are coupled to similar joints. The stylus 22 is still limited in its movement by stops, however, which is important in that a wire bundle that is routed through joint 320 does not become overly stressed or twisted (which would occur if joint 320 had no stops at all).
  • While this invention has been described in terms of several preferred embodiments, it is contemplated that alterations, modifications and permutations thereof will become apparent to those skilled in the art upon a reading of the specification and study of the drawings. For example, a wide variety of different types of multi-degree-of-freedom sensing apparatuses, besides the disclosed probe apparatus, can be used with several features of the present invention, such as the rotary table, zeroing procedure, selection template, multistage stop joint, and mesh developing procedure. In addition, particular ones of the various features disclosed herein can be selected for use in particular applications alone or in combination with the other inventive features disclosed herein. In addition, the probe apparatus and other methods of the present invention, such as the calibration method, zeroing method, can be used for applications other than digitizing 3-D objects. For example, the probe apparatus 12 can be used to control objects, such as a virtual stylus, in a virtual reality simulation.
  • Furthermore, certain terminology has been used for the purposes of descriptive clarity, and not to limit the present invention. It is therefore intended that the following appended claims include all such alterations, modifications and permutations as fall within the true spirit and scope of the present invention.

Claims (42)

  1. A method for calibrating a probe apparatus which provides three-dimensional position and orientation data to a computer system, said probe apparatus including a probe coupled to a mechanical linkage assembly including a plurality of joints, said mechanical linkage assembly being supported by a support base, wherein said probe is moveable within a selected volume, and wherein sensors coupled to said mechanical linkage assembly are operative to sense joint angles related to a position and orientation of said probe and provide joint angle data to said computer system, the method comprising:
    (a) positioning said probe such that a known point on said probe is located at an arbitrary location within said selected volume with respect to said support base;
    (b) varying an orientation of said probe to move a plurality of joints of said mechanical linkage assembly while maintaining said known point on said probe at said arbitrary location;
    (c) sampling sets of data at a plurality of said orientations of said probe as said orientation of said probe is varied about said arbitrary point, said sets of data being provided by said sensors and describing different configurations of angles of said joints;
    (d) determining spatial coordinates for said known point on said probe at each of said plurality of orientations of said probe;
    (e) determining an error value between said spatial coordinates determined for each of said plurality of said orientations; and
    (f) increasing the accuracy of position and orientation data provided by said probe apparatus by determining calibration parameters based on said error values, said calibration parameters being used when determining said position and orientation of said probe in normal usage.
  2. A method as recited in claim 1 further comprising loading previous calibration parameters from a memory device.
  3. A method as recited in claim 2 wherein said determining spatial coordinates includes adjusting said previous calibration parameters based on said error values and using kinematic equations in a mathematical representation of said probe, and wherein each of said error values represents an inaccuracy in said mathematical representation, wherein said calibration parameters are to be used in calculation of said kinematic equations for said probe when determining said position and orientation of said probe in normal usage.
  4. A method as recited in any of claims 2-3 wherein said previous calibration parameters are nominal calibration parameters with assumed ideal values when said probe apparatus is first being calibrated.
  5. A method as recited in any of claims 3-4 wherein said adjusted calibration parameters are stored such that said adjusted calibration parameters may be later retrieved and used during operation of said probe apparatus, wherein said adjusted calibration parameters are stored on an EPROM memory device.
  6. A method as recited in any of the preceding claims, further comprising repeating said positioning said probe, said varying an orientation, said sampling, said determining spatial coordinates, and said determining an error value when said probe is placed at a different position in said selected volume and using said plurality of sampled orientations from both of said positions when determining said error values.
  7. A method as recited in any of the preceding claims, wherein said known point on said probe is a tip of said probe.
  8. A rotary table for use with a three-dimensional digitizing system, said digitizing system including a probe apparatus for measuring three-dimensional coordinates from an object resting on said rotary table, wherein a probe of said probe apparatus is used to physically trace a surface of said object to provide said three-dimensional coordinates to a host computer system, the rotary table comprising:
    a support base;
    a turntable coupled to said base and operative to rotate about an axis positioned approximately perpendicularly to a surface of said turntable, said turntable for receiving on its surface said object to be measured and allowing a user to move said turntable and said object about said axis during or between said measuring of said coordinates of said object when necessary to allow convenient tracing of said surface of said object with said probe of said probe apparatus; and
    a sensor coupled to said support base and operative to measure an angular rotation of said turntable, wherein said sensor provides a signal indicative of said angular rotation to a host computer system, said host computer system being operative to include said angular rotation of said turntable in a determination of the position and orientation of said probe of said probe apparatus with respect to said object on said rotary table when said probe is proximate to said object, said angular rotation being included in said determination when said probe has contacted said object before and after said turntable has been rotated.
  9. A rotary table as recited in any of claims 8 wherein said turntable includes a receptacle positioned near a periphery of said turntable for receiving said probe in an initialization procedure for locating said turntable relative to said probe apparatus.
  10. A rotary table as recited in any of claims 8-9 wherein said turntable includes a receptacle positioned near the center of said turntable for receiving said probe in an initialization procedure for locating said turntable relative to said probe apparatus.
  11. A rotary table as recited in any of claims 8-10 wherein said support base is coupled to a base of said probe apparatus such that a position and orientation of said rotary table is fixed relative to said probe apparatus.
  12. A rotary table as recited in any of claims 8-11 wherein said probe of said probe apparatus is a stylus having a tip for contacting said object.
  13. A rotary table as recited in claim 9 wherein said receptacle receives said probe such that when said turntable is rotated in said initialization procedure, said probe rotates with said turntable and a plurality of positions and orientations of said probe are sampled during said rotation to locate said rotary table with respect to said probe apparatus.
  14. A rotary table as recited in any of claims 8-13 wherein said turntable is manually rotated by said user to allow said convenient tracing of said surface of said object by said probe.
  15. A method for locating the position and orientation of a rotary table apparatus with reference to a probe apparatus, said rotary table and said probe apparatus used for measuring three-dimensional geometry of a physical object placed on a surface of said rotary table apparatus, the method comprising:
    providing a base portion of said rotary table apparatus on a first surface;
    providing a base of said probe apparatus on said first surface, said probe apparatus including a probe connected to said base of said probe apparatus by an arm linkage including rotary joints that allow said probe to move in a plurality of degrees of freedom;
    placing a tip of said probe of said probe apparatus on a fixed location of a turntable portion of said rotary table apparatus;
    rotating said turntable portion of said rotary table apparatus about a central axis of said turntable portion while maintaining said probe at said fixed location on said turntable portion such that said fixed location and said probe are moved through a plurality of angular positions in at least a portion of a circle;
    sampling a plurality of positions and orientations of said probe using sensors included in said linkage of said probe apparatus as said turntable is rotated;
    detecting a different angular position of said turntable about said central axis at each of said sampled plurality of positions and orientations of said probe, wherein a sensor included in said turntable senses said angular position; and
    determining the position and orientation of said surface of said rotary table apparatus relative to said probe apparatus utilizing said sampled plurality of positions and orientations of said probe and said sampled angular positions of said turntable, thereby allowing new rotary positions of said physical object to be determined during said measuring of said three-dimensional geometry of said object after said rotary table and said object have been rotated during said measuring.
  16. A method as recited in claim 15 wherein said probe is a stylus held by a hand of a user, and wherein said fixed location on said turntable is a receptacle shaped to receive a tip of said stylus and to hold said stylus tip at said fixed location when said turntable is rotated.
  17. A method as recited in any of claims 15-16 wherein said probe apparatus is coupled to a computer system to receive said position and orientation data from said probe apparatus, and wherein said sampling is performed by a microprocessor provided locally to said probe apparatus and separate from said computer system.
  18. A method as recited in any of claims 16-17 wherein said receptacle is positioned near a periphery of said turntable portion of said rotary table apparatus.
  19. A method as recited in any of claims 15-18 further comprising placing said tip of said stylus at a fixed center location of said turntable portion of said rotary table apparatus and sampling data from said probe sensors to locate said rotary table apparatus relative to said probe apparatus before said placing of said probe at said fixed location of said turntable portion.
  20. A method for developing a mesh representation of a three-dimensional object by a computer system, the method comprising:
    receiving a data point from a probe corresponding to a surface point on a surface of a three-dimensional (3-D) object;
    adding said data point to an end of a current contour line of a mesh representation, said current contour line including a plurality of data points corresponding to surface points on said surface of said 3-D object; and
    creating a triangle in said mesh representation when a previous contour line exists in said mesh representation, said previous contour line being adjacent to said current contour line and including a plurality of data points corresponding to surface points on said 3-D object, said triangle including a data point of said current contour line, a data point of a previous contour line, and a third data point from either said current contour line or said previous contour line,.
  21. A method as recited in claim 20 wherein said data point of said current contour line, said data point of said previous contour line, and said third data point are chosen based on the distance between data points of said current contour line and data points of said previous contour line.
  22. A method as recited in any of claims 20-21 wherein said received data point, an index data point of said previous contour line, and a prior data point of said current contour line immediately previous to said received data point are included in said triangle when a distance between said received data point and said index data point is less than the distance between a next data point on said previous contour line immediately following said index data point and said prior data point, and wherein three sides of said created triangle include one side that is a portion of either said current contour line or said previous contour line, and said two remaining sides are mesh lines connecting said current contour line to said previous contour line.
  23. A method as recited in claim 22 wherein said prior data point, said index data point, and said next data point are included in said triangle when said distance between said next data point and said prior data point is less than said distance between said received data point and said index data point.
  24. A method as recited in any of claims 21-23 further comprising a step of assigning a normal vector to said triangle, said normal vector indicating an exterior surface of said mesh representation, wherein an orientation of said normal vector is based on orientation data included in at least one of said data points of said triangle.
  25. A method as recited in any of claims 21-24 further comprising a step of displaying said triangle by drawing sides to said triangle between said received data point, said data point of said previous contour line, and said third point after said triangle is created.
  26. A method as recited in any of claims 21-25 wherein said received data point is received by a host computer, and further comprising a step of providing said received data point to said host computer from said probe as a user is tracing said probe across said surface of said object, wherein said data points of said current contour line and said previous contour line are received successively along each respective contour line.
  27. A method as recited in any of claims 26 wherein said received data point is provided to said host computer after said user traces said probe a minimum distance on said object.
  28. A method as recited in any of claims 21-27 wherein when said received data point is a last data point of said current contour line, a triangle is created for each data point of said previous contour line that is not included in a triangle.
  29. A method as recited in any of claims 21-28 wherein when said received data point is a second data point of said current contour line, a meshing direction is determined from said previous contour line and said current contour line, said meshing direction indicating from which end of said previous contour line to start creating said triangles.
  30. A method as recited in any of claims 20-29 further comprising repeating said receiving a data point, said adding said data point to an end of a current contour line, and said creating a triangle in said mesh representation, wherein said triangle created upon said repetition includes one side that is a side of said triangle previously created.
  31. A method for providing a selection template for receiving commands from a probe apparatus used for measuring three-dimensional coordinates, the method comprising:
    defining a template region within a selected volume as said selection template, wherein a probe included in said probe apparatus is movable within said selected volume;
    defining a selection region within said template region and associating said selection region with a command to a host computer coupled to said probe apparatus, said command being used to select a function of said host computer or of said probe apparatus and not being used to determine the position of said stylus; and
    providing said command associated with said selection region to said host computer to select said function of said host computer or of said probe apparatus, wherein said command is provided when said probe of said probe apparatus is detected within said selection region.
  32. A method as recited in claim 31 wherein a plurality of selection regions are defined within said template region, each of said selection regions being associated with a different command.
  33. A method as recited in any of claims 31-32 wherein said probe is a stylus having a tip, such that said command is provided to said host computer when said tip of said stylus is detected within said selection area, and wherein at least one of said selection regions includes indicia describing said command associated with said selection region.
  34. A method as recited in claim 33 wherein said probe apparatus includes an arm linkage assembly having a plurality of joints and a plurality of linkages connecting said joints, wherein said stylus is positioned at one end of said arm linkage assembly.
  35. A method as recited in any of claims 31-34 wherein said probe apparatus is operative to digitize a three-dimensional object into a geometric representation of said object when said object is traced with said probe, said geometric representation being developed by said host computer from data provided by said probe apparatus.
  36. A method as recited in claim 35 wherein said geometric representation is a mesh representation, and wherein said command includes a command to manipulate said mesh representation of said object.
  37. A method as recited in any of claims 31-36 wherein one of said commands is operative to select one of at least two modes of said probe apparatus, wherein said modes determine the manner in which said three-dimensional coordinates are input to said host computer from said probe apparatus, wherein one of said modes is autotrigger mode, in which a coordinate is automatically input to said host computer from said probe apparatus at a predetermined distance from a previously input coordinate.
  38. A method as recited in any of claims 31-37 wherein said commands include at least one of: a command to save a set of coordinates input to said host computer by said probe apparatus on a storage device, a command to load a previously stored set of coordinates from said storage device into a memory device of said host computer, and a command to rotate said geometric representation of said object and a command to zoom a view of said geometric representation of said object displayed on said host computer.
  39. A method for zeroing transducers of a probe apparatus of a three dimensional coordinate measuring system, said probe apparatus including a linkage arm assembly having a probe positioned at a first end, a support base positioned at a second end, and a plurality of joints positioned between said probe and said base, said rotary joints being coupled to a plurality of relative sensors, each operative to measure an angle differential resulting from movement of an associated joint, the method comprising:
    placing an index pulse at a predetermined position in a sensing range of each of said relative sensors such that each of said index pulses corresponds to a known angle of an associated joint;
    moving said probe about said workspace such that said index pulse of each of said sensors is sensed by said associated sensors; and
    upon detecting said index pulse for a sensor, assigning a predefined reference angle to an said joint associated with said detected index pulse.
  40. A method as recited in claim 39 wherein said predefined reference angle is set as a zero angle.
  41. A method as recited in any of claims 39-40wherein said index pulse is detected for at least one of said sensors when said probe is moved between two locations.
  42. A method as recited in any of claims 39-41 wherein said index pulse is detected for each of said sensors when said probe is moved between two predetermined locations, said locations being selected to assure that each of said index pulses of said rotary joints is sensed.
EP03028886A 1995-08-07 1996-07-29 Method and apparatus for tracking position and orientation of a stylus and for digitizing a 3-D object Expired - Lifetime EP1424538B1 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/512,084 US5724264A (en) 1993-07-16 1995-08-07 Method and apparatus for tracking the position and orientation of a stylus and for digitizing a 3-D object
US512084 1995-08-07
EP96926179A EP0843808B1 (en) 1995-08-07 1996-07-29 Method for zeroing transducers of a probe apparatus of a 3-d coordinate measuring system

Related Parent Applications (2)

Application Number Title Priority Date Filing Date
EP96926179A Division EP0843808B1 (en) 1995-08-07 1996-07-29 Method for zeroing transducers of a probe apparatus of a 3-d coordinate measuring system
EP96926179.1 Division 1997-02-20

Publications (2)

Publication Number Publication Date
EP1424538A1 true EP1424538A1 (en) 2004-06-02
EP1424538B1 EP1424538B1 (en) 2010-07-07

Family

ID=24037603

Family Applications (2)

Application Number Title Priority Date Filing Date
EP96926179A Expired - Lifetime EP0843808B1 (en) 1995-08-07 1996-07-29 Method for zeroing transducers of a probe apparatus of a 3-d coordinate measuring system
EP03028886A Expired - Lifetime EP1424538B1 (en) 1995-08-07 1996-07-29 Method and apparatus for tracking position and orientation of a stylus and for digitizing a 3-D object

Family Applications Before (1)

Application Number Title Priority Date Filing Date
EP96926179A Expired - Lifetime EP0843808B1 (en) 1995-08-07 1996-07-29 Method for zeroing transducers of a probe apparatus of a 3-d coordinate measuring system

Country Status (6)

Country Link
US (5) US5724264A (en)
EP (2) EP0843808B1 (en)
CA (1) CA2228587C (en)
DE (2) DE69638212D1 (en)
ES (1) ES2213181T3 (en)
WO (1) WO1997006410A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9274651B2 (en) 2012-11-05 2016-03-01 Hewlett-Packard Development Company, L.P. Apparatus to track a pointing device

Families Citing this family (347)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5889670A (en) * 1991-10-24 1999-03-30 Immersion Corporation Method and apparatus for tactilely responsive user interface
US5629594A (en) * 1992-12-02 1997-05-13 Cybernet Systems Corporation Force feedback system
US6535794B1 (en) 1993-02-23 2003-03-18 Faro Technologoies Inc. Method of generating an error map for calibration of a robot or multi-axis machining center
US5724264A (en) 1993-07-16 1998-03-03 Immersion Human Interface Corp. Method and apparatus for tracking the position and orientation of a stylus and for digitizing a 3-D object
US5625576A (en) * 1993-10-01 1997-04-29 Massachusetts Institute Of Technology Force reflecting haptic interface
US5623582A (en) * 1994-07-14 1997-04-22 Immersion Human Interface Corporation Computer interface or control input device for laparoscopic surgical instrument and other elongated mechanical objects
US6697748B1 (en) 1995-08-07 2004-02-24 Immersion Corporation Digitizing system and rotary table for determining 3-D geometry of an object
JP2000501033A (en) 1995-11-30 2000-02-02 ヴァーチャル テクノロジーズ インコーポレイテッド Human / machine interface with tactile feedback
CA2246340C (en) * 1996-02-15 2005-08-16 Biosense, Inc. Catheter calibration and usage monitoring system
SE519661C2 (en) * 1996-02-23 2003-03-25 Immersion Corp Pointing devices and method for marking graphic details on a display with sensory feedback upon finding said detail
US6111577A (en) * 1996-04-04 2000-08-29 Massachusetts Institute Of Technology Method and apparatus for determining forces to be applied to a user through a haptic interface
US7225404B1 (en) 1996-04-04 2007-05-29 Massachusetts Institute Of Technology Method and apparatus for determining forces to be applied to a user through a haptic interface
US6374255B1 (en) 1996-05-21 2002-04-16 Immersion Corporation Haptic authoring
US6084587A (en) * 1996-08-02 2000-07-04 Sensable Technologies, Inc. Method and apparatus for generating and interfacing with a haptic virtual reality environment
US6929481B1 (en) * 1996-09-04 2005-08-16 Immersion Medical, Inc. Interface device and method for interfacing instruments to medical procedure simulation systems
WO1998010387A2 (en) * 1996-09-04 1998-03-12 Ht Medical Systems, Inc. Interventional radiology interface apparatus and method
US7815436B2 (en) 1996-09-04 2010-10-19 Immersion Corporation Surgical simulation interface device and method
US6024576A (en) * 1996-09-06 2000-02-15 Immersion Corporation Hemispherical, high bandwidth mechanical interface for computer systems
JPH10219728A (en) * 1997-01-31 1998-08-18 Komatsu Ltd Interference preventive device for construction equipment
US6424877B1 (en) * 1997-04-04 2002-07-23 Minolta Co., Ltd. Reproduction apparatus
US6073056A (en) * 1997-04-08 2000-06-06 Larry J. Winget Method and system for building a data model of a physical part in a data format useful for and reproduction of the part
US6052628A (en) * 1997-08-08 2000-04-18 Hong; Jaiwei Method and system for continuous motion digital probe routing
US5953687A (en) * 1997-08-18 1999-09-14 Giddings & Lewis, Inc. Method and apparatus for displaying active probe tip status of a coordinate measuring machine
US6281651B1 (en) * 1997-11-03 2001-08-28 Immersion Corporation Haptic pointing devices
US6212784B1 (en) * 1997-11-10 2001-04-10 Danny R. Pittman Three-dimensional robotic scribing system
US6256011B1 (en) * 1997-12-03 2001-07-03 Immersion Corporation Multi-function control device with force feedback
US6181329B1 (en) * 1997-12-23 2001-01-30 Ricoh Company, Ltd. Method and apparatus for tracking a hand-held writing instrument with multiple sensors that are calibrated by placing the writing instrument in predetermined positions with respect to the writing surface
US6191796B1 (en) 1998-01-21 2001-02-20 Sensable Technologies, Inc. Method and apparatus for generating and interfacing with rigid and deformable surfaces in a haptic virtual reality environment
IL123073A0 (en) 1998-01-26 1998-09-24 Simbionix Ltd Endoscopic tutorial system
EP1051698B1 (en) 1998-01-28 2018-01-17 Immersion Medical, Inc. Interface device and method for interfacing instruments to vascular access simulation systems
EP1103041B1 (en) * 1998-01-28 2016-03-23 Immersion Medical, Inc. Interface device and method for interfacing instruments to medical procedure simulation system
US6112133A (en) * 1998-02-27 2000-08-29 Imcs, Inc. Visual system and method for generating a CNC program for machining parts with planar and curvilinear surfaces
US6067077A (en) * 1998-04-10 2000-05-23 Immersion Corporation Position sensing for force feedback devices
JP2000076460A (en) 1998-06-18 2000-03-14 Minolta Co Ltd Monitor display device
US6131299A (en) * 1998-07-01 2000-10-17 Faro Technologies, Inc. Display device for a coordinate measurement machine
US5978748A (en) * 1998-07-07 1999-11-02 Faro Technologies, Inc. Host independent articulated arm
US6219928B1 (en) 1998-07-08 2001-04-24 Faro Technologies Inc. Serial network for coordinate measurement apparatus
GB2375026B (en) * 1998-07-08 2002-12-18 Faro Tech Inc Serial network for coordinate measurement apparatus
US6417638B1 (en) * 1998-07-17 2002-07-09 Sensable Technologies, Inc. Force reflecting haptic interface
US6421048B1 (en) 1998-07-17 2002-07-16 Sensable Technologies, Inc. Systems and methods for interacting with virtual objects in a haptic virtual reality environment
US6985133B1 (en) 1998-07-17 2006-01-10 Sensable Technologies, Inc. Force reflecting haptic interface
US6552722B1 (en) 1998-07-17 2003-04-22 Sensable Technologies, Inc. Systems and methods for sculpting virtual objects in a haptic virtual reality environment
US6298312B1 (en) * 1998-07-22 2001-10-02 Taiwan Semiconductor Manufacturing Company, Ltd. Method of determining the tip angle of a probe card needle
US6195618B1 (en) 1998-10-15 2001-02-27 Microscribe, Llc Component position verification using a probe apparatus
AU3291499A (en) * 1998-11-05 2000-05-29 Imcs, Inc. Visual cnc program for generating machining parts
US6650338B1 (en) 1998-11-24 2003-11-18 Interval Research Corporation Haptic interaction with video and image data
US6253458B1 (en) * 1998-12-08 2001-07-03 Faro Technologies, Inc. Adjustable counterbalance mechanism for a coordinate measurement machine
US6781569B1 (en) * 1999-06-11 2004-08-24 Immersion Corporation Hand controller
US6302987B1 (en) * 1999-04-05 2001-10-16 General Electric Company High voltage polymer processing methods and power feed-through bushing applications
US6275742B1 (en) * 1999-04-16 2001-08-14 Berkeley Process Control, Inc. Wafer aligner system
US6903721B2 (en) * 1999-05-11 2005-06-07 Immersion Corporation Method and apparatus for compensating for position slip in interface devices
GB2350429B (en) * 1999-05-28 2003-11-12 Taylor Hobson Ltd A metrological instrument
US6545661B1 (en) 1999-06-21 2003-04-08 Midway Amusement Games, Llc Video game system having a control unit with an accelerometer for controlling a video game
US6564168B1 (en) 1999-09-14 2003-05-13 Immersion Corporation High-resolution optical encoder with phased-array photodetectors
US6839663B1 (en) 1999-09-30 2005-01-04 Texas Tech University Haptic rendering of volumetric soft-bodies objects
US6693626B1 (en) * 1999-12-07 2004-02-17 Immersion Corporation Haptic feedback using a keyboard device
ES2201957T3 (en) * 1999-12-18 2004-04-01 Dr.Ing. H.C.F. Porsche Aktiengesellschaft MEASUREMENT MECHANISM FOR CONSTRUCTION GROUPS, IN PARTICULAR CONSTRUCTION GROUPS OF BODIES.
CA2333501A1 (en) * 2000-02-01 2001-08-01 Faro Technologies Inc. Method, system and storage medium for providing an executable program to a coordinate measurement system
DE10008133B4 (en) * 2000-02-22 2006-06-14 Zett-Mess-Technik Gmbh Height measuring and marking device
WO2001084530A1 (en) * 2000-04-28 2001-11-08 Texas Tech University Haptic virtual environments
US7098888B2 (en) * 2000-04-28 2006-08-29 Texas Tech University System Development of stereoscopic-haptic virtual environments
DE60134983D1 (en) * 2000-05-31 2008-09-04 Unova Ind Automation Sys Inc METHOD AND DEVICE FOR CALIBRATING A ROTARY AXLE
US6565497B1 (en) * 2000-06-23 2003-05-20 Yamazaki Mazak Kabushiki Kaisha Complex machining machine tool
US6625454B1 (en) 2000-08-04 2003-09-23 Wireless Valley Communications, Inc. Method and system for designing or deploying a communications network which considers frequency dependent effects
US6639684B1 (en) * 2000-09-13 2003-10-28 Nextengine, Inc. Digitizer using intensity gradient to image features of three-dimensional objects
US6973622B1 (en) 2000-09-25 2005-12-06 Wireless Valley Communications, Inc. System and method for design, tracking, measurement, prediction and optimization of data communication networks
US7006084B1 (en) 2000-09-26 2006-02-28 Faro Technologies, Inc. Method and system for computer aided manufacturing measurement analysis
US6668466B1 (en) * 2000-10-19 2003-12-30 Sandia Corporation Highly accurate articulated coordinate measuring machine
US6519860B1 (en) * 2000-10-19 2003-02-18 Sandia Corporation Position feedback control system
US6867770B2 (en) * 2000-12-14 2005-03-15 Sensable Technologies, Inc. Systems and methods for voxel warping
JP2004533665A (en) * 2000-12-18 2004-11-04 ワイアレス バレー コミュニケーションズ インコーポレイテッド Interpretation of place text and graphics, and measurements
US6958752B2 (en) 2001-01-08 2005-10-25 Sensable Technologies, Inc. Systems and methods for three-dimensional modeling
DE10102413C1 (en) * 2001-01-16 2002-01-17 Felsomat Gmbh & Co Kg Automation cell for workpiece handling has gripper displaced via portal within work space with 2 linear axes driven by linear motors and second gripper displaced via projecting portal
US6796048B2 (en) 2001-02-01 2004-09-28 Faro Technologies, Inc. Method, system and storage medium for providing a tool kit for a coordinate measurement system
EP1701234B1 (en) * 2001-02-02 2008-09-03 Renishaw plc Machine tool probe configurable by stylus deflection
DE50204091D1 (en) * 2001-04-22 2005-10-06 Neuronics Ag Zuerich articulated robot
US7202851B2 (en) * 2001-05-04 2007-04-10 Immersion Medical Inc. Haptic interface for palpation simulation
IL143255A (en) 2001-05-20 2015-09-24 Simbionix Ltd Endoscopic ultrasonography simulation
US6937033B2 (en) * 2001-06-27 2005-08-30 Immersion Corporation Position sensor with resistive element
DE10131160A1 (en) * 2001-06-29 2003-01-16 Zeiss Carl Method for operating a coordinate measuring machine with a swivel-swivel joint
US7056123B2 (en) * 2001-07-16 2006-06-06 Immersion Corporation Interface apparatus with cable-driven force feedback and grounded actuators
US6522993B1 (en) * 2001-09-14 2003-02-18 General Electric Company Method and system for marking surface deviations on a three dimensional surface
JP2003185472A (en) * 2001-12-21 2003-07-03 Yaskawa Electric Corp Absolute encoder and its absolute value signal generation processing method
US6990639B2 (en) 2002-02-07 2006-01-24 Microsoft Corporation System and process for controlling electronic components in a ubiquitous computing environment using multimodal integration
US6957496B2 (en) * 2002-02-14 2005-10-25 Faro Technologies, Inc. Method for improving measurement accuracy of a portable coordinate measurement machine
USRE42082E1 (en) 2002-02-14 2011-02-01 Faro Technologies, Inc. Method and apparatus for improving measurement accuracy of a portable coordinate measurement machine
US7073271B2 (en) * 2002-02-14 2006-07-11 Faro Technologies Inc. Portable coordinate measurement machine
US7881896B2 (en) 2002-02-14 2011-02-01 Faro Technologies, Inc. Portable coordinate measurement machine with integrated line laser scanner
US6952882B2 (en) * 2002-02-14 2005-10-11 Faro Technologies, Inc. Portable coordinate measurement machine
US6925722B2 (en) * 2002-02-14 2005-08-09 Faro Technologies, Inc. Portable coordinate measurement machine with improved surface features
USD479544S1 (en) 2002-02-14 2003-09-09 Faro Technolgoies, Inc. Portable coordinate measurement machine
US6973734B2 (en) * 2002-02-14 2005-12-13 Faro Technologies, Inc. Method for providing sensory feedback to the operator of a portable measurement machine
US7519493B2 (en) * 2002-02-14 2009-04-14 Faro Technologies, Inc. Portable coordinate measurement machine with integrated line laser scanner
US7246030B2 (en) * 2002-02-14 2007-07-17 Faro Technologies, Inc. Portable coordinate measurement machine with integrated line laser scanner
US6904823B2 (en) * 2002-04-03 2005-06-14 Immersion Corporation Haptic shifting devices
US6671651B2 (en) * 2002-04-26 2003-12-30 Sensable Technologies, Inc. 3-D selection and manipulation with a multiple dimension haptic interface
EP1573502A3 (en) * 2002-10-09 2005-09-21 Raphael Bachmann Rapid input device
US8917234B2 (en) 2002-10-15 2014-12-23 Immersion Corporation Products and processes for providing force sensations in a user interface
TW584726B (en) * 2003-01-17 2004-04-21 Taipei Veterans General Hospit Tail suspension test device
SE524818C2 (en) * 2003-02-13 2004-10-05 Abb Ab A method and system for programming an industrial robot to move relatively defined positions on an object
US7578786B2 (en) 2003-04-01 2009-08-25 Boston Scientific Scimed, Inc. Video endoscope
US7591783B2 (en) 2003-04-01 2009-09-22 Boston Scientific Scimed, Inc. Articulation joint for video endoscope
US8118732B2 (en) 2003-04-01 2012-02-21 Boston Scientific Scimed, Inc. Force feedback control system for video endoscope
US20040199052A1 (en) 2003-04-01 2004-10-07 Scimed Life Systems, Inc. Endoscopic imaging system
US20050245789A1 (en) 2003-04-01 2005-11-03 Boston Scientific Scimed, Inc. Fluid manifold for endoscope system
US7003892B2 (en) * 2003-04-15 2006-02-28 Hexagon Metrology Ab Spatial coordinate-based method for identifying work pieces
ITTO20030309A1 (en) * 2003-04-18 2004-10-19 St Microelectronics Srl RELATIVE ANGULAR POSITION MEASURING DEVICE
CA2426512A1 (en) * 2003-04-22 2004-10-22 Garth Shoemaker Positioning and manipulating detail-in-context lenses in 2d and 3d data through the application of eye tracking or position tracking
GB2418475B (en) * 2003-06-09 2007-10-24 Immersion Corp Interactive gaming systems with haptic feedback
US7559931B2 (en) 2003-06-09 2009-07-14 OrthAlign, Inc. Surgical orientation system and method
US8057482B2 (en) * 2003-06-09 2011-11-15 OrthAlign, Inc. Surgical orientation device and method
US7850456B2 (en) 2003-07-15 2010-12-14 Simbionix Ltd. Surgical simulation device, system and method
JP2005055282A (en) 2003-08-04 2005-03-03 Tokyo Seimitsu Co Ltd Measuring method and measuring device
US6907672B2 (en) * 2003-10-11 2005-06-21 Hewlett-Packard Development Company, L.P. System and method for measuring three-dimensional objects using displacements of elongate measuring members
FR2861843B1 (en) 2003-10-29 2006-07-07 Romain Granger CONNECTING DEVICE ASSOCIATED WITH A THREE DIMENSIONAL MEASURING APPARATUS ARM WITH ARTICULATED ARMS
US7095418B2 (en) * 2003-10-30 2006-08-22 Sensable Technologies, Inc. Apparatus and methods for texture mapping
US7382378B2 (en) * 2003-10-30 2008-06-03 Sensable Technologies, Inc. Apparatus and methods for stenciling an image
US7411576B2 (en) * 2003-10-30 2008-08-12 Sensable Technologies, Inc. Force reflecting haptic interface
US7626589B2 (en) * 2003-12-10 2009-12-01 Sensable Technologies, Inc. Haptic graphical user interface for adjusting mapped texture
US7889209B2 (en) 2003-12-10 2011-02-15 Sensable Technologies, Inc. Apparatus and methods for wrapping texture onto the surface of a virtual object
US7742036B2 (en) * 2003-12-22 2010-06-22 Immersion Corporation System and method for controlling haptic devices having multiple operational modes
US7149596B2 (en) * 2004-01-13 2006-12-12 Sensable Technologies, Inc. Apparatus and methods for modifying a model of an object to enforce compliance with a manufacturing constraint
US7152456B2 (en) 2004-01-14 2006-12-26 Romer Incorporated Automated robotic measuring system
US7693325B2 (en) 2004-01-14 2010-04-06 Hexagon Metrology, Inc. Transprojection of geometry data
US7237723B2 (en) * 2004-02-12 2007-07-03 Grant Isaac W Coordinate designation interface
US6955297B2 (en) * 2004-02-12 2005-10-18 Grant Isaac W Coordinate designation interface
US7711179B2 (en) 2004-04-21 2010-05-04 Nextengine, Inc. Hand held portable three dimensional scanner
WO2005119356A2 (en) 2004-05-28 2005-12-15 Erik Jan Banning Interactive direct-pointing system and calibration method
US7835892B2 (en) * 2004-09-28 2010-11-16 Immersion Medical, Inc. Ultrasound simulation apparatus and method
US8083671B2 (en) 2004-09-30 2011-12-27 Boston Scientific Scimed, Inc. Fluid delivery system for use with an endoscope
EP1799095A2 (en) 2004-09-30 2007-06-27 Boston Scientific Scimed, Inc. Adapter for use with digital imaging medical device
WO2006039267A2 (en) 2004-09-30 2006-04-13 Boston Scientific Scimed, Inc. Multi-functional endoscopic system for use in electrosurgical applications
US7479106B2 (en) 2004-09-30 2009-01-20 Boston Scientific Scimed, Inc. Automated control of irrigation and aspiration in a single-use endoscope
US7241263B2 (en) 2004-09-30 2007-07-10 Scimed Life Systems, Inc. Selectively rotatable shaft coupler
EP1799096A2 (en) 2004-09-30 2007-06-27 Boston Scientific Scimed, Inc. System and method of obstruction removal
US7489979B2 (en) * 2005-01-27 2009-02-10 Outland Research, Llc System, method and computer program product for rejecting or deferring the playing of a media file retrieved by an automated process
US20060161621A1 (en) * 2005-01-15 2006-07-20 Outland Research, Llc System, method and computer program product for collaboration and synchronization of media content on a plurality of media players
US7542816B2 (en) * 2005-01-27 2009-06-02 Outland Research, Llc System, method and computer program product for automatically selecting, suggesting and playing music media files
US20060229058A1 (en) * 2005-10-29 2006-10-12 Outland Research Real-time person-to-person communication using geospatial addressing
US20060195361A1 (en) * 2005-10-01 2006-08-31 Outland Research Location-based demographic profiling system and method of use
US7562117B2 (en) * 2005-09-09 2009-07-14 Outland Research, Llc System, method and computer program product for collaborative broadcast media
US20070189544A1 (en) 2005-01-15 2007-08-16 Outland Research, Llc Ambient sound responsive media player
US20060173556A1 (en) * 2005-02-01 2006-08-03 Outland Research,. Llc Methods and apparatus for using user gender and/or age group to improve the organization of documents retrieved in response to a search query
US20060173828A1 (en) * 2005-02-01 2006-08-03 Outland Research, Llc Methods and apparatus for using personal background data to improve the organization of documents retrieved in response to a search query
US20060179056A1 (en) * 2005-10-12 2006-08-10 Outland Research Enhanced storage and retrieval of spatially associated information
US20070276870A1 (en) * 2005-01-27 2007-11-29 Outland Research, Llc Method and apparatus for intelligent media selection using age and/or gender
US20060179044A1 (en) * 2005-02-04 2006-08-10 Outland Research, Llc Methods and apparatus for using life-context of a user to improve the organization of documents retrieved in response to a search query from that user
US20060253210A1 (en) * 2005-03-26 2006-11-09 Outland Research, Llc Intelligent Pace-Setting Portable Media Player
US20060223637A1 (en) * 2005-03-31 2006-10-05 Outland Research, Llc Video game system combining gaming simulation with remote robot control and remote robot feedback
US20060223635A1 (en) * 2005-04-04 2006-10-05 Outland Research method and apparatus for an on-screen/off-screen first person gaming experience
US20060256008A1 (en) * 2005-05-13 2006-11-16 Outland Research, Llc Pointing interface for person-to-person information exchange
WO2006110489A2 (en) * 2005-04-08 2006-10-19 University Of Utah Research Foundation Rapid prototyping of microstructures using a cutting plotter
US20060241864A1 (en) * 2005-04-22 2006-10-26 Outland Research, Llc Method and apparatus for point-and-send data transfer within an ubiquitous computing environment
US8717423B2 (en) * 2005-05-09 2014-05-06 Zspace, Inc. Modifying perspective of stereoscopic images based on changes in user viewpoint
WO2006121957A2 (en) * 2005-05-09 2006-11-16 Michael Vesely Three dimensional horizontal perspective workstation
US20060256007A1 (en) * 2005-05-13 2006-11-16 Outland Research, Llc Triangulation method and apparatus for targeting and accessing spatially associated information
US8097003B2 (en) 2005-05-13 2012-01-17 Boston Scientific Scimed, Inc. Endoscopic apparatus with integrated variceal ligation device
US7846107B2 (en) 2005-05-13 2010-12-07 Boston Scientific Scimed, Inc. Endoscopic apparatus with integrated multiple biopsy device
US20060259574A1 (en) * 2005-05-13 2006-11-16 Outland Research, Llc Method and apparatus for accessing spatially associated information
US20070150188A1 (en) * 2005-05-27 2007-06-28 Outland Research, Llc First-person video-based travel planning system
US20060271286A1 (en) * 2005-05-27 2006-11-30 Outland Research, Llc Image-enhanced vehicle navigation systems and methods
US7395607B1 (en) * 2005-06-14 2008-07-08 Discovery Technology International, Lllp Rotational and translational microposition apparatus and method
GB0512138D0 (en) * 2005-06-15 2005-07-20 Renishaw Plc Method of determining measurement probe orientation
US20080032719A1 (en) * 2005-10-01 2008-02-07 Outland Research, Llc Centralized establishment-based tracking and messaging service
US20060186197A1 (en) * 2005-06-16 2006-08-24 Outland Research Method and apparatus for wireless customer interaction with the attendants working in a restaurant
US9285897B2 (en) 2005-07-13 2016-03-15 Ultimate Pointer, L.L.C. Easily deployable interactive direct-pointing system and calibration method therefor
US7519537B2 (en) 2005-07-19 2009-04-14 Outland Research, Llc Method and apparatus for a verbo-manual gesture interface
JP4832826B2 (en) * 2005-07-26 2011-12-07 任天堂株式会社 Object control program and information processing apparatus
GB0516276D0 (en) * 2005-08-08 2005-09-14 Crampton Stephen Robust cmm arm with exoskeleton
US8052597B2 (en) 2005-08-30 2011-11-08 Boston Scientific Scimed, Inc. Method for forming an endoscope articulation joint
US7917148B2 (en) * 2005-09-23 2011-03-29 Outland Research, Llc Social musical media rating system and method for localized establishments
US8176101B2 (en) 2006-02-07 2012-05-08 Google Inc. Collaborative rejection of media for physical establishments
US7577522B2 (en) * 2005-12-05 2009-08-18 Outland Research, Llc Spatially associated personal reminder system and method
US7586032B2 (en) * 2005-10-07 2009-09-08 Outland Research, Llc Shake responsive portable media player
US20070083323A1 (en) * 2005-10-07 2007-04-12 Outland Research Personal cuing for spatially associated information
US20070103437A1 (en) * 2005-10-26 2007-05-10 Outland Research, Llc Haptic metering for minimally invasive medical procedures
WO2007057390A2 (en) * 2005-11-16 2007-05-24 Abb Ab Method and device for controlling motion of an industrial robot with a position switch
US7483763B2 (en) * 2005-11-17 2009-01-27 Centertrak, Llc System and method for the digital specification of head shape data for use in developing custom hair pieces
BRPI0505860A (en) * 2005-12-09 2007-09-25 Ubea dental structure digitizer, method for reading three-dimensional data from a dental structure and mouth scanner kit
US20060227047A1 (en) * 2005-12-13 2006-10-12 Outland Research Meeting locator system and method of using the same
US20070075127A1 (en) * 2005-12-21 2007-04-05 Outland Research, Llc Orientation-based power conservation for portable media devices
CN100437445C (en) * 2005-12-23 2008-11-26 鸿富锦精密工业(深圳)有限公司 Three dimension off-line collision test system and method
US7967759B2 (en) 2006-01-19 2011-06-28 Boston Scientific Scimed, Inc. Endoscopic system with integrated patient respiratory status indicator
US7995834B1 (en) 2006-01-20 2011-08-09 Nextengine, Inc. Multiple laser scanner
US11284048B2 (en) 2006-01-31 2022-03-22 Andrew Flessas Robotically controlled display
US8016749B2 (en) 2006-03-21 2011-09-13 Boston Scientific Scimed, Inc. Vision catheter having electromechanical navigation
US8888684B2 (en) 2006-03-27 2014-11-18 Boston Scientific Scimed, Inc. Medical devices with local drug delivery capabilities
US7955255B2 (en) 2006-04-20 2011-06-07 Boston Scientific Scimed, Inc. Imaging assembly with transparent distal cap
US8202265B2 (en) 2006-04-20 2012-06-19 Boston Scientific Scimed, Inc. Multiple lumen assembly for use in endoscopes or other medical devices
US7568293B2 (en) * 2006-05-01 2009-08-04 Paul Ferrari Sealed battery for coordinate measurement machine
EP1854425A1 (en) * 2006-05-11 2007-11-14 BrainLAB AG Position determination for medical devices with redundant position measurement and weighting to prioritise measurements
US7805854B2 (en) 2006-05-15 2010-10-05 Hexagon Metrology, Inc. Systems and methods for positioning and measuring objects using a CMM
KR20150044979A (en) 2006-09-13 2015-04-27 임머숀 코퍼레이션 Systems and methods for casino gaming haptics
US8414534B2 (en) 2006-11-09 2013-04-09 Abbott Medical Optics Inc. Holding tank devices, systems, and methods for surgical fluidics cassette
US10959881B2 (en) 2006-11-09 2021-03-30 Johnson & Johnson Surgical Vision, Inc. Fluidics cassette for ocular surgical system
US9522221B2 (en) 2006-11-09 2016-12-20 Abbott Medical Optics Inc. Fluidics cassette for ocular surgical system
US9295765B2 (en) 2006-11-09 2016-03-29 Abbott Medical Optics Inc. Surgical fluidics cassette supporting multiple pumps
US8491528B2 (en) 2006-11-09 2013-07-23 Abbott Medical Optics Inc. Critical alignment of fluidics cassettes
WO2008064276A2 (en) 2006-11-20 2008-05-29 Hexagon Metrology Ab Coordinate measurement machine with improved joint
EP2095061B1 (en) * 2006-12-22 2019-02-20 Hexagon Metrology, Inc Improved joint axis for coordinate measurement machine
US8543338B2 (en) 2007-01-16 2013-09-24 Simbionix Ltd. System and method for performing computerized simulations for image-guided procedures using a patient specific model
WO2008087629A2 (en) * 2007-01-16 2008-07-24 Simbionix Ltd. Preoperative surgical simulation
JP5274782B2 (en) * 2007-03-27 2013-08-28 株式会社ミツトヨ Surface texture measuring device, surface texture measuring method, and surface texture measuring program
US8055466B2 (en) * 2007-03-30 2011-11-08 Mitutoyo Corporation Global calibration for stereo vision probe
US20080243416A1 (en) * 2007-03-30 2008-10-02 Mitutoyo Corporation Global calibration for stereo vision probe
US10596032B2 (en) 2007-05-24 2020-03-24 Johnson & Johnson Surgical Vision, Inc. System and method for controlling a transverse phacoemulsification system with a footpedal
US10485699B2 (en) 2007-05-24 2019-11-26 Johnson & Johnson Surgical Vision, Inc. Systems and methods for transverse phacoemulsification
US10363166B2 (en) 2007-05-24 2019-07-30 Johnson & Johnson Surgical Vision, Inc. System and method for controlling a transverse phacoemulsification system using sensed data
US7546689B2 (en) * 2007-07-09 2009-06-16 Hexagon Metrology Ab Joint for coordinate measurement device
US10342701B2 (en) 2007-08-13 2019-07-09 Johnson & Johnson Surgical Vision, Inc. Systems and methods for phacoemulsification with vacuum based pumps
US7774949B2 (en) * 2007-09-28 2010-08-17 Hexagon Metrology Ab Coordinate measurement machine
US7444751B1 (en) * 2007-09-28 2008-11-04 Electro-Sensors, Inc. Linear distance measurement by non-driven arm
US7797849B2 (en) * 2007-10-31 2010-09-21 Immersion Corporation Portable metrology device
US9486292B2 (en) 2008-02-14 2016-11-08 Immersion Corporation Systems and methods for real-time winding analysis for knot detection
US9171484B2 (en) * 2008-03-06 2015-10-27 Immersion Corporation Determining location and orientation of an object positioned on a surface
FR2928387B1 (en) * 2008-03-10 2012-11-16 Westline METHOD AND SYSTEM FOR AUTOMATIC CALIBRATION OF EARTHMOVING MACHINERY
US8122610B2 (en) * 2008-03-28 2012-02-28 Hexagon Metrology, Inc. Systems and methods for improved coordination acquisition member comprising calibration information
US7779548B2 (en) 2008-03-28 2010-08-24 Hexagon Metrology, Inc. Coordinate measuring machine with rotatable grip
US7640674B2 (en) * 2008-05-05 2010-01-05 Hexagon Metrology, Inc. Systems and methods for calibrating a portable coordinate measurement machine
ES2683029T3 (en) 2008-07-24 2018-09-24 OrthAlign, Inc. Joint replacement systems
CA2736525C (en) 2008-09-10 2019-10-22 OrthAlign, Inc. Hip surgery systems and methods
US9679499B2 (en) * 2008-09-15 2017-06-13 Immersion Medical, Inc. Systems and methods for sensing hand motion by measuring remote displacement
US7908757B2 (en) 2008-10-16 2011-03-22 Hexagon Metrology, Inc. Articulating measuring arm with laser scanner
US8428326B2 (en) * 2008-10-23 2013-04-23 Immersion Corporation Systems and methods for ultrasound simulation using depth peeling
EP3175831B1 (en) 2008-11-07 2018-12-26 Johnson & Johnson Surgical Vision, Inc. Automatically switching different aspiration levels and/or pumps to an ocular probe
US9795507B2 (en) 2008-11-07 2017-10-24 Abbott Medical Optics Inc. Multifunction foot pedal
AU2009313413B2 (en) 2008-11-07 2015-01-22 Johnson & Johnson Surgical Vision, Inc. Controlling of multiple pumps
EP3954345B1 (en) 2008-11-07 2023-11-22 Johnson & Johnson Surgical Vision, Inc. Adjustable foot pedal control for ophthalmic surgery
EP2373266B1 (en) 2008-11-07 2020-04-29 Johnson & Johnson Surgical Vision, Inc. Surgical cassette apparatus
CA2743086C (en) 2008-11-07 2017-12-05 Abbott Medical Optics Inc. Automatically pulsing different aspiration levels to an ocular probe
AU2009313417B2 (en) * 2008-11-07 2015-01-15 Johnson & Johnson Surgical Vision, Inc. Method for programming foot pedal settings and controlling performance through foot pedal variation
US9482755B2 (en) 2008-11-17 2016-11-01 Faro Technologies, Inc. Measurement system having air temperature compensation between a target and a laser tracker
US7983790B2 (en) * 2008-12-19 2011-07-19 The Boeing Company Component repair using reverse engineering
US8010226B2 (en) * 2008-12-19 2011-08-30 The Boeing Company Apparatus and method for measuring and modifying components using reverse engineering
US20100167820A1 (en) * 2008-12-29 2010-07-01 Houssam Barakat Human interface device
US9551575B2 (en) 2009-03-25 2017-01-24 Faro Technologies, Inc. Laser scanner having a multi-color light source and real-time color receiver
DE102009015920B4 (en) 2009-03-25 2014-11-20 Faro Technologies, Inc. Device for optically scanning and measuring an environment
US9492317B2 (en) * 2009-03-31 2016-11-15 Abbott Medical Optics Inc. Cassette capture mechanism
US8757345B2 (en) * 2009-04-29 2014-06-24 Novellus Systems, Inc. Magnetic rotational hardstop for robot
FR2945863B1 (en) 2009-05-19 2011-12-23 Celette Sa THREE-DIMENSIONAL MEASURING DEVICE
US9104791B2 (en) * 2009-05-28 2015-08-11 Immersion Corporation Systems and methods for editing a model of a physical system for a simulation
US8104189B2 (en) * 2009-06-30 2012-01-31 Hexagon Metrology Ab Coordinate measurement machine with vibration detection
US10869771B2 (en) 2009-07-24 2020-12-22 OrthAlign, Inc. Systems and methods for joint replacement
US8118815B2 (en) 2009-07-24 2012-02-21 OrthAlign, Inc. Systems and methods for joint replacement
US8112896B2 (en) 2009-11-06 2012-02-14 Hexagon Metrology Ab Articulated arm
US9113023B2 (en) 2009-11-20 2015-08-18 Faro Technologies, Inc. Three-dimensional scanner with spectroscopic energy detector
US9529083B2 (en) 2009-11-20 2016-12-27 Faro Technologies, Inc. Three-dimensional scanner with enhanced spectroscopic energy detector
US9210288B2 (en) 2009-11-20 2015-12-08 Faro Technologies, Inc. Three-dimensional scanner with dichroic beam splitters to capture a variety of signals
DE102009057101A1 (en) 2009-11-20 2011-05-26 Faro Technologies, Inc., Lake Mary Device for optically scanning and measuring an environment
US20110213247A1 (en) * 2010-01-08 2011-09-01 Hexagon Metrology, Inc. Articulated arm with imaging device
US8630314B2 (en) * 2010-01-11 2014-01-14 Faro Technologies, Inc. Method and apparatus for synchronizing measurements taken by multiple metrology devices
CN102947667A (en) * 2010-01-20 2013-02-27 法罗技术股份有限公司 Coordinate measurement machines with removable accessories
US8638446B2 (en) 2010-01-20 2014-01-28 Faro Technologies, Inc. Laser scanner or laser tracker having a projector
US9879976B2 (en) 2010-01-20 2018-01-30 Faro Technologies, Inc. Articulated arm coordinate measurement machine that uses a 2D camera to determine 3D coordinates of smoothly continuous edge features
US8677643B2 (en) 2010-01-20 2014-03-25 Faro Technologies, Inc. Coordinate measurement machines with removable accessories
US8898919B2 (en) 2010-01-20 2014-12-02 Faro Technologies, Inc. Coordinate measurement machine with distance meter used to establish frame of reference
US8832954B2 (en) 2010-01-20 2014-09-16 Faro Technologies, Inc. Coordinate measurement machines with removable accessories
CN102782442A (en) * 2010-01-20 2012-11-14 法罗技术股份有限公司 Coordinate measuring machine having an illuminated probe end and method of operation
US8875409B2 (en) 2010-01-20 2014-11-04 Faro Technologies, Inc. Coordinate measurement machines with removable accessories
US9607239B2 (en) 2010-01-20 2017-03-28 Faro Technologies, Inc. Articulated arm coordinate measurement machine having a 2D camera and method of obtaining 3D representations
US8615893B2 (en) 2010-01-20 2013-12-31 Faro Technologies, Inc. Portable articulated arm coordinate measuring machine having integrated software controls
US9163922B2 (en) 2010-01-20 2015-10-20 Faro Technologies, Inc. Coordinate measurement machine with distance meter and camera to determine dimensions within camera images
US9628775B2 (en) 2010-01-20 2017-04-18 Faro Technologies, Inc. Articulated arm coordinate measurement machine having a 2D camera and method of obtaining 3D representations
JP2013517508A (en) * 2010-01-20 2013-05-16 ファロ テクノロジーズ インコーポレーテッド Multifunctional coordinate measuring machine
WO2012082164A1 (en) * 2010-01-21 2012-06-21 Orthallgn, Inc. Systems and methods for joint replacement
US8717360B2 (en) * 2010-01-29 2014-05-06 Zspace, Inc. Presenting a view within a three dimensional scene
US8947455B2 (en) 2010-02-22 2015-02-03 Nike, Inc. Augmented reality design system
US8442806B2 (en) * 2010-03-03 2013-05-14 Immersion Medical, Inc. Systems and methods for simulations utilizing a virtual coupling
USD643319S1 (en) 2010-03-29 2011-08-16 Hexagon Metrology Ab Portable coordinate measurement machine
US9400170B2 (en) 2010-04-21 2016-07-26 Faro Technologies, Inc. Automatic measurement of dimensional data within an acceptance region by a laser tracker
US8619265B2 (en) 2011-03-14 2013-12-31 Faro Technologies, Inc. Automatic measurement of dimensional data with a laser tracker
US8537371B2 (en) 2010-04-21 2013-09-17 Faro Technologies, Inc. Method and apparatus for using gestures to control a laser tracker
US8422034B2 (en) 2010-04-21 2013-04-16 Faro Technologies, Inc. Method and apparatus for using gestures to control a laser tracker
US9772394B2 (en) 2010-04-21 2017-09-26 Faro Technologies, Inc. Method and apparatus for following an operator and locking onto a retroreflector with a laser tracker
US9377885B2 (en) 2010-04-21 2016-06-28 Faro Technologies, Inc. Method and apparatus for locking onto a retroreflector with a laser tracker
US8724119B2 (en) 2010-04-21 2014-05-13 Faro Technologies, Inc. Method for using a handheld appliance to select, lock onto, and track a retroreflector with a laser tracker
DE102010020925B4 (en) 2010-05-10 2014-02-27 Faro Technologies, Inc. Method for optically scanning and measuring an environment
US8127458B1 (en) 2010-08-31 2012-03-06 Hexagon Metrology, Inc. Mounting apparatus for articulated arm laser scanner
US9021344B2 (en) * 2010-08-31 2015-04-28 New River Kinematics, Inc. Off-line graphical user interface system and method for three-dimensional measurement
US9168654B2 (en) 2010-11-16 2015-10-27 Faro Technologies, Inc. Coordinate measuring machines with dual layer arm
GB2518543A (en) 2011-03-03 2015-03-25 Faro Tech Inc Target apparatus and method
JP5742415B2 (en) * 2011-04-14 2015-07-01 セイコーエプソン株式会社 Sensor device, force detection device and robot
US9482529B2 (en) 2011-04-15 2016-11-01 Faro Technologies, Inc. Three-dimensional coordinate scanner and method of operation
JP2014516409A (en) 2011-04-15 2014-07-10 ファロ テクノロジーズ インコーポレーテッド Improved position detector for laser trackers.
US9164173B2 (en) 2011-04-15 2015-10-20 Faro Technologies, Inc. Laser tracker that uses a fiber-optic coupler and an achromatic launch to align and collimate two wavelengths of light
US9686532B2 (en) 2011-04-15 2017-06-20 Faro Technologies, Inc. System and method of acquiring three-dimensional coordinates using multiple coordinate measurement devices
US8786529B1 (en) 2011-05-18 2014-07-22 Zspace, Inc. Liquid crystal variable drive voltage
US8933913B2 (en) 2011-06-28 2015-01-13 Microsoft Corporation Electromagnetic 3D stylus
ES2559187T3 (en) 2011-07-06 2016-02-10 Hexagon Metrology S.P.A. Calibration method of a mathematical model for a coordinate measuring machine for compensation of dynamic errors due to deformation
US9802364B2 (en) 2011-10-18 2017-10-31 3D Systems, Inc. Systems and methods for construction of an instruction set for three-dimensional printing of a user-customizableimage of a three-dimensional structure
US8872800B2 (en) 2011-11-02 2014-10-28 Microsoft Corporation Optical tablet stylus and indoor navigation system
US8763267B2 (en) 2012-01-20 2014-07-01 Hexagon Technology Center Gmbh Locking counterbalance for a CMM
DE102012100609A1 (en) 2012-01-25 2013-07-25 Faro Technologies, Inc. Device for optically scanning and measuring an environment
DE112013000727T5 (en) 2012-01-27 2014-11-06 Faro Technologies, Inc. Test method with bar code marking
AU2013235701B2 (en) 2012-03-17 2017-02-09 Johnson & Johnson Surgical Vision, Inc. Surgical cassette
US9549742B2 (en) 2012-05-18 2017-01-24 OrthAlign, Inc. Devices and methods for knee arthroplasty
US9157721B1 (en) * 2012-06-08 2015-10-13 Beeline Company Measuring system
US9069355B2 (en) 2012-06-08 2015-06-30 Hexagon Technology Center Gmbh System and method for a wireless feature pack
KR101757080B1 (en) 2012-07-13 2017-07-11 소프트키네틱 소프트웨어 Method and system for human-to-computer gesture based simultaneous interactions using singular points of interest on a hand
US8997362B2 (en) 2012-07-17 2015-04-07 Faro Technologies, Inc. Portable articulated arm coordinate measuring machine with optical communications bus
US9245428B2 (en) 2012-08-02 2016-01-26 Immersion Corporation Systems and methods for haptic remote control gaming
US9182813B2 (en) * 2012-08-10 2015-11-10 Ulsee Inc. Image-based object tracking system in 3D space using controller having multiple color clusters
US9649160B2 (en) 2012-08-14 2017-05-16 OrthAlign, Inc. Hip replacement navigation system and method
EP2698596A1 (en) * 2012-08-16 2014-02-19 Hexagon Technology Center GmbH Method and system for determining spatial coordinates with a mobile coordinate measuring machine
US9056244B2 (en) 2012-09-12 2015-06-16 Wms Gaming Inc. Gaming apparatus incorporating targeted haptic feedback
US9513107B2 (en) 2012-10-05 2016-12-06 Faro Technologies, Inc. Registration calculation between three-dimensional (3D) scans based on two-dimensional (2D) scan data from a 3D scanner
DE102012109481A1 (en) 2012-10-05 2014-04-10 Faro Technologies, Inc. Device for optically scanning and measuring an environment
US10067231B2 (en) 2012-10-05 2018-09-04 Faro Technologies, Inc. Registration calculation of three-dimensional scanner data performed between scans based on measurements by two-dimensional scanner
US9222769B2 (en) * 2012-12-08 2015-12-29 Grale Technologies High speed metrology with numerically controlled machines
JP6144050B2 (en) * 2013-01-08 2017-06-07 株式会社ミツトヨ Three-dimensional measuring apparatus, input method and program
JP6104606B2 (en) * 2013-01-08 2017-03-29 株式会社ミツトヨ Three-dimensional measuring apparatus, input method and program
JPWO2014129162A1 (en) * 2013-02-25 2017-02-02 パナソニックIpマネジメント株式会社 INDUSTRIAL ROBOT AND METHOD FOR CALIBRATION OF TOOL INSTALLATION POSITION
US9250214B2 (en) 2013-03-12 2016-02-02 Hexagon Metrology, Inc. CMM with flaw detection system
US9866924B2 (en) 2013-03-14 2018-01-09 Immersion Corporation Systems and methods for enhanced television interaction
US9041914B2 (en) 2013-03-15 2015-05-26 Faro Technologies, Inc. Three-dimensional coordinate scanner and method of operation
WO2015016788A1 (en) * 2013-07-31 2015-02-05 Bayer Kadir Measuring device
FR3012214B1 (en) * 2013-10-18 2023-07-14 Hexagon Metrology Sas MEASUREMENT PROCESS WITH IMPROVEMENT OF THE PRECISION OF THE ACQUISITION OF A MEASUREMENT POINT
EP3066418A1 (en) * 2013-11-06 2016-09-14 Hexagon Metrology (Israel) Method and system for analyzing spatial measuring data
US9594250B2 (en) 2013-12-18 2017-03-14 Hexagon Metrology, Inc. Ultra-portable coordinate measurement machine
US9163921B2 (en) 2013-12-18 2015-10-20 Hexagon Metrology, Inc. Ultra-portable articulated arm coordinate measurement machine
EP2891950B1 (en) 2014-01-07 2018-08-15 Sony Depthsensing Solutions Human-to-computer natural three-dimensional hand gesture based navigation method
CN105091807B (en) * 2014-04-30 2017-12-01 鸿富锦精密工业(深圳)有限公司 The bearing calibration of robot tool coordinate system
US9759540B2 (en) 2014-06-11 2017-09-12 Hexagon Metrology, Inc. Articulating CMM probe
US9395174B2 (en) 2014-06-27 2016-07-19 Faro Technologies, Inc. Determining retroreflector orientation by optimizing spatial fit
US9291447B2 (en) * 2014-07-09 2016-03-22 Mitutoyo Corporation Method for controlling motion of a coordinate measuring machine
CA2975500C (en) * 2015-02-10 2023-09-26 Imdex Global B.V. A system, method and apparatus for determining the disposition of structural features present in borehole cores
US10363149B2 (en) 2015-02-20 2019-07-30 OrthAlign, Inc. Hip replacement navigation system and method
US10613629B2 (en) 2015-03-27 2020-04-07 Chad Laurendeau System and method for force feedback interface devices
WO2016196292A1 (en) * 2015-05-29 2016-12-08 Hexagon Metrology, Inc. Coordinate measuring machine with object location logic
US10180733B2 (en) * 2015-12-22 2019-01-15 Kindred Systems Inc. Systems, devices, and methods for foot control of robots
DE102015122844A1 (en) 2015-12-27 2017-06-29 Faro Technologies, Inc. 3D measuring device with battery pack
US11064904B2 (en) 2016-02-29 2021-07-20 Extremity Development Company, Llc Smart drill, jig, and method of orthopedic surgery
CN106112336A (en) * 2016-08-15 2016-11-16 江门市弘程精密制造有限公司 A kind of six axle welding manipulators
CA3056495A1 (en) 2017-03-14 2018-09-20 OrthAlign, Inc. Soft tissue measurement & balancing systems and methods
US10918499B2 (en) 2017-03-14 2021-02-16 OrthAlign, Inc. Hip replacement navigation systems and methods
WO2018190801A1 (en) 2017-04-11 2018-10-18 Hewlett-Packard Development Company, L.P. Divots for enhanced interaction with styluses
US10787027B2 (en) * 2017-05-17 2020-09-29 Sphero, Inc. Illustration robot movement
JP7045194B2 (en) * 2018-01-11 2022-03-31 株式会社ミツトヨ Lens measuring device and lens measuring method
US10969760B2 (en) 2018-04-12 2021-04-06 Faro Technologies, Inc. Coordinate measurement system with auxiliary axis
US11874101B2 (en) 2018-04-12 2024-01-16 Faro Technologies, Inc Modular servo cartridges for precision metrology
US10895445B2 (en) 2018-09-14 2021-01-19 Faro Technologies, Inc. Articulated arm coordinate measuring machines with active counterbalance
CN109128624A (en) * 2018-09-18 2019-01-04 河北微宏惠工机器人科技有限公司 A kind of six axis all-position welding machines
NL2021673B1 (en) * 2018-09-20 2020-05-07 Prodim Int B V A method of calibrating an apparatus for pointing spatial coordinates as well as a corresponding apparatus.
DE102019208946A1 (en) * 2019-06-19 2020-12-24 Carl Zeiss Industrielle Messtechnik Gmbh Method and device for determining a position of an axis of rotation of a turntable as well as turntable and coordinate measuring machine
WO2021040714A1 (en) 2019-08-29 2021-03-04 Flessas Andrew Method and system for moving cameras using robotic mounts
US11425308B2 (en) 2020-12-02 2022-08-23 Andrew Flessas Robotically movable display synchronously movable with robotically movable camera for displaying captured images in identical orientation
WO2023183507A1 (en) * 2022-03-24 2023-09-28 Communications Test Design, Inc. Methods and apparatuses for producing customized etched articles

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0470257A1 (en) * 1990-02-28 1992-02-12 Fanuc Ltd. Calibration system for robot
EP0541500A1 (en) * 1991-11-01 1993-05-12 Nobelpharma AB Scanning device
US5230623A (en) * 1991-12-10 1993-07-27 Radionics, Inc. Operating pointer with interactive computergraphics
EP0634150A1 (en) * 1993-07-12 1995-01-18 Nobelpharma AB Process and device in connection with the production of a tooth, bridge, etc.
EP0640902A2 (en) * 1993-08-26 1995-03-01 Faro Technologies Method for programming computer controlled multi-axis devices
EP0655301A1 (en) * 1993-11-15 1995-05-31 Asea Brown Boveri Ab Method and device for calibration of movement axes of an industrial robot
US5429682A (en) * 1993-08-19 1995-07-04 Advanced Robotics Technologies Automated three-dimensional precision coatings application apparatus

Family Cites Families (141)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US2906179A (en) * 1957-01-28 1959-09-29 North American Aviation Inc Vector gage
US3338772A (en) * 1964-03-25 1967-08-29 Ned L Mcwherter Nocking jig
US3490059A (en) * 1966-06-06 1970-01-13 Martin Marietta Corp Three axis mounting and torque sensing apparatus
US3531868A (en) * 1968-04-18 1970-10-06 Ford Motor Co Surface scanner for measuring the coordinates of points on a three-dimensional surface
US3875488A (en) * 1973-02-15 1975-04-01 Raytheon Co Inertially stabilized gimbal platform
US3890958A (en) * 1974-04-08 1975-06-24 Moog Automotive Inc Physiological diagnostic apparatus
US3944798A (en) * 1974-04-18 1976-03-16 Eaton-Leonard Corporation Method and apparatus for measuring direction
US4148014A (en) * 1977-04-06 1979-04-03 Texas Instruments Incorporated System with joystick to control velocity vector of a display cursor
US4216467A (en) * 1977-12-22 1980-08-05 Westinghouse Electric Corp. Hand controller
US4638798A (en) * 1980-09-10 1987-01-27 Shelden C Hunter Stereotactic method and apparatus for locating and treating or removing lesions
JPS57169643A (en) * 1981-04-13 1982-10-19 Yamato Scale Co Ltd Load cell for multiple components of force
JPS58177292A (en) * 1982-04-05 1983-10-17 株式会社豊田中央研究所 Industrial robot arm and its manufacture
US4593470A (en) * 1982-07-14 1986-06-10 Micro Control Systems, Inc. Portable three dimensional graphics tablet
US4477973A (en) * 1982-07-14 1984-10-23 Micro Control Systems, Inc. Three dimensional graphics tablet
FR2545606B1 (en) * 1983-05-06 1985-09-13 Hispano Suiza Sa FORCE TENSIONER SENSOR
GB2146776B (en) * 1983-09-16 1986-07-30 Ferranti Plc Accelerometer systems
US4550221A (en) * 1983-10-07 1985-10-29 Scott Mabusth Touch sensitive control device
JPS60170709A (en) * 1984-02-16 1985-09-04 Toshiba Corp Measuring insturment for shape
US4571834A (en) * 1984-02-17 1986-02-25 Orthotronics Limited Partnership Knee laxity evaluator and motion module/digitizer arrangement
US4688983A (en) * 1984-05-21 1987-08-25 Unimation Inc. Low cost robot
US4676002A (en) * 1984-06-25 1987-06-30 Slocum Alexander H Mechanisms to determine position and orientation in space
JPS61105411A (en) * 1984-10-29 1986-05-23 Mitsutoyo Mfg Co Ltd Measuring method of multidimensional measuring machine
US4654648A (en) * 1984-12-17 1987-03-31 Herrington Richard A Wireless cursor control system
US4632341A (en) * 1985-02-06 1986-12-30 The United States Of America As Represented By The Secretary Of The Air Force Stabilizing force feedback in bio-actuated control systems
DE3523188A1 (en) * 1985-06-28 1987-01-08 Zeiss Carl Fa CONTROL FOR COORDINATE MEASURING DEVICES
US4704909A (en) * 1985-07-22 1987-11-10 Grahn Allen R Multicomponent force-torque sensor
US4679331A (en) * 1985-08-26 1987-07-14 Ppg Industries, Inc. Apparatus and method for determining contour characteristics of a contoured article
US5103404A (en) * 1985-12-06 1992-04-07 Tensor Development, Inc. Feedback for a manipulator
US4811608A (en) * 1985-12-18 1989-03-14 Spatial Systems Pty Limited Force and torque converter
US5591924A (en) 1985-12-18 1997-01-07 Spacetec Imc Corporation Force and torque converter
GB8605324D0 (en) * 1986-03-04 1986-04-09 Rank Taylor Hobson Ltd Metrological apparatus
US4787051A (en) * 1986-05-16 1988-11-22 Tektronix, Inc. Inertial mouse system
US4803413A (en) * 1986-07-15 1989-02-07 Honeywell Inc. Magnetic isolating and pointing gimbal apparatus
US4791934A (en) * 1986-08-07 1988-12-20 Picker International, Inc. Computer tomography assisted stereotactic surgery system and method
SE464855B (en) * 1986-09-29 1991-06-24 Asea Ab PROCEDURE OF AN INDUSTRIAL BOTTOM FOR CALIBRATION OF A SENSOR
US4849692A (en) * 1986-10-09 1989-07-18 Ascension Technology Corporation Device for quantitatively measuring the relative position and orientation of two bodies in the presence of metals utilizing direct current magnetic fields
US4945305A (en) * 1986-10-09 1990-07-31 Ascension Technology Corporation Device for quantitatively measuring the relative position and orientation of two bodies in the presence of metals utilizing direct current magnetic fields
NL8602697A (en) * 1986-10-27 1988-05-16 Huka Bv Developments JOYSTICK.
US4750487A (en) * 1986-11-24 1988-06-14 Zanetti Paul H Stereotactic frame
CA1299362C (en) * 1986-12-10 1992-04-28 Gregory James Mcdonald Coordinate measuring system
US4945501A (en) * 1987-01-20 1990-07-31 The Warner & Swasey Company Method for determining position within the measuring volume of a coordinate measuring machine and the like and system therefor
US4819195A (en) * 1987-01-20 1989-04-04 The Warner & Swasey Company Method for calibrating a coordinate measuring machine and the like and system therefor
US4857816A (en) * 1987-02-05 1989-08-15 Joseph Rogozinski Precise positioning apparatus
US4800721A (en) * 1987-02-13 1989-01-31 Caterpillar Inc. Force feedback lever
US4839838A (en) * 1987-03-30 1989-06-13 Labiche Mitchell Spatial input apparatus
GB2204131B (en) * 1987-04-28 1991-04-17 Ibm Graphics input tablet
US4961138A (en) * 1987-05-01 1990-10-02 General Datacomm, Inc. System and apparatus for providing three dimensions of input into a host processor
IT1214292B (en) * 1987-05-05 1990-01-10 Garda Impianti Srl EQUIPMENT FOR MEASUREMENT AND / OR CONTROL OF THE POSITION AND ORIENTATION OF POINTS OR AREAS CHARACTERISTIC OF STRUCTURES, IN PARTICULAR OF VEHICLE BODIES.
DE3717459A1 (en) * 1987-05-23 1988-12-01 Zeiss Carl Fa HAND-HELD COORDINATE MEASURING DEVICE
US4840634A (en) * 1987-06-10 1989-06-20 Clayton Foundation For Research Calibration controller for controlling electrically operated machines
US4775289A (en) * 1987-09-25 1988-10-04 Regents Of The University Of Minnesota Statically-balanced direct-drive robot arm
US4841762A (en) * 1987-10-27 1989-06-27 Automatix Incorporated Symmetry calibration method for multi-configuration robots
DE3740070A1 (en) * 1987-11-26 1989-06-08 Zeiss Carl Fa TURN SLEWING DEVICE FOR TEST COOKING OF COORDINATE MEASURING DEVICES
GB8729638D0 (en) * 1987-12-19 1988-02-03 Renishaw Plc Mounting for surface sensing device
US5251127A (en) * 1988-02-01 1993-10-05 Faro Medical Technologies Inc. Computer-aided surgery apparatus
GB8803847D0 (en) * 1988-02-18 1988-03-16 Renishaw Plc Mounting for surface-sensing device
SE461548B (en) * 1988-02-18 1990-02-26 Johansson Ab C E PROCEDURE AND DEVICE FOR DETERMINING AND CORRECTING IN CASE OF LOCATION ERROR IN SEATING A POINT OF A POINT OR POSITIONING TO A POINT WITH A PARTICULAR LOCATION
US4907970A (en) * 1988-03-30 1990-03-13 Grumman Aerospace Corporation Sidestick-type thrust control simulator
US4942545A (en) * 1988-06-06 1990-07-17 Combustion Engineering, Inc. Calibration of eddy current profilometry
US5050608A (en) * 1988-07-12 1991-09-24 Medirand, Inc. System for indicating a position to be operated in a patient's body
EP0362626B1 (en) * 1988-10-03 1993-02-10 Firma Carl Zeiss Test body for co-ordinate measuring apparatus
US5007085A (en) * 1988-10-28 1991-04-09 International Business Machines Corporation Remotely sensed personal stylus
US4907973A (en) * 1988-11-14 1990-03-13 Hon David C Expert system simulator for modeling realistic internal environments and performance
US5189806A (en) * 1988-12-19 1993-03-02 Renishaw Plc Method of and apparatus for scanning the surface of a workpiece
US4949119A (en) * 1989-01-12 1990-08-14 Atari Games Corporation Gearshift for a vehicle simulator using computer controlled realistic real world forces
US5116051A (en) * 1989-01-12 1992-05-26 Atari Games Corporation Strain gauge pressure-sensitive video game control
JPH02220106A (en) * 1989-02-22 1990-09-03 Okuma Mach Works Ltd Digitization controller containing measuring function
GB8904955D0 (en) * 1989-03-03 1989-04-12 Atomic Energy Authority Uk Multi-axis hand controller
GB8906287D0 (en) * 1989-03-18 1989-05-04 Renishaw Plc Probe calibration
JPH02284885A (en) * 1989-04-27 1990-11-22 Nissan Motor Co Ltd Position teaching method for workpiece positioning device
JPH02290506A (en) * 1989-04-28 1990-11-30 Mitsutoyo Corp Three-dimensional measuring instrument
US5184306A (en) * 1989-06-09 1993-02-02 Regents Of The University Of Minnesota Automated high-precision fabrication of objects of complex and unique geometry
JPH07104146B2 (en) * 1989-08-29 1995-11-13 株式会社ミツトヨ Rotation table scanning control method for coordinate measuring probe
US5139261A (en) * 1989-09-15 1992-08-18 Openiano Renato M Foot-actuated computer game controller serving as a joystick
US5182557A (en) * 1989-09-20 1993-01-26 Semborg Recrob, Corp. Motorized joystick
FR2652180B1 (en) 1989-09-20 1991-12-27 Mallet Jean Laurent METHOD FOR MODELING A SURFACE AND DEVICE FOR IMPLEMENTING SAME.
US5209131A (en) * 1989-11-03 1993-05-11 Rank Taylor Hobson Metrology
US5126948A (en) * 1989-11-08 1992-06-30 Ltv Aerospace And Defense Company Digital position encoder and data optimizer
US4983786A (en) * 1990-01-17 1991-01-08 The University Of British Columbia XY velocity controller
US5259894A (en) * 1990-01-26 1993-11-09 Sampson Richard K Method for solvent bonding non-porous materials to automatically create variable bond characteristics
US5072361A (en) * 1990-02-01 1991-12-10 Sarcos Group Force-reflective teleoperation control system
US5184319A (en) * 1990-02-02 1993-02-02 Kramer James F Force feedback and textures simulating interface device
DE4005292A1 (en) * 1990-02-20 1991-08-22 Zeiss Carl Fa COORDINATE MEASURING DEVICE
US5132672A (en) * 1990-03-27 1992-07-21 Apple Computer, Inc. Three degree of freedom graphic object controller
US5095303A (en) * 1990-03-27 1992-03-10 Apple Computer, Inc. Six degree of freedom graphic object controller
US5128671A (en) * 1990-04-12 1992-07-07 Ltv Aerospace And Defense Company Control device having multiple degrees of freedom
US5251156A (en) * 1990-08-25 1993-10-05 Carl-Zeiss-Stiftung, Heidenheim/Brenz Method and apparatus for non-contact measurement of object surfaces
US5208763A (en) * 1990-09-14 1993-05-04 New York University Method and apparatus for determining position and orientation of mechanical objects
US5181181A (en) * 1990-09-27 1993-01-19 Triton Technologies, Inc. Computer apparatus input device for three-dimensional information
WO1992007350A1 (en) * 1990-10-15 1992-04-30 National Biomedical Research Foundation Three-dimensional cursor control device
US5142506A (en) * 1990-10-22 1992-08-25 Logitech, Inc. Ultrasonic position locating method and apparatus therefor
US5193963A (en) * 1990-10-31 1993-03-16 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Force reflecting hand controller
US5098437A (en) * 1991-02-13 1992-03-24 Pfizer Hospital Products Group, Inc. Acetabular cup positioning insert
US5142931A (en) * 1991-02-14 1992-09-01 Honeywell Inc. 3 degree of freedom hand controller
US5143505A (en) * 1991-02-26 1992-09-01 Rutgers University Actuator system for providing force feedback to a dextrous master glove
US5354162A (en) * 1991-02-26 1994-10-11 Rutgers University Actuator system for providing force feedback to portable master support
JPH04275888A (en) * 1991-02-28 1992-10-01 Toyoda Mach Works Ltd Indexing device for origin of robot
US5131844A (en) * 1991-04-08 1992-07-21 Foster-Miller, Inc. Contact digitizer, particularly for dental applications
GB9108497D0 (en) 1991-04-20 1991-06-05 Ind Limited W Human/computer interface
WO1992021117A1 (en) * 1991-05-23 1992-11-26 Atari Games Corporation Modular display simulator
US5178012A (en) * 1991-05-31 1993-01-12 Rockwell International Corporation Twisting actuator accelerometer
US5279309A (en) * 1991-06-13 1994-01-18 International Business Machines Corporation Signaling device and method for monitoring positions in a surgical operation
JP2514490B2 (en) * 1991-07-05 1996-07-10 株式会社ダイヘン Teaching control method by interlocking manual operation of industrial robot
US5185561A (en) * 1991-07-23 1993-02-09 Digital Equipment Corporation Torque motor as a tactile feedback device in a computer system
EP0526056B1 (en) * 1991-07-27 1996-01-31 Renishaw Transducer Systems Limited Calibration and measurement device
US5262777A (en) * 1991-11-16 1993-11-16 Sri International Device for generating multidimensional input signals to a computer
US5220260A (en) * 1991-10-24 1993-06-15 Lex Computer And Management Corporation Actuator having electronically controllable tactile responsiveness
US5228356A (en) * 1991-11-25 1993-07-20 Chuang Keh Shih K Variable effort joystick
GB9201214D0 (en) 1992-01-21 1992-03-11 Mcmahon Michael J Surgical retractors
CA2062147C (en) * 1992-03-02 1995-07-25 Kenji Hara Multi-axial joy stick device
US5246316A (en) * 1992-03-06 1993-09-21 Excellon Automation Work table orientation apparatus and method
JP3199130B2 (en) 1992-03-31 2001-08-13 パイオニア株式会社 3D coordinate input device
US5245320A (en) * 1992-07-09 1993-09-14 Thrustmaster, Inc. Multiport game card with configurable address
US5428748A (en) * 1992-09-24 1995-06-27 National Semiconductor Corporation Method and apparatus for automatically configuring a computer peripheral
US5264768A (en) * 1992-10-06 1993-11-23 Honeywell, Inc. Active hand controller feedback loop
US5467289A (en) 1992-10-15 1995-11-14 Mitutoyo Corporation Method of and an apparatus for measuring surface contour
US5397323A (en) * 1992-10-30 1995-03-14 International Business Machines Corporation Remote center-of-motion robot for surgery
US5347476A (en) * 1992-11-25 1994-09-13 Mcbean Sr Ronald V Instrumentation system with multiple sensor modules
US5389865A (en) * 1992-12-02 1995-02-14 Cybernet Systems Corporation Method and system for providing a tactile virtual reality and manipulator defining an interface device therefor
US5629594A (en) 1992-12-02 1997-05-13 Cybernet Systems Corporation Force feedback system
US5611147A (en) * 1993-02-23 1997-03-18 Faro Technologies, Inc. Three dimensional coordinate measuring apparatus
US5412880A (en) * 1993-02-23 1995-05-09 Faro Technologies Inc. Method of constructing a 3-dimensional map of a measurable quantity using three dimensional coordinate measuring apparatus
US5402582A (en) * 1993-02-23 1995-04-04 Faro Technologies Inc. Three dimensional coordinate measuring apparatus
JPH07102510B2 (en) * 1993-05-21 1995-11-08 工業技術院長 Micro manipulator
US5429140A (en) * 1993-06-04 1995-07-04 Greenleaf Medical Systems, Inc. Integrated virtual reality rehabilitation system
US5396266A (en) * 1993-06-08 1995-03-07 Technical Research Associates, Inc. Kinesthetic feedback apparatus and method
US5351692A (en) * 1993-06-09 1994-10-04 Capistrano Labs Inc. Laparoscopic ultrasonic probe
US5513100A (en) 1993-06-10 1996-04-30 The University Of British Columbia Velocity controller with force feedback stiffness control
US5601084A (en) 1993-06-23 1997-02-11 University Of Washington Determining cardiac wall thickness and motion by imaging and three-dimensional modeling
US5701140A (en) 1993-07-16 1997-12-23 Immersion Human Interface Corp. Method and apparatus for providing a cursor control interface with force feedback
US5724264A (en) 1993-07-16 1998-03-03 Immersion Human Interface Corp. Method and apparatus for tracking the position and orientation of a stylus and for digitizing a 3-D object
DE4330873A1 (en) 1993-09-13 1995-03-16 Zeiss Carl Fa Coordinate measuring device with a probe and electronics for processing the probe signal
US5625576A (en) 1993-10-01 1997-04-29 Massachusetts Institute Of Technology Force reflecting haptic interface
US5384460A (en) * 1993-11-03 1995-01-24 Silitek Corporation Encoder with a light emitting editing wheel
WO1995020787A1 (en) 1994-01-27 1995-08-03 Exos, Inc. Multimode feedback display technology
US5436542A (en) * 1994-01-28 1995-07-25 Surgix, Inc. Telescopic camera mount with remotely controlled positioning
US5623582A (en) 1994-07-14 1997-04-22 Immersion Human Interface Corporation Computer interface or control input device for laparoscopic surgical instrument and other elongated mechanical objects
US5510977A (en) 1994-08-02 1996-04-23 Faro Technologies Inc. Method and apparatus for measuring features of a part or item
US5642469A (en) 1994-11-03 1997-06-24 University Of Washington Direct-drive manipulator for pen-based force display
US5837090A (en) * 1994-12-08 1998-11-17 Raytheon Company Precision aligning and joining of two articles using a flowable adhesive
US5694013A (en) 1996-09-06 1997-12-02 Ford Global Technologies, Inc. Force feedback haptic interface for a three-dimensional CAD surface

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0470257A1 (en) * 1990-02-28 1992-02-12 Fanuc Ltd. Calibration system for robot
EP0541500A1 (en) * 1991-11-01 1993-05-12 Nobelpharma AB Scanning device
US5230623A (en) * 1991-12-10 1993-07-27 Radionics, Inc. Operating pointer with interactive computergraphics
EP0634150A1 (en) * 1993-07-12 1995-01-18 Nobelpharma AB Process and device in connection with the production of a tooth, bridge, etc.
US5429682A (en) * 1993-08-19 1995-07-04 Advanced Robotics Technologies Automated three-dimensional precision coatings application apparatus
EP0640902A2 (en) * 1993-08-26 1995-03-01 Faro Technologies Method for programming computer controlled multi-axis devices
EP0655301A1 (en) * 1993-11-15 1995-05-31 Asea Brown Boveri Ab Method and device for calibration of movement axes of an industrial robot

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9274651B2 (en) 2012-11-05 2016-03-01 Hewlett-Packard Development Company, L.P. Apparatus to track a pointing device

Also Published As

Publication number Publication date
EP0843808A1 (en) 1998-05-27
DE69631144T2 (en) 2004-08-26
WO1997006410A1 (en) 1997-02-20
CA2228587C (en) 2005-11-01
US6078876A (en) 2000-06-20
EP0843808A4 (en) 1998-09-30
EP0843808B1 (en) 2003-12-17
CA2228587A1 (en) 1997-02-20
DE69631144D1 (en) 2004-01-29
US6134506A (en) 2000-10-17
US5724264A (en) 1998-03-03
US6015473A (en) 2000-01-18
US6125337A (en) 2000-09-26
EP1424538B1 (en) 2010-07-07
ES2213181T3 (en) 2004-08-16
DE69638212D1 (en) 2010-08-19

Similar Documents

Publication Publication Date Title
US6078876A (en) Method and apparatus for tracking the position and orientation of a stylus and for digitizing a 3-D object
US6697748B1 (en) Digitizing system and rotary table for determining 3-D geometry of an object
EP1893942B9 (en) Apparatus and method for relocating an articulating-arm coordinate measuring machine
US4477973A (en) Three dimensional graphics tablet
US5953687A (en) Method and apparatus for displaying active probe tip status of a coordinate measuring machine
US4593470A (en) Portable three dimensional graphics tablet
US5337149A (en) Computerized three dimensional data acquisition apparatus and method
US6941192B2 (en) Robot machining tool position and orientation calibration
EP0389108A2 (en) Analogue probe calibration
EP3156863A1 (en) Apparatus and method for controlling or programming a measurement routine
JPH0911167A (en) Preparation of error map for calibration of robot or multispindle machining center
US5740328A (en) Apparatus for robotic positional referencing and calibration
WO2014100598A1 (en) Calibration artifact and method of calibrating a coordinate measuring machine
JP7269181B2 (en) Method for calibrating a surface sensing device, corresponding calibration program for control computer and corresponding calibration kit
EP3693697B1 (en) Method for calibrating a 3d measurement arrangement and 3d measurement arrangement
JPH0763948B2 (en) Robot performance measurement and counting recognition device
CN113384347B (en) Robot calibration method, device, equipment and storage medium
JPH06230886A (en) Pencil type input device
JP2860801B2 (en) Link mechanism for three-dimensional free-form surface control
JP2538287B2 (en) Origin adjustment method for horizontal joint robot
JPH0522814Y2 (en)
JP2572936B2 (en) Shape measuring instruments
JPH06194139A (en) Shape measuring method

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

AC Divisional application: reference to earlier application

Ref document number: 0843808

Country of ref document: EP

Kind code of ref document: P

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): DE ES FR GB NL

17P Request for examination filed

Effective date: 20041130

AKX Designation fees paid

Designated state(s): DE ES FR GB NL

17Q First examination report despatched

Effective date: 20050608

17Q First examination report despatched

Effective date: 20050608

RIN1 Information on inventor provided before grant (corrected)

Inventor name: JACKSON, BERNARD G.

Inventor name: ROSENBERG, LOUIS B.

Inventor name: SCHENA, BRUCE M.

Inventor name: BRAVE, SCOTT B.

RIC1 Information provided on ipc code assigned before grant

Ipc: G01C 7/00 20060101AFI20090305BHEP

Ipc: G05B 19/42 20060101ALI20090305BHEP

RIC1 Information provided on ipc code assigned before grant

Ipc: G05B 19/42 20060101ALI20090525BHEP

Ipc: G01C 7/00 20060101AFI20090525BHEP

GRAP Despatch of communication of intention to grant a patent

Free format text: ORIGINAL CODE: EPIDOSNIGR1

GRAS Grant fee paid

Free format text: ORIGINAL CODE: EPIDOSNIGR3

GRAA (expected) grant

Free format text: ORIGINAL CODE: 0009210

AC Divisional application: reference to earlier application

Ref document number: 0843808

Country of ref document: EP

Kind code of ref document: P

AK Designated contracting states

Kind code of ref document: B1

Designated state(s): DE ES FR GB NL

REG Reference to a national code

Ref country code: GB

Ref legal event code: FG4D

REF Corresponds to:

Ref document number: 69638212

Country of ref document: DE

Date of ref document: 20100819

Kind code of ref document: P

REG Reference to a national code

Ref country code: NL

Ref legal event code: VDEP

Effective date: 20100707

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: NL

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20100707

PLBE No opposition filed within time limit

Free format text: ORIGINAL CODE: 0009261

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: NO OPPOSITION FILED WITHIN TIME LIMIT

26N No opposition filed

Effective date: 20110408

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: ES

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20101018

REG Reference to a national code

Ref country code: DE

Ref legal event code: R097

Ref document number: 69638212

Country of ref document: DE

Effective date: 20110408

REG Reference to a national code

Ref country code: FR

Ref legal event code: PLFP

Year of fee payment: 20

PGFP Annual fee paid to national office [announced via postgrant information from national office to epo]

Ref country code: DE

Payment date: 20150729

Year of fee payment: 20

Ref country code: GB

Payment date: 20150727

Year of fee payment: 20

PGFP Annual fee paid to national office [announced via postgrant information from national office to epo]

Ref country code: FR

Payment date: 20150717

Year of fee payment: 20

REG Reference to a national code

Ref country code: FR

Ref legal event code: CA

Effective date: 20151110

REG Reference to a national code

Ref country code: DE

Ref legal event code: R071

Ref document number: 69638212

Country of ref document: DE

REG Reference to a national code

Ref country code: GB

Ref legal event code: PE20

Expiry date: 20160728

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: GB

Free format text: LAPSE BECAUSE OF EXPIRATION OF PROTECTION

Effective date: 20160728