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

US20040251866A1 - Method for calibrating and programming of a robot application - Google Patents

Method for calibrating and programming of a robot application Download PDF

Info

Publication number
US20040251866A1
US20040251866A1 US10/458,810 US45881003A US2004251866A1 US 20040251866 A1 US20040251866 A1 US 20040251866A1 US 45881003 A US45881003 A US 45881003A US 2004251866 A1 US2004251866 A1 US 2004251866A1
Authority
US
United States
Prior art keywords
coordinate system
robot
tool
reference structure
relation
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
US10/458,810
Other versions
US6822412B1 (en
Inventor
Zhongxue Gan
Gregory Rossano
Xiongzi Li
Yunquan Sun
Quing Tang
Torgny Brogardh
Hakan Brantmark
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.)
Individual
Original Assignee
Individual
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 Individual filed Critical Individual
Priority to US10/458,810 priority Critical patent/US6822412B1/en
Priority to PCT/SE2004/000846 priority patent/WO2004108364A1/en
Priority to CNB2004800161120A priority patent/CN100384597C/en
Priority to EP04735698A priority patent/EP1631422A1/en
Application granted granted Critical
Publication of US6822412B1 publication Critical patent/US6822412B1/en
Publication of US20040251866A1 publication Critical patent/US20040251866A1/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/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 programme 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 programme data in numerical form characterised by data handling or data format, e.g. reading, buffering or conversion of data
    • G05B19/4083Adapting programme, configuration
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1679Programme controls characterised by the tasks executed
    • B25J9/1692Calibration of manipulator
    • GPHYSICS
    • 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/36504Adapt program to real coordinates, shape, dimension of tool, offset path
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/39Robotics, robotics to robotics hand
    • G05B2219/39021With probe, touch reference positions
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/39Robotics, robotics to robotics hand
    • G05B2219/39022Transform between measuring and manipulator coordinate system

