Method of operating a manipulator, control system and industrial robot

By providing candidate trajectories and calculating load parameters for the robot manipulator, the problem of unreasonable accessory design was solved, trajectory planning was optimized, the performance and lifespan of the manipulator were improved, and the user experience was enhanced.

CN116940447BActive Publication Date: 2026-06-02ABB (SCHWEIZ) AG

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
ABB (SCHWEIZ) AG
Filing Date
2021-03-11
Publication Date
2026-06-02

AI Technical Summary

Technical Problem

In the existing technology, it is difficult to accurately assess the load when designing attachments for robot manipulators, which leads to unreasonable attachment design. This may result in overloading or underloading, affecting the performance and lifespan of the manipulator, and the trajectory planning is complex and not optimized enough.

Method used

By providing candidate trajectories to the robot manipulator, receiving load position input, calculating load parameters, simulating and optimizing the trajectory to meet load constraints, providing load value information, and modifying the trajectory to achieve a reasonable design.

Benefits of technology

It achieves more accurate load assessment, optimizes accessory design, improves manipulator performance and lifespan, simplifies trajectory planning, and enhances user experience.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116940447B_ABST
    Figure CN116940447B_ABST
Patent Text Reader

Abstract

A method of operating a manipulator (12) of an industrial robot (10), the manipulator (12) comprising a base member (16), a mounting interface (24), and a kinematic chain between the base member (16) and the mounting interface (24), the kinematic chain comprising the base member (16), the mounting interface (24), and at least one controllable joint (22), the method comprising providing the manipulator (12) with a candidate trajectory (40a), the candidate trajectory (40a) being associated with a candidate path (42a); receiving a load position input (60a-60d) from a user, the load position input (60a-60d) being associated with a load position (50a-50d), the load position being associated with the industrial robot (10) outside the kinematic chain; and calculating a load value of a load parameter (56) that will affect the load position (50a-50d) if the candidate trajectory (40a) is executed. A control system (14) and an industrial robot (10) are also provided.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This disclosure generally relates to a robot manipulator. Specifically, it provides a method for manipulating a manipulator of an industrial robot, a control system for manipulating a manipulator of an industrial robot, and an industrial robot including a manipulator and a control system. Background Technology

[0002] Robot manipulators often have a tool or other end effector attached to their tool flange. A tool center point (TCP) can then be defined for the end effector. The manipulator can then be controlled to move along a path, causing the TCP to move along that path. Another example of an end effector is a sensor mounted to the tool flange. Robot manipulators may also be equipped with accessories other than end effectors, such as spraying or welding devices attached to a central link of the manipulator.

[0003] For the design of attachments to robot manipulators, a wide range of design options are available, such as those concerning the structural integrity of the attachment. The design of the attachment also needs to consider the structural and dynamic properties of the manipulator. Currently, attachment dimensions are often determined based on the experience of mechanical engineers who estimate the forces and torques acting on the attachment. With this type of dimensional determination, it is difficult to provide an optimal design for the attachment. The loads on the attachment (such as forces and torques) are either underestimated or overestimated. If the load is underestimated, the attachment will be too weak and risk becoming unusable. If the load is overestimated, the attachment will be heavier than required, which may necessitate increasing the manipulator's ratings, reducing the manipulator's acceleration, and / or potentially shortening the lifespan of the manipulator's actuators.

[0004] In some implementations, the manipulator can carry load-sensitive attachments. In existing solutions, the manipulator's speed and / or acceleration are globally limited to reduce the load on sensitive attachments carried by the manipulator. This is a difficult-to-program iterative approach. Furthermore, there is a risk that excessive limitations on speed and / or acceleration could unnecessarily degrade the manipulator's performance. Due to the kinematic and dynamic complexity of the manipulator, there is also a risk that the load may still be too high, potentially leading to attachment failure. Introducing acceleration limitations based on specific attachments is also not optimal, as attachments may experience high loads with low acceleration (risk of failure) and low loads with high acceleration (poor performance utilization).

[0005] US9393693B1 discloses a method for determining and modeling permissible gripping forces. The method includes receiving data representing multiple trajectories along which a robotic manipulator previously moves one or more physical objects without dropping them while gripping them. The method also includes determining a set of force vectors corresponding to the trajectories. The method further includes determining a three-dimensional virtual model of the set, wherein the boundaries of the model represent constraints on the magnitude of forces applied in a given direction to execute the trajectories. The method also includes determining one or more subsequent trajectories corresponding to a subsequent set of force vectors within the boundaries of the model, along which the robotic manipulator can move subsequent physical objects with specific accelerations without dropping them. Summary of the Invention

[0006] One object of this disclosure is to provide a method for manipulating an industrial robot, which effectively assists in the structural design of one or more parts associated with the industrial robot.

[0007] Another object of this disclosure is to provide a method for manipulating an industrial robot, which enables the structural design of one or more components of the industrial robot to be optimized and / or utilized more effectively.

[0008] Another object of this disclosure is to provide a method for manipulating a manipulator of an industrial robot, which effectively assists in trajectory planning of the manipulator.

[0009] Another object of this disclosure is to provide a method for manipulating a manipulator of an industrial robot, which enables precise control of loads outside the kinematic chain of the manipulator.

[0010] Another object of this disclosure is to provide a method for manipulating an industrial robot that improves the user experience.

[0011] Another object of this disclosure is to provide a method for manipulating an industrial robot, which addresses some or all of the foregoing objects in combination.

[0012] Another object of this disclosure is to provide a control system for manipulating an industrial robot, which solves one, several, or all of the aforementioned objects.

