Method for correcting the dynamic speed of a robot system

JP7894784B2Active Publication Date: 2026-07-24FANUC LTD
View PDF 4 Cites 0 Cited by

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
FANUC LTD
Filing Date
2022-09-30
Publication Date
2026-07-24

Smart Images

  • Figure 0007894784000035
    Figure 0007894784000035
  • Figure 0007894784000036
    Figure 0007894784000036
  • Figure 0007894784000037
    Figure 0007894784000037
Patent Text Reader

Abstract

To provide a method and a system for robotic motion planning which perform dynamic velocity attenuation to avoid robot collision with static or dynamic objects.SOLUTION: The technique maintains a planned robot tool path even when speed reduction is necessary, by providing feedback of a computed slowdown ratio to a tracking controller so that the path computation is always synchronized with current robot speed. The technique uses both robot-obstacle distance and relative velocity to determine when to apply velocity attenuation, and computes a joint speed limit vector as a joint function based on a robot-obstacle distance, a maximum obstacle speed, and a computed stopping time. Two different control structure implementations are disclosed, both of which provide feedback of the slowdown ratio to a motion planner as needed for faithful path following. A method of establishing velocity attenuation priority in multi-robot systems is also provided.SELECTED DRAWING: Figure 4
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure relates generally to the field of motion planning for industrial robots, and more specifically to a method and system for robot motion planning that performs dynamic speed decay to avoid collisions with static or dynamic objects while maintaining a planned tool path even when deceleration is required.

Background Art

[0002] It is well known to widely perform operations of manufacturing, assembly, and material movement using industrial robots. In the working space environment of many robots, there are obstacles that may be in the path of the robot's movement. The obstacles can be permanent objects such as building structures and equipment, etc. However, due to the static nature of the objects, the robot can easily avoid them with pre-planned movements. The obstacles may sometimes be dynamic objects that move randomly into or through the working space of the robot. Dynamic objects need to be considered in real-time calculations by the motion planning system, and in that case, the robot needs to adjust its movements to avoid the objects during the execution of the operation. No part of the robot must ever collide with an obstacle.

[0003] To avoid collisions or near misses between robots and objects, various techniques have been developed to detect objects within the robot's workspace and adjust the robot's movements as needed. One such conventional technique is to simply stop the robot when an object is detected within a threshold distance. However, in most applications, stopping the robot when there is an obstacle in the workspace is not a satisfactory solution. Another technique commonly used in industrial robots is to define "safety zones" where a human operator or other dynamic object can safely exist. This is because the robot is pre-programmed to prohibit movement into the safety zones. While safety zones are effective, they require additional pre-programming work and often excessively restrict the robot's movements. This includes the fact that geometrically shaped prohibited zones consume more workspace than necessary, and that prohibited safety zones apply even when there are no obstacles.

[0004] Another technique for robot collision avoidance motion planning adjusts the robot's speed in real time based on detected objects. This technique appropriately limits the robot's joint speed based on the distance between the robot and the obstacle, the obstacle's maximum speed, and the stop time calculated as a function of joint speed. However, in this technique, the tracking control calculations may become out of sync with the commanded robot motion, causing the robot tool to deviate from the programmed path, especially when the programmed path is curved and significant deceleration is required to maintain a safe distance between the robot and the obstacle. [Overview of the Initiative] [Problems that the invention aims to solve]

[0005] In light of the above situation, there is a need to improve the robot's dynamic motion planning technology so that it can faithfully follow the programmed robot tool path while reducing the robot's speed to avoid obstacles as needed. [Means for solving the problem]

[0006] Methods and systems for robot motion planning are provided that perform dynamic velocity damping to avoid collisions of the robot with static or dynamic objects, in accordance with the teachings of this disclosure. The technique maintains the planned robot tool path even when deceleration is required by providing feedback of a calculated reduction ratio to a tracking control device so that the path calculation is always synchronized with the robot's velocity at that point in time. The technique determines when to apply velocity damping using both the robot-obstacle distance and relative velocity, and calculates joint velocity limit vectors based on the robot-obstacle distance, the maximum velocity of the obstacle, and stop time calculated as a function of joint velocity. Implementations of two different control structures are disclosed, both of which provide feedback of the reduction ratio to the motion planner as needed for faithful path following. Methods for establishing velocity damping priorities in a multi-robot system are also provided.

[0007] Additional features of the disclosed system and method will become apparent from the following description and claims, in conjunction with the accompanying drawings. [Brief explanation of the drawing]

[0008] [Figure 1] This graph shows how robot stop time is calculated from constraints on the robot's joint velocity, maximum joint acceleration, and jerk, using methods well known in this field.

[0009] [Figure 2] This is a block diagram of a well-known dynamic motion optimization technique in this field, where the robot's speed may decrease in the presence of obstacles in the workspace.

[0010] [Figure 3] Figure 2 shows how the commanded tool path position may deviate from the planned reference path when the speed decreases in the conventional technology.

[0011] [Figure 4]This is a block diagram of a dynamic motion optimization system according to an embodiment of the present disclosure, in which the robot's speed may decrease in the presence of obstacles in the workspace, and a deceleration factor is provided as feedback from an online velocity correction (OVM) module to a tracking control device.

[0012] [Figure 5] Figure 4 shows how, according to embodiments of this disclosure, a planned reference path consisting of a series of interpolation points is parameterized into a continuous path defined by an arc length s in the system shown in Figure 4.

[0013] [Figure 6] Figure 4 shows a diagram of a two-robot system having intersecting paths according to an embodiment of the present disclosure, illustrating the simulation results showing how collisions are avoided when the online velocity correction technology of Figure 4 is implemented on one of the robots.

[0014] [Figure 7] This is a block diagram of a first implementation architecture of an online speed correction control structure according to an embodiment of the present disclosure.

