Method for determining a position and orientation of an object using a profilometer
11421980 · 2022-08-23
Assignee
Inventors
Cpc classification
G01B11/26
PHYSICS
International classification
G01B11/00
PHYSICS
Abstract
A method of determining position and orientation of an object using a profilometer. A measurement body has a predetermined polyhedral basic form and a defined spatial relationship with the object. The profilometer captures rectilinear coordinates of at least three measurement points lying on a profile line defined by a profilometer scan-line. Using the coordinates and measurement body geometric values, rotations of the measurement body are calculated about a measurement body z-axis, an intermediate y-axis resulting from the z-axis rotation, and about a profilometer-defined x-axis. Next, three translation displacements of the measurement body relative to the three profilometer-defined axes are calculated using the coordinates, the geometric values of the measurement body, and the above-calculated rotations. The position and an orientation of the object is determined by then applying the defined spatial relationship of the measurement body to the object.
Claims
1. A method of determining a position and an orientation of an object, comprising: capturing, using a profilometer, rectilinear coordinates for each of at least three measurement points on a profilometer-detected profile line of a measurement body having a defined spatial relationship to the object; calculating, using the captured coordinates and known geometric values of the measurement body: 1) a z-axis rotation (Ψ2) of the measurement body about a measurement body z-axis (zt), 2) a y-axis rotation (Θ1) of the measurement body about an intermediate y-axis (yt*) resulting from the z-axis rotation, and 3) an x-axis rotation (Φ0) of the measurement body about a profilometer-defined x-axis (xs); calculating, using a) the rectilinear coordinates, b) the known geometric values of the measurement body, and c) the above-calculated rotations (Ψ2, Θ1, Φ0), a set of translation displacements of the measurement body relative to the profilometer-defined x-axis (xs), y-axis (ys), and z-axis (zs); and applying the defined spatial relationship of the measurement body to the object to find a position and an orientation of the object.
2. The method of claim 1, wherein the measurement body comprises six planar surfaces, five of the six surfaces having respective trapezoidal basic forms, and a remaining one of the six surfaces having a rectangular basic form, and wherein the profile line defines four measurement points, each of the measurement points being located at a respective intersection between a one of the surfaces and an immediately adjacent surface.
3. The method of claim 2, wherein two of the four measurement points are located at respective intersections between the surface having the rectangular basic form and a respective immediately adjacent surface having a trapezoidal basic form.
4. The method of claim 2, wherein the z-axis rotation (Ψ2) is calculated by evaluating a first partial line and a second partial line of a line between a pair of the measurement points located farthest apart along the profile line, and a known angle of inclination of an intersection line of a first and a second of the surfaces having a trapezoidal basic form.
5. The method of claim 2, wherein the x-axis rotation (Φ0) is calculated by evaluating the coordinates of a pair of the measurement points located farthest apart along the profile line.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
DETAILED DESCRIPTION
(10) Reference is first made to
(11) An apparatus 2 for the determination of position and orientation of an object O is shown. The object O can be a part with a plane surface of, for example, a gearbox or of a traction motor. In the present embodiment, the apparatus 2 is designed to capture displacements in the range of +/−10 mm and rotations in the range of +/−10°.
(12) In the present embodiment, the apparatus 2 comprises a profilometer 4 which is designed for contactless, for example optical or laser, capture of a surface topography. A measurement body 6, which has a defined (known before scanning or determinable after scanning) spatial relationship to the object O, is sampled for this purpose with a sensor head 8 of the profilometer 4. As is well known in the precision measurement art, the sensor head 8 detects measurements along a scan-plane 9, which may be generated for example by a scanning laser. The measurement body 6 may be attached to the object O or may alternatively be formed on or with the object O.
(13) In
(14) The measurement body 6 will now first be explained in detail with additional reference to
(15) In the present embodiment, the measurement body 6 is shown to have four measurement points P1, P2, P3, P4 defined thereon.
(16) In the present embodiment, the measurement body 6 has a wedge-shaped basic form. The measurement body 6 comprises six planar surfaces 10a, 10b, 10c, 10d, 10e, 10f. Five surfaces 10a, 10b, 10c, 10d, 10e each have a trapezoidal basic form, while one surface 10f has a rectangular basic form.
(17) In the following detailed description of the five trapezoidal surfaces 10a, 10b, 10c, 10d, 10e, the respective two parallel edges are referred to as the base edges of the respective trapezoid. The longer of the two respective base edges is referred to as the base of the respective trapezoid, while the two adjacent (generally non-parallel) edges are referred to as legs.
(18) The second 10b and the first surface 10a (located opposite the second surface 10b, on the far side of the measurement body 6, and therefore not visible in
(19) The third surface 10c and the fourth surface 10d (located opposite the third surface 10c, and therefore not visible in
(20) The fifth surface 10e (adjacent or oriented toward the object O in the depicted embodiment, and therefore not visible in
(21) The sixth surface 10f is a rectangle with two transverse edges in the direction of the yt-axis or the transverse axis, and two longitudinal edges, perpendicular to these transverse edges. The respective transverse edges of the sixth surface 10f are adjacent to the respective, shorter base edges of the first surface 10a and the second surface 10b, while the respective longitudinal edges are adjacent to the respective legs of the respective surfaces 10c and 10d. A normal vector to the sixth surface 10f deviates by the angle α0=15° from the zt-axis or the vertical axis.
(22) The measurement body 6 in the present embodiment is designed with axial symmetry, specifically with axial symmetry about the xt-axis or longitudinal axis inter alia by means of the selection on both edges of the angles as α0=15° and β0=45°.
(23) In alternative to the present embodiment, the measurement body 2 can be designed without axial asymmetry. For example, a measurement body may comprise surfaces that are designed as non-isosceles triangles and/or as asymmetrical trapezoids. In other words, the angles α0 and β0 illustrated in
(24) Reference is now additionally made to
(25) A height profile along a profile line is illustrated, as is the result of sampling or scanning the object O with the measurement body 6 using the profilometer 4. The profilometer-detected profile line is the line along which the scan-plane 9 of the profilometer intersects or strikes the measurement body 6, and is characterized by four measurement points P1, P2, P3, P4. Each of the four measurement points P1, P2, P3, P4 is arranged at an intersection region between one starting surface and an immediately adjacent further surface 10a, 10b, 10c, 10d, 10e, 10f.
(26) The two measurement points P1 and P4 define starting and ending points respectively of the profilometer-detected profile line, and the two other measurement points P2, P3 are arranged at respective intersections between the sixth surface 10f and the respective immediately adjacent third surface 10c and fourth surface 10d.
(27) Since the measurement points P1, P2, P3, P4 lie in one plane (the plane defined by the scan-plane 9 of the profilometer 4), the measurement points P1, P2, P3, P4 can each be described by one set of bi-axial cartesian coordinates, namely in each case by a value in the direction of the zt-axis (or vertical axis) and a value in the direction of the yt-axis (or transverse axis).
(28) Due to the shape of the measurement body 6, a linear or translational movement in the direction of the xt-axis leads to a change in the height, i.e. the z-coordinates or z-values, of the measurement points P2 and P3 as well as a change in the y-spacing of the measurement points P1 and P4. A movement in the direction of the yt-axis leads to an increase or reduction in the y-coordinates or y-values of all the measurement points P1, P2, P3, P4, while a movement in the direction of the zt-axis leads to an increase or reduction of the z-coordinates or z-values of all the measurement points P1, P2, P3, P4.
(29) A rotary movement about the xt-axis leads to a rotation in the corresponding plane. A rotation about the yt-axis causes the angles δ and ε to change in the same manner, i.e. each to increase or decrease together, although only as long as the rotary movement is less than the angle α0=15°. A rotation about the zt-axis on the other hand causes the angles δ and ε to change in opposite manners, i.e. the angle δ decreases and the angle ε increases, or the angle δ increases and the angle ε decreases, although only as long as the rotary movement is less than the angle α0=15°.
(30) All the necessary information is thus made available to determine a displacement of the object O in the direction of all three spatial axes xt, yt, zt as well as a rotation about all three axes of rotation Φ, Θ, Ψ.
(31) The evaluation of the measurement data will now be explained with additional reference to
(32) Sampling or scanning the measurement body 6 with the profilometer 4 delivers a data set representative of the height profile along the profile line. It comprises a plurality of value pairs or planar cartesian (rectilinear) coordinates, each of which comprises a y-value for the respective position along the width of the profile line and a z-value for the respective height at this position.
(33) The data set is evaluated in order, on the basis of a change in the respective y-value or the gradient and/or change in gradient, to determine the value pairs that correspond to the measurement points P1, P2, P3, P4. The following measurement data coordinate set M results for the measurement points P1, P2, P3, P4:
P1(P1y|P1z),P2(P2y|P2z),P3(P3y|P3z),P4(P4y|P4z)
(34) These coordinates relate, as do also the coordinate representations of points that will follow, to the coordinate system of the scan plane 9 generated by the sensor head 8.
(35) A series of auxiliary variables is then determined.
(36) A first auxiliary variable P5 is an intersection point between a first auxiliary straight line that runs through the measurement points P1 and P2 and a second auxiliary straight line that runs through the measurement points P3 and P4. The following applies for the y-value P5y:
P5y=((P4y−P3y).Math.(P2y.Math.P1z−P1y.Math.P2z)−(P2y−P1y).Math.(P4y.Math.P3z−P3y.Math.P4z))/((P4z−P3z).Math.(P2y−P1y)−(P2z−P1z).Math.(P4y−P3y))
(37) The following applies for the z-value P5z:
P5z=((P1z−P2z).Math.(P4y.Math.P3z−P3y.Math.P4z)−(P3z−P4z).Math.(P2y.Math.P1z−P1y.Math.P2z))/((P4z−P3z).Math.(P2y−P1y)−(P2z−P1z).Math.(P4y−P3y))
(38) A further auxiliary variable P6 is the center between the measurement points P2 and P3, which center lies in the y0 plane of the measurement body 6. The following apply for the respective y-value and z-value:
P6y=P2y+0.5(P3y−P2y)
P6z=P2z+0.5(P3z−P2z)
(39) A further auxiliary variable P0 is an intersection point between of a first auxiliary straight line that runs through the measurement points P1 and P4, and of a second auxiliary straight line that runs through the auxiliary variables P5 and P6. It is located both in the y0-plane of the measurement body 6 and in the z0-plane of the measurement body 6. The following applies for the y-value P0y:
P0y=((P6y−P5y).Math.(P4y.Math.P1z−P1y.Math.P4z)−(P4y−P4z).Math.(P6y.Math.P5z−P5y.Math.P6z))/((P6z−P5z).Math.(P4y−P1y)−(P4z−P1z).Math.(P6y−P5y))
(40) The following applies for the z-value P0z:
P0z=((P1z−P4z).Math.(P6y.Math.P5z−P5y.Math.P6z)−(P5z−P6z).Math.(P4y.Math.P1z−P1y.Math.P4z))/((P6z−P5z).Math.(P4y−P1y)−(P4z−P1z).Math.(P6y−P5y))
(41) The segment u (connecting the measurement point P4 and the auxiliary variable P5), v (connecting the measurement point P1 and the auxiliary variable P), w (connecting the measurement point P4 and the measurement point P1), w.sub.1 (connecting the measurement point P1 and the auxiliary variable P0), and w.sub.2 (connecting the measurement point P4 and the auxiliary variable P0) are moreover determined as further auxiliary variables using Pythagoras' theorem:
u=P4P5=√{square root over ((P5y−P4y).sup.2+(P5z−P4z).sup.2)}
v=P1P5=√{square root over ((P5y−P1y).sup.2+(P5z−P1z).sup.2)}
w=P4P1=√{square root over ((P1y−P4y).sup.2+(P1z−P4z).sup.2)}
w.sub.1=P1P0=√{square root over ((P0y−P1y).sup.2+(P0z−P1z).sup.2)}
w.sub.2=P4P0=√{square root over ((P0y−P4y).sup.2+(P0z−P4z).sup.2)}
(42) The following auxiliary variables, which are segments and angles, are also determined using trigonometrical functions or the cosine theorem or Pythagoras' theorem:
(43)
(44) In a further step, a rotation Ψ2 about the zt-axis is then determined. The following applies for segments w.sub.1 and w.sub.2:
(45)
(46) We then have for the ratio w.sub.2/w.sub.1:
(47)
(48) Solving for Ψ2 yields:
(49)
(50) In a further step, a rotation Θ2 about the yt-axis is determined. The following applies for segments b and d:
(51)
(52) Through rearranging, and substituting b=w.sub.1 cos(α0−Ψ2), we obtain:
d cos(α0−Θ2)=w.sub.1 cos(α0−Ψ2)
(53) Rearranging for Θ2 yields:
(54)
(55) In a further step, a rotation Θ1 about the yt*-axis is determined, where the yt* axis is the y-axis of the target system (t) as it is positioned due to the first rotation. In other words, Θ1 describes the rotation around the y-axis of an imaginary interim position of the target-fixed system (t*, with the asterisk denoting “interim”). For the segment d, depending on the rotation Θ2, we have:
d2=d sin(Θ2)
(56) For the segment c, depending on the rotation Θ1 and the rotation Ψ2, we have:
c2=c sin(Θ1)=d2 cos(Ψ2)
(57) Rearranging and inserting finally yields:
(58)
(59) Furthermore, in a further step, the rotation Φ0 about the xs-axis is determined. The first measurement point P1 and the last measurement point P4 are evaluated for this purpose. For the rotation Φ0 we have:
(60)
(61) In a further step, finally, the spacing Δx of the auxiliary point P0 from a measurement reference point MP is determined. The following apply:
(62)
(63) The angles Ψ2, Θ1 and Φ0 that are determined describe the rotation of the measurement body 6 about a fixed origin, and can now be used for a coordinate transformation into a spatially fixed reference system. Each point of the measurement body 6 can be transferred into a reference coordinate system through three sequential rotations through the angles −Ψ, −Θ and −Φ.
(64) This can be done for a vector r′″ from the auxiliary point P0 to the measurement reference point MP (having the length Δx and by definition being located on the x-axis of the measurement body 6):
(65)
(66) Here (x|y|z) is the vector r, which joins the auxiliary point P0 to the measurement reference point MP, represented in the coordinate system of the sensor head 8. The coordinates of the measurement point in the spatially fixed reference coordinate system describe the displacement of the measurement body 6. The following equations apply to said displacement:
x.sub.MP=x
y.sub.MP=P0y+y
z.sub.MP=P0z+z
(67) It should be noted that P0x=0, since this point lies in the sampling or scanning plane 9 of the profilometer.
(68) The rotary movement of the measurement body 6 is described in the present embodiment through a combination of the three sequential rotations through the angles Ψ, Θ and Φ. This is, however, only one possible way of describing the rotation of the measurement body 6.
(69) To derive a clearer description, it is possible to represent the three axes (unit vectors) of the coordinate system of the measurement body 6 in the reference coordinate system, in that the same matrix operations as above are used. The projections of these vectors on the reference coordinate system planes are helpful for visualizing the rotation:
(70) The following applies for the y-axis of the measurement body 6 in the coordinate system of the measurement body 6:
{right arrow over (r.sub.2)}′″=(0|1|0)
(71) Then, for the representation of r2′″ in the reference coordinate system, we have:
{right arrow over (r.sub.2)}=(x.sub.2|y.sub.2|z.sub.2)
(72) For the angle Φ between the vector r2′″ projected into the yz-plane of the reference coordinate system and the y-axis of the reference coordinate system we then have:
(73)
(74) The following applies for the z-axis of the measurement body 6 in the coordinate system of the measurement body 6:
{right arrow over (r.sub.3)}′″=(0|0|1)
(75) Then, for the representation of r3′″ in the reference coordinate system, we have:
{right arrow over (r.sub.3)}=(x.sub.3|y.sub.3|z.sub.3)
(76) For the angle Θ between the vector r3′″ projected into the zx-plane of the reference coordinate system and the z-axis of the reference coordinate system we then have:
(77)
(78) The following applies for the x-axis of the measurement body 6 in the coordinate system of the measurement body 6:
{right arrow over (r.sub.1)}′″=(1|0|0)
(79) Then, for the representation of r1′″ in the reference coordinate system, we have:
{right arrow over (r.sub.1)}=(x.sub.1|y.sub.1|z.sub.1)
(80) For the angle Ψ between the vector r1′″ projected into the xy-plane of the reference coordinate system and the x-axis of the reference coordinate system we then have:
(81)
(82) A displacement of the object O in the direction of all three spatial axes, along with a rotation about all three axes of rotation, can thus be displayed more clearly using the measurement body 6.
(83) The measurement body 6′ according to a second embodiment will now first be explained in detail with additional reference to
(84) In the second embodiment, the measurement body 6′ has three measurement points P1′, P2′, P3′.
(85) The measurement body 6′ according to the second embodiment also has a wedge-shaped basic form. The measurement body 6′ according to the second embodiment however comprises five planar surfaces 10a′, 10b+, 10c′, 10d′, 10e′. Two surfaces 10a′, 10b′ each have a triangular basic form, while three surfaces 10c′, 10d′, 10e′ have a trapezoidal basic form.
(86) The first surface 10a′ and the second surface 10b′ located opposite the first surface 10a′ are each formed as isosceles triangles, and are arranged parallel to one another. A respective normal vector of the first surface 10a′ and the second surface 10b′ is coincident with the longitudinal axis or with the xt-axis.
(87) The third surface 10c′, the fourth surface 10d′ and the fifth surface 10e′ are each symmetrical trapezoids. The respective bases of the third surface 10c′, the fourth surface 10d′ and the fifth surface 10e′ are adjacent to the second surface 10b′, while the respective shorter base edges are adjacent to the first surface 10a′. In other words, the respective directions in which the respective third surface 10c′, fourth surface 10d′ and fifth surface 10e′ taper have the same orientation.
(88) The measurement body 6′ is connected by way of the fifth surface 10e′ to the object O, while the object O, due to its planar, flat extent, forms an extension to the fifth surface 10e′.
(89) The measurement body 6′ according to the second embodiment is designed in the present embodiment with axial symmetry.
(90) In deviation from the present second embodiment, the measurement body 6′ can also comprise surfaces that are designed as non-isosceles triangles and/or as asymmetrical trapezoids. Furthermore, the measurement body 6′ according to the second embodiment can be designed with axial asymmetry.
(91) In terms of the evaluation of the measurement data, when the measurement body 6′ according to the second embodiment is used, only the three measurement points P1′, P2′, P3′ are available. The measurement points P2 and P3 of the measurement body 6 according to the first embodiment are missing. If the two measurement bodies 6, 6′ are compared, it further emerges that the measurement point P2′ of the measurement body 6′ according to the second embodiment corresponds to the auxiliary variable P5 in the evaluation of the measurement data when using the measurement body 6 according to the first embodiment.
(92) The measurement data coordinate set M2, which is obtained using the measurement body 6′ with the three measurement points P1′, P2′, P3′ according to the second embodiment has, for example, the following format:
P1′(P1Y,P1z),P2′(P2y,P2z),P3′(P3Y,P3z)
(93) The auxiliary variables P6 and P0 cannot be determined as above without the measurement points P2 and P3 of the measurement body 6 according to the first embodiment. The segments w1, w2 and d are, as a result, not available. The determination of the rotation Ψ2 about the zt-axis when the measurement body 6′ according to the second embodiment is used can then be done by solving the following system of equations:
(94)
(95) This system of equations can be solved analytically. This system of equations can, alternatively, be solved using a numerical determination of the roots in order to determine the rotation Ψ2. Alternatively, furthermore, a neural network can also be used after a training phase, or look-up tables can be used.
(96) With knowledge of the rotation Ψ2 about the zt-axis, it is also possible to determine the segment lengths w1, w2 and d with the formulas shown further above. The calculation of the other variables sought can then be continued according to the method, using the measurement body 6 according to the first embodiment.
(97) Reference is now made to
(98) At operation 12, using a profilometer, rectilinear coordinates for each of at least three measurement points on a profilometer-detected profile line of a measurement body having a defined spatial relationship to the object are captured. At operation 14, using the captured coordinates and known geometric values of the measurement body: 1) a z-axis rotation (Ψ2) of the measurement body about a measurement body z-axis (zt) is calculated, 2) a y-axis rotation (Θ1) of the measurement body about an intermediate y-axis (yt*) resulting from the z-axis rotation is calculated, and 3) an x-axis rotation (Φ0) of the measurement body about a profilometer-defined x-axis (xs) is calculated. At operation 16, using a) the rectilinear coordinates, b) the known geometric values of the measurement body, and c) the above- calculated rotations (Ψ2, Θ1, Φ0), a set of translation displacements of the measurement body relative to the profilometer-defined x-axis (xs), y-axis (ys), and z-axis (zs) is calculated. At operation 18, the defined spatial relationship of the measurement body is applied to the object to find a position and an orientation of the object.