[0013] Another object of this disclosure is to provide an industrial robot including a manipulator and a control system, which solves one, several or all of the aforementioned objects.

[0014] According to a first aspect, a method is provided for manipulating a manipulator of an industrial robot, the manipulator including a base member, a mounting interface, and a kinematic chain between the base member and the mounting interface, the kinematic chain including the base member, the mounting interface, and at least one controllable joint, the method comprising providing the manipulator with a candidate trajectory associated with a candidate path; receiving a load position input from a user associated with a load position of the industrial robot outside the kinematic chain; and calculating a load value of a load parameter that would affect the load position if the candidate trajectory were executed.

[0015] By utilizing load values ​​at selected load locations outside the kinematic chain, this method provides a general and effective approach to evaluate load values ​​for candidate trajectories. For example, it significantly improves the tooling design process for manipulators, enabling the design of lighter tools. Choosing a lighter tool for a manipulator, in turn, affects the manipulator's maximum acceleration and / or pick-off. This method achieves faster and more efficient tool design by virtually testing one or more tool designs against one or more candidate trajectories and iterating through the tool design and / or candidate trajectories to optimize the design.

[0016] The manipulator may include at least two links and a controllable joint between each pair of adjacent links. In the case of a tandem manipulator, the manipulator includes only one kinematic chain. In the case of a parallel manipulator, the manipulator includes at least two kinematic chains. The method can employ any type of control system according to the second aspect and / or any type of industrial robot according to the third aspect.

[0017] The load location can be in an accessory connected to the manipulator. An example of such an accessory is an end effector. The payload carried by the end effector can also be considered as constituting an accessory connected to the manipulator. The end effector and payload can be said to be connected to the distal end of the kinematic chain and in series with the kinematic chain. Another example of such an accessory is an external device connected to the intermediate link of the manipulator, such as a painting or welding device connected to the arm of the manipulator. The external device can be said to be connected in parallel with the kinematic chain.

[0018] Another example of a load location outside the motion chain of a manipulator is an external structure, such as a floor, base, or substructure, connected to a base member. The external structure can also be one or more fasteners, such as screws, used to secure the base member. This external structure can be said to be connected to the proximal end of the motion chain and in series with it. Therefore, a load location outside the motion chain can be various interfaces to the manipulator. The load location can be directly or indirectly fixed to a part of the manipulator, such as a linkage, base member, or mounting interface.

[0019] The base member can be fixed to an external structure. However, the external structure can be a movable structure, such as a conveyor. The manipulator may include a first link movable relative to the base member at a first joint.

[0020] The mounting interface can be connected to the farthest link of the manipulator. The mounting interface provides an interface for connecting tools or other end effectors. The mounting interface can be a tool flange.

[0021] Candidate trajectories can be provided by the user and / or by the control system of the industrial robot. Candidate trajectories can be provided, for example, by means of guided programming. According to another example, candidate trajectories can be automatically generated by the control system, for example, based on one or more tasks. The method can also include executing the candidate trajectory by the manipulator after calculating the load value. However, the method can also include calculating the load value without executing the candidate trajectory.

[0022] In addition to candidate paths, candidate trajectories can also include velocity and acceleration profiles along the candidate path. These velocity and acceleration profiles can be referred to as candidate velocity and candidate acceleration, respectively. The type of end effector can also be considered part of the candidate trajectory. Therefore, the only difference between the first and second trajectories is that the trajectories are planned to be executed using different types of end effectors.

[0023] Load position inputs can be associated with one or more load positions outside the motion chain that are linked to the industrial robot. Load position inputs can be provided, for example, via a user interface such as a programming device.

[0024] The load location can be, for example, a single point, a cross section, or a region selected by the user. The load location is the point of interest outside the kinematic chain, where the load value for the candidate trajectory will be calculated.

[0025] The load value can be calculated using a control system according to this disclosure. Examples of load parameters include force, torque, acceleration, and stress.

[0026] The calculation of the load value may include simulating candidate trajectories to determine the load value. The method may also include, for example, transmitting the load value to the user via a display.

[0027] The method may also include providing one or more load location parameters associated with the load location, wherein the load value is calculated based on the one or more load location parameters. The load location parameters may include one or more static values ​​characterizing the load location. Examples of load location parameters associated with the load location include mass, inertia, center of gravity, stiffness, and / or compliance.

[0028] Therefore, the method may also include providing a model of attachments, external devices, or external structures. This model may further include one or more load location parameters associated with the load location. The model may be, for example, a solid or mesh of finite element data to improve the accuracy of load value calculations. In the case of finite element data, one or more load location parameters may be defined for each finite element.

[0029] One or more load position parameters can be calculated, determined empirically, and / or provided by the user. One or more load position parameters can be determined empirically, for example, by means of a force sensor and / or a gyroscope.

[0030] The method may also include a manipulator model that provides the manipulator. The manipulator model can describe the static and dynamic properties of the industrial robot. The manipulator model may include one or more position-related terms, one or more velocity-related terms, and one or more acceleration-related terms. For example, when calculating load values ​​based on the manipulator model, gravity and centripetal force can be considered as candidate trajectories.

[0031] The method may also include transmitting load value information associated with the load value to the user. Transmitting the load value information may include displaying the load value information. In this case, displaying the load value information may include displaying the load value and / or visualizing an indication of the load value. Visualizing an indication of the load value includes more than just displaying numbers. Visualization may, for example, include color coding or patterns indicating the magnitude of the load value.

[0032] The method may also include visualizing candidate paths associated with candidate trajectories. In this case, load value information can be displayed in association with the candidate paths.

