Manipulation of a workpiece using a robotic arm

The method for robotic arm manipulation establishes a threshold wrench to control forces and torques, addressing the challenge of safely handling delicate workpieces and reducing vibrations, thereby ensuring safe and efficient operation.

WO2026052191A1PCT designated stage Publication Date: 2026-03-12UNIVERSAL ROBOT
View PDF 3 Cites 0 Cited by

Patent Information

Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Filing Date
2025-08-26
Publication Date
2026-03-12

AI Technical Summary

Technical Problem

Existing robotic arm systems face challenges in safely manipulating delicate or fragile workpieces, as they may drop or damage items due to excessive forces and torques during pick and place operations, and undesired vibrations can occur, complicating robot programming and control.

Method used

A method for manipulating workpieces using a robotic arm that establishes a threshold wrench at a fixed point relative to the robot tool flange, calculates wrench contributions, and controls the robotic arm to keep resulting wrench within safe limits, ensuring safe handling and reducing vibrations.

Benefits of technology

Ensures safe manipulation of workpieces by preventing drops and damage, reduces vibrations, and simplifies robot programming by automating control within predefined thresholds without additional sensor feedback.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure DK2025050141_12032026_PF_FP_ABST
    Figure DK2025050141_12032026_PF_FP_ABST
Patent Text Reader

Abstract

Disclosed is a method of manipulating a workpiece using a robotic arm comprising a plurality of robot joints connecting a robot base and a robot tool flange, wherein a holding arrangement is attached to said robot tool flange, said method comprising: holding said workpiece using said holding arrangement, establishing a threshold wrench comprising thresholds for a subset of components of wrench in at least one fixed point relative to said robot tool flange, calculating one or more wrench contributions in said at least one fixed point, calculating an available wrench to be applied by said robot arm, wherein said available wrench is a difference between said threshold wrench and a sum of said one or more wrench contributions; and manipulating said workpiece by controlling said robotic arm such that a wrench in said at least one fixed point resulting from a change of state of said robotic arm is at or below said available wrench. A robotic arm system and a computer program are further disclosed.
Need to check novelty before this filing date? Find Prior Art

Description

MANIPULATION OF A WORKPIECE USING A ROBOTIC ARMField of the invention

[0001] The present invention relates to a method of manipulating a workpiece using a robotic arm, a robotic arm system, and a computer program.Background of the invention

[0002] Robot arms comprising a plurality of robot joints and links where motors can rotate the joints in relation to each other are known in the field of robotics. Typically, the robot arm comprises a robot base which serves as a mounting base for the robot arm and a robot tool flange where to various tools can be attached. A robot controller is configured to control the robot joints to move the robot tool flange in relation to the base. For instance, in order to instruct the robot arm to carry out a number of working instructions. The robot joints may be rotational robot joints configured to rotate parts of the robot arm in relation to each other, prismatic joints configured to translate parts of the robot arm in relation to each other and / or any other kind of robot joints configured to move parts of the robot arm in relation to each other.

[0003] Typically, the robot controller is configured to control the robot joints based on a dynamic model of the robot arm, where the dynamic model defines a relationship between the forces acting on the robot arm and the resulting accelerations of the robot arm. Often, the dynamic model comprises a kinematic model of the robot arm, knowledge about inertia of the robot arm and other parameters influencing the movements of the robot arm. The kinematic model defines a geometric relationship between the different parts of the robot arm and may comprise information of the robot arm such as, length, size of the joints and links and can for instance be described by Denavit-Hartenberg parameters or the like. The dynamic model makes it possible for the controller to determine which torques the joint motors shall provide in order to move the robot joints for instance at specified velocity, acceleration or in order to hold the robot arm in a static posture.

[0004] It is known in the art to estimate external forces applied to a robot arm. US 2011 / 0060460 Al discloses a robot control method which can estimate an external force and torque and provide stable force control without using a force sensor. In the case where an external torque is determined to be larger than a maximum threshold value, the external torque is reduced to the value of the maximum threshold value in order to avoid breakage of a control subject in contact with a tip of the robot arm. Such control of a robot arm is known as compliance control.

[0005] Typically, it is possible to attach various end effectors to the robot tool flange or other parts of the robot arm, such as grippers, vacuum grippers, magnetic grippers, screwing machines, welding equipment, dispensing systems, visual systems etc.

[0006] Robot arms are used in various industries for tasks such as assemblies, welding, material handling or machining. This diversity in applications is due to the ability to attach various end effectors to the robot arm. In many situations the robot arm may have to control delicate and vulnerably end effectors or pick up vulnerably workpieces. Accordingly, there exists a need of moving the end effector in a safe way.Summary of the invention

[0007] The inventors have identified the above-mentioned problems and challenges related to safe movements of end effectors, and subsequently made the below- described invention which may improve the control of forces and / or torques involved in the movement of end effectors when manipulating a workpiece.

[0008] An aspect of the invention relates to a method of manipulating a workpiece using a robotic arm, said robotic arm comprising a plurality of robot joints connecting a robot base and a robot tool flange, wherein an end effector is attached to said robot tool flange, said end effector comprising a holding arrangement, said method comprising the steps of:- holding said workpiece using said holding arrangement,- establishing a threshold wrench comprising thresholds for a subset of components of wrench in at least one fixed point relative to said robot tool flange,- calculating one or more wrench contributions in said at least one fixed point,- calculating an available wrench to be applied in said at least one fixed point relative to said robot tool flange by said robot arm, wherein said available wrench is a difference between said threshold wrench and a sum of said one or more wrench contributions; and- manipulating said workpiece by controlling said robotic arm such that a wrench in said at least one fixed point resulting from a change of state of said robotic arm is at or below said available wrench.

[0009] Thereby is provided an advantageous method of manipulating a workpiece using a robotic arm, which is advantageous for a number of reasons:

[0010] First, the method is advantageous in that it may ensure that workpieces being moved by the robotic arm are not dropped. Many robot arm applications involve some kind of pick and place operation, where a robotic arm picks up a workpiece (or object) from one position and places the workpiece in another position using an end effector in the form of a holding arrangement. When manipulating a workpiece, e.g., by picking up a workpiece and moving the workpiece about, there is always a risk of dropping the workpiece. In such a situation, the dropping of the workpiece may be due to forces and / or torques at points of contact between the robotic arm and the workpiece exceeding critical limits. The method according to the present disclosure presents a solution to this problem, where a threshold wrench is established in at least one fixed point relative to the robot tool flange. In the case of a pick and place operation, the at least one fixed point may be a holding point (or gripping point) such as a contact point between the workpiece and a holding arrangement of the robotic arm, such as a suction gripper of the robotic arm. It should be noted that this is merely an example of a holding point, and a holding point may also be defined in other ways as exemplified in the following disclosure. By calculating one or more wrench contributions in the at least one fixed point, it may be possible to calculate an available wrench as a difference between the threshold wrench and a sum of the one or more wrench contributions. By calculating the available wrench in the at least one fixed point, it may be possible tocontrol the robotic arm in such a way that changes in the state of the robotic arm does not impose a wrench exceeding the available limit. Effectively, such a control of the robotic arm may be manifested as a dynamic scaling of the motion of the robotic arm or by generation of new robotic arm trajectories within limits. By controlling the robotic arm according to the present method, it may thus be possible to manipulate workpieces without dropping them.

[0011] Second, the method is not only advantageous in that it may ensure that workpieces are not dropped during manipulation, but the method may also be used to ensure safe handling of fragile workpieces, such as delicate items like medical equipment, e.g., test tubes containing liquids. By controlling wrench in the at least one fixed point according to the present method, it may be ensured that accelerations of the fixed point are kept within acceptable limits whereby the risk of damaging the workpiece may be reduced.

[0012] Third, the method is advantageous in that it may ensure that an end effector is controlled within specific tolerances. Any movement of the robot arm may impose oscillations / vibrations at the end effector and depending on the specific application of the robot arm, such oscillations may be undesired. For example, if the end effector comprises an inspection tool, such as a camera-based inspection tool, or indeed any kind of camera-based end effector, movements of the robot arm may impose vibrations in an image feed provided by the end effector. The amplitude of such vibrations may increase the further the camera is placed away from the robot tool flange. By moving the end effector in accordance with the present embodiment, it may be ensured that oscillations may be reduced.

[0013] Fourth, the method is advantageous from a robot programming point of view, as the user does not have to tune all accelerations in a robot control program to not exceeding the threshold wrench. On the contrary, the programmer may only have to ensure that the relevant threshold values are established, and the robotic arm may be controlled automatically within these thresholds.

[0014] From the above listed advantages of the present method, different examples of movements of end effectors have been provided, including different examples of manipulating workpieces, however, a skilled person in the field of robotics will readily appreciate that other examples of movements of end effectors may be contemplated.

[0015] The method may be regarded as an anticipatory method in that it establishes an available wrench at any given moment and allows the robotic arm to operate within a threshold wrench, thereby, the robotic arm may always be operated in a way that ensures a safe manipulation of the workpiece. The fact that the method may be regarded as an anticipatory method is also evident from the fact that the limitations imposed by the calculation of available wrench may be performed without the need of additional sensor feedback, so the behaviour of the robotic arm and the cycle time may be entirely deterministic. By additional sensor feedback may be understood sensor feedback from sensors not directly involved in the control of the joints of the robotic arm, such as external sensor feedback not used as input to a dynamic model associated with the robotic arm.

[0016] In the context of the present disclosure the terms “robot arm” and “robotic arm” may be used interchangeably, and in the present context, a robotic arm is understood as a type of mechanical arm having a number of degrees of freedom, usually programmable. Such a robotic arm may typically include a number of robotic arm links interlinked by robotic joint elements enabling rotation of robotic arm links with respect to one another. The linking of the robotic arm links by the robotic joint elements defines an elongated structure which may mimic the behaviour of a human arm; however, the rotational degree of freedom may surpass that of a human arm; for example, the joints of the robotic arm may allow 360 degrees of rotation, which may not be possible for joints of a human arm. Such a robotic arm may also include a tool for performing operations on external objects.

[0017] In the context of the present disclosure, an “end effector” may be understood as any kind of peripheral device that attaches to a robotic arm via the robot tool flange. End effectors are what allow robotic arms to perform their tasks, and there existnumerous types of end effectors depending on the specific task to be carried out by the robotic arm.

[0018] The robotic arm of the present disclosure comprises an end effector in the form of a holding arrangement. By a holding arrangement may be understood any kind of holding- or gripping device capable of interacting with the physical world by holding / gripping and releasing objects. Examples of holding arrangements may include servo-electric grippers, finger grippers such as two-finger grippers, three- finger grippers or adaptive grippers having multiple fingers, magnetic grippers, soft and flexible grippers, jamming grippers, hydraulic grippers, pneumatic grippers, vacuum grippers, gecko grippers (grippers utilizing van der Waals forces) or indeed any other kind of mechanical device capable of holding on to an object and releasing the object.

