[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

WO1999028095A1 - System and method for compensating for compliance of a hexapod positioning device - Google Patents

System and method for compensating for compliance of a hexapod positioning device Download PDF

Info

Publication number
WO1999028095A1
WO1999028095A1 PCT/US1998/025113 US9825113W WO9928095A1 WO 1999028095 A1 WO1999028095 A1 WO 1999028095A1 US 9825113 W US9825113 W US 9825113W WO 9928095 A1 WO9928095 A1 WO 9928095A1
Authority
WO
WIPO (PCT)
Prior art keywords
platform
pivot locations
positioning device
actuator
finite element
Prior art date
Application number
PCT/US1998/025113
Other languages
French (fr)
Other versions
WO1999028095A9 (en
Inventor
Richard J. Loerch
Lyle D. Ostby
Original Assignee
Giddings & Lewis
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 Giddings & Lewis filed Critical Giddings & Lewis
Priority to CA002312802A priority Critical patent/CA2312802A1/en
Publication of WO1999028095A1 publication Critical patent/WO1999028095A1/en
Publication of WO1999028095A9 publication Critical patent/WO1999028095A9/en

Links

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/1628Programme controls characterised by the control loop
    • B25J9/1641Programme controls characterised by the control loop compensation for backlash, friction, compliance, elasticity in the joints
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1615Programme controls characterised by special kind of manipulator, e.g. planar, scara, gantry, cantilever, space, closed chain, passive/active joints and tendon driven manipulators
    • B25J9/1623Parallel manipulator, Stewart platform, links are attached to a common base and to a common platform, plate which is moved parallel to the base
    • 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/43Speed, acceleration, deceleration control ADC
    • G05B2219/43034Form of profile, ramp, trapezoid, S-curve, exponential

Definitions

  • This invention generally relates to machines, such as machine tools, robots, linkages, coordinate measuring machines, and positioners.
  • this invention relates to removing errors in the position of a fixed or moveable precision machine structure caused by elastic deflections of the structure.
  • the elastic deflections of the machine structure are the result of forces applied to the structure by the machine actuators and the load, and the acceleration of the moving parts.
  • such machines include a hexapod machining center in which the tool can be moved in three linear directions and three rotational directions.
  • the accuracy of any machine tool depends on how accurately the dimensions of the machine are determined during calibration and setup.
  • the exact location of each of twelve pivot points, which connect the actuators to the base and tool platforms must be accurately determined in order to precisely define the length of each actuator. It is the exact length of each actuator and the exact location of the pivots that defines the exact location of the tool with respect to the workpiece, and hence, the overall accuracy of the machine.
  • One standard method for determining precise dimensions of a machine is to measure each of its constituent parts.
  • the guide rails associated with the machine movements must be precisely measured, tooled or scraped, monitored, and maintained within given tolerance limits.
  • the tolerance values for each part must be minimized.
  • errors in the guide rail linearity directly affect the overall accuracy of the machine.
  • the guide rails would have to be more accurately constructed and maintained. This leads to a much higher manufacturing cost and/or structural complexity, as each constituent part must be manufactured and maintained to much more exacting standards than would otherwise be required had tolerance buildups not occurred.
  • One way of compensating for the errors due to the changing position and acceleration of the machine is by directly measuring the errors in position at the output (e.g., in a hexapod machine tool, the errors at the tool itself) . These errors would be stored in the machine's control system and used to adjust the position of the machine.
  • position compensation Compensating for errors by measuring the machine output position, called position compensation, requires the measurement of errors for every combination of positions. A prohibitive number of measurements may be required, especially when the errors in position are strongly affected by the positions of the other axes, as is the case with a hexapod machine tool.
  • a need therefore, exists to provide an improved technique to compensate for the errors due to the changing position and acceleration of a positioning device or other machine having multiple degrees of freedom, and in particular, a hexapod machining center.
  • Objects and Summary of the Invention Accordingly, it is a primary object of the present invention to provide an improved system and method for compensating for compliance distortions in a positioning device. It is another object of the present invention to provide a method and apparatus for modeling the machine as an elastic system that distorts in response to applied forces, where the distortions of the system are calculated and used to adjust the command position of the machine tool. It is a further object of the present invention to provide a method and apparatus where the distortions of the machine tool are measured and correlated with the applied forces by the use of a distortion model, where the distortions that occur at other positions during machine operation are then calculated by inserting the applied operating forces into the model.
  • the present invention provides a method of compensating for deflections in a positioning device having a movable platform mounted on a plurality of actuators at a plurality of pivot locations, the method comprising the steps of: collecting compliance information of the positioning device; compensating movement commands according to the collected compliance information; and moving the positioning device according to the compensated movement commands.
  • the present invention also provides a compensation method further comprising the steps of: developing a finite element model of the positioning device; and collecting sensitivity data by measuring deflections of the finite element model resulting from the application of forces and accelerations.
  • the present invention also provides a method wherein the finite element model comprises a plurality of nodes, and the step of collecting sensitivity data further comprises: (i) fixing an output of the finite element model; (ii) applying a unit force in one Cartesian direction to one of the plurality of nodes in the finite element model, (iii) recording resulting deflections, in each Cartesian direction, at one or more of the plurality of nodes in the finite element model; (iv) repeating steps (ii)-(iii) for each Cartesian direction; (v) repeating step (iv) for each of the plurality of nodes; (vi) applying a unit acceleration in one Cartesian direction to the finite element model; (vii) recording resulting deflections, in each cartesian direction, at one or more of the plurality of nodes; and (viii) repeating (vi)- (vii) for each Cartesian direction of acceleration.
  • the present invention also provides a method wherein the step of compensating the movement commands further comprises: modeling the pivot locations; calculating actuator forces; calculating platform accelerations; applying the actuator forces and accelerations to the collected compliance information in order to determine deflections in the pivot locations; adjusting the pivot locations according to the deflections; and compensating movement commands to the positioning device based on the adjustment of the pivot locations.
  • the present invention also provides a compliance compensation system comprising: a positioning device and a microcomputer configured to control the positioning device, wherein the microcomputer is configured to collect compliance information about the positioning device and adjust the control of the position device according to the compliance information.
  • the present invention also provides a compliance compensation system wherein the positioning device further comprises a plurality of actuators connected between an upper platform and a lower platform at a plurality of pivot locations; and wherein the microcomputer further comprises: a machine control configured to control the positioning device; machine pivot model configured to model the plurality of pivot locations of the positioning device; an actuator force calculator configured to use a plurality of properties of the positioning device in order to determine forces applied by the plurality of actuators on the positioning device; a calculator configured to provide platform accelerations; and a machine sensitivity model configured to model the collected compliance information about the positioning device in order to determine deflections of the plurality of actuators due to the forces and accelerations being applied.
  • the present invention also provides a method of compensating for deflections in a hexapod machining center having an upper platform connected to a lower platform by way of a plurality of actuators and a plurality of counterbalances, at a plurality of pivot locations, the method comprising: (a) developing independent finite element models of the upper and lower platforms of the hexapod machining center; (b) fixing the spindle cartridge of the upper platform finite element model, and fixing the work pallet of the lower platform finite element model; (c) choosing one of the plurality of pivot locations on the upper platform; (d) applying a unit force in a Cartesian direction to the one of the plurality of pivot locations on the upper platform and recording the displacement of the plurality of pivot locations on the upper platform in each Cartesian direction; (e) repeating step (d) for each Cartesian direction; (f) repeating steps (c)-(e) for each of the plurality of pivot locations on the upper platform; (g) choosing one of the plurality of pivot locations on
  • the present invention also provides an apparatus for compensating for deflections in a positioning device having a movable platform mounted on a plurality of actuators at a plurality of pivot locations, the apparatus comprising: means for collecting compliance information of the positioning device; means for compensating movement commands according to the collected compliance information; and means for moving the positioning device according to the compensated movement commands.
  • the present invention also provides an apparatus wherein the means for collecting compliance information further comprises: a finite element model of the positioning device; and means for collecting sensitivity data by recording deflections of the finite element model resulting from the application of forces and accelerations.
  • the present invention also provides an apparatus wherein the finite element model comprises a plurality of nodes and the means for collecting sensitivity data further comprises: a fixed output of the finite element model; means for applying any of the unit forces, in one Cartesian direction, to any of the plurality of nodes in the finite element model; means for recording resulting deflections, in each Cartesian direction, at one or more of the plurality of nodes in the finite element model; means for applying any of the unit accelerations, in one Cartesian direction, to the finite element model; and means for recording resulting deflections, in each Cartesian direction, at one or more of the plurality of nodes in the finite element model.
  • the present invention also provides an apparatus wherein the means for compensating further comprises: means for modeling the pivot locations; means for calculating actuator forces and accelerations; means for applying the actuator forces and accelerations to the collected compliance information in order to determine deflections in the pivot locations; means for adjusting the pivot locations according to the deflections; and means for compensating movement commands to the positioning device based on the adjustment of the pivot locations.
  • FIGURE 1 is a perspective view of the hexapod machining center calibration system in accordance with a preferred embodiment of the present invention
  • FIGURE 2 is a side view of the hexapod machining center of FIGURE 1 ;
  • FIGURES 3A & 3B represent a schematic diagram of an instrument arm and a cross-section of an extensible actuator leg incorporating an instrument arm, respectively, used for measuring the length of the actuators of the hexapod machining center of FIGURE 2;
  • FIGURE 4 is a general block diagram of a control system for the calibration system of FIGURE 1 in accordance with the present invention
  • FIGURE 5 is an enlarged, side perspective view of a gauge nest and a ball plate attached to the hexapod machining center of FIGURE 2 for calibration;
  • FIGURE 6 is a bottom perspective view of the gauge nest attached to the spindle cartridge of the hexapod machining center of FIGURE 2;
  • FIGURE 7 is a top perspective view of the ball plate attached to the work pallet of the hexapod machining center of FIGURE 2;
  • FIGURE 8 is a flowchart of the steps taken to perform a ball run calibration procedure for the calibration system of FIGURE 1 ;
  • FIGURE 9 is a flowchart of the steps required to control the servo system during the ball run calibration procedure of FIGURE 8;
  • FIGURE 10 is a flowchart of the steps taken to perform a simulation analysis for the calibration system of FIGURE 1 ;
  • FIGURE 1 1 is a flowchart of the steps taken to simulate the upper platform movement step of the simulation analysis of FIGURE 10;
  • FIGURE 12 is a detailed block diagram of a portion of the control system of FIGURE 4;
  • FIGURE 1 3 is a general flowchart of the steps taken to perform the reaction feedforward calculation of the reaction feedforward calculator of FIGURE 1 2;
  • FIGURE 14 is a detailed flowchart of the steps taken to perform the calculation of actuator forces of the reaction feedforward calculation of FIGURE 1 3;
  • FIGURE 1 5 is a signal flow diagram showing the operation of the kinematics calculator of FIGURE 1 2;
  • FIGURE 1 6 represents a flowchart of the steps taken to collect compliance information for the machine sensitivity model of FIGURE 1 5;
  • FIGURE 1 7 is a signal flow diagram showing the operation of the servo feedback system of FIGURE 1 2.
  • the calibration system 100 comprises a hexapod machining center 1 10 connected to a series of equipment enclosures 1 20 by way of a power and control cable loop 1 25.
  • the series of enclosures 1 20 preferably comprises a microcomputer bay 1 30, a servo power control system 140, and a tool power control system 1 50.
  • the microcomputer bay 1 30 and the servo power control system 140 will be described in further detail with reference to FIGURE 4.
  • the tool power control system 1 50 operates the motor used to rotate the spindle of the machining center, and this system is available from Giddings & Lewis, Inc. of Fond du Lac,
  • the gas springs 1 60 affixed to the feet 1 70 of the hexapod machining center 1 10 comprise one embodiment of a vibration isolation system, which will be explained in more detail below. Note, however, that the techniques of the present invention may be used on various other types of positioning devices other than hexapod machining centers.
  • FIGURE 2 a preferred embodiment of the hexapod machining center 1 10 is shown.
  • the hexapod machining center 1 10 includes a base or lower platform 200 connected to an upper or tool platform 205 by an actuator mechanism 210.
  • Actuator mechanism 210 preferably includes a plurality of extendable linkages or actuators 21 5 attached to the lower platform 200 at a plurality of lower pivot locations 21 5a and to the upper platform 205 at a plurality of upper pivot locations 21 5b.
  • Each actuator 21 5 may be constructed, for example, using a ball screw mechanism. Although the preferred embodiment includes a ball screw mechanism, the invention is not limited to this type of actuator.
  • Actuators 21 5 could include pneumatic cylinders, hydraulic cylinders, or rack-and-pinion devices.
  • Upper platform 205 includes a spindle cartridge 220 configured to hold a tool 225.
  • the lower platform 200 includes a work pallet 240 configured to hold a workpiece 230.
  • Tool 225 interacts with workpiece
  • the hexapod machining center 1 10 may optionally include a plurality of counterbalances 235 to counteract gravitational effects.
  • Counterbalances 235 are preferably nitrogen gas-filled springs connected between the base or lower platform 200 and the upper or movable platform 205 at pivot locations 250.
  • the hexapod machining center 1 10 could also include different types of vibration isolation components.
  • the hexapod machining center 1 10 is isolated from the floor by two gas springs 1 60, one positioned on each side of each of the three feet 1 70 of the base of the machine.
  • Vibration isolation components could comprise springs without dampers, combinations of separate springs and dampers, resilient pads, etc.
  • the lower platform is separate and isolated from the floor such that it is decoupled by a vibration isolation system.
  • the vibration isolation system the lower platform may not serve as a stationary base for the machine, and it may make a difference whether the lower platform is referred to as a "base" .
  • the lower platform in a horizontal machining center orientation, the lower platform
  • base platform or “lower platform” terminology used herein not only refers to the specific type of machining center shown in FIGURE 2, but also to many other types of positioning devices and machining center configurations.
  • the position and orientation of the machine at any instant is monitored by a plurality of measuring transducers, e.g., one transducer is associated with each of the actuators 21 5.
  • U.S. Patent No. 5,538,373 discloses the use of six instrument arms, separate from the actuators 21 5, wherein each instrument arm contains a length-measuring transducer.
  • One possible type of length- measuring transducer is a laser interferometer such as shown in FIGURES 3A and 3B.
  • the measuring transducer can be configured as separate instrument arms attached to its own pivots located on the upper and lower platforms, or can be constructed inside each of the actuators as will be described below.
  • an instrument arm 300 is formed of concentric outer and inner tubes 310 and 315, respectively, that telescope on bearings 325.
  • a laser beam from a laser light source 330 enters the sealed hollow interior of the instrument arm through a window 335, and is then reflected off a mirror 340 into an interferometer device 345 where it is divided into two beam components.
  • One beam component travels inside the entire length of the concentric tubes to a retro-reflector 350 which is mounted at the closed end of the outer tube 310.
  • Light is reflected back down the tubes towards the interferometer device 345.
  • the two beam components are then recombined within the interferometer device 345, and the combined beam components interfere with each other, constructively or destructively, depending on their phase.
  • a photodetector within the laser light source 330 detects the fringes that result from the interference between the two components of the light beam as the retro-reflector 350 moves relative to the interferometer device 345.
  • the phase is dependent upon the distance between the interferometer device 345 and the retro-reflector 350, and the fringes are therefore indicative of changes in the length of the instrument arm 300.
  • FIGURE 3A illustrates a representative instrument arm 300 which is separate from the actuators 215
  • FIGURE 3B illustrates a cross-section of a measurement transducer 360 comprised of an extendable actuator leg 215 incorporating a laser interferometer instrument system inside it.
  • the actuator leg 215 includes a rotatable ball screw rod 365 having a hollow interior and connected to a motor 370 by a drive mechanism 375, such as a belt and pulley arrangement.
  • the ball screw rod 365 is rotatably mounted to the yoke of a first of two universal joint assemblies 380, 382.
  • a nut tube 385 surrounds and is operatively connected to the ball screw rod 365 by a plurality of recirculating balls 388.
  • the nut tube 385 is mounted to the yoke of the second universal joint assembly 382. Therefore, the centers of the universal joints 380, 382 define the pivot locations 21 5a and 21 5b of the actuator 21 5. Thus, as ball screw rod 365 is rotated within nut tube 385, the universal joint assemblies 380, 382 are driven farther apart or closer together depending on the direction of rotation of the ball screw rod.
  • a tubular housing 390 is attached to the yoke of the second universal joint assembly 382 and surrounds the ball screw rod 365 as shown.
  • laser light source 330 is mounted to the tubular housing 390
  • the interferometer device 345 is mounted within the distal end of tubular housing 390 separate from ball screw rod 365
  • the retro-reflector 350 is mounted at the other end of the ball screw.
  • the laser interferometer measurement transducer 360 is able to precisely measure the distance between the points at which interferometer device 345 and the retro-reflector 350 are disposed on the ball screw-driven actuator 21 5. This distance can be mathematically translated to determine the locations of pivots 21 5a and 21 5b. Since this combined interferometer-actuator is the preferred embodiment, the remaining description of the invention will use the pivot locations with reference to the pivots of the actuator 21 5 as opposed to the pivots of a separate instrument arm. However, the invention will work with either measurement configuration, since, as will be explained in detail below, it is the calibration ball run of the actual positioning device that determines the estimated pivot locations of the instrument arms, irrespective of whether the instrument arms are coincident with the actuators 21 5.
  • the control system 400 comprises a microcomputer 410, which includes input and output circuits 41 2, at least one central processing unit 414, a random-access memory 41 6, and a read-only memory 41 8.
  • Microcomputer 410 further includes an external memory 420 for storing, for example, the control software for the calibration system 400 and data relating to the calibration and control of the hexapod machining center 1 10.
  • An operator interface 425 is connected to the microcomputer 410.
  • the operator interface 425 can include, for example, a display, a keyboard, a printer or other output devices, and/or an input pointing device.
  • the microcomputer 410 is coupled to a processor 430.
  • the processor 430 provides mathematical transformations from Cartesian coordinate system-based instructions to actuator lengths.
  • the processor 430 is connected to a pair of digital signal processors (DSPs) 440, each of which is connected to a plurality of servo control stages 443 for each actuator 21 5.
  • Each control stage 443 comprises a servo amplifier 445, a motor 450, an encoder 455, an actuator drive 460 (e.g., the ball screw mechanisms of actuators 21 5 of FIGURE 2), and a measuring transducer 465 (e.g., such as laser interferometer measuring transducer 360 of FIGURE 3B) .
  • the servo amplifier 445 provides the correct power to the motor
  • microcomputer 410 which includes an encoder 455.
  • the encoder 455 feeds back a signal indicative of the motor speed in order to provide a closed velocity loop in the actuator control system.
  • the feedback signal from the encoder 455 is coupled to the appropriate digital signal processor 440.
  • the servo amplifier 445 receives a signal to activate the motor 450, the motor moves the actuator drive 460 and either extends or retracts the actuator 21 5, thus providing some movement to upper platform 205.
  • the measuring transducer 465 operating as described above, feeds back the precise change in the length of the actuator 21 5 to the digital signal processor 440, which then relays that information through processor 430 to microcomputer 410.
  • microcomputer 410 is a CNC 8000 controller available from Giddings & Lewis, Inc.
  • processor 430 is the commonly available Intel PENTIUM (trademark of Intel corporation) microprocessor; digital signal processors 440 are Type 21 81 DSPs available from Analog Devices, Inc. of Norwood, Massachusetts; the servo amplifiers 445 are Model BDS4
  • the servo system In the normal operation of the hexapod machining center 1 10, the servo system includes DSPs 440 and the servo control stages 443 which provide a closed feedback loop used to position the machine. However, during a calibration run (such as a "ball run” described below), information from a calibration device 470 (such as a gauge nest described below) is included in a larger feedback loop including digital signal processors 440. Hence, in the calibration mode, the servo system further includes processor 430 and the calibration device 470.
  • processor 430 could be eliminated if its function was incorporated into a more powerful microcomputer 410.
  • the Giddings & Lewis CNC 8000 controller actually includes an IBM-compatible personal computer in order to perform many of its functions, particularly with respect to the user interface.
  • the tasks performed by each computer or processor shown in FIGURE 4 will be described below with respect to a particular hardware deice, the techniques of the present invention should not be interpreted to be restricted to any such device.
  • FIGURE 5 provides an enlarged, side perspective view of a gauge nest 505 and a ball plate 510 attached to the hexapod machining center
  • Gauge nest 505 is attached to spindle cartridge 220 on the upper platform 205, and ball plate 510 is attached to work pallet 240 on the lower platform 200.
  • the calibration system moves the gauge nest 505 in relation to the ball plate 510 in order to record precision actuator information used to calibrate the machine. This calibration procedure will now be explained in detail.
  • the gauge nest 505 includes a plurality of sensors 605 disposed around a single point as shown.
  • the sensors 605 are arranged in such a manner so as to detect a displacement of the upper platform 205 with respect to a ball on the ball plate 510.
  • FIGURE 7 a top perspective view of the ball plate 510 is shown.
  • the ball plate 510 comprises six precision balls 705 arranged around a center precision ball and disposed on the corners of a hexagon-shaped base 710.
  • FIGURES 6 and 7 show the sensors 605 configured to measure seven precision balls 705 arranged in a hexagon pattern, the invention is not limited to such ball plate and sensor configuration. Rather, the ball plate
  • 510 serves as an example of any type of artifact to be measured, e.g., a ball plate in any configuration, a cylinder, a surface plate, a step gauge, a moveable tooling ball, a laser interferometer light beam, etc.
  • sensors 605 are conventional Linear Variable Differential Transformers (LVDTs). Each LVDT produces an electrical output signal proportional to the displacement of its moveable core. Each sensor 605 has an end portion 610 which comes in mechanical contact with precision balls 705 during the calibration process. End portion 610 is mechanically connected to the LVDT movable core, which is made of a magnetic material. The moveable core is positioned inside of a primary and two secondary coils such that the primary coil is located between the two secondary coils.
  • LVDTs Linear Variable Differential Transformers
  • LVDTs translate physical inputs, e.g., movements of the end portion 610, into an output voltage corresponding to a displacement from a zero position.
  • a further description of the LVDTs can be found in the Handbook of Measurement and Control, HB-84, published by Schaevitz Engineering of Pennsauken, N.J., October 1 983 (Library of Congress Card
  • Different types of sensors 605 would be used with different types of artifacts.
  • LVDTs can be used to measure the aforementioned cylinder, surface plate, and tooling ball
  • a laser interferometer can be used to monitor linear movements of the upper platform over distances equal to integral numbers of light wavelengths.
  • the type of artifact may determine the type of precision movement.
  • FIGURES 8-1 1 illustrate how the calibration system is used to find the precise dimensions of the hexapod machining center 1 10 by computer simulation.
  • this calibration technique is accomplished in the present invention using a two-stage process: (1 ) performing a "ball run" on the machine, i.e., requiring the hexapod machining center 1 10 to make precision movements such that the gauge nest 505 is moved around the precision ball 705 by control of the actuator mechanism 210 in order to acquire exact measurement data on a particular positioning device; and (2) performing a "simulation analysis" on a computer, i.e., using the measurement data from the ball run in order to iteratively determine the precise dimensions of the positioning device to within specified tolerance limits.
  • the precise dimensions utilized are the location of the plurality of pivot locations 21 5a and 21 5b for the actuators.
  • FIGURE 8 provides a detailed explanation of the first part of the calibration process in the form of a flowchart illustrating the steps taken to perform a ball run calibration procedure.
  • measurement data must first be collected from a series of precision machine movements, called a "ball run", in order to determine the precise geometry, or linkage dimensions, of the hexapod machining center 1 10.
  • a parameter called the "change-in-actuator-length" is collected as the measurement data, as will be discussed below.
  • Step 800 rough estimates of the pivot locations for the plurality of actuators 215 are determined in Step 805 according to previous knowledge of the manufactured dimensions of the machine.
  • the machine is a hexapod machining center
  • These manufactured dimensions are preferably accurate to within ⁇ Y. inch of the actual values which will finally be determined.
  • These estimated pivot locations are defined by Cartesian coordinates measured from an absolute or "fixed" coordinate system associated with the lower platform 200.
  • An example of estimated pivot locations for one actuator 21 5 would be [-1 7.7, -38.2, -23.6] for the lower pivot location 21 5a and [-40.9, 10.23, 23.6] for the upper pivot location 21 5b.
  • the units for this example are inches, but any other unit could be used. Note that since the absolute coordinate system is fixed to the lower platform, it would not matter whether the lower pivots actually move with respect to the floor.
  • Each displacement of the upper platform is defined with respect to a reference position having coordinates [0, 0, 0, 0, 0, 0].
  • the upper platform pivots are coincident with the aforementioned six points defining the upper platform pivots, measured from the absolute coordinate system fixed to the lower platform 200.
  • a displacement from the reference position [0, 0, 0, 0, 0, 0] to an arbitrary position [1 , 3, 5, 2, 4, 6] would be accomplished as follows:
  • A. define a "moving coordinate system" associated with and attached to the upper platform, such that the moving coordinate system is coincident with the fixed absolute coordinate system of the lower platform only when the upper platform is situated at the reference position;
  • Step 810 these estimates of the actuator lengths are calculated for the reference position of the upper platform, and are called "actuator lengths at the reference position" .
  • a rough estimate of the center of sensors 605 in the moving coordinate system is available.
  • An example of such a sensor position estimate would be [0, 0, 0] in the moving coordinate system of the upper platform 205.
  • a rough estimate of ball locations is also available in absolute coordinates.
  • An example of such a ball location is [5, 0, 0] in the absolute coordinate system of the lower platform 200.
  • Step 820 microcomputer 410 calculates and outputs platform command data required to move the upper platform 205 to a "new" position such that the gauge nest sensors 605 are in mechanical contact with one of the precision balls 705.
  • the processor 430 uses the actuator feedback data to control the servo system such that the actuators move the upper platform 205 to the new position corresponding to the platform command data.
  • the servo system comprises that portion of the control system which is used to position the machine. The steps required to control the servo system will be further explained in connection with FIGURE 9.
  • Step 830 the output from the control of the servo system is recorded in a data file. This output represents the output of the ball run calibration procedure and is called "change-in-actuator-length data. "
  • the upper platform 205 is instructed to make fifty precision rotation movements around the center of each of the seven precision balls 705, for a total of three hundred fifty precision movements per ball run. It should be noted, however, that the number of movements is dependent upon the type of machine, its particular application, the desired precision, the type of artifact, and the type of movement. Although three hundred fifty precision movements were chosen in the preferred embodiment, a statistically sufficient number of movements is all that is required.
  • the microcomputer 410 determines in Step 835 whether the current position of the upper platform 205 represents the last of the preferred fifty positions associated with the current precision ball 705.
  • Step 840 microcomputer 410 sends next position platform command data, required to move the upper platform 205 to a new position on the same ball 705.
  • the new platform position has an angular orientation that is different from those of other platform positions centered on the same ball. Then, in Step 825, the above-described data-gathering process is repeated.
  • microcomputer 410 determines that the current position of the upper platform 205 represents the last position associated with the current precision ball 705, the microcomputer 410 then determines in
  • Step 845 whether the current precision ball 705 is the last of the seven balls on ball plate 510. If not, in Step 850, microcomputer 410 sends next ball platform command data required to move the upper platform 205 to the next precision ball, and in Step 825, the above-described process is repeated for the next ball. If the microcomputer 410 determines that the current precision ball is the last of the seven balls on ball plate 510, the ball run calibration procedure is completed at Step 855. Upon completion, the change-in-actuator-length data, representing the difference between the actuator lengths at the reference position and the actuator lengths at each of the preferred three hundred fifty positions, is stored in memory 420.
  • FIGURE 9 provides a detailed explanation of Step 825 of FIGURE 8 which primarily runs on processor 430 and operates the servo system during the ball run calibration procedure.
  • Step 900 the platform command data instructing the platform to move is input at
  • Step 905. This data was provided by Steps 820, 840, and 850 of FIGURE 8. Then, in Step 910, the processor 430 transforms the estimated platform pivot locations (e.g., those of Step 805 of FIGURE 8) at the reference position [0, 0, 0, 0, 0, 0] to new pivot locations according to the position required by the platform command data (e.g., the above-mentioned platform position command [1 , 3, 5, 2, 4, 6]).
  • the platform command data e.g., the above-mentioned platform position command [1 , 3, 5, 2, 4, 6].
  • Step 91 5 the processor 430 uses the new estimated pivot locations from Step 910 and the Pythagorean theorem to produce a set of new actuator lengths required to move the upper platform 205 to the position required by the platform command data.
  • Step 920 the processor 430 actuates the servo system.
  • the processor 430 sends the new actuator lengths to the digital signal processors 440 of FIGURE 4.
  • Each of the servo amplifiers 445 drives their respective motors 450 such that the respective actuator drives 460 adjust each actuator 215 to the new actuator length.
  • Measuring transducer 465 feeds back data to the digital signal processors 440 in order to ensure the actuator 215 is precisely extended or retracted to the new actuator length. Accordingly, the upper platform 205 is moved to the position required by the platform command data.
  • Step 920 the movement of Step 920 will not correspond exactly with the precision nature of the artifact, even though it exactly corresponds to the actual changes in actuator lengths from those at the reference position as calculated by processor 430. Since the end portions 610 of sensors 605 are in mechanical contact with the precision ball 705, when the upper platform 205 movement deviates from the exact location of the precision balls 705, the end portions 610 of one or more sensors 605 are displaced. In Step 925, this displacement is fed back as a voltage difference for each sensor to the processor 430. In Step 930, processor 430 determines if the voltage differences are within a predetermined limit.
  • this predetermined limit is 9 mV. If the voltage differences are not within the predetermined limit, processor 430 converts the voltage differences in Step 935 into new platform command data designed to minimize the displacements of the sensors 605. For example, a platform position [1 , 3, 5, 2, 4, 6] might result in a new platform command of [1 .01 , 2.99, 5.01 , 2, 4, 6]. This conversion is accomplished by applying a series of well known coordinate system similarity transformations to the displacements along the axes of the sensors. This similarity transformation is required in the preferred embodiment because the axes of the sensors 605 of the gauge nest 505 are not orthogonal.
  • Step 940 the new platform command data is adjusted by means of integral and proportional feedback from the LVDTs, e.g., using an integrator to drive the LVDTs completely to null and using a proportional gain for stability.
  • processor 430 returns control to Step 910, where the above-described process is repeated using the adjusted platform command data.
  • the platform command data is continuously adjusted until the voltages output from sensors 605 are reduced to within the above- mentioned displacement limits.
  • the current actuator lengths are subtracted in Step 950 from the actuator lengths at the reference position (e.g., from Step 810 in FIGURE 8).
  • Step 955 these differences are output as "change-in-actuator- length data" and control of the servo system is completed at Step 960.
  • the dimensions of the machine and any unknown characteristics of the artifacts can be found.
  • the latter include: the orientation of a line and the coordinates of a point on the line measured by a laser interferometer, the location and orientation of a line defined by the center of a cylinder; the location and orientation of a plane defined by a surface plate; and the center of rotation defined by a tooling ball. Note that for many machining center applications, it may be desired to perform the calibration run using a line generated by a laser interferometer instead of a ball plate as the artifact.
  • the calibration run would comprise a "laser run” instead of a "ball run” .
  • the simulation analysis uses the change-in-actuator-length data to iteratively determine the plurality of pivot locations 215a and 21 5b of the hexapod machining center 1 10. This process is shown in detail with reference to FIGURES 10-1 1 .
  • FIGURE 10 a flowchart of the steps taken to perform the platform simulation analysis is provided. These steps can be executed either on microcomputer 410 or on a completely separate and distinct computer system than microcomputer 410.
  • the simulation analysis computer would have the change-in-actuator-length data file transferred to it, either by way of any mass storage device (e.g., floppy disk, CD-ROM), over the Internet, or through any known network connection (e.g., LAN or WAN) .
  • the computer system either the microcomputer 41 0 or the above-mentioned separate computer system
  • the platform simulator is the personal computer included in the CNC 8000 mentioned above.
  • the platform simulator receives the change-in-actuator-length data in Step 1005.
  • the platform simulator makes initial estimates of the locations of the artifacts, e.g, the seven precision balls. These estimates are based on prior knowledge of the placement of the precision balls on the lower platform 200.
  • the ball locations are defined with respect to the above- mentioned absolute coordinate system fixed to the lower platform. Examples of seven ball location estimates in the absolute X-Y-Z coordinate system are: [0, 0, 0]; [-8.5, 0, 0]; [-4.3, -7.5, 0];
  • Step 101 5 the platform simulator makes initial estimates of the pivot locations in the lower and upper platforms, 21 5a and 21 5b, respectively. Both of these estimates are made from knowledge of the dimensions of the machine within manufacturing tolerance limits.
  • Step 1020 the platform simulator uses the initial estimated ball locations and pivot locations along with the change-in-actuator-length data to simulate platform movement for each precision movement of the ball run calibration procedure. Accordingly, three hundred fifty simulations are performed, corresponding to each change-in-actuator- length datapoint. The steps taken to perform this simulation of platform movement are shown in detail in FIGURE 1 1 and will be discussed below.
  • the simulation of platform movement provides microcomputer 410 with three hundred fifty positions of the upper platform 205.
  • Step 1025 the platform simulator subtracts the seven estimated ball locations of Step 1010 from the resulting three hundred fifty ball locations of Step 1020 in order to obtain differences, and then squares and sums these differences to create a "cost function".
  • Step 1030 the ball locations and pivot locations are adjusted in order to reduce the cost function.
  • D-F-P Fletcher-Powell nonlinear programming algorithm
  • D-F-P Fletcher-Powell
  • Step 1035 the platform simulator uses the adjusted pivot locations and ball locations along with the original change-in-actuator- length data to again simulate platform movement. As explained above, the platform simulator calculates movement of the upper platform for each of the three hundred fifty change-in-actuator-length datapoints gathered during the ball run calibration procedure, one at a time. In Step 1040, the cost function described in Step 1025 is recalculated using the newly adjusted seven ball locations from Step 1030 and the three hundred fifty ball locations from Step 1035.
  • Step 1045 a "cost change" is computed using the current cost function value by subtracting the previous cost function value (i.e., on the first pass through the flowchart, the previous cost function is the value calculated in Step 1025, otherwise it is the previous cost function value from Step 1035); this difference is then divided by the current cost function value to determine the cost change.
  • the platform simulator determines if the cost change computed in Step 1045 is below a predetermined limit. In the preferred embodiment, the predetermined limit is 1 .OE-9. If the differences are greater than the predetermined limit, the platform simulator returns to Step 1030 and Steps 1030-1050 are repeated.
  • Step 1050 the platform simulator determines that the cost change is less than the predetermined limit
  • the simulation analysis is completed and the final estimates of the pivot locations and ball locations are output in Step 1 055, and the simulation analysis ends with Step 1060.
  • These final estimates represent the actual dimensions of the machine used to perform the ball run calibration procedure within an acceptable error.
  • the simulation of platform movement of Steps 1020 and 1035 is illustrated in more detail with reference to FIGURE 1 1 .
  • the platform simulator does not know or care that the input pivot locations and ball locations are simply estimates. Rather, the platform simulator assumes that an exact machine geometry is represented. The platform simulator then uses the change-in-actuator-length data to find a new position of the machine. For example, the position of the upper platform 205 before the simulation could be at the reference position
  • the upper platform 205 would be at a displaced position, say [ 1 , 3, 5, 2, 4, 6], if the change-in-actuator-length data corresponds to that position.
  • the simulation of the upper platform movement can be used in systems completely different and independent of the subject calibration system. Accordingly, the steps of the simulation of platform movement can be executed on any computer system.
  • Step 1 100 the platform simulator first receives a set of pivot locations and estimated ball locations in Step 1 1 05.
  • the pivot locations are used in Step 1 1 10 to calculate the actual actuator lengths between pivots at the [0, 0, 0, 0, 0, 0] platform position (i.e., the reference position), to which are added the change-in-actuator-length data for the particular platform position of interest.
  • the results are the actual actuator lengths for the displaced platform position.
  • the platform simulator assigns or receives an estimate of the new platform position.
  • the reference position may be an acceptable initial estimate of the new platform position.
  • the platform simulator transforms the platform reference position (and the upper platform reference pivot locations) to the estimated new platform position.
  • Step 1 1 25 the Pythagorean theorem is used to calculate the distance between each pair of lower platform actuator pivots and transformed upper platform actuator pivots. The results are estimated actuator lengths corresponding to the estimated new platform position.
  • the actuator length errors are calculated as the sum of the squares of the differences between the estimated actuator lengths from Step 1 1 25 and the actual actuator lengths from Step 1 1 10.
  • the platform simulator adjusts the estimated new platform position to reduce the actuator length error defined in Step 1 1 30. This adjustment is done in the preferred embodiment using the well-known Newton Raphson method, although any algorithm designed to minimize the value of a multi-variable function can be applied. Refer to Elements of Numerical Analysis by P.
  • Step 1 140 the platform simulator compares the amount of adjustment required in Step 1 1 35 to a predetermined limit. If the adjustment is more than the predetermined limit, the platform simulator returns control to Step 1 1 1 5, and Steps 1 1 1 5-1 140 are repeated. Through iterative adjustments of the position of the upper platform or the estimated new position, the adjustment required in Step 1 140 will eventually become smaller and smaller.
  • the predetermined adjustment limit used in Step 1 140 is defined such that the absolute value of the change in any of the platform coordinates X, Y, Z, A, B, or C must be less that 1 .OE-6. If the adjustment meets the limit in Step 1 140, the platform simulator outputs the commanded position as the position of the upper platform in Step 1 145.
  • the platform simulator would output that position as the position of the upper platform 205, or as discussed above, the position of one of the precision balls 705.
  • the simulation of platform movement is completed at Step 1 105.
  • the hexapod machining center is calibrated by first collecting change-in-actuator-length data when the actual machine performs a series of precision movements defined by a particular artifact. This data is then collected and used in an iterative processes on a simulation computer to find the actual locations of the pivots.
  • the present invention provides for the calibration of a positioning device without the use of extremely precise pivot locations for the movable platform.
  • the calibration system requires only that a set of calibration movements be made, and then the calibration data can be manipulated on any remote computer. Therefore, the hexapod machining center can be re-calibrated periodically in the field to ensure its long-term accuracy.
  • the calibration technique of the present invention ensures very high precision for a positioning device without the high cost of other conventional calibration systems.
  • the microcomputer 410 controls hexapod machine center such that the upper platform 205 moves along a pre-programmed path.
  • the microcomputer 410 moves the upper platform by sending platform command data in the form of a new desired position. For example, if the upper platform currently resides at position [0, 0, 0, 0, 0, 0], the pre-programmed path may require microcomputer 410 to move to new position
  • the platform command data would be [1 , 2, 3, 5, 5, 5] *, where the asterisk " *" indicates that the position is treated as a command or instruction to the positioning device to move it to that position, as opposed to the current position itself.
  • This platform command data must be transformed into actuator movement through the hardware described with reference to FIGURES 4 and 1 2-1 7. In FIGURES 1 2-1 7 below, a detailed explanation will be presented as to how the platform command data is transformed into precise actuator movement.
  • the microcomputer 410 sends the platform command data [X, Y, Z, A, B, C] * to a trajectory generator 1 205 which is preferably internal to microcomputer 410.
  • Trajectory generator 1 205 converts this cartesian machine platform command data into a continuous stream of commanded position, velocity, and acceleration (p,v,a) motion command data and outputs all three.
  • Each p, v, and a parameter calculated above consists of two vectors, one rectilinear, (X, Y, Z) and one angular (A,B,C).
  • the coefficients A, B, C, and D are calculated by the trajectory generator in such a way that certain limits of jerk, acceleration, and velocity are not exceeded.
  • the trajectory generator creates one or more S curves, which are used in succession, for each position command [X, Y, Z, A, B, C] * into generator 1205.
  • trajectory generator 1205 outputs the commanded relative position, velocity, and acceleration to both a reaction feedforward calculator 1210 and a kinematics calculator 1215.
  • the reaction feedforward calculator 1210 uses the commanded relative position, velocity, and acceleration as well as the forces acting on the lower platform to determine actuator forces F* on each actuator 215 to produce the relative accelerations commanded by trajectory calculator 1205. The steps required to perform this transformation are further described with reference to FIGURE 13.
  • the reaction feedforward calculator 1210 outputs the actuator forces F* to the kinematics calculator 1215 and to a servo feedback system 1225.
  • Kinematics calculator 1215 uses the commanded position and the actuator forces F* to determine commanded actuator lengths L* which include a correction for the errors due to the elastic distortions of the hexapod machining center 1 10 caused by the actuator forces F* and other inertia forces.
  • the signal flow diagram of the routines required to perform the determination of commanded actuator lengths L* are further described with reference to FIGURE 15. Commanded actuator lengths L* are output to the servo feedback system 1 225 and to a differentiator 1 220.
  • Differentiator 1 220 provides the rate of change of actuator lengths L*, i.e., dL/dt, the derivative of the length L with respect to time, to the servo feedback system 1 225.
  • Servo feedback system 1 225 provides commanded torque
  • the control stage 443 comprises the servo amplifier 445, motor 450, encoder 455, actuator drive 460, and measuring transducer 465.
  • Each control stage 443 provides feedback from the encoder 455 and measuring transducer 465 to the servo feedback system 1 225.
  • servo feedback system 1 225 uses the commanded actuator forces F*, the commanded actuator lengths L*, the derivative of the commanded actuator lengths dL*/dt, and the feedback from each control stage 443 to determine the commanded torque T*.
  • the reaction feedforward calculator 1 210, the kinematics calculator 121 5, and the differentiator 1220 are implemented on the Intel PENTIUM CPU 430.
  • the servo feedback system 1225 is implemented on the digital signal processors 440 shown in FIGURE 4.
  • Step 1 300 the commanded relative position, velocity, and acceleration are received from the trajectory generator 1 205 at Step 1 305.
  • Step 1 310 the commanded relative position velocity, acceleration, and lower platform forces are used to calculate the actuator forces required to produce the desired relative accelerations. This calculation is done by solving a system of six equations simultaneously for the six actuator forces F.
  • CPmat * »F B (1 )
  • CPmat is a coupling matrix having the six columns of the top three rows filled with the unit vectors for each actuator 21 5, and the six columns of the bottom three rows filled with relative unit torque to inertia ratios, where the unit torques are the moments of the actuator unit vectors about the center of gravity of the associated platform. They are calculated as the cross-products of the leg unit vectors and the vectors from the center of gravity to the actuator pivots.
  • F is a vector of the six actuator forces.
  • the quantity being equated in the rectilinear system (top three rows) is force.
  • the quantity being equated in the angular system (bottom three rows) is relative angular acceleration. Therefore, the first three elements of the vector B on the right hand side of the equation are in force units. The last three elements are in acceleration units.
  • the first three elements of the B vector are the rectilinear forces in each of three directions X, Y, and Z, which are calculated as follows:
  • Ml is the mass of the lower platform
  • a is the commanded acceleration of the upper platform relative to the lower platform from Step 1305.
  • Sum_foot is the summation of all of rectilinear forces applied to the lower platform by the vibration isolation components from Step 1325.
  • the next three elements of the B vector are the commanded relative angular accelerations from Step 1305.
  • the actuator forces are output from reaction feedforward calculator 1210.
  • the commanded actuator forces F* are used to determine the new position, velocity, and acceleration of the lower platform 200. For example, since force equals mass times acceleration, all of the forces acting on the lower platform can be divided by the mass of the lower platform 200 to get the rectilinear acceleration. Similarly, the summation of all moments acting on the lower platform multiplied by the inverse of the lower platform inertia matrix is the lower platform acceleration. The acceleration is integrated to get the velocity of the lower platform 200. This velocity can be further integrated to get the position of the lower platform 200.
  • Step 1 325 the new position, velocity, and acceleration of the lower platform 200 are used to calculate the positions and velocities of the vibration isolation components 245, which, when combined with the stiffness and damping characteristics of the isolation components, are used to calculate the forces exerted by the isolation components on the lower platform.
  • the forces on the lower platform 200 caused by the vibration isolation components, and the new position, velocity, and acceleration of the lower platform 200, are again used in Step 1310 to determine the B vector, and the above-described process is repeated.
  • Step 1400 the coupling matrix CPmat and the B vector must be built in order to solve the equation for the actuator forces vector F.
  • Step 1405 PENTIUM processor 430 calculates the moment arms for the upper and lower platforms, 205 and 200.
  • the moment arm is a vector calculated by subtracting the center of gravity location from the pivot location on the actuator connected to that pivot location.
  • the PENTIUM processor 430 calculates the unit torque vectors for the upper and lower platforms, 205 and 200.
  • the unit torque vectors are equal to the cross product of a unit vector of the actuator 215 and the associated moment arm.
  • Step 141 5 PENTIUM processor 440 obtains the relative angular accelerations from the trajectory generator 1 205.
  • the coupling matrix is filled such that the top three rows contain the unit vectors of the actuators.
  • the bottom three rows are filled with the relative unit torque-to-inertia ratios.
  • Tlg n represents the six unit torque vectors for the lower platform 200 associated with each of six actuators.
  • the rotation matrices R and Rlc for the upper and lower platform, respectively, describe the platform rotations relative to the global coordinate system.
  • An example of the rotation matrix R is:
  • the PENTIUM processor 430 calculates the top three values of the B vector according to equation (2) .
  • the bottom three values of the B vector are filled using the following formula: maccc_ang + R ⁇ *Rlc*lli •Rlc ⁇ »foot_ang_tot (5) where maccc ang is the commanded relative angular acceleration from generator 1 205, R and Rlc were previously defined, and foot_ang_tot is a vector representing the summation of all of the moments exerted on the lower platform by the vibration isolation components.
  • digital signal processor 440 builds the B vector according to the above-described values.
  • PENTIUM processor 430 inverts the coupling matrix CPmat and multiplies it by the B vector in order to find the actuator forces vector F.
  • the commanded actuator forces F* are then output for each actuator
  • a signal flow diagram of the kinematics calculator 1215 of FIGURE 12 is illustrated.
  • Input into kinematics calculator 1215 is the commanded position vector p (which contains six position commands for X, Y, Z, A, B, and C) from trajectory generator 1205 and the actuator forces F*.
  • Kinematics calculator 1215 uses the rotational commanded position data [A, B, C] in a rotation matrix generator 1505 to generate a rotation matrix R.
  • Step 1055 of FIGURE 10 are added in adder 1525 and then input to a multiplier 1510 which rotates the pivot vectors by R.
  • the kinematics calculator 1215 then adds the linear command position data [X, Y, Z] from trajectory generator 1205 to the rotated pivot position data in adder 1515.
  • the kinematics calculator 1215 uses the actuator forces F* and the actuator unit vectors in a pivot deflection calculator 1520 in order to calculate the pivot migrations of the upper and lower platforms 205 and 200. These pivot migrations would be caused by elastic deflections of the machine platforms due to the actuator forces F* and inertia forces.
  • FIGURE 1 6 a flowchart of the steps taken by the pivot deflection calculator 1 520 to collect compliance information and build a machine compliance model are shown.
  • the accuracy of the hexapod machining center 1 1 0 is determined by how accurate the microcomputer 410 determines the plurality of pivot locations 21 5a and 21 5b.
  • the pivot locations 21 5a and 21 5b move slightly when forces are applied to the upper and lower platforms 205 and 200.
  • the significant forces preferably include: six actuator forces (tension and compressions) of the six extendable actuators 21 5; three counterbalance forces (compression) from the counterbalances 235; and the acceleration of distributed masses.
  • a finite element model of the upper platform is constructed in Step 1 605 using an IBM workstation running the CAEDS finite element software, which is a product of the Structural Dynamics Research Corporation, in the model, the spindle cartridge 220 of the upper platform 205 is fixed to ground, since the goal is to minimize the deflections of this component.
  • Such finite element models include a plurality of nodes at which forces may be applied or displacements may be recorded. In the preferred embodiment, a number of force nodes are defined at which forces may be applied: at the six actuator pivot locations 21 5b in the upper platform; and at the three counterbalance pivot locations 250 in the upper platform 205.
  • Six displacement nodes at which the three cartesian components of deflections will be recorded include the actuator pivot locations 21 5b in the upper platform 205.
  • the finite element model also provides the deflections at the displacement nodes in response to accelerations of the upper platform in the X, Y, and Z directions.
  • Step 1 61 a unit acceleration is applied to the upper platform 205 in one of the three cartesian directions X, Y, or Z.
  • the deflection responses of the actuator pivots 21 5b in the upper platform 205 are then recorded in Step 1 61 5, where each cartesian component is recorded at each of the six pivots 21 5b.
  • Step 1 620 causes the process to repeat Steps 1610 and 1 61 5 for independently applied accelerations in each cartesian direction.
  • Step 1 625 After recording the responses to the upper platform components of acceleration, a force node is chosen in Step 1 625, and a unit force is applied to the chosen force node in a single cartesian direction X, Y, or Z in Step 1 630.
  • the deflection responses, or "pivot migrations", of the actuator pivots 21 5b in the upper platform are recorded in Step 1 635, where each cartesian component is recorded at each of the six actuator pivots in the upper platform 205.
  • Step 1 640 causes the process to repeat Steps 1 630 and 1635 for independently applied unit forces in each cartesian direction, still applied at the chosen node.
  • Step 1 645 causes Steps 1 625 through 1 640 to be executed for all of the nodes at which unit forces are to be applied: six actuator pivots 21 5b and three counterbalance pivots 250.
  • the analysis of the lower platform 200 begins at Step 1 650.
  • a finite element model of the lower platform 200 is constructed using the aforementioned IBM workstation running the CAEDS finite element software.
  • the model of the work pallet 240 of the lower platform 200 is fixed to ground, since the goal is to minimize the deflections of this component.
  • the finite element model of the lower platform includes a plurality of nodes at which forces may be applied or displacements may be recorded.
  • force nodes are defined at which forces may be applied: at the six actuator pivot locations 215a in the lower platform.
  • the displacement nodes at which the three cartesian components of deflections are recorded include the six actuator pivot locations 215a in the lower platform 200.
  • Steps 1625 through 1645 i.e. for each application of a unit force in a single cartesian direction at a force node, the cartesian components of resulting deflections at all of the actuator pivots 215a in the lower platform 200 are recorded.
  • Step 1660 the process ends with Step 1660 when all the pivot migrations have been recorded. Note that the deflection responses to applied forces that were computed using the finite element models could be acquired experimentally. The actual platform structures could be fixed as was done in the finite element models, force components could be physically applied to the force nodes, and displacement node deflection responses could be physically measured.
  • the information preferably collected in FIGURE 16 is used in pivot deflection calculator 1520 of the hexapod machining center 1 10.
  • the actual cartesian components of forces applied to the force nodes are multiplied by the corresponding finite element model deflections of the displacement nodes (i.e. the actuator pivots) computed in response to unit forces applied at the force nodes.
  • the actual cartesian components of acceleration applied to the upper platform are multiplied by corresponding finite element model deflections of the displacement nodes (i.e. the actuator pivots) computed in response to unit accelerations applied to the upper platform 205.
  • the principle of superposition allows the displacements resulting from each individual force or acceleration to be summed, thereby yielding estimates of the actual deflections of the displacement nodes (i.e., the actuator pivots).
  • the Cl matrix contains the finite element deflections computed in response to unit forces, preferably determined according to FIGURE 1 6.
  • the force components applied to the force nodes are contained in the Fu vector, which is rotated into the fixed lower platform coordinate system by the rotation matrix R.
  • the resulting P vector contains the desired pivot migrations, which are output by the pivot deflection calculator 1 520 of FIGURE 1 5.
  • the migrations are supplied in the same coordinate system used to define the actuator pivot coordinates at the reference position
  • FIGURE 1 7 a signal flow diagram of the servo feedback system 1 225 of FIGURE 1 2 is illustrated.
  • Input into the servo feedback system 1 225 are the commanded actuator forces F*, the commanded actuator lengths L* and the derivative of the commanded actuator lengths dL*/dt.
  • the digital signal processor 440 feeds commanded actuator forces F* into a unit transformer 1 705 in order to transform the forces into torques. This is done by multiplying commanded actuator forces F* by the pitch of the upper platform 205 divided by 2*pi. This is the first of three torques added in adder 1 710 in order to develop the output commanded torque T* .
  • the digital signal processor 440 feeds the commanded actuator lengths L* into an adder 1715 where the actuator lengths L fed back from the measuring transducer 465 are subtracted.
  • the actuator length error is sent though a proportional integral derivative (PID) filter where a proportional gain Kp of the error is transformed into torque, an integral gain of the integral of the error is transformed into torque, and a derivative gain Kd derivative of the error is transformed into torque.
  • PID proportional integral derivative
  • the three torques are then added in adder 1720 and the result is the second torque of the three torques added in adder 1710.
  • the integral gain Ki is for low frequency enhancement, or stiffness enhancement
  • the derivative gain Kd is for adding dampening stability.
  • the IBM workstation also feeds the commanded actuator lengths L* into a transformer 1725, which transforms the commanded actuator lengths L* into commanded angular position ⁇ * of the actuator screw.
  • the commanded angular position ⁇ * is then subtracted from the fed back signal of the encoder 445 angular position ⁇ in subtractor 1730 in order to calculate an angular error.
  • the angular error is then give a proportional gain Kp and a derivative gain S and Kd for similar reasons as stated above.
  • the resulting torques are then added in adder 1735 and the result is a sum of the angular error torques.
  • the sum of the angular error torques are sent to an additional adder 1740.
  • 440 also inputs the derivative actuator lengths dL*/dt into a transformer 1745 in order to convert it into angular velocity.
  • the angular velocity is then multiplied by a gain for overcoming viscous friction of the motor 450 and the ball screw and the resulting torque is also added in adder 1740.
  • the angular velocity is also differentiated S in order to obtain angular acceleration, which is multiplied by the inertia J of the motor and actuator screw, and the resulting torque is added in adder 1740.
  • the resulting torque of adder 1740 is the third of three torques added to complete the commanded torque T* to the servo amps 445.
  • the compliance compensation technique of the present invention utilizes "clean" force data generated by the reaction feedforward calculator 1210.
  • the same compliance compensation technique can be used with other data.
  • the motor torque feedback data can be used for this purpose, although it is generally a very noisy signal and, accordingly, makes it more difficult to use.
  • Appendix B sets forth the detailed motion equations for the reaction feedforward calculator 1210
  • Appendix C sets forth the derivation of the B vector described above. Both of these appendices are attached hereto and incorporated herein by reference.

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Orthopedic Medicine & Surgery (AREA)
  • Automatic Control Of Machine Tools (AREA)
  • Manipulator (AREA)

Abstract

A system and method for compensating for compliance distortions in a positioning device, such as a hexapod machining center, is disclosed. The position device has a movable platform mounted on a plurality of actuators at a plurality of pivot locations. The method comprises the steps of: calculating compliance information of the positioning device; compensating actuator movement commands according to the collected compliance information; and moving the positioning device actuators according to the compensated movement commands.

Description

SYSTEM AND METHOD
FOR COMPENSATING FOR COMPLIANCE
OF A HEXAPOD POSITIONING DEVICE
Background of the Invention J_^ Field of the Invention
This invention generally relates to machines, such as machine tools, robots, linkages, coordinate measuring machines, and positioners. In particular, this invention relates to removing errors in the position of a fixed or moveable precision machine structure caused by elastic deflections of the structure. The elastic deflections of the machine structure are the result of forces applied to the structure by the machine actuators and the load, and the acceleration of the moving parts. In particular, such machines include a hexapod machining center in which the tool can be moved in three linear directions and three rotational directions.
. Description of the Prior Art
U.S. Patent Numbers 5,538,373, issued on July 23, 1 996, to Kirkham, and 5,556,242, issued on September 1 7, 1 996, to Sheldon et al., both assigned to Giddings & Lewis, Inc., are incorporated herein by reference. These patents disclose a hexapod machine tool comprising a base platform connected to a tool platform by a plurality of legs or actuators. The base platform is configured to hold a workpiece, while the tool platform is configured to hold and drive a tool. By manipulating the lengths of the actuators, the tool can be positioned along various linear and rotational axes with respect to the workpiece. This six-axis positioning provides the operator with precision tooling capabilities which are superior to those of conventional machine tools. The accuracy of any machine tool depends on how accurately the dimensions of the machine are determined during calibration and setup. In the case of a hexapod machine tool, the exact location of each of twelve pivot points, which connect the actuators to the base and tool platforms, must be accurately determined in order to precisely define the length of each actuator. It is the exact length of each actuator and the exact location of the pivots that defines the exact location of the tool with respect to the workpiece, and hence, the overall accuracy of the machine.
One standard method for determining precise dimensions of a machine is to measure each of its constituent parts. For example, in a conventional milling machine, the guide rails associated with the machine movements must be precisely measured, tooled or scraped, monitored, and maintained within given tolerance limits. In order to reduce tolerance buildups (i.e., each error associated with each constituent part contributing to a larger overall error), the tolerance values for each part must be minimized. In the above example, errors in the guide rail linearity directly affect the overall accuracy of the machine. To increase the machine's accuracy, the guide rails would have to be more accurately constructed and maintained. This leads to a much higher manufacturing cost and/or structural complexity, as each constituent part must be manufactured and maintained to much more exacting standards than would otherwise be required had tolerance buildups not occurred.
Moreover, the process for determining how each constituent part error contributes to the overall machine error is extraordinarily difficult for a hexapod machining center. In J.A. Soons, "ERROR ANALYSIS OF A HEXAPOD MACHINE TOOL," Lambda Map '97, Third International
Conference and Exhibition on Laser Metrology and Machine Performance, July 15-17, 1997, the author presents an analysis of the possible measurement errors associated with a hexapod milling machine at the National Institute of Standards and Technology, and the difficulties in the determination of such errors.
In a hexapod machine tool, as the tool platform moves, the weight each actuator must support also changes. Acceleration during the platform movement also applies changing forces to discrete parts of the machine. Accordingly, these forces affect the elastic deflections in the machine at any given time, and thus the geometry of the machine is always slightly changing. These elastic deflections further reduce the accuracy of the hexapod machining center.
One way of compensating for the errors due to the changing position and acceleration of the machine is by directly measuring the errors in position at the output (e.g., in a hexapod machine tool, the errors at the tool itself) . These errors would be stored in the machine's control system and used to adjust the position of the machine.
Compensating for errors by measuring the machine output position, called position compensation, requires the measurement of errors for every combination of positions. A prohibitive number of measurements may be required, especially when the errors in position are strongly affected by the positions of the other axes, as is the case with a hexapod machine tool.
A need, therefore, exists to provide an improved technique to compensate for the errors due to the changing position and acceleration of a positioning device or other machine having multiple degrees of freedom, and in particular, a hexapod machining center.
Objects and Summary of the Invention Accordingly, it is a primary object of the present invention to provide an improved system and method for compensating for compliance distortions in a positioning device. It is another object of the present invention to provide a method and apparatus for modeling the machine as an elastic system that distorts in response to applied forces, where the distortions of the system are calculated and used to adjust the command position of the machine tool. It is a further object of the present invention to provide a method and apparatus where the distortions of the machine tool are measured and correlated with the applied forces by the use of a distortion model, where the distortions that occur at other positions during machine operation are then calculated by inserting the applied operating forces into the model.
In accomplishing these and other objects, the present invention provides a method of compensating for deflections in a positioning device having a movable platform mounted on a plurality of actuators at a plurality of pivot locations, the method comprising the steps of: collecting compliance information of the positioning device; compensating movement commands according to the collected compliance information; and moving the positioning device according to the compensated movement commands.
The present invention also provides a compensation method further comprising the steps of: developing a finite element model of the positioning device; and collecting sensitivity data by measuring deflections of the finite element model resulting from the application of forces and accelerations.
The present invention also provides a method wherein the finite element model comprises a plurality of nodes, and the step of collecting sensitivity data further comprises: (i) fixing an output of the finite element model; (ii) applying a unit force in one Cartesian direction to one of the plurality of nodes in the finite element model, (iii) recording resulting deflections, in each Cartesian direction, at one or more of the plurality of nodes in the finite element model; (iv) repeating steps (ii)-(iii) for each Cartesian direction; (v) repeating step (iv) for each of the plurality of nodes; (vi) applying a unit acceleration in one Cartesian direction to the finite element model; (vii) recording resulting deflections, in each cartesian direction, at one or more of the plurality of nodes; and (viii) repeating (vi)- (vii) for each Cartesian direction of acceleration.
The present invention also provides a method wherein the step of compensating the movement commands further comprises: modeling the pivot locations; calculating actuator forces; calculating platform accelerations; applying the actuator forces and accelerations to the collected compliance information in order to determine deflections in the pivot locations; adjusting the pivot locations according to the deflections; and compensating movement commands to the positioning device based on the adjustment of the pivot locations. The present invention also provides a compliance compensation system comprising: a positioning device and a microcomputer configured to control the positioning device, wherein the microcomputer is configured to collect compliance information about the positioning device and adjust the control of the position device according to the compliance information.
The present invention also provides a compliance compensation system wherein the positioning device further comprises a plurality of actuators connected between an upper platform and a lower platform at a plurality of pivot locations; and wherein the microcomputer further comprises: a machine control configured to control the positioning device; machine pivot model configured to model the plurality of pivot locations of the positioning device; an actuator force calculator configured to use a plurality of properties of the positioning device in order to determine forces applied by the plurality of actuators on the positioning device; a calculator configured to provide platform accelerations; and a machine sensitivity model configured to model the collected compliance information about the positioning device in order to determine deflections of the plurality of actuators due to the forces and accelerations being applied. The present invention also provides a method of compensating for deflections in a hexapod machining center having an upper platform connected to a lower platform by way of a plurality of actuators and a plurality of counterbalances, at a plurality of pivot locations, the method comprising: (a) developing independent finite element models of the upper and lower platforms of the hexapod machining center; (b) fixing the spindle cartridge of the upper platform finite element model, and fixing the work pallet of the lower platform finite element model; (c) choosing one of the plurality of pivot locations on the upper platform; (d) applying a unit force in a Cartesian direction to the one of the plurality of pivot locations on the upper platform and recording the displacement of the plurality of pivot locations on the upper platform in each Cartesian direction; (e) repeating step (d) for each Cartesian direction; (f) repeating steps (c)-(e) for each of the plurality of pivot locations on the upper platform; (g) choosing one of the plurality of pivot locations on the lower platform; (h) applying a unit force in a Cartesian direction to the one of the plurality of pivot locations on the lower platform and recording the displacement of the plurality of pivot locations on the lower platform in each Cartesian direction; (i) repeating step (h) for each Cartesian direction; (j) repeating steps (g)-(i) for each of the plurality of pivot locations on the lower platform; (k) choosing one of the plurality of pivot locations on the counterbalances; (I) applying a unit force in a Cartesian direction to the one of the plurality of pivot locations on the counterbalances and recording the displacement of the plurality of pivot locations on the upper platform in each Cartesian direction; (m) repeating step (I) for each Cartesian direction; (n) repeating steps (k)-(m) for each of the plurality of pivot locations on the counterbalances; (o) repeating steps (c)-(f) and steps (k)-(n) replacing the applied unit force with an applied unit acceleration; (p) modeling the plurality of pivot locations in a machine control; (q) calculating actuator forces; (r) applying the actuator forces to data recorded in steps (d), (h), (e), and (o); (s) adjusting the plurality of pivot locations according to deflections caused by the application of the actuator forces to the data recorded; and (t) compensating movement commands to the hexapod machining center based on the adjustment of the pivot locations.
The present invention also provides an apparatus for compensating for deflections in a positioning device having a movable platform mounted on a plurality of actuators at a plurality of pivot locations, the apparatus comprising: means for collecting compliance information of the positioning device; means for compensating movement commands according to the collected compliance information; and means for moving the positioning device according to the compensated movement commands.
The present invention also provides an apparatus wherein the means for collecting compliance information further comprises: a finite element model of the positioning device; and means for collecting sensitivity data by recording deflections of the finite element model resulting from the application of forces and accelerations.
The present invention also provides an apparatus wherein the finite element model comprises a plurality of nodes and the means for collecting sensitivity data further comprises: a fixed output of the finite element model; means for applying any of the unit forces, in one Cartesian direction, to any of the plurality of nodes in the finite element model; means for recording resulting deflections, in each Cartesian direction, at one or more of the plurality of nodes in the finite element model; means for applying any of the unit accelerations, in one Cartesian direction, to the finite element model; and means for recording resulting deflections, in each Cartesian direction, at one or more of the plurality of nodes in the finite element model. The present invention also provides an apparatus wherein the means for compensating further comprises: means for modeling the pivot locations; means for calculating actuator forces and accelerations; means for applying the actuator forces and accelerations to the collected compliance information in order to determine deflections in the pivot locations; means for adjusting the pivot locations according to the deflections; and means for compensating movement commands to the positioning device based on the adjustment of the pivot locations.
Brief Description of the Drawings The accompanying drawings, which are incorporated in and constitute a part of the specification, illustrate presently preferred embodiments of the invention, and, together with the general description given above and the detailed description of the preferred embodiments given below, serve to explain the principles of the invention. In each of the FIGURES, like-referenced numerals indicate like parts, in which:
FIGURE 1 is a perspective view of the hexapod machining center calibration system in accordance with a preferred embodiment of the present invention;
FIGURE 2 is a side view of the hexapod machining center of FIGURE 1 ;
FIGURES 3A & 3B represent a schematic diagram of an instrument arm and a cross-section of an extensible actuator leg incorporating an instrument arm, respectively, used for measuring the length of the actuators of the hexapod machining center of FIGURE 2;
FIGURE 4 is a general block diagram of a control system for the calibration system of FIGURE 1 in accordance with the present invention; FIGURE 5 is an enlarged, side perspective view of a gauge nest and a ball plate attached to the hexapod machining center of FIGURE 2 for calibration;
FIGURE 6 is a bottom perspective view of the gauge nest attached to the spindle cartridge of the hexapod machining center of FIGURE 2;
FIGURE 7 is a top perspective view of the ball plate attached to the work pallet of the hexapod machining center of FIGURE 2;
FIGURE 8 is a flowchart of the steps taken to perform a ball run calibration procedure for the calibration system of FIGURE 1 ; FIGURE 9 is a flowchart of the steps required to control the servo system during the ball run calibration procedure of FIGURE 8;
FIGURE 10 is a flowchart of the steps taken to perform a simulation analysis for the calibration system of FIGURE 1 ;
FIGURE 1 1 is a flowchart of the steps taken to simulate the upper platform movement step of the simulation analysis of FIGURE 10;
FIGURE 12 is a detailed block diagram of a portion of the control system of FIGURE 4; FIGURE 1 3 is a general flowchart of the steps taken to perform the reaction feedforward calculation of the reaction feedforward calculator of FIGURE 1 2;
FIGURE 14 is a detailed flowchart of the steps taken to perform the calculation of actuator forces of the reaction feedforward calculation of FIGURE 1 3;
FIGURE 1 5 is a signal flow diagram showing the operation of the kinematics calculator of FIGURE 1 2;
FIGURE 1 6 represents a flowchart of the steps taken to collect compliance information for the machine sensitivity model of FIGURE 1 5; and
FIGURE 1 7 is a signal flow diagram showing the operation of the servo feedback system of FIGURE 1 2.
Detailed Description of the Preferred Embodiments Referring to FIGURE 1 , a hexapod machining center calibration system 100 is shown in accordance with the present invention. The calibration system 100 comprises a hexapod machining center 1 10 connected to a series of equipment enclosures 1 20 by way of a power and control cable loop 1 25. The series of enclosures 1 20 preferably comprises a microcomputer bay 1 30, a servo power control system 140, and a tool power control system 1 50. The microcomputer bay 1 30 and the servo power control system 140 will be described in further detail with reference to FIGURE 4. The tool power control system 1 50 operates the motor used to rotate the spindle of the machining center, and this system is available from Giddings & Lewis, Inc. of Fond du Lac,
Wisconsin. The gas springs 1 60 affixed to the feet 1 70 of the hexapod machining center 1 10 comprise one embodiment of a vibration isolation system, which will be explained in more detail below. Note, however, that the techniques of the present invention may be used on various other types of positioning devices other than hexapod machining centers. In FIGURE 2, a preferred embodiment of the hexapod machining center 1 10 is shown. The hexapod machining center 1 10 includes a base or lower platform 200 connected to an upper or tool platform 205 by an actuator mechanism 210. Actuator mechanism 210 preferably includes a plurality of extendable linkages or actuators 21 5 attached to the lower platform 200 at a plurality of lower pivot locations 21 5a and to the upper platform 205 at a plurality of upper pivot locations 21 5b. Each actuator 21 5 may be constructed, for example, using a ball screw mechanism. Although the preferred embodiment includes a ball screw mechanism, the invention is not limited to this type of actuator. Actuators 21 5 could include pneumatic cylinders, hydraulic cylinders, or rack-and-pinion devices.
Upper platform 205 includes a spindle cartridge 220 configured to hold a tool 225. The lower platform 200 includes a work pallet 240 configured to hold a workpiece 230. Tool 225 interacts with workpiece
230 when the actuator mechanism 210 causes the upper platform 205 to move along a pre-programmed path relative to the lower platform 200. The hexapod machining center 1 10 may optionally include a plurality of counterbalances 235 to counteract gravitational effects. Counterbalances 235 are preferably nitrogen gas-filled springs connected between the base or lower platform 200 and the upper or movable platform 205 at pivot locations 250.
The hexapod machining center 1 10 could also include different types of vibration isolation components. For example, as illustrated in FIGURE 1 , the hexapod machining center 1 10 is isolated from the floor by two gas springs 1 60, one positioned on each side of each of the three feet 1 70 of the base of the machine. Alternatively, as illustrated in FIGURE 2, three resilient pads 245, extending from each of the three legs of the lower platform 200 to the floor, serve the same function, i.e., to isolate the upper platform 205 and lower platform 200 from the rigid attachment of an external support structure. Vibration isolation components could comprise springs without dampers, combinations of separate springs and dampers, resilient pads, etc.
A further detailed description and alternate embodiments of hexapod machining center 1 10 can be obtained from the above- mentioned U.S. Patent Nos. 5,538,373 and 5,556,242, which have been incorporated by reference. Note that in the machining center 1 10 of FIGURE 2, which is similar in orientation to a vertical machining center, the lower platform 200 is oriented below the upper platform 205. If there were no vibration isolation system, the lower platform would rest on the floor, and thus, serve as a stationary base for the machine. In this case, it makes essentially no difference whether it is called a "base" or a "lower platform" with respect to an "upper platform" or simply the "movable platform" . However, in the different embodiments shown above as well as in U.S. Patent No. 5,538,373, and in various other models of commercially available hexapod machining centers, the lower platform is separate and isolated from the floor such that it is decoupled by a vibration isolation system. With the vibration isolation system, the lower platform may not serve as a stationary base for the machine, and it may make a difference whether the lower platform is referred to as a "base" . Moreover, in a horizontal machining center orientation, the lower platform
200 is not even located below the upper platform 205, but would be supporting it in the same horizontal plane. Hence, it should be kept in mind that the "base platform" or "lower platform" terminology used herein not only refers to the specific type of machining center shown in FIGURE 2, but also to many other types of positioning devices and machining center configurations.
In hexapod machining center 1 10, the position and orientation of the machine at any instant is monitored by a plurality of measuring transducers, e.g., one transducer is associated with each of the actuators 21 5. U.S. Patent No. 5,538,373 discloses the use of six instrument arms, separate from the actuators 21 5, wherein each instrument arm contains a length-measuring transducer. One possible type of length- measuring transducer is a laser interferometer such as shown in FIGURES 3A and 3B. As will be explained in detail below, the measuring transducer can be configured as separate instrument arms attached to its own pivots located on the upper and lower platforms, or can be constructed inside each of the actuators as will be described below.
In FIGURE 3A, an instrument arm 300 is formed of concentric outer and inner tubes 310 and 315, respectively, that telescope on bearings 325. A laser beam from a laser light source 330 enters the sealed hollow interior of the instrument arm through a window 335, and is then reflected off a mirror 340 into an interferometer device 345 where it is divided into two beam components. One beam component travels inside the entire length of the concentric tubes to a retro-reflector 350 which is mounted at the closed end of the outer tube 310. Light is reflected back down the tubes towards the interferometer device 345. The two beam components are then recombined within the interferometer device 345, and the combined beam components interfere with each other, constructively or destructively, depending on their phase. A photodetector within the laser light source 330 detects the fringes that result from the interference between the two components of the light beam as the retro-reflector 350 moves relative to the interferometer device 345. The phase is dependent upon the distance between the interferometer device 345 and the retro-reflector 350, and the fringes are therefore indicative of changes in the length of the instrument arm 300. Again, a further description of the instrument arm can be obtained from the above-mentioned U.S. Patent No. 5,538,373.
Although FIGURE 3A illustrates a representative instrument arm 300 which is separate from the actuators 215, FIGURE 3B illustrates a cross-section of a measurement transducer 360 comprised of an extendable actuator leg 215 incorporating a laser interferometer instrument system inside it. In this view, it can be seen that the actuator leg 215 includes a rotatable ball screw rod 365 having a hollow interior and connected to a motor 370 by a drive mechanism 375, such as a belt and pulley arrangement. The ball screw rod 365 is rotatably mounted to the yoke of a first of two universal joint assemblies 380, 382. A nut tube 385 surrounds and is operatively connected to the ball screw rod 365 by a plurality of recirculating balls 388. The nut tube 385 is mounted to the yoke of the second universal joint assembly 382. Therefore, the centers of the universal joints 380, 382 define the pivot locations 21 5a and 21 5b of the actuator 21 5. Thus, as ball screw rod 365 is rotated within nut tube 385, the universal joint assemblies 380, 382 are driven farther apart or closer together depending on the direction of rotation of the ball screw rod. A tubular housing 390 is attached to the yoke of the second universal joint assembly 382 and surrounds the ball screw rod 365 as shown.
In the preferred embodiment of FIGURE 3B, laser light source 330 is mounted to the tubular housing 390, the interferometer device 345 is mounted within the distal end of tubular housing 390 separate from ball screw rod 365, and the retro-reflector 350 is mounted at the other end of the ball screw. This combined interferometer-actuator configuration is fully described in German Patent Publication DE 1 961 7880 by Giddings & Lewis, Inc. based on U.S. Patent Application No. 08/430,390, which is also incorporated herein by reference.
Thus, the laser interferometer measurement transducer 360 is able to precisely measure the distance between the points at which interferometer device 345 and the retro-reflector 350 are disposed on the ball screw-driven actuator 21 5. This distance can be mathematically translated to determine the locations of pivots 21 5a and 21 5b. Since this combined interferometer-actuator is the preferred embodiment, the remaining description of the invention will use the pivot locations with reference to the pivots of the actuator 21 5 as opposed to the pivots of a separate instrument arm. However, the invention will work with either measurement configuration, since, as will be explained in detail below, it is the calibration ball run of the actual positioning device that determines the estimated pivot locations of the instrument arms, irrespective of whether the instrument arms are coincident with the actuators 21 5. Referring now to FIGURE 4, a general block diagram of the microcomputer bay 130 and servo power and control system 140 for the calibration system of FIGURE 1 is shown. The control system 400 comprises a microcomputer 410, which includes input and output circuits 41 2, at least one central processing unit 414, a random-access memory 41 6, and a read-only memory 41 8. Microcomputer 410 further includes an external memory 420 for storing, for example, the control software for the calibration system 400 and data relating to the calibration and control of the hexapod machining center 1 10. An operator interface 425 is connected to the microcomputer 410. The operator interface 425 can include, for example, a display, a keyboard, a printer or other output devices, and/or an input pointing device. The microcomputer 410 is coupled to a processor 430. The processor 430 provides mathematical transformations from Cartesian coordinate system-based instructions to actuator lengths. The processor 430 is connected to a pair of digital signal processors (DSPs) 440, each of which is connected to a plurality of servo control stages 443 for each actuator 21 5. Each control stage 443 comprises a servo amplifier 445, a motor 450, an encoder 455, an actuator drive 460 (e.g., the ball screw mechanisms of actuators 21 5 of FIGURE 2), and a measuring transducer 465 (e.g., such as laser interferometer measuring transducer 360 of FIGURE 3B) . The servo amplifier 445 provides the correct power to the motor
450, which includes an encoder 455. The encoder 455 feeds back a signal indicative of the motor speed in order to provide a closed velocity loop in the actuator control system. The feedback signal from the encoder 455 is coupled to the appropriate digital signal processor 440. When the servo amplifier 445 receives a signal to activate the motor 450, the motor moves the actuator drive 460 and either extends or retracts the actuator 21 5, thus providing some movement to upper platform 205. The measuring transducer 465, operating as described above, feeds back the precise change in the length of the actuator 21 5 to the digital signal processor 440, which then relays that information through processor 430 to microcomputer 410. In a preferred embodiment, microcomputer 410 is a CNC 8000 controller available from Giddings & Lewis, Inc. of Fond du Lac, Wisconsin; processor 430 is the commonly available Intel PENTIUM (trademark of Intel corporation) microprocessor; digital signal processors 440 are Type 21 81 DSPs available from Analog Devices, Inc. of Norwood, Massachusetts; the servo amplifiers 445 are Model BDS4
Amplifiers available from Kollmorgen Industrial Drives of Radford, Virginia; motors 450 are Kollmorgen Model B604 brushless DC motors; and actuator drives 460 and the laser measuring transducers 465 are of the type previously described in connection with FIGURES 3B. Further explanation of the software executed on the above-described hardware is given below with respect to FIGURES 1 2-1 7.
In the normal operation of the hexapod machining center 1 10, the servo system includes DSPs 440 and the servo control stages 443 which provide a closed feedback loop used to position the machine. However, during a calibration run (such as a "ball run" described below), information from a calibration device 470 (such as a gauge nest described below) is included in a larger feedback loop including digital signal processors 440. Hence, in the calibration mode, the servo system further includes processor 430 and the calibration device 470. Although the above devices and computers comprise the preferred embodiment of the invention, many alternatives known to those skilled in the art can be used. For example, processor 430 could be eliminated if its function was incorporated into a more powerful microcomputer 410. In fact, the Giddings & Lewis CNC 8000 controller actually includes an IBM-compatible personal computer in order to perform many of its functions, particularly with respect to the user interface. Although the tasks performed by each computer or processor shown in FIGURE 4 will be described below with respect to a particular hardware deice, the techniques of the present invention should not be interpreted to be restricted to any such device.
FIGURE 5 provides an enlarged, side perspective view of a gauge nest 505 and a ball plate 510 attached to the hexapod machining center
1 10 during calibration. Gauge nest 505 is attached to spindle cartridge 220 on the upper platform 205, and ball plate 510 is attached to work pallet 240 on the lower platform 200. By controlling the movement of the upper platform 205, the calibration system moves the gauge nest 505 in relation to the ball plate 510 in order to record precision actuator information used to calibrate the machine. This calibration procedure will now be explained in detail.
Referring to FIGURE 6, a bottom perspective view of the gauge nest 505 associated with the preferred embodiment of the calibration system is shown. The gauge nest 505 includes a plurality of sensors 605 disposed around a single point as shown. The sensors 605 are arranged in such a manner so as to detect a displacement of the upper platform 205 with respect to a ball on the ball plate 510.
In FIGURE 7, a top perspective view of the ball plate 510 is shown. In the preferred embodiment, the ball plate 510 comprises six precision balls 705 arranged around a center precision ball and disposed on the corners of a hexagon-shaped base 710. Although the combination of FIGURES 6 and 7 show the sensors 605 configured to measure seven precision balls 705 arranged in a hexagon pattern, the invention is not limited to such ball plate and sensor configuration. Rather, the ball plate
510 serves as an example of any type of artifact to be measured, e.g., a ball plate in any configuration, a cylinder, a surface plate, a step gauge, a moveable tooling ball, a laser interferometer light beam, etc.
In the preferred embodiment, sensors 605 are conventional Linear Variable Differential Transformers (LVDTs). Each LVDT produces an electrical output signal proportional to the displacement of its moveable core. Each sensor 605 has an end portion 610 which comes in mechanical contact with precision balls 705 during the calibration process. End portion 610 is mechanically connected to the LVDT movable core, which is made of a magnetic material. The moveable core is positioned inside of a primary and two secondary coils such that the primary coil is located between the two secondary coils. Thus, the
LVDTs translate physical inputs, e.g., movements of the end portion 610, into an output voltage corresponding to a displacement from a zero position. A further description of the LVDTs can be found in the Handbook of Measurement and Control, HB-84, published by Schaevitz Engineering of Pennsauken, N.J., October 1 983 (Library of Congress Card
Catalog Number 76-24971 ).
The sensors 605, mounted to the spindle cartridge 220, serve to monitor or measure each artifact by determining deviations between (a) the precision nature of the artifact, e.g., surface characteristics, and (b) the movement or position of the upper platform 205. Different types of sensors 605 would be used with different types of artifacts. For example, LVDTs can be used to measure the aforementioned cylinder, surface plate, and tooling ball, whereas a laser interferometer can be used to monitor linear movements of the upper platform over distances equal to integral numbers of light wavelengths. Also, the type of artifact may determine the type of precision movement. Examples of precision movements include: moving a precise distance along a line, moving parallel to a line, moving parallel to a plane, rotating about a line, and rotating about a point. Turning now to the flowcharts, FIGURES 8-1 1 illustrate how the calibration system is used to find the precise dimensions of the hexapod machining center 1 10 by computer simulation. Briefly described, this calibration technique is accomplished in the present invention using a two-stage process: (1 ) performing a "ball run" on the machine, i.e., requiring the hexapod machining center 1 10 to make precision movements such that the gauge nest 505 is moved around the precision ball 705 by control of the actuator mechanism 210 in order to acquire exact measurement data on a particular positioning device; and (2) performing a "simulation analysis" on a computer, i.e., using the measurement data from the ball run in order to iteratively determine the precise dimensions of the positioning device to within specified tolerance limits. In the preferred embodiment of a hexapod machining center, the precise dimensions utilized are the location of the plurality of pivot locations 21 5a and 21 5b for the actuators.
FIGURE 8 provides a detailed explanation of the first part of the calibration process in the form of a flowchart illustrating the steps taken to perform a ball run calibration procedure. As mentioned above, measurement data must first be collected from a series of precision machine movements, called a "ball run", in order to determine the precise geometry, or linkage dimensions, of the hexapod machining center 1 10. In the preferred embodiment, a parameter called the "change-in-actuator-length" is collected as the measurement data, as will be discussed below.
Beginning with Step 800, rough estimates of the pivot locations for the plurality of actuators 215 are determined in Step 805 according to previous knowledge of the manufactured dimensions of the machine. In the preferred embodiment, where the machine is a hexapod machining center, there are two pivot locations 21 5a and 21 5b for each of six actuators 21 5, for a total of twelve pivot locations. These manufactured dimensions are preferably accurate to within ± Y. inch of the actual values which will finally be determined. These estimated pivot locations are defined by Cartesian coordinates measured from an absolute or "fixed" coordinate system associated with the lower platform 200. An example of estimated pivot locations for one actuator 21 5 would be [-1 7.7, -38.2, -23.6] for the lower pivot location 21 5a and [-40.9, 10.23, 23.6] for the upper pivot location 21 5b. The units for this example are inches, but any other unit could be used. Note that since the absolute coordinate system is fixed to the lower platform, it would not matter whether the lower pivots actually move with respect to the floor.
There are six points defining the pivots fastened to the base or lower platform 200, and six points defining pivots fastened to the upper or movable platform 205. Since the upper platform moves, a numerical specification must be assigned to each platform position. Since the upper platform has six degrees of mechanical freedom, six unique coordinates are assigned to define a position: three translational coordinates and three rotational coordinates. For every position of the upper platform, there is a set of six coordinates [X, Y, Z, A, B, C] (where X, Y, and Z are the linear coordinates and where A, B, and C are the rotational coordinates) that define that platform position. Since the six upper actuator pivot locations are coincident with the six upper platform pivot locations, they are sometimes referred to below as "platform pivots". Each displacement of the upper platform is defined with respect to a reference position having coordinates [0, 0, 0, 0, 0, 0]. At the reference position, the upper platform pivots are coincident with the aforementioned six points defining the upper platform pivots, measured from the absolute coordinate system fixed to the lower platform 200. For example, a displacement from the reference position [0, 0, 0, 0, 0, 0] to an arbitrary position [1 , 3, 5, 2, 4, 6] would be accomplished as follows:
A. define a "moving coordinate system" associated with and attached to the upper platform, such that the moving coordinate system is coincident with the fixed absolute coordinate system of the lower platform only when the upper platform is situated at the reference position;
B. from the reference position, rotate the upper platform by six units about the Z axis of the moving coordinate system; C. from the reference position, rotate the upper platform by four units about the Y axis of the moving coordinate system;
D. from the reference position, rotate the upper platform by two units about the X axis of the moving coordinate system;
E. translate the upper platform five units in the Z direction;
F. translate the upper platform three units in the Y direction; and G. translate the upper platform one unit in the X direction.
Note that the order of the above rotations and translations should not be changed in the preferred embodiment.
Hence, the application of such a displacement to the upper platform results in displaced positions of the upper platform pivots. Recall that the coordinates [X, Y, Z, A, B, C] define the upper platform position, that the pivot locations are defined at the reference position [0, 0, 0, 0, 0, 0], and that the position coordinates [X, Y, Z, A, B, C] are equal to [0, 0, 0, 0, 0, 0] only at the reference position. Note that it is important to be able to re-create this reference position whenever the machine has been turned off.
Since the actuators 21 5 are connected between the pivot locations 21 5a and 21 5b, estimates of the length of each actuator can be determined through use of the Pythagorean theorem. In Step 810, these estimates of the actuator lengths are calculated for the reference position of the upper platform, and are called "actuator lengths at the reference position" .
From the nominal dimensions of the machine, a rough estimate of the center of sensors 605 in the moving coordinate system is available. An example of such a sensor position estimate would be [0, 0, 0] in the moving coordinate system of the upper platform 205. Furthermore, a rough estimate of ball locations is also available in absolute coordinates. An example of such a ball location is [5, 0, 0] in the absolute coordinate system of the lower platform 200.
In Step 820, microcomputer 410 calculates and outputs platform command data required to move the upper platform 205 to a "new" position such that the gauge nest sensors 605 are in mechanical contact with one of the precision balls 705. In Step 825, the processor 430 uses the actuator feedback data to control the servo system such that the actuators move the upper platform 205 to the new position corresponding to the platform command data. As mentioned above, the servo system comprises that portion of the control system which is used to position the machine. The steps required to control the servo system will be further explained in connection with FIGURE 9. In Step 830, the output from the control of the servo system is recorded in a data file. This output represents the output of the ball run calibration procedure and is called "change-in-actuator-length data. "
In the preferred embodiment, the upper platform 205 is instructed to make fifty precision rotation movements around the center of each of the seven precision balls 705, for a total of three hundred fifty precision movements per ball run. It should be noted, however, that the number of movements is dependent upon the type of machine, its particular application, the desired precision, the type of artifact, and the type of movement. Although three hundred fifty precision movements were chosen in the preferred embodiment, a statistically sufficient number of movements is all that is required. After the servo system controller outputs and records the change-in-actuator-length data in Step 830, the microcomputer 410 determines in Step 835 whether the current position of the upper platform 205 represents the last of the preferred fifty positions associated with the current precision ball 705. If not, in Step 840, microcomputer 410 sends next position platform command data, required to move the upper platform 205 to a new position on the same ball 705. The new platform position has an angular orientation that is different from those of other platform positions centered on the same ball. Then, in Step 825, the above-described data-gathering process is repeated.
If the microcomputer 410 determines that the current position of the upper platform 205 represents the last position associated with the current precision ball 705, the microcomputer 410 then determines in
Step 845 whether the current precision ball 705 is the last of the seven balls on ball plate 510. If not, in Step 850, microcomputer 410 sends next ball platform command data required to move the upper platform 205 to the next precision ball, and in Step 825, the above-described process is repeated for the next ball. If the microcomputer 410 determines that the current precision ball is the last of the seven balls on ball plate 510, the ball run calibration procedure is completed at Step 855. Upon completion, the change-in-actuator-length data, representing the difference between the actuator lengths at the reference position and the actuator lengths at each of the preferred three hundred fifty positions, is stored in memory 420.
FIGURE 9 provides a detailed explanation of Step 825 of FIGURE 8 which primarily runs on processor 430 and operates the servo system during the ball run calibration procedure. Starting with Step 900, the platform command data instructing the platform to move is input at
Step 905. This data was provided by Steps 820, 840, and 850 of FIGURE 8. Then, in Step 910, the processor 430 transforms the estimated platform pivot locations (e.g., those of Step 805 of FIGURE 8) at the reference position [0, 0, 0, 0, 0, 0] to new pivot locations according to the position required by the platform command data (e.g., the above-mentioned platform position command [1 , 3, 5, 2, 4, 6]).
In Step 91 5, the processor 430 uses the new estimated pivot locations from Step 910 and the Pythagorean theorem to produce a set of new actuator lengths required to move the upper platform 205 to the position required by the platform command data. In Step 920, the processor 430 actuates the servo system. For example, the processor 430 sends the new actuator lengths to the digital signal processors 440 of FIGURE 4. Each of the servo amplifiers 445 drives their respective motors 450 such that the respective actuator drives 460 adjust each actuator 215 to the new actuator length. Measuring transducer 465 feeds back data to the digital signal processors 440 in order to ensure the actuator 215 is precisely extended or retracted to the new actuator length. Accordingly, the upper platform 205 is moved to the position required by the platform command data.
Returning to FIGURE 9, it is important to note that the hexapod machining center 1 10 is still being controlled using estimated pivot locations. Thus, the movement of Step 920 will not correspond exactly with the precision nature of the artifact, even though it exactly corresponds to the actual changes in actuator lengths from those at the reference position as calculated by processor 430. Since the end portions 610 of sensors 605 are in mechanical contact with the precision ball 705, when the upper platform 205 movement deviates from the exact location of the precision balls 705, the end portions 610 of one or more sensors 605 are displaced. In Step 925, this displacement is fed back as a voltage difference for each sensor to the processor 430. In Step 930, processor 430 determines if the voltage differences are within a predetermined limit. In the preferred embodiment, this predetermined limit is 9 mV. If the voltage differences are not within the predetermined limit, processor 430 converts the voltage differences in Step 935 into new platform command data designed to minimize the displacements of the sensors 605. For example, a platform position [1 , 3, 5, 2, 4, 6] might result in a new platform command of [1 .01 , 2.99, 5.01 , 2, 4, 6]. This conversion is accomplished by applying a series of well known coordinate system similarity transformations to the displacements along the axes of the sensors. This similarity transformation is required in the preferred embodiment because the axes of the sensors 605 of the gauge nest 505 are not orthogonal.
In Step 940, the new platform command data is adjusted by means of integral and proportional feedback from the LVDTs, e.g., using an integrator to drive the LVDTs completely to null and using a proportional gain for stability. Next, processor 430 returns control to Step 910, where the above-described process is repeated using the adjusted platform command data. With each pass through Steps 910- 940, the platform command data is continuously adjusted until the voltages output from sensors 605 are reduced to within the above- mentioned displacement limits. When this occurs at Step 930, the current actuator lengths are subtracted in Step 950 from the actuator lengths at the reference position (e.g., from Step 810 in FIGURE 8). Finally, in Step 955, these differences are output as "change-in-actuator- length data" and control of the servo system is completed at Step 960.
When a statistically sufficient amount of change-in-actuator- length data is collected, preferably through the ball run calibration procedure described above, the dimensions of the machine and any unknown characteristics of the artifacts can be found. Examples of the latter include: the orientation of a line and the coordinates of a point on the line measured by a laser interferometer, the location and orientation of a line defined by the center of a cylinder; the location and orientation of a plane defined by a surface plate; and the center of rotation defined by a tooling ball. Note that for many machining center applications, it may be desired to perform the calibration run using a line generated by a laser interferometer instead of a ball plate as the artifact. In that case, it would not be the location of the center of a precision ball that would be determined, but would be above-mentioned laser beam orientation and the coordinates of a point on the beam measured to within a few wavelengths by the laser interferometer. In that case, the calibration run would comprise a "laser run" instead of a "ball run" . In fact, there are numerous other alternative types of artifacts that can be measured during the calibration run. As mentioned above, once the change-in-actuator-length data is collected, preferably from the ball run calibration procedure, the calibration procedure continues by performing a "simulation analysis" on a computer. The simulation analysis uses the change-in-actuator-length data to iteratively determine the plurality of pivot locations 215a and 21 5b of the hexapod machining center 1 10. This process is shown in detail with reference to FIGURES 10-1 1 . Referring now to FIGURE 10, a flowchart of the steps taken to perform the platform simulation analysis is provided. These steps can be executed either on microcomputer 410 or on a completely separate and distinct computer system than microcomputer 410. The simulation analysis computer would have the change-in-actuator-length data file transferred to it, either by way of any mass storage device (e.g., floppy disk, CD-ROM), over the Internet, or through any known network connection (e.g., LAN or WAN) . Thus, the computer system (either the microcomputer 41 0 or the above-mentioned separate computer system) will hereinafter be referenced as the "platform simulator". In the preferred embodiment, the platform simulator is the personal computer included in the CNC 8000 mentioned above.
Beginning with Step 1000 of FIGURE 10, the platform simulator receives the change-in-actuator-length data in Step 1005. In Step 1010, the platform simulator makes initial estimates of the locations of the artifacts, e.g, the seven precision balls. These estimates are based on prior knowledge of the placement of the precision balls on the lower platform 200. The ball locations are defined with respect to the above- mentioned absolute coordinate system fixed to the lower platform. Examples of seven ball location estimates in the absolute X-Y-Z coordinate system are: [0, 0, 0]; [-8.5, 0, 0]; [-4.3, -7.5, 0];
[4.3, -7.5, 0]; [8.5, 0, 0]; [4.3, 7.5, 0]; [-4.3, 7.5, 0].
In Step 101 5, the platform simulator makes initial estimates of the pivot locations in the lower and upper platforms, 21 5a and 21 5b, respectively. Both of these estimates are made from knowledge of the dimensions of the machine within manufacturing tolerance limits.
Examples of estimates of the pivot location were given above. In Step 1020, the platform simulator uses the initial estimated ball locations and pivot locations along with the change-in-actuator-length data to simulate platform movement for each precision movement of the ball run calibration procedure. Accordingly, three hundred fifty simulations are performed, corresponding to each change-in-actuator- length datapoint. The steps taken to perform this simulation of platform movement are shown in detail in FIGURE 1 1 and will be discussed below. The simulation of platform movement provides microcomputer 410 with three hundred fifty positions of the upper platform 205. It is important to note that, in the preferred embodiment, these three hundred fifty resulting positions directly correspond to the seven precision ball locations, since, during the ball run calibration procedure, each of the three hundred fifty change-in-actuator-length datapoints were recorded when the sensors 605 were exactly centered on one of the seven precision ball locations. In Step 1025, the platform simulator subtracts the seven estimated ball locations of Step 1010 from the resulting three hundred fifty ball locations of Step 1020 in order to obtain differences, and then squares and sums these differences to create a "cost function". In Step 1030, the ball locations and pivot locations are adjusted in order to reduce the cost function. In the preferred embodiment, the Davidon-
Fletcher-Powell (D-F-P) nonlinear programming algorithm is used to reduce the error by adjusting the estimated ball locations and pivot locations. Although the well-known D-F-P method is used in the preferred embodiment because of its speed, other minimization techniques could be used, e.g., steepest descent or conjugate gradient. Refer to Introduction to Linear and Nonlinear Programming by D.G. Luenberger of Stanford University, 1973, specifically Chapter 9.3, for more information on the D-F-P method.
In Step 1035, the platform simulator uses the adjusted pivot locations and ball locations along with the original change-in-actuator- length data to again simulate platform movement. As explained above, the platform simulator calculates movement of the upper platform for each of the three hundred fifty change-in-actuator-length datapoints gathered during the ball run calibration procedure, one at a time. In Step 1040, the cost function described in Step 1025 is recalculated using the newly adjusted seven ball locations from Step 1030 and the three hundred fifty ball locations from Step 1035. In Step 1045, a "cost change" is computed using the current cost function value by subtracting the previous cost function value (i.e., on the first pass through the flowchart, the previous cost function is the value calculated in Step 1025, otherwise it is the previous cost function value from Step 1035); this difference is then divided by the current cost function value to determine the cost change. In Step 1050, the platform simulator determines if the cost change computed in Step 1045 is below a predetermined limit. In the preferred embodiment, the predetermined limit is 1 .OE-9. If the differences are greater than the predetermined limit, the platform simulator returns to Step 1030 and Steps 1030-1050 are repeated.
If, in Step 1050, the platform simulator determines that the cost change is less than the predetermined limit, the simulation analysis is completed and the final estimates of the pivot locations and ball locations are output in Step 1 055, and the simulation analysis ends with Step 1060. These final estimates represent the actual dimensions of the machine used to perform the ball run calibration procedure within an acceptable error.
The simulation of platform movement of Steps 1020 and 1035 is illustrated in more detail with reference to FIGURE 1 1 . Note that the platform simulator does not know or care that the input pivot locations and ball locations are simply estimates. Rather, the platform simulator assumes that an exact machine geometry is represented. The platform simulator then uses the change-in-actuator-length data to find a new position of the machine. For example, the position of the upper platform 205 before the simulation could be at the reference position
[0, 0, 0, 0, 0, 0], and after the simulation has taken place, the upper platform 205 would be at a displaced position, say [ 1 , 3, 5, 2, 4, 6], if the change-in-actuator-length data corresponds to that position. Thus, the simulation of the upper platform movement can be used in systems completely different and independent of the subject calibration system. Accordingly, the steps of the simulation of platform movement can be executed on any computer system.
Beginning with Step 1 100, the platform simulator first receives a set of pivot locations and estimated ball locations in Step 1 1 05. The pivot locations are used in Step 1 1 10 to calculate the actual actuator lengths between pivots at the [0, 0, 0, 0, 0, 0] platform position (i.e., the reference position), to which are added the change-in-actuator-length data for the particular platform position of interest. The results are the actual actuator lengths for the displaced platform position. In Step 1 1 1 5, the platform simulator assigns or receives an estimate of the new platform position. For example, the reference position may be an acceptable initial estimate of the new platform position. In Step 1 1 20, the platform simulator transforms the platform reference position (and the upper platform reference pivot locations) to the estimated new platform position. In Step 1 1 25, the Pythagorean theorem is used to calculate the distance between each pair of lower platform actuator pivots and transformed upper platform actuator pivots. The results are estimated actuator lengths corresponding to the estimated new platform position. In Step 1 1 30, the actuator length errors are calculated as the sum of the squares of the differences between the estimated actuator lengths from Step 1 1 25 and the actual actuator lengths from Step 1 1 10. In Step 1 1 35, the platform simulator adjusts the estimated new platform position to reduce the actuator length error defined in Step 1 1 30. This adjustment is done in the preferred embodiment using the well-known Newton Raphson method, although any algorithm designed to minimize the value of a multi-variable function can be applied. Refer to Elements of Numerical Analysis by P. Henrici, published by John Wiley, 1 964 (Library of Congress Card Catalog Number 64-23840), particularly Chapter 5, for further information regarding the Newton Raphson method. In Step 1 140, the platform simulator compares the amount of adjustment required in Step 1 1 35 to a predetermined limit. If the adjustment is more than the predetermined limit, the platform simulator returns control to Step 1 1 1 5, and Steps 1 1 1 5-1 140 are repeated. Through iterative adjustments of the position of the upper platform or the estimated new position, the adjustment required in Step 1 140 will eventually become smaller and smaller. Theoretically, it could be as small as the number of significant digits in the given computer on which the simulation is running, since the change in the commanded position will eventually approach zero as the estimated actuator lengths approach the actual actuator lengths found in Step 1 1 10. In the preferred embodiment, the predetermined adjustment limit used in Step 1 140 is defined such that the absolute value of the change in any of the platform coordinates X, Y, Z, A, B, or C must be less that 1 .OE-6. If the adjustment meets the limit in Step 1 140, the platform simulator outputs the commanded position as the position of the upper platform in Step 1 145. For example, if the commanded position was [0.01 , -0.2, 0, 2, 0, 0] on consecutive passes through the flowchart, then the platform simulator would output that position as the position of the upper platform 205, or as discussed above, the position of one of the precision balls 705. The simulation of platform movement is completed at Step 1 105.
It is important to note that the invention is not limited to this preferred embodiment of the simulation analysis. Rather, any simulation that uses similarly measured change-in-actuator-length data and estimated pivot locations to find a new position of the machine could be used.
By the above procedures of FIGURES 8 through 1 1 , the hexapod machining center is calibrated by first collecting change-in-actuator-length data when the actual machine performs a series of precision movements defined by a particular artifact. This data is then collected and used in an iterative processes on a simulation computer to find the actual locations of the pivots. Thus, the present invention provides for the calibration of a positioning device without the use of extremely precise pivot locations for the movable platform. Furthermore, the calibration system requires only that a set of calibration movements be made, and then the calibration data can be manipulated on any remote computer. Therefore, the hexapod machining center can be re-calibrated periodically in the field to ensure its long-term accuracy. Thus, the calibration technique of the present invention ensures very high precision for a positioning device without the high cost of other conventional calibration systems. As mentioned above with reference to FIGURE 4, the microcomputer 410 controls hexapod machine center such that the upper platform 205 moves along a pre-programmed path. The microcomputer 410 moves the upper platform by sending platform command data in the form of a new desired position. For example, if the upper platform currently resides at position [0, 0, 0, 0, 0, 0], the pre-programmed path may require microcomputer 410 to move to new position
[1 , 2, 3, 5, 5, 5]. The platform command data would be [1 , 2, 3, 5, 5, 5] *, where the asterisk " *" indicates that the position is treated as a command or instruction to the positioning device to move it to that position, as opposed to the current position itself. This platform command data must be transformed into actuator movement through the hardware described with reference to FIGURES 4 and 1 2-1 7. In FIGURES 1 2-1 7 below, a detailed explanation will be presented as to how the platform command data is transformed into precise actuator movement. Referring to FIGURE 1 2, the microcomputer 410 sends the platform command data [X, Y, Z, A, B, C] * to a trajectory generator 1 205 which is preferably internal to microcomputer 410. It should be noted that the commands [X, Y, Z, A, B, C] are relative to the lower platform. Trajectory generator 1 205 converts this cartesian machine platform command data into a continuous stream of commanded position, velocity, and acceleration (p,v,a) motion command data and outputs all three. In the preferred embodiment, this is done using "S" curves where: p (t) = A«t3 + B«t2 + C»t + D v = dp/dt = 3*»A*»t2 + 2*»B-»t + C a = dv/dt = 6*»A*»t -l- 2*»B and where p(t) is the instantaneous position as a function of time, v(t) is the instantaneous velocity as a function of time, a(t) is the instantaneous acceleration as a function of time, and t is time. Each p, v, and a parameter calculated above consists of two vectors, one rectilinear, (X, Y, Z) and one angular (A,B,C). The coefficients A, B, C, and D are calculated by the trajectory generator in such a way that certain limits of jerk, acceleration, and velocity are not exceeded. The trajectory generator creates one or more S curves, which are used in succession, for each position command [X, Y, Z, A, B, C] * into generator 1205.
An alternate method of calculating the instantaneous velocity and acceleration is to take the first and second numerical differences of the position command stream p(t). Returning to FIGURE 12, trajectory generator 1205 outputs the commanded relative position, velocity, and acceleration to both a reaction feedforward calculator 1210 and a kinematics calculator 1215. The reaction feedforward calculator 1210 uses the commanded relative position, velocity, and acceleration as well as the forces acting on the lower platform to determine actuator forces F* on each actuator 215 to produce the relative accelerations commanded by trajectory calculator 1205. The steps required to perform this transformation are further described with reference to FIGURE 13.
The reaction feedforward calculator 1210 outputs the actuator forces F* to the kinematics calculator 1215 and to a servo feedback system 1225. Kinematics calculator 1215 uses the commanded position and the actuator forces F* to determine commanded actuator lengths L* which include a correction for the errors due to the elastic distortions of the hexapod machining center 1 10 caused by the actuator forces F* and other inertia forces. The signal flow diagram of the routines required to perform the determination of commanded actuator lengths L* are further described with reference to FIGURE 15. Commanded actuator lengths L* are output to the servo feedback system 1 225 and to a differentiator 1 220. Differentiator 1 220 provides the rate of change of actuator lengths L*, i.e., dL/dt, the derivative of the length L with respect to time, to the servo feedback system 1 225. Servo feedback system 1 225 provides commanded torque
T* to the control stage 443 of each actuator 21 5 as referenced in FIGURE 4. The control stage 443 comprises the servo amplifier 445, motor 450, encoder 455, actuator drive 460, and measuring transducer 465. Each control stage 443 provides feedback from the encoder 455 and measuring transducer 465 to the servo feedback system 1 225.
Thus, servo feedback system 1 225 uses the commanded actuator forces F*, the commanded actuator lengths L*, the derivative of the commanded actuator lengths dL*/dt, and the feedback from each control stage 443 to determine the commanded torque T*. Preferably, the reaction feedforward calculator 1 210, the kinematics calculator 121 5, and the differentiator 1220 are implemented on the Intel PENTIUM CPU 430. The servo feedback system 1225 is implemented on the digital signal processors 440 shown in FIGURE 4.
Referring now to FIGURE 1 3, a general software flowchart of the steps taken to perform the reaction feedforward calculation performed by the reaction feedforward calculator 1 210 is shown. Following Step 1 300, the commanded relative position, velocity, and acceleration are received from the trajectory generator 1 205 at Step 1 305. In Step 1 310, the commanded relative position velocity, acceleration, and lower platform forces are used to calculate the actuator forces required to produce the desired relative accelerations. This calculation is done by solving a system of six equations simultaneously for the six actuator forces F. For example, in the preferred embodiment, the system of equations is given in matrix form as: CPmat*»F = B (1 ) where CPmat is a coupling matrix having the six columns of the top three rows filled with the unit vectors for each actuator 21 5, and the six columns of the bottom three rows filled with relative unit torque to inertia ratios, where the unit torques are the moments of the actuator unit vectors about the center of gravity of the associated platform. They are calculated as the cross-products of the leg unit vectors and the vectors from the center of gravity to the actuator pivots.
In equation (1 ), F is a vector of the six actuator forces. The quantity being equated in the rectilinear system (top three rows) is force. The quantity being equated in the angular system (bottom three rows) is relative angular acceleration. Therefore, the first three elements of the vector B on the right hand side of the equation are in force units. The last three elements are in acceleration units. The first three elements of the B vector are the rectilinear forces in each of three directions X, Y, and Z, which are calculated as follows:
Mu/(Mu + MI)*»(MI*»a + sum_foot) (2) Where Mu is the mass of the upper platform, Ml is the mass of the lower platform, a is the commanded acceleration of the upper platform relative to the lower platform from Step 1305. Sum_foot is the summation of all of rectilinear forces applied to the lower platform by the vibration isolation components from Step 1325. The next three elements of the B vector are the commanded relative angular accelerations from Step 1305.
Equation (1 ) is solved for the actuator force vector F, which are the commanded actuator forces F*, by first determining the values of the coupling matrix CPmat, and then inverting and multiplying it by the B vector. This is shown by equation (3): F = CPmat"1 • B (3)
The steps required to calculate the coupling matrix CPmat and the B vector are further described with reference to FIGURE 14.
After equation (3) is solved for the commanded actuator forces F* in Step 1310, the actuator forces are output from reaction feedforward calculator 1210. Then, in Step 1320, the commanded actuator forces F* are used to determine the new position, velocity, and acceleration of the lower platform 200. For example, since force equals mass times acceleration, all of the forces acting on the lower platform can be divided by the mass of the lower platform 200 to get the rectilinear acceleration. Similarly, the summation of all moments acting on the lower platform multiplied by the inverse of the lower platform inertia matrix is the lower platform acceleration. The acceleration is integrated to get the velocity of the lower platform 200. This velocity can be further integrated to get the position of the lower platform 200.
In Step 1 325, the new position, velocity, and acceleration of the lower platform 200 are used to calculate the positions and velocities of the vibration isolation components 245, which, when combined with the stiffness and damping characteristics of the isolation components, are used to calculate the forces exerted by the isolation components on the lower platform. The forces on the lower platform 200 caused by the vibration isolation components, and the new position, velocity, and acceleration of the lower platform 200, are again used in Step 1310 to determine the B vector, and the above-described process is repeated.
Referring now to FIGURE 14, the steps required to calculate the actuator forces F* in Step 1 310 are described starting at Step 1400. As mentioned above, the coupling matrix CPmat and the B vector must be built in order to solve the equation for the actuator forces vector F. In
Step 1405, PENTIUM processor 430 calculates the moment arms for the upper and lower platforms, 205 and 200. The moment arm is a vector calculated by subtracting the center of gravity location from the pivot location on the actuator connected to that pivot location. In Step 1410, the PENTIUM processor 430 calculates the unit torque vectors for the upper and lower platforms, 205 and 200. The unit torque vectors are equal to the cross product of a unit vector of the actuator 215 and the associated moment arm.
In Step 141 5, PENTIUM processor 440 obtains the relative angular accelerations from the trajectory generator 1 205. In Step 1420, the coupling matrix is filled such that the top three rows contain the unit vectors of the actuators. The bottom three rows are filled with the relative unit torque-to-inertia ratios. These are calculated by the following vector formula:
(lui-(Rτ-Tugn)) - Rτ«(Rlc-(lli-(Rlcτ-Tlgn))) (4) where this vector is used six times (once for each actuator) to fill the columns of the bottom three rows of the coupling matrix CPmat with six vectors. The term lui is the inverse of the upper platform 205 inertia matrix, in lieu of putting a matrix in the denominator of equation (4) . Similarly, IN is the inverse of the lower platform 200 inertia matrix. The term Tugn represents the six unit torque vectors for the upper platform 205 associated with each of six actuators. Similarly, Tlgn represents the six unit torque vectors for the lower platform 200 associated with each of six actuators. The rotation matrices R and Rlc for the upper and lower platform, respectively, describe the platform rotations relative to the global coordinate system. An example of the rotation matrix R is:
[ cb»cc -cb#sc sb ]
[ ca*»sc + sa*»sb*»cc ca#cc-sa«sb#sc -sa*cb ]
[ sa-»sc-ca-»sb#cc sa*cc + ca#sb»sc ca»cb ]
where: sa = sin(A) ca = cos(A) sb = sin(B) cb = cos(B) sc = sin(C) cc = cos(C)
The transpose of R and Rlc appear in equation (4) to place the quantities being equated into the same coordinate system. In Step 1425, the PENTIUM processor 430 calculates the top three values of the B vector according to equation (2) . The bottom three values of the B vector are filled using the following formula: maccc_ang + Rτ*Rlc*lli •Rlcτ»foot_ang_tot (5) where maccc ang is the commanded relative angular acceleration from generator 1 205, R and Rlc were previously defined, and foot_ang_tot is a vector representing the summation of all of the moments exerted on the lower platform by the vibration isolation components. In Step 1435, digital signal processor 440 builds the B vector according to the above-described values. In Step 1440, PENTIUM processor 430 inverts the coupling matrix CPmat and multiplies it by the B vector in order to find the actuator forces vector F. The commanded actuator forces F* (or forces vector F) are then output for each actuator
215 to kinematics calculator 1215 of FIGURE 12, and the process stops at Step 1445.
Referring to FIGURE 15, a signal flow diagram of the kinematics calculator 1215 of FIGURE 12 is illustrated. Input into kinematics calculator 1215 is the commanded position vector p (which contains six position commands for X, Y, Z, A, B, and C) from trajectory generator 1205 and the actuator forces F*. Kinematics calculator 1215 uses the rotational commanded position data [A, B, C] in a rotation matrix generator 1505 to generate a rotation matrix R. The upper platform pivot location constants, which are the pivot location vectors determined in
Step 1055 of FIGURE 10, are added in adder 1525 and then input to a multiplier 1510 which rotates the pivot vectors by R. The kinematics calculator 1215 then adds the linear command position data [X, Y, Z] from trajectory generator 1205 to the rotated pivot position data in adder 1515.
The kinematics calculator 1215 uses the actuator forces F* and the actuator unit vectors in a pivot deflection calculator 1520 in order to calculate the pivot migrations of the upper and lower platforms 205 and 200. These pivot migrations would be caused by elastic deflections of the machine platforms due to the actuator forces F* and inertia forces.
These distortions are referred to as the "compliance" of the machine. The steps taken to collect this compliance information and build a machine compliance model are discussed with reference to FIGURE 16. The upper platform pivot migrations are added to the upper platform pivot location constants in adder 1525. Similar to the above processing for the upper platform, the lower platform pivot location constants, which represent the pivot location vectors from 1055 are added to the lower platform pivot migrations in adder 1 530. Now the upper and lower platform pivot location vectors are sent to the actuator length calculator 1 540, which calculates the magnitude of the actuator vectors by the Pythagorean theorem. This magnitude is the actuator length. Kinematics calculator 1 21 5 also uses a scalar universal joint compliance calculator
1 545 to calculate a scalar component of gimbal compliance representative of the stiffness of the actuator joints such as universal joints 380 and 382 of FIGURE 3B. This scalar component of U-joint compliance is added to the actuator lengths in adder 1 550. The result is the commanded actuator lengths L* output from kinematics calculator
1 21 5.
Referring now to FIGURE 1 6, a flowchart of the steps taken by the pivot deflection calculator 1 520 to collect compliance information and build a machine compliance model are shown. As described above, the accuracy of the hexapod machining center 1 1 0 is determined by how accurate the microcomputer 410 determines the plurality of pivot locations 21 5a and 21 5b. Also as described above, the pivot locations 21 5a and 21 5b move slightly when forces are applied to the upper and lower platforms 205 and 200. The significant forces preferably include: six actuator forces (tension and compressions) of the six extendable actuators 21 5; three counterbalance forces (compression) from the counterbalances 235; and the acceleration of distributed masses.
Beginning from Step 1 600 of FIGURE 1 6, a finite element model of the upper platform is constructed in Step 1 605 using an IBM workstation running the CAEDS finite element software, which is a product of the Structural Dynamics Research Corporation, in the model, the spindle cartridge 220 of the upper platform 205 is fixed to ground, since the goal is to minimize the deflections of this component. Such finite element models include a plurality of nodes at which forces may be applied or displacements may be recorded. In the preferred embodiment, a number of force nodes are defined at which forces may be applied: at the six actuator pivot locations 21 5b in the upper platform; and at the three counterbalance pivot locations 250 in the upper platform 205. Six displacement nodes at which the three cartesian components of deflections will be recorded include the actuator pivot locations 21 5b in the upper platform 205. The finite element model also provides the deflections at the displacement nodes in response to accelerations of the upper platform in the X, Y, and Z directions.
In Step 1 61 0, a unit acceleration is applied to the upper platform 205 in one of the three cartesian directions X, Y, or Z. The deflection responses of the actuator pivots 21 5b in the upper platform 205 are then recorded in Step 1 61 5, where each cartesian component is recorded at each of the six pivots 21 5b. Step 1 620 causes the process to repeat Steps 1610 and 1 61 5 for independently applied accelerations in each cartesian direction.
After recording the responses to the upper platform components of acceleration, a force node is chosen in Step 1 625, and a unit force is applied to the chosen force node in a single cartesian direction X, Y, or Z in Step 1 630. The deflection responses, or "pivot migrations", of the actuator pivots 21 5b in the upper platform are recorded in Step 1 635, where each cartesian component is recorded at each of the six actuator pivots in the upper platform 205. Step 1 640 causes the process to repeat Steps 1 630 and 1635 for independently applied unit forces in each cartesian direction, still applied at the chosen node. Step 1 645 causes Steps 1 625 through 1 640 to be executed for all of the nodes at which unit forces are to be applied: six actuator pivots 21 5b and three counterbalance pivots 250.
The analysis of the lower platform 200 begins at Step 1 650. At Step 1 655, a finite element model of the lower platform 200 is constructed using the aforementioned IBM workstation running the CAEDS finite element software. The model of the work pallet 240 of the lower platform 200 is fixed to ground, since the goal is to minimize the deflections of this component. Like the upper platform, the finite element model of the lower platform includes a plurality of nodes at which forces may be applied or displacements may be recorded. In the preferred embodiment, force nodes are defined at which forces may be applied: at the six actuator pivot locations 215a in the lower platform. The displacement nodes at which the three cartesian components of deflections are recorded include the six actuator pivot locations 215a in the lower platform 200.
After the finite element model of the lower platform 200 is set up, the process executes Steps 1625 through 1645, i.e. for each application of a unit force in a single cartesian direction at a force node, the cartesian components of resulting deflections at all of the actuator pivots 215a in the lower platform 200 are recorded. Finally, the process ends with Step 1660 when all the pivot migrations have been recorded. Note that the deflection responses to applied forces that were computed using the finite element models could be acquired experimentally. The actual platform structures could be fixed as was done in the finite element models, force components could be physically applied to the force nodes, and displacement node deflection responses could be physically measured.
The information preferably collected in FIGURE 16 is used in pivot deflection calculator 1520 of the hexapod machining center 1 10.
The actual cartesian components of forces applied to the force nodes are multiplied by the corresponding finite element model deflections of the displacement nodes (i.e. the actuator pivots) computed in response to unit forces applied at the force nodes. The actual cartesian components of acceleration applied to the upper platform are multiplied by corresponding finite element model deflections of the displacement nodes (i.e. the actuator pivots) computed in response to unit accelerations applied to the upper platform 205. The principle of superposition allows the displacements resulting from each individual force or acceleration to be summed, thereby yielding estimates of the actual deflections of the displacement nodes (i.e., the actuator pivots). This superposition process is illustrated mathematically for the upper platform in Appendix A, attached hereto and incorporated herein by reference. The Cl matrix contains the finite element deflections computed in response to unit forces, preferably determined according to FIGURE 1 6. The force components applied to the force nodes are contained in the Fu vector, which is rotated into the fixed lower platform coordinate system by the rotation matrix R. The resulting P vector contains the desired pivot migrations, which are output by the pivot deflection calculator 1 520 of FIGURE 1 5. The migrations are supplied in the same coordinate system used to define the actuator pivot coordinates at the reference position
[0, 0, 0, 0, 0, 0] . The migrations are added to the actuator pivot coordinates at the reference position in Step 1 525 of FIGURE 1 5.
It should be noted that the above number of nodes and number of recordings is only for the preferred embodiment, and the invention is not limited to the this number. Rather, one of ordinary skill in the art of finite element modeling would understand that variations of FIGURE 1 6 could be used to obtain any statistically sufficient number of elastic distortions to accurately model the compliance of the hexapod machining center 1 10. For example, different combinations of an applied force, velocity, or acceleration could be recorded for any given nodes of the machine.
Turning now to FIGURE 1 7, a signal flow diagram of the servo feedback system 1 225 of FIGURE 1 2 is illustrated. Input into the servo feedback system 1 225 are the commanded actuator forces F*, the commanded actuator lengths L* and the derivative of the commanded actuator lengths dL*/dt. The digital signal processor 440 feeds commanded actuator forces F* into a unit transformer 1 705 in order to transform the forces into torques. This is done by multiplying commanded actuator forces F* by the pitch of the upper platform 205 divided by 2*pi. This is the first of three torques added in adder 1 710 in order to develop the output commanded torque T* . The digital signal processor 440 feeds the commanded actuator lengths L* into an adder 1715 where the actuator lengths L fed back from the measuring transducer 465 are subtracted. The actuator length error is sent though a proportional integral derivative (PID) filter where a proportional gain Kp of the error is transformed into torque, an integral gain of the integral of the error is transformed into torque, and a derivative gain Kd derivative of the error is transformed into torque. The three torques are then added in adder 1720 and the result is the second torque of the three torques added in adder 1710. The integral gain Ki is for low frequency enhancement, or stiffness enhancement, and the derivative gain Kd is for adding dampening stability.
The IBM workstation also feeds the commanded actuator lengths L* into a transformer 1725, which transforms the commanded actuator lengths L* into commanded angular position θ* of the actuator screw. The commanded angular position θ* is then subtracted from the fed back signal of the encoder 445 angular position θ in subtractor 1730 in order to calculate an angular error. The angular error is then give a proportional gain Kp and a derivative gain S and Kd for similar reasons as stated above. The resulting torques are then added in adder 1735 and the result is a sum of the angular error torques. The sum of the angular error torques are sent to an additional adder 1740. The digital signal processor
440 also inputs the derivative actuator lengths dL*/dt into a transformer 1745 in order to convert it into angular velocity. The angular velocity is then multiplied by a gain for overcoming viscous friction of the motor 450 and the ball screw and the resulting torque is also added in adder 1740. The angular velocity is also differentiated S in order to obtain angular acceleration, which is multiplied by the inertia J of the motor and actuator screw, and the resulting torque is added in adder 1740. The resulting torque of adder 1740 is the third of three torques added to complete the commanded torque T* to the servo amps 445. In the preferred embodiment, the compliance compensation technique of the present invention utilizes "clean" force data generated by the reaction feedforward calculator 1210. However, it is also contemplated that the same compliance compensation technique can be used with other data. For example, the motor torque feedback data can be used for this purpose, although it is generally a very noisy signal and, accordingly, makes it more difficult to use. For further reverence, Appendix B sets forth the detailed motion equations for the reaction feedforward calculator 1210, and Appendix C sets forth the derivation of the B vector described above. Both of these appendices are attached hereto and incorporated herein by reference.
While specific embodiments of the present invention have been shown and described herein, further modifications and improvements may be made by those skilled in the art. In particular, it should be noted that the software processing steps and processors described in the figures are only preferred embodiments of software routines and hardware devices which can be used. Numerous software and hardware modifications may be made to customize the present invention for various other applications.
All such modifications which retain the basic underlying principles disclosed and claimed herein are within the scope and spirit of the invention.
What is claimed is:

Claims

1 . A method of compensating for distortions in a positioning device having a movable platform mounted on a plurality of actuators at a plurality of pivot locations, the method comprising the steps of: collecting compliance information of the positioning device; compensating movement commands according to the collected compliance information; and moving the positioning device according to the compensated movement commands.
2. The method according to claim 1 , wherein the step of collecting further comprises: developing a finite element model of the positioning device; and collecting sensitivity data by calculating distortions using the finite element model resulting from application at least one of a force and an acceleration.
3. The method according to claim 2, wherein the finite element model comprises a plurality of nodes and the step of collecting sensitivity data further comprises: fixing an output of the finite element model; and for each of the plurality of nodes, (i) applying one of the unit force and the unit acceleration, in one Cartesian direction, to one of the plurality of nodes in the finite element model, (ii) recording resulting distortions, in each Cartesian direction, at one or more of the plurality of nodes in the finite element model,
(iii) repeating steps (i)-(ii) for each Cartesian direction.
4. The method according to claim 1 , wherein the step of compensating further comprises: modeling the pivot locations; calculating actuator forces; calculating platform accelerations; applying the actuator forces and accelerations to the collected compliance information in order to determine distortions in the pivot locations; adjusting the pivot locations according to the distortions; and compensating movement commands to the positioning device based on the adjustment of the pivot locations.
5. A method according to claim 1 , wherein the positioning device is a hexapod machining center.
6. A compliance compensation system, comprising: a positioning device; and a microcomputer configured to control the positioning device and to use compliance information about the positioning device and adjust the control of the position device according to the compliance information.
7. The compliance compensation system according to claim 6, wherein the positioning device further comprises a plurality of actuators connected between a upper platform and a lower platform at a plurality of pivot locations; and wherein the microcomputer is further comprises: a machine control configured to control the positioning device; a machine pivot model configured to model the plurality of pivot locations of the positioning device; an actuator forces calculator configured to use a plurality of properties of the positioning device in order to determine forces applied by the plurality of actuators on the positioning device; a platform acceleration calculator; a machine sensitivity model configured to model the collected compliance information about the positioning device in order to determine distortions of the plurality of actuators due to the forces and accelerations being applied.
8. The compliance compensation system according to claim 6, wherein the positioning device is a hexapod machining center.
9. A method of compensating for distortions in a hexapod machining center having an upper platform connected to a lower platform by way of a plurality of actuators and a plurality of counterbalances, at a plurality of pivot locations, the method comprising: (a) developing a finite element model of the hexapod machining center;
(b) fixing an output of the finite element model;
(c) choosing one of the plurality of pivot locations on the upper platform; (d) applying a unit force in a Cartesian direction to the one of the plurality of pivot locations on the upper platform and recording the displacement of the plurality of pivot locations on the upper platform in each Cartesian direction; (e) repeating step (d) for each Cartesian direction; (f) repeating steps (c)-(e) for each of the plurality of pivot locations on the upper platform; (g) choosing one of the plurality of pivot locations on the lower platform; (h) applying a unit force in a Cartesian direction to the one of the plurality of pivot locations on the lower platform and recording the displacement of the plurality of pivot locations on the lower platform in each Cartesian direction; (i) repeating step (h) for each Cartesian direction;
(j) repeating steps (g)-(i) for each of the plurality of pivot locations on the lower platform;
(k) choosing one of the plurality of pivot locations on the counterbalances; (I) applying a unit force in a Cartesian direction to the one of the plurality of pivot locations on the counterbalances and recording the displacement of the plurality of pivot locations on the upper platform in each Cartesian direction; (m) repeating step (I) for each Cartesian direction; (n) repeating steps (k)-(m) for each of the plurality of pivot locations on the counterbalances; (o) repeating steps (c)-(f) and steps (k)-(n) replacing the applied unit force with an applied unit acceleration; (p) modeling the plurality of pivot locations in a machine control; (q) calculating actuator forces;
(r) applying the actuator forces to data recorded in steps (d),
(h), (e), and (o); (s) adjusting the plurality of pivot locations according to distortions caused by the application of the actuator forces to the data recorded; and (t) compensating movement commands to the actuators of the hexapod machining center based on the adjustment of the pivot locations.
10. An apparatus for compensating for distortions in a positioning device having a movable platform mounted on a plurality of actuators at a plurality of pivot locations, the apparatus comprising: means for collecting compliance information of the positioning device; means for compensating movement commands according to the collected compliance information; and means for moving the positioning device according to the compensated movement commands.
1 1 . The apparatus according to claim 10, wherein the means for collecting compliance information further comprises: a finite element model of the positioning device; and means for collecting sensitivity data by recording distortions of the finite element model resulting from the application of both forces and accelerations.
12. The apparatus according to claim 10, wherein the finite element model comprises a plurality of nodes and the means for collecting sensitivity data further comprises: a fixed output of the finite element model; means for applying any of the unit forces, in one Cartesian direction, to any of the plurality of nodes in the finite element model; and means for recording resulting distortions, in each Cartesian direction, at one or more of the plurality of nodes in the finite element model.
13. The apparatus according to claim 10, wherein the means for compensating further comprises: means for modeling the pivot locations; means for calculating actuator forces; means for calculating platform accelerations; means for applying the actuator forces and accelerations to the collected compliance information in order to determine distortions in the pivot locations; means for adjusting the pivot locations according to the distortions; and means for compensating movement commands to the positioning device based on the adjustment of the pivot locations.
PCT/US1998/025113 1997-12-01 1998-12-01 System and method for compensating for compliance of a hexapod positioning device WO1999028095A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CA002312802A CA2312802A1 (en) 1997-12-01 1998-12-01 System and method for compensating for compliance of a hexapod positioning device

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US6757497P 1997-12-01 1997-12-01
US60/067,574 1997-12-01

Publications (2)

Publication Number Publication Date
WO1999028095A1 true WO1999028095A1 (en) 1999-06-10
WO1999028095A9 WO1999028095A9 (en) 1999-09-10

Family

ID=22076937

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US1998/025113 WO1999028095A1 (en) 1997-12-01 1998-12-01 System and method for compensating for compliance of a hexapod positioning device

Country Status (3)

Country Link
CA (1) CA2312802A1 (en)
TW (1) TW397748B (en)
WO (1) WO1999028095A1 (en)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1125693A1 (en) * 2000-02-14 2001-08-22 FESTO AG & Co Parallel kinematics system
WO2001076829A1 (en) * 2000-04-11 2001-10-18 Siemens Aktiengesellschaft Method and device for weight compensation in a mechanism with closed kinematic chains
WO2002098603A1 (en) * 2001-06-01 2002-12-12 Siemens Aktiengesellschaft Production machine
WO2006094320A2 (en) * 2005-03-09 2006-09-14 Franz Ehrenleitner Method for determining the elastic deformation of components
WO2008052234A1 (en) 2006-10-30 2008-05-08 Franz Ehrenleitner Method for eliminating the lag error of the operating point of a device
US7971496B2 (en) 2005-03-09 2011-07-05 Franz Ehrenleitner Method for determining the elastic deformation of components
US8286678B2 (en) 2010-08-13 2012-10-16 Chevron U.S.A. Inc. Process, apparatus and vessel for transferring fluids between two structures
US8296094B2 (en) 2007-04-04 2012-10-23 Smith & Nephew, Inc. Analysis of parallel manipulators
WO2014068260A1 (en) 2012-11-02 2014-05-08 Fmc Technologies Sa System and method for transferring fluid
US8793016B2 (en) 2011-04-11 2014-07-29 National Kaohsiung University Of Applied Science Hexapod robot device
US9289693B1 (en) 2014-11-26 2016-03-22 Hogan Mfg., Inc. Motion platform for a simulation device
WO2016085533A1 (en) * 2014-11-26 2016-06-02 Hogan Mfg., Inc. Simulation device with motion stabilization
CN111836698A (en) * 2018-02-28 2020-10-27 必能信超声公司 Workpiece handling device having a servo spring actuator system with compliant spring members and weight compensating spring members

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI460564B (en) * 2009-04-30 2014-11-11 Hon Hai Prec Ind Co Ltd Controlling method using pid controller, controlling device thereof and robot with same
CN114537705B (en) * 2022-04-25 2022-08-12 成都飞机工业(集团)有限责任公司 Airplane flaring conduit assembly method and device with errors, storage medium and equipment

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5538373A (en) * 1992-02-20 1996-07-23 Giddings & Lewis, Inc. Machine tool vibration isolation system

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5538373A (en) * 1992-02-20 1996-07-23 Giddings & Lewis, Inc. Machine tool vibration isolation system

Non-Patent Citations (6)

* Cited by examiner, † Cited by third party
Title
COLOMBI S ET AL: "COMPLIANCE COMPENSATION IN MECHATRONIC SYSTEMS", PROCEEDINGS OF THE INTERNATIONAL CONFERENCE ON INDUSTRIAL ELECTRONI CONTROL AND INSTRUMENTATION. (IECON), BOLOGNA, SEPT. 5 - 9, 1994 ROBOTICS, VISION AND SENSORS, FACTORY AUTOMATION, EMERGING TECHNOLOGIES, vol. 2, no. CONF. 20, 5 September 1994 (1994-09-05), INSTITUTE OF ELECTRICAL AND ELECTRONICS ENGINEERS, pages 946 - 951, XP000525450 *
HUDGENS J C ET AL: "A NEW PROTOTYPE PARALLEL MANIPULATOR: KINEMATICS AND SENSOR CALIBRATION", INTELLIGENT ROBOTS FOR FLEXIBILITY, YOKOHAMA, JULY 26 - 30, 1993, vol. 1, 26 July 1993 (1993-07-26), INSTITUTE OF ELECTRICAL AND ELECTRONICS ENGINEERS, pages 194 - 200, XP000437870 *
LI D ET AL: "MODELING, SIMULATION, AND CONTROL OF A HYDRAULIC STEWART PLATFORM", PROCEEDINGS OF THE 1997 IEEE INTERNATIONAL CONFERENCE ON ROBOTICS A AUTOMATION, ALBUQUERQUE, APR. 20 - 25, 1997, vol. 4, no. CONF. 14, 20 April 1997 (1997-04-20), INSTITUTE OF ELECTRICAL AND ELECTRONICS ENGINEERS, pages 3360 - 3366, XP000776343 *
LIN P D ET AL: "PASSIVE AND ACTIVE ERROR COMPENSATION OF MULTI-AXIS MACHINES", PROCEEDINGS OF THE WORLD CONGRESS ON INTELLIGENT MANUFACTURING PROCESSES AND SYSTEMS, vol. 2, 13 February 1995 (1995-02-13), pages 1105 - 1116, XP002039134 *
MAURINE P ET AL: "A CALIBRATION PROCEDURE FOR THE PARALLEL ROBOT DELTA 4", PROCEEDINGS OF THE 1996 INTERNATIONAL CONFERENCE ON ROBOTICS AND AUTOMATION, MINNEAPOLIS, APR. 22 - 28, 1996, vol. 2, no. CONF. 13, 22 April 1996 (1996-04-22), INSTITUTE OF ELECTRICAL AND ELECTRONICS ENGINEERS, pages 975 - 980, XP000775000 *
ZHUANG H: "SELF-CALIBRATION OF PARALLEL MECHANISMS WITH A CASE STUDY ON STEWART PLATFORMS", IEEE TRANSACTIONS ON ROBOTICS AND AUTOMATION, vol. 13, no. 3, June 1997 (1997-06-01), pages 387 - 397, XP000693015 *

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1125693A1 (en) * 2000-02-14 2001-08-22 FESTO AG & Co Parallel kinematics system
WO2001076829A1 (en) * 2000-04-11 2001-10-18 Siemens Aktiengesellschaft Method and device for weight compensation in a mechanism with closed kinematic chains
WO2002098603A1 (en) * 2001-06-01 2002-12-12 Siemens Aktiengesellschaft Production machine
US6979932B2 (en) 2001-06-01 2005-12-27 Siemens Aktiengesellschaft Production machine
US7971496B2 (en) 2005-03-09 2011-07-05 Franz Ehrenleitner Method for determining the elastic deformation of components
WO2006094320A2 (en) * 2005-03-09 2006-09-14 Franz Ehrenleitner Method for determining the elastic deformation of components
WO2006094320A3 (en) * 2005-03-09 2007-04-12 Franz Ehrenleitner Method for determining the elastic deformation of components
WO2008052234A1 (en) 2006-10-30 2008-05-08 Franz Ehrenleitner Method for eliminating the lag error of the operating point of a device
AT504536B1 (en) * 2006-10-30 2009-03-15 Ehrenleitner Franz METHOD FOR MOVING LOADS, TOOLS AND THE LIKE
US8296094B2 (en) 2007-04-04 2012-10-23 Smith & Nephew, Inc. Analysis of parallel manipulators
US8286678B2 (en) 2010-08-13 2012-10-16 Chevron U.S.A. Inc. Process, apparatus and vessel for transferring fluids between two structures
US8793016B2 (en) 2011-04-11 2014-07-29 National Kaohsiung University Of Applied Science Hexapod robot device
WO2014068260A1 (en) 2012-11-02 2014-05-08 Fmc Technologies Sa System and method for transferring fluid
FR2997692A1 (en) * 2012-11-02 2014-05-09 Fmc Technologies Sa SYSTEM AND METHOD FOR FLUID TRANSFER
US9289693B1 (en) 2014-11-26 2016-03-22 Hogan Mfg., Inc. Motion platform for a simulation device
WO2016085533A1 (en) * 2014-11-26 2016-06-02 Hogan Mfg., Inc. Simulation device with motion stabilization
US9430953B2 (en) 2014-11-26 2016-08-30 Hogan Mfg., Inc. Simulation device with motion stabilization
CN111836698A (en) * 2018-02-28 2020-10-27 必能信超声公司 Workpiece handling device having a servo spring actuator system with compliant spring members and weight compensating spring members
CN111836698B (en) * 2018-02-28 2022-07-15 必能信超声公司 Workpiece handling device having a servo spring actuator system with compliant spring members and weight compensating spring members

Also Published As

Publication number Publication date
CA2312802A1 (en) 1999-06-10
WO1999028095A9 (en) 1999-09-10
TW397748B (en) 2000-07-11

Similar Documents

Publication Publication Date Title
WO1999028095A1 (en) System and method for compensating for compliance of a hexapod positioning device
Martins et al. Approaches for dynamic modelling of flexible manipulator systems
US4362977A (en) Method and apparatus for calibrating a robot to compensate for inaccuracy of the robot
US7441341B2 (en) Automated robotic measuring system
Jang et al. Calibration of geometric and non-geometric errors of an industrial robot
Lightcap et al. Improved positioning accuracy of the PA10-6CE robot with geometric and flexibility calibration
US5327790A (en) Reaction sensing torque actuator
EP1687589B1 (en) Method of error compensation in a coordinate measuring machine with an articulating probe head
Bonev et al. A new method for solving the direct kinematics of general 6-6 Stewart platforms using three linear extra sensors
US5946449A (en) Precision apparatus with non-rigid, imprecise structure, and method for operating same
EP1034066A1 (en) System and method for calibrating a hexapod positioning device
Youcef-Toumi et al. High-speed trajectory control of a direct-drive manipulator
CN113195176B (en) Manufacturing system and method
WO1998042482A1 (en) A method for determining load parameters for a manipulator
JP3811088B2 (en) Servo control method
JPH0445841B2 (en)
JPWO2019073246A5 (en)
JP2000222845A (en) Magnetic head with yaw correction and disk tester
WO1999028096A1 (en) System and method for improving the dynamic accuracy of a hexapod positioning device
Trevisani Feedback control of flexible four-bar linkages: a numerical and experimental investigation
JP4311621B2 (en) Mechanical motion error correction method using a 6-DOF position and orientation measurement device
JPH0433006A (en) Control method for robot system
Chalhoub et al. Reduction of the end effector sensitivity to the structural deflections of a single flexible link: theoretical and experimental results
Hardeman Modelling and identification of industrial robots including drive and joint flexibilities
JP2520324B2 (en) Automatic correction method for robot constants

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): CA CN JP KR RU US

AL Designated countries for regional patents

Kind code of ref document: A1

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

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

Kind code of ref document: C2

Designated state(s): CA CN JP KR RU US

AL Designated countries for regional patents

Kind code of ref document: C2

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

COP Corrected version of pamphlet

Free format text: PAGES 43-49, CLAIMS, REPLACED BY NEW PAGES 50-56; PAGES 17/20-20/20, DRAWINGS, REPLACED BY NEW PAGES 43-49, APPENDIX; PAGES 1/20-16/20, DRAWINGS, RENUMBERED AS PAGES 1/16-16/16; DUE TO LATE TRANSMITTAL BY THE RECEIVING OFFICE

ENP Entry into the national phase

Ref document number: 2312802

Country of ref document: CA

Ref country code: CA

Ref document number: 2312802

Kind code of ref document: A

Format of ref document f/p: F

NENP Non-entry into the national phase

Ref country code: KR

122 Ep: pct application non-entry in european phase