How to use a robotic arm to position a part

By positioning parts at a second target separated from the build frame and applying corrections in free space, the method addresses robotic arm inaccuracies, achieving precise part placement with reduced errors and avoiding collisions.

JP2025525595AActive Publication Date: 2025-08-05BAE SYSTEMS PLC
View PDF 6 Cites 0 Cited by

Patent Information

Application Number
JP2025502918
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2022-07-21
Filing Date
2023-07-17
Publication Date
2025-08-05
Estimated Expiration
2043-07-17

AI Technical Summary

Technical Problem

Robotic arms often position parts inaccurately, leading to errors of several millimeters, which can cause collisions when correcting positions for complex objects like aircraft, making precise assembly challenging.

Method used

Position parts at a second target spatially separated from the object build frame, apply corrections in free space, and use relative movements to achieve the first target position, reducing errors by multiple orders of magnitude.

Benefits of technology

Accurately positions parts relative to the object build frame with reduced errors, allowing precise assembly without collisions, achieving sub-millimeter accuracy.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025525595000001_ABST
    Figure 2025525595000001_ABST
Patent Text Reader

Abstract

A method of using a robot arm to position a part of an object at a first target position relative to an object build frame, the method comprising: acquiring the part by the robot arm; determining a movement operation to be applied to the part, which moves the part to a second target position spatially separated from the object build frame; moving the part by the robot arm according to the movement operation; acquiring an actual position of the part; determining a correction operation to be applied to the part, which moves the part from the actual position to the second target position; moving the part by the robot arm according to the correction operation; determining a relative movement operation to be applied to the part, which moves the part from the second target position to the first target position; and moving the part by the robot arm according to the relative movement operation.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present invention relates to a method of using a robotic arm to position a part of an object at a first target position relative to an object build frame. [Background technology]

[0002] Robotic arms and / or other robotic manufacturing systems may be used when manufacturing / building objects such as vehicles, e.g., aircraft. In particular, robotic arms or other robotic manufacturing systems may be used to position / place parts of an object at a target position, where the target position is defined relative to other parts of the object already attached to the object's build frame. However, robotic arms often have errors, meaning that the actual position may differ from the target position by several millimeters, e.g., 2 mm to 8 mm, or even 10 mm or more. While it is possible to correct small errors in position by adjusting the part's position after the part is initially positioned / placed, this can become more difficult when the error is on the order of several millimeters. This is because, when the error in position is on the order of millimeters, applying a correction to the part's position may result in the part colliding with other previously positioned parts of the object. This is particularly problematic when the object is a complex object, such as an aircraft, where multiple parts must be positioned closely together and with high precision.

[0003] In view of the above, it is desirable to find improved methods for using a robotic arm or other robotic manufacturing system to position parts of an object relative to an object build frame. Summary of the Invention

[0004] According to one aspect of the present invention, there is provided a method for using a robot arm to position a part of an object at a first target position relative to an object build frame. The method comprises acquiring the part by the robot arm. The method also comprises determining a movement operation to apply to the part, where the movement operation moves the part to a second target position, the second target position being spatially separated from the object build frame. The method further comprises moving the part according to the movement operation by the robot arm. The method also comprises acquiring an actual position of the part and determining a correction operation to apply to the part, where the correction operation moves the part from the actual position to the second target position. The method further comprises moving the part according to the correction operation by the robot arm. The method comprises determining a relative movement operation to apply to the part, where the relative movement operation moves the part from the second target position to the first target position, and moving the part according to the relative movement operation by the robot arm.

[0005] In some examples, the first target position, the second target position, and the actual position of the part are specified relative to the object build frame, and in some examples, the relative movement motion is specified relative to the second target position.

[0006] In some examples, determining a relative movement movement to apply to the part and moving the part according to the relative movement movement comprises determining a relative movement movement through a third target position and moving the part through the third target position, which comprises determining the third target position and determining a first relative movement movement to apply to the part, where the first relative movement movement moves the part from the second target position to the third target position. This further comprises moving the part according to the first relative movement movement by the robot arm. This also comprises determining a second actual position of the part and determining a second corrective movement to apply to the part, where the second corrective movement moves the part from the second actual position to the third target position. This further comprises moving the part according to the second corrective movement by the robot arm. This also includes determining a second relative movement motion to apply to the part, where the second relative movement motion moves the part from a third target position to the first target position, and moving the part by the robot arm according to the second relative movement motion. In this example, the first relative movement motion can be specified with reference to the second target position, and the second relative movement motion can be specified with reference to a third target position. The third target position can be determined with reference to the object build frame.

[0007] In some examples, the second target position being spatially separated from the object building frame comprises the second target position being separated from the object building frame such that the part does not contact the object building frame when the corrective operation is applied to the part.

[0008] In some examples, the method further includes obtaining a third actual position of the part, wherein the third actual position of the part is specified relative to the object build frame; determining a third corrective action to apply to the part, wherein the third corrective action moves the part from the third actual position to the first target position; and moving the part according to the third corrective action by the robotic arm.

[0009] In some examples, the method further comprises obtaining a fourth actual position of the part, wherein the fourth actual position of the part is specified relative to the object build frame, and comparing the fourth actual position of the part to the first target position. In response to determining that the fourth actual position is within a threshold value of the first target position, the method comprises securing the part to the object build frame. In response to determining that the fourth actual position is not within a threshold value of the first target position, the method comprises determining a fourth corrective action to apply to the part, wherein the fourth corrective action moves the part from the fourth actual position to the first target position, and moving, by the robotic arm, the part according to the fourth corrective action.

[0010] In some examples, the robotic arm retrieves the part from a start location, and determining a movement operation to apply to the part comprises determining a movement operation that moves the part from the start location to a second target position.

[0011] In some examples, the actual position of the part is obtained from a metrology system. For example, obtaining the actual position of the part from the metrology system comprises using an imaging device to determine the actual position of the part relative to the object build frame. The imaging device may comprise a camera or a laser watching tracking system.

[0012] In some examples, the robotic arm navigates using a coordinate system, where the coordinate system is provided by a floor grid divided into cells that provide a unit cell for the coordinate system.

[0013] In some examples, the part comprises a vehicle part, the object comprises a vehicle, and the object building frame comprises a vehicle building frame, while in other examples, the part comprises an aircraft part, the object comprises an aircraft, and the object building frame comprises an aircraft building frame.

[0014] In some examples, the method comprises receiving, from the computer-aided manufacturing tool, a specified second target position relative to the object build frame. In these examples, determining the relative movement movement to apply to the part may comprise receiving, from the computer-aided manufacturing tool, the specified relative movement movement relative to the second target position.

[0015] In the above example, receiving the second target position from the computer-aided manufacturing tool may comprise receiving a nominal position of the second target position from the computer-aided manufacturing tool. The method may then further comprise receiving the nominal position of the object building frame from the computer-aided manufacturing tool, obtaining an actual position of the object building frame, determining a difference between the nominal position of the object building frame and the actual position of the object building frame, and determining the second target position from the nominal position of the second target position using the difference between the nominal position of the object building frame and the actual position of the object building frame.

[0016] In the above example, the relative movement action may be a relative movement action via a third target position. Thus, determining a relative movement action to apply to the part and moving the part according to the relative movement action may comprise receiving a first relative movement action from a computer-aided manufacturing tool, where the first relative movement action moves the part from the second target position to the third target position, moving the part by the robot arm according to the first relative movement action, determining a second actual position of the part, determining a second corrective action to apply to the part, where the second corrective action moves the part from the second actual position to the third target position, moving the part by the robot arm according to the second corrective action, receiving from the computer-aided manufacturing tool the second relative movement action to apply to the part, where the second relative movement action moves the part from the third target position to the first target position, and moving the part by the robot arm according to the second relative movement action. The first relative movement motion may be specified with respect to a second target position, and the second relative movement motion may be specified with respect to a third target position.