[0019] The method includes a step of holding a workpiece (or object) using the holding arrangement such that the workpiece is held in place by the holding arrangement. This may be performed by pressing two or more teeth together around the workpiece, by suction using a vacuum gripper, by activating a magnetic field, or by utilizing adhesive material, etc. Accordingly, the step of manipulating the workpiece comprises moving the end effector, i.e., the holding arrangement which is holding the workpiece in place.

[0020] Using a holding arrangement as end effector is advantageous in that the robotic arm may be able to pick up objects by holding on to and releasing objects. Thereby, the robotic arm may be able to perform a multitude of robot tasks involving pick and place operations. The present method is particularly suited to robotic arms comprising such holding arrangements as the wrench involved in the manipulation of workpieces secured by a holding arrangement may directly affect the holding arrangement’s ability to secure the workpiece during movement of the robotic arm.

[0021] By a fixed point relative to the robot tool flange may be understood a point which is fixed in a frame of reference moving together with the robot tool flange as the robotic arm is moving. Thus, the fixed point relative to the robot tool flange mayalso be regarded as a point which is moving relative to the robot base as the robotic arm is moving. The fixed point may according to an embodiment of the invention define the origin of a coordinate system (e.g., in Euclidean space) moving together with the robot tool flange as the robotic arm is moving. As the robotic arm comprises an end-effector (or tool), the fixed point may be regarded as a fixed point relative to the end-effector. For example, as the end-effector comprises a holding arrangement in the form of a suction gripper, the fixed point may be defined as a point on the suction gripper or a point in between the suction gripper and a workpiece being manipulated using the suction gripper. For example, if the end-effector comprises a holding arrangement in the form of finger grippers, the fixed point may be defined as a point of contact between grippers and workpiece or indeed a point in space between fingers of the finger gripper. It should be noted that other types of holding arrangements may be used instead, and accordingly the fixed point may be defined differently with respect to the holding arrangement.

[0022] In robotics, spatial forces refer to the forces and torques acting on objects or robots in three-dimensional space. A convenient way of expressing such forces and torques is by the use of wrenches. In the context of robotics, i.e., in the context of the present disclosure, wrench may be understood as another mathematical representation of spatial forces and torques. A wrench may be a vector representation of spatial forces and torques. For example, a spatial torqueG IR3and a spatial force faG IR3(both expressed in a common reference frame a), can be represented by a wrench 14^ G IR6:In this example, the wrench is a six-dimensional vector representation of spatial forces and torques, however, it should be noted that according to the present disclosure, a wrench may be represented by a vector of any number of dimensions (depending on the type of forces and / or torques being represented). Thus, according to the present disclosure, a wrench may represent forces only, torques only, or any combination of forces and torques. For example, a single linear force or a single torque may be represented by a respective wrench, and these respective wrenches may be added to atotal wrench. That is, individual force- and / or torque contributions in the fixed point may be represented by respective wrench contributions, and these respective wrench contributions may be added together to calculate a sum of wrench contributions in the fixed point. It should be noted that a wrench of e.g., six dimensions may still be used to describe a torques and forces which may otherwise be described using fewer dimensions, such as five dimensions. For example, if a force in one dimension is not present, the lack of that force may be represented by zero in the wrench.

[0023] By representing the forces and / or torques in the at least one fixed point by use of wrenches is advantageous in that computations involving forces and torques may be more effective as the forces and torques may be represented by a common vector identity. Wrenches are moreover advantageous in that they facilitate convenient ways of representing torque and forces in different coordinate systems, and a change from one coordinate system to another coordinate system may be performed using e.g., homogeneous transformation matrices.

[0024] Torque is understood as the rotational equivalent of a linear force. Just as a linear force is a push or pull, a torque can be thought of as a twist to an object around a specific axis. In vector form, torque is the cross product of a radius vector (from axis of rotation to point of application of force) and a force vector. In symbols: = r x FT = ||r|| ||F|| sin 0 where T is the magnitude of the torque , r is the radius vector, F is the force vector, x denotes the vector cross product, ||r|| is the magnitude of the radius vector, ||F|| is the magnitude of the force vector, and 0 is the angle between the radius vector and the force vector.

[0025] When a torque is calculated about a point, the torque vector automatically points along an axis which can be found by using the right-hand thumb rule of cross products. In other words, torque is always a measure of a twisting force around an axis of rotation. Throughout the present disclosure the term “torque” may be used to referto the vector quantity of torque, but also to the magnitude of the torque vector. A skilled person will readily understand the term “torque” in the most meaningful representation by the specific context in which torque is referred to.

[0026] In the context of the present disclosure, a “threshold torque” may be understood as a limit of torque that may be applied about the at least one fixed point relative to the robot tool flange. Likewise, a “threshold force” may be understood as a limit of force that may be applied in the at least one fixed point relative to the robot tool flange. The threshold torque and / or threshold force thus represent physical limit(s), which, when surpassed, causes detrimental consequences to the movement of the end effector, such as the manipulation of a workpiece being manipulated by the end effector. For example, if the limit(s) are surpassed, a workpiece may be dropped by the robot arm, a fragile workpiece may be damaged, or an item may be damaged due to a robot end effector exerting too much torque / force on the item. The threshold torque and / or threshold force may be established in numerous ways; it may be calculated upon integration of the robotic arm, or it may already have been precalculated or determined. For example, if the robot arm is performing a pick and place operation using a holding arrangement, such as a suction gripper, the manufacturer of the suction gripper may already have specified a holding force of the suction gripper (or vacuum gripper). Exceeding that theoretical holding force may cause the vacuum between the suction gripper and workpiece to break causing the suction gripper to drop the workpiece. In this situation, the manufacturer of the vacuum gripper may also have specified the grippers resistance to twisting forces and exceeding these twisting forces (or torques) may also cause the suction gripper to lose its grip on the workpiece.

[0027] Threshold torques and threshold forces may be represented by a threshold wrench. Considering that torques and / or forces may be represented as wrench, it is likewise considered that threshold torques, and threshold forces, may be represented by a threshold wrench. In the context of the present disclosure, a “threshold wrench” is understood in a mathematical sense and denotes a wrench, e.g., a vector, where individual components of the wrench represent respective threshold torques or threshold forces. For example, the threshold wrench may be a vector having sixcomponents (vector component) - three vector components representing threshold forces in three respective directions of a cartesian coordinate system, and three other vector components representing torque about three respective axes of the cartesian coordinate system. In this example, the first vector component may be a threshold force in the x-direction, the second vector component may be a threshold force in the y-direction, the third vector component may be a threshold force in the z-direction, the fourth vector component may be a threshold torque about an x-axis parallel aligned with the x-direction, the fifth vector component may be a threshold torque about a y- axis parallel aligned with the y-direction, and the sixth vector component may be a threshold torque about a z-axis parallel aligned with the z-direction. It should be noted that this is merely one way of representing threshold force and threshold torque using wrench and that other ways of representing using wrench may be possible. For example, the order may be changed, and the first three components of wrench may relate to threshold torques and the last three components of wrench may relate to threshold forces, and indeed any ordering of force and torque representation may be contemplated.

[0028] In the context of the present disclosure, “torque contributions” and “force contributions” may be understood as any kind of contribution of torque and force applied about (or in) the at least one fixed point relative to the robot tool flange. Such contributions may include contributions arising from gravitational forces exerted on a payload being moved by the robotic arm, contributions arising from Coriolis effects or centrifugal effects due to at least a part of the robot arm having a velocity, contributions arising from accelerations of parts of the robot arm. It should be noted that the above examples of contributions are non-exhaustive, and a skilled person may readily appreciate that other kind of torque contributions and / or force contributions may exist, such as contributions arising from movement of the robot base if the robot arm is mounted on a movable support structure.

[0029] Torque- and force contributions may be represented by a wrench contribution. For example, a force contribution in the x-direction may be represented by a wrench where the first component of wrench includes the force contribution in the x-direction,a force contribution in the y-direction may be represented by a wrench where the second component of wrench includes the force contribution in the y-direction, and a force contribution in the z-direction may be represented by a wrench where the third component of wrench includes the force contribution in the z-direction. Likewise, a torque contribution about an x-axis may be represented by a wrench where the fourth component of wrench includes the torque contribution about the x-axis, a torque contribution about a y-axis may be represented by a wrench where the fifth component of wrench includes the torque contribution about the y-axis, and a torque contribution about a z-axis may be represented by a wrench where the sixth component of wrench includes the torque contribution about the z-axis. It should be noted that this is merely one way of representing force- and torque contributions using wrench and that other ways of representing using wrench may be possible. For example, the order may be changed, and the first three components of wrench may relate to torques and the last three components of wrench may relate to forces, and indeed any ordering of force and torque representation may be contemplated.

[0030] In the context of the present disclosure, a “change of state” is understood as a change of position of one or more parts of the robotic arm with respect to other parts of the robotic arm. In that sense, the state reflects an instance of the positioning / arrangement of elements of the robotic arm, for example a specific arrangement of robot arm joints.

[0031] In the context of the present disclosure, a “workpiece” may be understood as an object or an item.

[0032] According to an embodiment, said holding arrangement is selected from the list of finger grippers, vacuum grippers, magnetic grippers, jamming grippers, gecko grippers, hydraulic grippers, and pneumatic grippers.

[0033] According to an embodiment, said fixed point relative to said robot tool flange defines a point of said end effector.

[0034] The fixed point relative to the robot tool flange may be a point of the end effector attached to the robot tool flange, such as a tool center point (TCP). By lettingthe fixed point define a point of the end effector, such as a tool center point, is advantageous in that torques and / or forces may be controlled directly in a point of interaction of the end effector.

[0035] According to an embodiment, said fixed point relative to said robot tool flange is a point associated with said holding arrangement.

[0036] The fixed point relative to the robot tool flange may be a point associated with a holding arrangement attached to the robot tool flange. Such a point may be referred to as a holding (or gripping) point, and in the context of the present disclosure may be understood as a point of interaction of the holding arrangement with a workpiece. Depending on the type of holding arrangement attached to the robot arm, the holding (or gripping) point may be positioned differently with respect to the robot tool flange. For example, if the holding arrangement attached to the robot arm is a vacuum gripper, the holding point may be defined as a point on the vacuum gripper itself or a point between the vacuum gripper and the workpiece being manipulated using the vacuum gripper. However, if the holding arrangement attached to the robot arm comprises multiple gripping members such as fingers in the case of finger-based grippers, the gripping point may be defined as a point in between gripping members.

[0037] According to an embodiment, said fixed point relative to said robot tool flange is a point of interaction of said holding arrangement with said workpiece.

