WO2008113807A2 - A method and an apparatus for programming a material removal process carried out on an object by means of a robot - Google Patents

A method and an apparatus for programming a material removal process carried out on an object by means of a robot Download PDF

Info

Publication number
WO2008113807A2
WO2008113807A2 PCT/EP2008/053241 EP2008053241W WO2008113807A2 WO 2008113807 A2 WO2008113807 A2 WO 2008113807A2 EP 2008053241 W EP2008053241 W EP 2008053241W WO 2008113807 A2 WO2008113807 A2 WO 2008113807A2
Authority
WO
WIPO (PCT)
Prior art keywords
robot
geometry
work
processed
deviations
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
PCT/EP2008/053241
Other languages
French (fr)
Other versions
WO2008113807A3 (en
Inventor
Torgny BROGÅRDH
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ABB Technology AG
Original Assignee
ABB Technology AG
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 ABB Technology AG filed Critical ABB Technology AG
Publication of WO2008113807A2 publication Critical patent/WO2008113807A2/en
Publication of WO2008113807A3 publication Critical patent/WO2008113807A3/en
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Program-controlled manipulators
    • B25J9/16Program controls
    • B25J9/1679Program controls characterised by the tasks executed
    • B25J9/1692Calibration of manipulator
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Program-controlled manipulators
    • B25J9/16Program controls
    • B25J9/1694Program controls characterised by use of sensors other than normal servo-feedback from position, speed or acceleration sensors, perception control, multi-sensor controlled systems, sensor fusion
    • B25J9/1697Vision controlled systems
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Program-control systems
    • G05B19/02Program-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of program data in numerical form
    • G05B19/401Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of program data in numerical form characterised by control arrangements for measuring, e.g. calibration and initialisation, measuring workpiece for machining purposes
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Program-control systems
    • G05B19/02Program-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of program data in numerical form
    • G05B19/408Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of program data in numerical form characterised by data handling or data format, e.g. reading, buffering or conversion of data
    • G05B19/4083Adapting program, configuration
    • 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/36Nc in input of data, input key till input tape
    • G05B2219/36404Adapt teached position as function of deviation 3-D, 2-D position workpiece
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/39Robotics, robotics to robotics hand
    • G05B2219/39008Fixed camera detects reference pattern held by end effector
    • 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/40Robotics, robotics mapping to robotics vision
    • G05B2219/40387Modify without repeating teaching operation

Definitions

  • the present invention relates to a method and an apparatus for programming a material removal process carried out on an object by means of a robot programmed to follow a robot path defined in relation to a mathematical geometrical model of the ob- ject, and more particularly to a method and an apparatus for fine tuning the robot program for carrying out the material removal process.
  • Industrial manipulators such as robots
  • robots are often used for carrying out a process that involves some type of material removal on a work object, such as milling, grinding, deburring, deflashing or polishing.
  • the robot is programmed to follow a path relative the work object during the processing.
  • the path includes a plurality of target points.
  • a robot control unit controls the movements of the robot in accordance with instructions in a stored control program.
  • the control program comprises instructions for the robot movement along the path.
  • Information on the path such as posi- tion and orientation of the target points of the path, is included in the instructions in the control program.
  • Robot programming for material removal is very difficult because of the lack of accuracy and the stiffness of an industrial robot.
  • 3D imaging systems such as 3D scanners and 3D cameras can be used.
  • These measurement systems generate 3D models of the work object used for off-line programming of the robot paths.
  • the paths which a tool should follow when manipulated by the robot, are either manually or automatically generated relative a mathematically defined geometric model of the work object, usually a CAD model of the object.
  • the paths are then used for the generation of robot instructions that are downloaded to the robot.
  • the robot Before running the program instructions, the robot must be calibrated to the 3D measurement system making it possible for the robot to run the path in the robot base coordinate system even if the path is generated in the coordinate system of the measurement system. This approach is possible to perform both when the robot holds the tool and the work object.
  • the processing result will anyhow be very bad, especially for harder materials such as iron and steel.
  • the reason for this is that the compliant robot structure will flex because of the tool forces during the processing and also vibrations may destroy the machining results.
  • the compliance of the robot structure is not linear, which means that it usually flexes in another direction than the tool force, making the result even worse.
  • the object of the present invention is to improve the accuracy of a material removal process carried out by an industrial robot.
  • Such a method comprises: picking a reference object processed with a desired process result, measuring the geometry of the processed parts of the reference object and storing the measurement results, picking a not processed work object of the same type as the reference object, performing the material removal process on the work object in accordance with the programmed robot path, measuring the geometry of the work object after the removal process and storing the measurement results, calculating deviations between the geometry of the processed work object and the processed reference object, determining whether the calculated deviations are acceptable, and if the deviations are acceptable store the programmed robot path, and if the deviations are not acceptable adjust the robot path based on the geometrical and repeating the procedure for a new not processed work object.
  • This method is, for example, suitable for adapting a robot program for carrying out a material removal process on a work ob- ject, which robot program has been generated off-line in a CAD system, to a desired process result for the work object.
  • the method is also suitable for fine-tuning a program that has be generated by lead through to a desired process result for the work object.
  • This method is particularly suitable for program- ming a material removal process on a casting made of hard materials, such as iron or steel.
  • This invention solves the above problem with bad material removal results by an adaptive programming method involving several steps including both measurements, geometry adaptation and processing. In this way the lack of both accuracy and stiffness of the robot and the gripper/tool will be compensated for. Measurements are made both on a reference object, which has been processed manually or by a high performance CNC machine, and of one or more work objects that are processed during the programming phase. The measurements of the reference object are made to obtain a geometric reference model describing a desired processing result at the actual gripping and/or fixturing of the object. The measurements of the work objects processed by the robot are made to make it possible to compare the geometry of the processed work objects with the reference object. This comparison is used for the adjustment of the program to increase the processing accuracy. The method is iterative and several work objects may be needed before a high performance program is obtained.
  • the robot program includes movement instructions that define targets, which comprises tool positions and orientations together with interpolation methods defining the geometrical path between the targets, whereby the complete tool paths are defined.
  • the term adjusting the robot path means that the targets of the instructions of the robot program defining the path of the robot tool are adjusted.
  • best fit is meant that a known best-fit method, such as a least square method or a non-linear optimization method, is used for fitting measured point clouds to a geometric model of the measured object.
  • a surface model can be made of the measured point cloud and then best fit is made be- tween the surface model and a surface model from other measurements or from a CAD model.
  • surface models are meshes of polygons or surface splines.
  • the robot path is defined in relation to a mathematical geometrical model of the object
  • the method comprises: adapting by best fit the measurements of the geometry of the reference object to the mathematical geometrical model of the object, determining differences in the geometry of the reference object between the measurement of the reference object and the mathematical geometrical model of the object, and adjusting the programmed robot path based on the determined geometrical differences.
  • This embodiment is suitable for fine-tuning a robot program that has been generated off-line in a CAD system, to a desired proc- ess result for the work object.
  • a mathematical geometrical model of the object in the form of a CAD model, is available and is used for improving the fine-tuning of the program.
  • the robot program which is to be fine-tuned, is programmed by lead through on processed parts of the reference object.
  • the robot program can be generated by lead through. This means that the work object and tool are moved relative each other along the paths of the reference object that have been processed and that the position and the orientation of the tool relative the object is registered along the paths where processing has been made.
  • the method comprises: picking a reference object processed with a desired process result, measuring the geometry of the processed parts of the reference object and storing the measurement results and performing lead through programming on the reference object to obtain the program then used for the robot processing of a work object. The same procedure described for program adjustment during robot processing is then performed.
  • the deviations between the geometry of the robot processed work object and the processed reference object are calculated based on the stored measurements of the work object and the stored measurements of the reference object. In this way errors in the material removal of the robot are obtained and can be compensated for by adjusting the robot program throughout the programmed paths in such a way that the errors are compensated for.
  • the deviations between the geometry of the processed work object and the processed reference object are calculated based on stored measurements of the work object and the adjusted robot path used to perform the processing. This makes it possible to make use of the relation between the adjusted programmed path and the geometrical object model in order to know how much to move the path in order to compensate for the geometry errors.
  • the method further comprises measuring the geometry of the parts to be processed on the not processed work object, and storing the measurement results, and if the deviations between the geometry of the processed work object and the processed reference object are acceptable at least for one part of the robot path, the adjusted robot path is stored together with the measurement results of the geometry of the work object before the processing, and repeating the procedure for a plurality of not processed work objects until a plurality of adjusted robot paths have been stored together with measurement results of the geometry of the corresponding not processed work objects.
  • Performing during production or manufacturing of work objects of the same type as the reference object picking the work object, measuring the geometry of the parts of the work object to be processed and storing the measurement results, comparing the measurement re- suits from the present work object with said stored measurement results of the geometry of previous work objects, and selecting the adjusted robot path stored together with the work object having the measured geometry closest to the present work object.
  • the method further comprises adjusting the selected robot path using more than one of the stored robot paths associated with measurement results close to the geometry of the object. This means that a combination is made (for example by adding geometrical errors relative the reference measurements) of different stored measurement results to obtain the same measurement results as for the work object to be processed and a program is generated as a corresponding combination of stored adjusted programs.
  • the material removal process on the work object is performed in accordance with the adjusted robot path combined with at least one robot path programmed by lead through.
  • the resulting program is made by connecting in series the adjusted robot path and the lead through programmed robot path. This will give less residual material for the lead through programmed material removal, which then will be possible to perform faster.
  • the work object is measured before the processing and the measurement results are used to reduce the material removal depth of the adjusted robot program to leave material for the lead through programming step.
  • Fig. 1 shows an example of an apparatus using an optical scanner for programming a material removal process carried out on an object by means of a robot.
  • Fig. 2a-c exemplifies measurements of a casting stub to be grinded using a mechanical scanning equipment.
  • Fig. 3 shows the use of a tool for the measurements of a casting stub using force control.
  • Fig. 4 shows the use of a dummy tool for the measurements of a casting stub using force control.
  • Fig. 5 shows the application of a weaving motion pattern for the measurement of a casting stub using force control.
  • Fig. 6 illustrates how the method according to the invention can be used for programming a material removal process on wood.
  • Fig. 7 shows a flowchart over a method for fine-tuning a robot program according to an embodiment of the invention.
  • Fig. 8 shows a flowchart over a method for fine-tuning a robot program according to another embodiment of the invention.
  • Fig. 9 shows an example of how a robot program can be adjusted with the method according to the invention.
  • a robot program defining a robot path for carrying out a material removel process on a work object is off-line programmed, for example, by means of a CAD program.
  • a mathematical model such as a CAD model, describing the geomery of the object is used during the programming.
  • the geometry of the real work objects may vary between different objects. For example, if the objects are castings and the process is deburring, the shape of the castings before the deburring process may vary due to the amount of burr on the casting.
  • the off-line programmed robot program has to be adapted to real work objects by fine tuning of the program.
  • Figure 1 shows an example of an apparatus for automatically fine tuning a robot program for carrying out a material removal process on an object 1 .
  • the object 1 is a casting having a stub 2, which has to be removed by a grinding process.
  • the apparatus has a measuring system, including a sensor 3, for measuring the geometry of the casting.
  • the sensor is a 3D scanner.
  • the sensor can be any type of sensor for measuring the geometry of an object, such as a 2D scanner or a 2D or 3D vision system.
  • An industrial robot 4 moves the casting.
  • the sensor 3 generates measurement signals and is connected to a data processing unit 5 configured to process the measurement signals from the sensor.
  • the data processing unit includes at least one processor and memory storage.
  • the computer unit 5 comprises software code portions for performing the steps of the method according to the invention.
  • the processing unit is a computing device, for example, a computer, such as a PC or a hand-held computer.
  • the data processing unit is a robot control unit for control- ling the movements of the robot.
  • Lead through is a method for programming a robot a desired path.
  • a lead-through handle is mounted to the robot or to a tool or an object carried by the robot, and the programmer guides the robot along the desired path.
  • a force sensor is configured to detect force and torque changes of the handle during the programming.
  • FIG. 1 exemplifies mechanical scanning of a stub 14 on a casting 1 1 .
  • the casting is programmed, for example by lead through, to pass a mechanical scanning device 15a or 15b both before the grinding and after the grinding.
  • a mechanical scanning device 15a or 15b There are of course many ways to implement a mechanical scanning device.
  • a piston configuration 15a and an arm configuration 15b are outlined.
  • the translation in 15a can be measured with an LVDT and the rotation in 15b with a resolver.
  • the controller is asked to make a scanning between these two positions.
  • This scanning is made with admittance control and the controller superimposes a motion pattern 22 to get the dummy jump up and down in relation to the casting.
  • admittance control the controller superimposes a motion pattern 22 to get the dummy jump up and down in relation to the casting.
  • the up and down motions should be made using just a wobbling speed reference and there is also a possibility to add a tilting motion to detect the orientation of the stub in relation to the orientation of the surrounding surface 1 1 .
  • a kinematics coupling comprising one part 23a with spheres and a second part 23b with groves.
  • a magnet 24 is used to keep the parts together.
  • the dummy beam can be mounted beside the real burner during production to make it possible to use it for measurements of cut quality.
  • a dummy tool can also be used, see figure 5.
  • the cutting disc 25 is here mounted on the shaft via a 6 DOF Force/Torque sensor 26.
  • the stub can be measured for program compensation.
  • earlier described optical and mechanical scanning methods can also be used.
  • FIG. 1 denotes a CAD model or a processed reference object, on which robot trajectories have been programmed to obtain a geometrical pattern 31 .
  • the robot is programmed to pick the piece of wood 32 on which the pattern will be processed.
  • the wood piece 32 is moved into position for scanning of edges by moving around the wood piece in front of the scanner 33.
  • the robot controller makes a best fit of the wood piece with the CAD model of the wood piece or the measurements of the reference object 30, and the CAD robot program is loaded to the robot.
  • the wood piece is moved to the tool 34 and by lead through three corners (or other specific details defined as calibration points on the CAD model or the reference object) will be moved to touch the tool to define the tool position relative the wood piece.
  • the process is started and a real pattern 35 is obtained by running the program adapted to the CAD-model or the measurements of the reference object.
  • the real pattern 35 is then measured by a scanner 36, which could be the same as the scanner 33, and the measured pattern profiles are compared with the CAD model or the processed reference object and the errors are then used to compensate the robot program itera- tively. After that the production can start.
  • This method of feedback adjustment of a robot program generated from CAD or reference objects can of course also be used for programming of many other applications.
  • One example is pre machining of complicated structures as engine blocks and gearbox housings. Then the surfaces may be very reflective and touch probes can instead be used for the measurements to adjust the process iteratively.
  • An embodiment of the invention relates to a method for fine tuning a robot program for carrying out a material removal process on an object by means of a robot, wherein the robot program controls the robot to follow a robot path defined in relation to a mathematical geometrical model of the object, for example a CAD model.
  • a method comprises:
  • step 12 if the deviations are not acceptable adjust the robot path based on the geometrical deviations determined in step 8, and repeating the steps 6-12 for a new object.
  • Figure 7 is a flow chart illustration of the method for adaption of a robot program generated in a CAD system to a desired process result for a work objects according to an embodiment of the present invention. It will be understood that blocks 52 - 86 of the flow chart can be implemented by computer program instructions. The movements of the objects are implemented by a robot program including instructions for picking an object, processing an object, measuring an object, and placing an object
  • the process involves some type of material removal as for ex- ample milling, grinding, deburring, deflashing or polishing.
  • the desired result of the processing is obtained by manual processing of a first object that will be named the reference object, block 52.
  • the reference object is place at a loading site for the robot and the robot grips the object, block 53.
  • the robot After gripping of the object, it may be necessary to measure errors of the gripping in order to have a well-defined position and orientation of the reference object.
  • the robot moves the reference object to a measurement station, block 54, which measures the geometry of at least the parts of the object that have been processed, block 56. For example, in the case of deburring, the deburred edges are measured.
  • the ob- tained measurement results are then stored in a 3D format, for example represented by spline functions generated from the measurement points defined in the coordinate system of the measurement system, block 58.
  • the stored measurement results are adjusted to a mathematical description of the object, such as a CAD model, by best fit, block 60. For example, a least mean square method or an optimization method is used.
  • the programmed points of the CAD- based program are then adjusted to compensate for the difference between the geometry of the CAD model and the measurement results from the processed reference object, block 62.
  • the adjusted CAD-based program is then stored. To start the program tuning, he robot grips a raw work object, block 66. If necessary, the same grip compensation as for the reference object is made.
  • the adjusted robot program is run and the work object is processed in accordance with the adjusted robot path, block 68.
  • the robot moves the processed object to the measurement station, block 70, and the same measurements as for the reference object are made, block 72.
  • the measurement results are stored in a suitable form, block 74.
  • the deviations between the measured geometry of the processed work object and the geometry of the manually processed reference object are calculated along the programmed paths of the adjusted pro- gram, block 76.
  • the deviations can be calculated in two ways: based on the stored measurement results from the work object in relation to the stored measurement results from the reference object, block 58, or based on the stored measurement results from the work object in relation to the best fit CAD model with respect to the reference measurements, block 60.
  • the easiest way to adjust the program is just to move the programmed points the same distances as the deviations but in the opposite direction.
  • One reason for the deviations are differences between the gripping of the reference object and the gripping of the raw work object, block 53 and 66.
  • the main reason for thepath errors is the compliance of the robot.
  • the compliance errors depend on the force on the tool and the stiffness of the robot. Using a force sensor and knowing the stiffness matrix of the robot it will be possible to calculate the adjustments needed of the robot program to obtain a path close to the wanted path and fewer iterations will be needed than in the case when just a compensation corresponding to the deviation is made.
  • the reason for this is that the stiffness matrix of a robot is not diagonal and it is not enough to make a compensation in the direction of the tool force. Models of the robot stiffness can be included in filters used for Iterative Learning Control to optimize the convergence speed.
  • the procedure 66 - 78 can be performed at suitable intervals to be sure to keep the quality and if deviations are found new adjustments of the program can be made. Since the same robot used for the program adjustments can also be used in the production, no extra arrangements are needed in or- der to make such quality tests.
  • the robot program used the first time in block 68 can be obtained by lead through programming on the processed reference object. This means that instead of the activities in blocks 60 and 62 the operator moves the tool relative the reference object to simulate the processing and doing so, the path for the program to be used in block 68 is stored. Lead through programming can also be made as a second step in block 68. Then the robot is at first making the proc- essing using the program generated by means of the reference object. In a second step lead through programming is made to obtain an additional program. Then the program made by lead through is run to perform additional processing. Thus, two robot programs will in this case be run in block 68.
  • the gripped raw object, block 108 is at first moved to the measuring station, block 1 10, the geometry of the object is measured, block 1 12, and the measurements are stored, block 1 14, before the processing of the object with the adjusted CAD program or the program obtained by lead through on the processed reference object, block 1 16.
  • the measurement results are stored in a Data Base 136 for future use.
  • the processed raw object is measured, block 1 18 and 120, and the measurement results are stored, block 122.
  • the latest stored measurement results from the object are compared with stored measurements results from the reference object, or with the best fit CAD model of the reference object, block 124. If the deviation is too large, block 126, the CAD program is adjusted, block 128, as described in figure 7, and a new raw object, block 130, is gripped, block 108, and the steps 1 10 - 126 are repeated. As soon as the deviation is small enough, block 126, the program is stored, block 132, in the Data Base 136 together with the measurement results from the raw object, which were stored in block 1 14. In order to get statistics on the relationship between successful programs and corresponding raw objects excess material geometries, the measurement data for several successful raw object programs need to be saved. Therefore it is checked if more than M programs have been stored, block 134. If this is not the case, the steps 130, 108 - 126 are repeated for new raw objects.
  • the production can start and for each object 140 that is gripped, block 142, measurements on the parts to be processed are made, block 144 - 148 and the stored measurement results are then used to find the Data Base measurement result that is closest to the measurement results of the just measured object.
  • the robot program stored together with the closest measurement results in the Data Base is then used for the proc- essing of the object.
  • the block 1 16 can also contain a second step with lead through programming and processing using the lead through program. In this way fewer raw work objects are needed in order to get the statistics needed in the data base.
  • Figure 9a-c illustrates with a simple 2D example how the measured geometry 162 of a robot processed object is adjusted to the measured geometry 160 of a reference object, block 80 in figure 7 and block 128 in Figure 8.
  • Figure 9b shows how the deviations d, calculated in block 76 in figure 7 and block 124 in figure 8, are defined.
  • the static deviations that may originate from gripping errors are first removed by best fit and the position and orientation 162 of the measured geometry is obtained.
  • Figure 9c shows how the adjusted measured geometry 162 is adjusted to compensate for the processing errors, resulting in a new programmed path 166. From the beginning the program is adapted to follow the geometry of the reference object geometry 164 and after the adjustment the program is in this case made to follow the geometry 166.
  • the loop in Figure 8 may need many objects before the deviation between reference object geometry and robot processed object geometry is small enough, block 126.
  • the deviation from the manually processed reference object performed in block 124 of figure 8 can be calculated for different segments of the geometry to be processed and as soon as at least one segment fulfils the requirements in block 126, the program, block 132, and the corresponding measurement results, block 1 14, are stored and if the condition that more than M programs have been stored, block 134, is not fulfilled a new raw object is processed to obtain enough statistics.
  • the value of M now depends on how many segments that fulfil the accuracy requirements and basic criteria must be that approved segments and corresponding adjusted programs must exist for the com- plete paths.
  • the measured geometry, blocks 146, 148 is then compared for each segment with stored measurement results in the Data Base 136 and for each similar segment the corresponding stored program is then used, meaning that several stored programs will be blended together to form a program giving acceptable quality for all the processing of the object.
  • lead through programming it is possible to perform a combination of lead through programming and CAD-based pro- gramming in block 68 in figure 7 and block 1 16 in figure 8. This can be made in such a way that at first a conservative CAD- program is run guaranteeing that not too much material is removed, and then the operator removes the rest of the material by lead through.
  • the CAD program can also be parameterized with respect to the thickness of the excess material to be removed. In that case the measurements made in blocks 1 12, 1 14 can be used to obtain the thickness of the excess material and using this result the CAD program can be tuned before the processing starts. This will give less residual material for the lead through programmed material removal, which then will be possible to perform faster.
  • the resulting program is made by connecting in series the CAD-based program and the lead through program.
  • the deviation from the reference object should almost always be small enough for all the processed geometries and the check in block 126 will almost always give an OK and the number M will mainly determine the number of object needed for the statistical content of the Data Base.
  • block 1 18 - 122 If the operator is able to perform the lead through programming with high precision for every object the measurements after the processing, block 1 18 - 122, will not be needed and it is possi- ble to jump directly from block 1 16 to block 132 in the flow diagram of figure 8. With very large differences in the excess material to be removed, the CAD program in block 1 16 will have a minor role and only lead through programming can be adopted. Then, the steps 92 - 104 as well as the steps in blocks 1 18 - 126 + 128 can be omitted. However, then there will not be any tests if the lead through programming is good enough and much more lead through programming may be needed since there will not be any help from the CAD program. Moreover, it is more dif- ficult to make a precise processing using lead through programming than to make a complete manual processing, and therefore it is important always to have a manually processed reference object to compare with.
  • the present invention is not limited to the embodiments disclosed but may be varied and modified within the scope of the following claims.
  • the calculations of the deviations and the adjustment of the robot program is made by a certain program adapted for handling geometry data, which is run on an external computer, and the movements of the robot during the fine-tuning procedure is controlled by a robot control program, which is run on the robot controller.

Landscapes

  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mechanical Engineering (AREA)
  • Human Computer Interaction (AREA)
  • Manufacturing & Machinery (AREA)
  • Physics & Mathematics (AREA)
  • Robotics (AREA)
  • Automation & Control Theory (AREA)
  • Manipulator (AREA)
  • Numerical Control (AREA)
  • Electrical Discharge Machining, Electrochemical Machining, And Combined Machining (AREA)
  • Suspension Of Electric Lines Or Cables (AREA)
  • Length Measuring Devices With Unspecified Measuring Means (AREA)
  • Automatic Control Of Machine Tools (AREA)

Abstract

The present invention relates to an apparatus for automatically fine-tuning a robot program for carrying out a material removal process on an object (1) by means of a robot (4). The apparatus comprising a measuring system (3) configured to measure the geometry of the object, and at least one computing device (5) having program code comprising code configured to: control the robot to pick a reference object processed with a desired process result, and move the reference object into the measuring range of the measuring system, receive measurements of the geometry of processed parts of the reference object, control the robot to pick a not processed work object of the same type as the reference object, control the robot to perform the material removal process on the work object in accordance with the programmed robot path, control the robot to move the work object into the measuring range of the measuring system, receive measurements of the geometry of the work object after the removal process, calculate deviations between the geometry of the processed work object and the processed reference object, determine whether the calculated deviations are acceptable, and if the deviations are acceptable store the adjusted robot path, and if the deviations are not acceptable adjust the robot path based on the geometrical deviations and repeat the procedure for a new object.

Description

A METHOD AND AN APPARATUS FOR PROGRAMMING A MATERIAL REMOVAL PROCESS CARRIED OUT ON AN OBJECT BY MEANS OF A ROBOT
FIELD OF THE INVENTION
The present invention relates to a method and an apparatus for programming a material removal process carried out on an object by means of a robot programmed to follow a robot path defined in relation to a mathematical geometrical model of the ob- ject, and more particularly to a method and an apparatus for fine tuning the robot program for carrying out the material removal process.
PRIOR ART
Industrial manipulators, such as robots, are often used for carrying out a process that involves some type of material removal on a work object, such as milling, grinding, deburring, deflashing or polishing. The robot is programmed to follow a path relative the work object during the processing. The path includes a plurality of target points. A robot control unit controls the movements of the robot in accordance with instructions in a stored control program. The control program comprises instructions for the robot movement along the path. Information on the path, such as posi- tion and orientation of the target points of the path, is included in the instructions in the control program.
Robot programming for material removal is very difficult because of the lack of accuracy and the stiffness of an industrial robot. To get around the accuracy problem 3D imaging systems such as 3D scanners and 3D cameras can be used. These measurement systems generate 3D models of the work object used for off-line programming of the robot paths. In the off-line programming system the paths, which a tool should follow when manipulated by the robot, are either manually or automatically generated relative a mathematically defined geometric model of the work object, usually a CAD model of the object. The paths are then used for the generation of robot instructions that are downloaded to the robot. Before running the program instructions, the robot must be calibrated to the 3D measurement system making it possible for the robot to run the path in the robot base coordinate system even if the path is generated in the coordinate system of the measurement system. This approach is possible to perform both when the robot holds the tool and the work object.
Even if the accuracy obtained with this method had been high enough for accurate material removal, the processing result will anyhow be very bad, especially for harder materials such as iron and steel. The reason for this is that the compliant robot structure will flex because of the tool forces during the processing and also vibrations may destroy the machining results. The compliance of the robot structure is not linear, which means that it usually flexes in another direction than the tool force, making the result even worse.
OBJECTS AND SUMMARY OF THE INVENTION
The object of the present invention is to improve the accuracy of a material removal process carried out by an industrial robot.
This object is achieved by a method as defined in claim 1 and an apparatus as defined in claim 10.
Such a method comprises: picking a reference object processed with a desired process result, measuring the geometry of the processed parts of the reference object and storing the measurement results, picking a not processed work object of the same type as the reference object, performing the material removal process on the work object in accordance with the programmed robot path, measuring the geometry of the work object after the removal process and storing the measurement results, calculating deviations between the geometry of the processed work object and the processed reference object, determining whether the calculated deviations are acceptable, and if the deviations are acceptable store the programmed robot path, and if the deviations are not acceptable adjust the robot path based on the geometrical and repeating the procedure for a new not processed work object.
This method is, for example, suitable for adapting a robot program for carrying out a material removal process on a work ob- ject, which robot program has been generated off-line in a CAD system, to a desired process result for the work object. The method is also suitable for fine-tuning a program that has be generated by lead through to a desired process result for the work object. This method is particularly suitable for program- ming a material removal process on a casting made of hard materials, such as iron or steel.
This invention solves the above problem with bad material removal results by an adaptive programming method involving several steps including both measurements, geometry adaptation and processing. In this way the lack of both accuracy and stiffness of the robot and the gripper/tool will be compensated for. Measurements are made both on a reference object, which has been processed manually or by a high performance CNC machine, and of one or more work objects that are processed during the programming phase. The measurements of the reference object are made to obtain a geometric reference model describing a desired processing result at the actual gripping and/or fixturing of the object. The measurements of the work objects processed by the robot are made to make it possible to compare the geometry of the processed work objects with the reference object. This comparison is used for the adjustment of the program to increase the processing accuracy. The method is iterative and several work objects may be needed before a high performance program is obtained.
In this context, no distinction is made between the robot program and the robot path. The robot program includes movement instructions that define targets, which comprises tool positions and orientations together with interpolation methods defining the geometrical path between the targets, whereby the complete tool paths are defined. Accordingly, the term adjusting the robot path means that the targets of the instructions of the robot program defining the path of the robot tool are adjusted.
By best fit is meant that a known best-fit method, such as a least square method or a non-linear optimization method, is used for fitting measured point clouds to a geometric model of the measured object. Before best fit a surface model can be made of the measured point cloud and then best fit is made be- tween the surface model and a surface model from other measurements or from a CAD model. Examples of surface models are meshes of polygons or surface splines.
According to an embodiment of the invention, the robot path is defined in relation to a mathematical geometrical model of the object, and the method comprises: adapting by best fit the measurements of the geometry of the reference object to the mathematical geometrical model of the object, determining differences in the geometry of the reference object between the measurement of the reference object and the mathematical geometrical model of the object, and adjusting the programmed robot path based on the determined geometrical differences. This embodiment is suitable for fine-tuning a robot program that has been generated off-line in a CAD system, to a desired proc- ess result for the work object. In such case a mathematical geometrical model of the object, in the form of a CAD model, is available and is used for improving the fine-tuning of the program.
According to another embodiment of the invention, the robot program, which is to be fine-tuned, is programmed by lead through on processed parts of the reference object. In the case that a mathematical geometry model of the object is not available, the robot program can be generated by lead through. This means that the work object and tool are moved relative each other along the paths of the reference object that have been processed and that the position and the orientation of the tool relative the object is registered along the paths where processing has been made. Using lead through programming the method comprises: picking a reference object processed with a desired process result, measuring the geometry of the processed parts of the reference object and storing the measurement results and performing lead through programming on the reference object to obtain the program then used for the robot processing of a work object. The same procedure described for program adjustment during robot processing is then performed.
According to an embodiment of the invention, the deviations between the geometry of the robot processed work object and the processed reference object are calculated based on the stored measurements of the work object and the stored measurements of the reference object. In this way errors in the material removal of the robot are obtained and can be compensated for by adjusting the robot program throughout the programmed paths in such a way that the errors are compensated for.
According to another embodiment of the invention, the deviations between the geometry of the processed work object and the processed reference object are calculated based on stored measurements of the work object and the adjusted robot path used to perform the processing. This makes it possible to make use of the relation between the adjusted programmed path and the geometrical object model in order to know how much to move the path in order to compensate for the geometry errors.
According to another embodiment of the invention, the method further comprises measuring the geometry of the parts to be processed on the not processed work object, and storing the measurement results, and if the deviations between the geometry of the processed work object and the processed reference object are acceptable at least for one part of the robot path, the adjusted robot path is stored together with the measurement results of the geometry of the work object before the processing, and repeating the procedure for a plurality of not processed work objects until a plurality of adjusted robot paths have been stored together with measurement results of the geometry of the corresponding not processed work objects. Performing during production or manufacturing of work objects of the same type as the reference object: picking the work object, measuring the geometry of the parts of the work object to be processed and storing the measurement results, comparing the measurement re- suits from the present work object with said stored measurement results of the geometry of previous work objects, and selecting the adjusted robot path stored together with the work object having the measured geometry closest to the present work object.
According to another embodiment of the invention, the method further comprises adjusting the selected robot path using more than one of the stored robot paths associated with measurement results close to the geometry of the object. This means that a combination is made (for example by adding geometrical errors relative the reference measurements) of different stored measurement results to obtain the same measurement results as for the work object to be processed and a program is generated as a corresponding combination of stored adjusted programs.
According to another embodiment of the invention, wherein if the deviations are acceptable along a part of the path, storing the adjusted robot path together with the measurement results of the geometry of the work object. In production the measurement results are then compared with the stored measurement results along the path and the stored adjusted programs used in the path segments with acceptable difference between measurement results are used.
According to another embodiment of the invention, the material removal process on the work object is performed in accordance with the adjusted robot path combined with at least one robot path programmed by lead through. The resulting program is made by connecting in series the adjusted robot path and the lead through programmed robot path. This will give less residual material for the lead through programmed material removal, which then will be possible to perform faster.
In the case of using a combination of the adjusted robot program and lead through programming the work object is measured before the processing and the measurement results are used to reduce the material removal depth of the adjusted robot program to leave material for the lead through programming step.
BRIEF DESCRIPTION OF THE DRAWINGS
The invention will now be explained more closely by the description of different embodiments of the invention and with reference to the appended figures.
Fig. 1 shows an example of an apparatus using an optical scanner for programming a material removal process carried out on an object by means of a robot.
Fig. 2a-c exemplifies measurements of a casting stub to be grinded using a mechanical scanning equipment. Fig. 3 shows the use of a tool for the measurements of a casting stub using force control.
Fig. 4 shows the use of a dummy tool for the measurements of a casting stub using force control.
Fig. 5 shows the application of a weaving motion pattern for the measurement of a casting stub using force control.
Fig. 6 illustrates how the method according to the invention can be used for programming a material removal process on wood.
Fig. 7 shows a flowchart over a method for fine-tuning a robot program according to an embodiment of the invention.
Fig. 8 shows a flowchart over a method for fine-tuning a robot program according to another embodiment of the invention.
Fig. 9 shows an example of how a robot program can be adjusted with the method according to the invention.
DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS OF THE INVENTION
A robot program defining a robot path for carrying out a material removel process on a work object is off-line programmed, for exemple, by means of a CAD program. A mathematical model, such as a CAD model, describing the geomery of the object is used during the programming. However, the geometry of the real work objects may vary between different objects. For exemple, if the objects are castings and the process is deburring, the shape of the castings before the deburring process may vary due to the amount of burr on the casting. Thus, during the programming of the process the off-line programmed robot program has to be adapted to real work objects by fine tuning of the program.
Starting with knocking, this process is easy to tune. The craftsmen know from experience where and in what angle to hit on the objects, for exemple castings. The grinding that must be made afterwards is however much more difficult to fine tune since the stubs to grind after cutting may vary a lot in shapes and heights and therefore it is a desire to automate the fine tuning and reduce the program editing work.
Figure 1 shows an example of an apparatus for automatically fine tuning a robot program for carrying out a material removal process on an object 1 . In this example the object 1 is a casting having a stub 2, which has to be removed by a grinding process. The apparatus has a measuring system, including a sensor 3, for measuring the geometry of the casting. In this example the sensor is a 3D scanner. However, the sensor can be any type of sensor for measuring the geometry of an object, such as a 2D scanner or a 2D or 3D vision system. An industrial robot 4 moves the casting. The sensor 3 generates measurement signals and is connected to a data processing unit 5 configured to process the measurement signals from the sensor. The data processing unit includes at least one processor and memory storage. The computer unit 5 comprises software code portions for performing the steps of the method according to the invention. The processing unit is a computing device, for example, a computer, such as a PC or a hand-held computer. In this example, the data processing unit is a robot control unit for control- ling the movements of the robot.
Lead through is a method for programming a robot a desired path. During the programming, a lead-through handle is mounted to the robot or to a tool or an object carried by the robot, and the programmer guides the robot along the desired path. A force sensor is configured to detect force and torque changes of the handle during the programming. Such a lead though programming method is disclosed in US6385508.
Instead of using an optical scanner, which could have problems in the grinding environment, a simple mechanical scanning can be used. This scanning is programmed by lead through and the final approved profile is registred and used for comparison when the number and types of grinding strokes are determined during production. Figure 2 exemplifies mechanical scanning of a stub 14 on a casting 1 1 . At programming the casting is programmed, for example by lead through, to pass a mechanical scanning device 15a or 15b both before the grinding and after the grinding. There are of course many ways to implement a mechanical scanning device. In the figure a piston configuration 15a and an arm configuration 15b are outlined. The translation in 15a can be measured with an LVDT and the rotation in 15b with a resolver. By analyzing the force and torque sensor signals from the grinding machine, information about the shape of the stub can also be obtained. For example, a low force grinding movement under admittance control can be made starting outside the stub and then moving against and over the stub. Because of the admittance control the casting will, beside making its lead through programmed movement to let the grinding disc scan the stub, also make the movements needed for the grinding disc to follow the shape of the casting. In figure 3 this is illustrated with the casting 1 1 , the stub 14, the grinding disc 16, the grinding actuator 17 and the force/torque sensor 18.
The methods described in connection with figures 2 and 3 can of course be applied after all types of cutting. In the case of knocking the cut cannot be controlled but in the cases of oxy- fuel burning and mechanical cutting the cut motion can be controlled and to minimize the grinding time the cuts in these cases should be made as accurate as possible. However, there must always be a margin since if the cut is made into the casting the casting will not be useful or it will have to be repaired by for example welding and then grinding. Therefore it is important to fine tune the cutting programs with enough margins. Figure 4a-b shows a possibility to use a dummy beam emulating the oxy fuel beam used for burning. By lead through, a start and a stop position on each side of the stub 14 is programmed. Then the controller is asked to make a scanning between these two positions. This scanning is made with admittance control and the controller superimposes a motion pattern 22 to get the dummy jump up and down in relation to the casting. Of course, if the robot holds the casting and the tool is fixed, it is the casting that makes the movements and the admittance control will directly change the direction of the motion at a hit between the casting surface and the dummy beam. The up and down motions should be made using just a wobbling speed reference and there is also a possibility to add a tilting motion to detect the orientation of the stub in relation to the orientation of the surrounding surface 1 1 .
In order to avoid that the casting crashes into the dummy tool and distroys it, it is mounted with a kinematics coupling comprising one part 23a with spheres and a second part 23b with groves. A magnet 24 is used to keep the parts together.
The dummy beam can be mounted beside the real burner during production to make it possible to use it for measurements of cut quality. In the case of metal cutting a dummy tool can also be used, see figure 5. The cutting disc 25 is here mounted on the shaft via a 6 DOF Force/Torque sensor 26. By using a weaving motion pattern between the casting and the dummy cutting disc also here the stub can be measured for program compensation. Of course earlier described optical and mechanical scanning methods can also be used.
The concepts described for fettling above can also be used for material removal in other materials as for example wood (saw- ing, milling, drilling etc). In the case of milling sometimes complicated patterns and geometries must be made and then often CAD models are available. How the programming can be made then is illustrated in figure 6. Here 30 denotes a CAD model or a processed reference object, on which robot trajectories have been programmed to obtain a geometrical pattern 31 . With for example lead through programming the robot is programmed to pick the piece of wood 32 on which the pattern will be processed. The wood piece 32 is moved into position for scanning of edges by moving around the wood piece in front of the scanner 33. Then the robot controller makes a best fit of the wood piece with the CAD model of the wood piece or the measurements of the reference object 30, and the CAD robot program is loaded to the robot. Next the wood piece is moved to the tool 34 and by lead through three corners (or other specific details defined as calibration points on the CAD model or the reference object) will be moved to touch the tool to define the tool position relative the wood piece. Then the process is started and a real pattern 35 is obtained by running the program adapted to the CAD-model or the measurements of the reference object. The real pattern 35 is then measured by a scanner 36, which could be the same as the scanner 33, and the measured pattern profiles are compared with the CAD model or the processed reference object and the errors are then used to compensate the robot program itera- tively. After that the production can start.
This method of feedback adjustment of a robot program generated from CAD or reference objects can of course also be used for programming of many other applications. One example is pre machining of complicated structures as engine blocks and gearbox housings. Then the surfaces may be very reflective and touch probes can instead be used for the measurements to adjust the process iteratively.
An embodiment of the invention relates to a method for fine tuning a robot program for carrying out a material removal process on an object by means of a robot, wherein the robot program controls the robot to follow a robot path defined in relation to a mathematical geometrical model of the object, for example a CAD model. Such a method comprises:
1 ) picking a reference object processed with a desired process result, 2) measuring the geometry of the processed parts of the reference object and storing the measurement results,
3) adapting by best fit the measurement results to the mathematical geometrical model of the object,
4) determining differences in the geometry of the reference object between the measurement results and the mathematical geometrical model of the object,
5) adjusting the programmed robot path based on the determined geometrical differences,
6) picking a not processed work object of the same type as the reference object,
7) performing the material removal process on the work object in accordance with the adjusted programmed robot path,
8) measuring the geometry of the work object after the re- moval process and storing the measurement results,
9) calculating deviations between the geometry of the processed work object and the processed reference object,
10) determining whether the calculated deviations are acceptable, and 1 1 ) if the deviations are acceptable store the adjusted robot path, and
12) if the deviations are not acceptable adjust the robot path based on the geometrical deviations determined in step 8, and repeating the steps 6-12 for a new object.
Figure 7 is a flow chart illustration of the method for adaption of a robot program generated in a CAD system to a desired process result for a work objects according to an embodiment of the present invention. It will be understood that blocks 52 - 86 of the flow chart can be implemented by computer program instructions. The movements of the objects are implemented by a robot program including instructions for picking an object, processing an object, measuring an object, and placing an object
The process involves some type of material removal as for ex- ample milling, grinding, deburring, deflashing or polishing. The desired result of the processing is obtained by manual processing of a first object that will be named the reference object, block 52. After the manual processing has given the desired result, the reference object is place at a loading site for the robot and the robot grips the object, block 53. After gripping of the object, it may be necessary to measure errors of the gripping in order to have a well-defined position and orientation of the reference object. Then the robot moves the reference object to a measurement station, block 54, which measures the geometry of at least the parts of the object that have been processed, block 56. For example, in the case of deburring, the deburred edges are measured. This can be made by a 3D-scanner or by contour following with robot force control, using a suitable position sensor or any of the methods according to Figures 2 - 5.. The ob- tained measurement results are then stored in a 3D format, for example represented by spline functions generated from the measurement points defined in the coordinate system of the measurement system, block 58.
The stored measurement results are adjusted to a mathematical description of the object, such as a CAD model, by best fit, block 60. For example, a least mean square method or an optimization method is used. Along the programmed paths on the geometry of the CAD model, the programmed points of the CAD- based program are then adjusted to compensate for the difference between the geometry of the CAD model and the measurement results from the processed reference object, block 62. The adjusted CAD-based program is then stored. To start the program tuning, he robot grips a raw work object, block 66. If necessary, the same grip compensation as for the reference object is made. The adjusted robot program is run and the work object is processed in accordance with the adjusted robot path, block 68. After the processing, the robot moves the processed object to the measurement station, block 70, and the same measurements as for the reference object are made, block 72. In the same way as for the reference object, the measurement results are stored in a suitable form, block 74. The deviations between the measured geometry of the processed work object and the geometry of the manually processed reference object are calculated along the programmed paths of the adjusted pro- gram, block 76. The deviations can be calculated in two ways: based on the stored measurement results from the work object in relation to the stored measurement results from the reference object, block 58, or based on the stored measurement results from the work object in relation to the best fit CAD model with respect to the reference measurements, block 60.
Thereafter it is determined whether the calculated deviations are acceptable or not, block 78, and if the deviations are acceptable the adjusted robot path is stored, block 84, and if the deviations are not acceptable the robot path is adjusted, block 80, based on the geometrical deviations determined in block 76, and the steps described in blocks 66-78 are repeated for a new object, block 82. Thus, if the deviations (max, average, standard deviation etc.) are larger than a predefined value a new adjustment of the CAD-based program is made. This adjustment is a function of the deviations calculated in block 76.
The easiest way to adjust the program is just to move the programmed points the same distances as the deviations but in the opposite direction. One reason for the deviations are differences between the gripping of the reference object and the gripping of the raw work object, block 53 and 66. However, the main reason for thepath errors is the compliance of the robot. The compliance errors depend on the force on the tool and the stiffness of the robot. Using a force sensor and knowing the stiffness matrix of the robot it will be possible to calculate the adjustments needed of the robot program to obtain a path close to the wanted path and fewer iterations will be needed than in the case when just a compensation corresponding to the deviation is made. The reason for this is that the stiffness matrix of a robot is not diagonal and it is not enough to make a compensation in the direction of the tool force. Models of the robot stiffness can be included in filters used for Iterative Learning Control to optimize the convergence speed.
During production the procedure 66 - 78 can be performed at suitable intervals to be sure to keep the quality and if deviations are found new adjustments of the program can be made. Since the same robot used for the program adjustments can also be used in the production, no extra arrangements are needed in or- der to make such quality tests.
In the case that no CAD models exist, the robot program used the first time in block 68 can be obtained by lead through programming on the processed reference object. This means that instead of the activities in blocks 60 and 62 the operator moves the tool relative the reference object to simulate the processing and doing so, the path for the program to be used in block 68 is stored. Lead through programming can also be made as a second step in block 68. Then the robot is at first making the proc- essing using the program generated by means of the reference object. In a second step lead through programming is made to obtain an additional program. Then the program made by lead through is run to perform additional processing. Thus, two robot programs will in this case be run in block 68.
Often the adjustments needed depend on the geometry of the parts of the object that will be removed. For example, adjustments of a deflashing program in the case of a hard metal depends on how much excess material that must be removed. In such a case several adjustment programs can be saved for the same object. How this can be made is shown in figure 8. As a reference, a manually processed reference object is used just as in figure 7. Thus the steps 92 - 104 are the same as described with reference to the blocks 50 - 62 in figure 7. The difference from figure 7 is that now the gripped raw object, block 108, is at first moved to the measuring station, block 1 10, the geometry of the object is measured, block 1 12, and the measurements are stored, block 1 14, before the processing of the object with the adjusted CAD program or the program obtained by lead through on the processed reference object, block 1 16. The measurement results are stored in a Data Base 136 for future use. As in the method illustrated in figure 7, the processed raw object is measured, block 1 18 and 120, and the measurement results are stored, block 122.
The latest stored measurement results from the object are compared with stored measurements results from the reference object, or with the best fit CAD model of the reference object, block 124. If the deviation is too large, block 126, the CAD program is adjusted, block 128, as described in figure 7, and a new raw object, block 130, is gripped, block 108, and the steps 1 10 - 126 are repeated. As soon as the deviation is small enough, block 126, the program is stored, block 132, in the Data Base 136 together with the measurement results from the raw object, which were stored in block 1 14. In order to get statistics on the relationship between successful programs and corresponding raw objects excess material geometries, the measurement data for several successful raw object programs need to be saved. Therefore it is checked if more than M programs have been stored, block 134. If this is not the case, the steps 130, 108 - 126 are repeated for new raw objects.
When a necessary number of programs with corresponding raw object measurements have been stored in the Data Base 136, the production, block 138, can start and for each object 140 that is gripped, block 142, measurements on the parts to be processed are made, block 144 - 148 and the stored measurement results are then used to find the Data Base measurement result that is closest to the measurement results of the just measured object. The robot program stored together with the closest measurement results in the Data Base is then used for the proc- essing of the object.
As in Figure 7 the block 1 16 can also contain a second step with lead through programming and processing using the lead through program. In this way fewer raw work objects are needed in order to get the statistics needed in the data base.
Figure 9a-c illustrates with a simple 2D example how the measured geometry 162 of a robot processed object is adjusted to the measured geometry 160 of a reference object, block 80 in figure 7 and block 128 in Figure 8. Figure 9b shows how the deviations d, calculated in block 76 in figure 7 and block 124 in figure 8, are defined. Here the static deviations that may originate from gripping errors are first removed by best fit and the position and orientation 162 of the measured geometry is obtained. Figure 9c then shows how the adjusted measured geometry 162 is adjusted to compensate for the processing errors, resulting in a new programmed path 166. From the beginning the program is adapted to follow the geometry of the reference object geometry 164 and after the adjustment the program is in this case made to follow the geometry 166.
The loop in Figure 8 may need many objects before the deviation between reference object geometry and robot processed object geometry is small enough, block 126. To reduce this problem the deviation from the manually processed reference object performed in block 124 of figure 8 can be calculated for different segments of the geometry to be processed and as soon as at least one segment fulfils the requirements in block 126, the program, block 132, and the corresponding measurement results, block 1 14, are stored and if the condition that more than M programs have been stored, block 134, is not fulfilled a new raw object is processed to obtain enough statistics. The value of M now depends on how many segments that fulfil the accuracy requirements and basic criteria must be that approved segments and corresponding adjusted programs must exist for the com- plete paths. During production, the measured geometry, blocks 146, 148, is then compared for each segment with stored measurement results in the Data Base 136 and for each similar segment the corresponding stored program is then used, meaning that several stored programs will be blended together to form a program giving acceptable quality for all the processing of the object.
Using lead through programming it is possible to perform a combination of lead through programming and CAD-based pro- gramming in block 68 in figure 7 and block 1 16 in figure 8. This can be made in such a way that at first a conservative CAD- program is run guaranteeing that not too much material is removed, and then the operator removes the rest of the material by lead through. The CAD program can also be parameterized with respect to the thickness of the excess material to be removed. In that case the measurements made in blocks 1 12, 1 14 can be used to obtain the thickness of the excess material and using this result the CAD program can be tuned before the processing starts. This will give less residual material for the lead through programmed material removal, which then will be possible to perform faster. The resulting program is made by connecting in series the CAD-based program and the lead through program. In this case the deviation from the reference object should almost always be small enough for all the processed geometries and the check in block 126 will almost always give an OK and the number M will mainly determine the number of object needed for the statistical content of the Data Base.
If the operator is able to perform the lead through programming with high precision for every object the measurements after the processing, block 1 18 - 122, will not be needed and it is possi- ble to jump directly from block 1 16 to block 132 in the flow diagram of figure 8. With very large differences in the excess material to be removed, the CAD program in block 1 16 will have a minor role and only lead through programming can be adopted. Then, the steps 92 - 104 as well as the steps in blocks 1 18 - 126 + 128 can be omitted. However, then there will not be any tests if the lead through programming is good enough and much more lead through programming may be needed since there will not be any help from the CAD program. Moreover, it is more dif- ficult to make a precise processing using lead through programming than to make a complete manual processing, and therefore it is important always to have a manually processed reference object to compare with.
The present invention is not limited to the embodiments disclosed but may be varied and modified within the scope of the following claims. For example, the calculations of the deviations and the adjustment of the robot program is made by a certain program adapted for handling geometry data, which is run on an external computer, and the movements of the robot during the fine-tuning procedure is controlled by a robot control program, which is run on the robot controller.