[0033] Alternatively or additionally, load value information may include the maximum and / or minimum load values ​​for candidate tracks. Knowing the maximum load value is highly advantageous because users can directly use this value to determine the dimensions of attachments such as end effectors.

[0034] The method may further include modifying the candidate trajectory based on the load value to provide a modified trajectory. The method may also include executing the modified trajectory by a manipulator. However, the method may include modifying the candidate trajectory based on the load value to provide a modified trajectory without executing the candidate trajectory and / or the modified trajectory.

[0035] Modifications to candidate trajectories may include modifications to the configuration of the industrial robot, modifications to the candidate path, modifications to the velocity of the candidate trajectory, and / or modifications to the acceleration of the candidate trajectory.

[0036] The method may also include receiving constraint input from a user, which defines a load constraint on the load value at the load location. In this case, modifying the candidate trajectory may include modifying the candidate trajectory to provide a modified trajectory, wherein the load value will satisfy the load constraint when the modified trajectory is executed. By defining the load constraint in this way, it is easy to ensure that the load value at the selected load location satisfies the load constraint. This variation is advantageous, for example, when the manipulator carries sensitive attachments. The user can simply define the load constraint for the current end effector design, rather than changing or redesigning the end effector. The control system takes this load constraint into account when providing a modified trajectory in which the load value will satisfy the load constraint.

[0037] In this variation, modifying the candidate trajectory to provide a modified trajectory may, for example, include modifying the candidate path, candidate velocity, and / or candidate acceleration of the candidate trajectory to provide a modified trajectory. For example, the candidate path may be modified to reduce the position-dependent load value at the load location. For example, the candidate velocity and / or candidate acceleration may be reduced. The candidate trajectory can be modified to provide a modified trajectory through optimization.

[0038] This variant is particularly advantageous for material handling tasks by the manipulator because load constraints can be easily defined relative to payload properties such as the mass of items picked up and placed by the manipulator. For example, to ensure the structural integrity of fragile payloads, load locations can be defined within the payload, and load constraints can be defined based on the structural integrity of the payload. In this variant, the calculated load values ​​do not necessarily have to be transmitted to the user.

[0039] When a candidate trajectory is executed and emergency braking of the manipulator is performed during the execution of the candidate trajectory, the load value can be an emergency load value that will affect the load position. Since the manipulator is typically subjected to relatively infrequent emergency braking, the load constraint for the emergency load value can be set higher than the load constraint for the load value calculated for successful execution of the candidate trajectory. The load constraint for the emergency load value can be based on the maximum load at the load position, while the load constraint for the load value calculated for successful execution of the candidate trajectory can be based on the fatigue load at the load position. Therefore, higher load values ​​can be accepted for emergency braking to achieve shorter braking distances. The possibility of calculating such emergency load values ​​is very valuable because it is difficult to predict such loads using solutions based on existing technology. Emergency braking can be, for example, controlled emergency braking.

[0040] According to a second aspect, a control system is provided for a manipulator used to manipulate an industrial robot. The manipulator includes a base member, a mounting interface, and a kinematic chain between the base member and the mounting interface. The kinematic chain includes the base member, the mounting interface, and at least one controllable joint. The control system includes at least one data processing device and at least one memory storing a computer program thereon. The computer program includes program code that, when executed by the at least one data processing device, causes the at least one data processing device to perform the following steps: providing a candidate trajectory for the manipulator, the candidate trajectory being associated with a candidate path; receiving a load position input from a user, the load position input being associated with a load position outside the kinematic chain and associated with the industrial robot; and calculating a load value that would affect the load position if the candidate trajectory is executed.

[0041] The computer program may also include program code that, when executed by the at least one data processing device, causes the at least one data processing device to perform or commands to perform any step according to the first aspect.

[0042] The control system may include a robot controller, which in turn includes a data processing unit and a memory. The control system may also include a programming unit. Furthermore, the programming unit may include a data processing unit and a memory. The programming unit may be a teach pendant unit.

[0043] The computer program may include program code that, when executed by the at least one data processing device, causes the at least one data processing device to perform the following steps: providing one or more load location parameters associated with the load location; and calculating a load value based on the one or more load location parameters.

[0044] The computer program may include program code that, when executed by the at least one data processing device, causes the at least one data processing device to perform the following steps: commanding the transmission of load value information associated with the load value to a user. The transmission of the load value information may include displaying the load value information. In this case, the display of the load value information may include displaying the load value and / or visualizing an indication of the load value.

[0045] The computer program may include program code that, when executed by the at least one data processing device, causes the at least one data processing device to perform the following steps: a command to visualize candidate paths associated with candidate trajectories. In this case, load value information may be displayed in association with the candidate paths.

[0046] The computer program may include program code that, when executed by the at least one data processing device, causes the at least one data processing device to perform the following steps: modifying the candidate trajectory based on the load value to provide a modified trajectory.

[0047] Modifications to a candidate trajectory may include modifications to the candidate path, the velocity of the candidate trajectory, and / or the acceleration of the candidate trajectory.

[0048] The computer program may include program code that, when executed by the at least one data processing device, causes the at least one data processing device to perform the following steps: receiving constraint input from a user, the constraint input defining a load constraint on the load value at the load location. In this case, modification of the candidate trajectory may include modifying the candidate trajectory to provide a modified trajectory, wherein, when the modified trajectory is executed, the load value will satisfy the load constraint.

[0049] When a candidate trajectory is executed and the manipulator’s emergency braking is performed during the execution of the candidate trajectory, the load value can be an emergency load value that will affect the load position.