[0038] According to an embodiment, said subset of components of wrench comprises at least one of a threshold torque and a threshold force in said at least one fixed point relative to said robot tool flange, wherein said step of calculating one or more wrench contributions comprises calculating at least one of a torque contribution and a force contribution in said at least one fixed point relative to said robot tool flange, wherein said step of calculating an available wrench comprises calculating at least one of an available torque and an available force to be applied in said at least one fixed point relative to said robot tool flange, and wherein said step of manipulating said workpiece comprises controlling said robotic arm such that at least one of a torque and a force in said at least one fixed point relative to said robot tool flange resulting from a changeof state of said robotic arm is at or below at least one of said available torque and said available force.

[0039] The method may involve controlling at least one of a torque and a force in the at least one fixed point relative to the robot tool flange. For example, the method may involve controlling one or more torques and / or one or more forces in the at least one fixed point relative to the robot tool flange. For example, the method may involve controlling one torque and one force, or the method may involve controlling one torque and two or more forces, or the method may involve controlling two or more forces and one torque, or the method may involve controlling two or more torques and two or more forces. In the context of the present invention, a reference to two torques may refer to two torques about different axes, and a reference to two forces may refer to two forces having different vector representations (i.e., being represented by respective vectors having different directions). In the present disclosure, the one or more torque contributions and the one or more force contributions are represented as one or more wrench contributions. Likewise, in the present disclosure, the available forces and available torques are represented as an available wrench.

[0040] By controlling one or more torques and one or more forces, according to the present embodiment, it may be possible to achieve a more precise movement of the end effector (or in workpiece manipulation applications, a safer manipulation of the workpiece) especially during complicated movements of the robot arm, where the robot tool flange may be subjected to a twisting force, i.e., a torque, arising due to a rotation of a wrist joint of the robot arm, and a lifting force arising due to a rotation of an elbow joint of the robot arm.

[0041] According to an embodiment, the wrench may comprise six components representing three forces and three torques.

[0042] As the method comprises establishing a threshold wrench, and wrench may represent forces and / or torques, the method effectively comprises establishing a threshold torque and / or a threshold force. This may imply that the method comprises establishing a threshold torque, establishing a threshold force, or establishing both athreshold torque and a threshold force, depending on the particular robot task being carried out by the robot arm. Indeed, it may also be implied that the method comprises establishing a plurality of threshold torques, establishing a plurality of threshold forces or establishing a plurality of threshold forces and a plurality of threshold torques. Also, it may be implied that any number of threshold forces and any number of threshold forces are established.

[0043] According to an embodiment, said method comprises establishing a threshold torque and a threshold force.

[0044] The method may comprise establishing both a threshold torque and a threshold force. It should be noted that the threshold torque may be defined about an axis different from an axis along which the threshold force is defined, however, the axis defining the threshold torque and the direction along which the threshold force is defined may also coincide.

[0045] According to an embodiment, said threshold wrench comprises at least one of a threshold torque and a threshold force, and wherein said threshold torque and said threshold force are global thresholds.

[0046] The threshold torque and the threshold force may be global thresholds. Establishing these thresholds as global thresholds is advantageous from the perspective of a user of the robotic arm in the sense that thresholds may be established once. In this context, “global” may be understood in such a way that the thresholds may be defined as a setting which may be used in respect of a plurality of robot tasks performed by the robot arm, and not only in respect of a single robot task. For example, a robotic arm comprising a holding arrangement for performing picking and placing tasks may perform multiple different picking and placing tasks, and applying the thresholds as global thresholds imply that the user does not have to apply the constraints / thresholds in respect of every picking and placing task but can make do with defining the constraints only once and have the constraint applied across all tasks. According to an embodiment, the global thresholds may be provided as a global threshold setting by the user of the robot arm.

[0047] According to an embodiment, said one or more wrench contributions comprises at least one of a dynamic torque contribution and a dynamic force contribution.

[0048] In the context of the present disclosure, “dynamic torque contributions” and “dynamic force contributions” may be understood as contributions arising from movement of the robot arm itself (e.g., movements of one or more robot joints of the robot arm) and / or movements of a support structure onto which the robot arm is mounted. Examples of such movements may include amongst others rotation of the robot arm around its robot base, rotation(s) of any number of robot joints, or movements of the support structure, such as angular or linear accelerations, movements around curved paths, movements along linear paths, etc.

[0049] According to an embodiment, said one or more wrench contributions comprises contributions arising from a movement of said robot arm.

[0050] A movement of a robot arm may constitute a movement / rotation of a single robot arm joint (or robot joint) or movements of a collection of robot joints of the robot arm. A movement of the support structure may constitute an acceleration (or deceleration) of the support structure. Such accelerations / decelerations may for example occur if the support structure is a movable support structure, such as a mobile robot, which may perform such movements when manoeuvring about in a working environment. Such a movable support structure may also perform turning manoeuvres, which may also constitute a movement of said support structure.

[0051] As the robotic arm is holding onto a workpiece using the holding arrangement, movements of the workpiece, caused by movement of the robotic arm, also imposes wrench contributions in the at least one fixed point. For example, wrench contributions may arise due to the inertia of the workpiece (i.e., due to the workpiece resisting changes in its velocity).

[0052] According to an embodiment, said one or more wrench contributions comprises contributions arising from a movement of a movable support structure onto which said robot arm is mounted.

[0053] The robot arm may be mounted to a movable support structure. In the present context a “movable support structure” may be understood any type of structure capable of supporting a robot arm and moving the robot arm around in space. Examples of such movable support structures include autonomous mobile robots (AMR), autonomous guided vehicles (AGV), rail systems moving the robot arm, linear actuators moving the robot arm, or indeed any other kind of support structure capable of supporting a weight of a robot arm and having transporting means for transporting the robot arm. Examples of such transport means may include wheels for driving about on a surface, wheels for driving on rails, wheels or gears for engaging with a gantry, caterpillar tracks, or any other type of driving system capable of transporting a support structure supporting a robot arm.

[0054] Movements of the movable support structure may impose torques and / or forces, i.e., wrench contributions, in the fixed point relative to the robot tool flange. Such torques and forces may for example be calculated on the basis of sensor data provided by an inertial measuring unit (IMU) located in the movable support structure or in / on the robot arm (for example in the base of the robot arm).

[0055] According to an embodiment, said one or more wrench contributions comprises gravitational contributions arising from said robot arm lifting a workpiece.

[0056] As the robot arm is lifting a workpiece, the weight of the workpiece is supported by the robot arm. In other words, the workpiece being lifted exerts a gravitational pull on the robot arm, which gravitational pull may be defined in the fixed point relative to the robot tool flange as a wrench contribution. Ideally, the workpiece has a homogeneous weight distribution, whereby only a force may be exerted in the fixed point relative to the robot tool flange, however, in the case of a workpiece having an uneven weight distribution, the workpiece may also impose a twisting force (i.e., torque) in the fixed point relative to the robot tool flange

[0057] According to an embodiment, said one or more wrench contributions do not comprise contributions arising due to contact forces.

[0058] The one or more wrench contributions may not comprise contributions arising due to contact forces. By contact forces may be understood forces arising from interaction between the robot arm and external objects, such as contact forces arising when the robot arm is pushing against an external object or forces arising due to collisions of the robot arm with external objects.

[0059] According to an embodiment, said step of establishing a threshold wrench for a subset of components of wrench comprises establishing a threshold torque and / or a threshold force for a selected subset of spatial axes and / or spatial directions.

[0060] When considering torques about a point and forces working in the point, the situation can generally be described using a six-dimensional vector representation. Using a cartesian coordinate system to describe forces, the involved forces may be described as forces along the x-axis, y-axis and z-axis of the coordinate system. These are three of the components of the six-dimensional vector. The remaining three components are the three torque components; one torque component around each axis of the Cartesian coordinate system. Any force in Cartesian space can be described as a linear combination of forces along the three Cartesian axes, and the same is true that any torque can be described as a linear combination of the torques around the three Cartesian axes.

[0061] When defining thresholds for torques and / or forces, one could in principle define limits for all components of the six-dimensional vector representation (e.g., for every component of wrench). However, in practice this may not be necessary for a given task performed by the robot arm. Some tasks may be less sensitive to force in one direction as opposed to another direction. For example, when manipulating a fragile workpiece, such as a vessel comprising a liquid, there is generally a greater risk of spilling over liquid when moving the vessel in a horizontal plane compared to moving the vessel in an upwards direction. Thus, in such a task it may not be strictly necessary to impose force limits (effectively acceleration limits) in the vertical direction, and the threshold forces may be limited to forces spanning the horizontal plane. Thus, selecting particular threshold torques and / or forces is advantageous in that the robot arm may only be limited to the extent necessary to safely perform theintended robot tasks and the degrees of freedom for movement of the robot arm is more relaxed.

[0062] According to an embodiment, said fixed point relative to said robot tool flange is located in the origin of a robot tool flange coordinate system.

[0063] By a “robot tool flange coordinate system” may be understood a coordinate system describing the current position and orientation of the robot tool flange centre point. The robot tool flange coordinate system may be a Cartesian coordinate system. The robot tool flange coordinate system does not have a fixed location and is moved with the robot arm. The robot tool flange coordinate system is used as an origin for coordinate systems which describe end effectors / tools mounted on the flange.

[0064] According to an embodiment, said fixed point relative to said robot tool flange is located in the origin of a tool coordinate system.

[0065] By a “tool coordinate system” may be understood a coordinate system located at the working point of the mounted tool or end effector. The tool coordinate system may be a Cartesian coordinate system. The origin of the tool coordinate system is also commonly referred to as the tool centre point (TCP).

[0066] Having the fixed point relative to the robot tool flange located in an origin of a coordinate system which is centred at the robot tool flange or at the tool centre point is advantageous in that torque and / or forces are controlled close to (or directly in) a point of particular interest with respect to use of the end effector.

[0067] According to an embodiment, said fixed point relative to said robot tool flange is centred in a freely movable coordinate system.

[0068] The fixed point relative to the robot tool flange may be centred in a coordinate system such as a robot tool flange coordinate system and a tool coordinate system. According to the present embodiment, the coordinate system may be a freely movable coordinate system. By freely movable may be understood that the coordinate system is considered, from a control point of view, to be able to move freely in space without being subject to external contact forces. In other words, the control of the robot armmay be entirely deterministic and not based on measurements of e.g., contact forces between the robot arm and external objects.

[0069] According to an embodiment, said step of calculating one or more wrench contributions is performed on the basis of a dynamic model executed by a robot controller.

