In a machine with multiple axes the motions of individual axes must often be coordinated. A simple example would be a robot that needs to move two joints to reach a new position. We could extend the motion of the slower joints so that the motion of each joint would begin and end together.

16.3.1 Slew Motion

When the individual axis of a machine are not coordinated this is known as slew motion. Each of the axes will start moving at the same time, but finish at separate times. Consider the example in Figure 16.16 Multi-axis slew motion. A three axis motion is required from the starting angles of (40, 80, -40)deg, and must end at (120, 0, 0)deg. The maximum absolute accelerations and decelerations are (50, 100, 150) degrees/sec/sec, and the maximum velocities are (20, 40, 50) degrees/sec.


Figure 16.16 Multi-axis slew motion

The calculations for the motion parameters are shown in Figure 16.17 Calculated times for the slew motion. These are done in vector format for simplicity. All of the joints reach the maximum acceleration. The fastest motion is complete in 1.13s, while the longest motion takes 4.4s.


Figure 16.17 Calculated times for the slew motion - Interpolated Motion

In interpolated motion the faster joints are slowed so that they finish in coordination with the slowest. This is essential in devices such as CNC milling machines. If this did not occur a straight line cut in the x-y plane would actually be two straight lines. The slew motion example can be extended to be slew motion where all joints finish their motion at 4.4s. This can be done by accelerating at the maximum acceleration, but setting a new maximum velocity. This is shown in the example in Figure 16.18 Interpolated motion based upon Figure 16.17 using the results from the example in Figure 16.17 Calculated times for the slew motion.


Figure 16.18 Interpolated motion based upon Figure 16.17 Calculated times for the slew motion

16.3.2 Motion Scheduling

After the setpoint schedule has been developed, it is executed by the setpoint scheduler. The setpoint scheduler will use a clock to determine when an output setpoint should be updated. A diagram of a scheduler is shown in Figure 16.19 A setpoint scheduler. In this system the setpoint scheduler is an interrupt driven subroutine that compares the system clock to the total motion time. When enough time has elapsed the routine will move to the next value in the setpoint table. The frequency of the interrupt clock should be smaller than or equal to the time steps used to calculate the setpoints. The servo drive is implemented with an algorithm such a PID control.


Figure 16.19 A setpoint scheduler

The output from the scheduler updates every time step. This then leads to a situation where the axis is always chasing the target value. This leads to small errors, as shown in Figure 16.20 Errors in path following.


Figure 16.20 Errors in path following