Material-handling robot trajectory control
A method including, based upon a desired path of a reference point from a start position to an end position, where the reference point is on an end effector on a robot arm, determine an included angle that corresponds to the start position and the end position, calculating a trajectory in radial coordinates of the reference point on the end effector at least partially based upon the included angles; calculating corresponding angular coordinates of the reference point on the end effector, based on the calculated radial coordinates, so that the reference point follows the desired path; using a modified formulation of inverse kinematics, converting the radial and angular coordinates supplemented with the included angles of the trajectory and corresponding angular velocity and acceleration of the end effector to form motion setpoints for the robot arm; and controlling the motors of the robot drive.
1 . A method comprising:
determining by a controller a path of a reference point on an end effector of a robot arm between a first position and a different second position of the reference point, where the robot arm is connected to a robot drive having motors for moving the robot arm, and where the controller comprises at least one processor and at least one non-transitory memory having computer code;
the controller selecting a movement control mode from a plurality of different movement control modes, where the different movement control modes comprise:
a first movement control mode based upon determining that the path between the first position and the different second position passes outside a predetermined threshold distance from a kinematic singularity of the robot arm, and using a Cartesian trajectory generation scheme to move the robot arm, and
a different second movement control mode based upon determining that the path between the first position and the different second position passes within the predetermined threshold distance from the kinematic singularity of the robot arm, where the second movement control mode comprises, for at least a portion of the path, determining a first included angle between two links of the robot arm, and, for at least a portion of the path, determining a second different included angle between the two links of the robot arm, and calculating a trajectory of the reference point from the first position to the different second position, where the trajectory is expressed including the included angles; and
the controller controlling movement of the motors of the robot arm based upon the selected movement control mode, wherein controlling movement of the motion by the controller in the second movement control mode comprises using inverse kinematics of cylindrical coordinates, supplemented with the included angles, to determine motion set points.
2 . A method as in claim 1 , the second movement control mode further comprising evaluating the trajectory in a selected grid of points to determine if the trajectory violates at least one motion constraint expressed in Cartesian coordinates.
3 . A method as in claim 2 where the at least one motion constraint comprises a maximum linear velocity and a maximum acceleration of the reference point.
4 . A method as in claim 2 where, when the at least one motion constraint is determined to be violated, the method further comprises calculating a time scale factor for moving at least one of the motors and slowing down the movement of the robot arm to meet the at least one motion constraint.
5 . A non-transitory program storage device readable by a machine, tangibly embodying a program of instructions executable by the machine for performing operations, the operations comprising the method as claimed in claim 1 .
6 . The method as in claim 1 , where the plurality of different movement control modes comprises:
a third movement control mode based upon determining that the path between the first position and the different second position intersects a kinematic singularity of the robot arm, and not executing a move of the robot arm with the path.