[0070] In the context of the present disclosure, a “dynamic model” may be understood as a computer-implemented model which is capable of modelling the dynamic behaviour of the robot arm. In particular, the dynamic model defines a relationship between the forces acting on the robot arm and the resulting accelerations of the robot arm. Thus, the term “dynamic” refers to the model’s capability of modelling motional behaviour of the robot arm. The dynamic model may also comprise a kinematic model of the robot arm defining geometric relationships between different parts of the robot arm such as length and size of the robot joints and links and can for instance be described by Denavit-Hartenberg parameters or the like. The dynamic model makes it possible for the robot controller to calculate which torques the joint motors shall provide to each of the joints to make the robot arm perform a desired movement, and / or to be arranged in a static posture.

[0071] As the dynamic model may have a complete overview of the torques provided by every single robot joint of the robot arm, the dynamic model is also capable of calculating the resulting forces / torques arising in various points on the robot arm, such as at the robot tool flange, and in particular at the fixed point relative to the robot tool flange.

[0072] According to an embodiment, said threshold wrench is established on the basis of input provided by end effector software executed on a robot controller arranged to control operation of said robot arm.

[0073] The end effector may have associated therewith end effector software executed on a robot controller together with a robot control program. The end effector software may be software specifically arranged for operating the end effector, and according to the present embodiment, the end effector software may provide input onthe basis of which the threshold wrench (e.g., a threshold torque and / or threshold force) may be established. The end effector software may provide input in the form of end effector specifications to a robot control program controlling operation of the robot arm. The input provided by the end effector software may comprise data representative of torque and / or force thresholds, e.g., threshold wrench, or at least data which may be used to calculate such thresholds. Having end effector software providing such input is advantageous in that the step of establishing the threshold may be carried out automatically, and the risk of a user providing wrong threshold values may be reduced.

[0074] According to an embodiment, said threshold wrench is established during execution of a robot control program on a robot controller arranged to control operation of said robot arm.

[0075] In the context of the present invention, a “robot control program” may be understood as any computer-implemented control program which is capable of being executed by a robot controller with the purpose of controlling operation of a robot arm, including operation of individual robot joints of the robot arm. The robot control program may comprise operating instructions which when executed by a robot controller ensures that the robot arm moves according to target motions defined by the operating instructions. According to the present embodiment, the threshold wrench (e.g., a threshold torque and / or threshold force) may be established during execution of robot control program executed on a robot controller arranged to control operation of the robot arm. By establishing the threshold(s) during execution of a robot control program, i.e., during runtime, it may be possible to dynamically adjust the threshold(s) according to the execution of the robot control program.

[0076] According to an embodiment, said available wrench is established on the basis of a workpiece being manipulated by said robot arm.

[0077] The available wrench (e.g., available torque and / or available force) may be established on the basis of the workpiece being manipulated by the robot arm. For example, the available wrench may be established on the basis of specifications of the workpiece, such as size, weight, material type, etc., for example on the basis of a modelof the workpiece, e.g., a 3D model of the workpiece such as a CAD model of the workpiece. Establishing the available wrench on the basis of the workpiece is advantageous in that precise determinations of the thresholds may be obtained.

[0078] According to an embodiment, said threshold wrench is established on the basis of input provided by a user.

[0079] The step of establishing a threshold wrench (e.g., a threshold torque and / or a threshold force) may be performed on the basis of input provided by a user of the robot arm. The input provided by the user may directly indicate the threshold wrench, however the input may also implicitly indicate such threshold. For example, the user may provide input in the form of acceptable accelerations in the fixed point relative to the robot tool flange, and these threshold accelerations may be used to establish the threshold wrench.

[0080] According to an embodiment, said input provided by said user comprises a global threshold setting.

[0081] The input provided by the user may comprise a global threshold setting. By a global threshold setting may be understood a setting relating to a global threshold torque, a global threshold force, or both a global threshold torque and a global threshold force, e.g., a global threshold wrench.

[0082] According to an embodiment, said input is provided via a user interface communicatively associated with a robot controller arranged to control operation of said robot arm.

[0083] The user of the robot arm, such as an integrator, may provide the input to a user interface associated with a robot controller arranged to control operation of the robot arm. The input may be provided in various ways such as via text input, speech input or by providing input via a graphical user interface, such as via selections in a graphical user interface. As an example, a user may provide

[0084] According to an embodiment, said threshold wrench is user-defined.

[0085] The threshold wrench may be defined by a user of the robotic arm, such as an end-user or a robot integrator. By implementing user-defined limits of wrench is achieved a method which may be better customized with respect to a specific robot task to be carried out. For example, a user may have knowledge about the workpiece being handled which is not as such known in the control of the robotic arm. It may be that the workpiece is fragile and can only tolerate a particular acceleration, or that the workpiece is difficult for the holding arrangement to hold on to, and this may be accounted for by the user defining the threshold wrench.

[0086] By implementing user-defined limits of wrench is achieved a method of manipulating a workpiece which may be better customized with respect to a specific robot task to be carried out.

[0087] According to an embodiment, the user interface may be a graphical user interface, such as a graphical user interface of a teach pendant.

[0088] According to an embodiment, said method is carried out throughout a plurality of subsequent control cycles, each control cycle of said plurality of subsequent control cycles executing said steps of calculating one or more wrench contributions (e.g. one or more torque contributions and / or one or more force contributions) in said at least one fixed point, calculating an available wrench (e.g., a available torque and / or force) to be applied in said at least one fixed point relative to said robot tool flange, and moving said end effector by controlling said robot arm.

[0089] The steps of calculating one or more wrench contributions, calculating an available wrench to be applied in said at least one fixed point relative to said robot tool flange, and manipulating said workpiece by controlling said robot arm may be carried out in a control cycle. The method may be carried out throughout a plurality of such control cycles, which is advantageous in that the control of the robot arm can be carried out in an iterative way. Such iterative control of the robot arm obviously opens up the possibility of breaking down the controlling of the robot arm into small steps, and the more steps (or control cycles) per time, the finer control of the robot arm may be possible to achieve. The above-mentioned steps of the control cycle are only to beconsidered as a non-exhaustive list of possible steps, and indeed, the control cycle may include additional steps such as establishing the threshold wrench. The control cycle may be carried out by a robot controller controlling the robot arm.

[0090] According to an embodiment, said method is executed using a robot controller arranged to control operation of said robot arm.

[0091] The present method, such as all steps of the present method, may be carried out using a robot controller arranged to control operation of the robot arm. In the context of the present disclosure, a “robot controller” may be understood as any kind of data processing arrangement capable of executing a robot control program. The robot controller may be a discrete data processor, or the robot controller may be a distributed data processing system. The robot controller may be arranged in the robot arm, or it may be arranged externally to the robot arm. In any case, the robot controller is communicatively associated with the robot arm whereby the robot controller may provide control signals to the robot arm such that the robot arm is controlled in accordance with any given robot control program executed by the robot controller.

[0092] According to an embodiment, said calculating an available wrench is based on a deterministic calculation.

[0093] The calculation of the available wrench (e.g., available torque and / or available force) may be carried out in a deterministic way in the sense that no sensor feedback is provided by sensors located at the robot tool flange to directly ascertain the torques / forces in the fixed point relative to the robot tool flange. Instead, the torques / forces acting in the fixed point relative to the robot tool flange may be determined by modelling / simulating the behaviour of the robot arm, such as by use of a dynamic model. This modelling, however, may not necessarily exclude that sensor feedback from other parts of the robot arm (or from a movable support structure) are used as parameters in the modelling of the behaviour of the robot arm. For example, sensor feedback from an IMU may be used as parameters in a dynamic model to improve the model’s estimation of forces / torques at the fixed point relative to the robot tool flange.

[0094] According to an embodiment, said step of moving said end effector by controlling said robot arm comprises actuating one or more robot arm joints of said robot arm.

[0095] The robot arm may be controlled by actuating one or more robot joints of the robot arm. The robot joints may be controlled in such a way that a resulting wrench (e.g., resulting force and / or torque) in the fixed point relative to the robot tool flange does not exceed the available wrench (e.g., available torque and / or available force).

[0096] According to an embodiment, said method is carried out for a plurality of fixed points relative to said robot tool flange.

[0097] The method may be carried out in respect of a plurality of fixed points relative to the robot tool flange. This may for example be advantageous when a holding arrangement comprises multiple vacuum grippers, or the holding arrangement comprises a multiple-finger gripper having a plurality of contact points with a workpiece being manipulated. The method according to the present disclosure may thus be carried out in respect of every single fixed point of the plurality of fixed points.

[0098] According to an embodiment, said method comprises a step of computing a robotic arm trajectory on the basis of said threshold wrench, and wherein said step of manipulating said workpiece comprises controlling said robotic arm according to said computed robotic arm trajectory.

[0099] As a robotic arm is moving about in space, for example by manipulating a workpiece, the robotic arm is performing a number of carefully orchestrated movements involving rotations of one or more robot joints of the robotic arm. The movements of the robotic arm may be described by a “robotic arm trajectory”. A robotic arm trajectory may describe movements of parts of a robotic arm or movements of fixed points attributed to the operation of the robotic arm such as a tool center point (TCP). Such movements may be described in a cartesian coordinate system. Thus, a robotic arm trajectory may describe paths, in a cartesian coordinate system, along which parts of the robotic arm, or fixed points attributed to the operation of the robotic arm, are moved. A robotic arm trajectory may thus be described by coordinates (x-, y-, and z-coordinates) in cartesian space. The number of coordinates describing a robotic arm trajectory may vary from a few coordinates (effectively describing the robotic arm trajectory by a sequence of waypoints) to a higher number of coordinates whereby a more detailed path is described. Alternatively, such coordinates may be expressed in a so-called joint space by coordinates designating joint angles of the robotic arm. Hence a spatial position of a part of a robotic arm (or point such as a TCP) can be described by one set of coordinates in cartesian space which (for most positions) can be reached / achieved with a plurality of different combinations of robot joint angles in joint space. In addition to describing paths in either cartesian space or joint space, a robotic arm trajectory may also prescribe speed of movement along the paths.

[0100] The method may comprise a step of computing a robotic arm trajectory on the basis of the threshold wrench. Such a computation may be performed using a dynamic model of the robotic arm, whereby one or more wrench contributions arising from movement of the robotic arm along the robotic arm trajectory may be calculated in advance and evaluated in light of the threshold wrench. This is advantageous in that a computed robotic arm trajectory is defined within the limits imposed by the threshold wrench, so that once the workpiece is manipulated by the robotic arm by movements of the robotic arm according to the robotic arm trajectory, a wrench resulting from the movement of the robotic arm is always within the available wrench.

[0101] In addition to being based on the threshold wrench, the robotic arm trajectory may be based on a robot control program that is already defined. The robotic arm trajectory may thus represent a scaled movement of a trajectory already defined in the robot control program which is scaled so that the speed of the trajectory is changed to uphold the limits given by the threshold wrench, or the robotic arm trajectory may even be changed with respect to its path. For example, the robotic arm trajectory may define the same start- and end-coordinates of an already defined trajectory of the robot control program, however intermediate coordinates / waypoints of the already defined trajectory may be changed, for example to soften the motion profile to uphold the limits given by the threshold wrench.