[0050] According to a third aspect, an industrial robot is provided, including a manipulator and a control system according to this disclosure. The industrial robot can be any type combined with those mentioned in the first aspect, and the control system can be any type according to the second aspect. Attached Figure Description

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

[0052] Figure 1 : A schematic side view of an industrial robot including its manipulators and control systems;

[0053] Figure 2 : A schematic representation of the programming apparatus when visualizing the manipulator and the candidate paths associated with the candidate trajectories;

[0054] Figure 3 : A schematic representation of a programming device when the user provides load position input;

[0055] Figure 4 : A schematic representation of a programming device when the indication of the load value of a candidate trajectory is visualized;

[0056] Figure 5 : A programming apparatus that schematically represents the visualization of an indication of a modified path associated with a modified trajectory and a load value associated with the modified trajectory.

[0057] Figure 6: A programming apparatus that schematically represents another example of a user providing load position input;

[0058] Figure 7 : A programming apparatus that schematically represents another example of a user providing load position input;

[0059] Figure 8 : A programming apparatus that schematically represents another example of a user providing load position input;

[0060] Figure 9 : This schematically illustrates a programming device when the indication of the load value of a candidate trajectory is visualized, according to another example;

[0061] Figure 10 : Indicatively indicates when according to Figure 9 The programmable device visualizes the load value indication and during the simulated movement of the manipulator;

[0062] Figure 11 A graph that schematically represents the calculated load values;

[0063] Figure 12 : A programming apparatus that schematically illustrates another example of visualizing an indication of a load value for a modified trajectory;

[0064] Figure 13 : schematically represents a programming device when the user inputs a constraint input; and

[0065] Figure 14 : A programming device that schematically represents the visualization of the load value of a modified trajectory modified based on constraint inputs. Detailed Implementation

[0066] Below, a method for manipulating an industrial robot, a control system for manipulating an industrial robot, and an industrial robot including both a manipulator and a control system will be described. The same or similar reference numerals will be used to denote the same or similar structural features.

[0067] Figure 1 A schematic side view of an industrial robot 10 is shown. The industrial robot 10 includes a manipulator 12 and a control system 14. Figure 1 The Cartesian coordinate system X, Y, and Z are also shown for reference.

[0068] The manipulator 12 in this particular example includes seven axes. The manipulator 12 includes a base member 16. In this example, the base member 16 is fixed to a base 18. The base 18 is an example of an external structure according to this disclosure.

[0069] The manipulator 12 also includes a first link 20a rotatable relative to the base member 16 at a first joint 22a, a second link 20b rotatable relative to the first link 20a at a second joint 22b, a third link 20c rotatable relative to the second link 20b at a third joint 22c, a fourth link 20d rotatable relative to the third link 20c at a fourth joint 22d, a fifth link 20e rotatable relative to the fourth link 20d at a fifth joint 22e, a sixth link 20f translatably movable relative to the fifth link 20e at a sixth joint 22f, and a seventh link 20g rotatable relative to the sixth link 20f at a seventh joint 22g. One, more, or all of links 20a-20g may optionally be designated by reference numeral "20". One, more, or all of joints 22a-22g may alternatively be designated by reference numeral "22". Each link 20 is driven at its joint 22 by an associated motor and an associated gearbox (not shown).

[0070] The manipulator 12 also includes a tool flange 24. The tool flange 24 is an example of a mounting interface according to this disclosure. The tool flange 24 is secured to the seventh link 20g. The base member 16, the link 20, and the tool flange 24 form an example of a series kinematic chain.

[0071] The industrial robot 10 also includes an end effector 26a, illustrated herein as a gripper. The end effector 26a is connected to a tool flange 24. The tool flange 24 thus provides an interface for the end effector 26a. The end effector 26a is an example of an accessory external to the motion chain of the manipulator 12.

[0072] exist Figure 1 In this configuration, the end effector 26a holds the payload 28. Thus, the payload 28 is fixed to the end effector 26a. The payload 28 can be, for example, an item moved by the manipulator 12 during a pick-up and place operation. The payload 28 is yet another example of an accessory external to the kinematic chain of the manipulator 12.

[0073] The control system 14 communicates with the manipulator 12 via signals to control its operation. In this particular example, the control system 14 includes a teach pendant unit (TPU) 30 and a robot controller 32. The robot controller 32 includes a data processing unit 34 and a memory 36. The memory 36 has a robot program stored thereon. The robot program includes program code that, when executed by the data processing unit 34, causes the data processing unit 34 to perform the various steps described herein and / or commands to perform the various steps described herein. The robot program also includes a path planner and robot simulation software.

[0074] The TPU 30 includes a display 38. The TPU 30 also includes a data processing unit and a memory (not shown). The TPU 30 communicates with the robot controller 32 via signals. The TPU 30 is an example of a programming device according to this disclosure.

[0075] exist Figure 1 The candidate trajectory 40a is shown in the diagram. The candidate trajectory 40a can be defined by a user, for example, using TPU 30, or it can be generated by a path planner. The candidate trajectory 40a includes an associated candidate path 42a, an associated velocity 44a, and an associated acceleration 46a, such as... Figure 1 The diagram is schematically illustrated. Therefore, a trajectory differs from a path in that it includes more information than just a path, such as velocity and / or acceleration curves along the path. Candidate trajectory 40a can also be considered to include end effector 26a and / or payload 28. In executing candidate trajectory 40a, candidate path 42a can, for example, follow the tool center point TCP. In this example, candidate path 42a includes three movement segments 48a-48c. Each movement segment 48a-48c can be an interpolation between two adjacent target points.