[0017] According to another aspect of the present invention, there is provided a computing device for controlling a robot arm to position a part of an object at a first target position relative to an object build frame, the computing device comprising: a processor and a memory, the memory storing instructions that, when executed by the processor, cause the processor to: acquire the part; determine a movement operation to apply to the part, where the movement operation moves the part to a second target position, the second target position being spatially separated from the object build frame; move the part according to the movement operation; acquire an actual position of the part; determine a correction operation to apply to the part, where the correction operation moves the part from the actual position to the second target position; move the part according to the correction operation; and determine a relative movement operation to apply to the part, where the relative movement operation moves the part from the second target position to the first target position; and move the part according to the relative movement operation.

[0018] According to a further aspect of the present invention, there is provided a guided robot system for positioning a part of an object at a first target position relative to an object build frame. The guided robot system includes a computing device having a processor and a memory. The memory stores instructions that, when executed by the processor, cause the processor to: acquire the part; determine a movement operation to apply to the part, where the movement operation moves the part to a second target position, the second target position being spatially separated from the object build frame; move the part according to the movement operation; acquire an actual position of the part; determine a correction operation to apply to the part, where the correction operation moves the part from the actual position to the second target position; move the part according to the correction operation; and determine a relative movement operation to apply to the part, where the relative movement operation moves the part from the second target position to the first target position; and move the part according to the relative movement operation. The guided robot system further comprises a robot arm configured to acquire the part, move the part according to a movement motion, move the part according to a correction motion, and move the part according to a relative movement motion under the control of the computing device.

[0019] In some examples, the guided robot system further comprises a metrology system configured to determine the actual position of the part using an imaging system and provide the actual position of the part to the computing device. The imaging system may comprise a camera or a laser tracking system.

[0020] In some examples, the guided robotic system may further comprise a communications interface configured to receive instructions from a computer-aided manufacturing tool executing on a remote computing device.

[0021] According to another aspect of the present invention, a non-transitory computer-readable storage medium comprising instructions that, when executed by a processor, cause the processor to perform a method for controlling a robot arm to position a part of an object at a first target position relative to an object build frame, the method comprising: acquiring the part, determining a movement operation to apply to the part, where the movement operation moves the part to a second target position, the second target position being spatially separated from the object build frame, causing the robot arm to move the part according to the movement operation, acquiring an actual position of the part, determining a correction operation to apply to the part, where the correction operation moves the part from the actual position to the second target position, causing the robot arm to move the part according to the correction operation, and determining a relative movement operation to apply to the part, where the relative movement operation moves the part from the second target position to the first target position, and causing the robot arm to move the part according to the relative movement operation.

[0022] Embodiments of the present invention will now be described, by way of example only, with reference to the drawings in which: [Brief explanation of the drawings]

[0023] [Figure 1] FIG. 1 shows a robotic arm being used to position a part at a first target position relative to an object build frame. [Figure 2] FIG. 2 is a flow chart illustrating a method for positioning a part at a first target position relative to an object build frame, where the part is positioned via a second target position. [Figure 3] FIG. 3 is a flow chart illustrating the final correction process for positioning a part at a first target position relative to an object build frame. [Figure 4] FIG. 4 is a flow diagram illustrating a method for positioning a part at a first target position relative to an object build frame, where the part is positioned via several intermediate target positions. [Figure 5] FIG. 5 illustrates a guided robot system that can be used to implement a method for positioning a part at a first target position relative to an object build frame. [Figure 6] FIG. 6 illustrates a computer device or computing-based device that may be used to control a robotic arm to position a part at a first target position relative to an object build frame. DETAILED DESCRIPTION OF THE INVENTION

[0024] This application relates to using a robot arm to position an object part at a first target position relative to an object build frame of the object. The object build frame includes already positioned object parts, which may also be referred to as an object assembly. When a robot arm is used to position the part, there may be multiple errors due to errors in the manufacturing of the part, errors in the positioning of the object build frame, and errors in how the robot arm maps space onto the object build frame. These errors result in the part being positioned inaccurately. Often, these errors are on the order of millimeters, or even tens of millimeters. Therefore, these errors cannot always be corrected in place because this would result in the part colliding with or otherwise interacting with the object build frame and / or other parts of the object. This may damage the object part or other components. To reduce the size of the in-place correction, in this application, the part is first positioned at a second target position that is spatially separated from the object build frame. Any corrections are then applied to correct for any errors in the object build frame and how the robot arm maps to the robot build frame. Relative movements are then used to position the part at the first target position. Because the relative movements are calculated relative to the first target position, rather than an absolute position defined relative to the object build frame, errors in how the robot arm maps the absolute position remain corrected. While there may be other errors due to the precision with which the robot arm can be moved, they are often lower, allowing them to either be ignored or corrected in place.

[0025] In some examples, the object may comprise a vehicle, the part may comprise a vehicle part, and the object building frame may comprise a vehicle building frame or a vehicle assembly. In other examples, the object may comprise an aircraft, the article may comprise an aircraft part, and the object building frame may comprise an aircraft building frame or an aircraft assembly. However, one skilled in the art will understand that other objects may be considered.

[0026] FIG. 1 illustrates a robotic arm 420 that can be used to position a part 430 at a first target location 460 relative to an object building frame 440. As described in more detail below, the part 430 is moved to the first target location 460 via a second target location 450 that is spatially separated from the object building frame 440. FIG. 1 also illustrates a metrology system 410 that can be used to determine the position of the part 430 relative to the object building frame 440. FIG. 1 further illustrates a floor grid 470, where in some examples, the robotic arm 420 can use the floor grid 470 to navigate and determine its own position relative to a coordinate system defined by the floor grid 470. The robotic arm 420 can use the position of the object building frame 440 on the floor grid 470 / coordinate system to determine its position relative to the object building frame 440 and to position the part relative to the object building frame 440.

[0027] 2 is a flowchart illustrating a method 100 for positioning a part 430 using a robotic arm 420 or other robotic manufacturing device in accordance with the present application. In particular, FIG. 2 illustrates a method for moving a part 430 of an object to a first target position 460, where the first target position 460 is defined relative to an object building frame 440. Defining the first target position 460 relative to the object building frame 440 means that the first target position 460 is specified in the frame of reference of the object building frame. Thus, a portion or parts of the object building frame 440 may be considered to define an origin or zero point for the frame of reference. In one example, the object being built may comprise an aircraft, the object building frame 440 may comprise the aircraft building frame, and the origin or zero point may comprise the position of the nose of the aircraft / aircraft building frame. The first target position 460 is specified relative to the object build frame 440 and represents the location to which the part 430 should be moved in order to properly position the part 430 relative to the object build frame 440, as defined in the frame of reference of the object build frame 440. Thus, Figure 2 illustrates a method 100 of using a robotic arm 420 (or other robotic manufacturing device) to position an object part 430 relative to the object build frame 440.

[0028] In step 110, the robotic arm 420 (or other robotic manufacturing device) retrieves the part 430 to be positioned. The part 430 may be retrieved from a start location that comprises a pick-up location. The start location may be any suitable location and may comprise a location where the part 430 is stored or may comprise a location where the part is moved to allow it to be positioned using the robotic arm 420.

