Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
A METHOD FOR CONTROLLING DISPLACEMENT OF A ROBOT
Document Type and Number:
WIPO Patent Application WO/2022/207075
Kind Code:
A1
Abstract:
A method for controlling displacement from an initial pose (A) to a target pose (B) of a robot (1) which is displaceable in a plurality of coordinates, comprises the steps of a) providing a movement command which specifies at least the target pose (B) and an nominal path (C) to be followed from the initial pose to the target pose (S1), b) associating to the command an allowed deviation from the nominal path (S2), and c) identifying a real path (C') which deviates from the nominal path by not more than the allowed deviation (S3-S5, S9) and d) controlling the robot (1) to move along said real path (S11).

Inventors:
WAHRBURG ARNE (DE)
ENAYATI NIMA (DE)
CLEVER DEBORA (DE)
NORRLÖF MIKAEL (SE)
BJORKMAN MATTIAS (SE)
SPAMPINATO GIACOMO (SE)
HAULIN JONAS (CN)
Application Number:
PCT/EP2021/058259
Publication Date:
October 06, 2022
Filing Date:
March 30, 2021
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
ABB SCHWEIZ AG (CH)
WAHRBURG ARNE (DE)
ENAYATI NIMA (DE)
CLEVER DEBORA (DE)
NORRLOEF MIKAEL (SE)
BJORKMAN MATTIAS (SE)
SPAMPINATO GIACOMO (SE)
HAULIN JONAS (CN)
International Classes:
B25J9/16
Domestic Patent References:
WO2011042049A12011-04-14
Foreign References:
US20110106308A12011-05-05
US20190366543A12019-12-05
US20210001483A12021-01-07
US20140025191A12014-01-23
Attorney, Agent or Firm:
BEETZ & PARTNER MBB (DE)
Download PDF:
Claims:
Claims

1. A method for controlling displacement from an initial pose (A) to a target pose (B) of a robot (1) which is displaceable in a plurali ty of coordinates, comprising the step of a) providing a movement command which specifies at least the target pose (B) and an nominal path (C) to be followed from the initial pose to the target pose (S1), characterized by b) associating to the command an allowed deviation from the nominal path (S2), and c) identifying a real path (C’) which deviates from the nominal path by not more than the allowed deviation (S3-S5, S9) and d) controlling the robot (1) to move along said real path (S11).

2. The method of claim 1 , wherein the real path (C’) is determined (S3-S5), and control information associated to said real path is stored (S6) before the robot has reached the initial pose (A), and said control information is retrieved in order to carry out step d).

3. The method of claim 1 or 2, wherein the real path is determined by minimizing a predetermined cost function (S3, S9). 4. A method for controlling displacement of a robot in a plurality of coordinates from an initial pose (A) to a target pose (B), com prising the step of a) providing a movement command which specifies at least an nominal target pose (B) (S1), characterized by b) associating to the command an allowed deviation from the nominal target pose (S2), c) identifying a real target pose (B’) which deviates from the nominal target pose (B) by not more than the allowed deviation (S3-S5, S9), d) controlling the robot to move to said real target pose (S11).

5. The method of claim 4, wherein the real target pose is deter mined (S3-S5), and control information associated to said real target pose is stored (S6) before the robot has reached the initial pose (A), and said control information is retrieved (S7) in order to carry out step d).

6. The method of claim 4 or 5, wherein the real target pose is de termined by minimizing a predetermined cost function (S3, S9). 7. The method of claim 3 or 6, wherein the movement command or a setting command preceding it specifies the cost function.

8. The method of claim 3, 6 or 7, wherein the cost function is de signed to increase along with one or more of the following pa rameters:

- execution time of the movement command,

- total energy required to execute the movement command, peak power required to execute the movement command, load imposed on each one of actuators of the robot when executing the command,

- closeness of a joint speed of the robot to a resonant speed.

9. The method of claim 3, 6, 7 or 8, wherein a value derived from at least one cost function is displayed to a user.

10. The method of claim 3 or any of claims 6 to 9, wherein the cost function is defined by a user. 11. The method of claim 3 or any of claims 6 to 10, wherein the pre determined cost function is dependent on a plurality of parame ters, of which at least one varies with time, or wherein the prede- termined cost function is one from a plurality of cost functions associated to different sets of values of a plurality of parameters, the one function being selected based on a current set of values of said parameters. 12. The method of any of claims 1 to 11, further comprising the steps of monitoring a vicinity of the robot (S8) for a change, in particular a change of position of an object (10) in said vicinity, wherein step c) is repeated (S9) when a change has been ob served in the monitoring step (S8).

