Method for controlling movement of industrial robot and robot system

By modifying candidate target points using actual reference points in offline programming systems, the problem of degradation in printing performance of industrial robots on non-flat surfaces is solved, and more efficient and accurate surface movement and printing effects are achieved.

CN119156576APending Publication Date: 2024-12-17ABB (SCHWEIZ) AG
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202280095787.7
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2022-05-23
Publication Date
2024-12-17

AI Technical Summary

Technical Problem

When industrial robots perform large three-dimensional object additive manufacturing, non-flat surfaces cause mismatch between the distance between the printing tool and the surface, resulting in a degradation of printing performance, and difficulty in switching between reference coordinate systems, consuming a large amount of working memory resources, affecting printing quality.

Method used

By providing multiple actual reference points in an offline programming system, modifying candidate target points to match the real surface profile, generating modified target points for executing target robot programs in a robot controller, enabling industrial robots to efficiently and accurately Move on non-planar surfaces.

Benefits of technology

It improves the printing accuracy and performance of industrial robots on non-flat surfaces, reduces dependence on multiple reference coordinate systems, reduces user settings complexity, and improves the movement accuracy and efficiency of printing tools.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119156576A_ABST
    Figure CN119156576A_ABST
Patent Text Reader

Abstract

A method of controlling movement of an industrial robot (12) relative to a surface (28), the method comprising providing a plurality of candidate target points (56a-56f) for the industrial robot in an offline programming system (14); providing a plurality of actual reference points (70; 70a-70e), the actual reference point being indicative of the actual contour of the surface; modifying candidate target points in the offline programming system based on the actual reference points, providing a plurality of modified target points (72; 72a-72f), which are different from each other; providing a target robot program (52) for the industrial robot based on the modified target point; and executing the target robot program in a robot controller (16), thereby causing the industrial robot to perform a movement relative to the surface.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure generally relates to movement control of an industrial robot. In particular, a method of controlling movement of an industrial robot relative to a surface and a robot system including an industrial robot, an offline programming system and a robot controller are provided. Background Art

[0002] Additive manufacturing of large three-dimensional products using industrial robots is a fast production method that can be used in a variety of different fields and with a variety of different materials, such as plastics, concrete and metals.

[0003] US2016176115 A1 discloses a printing system for printing a three-dimensional object. The printing system includes a control unit and an industrial robot controlled by the control unit. The industrial robot carries a printing unit having a printing nozzle for applying corresponding portions of a printing material point by point at corresponding coordinates according to object data of a robot program. The printing system can print large objects, such as objects with a width of 2 meters (m), a depth of 2m, and a height of 2m. Summary of the invention

[0004] When printing large objects by additive manufacturing using industrial robots, the surface on which printing is performed may not be completely flat. If the robot program is designed based on the assumption that the surface is flat in this case, collisions between the printing tool and the surface may occur. In addition, if the distance between the printing tool and the surface is different from the expected distance, the printing performance will be reduced. In this regard, a large object may be an object with a width of at least 2m, a depth of at least 2m, and a height of at least 2m.

[0005] In order to enable printing on uneven surfaces using an industrial robot, several different reference coordinate systems defined relative to the surface can be used. For example, a first reference coordinate system can be set for a relatively low area of ​​the surface, and a second reference coordinate system can be set for a relatively high area of ​​the surface. However, switching between reference coordinate systems during printing with an industrial robot is undesirable. For example, when printing large objects, an industrial robot may require a very large number (such as millions) of target points. Due to the limited working memory capacity in the robot controller, this results in the need to dynamically load the robot program to the robot controller during printing. However, it is difficult to switch between reference coordinate systems during printing, and printing performance will be reduced due to interruptions. In addition, for many users, setting up multiple reference coordinate systems related to the surface is time-consuming and difficult.

[0006] It is an object of the present invention to provide an improved method of controlling the movement of an industrial robot relative to a surface.

[0007] Another object of the present invention is to provide an improved robotic system.

[0008] These objects are achieved by a method according to claim 1 and a robot system according to claim 13 .

[0009] The present invention is based on the recognition that by modifying the target points for the industrial robot in an offline programming system based on actual reference points indicating the real contour of the surface, the method can more efficiently handle the specific real shape of the surface and the movement of the industrial robot relative to the surface will be more accurate. In addition, this concept efficiently enables the user to provide various inputs, such as how the robot program should be modified, and enables efficient control of the operation of the industrial robot with respect to various non-planar surfaces (such as spherical surfaces).

[0010] According to a first aspect, a method for controlling the movement of an industrial robot relative to a surface is provided, the method comprising providing a plurality of candidate target points for the industrial robot in an offline programming system; providing a plurality of actual reference points in the offline programming system, the actual reference points indicating a true contour of the surface; modifying the candidate target points in the offline programming system based on the actual reference points to provide the industrial robot with a plurality of modified target points; providing a target robot program for the industrial robot based on the modified target points; and executing the target robot program in a robot controller, thereby causing the industrial robot to perform movement relative to the surface.

