The document describes generating a trajectory for a robot arm between an initial and final pose using a Cartesian trajectory generator function. It plots the translation and orientation components of the trajectory motion. It then deliberately generates a trajectory that moves through a robot singularity by changing the Cartesian endpoints, resulting in a trajectory where the wrist joint angles change very rapidly when a rotational axis becomes aligned, causing a singularity.
The document describes generating a trajectory for a robot arm between an initial and final pose using a Cartesian trajectory generator function. It plots the translation and orientation components of the trajectory motion. It then deliberately generates a trajectory that moves through a robot singularity by changing the Cartesian endpoints, resulting in a trajectory where the wrist joint angles change very rapidly when a rotational axis becomes aligned, causing a singularity.
The document describes generating a trajectory for a robot arm between an initial and final pose using a Cartesian trajectory generator function. It plots the translation and orientation components of the trajectory motion. It then deliberately generates a trajectory that moves through a robot singularity by changing the Cartesian endpoints, resulting in a trajectory where the wrist joint angles change very rapidly when a rotational axis becomes aligned, causing a singularity.
where the arguments are the initial and final pose and the number
of time steps and it
returns the trajectory as a 3-dimensional matrix. As for the previous joint-space example we will extract and plot the translation >> plot(t, transl(Ts)); and orientation components >> plot(t, tr2rpy(Ts)); of this motion which is shown in Fig. 7.11 along with the path of the end-effector in the xy-plane. Compared to Fig. 7.9b and c we note some important differences. Firstly the position and orientation, Fig. 7.11b and d vary linearly with time. For orientation the pitch angle is constant at zero and does not vary along the path. Secondly the endeffector follows a straight line in the xy-plane as shown in Fig. 7.9c. The corresponding joint-space trajectory is obtained by applying the inverse kinematics >> qc = p560.ikine6s(Ts); We have already briefly touched on the topic of singularities (page 148) and we will revisit it again in the next chapter. In the next example we deliberately choose a trajectory that moves through a robot singularity. We change the Cartesian endpoints of the previous example to >> T1 = transl(0.5, 0.3, 0.44) * troty(pi/2); >> T2 = transl(0.5, -0.3, 0.44) * troty(pi/2); which results in motion in the y-direction with the end-effector z- axis pointing in the x-direction. The Cartesian path is >> Ts = ctraj(T1, T2, length(t)); which we convert to joint coordinates >> qc = p560.ikine6s(Ts) and is shown in Fig. 7.12a. At time t ≈0.7 s we observe that the rate of change of the wrist joint angles q4 and q6 has become very high._ The cause is that q5 has become almost zero which means that the q4 and q6 rotational axes are almost aligned – another gimbal lock situation or singularity.