[0076] Figure 1 An example of a modified trajectory 40b is also shown. The modified trajectory 40b includes an associated modified path 42b, an associated modified velocity 44b, and an associated modified acceleration 46b, such as... Figure 1 The diagram is schematic. Velocities 44a and 44b may alternatively be referred to by the reference numeral "44". Accelerations 46a and 46b may alternatively be referred to by the reference numeral "46".

[0077] Figure 1 An example of a load position 50a associated with the industrial robot 10 is also shown. Figure 1 The force 52 and torque 54 acting at load position 50a are also schematically indicated. Force 52 and torque 54 are examples of load parameters 56 according to this disclosure. Load position 50a is located here in end effector 26a. Load position 50a is a user-interested location outside the motion chain of manipulator 12. Load position 50a is subjected to force 52 and torque 54 from manipulator 12 when manipulator 12 executes candidate trajectory 40a.

[0078] In most cases, the user knows the expected outcome of the industrial robot 10. For example, the movement of the manipulator 12 in a pick-and-place application is at least approximately known. The user may also know, for example, whether the expected outcome involves multiple reorientations of the end effector 26a.

[0079] Figure 2This schematically represents TPU 30. Figure 2 In a specific example, the TPU 30 visualizes the base 18, manipulator 12, end effector 26a, payload 28, and candidate path 42a associated with candidate trajectory 40a.

[0080] The teach pendant unit 16 in this example also includes multiple buttons 58. The user can provide various user inputs using the buttons 58. Alternatively or additionally, the display 38 can be a touchscreen, which the user can use to provide various user inputs.

[0081] Figure 3 Another view of the TPU 30 is shown schematically. To obtain information about one or more load parameters 56 in the end effector 26a and to see if the end effector 26a is properly sized, the user provides a load position input 60a. In this example, the load position input 60a involves locating a line representing a cross-section in the end effector 26a, as visualized on the display 38. The user can then confirm the selection using one of the buttons 58. Locating a line and pressing one of the buttons 58 constitutes one of many examples of a user-provided load position input 60a. With the aid of the load position input 60a, the load position 50a is defined by the user. The load position input 60a is therefore associated with the load position 50a.

[0082] like Figure 3 As indicated, the user also inputs load position parameter 62. Load position parameter 62 can be of various types used to characterize load position 50a. Examples of load position parameter 62 include the mass, inertia, center of gravity, stiffness, and / or compliance of an attachment outside the kinematic chain (i.e., the end effector 26a in this example). By inputting load position parameter 62, the user can define a wide range of parameters associated with the end effector 26a. Therefore, for the purpose of calculating load values, it is not necessary to attach the physical end effector 26a to the manipulator 12.

[0083] In another example, an end effector model for end effector 26a is provided. The end effector model can be provided in various ways. For example, it can be user-defined, determined through empirical testing, or downloaded from the Internet. The end effector model may include one or more rigid bodies. In the case where the load location 50a is a cross-section, the end effector model may include one or more rigid bodies on each side of the cross-section. In this case, a load location parameter 62 can be defined for each rigid body.

[0084] In another example, a payload model for payload 28 is provided. Alternatively or additionally, the load location parameter 62 associated with payload 28 can be input by the user.

[0085] This example also provides a manipulator model for manipulator 12. By using the manipulator model, position-dependent and velocity-dependent terms can also be considered when calculating load values. An example of the manipulator model will be described below.

[0086] Given a proposed candidate trajectory 40a, a vector including one or more load parameters 56 can be computed at each time step along the candidate path 42a using a manipulator model. ,as follows:

[0087] (1)

[0088] When considering the complete dynamics of manipulator 12 τ k It is a vector of force 52 and torque 54, or when expressing the dynamics relative to a cross-section, joint 22, or some other coordinate system in the structure of manipulator 12. τ k It is a vector of three forces of 52 and three torques of 54, also known as a wrench.

[0089] vector q Its derivatives represent the position of joint 22, the velocity of joint 22 44, and the acceleration of joint 22 46.

[0090] It is the acceleration term of the manipulator model, and can also be written as .

[0091] M k (q) It is the inertia matrix that depends on the position of joint 22. The inertia matrix is ​​an example of an inertial-related term that defines the inertia of manipulator 12.

[0092] The velocity term of the manipulator model can also be written as . In particular, it can represent the centripetal load of manipulator 12.

[0093] It is the position term of the manipulator model, and can also be written as g k (q) .

[0094] g k (q) The position-dependent load term of the manipulator 12 is represented here as a gravity-dependent load term. Therefore, the manipulator model describes the static and dynamic properties of the manipulator 12.

[0095] Equation (1) can also be written as:

[0096]

[0097] Furthermore, a friction term can be added to the manipulator model. This friction term typically depends on the velocity 44 of joint 22, but can also depend on the position of joint 22. Using the manipulator model, for any candidate trajectory 40a, the load parameter 56 can be calculated at any point in the manipulator 12 and at any load position 50a in the body located outside the kinematic chain but fixed to a part of the manipulator 12. However, the manipulator model can be avoided if the velocity 44, acceleration 46, and any forces that will affect the load position 50a when the candidate trajectory 40a is executed are known.

[0098] Based on the candidate trajectory 40a, load position parameters 62, and the manipulator model, the robot simulation software in the robot controller 32 calculates the load value at each time step of the candidate trajectory 40a at the user-selected load position 50a. However, the load value can also be calculated by another part of the control system 14, such as by the TPU 30.