[0011] By modifying the candidate target points in the offline programming system to provide modified target points, the target robot program will match the real physical world without the need to use multiple reference coordinate systems. Therefore, in the offline programming system, the candidate target points are modified based on the actual reference points to provide modified target points, rather than using multiple reference coordinate systems to control the industrial robot. The modified target points then form the basis for creating the target robot program executed in the robot controller. This way of providing the target robot program according to the method is also more accurate and less computationally intensive than modifying the robot program that has been directly generated based on the candidate target points. Although the need to use multiple reference coordinate systems is eliminated, the method may optionally use multiple reference coordinate systems.

[0012] The method can be used for various additive manufacturing processes, in particular for manufacturing large objects, such as objects with a width of at least 2 m, a depth of at least 2 m and a height of at least 2 m. However, the method is not limited to additive manufacturing processes. The method can also be used for various path tracking processes, such as welding processes and gluing processes performed by an industrial robot relative to a surface.

[0013] The industrial robot may include a manipulator movable relative to a base. The base may or may not be stationary. According to one example, the base is positioned on a movable conveyor so that the base can move linearly.

[0014] The target robot program may include a plurality of movement instructions for the industrial robot to move along movement segments between adjacent modified target points when executed by the robot controller. The target robot program may be provided in a computer numerical control (CNC) programming language, such as G-code or RAPID code used by ABB.

[0015] The offline programming system and the robot controller may be functionally and physically separated from each other. The offline programming system is offline because it does not directly control the industrial robot, whereas the robot controller is online. However, the offline programming system may be connected to, for example, the Internet. The offline programming system may include software for robot programming and robot simulation. The software may also include a virtual copy of the industrial robot and optionally a surface.

[0016] Modification of the candidate target point may additionally be performed based on a user modification input indicating the type of modification of the candidate target point.This enables the user to at least partially determine how to perform movement of the industrial robot relative to the surface given the true contour of the surface.

[0017] The provision of the actual reference point may include providing a plurality of candidate reference points; and determining the actual reference point based on the candidate reference points. For example, an actual reference point may be determined for each candidate reference point.

[0018] Candidate target points may be provided based on candidate reference points.

[0019] The method may also include providing a candidate orientation for an end effector of an industrial robot associated with one of the candidate target points in an offline programming system; modifying the candidate orientation based on one or more of the actual reference points in the offline programming system to provide a modified orientation different from the candidate orientation for the end effector; and associating the modified orientation with the modified target point associated with one of the candidate target points; wherein a target robot program is additionally provided based on the modified orientation. The method of this variant is capable of efficiently modifying the orientation of the end effector before generating a target robot program. This modification of the end effector orientation is more efficient than modifying the end effector orientation in an already generated robot program.

[0020] The end effector may be carried by a manipulator of an industrial robot. The end effector may be, for example, a printing tool, a welding tool, or a laser tool. The end effector may be used to deposit, join, or solidify a material to form an object. The material may be, for example, plastic, concrete, or metal. The end effector may, for example, provide a heat source, such as a laser or electron beam, to heat the powder in the powder bed so that it consolidates to form the object. Alternatively, the printing tool may deposit a material, such as plastic or concrete, layer by layer.

[0021] The end effector can be positioned in a single position in a variety of different orientations. Conversely, the end effector can be oriented in a single orientation in a variety of different positions. The combination of the position and orientation of the end effector can be referred to as a posture.

[0022] The method may include: for each candidate reference point, controlling the industrial robot to move to measure the position of the surface associated with the candidate reference point; and determining the actual reference point based on the candidate reference point and the measured position. Thus, the same industrial robot can be used both to measure the position on the surface and to execute the target robot program.

[0023] The method may include providing candidate reference points in an offline programming system; providing a measurement robot program for an industrial robot based on the candidate reference points; and executing the measurement robot program in a robot controller, thereby causing the industrial robot to move to measure a position of a surface associated with the candidate reference points.

[0024] To this end, a plurality of measurement target points may be provided in the offline programming system, wherein each measurement target point is associated with a unique candidate reference point. For example, each measurement target point may be offset by a default distance from the associated candidate reference point. A measurement robot program may be generated based on the measurement target points and then executed by the robot controller.

[0025] The measurement robot program may include a plurality of movement instructions for the industrial robot to move along a movement segment between adjacent measurement target points when executed by the robot controller. The measurement robot program may be provided in a computer numerical control (CNC) programming language such as the RAPID code used by ABB.

[0026] The method may further include selecting a measurement method for a position of a surface associated with the candidate reference point from among a plurality of different measurement methods based on a user measurement input; and controlling the industrial robot to measure the position of the surface associated with the candidate based on the selected measurement method.