[0029] In step 120, the method comprises determining a translation operation to be applied to the part 430. This step may be performed by a computing device. The translation operation is an operation that, when performed by the robot arm 420, moves the part 430 to a second target position 450. The second target position 450 is different from the first target position 460. The second target position 450 is spatially separated from the first target position 460. The translation operation may be a translation and / or a rotation that moves the part to the second target position 450. The translation operation defines the second target position 450 with respect to the object building frame 440. In other words, the second target position 450 is defined with reference to the object building frame 440. Thus, the second target position 450 is specified in the reference frame of the object building frame 440. The second target position 450 is a position in free space and / or clear space in that when the part 430 is in the second target position 450, the part 430 will avoid all collisions with the object, the object building frame 440, and / or any other objects in the vicinity of the object building frame 440. In this regard, the second target position 450 may be considered to be spatially separated from the object building frame 440. As such, the second target position 450 may be at least 50 mm away from the object building frame 440. In other examples, the second target position 450 may be at least 75 mm or 100 mm away from the object building frame 440. Having the second target position 450 in free space and spatially separated from the object building frame 440 ensures that any corrective action applied to the part 430 will not cause the part 430 to come into contact with the object building frame 440. For example, the corrective action may be a translation of at most 50 mm or a rotation of 1 degree. Therefore, having the second target position 450 at least 50 mm, 75 mm, or 100 mm away from the object building frame 440 ensures that the part 430 will not contact the object building frame 440 when the corrective action is taken. In contrast, at the first target position 460, the part 430 may contact the object building frame 440, allowing the part 430 to be attached to the object building frame 440.In some examples, the move operation may be an operation that moves the part 430 from a start location to a second target position 450. However, this operation may be determined by considering both the start location and the second target position 450 in the frame of reference of the object building frame 440. Therefore, this move operation may be considered to be an absolute move.

[0030] In step 130, the method comprises using the robot arm 420 to move the part 430 according to a translation motion. In other words, the method comprises moving the part 430 according to a translation motion by the robot arm 420. Due to limitations of the robot arm 420 and / or other robotic manufacturing systems, moving the part 430 according to a translation motion using the robot arm 420 will not result in the part 430 being precisely positioned at the second target position 450. Instead, the part 430 will be positioned at the second target position 450 within some error threshold. This error may be caused by errors in manufacturing / tolerances of the part 430, errors in the robot arm 420 that mean the robot arm 420 does not correctly position the part 430 relative to the object build frame 440, and errors in the positioning of the object build frame 440, for example, relative to the floor grid 470. For some robotic arms or robotic manufacturing systems, this error may be on the order of millimeters, for example, about 10 mm or 2 mm to 8 mm. Thus, using the robotic arm 420 to move the part 430 according to a movement motion results in the part 430 being positioned at the second target position 450 within a degree of accuracy. When building a complex object such as an aircraft, this accuracy may be too low to allow for accurate building. Therefore, this accuracy may prevent the robotic arm or other robotic manufacturing system from being used to build the object. Therefore, it is desirable to correct this error.

[0031] In step 140, the actual position of the part 430 is acquired or determined. The actual position is specified with reference to the object build frame 440. In other words, the actual position is determined in the reference frame of the object build frame 440 and is a position relative to the object build frame 440. The actual position of the part 430 is the position at which the robot arm 420 places / positions the part 430 when attempting to place / position the part 430 at the second target position 450. This actual position may be determined using and obtained from a metrology or other measurement system 410. When a metrology or other measurement system 410 is used, the metrology or other measurement system 410 is used to determine the precise actual position of the part 430. The metrology system 410 may be external to and separate from the robot arm 420. However, in other examples, the metrology system 410 may form part of the robot arm 420. In one example, the metrology system 410 is a camera. In another example, the metrology system 410 is a laser tracking system.

[0032] In step 150, the method includes determining a correction operation to be applied to the part 430. This step may be performed by a computing device. The correction operation includes a movement operation that moves the part 430 from its actual position to the second target position 450. This movement operation may include translating and / or rotating the part 430 to move the part 430 from its actual position to the second target position 450. Because the correction operation specifies how the part 430 should be moved from its actual position to reach the second target position 450, the correction operation is a movement operation relative to the actual position. In other words, the correction may specify how the part 430 needs to be moved from its actual position to be positioned at the second target position 450. In some examples, the order of magnitude of the correction may be expected. For example, if the error is on the order of millimeters, the order of magnitude of the correction may also be on the order of millimeters. Having the second target position 450 in free space or spatially separated from the object building frame 440 may include having the second target position 450 separated from the building frame so that any corrections applied to the part 430 do not cause the part 430 to collide or otherwise contact or interfere with the object and / or object building frame 440.

[0033] In step 160, the robot arm 420 is used to apply the corrective action to the part 430. In other words, the method comprises moving the part 430 according to the corrective action by the robot arm 420. Thus, the robot arm 420 is used to correct the position of the part 430 so that the part 430 moves from its actual position to a closer approximation of the second target position 450. Although there may still be an error in the position of the part 430, this error is smaller than the previous error. This is because the corrective action may correct for any error in the manufacturing / tolerance of the part 430, the error in the positioning of the object build frame 440, and the error in the alignment between the robot arm 420 and the object build frame 440. Thus, the remaining error may be reduced to an error in the system used to obtain the actual position of the part 430, which may be a measurement error when the system is the metrology system 410, and potentially any error that occurs when performing the corrective action. In some instances, this may reduce the error to the order of 0.25 mm, thus reducing the error by one or two orders of magnitude.

[0034] In step 170, the method comprises determining a relative movement to apply to the part 430, where the relative movement moves the part 430 from the second target position 450 to the first target position 460. The first target position 460 may be a position where the part 430 contacts or otherwise connects with the object building frame 440 to allow the part 430 to be attached to the object building frame 440. The relative movement operation may comprise a translation and / or rotation that moves the part 430 from the second target position 450 to the first target position 460. This step may be performed using a computing device. The relative movement is a relative movement operation. The relative movement is determined with respect to the second target position 450. In other words, the relative movement is determined in the frame of reference of the second target position 450, which may be considered a local frame of reference. Thus, the relative movement specifies how the part 430 should be moved from the second target position 450 to position the part 430 at the first target position 460. Because the movement is specified in the reference frame of the second target position 450, errors in how the robot arm 420 determines its position in the reference frame of the object build frame 440 can remain corrected as the part 430 moves to the first target position 460. Similarly, errors / tolerances in the manufacturing of the part 430 can also remain corrected as the part 430 moves. However, in some instances, errors may arise due to the precision with which the robot arm 420 may move the part 430, but these errors may be significantly smaller than errors that occur when the movement is made in the reference frame of the object build frame 440, e.g., relative to an absolute position.

[0035] In step 180, the method comprises using the robot arm 420 to move the part 430 according to a relative movement motion. In other words, the robot arm 420 moves the part 430 according to a relative movement motion. The purpose of this movement motion is to position the part 430 at the first target position 460. As described above, because the relative movement motion is a relative motion in the reference frame of the second target position 450, any error in how the robot arm 420 determines its location in the reference frame of the object build frame 440 can remain corrected even after the relative movement motion. This reduces any error in positioning / placing the part 430 at the first target position 460. This means that the part 430 can be accurately positioned with respect to the object build frame 440. Due to limitations on how accurately the robot arm 420 can perform the relative movement, there may still be some error in the final position of the part 430.

[0036] Those skilled in the art will understand that the above-described method 100 can be performed using a robotic arm 420 controlled by a computing device, where the computing device can be used to control the robotic arm 420. Thus, the computing device can perform the above-described determining and calculating steps and can also be used to control the robotic arm 420 to cause the robotic arm 420 to perform the above-described moving steps. The robotic arm 420 and the computing device can be combined into a single robotic system. Alternatively, the computing device and the robotic arm 420 can be separate devices configured to connect or otherwise communicate to enable performance of the method 100. In some examples, the computing device can receive details of the object to be built, where these details include a nominal position of the object building frame 440 and first and second positions 450. The computing device can then adjust these nominal positions based on the position of the object building frame 440 as determined by the metrology system 410 or as programmed into the computing device by a user. This allows the computing device to be programmed offline and then the program implemented without the need to adjust the program during the construction of the object.

