Current frame rotation: Post-multiply (\(R_{current\_total} R_{new\_current}\))
Rigid Motion: Translation and Rotation Combined
A rigid motion is a combination of a pure translation and a pure rotation.
To express a point \(p^1\) (in frame {1}) with respect to frame {0}:
\[
p^0=R_1^0p^1+d^0 \quad \text{(2.10)}
\]
Where: - \(R_1^0\) is the rotation matrix of frame {1} w.r.t. frame {0}. - \(d^0\) is the vector from frame {0} origin to frame {1} origin, expressed in frame {0}.
Figure 2.7 The location of the blue dot in frame {0}.
Figure 2.8 The location of the blue dot in frame {1}.
Chained Rigid Motions
Consider three frames: {0}, {1}, and {2}.
\(d_1^0\): vector from origin of {0} to origin of {1}.
\(d_2^1\): vector from origin of {1} to origin of {2}.
\(p^2\): point \(p\) represented in frame {2}.
To compute \(p^0\) (point \(p\) relative to frame {0}):
Transform \(p^2\) to frame {1}: \(p^1=R_2^1p^2+d_2^1 \quad \text{(2.11)}\)
Transform \(p^1\) to frame {0}: \(p^0=R_1^0p^1+d_1^0 \quad \text{(2.12)}\)
Substitute (2.11) into (2.12): \(p^0=R_1^0(R_2^1p^2+d_2^1)+d_1^0 = R_1^0R_2^1p^2+R_1^0d_2^1+d_1^0 \quad \text{(2.13)}\)
We define:
\(R_2^0=R_1^0R_2^1 \quad \text{(2.14)}\)
\(d_2^0=d_1^0+R_1^0d_2^1 \quad \text{(2.15)}\)
Thus, the final transformation is: \[
p^0=R_2^0p^2+d_2^0 \quad \text{(2.16)}
\]
These are fundamental transformations for translation and rotation about principal axes. (Note: \(c_\alpha = \cos \alpha\), \(s_\alpha = \sin \alpha\))
Where \(A_i\) is the homogeneous transformation from frame \(i-1\) to \(i\): \[
A_i=\begin{bmatrix} R_i^{i-1} & o_i^{i-1}\\ 0 & 1 \end{bmatrix} \quad \text{(2.24)}
\]
Forward Kinematics: Trigonometry Method
The trigonometry method is suitable for simple, planar robots.
Approach:
Place the robot in a 2-D planar coordinate system.
Find the angles between each joint movement.
Use trigonometric functions (\(\sin\), \(\cos\)) to find the end-effector’s coordinates relative to the base.
This method provides intuitive geometric insights but can become complex for 3D or multi-link manipulators.
This matrix encapsulates all four DH parameters: \(a\), \(\alpha\), \(d\), \(\theta\).
DH Convention Steps: Drawing & Axes
Step 1: Draw out the robot
Illustrate the revolute and prismatic joints.
Set the \(z_i\) axis as the axis of rotation for revolute joints or the axis of translation for prismatic joints.
Define the joint variable (\(\theta_i\) or \(d_i\)).
Step 2: Assign the remaining axes
The \(x_i\) axis must be perpendicular to both \(z_i\) and \(z_{i-1}\).
It must also intersect with \(z_{i-1}\).
The \(y_i\) axis is determined by the right-hand rule (thumb \(z_i\), index finger \(x_i\), middle finger \(y_i\)).
Note
Right-Hand Rule: Align your thumb with the positive \(z\)-axis, your index finger with the positive \(x\)-axis, and your middle finger will point to the positive \(y\)-axis.
DH Convention Steps: Assigning Parameters
Step 3: Assign the DH parameters
Link Length (\(a_i\)): Measured along \(x_i\), distance between \(z_{i-1}\) and \(z_i\).
Link Twist (\(\alpha_i\)): Angle between \(z_{i-1}\) and \(z_i\), measured in a plane normal to \(x_i\).
Joint Offset (\(d_i\)): Measured along \(z_{i-1}\), distance from origin \(O_{i-1}\) to the intersection of \(x_i\) and \(z_{i-1}\).
If joint \(i\) is revolute, \(d_i\) is constant.
Joint Angle (\(\theta_i\)): Angle between \(x_{i-1}\) and \(x_i\), measured in a plane normal to \(z_{i-1}\).
If joint \(i\) is prismatic, \(\theta_i\) is constant.
The end-effector coordinates (\(x,y\)) are the last column’s first two entries: \(x=a_1c_1+a_2c_{12}\), \(y=a_1s_1+a_2s_{12}\).
Forward Kinematics: Screw Theory
Screw Theory is an alternative to the Denavit-Hartenberg convention. It describes rigid motion as a twist about a screw axis.
Key Ideas:
Only two coordinate systems are needed:
Space {s} frame: Fixed in space.
Body {b} frame: End-effector frame, moves with the robot.
Uses the Product of Exponentials (PoE) formula for transformation matrix \(T(\theta)\).
Multiplication Rules
If using {s} frame:Pre-multiplication (\(e^{\hat{S}_1\theta_1} \dots M\))
If using {b} frame:Post-multiplication (\(M \dots e^{\hat{B}_n\theta_n}\))
Screw Theory: Twists & Screw Axis
A twist defines a body’s instantaneous linear and angular velocity. It is described by a screw axis, which has:
A point \(q\) on the axis.
A unit vector \(s\) in the direction of the axis.
A pitch \(h\).
Figure 2.12 Screw axis representation.
The pitch (\(h\)) is the ratio of linear to angular speed: \[
h=pitch=\frac{\textrm{linear speed}}{\textrm{angular speed}} \quad \text{(2.26)}
\]
The screw axis \(S\) represents angular velocity (\(\omega\)) and linear velocity (\(v\)) components: \[
S=\begin{bmatrix} S_\omega\\ S_v \end{bmatrix}=\begin{bmatrix} \textrm{angular velocity when } \dot{\theta}=1\\ \textrm{linear velocity of the origin when } \dot{\theta}=1 \end{bmatrix} \quad \text{(2.27)}
\]
Figure 2.13 Screw axis representation with the linear velocity of the origin defined.
The full twist \(V\) is: \[
V=\begin{bmatrix} \omega\\ v \end{bmatrix}=S\dot{\theta} \quad \text{(2.28)}
\]
Twists: Finite and Infinite Pitch
Finite Pitch:
Both rotation and translation occur.
\(\|S_\omega\|=1\)
\(\dot{\theta}\) represents rotation speed.
Infinite Pitch (Prismatic Joint):
Purely linear motion, no rotation.
\(S_\omega=0\)
\(\|S_v\|=1\)
\(\dot{\theta}\) represents linear speed.
Body Twist (\(V_b\))
Defined in the {b} frame (end-effector): \[
V_b=(\omega_b,v_b)=S\dot{\theta} \quad \text{(2.29)}
\]
Spatial Twist (\(V_s\))
Defined in the {s} frame (space/fixed): \[
V_s=(\omega_s,v_s)=S\dot{\theta} \quad \text{(2.30)}
\]
Example: Simple Twist
Consider a zero-pitch screw, with a pure rotation. The screw is pointing out of the screen (black dot). Imagine the dotted line rotates counterclockwise. Find the angular and linear velocity.
This corresponds to: \[
S_\omega=\begin{bmatrix} 0\\ 0 \\ 1 \end{bmatrix}, S_v=\begin{bmatrix} 0\\ -2 \\ 0 \end{bmatrix}
\]
Screw Theory: Practical Procedure
To find forward kinematics using screw theory:
Step 1: Establish {s} and {b} frames
{s} frame: Basic coordinate system fixed in space.
{b} frame: End-effector coordinate system, moves with the robot.
Step 2: Determine \(M\)
The transformation matrix \(M\) of the end-effector frame when all joint variables \(\theta = 0^\circ\).
Step 3: Find Screw Axes
Determine the {s} frame screw axes \(S_1, \dots, S_n\) or {b} frame screw axes \(B_1, \dots, B_n\) for each of the \(n\) joint axes when \(\theta = 0^\circ\).
Step 4: Evaluate the Product of Exponentials (PoE)
For {s} frame (space frame):\[
T(\theta)=e^{\hat{S}_1\theta_1}e^{\hat{S}_2\theta_2}\cdots e^{\hat{S}_n\theta_n}M \quad \text{(2.31)}
\]
For {b} frame (body frame):\[
T(\theta)=Me^{\hat{B}_1\theta_1}e^{\hat{B}_2\theta_2}\cdots e^{\hat{B}_n\theta_n} \quad \text{(2.32)}
\]
Example: Screw Theory in {s} frame
Consider an RPR (Revolute-Prismatic-Revolute) robot in its’ zero-frame orientation and then in a rotated orientation. Derive the forward kinematics using Screw Theory.
Angle addition/subtraction (example given is incorrect, correct version is below): \(\cos(\theta_1+\theta_2)\cos\theta_1+\sin(\theta_1+\theta_2)\sin\theta_1 = \cos(\theta_2) \quad \text{(2.34)}\) (Original was \(\cos(\theta_1 + \theta_2 - \theta_1) = \cos\theta_1\), which simplifies to \(\cos(\theta_2)\))
Sine addition/subtraction: \(\sin(\alpha\pm\beta)=\sin\alpha \cos\beta \pm \cos\alpha \sin\beta \quad \text{(2.35)}\)
Frame {0} and frame {1} are shown below with their respective vectors. All axes are parallel (\(z_0 || y_1, x_0 || x_1, y_0 || z_1\)). Find the position vector \(p^0\) and the homogeneous transformation matrix \(H_1^0\).
Answer: From the image, \(x_0 || x_1\), \(y_0 || z_1\), \(z_0 || y_1\). This means frame {1} is rotated 90 degrees about \(x_0\) relative to frame {0}.
Consider the following robot in its’ zero-frame orientation. Derive the forward kinematics using Screw Theory using either the space or end-effector frame.