Robot Mechanics and Control Robot Mechanics and Control

Example 5.09: Offset Spherical Manipulator: Jacobian Computation (MATLAB)

Offset Spherical Manipulator

This example illustrates a computation with specific joint values for the offset spherical manipulator Jacobian. See textbook example description for an interpretation of the screw coordinates.

Contents

Clear All Workspace Objects and Reset All Assumptions

clear all

Structural Parameters

d2 = 18; % cm

Joint Values

theta1 = 90; % deg
theta2 = -90; % deg
d3 = 50; % cm
theta4 = 90; % deg
theta5 = 90; % deg
theta6 = -90; % deg

Local Variables From U- and T-Matrices

U214 = -d3*sind(theta2);
U224 = d3*cosd(theta2);

U114 = U214*cosd(theta1) + d2*sind(theta1);
U124 = U214*sind(theta1) - d2*cosd(theta1);

T211 = cosd(theta1)*cosd(theta2);
T213 = -cosd(theta1)*sind(theta2);
T214 = d2*sind(theta1);
T221 = sind(theta1)*cosd(theta2);
T223 = -sind(theta1)*sind(theta2);
T224 = -d2*cosd(theta1);

T411 = T211*cosd(theta4) - sind(theta1)*sind(theta4);
T413 = sind(theta1)*cosd(theta4) + T211*sind(theta4);
T421 = cosd(theta1)*sind(theta4) + T221*cosd(theta4);
T423 = T221*sind(theta4) - cosd(theta1)*cosd(theta4);
T431 = sind(theta2)*cosd(theta4);
T433 = sind(theta2)*sind(theta4);

T513 = T213*cosd(theta5) - T411*sind(theta5);
T523 = T223*cosd(theta5) - T421*sind(theta5);
T533 = cosd(theta2)*cosd(theta5) - T431*sind(theta5);

Joint-Screw 1: $^{0}\hspace{0.34em}\rule[-0.17em]{0.01in}{1.0em}\hspace{-0.34em}{\mathbf S}_{1|6}$

Jacobian(:,1) = [ 0; 0; 1; -U124; U114; 0];

Joint-Screw 2: $^{0}\hspace{0.34em}\rule[-0.17em]{0.01in}{1.0em}\hspace{-0.34em}{\mathbf S}_{2|6}$

Jacobian(:,2) = [sind(theta1); -cosd(theta1); 0; -U224*cosd(theta1); -U224*sind(theta1); U214];

Joint-Screw 3: $^{0}\hspace{0.34em}\rule[-0.17em]{0.01in}{1.0em}\hspace{-0.34em}{\mathbf S}_{3|6}$

Jacobian(:,3) = [0; 0; 0; T213; T223; cosd(theta2)];

Joint-Screw 4: $^{0}\hspace{0.34em}\rule[-0.17em]{0.01in}{1.0em}\hspace{-0.34em}{\mathbf S}_{4|6}$

Jacobian(:,4) = [ T213; T223; cosd(theta2); 0; 0; 0];

Joint-Screw 5: $^{0}\hspace{0.34em}\rule[-0.17em]{0.01in}{1.0em}\hspace{-0.34em}{\mathbf S}_{5|6}$

Jacobian(:,5) = [ T413; T423; T433; 0; 0; 0];

Joint-Screw 6: $^{0}\hspace{0.34em}\rule[-0.17em]{0.01in}{1.0em}\hspace{-0.34em}{\mathbf S}_{6|6}$

Jacobian(:,6) = [T513; T523; T533; 0; 0; 0];

The Jacobian Resolved in $O_{0}-xyz$: $^{0}\mathbf{J}_{6}$

J6Res0 = Jacobian
J6Res0 =

     0     1     0     0     0     1
     0     0     0     1     0     0
     1     0     0     0    -1     0
   -50     0     0     0     0     0
    18     0     1     0     0     0
     0    50     0     0     0     0

This MATLAB example illustrates a computation from the textbook Fundamentals of Robot Mechanics by G. L. Long, Quintus-Hyperion Press, 2015. See http://www.RobotMechanicsControl.info for additional relevant files.