[0037] The above method may improve the positioning of the part 430 relative to the object building frame 440. It should be noted that, particularly if the robot arm 420 is used to move the part to the first target position 460 within the accuracy obtainable when using absolute positioning, corrections on the order of magnitude of millimeters or tens of millimeters may be needed while the part 430 is near or approximately the first target position 460. However, corrections on the order of magnitude of millimeters or tens of millimeters may not be possible to apply when the part 430 is near or approximately the first target position 460. This is because applying corrections while the part 430 is near or approximately the first target position 460 may cause the part 430 to collide or otherwise interact with the object and / or the object building frame 440, for example, by colliding with or otherwise interacting with other parts already positioned relative to the object building frame 440. The collision or other form of interaction may damage or displace the part 430 or other parts of the object building frame 440.

[0038] With this in mind, the above method applies any corrections in free space, where the part 430 is spatially separated from the object building frame 440. The part 430 is then moved from the free-space position where the corrections are applied to the first target position 460 using a translation relative to the free-space position where the corrections are applied. This ensures that errors in the manufacturing of the part 430, errors in the positioning of the object building frame 440, and errors in how the robot arm 420 positions the object in the reference frame of the object building frame 440, including errors in how the robot arm 420 maps the object building frame 440, are corrected and remain corrected during the relative translation. As explained in more detail below, there may still be some errors in the positioning of the part 430 compared to the first target position 460. In particular, there may be errors due to the accuracy of the measurement / metrology system 410 and errors due to the robot arm 420 not accurately applying the relative translation motion. However, in some examples, these errors are reduced from the order of millimeters that occur when positioning using absolute positions to a fraction of a millimeter, e.g., 0.25 mm, 0.5 mm, or 0.75 mm. Thus, the above method represents an order of magnitude reduction in errors in positioning part 430. These smaller errors may be within the tolerance range of the object. In other examples, as described in more detail below, these errors may be small enough to be corrected in place while avoiding collisions between part 430 and object build frame 440 and / or the object.

[0039] As described above, despite applying a correction when the part 430 is at the second target position 450 and / or the intermediate target position, there may still be an error in the position of the part 430 after the robot arm 420 positions the part 430 at the first target position 460. This error may be on the order of a fraction of a millimeter, e.g., 0.25 mm, 0.5 mm, or 0.75 mm. Thus, this error may be small enough to be corrected in place without the part 430 colliding with or otherwise interacting with the object build frame 440. Therefore, in some examples, the above method may further comprise performing an in-place correction of this error before the part 430 is considered to be correctly positioned at the first target position. A method 200 for performing such a correction is shown in FIG. 3.

[0040] 3, when in-place correction of errors is performed, the method of positioning part 430 further comprises obtaining an actual position of part 430 relative to object build frame 440. This step may be performed by a computing device. As previously mentioned, this actual position may be determined using a metrology or other measurement system 410, such as a camera or laser tracking system, and then obtained from this metrology or other measurement system 410. This actual position may be considered a second / third or further actual position to distinguish it from previously obtained actual positions.

[0041] In step 230, the method further includes determining a corrective action to be applied to the part 430. This corrective action may be determined by a computing device. The corrective action may include a movement action that moves the part 430 from its actual position to the first target position 460. If necessary, the corrective action may be referred to as a second / third corrective action to distinguish it from previously considered corrective actions. The corrective action may be a movement action that includes translating and / or rotating the part 430 to position the part 430 at the first target position 460. Because the corrective action specifies how the part 430 should be moved from its actual position to ensure that the part 430 is positioned at the first target position 460, the corrective action is a movement relative to the actual position.

[0042] In step 250, the method then further comprises using the robot arm 420 to move the part 430 according to the corrective action. In other words, the method comprises using the robot arm 420 to move the part 430 according to the corrective action. This corrective action moves the part 430 to position it closer to the first target position 460. Assuming that the method 200 of FIG. 3 is performed after the free-space correction described above with respect to FIG. 2, the correction applied here is relatively small. For example, the corrective action may require only a movement of a fraction of a millimeter, e.g., 0.25 mm, 0.5 mm, or 0.75 mm. This means that the corrective action in step 240 can be applied with the part 430 in place, because the relatively small movement means that the part 430 can be moved without colliding with or otherwise interacting with other parts of the object build frame 440.

[0043] Once the corrective action has been applied, then in step 250, part 430 may optionally be secured, attached, or otherwise connected to object build frame 440 or other previously positioned parts of the object. This may be done using another part of the robotic system, robot arm 420, or by a human operator. Attaching / securing part 430 to object build frame 440 allows the object to be built while using robot arm 420 for positioning.

[0044] 3 , in some examples, the above-described corrective action is always applied, while in other examples, an error in the positioning of the part 430 may be determined, and if the error is small, no correction may be applied. Thus, in some examples, after obtaining 210 the actual position of the part 430, rather than simply determining 230 and implementing 240 the corrective action, the method may further comprise, in step 215, comparing the actual position to the first target position 460. This step may be performed by a computing device. Thus, the method 200 may comprise determining a difference between the actual position and the first target position 460. This difference may then be compared to a threshold difference, where the threshold difference represents the accuracy with which the part 430 should be positioned.

[0045] In step 220, the method may include using this comparison to determine how the difference between the actual position and the target position compares to a threshold. This step may be performed by a computing device. If it is determined that the difference between the actual position and the first target position 460 is less than or not greater than the threshold difference, the actual position may be considered to be within a threshold distance of the first target position 460. In contrast, if it is determined that the difference between the actual position and the first target position 460 is more than or not less than the threshold difference, the actual position may be considered not to be within the threshold difference distance.

[0046] If, in step 225, the actual position is deemed to be within a threshold distance of the first target position 460, the method may comprise fastening, attaching, or otherwise connecting the part 430 to the object building frame 440 without making the corrections defined in steps 230 and 240. As noted above, this may involve connecting or otherwise attaching the part 430 to the object building frame 440 or to other parts 430 positioned relative to the object building frame 440. This may be done using another part of the robotic system, the robotic arm 420, or by a human operator.

[0047] In contrast, if the actual position is not deemed to be within the threshold distance of the first target position 460, the method may include determining 230 a corrective action and using the robot arm 420 to move the part 430 according to the corrective action described above in step 240. In some examples, only one cycle of comparing the actual position to the first target position 460 is performed, and after any corrections are applied in step 240, the part 430 is attached to the object build frame 440 in step 250. In other examples, multiple cycles of comparing the actual position to the first target position 460 may be performed, and the article 430 may be attached to the object build frame 440 only if the actual position of the part 430 is within the threshold distance of the first target position 460.

[0048] As shown in FIG. 4 , in some examples, the method 100 of FIG. 2 may comprise an iterative move-measure-correct procedure in which multiple moves and corrections are used before the part 430 is positioned at the first target position 460. In particular, in some examples, the part 430 is moved to the first target position 460 via several intermediate target positions. This is because, depending on the complexity of the object and the number of parts already connected to the object building frame 440, multiple relative movement operations may be required to move the part 430 to the first target position 460. For example, if the object being built and / or the object building frame 440 is complex, a chain of relative movement operations may be required to move the part 430 into position without colliding with any parts already forming the object building frame 440. This may involve a chain of relative movement operations forming a zigzag path through multiple intermediate target positions. Multiple movements may be used to guide the part 430 through multiple intermediate target positions to the first target position 460 to avoid collision of the part 430 with the object build frame 460 or to prevent error accumulation. Each intermediate target position may be different from the other intermediate target positions and the first target position 460. Each intermediate target position may be spatially separated from the other intermediate target positions and the first target position 460. In some examples, as described in more detail below, the relative movement operations may be a set of relative movement operations provided and specified relative to one another by a user and / or a design / manufacturing tool.