[0027] Different measurement methods may include the use of different types of position sensors to be carried by the industrial robot.

[0028] The target robot program may be an additive manufacturing robot program for controlling an industrial robot to perform additive manufacturing on a surface.

[0029] The movement of an industrial robot relative to a surface can span at least 2 meters.

[0030] An industrial robot may include at least six axes.

[0031] According to a second aspect, a robot system is provided, which includes: an industrial robot; an offline programming system; and a robot controller; wherein the offline programming system includes at least one first data processing device and at least one first memory on which at least one first computer program is stored, the at least one first computer program includes a program code, which, when executed by the at least one first data processing device, causes the at least one first data processing device to perform the following steps: provide a plurality of candidate target points for the industrial robot; provide a plurality of actual reference points, the actual reference points indicating the true contour of the surface; modify the candidate target points based on the actual reference points to provide the industrial robot with a plurality of modified target points; provide the industrial robot with a target robot program based on the modified target points; and wherein the robot controller includes at least one second data processing device and at least one second memory on which at least one second computer program is stored, the at least one second computer program includes a program code, which, when executed by the at least one second data processing device, causes the at least one second data processing device to perform the following steps: execute the target robot program, thereby causing the industrial robot to perform movement relative to the surface.

[0032] The at least one first computer program or the at least one second computer program may also include program code which, when executed by the at least one first data processing device or the at least one second data processing device, respectively, causes the performance of the various steps described herein or instructs the performance thereof.

[0033] The at least one first computer program may comprise program code which, when executed by the at least one first data processing device, causes the candidate target point to be additionally modified based on a user modification input to provide a modified target point, the user modification input indicating a type of modification of the candidate target point based on the actual reference point.

[0034] The at least one first computer program may include program code which, when executed by the at least one first data processing device, causes providing a plurality of candidate reference points; and determining the actual reference point based on the candidate reference points.

[0035] The at least one first computer program may include program code which, when executed by the at least one first data processing device, causes providing candidate target points based on candidate reference points.

[0036] At least one first computer program may include program code that, when executed by at least one first data processing device, causes: providing a candidate orientation for an end effector of an industrial robot associated with one of the candidate target points; modifying the candidate orientation based on one or more of the actual reference points to provide the end effector with a modified orientation different from the candidate orientation; and associating the modified orientation with a modified target point associated with one of the candidate target points; wherein a target robot program is additionally provided based on the modified orientation.

[0037] The at least one second computer program may include program code that, when executed by the at least one second data processing device, causes the industrial robot to be controlled to move to measure the position of the surface associated with the candidate reference point. In this case, the at least one first computer program may include program code that, when executed by the at least one first data processing device, causes the actual reference point to be determined based on the candidate reference point and the measured position.

[0038] At least one first computer program may include program code that, when executed by at least one first data processing device, causes: providing candidate reference points; and providing a measurement robot program for the industrial robot based on the candidate reference points. In this case, at least one second computer program may include program code that, when executed by at least one second data processing device, causes the measurement robot program to be executed in a robot controller, thereby causing the industrial robot to move to measure the position of a surface associated with the candidate reference point.

[0039] At least one first computer program may include program code that, when executed by at least one first data processing device, causes a measurement method for a position of a surface associated with a candidate reference point to be selected from a plurality of different measurement methods based on a user measurement input. In this case, at least one second computer program may include program code that, when executed by at least one second data processing device, causes an industrial robot to be controlled to measure the position of a surface associated with a candidate based on the selected measurement method.

[0040] Different measurement methods may include the use of different types of position sensors to be carried by the industrial robot. Therefore, the robotic system may also include a plurality of different types of position sensors, each position sensor being configured to be carried by the industrial robot simultaneously or one at a time. One or more position sensors may be carried by the manipulator and the end effector simultaneously, or may not be carried simultaneously.

[0041] Also in the second aspect, the target robot program may be an additive manufacturing robot program for controlling an industrial robot to perform additive manufacturing on a surface.

[0042] Also in the second aspect, the movement of the industrial robot relative to the surface can span at least 2 meters.

[0043] Also in the second aspect, the industrial robot may comprise at least six axes. The industrial robot may for example comprise a manipulator with six or seven joints, and six or seven links, such as a serial manipulator or a parallel manipulator.

[0044] The method according to the first aspect may use any type of robotic system according to the second aspect. BRIEF DESCRIPTION OF THE DRAWINGS

[0045] Other details, advantages and aspects of the present disclosure will become apparent from the following description taken in conjunction with the accompanying drawings, in which:

[0046] Figure 1 : A perspective view schematically illustrating a robotic system including an industrial robot performing movement relative to a surface;

[0047] Figure 2 : schematically represents a side view of a surface and candidate reference points, candidate target points and measurement target points relative to the surface;

[0048] Figure 3 : schematically showing side views of two examples of position sensors;

