## Joint Angle Control Versus Trajectory Control

### Joint Angle Control

In joint angle control, the robot computes the control inputs required to achieve the desired joint configuration internally. This control strategy enables the robot to achieve the desired joint configuration in short time.

However, if you trace the end-effector position during the movement, the trace is not exactly as intended. Commanding only the desired joint angle configuration has certain inherent issues such as deviation from the desired motion. For example, if the desired motion from one position to another position is only along the z axis, the actual motion is not exactly restricted to the z axis. This is because you are not explicitly controlling the end effector position in joint angle control. Such variance can be undesirable when the manipulator is operating in confined space or within the environment with lot of obstacles.

### Trajectory Control

In trajectory control, you are explicitly defining the intermediate path for the robot, and the end-effector tightly follows the desired path. Because we are not commanding the robot to utilize the maximum allowed joint velocity and acceleration, the entire motion in trajectory control takes more time to complete when compared to the joint angle control.

For trajectory control, you typically use trapezoidal velocity profiles that are computed to reach the desired joint configuration using trapveltraj. Finally, the data points are interpolated to generate a pre-calculated trajectory profile that includes joint position, velocity, and acceleration commands.

### Compare the Control Strategies

In the below figure, time history for all actuators is shown when a robot moves from a scan position to pick an object and retract to the first position, which helps you to compare joint angle versus trajectory control strategies. This data is based on the example, Detect and Pick Object Using KINOVA Gen3 Robot Arm with Joint Angle Control and Trajectory Control. Here, in the first case, robot is controlled using joint angle configuration command to pick the object. For the second case (trajectory control), the object is placed at the same location and the robot is controlled using pre-computed trajectory command. It is quite evident that all actuators follow similar trajectory for both cases. However, in the second case, the robot takes more time to complete the task.

The similarities are more clear when the time history is plotted using the normalized time for both cases. From the time history of the filtered joint velocities, the prime reasons for the difference in time are these:

• When the robot is controlled using joint angle configuration command, the internal motion planning algorithm utilizes maximum allowed acceleration to achieve the desired joint velocity.

• When the robot is controlled using pre-computed trajectory, the allowed acceleration and velocity limits are conservative. If the pre-computed trajectory violates these limits, then the robot rejects such trajectories.

Hence, while generating trapezoidal velocity profiles, conservative time estimate is used to complete the motion. The trapezoidal shape of joint velocities in the example validates the fact that the robot is able to follow the commanded joint angle and velocity profiles. 