[0049] The movement to the first intermediate target position may be performed in the reference frame of the object build frame 440. In other words, the movement to the first intermediate target position may represent the first intermediate target position in the reference frame of the object build frame 440, such that the first intermediate target position is specified as an absolute position. The other movements may be performed in relative reference frames relative to the intermediate target position from which the part 430 is being moved. Thus, as described in more detail below, while the other movements may introduce relative movement errors due to the precision with which the robot arm 420 may perform the movement operations, they do not reintroduce errors due to manufacturing limitations of the part 430, the positioning of the object build frame 440, and the alignment of the robot arm 420 with the object build frame 440. While it may potentially be possible to simply chain these relative movement operations and then perform a final correction operation, this may lead to an overall error that is too large to correct in place, as each movement operation may introduce error. Thus, in some examples, the relative movement and correction are performed iteratively, where each relative movement operation is relative to an intermediate target position, and the correction is applied between relative movement operations when the part 430 is in proximity to the intermediate target position.

[0050] In step 305, the method 300 comprises having the robotic arm 420 retrieve the part 430 from a home location for the part 430. The home location for the part 430 comprises an initial start location for the part 430. This may be a location where the part 430 is stored. However, in other examples, the part 430 may be moved to the initial start location to ensure that the initial start location is suitable for allowing the robotic arm 420 to retrieve / pick up or otherwise collect the part 430.

[0051] In step 310, the method comprises determining a transfer operation that will move the part 430 to a first intermediate target position, where the first intermediate target position is a position away from the build frame or build assembly of the object. This step may be performed by a computing device. The first intermediate target position corresponds to the second target position 450 described above. Like the second target position 450 described above, the first intermediate target position is in free space away from the object / object build frame 440 / object assembly. This ensures that any corrections in the position of the part 430 made at the first intermediate target position do not result in any collisions between the part 430 and the object build frame 440, the object, and / or other parts of the object. In some examples, if the object is an aircraft, the first intermediate target position may be 100 mm away from the origin of a coordinate system defining the aircraft build frame. The origin of the coordinate system defining the aircraft build frame may comprise the nose of the aircraft. The transfer operation comprises moving the part 430 to the first intermediate position. The translation operation specifies the first intermediate position as an absolute position, for example, as a position in the reference frame of the object building frame 440. Thus, the first intermediate position is specified relative to the object building frame 440. In step 310, the part 430 is also moved by the robot arm 420 according to the determined translation operation. This results in the part 430 being positioned approximately at the first intermediate target position within an error, which may be due to any error in the positioning / sizing of the part 430 and the object building frame 440, as well as errors due to how the robot arm 420 is mapped to the object building frame 440, for example, via the floor grid 470.

[0052] In step 315, the robot arm 420 is used to apply a metrology correction to the part 430. As described above, applying the metrology correction may involve obtaining the actual position of the part 430, determining a corrective motion to move the part 430 from the actual position to an associated target position, here the first intermediate target position, and using the robot arm 420 to move the part 430 according to the corrective motion. This correction may be referenced to the actual position of the part 430, which corrects for any errors in the manufacturing of the part 430, the positioning of the object build frame 440, and the mapping of the robot arm 420 onto the object build frame 440. Thus, performing this metrology correction may reduce the error from approximately 10 mm to approximately 0.25 mm or 0.5 mm.

[0053] In steps 320 and 325, the method further includes performing a relative movement operation to move the part 430 to a second intermediate target position. This second intermediate target position may also be referred to as a third target position. The second intermediate target position may be spatially separated from the object build frame 440 and may be different from and spatially separated from the first intermediate target position and the first target position 460. As described above, performing the relative movement operation may include determining a relative movement operation and then using the robot arm 420 to move the part 430 according to the relative movement operation. While steps 320 and 325 show two relative movement operations being performed as part of one iteration 430, one skilled in the art will understand that more or fewer relative movement operations may be performed as part of a single iteration. For example, only one relative movement operation may be performed as part of each iteration.

[0054] The number of relative movement operations depends on the difficulty and complexity of positioning the part 430. The relative movement operations are determined in a reference frame of the current position of the part 430, e.g., a local reference frame or relative position. When a single relative movement operation is used, the relative movement is determined relative to the current intermediate target position and moves the part 430 from the current intermediate target position to the next intermediate target position. For example, a relative movement operation may be relative to a first intermediate target position and move the part 430 from the first intermediate target position to a second intermediate target position. In some examples, when multiple relative movement operations are used, the starting position for each relative movement is the ending position of the previous relative movement. The first relative movement is thus determined in the reference frame of the current (e.g., first) intermediate position. However, other relative movements are determined in the reference frame of the ending position of the previous relative movement. However, in other examples, all relative movement operations in an iteration are determined based on the current intermediate target position, e.g., the first intermediate target position. Because the relative translation operations are based on the current position of the part 430 and not specified in terms of an absolute position on the aircraft build frame, any errors in the manufacturing of the part 430, the positioning of the object build frame 440, and / or the mapping of the robot arm 420 to the object build frame 440 remain compensated for. However, the relative translation operations may introduce errors based on how precisely the robot arm 420 can move. In some examples, there may be an error of about 0.25 mm for each relative translation operation. Therefore, if multiple relative translation operations are required to properly position the part 430, further measurement corrections may need to be made.

[0055] In step 330, the method comprises transitioning from operating in a local reference frame, e.g., the reference frame of the current position of the part 430, to an absolute reference frame, e.g., the reference frame of the object construction frame, which allows any measurement corrections to be made.

[0056] In step 335, a (second) metrology correction is applied to the part 430. As described above, applying the metrology correction involves obtaining / determining the actual position of the part 430. This actual position may be obtained / determined using the metrology system 410 or other measurement system and may specify the position of the part 430 relative to the frame of reference of the object build frame 440. Once the actual position of the part 430 is obtained, a corrective action may be determined. The corrective action is a movement action that moves the part 430 from its actual position to a second intermediate target position. The corrective action may be a movement action relative to the actual position of the part 430. Thus, the corrective action does not reintroduce any error in how the robot arm 420 is related to the object build frame 440. Performing the metrology correction 335 also involves using the robot arm 420 to move the part 430 according to the corrective action. After performing the metrology correction, errors in the position of the part 430 may be reduced. For example, any error in how the robot arm 420 relates to the object build frame 440 may be reduced, and therefore the error in the position of the part 430 may be reduced to about 0.25 mm.

[0057] 4, steps 320, 325, 330, and 335 may be performed multiple times through multiple intermediate target positions. In particular, a set of relative movement movements 320, 325 may be performed, and then correction movements 335 may be applied several times until only one or one set of relative movement movements is needed to move part 430 to first target position 460. The number of relative movement movements in a set may depend on the error introduced by robot arm 420 during each relative movement movement and the maximum error that can be corrected in place without part 430 colliding with or otherwise interacting with object build frame 440, the object, or other parts of the object. After each relative movement movement or set of relative movement movements 320, 325, metrology corrections 335 may be applied. This ensures that if the movement required to move part 430 from the first intermediate target position to first target position 460 is complex and needs to be split into multiple relative movement operations, it will still be possible to make this movement without the overall correction that needs to be applied becoming so large that it can no longer be made in place.

[0058] In step 340, a final relative movement or set of relative movements is used to position the part 430 approximately at the first target position 460. A relative movement motion or set of relative movement motions is determined that will move the part 430 from the final intermediate target position to the first target position 460. This relative movement motion or set of relative movement motions is determined relative to the final intermediate target position and is determined in the reference frame of the final intermediate target position. The robot arm 420 is then used to move the part 430 according to this relative movement motion or set of relative movement motions.

[0059] In step 350, the method comprises switching back to a reference frame for absolute position, for example, that of the object construction frame 440.

[0060] In step 355, a metrology correction is applied. To apply this metrology correction, the actual position of the part 430 is obtained, where the actual position of the part 430 is determined in the reference frame of the object build frame 440. As previously described, this actual position of the part 430 may be determined using the metrology system 410 or other form of measurement system. The actual position of the part 430 and the first target position 460 are then used to determine a corrective motion, where the corrective motion is a motion that moves the part 430 from its actual position to the first target position 460. The robot arm 420 is then used to move the part 430 according to the corrective motion, which moves the part 430 to a closer approximation of the first target position 460.