13. The method of any of claims 1 to 11, further comprising the steps of monitoring a vicinity of the robot (S8), in particular of monitoring positions of objects in said vicinity, deciding a safe deviation based on said monitoring, and setting said safe devia tion as the allowed deviation in the movement command.

Description:
A method for controlling displacement of a robot

The present invention relates to a method for controlling displacement from an initial pose to a target pose of a robot which is displaceable in a plurality of coordinates.

Every robot has an inherent coordinate system, in which each coordinate is associated to a specific actuator, and isolated operation of that actuator will modify only the coordinate associated to it. In articulated robots, these in herent coordinates are angular coordinates, and a position in Cartesian space the robot will assume when the actuators are set to the coordinates specified by a given inherent coordinate vector can be calculated quite straightforwardly when dimensions of the robot’s links are known. Finding out an inherent coordinate vector associated to a desired position in Carte sian space is a more complicated problem, which, depending on the design of the robot and the position chosen, may have a single solution, several ones or none at all. Things get still more complicated if not only the position of a reference point of the robot, e.g. a tool center point, in Cartesian space, is taken into account, but also the orientation in space of a tool or other object attached to said reference point. In general, it is therefore im practical for a human user to control displacement of a robot by specifying a target pose directly in the robot’s inherent coordinate system. Instead, the user will specify a target pose in some more convenient coordinate system, and the task of finding an inherent coordinate vector which will yield this pose, and of setting the actuators of the robot to their respective coordinate values specified by the inherent coordinate vector is left to a dedicated con troller.

The controller receives the information needed for its task by means of pro- gram instructions which will specify at least a target pose and an nominal path by which the robot is meant to reach the target pose. A program in struction will not necessarily specify a start pose, since the start pose of the robot at the beginning of execution of a movement instruction can either be directly detected, or can be assumed to be the target pose of the most re- cently executed movement instruction. Since there is an infinite variety of paths by which the robot might move from start pose to target pose, the instruction specifies the type of path to be followed, e.g. a path where the reference point of the robot moves along a straight line, or a path which results from all inherent coordinates of the robot shifting at a constant rate set so that all inherent coordinates reach their respective target value at the same time.

Such a path will be referred to as a nominal path here, because it is in fact just a geometrical concept. In practice imperfections of control will cause the robot to follow a path that deviates to a certain extent from the nominal path. On the one hand, such deviations must be strictly limited in order to ensure that a deviation from the nominal path will not cause the robot to collide with an object located adjacent to the nominal path. On the other hand, the stricter the pose of the robot is controlled, be it in the course of its displacement or at the target pose itself, the slower will be its displacement and, hence, its productivity. Further, even if it has been checked once that a planned path for the robot is safe to follow because the distance from foreign objects is large enough, such a check will have to be repeated whenever one of the foreign objects in the vicinity of the robot is displaced. Ensuring safe operation of a robot in an environment in which objects may move in a manner not coordinated with the movement of the robot is there fore a difficult and time-consuming task. An object of the present invention is to provide a method for controlling dis placement of a robot which enables time-efficient operation while satisfying safety requirements and/or other constraints.

According to a first aspect of the invention, the object is achieved by a method for controlling displacement from an initial pose to a target pose of a robot which is displaceable in a plurality of coordinates, comprising the steps of a) providing a movement command which specifies at least the target pose and an nominal path to be followed from the initial pose to the target pose, b) associating to the command an allowed deviation from the nominal path, c) identifying a real path which deviates from the nominal path by not more than the allowed deviation and d) controlling the robot to move along said real path.

According to a second aspect of the invention, the object is achieved by a method for controlling displacement of a robot in a plurality of coordinates from an initial pose to a target pose, comprising the step of a) providing a movement command which specifies at least an nominal target pose, characterized by b) associating to the command an allowed deviation from the nominal target pose, and c) identifying a real target pose which deviates from the nominal target pose by not more than the allowed deviation d) controlling the robot to move to said real target pose.

Between steps c)and d), a step of displaying the identified real path, and/or of the identified real pose to a user on a display may be provided, so as to allow the user to judge appropriateness of the planned real path and/or pose, and to approve or discard it.

With the allowed deviation defined, there is no need for the controller to guide the robot as closely along the nominal path or as closely to the target pose as possible. Since unnecessary movements of the robot can be avoided, the target pose can be reached more easily, faster and/or with less expense of energy. Since not any deviation from the nominal path must be suppressed but only those that would exceed the allowed thresh- old, longer reaction times of the controller can be allowed, and since cor rective forces can be applied for a longer time, their size can be reduced, allowing for smoother and more energy-efficient displacement.