[0015] [Figure 8] This is a block diagram of a second implementation architecture of an online speed correction control structure according to an embodiment of the present disclosure.

[0016] [Figure 9] This is a flowchart illustrating a method for triggering an online speed correction calculation based on the distance and relative velocity between a robot and an obstacle, according to an embodiment of the present disclosure.

[0017] [Figure 10] This is a flowchart illustrating a method for establishing the priority of each robot in a multi-robot system and performing online speed correction calculations based on that priority, according to an embodiment of the present disclosure.

[0018] [Figure 11] A diagram of a two-robot system having intersecting paths, showing simulation results demonstrating how the OVM priority logic of FIG. 10 affects a first operation scenario.

[0019] [Figure 12] A diagram of the two-robot system of FIG. 11 according to an embodiment of the present disclosure, showing simulation results demonstrating how the OVM priority logic of FIG. 10 affects a second operation scenario.

[0020] [Figure 13] A graph in which an actual tool tip path is superimposed on a reference path according to an embodiment of the present disclosure, showing how the robot follows the reference path when it decelerates to avoid an obstacle even if the actual tool tip path is a tight curve.

[0021] [Figure 14] A set of graphs plotting the distance and relative speed between a robot and an obstacle against time, also showing the resulting override rate or deceleration ratio of the OVM speed.

MODE FOR CARRYING OUT THE INVENTION

[0022] The following description of embodiments of the present disclosure directed to a method and system for dynamic speed correction of a robot system is illustrative in nature and is not intended to limit the disclosed technology or their applications or uses.

[0023] It is well known that industrial robots are used for various manufacturing, assembly, and material handling operations. These operations include spray painting, welding, parts pick-and-place, and many others. In many robotic work environments, obstacles may be present and may be in the path of the robot's movement. That is, without adaptive motion planning, parts of the robot may collide with parts of obstacles as it moves from its current position to its target position. Obstacles may be static structures such as fixtures and tables, or dynamic (moving) objects such as people, forklifts, other robots, and other machines. When dynamic objects may be present, the robot's movement must be planned in real time for each control cycle. It is limited to direction only.

[0024] In some robot applications, the robot's path can be adjusted to navigate around obstacles. However, in many applications, the robot (tool tip) must move along a planned reference path to properly complete the task. In these applications with defined paths, the only remedy when an obstacle obstructs the robot's path is to slow down or stop the robot. Techniques have been developed to correct the robot's speed in response to the presence of obstacles, but these techniques have various drawbacks. These drawbacks include the robot frequently stopping when obstacles are present, or deviating from the planned reference path when the robot slows down.

[0025] The methods and systems provided in this disclosure adaptively respond to the presence of obstacles in the robot's workspace, slowing the robot only when necessary to resolve potential collisions while maintaining the tool's planned baseline path. This technology has been tested in simulations and real-world experiments, including both multi-robot environments and human-robot interactions. These methods and systems include two different embodiments, which are discussed in detail below.

[0026] In techniques that decelerate a robot in response to obstacles in the workspace, it is necessary to determine how much the robot's speed needs to be reduced. The amount of deceleration is based on several factors, including the current robot speed (actually, the rotational velocity vector, one for each joint of the robot), the stopping time calculated from the current speed and the robot's mechanical constraints, and the distance and velocity characteristics of the obstacles.

[0027] JPEG0007894784000001.jpg60170

[0028] JPEG0007894784000002.jpg42170

[0029] JPEG0007894784000003.jpg26170

[0030] JPEG0007894784000004.jpg17158

[0031] JPEG0007894784000005.jpg38170

[0032] JPEG0007894784000006.jpg53170

[0033] JPEG0007894784000007.jpg33170

[0034] JPEG0007894784000008.jpg49170

[0035] JPEG0007894784000009.jpg59170

[0036] A multi-link robot arm 340 is shown in a top view. The robot arm 340 has a tool tip that follows a reference path 350. A robot arm 360 operates in the same workspace as robot arm 340, and here robot arm 360 is programmed so that its tool tip follows a reference path 370. Since reference paths 350 and 370 overlap, robot arms 340 and 360 will collide with each other unless obstacle detection and avoidance measures are taken. In this example, robot arm 340 performs its operation without collision avoidance measures, but robot arm 360 is programmed with the dynamic motion optimization technique shown in Figure 2. That is, robot arm 360 is commanded to slow down when robot arm 340 is in its path.

[0037] The actual path 380 shows the actual path followed by the tool tip of the robot arm 360. It can be seen that the actual path 380 deviates from the reference path 370 in the middle of the path. This deviation from the reference path is undesirable and is caused by the effects described above. Specifically, the dynamic motion optimization module 220 commands the robot arm 360 to decelerate due to an obstacle on the path, but the tracking control device 210 does not properly recognize this deceleration and provides a desired speed command that causes the actual path to deviate from the reference path.

[0038] The technology disclosed herein was developed to overcome the shortcomings of the aforementioned prior art dynamic motion optimization techniques.

[0039] JPEG0007894784000010.jpg44170

[0040] JPEG0007894784000011.jpg53170

[0041] JPEG0007894784000012.jpg55170

[0042] JPEG0007894784000013.jpg33170

[0043] JPEG0007894784000014.jpg86170

[0044] JPEG0007894784000015.jpg61170

[0045] JPEG0007894784000016.jpg27170

[0046] JPEG0007894784000017.jpg53170

[0047] The block diagram in Figure 4 also serves as a flowchart of the adaptive robot speed correction method according to this disclosure. That is, the method includes providing obstacle data in the workspace; using the obstacle data and reference path to determine whether speed reduction is necessary for obstacle avoidance, including calculating the reduction ratio ds; using the reduction ratio and desired motion to calculate a command robot motion; using the reduction ratio and reference path to calculate a desired motion for the next control cycle (feedback loop 440); and providing the command robot motion to the robot system.