[0049] Figure 4 : schematically shows an example of information on a display when a user provides a user measurement input;

[0050] Figure 5 : schematically represents a surface and a side view of candidate reference points and actual reference points relative to the surface;

[0051] Figure 6 : schematically illustrates an example of information on a display when a user provides a user modification input;

[0052] Figure 7 : schematically showing a surface and a side view of a reference point and a modified target point relative to the surface; and

[0053] Figure 8 : schematically represents the candidate orientation of the end effector in the candidate target point relative to the candidate reference point, and the modified orientation of the end effector in the modified target point relative to the actual reference point. DETAILED DESCRIPTION

[0054] In the following, a method of controlling the movement of an industrial robot relative to a surface and a robot system comprising an industrial robot, an off-line programming system and a robot controller will be described. The same or similar reference numerals will be used to denote the same or similar structural features.

[0055] Figure 1 Schematically shown is a perspective view of a robot system 10. The robot system 10 includes an industrial robot 12, an offline programming system 14 and a robot controller 16.

[0056] The industrial robot 12 comprises a base 18, a manipulator 20 movable relative to the base 18, and an end effector carried by the manipulator 20, here exemplified as a printing tool 22. The manipulator 20 of this example comprises six axes 24a-24f.

[0057] The robotic system 10 of this example also includes a conveyor 26. The base 18 is positioned on the conveyor 26 so that the industrial robot 12 can move linearly.

[0058] Figure 1 Also shown is a surface 28. In this particular non-limiting example, the width of the surface 28 is 10 m and the depth is 3 m. Figure 1 As shown, the surface 28 is wavy and not completely flat. The conveyor 26 and the industrial robot 12 can be controlled so that the printing tool 22 can reach every position on the surface 28.

[0059] The offline programming system 14 of this example includes a first data processing device 30 and a first memory 32. A first computer program is stored on the first memory 32. The first computer program includes program code, which, when executed by the first data processing device 30, causes the first data processing device 30 to perform various steps described herein or instructs the execution thereof. The offline programming system 14 also includes a display 34. The offline programming system 14 can be constituted by a personal computer (PC), for example.

[0060] The robot programming and robot simulation software is implemented in the offline programming system 14. An example of such software is ABB's Digital twins or virtual copies of the robot controller 16 , the industrial robot 12 , the conveyor 26 , and the surface 28 are also implemented in the offline programming system 14 .

[0061] The robot controller 16 is configured to control the industrial robot 12. In this example, the robot controller 16 is also configured to control the conveyor 26. The robot controller 16 of this example includes a second data processing device 36 and a second memory 38. A second computer program is stored on the second memory 38. The second computer program includes program code that, when executed by the second data processing device 36, causes the second data processing device 36 to perform various steps described herein or instructs the execution thereof.

[0062] The industrial robot 12 is controlled to perform a movement relative to a surface 28, here an object 40 is printed on the surface 28 by additive manufacturing. The printing tool 22 deposits material layer by layer on the surface 28 to form the object 40. Thus, the surface 28 is used here as a printing bed. For example, the robotic system 10 enables concrete to be printed directly on rock.

[0063] Figure 1 Also shown is a human user 42. The user 42 interacts with the offline programming system 14. The user 42 may, for example, provide user measurement input 44 and user modification input 46 to the offline programming system 14, as described below.

[0064] Figure 1 A reference coordinate system 48 is also shown. The reference coordinate system 48 is here an orthogonal coordinate system comprising an X-axis, a Y-axis and a Z-axis. The reference coordinate system 48 may initially be set up by the user 42 in the off-line programming system 14 .

[0065] Figure 1 It is also shown that the measurement robot program 50 generated in the offline programming system 14 is transmitted from the offline programming system 14 to the robot controller 16 for execution by the robot controller 16 . Figure 1 It is also shown that the target robot program 52 generated in the offline programming system 14 is transmitted from the offline programming system 14 to the robot controller 16 for execution by the robot controller 16 .

[0066] Figure 2 A side view of the surface 28 is shown schematically. Figure 2 The view in and similar views (e.g., views without the surface 28) can be displayed on the display 34. In the offline programming system 14, a plurality of nominal or candidate reference points 54 are provided, represented here by crosses. The candidate reference points 54 constitute an initial representation of the surface 28 in the offline programming system 14.

[0067] In this example, the candidate reference points 54 are positioned in a two-dimensional grid in the XY plane. The offset of the candidate reference points 54 in each of the X and Y directions may be, for example, 40 mm.

[0068] The candidate reference points 54 may be determined by the offline programming system 14 based on a model of the surface 28, such as a CAD (computer-aided design) model. The number of candidate reference points 54 provided in the offline programming system 14 may be set or adjusted by the user 42. As described below, a greater number of selected candidate reference points 54 will generate a more accurate representation of the surface 28, and thereby more accurate control of the industrial robot 12.

