OPERATING A ROBOT
Patent Information
- Application Number
- DE502018016317
- Authority / Receiving Office
- DE · DE
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2017-12-08
- Filing Date
- 2018-11-12
- Publication Date
- 2026-01-15
- Estimated Expiration
- 2038-11-12
AI Technical Summary
Existing methods struggle to effectively manage robot operations when following work paths relative to moving reference systems, such as conveyor belts, leading to potential overloading and inefficiencies.
A method and control system that predict and monitor the pose and temporal derivatives of a robot relative to a moving reference system, allowing for compliance with predefined limits and enabling smooth traversal of work paths by adjusting speed profiles and initiating countermeasures if limits are exceeded.
Enables the robot to traverse work paths more smoothly and efficiently by predicting and adjusting to the movement of the reference system, preventing overloading and ensuring adherence to specified parameters.
Description
[0001] The present invention relates to a method and a control system for operating a robot, as well as a robot arrangement comprising the robot and the control system, and a computer program product for carrying out the method.
[0002] It is known from internal company practice to specify the working paths of robots relative to moving reference systems, for example to process and / or move workpieces on a conveyor belt with the robot.
[0003] DE 103 00 606 A1 relates to a method for approaching a moving unit load via an approach path, wherein an approach position of the unit load is located within an approach area, wherein in a first calculation step control data sets are calculated in advance, wherein the control data sets contain a movement set that includes path segments that represent the approach path for an approach position, wherein in the first calculation step for the movement set a first defined approach position of the unit load is assumed, wherein the movement set is optimized for the first defined position of the unit load with respect to the approach speed, wherein immediately before the start of the movement the current approach position of the unit load is determined for each path segment, and a second calculation step is carried out in which the path segment to be traveled is changed depending on the determined current position of the unit load.so that the approach path is shifted in the direction of the approach position, whereby an approach movement is carried out by driving along the path segment determined in the second calculation step.
[0004] According to DE 101 62 967 A1, the current position of a workpiece is successively updated in a conveyor coordinate system, and the path of a robot to follow the workpiece is formed by transforming the position of the workpiece from the conveyor coordinate system into a robot coordinate system.
[0005] The object of the present invention is to improve the operation of robots when following such work paths which are predetermined relative to moving reference systems.
[0006] This problem is solved by a method with the features of claim 1. Claims 9-11 protect a control system, robot arrangement, or computer program product for carrying out a method described herein. The dependent claims relate to advantageous embodiments.
[0007] According to one embodiment of the present invention, a method for operating a robot or a robot arrangement with the robot comprises the following steps: Specifying one or more, in particular sequential, work paths of the robot relative to a moving reference system; predicting (each) one or more pose(s) of the reference system, in particular relative to an environment or robot base, for which one or more of the specified work paths are to be traversed, based on a current pose of the reference system and a velocity of the reference system, as well as a time until this pose of the reference system is reached; predicting one or more positions of the robot and time derivatives of the position(s) of the robot, including a velocity and acceleration of the robot in the (respective) position, in particular relative to an environment or robot base, for the (respective) work path to be traversed, based on the predicted pose(s) of the reference system; and monitoring compliance with a specified limit for this or the predicted position(s).these positions and temporal derivatives.
[0008] By predicting a (future) pose of the reference system, a (future) position of the robot can be predicted in a design based on the work path specified relative to the reference system, and this position can be monitored to ensure compliance with a specified monitoring requirement.
[0009] In one implementation, the velocity of the reference system, particularly relative to the environment or robot base, is also predicted in the predicted pose. In another implementation, a (future), specifically first and / or second, time derivative of the robot's position based on this predicted velocity of the reference system can be additionally or alternatively predicted, and this time derivative(s) can be monitored to ensure compliance with a predefined set of parameters. If the velocity of the reference system is constant (predefined), it can be predicted in one implementation as the velocity of the reference system in the predicted pose.
[0010] In one embodiment, the robot has a robot arm with a robot base that is stationary or fixed to the environment or location and / or at least three, in particular at least six, in one embodiment at least seven, axes or joints that are adjustable by, in particular electrical, drives or are adjusted (for following the work path(s)).
[0011] The reference system is moved in one embodiment by a device set up or used for this purpose, in particular a conveying device or conveying means such as a conveyor belt or the like, or another robot, or is stationary relative to a moving conveying surface of the conveying device or an end effector of the other robot.
[0012] The present invention can be used with particular success in such robot arrangements.
[0013] A work path can have one or more predefined poses of a robot-fixed reference, in particular an end effector or TCP, of the robot and / or a predefined connection between them, and in particular be predefined by this. It is predefined in one embodiment in a Cartesian workspace and / or by a stored work program of or for the robot(s), which is executed to operate the robot. Hereinafter, both the programming or storage and the reading of a stored work path or its pose(s) and / or connections are referred to as predefining the work path within the meaning of the present invention.
[0014] In general, a pose comprises a one-, two-, or three-dimensional position and / or a one-, two-, or three-dimensional orientation. Accordingly, a pose of the reference system can, in particular, define or specify its position and / or orientation relative to the environment or robot base; a point on a work path can, in particular, define a position and / or orientation of the robot-fixed reference relative to the moving reference system.
[0015] The velocity of the reference system, on the basis of which the position(s) of the reference system are predicted, can in one embodiment be a detected or actual velocity, particularly in the current position, of the reference system, and / or a predetermined or target velocity, particularly in the current position, of the reference system. In one embodiment, it can be a currently detected velocity of the reference system. Likewise, in another embodiment, the current position of the reference system can be a currently detected position. In one embodiment, the current position and / or velocity of the reference system is detected by appropriate means, particularly sensors, of the device for moving the reference system and transmitted to the controller.
[0016] The position of the robot is a position of one or more, in particular all, (movement) axes of the robot.
[0017] Accordingly, the temporal derivative of a robot's position includes a velocity and / or acceleration of one or more, in particular all, (motion) axes of the robot.
[0018] The position or temporal derivative is thus predicted in a version within the axis space of the robot, where boundaries can be monitored particularly advantageously.
[0019] The specified limitation, in one embodiment, limits the one- or multi-dimensional load on the robot, in particular axle, motor, and / or gearbox loads, especially torques. The robot load is predicted using a dynamic model of the robot based on its predicted position, speed, and acceleration in that position.
[0020] This allows the robot to be overloaded when planning a speed profile for the work path, in particular by replanning the planned speed profile before traversing the work path or speed profile if an exceedance of the specified limit in the predicted position or time derivative is predicted.
[0021] Additionally, the specified boundary in one version can have a one- or multi-dimensional boundary of a robot's working area, in particular be.
[0022] This allows for the prediction, in advance of a scenario where the work area is left during the (future) traversal of the specified work path due to the movement of the reference system, and for appropriate countermeasures to be initiated, in particular an error message is issued, the reference system is slowed down, especially stopped, and / or the specified work path is changed.
[0023] The time(s) until the pose(s) are reached is / are predicted in a version based on a current working path that is currently being traveled, in particular based on a planned speed profile for this purpose.
[0024] If a speed profile is planned for a work path, the time at which the work path will be completed can be predicted, particularly through appropriate time integration. Since the work path to be traversed follows the current work path in time, either immediately or after a loop, the start of the traversal of the work path to be traversed, and, if the speed profile for this work path is known, especially if planned, the reaching of further points along this work path or speed profile, can also be predicted, particularly through appropriate time integration.
[0025] Similarly, the work path to be traversed can also begin after a predetermined waiting period, or be predefined accordingly. In this case, the time(s) until reaching the position(s) can be predicted based on the predetermined waiting time.
[0026] In one embodiment, a speed profile, particularly a speed profile along the path and / or relative to the moving reference frame, is planned for the current work path, especially during waiting time or while the robot is traversing it. This speed profile is planned in a known manner as a one- or multi-dimensional trapezoidal or triangular speed profile and / or with a predefined acceleration or deceleration and a predefined (maximum or permissible) constant travel speed. Then, in another embodiment, the position(s) or time derivative(s) are predicted based on this planned speed profile. This allows for improved monitoring of the robot's speeds, accelerations, and / or loads. In a further development, the planned speed profile can be replanned as needed, depending on the monitoring results.
[0027] In one implementation, the (future) position of the reference system is extrapolated (in each case) based on the current position and the velocity of the reference system, as well as the predicted time, particularly linearly. This allows it to be predicted computationally advantageously in one implementation.
[0028] In one embodiment, the robot, in particular its robot-fixed reference, is synchronized with the moving reference system, whereby the pose(s) of the reference system is / are predicted after this synchronization.
[0029] This allows them to be predicted in a computationally advantageous way in one version.
[0030] In one embodiment, a sliding motion onto and / or away from the work path is specified; in another embodiment, this is done in a known manner by specifying a radius around a point on the work path that determines when the tool touches down onto or leaves the work path. Then, in another embodiment, the time until the pose(s) are reached (in each case) is predicted based on a sliding motion, particularly a planned one.
[0031] By overriding, work paths can be traversed advantageously, particularly more smoothly and / or quickly. However, overriding can shift the point at which traversing the work path begins, as it no longer starts at its initial point, but at a subsequent point along the path at a non-zero speed. Consequently, the moving reference frame also exhibits different poses at the points along the work path. By appropriately considering this shift when predicting the time until the reference frame reaches the pose(s), adherence to a predefined limit can be advantageously monitored even in such a case.
[0032] According to one embodiment of the present invention, a control system for operating a robot or a robot arrangement, in particular hardware and / or software, especially programming technology, for carrying out a method described herein, has in one embodiment: Means for specifying one or more, in particular sequential, working paths of the robot relative to a moving reference system; means for predicting (each) one or more pose(s) of the reference system, in particular relative to an environment or robot base, for which one or more of the specified working paths are based on a current pose of the reference system and a velocity of the reference system as well as a time until this pose of the reference system is reached; means for predicting one or more positions of the robot and / or one or more time derivatives of the position(s) of the robot, in particular a velocity and / or acceleration of the robot in the (respective) position or relative to an environment orRobot base for the (respective) work path to be followed based on the predicted pose(s) of the reference system; and means for monitoring compliance with a predefined limit at this or these position(s) or time derivative(s).
[0033] In one version, the control system or its means has: Means for predicting the velocity of the reference system in the predicted pose and means for predicting the time derivative based on this predicted velocity; and / or means for predicting the time until the pose is reached based on a current work path, in particular based on a planned velocity profile for this purpose, or a predetermined waiting time; and / or means for planning a velocity profile for the work path to be traversed and means for predicting the position or...Temporal derivation based on this planned velocity profile; and / or means for extrapolating the pose, in particular linearly, based on the current pose and the velocity of the reference system as well as the predicted time; and / or means for synchronizing the robot with the moving reference system before predicting the pose; and / or means for specifying a pass onto and / or from the work path to be traversed and means for predicting the time until the pose is reached based on a pass movement.
[0034] A means according to the present invention can be configured as hardware and / or software, in particular comprising a processing unit, preferably a microprocessor (CPU), preferably connected to a storage and / or bus system via data or signals, and / or comprising one or more programs or program modules. The CPU can be configured to execute instructions implemented as a program stored in a storage system, to acquire input signals from a data bus, and / or to output signals to a data bus. A storage system can comprise one or more, in particular different, storage media, in particular optical, magnetic, solid-state, and / or other non-volatile media. The program can be configured such that it embodies or is capable of executing the methods described herein, enabling the CPU to perform the steps of such methods and thus, in particular, to control the robot or other device.The robot arrangement can be operated, in particular controlled or monitored. A computer program product can, in one embodiment, have a storage medium, in particular a non-volatile one, for storing a program or with a program stored thereon, in particular being such that the execution of this program causes a system or a controller, in particular a computer, to execute a method described herein or one or more of its steps.
[0035] In one implementation, one or more, in particular all, steps of the process are carried out fully or partially automatically, in particular by the control system or its means.
[0036] Further advantages and features will become apparent from the dependent claims and the exemplary embodiments. These are shown, in part schematically, as follows: Fig. 1: a robot arrangement according to an embodiment of the present invention with a robot; Fig. 2: speed profiles; and Fig. 3: a method for operating the robot according to an embodiment of the present invention.
[0037] Fig. 1 Figure 1 shows a robot arrangement according to an embodiment of the present invention with a conveyor belt 10 moving at a constant speed V 10, a robot 20 and a (robot) controller 3 for controlling the robot.
[0038] In the embodiment, the robot 20 with its end effector 21 is to traverse several work paths one after the other, which are defined in a step S5 relative to a conveyor-fixed reference system { 10 X, 10 Y, 10 Z} by linear movements.
[0039] The end effector 21 is to start from a point B0 in the reference system and make a linear movement perpendicular to the conveying direction to a point B1, and then from this point in the reference system make a linear movement in the conveying direction to a point B2.
[0040] In step S10, the control system 3 determines, for an initial time point, a pose and relative velocity of the end effector 21 in the reference system based on a known pose and velocity of the conveyor belt 10 and the position of the robot 10, determines an initial working path from this pose of the end effector 21 in the reference system to point B0, and plans a velocity triangle profile for this purpose that reduces the relative velocity to zero.
[0041] In step S20, the traversal of this initial working path is started and a time counter τ is initialized (τ = 0, cf. Fig. 2 ).
[0042] While the initial working path is being traversed and the current time τ IPO (elapsed since initialization) is constantly updated, in step S30 a velocity trapezoidal profile is planned for the next working path B0 → B1 to be traversed, which begins at the time τ N, at which the initial working path will have been traversed and which is known from the planning of the initial velocity triangle profile that is currently being traversed.
[0043] This velocity trapezoidal profile for the working path B0 → B1 is planned in a manner known per se with a predetermined acceleration $ACC for the initial acceleration phase or ramp and the symmetrical final deceleration phase or ramp, as well as a predetermined constant speed $VEL, which, however, may not be reached if the acceleration is too low.
[0044] The velocity trapezoidal profile is initially planned with a local time t, in which it begins at the (local) time t0 = 0, the acceleration phase or ramp lasts until t1, the (possible) constant speed phase until the (local) time t2, and in which it ends at the (local) time t3.
[0045] For these local times t0, ..., t3, the times τ0*, ..., τ3* from the current time to the respective time t0, ..., t3 are predicted by adding the time τ N (since initialization of the time counter or start of synchronization), at which the initial working path will have been completed, and subtracting the current time (elapsed since initialization) τ IPO: τ0* = t0 + τ N - τ IPO , ..., τ3* = t3 + τ N - τ IPO . Starting from the current position x 10 (τ IPO ) and constant velocity V 10 of the conveyor belt 10, the position and constant velocity of the conveyor belt 10 that the conveyor belt will have in τ0*, τ1*, τ2* and τ3* are predicted by linear extrapolation: x 10 (τ0*) ≈ x 10 (τ IPO ) + V 10 ·τ0*, ..., x 10 (τ3*) ≈ x 10 (τ IPO ) + V 10 ·τ3*; V 10 (τ0*) = V 10 (τ1*) =...= V 10 (τ3*) = V 10 .
[0046] In step S30, the axis positions, velocities and accelerations of the robot 20 in τ0*, τ1*, τ2* and τ3* are predicted in a manner known per se using backward transformations and numerical integration or differentiation.
[0047] These are now checked in step S40 for exceeding predefined limits, for example, whether they lie outside a robot's working area or exceed permissible axis speeds or accelerations. Using a dynamic model of the robot, it is checked whether permissible axis loads are exceeded in τ0*, τ1*, τ2*, and τ3*.
[0048] In such a case (S40: "Y") the planning can be adjusted, for example the specified acceleration $ACC and / or constant speed $VEL can be reduced in one step S45 and the velocity trapezoidal profile for the working path B0 → B1 can be replanned.
[0049] Otherwise (S40: "N"), after completing the initial working path, the traversal of the working path B0 → B1 with the planned velocity trapezoidal profile is started in a step S50.
[0050] While the working path B0 → B1 is being traversed and the current time τ IPO (elapsed since initialization) is continuously updated, in step S60, in an analogous manner as described above with reference to step S30, a new velocity trapezoidal profile is planned for the next working path B1 → B2 to be traversed, which begins with the new time τ N, at which the working path B0 → B1 will have been traversed and which is known from the planning of the velocity trapezoidal profile that is currently being traversed.
[0051] In particular, in step S60, the axis positions, velocities and accelerations of the robot 20 in τ0*, τ1*, τ2* and τ3* are predicted using backward transformations and numerical integration or differentiation. These correspond to the time until the new (planned) velocity trapezoidal profile for the next work path B1 → B2 begins (τ0*), the acceleration phase or ramp is completed (τ1*), the (possible) constant speed phase is completed (τ2*), or the deceleration phase or ramp is completed (τ3*).
[0052] In step S70, these axis positions, speeds and accelerations are checked for exceeding the specified limits and in such a case (S70: "Y") the planning is adjusted, for example the specified acceleration $ACC and / or constant speed $VEL are reduced in step S75 and the speed trapezoidal profile for the working path B0 → B1 is replanned.
[0053] Otherwise (S70: "N"), after completing the work path B0 → B1, step S50 begins the traversal of the work path B1 → B2 with the planned speed trapezoidal profile and, if necessary, further work paths are planned in an analogous manner until all work paths have been traversed (S80: "Y"), or steps S50 - S70 are repeated as long as not all specified work paths have been traversed (S80: "N").
[0054] In the example above, the speed profiles for the initial working path → B0 as well as the working paths B0 → B1 and B1 → B2 were each planned with a precise stop at the local time t3.
[0055] In a variation, the work paths can also be traversed using a gliding motion. For this purpose, after planning the speed trapezoidal profile for the work path to be planned, for example, for work path B1 → B2, which is planned while traversing work path B0 → B1, a corresponding gliding motion is planned in a known manner. This motion leaves work path B0 → B1 at a predetermined distance before B1 and continues on the work path. B1 → B2 is positioned at a predetermined distance after B1, and the velocities at these points on the track are continuously transformed into one another.
[0056] This is in Fig. 1, 2 The speed trapezoidal profile for the working path B1 → B2 shifts on the time axis to the speed trapezoidal profile for the working path B0 → B1 (see figure). Fig. 2), since the working path B0 → B1, or rather its velocity trapezoidal profile, is already left before t3, and the working path B1 → B2, or rather its velocity trapezoidal profile, is started correspondingly earlier. For this purpose, the velocity trapezoidal profile for the working path B1 → B2 is first planned with an estimate for the overrunning motion and, after planning the overrunning motion, is shifted accordingly in time.
[0057] If a waiting time is specified between two predefined work paths, the time counter τ is reinitialized after this waiting time has elapsed (τ = 0), as this corresponds to a return to a starting point B0 or (re)synchronization.
[0058] Although exemplary embodiments were explained in the preceding description, it should be noted that a multitude of modifications are possible. Furthermore, it should be emphasized that the exemplary embodiments are merely examples and are not intended to restrict the scope of protection, applications, or structure in any way. Rather, the preceding description provides the skilled person with a guideline for implementing at least one exemplary embodiment, whereby various modifications, particularly with regard to the function and arrangement of the described components, can be made without departing from the scope of protection as defined in the claims. Reference symbol list
[0059] 10 Conveyor belt 20 Robot 21 End effector 3 Control unit B0, B1, B2: Path points t0,...,t3: Local times of a velocity trapezoidal profile τ IPO: Current time V 10: Velocity of the conveyor belt v 21: Path velocity of the end effector in the moving reference frame 10 X, 10 Y, 10 Z: Moving reference frame
Claims
1. A method of operating a robot (20), the method comprising the steps of: - specifying (S5) at least one working path (B0 → B1, B1 → B2) to be moved along by the robot relative to a moving reference system ({10X, 10Y, 10Z}); - predicting (S30, S60) at least one pose of the reference system on the basis of a current pose and a speed (V10) of the reference system as well as a time until this pose is reached; - predicting (S30, S60), on the basis of the predicted pose of the reference system, at least one position of the robot and a speed and acceleration of the robot in this position for the working path to be moved along; and - monitoring (S40, S70) compliance with a specified limit at this position, speed and acceleration of the robot, wherein the specified limit comprises a limit of a one-dimensional or multidimensional load on the robot; wherein the load on the robot is predicted with the aid of a dynamic model of the robot on the basis of its predicted position, speed and acceleration in the predicted position.
2. The method according to claim 1, characterised in that the specified limit further comprises a limit of a working range of the robot.
3. The method according to any one of the preceding claims, characterised by the step of: - predicting (S30, S60) a speed of the reference system in the predicted pose, wherein the time derivative is predicted on the basis of this predicted speed.
4. The method according to any one of the preceding claims, characterised in that the time until the pose is reached is predicted on the basis of a current working path, in particular on the basis of a speed profile planned for this purpose, or a specified waiting time.
5. The method according to any one of the preceding claims, characterised by the step of: - planning (S30, S60) a speed profile for the working path to be moved along, wherein the position or time derivative is predicted on the basis of this planned speed profile.
6. The method according to any one of the preceding claims, characterised in that the pose is extrapolated, in particular linearly, on the basis of the current pose and the speed of the reference system as well as the predicted time.
7. The method according to any one of the preceding claims, characterised by the step of: - synchronising (S10) the robot with the moving reference system, wherein the pose is predicted after the synchronisation.
8. The method according to any one of the preceding claims, characterised by the step of: - specifying an overshoot on the working path to be moved along and / or from which to move along, wherein the time until the pose is reached is predicted on the basis of an overshoot movement.
9. A control system for operating a robot, characterised in that it is arranged to carry out a method according to any one of the preceding claims.
10. A robot arrangement comprising a device (10) for moving a reference system ({10X, 10Y, 10Z}), at least one robot (20) for moving along at least one working path (B0 → B1, B1 → B2) specified relative to the moved reference system, and a control system for operating a robot according to the preceding claim.
11. A computer program product with a program code which is stored on a computer-readable medium for carrying out a method according to any one of the preceding claims 1 to 8.