[0048] In the system and method shown in Figure 4, it is optional to parameterize a series of interpolation points into a continuous path, as shown in Figure 5. This parameterization can be implicitly performed in the motion system of a robot control device that incorporates online velocity change calculations in some embodiments described later. In other embodiments, the parameterization shown in Figure 5 is an explicit step performed on a computer other than the robot control device. In all embodiments, input of a reference path (representing the planned task motion of the robot) is required.

[0049] Figure 6 is a diagram of a two-robot system with intersecting paths according to an embodiment of the present disclosure, showing simulation results illustrating how collisions are avoided when the online velocity correction technique of Figure 4 is implemented on one of the robots. Robots 610 and 630 operate within a shared workspace 600, indicated by a three-dimensional (3D) Cartesian grid in Figure 6. Robot 610 is programmed to follow a unidirectional path 620 from a starting point 622 to an ending point 624. Robot 630 is programmed to follow a bidirectional path 640, going from a starting point 642 to an ending point 644 and then back to the starting point 642.

[0050] Because the motion envelopes of both robots clearly overlap around the region where paths 620 and 640 intersect, if robots 610 and 630 start their tasks simultaneously, they will collide if collision avoidance technology is not in place. Simply programming the robots so that one robot completes its task and then the other starts is not efficient. Therefore, automatic speed adjustment is necessary in the event of an impending collision.

[0051] When robot 610 is configured with the motion optimization / speed correction system shown in Figure 4, both robots begin tracking their respective tool tip points along their paths. As robot 610 approaches point 626, it detects robot 630 ahead of it on its path (with its tool tip point near point 646). Robot 610 then decelerates, and its tool tip may stop near point 626, while robot 630 continues its round trip along path 640. When robot 630 reaches the vicinity of point 646 on its return trip, robot 610 resumes its movement along path 620 toward endpoint 624. As a result, a robot collision is avoided, and robot 610 can at least partially complete its task while robot 630 is still on its path. Other scenarios are easily conceivable, where one robot simply needs to slow down slightly while the other clears an overlapping area. Furthermore, the disclosed motion optimization / speed correction technique maintains very high efficiency while preventing collisions. The scenario outlined in Figure 6 deals with robot-to-robot collisions. The disclosed velocity correction techniques are equally sophisticated and can also handle other types of moving obstacles.

[0052] Figure 4 provides a high-level block diagram of the motion optimization / speed correction system of the present disclosure, and the subsequent discussion details the speed correction calculations, reduction ratio feedback, and usage for maintaining the actual path on a reference path. Two different detailed embodiments, along with how to determine when to trigger the collision avoidance speed correction routine, are shown in the following figures.

[0053] JPEG0007894784000018.jpg65170

[0054] JPEG0007894784000019.jpg74170

[0055] The architecture 700 in Figure 7 is implemented in a simulation where, if there are no obstacles in the workspace, the robot 760 operates at the planned maximum speed, slows down as needed to avoid collisions with obstacles, and ensures that the tool tip follows the reference path precisely (even if it is a curved path where significant deceleration is forced).

[0056] JPEG0007894784000020.jpg44170

[0057] JPEG0007894784000021.jpg84170

[0058] JPEG0007894784000022.jpg85170

[0059] The architecture 800 in Figure 8 is implemented in an actual physical robot control system using an online speed correction module 850 programmed into the processor within the control unit, as described above. This prototype system demonstrated desirable behavior, including the robot 760 operating at its planned maximum speed when there are no obstacles in the workspace, slowing down as needed to avoid collisions with obstacles, while the tool tip accurately following a reference path (even a curved path where significant deceleration is forced). The experimental results are described further below.

[0060] The preceding explanations in Figures 4-8 describe how the online velocity correction module performs optimization calculations to determine the robot's reduction ratio based on the presence of obstacles in the workspace, and how it uses the reduction ratio ds to correct the robot's velocity as needed while precisely following the planned reference path of the tool tip. An additional aspect of this disclosure is a technique for determining when to "turn on" the velocity correction optimization calculations, so that the online velocity correction calculations are not performed in situations where the likelihood of a collision between the robot and an obstacle is low or nonexistent.

[0061] Figure 9 is a flowchart 900 of a method for triggering an online velocity correction calculation based on the robot-obstacle distance and relative velocity according to an embodiment of the present disclosure. In the method of Figure 9, the robot-obstacle distance (the minimum distance between the obstacle and any part of the robot) and the robot-obstacle relative velocity (the rate of change of the minimum distance) are evaluated, and the velocity correction calculation is performed only if both the distance and velocity meet predetermined criteria. The method of Figure 9 is performed by the online velocity correction module 720 of Figure 7 or the online velocity correction module 850 of Figure 8.

[0062] JPEG0007894784000023.jpg44170

[0063] JPEG0007894784000024.jpg44170

[0064] JPEG0007894784000025.jpg40170

[0065] JPEG0007894784000026.jpg29170

[0066] It is well known in the art that robot collision avoidance calculations are performed only when obstacles in the workspace are within a certain distance from the robot. However, the technique of the present disclosure, as shown in Figure 9, evaluates the relative velocity between the robot and the obstacle along with the minimum distance, thereby avoiding performing calculations that could potentially decelerate the robot when there is no possibility of collision even if the distance between the robot and the obstacle is small, in situations where the obstacle is moving away from the robot (and / or the robot is moving away from the obstacle).

[0067] Numerous simulations and real-world experiments have been conducted to verify the effectiveness of the online velocity correction technology described above. The simulations include multi-robot workspace scenarios as shown in Figure 6. The real-world experiments include a human and a handheld obstacle moving around the robot's workspace, programmed to follow both straight and curved path segments. In all cases, data analysis shows that deceleration (ds<1) is commanded only when the robot-obstacle distance is below a threshold and the relative velocity between the robot and obstacle is decreasing; the deceleration ratio value calculated by the online velocity correction is as expected based on the robot-obstacle distance; and the actual tool tip path follows the reference tool tip path even in curved sections when the robot decelerates in accordance with ds<1. Several examples of the simulation and experimental results are illustrated in the following figures.