[0061] In some examples, after this correction 355, the part 430 is simply fixed or otherwise positioned relative to the object build frame 440. However, in other examples, a metrology verification step 360 may be used. In these examples, another actual position of the part 430 is determined. This may then be compared to the first target position 460, as described above with respect to step 215 of FIG. 3. If the actual position is within a threshold distance of the first target position 460, as described with respect to FIG. 3, the part 430 may be fixed or otherwise positioned relative to the object build frame 440. Otherwise, if the actual position is not within the threshold distance of the first target position 460, a further corrective action may be determined, as described with respect to steps 230-240 of FIG. 3, and the part 430 may be moved by the robot arm 420 according to this corrective action to reduce the error in the position of the part 430. This process may be repeated until the actual position of the part 430 is within a threshold distance of the first target position 460, at which point the part 430 may be fixed or otherwise positioned relative to the object building frame 440.

[0062] Once part 430 is secured or otherwise positioned relative to object building frame 440, then the process may be considered complete, as shown in step 365. Robot arm 420 may then be disconnected from part 430 or moved away from part 430, optionally leaving part 430 in place relative to object building frame 440.

[0063] In the above-described methods 100, 200, and 300, the actual position of the part 430 is determined. As described above, the actual position of the part 430 may be determined using a metrology system 410. The metrology system 410 may include an imaging device that determines the actual position of the part 430 relative to the object building frame 440. The imaging system may include a camera or a laser tracking system. The zero point or origin of the coordinate system may comprise a particular portion / section of the object building frame 440. For example, when the object is an aircraft, the zero point or origin of the coordinate system may comprise the nose of the aircraft. Using the metrology system 410 in conjunction with the robotic arm 420 may reduce errors in positioning the components because the metrology system 410 may determine the position of the part 430 relative to the object building frame 440, and therefore the absolute position of the part 430, more accurately than the robotic arm 420.

[0064] The robot arm 420 may determine its position relative to a floor grid, such as floor grid 470 shown in FIG. 1 . In some examples, floor grid 470 may comprise a flexible floor, where the flexible floor is divided into cells that provide unit cells for a coordinate system that allows the robot arm 420 to navigate. The robot arm determines its position relative to floor grid 470. The robot arm 420 may use the position of the object build frame 440 relative to floor grid 470 to map the actual location received from metrology system 410 onto the frame of floor grid 470. This allows the robot arm 420 to make any necessary movements and corrections based on the information received from metrology system 410.

[0065] The above method increases the feasibility of using a robotic arm to position parts of an object, especially when the object is a complex object such as an aircraft. This is because the method reduces the size of corrections that need to be made in place, thus increasing the likelihood that the corrections can be made without causing the part being positioned to collide with other parts of the object. This is achieved by correcting initial errors in free space. However, the above method may have other advantages. For example, in some computer-aided design and computer-aided manufacturing environments, objects may be designed offline. However, when it comes time to build the object, there may be errors in the positioning of the object's build frame and parts, or errors in any grid used for alignment, which prevent the design from being used for manufacturing without significant modifications. The above method may correct these errors using initial correction operations performed in free space. Subsequent moves are then made relative to the part's current position, meaning that these errors can remain corrected and the design can be used in real-world space, even if that space differs from the design space used to create the initial design.

[0066] In some examples, the object being built is designed by a computer-aided manufacturing tool. The method comprises receiving information about the object to be built from the computer-aided manufacturing tool. This information may include a second target position 450 and any subsequent relative movement operations that may be specified relative to the second target position 450 or any subsequent intermediate target positions. This allows the user / operator to design the object offline, because correcting the position of the part 430 at the second target position 450 will mean that any errors in how the robot arm 420 relates to the frame of reference of the object build frame 440 remain corrected after the initial correction operations are applied.

[0067] In some examples, the information may also include nominal positions of the object building frame 440 and the second target position 450. The method may comprise comparing the nominal position of the object building frame 440 to the actual position of the object building frame 440, where the actual position of the object building frame 440 may be determined using the metrology system 410 or other suitable positioning system 410. The nominal position of the second target position 450 is then adjusted based on the actual position of the object building frame 440, such that the relationship between the object building frame 440 and the second target position 450 is the same for the adjusted position and the nominal position. In other words, the nominal position of the second target position 450 is adjusted based on the actual position of the object building frame 440, such that the adjusted second target position 450 is positioned relative to the actual position of the object building frame 440 in the same way as the nominal position of the second target position 450 is positioned relative to the nominal position of the object building frame 440.

[0068] As described above, in some examples, the part 430 may be moved to the first target position 460 through several intermediate target positions, including a first intermediate target position, also known as a second target position 450, which represents the location where the part 430 is to be positioned relative to the object building frame 440. In such examples, a user or operator may use a computer-aided manufacturing tool to specify a path for the part 430 to take. This path comprises one or more relative movement operations from the first intermediate target position through one or more subsequent intermediate target positions to the first target position 460. The user / operator defines / provides a path of relative movement operations that allows the part 430 to move to the first target position 460 without colliding with the object building frame 440 or any other object. In some examples, this may involve a zigzag path to avoid collision with the object building frame 440. The user / operator may specify the first intermediate target position (e.g., the second target position 450) in the reference frame of the object building frame 440. The user / operator may then specify the first target position 460 and other intermediate target positions based on how the part 430 should move from the first intermediate target position (e.g., the second target position 450) to the first target position 460, whereby these target positions are specified relative to the first intermediate target position or subsequent intermediate target positions.

[0069] When it comes to building the object, there may be inaccuracies in any position specified in the reference frame of the object building frame 440 due to issues with the alignment of the object building frame 460 and the floor grid 470, and / or inaccuracies due to manufacturing tolerances of the part 430 and the object building frame 460. In addition, there may be inaccuracies due to errors in how the floor grid 470 is installed. The first intermediate target position (or second target position 450) is specified relative to the object building frame 460. This means that the movement operation that moves the part 430 to the first intermediate target position is subject to these errors. However, because the first intermediate target position is spatially separated from the object building frame 440, corrective movements can be applied to the position of the part 430 without the part 430 colliding with the object building frame 440. All subsequent movement operations are performed with reference to another position, e.g., the first intermediate target position or another intermediate target position, as well as relative movement operations that are not in the reference frame of the object building frame 440. This ensures that any inaccuracies in how the robot arm 420 and the frame of reference of the object build frame 440 relate remain corrected as these movement operations are performed. This allows a user / operator to design the object offline and have the system / method correct for any inaccuracies in the frame of reference of the object build frame 440 without the user / operator having to redesign the path that the part 430 should move while it is being positioned.

[0070] The methods defined above may be implemented by a guided robot system 500 as shown in FIG. 5 . The guided robot system 500 includes a computing device 510, such as the computing device or computer-based device described with respect to FIG. 6 . The guided robot system 500 also includes a robotic arm 520 controlled by the computing device 510. The computing device 510 may be used to perform the calculating and determining steps of the above-described methods 100, 200, and 300. The computing device 510 may also be used to control the robotic arm 520 to perform the movement operations of the above-described methods 100, 200, and 300. In some examples, the guided robot system 500 may also include a metrology system 530, which may be used to monitor / determine the position of a part held by the robotic arm 520 and provide this to the computing device 510. The metrology system 530 may be the metrology system described above. In some examples, a floor grid 540 may also form part of the guided robot system 500, where the floor grid 540 may be the floor grid 470 described above. The robot arm 520 may use the floor grid 540 to determine its position. The guided robot system 500 may operate based on instructions generated by a computer-aided manufacturing tool. As described above, the instructions may comprise nominal positions for the object building frame 440, the second target position 450. As described above, the guided robot system 500 may adjust these nominal positions based on the actual position of the object building frame 440, as determined by the metrology system 410.