The step of associating can be carried out by specifying the allowed devia- tion in the movement command of step a) itself, or by some other input channel, such as a setting command transmitted to the controller before the movement command is due to be executed.

In principle, whenever the controller is input a movement command in step a), it might determine anew and in real time an associated real path and then control the robot to move along it. In practice, however, whenever a movement command is input to the controller in step a), the command is usually part of a program which has been established earlier in an offline or motion planning mode, so that between the time the program is established and the time it is executed, there is time to identify the real path, and to calculate and store control information which, when retrieved and supplied to the robot by the controller, will cause the robot to move along the real path as planned. Further, since the program is usually carried out repeated ly, it is possible to observe the real path resulting from stored control infor- mation, to compare it to the nominal path, and to optimize the stored control information so that discrepancies between the real path and the nominal one are minimized. With a deviation allowed, it is obvious that there will be no single possible real path associated to the nominal path, but an infinite variety of these. Among these, the one best suiting specific requirements may be deter- mined by minimizing a cost function.

Similar to the allowed deviation, the cost function to be minimized may be specified by the movement command itself, of by a setting command which should preferably precede the movement command.

The cost function may take account of any parameter found expedient by the system designer. Typically, the cost function might be designed to in crease along with one or more of the following parameters: execution time of the movement command, - total energy required to execute the movement command, peak power required to execute the movement command, load imposed on each one of actuators of the robot when executing the command, closeness of a joint speed of the robot to a resonant speed.

Gearboxes typically used in the arms of small robots are strain wave gears. While these have a number of positive properties, one downside is that they suffer from small transmission errors. These transmission errors in duce torque ripple effects that vary with the speed of motion. Once the speed of one of the joints results in the torque ripple frequency coinciding with a mechanical vibration frequency of the arm, the ripple can be ampli fied. By penalizing operation of the robot at such joint speeds by a high value of the cost function, times in which vibrations of the robot arm can be excited are minimized, and precision of the robot operation is improved.

When minimization of the cost function is carried out in the motion planning mode, it may be appropriate to display to a user values of one or more cost functions associated to the nominal path or pose, and to the identified real path or pose, so that the user can judge the advantage provided by the identified real path or pose over the nominal one. Further, the user can be allowed to define the cost function that is to be used. In the most general case, this might be done by allowing him to input the function in the form of computer-executable code or a mathematic for mula to be parsed and automatically converted into executable code, in practice, it will more frequently be done by allowing the user to choose be- tween a plurality of predefined functions, or, if the cost function is a weighted sum of terms dependent on different parameters, by having the user input weighting parameters associated to each of these terms. In this case, it may be useful to display to the user the value of the cost function thus defined, and/or the path or pose associated to said value, so that the cost value or the path displayed doesn’t meet the user’s expectations, he may re-define the cost function.

If the predetermined cost function is dependent on a plurality of parame ters, of which at least one varies with time, the result of cost function mini- mization is likely to vary depending on the time-variable parameter, too.. Consider e.g. the case where the cost function is a weighted sum of cycle time and power consumption, and the weighting coefficient of power consumption is variable reflecting cost of power that is dependent on the time if day, on the availability of wind power, or the like. Here, when power is cheap or availability is good, the result of minimization can be expected to be a path which is quick to move along, but which is not necessarily en ergy-efficient. The higher the cost of operating power for the robot is, or the less power is available, the more likely it is that the result of minimization is a path which takes long to move along, but where power consumption is low. This can be taken account of by carrying out the minimization in real time, based on the value of the time-variable parameter at the very instant of carrying out the minimization. Doing this will require huge processing power. If the time-varying parameter can take only a plurality of discrete values, it is possible to save processing power by carrying out the minimi zation for a given movement command in advance for any value the time- varying parameter may take, store the real paths thus found, and, when the movement command actually has to be executed, retrieving from storage the real path that is associated to the current value of the time-variable pa rameter,

If an object in the vicinity of the robot moves, it may block the nominal path, the nominal target pose, or part of the allowed deviation range around these. In such a case, above step c) may be repeated taking account of the changed position of the object, in order to find a new path to the target pose that can be used without a disk of collision with the moved object. Since such a new path is still within the deviation range, there is no risk of conflict with other objects; therefore a switchover to the new path is inherently safe and can be carried out autonomously without intervention by a user.