Claims

1 . A method for fine tuning a robot program for carrying out a material removal process on an object (1 ) by means of a robot
(4), the robot program controlling the robot to follow a robot path defined in relation to the object, wherein the method comprises: a) picking a reference object processed with a desired process result, b) measuring the geometry of the processed parts of the reference object and storing the measurement results, c) picking a not processed work object of the same type as the reference object, d) performing the material removal process on the work ob- ject in accordance with the programmed robot path, e) measuring the geometry of the work object after the removal process and storing the measurement results, f) calculating deviations between the geometry of the processed work object and the processed reference object, g) determining whether the calculated deviations are acceptable, and h) if the deviations are acceptable store the programmed robot path, and i) if the deviations are not acceptable adjust the robot path based on the geometrical deviations determined in step f, and repeating the steps c-i for a new object.
2. The method according to claim 1 wherein said robot program is programmed by lead through on processed parts of the refer- ence object.
3. The method according to claim 1 wherein the robot path is defined in relation to a mathematical geometrical model of the object, and the method comprises: adapting by best fit the measurements of the geometry of the reference object to the mathematical geometrical model of the object, determining dif- ferences in the geometry of the reference object between the measurement of the reference object and the mathematical geometrical model of the object, and adjusting the programmed robot path based on the determined geometrical differences.
4. The method according to any of the previous claims, wherein step c further comprises measuring the geometry of the parts to be processed of said work object and storing the measurement results, and step h further comprises if the deviations are ac- ceptable storing the adjusted robot path together with the measurement results of the geometry of the work object, and the method further comprises performing the steps c-j until a plurality of adjusted robot paths have been stored together with measurement results of the geometry of a corresponding num- ber of work objects, and performing during production/manufacturing for work objects of the same type as the reference object:
- picking the work object,
- measuring the geometry of the parts of the work object to be processed and storing the measurement results,
- comparing the measurement results from the present work object with said stored measurement results of the geometry of previous work objects, and
- selecting the adjusted robot path stored together with the work object having the geometry closest to the present work object.
5. The method according to claim 4, wherein it further comprises adjusting the selected robot path using one or more of the stored robot paths associated with measurement results close to the geometry of the object.
6. The method according to any of the previous claims, wherein step h further comprises if the deviations are acceptable along a part of the path storing the adjusted robot path together with the measurement results of the geometry of the work object.
7. The method according to any of the previous claims, wherein said deviations between the geometry of the processed work object and the processed reference object are calculated based on the stored measurements of the work object and the stored measurements of the reference object.
8. The method according to any of the previous claims, wherein said deviations between the geometry of the processed work ob- ject and the processed reference object are calculated based on stored measurements of the work object and the stored robot path.
9. The method according to any of the previous claims, wherein the material removal process on the work object in step d is performed in accordance with the stored robot program and at least one further robot path programmed by lead through.
10. An apparatus for automatically fine tuning a robot program for carrying out a material removal process on an object (1 ) by means of a robot (4), the robot program controlling the robot to follow a robot path defined in relation to the object, the apparatus comprising a measuring system (3; 15a-b) configured to measure the geometry of the object, and at least one computing device (5) configured to receive measurements from the measuring system and to control the movements of the robot, wherein the computing device have program code therein, said program code comprising code configured to:
A) control the robot to pick a reference object processed with a desired process result, and move the reference object into the measuring range of the measuring system,
B) receive measurements of the geometry of processed parts of the reference object and store the measurement results,
C) control the robot to pick a not processed work object of the same type as the reference object, D) control the robot to perform the material removal process on the work object in accordance with the programmed robot path,
E) control the robot to move the work object into the measur- ing range of the measuring system,
F) receive measurements of the geometry of the work object after the removal process and store the measurement results,
G) calculate deviations between the geometry of the proc- essed work object and the processed reference object,
H) determine whether the calculated deviations are acceptable, and l)if the deviations are acceptable store the adjusted robot path, and J) if the deviations are not acceptable adjust the robot path based on the geometrical deviations determined in step G, and repeat the steps C-J for a new object.
1 1 . The apparatus according to claim 10, wherein the robot path is programmed by lead through on processed parts of the reference object.
12. The apparatus according to claim 10, wherein the programmed robot path is defined in relation to a mathematical geometrical model of the object, and the computing unit is configured to adapt by best fit the measurements of the geometry of the reference object to the mathematical geometrical model of the object, to determine differences in the geometry of the reference object between the measurement of the reference object and the mathematical geometrical model of the object, and to adjust the programmed robot path based on the determined geometrical differences.
13. The apparatus according to any of the claims 10-12, wherein the computing unit is configured to control the robot to move the work object into the measuring range of the measuring system, and receive measurements of the geometry of the parts to be processed of said work object, and to store the measurement results, and step j further comprises if the deviations are acceptable store the adjusted robot path together with the meas- urement results of the geometry of the work object, and said code further is configured to perform the steps C-J until a plurality of adjusted robot paths have been stored together with measurement results of the geometry of a corresponding number of work objects, and during production/manufacturing for work ob- jects of the same type as the reference object:
- control the robot to pick the work object and move the work object into the measuring range of the measuring system,
- receive measurements of the geometry of the parts of the work object to be processed and store the measurement results,
- compare the measurement results from the present work object with said stored measurement results of the geometry of previous work objects, and
- select the adjusted robot path stored together with the work object having the geometry closest to the present work object.
14. The apparatus according to claim 13, wherein said computing unit is configured to adjust the selected robot path using one or more of the stored robot paths associated with measurement results close to the geometry of the object.
15. Use of the method according to any of the claims 1 -9 and the apparatus according to any of the claims 10-14 for pro- gramming a material removal process carried out on castings.
PCT/EP2008/053241 2007-03-21 2008-03-18 A method and an apparatus for programming a material removal process carried out on an object by means of a robot Ceased WO2008113807A2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US90711407P 2007-03-21 2007-03-21
US60/907,114 2007-03-21