[0102] Another aspect of the invention relates to a robotic arm system comprising:- a robotic arm comprising a plurality of robot joints connecting a robot base and a robot tool flange,- an end effector attached to said robot tool flange, said end effector comprising a holding arrangement arranged to hold a workpiece, and- a robot controller, wherein said robot controller is configured to perform the steps of- establishing a threshold wrench comprising thresholds for a subset of components of wrench in at least one fixed point relative to said robot tool flange,- calculating one or more wrench contributions in said at least one fixed point,- calculating an available wrench to be applied in said at least one fixed point relative to said robot tool flange by said robotic arm, wherein said available wrench is a difference between said threshold wrench and a sum of said one or more wrench contributions; and- manipulating said workpiece by controlling said robotic arm such that a wrench in said at least one fixed point resulting from a change of state of said robotic arm is at or below said available wrench.

[0103] Thereby is provided an advantageous robotic arm system. As the robot controller of the system is arranged to carry out the steps of the method of the present disclosure, the system is advantageous for the same reasons described in relation to the method.

[0104] According to an embodiment, said end effector comprises a holding arrangement.

[0105] According to an embodiment, said robot arm system is configured to implement a method disclosed in any of the paragraphs

[0008] -

[0101] . According toan embodiment, said robot controller is configured to carry out the method disclosed in any of the paragraphs

[0008] -

[0101] .

[0106] Another aspect of the invention relates to a computer program comprising instructions which, when executed by a robot controller of a robotic arm system, causes the robot controller to carry out the method according to any of the preceding paragraphs

[0008] -

[0101] ,

[0107] The computer program, when executed by a robot controller of a robotic arm system, causes the robot controller to carry out the steps of the method of the present disclosure. Accordingly, the computer program is advantageous for at least the same reasons described in relation to the method.

[0108] It should be noted that throughout the present disclosure it is stated that a threshold force and / or a threshold torque is established. This may be construed as establishing thresholds for a subset of components of wrench. Also, throughout the present disclosure it is stated that one or more torque contributions and / or one or more force contributions are calculated. This may be construed as establishing one or more wrench contributions. Likewise, throughout the present disclosure it is stated that an available torque and / or force is calculated as a difference between a threshold torque and / or force and a sum of one or more torque contributions and / or one or more force contributions. This may be construed as calculating an available wrench as a difference between the threshold wrench and a sum of the one or more wrench contributions.The drawings

[0109] For a more complete understanding of this disclosure, reference is now made to the following brief description, taken in connection with the accompanying drawings and detailed description, wherein like reference numerals represent like parts. The drawings illustrate embodiments of the invention and elements of different drawings can be combined within the scope of the invention: fig. 1 illustrates a robotic arm system 100 as known in the prior art, fig. 2 illustrates a schematic cross-sectional view of a robot joint, fig. 3 illustrates a structural diagram of a robotic arm, figs. 4a-b illustrate a manipulation of a workpiece according to an embodiment of the invention, fig. 5 illustrates steps of a method according to an embodiment of the invention, fig. 6 illustrates a fixed point relative to a robot tool flange as used in calculation of available force and / or torque according to embodiments of the invention, fig. 7 illustrates diagrams representing calculations of available force and torque according to embodiments of the invention, figs. 8a-b illustrate alternative end effectors usable for manipulation of workpieces, fig. 8c illustrates yet another end effector, fig. 9 illustrates a robot system comprising a robot arm attached to a movable support structure, and fig. lOa-b illustrates a computed robotic arm trajectory according to an embodiment of the invention.Detailed description

[0110] The present invention is described in view of exemplary embodiments only intended to illustrate the principles and implementation of the present invention. The skilled person will be able to provide several embodiments within the scope of the claims which may not be directly illustrated in the figures or directly described below.

[0111] Fig. 1 illustrates a robotic arm system 100 as known in the prior art. The robotic arm system comprises at least one robotic arm 101 and at least one robot controller 106 configured to control the robotic arm. The robotic arm 101 comprises a plurality of robot joints 102a, 102b, 102c, 102d, 102e, 102f connecting a robot base 103 and a robot tool flange 104. A base joint 102a is configured to rotate the robotic arm around a base axis 105a (illustrated by a dashed dotted line); a shoulder joint 102b is configured to rotate the robotic arm around a shoulder axis 105b (illustrated by a dashed dotted line); an elbow joint 102c is configured to rotate the robotic arm around an elbow axis 105c (illustrated by a dashed dotted line); a first wrist joint 102d is configured to rotate the robotic arm around a first wrist axis 105d (illustrated by a dashed dotted line) and a second wrist joint 102e is configured to rotate the robotic arm around a second wrist axis 105e (illustrated by a dashed dotted line). Robot joint 102f is a robot tool joint comprising the robot tool flange 104, which is rotatable around a tool axis 105f (illustrated by a dashed dotted line). The illustrated robotic arm is thus a six-axis robotic arm with six degrees of freedom with six rotational robot joints, however it is noticed that the present invention can be utilized in robotic arms comprising less or more robot joints and that some of the robot joints may be provided as prismatic robot joint translating two or more robot parts in relation to each other.

[0112] The robot joints comprise a robot joint housing and an output flange rotatable or translatable in relation to the robot joint housing and the output flange is connected to a neighbour robot joint either directly or via an arm section as known in the art. The robot joint comprises a joint motor configured to rotate or translate the output flange in relation to the robot joint housing, for instance via a gearing or directly connected to the motor shaft. The robot joint housing can for instance be formed as a joint housing and the joint motor can be arranged inside the joint housing and the output flange canextend out of the joint housing. Additionally, the robot joints can comprise at least one joint sensor providing a sensor signal for instance indicative of at least one of the following parameters: an angular and / or linear position of the output flange, an angular and / or linear position of the motor shaft of the joint motor, a motor current of the joint motor or an external force and / or torque trying to rotate the output flange or motor shaft. For instance, the angular position of the output flange can be indicated by an output encoder such as optical encoders, magnetic encoders which can indicate the angular position of the output flange in relation to the robot joint. Similarly, the angular position of the joint motor shaft can be provided by an input encoder such as optical encoders, magnetic encoders which can indicate the angular position of the motor shaft in relation to the robot joint. It is noted that both output encoders indicating the angular position of the output flange and input encoders indicating the angular position of the motor shaft can be provided, which in embodiments where a gearing has been provided makes it possible to determine a relationship between the input and output side of the gearing.

[0113] The robot system may also comprise an end effector. That is, the pivot of the robotic arm, on which a robot tool may be attached (not illustrated). It is to be understood that the robot tool can be any kind of end effectors such as grippers, vacuum grippers, magnetic grippers, screwing machines, welding equipment, gluing equipment, dispensing systems, painting equipment, visual systems, cameras etc.

[0114] The robot system comprises at least one robot controller 106 configured to control the robotic arm 101. The robot controller is configured to control the motions of the parts of the robotic arm and the robot joints for instance by controlling the motor torque or current provided to the joint motors based on a dynamic model of the robotic arm, the direction of gravity acting and the joint sensor signals. The controller can be provided as an external device as illustrated in fig. 1 or as a device integrated into the robotic arm or as a combination thereof. External devices may also include conveyor systems, welding systems, safety systems, etc. having individual controllers and sensors that may communicate with the robot controller.

[0115] The robot system can be controlled by a robot controller according to a robot program, where the robot program specifies a number of robot tasks and an order of execution of the robot tasks where the robot tasks define a number of actions that the robot system shall perform.

[0116] The robot controller can comprise an interface device 107 enabling a user to control and program the robot system. The interface device can for instance be provided as a teach pendant as known from the field of industrial robots which can communicate with the controller via wired or wireless communication protocols. The interface device can for instanced comprise a display 108 and a number of input devices 109 such as buttons, sliders, touchpads, joysticks, track balls, gesture recognition devices, keyboards, microphones etc. The display may be provided as a touch screen acting both as display and input device. The interface device can also be provided as an external device configured to communicate with the robot controller, for instance in the form of smart phones, tablets, PCs, laptops etc.

[0117] Fig. 2 illustrates a schematic cross-sectional view of a robot joint 203. The schematic robot joint 203 can reflect any of the robot joints 102a-102f of the robotic arm 101 of fig. 1. The robot joint 203 comprises a joint motor 209 having a motor axle 225. The motor axle 225 is configured to rotate an output axle 227 via a robot joint gear 229. The output axle 227 rotates around an axis of rotation 211 (illustrated by a dot-dash line) and can be connected to a neighbour part (not shown) of the robot. Consequently, the neighbour part of the robot can rotate in relation to the robot joint 203 around the axis of rotation 211 as illustrated by rotation arrow 213. In the illustrated embodiment the robot joint comprises an output flange 231 connected to the output axle and the output flange can be connected to a neighbour robot joint or an arm section of the robotic arm. However, the output axle can be directly connected to the neighbour part of the robot or by any other way enabling rotation of the neighbour part of the robot by the output axle.

[0118] The joint motor is configured to rotate the motor axle by applying a motor torque to the motor axle as known in the art of motor control, for instance based on a motor control signal 233 indicating the torque, Tcontroi, motor, applied by said motor axle.

[0119] The robot joint gear 229 forms a transmission system configured to transmit the torque provided by the motor axle to the output axle for instance to provide a gear ratio between the motor axle and the output axle. The robot joint gear can for instance be provided as spur gears, planetary gears, bevel gears, worm gears, strain wave gears or other kind of transmission systems.

[0120] The robot joint comprises at least one joint sensor providing a sensor signal indicative of at least the angular position, q, of the output axle and an angular position, 0, of the motor axle. For instance, the angular position of the output axle can be indicated by an output encoder 235, which provides an output encoder signal 236 indicating the angular position of the output axle in relation to the robot joint. Similarly, the angular position of the motor axle can be provided by an input encoder 237 providing an input encoder signal 238 indicating the angular position of the motor axle in relation to the robot joint. The output encoder 235 and the input encoder 237 can be any encoder capable of indicating the angular position, velocity and / or acceleration of respectively the output axle and the motor axle. The output / input encoders can for instance be configured to obtain the position of the respective axle based on the position of an encoder wheel 239 arranged on the respective axle. The encoder wheels can for instance be optical or magnetic encoder wheels as known in the art of rotary encoders. The output encoder indicating the angular position of the output axle and the input encoder indicating the angular position of the motor axle makes it possible to determine a relationship between the input side (motor axle) and the output side (output axle) of the robot joint gear.

