Automated assembly method for two parts including servo control with cameras
The automated assembly method using primary and secondary visual servo loops with cameras enhances precision and speed in aligning aircraft beams, addressing imprecision and collision issues in current methods.
Patent Information
- Authority / Receiving Office
- FR · FR
- Patent Type
- Patents
- Current Assignee / Owner
- INST DE RECH TECHQUE JULES VERNE
- Filing Date
- 2022-07-16
- Publication Date
- 2026-06-12
AI Technical Summary
Current aircraft beam assembly methods are imprecise, time-consuming, and prone to collisions or friction due to manual adjustments and the use of camera-based servo systems that are not precise along the entire trajectory.
An automated assembly method using a primary and secondary visual servo loop with cameras to determine robot movement commands, ensuring precise alignment and fitting of beams through a combination of image processing and vector field principles.
The method achieves precise alignment with a positioning repeatability of 0.2 mm, reduces assembly time to under three minutes, and avoids collisions or friction, while being applicable to curved paths.
Smart Images

Figure 00000018_0000 
Figure 00000019_0000 
Figure 00000019_0001
Abstract
Description
Title of the invention: Automated assembly method for two parts comprising servo control with cameras. Technical field of the invention
[0001] The invention relates, in general, to the technical field of automated assembly processes for two parts using robotic systems, and more particularly to the precision assembly of parts such as beams comprising a tenon / clevis type mechanical connection at their end. It also relates to an assembly system implementing these processes.
[0002] The invention relates more specifically to an automated assembly method for aligning and fitting together two beams of an aircraft.
[0003] This type of robotic system is also called a machine tool. The term machine tool refers to a mechanical system composed of servo-controlled digital axes. This can include, in particular, robotic gantries or industrial robots, which will be referred to hereafter as robots. Prior art
[0004] Generally speaking, the structure of an aircraft is very complex, and it is often divided into several structural elements with large cross-sections. For example, the fuselage of an aircraft consists of several metal sheets supported by an internal structure comprising several beams assembled together. In order to be assembled, these beams are first precisely positioned relative to one another, and then fitted together.
[0005] Aircraft manufacturers currently use a laser-tracking metrological system to position the modules incorporating the beams to be assembled. The beams are not designed to be directly fitted together. To achieve the mechanical connection, a male beam has tenons at one end designed to fit into clevises at one end of a female beam. One of the beams is movable relative to the other.
[0006] The mechanical connection is achieved by alternating approach movements and, in the case of a "practical" adjustment, by fine-tuning the two beams. The tenons are re-machined on site to adapt to the geometry of the clevises.
[0007] The assembly is carried out iteratively by the operators, who alternate between reading the relative positions of the beams to be assembled and moving the support holding one of the beams. This manual movement requires the operator's experience to compensate, in particular, for tool deformation, misalignment errors, or mechanical play. This manual movement process is also very long.
[0008] Furthermore, it is common for certain types of aircraft for the final alignment of the tenon and clevis bores to fall outside the tolerances. There may be a 1 mm gap between the beams. The tenons must then be forced into place.
[0009] CN110919654, which aims to solve these problems and discloses a robotic arm controlled by a camera, is known. The camera takes images of the interface between two parts of an aircraft fuselage to be assembled, which are transmitted to an image processing system that calculates a movement command which is then transmitted to the robotic arm.
[0010] This document also discloses a robotic automatic assembly system for two aircraft beams whose mechanical connection consists of tenons and clevises. The system includes three cameras positioned around the connection and means for executing a visual servoing algorithm that guides the interlocking movement.
[0011] However, these camera-based servo systems are not precise along the entire trajectory and can lead to collisions or friction between the sheets, particularly during the delicate clamping stage. Indeed, obtaining perfectly linear movement is difficult. Description of the invention
[0012] The invention aims to remedy all or part of the disadvantages of the prior art by proposing in particular an automated assembly process that is more precise and faster than those of the prior art.
[0013] To this end, according to a first aspect of the invention, an automated assembly method is proposed for a fixed part with a movable part capable of being moved relative to the fixed part by a robot. The method comprises the following steps: - determining reference points at the first end of the fixed part and at the second end of the movable part, - Positioning at least one camera so that the reference points of both rooms are within the camera's field of vision, with the camera fixed relative to the fixed room. - application of a primary visual servo loop based on images of the ends of the two parts taken by the camera to determine a first robot movement command to allow it to bring the moving part closer to the fixed part, - application of a secondary visual servo loop including a calculation using the vector field principle from the images of the ends of the two parts taken by the camera to generate a second movement command allowing the robot to embed the moving part in the fixed part, and - fixing the two parts together.
[0014] According to one embodiment, the primary visual servo loop comprises the following steps: - taking an image of the ends of the two pieces, - determination of a target image, and - comparison between pixels of the target image and pixels of the captured image to generate the movement instruction based on a difference between said pixels.
[0015] According to another embodiment, the assembly process includes an initial step in which the position and orientation of the camera relative to the fixed part are determined from observation of the end of the fixed part by the camera and via a numerical optimization calculation.
[0016] According to another embodiment, a target vector (x, y) of the moving part is determined from the relative position between the fixed part and the camera and the mounting configuration between the fixed part and the moving part, x and y being the coordinates of the target reference points.
[0017] According to another embodiment, a measurement vector (x', y') is determined from the images taken by the camera, x' and y' being the coordinates of the reference points on the parts. The measurement vector (x', y') is compared to the target vector (x, y) to determine the gap between the pixels. A velocity profile is determined from the gap. A pseudo-inverse operation of the interaction matrix is applied to the velocity profile to obtain Cartesian velocities, and multiplication by the robot's inverse Jacobian matrix is applied to the Cartesian velocities to obtain a movement command.
[0018] According to another embodiment, the assembly process comprises, after the initial step, a step of presenting the parts in an open loop. A simple open loop is performed during the presentation step, at the end of which the parts are separated by a few centimeters.
[0019] The part presentation step is followed by a primary visual control loop for pre-fixation during a pre-fixation step at the end of which the parts are correctly aligned, i.e., in a configuration where only a simple translation remains to be performed to obtain a non-contact fixed fit. A target vector (x, y) is determined during each of these steps. A secondary visual control loop is then implemented during a fixed fit step in which the parts are fixed without contact until the bores are aligned.
[0020] According to another embodiment, to implement the secondary visual servo loop, a first target vector Si corresponding to a first position and a second target vector s2 corresponding to a second position are calculated during The pre-fixing step. A line [sb s2] is drawn in pixel space in each camera image. Images of the ends of the parts are taken by the camera to obtain a vector field f(s) in each camera image from vectors s measured by the cameras.
[0021] Preferably, a pixel velocity profile is determined from the vector field f(s). A pseudo-inverse operation of the interaction matrix is applied to the pixel velocity profile to obtain Cartesian velocities, and a multiplication by the inverse Jacobian matrix of the robot is applied to the Cartesian velocities to obtain the approach command used to control the robot.
[0022] According to another embodiment, the reference points comprise disc-shaped markers distributed around bores provided on the moving part and on the fixed part for fixing the two parts.
[0023] The invention also relates to an automated assembly system for a fixed part with a movable part capable of being moved relative to the fixed part by a robot. The system implements the assembly process as defined above.
[0024] The invention thus makes it possible to provide a more precise automated assembly process than those of the prior art and more particularly makes it possible to move the moving part along a straighter trajectory by reducing the duration of the assembly operation to less than three minutes.
[0025] It is also possible to extend this process to a curved path.
[0026] The proposed solution does not create any collision or friction between the parts.
[0027] It also exhibits a positioning repeatability of the order of 0.2 mm.
[0028] Furthermore, the cameras can be placed approximately around their respective nominal positions at the very moment of the assembly operation. The camera realignment is performed automatically.
[0029] If the moving part deviates from the assembly axis, the method simultaneously reduces the deviation and advances the moving part. The balance between these two actions is empirically adjustable by setting a gain to prevent contact between the two parts.
[0030] The solution is generic and can be extended to other types of parts and for applications other than aircraft. brief description of the figures
[0031] Other features and advantages of the invention will become apparent from the following description, with reference to the accompanying figures, which illustrate: • [Fig.1]: a view of a moving part moving relative to a fixed part during an assembly process, according to an embodiment of the invention; • [Fig.2]: a view of the fixed part embedded in the moving part after the assembly process; • [Fig. 3]: a diagram representing the different operations applied during of a primary visual servo loop; • [Fig. 4]: a diagram representing the different operations applied during of a secondary visual servo loop; • [Fig. 5]: a view of a vector field including a vector segment [si, s2] ; • [Fig. 6]: a schematic representation of the space of measures divided into three zones; • [Fig.7]: a schematic representation of the decomposition of the vector s.
[0032] For clarity, identical or similar elements are identified by identical reference signs throughout the figures. DETAILED description of a method of implementation
[0033] The invention relates to an automated assembly method of a fixed part 1 with a moving part 2, as represented in [Fig. 1][Fig. 1], capable of being moved relative to the fixed part 1 by a robot or a speed controller.
[0034] The term "robot" refers to a robotic system, also called a machine tool. A machine tool can be a mechanical device composed of servo-controlled digital axes. Examples include robotic gantries, industrial robots, and actuators.
[0035] In the following example, the moving part 2 is a female part comprising at least one clevis 1la, 11b, 1le extending along an axial direction X which is parallel to the direction of advancement of the moving part 2. The clevis 1la, 11b, 1le comprises a bore 9 having an axis perpendicular to the axial direction X. In this example, the axial direction X is substantially horizontal.
[0036] Each slab 1 la, 11b, 1 le also includes a housing 12.
[0037] The fixed part 1 is a male part comprising at least one tenon 10a, 10b, 10c extending along the axial direction X and intended to be fitted into a clevis 11a, 11b, 1 of the female part. The tenon 10a, 10b, 10c also includes a bore 8 having an axis perpendicular to the axial direction X.
[0038] Alternatively, the moving part 2 can be a female part and the fixed part 1 can be a male part.
[0039] In the example of [Fig. 1][Fig. 1] and [Fig.2][Fig.2], bores 8, 9 have a circular section but can have other shapes such as square or ovoid shapes.
[0040] Preferably, the movable part 2 comprises at least three cleats 1a, 11b, 11e and the fixed part 1 comprises at least three tenons 10a, 10b, 10c.
[0041] In the example of [Fig. 1][Fig. 1] and [Fig. 2][Fig. 2], the moving part 2 is a female part comprising five clevises 1a, 11b, 1le, of which the first two clevises lateral lia juxtaposed one above the other, two second lateral cleats 11b juxtaposed one above the other and a central cleat 1 le positioned between the lateral cleats lia, 11b.
[0042] The first two lateral brackets 1la and the second two lateral brackets 11b each comprise a bore 9 which has a central axis perpendicular to the direction X and which extends along a direction Y.
[0043] The central clevis 1 comprises a central axis perpendicular to the direction X and which extends along a direction Z perpendicular to the directions X and Y.
[0044] By symmetry, the fixed part 1 is a male part comprising five tenons 10a, 10b, 10c extending along the axial direction X, of which two first lateral tenons 10a juxtaposed one above the other, two second lateral tenons 10b juxtaposed one above the other and a central tenon 10c positioned between the lateral tenons 10a, 10b.
[0045] As illustrated in [Fig. 2][Fig. 2], each tenon 10a, 10b, 10c of the fixed part 1 is designed to fit into one of the brackets 1a, 11b, 1le of the moving part 2, and more specifically into the recess 12 of the brackets 1a, 11b, 11c. The bores 9 of the brackets 1a, 11b, 11c and the bores 8 of the tenons 10a, 10b, 10c are then aligned. A fixing piece can then be inserted into the bores 8, 9 to lock the parts relative to each other.
[0046] In this example, the first end 3 of the fixed part 1 is progressively obscured by the second end 4 of the moving part 2. The moving part 2 moves only in translation.
[0047] In this example, the fixed part 1 and the movable part 2 are aircraft beams, but the assembly method also applies to other types of parts.
[0048] According to one possible embodiment of the invention, the assembly process includes a step of determining reference points at the first end 3 of the fixed part 1 and at the second end 4 of the moving part 2.
[0049] The principle consists of finding remarkable or identifiable points on parts 1, 2 so that a servo system based on image capture and processing can function.
[0050] Preferably, the reference points include disc-shaped markers distributed around each bore 9 provided on the moving part 2 and around each bore 8 provided on the fixed part 1.
[0051] In this example, the fixed part 1 and the moving part 2 each comprise five bores 8, 9 and therefore five patterns each comprising eight disc-shaped markers distributed concentrically around the axis of each bore 8, 9. The patterns are identical and have a uniform color.
[0052] The discs must have a precise and clean outline. They must not create any on thickness. They can be obtained by filling a cavity with a colored substance (paint, resin, etc.) and then polishing the piece. In this example, there are therefore 40 markers per piece in total.
[0053] The presence of markers is not a condition for success and should not appear as such. However, it is preferable to add markers to ensure a very high level of confidence in the measurements obtained by a visual method. The method works without artificial markers, but this results in greater complexity in image processing and reduced robustness to lighting conditions, without affecting the control method itself.
[0054] Alternatively, the reference points may be the centers of the bores 8, 9.
[0055] The reference points of the moving part 2 must coincide with the reference points of the fixed part 1 during the embedding.
[0056] Alternatively, it is not necessary for the reference points of the moving part 2 to coincide with the reference points of the fixed part 1.
[0057] The assembly process includes a positioning step of at least one camera 5, 6, 7 so that the reference points of the two parts 1, 2 are in the field of vision of the camera 5, 6, 7. The camera 5, 6, 7 is fixed relative to the fixed part 1.
[0058] It is possible to use a single camera 5, 6, 7 but it is preferable to use three as in the embodiment shown below because depth is more sensitive to errors.
[0059] According to a preferred embodiment, a first camera 5 is positioned and oriented facing the bores 9 of the first two lateral brackets 1a of the moving part 2 and facing the bores 8 of the first two lateral tenons 10a of the fixed part 1. A second camera 6 is positioned and oriented facing the bores 9 of the second two lateral brackets 11b of the moving part 2 and facing the bores 8 of the second two lateral tenons 10b of the fixed part 1.
[0060] A third camera 7 is positioned and oriented facing the bore 9 of the central yoke 1 of the moving part 2 and facing the bores 8 of the central tenon 10c of the fixed part 1. The axis of the cameras 5, 6, 7 is substantially perpendicular to the axial direction X. The z-axis of the third camera 7 is substantially perpendicular to the axes of the first and second cameras 5, 6 and is preferably parallel to the Z direction.
[0061] For standard aircraft beams with bore diameters of a few centimeters, the cameras 5, 6, 7 can be 12-megapixel GV-5200SE-C-HQ cameras from IDS, including Tamron M111FM16 lenses. The intrinsic calibration of each camera 5, 6, 7 must be performed rigorously (using an industrial calibration target) once the focus has been set to obtain a Clear image at approximately 30 cm distance. Each camera 5, 6, 7 is positioned approximately 30 cm from parts 1, 2.
[0062] According to one embodiment, the assembly process comprises three steps of moving the movable part 2, including a step of presenting the parts 1, 2. The movable part 2 is "presented" facing the fixed part 1. The movable part 2 is in the field of vision of the cameras 5, 6, 7. The distance between the two parts 1, 2 along the axial direction X is a few centimeters.
[0063] The assembly process also includes a pre-fitting step in which the moving part 2 is moved potentially along all axes until it is properly aligned with the fixed part 1 and a fitting step in which the moving part 2 is fitted with the fixed part 1.
[0064] The assembly process includes an initial step in which the position and orientation of the cameras 5, 6, 7 with respect to the fixed part 1 are determined from the observation of the end of the fixed part 1 by the cameras 5, 6, 7 and by means of a numerical optimization calculation of the least squares method type, for example.
[0065] More specifically, during the initial step, each camera 5, 6, 7 observes the tenons 10a, 10b, 10c facing it (only one in the case of the third camera 7) and image processing is applied to obtain the centers of the markers.
[0066] Knowing the geometry of what camera 5, 6, 7 observes, a position calculation algorithm is applied to deduce the relative position of camera 5, 6, 7 with respect to the fixed part 1. Preferably, the position calculation algorithm uses least-squares optimization. This step is automatic but requires visual validation by the operator for safety. Visual validation is performed by observing the overlap in the image of the projected markers, that is, where the markers are supposed to appear if camera 5, 6, 7 is in the position calculated with the actual markers.
[0067] The relative position of the fixed part 1 with respect to the robot base is assumed to be known approximately. This is the case in practice because the fixed part 1 is located on a fixed module or support, which is referenced in the coordinate system of a workshop.
[0068] For the presentation step, the moving part 2 is approached by the operator or by an open-loop program to a position sufficiently far from the fixed part 1 to avoid any risk of collision between the parts 1, 2 but close enough so that the clevises 1 la, 11b, 1 le of the moving part 2 enter the field of vision of the cameras 5, 6, 7.
[0069] For the pre-assembly step, a first primary visual servo loop is applied using images of the ends of the two parts 1, 2 taken by cameras 5, 6, 7 to determine a first movement command for a robot to allow it to correctly align the moving part 2 with the fixed part 1.
[0070] The initial step allows the first primary visual servo loop to be implemented.
[0071] The initial step calculates a first target image Si (or first setpoint in the image), as illustrated in [Fig. 3][Fig. 3]. The image is determined by virtually placing the fixed part 1 within the frame of cameras 5, 6, 7 using the position of cameras 5, 6, 7 and simulating the images. Errors in estimating certain degrees of freedom of a camera are compensated by combining the n images.
[0072] From the relative position of the cameras 5, 6, 7 with respect to the fixed part 1, and the embedding configuration of the fixed part 1 with respect to the moving part 2, it is possible to deduce the position of the cameras 5, 6, 7 with respect to the moving part 2.
[0073] From the pinhole model of the camera 5, 6, 7, it is possible to deduce the first target image Si or target vector (xb yO, Xi and yi being the coordinates of the target reference points during a target calculation step 13.
[0074] Next, an image of the end of part 2 is taken to determine a measurement vector (x'i, y'i), x\ and y\ being the coordinates of the reference points on part 2 during a measurement step 14. A first measured image s'i is obtained.
[0075] The measurement vector (x'i, y'i) is then compared to the target vector (xb yO) to determine the gap between pixels during a comparison step 15.
[0076] A speed profile is determined from the deviation during a speed profile calculation operation 16.
[0077] The following proportional feedback law is used to calculate a desired velocity 5 in the camera space: S = X (si - s'i), where X is a positive gain factor. However, only the direction of the velocity vector in image space is considered. The magnitude is calculated to follow a velocity profile ensuring smooth and uniform acceleration up to a maximum speed, as well as uniform deceleration. However, near the target, the constraint on deceleration is lifted to avoid making the control unstable: the vector S is applied as is.
[0078] An interaction matrix Ls is calculated. The interaction matrix is the name usually given to designate the Jacobian matrix linking the Cartesian kinematic wrench to the velocities of the pixels.
[0079] A pseudo-inverse operation of the interaction matrix 17 is then applied to the velocity profile to obtain Cartesian velocities v with the law: $ = Ls.v.
[0080] A multiplication operation by the inverse Jacobian matrix of the robot (or actuators) 18 is applied to the Cartesian velocities to obtain a first movement command including a robot movement velocity and, in particular, a joint velocity. The robot moves the moving part 2 towards the fixed part 1 based on the first movement command during a pilot step 19.
[0081] The clamping step generates a second target image s2 (or second command in the image), corresponding to the final clamping position, as illustrated in [Fig. 4][Fig. 4]. The calculation of this target image follows the same procedure as for sb
[0082] The first and second vectors are obtained by concatenating the image commands of the three cameras 5, 6, 7.
[0083] According to one variant, it is possible to position a camera in front of each bore. Therefore, in this case, there are five cameras associated with five bores of the moving part (not shown).
[0084] In our example, the first and second target vectors therefore have a total of 80 components comprising the x and y coordinates of each of the 40 reference points.
[0085] The target vectors are manipulated in the normalized image plane (with z = 1 m). The stopping criterion applied is then a maximum deviation between the two parts 1, 2 of 1.5 mm. At a distance from the cameras 5, 6, 7 not exceeding 40 cm, this error results in a pixel positioning error in space of less than 0.6 mm.
[0086] On the other hand, by averaging over the 40 pixels, the Cartesian precision obtained in practice is much better, on the order of 0.2 mm.
[0087] A secondary visual servo loop including a calculation using the vector field principle is then applied during the embedding step, as illustrated in [Fig.4] [Fig.4], to improve linearity during this delicate step.
[0088] Alternatively, the secondary visual servo loop can be used during another movement step.
[0089] This solution is based on two ideas. The first idea is to generate a control law for the robot explicitly in the form of a vector field f(s) in the image (or sensor) space. This vector field f(s) is an ad-hoc formula. By creating a vector field in the image space, the key advantage of image-based control is maintained.
[0090] The second idea concerns the stability of the movement. In practice, the use of an error-based formula as for the pre-fixing step [Fig.3], in addition to the non-uniform speed, leads to a zigzag movement of the robot around the assembly axis, with a high risk of collision.
[0091] The objective is to create a velocity vector field f(s) from the measurements of cameras 5, 6, 7 which respects the kinematics of the fixed connection.
[0092] The target (or expected) vectors Si and s2 associated with these two expected positions are calculated in 2 steps.
[0093] First, an ideal Cartesian trajectory (segment [sb s2]) is constructed in the image space. Then, the vector field f(s) is constructed around this Cartesian trajectory, as illustrated in [Fig.5] [Fig.5].
[0094] It is convenient for this purpose to consider the fixed part 1 as a reference. The Cartesian trajectory of the moving part 2 is a pure translation from an initial position 1 to a final position 2. These positions are directly obtained from the geometry of the two parts 1, 2.
[0095] Once a line is determined by perspective projection, when the moving part 2 moves at a constant speed from the first position to the second position, each pixel describes a segment in its own image. However, the pixel's speed is not constant if its z-coordinate in the frame of cameras 5, 6, 7 is not constant. Therefore, the camera's z-axis must necessarily be substantially parallel to the Z direction, that is, orthogonal to the axial X direction. Under this assumption, the pixel speeds are almost constant, which means that the trajectory of the target vector s of all cameras 5, 6, 7 is very close to the segment. The idea is thus to use this segment [sb s2] as the counterpart of the assembly axis in the image space of cameras 5, 6, 7.
[0096] Images of the ends of parts 1, 2 are taken by each camera 5, 6, 7 to obtain vectors s measured during a measurement step 20. The vector field f(s) in each image of cameras 5, 6, 7 is then obtained from the vectors s measured by cameras 5, 6, 7, during a vector field calculation operation f(s) 21 and as illustrated in [Fig.5] [Fig.5].
[0097] Figure 5 illustrates a vector field f(s) with the segment [sb s2] for a single pixel. In reality, it is a segment in the space of the set of pixels (40 in our example). The arrows represent the vector field f(s) for different values of vector s measured by the cameras.
[0098] The vector field f(s) brings the points back onto the target line [sB s2] and ensures their progression towards the target. Apart from the endpoints Si and s2, the field is therefore parameterized by two distinct velocities: one that controls the fixed position and one that controls the correction of deviations. Each velocity can be set independently.
[0099] The following describes an example of constructing a vector field in more detail.
[0100] Let D be the assembly distance and Vo the desired Cartesian velocity. The corresponding (average) velocity in measurement space is:
[0101] Due to the way the cameras are positioned, the actual speed of s in the ideal trajectory deviates only slightly from its average value, and the deviation is thus well absorbed by the pseudo-inverse of the Jacobian matrix Ls, as described by ulté- Laughing.
[0102] The line passing through Si and s2 is called "baseline 26", as illustrated in Figure 6 [Fig. 6], and d0 is the direction vector, which is intentionally oriented from s2 to si according to the following relation: s, — S'> of - ifSl -■ H
[0103] To construct the vector field, the sensor space is divided into three zones, including: - an outer zone 27 where f brings s back to the baseline 26, following a proportional law based on the deviation (the distance from the baseline 26) with a gain X, - a lane 28 where f brings s back to baseline 26 while simultaneously moving it towards s2. The velocity inside lane 28 has a constant magnitude: Il f(s) Il = v0, and - a braking zone 29 where f makes s converge towards s2 with an average deceleration a along the baseline 26.
[0104] The convergence is bounded by a decreasing exponential, either of rate a (which dominates the projection onto the base line 26), or X (which dominates the projection orthogonally to the base line 26).
[0105] Thus, the vector field depends on 3 parameters: - the desired speed v0 in the corridor 28, - the average deceleration a in the rupture zone 29, and - the gain factor X modeling the strength of the baseline attraction 26.
[0106] The braking zone 29 is represented by the gray butterfly in [Fig. 6]. If the target s2 is overshot (which can happen in practice), the braking zone 29 allows the system to reverse. The reversal is represented by the thick arrow 30.
[0107] The field is constructed as illustrated in [Fig. 7][Fig. 7]. To begin, the vector s is decomposed into a scalar d and a vector e according to the following relation: s = s² + d. d₀ + e
[0108] d, as in "distance", represents the projection of s onto the 26-baseline with s2 as the origin, and e, as in "error", represents the remainder. It is necessarily orthogonal to the 26-baseline. These parameters can be obtained quickly if the projection matrix onto the 26-baseline is calculated once and for all according to the following relation: P = d0.d0T
[0109] In this case, d = d0T P (s - s2) and e = (I - P) (s - s2).
[0110] A linear map with saturation v(J) is then defined. It represents the desired speed along baseline 26.
[0111] The vector field f(s) = f(d, e) is then defined, as illustrated in [Fig.5] [Fig.5].
[0112] Next, a pixel velocity profile is determined from the vector field f(s), during a velocity profile calculation operation 22.
[0113] A pseudo-inverse operation of the interaction matrix 23 is applied to the pixel velocity profile to obtain Cartesian velocities.
[0114] A multiplication operation using the inverse Jacobian matrix of robot 24 is then applied to the Cartesian velocities to obtain a proximity command for controlling the robot. The proximity command is expressed, among other things, in the form of velocities (the one that controls the fixed position and the one that controls the correction of deviations).
[0115] The robot moves the moving part 2 towards the fixed part 1 according to the approach instruction during a piloting step 25.
[0116] These various operations thus make it possible to perform the embedding in a more linear manner compared to the primary visual servo loop. They also make it possible to avoid the numerous disadvantages of a discretized trajectory, in particular the jerky movement imposed by the convergence towards each intermediate point.
[0117] Unlike the primary control method, the measurement of the vectors is directly translated into a speed thanks to the ad-hoc vector field f(s) ensuring both the reduction of the deviation (from the fixed axis) and a speed of progression along the axis.
[0118] A displacement velocity is no longer simply deduced from a gap that is compensated, but all desired displacements are explicitly described from a given gap, so that the kinematics of the fixed support are well respected. This therefore gives a vector field in the image space.
[0119] Alternatively, it is possible to apply a method with very slow embedding but rapid correction of deviations. The field has been constructed to be continuous at every point and therefore, in theory, not cause any sudden acceleration.
[0120] However, in practice, the system often has to brake for safety reasons, due to a delay in the image stream or errors related to their processing. For this reason, the accelerations / decelerations are again properly managed by reapplying a velocity profile to the vector field f(s) at the output of the field.
[0121] The vector field f(s) is constructed using the fact that the projection of the Cartesian translation does indeed give a straight line in the image of each pixel in 2 dimensions (2D). However, a Cartesian translation with constant velocity will not give a trajectory with constant velocity in 2D.
[0122] Imposing a uniform speed on each pixel in 2D therefore results in a non-uniform Cartesian speed. In particular, the speeds of the different pixels obtained do not do not translate into the same Cartesian speeds. They are in fact incompatible, except in very specific cases.
[0123] However, these two problems are negligible in practice due to the variation in Cartesian velocity and pixel decoupling. The second problem is overcome by the pseudo-inverse of the control.
[0124] Alternatively, the algorithm can construct a curved vector field by exactly projecting the Cartesian velocity vector onto each pixel. This calculation can be performed dynamically at point Si or s2 by applying the camera model 5, 6, 7 from the estimated Cartesian position.
[0125] Naturally, the invention is described above by way of example. It is understood that a person skilled in the art is able to carry out different embodiments of the invention without departing from the scope of the invention.
[0126] It is emphasized that all features, as they are apparent to a person skilled in the art from this description, the drawings and the accompanying claims, even if in practice they have only been described in relation to other specific features, both individually and in any combinations, may be combined with other features or groups of features disclosed herein, provided that this has not been expressly excluded or that technical circumstances render such combinations impossible or devoid of sense.
Claims
Demands
1. An automated assembly method of a fixed part (1) with a movable part (2) capable of being moved relative to the fixed part by a robot, characterized in that it comprises the following steps: - determining reference points at a first end (3) of the fixed part (1) and at a second end (4) of the movable part (2), - positioning at least one camera (5, 6, 7) so that the reference points of the two parts (1, 2) are in the field of view of the camera (5, 6, 7), the camera (5, 6, 7) being fixed relative to the fixed part (1), - applying a primary visual feedback loop from images of the ends (3, 4) of the two parts (1, 2) taken by the camera (5, 6, 7) to determine a first robot movement command to enable it to bring the movable part (2) closer to the fixed part (1),- application of a secondary visual servo loop including a calculation using the vector field principle from the images of the ends of the two parts (1, 2) taken by the camera (5, 6, 7) to generate a second movement command allowing the robot to fit the moving part (2) into the fixed part (1), and - fixing the two parts (1,2) together.
2. Assembly method according to claim 1, characterized in that the primary visual servo loop comprises the following steps: - taking an image of the ends of the two parts (1,2), - determining a target image, and - comparing pixels of the target image and pixels of the taken image to generate the displacement command based on a difference between said pixels.
3. Assembly method according to claim 2, characterized in that it comprises an initial step in which the position and orientation of the camera (5, 6, 7) relative to the fixed part (1) are determined at starting from the observation of the end of the fixed part (1) by the camera (5, 6, 7) and by means of a numerical optimization calculation.
4. Assembly method according to claim 3, characterized in that a target vector (x, y) of the moving part (2) is determined from the relative position between the fixed part (1) and the camera (5, 6, 7) and the mounting configuration between the fixed part (1) and the moving part (2), x and y being the coordinates of the target reference points.
5. Assembly method according to claim 4, characterized in that a measurement vector (x', y') is determined from the images taken by the camera (5, 6, 7), x' and y' being the coordinates of the reference points on the parts (1, 2), the measurement vector (x', y') being compared to the target vector (x, y) to determine the gap between the pixels, a velocity profile being determined from the gap, a pseudo-inverse operation of the interaction matrix being applied to the velocity profile to obtain Cartesian velocities and a multiplication by the inverse Jacobian matrix of the robot being applied to the Cartesian velocities to obtain a movement command.
6. Assembly method according to any one of claims 3 to 5, characterized in that it comprises, after the initial step, an open-loop presentation step of the parts (1, 2), at the end of which the parts (1, 2) are separated by a few centimeters, the presentation step being followed by a primary visual pre-fixing servo loop at the end of which the parts (1, 2) are facing each other and correctly aligned, a secondary visual servo loop being then carried out at the end of which the parts (1, 2) are correctly fixed, a target vector (x, y) being determined at each of these steps.
7. Assembly method according to claim 6, characterized in that to realize the secondary visual servo loop, a first target vector Si corresponding to a first position and a second target vector s2 corresponding to a second position are calculated during the pre-fixing step, a line [sb s2] in each image of the cameras (5, 6, 7) being drawn in pixel space, images of the ends of the parts (1, 2) being taken by the camera (5, 6, 7) to obtain a vector field f(s) in each image of the cameras (5, 6, 7) from vectors (s) measured by the cameras (5, 6, 7).
8. Assembly method according to claim 7, characterized in that a pixel velocity profile is determined from the vector field f(s),
9.
10. a pseudo-inverse operation of the interaction matrix being applied to the pixel velocity profile to obtain Cartesian velocities and a multiplication by the inverse Jacobian matrix of the robot being applied to the Cartesian velocities to obtain the approach command allowing the robot to be controlled. Assembly method according to any one of claims 1 to 8, characterized in that the reference points comprise disc-shaped markers distributed around bores (8, 9) provided on the moving part (2) and on the fixed part (1) for fixing the two parts. Automated assembly system of a fixed part (1) with a moving part (2) capable of being moved relative to the fixed part by a robot, characterized in that it implements the assembly process as defined according to any one of claims 1 to 9.