Publications (2)

Publication Number Publication Date
WO2008113807A2 true WO2008113807A2 (en) 2008-09-25
WO2008113807A3 WO2008113807A3 (en) 2008-11-06

Family

ID=39711860

Family Applications (2)

Application Number Title Priority Date Filing Date
PCT/EP2008/053162 Ceased WO2008113783A2 (en) 2007-03-21 2008-03-17 A method and an apparatus for compensating for geometrical errors between work objects and a holding device
PCT/EP2008/053241 Ceased WO2008113807A2 (en) 2007-03-21 2008-03-18 A method and an apparatus for programming a material removal process carried out on an object by means of a robot

Family Applications Before (1)

Application Number Title Priority Date Filing Date
PCT/EP2008/053162 Ceased WO2008113783A2 (en) 2007-03-21 2008-03-17 A method and an apparatus for compensating for geometrical errors between work objects and a holding device

Country Status (4)

Country Link
EP (1) EP2122422B1 (en)
AT (1) ATE483185T1 (en)
DE (1) DE602008002823D1 (en)
WO (2) WO2008113783A2 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102009034938A1 (en) * 2009-07-28 2011-02-17 Sensodrive Gmbh Movement system e.g. measuring robot, commanding method, involves providing threshold value for force and torque, and commanding movement system such that threshold value for force and torque acts at tool fastening point of movement system
CN109693278A (en) * 2017-10-20 2019-04-30 豪迈股份公司 For running the method and processing facility of at least one process equipment
US11656597B2 (en) 2020-12-07 2023-05-23 Industrial Technology Research Institute Method and system for recognizing deburring trajectory
US20230415341A1 (en) * 2020-11-13 2023-12-28 Fanuc Corporation Numerical control device and numerical control system

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7908757B2 (en) 2008-10-16 2011-03-22 Hexagon Metrology, Inc. Articulating measuring arm with laser scanner
US9008841B2 (en) * 2009-08-27 2015-04-14 Abb Research Ltd. Robotic picking of parts from a parts holding bin
GB201009219D0 (en) 2010-06-02 2010-07-21 Airbus Operations Ltd Aircraft component manufacturing method and apparatus
EP2631668B1 (en) * 2012-02-24 2016-05-25 Sick AG Optical system and test procedure for testing the functionality of an optical system
US11226390B2 (en) * 2017-08-28 2022-01-18 Teradyne, Inc. Calibration process for an automated test system
WO2019094901A1 (en) 2017-11-13 2019-05-16 Hexagon Metrology, Inc. Thermal management of an optical scanning device
CN109591019B (en) * 2018-12-19 2021-07-27 南京航空航天大学 An accurate spatial positioning method for objects without deterministic positioning features
JP6709316B1 (en) * 2019-07-16 2020-06-10 Dmg森精機株式会社 measuring device
CN112558547B (en) * 2021-02-19 2021-06-08 成都飞机工业(集团)有限责任公司 Quick optimization method for geometric error compensation data of translational shaft of five-axis numerical control machine tool
CN119489444B (en) * 2024-11-26 2025-12-05 易思维(杭州)科技股份有限公司 A Guided Part-Grabbing Method Based on a Fixed Point Cloud Sensor

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5374830A (en) * 1984-10-12 1994-12-20 Sensor Adaptive Machines, Inc. Target based determination of robot and sensor alignment
DE3620422C1 (en) * 1986-06-18 1988-01-14 Gildemeister Ag Method for correcting the processing programme of a tool of a numerically controlled machine tool
US5297238A (en) * 1991-08-30 1994-03-22 Cimetrix Incorporated Robot end-effector terminal control frame (TCF) calibration method and device
JP2000317775A (en) * 1999-04-28 2000-11-21 Mitsutoyo Corp Machining system
JP3694808B2 (en) * 2001-04-13 2005-09-14 株式会社安川電機 Wafer transfer robot teaching method and teaching plate
DE10241742B4 (en) * 2002-09-10 2008-06-26 Alstom Technology Ltd. Production plant for the production of products
SE524818C2 (en) * 2003-02-13 2004-10-05 Abb Ab A method and system for programming an industrial robot to move relatively defined positions on an object
JP2004299013A (en) * 2003-03-31 2004-10-28 Fanuc Ltd Robot off-line programming device having error correction feed-back function
JP4191080B2 (en) * 2004-04-07 2008-12-03 ファナック株式会社 Measuring device
US20080252248A1 (en) * 2005-01-26 2008-10-16 Abb Ab Device and Method for Calibrating the Center Point of a Tool Mounted on a Robot by Means of a Camera
US7366583B2 (en) * 2005-09-01 2008-04-29 General Electric Company Methods and systems for fabricating components
DE102005050205A1 (en) * 2005-10-20 2007-04-26 Mtu Aero Engines Gmbh Method and device for compensating position and shape deviations

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102009034938A1 (en) * 2009-07-28 2011-02-17 Sensodrive Gmbh Movement system e.g. measuring robot, commanding method, involves providing threshold value for force and torque, and commanding movement system such that threshold value for force and torque acts at tool fastening point of movement system
DE102009034938B4 (en) * 2009-07-28 2015-10-15 Sensodrive Gmbh Method for commanding a movement system with a measuring device
CN109693278A (en) * 2017-10-20 2019-04-30 豪迈股份公司 For running the method and processing facility of at least one process equipment
EP3473377A3 (en) * 2017-10-20 2019-06-12 HOMAG GmbH Method for operating at least one processing device as well as processing assembly
US11181889B2 (en) 2017-10-20 2021-11-23 Homag Gmbh Method for operating at least one machining apparatus and machining system
CN109693278B (en) * 2017-10-20 2022-07-05 豪迈股份公司 Method for operating at least one processing plant and processing plant
US20230415341A1 (en) * 2020-11-13 2023-12-28 Fanuc Corporation Numerical control device and numerical control system
US11656597B2 (en) 2020-12-07 2023-05-23 Industrial Technology Research Institute Method and system for recognizing deburring trajectory