[0121] The robot joints may optionally comprise one or more motor torque sensors 241 providing a motor torque signal 242 indicating the torque provided by the motor axle. For instance, the motor torque sensor can be provided as current sensors obtaining the current through the coils of the joint motor whereby the motor torque can be determined as known in the art of motor control. For instance, in connection with a multiphase motor, a plurality of current sensors can be provided in order to obtain the current through each of the phases of the multiphase motor and the motor torque can then be obtained based on the quadrature current obtained from the phasecurrents through a Park Transformation. Alternatively, the motor torque can be obtained using other kind of sensors for instance force-torque sensors, strain gauges etc.

[0122] Fig. 3 illustrates a simplified structural diagram of a robotic arm comprising a plurality of n number of robot joints 303i, 303i+l . . . ,303n. The robotic arm can for instance be embodied like the robotic arm illustrated in fig. 1 with a plurality of interconnected robot joints. It is to be understood that some of the robot joints and robot links between the robot joints have been omitted for sake of simplicity. The robot controller is connected to an interface device comprising a display 119 and a number of input devices 121, as described in connection with fig. l. The robot controller 315 comprises a processor 343, a memory 345 and at least one input and / or output port enabling communication with at least one peripheral device.

[0123] The robot controller is configured to control the joint motors of the robot joints by providing motor control signals to the joint motors. The motor control signals 333i, 333i+1....333n are indicative of the motor torque Tcontroi, motor, i, Tcontroi, motor, i+i, and Tcontroi, motor, n, that each joint motor shall provide by the motor axles. The motor control signals can indicate the desired motor torque, the desired torque provided by the output axle, the currents provided by the motor coils or any other signal from which the motor torque can be obtained. The motor torque signals can be sent to a motor control driver (not shown) configured to drive the motor joint with the motor current resulting in the desired motor torque. The robot controller is configured to determine the motor torque based on a dynamic model of the robotic arm as known in the prior art. The dynamic model makes it possible for the controller to calculate which torque the joint motors shall provide to each of the joint motors to make the robotic arm perform a desired movement and / or be arranged in a static posture. The dynamic model of the robotic arm can be stored in the memory 345.

[0124] The robot joints comprise an output encoder providing output encoder signals 336i, 336i+l . . ,336n indicating the angular position q.Lq,i+i...q,nof the output axle in relation to the respective robot joint; an input encoder providing an input encoder signal 338i, 338i+l . . ,338n indicating the angular position of the motor axle 0,i,0,i+i . . .0,n in relation to the respective robot joint and a motor torque sensor providing a motor torque signal 342i,342i+l . . ,342n indicating the torque Tactually, motor,!, Tactually, motor, i+i- Tactually, motor, n, provided by the motor axle of the respective robot joint. The controller is configured to receive the output encoder signal 336i, 336i+l . . ,336n, the input encoder signal 338i, 338i+l . . ,338n and the motor torque signals 342i,342i+1...342n.

[0125] By controlling joint motors of the robot joints, the robotic arm 101 may be controlled such that the robot tool flange 104 is moved around in space. In most robotic arm applications, an end effector is attached to the robot tool flange 104. In the embodiment shown in figs. 4a-b is shown a robotic arm 101 with an end effector comprising a holding arrangement attached to the robot tool flange 104. By virtue of the robotic arm comprising a holding arrangement in the form of a vacuum gripper 402, the robotic arm 101 is able to manipulate a workpiece 401 by moving its end effector. Figs. 4a-b illustrate a manipulation of a workpiece according to an embodiment. The particular manipulation illustrated in figs. 4a-4b is a pick-up and placing task where a robotic arm 101 picks up a workpiece 401 from one position and places the workpiece 401 in another position. In fig. 4a, the robotic arm 101 picks up a workpiece 401, which in the present example is a box resting on a roller conveyor 403a. In order to pick up the workpiece 401, the robotic arm 101 comprises a vacuum gripper 402 attached to the robot tool flange 104. The vacuum gripper 402 grips the workpiece by evacuating air from the space within the suction cup, thereby creating a partial vacuum at a pressure below ambient air pressure. Once, air is evacuated from inside the suction cup of the vacuum gripper 402, the workpiece is effectively sucked onto the vacuum gripper 402, and the robotic arm 101 can move the workpiece 401 around by actuating its robot joint(s). Fig. 4b illustrates the same robotic arm 101 and the same workpiece 401 at a later stage in the manipulation of the workpiece 401, wherein the workpiece 401 is being placed onto another roller conveyor 403b. By refilling the space within the suction cup with air, the suction power is decreased and the vacuum gripper 402 releases the workpiece 401.

[0126] Although the manipulation of the workpiece 401 as seen in figs. 4a-b appear simple at first sight, there are critical factors involved in the success of the manipulation which, when not properly taken into account, may cause the robotic arm 101 to drop the workpiece 401 during the manipulation. These critical factors are a focus of the present invention and will be described in detail in the following.

[0127] Taking the vacuum gripper 401 as an example, there is a limit on how much holding force the vacuum gripper may provide. That limit may depend on factors such as the type of vacuum gripper, the dimensions of the vacuum gripper, the coefficient of friction (how well a given suction cup grips and seals against a workpiece surface), but also on other factors such as safety factors chosen e.g., by a robot integrator. Clearly, the workpiece being manipulated should have a sufficiently low mass that the weight of the workpiece does not exceed the holding force of the vacuum gripper. However, this is merely a static consideration, and the situation changes once the workpiece 401 is manipulated by the robotic arm 101 (e.g., being moved by the robotic arm). For example, if the robotic arm 101 is lifting up the workpiece (see fig. 4a), the robotic arm also imposes an upwards force opposing the vacuum of the vacuum gripper. In such a situation, the required holding force provided by the vacuum gripper must be able to oppose the weight of the workpiece and the lifting force provided by the robotic arm in order to successfully hold onto the workpiece. Mathematically, this may be described as:where Freqis the required holding force, m is the mass of the workpiece, g is the gravitational acceleration, a is the acceleration of the system, and F is a safety factor, for example in the range of 1.5-2.5.

[0128] Depending on the acceleration imposed by the movement of the robotic arm, the required holding force of the vacuum gripper may exceed the actual limits of holding force of the gripper. In such a situation, the vacuum gripper would simply lose grip of the workpiece, causing the workpiece to fall to the ground which may cause damage to some workpieces. Lifting of the workpiece is not the only manoeuvre of therobotic arm which may break the seal of the vacuum gripper. Other manoeuvres such as a twisting motion of the vacuum gripper may also cause the vacuum of the vacuum gripper to break causing the gripper to lose the workpiece. Accordingly, twisting forces, i.e., torques, may also be relevant to the stability of the workpiece. The force(s) and torque(s) to consider obviously depends on the motion of the robotic arm.

[0129] The present invention may circumvent such problems of dropping workpieces by factoring in the wrench (i.e., forces and / or torques) involved in the manipulation of the workpiece. Fig. 5 illustrates steps of a method according to an embodiment, where such forces and / or torques are considered. The method relates to manipulation of a workpiece using a robotic arm 101 (for example robotic arm 101 seen throughout figs. l-4b) comprising a plurality of robot joints 102a-f connecting a robot base 103 and a robot tool flange 104. The method comprises method steps S1-S4 as seen in fig. 5.

[0130] In the first step SI, a threshold wrench comprising thresholds for torque and / or force is established in at least one fixed point relative to the robot tool flange 104. Depending on the specific movement of the end effector, the first step SI may involve establishing a threshold torque, establishing a threshold force, or establishing both a threshold torque and a threshold force as components of wrench. For example, in the specific application of the manipulation seen in figs. 4a-b, the manipulation only involves manipulations of the workpiece 401 where the workpiece is translated in space, and consequently no twisting forces are imposed at the interface between the vacuum gripper 402 and the workpiece 401. The threshold force in this situation is the holding force limit of the vacuum gripper 402, i.e., the maximum force the vacuum of the vacuum gripper can withstand before the vacuum seal may break, or at least before the risk of failure becomes non-negligible. The threshold force in this embodiment is established on the basis of specifications provided by the manufacturer of the end effector (i.e., the vacuum gripper), and may include a safety factor as described above. According to other embodiments, the threshold force (and / or threshold torque) may be established in other ways, such as on the basis of input provided by a user via a graphical user interface (such as a graphical user interface facilitated by the display 108 as seen in fig. 1).

[0131] In the second step S2, one or more torque contributions and / or one or more force contributions (i.e., one or more wrench contributions) are calculated in the at least one fixed point relative to the robot tool flange 104. Again, considering the specific manipulation in figs. 4a-b, the relevant forces are the gravitational pull on the workload and the lifting force provided by the robotic arm. These forces may be calculated on the basis of the mass of the workpiece and using a dynamic model of the robotic arm respectively. However, it should be noted that other kinds of manipulations may be performed, and therefore it should be noted that other forces and torques may be involved.

[0132] In the third step S3, an available torque and / or an available force (i.e., an available wrench) is calculated in the at least one fixed point relative to the robot tool flange by the robotic arm, wherein the available torque and / or available force is a difference between the threshold torque and / or threshold force and a sum of the one or more torque contributions and the one or more force contributions. Again, considering the specific manipulation in figs. 4a-b, the gravitational pull on the workpiece 401 and the lifting force of provided by the robotic arm are added together to provide a sum of force contributions. Based on this sum and the threshold force, there may be calculated an available force to be applied, as the difference between the threshold force and the sum of force contributions. The available force represents an amount of force which may be applied in the fixed point such that the resulting sum of forces are below the threshold

[0133] In the fourth step S4, the workpiece is manupulated by controlling the robotic arm 101 in such a way that a torque and / or a force (i.e., a wrench) in the at least one fixed point resulting from a change of state of the robotic arm is at or below the available torque and / or the available force. Considering the specific manipulation seen in figs. 4a-b, this may ensure that the workpiece is being handled in such a way that the force threshold is not exceeded, thereby resulting in a safe handling of the workpiece.

[0134] The steps S1-S4 of the method of the present embodiment has been elaborated using the manipulation of the workpiece as seen in figs. 4a-b, however, it should benoted that the method may also advantageously be carried out in respect of more complicated pick-up and placing tasks which may involve additional forces and also torques. Furthermore, the method as described in steps S1-S4 are also useful for completely different kinds of end effector movements or manipulations which are described in relation to figs. 8-9.

[0135] As stated with respect to the method of fig. 5, the method is carried out by considering a specific point of interest referred to as a fixed point relative to the robot tool flange. This specific point will now be explained in the following.

[0136] Fig. 6 illustrates a cutout view of a robotic arm, such as a robotic arm 101 as seen in fig 1. The cutout view shows a robot tool flange 104 of a robotic arm. The robot tool flange 104 makes it possible to attach various robot end effectors to the robotic arm. Examples of end effectors are shown in figs. 8a-c. The robot tool flange 104 is associated with a point 601 which is fixed relative to the robot tool flange, implying that if the robotic arm is moved around in space the fixed point 601 moves together with the robot tool flange. In other words, the fixed point 601 may be regarded as a point fixed in a coordinate system which is moving together with the robot tool flange 601. In the present embodiment, the fixed point 601 is seen as being on the robot tool flange 104, however according to other embodiments the fixed point may be displaced with respect to the robot tool flange (but still moving together with the robot tool flange 104).

