A method for computing robot motion where the tool center point translational acceleration does not exceed a defined limit. Robot motion for an upcoming segment of a trajectory is computed using a known “S-curve” technique, where joint motions are calculated which move the robot from a start pose to an end pose in the shortest time given maximum joint velocity, acceleration and jerk values. Significant points on the S-curve are identified which correspond with maximum translational acceleration of the tool center point. Tool center point Cartesian motion is then calculated from the joint motions using forward kinematics. The maximum translational acceleration of the tool center point is determined and compared to the defined acceleration limit. If the maximum acceleration of the tool center point exceeds the acceleration limit, the joint motions for the trajectory segment are re-calculated using a scale factor which reduces the joint and tool center point accelerations.
BACKGROUND Field The present disclosure relates generally to the field of industrial robot motion control and, more particularly, to a method for computing a joint-interpolated robot motion from a start position to a destination where the motion of a tool center point on the robot arm does not exceed a user-defined acceleration limit in Cartesian space. Discussion of the Related Art The use of industrial robots to perform a wide range of manufacturing, assembly and material movement operations is well known. Many of these operations and tasks are performed by articulated robots, such as five- or six-axis robots with a servo motor at each rotational joint. Control of such robots is provided in real time, where a motion program is divided into small increments of motion, and a robot controller performs real-time feedback control calculations to compute joint motor input commands which move the robot end-of-arm tool center point along a prescribed trajectory. One common type of robotic task is material movement, which involves moving packages or workpieces from an origin location to a destination location. A particular application of this type is where the robot is fitted with a vacuum gripper tool and the robot picks up packages (e.g., boxes) one at a time and moves each package to a prescribed location. This type of robotic operation is commonly used for depalletizing or palletizing (i.e., moving boxes from a pallet to a conveyor, or vice versa). In operations of the type described above, it is possible for a package to detach from the vacuum gripper during the movement by the robot. Dropped packages are quite detrimental to the productivity of a package moving operation. For one thing, the dropped package and its contents may be damaged upon impact. Also, the dropped package must be handled manually—which involves stopping the robot, picking up the dropped package by an operator, inspecting the package and manually placing it in the intended destination. Other adverse consequences of a dropped package may also be experienced—such as disruption to the flow and sequence of packages on a conveyor which is operating in cooperation with the robot. For all of these reasons, dropped packages are extremely undesirable. One of the reasons a package may be dropped by a robot with a vacuum gripper tool is that the acceleration of the package by the robot creates a force which exceeds the capability of the vacuum gripper. One solution to this problem would be to simply slow down the entire robot motion so that high velocities and high accelerations are not experienced by the packages. However, for productivity reasons, it is advantageous to operate the robot as fast as possible without exceeding the force-generating capability of the vacuum gripper tool. When a robot task involves moving a tool center point from one location to another along an arbitrary path, the fastest and most efficient mode of robot operation is known as joint interpolated motion. When the robot operates using joint interpolated motion, the robot joints are subject to mechanical constraints such as maximum rotational velocities and accelerations, but the motion of the tool center point along the path is simply the result of the joint motions, and tool center point accelerations are unpredictable. Using current robot programming techniques, it is therefore not known if the tool center point acceleration might be great enough to cause a dropped package. In light of the circumstances described above, there is a need for a method of applying a user-defined tool center point acceleration limit to a robot operating in joint interpolated motion mode. SUMMARY The present disclosure describes a method and system for computing a robot motion where the translational acceleration of a tool center point on the robot arm does not exceed a user-defined acceleration limit in Cartesian space. For a robot operating in joint interpolated motion mode, a limit for the maximum translational acceleration of the tool center point is defined to the robot controller. Robot motion for an upcoming segment of a trajectory is computed using a known “S-curve” technique, where joint motions are calculated which move the robot from a start pose to an end pose in the shortest possible time given mechanical constraints including maximum joint velocity, acceleration and jerk values. Significant points on the S-curve are identified which correspond with maximum translational acceleration of the tool center point. Tool center point Cartesian motion is then calculated from the joint motions using forward kinematics. The calculated translational acceleration of the tool center point at the significant points is determined and compared to the user-defined acceleration limit. If the calculated acceleration of the tool center point exceeds the user-defined acceleration limit, the joint motions for the trajectory segment are re-calculated using a scale factor which reduces the joint and tool center point accelerations. Additional features of the presently disclosed systems and methods will become apparent from the following description and appended claims, taken in conjunction with the accompanying drawings. BRIEF DESCRIPTION OF THE DRAWINGS FIG. 1 is an illustration of an industrial robot fitted with a vacuum gripper tool, with a package attached to the vacuum gripper and being moved by the robot, as an example of an application which can benefit from the techniques of the present disclosure; FIG. 2 is an illustration of an outer arm of the industrial robot of FIG. 1 with the vacuum gripper, showing an arrangement of vacuum cups which are used to grasp the package; FIG. 3 is an illustration of a vacuum gripper moving through Cartesian space along a joint interpolated motion trajectory, and also showing the forces acting on the cups of the vacuum gripper as a result of tool center point acceleration; FIG. 4 includes graphs of robot joint velocity and acceleration versus time, illustrating key concepts involved in computing an S-curve motion profile in joint interpolated motion mode; FIG. 5 includes the graphs of robot joint velocity and acceleration of FIG. 4 along with corresponding graphs of tool center point velocity and acceleration used for comparison to an acceleration limit, according to an embodiment of the present disclosure; FIG. 6 is an illustrated block diagram of a technique for applying a tool center point acceleration limit for joint interpolated robot motions, according to an embodiment of the present disclosure; and FIG. 7 is a flowchart diagram of a method for applying a tool center point acceleration limit for joint interpolated robot motions, according to an embodiment of the present disclosure. DETAILED DESCRIPTION OF THE EMBODIMENTS The following discussion of the embodiments of the disclosure directed to tool center point acceleration limitation for joint interpolated robot motions is merely exemplary in nature, and is in no way intended to limit the disclosed devices and techniques or their applications or uses. Industrial robots are used for a variety of manufacturing, assembly and material movement operations. In one type of application, a robot is used to move a workpiece or a package from one location to another. A particular example of robotic package movement is known as depalletizing—where boxes are removed from a stack on a pallet, one at a time, and each box is moved to a destination location such as a conveyor. The reverse operation—picking boxes from a conveyor and placing each box in a particular location on a pallet—is also commonly employed. FIG. 1 is an illustration of an industrial robot 100 fitted with a vacuum gripper 120, with a package 130 attached to the vacuum gripper 120 and being moved by the robot 100, as an example of an application which can benefit from the techniques of the present disclosure. The robot 100 includes an articulated robot arm with multiple links 110, where the links 110 are coupled together at rotational joints which are actuated by servo motors, as known by those skilled in the art. The vacuum gripper 120 is the tool being used by the robot 100, where the vacuum gripper 120 is coupled to an outer arm link or wrist joint of the robot 100. The vacuum gripper 120 is a commonly used tool when the package 130 is a box, as illustrated in FIG. 1. The robot 100 is in communication with a controller 140 in a manner known in the art—where the controller 140 provides joint motion commands to the robot 100, causing the robot 100 to move the vacuum gripper 120 to a target location where the package 130 is grasped, followed by motion commands causing the robot 100 to move the gripper 120 to a destination location where the package 130 is placed and released. FIG. 2 is an illustration of an outer arm link 110 of the industrial robot 100 of FIG. 1 with the vacuum gripper 120, showing an arrangement of vacuum cups 122 which are used to grasp the package 130. When the gripper 120 arrives at the target location and the cups 122 are pressed against the package 130, a vacuum is drawn in a vacuum tube 124, whereupon the cups 122 grasp the package 130 with a vacuum or suction force. When the gripper 120 arrives at the destination location, the vacuum is eliminated, and the cups 122 release the package 130. The gripper 120 is shown with eight of the vacuum cups 122 (a two by four grid, some of which are not visible in FIG. 2). Other gripper designs—having more or fewer than eight of the cups 122—are also known and used in the same fashion as needed to suit a particular application. While FIGS. 1 and 2 illustrate known robot and gripper configurations and a common application, existing robot control techniques lack the capability to limit the acceleration of the vacuum gripper 120 as it moves through its trajectory. If the acceleration of the gripper 120 is too high, the gripper 120 may not be able to maintain its grasp on the package 130, resulting in a dropped package—which is highly undesirable. The techniques of the present disclosure have been developed to address and solve this problem. FIG. 3 is an illustration of a vacuum gripper moving through Cartesian space along a joint interpolated motion trajectory, and also showing the forces acting on the cups of the vacuum gripper as a result of tool center point acceleration. The vacuum gripper 120 is shown in several positions and orientations along a trajectory 300. The trajectory is calculated to move the gripper 120 from a first point P1 (302) to a second point P2 (304) using joint interpolated motion. As discussed earlier, joint interpolated motion calculates synchronized simultaneous joint motions which move the tool center point from P1 to P2 in the shortest possible time given robot mechanical constraints (i.e., maximum values of joint rotational velocity, acceleration and jerk). The orientation of the gripper 120 changes as it moves along the trajectory 300, as the joint interpolated motion technique simply calculates synchronized rotations of all of the robot joints (e.g., six joints for a six-axis robot) to reach the target position P2, and there is no constraint on mid-trajectory gripper/tool orientation in joint interpolated motion. The overall tool center point motion from P1 to P2 defined by the trajectory 300 may be divided into multiple segments, as indicated by the arrowheads along the length of the trajectory 300. A close-up of the gripper 120 from one of the segments of the trajectory 300 is shown in an inset 310. X and Y axes of a tool center coordinate frame are shown, where the origin of the tool center coordinate frame is the tool center point. The translational acceleration of the tool center point at the current location along the trajectory 300 is indicated by an arrow 320. A corresponding reaction force of the package 130 on the cups 122 of the gripper 120 is indicated by an arrow 330. The reaction force may be calculated simply using F=ma, where F is the reaction force, m is the mass of the package 130 and a is the acceleration of the tool center point. As discussed earlier, if the acceleration of the tool center point at any point in the trajectory 300 causes a reaction force which exceeds the grasping capability of the gripper 120, the package 130 is likely to detach from the gripper 120, which is a very undesirable situation. Therefore, according to the techniques of the present disclosure, for each upcoming segment of a trajectory, a maximum translational acceleration of the tool center point is calculated, and if the maximum calculated acceleration exceeds the prescribed acceleration limit, the trajectory segment is re-calculated using a scale factor to reduce the maximum acceleration. This technique is described in detail below. FIG. 4 includes graphs of robot joint velocity and acceleration versus time, illustrating key concepts involved in computing an S-curve motion profile in joint interpolated motion mode. A graph 410 plots the rotational velocity versus time for a particular joint in the robot, and a graph 420 plots the rotational acceleration versus time for the same joint. Beginning at time t=0 at the beginning of a trajectory segment, the joint acceleration ramps up at maximum allowable jerk (a robot mechanical constraint) until the joint acceleration reaches a maximum allowable acceleration constraint. The maximum allowable acceleration is indicated by a line 430 on the acceleration graph 420. The time it takes for the joint to reach maximum acceleration is known as T2, and is shown by a vertical dashed line indicated at 440. The joint then continues accelerating at maximum acceleration until it approaches maximum allowable velocity, at which point the acceleration ramps back down at maximum jerk to reach zero acceleration just as the joint reaches maximum velocity. The maximum allowable velocity is indicated by a line 450 on the velocity graph 410. The time it takes for the joint to reach the end of maximum acceleration is known as T1, and is shown by a vertical dashed line indicated at 460. The joint then continues at maximum velocity for a certain amount of time (determined as discussed below), before deceleration begins. It can be observed from the acceleration graph 420 that the S-curve motion profile for a trajectory segment contains seven phases; this includes three acceleration phases (maximum jerk until T2, maximum acceleration until T1, and maximum negative jerk until reaching zero acceleration), a constant velocity phase in the middle, and three deceleration phases which are symmetrically opposite the acceleration phases. The maximum allowable joint velocity, acceleration and jerk values are robot mechanical constraints which are known to the robot controller for any given robot architecture. Therefore, default values of T1 and T2 are also known by the controller, as they can be calculated from the mechanical constraints. However, the amount of distance to be traveled by a joint during a trajectory segment also affects the calculation of the S-curve motions. A time T0, indicated by a vertical line indicated at 470, is defined as the distance to be traveled by the joint during a trajectory segment divided by the maximum joint velocity. That is, T0=dist/Vmax. Depending on the relationships between T0, T1 and T2, there are six different scenarios or cases to consider for the computation of the S-curve motion profile. FIG. 4 shows one scenario or case—where the time T0 is greater than the sum of T1 and T2. In this case, there is enough time and joint travel distance to allow the joint acceleration to reach Amax and continue at Amax before the joint velocity levels off at Vmax, with deceleration beginning after some time at Vmax. In other cases, the joint accelerates and decelerates without ever reaching Vmax and/or Amax. Depending on which case is applicable, which is determined from the relationships between T0, T1 and T2, a recursive equation formulation is known which can be used to calculate the time duration of all seven phases, along with the resulting joint positions, velocities, accelerations and jerks for all of the phases of the trajectory segment. A complete discussion of the six different cases of S-curve motion profiles and the corresponding calculation of the seven phases of jerk-bound motion can be found in the technical paper titled On Algorithms for Planning S-curve Motion Profiles, by Kim D. Nguyen et al., International Journal of Advanced Robotic Systems (2008), which is herein incorporated by reference. For each trajectory segment, the S-curve motion profile is computed as described above for each joint Ji in the robot, where i=1, . . . , DOF (e.g., i=6 for a six-axis robot). The motion of the joints is synchronized such that all of the joints reach the desired position at the end of the trajectory segment at the same time. The S-curve motion profile computation described above provides a joint interpolated motion solution which moves the tool center point from a start location to a destination location in the shortest possible time given robot mechanical constraints (Vmax, Amax and Jmax). However, the translational acceleration of the tool center point can only be determined after the S-curve motion profile computation is performed, as discussed below. FIG. 5 includes the graphs of robot joint velocity and acceleration of FIG. 4 along with corresponding graphs of tool center point velocity and acceleration used for comparison to an acceleration limit, according to an embodiment of the present disclosure. Box 510 contains the joint velocity graph 410 and the joint acceleration graph 420 from FIG. 4. With the S-curve motion profile for a trajectory segment computed for all robot joints, the motion of the tool center point may be calculated, with the results shown in box 520. The transformation from joint motions to tool center point motion in Cartesian space is highly nonlinear, but may be calculated in a straightforward manner using forward kinematics when given robot geometry, as known to those skilled in the art. Based on robot joint motion profiles and robot geometry, the motion of the tool center point defines a velocity vector through Cartesian space (i.e., the X/Y/Z components of velocity in a fixed coordinate frame). The magnitude or norm of the tool center point velocity vector is plotted versus time for a trajectory segment on a graph 530. It can be observed that the maximum tool center point velocity occurs during the maximum joint velocity phase of the S-curve joint motion profile, which intuitively makes sense. The time derivative of the magnitude of the velocity vector is plotted versus time on a graph 540. The time derivative of velocity is acceleration; thus, the graph 540 plots tool center point acceleration versus time for the trajectory segment. The joint acceleration graph 420 (at left) may be described as being piecewise linear and monotonic. That is, each phase of joint motion has a linear acceleration profile, and each phase exhibits only an increase or decrease in acceleration (or no change). The tool center point acceleration graph 540 (at right), however, is quite nonlinear but is still monotonic in each phase. This observation, which is true for most robot motions, allows for significant points of maximum acceleration to be readily identified on the tool center point acceleration graph 540. One of the significant points of maximum acceleration occurs at the time T1. The computed value of tool center point acceleration at this point may be compared to the prescribed acceleration limit, which is indicated by a line 550. Another acceleration extreme—the maximum negative acceleration—occurs later in the trajectory, and can also be compared to the acceleration limit. These evaluations are discussed further below. FIG. 6 is an illustrated block diagram 600 of a technique for applying a tool center point acceleration limit for joint interpolated robot motions, according to an embodiment of the present disclosure. At Step 1 in block 610, an S-curve motion profile is computed in joint space, as discussed earlier. Input information required to compute the S-curve motion profile includes initial and final positions for the motion, along with robot mechanical constraints, as discussed earlier. The initial and final positions may be for a complete trajectory or a trajectory segment. Because the robot is operating in joint interpolated motion mode, the initial and final positions are preferably in joint space (e.g., for a six-axis robot, a vector q0 defining all six initial joint positions, and a vector qf defining all six final joint positions). Joint positions may of course be computed from initial and final tool center point positions using inverse kinematics. The robot mechanical constraints, as discussed earlier, include Vmax, Amax and Jmax. Based on the known robot mechanical constraints, default values of T1 and T2 may be computed as discussed earlier, and are therefore known by the robot controller. In addition, based on the distance to be traveled during the trajectory segment (from q0 to qf) and the maximum joint velocity Vmax, the value of T1 may be computed for the S-curve motion profile being computed. The computation of the S-curve motion profile at the block 610 is performed as discussed earlier—where the relationships between the values of T0, T1 and T2 are evaluated and used to determine which one of the six cases of jerk-bound motion applies, and then a set of equations is recursively computed to provide a complete solution for the seven-phase S-curve motion profile. The S-curve motion profile solution includes the time durations for each of the seven phases, along with the displacement, velocity, acceleration and jerk profiles in each phase. At Step 2 in block 620, the significant points on the S-curve motion profile are identified, where the significant points indicate points of expected maximum tool center point Cartesian acceleration. As discuss earlier, for most types of robot motion, the end of phase two of the seven-phase motion profile is one significant point. This is identified as point 612 on the acceleration graph in the box 610. The significant point 612 occurs at the time T1, which is at the end of the constant acceleration phase of robot joint motion, at which time the positive acceleration of the tool center point is typically greatest. In addition, for most types of robot motion, the end of phase five of the seven-phase motion profile is another significant point. This is identified as point 614 on the acceleration graph in the box 610. The significant point 614 occurs at the end of the maximum negative jerk phase leading to maximum negative acceleration of robot joint motion, at which time the deceleration (negative acceleration) of the tool center point is typically greatest. At Step 3 in block 630, the tool center point acceleration versus time is calculated from the S-curve joint motion profile, and the maximum absolute values of tool center point acceleration (Amax−tc) at the significant points are computed. With the time values of the significant points determined from Step 2 in the block 620, the tool center point acceleration can simply be calculated at those two values of time and labeled as the points of maximum absolute value of tool center point acceleration (Amax−tc), as indicated by points 632 and 634 in the block 630. Alternately, maximum absolute values of tool center point acceleration can be identified using other techniques, such as analyzing the tool center point acceleration versus time data for the entire trajectory to identify the maximum and minimum values. The defined tool center point acceleration limit (Alimit) is shown by a line 636 in the block 630. The value of Alimit may be user-defined, or may be automatically defined by an algorithm which computes the acceleration limit from robot job parameter data (e.g., weight or mass of package to be moved, and amount of vacuum force which can be developed by the vacuum gripper, using the equation F=ma, solving for a, and setting Alimit=a as discussed earlier). At Step 4 in block 640, it is determined whether the maximum absolute value of tool center point acceleration (Amax−tc) is greater than the defined tool center point acceleration limit (Alimit). If so, then a scale factor λ is calculated as λ=Amax−tc/Alimit, and a new value of T1 (to replace the previously-used default value of T1) is calculated as T1=λT1. With the new value of T1, the algorithm depicted by the block diagram 600 returns to Step 1 to re-compute the S-curve motion profile in joint space, and the maximum tool center point acceleration (Amax−tc) is again computed using Steps 2 and 3. When Amax−tc does not exceed Alimit, the algorithm terminates and the S-curve joint motion profile is used to control the robot to perform the package movement according to the computed trajectory or segment. It will be noted that the value of λ is greater than one (because Amax−tc>Alimit when λ is computed), which means that the new value of T1 will be greater than the previous value of T1. The reason that T1 is scaled up to a larger value in this algorithm is that this will reduce robot accelerations. Referring back to FIG. 4 and the discussion of the S-curve joint motion profile computation—the maximum joint acceleration is found to be inversely proportional to T1. This is true for all of the six cases of relationships between T0, T1 and T2. Thus, a larger value of T1 will result in a smaller maximum joint acceleration. Although a smaller maximum joint acceleration does not guarantee a proportionally smaller maximum tool center point acceleration, there is generally a positive correlation; that is, an increase in T1 will have the desired effect of reducing Amax−tc. The algorithm depicted by the block diagram 600 is repeated until Amax−tc≤Alimit. It has been found in analyzing a variety of different robotic package movement applications that two passes through the algorithm is generally sufficient to achieve the desired result of the maximum tool center point acceleration being less than the prescribed tool center point acceleration limit. The algorithm depicted by the block diagram 600 is preferably implemented in a motion planner module of a robot controller architecture. That is, the tool center point acceleration limitation computations of FIG. 6 are performed in cooperation with a joint motion plan calculation routine—after the basic parameters of a task are determined (e.g., beginning and ending points), and before movement execution commands are sent by the controller to the joints of the robot. FIG. 7 is a flowchart diagram 700 of a method for applying a tool center point acceleration limit for joint interpolated robot motions, according to an embodiment of the present disclosure. At box 702, input parameters for a trajectory or trajectory segment are provided, along with robot constraint parameters. The input parameters include the trajectory starting and ending positions (q0 and qf in joint space; or tool center point coordinates in a workspace coordinate frame, which may be converted to q0 and qf), along with robot mechanical constraints, including Vmax, Amax and Jmax. From the robot mechanical constraints, default values of T1 and T2 are known, and based on the distance to be traveled (from q0 to qf) and the maximum joint velocity Vmax, the value of T0 may be computed. The tool center point acceleration limit Alimit (e.g., in meters per second squared) is also provided at the box 702. At box 704, an S-curve joint motion profile is computed as discussed earlier. This includes determining which of the six cases of motion profile applies based on the relationships between the values of T0, T1 and T2, and using the applicable set of equations and boundary conditions to calculate the S-curve motion profile. At box 706, the significant points are identified on the joint acceleration profile, including identifying one significant point at the end of the second phase and one at the end of the fifth phase of the seven phase motion profile described earlier. At box 708, tool center point Cartesian motion in workspace or “world” coordinates is computed from the joint motion profile using forward kinematics calculations based on known robot geometry. This includes computing the tool center point velocity vector through Cartesian space based on the joint motions, calculating the magnitude of the velocity vector over the time duration of the trajectory, and calculating the tool center point acceleration as the time rate of changes of the velocity magnitude. At box 710, maximum absolute values of tool center point acceleration at the significant points are determined, as explained earlier. At decision diamond 712, it is determined whether the largest absolute value of tool center point acceleration (Amax−tc) is greater than the tool center point acceleration limit (Alimit). If not, the process ends at terminus 714, whereupon the computed S-curve joint motion profile is used to control robot motion for the trajectory or trajectory segment. If, at the decision diamond 712, the largest absolute value of tool center point acceleration (Amax−tc) is greater than the tool center point acceleration limit (Alimit), a scale factor λ is calculated as λ=Amax−tc/Alimit, and a new value of T1 is calculated as T1=λT1. Using the new value of T1, the process returns to the box 704 to re-compute the S-curve joint motion profile. This looping continues until Amax−tc is less than or equal to Alimit; this criteria is normally met after about two iterations. When the criteria is met, the computed S-curve joint motion profile will produce tool center point accelerations which do not exceed the prescribed tool center point acceleration limit, thus ensuring that the vacuum gripper will maintain its grasp on the package which it is moving. Throughout the preceding discussion, various computers and controllers are described and implied. It is to be understood that the software applications and modules of these computers and controllers are executed on one or more electronic computing devices having a processor and a memory module. In particular, this includes one or more processors in the robot controller 140 discussed above. Specifically, the processors in the controller 140 are configured to perform the tool center point acceleration limitation calculation described above. While a number of exemplary aspects and embodiments of the methods and systems for tool center point acceleration limitation for joint interpolated robot motions have been discussed above, those of skill in the art will recognize modifications, permutations, additions and sub-combinations thereof. It is therefore intended that the following appended claims and claims hereafter introduced are interpreted to include all such modifications, permutations, additions and sub-combinations as are within their true spirit and scope.
Source: ipg260428.zip (2026-04-28)