[0099] In a specific example, candidate trajectory 40a may include pushing an end effector 26a (or a payload 28 carried by the end effector 26a) against a fixed structure. The end effector may be, for example, a polishing tool that is pushed against the fixed structure with a certain force. In such a scenario, if candidate trajectory 40a is executed, the method may also calculate the load value at load position 50a where the manipulator 12 is subjected to an external load.

[0100] Figure 4 Another view of the TPU 30 is shown schematically. Figure 4 In the process, the load value of load parameter 56 has been calculated, and when candidate trajectory 40a is executed, this load parameter 56 will affect load position 50a. Based on the calculated load value at load position 50a, load value information associated with the load value is displayed and thus transmitted to the user.

[0101] In this particular example, the load value information includes three distinct visual indicators 64a-64c on display 38. Each indicator 64a-64c is illustrated here as a specific shaded line illustrating the line of movement segments 48a-48c of candidate path 42a. Thus, in this example, candidate path 42a and the load value associated with candidate path 42a are both visualized on display 38. The different shaded lines of indicators 64a-64c represent different load values ​​or different ranges of load values ​​for load parameter 56, which will affect load position 50a if candidate trajectory 40a is executed. The shaded lines of the second movement segment 48b and the third movement segment 48c may represent critical load values ​​at load position 50a, while the shaded line of the first movement segment 48a may represent acceptable load values ​​at load position 50a. As one of many alternatives to the different shaded lines, each movement segment 48a-48c may be illustrated with a specific color, for example, to represent different ranges of load values.

[0102] exist Figure 4 In the middle, box 66 indicates, for example, the display of several or all of the calculated load values ​​as a table. For example... Figure 4 The document also indicates the maximum load value 68 of the load parameter 56 that will affect the selected load location 50a when candidate trajectory 40a is executed.

[0103] Instructions 64a-64c visually inform the user of the load value at the selected load position 50a of the candidate trajectory 40a. This allows the user to easily understand the ratings of the end effector 26a relative to the candidate trajectory 40a. If the ratings are too low, the end effector 26a can be redesigned or replaced to provide increased ratings and / or the candidate trajectory 40a can be modified to reduce performance (e.g., by reducing speed 44a and / or acceleration 46a). If the ratings are too high, the end effector 26a can be redesigned or replaced to provide decreased ratings and / or the candidate trajectory 40a can be modified to improve performance (e.g., by increasing speed 44a and / or acceleration 46a). In any case, the load value information visually guides the user to provide the optimal design for the end effector 26a given the candidate trajectory 40a. The load value information provided to the user also allows the user to easily and accurately verify the design of the end effector 26a for the robot program actually planned for use.

[0104] Another example of the load value for load parameter 56 is the emergency load value, which is the load value at load position 50a that will be affected if emergency braking is initiated along candidate path 42a. For example, for each point along candidate path 42a, if emergency braking is initiated at that point, the emergency load value could indicate a maximum load value 68. The emergency load value can also be displayed on display 38, for example, by means of indications 64a-64c corresponding to load values ​​calculated for successful execution of candidate trajectory 40a. When candidate trajectory 40a is executed by manipulator 12 and emergency braking is initiated, manipulator 12 may or may not follow candidate path 42a after the emergency braking is initiated.

[0105] Figure 5 Another view of the TPU 30 is shown schematically. Figure 5 In this process, candidate trajectory 40a has been modified based on the calculated load value to provide a modified trajectory 40b. The robot program includes software for optimizing candidate trajectory 40a through dynamic optimization to provide the modified trajectory 40b. The modified path 42b of the modified trajectory 40b differs from the candidate path 42a of candidate trajectory 40a. The updated load value has been calculated, and if the modified trajectory 40b is executed, the updated load value will affect the load position 50a selected by the user. TPU 30 now displays load value information associated with these updated load values. Figure 5 As shown, the shaded lines for each movement segment of the modified path 42b, 64a-64c, are identical, indicating the acceptable level of the load value at load position 50a for the modified trajectory 40b. Therefore, the modified trajectory 40b provided by the robot program reduces the load value at load position 50a compared to the candidate trajectory 40a. The modified trajectory 40b is then executed by the manipulator 12.

[0106] Figure 6 Another view of the TPU 30 is shown schematically. Figure 6 In this configuration, the painting device 70 is rigidly connected to the fourth link 20d. The painting device 70 is one of many examples of the accessory, which is connected to the intermediate link 20 and arranged parallel to the kinematic chain of the actuator 12.

[0107] To obtain information about one or more load parameters 56 in the painting apparatus 70, the user provides a load position input 60b. This example load position input 60b includes a line locating a cross-section in the painting apparatus 70, as visualized on the display 38. The user can then confirm the selection using one of the buttons 58. Another example of a load position 50b is defined by the user using the load position input 60b. Therefore, the load position input 60b is associated with a load position 50b in the painting apparatus 70. The method then proceeds to calculate the load value of the load parameter 56, which will affect the load position 50b if the candidate trajectory 40a is executed. Then, as described herein, load value information associated with these load values ​​can be displayed to the user. In this way, the user can intuitively understand the load value that will affect the painting apparatus 70 if the candidate trajectory 40a is executed.

[0108] The spraying apparatus 70 may also include an atomizer (not shown) connected to the tool flange 24. The atomizer may further include a bell cup. Using this method, the load value that will affect the load parameter 56 of the bell cup can also be calculated and displayed.

[0109] Figure 7 Another view of the TPU 30 is shown schematically. To obtain information about one or more load parameters 56 in the base 18, the user provides a load position input 60c. The base 18 is an example of an external structure located near the kinematic chain and connected in series with the kinematic chain of the manipulator 12.