[0069] like Figure 2 As shown, candidate reference point 54 represents surface 28 as being completely flat. Figure 2 As shown, the actual shape of surface 28 is not flat.

[0070] Figure 2 Also shown are a plurality of candidate target points 56a-56f of the printing tool 22, represented here by squares. In this example, a candidate orientation 58a-58f of the printing tool 22 is also associated with each candidate target point 56a-56f. Each pair of candidate orientations 58a-58f and candidate target points 56a-56f forms a candidate pose of the printing tool 22. Figure 2 , each candidate orientation 58a-58f is identical, represented here by the vertical orientation of a square, which in turn represents the vertical orientation of the printing tool 22. The candidate target points 56a-56f are defined in the offline programming system 14, for example, as coordinates in the reference coordinate system 48. The candidate orientations 58a-58f are also defined in the offline programming system 14. The candidate target points 56a-56f and the candidate orientations 58a-58f may be set by the user 42, may be automatically generated, and / or may be imported into the offline programming system 14.

[0071] The candidate target points 56a-56f and the candidate orientations 58a-58f may be used to create a robot program in the offline programming system 14. When the robot program is executed in the robot controller 16, the industrial robot 12 is controlled so that the printing tool 22 (or other tool center point) is sequentially moved to each candidate target point 56a-56f in moving segments and using the corresponding candidate orientations 58a-58f.

[0072] like Figure 2 As shown, the first candidate target point 56a is vertically separated from the surface 28. Therefore, in the case where the robot program is generated based on the first candidate target point 56a, the separation will reduce the printing quality. In addition, the third candidate target point 56c is positioned below the surface 28. When the corresponding robot program is run on the robot controller 16, this will cause a risk of collision between the printing tool 22 and the surface 28. When printing the object 40, for example, it may be desirable for the printing tool 22 to be located 1 mm above the surface 28 at each target point (in the target point layer closest to the surface 28).

[0073] If all candidate target points 56a-56f are raised together in the offline programming system 14, the risk of collision between the printing tool 22 and the surface 28 can be avoided in the subsequently generated robot program. However, the first candidate target point 56a will be further vertically separated from the surface 28 to further reduce the quality of the additive manufacturing.

[0074] Figure 2 Also shown are a plurality of measurement target points 60 provided in the offline programming system 14, shown here as pentagons. The measurement target points 60 are used to generate the measurement robot program 50. Each measurement target point 60 is offset from the associated candidate reference point 54 by a distance 62. The distance 62 may be, for example, a vertical distance of 100 mm. The measurement target points 60 may be automatically generated.

[0075] Figure 3 A side view of a distance position sensor 64 and a touch position sensor 66 is schematically shown. The distance position sensor 64 can measure the position of the surface 28 at a certain distance from the surface 28. The touch position sensor 66 can measure the position of the surface 28 by contacting the surface 28. Each of the distance position sensor 64 and the touch position sensor 66 can be carried by the manipulator 20. The manipulator 20 can carry or not carry the printing tool 22 at the same time.

[0076] Figure 4 Schematically shows an example of information displayed on the display 34. The user 42 can select between different types of measurements. Figure 4 , Option A is measurement using a distance position sensor 64, Option B is measurement using a touch position sensor 66, and Option C is manual jogging of the industrial robot 12 using a programming device 68 (such as a teach pendant unit). The user 42 provides user measurement input 44 to the offline programming system 14 via the display 34. In this example, the user 42 selects the distance position sensor 64 for measurement.

[0077] The user 42 may also set a measurement orientation for the distance position sensor 64 at one or more of the measurement target points 60. However, in this particular example, the same measurement orientation is set for all of the measurement target points 60.

[0078] Then, a measurement robot program 50 is created in the offline programming system 14 based on the measurement target point 60 (and optionally based on a specific measurement orientation) and transmitted to the robot controller 16. In addition to the measurement target point 60, the measurement robot program 50 also contains movement instructions for the industrial robot 12, such as the RAPID code used by ABB. The measurement robot program 50 can be created before or after the user 42 provides the user measurement input 44.

[0079] When the measurement robot program 50 is executed by the robot controller 16, the robot controller 16 controls the industrial robot 12 to position the distance position sensor 64 at the distance 62 above each candidate reference point 54, and measures the distance to the surface 28. In this way, the position of the surface 28 associated with each candidate reference point 54 is measured. Since the surface 28 is not flat, the distance from the distance position sensor 64 to the surface 28 will vary between different measurement target points 60. The robot controller 16 adds the measurement results to the list containing the candidate reference points 54. When the measurement has been performed at all the candidate reference points 54, the list is sent from the robot controller 16 to the offline programming system 14, for example in a text format.