Also Published As

Publication number Publication date
WO2008113783A2 (en) 2008-09-25
WO2008113807A3 (en) 2008-11-06
WO2008113783A3 (en) 2008-11-13
EP2122422A2 (en) 2009-11-25
EP2122422B1 (en) 2010-09-29
ATE483185T1 (en) 2010-10-15
DE602008002823D1 (en) 2010-11-11

Similar Documents

Publication Publication Date Title
WO2008113807A2 (en) A method and an apparatus for programming a material removal process carried out on an object by means of a robot
US8868236B2 (en) Method and apparatus for calibration of a robot positioned on a movable platform
US6836702B1 (en) Method for fine tuning of a robot program
CN107052950B (en) A kind of complex-curved sanding and polishing system and method
EP2613912B1 (en) System and method for tool testing and alignment
CN100357071C (en) A method and a system for programming an industrial robot to move relative to defined positions on an object, including generation of a surface scanning program
EP2998080B1 (en) Head and automated mechanized method with vision
TWI451217B (en) Method for calculating probe mounting position of on-board measuring device
CN112676925B (en) Method, device and equipment for grinding and polishing blade of aero-engine and storage medium
US10732604B2 (en) System and method for virtually calibrating a computer numeric controlled machine to compensate for surface distortions
CN114274047B (en) Efficient precise polishing track optimization method based on force sensing measurement
CN111152216B (en) Method for automatically correcting tool center point of industrial robot
JP7307263B2 (en) Deburring device and control system
CN111940843A (en) Intelligent cutting system and method for large structural part based on non-contact measurement
CN119328768A (en) A high-precision hand-eye calibration method for robotic systems
Brøtan A new method for determining and improving the accuracy of a powder bed additive manufacturing machine
EP1886771B1 (en) Rotation center point calculating method, rotation axis calculating method, program creating method, operation method, and robot apparatus
CN109605140B (en) Cutter edging method based on machine vision and six-axis mechanical arm with force control function
Wen et al. Robotic surface finishing of curved surfaces: Real-Time identification of surface profile and control
Bone et al. Sensing and control for automated robotic edge deburring
WO2024013955A1 (en) Numerical control device, numerical control machine tool, machining program generation device, and machining program generation method
CN117011384A (en) A visual positioning method and system to improve the assembly accuracy of body-in-white roof assembly
CN120620312B (en) A smart robot progressive forming device and its processing method
US20260102856A1 (en) Laser machining method for machining a texture or a cavity on a workpiece
WO2020008891A1 (en) Numerical control device

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 08717973

Country of ref document: EP

Kind code of ref document: A2

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 08717973

Country of ref document: EP

Kind code of ref document: A2