Definitions

  • the present invention is directed to a method for programming of an industrial robot having a robot coordinate system and particularly to an application that is programmed by means of a position-measuring unit adapted for measuring positions relative a measuring coordinate system.
  • the invention is useful for applications comprising a tool having a tool coordinate system and a work object to be processed by the tool.
  • the invention is particularly useful in applications that demand high accuracy, such as different types of machining applications, for example fettling, debarring, milling, sawing, grinding and drilling.
  • the application is also useful in applications such as arc welding, water jet cutting, laser cutting, gluing and assembly.
  • a robot program comprises a number of program instructions controlling the movements of the robot.
  • Generation of a robot program comprises a first step wherein positions and orientations of a path, to be followed by the robot during execution of the program, are defined, and a next step wherein program instructions are generated based on the defined positions and orientations of the path.
  • the positions and orientations defined during the programming comprise the positions and orientations that a tool is expected to obtain in relation to a work object when running the robot program.
  • a robot application is an application in which an industrial robot is used for performing a work.
  • Robots are often used in applications involving processing of the surface of a work object.
  • Existing practice for programming a robot involves on-line teaching the robot a sequence of positions and orientations. The positions and orientations define a robot path, which the robot shall follow during processing of the object.
  • the robot is taught how to perform a task by being leading the tool through the various positions and orientations along the desired operating path during the programming.
  • the robot program is then generated, based on the specified positions.
  • programming a robot by teaching can be time-consuming, especially if the work object has a complex geometry.
  • the accuracy of an application is limited mainly by the repeatability of the robot mechanics and the accuracy with which it is possible to move and rotate the tool to the desired position and orientation.
  • the robot repeatability is good enough but it is very difficult for a human eye to find the correct position and orientation of the tool.
  • a robot programmer with long programming experience manages to obtain the accuracy needed, it will take a lot of time.
  • the problem of long programming time makes it also very expensive to duplicate programs to other robots and to reprogram a robot cell after geometrical changes in the cell or after an exchange of the robot.
  • the accuracy of a general-purpose robot is between 5 and 15 mm, which can be improved to between 0.5 and 1 mm by the identification of the kinematic errors of the robot and compensation of these errors by software in the robot controller.
  • this robot calibration technique is expensive and very difficult to support in a robot cell, and still the work object and tool coordinate systems must be calibrated.
  • this kinematic error compensation method will not be good enough for high accuracy applications.
  • the object of the present invention is to provide a method for fast and easy robot programming providing a high accuracy in a robot application.
  • This object is achieved by a method comprising: selecting an object reference structure on or in a fixed relation to the work object, the object reference structure having at least one surface, defining a mathematical model for the object reference structure, defining an object coordinate system in a fixed relation to the object reference structure, providing measurements on said at least one surface of the object reference structure, the measurements being performed by the position-measuring unit and are provided relative to the measuring coordinate system, determining the object coordinate system in relation to the measuring coordinate system, by means of best fit between said measurements performed by the position-measuring unit and said mathematical model of the object reference structure, measuring a plurality of positions on a desired robot path on the object by means of the position-measuring unit, determining the positions of the robot path in the object coordinate system, based on said measured positions of the robot path and said determined object coordinate system, determining the relation between the object coordinate system and the robot coordinate system, determining the relation between the tool coordinate system and the robot coordinate system, and programming the robot path based on said positions of the robot path in the
  • Programming the robot path means generating program instructions for moving the robot so that the tool obtains the positions and orientations in relation to the work object when running the robot program.
  • the robot coordinate system could be any coordinate system defined in relation to the robot. Normally, a robot coordinate system attached to the base of the robot is used as a reference coordinate system for the robot. Thus, said base coordinate system is preferably used as the robot coordinate system.
  • the method according to the invention is a method for off-line programming of a robot by means of a position-measuring unit, for example a digitizer.
  • the digitizer is used to specify the positions and orientations of the robot path on the work object in relation to an object coordinate system.
  • Off-line programming of a robot is both faster and easier than on-line programming.
  • a problem with off-line programming by a digitizer is that there may be deviations between the tool positions and orientations taught with the digitizer and run with the robot.
  • the programming method according to the invention comprises a calibration step utilizing the position-measuring unit for performing measurements on an object reference structure having an object coordinate system defined in a fixed relation to it. If the work object contains well defined surfaces, the reference structure could be selected on the work object, otherwise a reference structure having well defined surfaces is mounted on the work object.
  • the method according to the invention combines the advantages of off-line programming with the accuracy of lead through programming. Moreover it solves the problems with the limited human accuracy with respect to tool manipulation and makes the programming totally safe since the robot does not need to work during programming and calibration. To make this possible, the position-measuring unit is used both for programming and calibration in such a way that the robot accuracy will not depend on the total kinematic and geometrical errors of the cell, but on just the differential kinematic and geometrical errors. In principle, position differences are used instead of absolute positions for the calibration and programming.
  • said object reference structure is three-dimensional and has at least three non-parallel surfaces, and measurements are provided on said at least three surfaces of the object reference structure.
  • said object reference structure is any of a plate, a cube, a cone or a cylinder. Such structures are easy to manufacture and to measure on.
  • said selected object reference structure is positioned in the vicinity of said robot path.
  • the relation between the object coordinate system and the robot coordinate system comprises performing measurements on at least one surface of the object reference structure, or of a reference structure on or in a fixed relation to the object, wherein the measurements are performed by means of an elongated probe and the inclination of the probe relative to the surface during the measurements is essentially the same as the inclination of the tool in relation to the object in the robot path. If a programmed pose has another tool orientation, than was used during the calibration of the coordinate system, then errors in the robot kinematics may give both position and orientation errors. By having an inclination of the probe during the calibration, which is about the same as the inclination of the tool during the processing of the object, the accuracy of the calibration is improved and thus a higher accuracy of the programming is achieved.
  • the determining of the relation between the object coordinate system and the robot coordinate system comprises: performing measurements on said surface of the object reference structure, the measurements being performed by the robot and are provided relative to the robot coordinate system, and determining the object coordinate system in relation to the robot coordinate system, by means of best fit between said measurements performed by the robot and said mathematical model of the object reference structure.
  • the relation between the object coordinate system and the robot coordinate system is determined by performing measurements with the robot on the same object reference structure, as the measurements with the position-measuring unit.
  • a robot program for performing said measurements on the object reference structure by the robot, is automatically generated based on said measurements on the object reference structure performed by the position-measuring unit.
  • the calibration can be made easy and quickly.
  • the direction of the normal of said surface of the object reference structure is calculated, based on said measurements on the object reference structure performed by the position-measuring unit, and the robot is moved from said calculated direction towards the surface when performing said measurements.
  • the robot will know the correct direction to move towards the surface of the object.
  • the determining of the relation between the object coordinate system and the robot coordinate system comprises: selecting a robot reference structure on or in a fixed relation to the robot, the robot reference structure having at least one surface, defining a mathematical model for the robot reference structure, defining a second robot coordinate system in a fixed relation to the robot reference structure, performing measurements on said at least one surface of the robot reference structure, the measurements being made by the robot or the measuring unit, determining the object coordinate system in relation to said first mentioned robot coordinate system, by means of best fit between said measurements of the robot reference structure and said mathematical model of the robot reference structure.
  • said measurements performed on said at least one surface of the robot reference structure are being made by the robot or the positioning measuring unit.
  • a robot reference structure is defined in addition to the object reference structure.
  • said robot reference structure is selected on or in a close vicinity of the tool holder of the robot to make it easier to define a reference coordinate system in relation to a tool holder coordinate system.
  • Either the robot reference structure is measured by moving the robot reference structure in contact with a fixed positioned measuring probe, having a known position relative to the robot coordinate system, and reading the robot position at the contact, or by moving the position-measuring unit in contact with the robot reference structure.
  • An advantage with using the positioning-measuring unit is that the accuracy of the measurement will be higher than if the robot makes the measurements.
  • An advantage with using the robot is that the measuring can be automatically made.
  • the method comprises: providing a measuring probe in a fixed known position relative to the robot, performing measurements on the surface of the robot reference structure, the measurements being made by said measuring probe, performing measurements on the surface of the object reference structure, the measurements being made by said measuring probe, determining the relation between the object coordinate system and the second robot coordinate system, based on said measurements of the robot reference structure and said measurements of the object reference structure made by said measuring probe.
  • a fixed mounted probe is used for the measurements.
  • this method is preferably used when the work object is mounted on the robot and the tool is fixedly mounted in the workcell.
  • said measurements on said surface of the robot reference structure are made by the position-measuring unit and relative to the measuring coordinate system, and said relation between the object coordinate system and the robot coordinate system is determined, based on said object coordinate system relative to the measuring coordinate system.
  • this method is preferably used when the tool is mounted on the robot, and the work object is fixedly mounted in the workcell.
  • said robot reference structure is positioned on or in a close vicinity of the outer end of the tool to make the influence of the kinematic errors of the robot as small as possible.
  • the method further comprises: selecting a second object reference structure on or in a fixed relation to the object, the second object reference structure having at least one surface, defining a second object coordinate system on or in a fixed relation to the object reference structure, providing measurements on said at least one surface of the second object reference structure, the measurements being performed by the position-measuring unit and are provided relative to the measuring coordinate system, and determining the second object coordinate system in relation to the measuring coordinate system, by means of best fit between said measurements on the second object reference structure and said mathematical model of the object reference structure, determining the relation between the second object coordinate system and the robot coordinate system, the robot path poses are determined and programmed based on either the first or the second coordinate system according to a chosen condition.
  • more than one object coordinate system is defined to compensate for robot inaccuracy locally on the object. It is also possible to use different object coordinate systems for different tool orientations, to take care of the kinematic errors at different tool orientation.
  • the determining of the relation between the tool coordinate system and the robot coordinate system comprises: defining an reference coordinate system on or in a fixed relation to the tool base, the relation between reference tool coordinate system and the robot coordinate system being known, selecting a first tool reference structure on or in a fixed relation to the reference coordinate system, the first tool reference structure having at least one surface, defining a mathematical model for the first tool reference structure, selecting a second tool reference structure in a fixed relation to the tool coordinate system, and at a distance from the first tool reference structure, the second tool reference structure having at least one surface, defining a mathematical model for the second tool reference structure, providing measurements on said at least one surface of the first tool reference structure, providing measurements on said at least one surface of the second tool reference structure, determining the relation between the tool coordinate system and the reference coordinate system, by means of best fit between said measurements on the first and the second tool reference structures, and said mathematical models of the object reference structures.
  • the tool coordinate system is determined relative to the robot coordinate system by means of two tool reference structures located on or in a fixed relation to each other and at a distance from each other.
  • the reference structures are measured either with the position-measuring unit or the robot and a fixed positioned probe with a known position relative to the robot.
  • Another object of the invention is to provide a computer program product for fast and easy robot programming of an industrial robot, which provides high accuracy in the robot application. This object is achieved by a computer program product according to the corresponding appending claim, which when run on a computer execute the method according to the invention.
  • the computer program product can be provided via any computer readable medium or via a network, such as the Internet.
  • Another object of the invention is to provide a computer readable medium having a program recorded thereon for programming an industrial robot, where the program is to make a computer perform the steps of the aforementioned computer program product, when said program is run on the computer.
  • the computer program product may be run on a controller of the robot or on any other external computer comprising a processor and suitable memory.
  • FIG. 1 shows an industrial robot application and the coordinate systems defined in the application.
  • FIG. 2 shows robot tool poses in a milling operation.
  • FIG. 3 shows a position-measuring unit and its coordinate system in relation to its tool coordinate system and the work object coordinate systems.
  • FIG. 4 a shows determining an object coordinate system in relation to a digitizer base coordinate system, according to an embodiment of the invention.
  • FIG. 4 b shows determining the relation between the object coordinate system and the robot base coordinate system, according to an embodiment of the invention.
  • FIG. 5 shows examples of reference structures.
  • FIGS. 6 a - b show determining the relation between the tool coordinate system and the robot base coordinate system, according to a first embodiment of the invention.
  • FIGS. 7 a - b show determining the relation between the tool coordinate system and the robot base coordinate system, according to a second embodiment of the invention.
  • FIGS. 8 a - f show several tools used in one application.
  • FIG. 9 shows the defining of local object coordinate systems by means of a reference structure hold by the robot.
  • FIGS. 10 a - b shows work object calibration by means of a fixed positioned measuring probe, when the work object is mounted on the robot and the tool is at a fixed position.
  • FIG. 11 shows work object calibration by means of a digitizer, when the work object is mounted on the robot and the tool is at a fixed position.
  • the robot application selected to describe the method according to the invention is machining, but the method can as well be used for any type of application, where high accuracy is needed.
  • FIG. 1 shows a robot application comprising an industrial robot 1 , a tool 2 mounted on the robot, and a work object 3 to be processed by the tool.
  • the work object 3 is attached to a fixture 4 .
  • the robot 1 comprises a base 6 , which is firmly mounted on a foundation.
  • the robot further comprises a support 7 , which is rotateable relative to the base 6 around a first vertical axis.
  • a first robot arm 8 is rotatably mounted around a second horizontal axis.
  • a second arm 9 is rotatably mounted relative to the first arm around a third axis.
  • the second robot arm 9 is rotatably mounted relative to an inner part of the arm around a fourth axis, coinciding with the length axis of the second arm 9 .
  • the second arm 9 supports in its outer end a so-called robot hand 10 , which is rotateable around a fifth axis, which is perpendicular to the length axis of the second arm 9 .
  • the robot also comprises a tool holder 11 , also denoted the tool mechanical interface. The outer part of the robot hand and thus the tool holder 11 is rotateable relative to the inner part of the robot hand around a sixth axis.
  • the robot further comprises a controller 12 for controlling the movements of the robot.
  • the controller comprises at least one processor for executing the robot program instructions and memory for storing the robot program.
  • the placement of the robot itself is usually described by a robot base coordinate system with origin Orb, and axes Xrb, Yrb, and Zrb.
  • the robot base coordinate system is located in the base 6 of the robot.
  • a robot tool holder coordinate system is defined, Orth, Xrth, Yrth, Zrth.
  • the robot tool holder coordinate system is also denoted the tool mechanical interface coordinate system.
  • the robot tool holder coordinate system is calculated in relation to the robot base coordinate system by means of a robot kinematic model.
  • a robot tool coordinate system Ort, Xrt, Zrt, Yrt is defined in the tool center point (TCP) of the tool 2 .
  • the robot tool coordinate system is then defined in the robot tool holder coordinate system. Any position in the robot tool coordinate system can thus be expressed also in the robot tool holder coordinate system and in the robot base coordinate system. For this well-known coordinate system transformations are used.
  • An object coordinate system with origin Oo and axes Xo, Yo, Zo is defined on the object.
  • a path coordinate system with origin Op and axes Xp, Yp, Zp, is defined in relation to the object coordinate system.
  • the path coordinate system defines the program pose, i.e. position and orientation that the tool coordinate system must obtain during program execution.
  • the path coordinate system is defined in relation to the object coordinate system with one transformation and to the robot base coordinate system with another transformation.
  • FIG. 2 shows a typical program for a milling operation, exemplified by eight program poses, poses 1 - 8 , defining a path that the robot tool must follow during the milling operation.
  • the aim of the method according to the invention is to make it possible to program such a path in a short time without any safety problems and with accuracy limited only by the repeatability of the robot.
  • the method according to the invention is based on the use of a position-measuring device for programming the path.
  • the measuring device should make measurements with 3-6 degrees of freedom, preferably 6 degrees of freedom, since it will then be possible to measure the orientation of a programmed pose with only one measurement.
  • a so-called digitizer exemplifies the position-measuring device.
  • the digitizer can be mechanical or optical and if lower accuracy can be accepted also 3D measurement systems based on ultrasonics, magnetic fields and microwaves (GPS) can be used.
  • FIG. 3 shows a mechanical digitizer arm system 15 comprising a base 16 and couple of arms 17 , 18 , and a tool holder 19 .
  • the digitizer holds a probe 20 , and the tip of the probe 20 is a measurement sphere 22 that will measure only position.
  • the digitizer could hold the real tool during the programming and calibration. If a tool or a probe with a flat surface, for example a plane, is used also the orientation can be measured simultaneously with the position.
  • the coordinate systems defined for the digitizer is: a digitizer base coordinate system, with origin Odb and axes Xdb, Ydb, Zdb, a digitizer tool holder coordinate system, with origin Odth and axes Xdth, Ydth, Zdth, and a digitizer tool coordinate system with origin Odt and axes Xdt, Ydt, Zdt.
  • FIGS. 4 a and 4 b shows how the programming and the associated work object calibration can be made according to an embodiment of the method according to the invention.
  • a probe 20 with a known geometry is mounted on the digitizer 15 .
  • a tool, with known or calibrated geometry for the programming and calibration.
  • the coordinate system of the tool is then positioned and orientated relative to the poses programmed by the digitizer. It is advantageous if the digitizer is provided with the same probe or tool during the calibration and the programming.
  • one or more geometrically known reference structures are selected on or in a fixed relation to the work object.
  • the reference structure is positioned as close as possible to the path to be programmed.
  • the work object itself has defined geometries, one or more of these geometries can be used to define one or more object coordinate systems.
  • a first object reference structure 24 is selected on the work object 3 and a first object coordinate system Oo 1 , Xo 1 , Yo 1 , Zo 1 is defined in fixed relation to the first reference structure 24 .
  • two different paths are to be programmed.
  • FIGS. 4 a and 4 b two poses p 1 , p 2 on the different paths are shown.
  • Each pose on the paths could be described a path coordinate system as Op 1 , Xp 1 , Yp 1 , Zp 1 and Op 2 , Xp 2 , Yp 2 , Zp 2 .
  • the objective with a path coordinate system is to define the position and orientation of the tool coordinate system when the robot program is executed. Since the first object reference structure is close to p 1 , this reference structure is suitable for calibration of the first path p 1 .
  • a geometrically known second object reference structure 25 is mounted on the work object, preferably as close as possible to the path p 2 .
  • the absolute pose of the reference structure in relation to the object does not need to be known; the only requirement is that its pose must be kept the same until both the digitizer and the robot have made its measurements on the reference structure.
  • a second object coordinate system, with origin Oo 2 and axes Xo 2 , Yo 2 , Zo 2 is defined in a fixed relation to the second object reference structure 25 .
  • the second object coordinate system could simply be defined by three edges of the cube.
  • Mathematical models of the object reference structures are defined.
  • the mathematical model could be given by a CAD model of the object, either in an analytic form or in an approximate form by, for example, polygon or spline functions.
  • the mathematical model is the equations of the planes of the cube.
  • FIG. 4 a shows determining the first and second object coordinate systems o 1 , o 2 in relation to the digitizer base coordinate system db.
  • the digitizer is used to measure points 26 directly on the work object and best fit is then made between the measurement points and the geometrical model of the first reference structure.
  • the first object coordinate system ol is determined in relation to the digitizer base coordinate system db.
  • FIG. 4 a it is shown how the digitizer 15 measures a number of points 28 on surfaces of the cube 25 .
  • the measurements of the position of the probe tip are made when the probe hits different surfaces on the reference structure. At least in total six measurement points on at least three non-parallel surfaces are preferably measured. On the first surface at least three measurements are made, on the second surface at least two measurements are made and on the third surface at least one measurement is made.
  • the position of the points 28 are measured relative to the base coordinate system of the digitizer db.
  • the second object coordinate system o 2 is calculated relative to the digitizer base coordinate system db, by doing a best fit between the measured points 28 and the mathematical model of the cube.
  • the best fit between the measurement points and the geometrical model of the reference structure is, for example, made by minimizing the distance between the measurement points and a surface of the model by means of a least mean square method, through translation and rotation of the geometric model.
  • other optimization algorithms for example, Gauss Newton, could replace the least mean square method.
  • the digitizer 15 is also used to define the program poses, simply by holding the tip 22 of the probe 20 on the path positions on the work object 3 .
  • the digitizer probe 20 is targeting the pose p 2 of the second path. Since the digitizer now has measured the path poses p 2 relative to the digitizer base coordinate system db, and the object coordinate system o 2 is known in the digitizer base coordinate system db, it is possible to calculate the path poses p 2 in the object coordinate system.
  • the paths are measured with high accuracy in relation to their closest object coordinate system.
  • close coordinate system is meant that the axes of the robot only need small changes in their angles to go from the measurement positions on the reference structure to the path positions. This means that too big changes both in position and orientation of the probe or tool should be avoided.
  • the robot will lose accuracy when the torque in an axis changes sign. Therefore, one should also try to select the reference structure pose in such a way that the torque directions on the axis of the robot, and then especially the main axes, are the same when the robot reaches the positions on the close reference structure and the poses on the path.
  • a pose is defined by its position and orientation, for example as (x,y,z, ⁇ , ⁇ , ⁇ ) where x,y,z are Cartesian coordinates and ⁇ , ⁇ , ⁇ are the Euler angles.
  • the work object contains well-defined surfaces on structures as planes, cylinders, or spheres, it is possible to select a structure on the work object as the object reference structure. If the work object does not contain any suitable surfaces, a reference structure is mounted on the work object. The reference structure should contain the planes needed for the calibration. If, for example, only a plane will be cut or milled, then it is enough with a plate mounted on the work object to be cut or milled. In some applications the shape of the reference structure selected should depend on the shape of the object to be processed or the shape of the tool used. For example, if a cylindrical hole is to be machined, a cylindrical reference structure is preferably used. If the tool is rotational symmetric it is advantageous to select a reference structure which is also rotational symmetric, such as a cone, a solid or a hollow cylinder.
  • FIG. 5 shows a number of possible reference structures.
  • the reference structure is, for example, a plane defining two degrees of freedom, a sphere defining three degrees of freedom, a plane comprising one or more grooves, a hollow cylinder defining four degrees of freedom, a cone, a solid cylinder, two perpendicular planes defining five degrees of freedom, a truncated cone, an L-shaped structure, a pyramid, or a cube defining six degrees of freedom.
  • FIG. 4 b shows how the relation between the object coordinate systems o 1 , o 2 and the robot base coordinate system rb, is determined by means of the robot itself. Since the digitizer has already defined the probe poses in relation to the object coordinate system, a robot program can automatically be generated to make the robot move to the positions on the reference structure defined during the off-line programming shown in FIG. 4 a . This program relies on the absolute accuracy of the robot kinematics and a common rough work object calibration may be needed at first, for example, by teaching the robot to at least four points on three edges of the reference structure 25 .
  • a probe or a calibration tool with known geometry is mounted on the robot.
  • the same probe or tool could be used as was used during the calibration and off-line programming with the digitizer.
  • the object coordinate system o 1 , o 2 can be expressed in the robot base coordinate system rb.
  • the path poses are known with high accuracy in the object coordinate system from the digitizer measurements, and thus the robot just needs to be accurate in the kinematic calculations of the path poses in relation to the closest object coordinate system.
  • the path poses p 1 , p 2 determined in relation to the object coordinate systems o 1 , o 2 are used for moving the robot to the path poses p 1 , p 2 during processing of the object.
  • a probe with a moveable measurement tip could be used combined with built-in sensors, for example for 3D measurements.
  • the robot could use a rigid probe, but run search motions with soft servo, force control, or impedance control.
  • the probe on the digitizer should, of course, be rigid, since it is manually operated.
  • the robot will not use a probe as a tool. If the tool geometry and the probe geometries are known in advance, for example, from CMM measurements, then the robot tool coordinate system rt is known in relation to the tool holder coordinate system rth both for the probe and for the tools that will be used. However, if the tool geometry is not known with the accuracy needed for the application, the tool must be calibrated and for this, methods relying only on the differential kinematics of the robot must be used. If the tool to be used is not too big, the robot itself can be used for the tool calibration as described in FIGS. 6 a , 6 b , 7 a , and 7 b.
  • FIGS. 6 a and 6 b show how the relation between the robot tool coordinate system rt 2 and the robot base coordinate system rb is determined by means of a fixed positioned measuring probe 30 .
  • the measuring probe 30 is fixedly mounted in relation to the robot 1 and has a tip 31 .
  • a probe base coordinate system Opb, Xpb, Zpb, Ypb is defined in a fixed relation to the probe 30 .
  • the measuring probe may be a contact sensor, such as a trigger probe, or any other type of position and/or orientation measurement sensor could be used.
  • the position of the probe tip 31 must be determined in relation to the robot base coordinate system.
  • the robot tool holder coordinate system rth is known in relation to the robot base coordinate system rb by means of the robot kinematics.
  • FIG. 6 a shows how the position of the probe tip 31 is determined in relation to the robot base coordinate system by means of a reference tool 32 with known geometry.
  • the reference tool 32 comprises a tool reference structure 34 .
  • the reference tool 32 is mounted on the robot tool holder 11 .
  • a reference tool coordinate system Ort 1 , Xrt 1 , Yrt 1 , Zrt 1 is defined for the tool reference structure 34 .
  • the robot moves the reference structure 34 against the tip 31 of the probe 30 .
  • the positions and orientations of the reference tool coordinate system rt 1 is measured with the robot kinematics when the probe tip is at different positions on different surfaces of the tool reference structure 34 .
  • the position of the probe tip is then determined in the robot base coordinate system by best fit to a geometric model of the reference structure 34 .
  • the tool coordinate system rt 2 can be calibrated in relation to the tool holder coordinate system, as shown in FIG. 6 b .
  • the reference tool 32 which has a known geometry, is replaced with the real tool, which has an unknown geometry.
  • a second tool reference structure 36 is mounted on the tool, or on the tool holder 11 .
  • a second reference tool coordinate system Ort 2 , Xrt 2 , Yrt 2 , Zrt 2 is defined in fixed relation to the reference structure 36 .
  • the robot is once more used to measure the positions and orientations of the tool coordinate system, rt 2 , when the probe tip 31 hits the surfaces of the reference structure 36 at different positions. If the reference structure 36 has about the same position and orientation in relation to the tool holder coordinate system rth, as the reference structure 34 , only small differential kinematic errors will be present in the robot tool coordinate system calculations.
  • the second reference tool coordinate system rt 2 is then determined in relation to the robot base system by best fit between the measurements and a mathematical model of the reference structure 36 .
  • the operator moves the probe 20 , by means of the digitizer, to measure the surfaces of the first tool reference structure 34 and then the operator moves the probe 20 to measure the surfaces of the second tool reference structure 36 on the real tool 2 .
  • the position of the digitizer is not allowed to be changed between the measurements.
  • the reference tool coordinate system rt 1 is determined relative to the digitizer base coordinate system db by best fit between the measurements on the reference structure 34 , and a mathematical model of the reference structure 34 .
  • the robot tool coordinate system rt 2 is determined relative to the digitizer base coordinate system db by best fit between the measurements on the reference structure 36 and a mathematical model of the reference structure 36 . Now, the relation between the reference tool coordinate system rtl and the robot tool coordinate system rt 2 is calculated.
  • the reference tool coordinate system rt 1 is known relative to the robot tool holder coordinate system rth, which is known relative to the robot base coordinate system rb.
  • the reference tool since the digitizer is usually more accurate than the robot, the reference tool must not be designed to hold the reference structure 34 close to the position of the reference structure 36 on the real tool. This means, that it is sometimes also possible to have the reference structure 34 mounted on the robot simultaneously with the real tool 2 , which then does not need to be dismounted for the calibration.
  • the first tool reference structure 34 could either be mounted on the reference tool or on the robot, preferably on the tool holder of the robot.
  • the tool coordinate system can be calibrated only with a plane as a reference structure, preferable in parallel with the processing plane.
  • a plane can be the surface of a sawblade or the surface of a sheet of metal mounted on a milling head.
  • FIGS. 8 a - 8 e usually, several tools are used in an application, and then it is possible to calibrate each tool by using reference structures in the tool geometry or by attaching reference structures on the tools, and adopting either of the methods described in FIGS. 6 a , 6 b , and 7 a , 7 b .
  • FIG 8 f shows a tool exchanger 46 provided between a reference tool 47 and a spindle actuator 48 .
  • a coordinate system, Ot, Xt, Yt, Zt is defined for the reference tool 47 and coordinate system, Otc, Xtc, Ytc, Ztc is defined for the tool exchanger 46 .
  • the relation between the reference tool coordinate system t and the tool exchanger coordinate system tc is known.
  • the reference tool 47 is a dummy tool that is used only for calibration purposes.
  • the reference tool 47 comprises a tool reference structure 50 .
  • the geometry of the reference tool 46 is known. It is then possible to calculate the coordinate system of the tool exchanger tc.
  • the tool coordinate system ta, tb, tc, td for the tools can be calculated in the tool holder coordinate system tc.
  • the tool reference structure 50 on the reference tool 47 can also be used to define local object coordinate systems.
  • the reference structure 50 could be positioned on a real tool.
  • the reference tool 47 is mounted on the robot. The position and orientation of the reference structure 50 is known, or calibrated, relative to the tool holder coordinate system and by means of the robot kinematics to the robot base coordinate system rb.
  • the digitizer 15 is used to define a fixed object coordinate system o 2 on the work object, by means of the object reference structure 25 attached to the work object 3 . Then, the robot 1 moves the tool reference structure 50 as close as possible to the path programmed by the digitizer. The orientation of the reference tool 47 should preferably be as close as possible to the desired tool orientation for the path. Finally the digitizer measures points on the surfaces of the tool reference structure 50 , to define a local object coordinate system, which in the figure is the same as the tool coordinate system, Ot, Xt, Yt, Zt. The digitizer can now refer the local object coordinate system t to the fixed object coordinate system o 2 , attached to the work object.
  • the digitizer Since the digitizer calculates the path positions p 1 , p 2 in the fixed object coordinate system o 2 , it can now calculate the path positions also in the local object coordinate system t, defined by the reference structure 50 on the robot tool. Since the robot from the tool calibration already knows the tool coordinate systems of the tool, the path positions expressed in the local object coordinate system on the tool can be directly used for programming the robot.
  • the local object coordinate system t is determined relative to the digitizer base coordinate db system by best fit between the measurements and a mathematical model of the tool reference structure 50 . From earlier measurements, the path position p 2 is known relative to the object coordinate system o 2 and relative to the digitizer coordinate system db. Thereby, it is possible to calculate the relation between the fixed object coordinate system o 2 and the local object coordinate system t. Thereafter the pose p 2 is calculated relative to the local coordinate system t.
  • FIG. 10 a shows the calibration of the object coordinate system o 2 relative to the robot base coordinate system rb, when a measuring-probe 30 fixed to the robot cell is used.
  • the coordinate system rt 1 or position of the fixed probe 30 is calculated in relation to the robot base coordinate system rb, in the same way as was earlier shown in FIG. 6 a .
  • a reference tool 32 having a reference structure 34 is attached to the robot tool holder, as shown in FIG. 6 a .
  • the relation between the coordinate system rt 1 of the reference structure 34 and the robot tool holder coordinate system rth is known. Therefore, the probe coordinate system rt 1 can be calculated in relation to the robot base coordinate system rb.
  • the work object 3 with its object reference structure 25 is mounted on the robot tool holder coordinate system rth.
  • the robot is moved towards the probe 30 , so that different surfaces of the reference structure 25 hit the tip 31 of the probe.
  • the object coordinate system o 2 is determined relative to robot base coordinate system rb by best fit between the measurements and the model of the reference structure 25 .
  • the tool 47 is fixed positioned relative to the robot cell.
  • the tool coordinate system t must be calibrated.
  • the calibration of the fixed mounted tool 47 can be compared with the object coordinate system calibrations when the robot carries the tool as shown in FIG. 4 b.
  • FIG. 10 b shows the calibration of the tool coordinate system having a fixed tool 47 .
  • a probe 20 with known geometry, is mounted on the robot and a reference structure 34 , with known geometry, is mounted on or in fixed relation to the tool 47 .
  • the position of the coordinate system rt 2 of the reference structure 34 is known in relation to the robot tool coordinate system t.
  • the probe 20 is used for measurements on the surfaces of the tool reference structure 34 .
  • the robot knows the tool coordinate system t in relation to the object coordinate system o 2 , and if the digitizer is used to program the path positions in relations to the object coordinate system, the robot can run a program with these relative positions from the digitizer.
  • the digitizer 15 can be used to calibrate the object coordinate system o 2 when the work object 3 is mounted on the robot as shown in FIG. 11. Because of the easy access with the probe 20 on the digitizer, it is possible to measure both a reference structure 60 on the robot 1 and a reference structure 47 on the work object 3 in the same stage, without dismounting the work object. Moreover, the digitizer can also be used to measure the tool coordinate system, giving the robot controller a fixed tool coordinate system in relation to the tool holder coordinate system. It should be mentioned that the digitizer can be mounted on the work object or the gripper or the tool holder to decrease the requirements on the work space of the digitizer.
  • the robot reference structure 60 is mounted on the robot in a known relation to the robot tool holder coordinate system rth, which is known I relation to the robot base coordinate system rb because of the robot kinematics.
  • the coordinate system rt 1 of the reference tool 60 is known in relation to robot base coordinate system rb.
  • the digitizer measures positions on the surface of the robot reference structure 60 .
  • the relation between the reference tool coordinate system rt 1 and the digitizer coordinate system db is determined by best fit between the measurements and a model of the reference structure 60 .
  • the object coordinate system o 2 is determined in relation to the digitizer base coordinate system db, by best fit between the measurements and a model of the object reference structure 25 .
  • the path is then programmed by means of the digitizer 15 and thus the path positions p 2 are obtained in relation to object coordinate system o 2 .
  • the tool coordinate system t is determined in relation to the digitizer base coordinate system by best fit between measurements made by the digitizer on the surface of the tool reference structure 50 and a model of the reference structure 50 .
  • the tool coordinate system t is calculated relative to the reference tool coordinate system rt 1 , and since the reference tool coordinate system rt 1 is known relative to the tool holder coordinate system rth, it is possible to calculate the tool coordinate system t relative to the robot base coordinate system rb.
  • the relation between the object coordinate system o 2 and the reference tool coordinate system rt 1 is calculated, and since reference tool coordinate system rt 1 is known relative to the robot tool holder coordinate system rth it is possible to calculate the object coordinate system o 2 in the robot base coordinate system rb.
  • the path positions p 2 is measured relative to the object coordinate system o 2 and thereby the path positions can be calculated in the robot base coordinate system.
  • the path positions p 2 can be calculated in the tool coordinate system t.
  • the relation between the object coordinate system o 2 and the tool holder coordinate system rth will always be the same and independent of the configuration of the robot.
  • the robot configuration may differ a lot from that in a position in another path. Therefore, the tool coordinate system or the object coordinate system must sometimes be updated to form local coordinate systems that must be used in the robot program for parts of the paths in the same way as the object coordinate system must be updated in the case when the robot carried the tool.
  • the calibration of these local coordinate systems are made simply by moving the robot to get the fixed tool close to the path and make a recalibration of the object coordinate system, or the tool holder coordinate system, with the digitizer.
  • the local object coordinate systems are calibrated by use of local object reference structures, which are moved against the fixed probe by the robot.
  • the present invention is not limited to the embodiments disclosed but may be varied and modified within the scope of the following claims.
  • the measurements of the reference structure comprise measuring at least three positions on the surface of the reference structure.
  • the measurements may comprise measuring at least one position on the surface of the reference structure and measuring the normal direction to the surface.