[0080] In the case where the user 42 selects the touch position sensor 66 (option B), the industrial robot 12 will move to each measurement target point 60 above the corresponding associated candidate reference point 54 and then bring the touch position sensor 68 into contact with the surface 28. Then, the distance that the industrial robot 12 moves from the measurement target point 60 to the surface 28 will be regarded as the measurement result.

[0081] In the case where the user 42 selects the programming device 68 (option C), the industrial robot 12 will move to each measurement target point 60 above the corresponding relevant candidate reference point 54. At each measurement target point 60, the user 42 uses the programming device 68 to jog the industrial robot 12 (such as its printing tool 22) to contact with the surface 28 or close to the surface 28. In this case, no position sensor is required. Then, the jog distance of the industrial robot 12 from each measurement target point 60 to the surface 28, or the position of the industrial robot 12 when contacting the surface 28, will be regarded as the measurement result.

[0082] Figure 5 A side view of the surface 28 is shown schematically. Figure 5 , and similar views (e.g., views without the surface 28) can be displayed on the display 34. In the offline programming system 14, a plurality of actual reference points 70, represented here by circles, are provided based on the candidate reference points 54 and the measurement results. The offline programming system 14 calculates the actual reference points 70 based on the candidate reference points 54 and the position measurements made by the industrial robot 12 using the distance position sensor 64. The actual reference points 70 constitute a true representation of the actual contour of the surface 28 in the offline programming system 14. The surface 28 has now been calibrated so that information of the actual shape of the surface 28 is provided in the offline programming system 14.

[0083] Each actual reference point 70 is associated with a candidate reference point 54. The actual reference point 70 here differs from the associated candidate reference point 54 only in the Z direction. Therefore, the candidate reference point 54 is modified based on the measurement of the surface 28 to provide an actual reference point 70 that coincides with the surface 28. In addition, the actual reference point 70 can be defined as a coordinate in the reference coordinate system 48.

[0084] Figure 6 Another example of information displayed on the display 34 is schematically represented. The user 42 can now choose to determine how to modify the candidate target points 56a-56f based on the actual reference point 70 to provide the industrial robot 12 with a modified target point 72, here represented by a triangle. In addition, the modified target point 72 is defined in the offline programming system 14, for example as a coordinate in the reference coordinate system 48. The object 40 and the surface 28 represented by the actual reference point 70 are displayed on the display 34. In this example, the display 34 shows four predetermined different types of modifications 74a-74d that the user 42 can select between the candidate target points 56a-56f. The types of modifications 74a-74d can be automatically generated by the offline programming system 14. In all of these non-limiting examples of types of modifications 74a-74d, the shape of the printed material will be modified relative to the original shape of the object 40 (e.g., from the CAD model) due to the non-flat shape of the surface 28.

[0085] In the first type of modification 74a, candidate target points 56a-56f are modified based on actual reference point 70 to provide modified target point 72 so that the lowest portion of the original shape of object 40 will be aligned with the lowest portion of surface 28. The peak area of ​​surface 28 prevents a portion of the original shape of object 40 from being printed. Modified target point 72 is compressed vertically above the peak area of ​​surface 28.

[0086] In a second type of modification 74b, candidate target points 56a-56f are modified based on actual reference point 70 to provide modified target points 72 such that the entire original shape of object 40 is located above surface 28. Additional target points 76 (not corresponding to any of candidate target points 56a-56f) are also added below object 40 such that printed material is added between the original shape of object 40 and surface 28.

[0087] In the third type of modification 74c, the candidate target points 56a-56f are modified based on the actual reference point 70 to provide modified target points 72, so that each horizontal group of modified target points 72 provides a shape that matches the shape of the surface 28. In this example, this results in the entire object 40 being wavy. Compared to the original object 40, it is not necessary to add printed material other than the printed material corresponding to the original planned object 40, nor is it necessary to remove printed material.

[0088] In a fourth type of modification 74d, the candidate target points 56a-56f are modified based on the actual reference point 70 to provide modified target points 72 such that some vertical columns of the modified target points 72 are vertically compressed above the peak region of the surface 28, and some vertical columns of the modified target points 72 are vertically expanded above the valley region of the surface 28.

[0089] Because Figure 6 The information shown shows that the user 42 can easily understand how to perform actual printing according to the real shape of the surface 28. The types of modifications 74a-74d constitute only some of many examples. The user 42 can modify the candidate target points 56a-56f based on the actual reference point 70 to provide a modified target point 72, and may add additional target points 76 in various different ways with more or less help from the offline programming system 14. In addition to being repositioned, the object 40 modeled in the offline programming system 14 (for which the candidate target points 56a-56f are provided) can also be reshaped relative to the surface 28 (represented by the actual reference point 70). Therefore, the user 42 can also change the scale of the object 40 relative to the surface 28. Such a change in scale is difficult to make in an already generated robot program.