[0071] The above methods 100, 200, 300 may be implemented by a computing device, such as the computing device or computer-based device described with respect to FIG. 6 below. The computing device may perform the determining and calculating steps and may control the robotic arm to perform the moving steps. While the computing device may form part of the guided robotic system 500, in other examples, the computing device may be separate from the guided robotic system 500 and may control a separate robotic arm.

[0072] The above methods 100, 200, 300 may be performed by software in machine-readable form on a tangible storage medium, e.g., in the form of a computer program comprising computer program code means adapted to perform all steps of any of the methods described herein when the program is executed on a computer, where the computer program may be embodied on a computer-readable medium. When the program is executed on a computer, it may cause the computer to perform determining and calculating steps, and may also cause the computer to control a robotic arm to perform movement steps. Examples of tangible (or non-transitory) storage media include disks, thumb drives, memory cards, etc., and do not include propagated signals. The software may be suitable for execution on a parallel or serial processor, such that the method steps may be performed in any suitable order, or simultaneously.

[0073] FIG. 6 illustrates various components of an exemplary computing-based device 600, which may be implemented as any form of computing and / or electronic device, and in which embodiments of the present application may be implemented as described above.

[0074] The computing-based device 600 includes one or more processors 602, which may be a microprocessor, controller, or any other suitable type of processor for processing computer-executable instructions for controlling the operation of the device to perform the determining and calculating steps of the above methods and to control the robotic arm. In some examples where a system-on-chip architecture is used, the processor 602 may include one or more fixed function blocks (also called accelerators) that implement portions of the methods in hardware (rather than software or firmware). Platform software including an operating system 604, or any other suitable platform software, may be provided in the computing-based device to enable application software 606 to run on the device.

[0075] Computer-executable instructions may be provided using any computer-readable media accessible by computing-based device 600. Computer-readable media may include, for example, computer storage media, such as memory 608, and communication media. Computer storage media, such as memory 608, include volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer-readable instructions, data structures, program modules, or other data. Computer storage media include, but are not limited to, RAM, ROM, EPROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVDs) or other optical storage devices, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other non-transmission medium that may be used to store information for access by a computing device. In contrast, communication media may embody computer-readable instructions, data structures, program modules, or other data in a modulated data signal such as a carrier wave, or other transport mechanism. As defined herein, computer storage media does not include communication media. Although computer storage media (memory 608) is shown within computing-based device 600, it will be appreciated that the storage media may be distributed or remotely located and may be accessed via a network or other communications link (e.g., using communications interface 610).

[0076] Computing-based device 600 also includes an input / output interface 612 configured to output display information to a display device 616, which may be separate from or integral with computing-based device 600. The displayed information may provide a graphical user interface. Input / output interface 612 is also configured to receive and process input from one or more devices, such as a user input device 616 (e.g., a mouse or keyboard). In one embodiment, display 614 may also function as user input device 616 if it is a touch-sensitive display device. Input / output interface 612 may also output data to a device other than a display device, for example, a locally connected printing device (not shown in FIG. 6).

[0077] The term "computer" is used herein to refer to any device having processing capability such that it may execute instructions. Those skilled in the art will appreciate that such processing capability may be incorporated into many different devices, and thus the term "computer" includes PCs, servers, mobile phones, personal digital assistants, and many other devices.

[0078] Those skilled in the art will understand that storage devices utilized to store program instructions may be distributed across a network. For example, a remote computer may store an example of a process described as software. A local or terminal computer may access a remote computer and download some or all of the software to execute the program. Alternatively, a local computer may download pieces of software as needed, or some software instructions may execute on a local terminal and some on a remote computer (or computer network). Those skilled in the art will also understand that all or some of the software instructions may be executed by dedicated circuitry, such as a DSP, programmable logic array, or the like, utilizing conventional techniques known to those skilled in the art.

[0079] In summary, in some instances, when using guided robots, metrology systems are used to correct for errors inherent in the robotic system by measuring the current position and relating it to a target position to apply a corrective move. This process is often referred to as move, measure, correct (MMC), whereby a correction is requested and it is an iterative communication and correction process between the robot and metrology. Systems have proven their feasibility using this principle for positioning components in place of more traditional manufacturing jigs. A key element toward this goal is providing additional flexibility to the robotic system, which increases the error between the measured position and the target position. These errors are situation-dependent but are typically 2-8 mm. Values of this magnitude cause problems when positioning components due to the access around components in the aircraft being built. With traditional MMC methods, this 2-8 mm correction would be present every time a correction was requested, meaning the aircraft designer must account for this additional gap, potentially undermining the design and ultimately rendering the concept unfeasible. In some examples, the present application defines a process for making the first MMC correction in clear space, then relating each subsequent MMC action to the previous one. This means that large errors of 2-8 mm are corrected only once, and then the system checks the alignment between the measured position and the target position at strategic locations, so the robot is corrected as it begins to deviate from the required path, not just at the end. Using this method means that the robot can position parts in much smaller "corridors" than previously thought possible, as "chained" corrections typically yield errors of <1 mm. This type of "chained" correction has also been shown to reduce the total number of corrections needed, meaning cycle times can be reduced because MMC is an iterative process.It also allows for greater variance between the real world and a nominal "offline" program written in a CAD / CAM (computer-aided design and computer-aided manufacturing) environment for a perfect world where all components are perfectly made and positioned, allowing for variance due to tolerances, alignment, and other external factors. This significantly reduces "online" at-machine time, allowing for greater utilization of production assets. Note that typical automotive robotic processes rely heavily on "online" activity to compensate for variances between the real world and a perfect world. This process can be built upon and further improved to account for robotic tasks requiring high path accuracy, such as sealant application, welding, or machining.

[0080] As will be apparent to one skilled in the art, any range or device value given herein may be expanded or modified without losing the desired effect. Any reference to "an" item refers to one or more of those items. The term "comprising" is used herein to mean including identified method blocks or elements, but such blocks or elements do not comprise an exclusive list, and a method or apparatus may include additional blocks or elements.

[0081] It will be understood that the benefits and advantages described above may relate to one embodiment or to several embodiments, and the embodiments are not limited to those that solve any or all of the described problems or that have any or all of the described benefits and advantages.

[0082] The steps of the methods described herein may be performed in any suitable order, or simultaneously where appropriate. Additionally, individual blocks may be deleted from any of the methods without departing from the spirit and scope of the subject matter described herein. Aspects of any of the above examples may be combined with aspects of any of the other examples described to form further examples without losing the desired effect.

[0083] It will be understood that the above description of preferred embodiments is given by way of example only, and that various modifications may be made by those skilled in the art. While various embodiments have been described above with a certain degree of particularity, or with reference to one or more individual embodiments, those skilled in the art may make numerous changes to the disclosed embodiments without departing from the spirit or scope of the invention.

Claims

1. A method (100; 300) of using a robotic arm (420) to position a part (430) of an object at a first target position (460) relative to an object build frame (440), said method comprising: acquiring (110; 305) the part (430) by the robotic arm (420); determining (120; 310) a movement operation to be applied to the part (430), wherein the movement operation moves the part to a second target position (450), the second target position (450) being in free space, spatially separated from the object building frame (440), and different from the first target position (460); moving (130; 310) the part (430) according to the movement motion by the robot arm (420); Obtaining (140; 315) the actual position of said part (430); determining (150; 315) a corrective action to be applied to the part (430), wherein the corrective action moves the part (430) from the actual position to the second target position (450), the second target position (450) being spatially separated from the object building frame (440) such that the part (430) does not contact the object building frame (440) when the corrective action is applied to the part; moving (160; 315) said part (430) according to said corrective movement by said robot arm (420); determining (170; 340) a relative movement motion to be applied to the part (430), wherein the relative movement motion moves the part (430) from the second target position (450) to the first target position (460), and the relative movement motion is specified with respect to the second target position (450); moving (180; 340) said part (430) according to said relative movement by said robot arm (420); A method for providing