[0137] The fixed point 601 represents a point of consideration with respect to the control of the robotic arm. A typical purpose of a robotic arm 101 is to perform manipulation of workpieces. An example of a manipulation of a workpiece is a robot task wherein the robotic arm lifts up a workpiece (or object / item) from one place and places the workpiece in another place using for example a vacuum gripper. Another example of a manipulation of a workpiece is a robot task wherein the robotic arm performs a machining task on a workpiece using its effector, such as by using a welding tool. In either of these examples, the robotic arm includes an end effector attached to the robot tool flange (in these examples a vacuum gripper or a welding tool), and accordingly the robot tool flange is important for the manipulation of theworkpiece. As will be made clear throughout the following disclosure, the fixed point 601 represents a convenient point for the assessment of forces and torques involved in the manipulation of the workpiece.

[0138] As seen in fig. 6, the fixed point 601 is placed in the origin of a Cartesian coordinate system arranged on the robot tool flange 104, with the Z-axis 602 being perpendicular to the robot tool flange 104, and the X-axis 603 and Y-axis 604 spanning a plane parallel to the robot tool flange 104. A coordinate system like the one seen in fig. 6 is commonly referred to as a robot tool flange coordinate system and represents a convenient coordinate system for describing forces and torques involved with manipulation of workpieces using a robotic arm 101. Rotations of the robot tool flange 104 may be described as rotations about any of the three axes 602-604 (see circular arrows around each axis in the figure). Likewise, displacements of the robot tool flange 104 may be described as displacements along any of the three axes 602-604.

[0139] The fixed point 601 relative to the robot tool flange may also, according to other embodiments, be shifted away from the robot tool flange and be located closer to an end effector attached to the robot tool flange. This is illustrated in fig. 7 which illustrates the end effector (vacuum gripper 402) of fig. 4. As seen in fig. 7, the fixed point 601 relative to the robot tool flange 104 is shifted away from the robot tool flange 104 in a direction perpendicular to the robot tool flange. In this example, the fixed point 601 is shifted to a point commonly referred to as a tool centre point (TCP) which is a point of a robot’s tool (or end effector) - in this case a point associated with the vacuum gripper 402. The fixed point 601 relative to the robot tool flange is now located in the origin of a tool coordinate system, which in this example is a Cartesian coordinate system represented by Z-axis 602 pointing away from the vacuum gripper 402, and the X-axis and Y-axis spanning a plane which is perpendicular to the Z-axis.

[0140] When the vacuum gripper 402 is holding onto a workpiece 401 (see fig. 4) and manipulating the workpiece 401 forces are in play such as a gravitational force and a lifting force provided by the robotic arm 101 causing an upwards acceleration of the vacuum gripper 402. In the present context, these forces may be referred to as force contributions, and these force contributions are evaluated in the fixed point 601. In theleft part of fig. 7, these force contributions are illustrated by the first force contribution FC1 arising due to the gravitational forces acting on the workpiece 401 being manipulated, and the second force contribution FC2 arising due to the robotic arm lifting the vacuum gripper 402 and workpiece 401. The leftmost diagram illustrating these force contributions, also illustrates a threshold force TF. In this situation, and as described in relation to fig. 4, the threshold force TF is a limit of the holding force of the vacuum gripper. In accordance with the embodiment of fig. 5, the discrepancy between the sum of the first force contribution FC1 and the second force contribution FC2 and the threshold force TF is the available force AF. Clearly, the leftmost diagram applies in rather simple manipulation of workpieces, however more complicated manipulations may also be performed within the scope of the appended claims. For example, the robotic arm may rotate the vacuum gripper by applying torque which may be represented as a torque contribution in the fixed point 601, and other torques may also be involved in the manipulation of the workpiece. For example, the workpiece 401 may have an uneven mass distribution which may induce torque on the vacuum gripper 402 which may also be represented as a torque contribution in the fixed point 601. These torque contributions are represented in the rightmost diagram of fig. 7, which illustrates a first torque contribution TCI arising due to a movement of robot joints of the robotic arm, and a second torque contribution TC2 arising due to the workpiece 401 having an uneven mass distribution. In accordance with the embodiment of fig. 5, the discrepancy between the sum of the first torque contribution TCI and the second torque contribution TC2 and the threshold torque TT is the available torque AT. It should be noted that some manipulations of a workpiece may only involve an evaluation of forces in the fixed point 601, some manipulations may only involve an evaluation of torques, and other manipulations may involve evaluation of both force(s) and torque(s).

[0141] The embodiments described until now have all been focused on a vacuum gripper 401 as end effector, however the method as described in relation to fig. 5 may also be carried out using other types of end effectors, and in the following disclosure, other kinds of end effectors will be described as non-limiting examples.

[0142] Figs. 8a-c illustrate different kinds of end effectors used in robotic arm systems, and methods according to embodiments of the invention.

[0143] Fig. 8a illustrates an end effector in the form of a gripper 801 comprising two gripper teeth 802 arranged to be pressed together around a workpiece (not shown in fig. 8a) to hold on to the workpiece for the purpose of manipulation of the workpiece. For example, the embodiment shown with respect to figs. 4a-b can be modified to replace the vacuum gripper 402 with the gripper 801 as seen in fig. 8a, and a similar type of manipulation of a workpiece may be performed (i.e., a pick-up and placing task) using the gripper 801 instead. Accordingly, the method disclosed in the embodiment of fig. 5 may equally be carried out using a robot system 100 comprising the gripper 801 as end effector.

[0144] As stated previously, movements of an end effector may result in manipulations of a workpiece. The embodiments of fig. 4-b and fig, 8a have illustrated manipulations of workpieces using holding arrangements (a vacuum gripper and a gripper comprising gripper teeth) which involve movements of a workpiece. Another type of manipulation of a workpiece is where the end effector is a tool arranged to perform modifications of a workpiece. Such a manipulation of a workpiece is illustrated in the fig. 8b.

[0145] Fig. 8b, illustrates a different end effector, namely an end effector in the form of a welding tool 803. Mounting a welding tool 803 to the robot tool flange 104 allows the robotic arm 101 to perform welding tasks. In this situation the workpiece being manipulated is an object which has to undergo a welding operation. As seen in the figure, the fixed point 601 relative to the robot tool flange 104 is a tool center point (TCP) of the welding tool 803. The method of manipulating a workpiece as described in relation to fig. 5 can also be carried in respect of a robotic arm 101 comprising such a welding tool 803, and it allows for a precise control of the welding tool 803, which may reduce the risk of damaging fragile workpieces being welded, reduce the risk of welding in the wrong places, reduce the risk of damaging the welding tool during operation, or improve the quality of the welding.

[0146] In yet another example as seen in fig. 8c, the end effector is a camera-based inspection tool comprising a camera 804. The inspection tool may be used to inspect workpieces, for example to inspect a welding or a manufactured part in an industrial environment. According to an alternative example, the camera 804 may be a general- purpose camera or video camera for creating photographic content. The method of the present invention, and as exemplified in fig. 5, is particular advantageous in the control of end effectors like this, as the method may reduce oscillations / vibrations in the video feed generated by the camera 804. The oscillations in a video feed may be the result of oscillations of the camera caused by movements of the robotic arm, however by moving the end effector of the robotic arm 101 in accordance with the method of fig. 5 these oscillations may be reduced owing to the application of torque and / or force thresholds which limits the accelerations occurring at the end effector. The camera is merely an example of an inspection end effector, and it is to be understood that other kind of inspection systems may be provided, such as optical based sensing systems, acoustic sensing systems, lidar sensors, etc.

[0147] Fig. 9 illustrates a robot system 100 according to an embodiment of the invention. As seen in the figure, the robot system 100 comprises a robotic arm 101 comprising an end effector, in the form of a vacuum gripper 402, holding a workpiece 401. The robotic arm 101 is mounted to movable support structure 901 in the form of a mobile robot, and as seen in the figure, the robot system 100 comprises a robot controller 106 communicatively associated with an interface device 107 in the form of a teach pendant. The robot controller 106 is arranged to carry out the steps of the method described in relation to fig. 5.

[0148] Movements of the movable support structure 901, such as accelerations, decelerations, and turns may impose force(s) and / or torque(s) in the fixed point relative to the robot tool flange, and in this embodiment, these are factored in as force contributions and torque contributions in the calculation of available force AF and available torque AT in the method of manipulating a workpiece 401 as described in the embodiment of fig. 5. The force and torque contributions arising from movements of the movable support structure 901 are calculated using an inertial measuring unit(IMU) arranged in the movable support structure and a dynamic model of the robotic arm 101.

[0149] Fig. 10a schematically illustrates a way of manipulating a workpiece according to an embodiment of the invention. In the figure is seen a graph representing a movement of a robot joint, for example a movement of the base joint 102a performing a rotation of the robotic arm 101 as part of the manipulation of the workpiece 401 depicted in fig. 4. The manipulation depicted in fig. 4 is programmed in a robot control program instructing the robot joints 102a-f to rotate at various speeds and time durations to perform the manipulation. These instructions form part of a so- called robotic arm trajectory. The curve 1001 depicted in the graph of fig. 10a illustrates an initial robotic arm trajectory 1001 from the perspective of base joint 102a, and it is seen how the rotational speed (q’) of the joint changes over time (t). At time Tl, the joint starts rotating and it rotational speed increases until time T2, where the rotational speed levels of until time T3, where the rotational speed is constant. At time T5, the rotational speed starts to decrease, and at time T6 the rotational speed decreases at a constant rate until the rotation of the joint comes to an end at time T7.

[0150] However, prior to execution of the robot control program, a user of robotic arm 101 provided a user-defined threshold wrench. An evaluation of the robot control program, based on a dynamic model of the robotic arm, performed by a robot controller, reveals that the initial robotic arm trajectory cannot be carried out without a resulting wrench exceeding the available wrench (calculated on the basis of the user- defined thresholds wrench). In order to ensure that robot control program can be carried out without violating the user-defined threshold wrench, the robot controller computes a new robotic arm trajectory. Figure. 10a illustrates this computed robotic arm trajectory 1002 - seem in fig. 10a from the viewpoint of base joint 102a.

[0151] The computed robotic arm trajectory 1002 also initiates at time Tl like the initial robotic arm trajectory 1001, however the acceleration of the joint is slower, and at time T3, the rotational speed q’ of the robot joint 102a levels of and reaches, at time T4, a constant rotational speed. The constant rotational speed / maximum speed of the joint in the computed robotic arm trajectory 1002 is lower than the maximum speed ofthe initial robotic arm trajectory. At time T8, the computed robotic arm trajectory 1002 begins to slow down the rotational speed, at time T9 the computed robotic arm trajectory 1002 reduces the rotational speed at a constant rate before terminating the rotation at time T10.