[0110] The load position input 60c in this example includes a line locating a cross-section in the base 18, as visualized on the display 38. The user can then confirm the selection using one of the buttons 58. Another example of a load position 50c is user-defined using the load position input 60c. Therefore, the load position input 60c is associated with the load position 50c in the base 18. The method then proceeds to calculate the load value of the load parameter 56, which will affect the load position 50c if the candidate trajectory 40a is executed. Then, as described herein, load value information associated with these load values ​​can be displayed to the user. In this way, the user can intuitively understand the load value that will affect the base 18 in the case of candidate trajectory 40a.

[0111] Figure 8Another view of TPU 30 is schematically shown. To obtain information about one or more load parameters 56 in payload 28, the user provides a load position input 60d. This example load position input 60d includes a line locating a cross-section in payload 28, as visualized on display 38. The user can then confirm the selection using one of buttons 58. Another example of a load position 50d is defined by the user using the load position input 60d. Thus, load position input 60d is associated with load position 50d in payload 28. The method then proceeds to calculate the load values ​​of load parameters 56, which will affect load position 50d if candidate trajectory 40a is executed. Load value information associated with these load values ​​can then be displayed to the user, as described herein. In this way, the user can visually understand the load values ​​that will affect payload 28 if candidate trajectory 40a is executed.

[0112] When the load value at load position 50d in payload 28 is high, there is a risk that the manipulator 12 may cause payload 28 to fall while executing candidate trajectory 40a. In this example, load position parameter 62 may also include the frictional force between end effector 26a and load 28 and / or the holding force of end effector 26a, such as clamping force. For example, a user can easily see whether the holding force needs to be adjusted, or whether it would be helpful to provide an alternative material with a different coefficient of friction on end effector 26a and / or payload 28.

[0113] Figure 9 and Figure 10 Each represents an additional view of the TPU 30. Figure 9 and Figure 10 Further examples of visual indicators 64d and 64e for load values ​​are shown, which will affect the load position 50a in the end effector 26a when candidate trajectory 40a is executed. Indicators 64d and 64e are illustrated here as arrows, their magnitude and direction representing the magnitude and direction of the load value at each point along candidate path 42a. The colors of indicators 64d and 64e may also vary depending on the load value. Figure 9 and Figure 10 In the simulation, the movement of manipulator 12 along candidate path 42a is also visualized along with the display of load values ​​64d and 64e.

[0114] Figure 11A graph schematically representing the calculated load values ​​is illustrated here as the load value of torque 54 at the load position 50a (or 50b-50d) selected by the user when candidate trajectory 40a is executed. This graph can be displayed on display 38. In this example, the horizontal axis corresponds to candidate path 42a. The horizontal axis could also represent time. The graph also shows the moving segments 48a-48c of candidate path 42a. In this way, the user can easily see whether a particular moving segment 48a-48c provides the critical load value for load parameter 56. The maximum load value 68 and the minimum load value 72 at the selected load position 50a are also displayed, for example, as numbers.

[0115] Figure 12 Another view of the TPU 30 is shown schematically. Figure 12 In this process, candidate trajectory 40a has been modified to provide a modified trajectory 40b by selecting an end effector 26b of a different type with different ratings than the end effector 26a. Thus, the configuration of the industrial robot 10 has been changed. The user then selects a load position 50a in the end effector 26b, calculates the load value for the modified trajectory 40b, and displays the load value information associated with the load value. Figure 12 As shown, candidate path 42a has, for example, in Figure 4 The candidate path 42a has the same geometry. However, due to the different ratings of the end effector 26b, the load value at the selected load position 50a is less critical, as indicated by the shaded lines of indicators 64a-64c. The modified trajectory 40b is then executed by the manipulator 12.

[0116] Figure 13 Another view of the TPU 30 is shown schematically. Figure 13 In this example, the user inputs constraint input 74. Constraint input 74 defines the load constraint for the load value at the selected load location 50a. Therefore, in this example, load location input 60a is a cross-section showing the load value to be limited. The load constraint can be determined taking into account fatigue, maximum load (e.g., during emergency stops), and / or the sliding force between the end effector 26a and the payload 28. If the end effector 26a is sensitive to load, constraint input 74 can take this sensitivity into account when defining the load constraint. Although constraint input 74 is illustrated here as a dialog box, a wide variety of ways are possible for the user to input the load constraint for the load value at the selected load location 50a.

[0117] Based on the candidate trajectory 40a, the robot controller 32 then determines the modified trajectory 40b of the manipulator 12 by solving an optimization problem with an objective function and load constraints. For example, the objective function could be to minimize time, but it could also be to minimize energy consumption, noise, or mechanical fatigue. Load constraints on the load values ​​could be satisfied, for example, by reducing speed 44 and acceleration 46.

[0118] Figure 14 Another view of the TPU 30 is shown schematically. Figure 14 In the process, for the modified trajectory 40b modified based on constraint input 74, the load value indications 64a-64c are visualized on display 38. For example... Figure 14 As shown, the modified path 42b has, for example, in Figure 4 The candidate path 42a has the same geometry. However, due to load constraints, the load value is less critical at the selected load location 50a, as indicated by the shaded lines indicating 64a-64d. The modified trajectory 40b is then executed by the manipulator 12.

[0119] According to one example, the end effector 26a can be redesigned as much as possible before introducing load constraints. Therefore, the designer can attempt to redesign the end effector 26a as much as possible to reduce the load value at the selected load location 50a. At some point, it may not be possible to further redesign the end effector 26a. At this point, considering the structural integrity of the end effector 26a, load constraints can be introduced to keep the load value within a safety margin. This provides a very efficient design process for the end effector 26a.