[0090] In any event, the user 42 then provides the user modification input 46 to the offline programming system 14. In response to the user modification input 46, the offline programming system 14 determines a modified target point 72 based on the candidate target points 56a-56f and the actual reference point 70. Accordingly, the candidate target points 56a-56f are modified in the manner selected by the user 42 to provide modified target points 72a-72f.

[0091] For each type of modification 74a-74d, each candidate target point 56a-56f will be recalculated to provide a modified target point 72. In response to the user modification input 46, the offline programming system 14 generates a target robot program 52 based on the candidate target points 56a-56f, the actual reference points 70a-70f, and the user modification input 48. The target robot program 52 is then sent from the offline programming system 14 to the robot controller 16 for execution, thereby causing the industrial robot 12 to perform movements corresponding to the modified target points 72 relative to the surface 28. In addition to the modified target points 72a-72f and the optional modified orientation, the target robot program 52 also contains movement instructions for the industrial robot 12, such as G-code or RAPID code used by ABB.

[0092] Figure 7 Schematically shows a side view of the surface 28. A plurality of modified target points 72a-72f are positioned relative to the surface 28. For example, Figure 7 , and similar views may be displayed on the display 34. When the candidate target points 56a-56f are modified to provide the modified target point 72, the candidate orientations 58a-58d may also be modified based on the actual reference point 70 (and optionally based on the user modification input 46) to provide modified orientations 78a-78f associated with the modified target points 72a-72f.

[0093] like Figure 7 As shown, the first modified orientations 78a to 78c associated with the first modified target point 72a to the third modified target point 72c are changed relative to the associated first candidate orientations 58a to the third candidate orientations 58c ( Figure 2 ), so that the printing tool 22 can always maintain a vertical orientation (or any other desired orientation) relative to the surface 28 during printing. The fourth modified orientation 78d to the sixth modified orientation 78f associated with the fourth modified target point 72d to the sixth modified target point 72f may be modified relative to the associated candidate target point 56, or may not be modified.

[0094] Figure 8 A first candidate orientation 58a and a first modified orientation 78a for printing tool 22 are schematically represented. Figure 8 Also shown are a first candidate reference point 54a, a fourth candidate reference point 54d, a fifth candidate reference point 54e, and a first candidate target point 56a associated with the first candidate reference point 54a and having a first candidate orientation 58a. Figure 8 Also shown are a first actual reference point 70a associated with the first candidate reference point 54a, a fourth actual reference point 70d associated with the fourth candidate reference point 54d, a fifth actual reference point 70e associated with the fifth candidate reference point 54e, and a first modified target point 72a associated with the first candidate target point 56a and having a first modified orientation 78a.

[0095] In this example, the first modified orientation 78a is determined based on the positions of the first actual reference point 70a, the fourth actual reference point 70d, and the fifth actual reference point 70e. In this specific non-limiting example, the first modified orientation 78a is determined to be perpendicular to the plane including the first actual reference point 70a, the fourth actual reference point 70d, and the fifth actual reference point 70e. For each actual reference point 70a-70c, a corresponding modified orientation 78a-78c for the printing tool 22 can be determined in this manner. The first candidate orientation 58a can be determined in the same manner as the first candidate reference point 54a, the fourth candidate reference point 54d, and the fifth candidate reference point 54e. The modified orientation 78a-78f may or may not be different from the associated candidate orientation 58a-58f. In addition, the candidate orientations 58a-58f and the modified orientations 78a-78f are defined in the offline programming system 14, such as in the reference coordinate system 48.

[0096] When the target robot program 52 is executed by the robot controller 16, the robot controller 16 controls the industrial robot 12 to position the printing tool 22 or other end effector in each modified target point 72a-72f with the corresponding modified orientation 78a-78f, for example to manufacture the object 40 by additive manufacturing. When the target robot program 52 is executed in the robot controller 16, the target robot program 52 can be dynamically loaded from the offline programming system 14 to the robot controller 16.

[0097] By modifying the candidate target points 56a-56f based on the actual reference points 70a-70c to provide the modified target points 72a-72f before the target robot program 52 is generated, the accuracy of the movement of the industrial robot 12 is improved compared to modifying the target robot program 52 that has already been created. In addition, the method enables the introduction of new functions based on input from the user 42, such as an option for the user 42 to select how to modify the candidate target points 56a-56f to provide the modified target points 72a-72f. In addition, the method enables the orientation of the printing tool 22 to be efficiently modified according to the real contour of the surface 28. This in turn improves the performance of the industrial robot 12.

[0098] Although the present disclosure has been described with reference to exemplary embodiments, it should be understood that the present invention is not limited to the above. For example, it should be understood that the size of the components can be changed as needed. Therefore, the present invention is limited only by the scope of the appended claims.

Claims