[0152] Fig. 10b also schematically illustrates the same initial robotic arm trajectory 1001 and the same computed robotic arm trajectory 1002 as in fig. 10a, however instead of depicting the rotational speed (q”) of the joint as a function of time (t), the graph in fig. 10b illustrates joint acceleration (q”) as a function of time (t). Comparing the initial robotic arm trajectory 1001 and the computed robotic arm trajectory from this acceleration point of view, it is seen that the base joint 102a is accelerating at a lower rate in the beginning of the computed trajectory 1002 compared to the initial robotic arm trajectory. Likewise, the base joint 102a is accelerating at a lower rate during the end of the computed robotic arm trajectory 1002 compared to the initial robotic arm trajectory 1001. This lower acceleration of the robotic arm joint in the computed robotic arm trajectory 1002 causes smaller wrench contributions, and accordingly, the robotic arm may manipulate the workload in such a way that it is not dropped.

[0153] Figs. lOa-b effectively illustrate how a dynamic scaling of a robotic arm trajectory may be used to reduce accelerations of the robotic arm, and consequently reducing wrench contributions resulting from movement of the robotic arm. According to an embodiment of the invention, the step S4 of the method in fig. 5 is carried out by controlling the robotic arm 101 according to a computed robotic arm trajectory. An example of a computed robotic arm trajectory is seen in figs. lOa-b, however other computed robotic arm trajectories may also be established which trajectories comprises instructions for movement of a plurality of robot joints or which describes motion paths in cartesian space, for example motion paths for a tool center point.

[0154] It should be noted that figs. lOa-b only depict motion of a single robot joint 102a, however it should be understood that the resulting wrench in the fixed point relative to the robot tool flange may be the result of a coordinated movement of multiple robot joints, and therefore it should be understood that a computed roboticarm trajectory may be computed in respect of multiple robot joints of the robotic arm. It should also be noted that in the example provided in figs. lOa-b, the initial robotic arm trajectory 1001 and the computed robotic arm trajectory 1002 are presented in joint space, however, the same robotic arm trajectories may also be represented in cartesian space.

[0155] On a final note, it is emphasized that although a purpose of various embodiments described until now has been to avoid dropping a workpiece being manipulated by a robotic arm, this may not be the only purpose. For example, a workpiece being manipulated in the way shown in fig. 4 may be a very delicate / fragile workpiece which may easily be damaged due to vigorous movements of the robotic arm. In such a situation, the method as described in fig. 5 may still be advantageous to ensure that the forces / accelerations applied in the fixed point are within limits and that the fragile workpiece is not damaged. This may be achieved by imposing a suitable threshold force TF and / or a suitable threshold torque TT (all depending on the nature of the fragile workpiece being manipulated).

[0156] List of reference signs:100 Robotic arm system101 Robotic arm102a-f Robot joint103 Robot base104 Robot tool flange105a-f Robot axis106, 315 Robot controller 107 Interface device 108, 119 Display 109, 121 Input devices 203 Robot joint209 Robot j oint motor 211 Axis of rotation 213 Rotation arrow 225 Motor axle 227 Output axle 229 Rob ot j oint gear 231 Output flange 233 Motor control signal235 Output encoder236 Output encoder signal237 Input encoder238 Input encoder signal239 Encoder wheel241 Torque sensor242 Motor torque signal303i-n Robotjoints333i-n Motor control signals336i -n Output encoder si gnal s338i-n Input encoder signals342i-n Motor torque signals343 Processor of robot controller345 Memory of robot controller401 Workpiece402 Vacuum gripper403 a-b Roller conveyor601 Fixed point relative to robot tool flange602-604 Axis of coordinate system801 Gripper802 Gripper tooth803 Welding tool804 Camera901 Movable support structure1001 Initial robotic arm trajectory1002 Computed robotic arm traj ectoryTF Threshold forceTT Threshold torqueAF Available forceAT Available torqueFC 1 -FC2 F orce contributionsTC1-TC2 Torque contributionsS1-S4 Method stepsT1-T10 Time stamps

Claims

Claims1. A method of manipulating a workpiece using a robotic arm, said robotic arm comprising a plurality of robot joints connecting a robot base and a robot tool flange, wherein an end effector is attached to said robot tool flange, said end effector comprising a holding arrangement, said method comprising the steps of:- holding said workpiece using said holding arrangement,- establishing a threshold wrench comprising thresholds for a subset of components of wrench in at least one fixed point relative to said robot tool flange,- calculating one or more wrench contributions in said at least one fixed point,- calculating an available wrench to be applied in said at least one fixed point relative to said robot tool flange by said robotic arm, wherein said available wrench is a difference between said threshold wrench and a sum of said one or more wrench contributions; and- manipulating said workpiece held by said holding arrangement by controlling said robotic arm such that a wrench in said at least one fixed point resulting from a change of state of said robotic arm is at or below said available wrench.

2. The method according to claim 1, wherein said holding arrangement is selected from the list of finger grippers, vacuum grippers, magnetic grippers, jamming grippers, gecko grippers, hydraulic grippers, and pneumatic grippers.

3. The method according to claim 1 or 2, wherein said fixed point relative to said robot tool flange defines a point of said end effector.

4. The method according to any one of claims 1-3, wherein said fixed point relative to said robot tool flange defines a tool center point.

5. The method according to any one of claims 1-4, wherein said fixed point relative to said robot tool flange is a point of interaction of said holding arrangement with said workpiece.

6. The method according to any one of claims 1-5, wherein said subset of components of wrench comprises at least one of a threshold torque and a threshold force in said at least one fixed point relative to said robot tool flange, wherein said step of calculating one or more wrench contributions comprises calculating at least one of a torque contribution and a force contribution in said at least one fixed point relative to said robot tool flange, wherein said step of calculating an available wrench comprises calculating at least one of an available torque and an available force to be applied in said at least one fixed point relative to said robot tool flange, and wherein said step of manipulating said workpiece comprises controlling said robotic arm such that at least one of a torque and a force in said at least one fixed point relative to said robot tool flange resulting from a change of state of said robotic arm is at or below at least one of said available torque and said available force.

7. The method according to any one of claims 1-6, wherein said threshold wrench comprises at least one of a threshold torque and a threshold force, and wherein said threshold torque and said threshold force are global thresholds.

8. The method according to any one of claims 1-7, wherein said one or more wrench contributions comprises at least one of a dynamic torque contribution and a dynamic force contribution.

9. The method according to any one of claims 1-8, wherein said one or more wrench contributions comprises contributions arising from a movement of said robotic arm.

10. The method according to any one of claims 1-9, wherein said one or more wrench contributions comprises contributions imposed by said workpiece.

11. The method according to any one of claims 1-10, wherein said one or more wrench comprises contributions arising from a movement of a movable support structure onto which said robotic arm is mounted.

12. The method according to any one of claims 1-11, wherein said one or more wrench contributions comprises gravitational contributions arising from said robotic arm lifting said workpiece.

13. The method according to any one of claims 1-12, wherein said one or more wrench contributions do not comprise contributions arising due to contact forces.

14. The method according to any one of claims 1-13, wherein said fixed point relative to said robot tool flange is located in the origin of a robot tool flange coordinate system.

15. The method according to any one of claims 1-13, wherein said fixed point relative to said robot tool flange is located in the origin of a tool coordinate system.

16. The method according to any one of claims 1-15, wherein said fixed point relative to said robot tool flange is centred in a freely movable coordinate system.

17. The method according to any of claims 1-16, wherein said method is executed using a robot controller arranged to control operation of said robotic arm.

18. The method according to claim 17, wherein said step of calculating one or more wrench contributions is performed on the basis of a dynamic model executed by said robot controller.

19. The method according to claim 17 or 18, wherein said threshold wrench is established on the basis of input provided by end effector software executed on said robot controller.

20. The method according to any one of claims 17-19, wherein said threshold wrench is established during execution of a robot control program on said robot controller.

21. The method according to any one of claims 1-20, wherein said threshold wrench is established on the basis of input provided by a user.

22. The method according to claim 21, wherein said input is provided via a user interface communicatively associated with a robot controller arranged to control operation of said robotic arm.

23. The method according to any one of claims 1-22, wherein said threshold wrench is user-defined.

24. The method according to any one of claims 1-23, wherein said method is carried out throughout a plurality of subsequent control cycles, each control cycle of said plurality of subsequent control cycles executing said steps of calculating one or more torque contributions and / or one or more force contributions in said at least one fixed point, calculating an available torque and / or force to be applied in said at least one fixed point relative to said robot tool flange, and moving said end effector by controlling said robotic arm.

25. The method according to any one of claims 1-24, wherein said calculating an available torque and / or an available force is based on a deterministic calculation.

26. The method according to any one of claims 1-25, wherein said step of moving said end effector by controlling said robotic arm comprises actuating one or more robotic arm joints of said robotic arm.

27. The method according to any one of claims 1-26, wherein said method is carried out for a plurality of fixed points relative to said robot tool flange.

28. The method according to any one of claims 1-27, wherein said method comprises a step of computing a robotic arm trajectory on the basis of said threshold wrench, and wherein said step of manipulating said workpiece comprises controlling said robotic arm according to said computed robotic arm trajectory.

29. A robotic arm system comprising:- a robotic arm comprising a plurality of robot joints connecting a robot base and a robot tool flange,- an end effector attached to said robot tool flange, said end effector comprising a holding arrangement arranged to hold a workpiece, and- a robot controller, wherein said robot controller is configured to perform the steps of- establishing a threshold wrench comprising thresholds for a subset of components of wrench in at least one fixed point relative to said robot tool flange,- calculating one or more wrench contributions in said at least one fixed point, - calculating an available wrench to be applied in said at least one fixed point relative to said robot tool flange by said robotic arm, wherein said available wrench is a difference between said threshold wrench and a sum of said one or more wrench contributions; and- manipulating said workpiece by controlling said robotic arm such that a wrench in said at least one fixed point resulting from a change of state of said robotic arm is at or below said available wrench.

30. The robotic arm system according to claim 29, wherein said robot controller is configured to carry out the method according to any one of claims 1-28.

31. A computer program comprising instructions which, when executed by a robot controller of a robotic arm system, causes the robot controller to carry out the method according to any one of claims 1-28.

Citation Information

Patent Citations

  • Robot control apparatus

    US20110060460A1

  • Method for estimation of external forces and torques on a robot arm

    WO2016110320A1

  • Dynamic mass estimation methods for an integrated mobile manipulator robot

    WO2022203980A1