2. the actual position of the part (430) is specified with respect to the object building frame (440) and is a position relative to the object building frame (440); The corrective action is a movement action relative to the actual position of the part (430). The method of claim 1.

3. Determining the relative movement motion to be applied to the part (430) and moving the part (430) according to the relative movement motion includes: determining a third target position; determining (320, 325) a first relative movement motion to be applied to the part (430), wherein the first relative movement motion moves the part from the second target position (450) to the third target position; moving (320, 325) the part (430) according to the first relative movement motion by the robot arm (420); Determining (335) a second actual position of the part (430); determining (335) a second corrective action to apply to the part (430), wherein the second corrective action moves the part from the second actual position to the third target position; moving (335) the part according to the second corrective motion by the robot arm (420); determining (340) a second relative movement motion to be applied to the part, wherein the second relative movement motion moves the part (430) from the third target position to the first target position (460); moving (340) the part (430) according to the second relative movement motion by the robot arm (420); and moving the part through the third target position by:

4. the first relative movement operation is specified with respect to the second target position; the second relative movement operation is specified with the third target position as a reference; the second corrective action is a movement action relative to the actual position of the part (430); The method of claim 3.

5. obtaining (210; 355) a third actual position of the part (430), wherein the third actual position of the part (430) is specified with respect to the object building frame (440); determining (230; 355) a third corrective action to apply to the part (430), wherein the third corrective action moves the part (430) from the third actual position to the first target position (460); moving (240; 355) the part (430) according to the third corrective movement by the robot arm (420); fastening (225) said part (430) to said object building frame (440); The method of any one of claims 1 to 4, further comprising:

6. obtaining (210) a fourth actual position of the part (430), wherein the fourth actual position of the part is specified relative to the object building frame (440); comparing (215, 220) the fourth actual position of the part (430) with the first target position (460); in response to determining that the fourth actual position is within a threshold of the first target position, securing (225) the part (430) to the object build frame (440); or in response to determining that the fourth actual position is not within the threshold of the first target position; determining (230) a fourth corrective action to apply to the part (430), wherein the fourth corrective action moves the part (430) from the fourth actual position to the first target position (460); moving (240) the part (430) according to the fourth corrective movement by the robot arm (420); fastening (225) said part (430) to said object building frame (440); The method of any one of claims 1 to 5, further comprising:

7. The actual position of the part (430) is obtained from a metrology system (410), and obtaining the actual position of the part (430) from the metrology system (410) comprises: using an imaging device to determine the actual position of the part relative to the object build frame (440), the imaging device comprising a camera or a laser tracking system. The method according to any one of claims 1 to 6.

8. the component (430) comprises an aircraft component; the object comprises an aircraft; the object construction frame (440) comprises an aircraft construction frame; The method according to any one of claims 1 to 7.

9. receiving the second target position (450) specified for the object building frame (440) from a computer-aided manufacturing tool; determining (170; 340) the relative movement to be applied to the part (430) comprises receiving, from the computer-aided manufacturing tool, the relative movement specified with respect to the second target position (450); The method according to any one of claims 1 to 8.

10. The relative movement operation is a relative movement operation via a third target position, and determining (170; 340) the relative movement operation to be applied to the part (430) and moving (180; 340) the part (430) according to the relative movement operation include: receiving a first relative movement motion from the computer-aided manufacturing tool, wherein the first relative movement motion moves the part from the second target position (450) to the third target position; moving (320, 325) the part (430) according to the first relative movement motion by the robot arm (420); Determining (335) a second actual position of the part (430); determining (335) a second corrective action to apply to the part (430), wherein the second corrective action moves the part from the second actual position to the third target position; moving (335) the part according to the second corrective motion by the robot arm (420); receiving, from the computer-aided manufacturing tool, a second relative movement motion to be applied to the part (430), wherein the second relative movement motion moves the part (430) from the third target position to the first target position (460); moving (340) the part (430) according to the second relative movement motion by the robot arm (420); The method of claim 9 comprising:

11. A computing device (600) for controlling a robotic arm (420) to position a part (430) of an object at a first target position (460) relative to an object build frame (440), said computing device comprising: A processor (602); a memory (608) storing instructions (606) that, when executed by the processor (602), cause the processor (602) to: causing the robot arm (420) to acquire (110; 305) the part (430); determining (120; 310) a movement operation to be applied to the part (430), wherein the movement operation moves the part (430) to a second target position (450), the second target position (450) being in free space, spatially separated from the object building frame (440), and different from the first target position (460); causing the robot arm (420) to move (130; 310) the part (430) according to the movement motion; Obtaining (140; 315) the actual position of said part (430); determining (150; 315) a corrective action to be applied to the part (430), wherein the corrective action moves the part (430) from the actual position to the second target position (450), the second target position (450) being spatially separated from the object building frame (440) such that the part (430) does not contact the object building frame (440) when the corrective action is applied to the part; causing the robot arm (420) to move (160; 315) the part (430) according to the corrective movement; determining (170; 340) a relative movement motion to be applied to the part (430), wherein the relative movement motion moves the part (430) from the second target position (450) to the first target position (460), and the relative movement motion is specified with respect to the second target position (450); causing the robot arm (420) to move (180; 340) the part (430) according to the relative movement motion; A computing device (600) that causes the

12. A guided robotic system (500) for positioning an object part (430) at a first target position (460) relative to an object build frame (440), the guided robotic system (500) comprising: A computing device (600) according to claim 11; Under the control of the computing device, obtaining the part (110); moving the part according to the movement motion (130); moving the part according to the corrective action (160); moving the part according to the relative movement (170); a robotic arm (420) configured to: A guided robot system (500) comprising:

13. determining the actual position of the part using an imaging system, wherein the imaging system comprises a camera or a laser tracking system; providing the actual location of the part to the computing device; a measurement system (410) configured to perform The guided robotic system (500) of claim 12, further comprising:

14. a communications interface (610) configured to receive the instructions (606) from a computer-aided manufacturing tool executing on a remote computing device; 14. The guided robot system (500) of claim 12 or claim 13, further comprising:

15. 1. A non-transitory computer-readable storage medium comprising instructions that, when executed by a processor, cause the processor to perform a method for controlling a robotic arm (420) to position a part (430) of an object at a first target position (460) relative to an object build frame (440), the method comprising: causing the robot arm (420) to acquire (110; 305) the part (430); determining (120; 310) a movement operation to be applied to the part (430), wherein the movement operation moves the part (430) to a second target position (450), the second target position (450) being in free space, spatially separated from the object building frame (440), and different from the first target position (460); causing the robot arm (420) to move (130; 310) the part (430) according to the movement motion; Obtaining (140; 315) the actual position of said part (430); determining (150; 315) a corrective action to be applied to the part (430), wherein the corrective action moves the part (430) from the actual position to the second target position (450), the second target position (450) being spatially separated from the object building frame (440) such that the part (430) does not contact the object building frame (440) when the corrective action is applied to the part; causing the robot arm (420) to move (160; 315) the part (430) according to the corrective movement; determining (170; 340) a relative movement motion to be applied to the part (430), wherein the relative movement motion moves the part (430) from the second target position (450) to the first target position (460), and the relative movement motion is specified with respect to the second target position (450); causing the robot arm (420) to move (180; 340) the part (430) according to the relative movement motion; 1. A non-transitory computer-readable storage medium comprising:

Citation Information

Patent Citations

  • Control of the positioning of a robot type handling device with optical sensors is improved by storage of future movement points in memory to enable the robot to follow a path more quickly with no loss of positioning accuracy

    DE19930087A1

  • Method and apparatus for accurately positioning and attaching flaps to components

    JP2005537989A

  • Automated dynamic manufacturing systems and related methods

    JP2016190316A

  • Fixtureless robotic assembly

    JP2023505020A

  • Methods and systems for large-scale airframe assembly

    WO2005078543A1