If positions of objects in the vicinity of the robot are monitored, it is possible to judge how close the robot will come to any of these when following the nominal path, and based thereon, a safe deviation can be determined by which the robot may deviate from the nominal path without risking a colli sion. By setting said safe deviation as the allowed deviation in the move ment command, operation of the robot can be adapted to objects moving in the vicinity of the robot. Adjustment of the allowed deviation can be done whenever, during operation of the robot, movement of an object is detect ed.

Further features and advantages of the invention will become apparent from the following description of embodiments of it, referring to the append- ed drawings. Fig. 1 is a schematic diagram of a robot system in which the invention is applied;

Fig. 2 is a schematic representation of a job to be executed by the robot system; and

Fig. 3 illustrates steps of the method of the invention.

Fig. 1 is a highly schematic representation of a robot system. The robot system comprises an articulate robot 1 of conventional design, comprising a plurality of links 2, joints 3 by which the links 2 are rotatably connected to each other, and actuators, not shown, for driving rotation of the links 2. A reference point 4 at a distal end of the articulate robot 1 may be a gripper for seizing and manipulating a workpiece, a tool operated by the robot, or the like.

A controller 5 is operatively connected to the articulated robot 1 and to a memory 6 and is adapted to control displacement of the robot 1 based on control information stored in memory 6.

One form in which the control information is stored is a program, i. e. a se ries of instructions to be executed successively by the robot and specifying where the robot is to move and possibly, what it is to do there. Another is actuator control data such as a target speed or torque for each actuator of the robot, and which must be supplied to the actuators with appropriate timing to produce a desired movement. A processor for translating program instructions into actuator control data is denoted 7.

A workstation or personal computer 8 is provided for writing thereon com- mands of the program (step S1 of Fig. 3). Software on the workstation 8 comprises a kinematic model of the robot, enabling the workstation to pre dict the movement by which the robot will react to a specific movement command or actuator control information. Further, the workstation 8 stores a model of the vicinity of the robot and of objects in it. A camera 9 or other appropriate sensor may be provided for monitoring the vicinity of the robot 1 and updating the model, if changes in it are detected.

Fig. 2 illustrates in a highly abstract form, the model of the vicinity of the robot 1. Movement of the robot 1 can be regarded as taking place in a hy perspace the number of dimensions of which is the number of actuators or of degrees of freedom of the robot 1. For the sake of simplicity, only two dimensions x, y are shown in Fig. 2. The robot 1 is located at a point A=(xo, yO), and its program comprises a command 11 which instructs it to move to a point B=(x1 , y1). The command might for instance be a linear displace ment command (LMOVE), instructing the robot to move to B along a straight line in Cartesian space. For the sake of simplicity, it is assumed that the coordinates x, y are Cartesian, too, and that therefore, the move ment from A to B will be along a straight line in Fig. 2, too. This straight line C passes near an object 10 which the robot 1 must not hit. It is readily ap parent from the diagram of Fig. 2 that this will not happen if the robot truly follows the straight line C. In order to move along the straight line, various actuators of the robot must operate with precisely controlled speed and timings. The more strictly the straight line must be followed, the longer the movement is likely to take.

When the program for the robot 1 is being written, the above movement from A to B is therefore encoded by an instruction 11 which specifies not only a straight movement and target coordinates x1, y1 of the movement, but also an acceptable deviation (pathdev) of the true path of the robot 1 from the prescribed straight line C. Such a deviation may be specified manually by a user who is developing the program on the workstation 8, after having been shown the diagram of Fig. 2 on a display of the work station 8 and having judged or measured the distance d between the line C and the object 10 shown; it might also be calculated by the workstation based on the known coordinates of line C and object 10 and entered as a parameter into the movement command automatically or, possibly after having been proposed to the user and approved or, possibly amended by him (step S2). The deviation can thus be thought of as defining the width of a space extending along and around line C, in which the robot is safe from collision, no matter where in this space it is located.