Landscapes

  • Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Manufacturing & Machinery (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Manipulator (AREA)
  • Numerical Control (AREA)

Abstract

A method for programming of a robot application comprising an industrial robot having a robot coordinate system, a tool having a tool coordinate system and a work object (3) to be processed by the tool. The application is programmed by means of a position-measuring unit (15) adapted for measuring positions relative a measuring coordinate system (db). The programming method comprises: selecting an object reference structure (25) on the object, defining a mathematical model for the object reference structure, defining an object coordinate system (o2), providing measurements by the position-measuring unit on the surface of the object reference structure, determining the object coordinate system in relation to the measuring coordinate system (db) by best fit between said measurements and said mathematical model of the object reference structure.

Description

    FIELD OF THE INVENTION
  • The present invention is directed to a method for programming of an industrial robot having a robot coordinate system and particularly to an application that is programmed by means of a position-measuring unit adapted for measuring positions relative a measuring coordinate system. The invention is useful for applications comprising a tool having a tool coordinate system and a work object to be processed by the tool. The invention is particularly useful in applications that demand high accuracy, such as different types of machining applications, for example fettling, debarring, milling, sawing, grinding and drilling. The application is also useful in applications such as arc welding, water jet cutting, laser cutting, gluing and assembly. [0001]
  • PRIOR ART
  • A robot program comprises a number of program instructions controlling the movements of the robot. Generation of a robot program comprises a first step wherein positions and orientations of a path, to be followed by the robot during execution of the program, are defined, and a next step wherein program instructions are generated based on the defined positions and orientations of the path. The positions and orientations defined during the programming comprise the positions and orientations that a tool is expected to obtain in relation to a work object when running the robot program. [0002]
  • A robot application is an application in which an industrial robot is used for performing a work. Robots are often used in applications involving processing of the surface of a work object. Existing practice for programming a robot involves on-line teaching the robot a sequence of positions and orientations. The positions and orientations define a robot path, which the robot shall follow during processing of the object. The robot is taught how to perform a task by being leading the tool through the various positions and orientations along the desired operating path during the programming. The robot program is then generated, based on the specified positions. However programming a robot by teaching can be time-consuming, especially if the work object has a complex geometry. [0003]
  • The accuracy of an application is limited mainly by the repeatability of the robot mechanics and the accuracy with which it is possible to move and rotate the tool to the desired position and orientation. In many high accuracy applications like machining, laser cutting, laser welding etc. the robot repeatability is good enough but it is very difficult for a human eye to find the correct position and orientation of the tool. Moreover, even if a robot programmer with long programming experience manages to obtain the accuracy needed, it will take a lot of time. The problem of long programming time makes it also very expensive to duplicate programs to other robots and to reprogram a robot cell after geometrical changes in the cell or after an exchange of the robot. [0004]
  • The utilization of high-level computer programming language and CAD/CAM has made off-line robot programming more feasible for more complex applications. In order to make off-line programming feasible it is necessary to know the cell geometry and the robot exactly. The work object coordinate system and the tool coordinate system have to be known with high accuracy relative to the robot base coordinate system. Thus, cell, object, tool and robot calibration have been the key issues to use robot off-line programming. [0005]
  • The accuracy of a general-purpose robot is between 5 and 15 mm, which can be improved to between 0.5 and 1 mm by the identification of the kinematic errors of the robot and compensation of these errors by software in the robot controller. However, this robot calibration technique is expensive and very difficult to support in a robot cell, and still the work object and tool coordinate systems must be calibrated. Moreover, this kinematic error compensation method will not be good enough for high accuracy applications. [0006]
  • OBJECTS AND SUMMARY OF THE INVENTION
  • The object of the present invention is to provide a method for fast and easy robot programming providing a high accuracy in a robot application. [0007]
  • This object is achieved by a method comprising: selecting an object reference structure on or in a fixed relation to the work object, the object reference structure having at least one surface, defining a mathematical model for the object reference structure, defining an object coordinate system in a fixed relation to the object reference structure, providing measurements on said at least one surface of the object reference structure, the measurements being performed by the position-measuring unit and are provided relative to the measuring coordinate system, determining the object coordinate system in relation to the measuring coordinate system, by means of best fit between said measurements performed by the position-measuring unit and said mathematical model of the object reference structure, measuring a plurality of positions on a desired robot path on the object by means of the position-measuring unit, determining the positions of the robot path in the object coordinate system, based on said measured positions of the robot path and said determined object coordinate system, determining the relation between the object coordinate system and the robot coordinate system, determining the relation between the tool coordinate system and the robot coordinate system, and programming the robot path based on said positions of the robot path in the object coordinate system, said relation between the object coordinate system and the robot coordinate system, and said relation between the tool coordinate system and the robot coordinate system. Programming the robot path means generating program instructions for moving the robot so that the tool obtains the positions and orientations in relation to the work object when running the robot program. The robot coordinate system could be any coordinate system defined in relation to the robot. Normally, a robot coordinate system attached to the base of the robot is used as a reference coordinate system for the robot. Thus, said base coordinate system is preferably used as the robot coordinate system. [0008]
  • The method according to the invention is a method for off-line programming of a robot by means of a position-measuring unit, for example a digitizer. The digitizer is used to specify the positions and orientations of the robot path on the work object in relation to an object coordinate system. Off-line programming of a robot is both faster and easier than on-line programming. A problem with off-line programming by a digitizer is that there may be deviations between the tool positions and orientations taught with the digitizer and run with the robot. [0009]
  • To overcome this problem the programming method according to the invention comprises a calibration step utilizing the position-measuring unit for performing measurements on an object reference structure having an object coordinate system defined in a fixed relation to it. If the work object contains well defined surfaces, the reference structure could be selected on the work object, otherwise a reference structure having well defined surfaces is mounted on the work object. [0010]
  • The method according to the invention combines the advantages of off-line programming with the accuracy of lead through programming. Moreover it solves the problems with the limited human accuracy with respect to tool manipulation and makes the programming totally safe since the robot does not need to work during programming and calibration. To make this possible, the position-measuring unit is used both for programming and calibration in such a way that the robot accuracy will not depend on the total kinematic and geometrical errors of the cell, but on just the differential kinematic and geometrical errors. In principle, position differences are used instead of absolute positions for the calibration and programming. [0011]
  • According to an embodiment of the invention said object reference structure is three-dimensional and has at least three non-parallel surfaces, and measurements are provided on said at least three surfaces of the object reference structure. With a three-dimensional reference structure it is possible to calibrate the programmed path poses (positions and orientations that the tool is expected to obtain when running the robot program) to the object coordinate system using the digitizer and then use the programmed path poses expressed in the object coordinate system for programming the robot. [0012]
  • According to an embodiment of the invention said object reference structure is any of a plate, a cube, a cone or a cylinder. Such structures are easy to manufacture and to measure on. [0013]
  • According to an embodiment of the invention said selected object reference structure is positioned in the vicinity of said robot path. Thus, the calibration is improved and a higher accuracy of the programming is achieved. [0014]
  • According to an embodiment of the invention the relation between the object coordinate system and the robot coordinate system comprises performing measurements on at least one surface of the object reference structure, or of a reference structure on or in a fixed relation to the object, wherein the measurements are performed by means of an elongated probe and the inclination of the probe relative to the surface during the measurements is essentially the same as the inclination of the tool in relation to the object in the robot path. If a programmed pose has another tool orientation, than was used during the calibration of the coordinate system, then errors in the robot kinematics may give both position and orientation errors. By having an inclination of the probe during the calibration, which is about the same as the inclination of the tool during the processing of the object, the accuracy of the calibration is improved and thus a higher accuracy of the programming is achieved. [0015]
  • According to an embodiment of the invention the determining of the relation between the object coordinate system and the robot coordinate system comprises: performing measurements on said surface of the object reference structure, the measurements being performed by the robot and are provided relative to the robot coordinate system, and determining the object coordinate system in relation to the robot coordinate system, by means of best fit between said measurements performed by the robot and said mathematical model of the object reference structure. In this embodiment the relation between the object coordinate system and the robot coordinate system is determined by performing measurements with the robot on the same object reference structure, as the measurements with the position-measuring unit. Thus, the calibration can easily be automatically made. No other reference structures or probes, which have to be calibrated, are needed. [0016]
  • Preferably, a robot program, for performing said measurements on the object reference structure by the robot, is automatically generated based on said measurements on the object reference structure performed by the position-measuring unit. Thereby, the calibration can be made easy and quickly. [0017]
  • According to an embodiment of the invention the direction of the normal of said surface of the object reference structure is calculated, based on said measurements on the object reference structure performed by the position-measuring unit, and the robot is moved from said calculated direction towards the surface when performing said measurements. Thus, the robot will know the correct direction to move towards the surface of the object. [0018]
  • According to another embodiment of the invention the determining of the relation between the object coordinate system and the robot coordinate system comprises: selecting a robot reference structure on or in a fixed relation to the robot, the robot reference structure having at least one surface, defining a mathematical model for the robot reference structure, defining a second robot coordinate system in a fixed relation to the robot reference structure, performing measurements on said at least one surface of the robot reference structure, the measurements being made by the robot or the measuring unit, determining the object coordinate system in relation to said first mentioned robot coordinate system, by means of best fit between said measurements of the robot reference structure and said mathematical model of the robot reference structure. Preferably, said measurements performed on said at least one surface of the robot reference structure, are being made by the robot or the positioning measuring unit. [0019]
  • In this embodiment a robot reference structure is defined in addition to the object reference structure. Preferably said robot reference structure is selected on or in a close vicinity of the tool holder of the robot to make it easier to define a reference coordinate system in relation to a tool holder coordinate system. Either the robot reference structure is measured by moving the robot reference structure in contact with a fixed positioned measuring probe, having a known position relative to the robot coordinate system, and reading the robot position at the contact, or by moving the position-measuring unit in contact with the robot reference structure. An advantage with using the positioning-measuring unit is that the accuracy of the measurement will be higher than if the robot makes the measurements. An advantage with using the robot is that the measuring can be automatically made. [0020]
  • According to an embodiment of the invention the method comprises: providing a measuring probe in a fixed known position relative to the robot, performing measurements on the surface of the robot reference structure, the measurements being made by said measuring probe, performing measurements on the surface of the object reference structure, the measurements being made by said measuring probe, determining the relation between the object coordinate system and the second robot coordinate system, based on said measurements of the robot reference structure and said measurements of the object reference structure made by said measuring probe. When a heavy object is on the robot it is difficult to put the work object also on the digitizer. According to this embodiment a fixed mounted probe is used for the measurements. Thus, this method is preferably used when the work object is mounted on the robot and the tool is fixedly mounted in the workcell. [0021]
  • According to an embodiment of the invention said measurements on said surface of the robot reference structure are made by the position-measuring unit and relative to the measuring coordinate system, and said relation between the object coordinate system and the robot coordinate system is determined, based on said object coordinate system relative to the measuring coordinate system. Thus, this method is preferably used when the tool is mounted on the robot, and the work object is fixedly mounted in the workcell. Preferably said robot reference structure is positioned on or in a close vicinity of the outer end of the tool to make the influence of the kinematic errors of the robot as small as possible. [0022]
  • According to an embodiment of the invention the method further comprises: selecting a second object reference structure on or in a fixed relation to the object, the second object reference structure having at least one surface, defining a second object coordinate system on or in a fixed relation to the object reference structure, providing measurements on said at least one surface of the second object reference structure, the measurements being performed by the position-measuring unit and are provided relative to the measuring coordinate system, and determining the second object coordinate system in relation to the measuring coordinate system, by means of best fit between said measurements on the second object reference structure and said mathematical model of the object reference structure, determining the relation between the second object coordinate system and the robot coordinate system, the robot path poses are determined and programmed based on either the first or the second coordinate system according to a chosen condition. It sometimes happens that the robot accuracy is not good enough to catch the whole work object. According to this embodiment more than one object coordinate system is defined to compensate for robot inaccuracy locally on the object. It is also possible to use different object coordinate systems for different tool orientations, to take care of the kinematic errors at different tool orientation. [0023]
  • Which of the different object coordinate systems to be used, when a program defined by the position-measuring unit is run, could be chosen in dependence of which of the first or second coordinate system is closest to the robot path position, which of the first and second coordinate systems has the tool orientation during calibration closest to the tool orientation in the path poses, or which of the first and second coordinate systems has the same torque direction on the robot axes during the calibration as for the path poses. [0024]
  • According to an embodiment of the invention the determining of the relation between the tool coordinate system and the robot coordinate system comprises: defining an reference coordinate system on or in a fixed relation to the tool base, the relation between reference tool coordinate system and the robot coordinate system being known, selecting a first tool reference structure on or in a fixed relation to the reference coordinate system, the first tool reference structure having at least one surface, defining a mathematical model for the first tool reference structure, selecting a second tool reference structure in a fixed relation to the tool coordinate system, and at a distance from the first tool reference structure, the second tool reference structure having at least one surface, defining a mathematical model for the second tool reference structure, providing measurements on said at least one surface of the first tool reference structure, providing measurements on said at least one surface of the second tool reference structure, determining the relation between the tool coordinate system and the reference coordinate system, by means of best fit between said measurements on the first and the second tool reference structures, and said mathematical models of the object reference structures. The tool coordinate system is determined relative to the robot coordinate system by means of two tool reference structures located on or in a fixed relation to each other and at a distance from each other. The reference structures are measured either with the position-measuring unit or the robot and a fixed positioned probe with a known position relative to the robot. [0025]
  • Another object of the invention is to provide a computer program product for fast and easy robot programming of an industrial robot, which provides high accuracy in the robot application. This object is achieved by a computer program product according to the corresponding appending claim, which when run on a computer execute the method according to the invention. The computer program product can be provided via any computer readable medium or via a network, such as the Internet. [0026]
  • It is easy to realize that the method according to the invention, as defined in the appending set of method claims, is suitable for being executed by a computer program having instructions corresponding to the steps in the inventive method when run on a processor unit. Even though not explicitly expressed in the claims, the invention covers a computer program product in combination with the method according to the appended method claims. [0027]
  • Another object of the invention is to provide a computer readable medium having a program recorded thereon for programming an industrial robot, where the program is to make a computer perform the steps of the aforementioned computer program product, when said program is run on the computer. [0028]
  • The computer program product may be run on a controller of the robot or on any other external computer comprising a processor and suitable memory.[0029]
  • 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. [0030]
  • FIG. 1 shows an industrial robot application and the coordinate systems defined in the application. [0031]
  • FIG. 2 shows robot tool poses in a milling operation. [0032]
  • FIG. 3 shows a position-measuring unit and its coordinate system in relation to its tool coordinate system and the work object coordinate systems. [0033]
  • FIG. 4[0034] a shows determining an object coordinate system in relation to a digitizer base coordinate system, according to an embodiment of the invention.
  • FIG. 4[0035] b shows determining the relation between the object coordinate system and the robot base coordinate system, according to an embodiment of the invention.
  • FIG. 5 shows examples of reference structures. [0036]
  • FIGS. 6[0037] a-b show determining the relation between the tool coordinate system and the robot base coordinate system, according to a first embodiment of the invention.
  • FIGS. 7[0038] a-b show determining the relation between the tool coordinate system and the robot base coordinate system, according to a second embodiment of the invention.
  • FIGS. 8[0039] a-f show several tools used in one application.
  • FIG. 9 shows the defining of local object coordinate systems by means of a reference structure hold by the robot. [0040]
  • FIGS. 10[0041] a-b shows work object calibration by means of a fixed positioned measuring probe, when the work object is mounted on the robot and the tool is at a fixed position.
  • FIG. 11 shows work object calibration by means of a digitizer, when the work object is mounted on the robot and the tool is at a fixed position. [0042]
  • DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS OF THE INVENTION
  • The robot application selected to describe the method according to the invention is machining, but the method can as well be used for any type of application, where high accuracy is needed. [0043]
  • FIG. 1 shows a robot application comprising an [0044] industrial robot 1, a tool 2 mounted on the robot, and a work object 3 to be processed by the tool. The work object 3 is attached to a fixture 4. The robot 1 comprises a base 6, which is firmly mounted on a foundation. The robot further comprises a support 7, which is rotateable relative to the base 6 around a first vertical axis. In the upper end of the support 7, a first robot arm 8 is rotatably mounted around a second horizontal axis. In the outer end of the first arm, a second arm 9 is rotatably mounted relative to the first arm around a third axis. The second robot arm 9 is rotatably mounted relative to an inner part of the arm around a fourth axis, coinciding with the length axis of the second arm 9. The second arm 9 supports in its outer end a so-called robot hand 10, which is rotateable around a fifth axis, which is perpendicular to the length axis of the second arm 9. The robot also comprises a tool holder 11, also denoted the tool mechanical interface. The outer part of the robot hand and thus the tool holder 11 is rotateable relative to the inner part of the robot hand around a sixth axis.
  • The robot further comprises a [0045] controller 12 for controlling the movements of the robot. The controller comprises at least one processor for executing the robot program instructions and memory for storing the robot program.
  • Of central importance for the method according to the invention are the different coordinate systems that are used in the calibration of the robot application. The placement of the robot itself is usually described by a robot base coordinate system with origin Orb, and axes Xrb, Yrb, and Zrb. The robot base coordinate system is located in the [0046] base 6 of the robot. Further, a robot tool holder coordinate system is defined, Orth, Xrth, Yrth, Zrth. The robot tool holder coordinate system is also denoted the tool mechanical interface coordinate system. The robot tool holder coordinate system is calculated in relation to the robot base coordinate system by means of a robot kinematic model. A robot tool coordinate system Ort, Xrt, Zrt, Yrt is defined in the tool center point (TCP) of the tool 2. The robot tool coordinate system is then defined in the robot tool holder coordinate system. Any position in the robot tool coordinate system can thus be expressed also in the robot tool holder coordinate system and in the robot base coordinate system. For this well-known coordinate system transformations are used.
  • An object coordinate system, with origin Oo and axes Xo, Yo, Zo is defined on the object. For each programmed point on the work object a path coordinate system, with origin Op and axes Xp, Yp, Zp, is defined in relation to the object coordinate system. The path coordinate system defines the program pose, i.e. position and orientation that the tool coordinate system must obtain during program execution. In the same way as described in the previous paragraph, the path coordinate system is defined in relation to the object coordinate system with one transformation and to the robot base coordinate system with another transformation. [0047]
  • FIG. 2 shows a typical program for a milling operation, exemplified by eight program poses, poses [0048] 1-8, defining a path that the robot tool must follow during the milling operation. The aim of the method according to the invention is to make it possible to program such a path in a short time without any safety problems and with accuracy limited only by the repeatability of the robot.
  • The method according to the invention is based on the use of a position-measuring device for programming the path. The measuring device should make measurements with 3-6 degrees of freedom, preferably 6 degrees of freedom, since it will then be possible to measure the orientation of a programmed pose with only one measurement. A so-called digitizer exemplifies the position-measuring device. The digitizer can be mechanical or optical and if lower accuracy can be accepted also 3D measurement systems based on ultrasonics, magnetic fields and microwaves (GPS) can be used. [0049]
  • FIG. 3 shows a mechanical [0050] digitizer arm system 15 comprising a base 16 and couple of arms 17, 18, and a tool holder 19. The digitizer holds a probe 20, and the tip of the probe 20 is a measurement sphere 22 that will measure only position. Alternatively, instead of holding the probe as shown in the figure, the digitizer could hold the real tool during the programming and calibration. If a tool or a probe with a flat surface, for example a plane, is used also the orientation can be measured simultaneously with the position. The coordinate systems defined for the digitizer is: a digitizer base coordinate system, with origin Odb and axes Xdb, Ydb, Zdb, a digitizer tool holder coordinate system, with origin Odth and axes Xdth, Ydth, Zdth, and a digitizer tool coordinate system with origin Odt and axes Xdt, Ydt, Zdt.
  • FIGS. 4[0051] a and 4 b shows how the programming and the associated work object calibration can be made according to an embodiment of the method according to the invention. During calibration and programming a probe 20 with a known geometry is mounted on the digitizer 15. Alternatively, it is possible to use a tool, with known or calibrated geometry, for the programming and calibration. The coordinate system of the tool is then positioned and orientated relative to the poses programmed by the digitizer. It is advantageous if the digitizer is provided with the same probe or tool during the calibration and the programming.
  • To make the differential kinematic programming possible, one or more geometrically known reference structures are selected on or in a fixed relation to the work object. Preferably the reference structure is positioned as close as possible to the path to be programmed. If the work object itself has defined geometries, one or more of these geometries can be used to define one or more object coordinate systems. In FIG. 4[0052] a, a first object reference structure 24 is selected on the work object 3 and a first object coordinate system Oo1, Xo1, Yo1, Zo1 is defined in fixed relation to the first reference structure 24. In this example two different paths are to be programmed. In FIGS. 4a and 4 b two poses p1, p2 on the different paths are shown. Each pose on the paths could be described a path coordinate system as Op1, Xp1, Yp1, Zp1 and Op2, Xp2, Yp2, Zp2. The objective with a path coordinate system is to define the position and orientation of the tool coordinate system when the robot program is executed. Since the first object reference structure is close to p1, this reference structure is suitable for calibration of the first path p1.
  • For calibration of the second path p[0053] 2, a geometrically known second object reference structure 25, in this embodiment a cube, is mounted on the work object, preferably as close as possible to the path p2. The absolute pose of the reference structure in relation to the object does not need to be known; the only requirement is that its pose must be kept the same until both the digitizer and the robot have made its measurements on the reference structure. A second object coordinate system, with origin Oo2 and axes Xo2, Yo2, Zo2 is defined in a fixed relation to the second object reference structure 25. The second object coordinate system could simply be defined by three edges of the cube. Mathematical models of the object reference structures are defined. The mathematical model could be given by a CAD model of the object, either in an analytic form or in an approximate form by, for example, polygon or spline functions. In the case of the cube, the mathematical model is the equations of the planes of the cube.
  • FIG. 4[0054] a shows determining the first and second object coordinate systems o1, o2 in relation to the digitizer base coordinate system db. To define the first object coordinate system o1, the digitizer is used to measure points 26 directly on the work object and best fit is then made between the measurement points and the geometrical model of the first reference structure. Thus, the first object coordinate system ol is determined in relation to the digitizer base coordinate system db.
  • Now calibration and programming of the second path p[0055] 2 will be described more closely. Since the second reference structure 25 is mounted close to the second path p2, the second reference structure 25 is selected for calibration of the second path p2. In FIG. 4a, it is shown how the digitizer 15 measures a number of points 28 on surfaces of the cube 25. The measurements of the position of the probe tip are made when the probe hits different surfaces on the reference structure. At least in total six measurement points on at least three non-parallel surfaces are preferably measured. On the first surface at least three measurements are made, on the second surface at least two measurements are made and on the third surface at least one measurement is made. The position of the points 28 are measured relative to the base coordinate system of the digitizer db.
  • The second object coordinate system o[0056] 2 is calculated relative to the digitizer base coordinate system db, by doing a best fit between the measured points 28 and the mathematical model of the cube. The best fit between the measurement points and the geometrical model of the reference structure is, for example, made by minimizing the distance between the measurement points and a surface of the model by means of a least mean square method, through translation and rotation of the geometric model. Alternatively, other optimization algorithms, for example, Gauss Newton, could replace the least mean square method.
  • The [0057] digitizer 15 is also used to define the program poses, simply by holding the tip 22 of the probe 20 on the path positions on the work object 3. The digitizer probe 20 is targeting the pose p2 of the second path. Since the digitizer now has measured the path poses p2 relative to the digitizer base coordinate system db, and the object coordinate system o2 is known in the digitizer base coordinate system db, it is possible to calculate the path poses p2 in the object coordinate system.
  • The paths are measured with high accuracy in relation to their closest object coordinate system. With close coordinate system is meant that the axes of the robot only need small changes in their angles to go from the measurement positions on the reference structure to the path positions. This means that too big changes both in position and orientation of the probe or tool should be avoided. Moreover, it is known that because of lost motion in gearboxes, the robot will lose accuracy when the torque in an axis changes sign. Therefore, one should also try to select the reference structure pose in such a way that the torque directions on the axis of the robot, and then especially the main axes, are the same when the robot reaches the positions on the close reference structure and the poses on the path. A pose is defined by its position and orientation, for example as (x,y,z,α,β,χ) where x,y,z are Cartesian coordinates and α,β,χ are the Euler angles. [0058]
  • If the work object contains well-defined surfaces on structures as planes, cylinders, or spheres, it is possible to select a structure on the work object as the object reference structure. If the work object does not contain any suitable surfaces, a reference structure is mounted on the work object. The reference structure should contain the planes needed for the calibration. If, for example, only a plane will be cut or milled, then it is enough with a plate mounted on the work object to be cut or milled. In some applications the shape of the reference structure selected should depend on the shape of the object to be processed or the shape of the tool used. For example, if a cylindrical hole is to be machined, a cylindrical reference structure is preferably used. If the tool is rotational symmetric it is advantageous to select a reference structure which is also rotational symmetric, such as a cone, a solid or a hollow cylinder. [0059]
  • FIG. 5 shows a number of possible reference structures. The reference structure is, for example, a plane defining two degrees of freedom, a sphere defining three degrees of freedom, a plane comprising one or more grooves, a hollow cylinder defining four degrees of freedom, a cone, a solid cylinder, two perpendicular planes defining five degrees of freedom, a truncated cone, an L-shaped structure, a pyramid, or a cube defining six degrees of freedom. [0060]
  • For programming, for example machining applications, it is advantageous to use a work object which has already been machined to the desired geometrical dimensions, for example by manually machining or by a machine tool. Otherwise, the surfaces could be to rough for the calibration and programming. It is also possible to use a model of the work object for calibration and programming purpose, for example in wood or plastics. [0061]
  • FIG. 4[0062] b shows how the relation between the object coordinate systems o1, o2 and the robot base coordinate system rb, is determined by means of the robot itself. Since the digitizer has already defined the probe poses in relation to the object coordinate system, a robot program can automatically be generated to make the robot move to the positions on the reference structure defined during the off-line programming shown in FIG. 4a. This program relies on the absolute accuracy of the robot kinematics and a common rough work object calibration may be needed at first, for example, by teaching the robot to at least four points on three edges of the reference structure 25.
  • A probe or a calibration tool with known geometry is mounted on the robot. The same probe or tool could be used as was used during the calibration and off-line programming with the digitizer. Now, using the robot kinematics for the measurements and best fit between the model of the reference structure and the measured positions on the reference structure surfaces, the object coordinate system o[0063] 1, o2 can be expressed in the robot base coordinate system rb. The path poses are known with high accuracy in the object coordinate system from the digitizer measurements, and thus the robot just needs to be accurate in the kinematic calculations of the path poses in relation to the closest object coordinate system. Thus, the path poses p1, p2 determined in relation to the object coordinate systems o1, o2 are used for moving the robot to the path poses p1, p2 during processing of the object.
  • When the positions of the surfaces of the object reference structure are generated to the robot program from the digitizer measurements, to avoid lead-through programming of the calibration positions on the reference structure, the robot absolute kinematic errors will give large errors in the robot positioning. Therefore, a probe with a moveable measurement tip could be used combined with built-in sensors, for example for 3D measurements. As an alternative, the robot could use a rigid probe, but run search motions with soft servo, force control, or impedance control. The probe on the digitizer should, of course, be rigid, since it is manually operated. [0064]
  • In production, the robot will not use a probe as a tool. If the tool geometry and the probe geometries are known in advance, for example, from CMM measurements, then the robot tool coordinate system rt is known in relation to the tool holder coordinate system rth both for the probe and for the tools that will be used. However, if the tool geometry is not known with the accuracy needed for the application, the tool must be calibrated and for this, methods relying only on the differential kinematics of the robot must be used. If the tool to be used is not too big, the robot itself can be used for the tool calibration as described in FIGS. 6[0065] a, 6 b, 7 a, and 7 b.
  • FIGS. 6[0066] a and 6 b show how the relation between the robot tool coordinate system rt2 and the robot base coordinate system rb is determined by means of a fixed positioned measuring probe 30. The measuring probe 30 is fixedly mounted in relation to the robot 1 and has a tip 31. A probe base coordinate system Opb, Xpb, Zpb, Ypb is defined in a fixed relation to the probe 30. The measuring probe may be a contact sensor, such as a trigger probe, or any other type of position and/or orientation measurement sensor could be used. Before the tool can be calibrated the position of the probe tip 31 must be determined in relation to the robot base coordinate system. The robot tool holder coordinate system rth is known in relation to the robot base coordinate system rb by means of the robot kinematics.
  • FIG. 6[0067] a shows how the position of the probe tip 31 is determined in relation to the robot base coordinate system by means of a reference tool 32 with known geometry. The reference tool 32 comprises a tool reference structure 34. The reference tool 32 is mounted on the robot tool holder 11. A reference tool coordinate system Ort1, Xrt1, Yrt1, Zrt1 is defined for the tool reference structure 34. The robot moves the reference structure 34 against the tip 31 of the probe 30. The positions and orientations of the reference tool coordinate system rt1 is measured with the robot kinematics when the probe tip is at different positions on different surfaces of the tool reference structure 34. The position of the probe tip is then determined in the robot base coordinate system by best fit to a geometric model of the reference structure 34.
  • Knowing the [0068] probe tip 31 position in the robot base coordinate system rb from the measurements shown in FIG. 6a, the tool coordinate system rt2 can be calibrated in relation to the tool holder coordinate system, as shown in FIG. 6b. Here, the reference tool 32, which has a known geometry, is replaced with the real tool, which has an unknown geometry. A second tool reference structure 36 is mounted on the tool, or on the tool holder 11. A second reference tool coordinate system Ort2, Xrt2, Yrt2, Zrt2 is defined in fixed relation to the reference structure 36. The robot is once more used to measure the positions and orientations of the tool coordinate system, rt2, when the probe tip 31 hits the surfaces of the reference structure 36 at different positions. If the reference structure 36 has about the same position and orientation in relation to the tool holder coordinate system rth, as the reference structure 34, only small differential kinematic errors will be present in the robot tool coordinate system calculations. The second reference tool coordinate system rt2 is then determined in relation to the robot base system by best fit between the measurements and a mathematical model of the reference structure 36.
  • One problem with the method for determining the relation between the tool coordinate system and the robot base coordinate system as shown in FIGS. 6[0069] a and 6 b, is that it is necessary to make a program for the robot to position the reference structures correct in relation to the fixed probe 30. This means some time-consuming programming, which can be avoided if the probe 30 instead is mounted on the digitizer 15, as shown in FIGS. 7a, 7 b. In this case, the robot does not need to be move at all, instead the operator moves the probe 30 with the digitizer 15 to hit the surfaces of the reference structures. In this embodiment, a first tool reference structure 34 is selected on or in a fixed relation to the tool holder coordinate system rth, and a second tool reference structure 36 is selected on or in a fixed relation to the robot tool coordinate system, rt2.
  • The operator moves the [0070] probe 20, by means of the digitizer, to measure the surfaces of the first tool reference structure 34 and then the operator moves the probe 20 to measure the surfaces of the second tool reference structure 36 on the real tool 2. The position of the digitizer is not allowed to be changed between the measurements. The reference tool coordinate system rt1 is determined relative to the digitizer base coordinate system db by best fit between the measurements on the reference structure 34, and a mathematical model of the reference structure 34. The robot tool coordinate system rt2 is determined relative to the digitizer base coordinate system db by best fit between the measurements on the reference structure 36 and a mathematical model of the reference structure 36. Now, the relation between the reference tool coordinate system rtl and the robot tool coordinate system rt2 is calculated. The reference tool coordinate system rt1 is known relative to the robot tool holder coordinate system rth, which is known relative to the robot base coordinate system rb. Thus, it is possible to calculate the robot tool coordinate system rt2 relative to the tool holder coordinate system rth and through the robot kinematics the robot base coordinate system rb.
  • Moreover, since the digitizer is usually more accurate than the robot, the reference tool must not be designed to hold the [0071] reference structure 34 close to the position of the reference structure 36 on the real tool. This means, that it is sometimes also possible to have the reference structure 34 mounted on the robot simultaneously with the real tool 2, which then does not need to be dismounted for the calibration. Thus, the first tool reference structure 34 could either be mounted on the reference tool or on the robot, preferably on the tool holder of the robot.
  • As for the object coordinate system calibration, different reference structures can be used and if the robot tool mounting flange has geometries that can be used for the measurements, a special reference structure is not needed. As in the same way, if the tool in itself has geometries that can be used, the reference structures in FIGS. 6[0072] b and 7 b are not needed.
  • In cases when the tool is used to saw, mill, or grind planes, it is enough to calibrate three degrees of freedom of the tool coordinate system, since the lateral position of the tool on the plane is not important for the processing result. The only requirements for high accuracy are the distance between the tool and the plane and the two tilt angles of tool relative the plane. Therefore, the tool coordinate system can be calibrated only with a plane as a reference structure, preferable in parallel with the processing plane. Such a plane can be the surface of a sawblade or the surface of a sheet of metal mounted on a milling head. [0073]
  • As shown in FIGS. 8[0074] a-8 e, usually, several tools are used in an application, and then it is possible to calibrate each tool by using reference structures in the tool geometry or by attaching reference structures on the tools, and adopting either of the methods described in FIGS. 6a, 6 b, and 7 a, 7 b. However, there is often a tool exchanger between the tool and a spindle actuator and then it is usually enough to calibrate the spindle actuator with a reference tool as in FIG. 8f, in the same way as shown in FIGS. 6a, 6 b and 7 a, 7 b. FIG. 8f shows a tool exchanger 46 provided between a reference tool 47 and a spindle actuator 48. A coordinate system, Ot, Xt, Yt, Zt is defined for the reference tool 47 and coordinate system, Otc, Xtc, Ytc, Ztc is defined for the tool exchanger 46. The relation between the reference tool coordinate system t and the tool exchanger coordinate system tc is known. The reference tool 47 is a dummy tool that is used only for calibration purposes. The reference tool 47 comprises a tool reference structure 50. The geometry of the reference tool 46 is known. It is then possible to calculate the coordinate system of the tool exchanger tc. Knowing the coordinate system of the tool exchanger and the geometry of the tools used in the application, for example, the tools shown in FIGS. 8b-8 e, the tool coordinate system ta, tb, tc, td for the tools can be calculated in the tool holder coordinate system tc.
  • If more than one local object coordinate system are to be defined, it is possible to use one reference structure hold by the robot to define all of the object coordinate systems, instead of having a plurality of different object reference structures on the work piece. As shown in FIG. 9, the [0075] tool reference structure 50 on the reference tool 47 can also be used to define local object coordinate systems. Alternatively, the reference structure 50 could be positioned on a real tool. The reference tool 47 is mounted on the robot. The position and orientation of the reference structure 50 is known, or calibrated, relative to the tool holder coordinate system and by means of the robot kinematics to the robot base coordinate system rb.
  • At first, the [0076] digitizer 15 is used to define a fixed object coordinate system o2 on the work object, by means of the object reference structure 25 attached to the work object 3. Then, the robot 1 moves the tool reference structure 50 as close as possible to the path programmed by the digitizer. The orientation of the reference tool 47 should preferably be as close as possible to the desired tool orientation for the path. Finally the digitizer measures points on the surfaces of the tool reference structure 50, to define a local object coordinate system, which in the figure is the same as the tool coordinate system, Ot, Xt, Yt, Zt. The digitizer can now refer the local object coordinate system t to the fixed object coordinate system o2, attached to the work object. Since the digitizer calculates the path positions p1, p2 in the fixed object coordinate system o2, it can now calculate the path positions also in the local object coordinate system t, defined by the reference structure 50 on the robot tool. Since the robot from the tool calibration already knows the tool coordinate systems of the tool, the path positions expressed in the local object coordinate system on the tool can be directly used for programming the robot.
  • The local object coordinate system t is determined relative to the digitizer base coordinate db system by best fit between the measurements and a mathematical model of the [0077] tool reference structure 50. From earlier measurements, the path position p2 is known relative to the object coordinate system o2 and relative to the digitizer coordinate system db. Thereby, it is possible to calculate the relation between the fixed object coordinate system o2 and the local object coordinate system t. Thereafter the pose p2 is calculated relative to the local coordinate system t.
  • The drawback with a method using a tool reference structure as the local coordinate system is that it will be more difficult to move a program from one robot to another with this method, since the digitizer must be used for re-calibrating the local coordinate systems. When the reference structure for the local coordinate systems are mounted on the work object, the robot can use stored reference structure calibration programs to automatically move the probe to touch the surfaces of the reference structures. On the other hand, using a reference structure on the tool as a local object coordinate system means that actually no reference structure at all is needed on the object. Thus, in applications with small lot size production, it will be favorable to use just a tool reference structure for the definition of object coordinate systems. When these tool-based object coordinate systems are defined, it is important to have the tool in an orientation as close as possible to the orientation used in the path positions. Moreover, no robot axis should change torque direction when moving from the reference structure calibration positions to the path positions. This is especially important for the main axis of the robot. [0078]
  • Up to now, calibration methods when the robot carries the tool have been presented. If the robot carries the work object instead and the tool is fixed to the robot cell or another manipulator, then the method is performed according to any of the methods shown in FIGS. 10[0079] a-10 b and 11.
  • FIG. 10[0080] a shows the calibration of the object coordinate system o2 relative to the robot base coordinate system rb, when a measuring-probe 30 fixed to the robot cell is used. At first the coordinate system rt1 or position of the fixed probe 30 is calculated in relation to the robot base coordinate system rb, in the same way as was earlier shown in FIG. 6a. For this purpose a reference tool 32 having a reference structure 34, with known geometry, is attached to the robot tool holder, as shown in FIG. 6a. The relation between the coordinate system rt1 of the reference structure 34 and the robot tool holder coordinate system rth is known. Therefore, the probe coordinate system rt1 can be calculated in relation to the robot base coordinate system rb.
  • Then the [0081] work object 3 with its object reference structure 25 is mounted on the robot tool holder coordinate system rth. The robot is moved towards the probe 30, so that different surfaces of the reference structure 25 hit the tip 31 of the probe. The object coordinate system o2 is determined relative to robot base coordinate system rb by best fit between the measurements and the model of the reference structure 25. Compare the tool calibration shown in FIG. 6b. In this embodiment the tool 47 is fixed positioned relative to the robot cell. Thus, beside the calibration of the object coordinate system o2, also the tool coordinate system t must be calibrated. The calibration of the fixed mounted tool 47 can be compared with the object coordinate system calibrations when the robot carries the tool as shown in FIG. 4b.
  • FIG. 10[0082] b shows the calibration of the tool coordinate system having a fixed tool 47. A probe 20, with known geometry, is mounted on the robot and a reference structure 34, with known geometry, is mounted on or in fixed relation to the tool 47. The position of the coordinate system rt2 of the reference structure 34 is known in relation to the robot tool coordinate system t. The probe 20 is used for measurements on the surfaces of the tool reference structure 34. Now, the robot knows the tool coordinate system t in relation to the object coordinate system o2, and if the digitizer is used to program the path positions in relations to the object coordinate system, the robot can run a program with these relative positions from the digitizer.
  • In the same way as shown in FIG. 7 for the calibration of the tool coordinate system when the tool is mounted on the robot, the [0083] digitizer 15 can be used to calibrate the object coordinate system o2 when the work object 3 is mounted on the robot as shown in FIG. 11. Because of the easy access with the probe 20 on the digitizer, it is possible to measure both a reference structure 60 on the robot 1 and a reference structure 47 on the work object 3 in the same stage, without dismounting the work object. Moreover, the digitizer can also be used to measure the tool coordinate system, giving the robot controller a fixed tool coordinate system in relation to the tool holder coordinate system. It should be mentioned that the digitizer can be mounted on the work object or the gripper or the tool holder to decrease the requirements on the work space of the digitizer.
  • With reference to FIG. 11 it will now be described how the path position p[0084] 2 is determined relative to the tool coordinate system t, by using the digitizer. The robot reference structure 60 is mounted on the robot in a known relation to the robot tool holder coordinate system rth, which is known I relation to the robot base coordinate system rb because of the robot kinematics. Thus, the coordinate system rt1 of the reference tool 60 is known in relation to robot base coordinate system rb. The digitizer measures positions on the surface of the robot reference structure 60. The relation between the reference tool coordinate system rt1 and the digitizer coordinate system db is determined by best fit between the measurements and a model of the reference structure 60.
  • To determine the object coordinate system o[0085] 2 in relation to the digitizer base coordinate system db, measurements are made on the surface of the object reference structure 25 by the digitizer. The object coordinate system o2 is determined in relation to the digitizer base coordinate system db, by best fit between the measurements and a model of the object reference structure 25. The path is then programmed by means of the digitizer 15 and thus the path positions p2 are obtained in relation to object coordinate system o2. The tool coordinate system t is determined in relation to the digitizer base coordinate system by best fit between measurements made by the digitizer on the surface of the tool reference structure 50 and a model of the reference structure 50. The tool coordinate system t is calculated relative to the reference tool coordinate system rt1, and since the reference tool coordinate system rt1 is known relative to the tool holder coordinate system rth, it is possible to calculate the tool coordinate system t relative to the robot base coordinate system rb.
  • Thereafter the relation between the object coordinate system o[0086] 2 and the reference tool coordinate system rt1 is calculated, and since reference tool coordinate system rt1 is known relative to the robot tool holder coordinate system rth it is possible to calculate the object coordinate system o2 in the robot base coordinate system rb. During programming the path positions p2 is measured relative to the object coordinate system o2 and thereby the path positions can be calculated in the robot base coordinate system. As the tool coordinate system t and the path positions p2 are known in the robot base coordinate system rb, the path positions p2 can be calculated in the tool coordinate system t.
  • In the fixed tool case, the relation between the object coordinate system o[0087] 2 and the tool holder coordinate system rth will always be the same and independent of the configuration of the robot. However, in a given position in one path, the robot configuration may differ a lot from that in a position in another path. Therefore, the tool coordinate system or the object coordinate system must sometimes be updated to form local coordinate systems that must be used in the robot program for parts of the paths in the same way as the object coordinate system must be updated in the case when the robot carried the tool. The calibration of these local coordinate systems are made simply by moving the robot to get the fixed tool close to the path and make a recalibration of the object coordinate system, or the tool holder coordinate system, with the digitizer. In the case with the use of a fixed probe as in FIGS. 10a-b, the local object coordinate systems are calibrated by use of local object reference structures, which are moved against the fixed probe by the robot.
  • 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 it is possible to use only one reference structure for programming more than one path on the work object. It is also possible to use more than one local object coordinate system for programming one single path. Different local object coordinate systems are then used for programming different poses on the path. [0088]
  • In the embodiments described herein, the measurements of the reference structure comprise measuring at least three positions on the surface of the reference structure. Alternatively, the measurements may comprise measuring at least one position on the surface of the reference structure and measuring the normal direction to the surface. [0089]

Claims (22)

1. A method for programming of an industrial robot having a robot coordinate system, for an application comprising a tool having a tool coordinate system and a work object to be processed by the tool, wherein the application is programmed by means of a position-measuring unit adapted for measuring positions relative a measuring coordinate system, wherein the method comprises:
selecting an object reference structure on or in a fixed relation to the object, the object reference structure having at least one surface,
defining a mathematical model for the object reference structure,
defining an object coordinate system in a fixed relation to the object reference structure,
providing measurements on said at least one surface of the object reference structure, the measurements being performed by the position-measuring unit and are provided relative to the measuring coordinate system,
determining the object coordinate system in relation to the measuring coordinate system, by means of best fit between said measurements performed by the position-measuring unit and said mathematical model of the object reference structure,
measuring a plurality of positions on a desired robot path on the object by means of the position-measuring unit,
determining the positions of the robot path in the object coordinate system, based on said measured positions of the robot path and said determined object coordinate system,
determining the relation between the object coordinate system and the robot coordinate system,
determining the relation between the tool coordinate system and the robot coordinate system, and
programming the robot path based on said positions of the robot path in the object coordinate system, said relation between the object coordinate system and the robot coordinate system, and said relation between the tool coordinate system and the robot coordinate system.
2. A method according to claim 1, wherein said object reference structure is three-dimensional and has at least three non-parallel surfaces and measurements are provided on said at least three surfaces of the object reference structure.
3. A method according to claim 1, wherein said object reference structure is any of a cube, a cone or a cylinder.
4. A method according to claims 1, wherein said selected object reference structure is positioned in the vicinity of said robot path.
5. A method according to claims 1, wherein the robot comprises a base and said robot coordinate system is attached to the base of the robot.
6. A method according to claim 1, wherein the relation between the object coordinate system and the robot coordinate system comprises performing measurements on at least one surface of the object reference structure, or of a reference structure on or in a fixed relation to the robot, wherein the. measurements are performed by means of an elongated probe and the inclination of the probe relative to the surface during the measurements are essentially the same as the inclination of the tool in relation to the object in the robot path.
7. A method according claim 1, wherein the determining of the relation between the object coordinate system and the robot coordinate system comprises:
performing measurements on said surface of the object reference structure, the measurements being performed by the robot and are provided relative to the robot coordinate system, and
determining the object coordinate system in relation to the robot coordinate system, by means of best fit between said measurements performed by the robot and said mathematical model of the object reference structure.
8. A method according to claim 7, wherein a robot program, for performing said measurements on the object reference structure by the robot, is automatically generated based on said measurements on the object reference structure performed by the position-measuring unit.
9. A method according to claim 7, wherein the direction of the normal of said surface of the object reference structure is calculated, based on said measurements on the object reference structure performed by the position-measuring unit, and the robot is moved along said calculated direction towards the surface when performing said measurements.
10. A method according to claim 1, wherein the determining of the relation between the object coordinate system and the robot coordinate system comprises:
selecting a robot reference structure on or in a fixed relation to the robot, the robot reference structure having at least one surface,
defining a mathematical model for the robot reference structure,
defining a second robot coordinate system in a fixed relation to the robot reference structure,
performing measurements on said at least one surface of the robot reference structure,
determining the object coordinate system in relation to said first mentioned robot coordinate system, by means of best fit between said measurements of the robot reference structure and said mathematical model of the robot reference structure.
11. A method according to claim 10, wherein it comprises:
providing a measuring probe in a fixed known position relative to the robot,
performing measurements on the surface of the robot reference structure, the measurements being made by said measuring probe,
performing measurements on the surface of the object reference structure, the measurements being made by said measuring probe,
determining the relation between the object coordinate system and the second robot coordinate system, based on said measurements of the robot reference structure and said measurements of the object reference structure made by said measuring probe.
12. A method according to claim 10, wherein said measurements on said surface of the robot reference structure are made by the position-measuring unit and relative to the measuring coordinate system, and said relation between the object coordinate system and the robot coordinate system are determined, based on said object coordinate system relative to the measuring coordinate system.
13. A method according to claim 10, wherein the robot comprises a tool holder and said robot reference structure is selected on or in a close vicinity of the tool holder of the robot.
14. A method according to claim 10, wherein the robot is provided with a tool having an inner end connected to the robot and an outer end, and said robot reference structure is positioned on or in a close vicinity of the outer end of the tool.
15. A method according to claim 1, wherein the method further comprises:
selecting a second object reference structure on or in a fixed relation to the object, the second object reference structure having at least one surface,
defining a second object coordinate system on or in a fixed relation to the object reference structure,
providing measurements on said at least one surface of the second object reference structure, the measurements being performed by the position-measuring unit and are provided relative to the measuring coordinate system, and
determining the second object coordinate system in relation to the measuring coordinate system, by means of best fit between said measurements on the second object reference structure and said mathematical model of the object reference structure,
determining the relation between the second object coordinate system and the robot coordinate system,
the robot path positions are determined and programmed based on either the first or the second coordinate system according to a chosen condition.
16. A method according to claim 15, wherein a robot path position is determined and programmed based on which of the first and second coordinate systems is closest to the robot path position.
17. A method according to claim 15, wherein a robot path position is determined and programmed based on which of the first and second coordinate systems has about the same orientation, as the desired tool orientation in the robot path position.
18. A method according to claim 15, wherein a robot path position is determined and programmed based on which of the first and second coordinate systems has about the same torque direction on the robot axis, as the path position.
19. A method according to claim 1, wherein said object reference structure is at least a plane.
20. A method according to claim 1, wherein the tool comprises a tool base for attaching the tool to the robot, and determining the relation between the tool coordinate system and the robot coordinate system comprises:
defining an reference coordinate system on or in a fixed relation to the tool base, the relation between the reference tool coordinate system and the robot coordinate system being known,
selecting a first tool reference structure on or in a fixed relation to the reference coordinate system, the first tool reference structure having at least one surface,
defining a mathematical model for the first tool reference structure,
selecting a second tool reference structure in a fixed relation to the tool coordinate system, and at a distance from the first tool reference structure, the second tool reference structure having at least one surface,
defining a mathematical model for the second tool reference structure,
providing measurements on said at least one surface of the first tool reference structure,
providing measurements on said at least one surface of the second tool reference structure,
determining the relation between the tool coordinate system and the reference coordinate system, by means of best fit between said measurements on the first and the second tool reference structures, and said mathematical models of the object reference structures.
21. A computer program product for programming of an industrial robot having a robot coordinate system for an application comprising a tool having a tool coordinate system and a work object to be processed by the tool, wherein the application is programmed by means of a position-measuring unit adapted for measuring positions relative a measuring coordinate system, and the computer program product comprises program instructions which, when loaded into a computer, causes the computer to perform:
receiving measurements from at least one surface of an object reference structure on or in a fixed relation to the object, the measurements being provided relative to the measuring coordinate system,
determining an object coordinate system, defined in a fixed relation to the object reference structure in relation to the measuring coordinate system, by means of best fit between said measurements performed by the position-measuring unit and a mathematical model of the object reference structure,
receiving a plurality of positions on a desired robot path,
determining the positions of the robot path in the object coordinate system, based on said measured positions of the robot path and said determined object coordinate system,
determining the relation between the object coordinate system and the robot coordinate system,
determining the relation between the tool coordinate system and the robot coordinate system, and
programming the robot path based on said positions of the robot path in the object coordinate system, said relation between the object coordinate system and the robot coordinate system, and said relation between the tool coordinate system and the robot coordinate system.
22. A computer readable medium having a program recorded thereon, where the program is to make a computer perform the steps of claim 21, when said program is run on the computer.
US10/458,810 2003-06-11 2003-06-11 Method for calibrating and programming of a robot application Expired - Fee Related US6822412B1 (en)

Priority Applications (4)

Application Number Priority Date Filing Date Title
US10/458,810 US6822412B1 (en) 2003-06-11 2003-06-11 Method for calibrating and programming of a robot application
PCT/SE2004/000846 WO2004108364A1 (en) 2003-06-11 2004-06-01 A method for calibrating and programming of a robot application
CNB2004800161120A CN100384597C (en) 2003-06-11 2004-06-01 A method for calibrating and programming of a robot application
EP04735698A EP1631422A1 (en) 2003-06-11 2004-06-01 A method for calibrating and programming of a robot application

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/458,810 US6822412B1 (en) 2003-06-11 2003-06-11 Method for calibrating and programming of a robot application

Publications (2)

Publication Number Publication Date
US6822412B1 US6822412B1 (en) 2004-11-23
US20040251866A1 true US20040251866A1 (en) 2004-12-16

Family

ID=33434915

Family Applications (1)

Application Number Title Priority Date Filing Date
US10/458,810 Expired - Fee Related US6822412B1 (en) 2003-06-11 2003-06-11 Method for calibrating and programming of a robot application

Country Status (4)

Country Link
US (1) US6822412B1 (en)
EP (1) EP1631422A1 (en)
CN (1) CN100384597C (en)
WO (1) WO2004108364A1 (en)

Cited By (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070147961A1 (en) * 2005-11-10 2007-06-28 Hugo Salamanca Robot system and method for maintenance of base plates in electrometallurgical and industrial processes
US20070144894A1 (en) * 2005-11-10 2007-06-28 Hugo Salamanca Robot system and method for cathode stripping in electrometallurgical and industrial processes
US20070144005A1 (en) * 2005-11-10 2007-06-28 Hugo Salamanca Robot system and method for reposition and/or removal of base plates from cathode stripping machines in electrometallurgical processes
US20070152616A1 (en) * 2005-11-10 2007-07-05 Hugo Salamanca Robot system and method for cathode selection and handling procedures after the harvest
US20070169230A1 (en) * 2005-11-10 2007-07-19 Hugo Salamanca Robot system and method for removing sticks and/or foreign elements from conveyor belts
US20070185610A1 (en) * 2005-11-10 2007-08-09 Hugo Salamanca Robot system and method for the application of dislodging material and pin positioning in casting wheels
US20070180678A1 (en) * 2005-11-10 2007-08-09 Hugo Salamanca Robot system and method for bolt removal from SAG and/or ball mills in ore concentration processes
US20070267043A1 (en) * 2005-11-10 2007-11-22 Hugo Salamanca Robot system and method for washing and unclogging procedures of machines under maintenance
US20070299556A1 (en) * 2005-11-10 2007-12-27 Hugo Salamanca Robot system and method for scrap bundling in metal smelting and refining processes
US20080188986A1 (en) * 2004-10-25 2008-08-07 University Of Dayton Method and System to Provide Improved Accuracies in Multi-Jointed Robots Through Kinematic Robot Model Parameters Determination
US20090076655A1 (en) * 2007-09-14 2009-03-19 Zimmer, Inc. Robotic calibration method
US20090099688A1 (en) * 2005-11-10 2009-04-16 Hugo Salamanca Integral robot system and method for the dislodging process and/or anode handling from casting wheels
US20090101179A1 (en) * 2005-11-10 2009-04-23 Hugo Salamanca Robot system and method for molybdenum roasting furnaces cleaning procedures
US20090121061A1 (en) * 2005-11-10 2009-05-14 Hugo Salamanca Robot system and method for unblocking the primary crusher
US20090177324A1 (en) * 2005-11-10 2009-07-09 Hugo Salamanca Robot system and method for maxibags sampling in ore concentration processes
US20090216375A1 (en) * 2007-10-19 2009-08-27 Raoul Audibert Industrial Robot Tending A Machine And A Method For Controlling An Industrial Robot Tending A Machine
US20090299526A1 (en) * 2006-05-13 2009-12-03 Christof Ditscher Device and method for processing a robot control program
EP2159654A1 (en) * 2008-08-27 2010-03-03 Kawasaki Jukogyo Kabushiki Kaisha Automatic finishing machine and control method thereof
US20100057254A1 (en) * 2006-11-13 2010-03-04 Salamanca Hugo P Methods for using robotics in mining and post-mining processing
US20110046782A1 (en) * 2008-04-30 2011-02-24 Abb Technology Ab A method and system for determining the relation between a robot coordinate system and a local coordinate system located in the working range of the robot
US20110160745A1 (en) * 2007-04-16 2011-06-30 Tim Fielding Frame Mapping and Force Feedback Methods, Devices and Systems
WO2011113490A1 (en) * 2010-03-18 2011-09-22 Abb Research Ltd. Calibration of a base coordinate system for an industrial robot
WO2011120610A1 (en) * 2010-03-30 2011-10-06 Eisenmann Ag Method for operating a processing enclosure loaded by at least one robot
US20110268322A1 (en) * 2010-05-03 2011-11-03 Paul David Clausen Establishing coordinate systems for measurement
WO2012127845A1 (en) * 2011-03-24 2012-09-27 Canon Kabushiki Kaisha Robot control apparatus, robot control method, program, and recording medium
US20130123983A1 (en) * 2010-07-08 2013-05-16 Abb Research Ltd Method and apparatus for calibration of a robot positioned on a movable platform
CN103115629A (en) * 2013-01-23 2013-05-22 天津大学 Method for rapidly restoring tool coordinate frame in flexible vision measurement system for robots
US20130213172A1 (en) * 2009-06-11 2013-08-22 Kabushiki Kaisha Yaskawa Denki Manipulator system
JP2013184235A (en) * 2012-03-06 2013-09-19 Jtekt Corp Calibration method and calibration apparatus for robot
JP2013184236A (en) * 2012-03-06 2013-09-19 Jtekt Corp Calibration method and calibration apparatus for robot
CN105345813A (en) * 2015-11-13 2016-02-24 张碧陶 High-precision mechanical arm positioning method based on generalized coordinates
US9718192B2 (en) * 2015-06-24 2017-08-01 National Taipei University Of Technology System for automatically and precisely positioning robotic arm and method thereof
US20180229369A1 (en) * 2015-12-11 2018-08-16 Abb Schweiz Ag Robot off-line programming method and apparatus using the same
WO2018187041A1 (en) 2017-04-07 2018-10-11 X Development Llc Methods and systems for establishing and maintaining a pre-build relationship
US20190064305A1 (en) * 2017-08-28 2019-02-28 Teradyne, Inc. Calibration process for an automated test system
CN111452047A (en) * 2020-04-03 2020-07-28 精诚工科汽车系统有限公司 Robot tool deviation correction method, robot control device and system
US10775408B2 (en) 2018-08-20 2020-09-15 Teradyne, Inc. System for testing devices inside of carriers
CN111844062A (en) * 2020-06-22 2020-10-30 东莞长盈精密技术有限公司 Machining standardization method
US10845410B2 (en) 2017-08-28 2020-11-24 Teradyne, Inc. Automated test system having orthogonal robots
US10948534B2 (en) 2017-08-28 2021-03-16 Teradyne, Inc. Automated test system employing robotics
JP2021162494A (en) * 2020-04-01 2021-10-11 日立金属株式会社 Inspection route search device for appearance inspection robot, inspection route search program, and appearance inspection robot
US20220234206A1 (en) * 2020-11-07 2022-07-28 Beijing Hurwa Robot Medical Technology Co., Ltd. Calibration method, mechanical arm control method, and surgical system
US11417238B2 (en) * 2016-03-28 2022-08-16 Abb Schweiz Ag Method, system and apparatus of determining search parameters for welding seam point calibration
US11754596B2 (en) 2020-10-22 2023-09-12 Teradyne, Inc. Test site configuration in an automated test system
US11754622B2 (en) 2020-10-22 2023-09-12 Teradyne, Inc. Thermal control system for an automated test system
US11867749B2 (en) 2020-10-22 2024-01-09 Teradyne, Inc. Vision system for an automated test system
US11899042B2 (en) 2020-10-22 2024-02-13 Teradyne, Inc. Automated test system
US11953519B2 (en) 2020-10-22 2024-04-09 Teradyne, Inc. Modular automated test system
US12007411B2 (en) 2021-06-22 2024-06-11 Teradyne, Inc. Test socket having an automated lid

Families Citing this family (57)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102004026185A1 (en) * 2004-05-28 2005-12-22 Kuka Roboter Gmbh Method and apparatus for operating a machine, such as a multi-axis industrial robot
DE102004029279A1 (en) * 2004-06-17 2006-01-12 Daimlerchrysler Ag Tool e.g. cutting tool, for industrial robot e.g. six-axial bending arm robot, of handling system, has three even outer surfaces with common intersection point, and measuring device with sensing device to determine three points in surfaces
DE102005017697B4 (en) * 2005-04-07 2007-06-06 L.M.F. Fahrzeugtechnik Gmbh Measuring device and calibration method for their calibration
JP2006289524A (en) * 2005-04-06 2006-10-26 Fanuc Ltd Workpiece placement error measuring device
DE102005048136B4 (en) * 2005-10-06 2010-01-21 Kuka Roboter Gmbh A method for determining a virtual tool center point
US7627394B2 (en) * 2005-12-20 2009-12-01 Kuka Roboter Gmbh Robot trajectory control including emergency evacuation path system and method
JP2008100292A (en) * 2006-10-17 2008-05-01 Toshiba Mach Co Ltd Robot system
JP4700646B2 (en) * 2007-03-26 2011-06-15 株式会社神戸製鋼所 Control device for work positioning device and program thereof
DE102007026956A1 (en) * 2007-06-12 2008-12-18 Kuka Innotec Gmbh Method and system for robot-guided depalletizing of tires
CN100460159C (en) * 2007-07-12 2009-02-11 上海交通大学 Off line programming tool for industrial robot
JP5049916B2 (en) * 2007-10-31 2012-10-17 株式会社神戸製鋼所 Control apparatus, method and program for arc welding robot
CN101570020B (en) * 2009-01-21 2012-02-08 上海广茂达伙伴机器人有限公司 Method and device for programming robot motion sequence
CN101887241B (en) * 2009-05-14 2013-03-06 杨岚 Automatically programming processing method
US20100312391A1 (en) * 2009-06-05 2010-12-09 Abb Research Ltd. Calibration Of A Lead-Through Teaching Device For An Industrial Robot
US8972056B2 (en) * 2010-01-14 2015-03-03 Syddansk Universitet Method of finding feasible joint trajectories for an n-dof robot with rotation invariant process (n>5)
US9149929B2 (en) * 2010-05-26 2015-10-06 The Boeing Company Methods and systems for inspection sensor placement
EP2453325A1 (en) 2010-11-16 2012-05-16 Universal Robots ApS Method and means for controlling a robot
CN102794775A (en) * 2011-05-26 2012-11-28 宝山钢铁股份有限公司 Method and device for positioning sublance manipulator used inside converter
EP2796249B1 (en) 2011-09-28 2015-12-30 Universal Robots A/S Programming of robots
CN103135497A (en) * 2011-12-05 2013-06-05 沈阳黎明航空发动机(集团)有限责任公司 Conic cartridge receiver appearance five-axis vector processing technology
CN103376080B (en) * 2012-04-27 2016-09-07 上海西门子燃气轮机部件有限公司 A kind of method for calibration machine people working cell
DE102012212469B4 (en) * 2012-07-17 2022-10-06 Peter Fornoff Method for printing on a surface and device for printing on a surface
CN103909521B (en) * 2013-01-07 2016-08-10 北京赛佰特科技有限公司 The method utilizing pallet diagonal identification code buttress joint of robot initial parameter
CN103213126A (en) * 2013-03-27 2013-07-24 南通航运职业技术学院 Method and system for teaching complex curve of industrial robot
US9672184B1 (en) * 2013-06-24 2017-06-06 Redwood Robotics, Inc. Methods and systems for rapid configuration, calibration, and deployment of a modular robot workcell
DE102013014467A1 (en) * 2013-08-30 2015-03-05 Dürr Ecoclean GmbH "Method for measuring and / or calibrating a robot"
US9874628B2 (en) * 2013-11-12 2018-01-23 The Boeing Company Dual hidden point bars
JP6005299B2 (en) * 2013-11-28 2016-10-12 三菱電機株式会社 Robot system and control method of robot system
WO2015131904A1 (en) 2014-03-04 2015-09-11 Universal Robots A/S Safety system for industrial robot
CN104238460A (en) * 2014-08-29 2014-12-24 北京配天技术有限公司 Workpiece collaborative machining method and system and collaborative control method and device
CN112518790A (en) 2014-09-26 2021-03-19 泰瑞达公司 Paw and automatic test equipment
US9919421B2 (en) 2015-04-15 2018-03-20 Abb Schweiz Ag Method and apparatus for robot path teaching
CN104942808A (en) * 2015-06-29 2015-09-30 广州数控设备有限公司 Robot motion path off-line programming method and system
US10850393B2 (en) 2015-07-08 2020-12-01 Universal Robots A/S Method for extending end user programming of an industrial robot with third party contributions
JP6017642B1 (en) 2015-07-17 2016-11-02 ファナック株式会社 Robot operation teaching work support apparatus and teaching work support method
JP6665450B2 (en) * 2015-08-31 2020-03-13 セイコーエプソン株式会社 Robot, control device, and robot system
FR3043004B1 (en) * 2015-10-29 2017-12-22 Airbus Group Sas METHOD FOR ORIENTATION OF AN EFFECTOR WITH AN ASSEMBLY TOOL IN RELATION TO A SURFACE
CN108369413B (en) * 2015-12-11 2020-09-01 Abb瑞士股份有限公司 Industrial robot and method for controlling a robot to automatically select program code to be executed next
CN105935809A (en) * 2015-12-19 2016-09-14 綦江祥和机械有限公司 Gear slotting machine capable of being adjusted
TWI805545B (en) 2016-04-12 2023-06-21 丹麥商環球機器人公司 Method and computer program product for programming a robot by demonstration
CN106216284B (en) * 2016-08-14 2018-05-29 杭州锐冠科技有限公司 A kind of automatic clear plate system
CN108068108B (en) * 2016-11-16 2021-02-02 沈阳高精数控智能技术股份有限公司 Method for controlling motion of in-plane swinging telescopic robot
GB2557179B (en) * 2016-11-29 2020-01-01 Rolls Royce Plc Methods, apparatus, computer programs and non-transitory computer readable storage mediums for controlling a hyper redundant manipulator
WO2018152779A1 (en) * 2017-02-24 2018-08-30 Abb Schweiz Ag Method and apparatus for selecting initial point for industrial robot commissioning
CN107253413B (en) * 2017-05-12 2019-05-21 哈工大机器人集团股份有限公司 A kind of robot engraving system imitating the movement of manpower engraving
CN107584474B (en) * 2017-07-19 2020-12-15 合肥工业大学 Spherical joint double-arm robot coordinated movement method based on geometric projection
JP6564428B2 (en) * 2017-08-03 2019-08-21 ファナック株式会社 Calibration system and calibration method
CN109968347B (en) * 2017-12-28 2022-01-14 沈阳新松机器人自动化股份有限公司 Zero calibration method of seven-axis robot
JP6859967B2 (en) * 2018-02-16 2021-04-14 オムロン株式会社 Conveyor tracking system and calibration method
JP6773084B2 (en) * 2018-07-02 2020-10-21 株式会社安川電機 Motion teaching device, robot system and motion teaching method
TWI715899B (en) 2018-12-20 2021-01-11 財團法人工業技術研究院 Measuring program compiling device and measuring program compiling method
FR3097457B1 (en) * 2019-06-19 2021-07-09 Safran Aircraft Engines Improved aeronautical part deburring process
TWI754888B (en) 2020-01-21 2022-02-11 財團法人工業技術研究院 Calibrating method and calibrating system
TWI742635B (en) * 2020-04-27 2021-10-11 創博股份有限公司 Method of triggering and counteracting for teaching position and posture
CN113635349B (en) * 2021-07-01 2023-06-20 东风柳州汽车有限公司 Calibrating device and welding robot
CN116725680B (en) * 2022-09-02 2024-09-13 北京和华瑞博医疗科技有限公司 End effector and surgical system
CN116077190B (en) * 2023-02-27 2023-08-08 上海华易镜升数字科技有限公司 System for improving accuracy of surgical robot system

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4613943A (en) * 1983-04-13 1986-09-23 Hitachi, Ltd. Operation teaching method and apparatus for industrial robot
US4920500A (en) * 1986-02-25 1990-04-24 Trallfa Robot A/S Method and robot installation for programmed control of a working tool
US4954762A (en) * 1989-02-01 1990-09-04 Hitachi, Ltd Method and apparatus for controlling tracking path of working point of industrial robot
US4979121A (en) * 1987-09-25 1990-12-18 Yamazaki Mazak Corporation Control method and apparatus for controlling machining operations in a machine tool having a plurality of coordinate systems
US6646404B2 (en) * 2000-12-25 2003-11-11 Seiko Epson Corporation Method for controlling robot and robot controller using the method

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2608777B2 (en) * 1989-02-07 1997-05-14 サンスター株式会社 Whitening cosmetics
US5495410A (en) * 1994-08-12 1996-02-27 Minnesota Mining And Manufacturing Company Lead-through robot programming system
CN1221500B (en) * 1996-06-06 2013-06-05 波音公司 Accuracy modified machine tool system and method for improving accuracy of machines
DE19655008C2 (en) * 1996-12-21 2003-10-23 Depuy Int Ltd Device for positioning and guiding a surgical tool during orthopedic surgery
US6070109A (en) * 1998-03-10 2000-05-30 Fanuc Robotics North America, Inc. Robot calibration system
US6157873A (en) * 1998-04-09 2000-12-05 Motoman, Inc. Robot programming system and method
EP1152212B1 (en) * 2000-03-29 2004-01-14 TMS Produktionssysteme GmbH Semi automatic calibration of the actuating arm of a robot
SE0001312D0 (en) * 2000-04-10 2000-04-10 Abb Ab Industrial robot
SE525108C2 (en) * 2002-12-30 2004-11-30 Abb Research Ltd Method and system for programming an industrial robot, computer program product, computer-readable medium and use
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

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4613943A (en) * 1983-04-13 1986-09-23 Hitachi, Ltd. Operation teaching method and apparatus for industrial robot
US4920500A (en) * 1986-02-25 1990-04-24 Trallfa Robot A/S Method and robot installation for programmed control of a working tool
US4979121A (en) * 1987-09-25 1990-12-18 Yamazaki Mazak Corporation Control method and apparatus for controlling machining operations in a machine tool having a plurality of coordinate systems
US4954762A (en) * 1989-02-01 1990-09-04 Hitachi, Ltd Method and apparatus for controlling tracking path of working point of industrial robot
US6646404B2 (en) * 2000-12-25 2003-11-11 Seiko Epson Corporation Method for controlling robot and robot controller using the method

Cited By (75)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080188986A1 (en) * 2004-10-25 2008-08-07 University Of Dayton Method and System to Provide Improved Accuracies in Multi-Jointed Robots Through Kinematic Robot Model Parameters Determination
US7904202B2 (en) * 2004-10-25 2011-03-08 University Of Dayton Method and system to provide improved accuracies in multi-jointed robots through kinematic robot model parameters determination
US20070299556A1 (en) * 2005-11-10 2007-12-27 Hugo Salamanca Robot system and method for scrap bundling in metal smelting and refining processes
US20070144005A1 (en) * 2005-11-10 2007-06-28 Hugo Salamanca Robot system and method for reposition and/or removal of base plates from cathode stripping machines in electrometallurgical processes
US20070169230A1 (en) * 2005-11-10 2007-07-19 Hugo Salamanca Robot system and method for removing sticks and/or foreign elements from conveyor belts
US20070185610A1 (en) * 2005-11-10 2007-08-09 Hugo Salamanca Robot system and method for the application of dislodging material and pin positioning in casting wheels
US20070180678A1 (en) * 2005-11-10 2007-08-09 Hugo Salamanca Robot system and method for bolt removal from SAG and/or ball mills in ore concentration processes
US20070267043A1 (en) * 2005-11-10 2007-11-22 Hugo Salamanca Robot system and method for washing and unclogging procedures of machines under maintenance
US7746018B2 (en) 2005-11-10 2010-06-29 MI Robotic Solutions Robot system and method for reposition and/or removal of base plates from cathode stripping machines in electrometallurgical processes
US20070152616A1 (en) * 2005-11-10 2007-07-05 Hugo Salamanca Robot system and method for cathode selection and handling procedures after the harvest
US20070147961A1 (en) * 2005-11-10 2007-06-28 Hugo Salamanca Robot system and method for maintenance of base plates in electrometallurgical and industrial processes
US20090099688A1 (en) * 2005-11-10 2009-04-16 Hugo Salamanca Integral robot system and method for the dislodging process and/or anode handling from casting wheels
US20090101179A1 (en) * 2005-11-10 2009-04-23 Hugo Salamanca Robot system and method for molybdenum roasting furnaces cleaning procedures
US20090121061A1 (en) * 2005-11-10 2009-05-14 Hugo Salamanca Robot system and method for unblocking the primary crusher
US20090177324A1 (en) * 2005-11-10 2009-07-09 Hugo Salamanca Robot system and method for maxibags sampling in ore concentration processes
US20070144894A1 (en) * 2005-11-10 2007-06-28 Hugo Salamanca Robot system and method for cathode stripping in electrometallurgical and industrial processes
US8418830B2 (en) 2005-11-10 2013-04-16 Mi Robotic Solutions (Mirs) Robot system and method for removing sticks and/or foreign elements from conveyor belts
US20090299526A1 (en) * 2006-05-13 2009-12-03 Christof Ditscher Device and method for processing a robot control program
US8332067B2 (en) * 2006-05-13 2012-12-11 Kuka Roboter Gmbh Device and method for processing a robot control program
US20100057254A1 (en) * 2006-11-13 2010-03-04 Salamanca Hugo P Methods for using robotics in mining and post-mining processing
US8554368B2 (en) * 2007-04-16 2013-10-08 Tim Fielding Frame mapping and force feedback methods, devices and systems
US20110160745A1 (en) * 2007-04-16 2011-06-30 Tim Fielding Frame Mapping and Force Feedback Methods, Devices and Systems
US9044257B2 (en) * 2007-04-16 2015-06-02 Tim Fielding Frame mapping and force feedback methods, devices and systems
US20140142593A1 (en) * 2007-04-16 2014-05-22 Tim Fielding Frame Mapping and Force Feedback Methods, Devices and Systems
US8457790B2 (en) * 2007-09-14 2013-06-04 Zimmer, Inc. Robotic calibration method
US20090076655A1 (en) * 2007-09-14 2009-03-19 Zimmer, Inc. Robotic calibration method
US20090216375A1 (en) * 2007-10-19 2009-08-27 Raoul Audibert Industrial Robot Tending A Machine And A Method For Controlling An Industrial Robot Tending A Machine
US20110046782A1 (en) * 2008-04-30 2011-02-24 Abb Technology Ab A method and system for determining the relation between a robot coordinate system and a local coordinate system located in the working range of the robot
US7979159B2 (en) * 2008-04-30 2011-07-12 Abb Technology Ab Method and system for determining the relation between a robot coordinate system and a local coordinate system located in the working range of the robot
US8229594B2 (en) 2008-08-27 2012-07-24 Kawasaki Jukogyo Kabushiki Kaisha Automatic finishing machine and control method thereof
EP2159654A1 (en) * 2008-08-27 2010-03-03 Kawasaki Jukogyo Kabushiki Kaisha Automatic finishing machine and control method thereof
US20100057257A1 (en) * 2008-08-27 2010-03-04 Kawasaki Jukogyo Kabushiki Kaisha Automatic finishing machine and control method thereof
US20130213172A1 (en) * 2009-06-11 2013-08-22 Kabushiki Kaisha Yaskawa Denki Manipulator system
US8826766B2 (en) * 2009-06-11 2014-09-09 Kabushiki Kaisha Yaskawa Denki Manipulator system
US20130006421A1 (en) * 2010-03-18 2013-01-03 Torgny Brogardh Calibration Of A Base Coordinate System For An Industrial Robot
US8467901B2 (en) * 2010-03-18 2013-06-18 Abb Research Ltd. Calibration of a base coordinate system for an industrial robot
WO2011113490A1 (en) * 2010-03-18 2011-09-22 Abb Research Ltd. Calibration of a base coordinate system for an industrial robot
WO2011120610A1 (en) * 2010-03-30 2011-10-06 Eisenmann Ag Method for operating a processing enclosure loaded by at least one robot
US9031314B2 (en) * 2010-05-03 2015-05-12 Northern Digital Inc. Establishing coordinate systems for measurement
US20110268322A1 (en) * 2010-05-03 2011-11-03 Paul David Clausen Establishing coordinate systems for measurement
US20130123983A1 (en) * 2010-07-08 2013-05-16 Abb Research Ltd Method and apparatus for calibration of a robot positioned on a movable platform
US8868236B2 (en) * 2010-07-08 2014-10-21 Abb Research Ltd. Method and apparatus for calibration of a robot positioned on a movable platform
US8977395B2 (en) 2011-03-24 2015-03-10 Canon Kabushiki Kaisha Robot control apparatus, robot control method, program, and recording medium
WO2012127845A1 (en) * 2011-03-24 2012-09-27 Canon Kabushiki Kaisha Robot control apparatus, robot control method, program, and recording medium
CN103459102A (en) * 2011-03-24 2013-12-18 佳能株式会社 Robot control apparatus, robot control method, program, and recording medium
JP2013184235A (en) * 2012-03-06 2013-09-19 Jtekt Corp Calibration method and calibration apparatus for robot
JP2013184236A (en) * 2012-03-06 2013-09-19 Jtekt Corp Calibration method and calibration apparatus for robot
CN103115629A (en) * 2013-01-23 2013-05-22 天津大学 Method for rapidly restoring tool coordinate frame in flexible vision measurement system for robots
US9718192B2 (en) * 2015-06-24 2017-08-01 National Taipei University Of Technology System for automatically and precisely positioning robotic arm and method thereof
CN105345813A (en) * 2015-11-13 2016-02-24 张碧陶 High-precision mechanical arm positioning method based on generalized coordinates
US10759050B2 (en) * 2015-12-11 2020-09-01 Abb Schweiz Ag Robot off-line programming method and apparatus using the same
US20180229369A1 (en) * 2015-12-11 2018-08-16 Abb Schweiz Ag Robot off-line programming method and apparatus using the same
US11417238B2 (en) * 2016-03-28 2022-08-16 Abb Schweiz Ag Method, system and apparatus of determining search parameters for welding seam point calibration
WO2018187041A1 (en) 2017-04-07 2018-10-11 X Development Llc Methods and systems for establishing and maintaining a pre-build relationship
US11040448B2 (en) 2017-04-07 2021-06-22 X Development Llc Methods and systems for establishing and maintaining a pre-build relationship
EP3580022A4 (en) * 2017-04-07 2021-03-17 X Development LLC Methods and systems for establishing and maintaining a pre-build relationship
WO2019046017A1 (en) * 2017-08-28 2019-03-07 Teradyne, Inc. Calibration process for an automated test system
US20190064305A1 (en) * 2017-08-28 2019-02-28 Teradyne, Inc. Calibration process for an automated test system
US10845410B2 (en) 2017-08-28 2020-11-24 Teradyne, Inc. Automated test system having orthogonal robots
US10948534B2 (en) 2017-08-28 2021-03-16 Teradyne, Inc. Automated test system employing robotics
KR20200037410A (en) * 2017-08-28 2020-04-08 테라다인 인코퍼레이티드 Calibration process for automated test systems
US11226390B2 (en) * 2017-08-28 2022-01-18 Teradyne, Inc. Calibration process for an automated test system
KR102621356B1 (en) * 2017-08-28 2024-01-05 테라다인 인코퍼레이티드 Calibration process for automated test systems
US10775408B2 (en) 2018-08-20 2020-09-15 Teradyne, Inc. System for testing devices inside of carriers
JP7409199B2 (en) 2020-04-01 2024-01-09 株式会社プロテリアル Visual inspection route search method, inspection route search device for visual inspection robot, inspection route search program, and visual inspection robot
JP2021162494A (en) * 2020-04-01 2021-10-11 日立金属株式会社 Inspection route search device for appearance inspection robot, inspection route search program, and appearance inspection robot
CN111452047A (en) * 2020-04-03 2020-07-28 精诚工科汽车系统有限公司 Robot tool deviation correction method, robot control device and system
CN111844062A (en) * 2020-06-22 2020-10-30 东莞长盈精密技术有限公司 Machining standardization method
US11754596B2 (en) 2020-10-22 2023-09-12 Teradyne, Inc. Test site configuration in an automated test system
US11754622B2 (en) 2020-10-22 2023-09-12 Teradyne, Inc. Thermal control system for an automated test system
US11867749B2 (en) 2020-10-22 2024-01-09 Teradyne, Inc. Vision system for an automated test system
US11899042B2 (en) 2020-10-22 2024-02-13 Teradyne, Inc. Automated test system
US11953519B2 (en) 2020-10-22 2024-04-09 Teradyne, Inc. Modular automated test system
US20220234206A1 (en) * 2020-11-07 2022-07-28 Beijing Hurwa Robot Medical Technology Co., Ltd. Calibration method, mechanical arm control method, and surgical system
US12007411B2 (en) 2021-06-22 2024-06-11 Teradyne, Inc. Test socket having an automated lid

Also Published As

Publication number Publication date
US6822412B1 (en) 2004-11-23
CN100384597C (en) 2008-04-30
CN1802240A (en) 2006-07-12
WO2004108364A1 (en) 2004-12-16
EP1631422A1 (en) 2006-03-08

Similar Documents

Publication Publication Date Title
US6822412B1 (en) Method for calibrating and programming of a robot application
EP2350750B1 (en) A method and an apparatus for calibration of an industrial robot system
US7813830B2 (en) Method and an apparatus for performing a program controlled process on a component
US8989897B2 (en) Robot-cell calibration
CN108748159B (en) Self-calibration method for tool coordinate system of mechanical arm
JP5199452B2 (en) External system for improving robot accuracy
EP2613912B1 (en) System and method for tool testing and alignment
US20120265341A1 (en) Robotic work object cell calibration method
JP2012104136A (en) Method for improving accuracy of machines
US9114534B2 (en) Robot calibration systems
WO2018196232A1 (en) Method for automatically calibrating robot and end effector, and system
US11673275B2 (en) Through-beam auto teaching
WO2015070010A1 (en) Calibration system and method for calibrating industrial robot
US20160016317A1 (en) Robotic work object cell calibration method
US20140365006A1 (en) Visual Datum Reference Tool
Liu et al. Closed-loop kinematic calibration of robots using a six-point measuring device
US9713869B2 (en) Calibration of robot work paths
US20140365007A1 (en) Visual Datum Reference Tool
Nagao et al. Machining performance of robot-type machine tool consisted of parallel and serial links based on calibration of kinematics parameters
Mei et al. Pose and shape error control in automated machining of fastener holes for composite/metal wing-box assembly
WO2014042668A2 (en) Automatic and manual robot work finder calibration systems and methods
Liu et al. An automated method to calibrate industrial robot kinematic parameters using Spherical Surface constraint approach
WO2023170166A1 (en) System and method for calibration of an articulated robot arm
Liu et al. Development and sensitivity analysis of a portable calibration system for joint offset of industrial robot
US20150306769A1 (en) Calibration for robotic systems

Legal Events

Date Code Title Description
FPAY Fee payment

Year of fee payment: 4

FPAY Fee payment

Year of fee payment: 8

FEPP Fee payment procedure

Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

REMI Maintenance fee reminder mailed
LAPS Lapse for failure to pay maintenance fees
STCH Information on status: patent discontinuation

Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362

FP Lapsed due to failure to pay maintenance fee

Effective date: 20161123