Robotics Exam Study Guide
Chapter 2: Position and Orientation
- Homogeneous Transformation Matrix
- Rotation matrix properties
- Translating and rotating vectors
Example:
T_AB = [0.866 -0.5 0 10;
0.5 0.866 0 5;
0
0
1 0;
0
0
0 1];
P_B = [3.0; 7.0; 0.0; 1];
P_A = T_AB * P_B;
Chapter 3: Forward Manipulator Kinematics
Modified DH Symbolic Format:
syms a2 a3 d3 d4 cz
cz = acos(sym(0));
link = [RevoluteMDH, RevoluteMDH('alpha', -cz), RevoluteMDH('a', a2, 'd', d3),
RevoluteMDH('alpha', -cz, 'a', a3, 'd', d4), RevoluteMDH('alpha', cz), RevoluteMDH('alpha', -cz)];
robot = SerialLink(link, 'name', 'PUMA 560');
syms q1 q2 q3 q4 q5 q6
q = [q1, q2, q3, q4, q5, q6];
T = simplify(robot.fkine(q));
Chapter 4: Inverse Manipulator Kinematics
Symbolic IK:
syms q1 q2 q3
L1 = 1; L2 = 1;
x = 1.366; y = 1.366; phi = 0;
e1 = cos(phi) == cos(q1 + q2 + q3);
e2 = sin(phi) == sin(q1 + q2 + q3);
e3 = x == cos(q1) + cos(q1 + q2);
e4 = y == sin(q1) + sin(q1 + q2);
[s1, s2, s3] = solve([e1, e2, e3, e4], [q1, q2, q3]);
Numerical IK (3R MDH):
L1 = 1; L2 = 1;
link = [RevoluteMDH, RevoluteMDH('a', L1), RevoluteMDH('a', L2)];
robot = SerialLink(link, 'name', '3-Link Robot');
T = SE3([1.366, 1.366, 0]) * SE3.rpy([0 0 0]);
qi = robot.ikine(T, 'mask', [1 1 0 0 0 1]);
robot.teach(qi);
PUMA 560 Numerical IK:
mdl_puma560
t = [0.5963, -0.1501, 0.0144];
o = [0.0, 1.5708, 0.0];
T = SE3(t) * SE3.rpy(o);
qi = p560.ikine(T);
p560.teach(qi);
p560.plot3d(qi);