[0068] The preceding explanation of Figure 6 described how collisions are prevented when online speed correction technology is implemented on one robot in a two-robot system where paths intersect. It is preferable to implement online speed correction technology on all robots in a multi-robot system, thereby maximizing overall efficiency (minimizing the number and duration of deceleration). However, this requires following a series of processes to establish robot priorities in real time based on the working space conditions and to calculate the deceleration rate ds for each robot according to those priorities. This technology will be discussed later.

[0069] Collisions can occur when two or more robots operate in a shared workspace and their motion envelopes overlap. Such collisions can be avoided by pre-programming the robots to strictly adhere to synchronized sequence movements, preventing them from being in the same location simultaneously. However, in some types of tasks, each robot is instructed to operate at its own pace, which hinders strict synchronization. In such cases, potential overlapping areas can be identified, and prioritization can be established using the distance of each robot from the overlapping area (in the current time step or robot control cycle). This technique will be discussed later.

[0070] Figure 10 is a flowchart 1000 of a method for establishing priorities for each robot in a multi-robot system and performing online speed correction calculations based on priorities, according to an embodiment of the present disclosure. Figure 11 is a diagram showing a two-robot system 1100 having intersecting paths, according to an embodiment of the present disclosure, along with simulation results illustrating how the OVM priority logic of Figure 10 affects a first operating scenario. Figure 12 is a diagram showing a two-robot system 1100 according to an embodiment of the present disclosure, along with simulation results illustrating how the OVM priority logic of Figure 10 affects a second operating scenario.

[0071] The process begins in box 1002 at a specific time step (robot control cycle) where potential overlapping areas of robot movement are identified. In the workspace 1100 of Figure 11, the overlapping area 1102, which includes robots 1110 and 1130, is identified. The overlapping area may be a two-dimensional area (e.g., a plan view), or it may be a three-dimensional space. In box 1004, the distance from the current position of each robot to the overlapping area is calculated. The distance calculation can be formulated to correspond to the properties of the overlapping area. For example, the distance can be calculated as the distance the robot's tooltip must move to enter a vertically projected 2D overlapping area. Alternatively, the distance can be calculated as the actual 3D distance until any part of the robot enters the 3D overlapping space. These calculations can be defined to suit specific applications.

[0072] In box 1006, the priority of robots in the system is defined (in one embodiment) by sorting the robots based on their distance from the overlapping area, where the robot closest to the overlapping area has the highest priority (1), and the robot furthest from the overlapping area has the lowest priority. The idea behind this priority sorting is to allow the closest robot to pass through the overlapping area as quickly as possible, and the other robots to pass through the overlapping area consecutively. Often, the highest priority robot may not need to slow down at all, while subsequent robots may only need to slow down slightly.

[0073] In other embodiments, instead of distance to the overlapping region, the time it takes for each robot to reach the overlapping region can be calculated in box 1004, and the time values ​​can be used in box 1006 to establish robot priorities. In applications where the planned speed or path length of one robot in the system differs significantly from that of one or more other robots in the system, time can be used instead of distance. In yet another embodiment, the acceleration / deceleration capabilities of the robots may be considered when determining priorities, in which case the robot with the smallest acceleration / deceleration capability (e.g., the largest robot with the greatest inertia) may be assigned the highest priority. Other factors may also be considered, and priorities may actually be assigned based on user preference, or using a user-defined formula that includes constants (e.g., robot capabilities) and variables (e.g., distance to the overlapping region in a particular control cycle).

[0074] JPEG0007894784000027.jpg44170

[0075] JPEG0007894784000028.jpg25170

[0076] JPEG0007894784000029.jpg64170

[0077] JPEG0007894784000030.jpg39170

[0078] JPEG0007894784000031.jpg39170

[0079] JPEG0007894784000032.jpg44170

[0080] JPEG0007894784000033.jpg71170

[0081] JPEG0007894784000034.jpg75170

[0082] The robots 1110 and 1130 in Figures 11-12 are capable of operating independently of each other, such that their movements cannot be permanently synchronized for each task. This is particularly relevant when a robot is performing a task that depends on the availability of incoming parts or the status of another machine. In this situation, the technology of this disclosure, which adaptively determines the priority of robots in real time and performs speed corrections as needed to prevent collisions, becomes extremely useful.

[0083] Figure 13 is a graph 1300 in which an actual tool tip path is superimposed on a reference path according to an embodiment of the present disclosure, showing how the actual tool tip path follows the reference path even when the robot is slowed down to avoid obstacles, even if it is a sharp curve. The data plotted on graph 1300 are from physical experiments conducted using the online speed correction technique described above, programmed into a robot control device that controls the robot as shown in Figure 8.

[0084] Graph 1300 represents a workspace with the x-dimension on the horizontal axis 1310 and the y-dimension on the vertical axis 1312. The units for axes 1310 and 1312 are millimeters (mm). The experimental robot is programmed so that the tool tip follows a kind of zigzag shape in the xy-plane, which moves reliably in the x-direction, moves back and forth several times in the y-direction, and then returns to the starting point. Therefore, the z-dimension is not shown and is not important for the explanation. This tool tip path is shown by trace 1320, which is both the actual tool tip path and the reference (programmed) path. The actual path and the reference path are identical to the point that they are indistinguishable in graph 1300.

