The present invention refers to a method for in-line calibration of an industrial robot, to a calibration system for in-line calibration of an industrial robot and to an industrial robot. The robot comprises a fixed base section and a multi chain link robot arm. The chain links are interconnected and connected to the base section of the robot, respectively, by means of articulated joints. A distal end of the robot arm can be moved in respect to the base section within a three-dimensional space into any desired position and orientation, referred to hereinafter as location.
Generally speaking, robot calibration is the process where software is used to enhance the position accuracy of a robot. Its aim is to identify the accurate kinematic properties of the robot that will establish precise mapping between joint angles and the position of the end-effector at the distal end of the robot arm in the Cartesian space. There could be many sources of error that result in inaccuracies of the robot position, including manufacturing tolerances during the production of the robot, thermal effects, encoder offsets, arm flexibility, gear transmission errors and backlashes in gear transmission.
Given the importance of high accuracy robots in many industrial applications, it is natural to have many researchers in the robotics community interested in this problem. The known methods are typically categorized into three levels, based on the error sources they address: (i) joint-level errors (e.g. joint offset), (ii) kinematic model errors, and (iii) non-geometric errors (e.g. joint compliance). The known approaches can further be classified into open-loop and closed-loop calibration methods.
When a calibration system for an industrial application is to be developed, a number of requirements are generally considered that are advantageous if they are fulfilled. Specifically, the system must be able to provide the actual kinematic properties of the robot with high accuracy, require low execution time, render the robot accurate in a large volume of the workspace, adapt to the available workspace for calibration, be robust to factory conditions, require minimum human interference to operate, be portable and of low-cost. Most of the aforementioned requirements stem from the fact that there is the need of calibrating the robot periodically in-line during production, that is during conventional operation of the robot.
The problem of robot calibration can be decomposed into four stages, namely (i) kinematic modeling, (ii) pose measurement, (iii) error parameter identification, and (iv) error compensation. An analysis of each one of them is presented below.
It is acknowledged that the kinematic model chosen for the calibration process should satisfy three basic requirements, specifically completeness, continuity and minimalism. The first requirement is imposed, as the parameters in the model must suffice to represent any possible deformation of the robot geometric structure. The second criterion is taken into account due to the fact that there must be an analogy between the changes in the geometric structure and changes in the parameters that describe them. In other words, the kinematic model must be such that it represents small changes in the geometric structure by small changes in its parameters. Finally, a kinematic model must be minimal, as it must not include redundant parameters, but limit itself to those that are necessary to describe the geometric structure.
The Denavit-Hartenberg (D-H) convention is regarded as a systematic approach which simplifies the modeling of the robot kinematic properties and fulfills in most cases the aforementioned considerations. According to the D-H convention, each link of the robotic arm is assigned four parameters, namely link length (ai), link twist (αi), link offset (di), and joint angle (qi).
While the D-H model is widely used in the robotics community, an issue arises when two consecutive joint axes are parallel or nearly parallel, due to the fact that small changes in the geometrical characteristics of the robotic links may result to abrupt changes in the values of the associated D-H parameters. Hayati et al. addressed this issue by modifying the D-H model and using an additional angular parameter β. However, for similar reasons as above, this approach is not suitable for modeling two consecutive perpendicular or nearly perpendicular joint axes. It is thus suggested to model the kinematic properties of a robot using the D-H parameters, and include Hayati et al. parameters for (nearly) parallel joint axes.
While other kinematic models have been suggested in the literature, such as the S-model by Stone et al. and the complete and parametrically continuous (CPC) model by Zhuang et al., the D-H and Hayati models dominate in the robotics community. It must be noted that the calibration model may not be restricted only to geometric parameters, but instead, be enhanced with elasticity factors (e.g. joint/link stiffness).
In the pose measurement stage, the robot moves to a number of poses, which typically satisfy some constraints (for example, the end-effector must lie in the field-of-view of the sensors or target a specific point in the environment etc.), and the joint angles are recorded. External sensors are used to give feedback about the actual location (position and orientation) of the end-effector, and these locations are compared with the predicted ones based on forward kinematics (using the joint angles recorded). The errors observed are recorded and will be used in the next stage (i.e., error parameter identification) to find those kinematic parameters that minimize them.
The most important factors for selecting the measuring system include the amount of human interference required, its cost, its execution time, and its performance in the factory environment. While it is not necessary to estimate the complete location of the end-effector to carry out calibration, measuring systems which extract the complete 6D location of the end-effector (position and orientation) enable calibration methods to use a smaller number of calibration locations (since more constraints are applied in each measurement).
It is noted that the set of calibration locations selected is important for the quality of the calibration methods. A different combination of locations is able to improve or worsen the results obtained.
Given the set of location measurements conducted in the previous stage, the respective errors between the predicted and the actual locations of the end-effector can be computed. The aim of this stage is now to determine the parameter values in the kinematic model that minimize this error, preferably in a least mean square sense. Many approaches have been suggested in the literature, with Levenberg-Marquardt being the most popular.
It is noted that a good initial guess for the actual values of the unknown parameters is important so that the parameter estimation algorithms to be efficient and converge quickly. It is thus suggested to assign to the kinematic parameters their nominal values at the start of the iterative optimization process, as the actual ones will not differ significantly.
It is common for many known methods to avoid changing the kinematic parameters in the robot controller. Instead, many known methods prefer to correct the position error through solving the inverse kinematics for the target Cartesian position of the end-effector using the new kinematic parameters—as identified in the previous stage—and sending to the controller the new joint angles.
It is an object of the present invention to propose a new calibration method and calibration system which is easy and cheap in its realization and which provides for a fast and highly accurate in-line calibration of an industrial robot.
This object is solved by a method for in-line calibration of an industrial robot of the above-mentioned kind characterized in that
In order to enhance the information content of the characteristic parameters determined and in order to be able to update the kinematic model of the robot with a higher accuracy, according to a preferred embodiment of the invention, it is suggested that the light rays generated by the at least one light source extend in at least two orthogonal planes. Of course, the present invention works perfectly well even if this preferred embodiment is not realized.
In the present patent application the term “location” comprises a position (e.g. x, y, z in a Cartesian coordinate system) as well as an orientation (e.g. a, b, c around the x-, y-, z-axes) of the distal end of the robot arm. Another term “pose” is used for describing a certain status of the robot arm with the chain links and the joints being in certain positions, orientations and angles. Due to the high degree of freedom regarding the movement of the distal end of the robot arm of an industrial robot, it is possible that one and the same location of the distal end can be achieved with different poses of the robot arm.
The distal end of the robot arm can also be called the flange. An end effector (the actual tool with the tool center point TCP) is fixed to the flange.
The present invention refers to a particular advantageous method for in-line calibration of an industrial robot. It starts with driving the distal end of the robot arm by means of control signals issued by the robot controller to a previously defined calibration location (position and orientation). In the calibration position a plurality of light rays emitted by the light source impact on the two-dimensional sensitive surface of at least one optical position sensor. The sensor comprises, for example, a digital camera having a CMOS or a CCD chip as the sensitive surface, in cooperation with appropriate image processing software. The sensor may also comprise a position sensitive device PSD having a laminar semiconductor as a two-dimensional sensitive surface. The light rays could be directed in order to impact on one and the same PSD. In that case the optical position sensor would either be adapted to detect and determine the position of a plurality of light rays impacting the sensor contemporarily (e.g. like a digital camera) or alternatively (e.g. if the sensor was a PSD) the light source could be controlled in order to emit one light ray at a time, wherein the plurality of light rays is emitted sequentially, with the distal end of the robot arm remaining in the same calibration location during the emission of all light rays. It is also possible that the optical position sensors of the calibration system used in connection with the present invention comprise a combination of different two-dimensional sensor devices, for example PSDs and digital cameras.
It is suggested to use at least one optical position sensor and at least three light rays directed to the one or more sensors in the end-effector's calibration location or each of the calibration locations. In order to enhance the accuracy of the calibration method, for example two, or preferably at least three optical position sensors are used in the or each calibration location.
The calibration system can comprise one or more light sources. If the system comprises only one light source, this would be adapted to emit a plurality of light rays, for example by means of appropriate optics. If the system comprises a plurality of light sources each light source is adapted to emit one or more light rays. Furthermore, the calibration system can comprise one or more optical position sensors. If the system comprises only one sensor, the at least one light source is controlled such that the light rays impacting on the sensor are emitted one after the other. Even though the light rays are emitted sequentially, they are emitted for the same calibration position. For each light ray the iterative process for driving the distal end of the robot arm such that the light spot on the sensor moves towards the position of the previously defined light spot and the further steps of the method are executed. This is described in more detail below. If the system comprises a plurality of sensors the light rays are emitted contemporarily and the iterative process and the further steps of the method are performed contemporarily for all light rays impacting on the different sensors.
The robot controller generates and emits control signals to the robot's actors which cause the distal end of the robot arm to move into a previously defined calibration position. In the calibration position a plurality of light rays impacts at least one PSD contemporarily or sequentially. The position (x, y) of each light ray on the sensitive surface of the PSD is determined. Then in the course of an iterative closed-loop control process the distal end of the robot arm is moved by means of control signals issued by the robot controller such that the light spots generated by the light rays impacting the sensor(s) are moved towards previously defined positions of the light spots, which characterize the calibration location of the distal end of the robot arm in a previous state of the robot. The previous stage of the robot is, for example, a cold state of the robot, whereas the calibration method is executed in a later stage, when the robot has warmed up.
When the current positions of the light spots on the sensor(s) have reached the predefined positions characterizing the calibration location of the distal end of the robot arm in the previous state of the robot, the iterative process is stopped. The light spots are considered to have reached the predefined positions on the sensors if an error, for example a least mean square error, between the current positions of the light spots and the predefined positions has reached a minimum. Preferably, a sensitivity matrix (or Jacobian matrix) is used during the iterative process for moving the actual light spots towards the predefined positions of the light rays on the sensors, for determining the current position of the distal end of the robot arm. The sensitivity matrix will be described in more detail below.
Then, characteristic parameters of the robot arm are determined, which unambiguously characterize the location of the distal end of the robot arm in the robot controller. In particular, the characteristic parameters comprise, for example, the position (x, y, z) of the distal end of the robot arm and the rotation (a, b, c) of the distal end around the x-, y-, z-axes. The characteristic parameters can also comprise the angles (q1, q2, . . . , qNumberDOFs) of the robot arm's joints. Of course, it is possible to determine other characteristic parameters, too. It is emphasized that the position (x, y, z) of the distal end is different from the positions (x, y) of the light rays impacting on the optical position sensors.
The determined characteristic parameters are compared to the corresponding characteristic parameters which have been determined in that calibration location for the predefined positions of the light spots on the sensors in the previous state of the robot. The previously defined characteristic parameters of the robot define a kinematic model of the robot in the previous state. This kinematic model in the previous state of the robot corresponds to the robot signature. Differences between the characteristic parameters determined and the corresponding previously defined characteristic parameters are used to update the kinematic model of the robot. The kinematic model can comprise, for example, the Denavit-Hartenberg and/or the Hayati parameters. An initial approximation of the robot signature (i.e. nominal kinematic model) can be determined based on kinematic information obtained by the manufacturer of the robot. This information can comprise the number of links and joints of the robot arm, the type of joints (their degree of freedom), the length of the links, etc. The information can also consist of CAD-data regarding the robot.
During a subsequent conventional operation of the robot the robot arm is moved into a desired location by means of control signals issued by the robot controller. The movement of the robot arm into the desired position is based upon the updated kinematic model. In the updated kinematic model inaccuracies of the robot arm occurring during the conventional operation of the robot have been accounted for. Therefore, the use of the updated model during the conventional operation of the robot can correct the original location of the distal end of the robot arm, the original location resulting from control signals issued by the robot controller based on the nominal kinematic model. The corrected location of the distal end takes into consideration possible inaccuracies of the robot. Hence, with the present invention the accuracy of the robot can be significantly enhanced. The inaccuracies result, for example, from thermal effects and other mechanical inaccuracies of the robot's kinematic model.
The described calibration method for updating the kinematic model of the robot does not necessarily have to be executed all at once. For example, it would be possible to interrupt the conventional operation of the robot and to execute the described calibration method, but only for some of the calibration poses. Thereafter, the conventional operation of the robot can be continued, before after a while, the operation is interrupted and the described calibration method is executed again, but this time for different calibration poses than during the first interruption of the conventional operation. After some time and after a certain number of interruptions of the conventional operation of the robot and after a certain number of executions of the calibration method according to the present invention for different calibration poses, the kinematic model is updated. The advantage of this is that the conventional operation of the robot can be continued only interrupted from time to time only for a short time in order to execute the calibration method without any disturbance of the actual operation of the robot. So the present invention can be considered a true in-line calibration method.
Preferably, the sensitivity matrix is used for driving the robot by means of the iterative closed-loop control process such that the positions of at least three light rays which impact on the sensor or on the at least one of the sensors are moved into the previously defined positions characterizing the calibration location of the distal end of the robot arm in the previous state of the robot. The sensitivity matrix may be determined before the actual calibration of the robot during a previous state, e.g. a cold state of the robot.
Sensitivity matrix is computed by sending control signals issued by the robot controller to move the robot flange by small displacements for each degree-of-freedom (small translations dx′, dy′, dz′ and rotations da, db, dc) and observing the changes in the sensor measurements of the (x, y) positions. The displacements are initiated by control signals issued by the robot controller. The changes in the characteristic parameters (e.g. changes in the Cartesian coordinates of the distal end of the robot arm) are stored in the sensitivity matrix together with changes in the positions (x, y) of the light rays impacting on the sensor or on at least one of the sensors resulting from the displacements of the distal end of the robot arm. Hence, the sensitivity matrix establishes logical links between the changes of the position of the light spots on the sensors on the one hand and the location (position and orientation) of the distal end of the robot arm on the other hand.
Furthermore, during the previous stage of the robot, additional information characterizing the robot can be acquired and stored. For example, for each calibration position and for each of the respective small displacements not only the changes in the location of the distal end of the robot arm but also the absolute position values of the distal end in respect to an external coordinate system can be acquired and stored. These absolute values can be stored in the robot controller on in any external computer.
The absolute values can be determined, for example, by means of a laser tracker located in a defined relationship to an external coordinate system and to the robot base. The laser tracker allows an exact determination of the position and orientation of the distal end of the robot arm in the calibration location and each of the small displacement locations, into which the distal end is moved during acquiring of the characteristic parameters and their changes, respectively, for the sensitivity matrix. Alternatively, if no laser tracker is available, it would also be possible to use the respective values of the position and orientation of the distal end of the robot arm in the calibration location and each of the small displacement locations, these values taken from the robot controller. Of course, these values are afflicted with slight inaccuracies but are still accurate enough for moving the distal end of the robot arm into the calibration location during the calibration method.
Preferably, the iterative closed-loop position control process is, for example, the so-called BestFit-process described in detail in DE 199 30 087 B4. The content of this document is incorporated into the present application by reference, in particular regarding the embodiment and functioning of the BestFit-process. The training phase mentioned in DE 199 30087 B4 corresponds to the acquiring of the values for the sensitivity matrix in the present invention. The image data mentioned in DE 199 30 087 B4, based upon which the sensitivity (or Jacobian) matrix is determined and the distal end of the robot arm is moved in order to move the current positions of the light spots on the sensors towards the previously determined positions of the calibration location, correspond to the position data (x, y) the sensors generate depending on the current positions of the light spots. Of course, other closed-loop position control processes could be used, too.
Preferably, the at least one light source generates light rays within a frequency range of approximately 1013 to 1016 Hz, in particular having a wavelength of light visible for the human eye, in the range of 400 nm to 700 nm. However, the light source could also be adapted to generate IR- and/or UV-light rays. The at least one light source may comprise a laser for emitting a laser light ray or at least one semiconductor light source, in particular a light emitting diode LED.
Preferably, the calibration method described for only one calibration location is repeated for a plurality of calibration locations. A sensitivity matrix is determined for each of the calibration locations during the previous state of the robot. The differences of the characteristic parameters determined after the iterative closed-loop process for each of the calibration locations are used for updating the kinematic model of the robot. Furthermore, the method is preferably repeated for a plurality of different calibration poses of the robot arm for each calibration location, each calibration pose corresponding to certain angle values of the articulated joints of the robot arm. A sensitivity matrix is determined for each of the calibration poses during the previous state of the robot. The differences of the characteristic parameters determined after the iterative closed-loop process for each of the calibration poses are used for updating the kinematic model of the robot. The number of calibration poses needed for calibrating the robot depends on the complexity of the robot and the robot arm, respectively. In simple robot arm configurations or in situations where only part of the kinematic model of the robot is to be updated, even one calibration location and one or two corresponding calibration poses may be sufficient to calibrate the robot. In other cases more (e.g. at least five, preferably at least ten) different robot poses are used for determining all kinematic parameters of the robot in order to obtain a complete and precise updated kinematic model. Often, the kinematic model of a conventional industrial robot comprises at least 30 characteristic parameters. Each calibration pose provides for six equations and, hence, for the determination of at the most six robot calibration parameters. In order to compensate the influence of noise or other disturbances, it is suggested to choose the number of calibration poses such that the overall number of equations which can be formed in the various poses is much larger than the number of calibration parameters to be determined for the kinematic model of a certain type of robot.
It is possible that the calibration system comprises different sets of optical position sensors, each set comprising a plurality of sensors and being associated to at least one calibration location. This means that the generated light rays impact on at least some of the sensors of a first set of sensors in a first calibration location of the distal end of the robot arm and impact on at least some of the sensors of a second set of sensors in a second calibration location. Of course, it is possible that at least one of the sensors of the first set of sensors is identical to at least one of the sensors of the second set of sensors. Hence, the at least one sensor is part of the first set of sensors and of the second set of sensors.
Furthermore, the object is solved by a calibration system for in-line calibration of an industrial robot of the above-mentioned kind characterized in that the calibration system comprises means for executing the calibration method according to the present invention.
Finally, the invention proposes an industrial robot of the above-mentioned kind, characterized in that the industrial robot comprises a calibration system according to the present invention for effecting an in-line calibration of the robot.
Further features and advantages of the present invention are described and will become more apparent by the following detailed description of preferred embodiments of the invention and by taking into consideration the enclosed drawings. The figures show:
In the following the calibration system according to the present invention is described in enabling detail. The calibration system offers in-line compensation of inaccuracies in robotic applications. Further the system is portable, highly accurate, time-efficient and cost-effective. In the following the system and method are described using the example of thermal compensation. Of course the invention is not limited to the described example of thermal compensation. There are many sources of errors that result in inaccuracies of the robot position, including manufacturing tolerances during the production of the robot, thermal effects, encoder offsets, arm flexibility, gear transmission errors and backlashes in gear transmission. All these can be compensated by the calibration method and system according to the present invention.
Furthermore, the invention is not limited to special types of two-dimensional optical position sensors but could be used with any type of adapted sensor irrespective of its technical design and function, as long as it is adapted to detect and measure a two-dimensional position of a light spot generated by a light ray which impacts the sensitive surface of the optical position sensor. The sensors may be positions sensitive devices PSDs or digital cameras with an appropriate image processing system or any other type of optical sensor. It is also possible that if a plurality of sensors is used, the sensors can be of different types. It is further acknowledged that the invention is not limited to a certain types of light sources but can be used with any type of light source irrespective of its technical design and function, as long as it is adapted to emit a light ray in a frequency region comprising frequencies within the visible as well as within the invisible (e.g. IR- or UV-light rays) frequency regions. The light sources can be embodied as Lasers or LEDs or any other type of light source. It is also possible that if a plurality of light sources is used, the light sources can be of different types.
The core idea of this calibration system can be described as follows: Suppose that we have two robot states, namely s1 and s2, with s1 being the robot state during the initial setup, where no thermal effects appear, and s2 being its state after the occurrence of such effects. Given that thermal effects deform the robot kinematic properties, if we command the robot to move to the same joint angles Q in both states s1 and s2, the Cartesian location (position and orientation) of the end-effector X will differ (Xs1(Q)≠Xs2(Q)). The same Cartesian location of the end-effector can then be obtained in the two states, if the robot is commanded to move, for each state, to slightly different joint angles, namely Xs1 (Q1)=Xs2 (Q2), with Q2=Q1+ΔQ. The calibration system according to the present invention is able to measure these angles ΔQ, and to infer through them the deformations occurred in the kinematic model in state s2.
In order to carry out the aforementioned procedure, we need: (i) a measurement process that records the locations of the end-effector, during the initial setup (so-called previous state of the robot), possibly with respect to an external frame of reference; (ii) a method for recovering the original location of the end-effector during the actual calibration process carried out after the measurement process, when the robot is in a different state and the kinematic model of the robot has changed, in order to measure the characteristic parameters, for example the joint angles ΔQ (in other words, we need a process that will be executed in state s2 and return the joint angles Q2 that will move the end-effector at pose Xs1 (Q1)); (iii) a process that will verify with high accuracy that the end-effector has recovered its original pose; (iv) a method to identify the error parameters in the kinematic model, given Q1 and ΔQ; and finally, (v) a process that will be able to compensate the deviations in the position of the end-effector, using the updated kinematic model, during the conventional operation of the robot.
The calibration system according to a preferred embodiment of the present invention includes:
As has been discussed, a common approach followed in the literature for modeling the kinematic properties of a robot and for obtaining a kinematic model of the robot are the Denavit-Hartenberg (D-H) parameters. An issue arises, however, with this model when two consecutive joint axes are parallel or nearly parallel. In this case, small changes in the geometrical characteristics of the robot links or joints may result in abrupt changes of the values of the corresponding D-H parameters. Hayati et al. addressed this issue by modifying the D-H model and using an additional angular parameter β. This parameter is included in the model, only for those two consecutive joint axes that are (nearly) parallel. An example for the D-H/Hayati parameters extracted for the robot shown in
The transformations that relate the position and orientation of frame i with respect to frame i−1 are given by:
i-1
T
i=Rotx(ai-1)·Translx(Li-1)·Rotz(θi-1)·Translz(di-1)
where Rotj(u) and Translj(u) denote the rotation and translation along axis j by u, respectively. For the non-parallel consecutive axes (thus, for all pairs of axes besides the transformation between joint axes 2 and 3), the transformation i-1Ti is given by:
where the D-H parameters correspond to joint axis i−1. For the pair of joints 2 and 3, the transformation is given by using the Hayati parameter β instead of parameter d:
The location (position and orientation) of the end-effector 6 with respect to its base frame can be computed through forward kinematics, namely:
0
T
EE=0T1·1T2 . . . 5T6·6TEE
Of course, other transformations could be applied, too, depending on the type of the robot 1 used (e.g. type of joints, number of degrees of freedom DOF), as well as depending on the definition of the kinematic model of the robot 1 used.
The relation between the characteristic parameters and the values of the kinematic model, for example the D-H/Hayati-parameters, is the following: For joint angles Q=(q1, q2, . . . q6), it can be computed where the end-effector 6 is located in the Cartesian space (x, y, z, a, b, c) if we know the kinematic model of the robot (e.g. the D-H/Hayati parameters). When the robot 1 is not calibrated, the robot controller la uses the nominal kinematic model (that is only in approximate correct), and for the joint angles (q1, q2, . . . q6) can predict only in approximate where the end-effector 6 is in the Cartesian space. While after calibration, with the kinematic model updated and accurate, the robot 1 can be operated with high accuracy, for given joint angles (q1, q2, . . . , q6) what are the actual Cartesian coordinates (x, y, z, a, b, c) of the end-effector 6.
According to the described preferred embodiment, the calibration procedure is carried out in three stages. First, there is an initial setup stage where the reference calibration locations of the end effector 6 and the reference calibration poses of the robot arm 3 are selected, training data are collected and the robot signature comprising kinematic parameters of the robot in its initial state (e.g. in its cold state) is computed. This process is carried out off-line and only during the initial setup of the system. The second stage takes place during the operation of the robot 1 in a different state (e.g. in its warmed up state), collecting periodically in-line measurements and updating the kinematic model. The last stage is carried out while the robot 1 operates conventionally and performs its actual task, and serves for correcting any location deviations of the distal end 6 of the robot arm 3 due to thermal effects or other inaccuracies in the robot's mechanics, using the updated kinematic model. The various stages of the calibration method are described below in more detail.
The main processes performed during the initial setup are the selection of calibration locations of the end effector 6 and the corresponding calibration poses of robot arm 3, the pose measurement with respect to an external frame of reference, the collection of training data (the result of location measurements) that will be used for recovering the original Cartesian location of the end-effector 6 after the occurrence of thermal effects or other sources of error, as well as the identification of the robot signature. Each one of these processes is described in detail in the following.
In the process of reference pose selection, firstly potential locations of the end-effector 6 are identified, which could be used as calibration locations during the calibration. The constraint that these locations in this embodiment should satisfy is for the three light sources 7 mounted on the end-effector 6 to point simultaneously to the areas 21 of three sensors 12. While all of these locations could theoretically be used during calibration, there are time constraints imposed to the system in order to be practical for in-line application. Therefore, a subset of N possible locations is kept, with N being (i) large enough to provide sufficient information for calibrating the robot 1; and (ii) small enough to render the calibration process practical for in-line operation, in terms of execution time.
For example,
In order to select the N locations which maximize the provided information on the kinematic errors, an algorithm is implemented that takes as input a set of candidate calibration locations, and by means of a search process identifies the subset of locations (N in size) which optimizes an evaluation criterion. In the present example, the maximization of the minimum singular value of the identification Jacobian matrix has been chosen as evaluation criterion. Of course, other evaluation criteria could be used, too. Various search processes can be used, including but not limited to, genetic algorithms, simulated annealing, or local search methods with multiple iterations for checking various initial conditions (in order to avoid local maxima).
During the initial setup, the Cartesian location of the end-effector at the various reference robot poses Q can also be recorded with another external frame of reference, for example by means of a laser tracker, a Coordinate Measuring Machine CMM or a similar tool, in order to associate measurements in the optical sensors with the absolute coordinates of the distal end of the robot arm (as measured by the external tool—e.g. laser tracker). Given that three light sources 7 have been mounted to the robot 1 that point towards the three sensors 12, this can be achieved by recording at each calibration location the 2D coordinates x, y of the light spots 20′ on the three PSDs' surfaces 21. For the further description, the position of these spots 20′, as recorded during the initial setup, will be called nominal positions, and will be denoted by F0(Q). Thus, in the present embodiment F0(Qi) is a 6×1 vector that includes in a concatenated manner the respective (x, y) coordinates of the light spots 20′ on the three PSDs 12, when the robot 1 and the robot arm 3, respectively, is at pose Qi during the initial setup, when the robot 1 is in its so-called previous state (e.g. a cold state).
The sensitivity matrix is an image Jacobian matrix in this example. It is assumed that m image features are detected by a camera as described in DE 199 30 087 B4. F is to be the position of the features observed in image coordinates (thus, F is a 2m×1 vector), and X is to be the 6D Cartesian location of the camera. Also F0 is to be the nominal position of the image features, as observed when the camera location is X0. Naturally, if the camera is at pose X0+dx, the image features will be observed in position F1=F0+df. The sensitivity matrix has the capacity to give an estimation of dx (namely, the deviation of the camera from its nominal location), when the image features are observed at F. More specifically,
dx=J*·df,
where J* is the Moore-Penrose pseudoinverse of the sensitivity matrix J. It should be noted that the sensitivity matrix assumes a linear relation between dx and df, which is true in approximate and only in a region close to the nominal pose X0. Hence, a different sensitivity matrix should be used for distinct nominal locations of the camera. In general, there are two common approaches to produce a sensitivity matrix for the respective nominal location, namely (i) the analytic approach, which necessitates knowledge of accurate geometric properties of the setup; and (ii) the training approach, where the camera moves in various poses around its nominal position, records—for known dx—the changes observed in df, and computes the sensitivity matrix that best fits df to dx.
In the present setup, the same concept is used, with the only difference being that the 2D coordinates x, y of the centers of laser spots 20′ on the PSDs 12 are observed, instead of the image coordinates of certain features gathered by a camera. In order to produce a sensitivity matrix for each calibration pose and for each calibration location, the training approach described above during the initial setup is followed.
A further process that takes place during the initial stage is the identification of the robot signature. This means that the true kinematic parameters of the robot 1, which define the robot's signature, are identified. While the manufacturer of industrial robots 1 provides the same kinematic model for all robots 1 of the same type (nominal kinematic model), this is valid only in approximate, as the true kinematic model differs between different robot units of the same type due to manufacturing inaccuracies, the effect of aging, thermal effects etc.
According to a preferred embodiment of the invention, a laser tracker or a similar tool is used in this stage for associating nominal values in PSDs 12 with the corresponding absolute positions in a Cartesian coordinate system. The use of the laser tracker is described in more detail below. Its usage is necessary only during the installation phase of the system. However, the present invention would work perfectly well without a laser tracker. In that case the values of the kinematic parameters in the current calibration location and possibly the current calibration pose of the robot arm 3 are not determined as absolute values by means of a laser tracker or a similar tool but rather based on the possibly error afflicted values taken from the robot controller la.
The next stage (corresponding to the actual robot calibration) is carried out in-line (i.e. during the robot's normal operation), and (i) collects measurements—namely, the respective ΔQ for each calibration location—that will be used for updating the robot's kinematic model; and (ii) identifies the errors in the kinematic model of the robot 1. The two main steps executed in this stage are the location recovery process and the error identification process.
For the location recovery process, it is assumed that the robot 1 is at state s2, that is in its state after the occurrence of parasitic effects, where for example thermal effects have deformed the mechanical components of the robot 1 leading to inaccuracies in the kinematic model. The location recovery process is responsible, for each reference pose Qi1, to measure the corresponding joint angles Qi2 or other characteristic parameters that will drive the end-effector 6 to its original Cartesian location (as measured in the previous robot state s1), namely Xs1(Qi1)=Xs2(Qi2). It is noted that Qi2 is expected to be close to Qi1.
In order to achieve that, the robot 1 is instructed by a robot controller 1a to move to each of the predefined calibration locations and into each of the calibration poses. Suppose that the robot 1 is at reference pose Qi1, with the three light sources 7—which are mounted on the robot's end-effector 6—pointing to the three PSDs 12 at the actual positions 20. The measurements from the PSDs 12 will return the vector F(Qi1). As discussed above, the nominal positions 20′ of the three light spots in the respective calibration location in the calibration pose Qi1 are given by F0(Qi1). In case less than three sensors 12 for each calibration location are used, and thus, two or more light rays point to the same sensor 12, the vector F0(Qi1) can be extracted by switching on/off with a time controller the light sources 7. The difference between F(Qi1) and F0(Qi1), along with the sensitivity matrix for the specific pose (i.e. J(Qi1)), will return what should be the relative movement dx of the end-effector 6, in order to recover its original, previously defined location Xs1(Qi1), in which the actual position 20 of the light spots would correspond to the previously determined and stored nominal position 20′:
dx=J*(Qi1)·[F0(Qi1)−F(Qi1)]
This is an iterative process, where the measurements of the actual position 20 on the PSDs 12 are updated, until the end-effector 6 reaches the Cartesian location Xs1(Qi1) and the actual position 20 of the light spot(s) is as close as possible, preferably identical, to the nominal position 20′.
Depending on the time constraints, the recovery process can be executed either consecutively for all calibration locations, or with interruptions (during which the robot 1 can be conventionally operated), collecting measurement data for each calibration location sparsely (that is for example, the robot collects data for two calibration locations, then it returns to its normal operation, then back to collecting data from additional two calibration locations, and repeating that until sufficient data is collected from the required number of locations).
Preferably, backlash effects are addressed in order to achieve accurate calibration data. In particular: (i) the robot 1 is driven to the calibration pose, always starting from the same home position, making first a relative joint movement. This relative movement should move the joints 5 in the same direction, as they are moving when going from the calibration pose to the home position; (ii) the iterative closed-loop control process used for moving the laser spots 20 in the direction of the nominal positions 20′ and thereby guiding the end effector 6 in its predefined calibration location can be carried out in multiple stages with hysteresis compensation.
The aim of the error identification process is (i) to identify the errors in the kinematic model of the robot 1 and (ii) to update its kinematic parameters. It has been designed to take as input the outcome of the location recovery process described above, for example (i) the set of joint angles (q1, q2, . . . , qNumberDOFs) or the positions (x, y, z) and the orientation (a, b, c) around the x-, y-, and z-axes, that drive the end-effector 6 to the calibration location in the initial setup (i.e. Qi1)—if a laser tracker or a similar tool is available in the initial setup, then the values (x, y, z, a, b, c) are given by this measurement tool, instead of the robot controller 1a; and (ii) the respective set of joint angles or position and orientation values (as provided by the robot controller 1a) that currently move the end-effector 6 at the same Cartesian location (i.e. Qi2), where thermal effects or other sources of errors or inaccuracies may have occurred and the robotic kinematic model has been changed. In the present system, the error identification process is handled as an optimization problem, where the kinematic parameters under calibration, including—for example—the values of the Denavit-Hartenberg/Hayati parameters (defining the kinematic model of the robot 1), that minimize the error between predicted and actual location of the end-effector 6 are searched for.
In particular, the concept of the identification Jacobian matrix is used, which expresses the resulting changes that should be expected in the Cartesian location of the end-effector 6, when small changes occur in the kinematic parameters of the robot 1. Let Jid(Q) denote the identification Jacobian matrix at calibration pose Q, and X(Q) denote the Cartesian position of the end-effector 6 with respect to the robot base 2 at pose Q, as given by the current estimation of the kinematic model. Given that the measured Cartesian position of the end-effector 6 at pose Qi2, for the current warmed up state of the robot 1 (pose of the robot arm 3), is given by the original position at Qi1, namely X(Qi1), the error between predicted and measured Cartesian location of the end-effector 6 can be expressed as:
DP=X(Qi1)X(Qi2)
The value of X(Qi2) is computed based on forward kinematics and the system's belief of the current kinematic model parameters. For absolute calibration, and given that a laser tracker or a similar measurement tool has been used in the initial stage, the value X(Qi1) has been measured directly and stored during the installation phase using the measurement tool (e.g. the laser tracker or a similar tool). If we denote by DV the errors in the kinematic parameters, then:
DP=J
id(Qi2)·DV
As will be seen below, the value of the identification Jacobian matrix depends on the joint angles, as well as the current belief of the kinematic parameters. Therefore, the above equation is solved with respect to DV iteratively, updating—at each iteration—the values of Jid and DP. The iterative updating of DP is given by:
DP=X(Qi1)−W
where W is the current belief for the location of the end-effector, as computed based on forward kinematics and the updated kinematic model from the previous iteration.
It is noted that the above equation is actually solved by concatenating the vector DP and the matrix Jid, by adding new rows for each calibration location/pose. For a single calibration pose, the identification Jacobian Jid is a 6×M matrix, where the rows correspond to the degrees of freedom in the Cartesian space of the end-effector, and the columns correspond to the M kinematic parameters under calibration. If the number of calibration poses used is N, then the number of rows in the identification Jacobian will be 6N. Of course, a similar process can be followed if a smaller number of degrees-of-freedom of the end-effector 6 is considered. In that case just fewer rows need to be added in the identification Jacobian matrix.
In the third stage of error compensation it is assumed that the robot 1 has already been calibrated (as described above). The updated kinematic model is used for correcting inaccuracies that may appear in the position of the robot 1 and the location of the end effector 6, respectively, during its conventional operation.
More specifically, again s1 is the robot state during the initial setup, where no thermal effects and other effects due to other inaccuracies appear, respectively, and s2 is the robot's current state, where such effects have occurred, as previously defined. The aim is to find the joint angles Q2 or other characteristic parameter values that will drive the end-effector 6 in state s2 at the same Cartesian location with Xs1(Q1), that is Xs1(Q1)=Xs2 (Q2). While in the calibration stage these angles ΔQ=Q2−Q1 were measured for the reference poses as part of the calibration process, now they have to be computed/predicted for all end effector locations and robot arm poses in the robotic workspace using the updated kinematic model. In the following it is assumed on an exemplary basis that the characteristic parameters are joint angles Qi. Of course, the explanations are valid for other characteristic parameters just the same.
In order to achieve this, at least three control points ci, with iε[1,3] at the reference frame of the end-effector 6 are used. Xs
Now the joint angles Q2 can be computed by using the basic Jacobian J. In particular, the equation below with respect to ΔQ is iteratively solved until the difference Xs
X
s
(Q1)−Xs
where Xs
Summing up, in the following the main aspects of the invention are briefly described once more. The aim is to move a robot 1 iteratively to a Cartesian location T* for many operation cycles. When programmed, the accuracy is not satisfactory for two main reasons: (i) absolute position inaccuracies, and (ii) thermal effects.
This means that the robot 1, even when it is still “cold”, when instructed to move to Cartesian location T*, will instead move to T*+dA. This is due to the fact that the robot controller 1a computes the control signals (e.g. joint commands) that will move the end-effector 6 to location T*, based on a nominal kinematic model that has been provided by the robot manufacturer for the specific robot type or calculated in any other way for the specific robot. However, the actual kinematic model differs between different robot units, even for robots 1 of the same type (due, for example, to manufacturing tolerances when producing the robots 1). Thus, the joint angles or the values of other characteristic parameters—computed from the robot controller 1a for moving the robot 1 to location T* using the nominal kinematic model—will actually move the robot to location T=T*+dA, wherein dA reflects the differences between the actual kinematic model and the nominal kinematic model.
As mentioned above, a second reason for inaccuracies is due to thermal effects. These effects cause the kinematic model of the robot 1 to temporarily change (e.g. links 4 to be elongated), and thus, result in deviations of the Cartesian location T of the robot 1 during its operation. If this thermal error is denoted by dB, then the actual robot location T will therefore be T=T*+dA+dB. It is noted that the thermal error dB changes during the operation of the robot 1, depending on the robot's thermal state.
The aim of the calibration system according to the present invention is to minimize the drift dA+dB in-line (during conventional operation of the robot 1) and to guide the robot 1 with particularly high accuracy to the desired Cartesian location T*. This is achieved by (i) identifying in-line the changes in the kinematic model of the robot 1, and (ii) computing the actual joint angles Q_act or any other characteristic parameter that will move the robot 1 to location T* based on an updated kinematic model. Thus, while the robot controller 1a would believe that joint angles Q would move the robot 1 to Cartesian location T*, but the end effector 6 would actually be moved to location T, instead the robot 1 is instructed to move at joint angles Q_act in order to minimize the drift dA+dB and to actually move to location T*.
Principally, the method is carried out in two stages. The first stage takes place off-line when the system is setup, for example when the robot 1 is still “cold”. During this stage some reference values and training data are collected that will be used in the second stage. The second stage takes place in-line during conventional operation of the robot 1 and is responsible for gathering calibration data for updating the kinematic model and for computing the joint angles Q_act that will drive the end-effector 6 of the robot 1 constantly to the desired Cartesian locations T* in absolute space, independently of the parasitic changes made to the kinematic model.
It is important for the calibration system to measure in-line with an external reference frame (provided by the PSDs 12 or by other types of optical position sensors) the angles of the joints 5 that move the robot arm 3 into predefined poses with known Cartesian coordinates of the predefined location of the distal end 6 in absolute space. In particular, according to an embodiment of the invention for each calibration pose of the robot arm 3, in which calibration data is collected:
(i) There are three spots on the PSDs surfaces 21 due to the incident rays from the laser probes 7. Given that there are three spots in total, and two-dimensional coordinates for each spot, six equations can be formulated, and thus, the relative Cartesian pose of the robot 1 with respect to the PSDs 12 can be determined. Given that the position and orientation of the PSDs 12 and the laser rays has not been registered, the only information received is the following: If two robot poses have the same spot coordinates on the PSD surfaces 21, then these poses will be the same, namely they will have exactly the same Cartesian coordinates. It is noted, however, that the values of these Cartesian coordinates cannot yet be extracted. This is addressed using the laser tracker, a CMM or a similar tool. It is noted that the three spots could also be measured by pointing multiple light rays to a single PSD 12.
(ii) The laser tracker or a similar tool can measure the absolute coordinates of the distal end 6 of the robot arm 3 in Cartesian space of any robot pose.
Combining the items (i) and (ii), using both the laser tracker or a similar tool and the hardware device of the calibration system (comprising laser probes 7/PSDs 12), we can move the robot 1 into various poses where the laser rays point to the PSDs 12 and hit the sensitive surfaces 21. Then, for each pose, the following procedure can be executed:
After having performed this procedure, for each calibration pose the nominal spot coordinates of the PSDs are associated with absolute coordinates in Cartesian space. Thus, the laser tracker is needed only during the installation phase of the system in order to establish the correspondence of PSD spot coordinates with absolute Cartesian coordinates.
After the installation phase, while the robot is conventionally operating and the calibration system works, the calibration can be continued without the laser tracker. In particular, for each calibration pose, the new joint angles that will result in the same nominal spot coordinates and thus, in the same Cartesian coordinates in absolute space, can be measured by applying the closed-loop control iterative process. Based on the mapping described above, i.e., between spot coordinates and laser tracker data, it is known at any time which joint angles will result in the known Cartesian coordinates in absolute space.
In the following the two stages of the calibration method, namely the initial setup and the in-line process, are described.
The initial set-up stage takes place without running production (offline before the conventional operation of the robot 1), when the system is installed for the first time. In this stage, the robot is assumed to be “cold”, while it is assumed that a laser tracker is available. The following steps are executed:
The in-line process stage is carried out while the robot 1 is operating, and the aim is to minimize the drift dx=dA+dB mentioned above. In this stage, the laser tracker is not required anymore. The main steps include: (i) Collection of calibration data; (ii) Error Identification; and (iii) Error Compensation. Below, each one of these steps is described:
Between operation cycles of the robot 1, calibration data is collected by instructing the robot 1 to move to the area of the PSD 12. In particular, for each reference pose that has been recorded in the initial setup the procedure given below is followed:
In other words, the above procedure provides information that the robot 1 actually rests in Cartesian pose X(i) in the current state when the joint angles are Q2(i), rather than Y(i) (as would have been predicted based on the nominal model). It is important that a rather high accuracy in the data collected (joint angles) is required. For this reason, path trajectories have been generated in the robot movements—when collecting calibration data—that minimize backlash effects.
After the steps above for all the reference poses have been followed, during the step of Error Identification the calibration data collected is used to update the kinematic model of the robot 1 using an optimization technique described above. In particular, the values of the Denavit-Hartenberg/Hayati parameters are searched which minimize the error between predicted (i.e., Y(i)) and actual poses of the distal end 6 of the robot arm 3 (i.e., X(i)) for the joint angles Q2(i).
The process described above summarizes the calibration procedure, where calibration data are collected and the kinematic model of the robot is updated. Given the updated kinematic model, it is now possible—in the step of Error Compensation—to compensate for any drift dx, and compute—for any pose in the robot workspace—the updated joint angles that will drive the robot 1 to the desired Cartesian pose T* in absolute space, compensating also for any thermal effects dA. In order to make clear the differences, the process Collection of Calibration Data described above is responsible for finding the updated joint angles in the PSD surfaces by applying the iterative closed-loop fitting process (calibration data), while the process described here is responsible for computing the updated joint angles that will drive the robot 1 with high accuracy in the whole workspace, using the updated kinematic model.
Assuming that the calibration process has been carried out, and the robot 1 must now return to its normal operation (e.g. measure car features, etc), an error compensation procedure is carried out to take into account the updated kinematic model, and compute the corrected joint commands.
If the desired Cartesian pose of the distal end 6 of the robot arm 3 is T*:
(i) Inverse kinematics and the nominal kinematic model are used to compute the joint angles Q that would drive the robot 1 to Cartesian pose T*.
(ii) Using forward kinematics and the updated kinematic model, the actual pose T of the distal end 6 is computed for joint angles Q.
(iii) An optimization stage is used to compute the joint angles Q+dq that minimize the error T*−T.
Number | Date | Country | Kind |
---|---|---|---|
12189174.1 | Oct 2012 | EP | regional |
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/EP2013/071726 | 10/17/2013 | WO | 00 |