This application claims the benefit of FR 2313582, filed on Dec. 5, 2023, which is incorporated herein by reference in its entirety.
The present invention relates to a method of adjusting a geometrical model of a multi-axis robot arranged in a room and equipped with a camera.
In the field of application of coating products by means of a multi-axis robot equipped with an application member, such as a print head, it is important to be able to accurately control the operation of the application member, in particular by taking into account the positioning of the application member relative to a surface to be coated. To this end, it is known to equip a multi-axis robot with a camera which makes it possible to identify the environment of the robot, in particular a surface to be coated, opposite which the application member has to be positioned.
To date, the position of the camera in the room, i.e. the position and/or orientation of a coordinate frame linked to the camera in a coordinate frame linked to the room wherein the robot is placed, is defined in a relatively inaccurate way.
Indeed, if a geometrical model of the robot is used, based on the assumption that the connection between the camera and the wrist of the robot is known and rigid and that the axes of the multi-axis robot, which are generally six, work perfectly, then the model used does not correspond to the physical reality of the robot equipped with the camera, because there are tolerances of mounting the camera on the wrist of the robot, because the position of the camera may have changed and because the robot as such is not perfect.
Similar problems arise with robots equipped with a camera and a tool that may be different from a member for applying a coating product.
In the field of surgery, it is known from CN115431278A to calibrate the position of the tool center (or “tool center point”-TCP) of a coordinate frame linked to a camera mounted on a multi-axis robot on the assumption that the robot is perfect. While such an approach can be considered in the case of a surgical robot, the approach cannot be transposed to an industrial robot, such as a coating product application robot, operating in a potentially disturbed and high-speed environment, to the point that the environment may not correspond to the theoretical model in terms of geometry, kinematics and/or dynamics.
It is also known from CN115533893A to determine the TCP of a camera by imposing on a robot to touch, by means of a tip, a profile in the form of a sphere. The implementation of such a method is complex and time consuming.
On the other hand, EP1555508A1 teaches how to use a measurement system by taking photographs of an object, while rotating a camera around an axis of the coordinate frame thereof, which reduces measurement errors. The method is also complex and time consuming.
CN115741720A also teaches calibrating the angular position of a sensor using computations based on the Levenberg-Marquardt method. The calibration thereby carried out is limited to the optimization of the point of origin of the angular measurement of the sensors and also makes the assumption that the robot used is perfect.
In addition, US2019/015991A1 teaches how to determine cost functions in a method for calibrating a vision device, on the basis of distances between observed features and mapped features, which is based in particular on a computation of the mapped features. This computation is envisaged in a two-dimensional model. Any inaccuracy in this computation can call into question the reliability of the calibration, and its application in three dimensions is complex.
It is such drawbacks that the invention aims more particularly to remedy by proposing anew method of adjusting a geometrical model of a multi-axis robot, taking into account the reality of the assembly between the camera and the wrist of the robot and the reality of the structure of the multi-axis robot, with a reliable approach which does not depend on the computation of mapped features.
To this end, the invention relates to a method for adjusting a geometrical model of a multi-axis robot arranged in a room and equipped with a camera, the model comprising a first matrix, for changing between a coordinate frame linked to the camera and a coordinate frame linked to a wrist of the robot, and a second matrix for changing between the coordinate frame linked to the wrist of the robot and a base coordinate frame linked to the room, the method comprising at least the following steps consisting in:
The method further includes at least the following steps consisting in
By means of the invention, the determination of the variables of the coefficients of the first matrix and the variables of the coefficients of the second matrix lead to an efficient adaptation of the geometrical model of the multi-axis robot, including with regard to the camera mounted on the wrist of the robot. The computation of the variables of the coefficients of the first matrix and of the second matrix makes it possible to take into account not only the assembly between the camera and the wrist of the robot but also the geometrical dimensioning of the robot as such, in particular due to an optimization of the modified Denavit-Hartenberg parameters. Moreover, the relationship between the integer numbers L and K, on the one end, and the number of variables of the geometrical model of the multi-axis robot ensures a sufficient number of equations for the computation to be satisfactorily efficient. No computation of a mapped feature has to be carried out, so that any inaccuracy in such a computation of a mapped feature does not call into question the overall reliability of the method.
According to advantageous but non-mandatory aspects of the invention, such a method can incorporate one or a plurality of the following features, taken individually or according to any technically permissible combination:
According to a second aspect, the invention relates to the application of a method as mentioned hereinabove for adjusting the geometrical model of a robot for applying a coating product equipped with a printing head or a coating product sprayer.
According to a third aspect, the invention relates to a robot equipped with a tool, a camera and an electronic control unit programmed to automatically implement a method as mentioned hereinabove.
The invention will be better understood and other advantages thereof will appear more clearly in the light of the following description, given only as an example and made with reference to the enclosed drawings.
Each of the targets C1, C2 and C3 comprises a certain number of remarkable points P1 to P4 for the target C1, P1 to P8 for the target C2, P1 to P7 for the target C3.
“L” denotes the number of remarkable points of a target, the number L being equal to 8 in the example of
The examples of targets shown in
As a non-limiting example,
The multi-axis robot 20 comprises an arm formed of sections articulated together about six axes A1 to A6, as well as a wrist 21 which forms the distal end of the arm. According to a variant of the invention (not shown), the wrist can be articulated with respect to the end of the arm of the multi-axis robot 20, about a seventh axis.
A print head 10, comprising a body 12 equipped with nozzles 14, is mounted on the wrist 21. Same is intended to apply a coating product, such as a paint or a varnish, to objects not shown, e.g. motor vehicle bodies.
The six axes of articulation A1 to A6 make it possible to deform the arm of the multi-axis robot 20 in order to move the print head 10 in space, opposite the surfaces of the objects to be coated.
A camera 30 is mounted on the wrist 21, being fastened thereto by appropriate mechanical means, e.g. screws or clipping members. The attachment of the camera 30 to the wrist 21 has to be strong enough to withstand the accelerations undergone by the camera while the robot is moving.
Advantageously, the camera is a CCD camera or a laser camera with one or two cameras, of the binocular and/or profilometer type.
A problem that arises with a multi-axis robot of the type shown in
The position of the camera in the room LO depends on the actual positioning of the camera 30 with respect to the wrist 21 of the robot and on the actual positioning of the wrist in the room LO.
The positioning of the camera 30 with respect to the wrist 21 can, in a first analysis, be approximated by assuming that the camera is immobilized on the wrist in a theoretical position corresponding to an assembly plan. The positioning of the wrist 21 in the room LO can, also in a first analysis, be approximated by using a theoretical model of the geometry of the multi-axis robot 20, in particular based on modified Denavit-Hartenberg parameters or DHM.
However, the approximations mentioned hereinabove lead to positioning errors, which can induce defects in the application of coating product by means of the print head 10, if the print head is not correctly positioned and oriented with respect to a surface being coated.
The method of the invention aims to reduce or even eliminate positioning errors. It is implemented iteratively, until the value of a function representative of a positioning error between remarkable points Pι observed on a target such as target C2 is reduced.
The model adjustment method of the invention is implemented in a calculator 40 which is represented in
Rcamera denotes a coordinate frame linked to the camera and RPG denotes a coordinate frame linked to the wrist 21.
The method of the invention provides for recording the position of at least remarkable points Pι of the target C2 by bringing the camera successively into two distinct image taking locations in the room LO where the multi-axis robot 20 is located, i.e. in two distinct locations with respect to a base coordinate frame BF fixed with respect to the room LO.
L denotes the number of remarkable points Pι of the target C2, the number L being a natural integer greater than or equal to 2, preferably greater than or equal to 3.
The number of the location of the camera is denoted k with k equal to 1 or 2 when locating a remarkable point Pι.
A location is defined by a location where the camera is located and an orientation of the camera during an image taking, i.e. during the identification of a remarkable point. A image taking location may also be called an image taking position or an aiming location.
For each image taking location k and each remarkable point Pι, the coordinates of the point in the coordinate frame Rcamera are expressed in the form of a vector comprising an abscissa, an ordinate and a height of the point in the coordinate frame. The vector vk1,lCamera is noted, expressing the coordinates of a remarkable point Pι for the location k, expressed in the coordinate frame camera Rcamera.
In a variant, the number of distinct image taking locations used is greater than or equal to three.
For the remainder of the present description, k1 and k2 are used to identify two distinct locations of the camera among the K locations that the camera can take to aim at the points Pι of the target while being moved by the wrist 21, with K a natural number greater than or equal to 2, preferably greater than or equal to 3.
The product of the numbers L and K minus 6, i.e. L*K−6, is greater than or equal to the number of variables of the geometrical model of the robot.
Thus, the position of a remarkable point Pι in the camera coordinate frame can be expressed in the form Vk1,lCamera when the camera is in the first location k1 and in the form Vk2,lCamera when the camera is in the second location k2.
Said positions of the remarkable points Pι can also be expressed in the coordinate frame RPG linked to the wrist in the form
The first change matrix can be expressed in the form
The variables X1, X2, X3 corresponding to a translation of the center of the coordinate frame Rcamera linked to the camera with respect to the center of the coordinate frame RPG linked to the wrist 21, while the variables X4, X5 and X6 correspond to rotation angles of the axes of the two coordinate frames with respect to one another. In the case of the matrix presented in equation 3, thereof are the angles of the roll-pitch-yaw convention. Another representation of the angles can be used.
The position of the remarkable points Pι is not known in the base coordinate frame BF but can be expressed in said coordinate frame, for each image taking location k, as a function of the position thereof in the coordinate frame RPG linked to the wrist 21 by applying to the position a second change matrix for changing from the coordinate frame of the wrist to the base coordinate frame.
TPG→BF or TkPG→BF refers to the second change matrix. Same is defined for each image taking location k of the camera, hence of the wrist 21.
In practice, the position of the coordinate frame of the wrist in the base coordinate frame depends on the image taking location wherein the camera 30 is located. The coordinate frame linked to the wrist when the camera is in the image taking location k can thus be expressed in the form RPG,kBF.
Therefore, there is, for each image taking location k, a change matrix for changing from the coordinate frame RPG,kBF linked to the wrist to the base coordinate frame BF. The change matrix is denoted Tk1PG→BF for the first image taking location and Tk2PG→BF for the second image taking location.
Thereby, as shown in
Advantageously, the second change matrix TkPG→BF is expressed using modified Denavit-Hartenberg parameters, also called DHM, as well as associated corrections, which serves to model the robot from the base 22 thereof to the wrist 21 thereof.
The modified Denavit-Hartenberg parameters are known per se. Same are also sometimes called Khalil-Kleinfinger parameters.
For example, the modified Denavit-Hartenberg parameters can be expressed, for each axis of rotation Ai of the multi-axis robot 20 as:
The following differences are also defined:
Under such conditions, the second change matrix which serves to change from a point of the coordinate frame RPG linked to the wrist to the base coordinate frame, can be expressed in the form
The expression is valid at each image taking location k, with k equal to k1 or k2. Jik represents the value of an angle of rotation of two parts of the multi-axis robot articulated about an axis Ai when the multi-axis robot 20 is in the image taking location k.
The coefficients PGs,wk of the second change matrix, where s and w are natural numbers comprised between 1 and 4, can be expressed as follows:
The modified Denavit-Hartenberg parameters αi, li, θi and ri are the theoretical values of the robot, whereas the quantities Δαi, Δli, Δθi and Δri are variables for the coefficients PGs,wk of the second change matrix TkPG→BF.
The geometrical model of the multi-axis robot 20 equipped with the camera 30 is denoted by Mod.
As can be seen in
During a step 1002, the geometrical model Mod is defined as an initial model Mod0 which is as such defined by a first initial transfer matrix T0Camera→PG and by a second initial transfer matrix T0PG→BF.
The first initial transfer matrix T0Camera→PG can be constructed by computation from the theoretical position of the camera 30 with respect to the wrist 21. The second initial transfer matrix T0PG+BF can be constructed from a theoretical geometrical model of the multi-axis robot 20.
The initial model Mod0 is used in the first part of the method, between steps 1004 and 1012 defined hereinafter.
In a following step 1004, the robot is brought into the first image taking location k1 where the camera 30 aims at the remarkable points Pι and marks same in the frame Rcamera linked to the camera. In the step 1004, for each point Pι, the coordinates thereof are expressed in the frame Rcamera in the form Vk1,lCamera
Then, in a step 1005, the camera 30 is moved to the second image taking location.
When the camera is in the second image taking location k2, during a step 1006 which follows step 1005, each remarkable point Pt is aimed at by the camera, and thus identified, and the coordinates thereof are expressed in the frame Rcamera linked to the camera in the form Vk2,lCamera.
In practice, each point Pι keeps the same position, whether it is located by the camera from the image taking location k1 thereof or whether it is located by the camera from the image taking location k2 thereof.
Thereby, the position of each remarkable point Pι in the base coordinate frame BF is not known but it is known that same is independent of the way in which the position is observed by the camera.
For each remarkable point Pι, a difference is defined vk1,k2,l between the positions thereof expressed in the base coordinate frame BF on the basis of the identification performed in the first image taking location k1 and the identification performed in the second image taking location, in the form
vk1,k2,l is thus the difference of the coordinates of a remarkable point Pι expressed in the base coordinate frame BF, from the coordinates thereof detected by the camera 30 in the coordinate frame Rcamera linked to the camera, from the first image taking location k1 and from the second image taking location k2.
Such difference is calculated by the calculator 40, for each remarkable point Pι, during a step 1008 of the method which follows steps 1006 and 1008.
Theoretically, such difference should be equal to zero, since the remarkable points are fixed in the base coordinate frame BF.
In practice, if the difference is non-zero, it can be assumed that the coefficients of the first initial change matrix T0Camera→PG are not exactly representative of the real position of the camera 30 with respect to the wrist 21, in particular because of the manufacturing tolerances of the components and of the adjustments made when the parts are mounted on one another.
In a subsequent step 1010, an error function F is defined as the sum of the squares and the differences determined during step 1008, in the form
The value of the error function F is an overall value of difference between the coordinates of the remarkable points Pι determined from the two image taking locations.
During a step 1012, also implemented by the calculator 40, the function F is minimized by playing with the variables X1 to X6 of the first change matrix TCamera→PG.
The optimization is performed by solving a system of six nonlinear equations, e.g. by the least squares method. The system of equations has six unknowns, namely the variables X1 to X6.
In a variant, the solution of the system of nonlinear equations is performed using the Levenberg-Marquardt method or another method.
In a following step 1014, the first change matrix T0Camera→PG is updated in the form of an optimized version of the first change matrix Topt(X1-X6)Camera→PG, the coefficients of which integrate the variables X1 to X6 determined during step 1012 and integrated into the model Mod instead of the first initial change matrix T0Camera→PG.
In other words, starting from step 1014, the computations performed by the calculator 40 take account of an optimized version of the first change matrix, namely Topt(X1-X6)Camera→PG.
In a following step 1016, a second difference εk1,k2,l is calculated between the coordinates of the remarkable points Pι in the form
Theoretically, the difference should also be zero.
In practice, if the difference is non-zero, and greater than the precision of the robot's repeatability, it can be assumed that the coefficients of the second initial change matrix T0PG→BF are not exactly representative of the structure and operation of the multi-axis robot 20, in particular because of manufacturing tolerances and the wear of the articulations thereof.
In a subsequent step 1018, an error function G is defined as the sum of the squares and differences determined during step 1016, in the form:
The value of the error function G is another overall value of difference between the coordinates of the remarkable points Pι determined from the two image taking locations.
During a step 1020, also implemented by the calculator 40, the function G is minimized by playing with the variables Δαi, Δli, Δθi and Ara of the second change matrix TkPG-BF, for each image taking location.
The optimization is performed by solving a system of twenty-four nonlinear equations, e.g. by the least squares method. The system of equations has twenty-four unknowns, namely the four variables Δαi, Δli, Δθi and Δri, for each axis Ai, with i a natural number between 1 and 6.
When the number K of locations to which the camera is successively brought is greater than or equal to 3, steps 1005, 1006 and the step of determining the coordinates of each point in the frame RCaméra linked to the camera are repeated as many times as necessary, the number k being able to take the value 3, 4, 5, or more.
In a variant, the solution of the system of nonlinear equations is performed using the Levenberg-Marquardt method or another method.
Solving the system of 24 equations with 24 unknowns creates a second optimized change matrix Topt(Δα
In a following step 1022, the optimized version of the second change matrix TTopt(Δα
The method of the invention comprises a step 1024, implemented after steps 1014 and 1022, of calculating the differences vk1,k2,l, εk1,k2,l using the model Mod which integrates the first and second optimized matrices, i.e. updated with the last variables X1-X6.Δαi, Δli, Δθi, and Δri determined during steps 1012 and 1020. Step 1024 also consists in calculating the overall difference values from the error functions F and G and in comparing the overall difference values with two threshold values F0 and G0.
If the overall difference values of the functions F and G are less than or equal to the threshold values F0 and G0, then it is considered that the model Mod is correctly adjusted and the new geometrical model of the multi-axis robot 20 equipped with the camera 30 is confirmed, i.e. frozen, in a step 1026 on the basis of the first and second change matrices defined in the last implemented steps 1014 and 1022.
In the opposite case, the following steps 1008 and following are implemented again, on the basis of the first and second change matrices already partially optimized, defined in the last implemented steps 1014 and 1022.
Steps 1008 to 1024 are then repeated by iteration, until values of the error functions F and G are obtained which are lower than the threshold values F0 and G0.
In the second embodiment of the invention shown in
Steps 1000 to 1008 of the second method are identical to steps 1000 to 1008 of the first method.
The method of the second embodiment differs from the method of the first embodiment in that the first change matrix is not optimized by searching for a minimum of the function F considered alone. Steps 1016 and 1018 follow step 1012 directly.
The error functions F and G are calculated in the form of a single overall value which is minimized in the same step 1021, which consists in solving a system of thirty non-linear equations with thirty unknowns, namely the variables X1 to X6, Δαi, Δli, Δθi and Δη, with i a natural number between 1 and 6.
As for steps 1014 and 1020 of the first method in
Then, a step 1023 corresponding to the combination of steps 1014 and 1022 of the method of
When the values of the two functions F and G are less than or equal to the two threshold values F0 and G0, the model is considered as adjusted and the new geometrical model of the multi-axis robot 20 equipped with the camera 30 is confirmed, i.e. frozen, in a step 1026 on the basis of the first and second change matrices defined in the last implement step 1023.
In the opposite case, the steps 1008 and the following steps are implemented again, on the basis of the first and second change matrices already partially optimized, defined in the last implemented step 1023.
The method can be implemented provided that at least two remarkable points Pι are targeted and identified during steps 1004 and 1006. In other words, the number of remarkable points used is greater than or equal to two. Same is not necessarily equal to the number of remarkable points of the target.
When more than two image taking locations are used to determine the position of the remarkable points, the definition of differences and errors is adapted.
In a variant, at least one of the error functions F and G is constructed without using the square of the individual differences vk1,k2,l or εk1,k2,l. The functions may be equal e.g. to the sum of the absolute values of the differences or to another value calculated from the differences.
In a variant of the invention (not shown), the multi-axis robot 20 may be equipped with an application member other than a print head, e.g. a pneumatic or rotary coating product sprayer, possibly of the electrostatic type.
According to another variant, the multi-axis robot 20 may be equipped with a tool other than a member for applying a coating product, e.g. a machining tool, a welding tool or a gripping tool.
Any feature described in the foregoing for one embodiment or one variant, can be implemented for the other embodiments and variants described hereinabove, provided that is technically feasible.
Number | Date | Country | Kind |
---|---|---|---|
2313582 | Dec 2023 | FR | national |