[0085] As shown in the second graph 1330, even when zooming in on one of the corners of the path, the actual path and the reference path are indistinguishable in trace 1340, which is part of trace 1320 indicated by the ellipse 1322. Faithful path following is maintained even if the robot is repeatedly decelerated significantly by the online velocity change module during its operation. The third graph 1350 shows the relationship between the velocity override rate (deceleration ratio ds converted to a percentage) and time as a function of the path tracking duration in graphs 1300 and 1330. Deceleration and stopping for collision avoidance are immediately apparent in graph 1350. The dashed traces in graph 1350 show the velocity override rate (deceleration ratio ds converted to a percentage) values ​​calculated by the OVM module, and the solid traces show the percentage values ​​of the velocity override after passing through the low-pass filter.

[0086] In summary, the graph in Figure 13 shows that the online speed correction technology of this disclosure is highly effective in maintaining the programmed (reference) tool tip path, while attenuating the robot's speed as needed to avoid close encounters with obstacles in the workspace.

[0087] Figure 14 is a set of graphs plotting the relationship between robot-obstacle distance and relative velocity and time, according to embodiments of the present disclosure, and also showing the resulting OVM velocity override rate or reduction ratio. Graph 1410 plots the relationship between the minimum robot-obstacle distance and time. Curve 1412 shows the values ​​when the minimum distance increases, decreases, and increases again in a portion of experiments using actual robots and control devices programmed with online velocity correction technology. In the shaded portion 1414 of graph 1410, the minimum robot-obstacle distance is greater than the minimum distance threshold (0.5m) used as a trigger for the online velocity correction calculation, as shown in Figure 9. In portion 1416, the minimum robot-obstacle distance is less than the minimum distance threshold. In the shaded portion 1418, the minimum robot-obstacle distance is greater than the minimum distance threshold. Therefore, in shaded portions 1414 and 1418, the minimum robot-obstacle distance indicates that an online velocity correction calculation is not required.

[0088] Graph 1420 plots the relationship between robot-obstacle relative velocity and time. Curve 1422 shows the relative velocity values ​​changing over a portion of an experiment using an actual robot and control device programmed with online velocity correction technology. Graph 1420 plots data from the same experimental trials as Graph 1410 on the same time scale. In the shaded section 1424 of Graph 1420, the relative velocity between the robot and obstacle is greater than zero. In section 1426, the relative velocity between the robot and obstacle is less than zero. In the shaded section 1428, the relative velocity between the robot and obstacle is again greater than zero. Therefore, referring again to the method in Figure 9, in the shaded sections 1424 and 1428, the relative velocity between the robot and obstacle does not require online velocity correction calculations.

[0089] Curves 1412 in Graph 1410 and 1422 in Graph 1420 both illustrate what is known as zero-order hold signal behavior. Here, the curves have small horizontal steps from one data point to the next. This behavior is because the robot system operates at a higher frequency than the recognition system (e.g., camera). Therefore, even if the robot system (controller 750 in Figure 7, or controller 810 in Figure 8, etc.) calculates a new robot command for a time step, if the camera has not provided an updated frame (no new obstacle data), the robot system will treat the obstacle as being in the same position and at the same velocity as in the previous time step. This phenomenon does not negatively affect the performance of the robot system when using online velocity correction techniques.

[0090] Graph 1430 plots the OVM velocity override rate against time. Graph 1430 plots data from the same experimental trials as graphs 1410 and 1420 on the same time scale. The dashed curve 1432 shows the velocity override rate value (deceleration ratio ds converted to a percentage) calculated by the OVM module, which changes throughout part of the experiment. The solid curve 1434 shows the velocity override rate value after passing through a low-pass filter. The low-pass filter is used to remove the jagged characteristics of the velocity override rate that may appear under certain conditions, as seen at approximately 1.25 seconds in graph 1430. Part 1436 of graph 1430 corresponds to the time when the online velocity correction calculation is shown by both the minimum distance graph 1410 (part 1416) and the relative velocity graph 1420 (part 1426). Therefore, in section 1436 where the minimum distance between the robot and the obstacle is less than a threshold and the relative velocity is less than zero, the reduction ratio ds is calculated and has a value less than 1. A low-pass filtered version of the ds signal (curve 1434) is provided to the motion system in the robot control device to decelerate or stop the robot and provide the desired robot-obstacle collision avoidance action.

[0091] The graph in Figure 14 clearly demonstrates that the online speed correction technique of this disclosure is effective in commanding the robot to decelerate (or stop) only when necessary, based on obstacle conditions in the workspace, including both the minimum distance and relative velocity between the robot and the obstacle. These results were obtained and observed in experiments in which a human manipulated an object in the workspace with the robot, where the robot control device was programmed with the online speed correction technique as shown in Figure 8.

[0092] Throughout the above explanation, various computers and control devices have been described and implied. It should be understood that the software applications and modules of these computers and control devices run on one or more computers having processors and memory modules. In particular, this includes, as mentioned above, the processors of the robot control device 750 and the separate computer 740 in Figure 7, and the control device 810 in Figure 8, along with the recognition system. Specifically, the processors in the control devices and the separate computer are configured to perform online velocity correction calculations for robot-obstacle collision avoidance, as described in detail above, and these calculations include techniques for determining whether or not to activate the online velocity correction calculations, and techniques for determining priorities in a multi-robot system.

