8. Chapter 7: Maximum Velocity Motion Planner

8.1 7.1 Introduction:

Maximum velocity control is an attempt to minimize motion time. As described earlier, the use of velocity and acceleration limits are compromises used by designers to avoid more complex control, and planning schemes that are non-linear. The maximum velocity method, in particular, involves determining the distance to the target, and then taking steps (at the maximum velocity) toward the target joint angles. This method will be used for proof of the basic (“Neural Networks for Control”) concept, but the maximum velocity controller could not be used for ‘real’ problems because it requires infinite acceleration at the path endpoints.

8.2 7.2 Maximum Velocity Paths:

A maximum velocity controller uses an unrealistic form of control. It requires that a motion be made by suddenly turning the velocities on fully, until the robot reaches the goal, and then suddenly turning off the velocities.

Figure 8.1 Figure 7.1: Maximum Velocity Profile

The obvious problem with this method is that, the sudden switching of velocity requires infinite accelerations. Infinite accelerations would require infinite torques. Thus, this method may not be applied to actuators for direct control, but it could be used to generate velocity set points for a feedback control system.


Figure 8.2 Figure 7.2: A Maximum Velocity Path

As is shown, this control method would only require that some knowledge of the difference between the goal and the target be known, then the velocity could be set to its maximum, or minimum limit. The major complication arises when attempting to apply this scheme to a discrete time step controller.

8.3 7.3 Maximum Velocity Profiles with Discrete Time Steps:

A robot will approach the goal position at full velocity, and stop when it reaches the goal position. In a discrete time step system, the controller must base its decisions upon brief samples of the system state. The result can be oscillations about the goal, as in this simple case,

i) the controller is near the goal, and continues with the controller on at full velocity,

ii) the robot moves towards, then past the goal position, and,

iii) the controller takes the next sample of robot position,

iv) based upon the new position it turns on the velocity fully in the other direction,

v) this continues indefinitely around the goal.

This scenario may occur if the controller is not allowed to reduce its velocity when less than a step from the goal position.


Figure 8.3 Figure 7.3: Maximum Velocity Profile with Oscillation

There are two approaches to solving the oscillation problem. The first is to make the controller steps very small, so that the oscillations become very small. A second approach is to reduce the velocity, below limits, for the last step of the controller, so that the controller may estimate the final step precisely. Both approaches introduce a time step dependance to the controller. If the second scheme is used, and the time step of the system is varied, the controller may still oscillate, but the vibration will tend to die out. The first method requires such short time steps that it is impractical, thus the second method will be used.

If the last step has a magnitude below maximum to allow the robot to slow down near goals, then the effect of a time step change must be considered. If the system time step increases the robot will oscillate about the goal. Then the oscillations will tend to die out, or at worst oscillate indefinitely. If the step size is decreased, the robot will slow down before it has reached the goal.


Figure 8.4 Figure 7.4: Maximum Velocity Profile with Reduced Time Step


Figure 8.5 Figure 7.5: Maximum Velocity Profile with Increased Time Step

To state some obvious features of a velocity profile, for a maximum velocity planner,

A motion formulated with a velocity profile must have at least a single time step.

The number of steps in the path may be either even or odd.

The displacement of the joint over time is directly related to the area under the velocity curve.

The maximum, or minimum height of the profile is determined by the maximum, or minimum velocity.

These points will hold true for all graphs drawn, or algorithms formulated for finding maximum velocity path plans with Velocity Profiles.

The first step in formulating a Maximum Velocity motion plan is to derive a motion plan for each joint, with some other basic considerations,

the controller is working in discrete time steps,

the controller velocity profile must fit into an integer number of time steps.

the control parameters are set at the beginning of a time step, and are fixed for the duration of the step,

the velocity profile will be made up of a set of straight, constant velocity line segments.

It is now possible to suggest some Maximum Velocity profiles, based upon these criteria. For illustration, all angular displacements will be shown as positive.

The optimal path planning scheme shown below uses a sudden ‘on’ function, with a velocity reduction near the target.


Figure 8.6 Figure 7.6: Case A: The last velocity step is scaled down to match the stop point.

An alternative motion plan is shown below which uses a reduction in the peak velocity to reach the goal state in a fixed number of time steps.


Figure 8.7 Figure 7.7: Case B: Reduced Motion velocity is used.

The previous two cases require a minimum of position and target feedback. In a more sophisticated approach, this feedback could be augmented by a velocity feedback, which would allow the network to grade the acceleration (and thus reduce the jerk). If this were done the manipulator would move at maximum velocity throughout the path, but use a reduced velocity at the start and end of the trajectory.


Figure 8.8 Figure 7.8: Case C: The first and last time step velocities are reduced


Figure 8.9 Figure 7.9: Maximum Velocity Controller for Robot

All the methods shown are time dependant. The degree of time dependance varies. Case A requires knowledge of how large the last time step will be. Case B will require that, the entire path be planned to fit an integer number of time steps, thus every step depends upon the time step duration. Case C requires the last time step be known. It also requires that the first and last time steps are determined together. Case A is best when dealing with the neural network setup. Both other cases require consideration of the time step, for steps other than those near the goal.

