## 10: Control of Industrial Robots

TOPIC 1: KUKA KR3 Robot Motors

Now that we have solved for the inverse kinematics of the manipulator we must command the robot to move to our new point in space.  The robot knows where each joint variable is currently and when given the new joint variable to which it must move it can calculate the difference in angle for each joint.  Joint 0 might be required to move from angle = 13 degrees to 38 degrees, a difference of 25 degrees.  Each of these axes has its own dedicated motor and each motor will be required to move a certain number of degrees.  Even though in the two previous discussions we have focused on a simple, 2 degree-of-freedom manipulator, we will now focus on the equipment we have in the laboratory, KUKA KR3 robots with 6 axes, because the mathematics at this point is no longer limiting at higher axes.

In the KUKA KR3 each axis has its own properties as follows.

Axis 1 – Range = -180° to +180°  /  Speed 240° per second

Axis 2 – Range = -135° to +45°  /  Speed 210° per second

Axis 3 – Range = -135° to +135°  /  Speed 240° per second

Axis 4 – Range = -180° to +180°  /  Speed 375° per second

Axis 5 – Range = -135° to 135°  /  Speed 300° per second

Axis 6 – Range = Continuously rotating  /  Speed 375° per second

The listed axis speeds are the maximum speeds at which the axis can rotate.  In the programming process a percentage of that speed will be indicated ranging from 0% to 100%.  For example, if a move is programmed to move at 50%, then axis 1 would move at 120° per second while axis 5 would move at 150° per second all at the same time.

The acceleration of the motors is a different story because it is calculated by the robot based on the robot dynamics to optimize the motion.  However, in most cases what is called a trapezoidal motion profile can be assumed for each axis.

TOPIC 2:  Trapezoidal Motion Profile

Below is a standard trapezoidal motion profile with equal and constant acceleration and deceleration.  t0 is the time when the velocity reaches its programmed value and t1is the time that deceleration begins. In order to determine the time that the robot axis will take to move from one angle to another assuming a trapezoidal motion profile as shown above we can use the following formula. For example, if our acceleration value was assumed to be 1500°/s2 , our velocity was programmed to be 80%, and our require movement was 50° then the time to move axis 2 would be equal to 0.41 seconds.  Likewise, if the acceleration was turned down to 7502 , our time to move axis 2 would be 0.52 seconds.  However, if the acceleration reached down to 564°/s2 , the equation would no longer be valid so be sure to check the contingency every time!

If the contingency does not hold true then the time to move the axis becomes: HOMEWORK:  Assuming a = 1000°/s2 and v = 60% of maximum, provide the total time to move each axis if the robot moves from P1 to P2 where P1 and P2 are defined as the following. Furthermore, to save energy you decide there is no point in moving any axis faster than required so you determine the axis that takes the longest to move and you determine the lowest velocity as a percentage of its maximum for each axis so that all axes arrive to their destination at the same time.  HINT, define t to be the time it took for the slowest axis and solve the first equation above for v using the quadratic formula then solve for each required velocity separately except for the axis you determined to be slowest to begin with, that speed will be 60% of maximum.