[0093] While several exemplary aspects and embodiments of optimization-based grip generation techniques have been described, those skilled in the art will recognize their modifications, rearrangements, additions, and subcombinations. Accordingly, the appended claims and assertions should be construed to include all such modifications, rearrangements, additions, and subcombinations that are in their true spirit and scope. [Configuration 1] A method for correcting the speed of an adaptive robot, which is performed on one or more computing devices, A step of providing a robot reference path that defines robot movements for a task performed by the robot, A step of providing obstacle data that characterizes obstacles in the robot workspace, A step of performing a robot speed correction calculation when indicated by the aforementioned obstacle data, comprising: defining joint speed limits for each joint of the robot; and calculating the robot reduction ratio by dividing the minimum value of the joint speed limits among all joints by the maximum speed of each joint; A step of calculating the command robot motion using the robot reduction ratio and the desired robot motion, The steps include: calculating a new position along the robot reference path using the robot reduction ratio, and calculating a desired robot motion for the next robot control cycle using the new position along the robot reference path; The steps include providing the command robot operation to a control module that controls the robot's operation, Methods that include... [Configuration 2] The method according to configuration 1, wherein the desired robot motion and the commanded robot motion are vectors containing the values ​​of each joint in the robot joint coordinates, and the robot reference path is either a tool tip path defined in Cartesian space or a robot motion defined in joint space. [Configuration 3] The method according to Configuration 1, wherein the step of performing a robot speed correction calculation when indicated by the obstacle data is to perform the robot speed correction calculation only when the minimum distance between the robot and the obstacle is less than a predetermined threshold and the relative velocity between the robot and the obstacle is less than zero. [Structure 4] The method according to configuration 1, wherein the step of performing a robot velocity correction calculation includes performing an optimization calculation having an objective function that minimizes the deviation of the calculated robot motion from the desired robot motion and an inequality constraint that indicates that the magnitude of the calculated joint velocities is less than or equal to the respective joint velocity limits. [Composition 5] The method according to configuration 1, wherein the joint velocity limit of each joint of the robot is calculated using an equation that includes the robot stop time and predetermined maximum values ​​of the robot joint velocity, acceleration, and jerk, and the joint velocity limit of each joint is defined such that the minimum value is zero. [Composition 6] The method according to configuration 5, wherein the robot stop time is calculated as a function of obstacle data and robot capacity data. [Composition 7] The method according to Configuration 1, wherein the step of providing obstacle data includes providing the obstacle data by a recognition system including one or more cameras or sensors configured to detect obstacles in the workspace. [Structure 8] The method according to Configuration 1, wherein the speed correction method for an adaptive robot is used by two or more robots having overlapping motion envelopes within the robot workspace, the control unit of each robot communicates its state to all other robot control units used as obstacle data, and each of the robots is assigned a priority for speed correction calculations in each robot control cycle. [Composition 9] The method according to configuration 8, wherein the priority is assigned based on the distance of each robot from the path overlap area, and the priority is assigned in such a way that the shorter the distance to the overlap area, or based on the robot's acceleration / deceleration capability, or based on a user-defined setting. [Configuration 10] The robot speed correction calculation is performed sequentially for each robot in descending order of priority, starting with the robot with the highest priority, and the robot reduction ratio value for each robot is limited to being less than or equal to the robot reduction ratio value of a robot with one higher priority than itself, according to the method of configuration 8. [Composition 11] The method according to Configuration 1, wherein the robot speed correction calculation is performed by a processor in a computer, the robot reduction ratio is provided as feedback to a tracking module running in the computer, the tracking module calculates a desired robot motion for the next robot control cycle, and the commanded robot motion is provided from the computer to a robot control device that performs closed-loop feedback control of the robot motion. [Composition 12] The method according to Configuration 1, wherein the robot speed correction calculation is performed by a processor in the robot control device, the robot reduction ratio is provided to a motion system running in the robot control device, the motion system uses the robot reduction ratio to calculate a desired robot motion for the next robot control cycle, the motion system uses the robot reduction ratio and the desired robot motion to calculate a command robot motion, and provides the command robot motion to the servo control module of the robot control device, the robot control device performs closed-loop feedback control of the robot motion. [Composition 13] A method for correcting the speed of an adaptive robot, which is performed on one or more computing devices, A step of providing a robot reference path that defines robot movements for a task performed by the robot, A step of providing obstacle data that characterizes obstacles in the robot workspace, A step of performing a robot speed correction calculation when indicated by the aforementioned obstacle data, comprising: defining a joint velocity limit for each joint of the robot; and calculating a robot reduction ratio as the minimum value of the joint velocity limit among all joints divided by the maximum velocity of each joint, wherein the robot speed correction calculation includes an optimization calculation having an objective function that minimizes the deviation of the calculated robot motion from a desired robot motion, and an inequality constraint that indicates that the magnitude of the calculated joint velocity is less than or equal to the respective joint velocity limit, wherein the joint velocity limit for each joint is calculated using an equation that includes the robot stop time and predetermined maximum values ​​of the robot joint velocity, acceleration, and jerk, and the robot stop time is calculated as a function of the aforementioned obstacle data and robot capacity data, A step of calculating a command robot motion using the robot reduction ratio and the desired robot motion, The steps include: calculating a new position along the robot reference path using the robot reduction ratio, and calculating a desired robot motion for the next robot control cycle using the new position along the robot reference path; The steps include providing the command robot operation to a control module that controls the robot's operation, Methods that include... [Composition 14] An adaptive robot speed correction system, A means for parameterizing the robot reference path from a set of interpolation points to a continuous reference path as a function of path length, A means for providing obstacle data that characterizes obstacles in the robot workspace, Means for performing a robot speed correction calculation when indicated by the aforementioned obstacle data, wherein the robot speed correction calculation includes: defining joint speed limits for each joint of the robot; and calculating a robot reduction ratio using the minimum value of the joint speed limits among all joints as the value obtained by dividing each joint's maximum speed by the maximum speed of each joint. A means for calculating command robot motion using the robot reduction ratio and the desired robot motion, A means for calculating a new position along the robot reference path using the robot reduction ratio, and for calculating a desired robot motion for the next robot control cycle using the new position along the robot reference path, A robot equipped with means for calculating command robot movements and for performing said command robot movements, A system that has [Composition 15] The system according to configuration 14, wherein the desired robot motion and the commanded robot motion are vectors containing the values ​​of each joint in the robot joint coordinates, and the robot reference path is either a tool tip path defined in Cartesian space or a robot motion defined in joint space. [Composition 16] The system according to configuration 14, wherein performing a robot speed correction calculation when indicated by the obstacle data includes performing the robot speed correction calculation only when the minimum distance between the robot and the obstacle is less than a predetermined threshold and the relative velocity between the robot and the obstacle is less than zero. [Composition 17] The system according to configuration 14, wherein performing a robot velocity correction calculation includes performing an optimization calculation having an objective function that minimizes the deviation of the calculated robot motion from the desired robot motion, and an inequality constraint that indicates that the magnitude of the calculated joint velocities is less than or equal to the respective joint velocity limits. [Composition 18] The system according to configuration 14, wherein the joint velocity limit of each joint of the robot is calculated using an equation that includes the robot stop time and predetermined maximum values ​​of the robot joint velocity, acceleration, and jerk, and the joint velocity limit of each joint is defined such that the minimum value is zero. [Composition 19] The system according to configuration 18, wherein the robot stop time is calculated as a function of obstacle data and robot capacity data. [Configuration 20] The system according to configuration 14, wherein the means for providing obstacle data is a recognition system including one or more cameras or sensors configured to detect obstacles in the workspace. [Composition 21] The system according to configuration 14, wherein the system includes two or more robots having overlapping motion envelopes within the robot workspace, the means for providing the obstacle data is a control device of the other robots in the system, robot state data from the control device is used as the obstacle data, and each of the robots is assigned a priority for speed correction calculations in each robot control cycle. [Composition 22] The system according to configuration 21, wherein the priority is assigned based on the distance of each robot from the path overlap area, and the priority is assigned in such a way that the shorter the distance to the overlap area, or based on the robot's acceleration / deceleration capability, or based on a user-defined setting. [Composition 23] The system according to configuration 21, wherein the robot speed correction calculation is performed sequentially for each robot in descending order of priority, starting with the robot with the highest priority, and the robot reduction ratio value of each robot is limited to being less than or equal to the robot reduction ratio value of a robot with one higher priority than itself. [Composition 24] The system according to configuration 14, wherein the means for performing the robot speed correction calculation, the means for calculating the command robot motion, and the means for calculating a new position using the robot reduction ratio are a computer having a processor, the robot reduction ratio is provided as feedback to a tracking module running on the computer, the tracking module calculates a desired robot motion for the next robot control cycle, and the command robot motion is provided from the computer to a robot control device that performs closed-loop feedback control of the robot's joint motion. [Composition 25] The system according to configuration 14, wherein the means for performing the robot speed correction calculation, the means for calculating the command robot motion, and the means for calculating a new position using the robot reduction ratio are a robot control device having a processor, the robot reduction ratio is provided to a motion system running on the robot control device, the motion system calculates a desired robot motion for the next robot control cycle using the robot reduction ratio, the motion system calculates the command robot motion using the robot reduction ratio and the desired robot motion, provides the command robot motion to a servo control module of the robot control device, and the robot control device performs closed-loop feedback control of the robot motion.

