Robot arm trajectory evaluation
The method provides scaling source information to optimize robotic arm movement, addressing inefficiencies in existing evaluation methods by enabling quick identification and correction of scaling issues, thus improving precision and efficiency.
Patent Information
- Application Number
- PCT/DK2025/050085
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-06-07
- Filing Date
- 2025-06-04
- Publication Date
- 2025-12-11
AI Technical Summary
Existing robotic arm movement evaluation methods are inefficient and require a time-consuming trial-and-error approach to identify and correct scaling issues, leading to unsatisfactory performance and precision in coordinated motions, especially when multiple sources of scaling are involved.
A method to evaluate and provide scaling source information to users, allowing for easy identification and correction of operation parameter limits, thereby optimizing robotic arm movement and improving precision and efficiency.
Facilitates faster debugging and optimization of robotic arm movements by identifying and addressing scaling sources, enhancing precision and reducing cycle time, particularly in coordinated motions and applications like painting, welding, and gluing.
Smart Images

Figure DK2025050085_11122025_PF_FP_ABST
Abstract
Description
ROBOT ARM TRAJECTORY EVALUATIONField of the invention
[0001] The invention relates to a method, apparatus, and system for evaluating the trajectory of a robotic arm and to a robotic arm. The method comprises providing the evaluation result to a user and if necessary to scale the movement of the robotic arm.Background of the invention
[0002] In the art it is known to reduce the speed with which a robotic arm moves along a trajectory. This is to ensure that the robotic arm is able to stop its movement in time before reaching a limit of an operation parameter and thereby ensure that e.g. a safety plane is not violated. Such reduction of speed may be displayed on a screen in the form of a speed slider. A reduction in speed of the movement of the robotic arm may however be problematic in certain robot applications including coordinated motions between two robotic arms.Summary of the invention
[0003] The inventors have identified the above-mentioned problem and challenges related to evaluation of movement of a robotic arm and solved this problem by the present invention as described below.
[0004] In an aspect, the invention relates to a method of evaluating movement of a robotic arm, the robotic arm comprising a plurality of robot joints connecting a robot base and a tool flange, wherein a robot controller is executing a robot control program to control movement of the robotic arm, wherein the execution is based on a plurality of operation parameters, wherein the evaluation comprises executing a plurality of scaling functions, wherein a scaling function specifies an operation parameter value limit for at least one operation parameter of the plurality of operation parameters, wherein the evaluation comprises obtaining an operation parameter value of the at least one operation parameter of the plurality of operation parameters, wherein the execution of the plurality of scaling functions comprises an evaluation of therelationship between the operation parameter value limit and the operation parameter value, and wherein the evaluation of the relationship result in scaling source information.
[0005] In the past solving problems with robotic arms not following the robot program strictly has been a tedious operation requiring a time-consuming trial and error approach, where the user modifies the robot program until a satisfying performs of the robotic system has been achieved. This trial-and-error approach is more or less made in blind because the user may not even know that scaling is applied and is not provided with any information other than e.g. a slider indicating that e.g. velocity is not at the values specified in the robot program. Hence, no indications of the source of this apparently erroneous program execution are provided to the user and thus no indication regarding where to start looking for the error is provided to the user. Further, if the user finds one “error” at one point in a program execution and corrects this, then another may appear, and the user is then back to square one. What may happen in this case is that when one operation parameter limit has been identified as source for the “error” i.e. a scaling and consequently adjusted to avoid scaling, another operation parameter limit may take over causing continuous scaling of the robotic arm. This problem is solved by the present invention by establishing and providing scaling source information to the user.
[0006] It is advantageous to establish scaling source information and provide this to the user of the robotic arm in that it has the effect, that debugging of non-expected behaviour of the robotic arm is made easier when the source of a potential scaling is presented. Furthermore, this is advantageous in that a user of the robotic arm can easily get an overview of which scaling source(s) that are causing a scaling. In this way it is easy to find the operation parameter limits of the scaling source which need to be modified to improve efficiency or productivity of the robot application, for instance by reducing the cycle time of the robotic arm. The other way around, if it is not possible to adjust the limit, it is possible to change in the code of the robot control program and thereby e.g. in the robot trajectory to avoid violating the limit. No matter which approach is possible, time spend on the adjustments is reduced and thereby costs arereduced. The method is particularly advantageous when there are multiple possible sources of the scaling of the movement of the robotic arm, as the overview provided by the scaling source information may provide valuable insight into which one or more scaling functions have a significant impact on the scaling.
[0007] Further establishing scaling source information is advantageous when coordinated motion between e.g. two or more robots is required. This is because coordinated motion often requires a high degree of precision which is not present when the movement (e.g. speed or acceleration) of one or both robots is scaled. In such situation, it is very easy and very fast to see from the scaling source information which scaling source that is causing the scaling and thus where and how much to adjust or change the robot control program to obtain the required precision. Precision should here be understood as a high degree (preferably between 95% to 100%) of convergence between the expected / programmed speed of movement of the robotic arm and the actual speed of movement of the robotic arm. Such high precision i.e. avoidance of scaling is especially relevant to allow for checking movements of the two robotic arms e.g. for collision.
[0008] Further establishing scaling source information is advantageous in that it assists a user in debugging process applications such as painting, welding and gluing where the speed of the movement of the robot is essential to e.g. the quality of a welding seam.
[0009] Further, the invention is advantageous when the same robotic arm is working with different objects or in varying applications requiring an updated of the robot control program or at least of parameters hereof.
[0010] The evaluation can be established based on simulations of the robot control program made prior to the robot control program being loaded to a robot controller for actually controlling a physical robotic arm. This may require a simulation of sensor input i.e. of operation parameter values. The evaluation can be made in real-time i.e. as the robot control program is executed and the physical robot is operated in successive cycles. Finally, the evaluation can be made after the execution of the robotcontrol program i.e. based on data stored during execution of the robot control program. Accordingly, the evaluation may comprise a comparison of operation parameter value with operation parameter limit and a presentation of the evaluation result in the form of time scaling source information to a user of the robotic arm.
[0011] Further, the evaluation can be made as part of the execution of the robot control program in a feedforward / open control loop. In this way, values of operation parameters may not be received from e.g. sensors at the robot. Instead, the values may be calculated and during or after such calculation the scaling functions may ensure that limits of the operation parameters are not violated. Hence, if a calculated speed violates e.g. a speed limit, the speed is limited by a factor given by a scaling value provided by one of the scaling functions.
[0012] The movement of the robotic arm is mainly a consequence of execution of the robot control program. The robot control program specifies the trajectory of the robotic arm, the pose of the robotic arm during movement, the speed of the movement of the robotic arm, etc. However, movement of a robotic arm may also be initiated or partially determined by a collision or by an impact from an external source such as a person pushing the robot. With this said, the robot control program may specify the reaction / movement in response to such collision or impact from external factors.
[0013] A movement parameter should be understood as any parameter relating to movement of at least a part of the robotic arm including the robot joint and tool connected to the robotic arm. Hence, examples of movement parameters could be joint positions in form of angels / translation position (in case of prismatic joint), joint velocity in form of angular velocity / translational velocity, joint acceleration in form of angular acceleration / translational acceleration, joint jerk in form of angular jerk / translational jerk, positions, velocity, acceleration and / or jerk of a part of the robotic arm (typical Tool Center Point - TCP), TCP speed, power, momentum, stopping time, stopping distance, brake torque, brake force etc.
[0014] Scaling should be understood as manipulating a control signal or operation parameter value such as multiplying a scaling value and thereby changing or adjustinge.g. speed with which the robot is moving. Hence, scaling is also sometimes referred to as speed scaling. With this said, scaling may also sometimes be referred to as time scaling where a control signal or operation parameter is compressed or expanded in time resulting in a speeding up or slowing down of the movement of the robotic arm. Scaling may be required if e.g. a robot trajectory is moving closer to e.g. a safety plane with a speed so high that the robot cannot decelerate fast enough to not violate the safety plane. In this case, the speed with which the robotic arm move closest to the safety plane along the trajectory is scaled which in this non-limiting example would lead to a reduction in speed.
[0015] Operation parameters should be understood as variables the numeric value of which can be determined e.g. by the user of the robotic arm or by the programmer of the robot control program. Thus, an operation parameter may be directly measurable and e.g. define the speed with which the robotic arm is moving, the pressure with which a gripper is holding a payload, etc. An operation parameter may also be a parameter derived from other operation parameters, values received from sensors or calculated. Examples of this kind of operation parameters may comprise time and torque, in a non-limiting example, torque may be derived from current applied to a motor of a rotor joint or from payload multiplied with robot joint speed or measured by a strain gauge based torque sensor.
[0016] A plurality of operation parameters is defined as scaling sources. This group of operation parameters is characterized in that they have an operation parameter limit. This limit may be a maximum or minimum value which when violated by an operation parameter value will result in that one of the stop types may be triggered and thereby operation of the robotic arm is stopped. Hence, a scaling source should be understood as an operation parameter causing the scaling of e.g. the speed such as a time or speed scaling. Hence, the operation parameter having a limit which when compared to the value, e.g. received by the robot controller from the robotic arm or calculated by the robot controller, is in risk of being violated if movement of the robotic arm is not corrected. Just to mention a few operation parameters of which an operation parameter limit is defined and thereby may also be referred to as a scaling source could be TCPspeed, power, momentum, stopping time, stopping distance, brake torque, brake force, etc.
[0017] An operation parameter value is a value, such as a numeric value, which may be received, derived, calculated, looked up or in other ways established by the robot controller during operation of the robotic arm. It is this value that if it is violating the operation parameter limit, of the associated operation parameter, will result in stopping of the operation of the robotic arm. Accordingly, time scaling, which in an embodiment result in reducing speed and / or acceleration (e.g. by reducing current to joint motors), is applied leading to a reduction in one or more of torque, power consumption, braking distance, etc.
[0018] An operation parameter value is associated with an operation parameter in that the value of the operation parameter is referred to an operation parameter value. Hence, if a joint motor current is 5 A, the operation parameter value is 5 and the operation parameter is joint motor current. Sometimes more than one operation parameter value and / or one or more constants are required to establish one operation parameter value. This may be the case if the operation parameter e.g. is a joint torque. Then, to establish the joint torque, the operation parameter values of payload and joint speed operation parameters are required.
[0019] A user of a robotic arm may be different groups of persons during the lifetime of the robotic arm. During development of the fundamental source code, the user may be a programmer at the robotic arm original equipment manufacturer. When the robotic arm is sold and is to be installed, the user may be an integrator that is installing the robot cell. When the robotic arm is installed, the user may be an operator ensuring continuous operation without having the skills to change much in the robot control program.
[0020] The robot control program should be understood as the software that is required for the robotic arm to operate. The robot control software comprises fundamental functions that can be called to get the robotic arm to move according to various principles. On top of this fundamental software the robot control softwarecomprises an application software which ensure that the robot is moving / operating as desired to complete a desired task. Typically, it is in the application software adjustments are made to improve efficiency or productivity e.g. by reducing cycle time of the robotic arm. Alternatively, or in addition, the adjustments may be external systems such as safety systems e.g. by adjusting a limit of an operation parameter defined as a time scaling source.
[0021] As the method of the present disclosure comprises an evaluation of the relationship between the operation parameter value limit and the operation parameter value resulting in scaling source information, the method may also be said to establish the scaling source information. In other words, according to an exemplary embodiment of the invention, the method may comprise a step of establishing the scaling source information on the basis of the relationship between the operation parameter value limit and the operation parameter value.
[0022] In an exemplary embodiment of the invention, each scaling function of said plurality of scaling functions specifies an operation parameter value for at least one operation parameter of said plurality of operation parameters, wherein said evaluation comprises obtaining, in respect of each scaling function of said plurality of scaling functions, an operation parameter value of said at least one operation parameter of said plurality of operation parameters, wherein said execution of said plurality of scaling functions comprises, for each scaling function of said plurality of scaling functions, an evaluation of the relationship between said operation parameter value limit and said operation parameter value, and wherein said evaluation of said relationship is performed in respect of each scaling function of said plurality of scaling functions and results in scaling source information.
[0023] In an exemplary embodiment of the invention, the scaling source information comprises information of which one or more scaling functions of said plurality of scaling functions is causing scaling of said movement of said robotic arm.
[0024] In an exemplary embodiment of the invention, the scaling source information comprises information of how much scaling each scaling function of the one or morescaling functions is providing. For example, the scaling source information may comprise scaling factors for each scaling function of the one or more scaling functions to indicate how much scaling is provided by the respective scaling functions.
[0025] In an exemplary embodiment of the invention, the scaling source information comprises information of if a scaling is to be applied to one or more of the one or more operation parameters.
[0026] The scaling source information may specify if scaling is necessary or not. Scaling should mainly be understood as adjustment of the movement of the robotic arm such as an adjustment of speed and / or acceleration. But may in embodiments also comprise adjusting trajectory, freedom of movement of the robotic arm and tool by adjusting certain limits, etc. Hence, correcting or adjustment of movement of the robotic arm should be understood as breaking away from the movement dictated by the robot control program during normal operation. In one example a correction of movement is a change in the speed with which the robotic arm is moving i.e. a speed (such as a reduction in speed) which is different from the speed specified in the robot control program. Further, the scaling source information may specify how close a value of the operation parameter of a scaling function is to the operation parameter value limit and thereby how close the operation parameter is to be the source of a scaling of movement of the robotic arm i.e. to be a scaling source.
[0027] In an exemplary embodiment of the invention, the scaling source information comprises information of the at least one operation parameter being the source of the scaling function.
[0028] The scaling source information may specify the operation parameter or operation parameters being the source of the scaling. This is advantageous in that it has the effect that is ease debugging of unsuspected movements of the robotic arm.
[0029] In an exemplary embodiment of the invention, the scaling source information comprises information of which scaling function is causing the scaling, when or where on a robot trajectory defined by said movement of said robotic arm the scaling is applied and how much the movement of the robotic arm is scaled.
[0030] This is advantageous in that, based on this information, a user is able to determine exactly where scaling is applied and caused by what. Following this, fast, efficient and focused optimization of the robot cycle can be made. When on a robot trajectory a scaling is applied may be presented e.g. by temporal information such as time from a starting point, a pointer to a program node of the robot control program, etc. Where on a robot trajectory a scaling is applied may be presented e.g. by spatial information of e.g. joint positions, position of tool center point, etc.
[0031] In an exemplary embodiment of the invention, the scaling source information comprises information how much a plurality of scaling functions is scaling the movement of the robotic arm.
[0032] This is advantageous in that a user is based on this information able to determine how much potential for optimization there is available in the robot program code / robot application / robot cycle.
[0033] In an exemplary embodiment of the invention, the scaling source information comprises information of a scaling value indicating a limit of at least one of the one or more operational parameters.
[0034] The scaling value comprises information of level of scaling necessary to apply to the movement parameters and thereby to the movement of the robotic arm. The level of scaling may comprise a limit of e.g. speed, acceleration, power consumption, etc. The scaling value may be established as a result of the evaluation performed by the scaling function. If a scaling value related to acceleration as an example is 0.9, the acceleration of the robotic arm is reduced to 90% of its maximum a maximum value which may also be referred to as the operation parameter value limit. Such limited may be complied with by the robot controller adjusting one or more of the motion parameters thereby reducing the speed, acceleration, power consumption, etc. of the robotic arm. This is advantageous in that it has the effect, that e.g. braking distance is complied with, drop of payload is avoided due to speed or acceleration, etc.
[0035] In an exemplary embodiment of the invention, the scaling source information is provided to a user of the robotic arm.
[0036] Especially, it is advantageous for a user to be informed about which scaling function that is the source of the scaling applied to the movement of the robotic arm. This is because the user is thereby informed directly about where to adjust limits or program code to obtain an expected motion of the robotic arm. The information may be made available via a display such as a teach pendent associated with the robotic arm.
[0037] In an exemplary embodiment of the invention, the evaluation is executed on the robot controller or on a data processor communicatively connected to the robot controller.
[0038] Depending on application it may be advantageous to execute the evaluation on the robot controller itself or on a controller external to the robot controller. Considerations on where to execute the evaluation may comprise where operation parameters are available, load on robot controller, etc.
[0039] In an exemplary embodiment of the invention, the evaluation is performed by the robot controller.
[0040] Typically, a user defines which of the operation parameters that should have status as time scaling source. A limit for the value of the time scaling source defining operation parameters is typically also defined by the user e.g. in the code of the robot control program. Alternatively, the limit may be specified by external systems such as safety systems or systems cooperating with the robotic arm. Hence, when the robot controller is establishing, such as receiving or deriving, the operation parameter value it is possible for the robot controller to perform the evaluation of the robot motion. One example of such evaluation is to determine if the robot can continue its trajectory with the current speed without violating a safety plane. If not, the robot controller automatically performs a time scaling of the speed of the movement of the robotic arm and present the time scaling source i.e. the operation parameter causing the time scaling to the user.
[0041] Typically, it is most interesting to a user to know the most dominant time scaling source i.e. the operation parameter causing the scaling. However, it may alsobe relevant to know which time scaling sources that are next in line i.e. would be the source of the time scaling if most dominate source was removed (e.g. by adjusting in the robot control program, adjusting limit, etc.).
[0042] In an exemplary embodiment of the invention, the operation parameter limit value is selected from the list comprising: Stopping time, Stopping distance, Momentum, Tool center point speed, Joint speed, Power supply limit, stopping before obstacle, tool orientation, impact force or pressure limits.
[0043] The listed operation parameters (also referred to as scaling sources) are advantageous to evaluate in that they all have impact on the speed with which the robotic arm moves. Hence, the operation parameter limits (also referred to as limits) of these scaling sources are determining for when the particular scaling source is causing scaling of e.g. the speed of motion of the robotic arm. It should be mentioned that obstacles could be represented by fixed parameters describing fixed geometries such as planes, boxes or spheres.
[0044] These scaling sources are typically determined by a user prior to the time where the robotic arm is used in normal operation i.e. operates as expected according to its robot application.
[0045] In an exemplary embodiment of the invention, the operation parameter limit value is defined in the robot control program, in a safety system, in a cooperating system or in any combination thereof.
[0046] One example of a scaling source that is defined in the robot control program is stopping time. Hence, e.g. a limit for a minimum stopping time is defined by a user in the robot control program. The robot control program continuously evaluates the current speed of movement of the robotic arm with the distance to e.g. a trajectory stopping point (way point) or safety plane. With a user specified limit for deceleration, the robot controller is able to reduce the speed of movement of the robotic arm as the robotic arm gets closer to the stopping point (point A) without violating the any of the deceleration limit and minimum stopping time. The robot control program may specify that deceleration is to begin at point B (a certain distance from the stopping point A).However, if the robot controller finds that with the current speed, one of these limits are violated, if deceleration is first started at point B. Therefore, the robot controller is performing a time scaling resulting in a reduced speed of movement of the robotic arm prior to it reaching point B. The above is an example of a robotic arm that is asked to move to fast towards a waypoint where it has to stop.
[0047] Just to mention one other example, the scaling source may be a distance to an object or person approaching the aera of operation of the robotic arm. In this situation, the scaling source may origin from the safety system such as from a laser scanner thereof. The limit of this source may be Im i.e. the robotic arm can operate at desired speed as long as there are no persons within one meter from the sensor. This is because it is possible for the robotic arm to stop safely with normal operation speed with this distance to a person. However, if a person gets closer than one meter to the sensor or to the robot, this will trigger a scaling of the operation speed because the robotic arm cannot stop safely from normal operation speed without risking colliding with the person with a force higher than allowed. In fact, the scaling will increase the closer the person gets to the sensor i.e. the operation speed will decrease with the decreased distance from the person to the sensor. Hence, generally it is the distance between robotic arm and person / user that is important (the sensor do not need to be located on the robot). Further, to the value of the scaling i.e. how much is scaled the speed with which to robot is moving is important. Hence, the faster, the robot is moving the larger distance to objects are needed and therefore potentially more scaling is applied during a robot cycle.
[0048] No matter if the scaling source is defined in the robot control program or elsewhere, the principles of evaluating the movement of the robotic arm are the same. The same is true for the presentation of the source of the scaling, which is also the same independently of the origin of the scaling source.
[0049] In an exemplary embodiment of the invention, the operation parameters comprise one or more movement parameters relating to the movement of the robotic arm.
[0050] In an exemplary embodiment of the invention the movement parameters defines one of more of the following parameters: a position a robot joints, a velocity of a robot joint, an acceleration of a robot joint, a jerk of a robot joint, a position of part of the robotic arm, a velocity of a part of the robotic arm, an acceleration of a part of the robotic arm, a jerk of a part of the robotic arm, a momentum of a part of the robotic arm, a stopping time of a part of the robotic arm, a stopping distance of a part of the robotic arm, a brake torque of a robot joint and a brake force of a robot joint.
[0051] In an exemplary embodiment of the invention, the scaling source information is provided to the user in the form of a plot, wherein the plot illustrates a scaling value.
[0052] Such plot is advantageous in that it has the effect that the user is informed about the magnitude of the scaling at a given time during of a robot cycle. The scaling value may be a value between 0% and 100% implemented in various ways. One way is by multiplying a scaling value between 0 and 1 to a speed reference (such as the operation value defining the desired speed), sent from the robot controller to the joint motor(s) of the robotic arm.
[0053] It should be noted that it may be possible to scale e.g. the speed of the robotic arm motion with a scaling value above 1 if it is allowed for the robot to increase its speed above what is specified in the robot control program.
[0054] In an exemplary embodiment of the invention, the scaling source information is provided to the user in the form of a plot illustrating in the time domain when the at least one of the scaling functions causes scaling.
[0055] An alternative way of formulating this could be that the scaling source information is provided to the user in the form of a plot illustrating in the time domain when an operational parameter limit causes scaling. This is advantageous in that it has the effect that a user can see from the plot (which may be implemented as a graph) in the time domain where scaling of the robotic arm is applied from the particular time scaling source. In this way the user is able to understand why the robotic arm is not moving with expected time i.e. what causes the scaling at a particular time of robot cycle. From this understanding, the user is able to find exactly where to adjust in therobot control program or which limit to adjust to facilitate operation of the robotic arm at expected speed. Time domain should here be understood as time being the X value of the graph and the scaling source information such as the scaling value being the Y value.
[0056] In an exemplary embodiment of the invention, the scaling is determined based on a delta value between the operation parameter limit and an operation parameter value.
[0057] One way of determining the scaling or if scaling is necessary is to evaluate by a scaling function a delta value between an actual value of an operation parameter and the limit of the operation parameter. This operation parameter is defining a scaling source and thereby naming the scaling function. From this evaluation a scaling value may be established where the scaling value is increased when the delta value is reduced and vice versa. Hence, when the delta value is small the value and the limit are close to each other, and thus high scaling is required.
[0058] In an exemplary embodiment of the invention, scaling source information is provided to the user for a plurality of scaling functions.
[0059] In an exemplary embodiment of the invention, scaling source information is provided to the user for at least the five most dominant scaling functions.
[0060] This is advantageous in that it has the effect, that the user is able to get an overview of the most dominating scaling sources at any time during a robot cycle. Hence not only the user can get a hint to where to adjust to avoid scaling (the most dominate), the use can also get hints on how much e.g. limits of other scaling sources, other than the most dominant source, can be adjusted before turning into the most dominant source.
[0061] In an exemplary embodiment of the invention, the robot controller provides dynamic scaling source information to the user for the most dominant scaling function during one robot cycle.
[0062] It is advantageous that the use always is presented with information of the most dominant scaling source in that this is the source which is used to scale e.g. the speed of the motion of the robotic arm.
[0063] In an exemplary embodiment of the invention, the plot of the scaling source information is provided to the user together with a plot illustrating a robotic arm trajectory.
[0064] This is advantageous in that it has the effect that the user then is able to, from the same view, determining where on the trajectory scaling is applied.
[0065] In an exemplary embodiment of the invention, the plot of the scaling source information is provided to the user together with a plot illustrating a speed of motion of the robotic arm.
[0066] This is advantageous in that it has the effect that the user then is able to, from the same view, determining how much the speed of motion of the robotic arm is scaled.
[0067] In an exemplary embodiment of the invention, the scaling source information is provided to the user as a pointer to a part of the robot control program.
[0068] A pointer should be understood as an enhancement such as a blinking or coloured part of the text representing the robot control program e.g. in an embodiment the robot control program may be represented by program tree comprising a number of program nodes defining robot tasks and the pointer may provide an enhancement of the part of the program tree. Alternatively, other methods of pointing to a desired part of the program tree may be implemented such as drawing a box, presenting an arrow, etc. This is advantageous in that it has the effect that the user is provided with information of where scaling is applied directly in the program tree. Thereby, time is reduced on finding where to adjust in the robot control program to avoid that particular time scaling.
[0069] Further, when information from more than one scaling source is provided to the user directly in the program tree, it is visualized which source is scaling what part of the robot control program.
[0070] In an exemplary embodiment of the invention, the scaling source information is provided to the user as a colour of a plot illustrating a moving pattern of the robotic arm.
[0071] This is advantageous in that it has the effect that it is easy to see on a graph of a moving pattern of the robotic arm, e.g. as the robot moves, when scaling is applied. Together with a plot of the dominant scaling source, the overview of scaling issues is almost complete for the user. At least the user has more than one entry to find the cause of the scaling.
[0072] As indicated the scaling source information may be presented in various ways. In addition to the ways already described, the scaling source information may be presented on a plot indicating how close an operation parameter value is to the limit of the scaling source operator parameter. Alternatively, or in addition, the information may also be presented in an Augmented Reality where e.g. scaling value and scaling source are visible to the user when looking at the robotic arm via Augmented Reality device.
[0073] In an exemplary embodiment of the invention, only a subset of the scaling source information is provided to the user
[0074] This is advantageous in that it increases the overview of the user of the scaling and / or it provides a view of the scaling exactly at the part of the program tree, exactly at the required part of the trajectory, exactly the sources required, etc. Further, it should be noted, that it may be possible to zoom on the provided information especially if this is presented on a screen.
[0075] In an exemplary embodiment of the invention, the operation parameter value is established directly from the received operation data.
[0076] An example of such operation parameter value may be a value directly receive from an operation data sensor i.e. a measurement which can be compared directly to an operation parameter limit or used in the calculation of another operation parameter value.
[0077] In an exemplary embodiment of the invention, the operation parameter value is derived from the received operation data.
[0078] An example of such operation parameter value may be joint torque calculated based on operation data in form of a current of a joint motor. This joint torque may be referred to as an operation parameter defining a time scaling source.
[0079] In an exemplary embodiment of the invention, the operation parameter value is provided from an external device.
[0080] External devices may comprise safety systems, tools, other robotic arms, mobile autonomous robots, etc. Operation data should be understood as data received or established by the robot controller which is related to the operation of the robotic arm. Operation data may e.g. be generated as the result of a calculation in the robot controller or as data received from the robotic arm or an external device associated with the robotic arm such as a tool or part or a safety system. Operation data may be generated at the robotic arm or external device e.g. by operation data sensors.
[0081] Further, an external device may be a tool with a weight cell which returns the weight of a payload to the robot controller. Values provided from external devices may be used directly or used to derived other values that are used in the evaluation movement of the robotic arm.
[0082] In an exemplary embodiment of the invention, the operation parameter value is part of the robot control program.
[0083] An example of an operation parameter valued specified in a robot control program may be the weight of a payload specified by a user. This may be possible if the robotic arm only is working with payloads having the same weight.
[0084] In an exemplary embodiment of the invention, the operation parameter is established by the robot controller executing the robot control program in a feedforward loop.
[0085] When the robot controller is calculating a movement based on the available robot control program, the robot controller may also calculate a value for an operation parameter that is too close to a limit of such operation parameter to continue movement without scaling the speed. Hence, during such open loop execution of robot movement, calculations of the movement and also scaling source information is calculated and applied and / or presented just as if the operation parameter value were obtained from a sensor of the robotic arm.
[0086] In an exemplary embodiment of the invention, the control signal is generated by the robot controller based on a value of at least one of the one or more operation parameter and wherein a scaling is applied to the at least one of the one or more movement parameters.
[0087] Control signals should be understood as output signals from the robot controller or input signals to the robot controller which are directly or indirectly used in the controlling of the robotic arm. A control signal may be based on the value of an operation parameter and thus, an operation parameter could be said to generate a control signal and thus if the operation parameter is scaled, the control signal is scaled. More specific, the control signal may be on / off, open / close, move (any direction), etc. Control signals of particular relevance for this invention is control signals related to the speed with which the robotic arm is moving along its trajectory such as from one waypoint to another. A non-limiting example of such control signal is a current reference which by the electric motors of the robot joints are translated to a movement at a given speed. In this example, the value of the current may be referred to as an operation parameter.
[0088] In an exemplary embodiment of the invention, the evaluation is performed at least once per control cycle.
[0089] Performing the evaluation each time the robot controller execute one control cycle during execution of the robot cycle of the robot control program is advantageous in that it has the effect that the scaling can be applied in real-time. Real-time should here be understood as when events occur. Hence, if a person approaching a roboticarm causes a scaling, this scaling can be changed continuously as the robot controller receives input that the person continues to approach the robotic arm.
[0090] The continuous evaluation is advantageous in that it has the effect that the user is continuously informed about scaling and thus is able to optimize accordingly over time resulting in a more and more efficient robot cycle.
[0091] In an exemplary embodiment of the invention, the evaluation is performed based on a simulation of the robot control program.
[0092] This is advantageous in that it has the effect that the robot control program can be optimized prior to being used by the robotic arm in the robot application at a factory floor. Such simulation may comprise a simulation of operation parameter values needed by the scaling functions of the robot controller.
[0093] In an exemplary embodiment of the invention, the operation parameter values are stored and evaluated after the robotic arm has completed one operation cycle.
[0094] This is advantageous in that it has the effect that post evaluation or offline evaluation of the robot performance can be made.
[0095] No matter when the evaluation is performed, the evaluation may result in a change in the robot control program of the robotic arm or in a change of a limit of an operation parameter both aiming to improve the efficiency of the robotic arm without compromising safety and lifetime of the robotic arm. Alternatively, or in addition, a result of the evaluation may lead to a change in control program of external devices such as the speed of a conveyor belt or neighbouring robot to optimize the collaboration between the robotic arm and the external devices.
[0096] In an exemplary embodiment of the invention, the evaluation is executed by the robot controller.
[0097] Executing the evaluation on the robot controller is advantageous in that if any adjustments / speed scaling is to be made, it would often be adjusted by the robot controller. It should be mentioned that an external controller may also completely orin part perform / execute the evaluation. Using an external controller is advantageous in that dedicated evaluation system can be developed e.g. optimized to specific aspects or part of a robot movement. Further, implementing the evaluation external from the robot controller also removes an error source from the robot controller which therefore may operate more stable and with a higher mean time between failure.
[0098] In an exemplary embodiment of the invention, wherein if a scaling is to be applied to one or more of said one or more operation parameters, then the robot controller facilitates overruling the scaling of the at least one of said operational parameters to which scaling is to be applied.
[0099] This is advantageous in that the user is thereby able to suspend the scaling and thereby test operation of the robotic arm beyond certain limitations to operation parameter. This possibility is typically not recommended during normal operation of the robotic arm but may be advantageous during testing and commissioning of the robotic arm.
[0100] In an exemplary embodiment of the invention, an alarm is provided to a user if a scaling is to be applied to one or more of said one or more operation parameters.
[0101] This is advantageous in that it has the effect that e.g. process applications such as welding applications. The alarm provided when scaling is applied i.e. at a certain location on the trajectory, may indicated a quality issue from that point due to the scaling of the movement.
[0102] In an exemplary embodiment of the invention, the robot controller is modifying the robot control program based on the scaling source information.
[0103] Including the evaluation result and thereby the evaluation as part of the control of the robotic arm is advantageous in that it has the effect, that if the evaluation result indicates that scaling is required, this information is by the controller converted to a change in the control of the robotic arm. The conversation may be made / implemented real-time such as in the control cycle following the control cycle in which the evaluation was made.
[0104] In an aspect, the invention relates to a method of controlling a robotic arm, said robotic arm comprising a plurality of robot joints connecting a robot base and a tool flange, wherein a robot controller is executing a robot control program to control movement of said robotic arm, wherein said execution is based on a plurality of operation parameters, wherein said method comprises an evaluation comprising executing a plurality of scaling functions, wherein each scaling function of said plurality of scaling functions specifies an operation parameter value limit for at least one operation parameter of said plurality of operation parameters, wherein said evaluation comprises obtaining an operation parameter value of said at least one operation parameter of said plurality of operation parameters, wherein said execution of said plurality of scaling functions comprises establishing a relationship between said operation parameter value limit and said operation parameter value, and wherein a control signal is generated by said robot controller based on a result of said evaluation.
[0105] In an exemplary embodiment of the invention, the control signal is generated based on a scaling which is applied to said one or more operational parameters.
[0106] It should be mentioned that the above-described control method may include all of the above-described steps in the method of evaluating the movement of a robotic arm.
[0107] In an exemplary embodiment of the invention, the method comprises a step of modifying at least a part of said robot control program based a result of said evaluation.
[0108] The modification may be established automatically e.g. by the robot controller, or it may be established by the user of the robotic arm as changed to the robot program based on the scaling source information from the scaling functions.
[0109] In an exemplary embodiment the invention relates to a method according to any one of the paragraphs
[0104] -
[0108] wherein the control comprises a method of evaluating movement of a robotic arm according to any one of paragraphs
[0004] -
[0103] ,
[0110] In an aspect, the invention relates to controller of a robotic arm, the robotic arm comprises a plurality of robot joints connecting a robot base and a tool flange, the controller is configured for executing a robot control program, based on a plurality of operation parameters, to control movement of the robotic arm and for evaluating movement of the robotic arm, wherein the controller is configured for executing a plurality of scaling functions, wherein each scaling function of the plurality of scaling functions specifies an operation parameter value limit for at least one operation parameter of the plurality of operation parameters, wherein the controller is furthermore configured for obtaining an operation parameter value of the at least one operation parameter of the plurality of operation parameters from the robotic arm or from an external device, wherein the controller upon execution of the plurality of scaling functions is configured for evaluating the relationship between the operation parameter value limit and the obtained operation parameter value, and wherein the evaluation of the relationship results in scaling source information.
[0111] In an exemplary embodiment of the invention, the scaling source information comprises information of the at least one operation parameter being the source of the scaling function.
[0112] In an exemplary embodiment of the invention, the scaling source information comprises information of which scaling function is causing the scaling, when or where on a robot trajectory the scaling is applied and how much the movement of the robotic arm is scaled.
[0113] In an exemplary embodiment the invention relates to a controller according to any of the previous paragraphs
[0110] -
[0112] controlling a robotic arm according to the method specified in any of the previous paragraphs
[0004] -
[0109] ,
[0114] In an aspect, the invention relates to robot system comprising a robotic arm, a robot controller and a display, wherein the robotic arm comprises a plurality of robot joints connecting a robot base and a tool flange, wherein the robot controller is configured is executing a robot control program, based on a plurality of operation parameters, to control movement of the robotic arm and for evaluating movement ofthe robotic arm, wherein the controller is furthermore configured for obtaining an operation parameter value of at least one operation parameter of the plurality of operation parameters from the robotic arm or from an external device, wherein the evaluation comprises executing a plurality of scaling functions, wherein each scaling function of the plurality of scaling functions specifies an operation parameter value limit for at least one operation parameter of the plurality of operation parameters, wherein the execution of the plurality of scaling functions comprises an evaluation of the relationship between the operation parameter value limit and the operation parameter value, wherein the evaluation of the relationship results in scaling source information, and wherein the display is configured for displaying the scaling source information to a user of the robot system.
[0115] In an exemplary embodiment of the invention, the scaling source information comprises information of the at least one operation parameter being the source of the scaling function.
[0116] In an exemplary embodiment of the invention, the scaling source information comprises information of which scaling function is causing the scaling, when or where on a robot trajectory the scaling is applied and how much the movement of the robotic arm is scaled.
[0117] In an exemplary embodiment, the controller is a controller according to any of the paragraphs
[0109] -
[0112] , Accordingly, the system may be able to implement a method specified in in any of the previous paragraphs
[0004] -
[0109] ,The drawings
[0118] 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 embodiment of the invention and elements of different drawings can be combined within the scope of the invention:Fig. 1 illustrates a robot system 100 as known in the prior art,Fig. 2 illustrates a simplified structural diagram of a robotic arm,Fig. 3a-3e illustrates examples of scaled movement of a robotic arm, Fig. 4 illustrates an operation parameter limiting robotic movement of the trajectory of figs. 3d,Fig. 5 illustrates a flow chart of steps in scaling a trajectory of a robotic arm, andFig. 6a-6e illustrates various ways to illustrate scaling of movement of a robotic arm.Detailed description
[0119] 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.
[0120] Fig. 1 illustrates a robot system 100 as known in the prior art. The robot system comprises at least one robotic arm 101 and at least one robot controller 315 configured to control the robotic arm. The robotic arm 101 comprises a plurality of robot joints 303a, 303b, 303c, 303d, 303e, 303f connecting a robot base 103 and a robot tool flange 104. A base joint 303a is configured to rotate the robotic arm around a base axis 105a (illustrated by a dashed dotted line); a shoulder joint 303b is configured to rotate the robotic arm around a shoulder axis 105b (illustrated by a dashed dotted line); an elbow joint 303c is configured to rotate the robotic arm around an elbow axis 105c (illustrated by a dashed dotted line); a first wrist joint 303d is configured to rotate the robotic arm around a first wrist axis 105d (illustrated by a dashed dotted line) and a second wrist joint 303e is configured to rotate the robotic arm around a second wrist axis 105e (illustrated by a dashed dotted line). Robot joint 303f 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.
[0121] The robot j oints comprise a robot j oint 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 have been provided makes it possible to determine a relationship between the input and output side of the gearing.
[0122] In this document these parameters and sensor signals are referred to as operation parameters of which those that are directly or indirectly related to movement of the robotic arm are referred to as motion parameters. It should be noted that not all operation parameters need to be received from sensors at the robotic arm. Some operation parameters may be derived based on received signals / operation parameters or received from external device. Examples of such operation parameters comprise stopping time, stopping distance, torque and time. Torque / movement may be derived from a measurement of current, brake length may be derived from robot joint angular speed, torque moment may be derived from robot joint speed and payload, etc. Hence, the operation parameter and the operation parameter value hereof may be either received by the robot controller or established by the robot controller. Alternatively, a user of the robotic arm may specify a value of an operation parameter which is considered static in the application cycle. An example of such static value could be the weight of a payload when the robotic arm is only handling payloads having the same weight during each application cycles.
[0123] The robot system may also comprise an end effector (not illustrated) attached to the robot tool flange, and it is to be understood that the end effector 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.
[0124] The robot system comprises at least one robot controller 315 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 / 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. The robotic system may also comprise external devices such as conveyer systems, welding systems, safety systems, etc. having individual controllers and sensors that may communicate with the robot controller.
[0125] 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. In this document a control cycle is used as a reference to the time (a time step) on e.g. the robot controller where a calculation, comparison or similar is made. In the same way, an application cycle is used as a reference to one or more tasks / operations of the robot system i.e. the act of picking up an object at a first location, dropping it at a second location and returning to start position for picking up another object from the first position.
[0126] The robot controller can comprise an interface device 117 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 119 and a number of input devices 121 such as buttons, sliders, touchpads, joysticks, track balls, gesturerecognition 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 form of smart phones, tablets, PCs, laptops etc.
[0127] Fig. 2 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.
[0128] 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.
[0129] 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 encodersignal 338i, 338i+l . . ,338n indicating the angular position of the motor axle 0,i, ©,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.
[0130] Figs 3a-3e illustrate operational parameters of a simplified example movement of an output flange of robot joint, where the robot program executes a program code causing rotation of the output flange from an angular position at zero radians to a position at 4 radians. Fig. 3a illustrates the angular position q of the output flange of the robot joint in radians [rad] as function of time in seconds [s], fig. 3b illustrates the angular velocity dq of the output flange of the robot joint in radians [rad / s] as function of time in seconds [s], and fig. 3c illustrates the angular acceleration ddq of the output flange of the robot joint in radians [rad / s2] as function of time t in seconds [s]. In all three figures the solid graph illustrates a non-scaled movement of the output flange, and the dashed graph illustrates a scaled movement of the output flange. The program code causing this movement could for instance comprise the following program lines:01: Wait for 2 s02: Rotate output flange 4 Radians03: Wait
[0131] If no scaling is applied to the robot movements, the robot controller will start the robot program at 0 seconds and maintain the output flange at a position at 0 radians for a period of 2 seconds. Thereafter the robot controller initiates movement of the output flange and execute a non-scaled movement as fast as possible and thus apply maximum acceleration and maximum deceleration to stop the output flange at a position of 4 radians.
[0132] In this example, as default the maximum angular acceleration of the output flange is 1 rad / s2, the minimum angular acceleration of the output flange is - 1 rad / s2and the maximum allowable angular velocity of the output flange is 5 rad / s. The robot controller executing the exemplary program will then drive the output flange at an angular acceleration of 1 rad / s2for a period of 2 second and thereafter at an angular acceleration of -1 rad / s2for a period of 2 second in order to stop the output flange at the position of 4 rad and it is noticed that the maximum angular velocity of 5 rad / s is not reached during this movement.
[0133] Consequently, the output flange will arrive at the position of 4 radians 4 seconds after starting the movement corresponding to 6 seconds after start of the robot program. The applied angular accelerations are illustrated in fig. 3c and in this example it is for the sake of simplicity assumed that the change of acceleration can be applied instantly. However, the person skilled in robot control will realise that this is not physical possible in real embodiments. Fig. 3b illustrates that the angular velocity dq of the output flange increases linearly during the positive acceleration in period from 2s to 4s and reaches a maximum angular velocity of 2 rad / s after 4s from the program start. Thereafter the angular velocity dq of the output flange decreases linearly during the negative acceleration in period from 4s to 6s until it stops at 6s after the program start.
[0134] If scaling is applied to the robot movements, the movements of the output flange will change as illustrated in dashed lines. In this example three scaling functions will cause the scaling of the movements, where a first scaling function SF1 results in a limited maximum acceleration of +0,5 Rad / s2, a second scaling function SF2 results in a limited minimum acceleration of -0,25 Rad / s2 (corresponding to a limited deceleration) and a third scaling function SF3 results in a limited maximum velocity of 1 Rad / s.
[0135] The robot controller executing the exemplary program lines will start the robot program at 0 seconds and maintain the output flange at a position of 0 Radians for a period of 2 seconds (program step 01). Thereafter the robot controller initiates movement of the output flange and execute the movement as fast as possible and thustries to apply maximum angular acceleration and maximum angular deceleration to stop the output flange at a position of 4 radians (program step 02). At this position the robot controller executes program step 03 and is waiting. However, due the scaling of the movements the movement of the output flange will be scaled by driving the angular acceleration of the output flange at the limited maximum angular acceleration of 0,5 rad / s2 until the maximum limited angular velocity of 1 Rad / s is reached, this happens 4 s after program start.
[0136] Then angular acceleration is adjusted to zero to keep the angular velocity constant until breaking of the output flange is initiated. The breaking of the output flange is initiated 5s after start of the program and the limited minimum angular acceleration of -0,25 Rad / s2is applied to the output flange, whereafter the angular velocity of the output flange is decreasing linearly until the output flange stops at a position of 4 rad 9s after the start of the program.
[0137] Many robotics arms perform the scaling of the movements autonomously without informing the user of scaling of the movement. In this example the user may notice that the output flange arrives 3s later than expected, as the user would assume that the output flange can rotate with the maximum angular acceleration of the output flange is ±1 rad / s2and is typically not aware of the applied scaling of the movements. The skilled user creating coordinated motions e.g. in relation to other machinery will then typically perform a try an error process where the program of the robotic arm and / or the other machinery is incrementally changed in until an appropriate solution has been found. This is typically very time-consuming.
[0138] As described in the summary of the invention, the present invention solves this issue by evaluating the relationship between an operation parameter value limit and an operation parameter value and establishes scaling source information based on the evaluation. In this example this can be done by comparing the maximum angular acceleration of 1 rad / s2of the output flange with the maximum limited angular acceleration of 0,5 rad / s2of the scaled movement, by comparing the minimum angular acceleration of -1 rad / s2of the output flange with the limited minimum angular acceleration of -0,25 rad / s2of the scaled movement, by comparing the maximumangular velocity of 5 rad / s with the limited maximum angular velocity of the scaled movement and provide an indication of when and which of the scaling functions that results in the scaling of the movement. In this example the scaling source information can be provided in a table indicating which of the scaling functions that caused the scaled movement of the output flange in different periods of the robot program and how much the scaling function limited the movements:
[0139] The user can hereby obtain an understanding of what caused the delayed arrival of the output flange at the position at 4 radians and easier provide correction actions to the robotic system if needed. What makes the correction actions easier to make for the user is the information provided of which scaling function that causes the scaling and how much scaling this function provides.
[0140] As explained above, when a robotic arm moves, it’s trajectory can be scaled to avoid exceeding or violating various operation parameter limits such as limits for speed, acceleration and power of a robot joint or speed and acceleration of the TCP(TCP; Tool Center Point). This scaling may be made online / in real-time in the individual control cycles. Such scaling is a great assistance to a user of the robotic arm in that it ensures that no operation parameter limits are violated. However, situations may occur where such scaling can be problematic in that the robotic arm do not operateas expected i.e. not according to the robot program without the user knowing about the scaling and to what extend which operation parameter is scaled. Several scaling functions are evaluating a plurality of operation parameter values to determine if scaling should be made. The evaluation of each scaling function may e.g. be made once per control cycle. A plurality of these scaling functions may evaluate that scaling is to be applied with a certain scaling factor. However, only the scaling function with the scaling factor having the highest impact on the movement of the robotic arm is applied. Thus, if for some reason inputs to this highest impact scaling function is changed and the impact of the scaling factor hereof is reduced, a new scaling factor with highest impact, from another of the scaling functions, is applied. The robotic arm will typically be programmed to accelerate / decelerate smooth to the movements allowed by the new scaling factor.
[0141] Fig. 3d illustrates another example of a scaled movement of a robot joint over a time period from 0 to 4,5 seconds. The graph illustrates the angular position (in Rad) of the output flange of the robot joint in radians (Rad). Hence, the movement is a 1 Rad rotation of the output flange in one direction and then after stand still a 1 Rad rotation in the other direction. It is found that the robot joint does not move until time Tl. At time Tl, the robot joint moves in the one direction until time T2. From time T2 to time T3 the robot joint is not moving and from T3 to time T4 the robot joint is moving again in the other direction.
[0142] Fig. 3e illustrates the angular velocity of the output flange of the robot joint during the movement which is illustrated in fig. 3d. At time Tl, the output flange starts moving and the angular velocity increase until the maximum angular velocity is achieved at time Tl’ and at time Tl’ ’ the angular velocity (in Rad / s) is decreased until it reaches zero at time T2, whereby the output flange is at stand still. At time T3, the output flange starts moving and the angular velocity increase (in the negative direction) until the maximum (negative) angular velocity is achieved at time T3’ and at time T3” the angular velocity is decreased (in the negative direction) until it reaches zero at time T4, whereby the output flange is at stand still.
[0143] In fig. 3e it can be seen that at time intervals T5 and T6 the output flange angular velocity is limited to 2 rad / s and -2 rad / s respectively. It is not illustrated which operation parameter limits that are causing this maximum angular velocity.
[0144] Fig. 4 illustrates the current consumed by the joint motor in the movement which is illustrated in figs. 3d and 3e. As illustrated at times T7 - T9 high current is consumed by the motor when the motor accelerates.
[0145] The current may be one example of an operation parameter having a limit which may cause a scaling of the movement of the robotic arm. At fig. 4, safety limits are illustrated on both sides of the current graph by stipulated lines. These safety limits can be violated e.g. if the robotic arm collides with an object or person or if a person is pushing the robotic arm. If a safety limit is violated the robotic arm may enter one of the stop types such as protective stop.
[0146] The graphs in fig. 3a-4 illustrate different ways of presenting to a user that a scaling has been applied, where (e.g. on a trajectory or robot program) the scaling has been applied and what causes the scaling. In the following it will be described how the evaluation of the movement and thus how the scaling source can be found and applied.
[0147] Fig. 5 illustrates a flow chart of steps S1-S5 in scaling a trajectory of a robotic arm according to an embodiment of the present invention. The control of the robotic arm is in a first step SI performed by the robot controller which executes the robot control program in time steps which are referred to as control cycles. In each control cycle the robot controller at least establishes the values for the desired position, speed and acceleration. These values are then used to control the robotic arm in the next time frame (typical 1-100 milliseconds) while the robot controller establishes new values during the next control cycle. In this way, the robot controller is controlling the movement of the robotic arm. Hence, if no operation parameter limits are violated, these values are converted to a current that is supplied to the motors of the robotic arm, for instance as described in fig. 2, and thereby the robotic arm is moving to the desired position with the desired speed and / or acceleration / deceleration. If one or more operation parameter limits are violated, it could be one or more of these values that arescaled. Hence, in the first step of controlling the robotic arm, the robot controller at least establishes values of speed and acceleration with which the robotic arm is to move.
[0148] Also, in a control cycle, the robot controller evaluates at least some of a plurality of scaling functions. This part of the control may be referred to as a second step S2 in the control of the robotic arm. In embodiments this evaluation takes place in each control cycle but may also take place in a predetermined or random sequence of control cycles. The result of this evaluation is information of how much scaling of movement of the robotic arm is needed to avoid violating any operation parameter value limits.
[0149] Hence, it is in each control cycle possible to evaluate if a value of an actual desired speed, acceleration or position is going to cause a violation of an operation parameter limit. Further, it is also possible in each control cycle to calculate how much the value(s) leading to the actual desired speed, acceleration and position are to be scaled to avoid violating the operation parameter limits.
[0150] The information regarding which operation parameter limit that is causing the scaling may be included in the scaling source information that is displayed to the user. In addition, the scaling source information may comprise information of how much scaling that is applied and where / when on the trajectory of the robotic arm.
[0151] An example of a situation where scaling is required would be if the robotic arm according to the robot program should be operated with a speed that is too high for the robotic arm to stop within a given braking time (which in this example would be an operation parameter limit and thus a scaling source). If this situation occurs, then before sending the values to the robotic arm allowing it to operate with the speed specified in the robot control program, one or more of these values are scaled. In this way, the speed of the robotic arm is reduced so that it can comply with the braking time.
[0152] This evaluation is made by the robot controller or by an external controller. This evaluation may be established by a scaling function. This scaling function maybe dedicated to evaluating if the braking time limit is violated or in risk of being violated. Hence this scaling function could be referred to as a braking time scaling function and the maximum value of the braking time could be referred to as an operation parameter limit i.e. as a scaling source. In each control cycle, this scaling function is aware of the actual speed of the robot movement. The scaling function then evaluates inertia at the actual speed with the actual weight of the payload carried by the robotic arm. Based on this, the scaling function is able to determine the how fast the robotic arm can stop or how aggressive deceleration is needed to be able to stop the robot movement within the specified limit for maximum braking time. If the controller executing the scaling function finds that with the actual speed, the maximum braking time cannot be complied with, it calculates a scaling value which subsequently is applied to the speed of the robot movement. In this example, it may be the current reference to the motors of the robotic arm that is scaled with the scaling value and thereby the actual speed is reduced with the scaling value to a new actual speed. Hence, if the actual speed is 5000 mm / s, but the maximum speed with which it is possible to comply with the maximum braking time is 4000 mm / s, the scaling value may be 4000 divided by 5000 resulting in a scaling factor of 0,8.
[0153] Alternatively, the scaling function may always calculate the maximum speed with which the braking time limit can be complied with. If the actual speed exceeds this maximum speed, the robot controller limits the speed to the calculated maximum speed.
[0154] Alternatively, some scaling functions may be rather simple such as calculating an overshoot as a desired speed divided with a speed limit. The scaling value is then 1 / overshoot and scaling are only made if the overshoot is > 1. In this way, the speed limit is not exceeded.
[0155] Alternatively, the robot controller may calculate or simulate one or more of the scaling functions in a feedforward approach. This way, an “actual” speed of the robotic arm is calculated or simulated based on simulated input values. As described above, with this speed it is evaluated by the different scaling functions if theirrespective operation parameter limits are violated and if so, a scaling value is calculated to avoid such violation.
[0156] Alternatively, the user when designing / programming the robot program may perform simulation of various scaling functions to account for scaling issues before the robotic arm is commissioned. As with the feedforward approach, this may require some simulation of inputs to the controller / scaling functions and there is a risk that some limits are not available or defined in an offline simulation. Further offline simulation is also problematic if e.g. the weight of the payload varies. This problem may however be solved by including ranges for the payload weight in the simulations.
[0157] As indicated above, a scaling value may not need to be calculated, the robot controller may instead simply calculate a speed that do not violate any of the operation parameter limits and implement this speed.
[0158] Further, the evaluation may in embodiment not need to be performed in a control cycle online / real-time but could be performed either pre-execution of the robot control program or post-execution of the robot control program.
[0159] The applying of the scaling may be done by scaling the time e.g. the time it takes for the robotic arm to move from A to B. When scaling time, the speed is scaled linear, and the acceleration is scaled quadratic. Then it is possible to calculated e.g. torque and current reference to the motors.
[0160] The scaling of the robotic arm movement found as the result of the evaluation in step S2 is in a third step S3 compared and thereby, it is known which one or more scaling functions of the plurality of scaling functions that are scaling the robotic arm movement the most.
[0161] In a fourth step S4, when the scaling function that are scaling the most, and thereby the operation parameter value limits is known, this information is stored in a memory together with the scaling value. It should be noted that scaling functions and their scaling value may be stored in the memory. Once stored it is ready for being displayed to a user either as soon as the information is ready for being displayed(maybe at the site of the robotic arm) or for being displayed later (maybe remote to the robotic arm).
[0162] In a fifth step S5, when the scaling value of the most dominant scaling function is applied to e.g. to the speed and to the acceleration of the movement. This may be done e.g. by multiplying the scaling value to a control signal such as to the current to a robot joint motor. In this way, the movement of the robotic arm is scaled in the subsequent control cycle according to the most dominate scaling value.
[0163] Hence, the robot controller or external controller may be executing a plurality of scaling functions and based on the output of the plurality of scaling functions determining which of the scaling functions that should be used as basis / source for scaling the robot movement. This would typically be the scaling function having the highest scaling value. By highest should be understood the one having the highest impact on e.g. the speed. Hence, if the value is multiplied to e.g. a current reference the impact is higher the closer to the value gets to 0. There would be no impact if the value is 1.
[0164] It should be noted that under certain circumstances it may be appropriate to accept an increased speed and / or acceleration i.e. with reference to the above example, having a scaling value >1. This may be possible based on knowledge of the process / application cycle.
[0165] It should be noted that operation parameter values limits defining scaling sources may be other phenomenon’s than the speed, acceleration and position which are the most common operation parameters that are scaled. Such other phenomenon’s / operation parameter limits may comprise TCP speed, maximum power supply, momentum limit, stopping time, stopping distance, brake torque, brake force, stopping time, joint speed limit, elbow speed limit, stop before waypoint, fatigue limits of structural robot parts, gear torque, etc.
[0166] The various information related to scaling may be provided to the user via a display. Such display may be of a laptop, a smartphone, tablet, teach pendent, etc.
[0167] Fig. 6a-6e illustrates at least four different ways to present scaling source information to the user via a display e.g. of a teach pendent. In addition to what is illustrated in fig. 6 the scaling source information may also be presented to the user in the form of an augmented reality device, via a speaker, etc.
[0168] It should be noted that the scaling source information may be reported at every control cycle, at every application cycle or as a log accessible when needed by a user. No matter how it is reported it may be used by the user to get an overview of which operation parameter limits are causing speed scaling such that they can be modified to improve efficiency or productivity of the robot application, for instance by reducing the cycle time of the robot. By knowing the source, or sources, of the trajectory scaling, it will be easier and more efficient for the user to modify the various operation parameter limits or other aspects of the robot applications or of the robot control program in order to meet the goals e.g. for productivity, coordination etc.
[0169] Further, users can get an overview of where in the program speed scaling is performed in order to adjust target trajectories to avoid the speed scaling. This could for instance be if they want to coordinate motions with other systems e.g. external axes or other robots, they can only check the movements for collisions if they know that the timing does not change due to speed scaling.
[0170] The ways of displaying the source scaling information to the user illustrated in fig. 6 may all be online real-time. In this way the scaling source information is available to the user e.g. on a client application as it is available to / on the controller.
[0171] Fig. 6a illustrates part of a display of a client application such as a teach pendent or a tablet. On the display, part of a program is illustrated as lines of code controlling the movement of a robotic arm from a position a (point a) to a position b (point b) when a condition C (Condition C) is true. Via this program, the user is able to see the part of the robot control program that is being executed. If part of the robot trajectory is scaled, then that part of the robot control program displayed in the program that is scaled is highlighted. In fig. 6a the scaled part of the robot control program is highlighted with a surrounding stipulated line. Alternatively, the scaled partcould be highlighted with a color different from the rest of the code. In this example it is the move to point a that is scaled. Hence, the source scaling information displayed in fig. 6a is the robot control program to which scaling is applied. The highlighting can also be applied by adding icons or other graphical symbols indicating the nature of the scaling, for instance by indicating which scaling function and / or which type that has been applied to the part of the robot control program.
[0172] It should be noted that if scaling is applied more than one time during the robot control program, the user may via an input device on the display jump to the next or to the former part of the robot control program that is scaled. Also, it should be noted that parts of the robot control program that are not scaled but are close to be scaled, i.e. is to be scaled if the scaling source of the first highlighted part is removed, may also be highlighted in the display. The two (or more) parts of the robot control program may be highlighted differently such as by different colors or different line types. If more than one scaled part, no matter if it is scaled or to be scaled, these parts may be highlighted in order of relevance. Relevance may be understood as the order in which the scaling is applied if the more dominated scaling source is removed.
[0173] Fig. 6b also illustrates part of a user display. The scaling source information illustrated in fig. 6b is the part of the robot art that is scaled. Hence, if a motor of a particular joint is scaled, that particular joint is highlighted. Accordingly, the scaling source information highlighted on fig. 6b is the part of the robotic arm that is scaled. The highlight may be in the form of a color or as illustrated the scaled joint is highlighted with a stipulated line.
[0174] Fig. 6c also illustrates part of a user display. The scaling source information illustrated in fig. 6c is the part of a robot trajectory where a scaling is applied. The illustrated curve form could also specify other operation parameters such as speed, acceleration, torque, etc. of the TCP or of the individual robot joints.
[0175] The parts of the trajectory where scaling is applied are illustrated by arrows pointing to the scaled part. Meta data related to the individual scaling may be displayed to the user either as default or by selecting an area (e.g. by pushing the area on adisplay) such as the scaled part of the trajectory. Such meta data may comprise the scaling source i.e. the operation parameter limit that is causing the scaling, the scaling value i.e. how much, such as the percentage, the operation parameter illustrated by the curve form scaled. Accordingly, the scaling source information displayed in fig. 6c is where (e.g. time and position) on the trajectory scaling is applied with meta data in the form of scaling function and a scaling factor.
[0176] Fig. 6d illustrates part of a user display. This part of the display lists the possible scaling sources (denoted Scaling Function SF e.g. SF#1, SF#2, SF”20, SF#n) or a subset hereof. The scaling sources may be listed in order of dominance such as according to the value with which they are scaling the robot movement. It should be noted that in some embodiments only the most dominant scaling source such as the scaling source having the highest scaling value is displayed. Alternatively, all or e.g. the top 5 scaling sources ordered according to scaling source value.
[0177] In fig. 6d the second scaling function SF#2 limited by the TCP speed is the dominant scaling source with a scaling value of 0,7. This is followed by the twentieth scaling function SF#20 having scaling value of 0,9. Hence, the user is from this display able to see that if the TCP speed limit is adjusted so that no scaling occurs from the TCP speed limit, then the movement would be scaled by the gear torque limit. The scaling would then be reduced from 0,7 to 0,9.
[0178] The user display may comprise filter buttons or the like that the user can use to filter the scaling functions and thereby determine which of the scaling sources are to be displayed on the list. Such filtering may be according to dominance, when or where on the robot trajectory the scaling source is scaling, etc. Hence, it is possible to see which scaling function has been the most dominant during which part of the robot trajectory. Also in this display, meta data such as scaling value, time period a scaling is applied, start time / position and stop time / position of scaling, etc. may be displayed with the individual scaling sources. This said, it is noted that the scaling can be applied by one scaling source. Hence, at least metadata to this function is provided. Metadata related to other scaling sources that are not scaling movement of the robotic arm mayalso be provided even though they are not dominating and thus not the current scaling source.
[0179] Fig. 6d also illustrates a graphic presenting the scaling values relative to their operation parameter limits (L on the Y-axis). From this illustration, the user is able to see how close the different scaling functions are to their limits, and as illustrated, the user is able to see that scaling function number 2 SF#2 is the dominant one followed by scaling function number 20 SF#20 which are both crossing their respective limits. Scaling function number 1 and n are both below their limits and thus has a scaling value of 1. Hence, it is possible to show how much each individual scaling source limits the robot movement even for sources that are not the most restricting.
[0180] Fig. 6e illustrates part of a user display where the upper graph illustrates the dominant scaling value of a movement of a robotic arm as a function of time, and the lower graph illustrates a which scaling function SF# causes the dominant scaling value as a function of time. In this example different scaling functions cause the dominant scaling value, and the user can use these graphs to identify where the robotic movement is scaled and by scaling functions. For instance, in the time interval T10 a scaling value of approximately 0,65 is applied by scaling function SF#4 and in the time interval Ti l a variable scaling value is applied by scaling function SF#13. It is noted that the mentioned time intervals are just examples illustrating how the two graphs can be used to identify which scaling function causes the scaling value. The user can use this information when deploying the robotic arm.
[0181] To some of the different ways of presenting scaling source information in fig. 6a-6e special features are mentioned. These may be applied to all the different views if appropriate. A further feature that may be applied is that it may be possible to select a scaled part of a trajectory and thereby force the robotic arm to this point at its trajectory. The user may specify a time before this point where the robotic arm should start. This is to be able to physically see the impact of the scaling and thereby get an indication of what to change to avoid this scaling. In case the limit, e.g. is braking distance to avoid violating a safety plane, an alternative to scaling would be movingthe safety plan if possible. In case the limit, e.g. is a torque, the payload may need to be changed to avoid scaling.
[0182] Also, the user may shift between the different views of displaying the scaling source information or the user may disable / enable selected scaling functions. Also, the user may both zoom and filter the views so that fast forwarding and rewinding (in time) in the program tree or trajectory is possible. In this way it is possible e.g. to see which commands of the robot program that are being executed when the speed or acceleration is scaled.
[0183] It should be noted that to all of the different ways of displaying the scaling source information it is possible to add meta data e.g. in the form of links opening dialog boxed, information popping up if hoovered over an area etc. Meta data should be understood as information that is not displayed directly but may be relevant e.g. to better understand the information displayed. It may also point to information sources where the user can get more information about scaling in general or regarding a specific scaling function. Further, it may guide the user to understand a particular scaling that is applied and how the user can change the robot program, external hardware or software, etc. to avoid such scaling.
[0184] In addition to the different views illustrated in fig. 6a-6e, other ways of displaying scaling source information may be provided this comprise a visual graph (or multiple graphs) for the execution of the application as a function of time, an augmentation of the robot program with indication of where in the program speed scaling is performed and which sources are causing it.
[0185] The scaling of movement of the robotic arm may trigger a recording of predefined operation parameters or an alarm may be activated. This is advantageous in that e.g. in a welding or gluing application it is important that the seam is as desired. Hence, if scaling is applied more glue or wider welding seam is provided. This may lead to a quality issue and thus advantageous to the user if it is specified where the scaling was or at least an alarm is activated to get the users attention to the robot application.
[0186] From the above it is now clear that the invention relates to evaluation of speed of a robotic arm, and via the evaluation obtain scaling source information relating to movements of the robotic arm and thereby providing scaling source information and presenting this to the user of the robotic arm. Thereby the user is able to see what is causing a scaling of the robotic arm movement which ease the optimization of the robot application.
[0187] The aforementioned ways of displaying scaling source information may be based on execution of the robot program on an actual robot, it may also be based on executing the robot program in a simulated software environment.
[0188] The invention has been exemplified above with the purpose of illustration rather than limitation with reference to specific embodiments. Details of specific embodiment have been provided in order to understand the aim of the invention and can be combined where appropriate. Please note, that detailed descriptions of well- known systems, devices, circuits, and methods have been omitted so as to not obscure the description of the invention with unnecessary details.List100. Robot system101. Robotic arm303. Robot joint103. Robot base104. Robot tool flange105. Robot axis315. Robot controller117. Interfaced device119. Display121. Input device333. Motor control signals336. Output encoder signals338. Input encoder signals342. Motor torque signal343. Processor345. MemoryTl-Tl l. TimeSF#. Scaling functions
Claims
Patent claims1. A method of evaluating movement of a robotic arm (101), said robotic arm (101) comprising a plurality of robot joints (303) connecting a robot base (103) and a tool flange (104), wherein a robot controller (315) is executing a robot control program to control movement of said robotic arm (101), wherein said execution is based on a plurality of operation parameters, wherein said evaluation comprises executing a plurality of scaling functions, wherein each scaling function of said plurality of scaling functions specifies an operation parameter value limit for at least one operation parameter of said plurality of operation parameters, wherein said evaluation comprises obtaining an operation parameter value of said at least one operation parameter of said plurality of operation parameters, wherein said execution of said plurality of scaling functions comprises an evaluation of the relationship between said operation parameter value limit and said operation parameter value, and wherein said evaluation of said relationship results in scaling source information.
2. A method according to claim 1, wherein said scaling source information comprises information of which one or more scaling functions of said plurality of scaling functions is causing scaling of said movement of said robotic arm.
3. A method according to claim 2, wherein said scaling source information comprises information of how much scaling each scaling function of said one or more scaling functions is providing.
4. A method according to any one of claims 1-3, wherein said scaling source information comprises information of if a scaling is to be applied to one or more of said one or more operation parameters.
5. A method according to any one of claims 1-4, wherein said scaling source information comprises information of said at least one operation parameter being the source of said scaling function.
6. A method according to any one of claims 1-5, wherein said scaling source information comprises information of which scaling function is causing said scaling, when or where on a robot trajectory defined by said movement of said robotic arm (101) said scaling is applied and how much the movement of said robotic arm (101) is scaled.
7. A method according to any one of claims 1-6, wherein said scaling source information comprises information how much a plurality of scaling functions is scaling the movement of said robotic arm (101).
8. A method according to any one of claims 1-7, wherein said scaling source information comprises information of a scaling value indicating a limit of at least one of said one or more operational parameters.
9. A method according to any one of claims 1-8, wherein said scaling source information is provided to a user of said robotic arm (101).
10. A method according to any one of claims 1-9, wherein said evaluation is executed on said robot controller (315) or on a data processor communicatively connected to said robot controller (315).
11. A method according to any one of claims 1-10, wherein said evaluation is performed by said robot controller (315).
12. A method according to any one of claims 1-11, wherein said operation parameter limit value is selected from the list comprising: Stopping time, Stopping distance, Momentum, Tool center point speed, Joint speed, Power supply limit, stopping before obstacle, tool orientation, impact force or pressure limits.
13. A method according to any one of claims 1-12, wherein said operation parameter limit value is defined in said robot control program, in a safety system, in a cooperating system or in any combination thereof.
14. A method according to any one of claims 1-13, wherein said operation parameters comprises one or more movement parameters relating to the movement of said robotic arm (101).
15. A method according to claim 14 wherein said movement parameters defines one of more of the following parameters:• a position a robot joints,• a velocity of a robot j oint,• an acceleration of a robot joint,• a j erk of a robot j oint,• a position of part of the robotic arm,• a velocity of a part of the robotic arm,• an acceleration of a part of the robotic arm,• a j erk of a part of the robotic arm,• a momentum of a part of the robotic arm,• a stopping time of a part of the robotic arm,• a stopping distance of a part of the robotic arm• a brake torque of a robot j oint• a brake force of a robot joint.
16. A method according to any one of claims 1-15, wherein said scaling source information is provided to said user in the form of a plot, wherein said plot illustrates a scaling value.
17. A method according to any one of claims 1-16, wherein said scaling source information is provided to said user in the form of a plot illustrating in the time domain when said at least one of said scaling functions causes scaling.
18. A method according to any one of claims 1-17, wherein said scaling is determined based on a delta value between said operation parameter limit and an operation parameter value.
19. A method according to any one of claims 1-18, wherein scaling source information is provided to said user for a plurality of scaling functions.
20. A method according to any one of claims 1-19, wherein scaling source information is provided to said user for at least the five most dominant scaling functions21. A method according to any one of claims 1-20, wherein said robot controller (315) provides dynamic scaling source information to said user for the most dominant scaling function during one robot cycle.
22. A method according to any one of claims 1-21, wherein said plot of said scaling source information is provided to said user together with a plot illustrating a robotic arm trajectory.
23. A method according to any one of claims 1-22, wherein said plot of said scaling source information is provided to said user together with a plot illustrating a speed of motion of said robotic arm (101).
24. A method according to any one of claims 1-23, wherein said scaling source information is provided to said user as a pointer to a part of said robot control program.
25. A method according to any one of claims 1-24, wherein said scaling source information is provided to said user as a colour of a plot illustrating a moving pattern of said robotic arm (101).
26. A method according to any one of claims 1-25, wherein only a subset of said scaling source information is provided to said user27. A method according to any one of claims 1-26, wherein said operation parameter value is established directly from received operation data.
28. A method according to any one of claims 1-27, wherein said operation parameter value is derived from received operation data.
29. A method according to any one of claims 1-28, wherein said operation parameter value is provided from an external device.
30. A method according to any one of claims 1-29, wherein said operation parameter value is part of said robot control program.
31. A method according to any one of claims 1-30, wherein said operation parameter is established by said robot controller executing said robot control program in a feedforward loop.
32. A method according to any one of claims 1-31, wherein a control signal is generated by said robot controller (315) based on a value of at least one of said one or more operation parameter and wherein a scaling is applied to said one or more operational parameters.
33. A method according to any one of claims 1-32, wherein said evaluation is performed at least once per control cycle.
34. A method according to any one of claims 1-33, wherein said evaluation is performed based on a simulation of said robot control program.
35. A method according to any one of claims 1-34, wherein said operation parameter values are stored and evaluated after said robotic arm (101) has completed one operation cycle.
36. A method according to any one of claims 1-35, wherein said evaluation is executed by said robot controller (315).
37. A method according to any one of claims 1-36, wherein if a scaling is to be applied to one or more of said one or more operation parameters, then said robot controller(315) facilitates overruling said scaling of said at least one of said operational parameters to which scaling is to be applied.
38. A method according to any one of claims 1-37, wherein an alarm is provided to a user if a scaling is to be applied to one or more of said one or more operation parameters.
39. A method according to any one of claims 1-38, wherein said robot controller (315) is modifying said robot control program based on said scaling source information.
40. A method of controlling a robotic arm (101), said robotic arm (101) comprising a plurality of robot joints (303) connecting a robot base (103) and a tool flange (104), wherein a robot controller (315) is executing a robot control program to control movement of said robotic arm (101), wherein said execution is based on a plurality of operation parameters, wherein said method comprises an evaluation comprising executing a plurality of scaling functions, wherein each scaling function of said plurality of scaling functions specifies an operation parameter value limit for at least one operation parameter of said plurality of operation parameters, wherein said evaluation comprises obtaining an operation parameter value of said at least one operation parameter of said plurality of operation parameters, wherein said execution of said plurality of scaling functions comprises establishing a relationship between said operation parameter value limit and said operation parameter value, and wherein a control signal is generated by said robot controller (315) based on a result of said evaluation.
41. A method according to claim 40, wherein said control signal is generated based on a scaling which is applied to said one or more operational parameters.
42. A method according to any one of claims 40 or 41, wherein said method comprises a step of modifying at least a part of said robot control program based a result of said evaluation.
43. A method according to any one of claims 40-42, wherein said control comprises a method of evaluating movement of a robotic arm (101) according to any one of claims 1-39.
44. A controller of a robotic arm (101), said robotic arm (101) comprising a plurality of robot joints (303) connecting a robot base (103) and a tool flange (104), said controller is configured for executing a robot control program, based on a plurality of operation parameters, to control movement of said robotic arm (101) and for evaluating movement of said robotic arm (101), wherein said controller is configured for executing a plurality of scaling functions, wherein each scaling function of said plurality of scaling functions specifies an operation parameter value limit for at least one operation parameter of said plurality of operation parameters, wherein said controller is furthermore configured for obtaining an operation parameter value of said at least one operation parameter of said plurality of operation parameters from said robotic arm or from an external device, wherein said controller upon execution of said plurality of scaling functions is configured for evaluating the relationship between said operation parameter value limit and said obtained operation parameter value, and wherein said evaluation of said relationship results in scaling source information.
45. A controller according to claim 44, wherein said scaling source information comprises information of said at least one operation parameter being the source of said scaling function.
46. A controller according to any one of claims 44 or 45, wherein said scaling source information comprises information of which scaling function is causing said scaling, when or where on a robot trajectory said scaling is applied and how much the movement of said robotic arm is scaled.
47. A controller according to any one of claims 44-46 controlling a robotic arm according to the method specified in any of the previous claims 1-43.
48. A robot system (100) comprising a robotic arm (101), a robot controller (315) and a display (119), wherein said robotic arm (101) comprises a plurality of robot joints (303) connecting a robot base (103) and a tool flange (104), wherein said robot controller (315) is configured is executing a robot control program, based on a plurality of operation parameters, to control movement of said robotic arm (101) and for evaluating movement of said robotic arm (101), wherein said controller (315) is furthermore configured for obtaining an operation parameter value of at least one operation parameter of said plurality of operation parameters from said robotic arm (101) or from an external device, wherein said evaluation comprises executing a plurality of scaling functions, wherein each scaling function of said plurality of scaling functions specifies an operation parameter value limit for at least one operation parameter of said plurality of operation parameters, wherein said execution of said plurality of scaling functions comprises an evaluation of the relationship between said operation parameter value limit and said operation parameter value, wherein said evaluation of said relationship results in scaling source information, and wherein said display (119) is configured for displaying said scaling source information to a user of said robot system (100).
49. A robot system (100) according to claim 48, wherein said scaling source information comprises information of said at least one operation parameter being the source of said scaling function.
50. A robot system (100) according to any one of claims 48 or 49, wherein said scaling source information comprises information of which scaling function is causing said scaling, when or where on a robot trajectory said scaling is applied and how much the movement of said robotic arm (101) is scaled.
Citation Information
Patent Citations
Method, system and computer program product for determining tuned robotic motion instructions
US20190299409A1
System and method for setting up a robotic assembly operation
US20210339397A1