When considering motions of many joints, one joint often moves in less time than the other. One joint may be slowed so that both joints finish in unison. This means that the motion of one joint will become time dependant on the other joint. A method that makes the joint motion independent will be called Least Time Finish. In this approach the joints are controlled separately to obtain a least time finish.


Figure 8.10 Figure 7.10: Least Time Verses Unison Finish

If the joints experience a unison (simultaneous) finish, they will result in reduced stresses in the robot. But, for the test case it is desirable to reduce the complexity of the system. Thus, the robot controller will be using Least Time Finish, with separate joint motion plans for each joint.

8.4 7.4 A Neural Network For Maximum Velocity Motion:

The inputs for the Maximum Velocity Neural Network Controller are the difference between actual position at step ‘k’, and desired joint positions. The outputs were the desired joint velocities after step ‘k’.


Figure 8.11 Figure 7.11: Velocity Steps and Their Difference Equation

The neural network has the structure shown earlier in the chapter. The neural network has learned to emulate the function shown above.

The training set was developed, as discussed in earlier chapters, and the network was trained. Please note that a training and a testing set were generated using the velocity profiles (described earlier in this chapter for generating the optimal path), and the set generation methods of the previous chapter to find sets of points. One interesting development was noted. The network had trouble converging to a reliable solution when it was not ‘taught to stand still’. This meant that the example paths required a few points in space for which the manipulator stood still. Thus, when the optimal paths were calculated, a few time steps were included after the network had successfully reached the goal position.

8.5 7.5 Results:

After the training and testing sets were generated, the network was trained in 30,000 iterations, with a training set of 525 sample points. The network was also tested with a set of 511 test points. A graph of the RMS and average errors, as the network converges, is shown below.


Figure 8.12 Figure 7.12: Convergence of Neural Network for Maximum Velocity Motion

As can be seen, the convergence measures have leveled off. The close match between the training, and the test sets shows that the network has generalized as well. Although, it should be emphasized that since the network is finding a general estimate, the results will not be exact. The average errors were almost zero for each set, while the R.M.S. error was about 2 °/sec. This indicates that the errors tend to vary about zero error, with a scatter up to about 3°/sec.


Figure 8.13 Figure 7.13: Neural Network Convergence Statistics (these values are obtained by comparing particular ideal cases, in the sets, with the neural network generated outputs)

Now that some confidence has been obtained, for the convergence of the neural network, it is possible to evaluate its ability to estimate the control values. This will be done using a set of ten pairs of endpoints randomly chosen from the original list of 580 endpoint pairs. The same list of path endpoints will be used for all tests, and may be seen in the table below,


Figure 8.14 Figure 7.14: Random Set of Path Endpoints For Testing Neural Network Control

This random sample of points will provide a wide look at all the problems that face the neural network planner.

To show the controller’s ability to follow the paths, the ideal solutions, generated by the algorithm, are shown first. Then, the neural network solution will follow. This particular example required about 200 time steps, of 0.1 seconds.


Figure 8.15 Figure 7.15: Algorithm and Neural Network Comparison for Test Path 1

Although joint 2 does not move (and is hidden along the 0 degree axis), joint 1 is visible. As seen from this first sample path, the neural network has matched the ideal solution quite closely. The table below summarizes the results from the comparisons.


Figure 8.16 Figure 7.16: Path Times for Test Paths

The paths were arbitrarily determined to have reached the goal when both joints were within 0.1 degrees of the final goal. The network, and the algorithm were both used with a time step of 0.05 seconds. As can be seen the neural network will provide maximum velocity paths as good, or almost as good as the ideal paths. The other graphs may be seen in the following pages, before the end of this chapter.

8.6 7.6 Conclusion:

These results show that the neural network is very capable, when dealing with simple control approaches. The next requirement is to examine the neural network under the influence of some knowledge about the system state. In particular, the Maximum Acceleration Controller must use system velocity, and the distance to the goal, to determine when acceleration should be applied.


Figure 8.17 Figure 7.17: Position Graphs for Algorithm and Neural Network (Case 2)


Figure 8.18 Figure 7.18: Position Graphs for Algorithm and Neural Network (Case 3)


Figure 8.19 Figure 7.19: Position Graphs for Algorithm and Neural Network (Case 4)


Figure 8.20 Figure 7.20: Position Graphs for Algorithm and Neural Network (Case 5)


Figure 8.21 Figure 7.21: Position Graphs for Algorithm and Neural Network (Case 6)


Figure 8.22 Figure 7.22: Position Graphs for Algorithm and Neural Network (Case 7)


Figure 8.23 Figure 7.23: Position Graphs for Algorithm and Neural Network (Case 8)


Figure 8.24 Figure 7.24: Position Graphs for Algorithm and Neural Network (Case 9)


Figure 8.25 Figure 7.25: Position Graphs for Algorithm and Neural Network (Case 10)