Claims

1. A method for correcting the speed of an adaptive robot, which is performed on one or more computing devices, A step of providing a robot reference path that defines robot movements for a task performed by the robot, A step of providing obstacle data that characterizes obstacles in the robot workspace, A step of performing a robot speed correction calculation when indicated by the aforementioned obstacle data, comprising: defining joint speed limits for each joint of the robot; and calculating the robot reduction ratio by dividing the minimum value of the joint speed limits among all joints by the maximum speed of each joint; A step of calculating the command robot motion using the robot reduction ratio and the desired robot motion, The steps include: calculating a new position along the robot reference path using the robot reduction ratio, and calculating a desired robot motion for the next robot control cycle using the new position along the robot reference path; The steps include providing the command robot operation to a control module that controls the robot's operation, Methods that include...

2. The method according to claim 1, wherein the desired robot motion and the commanded robot motion are vectors containing the values ​​of each joint in the robot joint coordinates, and the robot reference path is either a tool tip path defined in Cartesian space or a robot motion defined in joint space.

3. The method according to claim 1, wherein the step of performing a robot speed correction calculation when indicated by the obstacle data is to perform the robot speed correction calculation only when the minimum distance between the robot and the obstacle is less than a predetermined threshold and the relative velocity between the robot and the obstacle is less than zero.

4. The method according to claim 1, wherein the step of performing a robot velocity correction calculation includes performing an optimization calculation having an objective function that minimizes the deviation of the calculated robot motion from the desired robot motion and an inequality constraint that indicates that the magnitude of the calculated joint velocities is less than or equal to the respective joint velocity limit.

5. The method according to claim 1, wherein the joint velocity limit of each joint of the robot is calculated using an equation that includes the robot stop time and predetermined maximum values ​​of the robot joint velocity, acceleration, and jerk, and the joint velocity limit of each joint is defined such that the minimum value is zero.

6. The method according to claim 5, wherein the robot stop time is calculated as a function of obstacle data and robot capacity data.

7. The method according to claim 1, wherein the step of providing obstacle data includes providing the obstacle data by a recognition system including one or more cameras or sensors configured to detect obstacles in the robot workspace.

8. The method according to claim 1, wherein the velocity correction method for an adaptive robot is used by two or more robots having overlapping motion envelopes within the robot workspace, the control unit of each robot communicates its state to all other robot control units used as obstacle data, and each of the robots is assigned a priority for velocity correction calculations in each robot control cycle.

9. The method according to claim 8, wherein the priority is assigned based on the distance of each robot from the path overlap area, and the priority is assigned in such a way that the shorter the distance to the path overlap area, or based on the robot's acceleration / deceleration capability, or based on a user-defined setting.

10. The method according to claim 8, wherein the robot speed correction calculation is performed sequentially for each robot in descending order of priority, starting with the robot with the highest priority, and the robot reduction ratio value of each robot is limited to be less than or equal to the robot reduction ratio value of a robot with one higher priority than itself.