A deviation may be allowable not only in the course of a movement from A to B, but also at the end thereof. If, for example, the purpose of the robot moving to B is to place an object on a surface or drop it into an opening, this purpose can be met when the robot moves precisely to B, but also when it moves to some point nearby on the same surface or above the same opening. A region B’ around point B in Fig. 2 stands for a region where, instead of point B precisely, the movement of the robot 1 might be allowed to end. Such a situation is reflected by the movement command 11 specifying, not only a single target pose such as coordinates x1 , y1 , but also an allowed deviation (targetdev) of the finally reached pose from the target pose. Processor 7 converts the movement command into actuator control infor mation taking account of the allowed path and/or target pose deviations. To this effect, it determines a real path to be followed by the robot, i.e. a path that differs from the nominal path specified in the command, but by not more than the allowed deviation, by finding a path which minimizes a given cost function (step S3). Techniques for finding such a path by minimizing a predetermined cost function are known in the art and are therefore not de scribed in detail here. Processor 7 comes with a plurality of predefined cost functions, one for evaluating the time required by robot 1 for executing the movement defined in a program command, and others for evaluating the amount of energy required for the movement, and/or peak loads. The re sults of minimizing each one of these cost functions are displayed to the user (S4), for example by displaying, in the diagram of Fig. 2 shown to him, a suggested real path C’, and, possibly, the cost saving that would be achieved by adopting the suggested path. In the example of Fig. 2, path C’ is the result of minimizing execution time, and is depicted accompanied by a label 12 indicating the amount of time that would be saved by adopting path C’ instead of path C. Paths obtained by minimizing the other cost func tions and their associated cost savings can be shown in the same diagram, and the user can be allowed to select one of these (S5) e.g. by clicking on the associated label, whereupon the selected cost function is recorded in command 11 as a further argument (costf).

One of the cost functions evaluated by processor 7 can be a linear combi nation of the others. Weighting coefficients of this linear combination can be input by the user. A path found by minimizing this cost function will there fore be a compromise between the competing requirements of reducing execution time, energy and load.

When the user accepts a suggested real path C’, associated to command 11 , processor 7 records a description thereof in memory 6 (S6), and a next program command is processed in the same way. The description can be in the form of coordinates of the real path, or of actuator control information (t, w) which, when supplied to the actuators of the robot 1 , will cause it to move along the path C’.

When the entire program has been processed in this way, the robot 1 is ready to execute the program. To this effect, controller 5 retrieves the real path description from memory 6 (S7) and uses it for controlling the actua tors of the robot 1 (S11).

According to an advanced variant of the method, step S3 is carried out not for a single cost function, but for two or more cost functions, and for each of these, a real path C’ determined for it in step S3 is stored. In that way, when the command to move from A to B is actually input into controller 5 to be executed, controller 5 retrieves from memory 6 the real path C’ or its control information that is associated to the currently valid cost function.

The currently valid cost function can be set arbitrarily by specifying it in the movement command or in a command that is sent to controller 5 before the movement command. Alternatively or additionally, the currently valid cost function may be determined by a timer or some other input to the controller 5. In a preferred embodiment, the cost function is a weighted sum of at least a first term representative of the time required to carry out the speci fied movement, and a second term representative of the power consumed for execution of the movement. This latter term is weighted by a weighting coefficient representative of the cost of electric power: this coefficient can take a limited number of predetermined values, for example the cost of power may be high when demand is high in the daytime, and low at night. Minimization of the cost function will then yield different results according to the cost of power, and the real path C’ by which the robot moves while the cost of power is high will be slower, but more energy-efficient than the real path C’ adopted while power is cheap.

The program can be executed in this way as long as the positions of the objects in the vicinity of the robot remains unchanged. In practice, in partic ular in collaborative applications, however, some of the objects may be mobile, or new objects may enter the vicinity of the robot while the program is being executed. Camera 9 is provided in order to detect when that hap pens.

Let us assume that in step S8 a change is detected in the vicinity of the robot, e.g. the camera 9 detects object 10 approaching path C of the robot 1 in such a way that while the robot is moving somewhere within its allowed deviation range off path C, a collision with object 10 would be possible. In that case, safety of the real path C’ determined earlier is no longer guaran teed. Controller 5 therefore calls processor 7 to solve once more the cost function minimization problem (S9), this time additionally considering the constraints imposed by the detected movement of object 10. If a new path is found that solves the minimization problem (S10), then the robot is con trolled to move from A to B along this path (S11), safely avoiding object 10, an also safe from all other objects in its vicinity, since the new path is still within the allowed deviation range of nominal path C. Thus, due to the al lowed deviation being specified in the movement command, the system is capable of adapting autonomously to a change in its environment, and the movement of object 10 does not necessarily interrupt the operation of the robot 1.

Another possibility would be to adapt the allowed deviation in real time when a change is detected. For example, if the object 10 had been the rea son for setting the deviation in step S2, a larger deviation might be allowed if the object 10 is detected to move away from path C. If step S9 is then executed taking account of the larger deviation, there is a chance of finding a new path which is more efficient than the previous one..

Reference numerals 1 robot

2 link

3 joint

4 reference point

5 controller 6 memory

7 processor

8 workstation

9 camera

10 object 11 command

12 label