1. A method of controlling movement of an industrial robot (12) relative to a surface (28), the method comprising: - providing a plurality of candidate target points (56a-56f) for the industrial robot (12) in an offline programming system (14); - providing a plurality of actual reference points (70; 70a-70e) in the off-line programming system (14), the actual reference points (70; 70a-70e) indicating the real contour of the surface (28); - modifying the candidate target points (56a-56f) in the offline programming system (14) based on the actual reference points (70; 70a-70e) to provide a plurality of modified target points (72; 72a-72f) for the industrial robot (12); - providing a target robot program (52) for the industrial robot (12) based on the modified target point (72; 72a-72f); and - executing the target robot program (52) in a robot controller (16) thereby causing the industrial robot (12) to perform a movement relative to the surface (28).

2. The method of claim 1, wherein the modification of the candidate target point (56a-56f) is additionally performed based on a user modification input (46), the user modification input (46) indicating a type of modification (74a-74d) of the candidate target point (56a-56f).

3. A method according to any one of the preceding claims, wherein the actual reference point (70; 70a-70e) said providing comprises: - providing a plurality of candidate reference points (54; 54a, 54d, 54e); and - determining the actual reference point (70; 70a-70e) based on the candidate reference points (54; 54a, 54d, 54e).

4. The method of claim 3, wherein the candidate target points (56a-56f) are provided based on the candidate reference points (54; 54a, 54d, 54e).

5. The method according to claim 4, further comprising: - providing, in the offline programming system (14), a candidate orientation (58a-58c) for an end effector (22) of the industrial robot (12) associated with one of the candidate target points (56a-56f); - modifying the candidate orientation (58a-58c) in the offline programming system (14) based on one or more of the actual reference points (70; 70a-70e) to provide the end effector (22) with a modified orientation (78a-78c) that is different from the candidate orientation (58a-58c); as well as - associating the modified orientation (78a-78c) with the modified target point (72; 72a-72f) associated with the one candidate target point (56a-56f); The target robot program (52) is additionally provided based on the modified orientation (78a-78c).

6. The method according to any one of claims 3 to 5, wherein the method comprises: - for each candidate reference point (54; 54a, 54d, 54e), controlling the industrial robot (12) to move so as to measure the position of the surface (28) associated with the candidate reference point (54; 54a, 54d, 54e); and - determining the actual reference point (70; 70a-70e) based on the candidate reference point (54; 54a, 54d, 54e) and the measured position.

7. The method according to claim 6, wherein the method comprises: - providing the candidate reference points (54; 54a, 54d, 54e) in the off-line programming system (14); - providing a measuring robot program (50) for the industrial robot (12) based on the candidate reference points (54; 54a, 54d, 54e); and - executing the measurement robot program (50) in the robot controller (16) so as to cause the industrial robot (12) to move to measure the position of the surface (28) associated with the candidate reference point (54; 54a, 54d, 54e).

8. The method according to claim 6 or 7, further comprising: - based on user measurement input (44), selecting a reference point (54) from a plurality of different measurement methods; 54a, 54d, 54e) associated with said surface (28); as well as - controlling the industrial robot (12) to measure the position of the surface (28) associated with the candidate reference point (54; 54a, 54d, 54e) based on the selected measurement method.

9. The method according to claim 8, wherein the different measurement methods include the use of different types of position sensors (64, 66) to be carried by the industrial robot (12).

10. The method according to any of the preceding claims, wherein the target robot program (52) is an additive manufacturing robot program for controlling the industrial robot (12) to perform additive manufacturing on the surface (28).

11. The method according to any of the preceding claims, wherein the movement of the industrial robot (12) relative to the surface (28) spans at least 2 meters.

12. The method according to any of the preceding claims, wherein the industrial robot (12) comprises at least six axes (24a-24f).

13. A robot system (10), comprising: - industrial robots (12); - Offline programming system (14); as well as - a robot controller (16); The offline programming system (14) comprises at least one first data processing device (30) and at least one first memory (32) on which at least one first computer program is stored, wherein the at least one first computer program comprises program code, which, when executed by the at least one first data processing device (30), causes the at least one first data processing device (30) to perform the following steps: - providing a plurality of candidate target points (56a-56f) for the industrial robot (12); - providing a plurality of actual reference points (70; 70a-70e), said actual reference points (70; 70a-70e) indicate the true contour of the surface (28); - modifying the candidate target points (56a-56f) based on the actual reference points (70; 70a-70e) to provide a plurality of modified target points (72; 72a-72f) for the industrial robot (12); - providing a target robot program (52) for the industrial robot (12) based on the modified target point (72; 72a-72f); and The robot controller (16) comprises at least one second data processing device (36) and at least one second memory (38) having at least one second computer program stored thereon, wherein the at least one second computer program comprises program code, which, when executed by the at least one second data processing device (36), causes the at least one second data processing device (36) to perform the following steps: - executing the target robot program (52) thereby causing the industrial robot (12) to perform a movement relative to the surface (28).