11. The method according to claim 1, wherein the robot speed correction calculation is performed by a processor in a computer, the robot reduction ratio is provided as feedback to a tracking module running in the computer, the tracking module calculates a desired robot motion for the next robot control cycle, and the commanded robot motion is provided from the computer to a robot control device that performs closed-loop feedback control of the robot motion.

12. The method according to claim 1, wherein the robot speed correction calculation is performed by a processor in the robot control device, the robot reduction ratio is provided to a motion system running in the robot control device, the motion system uses the robot reduction ratio to calculate a desired robot motion for the next robot control cycle, the motion system uses the robot reduction ratio and the desired robot motion to calculate a command robot motion, provides the command robot motion to a servo control module of the robot control device, and the robot control device performs closed-loop feedback control of the robot motion.

13. A method for correcting the speed of an adaptive robot, which is performed on one or more computing devices, A step of providing a robot reference path that defines robot movements for a task performed by the robot, A step of providing obstacle data that characterizes obstacles in the robot workspace, A step of performing a robot speed correction calculation when indicated by the aforementioned obstacle data, comprising: defining a joint velocity limit for each joint of the robot; and calculating a robot reduction ratio as the minimum value of the joint velocity limit among all joints divided by the maximum velocity of each joint, wherein the robot speed correction calculation includes an optimization calculation having an objective function that minimizes the deviation of the calculated robot motion from a desired robot motion, and an inequality constraint that indicates that the magnitude of the calculated joint velocity is less than or equal to the respective joint velocity limit, wherein the joint velocity limit for each joint is calculated using an equation that includes the robot stop time and predetermined maximum values ​​of the robot joint velocity, acceleration, and jerk, and the robot stop time is calculated as a function of the aforementioned obstacle data and robot capacity data, A step of calculating a command robot motion using the robot reduction ratio and the desired robot motion, The steps include: calculating a new position along the robot reference path using the robot reduction ratio, and calculating a desired robot motion for the next robot control cycle using the new position along the robot reference path; The steps include providing the command robot operation to a control module that controls the robot's operation, Methods that include...

14. An adaptive robot speed correction system, A means for parameterizing the robot reference path from a set of interpolation points to a continuous reference path as a function of path length, A means for providing obstacle data that characterizes obstacles in the robot workspace, Means for performing a robot speed correction calculation when indicated by the aforementioned obstacle data, wherein the robot speed correction calculation includes: defining a joint speed limit for each joint of the adaptive robot; and calculating a robot reduction ratio using the minimum value of the joint speed limit among all joints as the value obtained by dividing each joint's maximum speed; A means for calculating command robot motion using the robot reduction ratio and the desired robot motion, A means for calculating a new position along the robot reference path using the robot reduction ratio, and for calculating a desired robot motion for the next robot control cycle using the new position along the robot reference path, A robot equipped with means for calculating command robot movements and for performing said command robot movements, A system that has

15. The system according to claim 14, wherein the desired robot motion and the commanded robot motion are vectors containing the values ​​of each joint in the robot joint coordinates, and the robot reference path is either a tool tip path defined in Cartesian space or a robot motion defined in joint space.

16. The system according to claim 14, wherein performing a robot speed correction calculation when indicated by the obstacle data includes performing the robot speed correction calculation only when the minimum distance between the robot and the obstacle is less than a predetermined threshold and the relative velocity between the robot and the obstacle is less than zero.

17. The system according to claim 14, wherein performing a robot velocity correction calculation includes performing an optimization calculation having an objective function that minimizes the deviation of the calculated robot motion from the desired robot motion, and an inequality constraint that indicates that the magnitude of the calculated joint velocities is less than or equal to the respective joint velocity limits.

18. The system according to claim 14, wherein the joint velocity limit of each joint of the robot is calculated using an equation that includes the robot stop time and predetermined maximum values ​​of the robot joint velocity, acceleration, and jerk, and the joint velocity limit of each joint is defined such that the minimum value is zero.

19. The system according to claim 18, wherein the robot stop time is calculated as a function of obstacle data and robot capacity data.

20. The system according to claim 14, wherein the means for providing obstacle data is a recognition system including one or more cameras or sensors configured to detect obstacles in the robot workspace.

21. The system according to claim 14, wherein the system includes two or more robots having overlapping motion envelopes within the robot workspace, the means for providing the obstacle data is a control device of the other robots in the system, robot state data from the control device is used as the obstacle data, and each of the robots is assigned a priority for speed correction calculations in each robot control cycle.

22. The system according to claim 21, wherein the priority is assigned based on the distance of each robot from the path overlap area, and the priority is assigned in such a way that the shorter the distance to the path overlap area, or based on the robot's acceleration / deceleration capability, or based on a user-defined setting.

23. The system according to claim 21, wherein the robot speed correction calculation is performed sequentially for each robot in descending order of priority, starting with the robot with the highest priority, and the robot reduction ratio value of each robot is limited to be less than or equal to the robot reduction ratio value of a robot with one higher priority than itself.

24. The system according to claim 14, wherein the means for performing the robot speed correction calculation, the means for calculating the command robot motion, and the means for calculating a new position using the robot reduction ratio are a computer having a processor, the robot reduction ratio is provided as feedback to a tracking module running on the computer, the tracking module calculates a desired robot motion for the next robot control cycle, and the command robot motion is provided from the computer to a robot control device that performs closed-loop feedback control of the robot's joint motion.

25. The system according to claim 14, wherein the means for performing the robot speed correction calculation, the means for calculating the command robot motion, and the means for calculating a new position using the robot reduction ratio are a robot control device having a processor, the robot reduction ratio is provided to a motion system running on the robot control device, the motion system calculates a desired robot motion for the next robot control cycle using the robot reduction ratio, the motion system calculates the command robot motion using the robot reduction ratio and the desired robot motion, provides the command robot motion to a servo control module of the robot control device, and the robot control device performs closed-loop feedback control of the robot motion.