[0120] While this disclosure has been described with reference to exemplary embodiments, it should be understood that the invention is not limited to what has been described above. For example, it should be understood that the dimensions of the parts can be changed as needed. Therefore, the invention is intended to be limited only by the scope of the appended claims.

Claims

1. A method for operating a manipulator (12) of an industrial robot (10), the manipulator (12) comprising a base member (16) and a mounting interface (24), wherein the kinematic chain of the manipulator (12) includes the base member (16), the mounting interface (24), and at least one controllable joint (22), the method comprising: - Provide the manipulator (12) with a candidate trajectory (40a) associated with a candidate path (42a); - Receive load position input (60a-60d) from the user, the load position input (60a-60d) being associated with a load position (50a-50d) which is associated with the industrial robot (10) outside the kinematic chain; as well as - Calculate the load value of the load parameter (56), which will affect the load position (50a-50d) if the candidate trajectory (40a) is executed.

2. The method according to claim 1, further comprising: Provide one or more load location parameters (62) associated with the load locations (50a-50d), wherein the calculation of the load value is based on the one or more load location parameters (62).

3. The method according to any one of claims 1-2, further comprising: The load value information associated with the load value is transmitted to the user.

4. The method according to claim 3, further comprising: The candidate path (42a) associated with the candidate trajectory (40a) is visualized, wherein the load value information is displayed in association with the candidate path (42a).

5. The method according to any one of claims 1-2, further comprising: The candidate trajectory (40a) is modified based on the load value to provide a modified trajectory (40b).

6. The method of claim 5, wherein the modification of the candidate trajectory (40a) comprises: Modifications to the configuration of the industrial robot (10), the candidate path (42a), the velocity (44a) of the candidate trajectory (40a), and / or the acceleration (46a) of the candidate trajectory (40a).

7. The method according to claim 5, further comprising: Receive constraint input (74) from the user, the constraint input defining a load constraint on the load value at the load location (50a-50d), wherein the modification of the candidate trajectory (40a) includes: modifying the candidate trajectory (40a) to provide a modified trajectory (40b), wherein the load value will satisfy the load constraint when the modified trajectory (40b) is executed.

8. The method according to any one of claims 1-2, wherein when the candidate trajectory (40a) is executed and when the emergency braking of the manipulator (12) is performed during the execution of the candidate trajectory (40a), the load value is an emergency load value that will affect the load positions (50a-50d).

9. A control system (14) for manipulating a manipulator (12) of an industrial robot (10), the manipulator (12) comprising a base member (16) and a mounting interface (24), wherein the kinematic chain of the manipulator (12) comprises the base member (16), the mounting interface (24) and at least one controllable joint (22), the control system (14) comprising at least one data processing device (34) and at least one memory (36) storing a computer program thereon, the computer program comprising program code, which, when executed by the at least one data processing device (34), causes the at least one data processing device (34) to perform the following steps: - Provide the manipulator (12) with a candidate trajectory (40a) associated with a candidate path (42a); - Receive load position input (60a-60d) from the user, the load position input (60a-60d) being associated with a load position (50a-50d) which is associated with the industrial robot (10) outside the kinematic chain; and - Calculate the load value of the load parameter (56), which will affect the load position (50a-50d) if the candidate trajectory (40a) is executed.

10. The control system (14) according to claim 9, wherein, When the program code is executed by the at least one data processing device (34), the at least one data processing device (34) further performs the following steps: - Provide one or more load location parameters (62) associated with the load locations (50a-50d); and - Calculate the load value based on the one or more load location parameters (62).

11. The control system (14) according to claim 9 or 10, wherein, When the program code is executed by the at least one data processing device (34), the at least one data processing device (34) further performs the following steps: - The command transmits the load value information associated with the load value to the user.

12. The control system (14) according to claim 11, wherein, When the program code is executed by the at least one data processing device (34), the at least one data processing device (34) further performs the following steps: - The command visualizes the candidate path (42a) associated with the candidate trajectory (40a), wherein the load value information is displayed in association with the candidate path (42a).

13. The control system (14) according to any one of claims 9 to 10, wherein, When the program code is executed by the at least one data processing device (34), the at least one data processing device (34) further performs the following steps: - Modify the candidate trajectory (40a) based on the load value to provide a modified trajectory (40b).

14. The control system (14) according to any one of claims 9 to 10, wherein the modification of the candidate trajectory (40a) comprises: Modification of the candidate path (42a), modification of the velocity (44a) of the candidate trajectory (40a), and / or modification of the acceleration (46a) of the candidate trajectory (40a).

15. The control system (14) according to claim 13, wherein, When the program code is executed by the at least one data processing device (34), the at least one data processing device (34) further performs the following steps: - Receive constraint input (74) from the user, the constraint input defining a load constraint on the load value at the load location (50a-50d); wherein the modification of the candidate trajectory (40a) includes: modifying the candidate trajectory (40a) to provide a modified trajectory (40b), wherein the load value will satisfy the load constraint when the modified trajectory (40b) is executed.

16. The control system (14) according to any one of claims 9 to 10, wherein the load value is an emergency load value that would affect the load position (50a-50d) when the candidate trajectory (40a) is executed and when the emergency braking of the manipulator (12) is performed during the execution of the candidate trajectory (40a).

17. An industrial robot (10) comprising a manipulator (12) and a control system (14) according to any one of claims 9 to 16.