Robotics Kinematics Lesson 2
Notes for ME5421
Denavit-Hartenberg Representation
- two rules to limit 6 DOF to 4 variables representation
- z-axis is the axis of motion (Link i moves around or along z-axis of frame i-1)
- x-axis is the common normal of z-axis of frame i-1 and frame i
Four parameters
The four parameters are the four elementary motions:
- $\theta_i$: bring $x_{i-1} // x_i$, around $z_{i-1}$
- $r_i$: bring $x_{i-1} = x_i$, along $z_{i-1}$
- $d_i$: bring origin $O_{i-1} = O_i$, along $x_i$
- $\alpha_i$: bring $z_{i-1} = z_i$, around $x_i$
For each joint, only one parameter is variable.
- Rotational joint: $\theta_i$
- Translational joint: $r_i$ These are called the **joint variables $q_i$**
Forward Kinematic Problem
know joint, find hand
Given: {q_i}, {DH parameters}; Find: End-effector position $P_E$ and orientation $R_E$
- Assign Frame
- Identify joint variables and link kinematic parameters
- Define like transformation matrices. $^{i-1}T_i = A_i$
- $^{i-1}T_i = Rot(z, \theta_i) Trans(0,0,r_i) Trans(d_i,0,0) Rot(x, \alpha_i)$
- $A_i(q_i) = {}^{i-1}T_i = \begin{bmatrix} cos\theta_i & - sin\theta_i cos\alpha_i & sin\theta_i sin\alpha_i & d_i cos\theta_i \\ sin\theta_i & cos\theta_i cos\alpha_i & -cos\theta_i sin\alpha_i & d_i sin\theta_i \\ 0 & sin \alpha_i & cos\alpha_i & r_i \\ 0 & 0 & 0 & 1 \end{bmatrix}$
- Compute $^{0}T_N(q_1q_2...q_N) = A_1A_2...A_n$
Inverse Kinematic Problem
know hand, find how to move joints
Given: {DH parameters}, P_E, R_E; Find: {q_i}
ISSUE: the solution is not unique or may not exist
- Existence
- $P_E$ must be within the workspace
- Dexterous workspace: the position and orientation can be fully controlled
- but sometimes dexterous workspace can mean the workspace we are interested in, which might not be the full position and orientation
- is P is in Dexterous workspace, then there is a solution
Solution for Inverse Kinematic Problem
Given: $$ ^{0}T_N = \begin{bmatrix} n_x & o_x & a_x & p_x \\ n_y & o_y & a_y & p_y \\ n_z & o_z & a_z & p_z \\ 0 & 0 & 0 & 1 \end{bmatrix} A_i = \begin{bmatrix} c\theta_i & -c \alpha_i s \theta_i & s \alpha_i s \theta_i & d_i c \theta_i \\ s\theta_i & c \alpha_i c \theta_i & -s \alpha_i c \theta_i & d_i s \theta_i \\ 0 & s \alpha_i & c \alpha_i & r_i \\ 0 & 0 & 0 & 1 \end{bmatrix} $$ Find: $\mathbf{q} = q_1, q_2, ..., q_N$ We know that: $^{0}T_N = A_1A_2...A_N$ and $LHS(i,j) = RHS(i,j)$Approach 1: General Solution
$$ A_1^{-1} {}^0T_N = A_2A_3...A_N = {}^1T_N $$ And examine the LHS and RHS, to look for constant elements in $^1T_N$. And $q_1$ can be solved. And we can do this recursively to solve for all $q_i$.
Note that there is no algorithmic approach that is 100% effective. And we need geometric intuition.
Special Cases: DECOUPLED ROBOT GEOMETRIES
- Robots with any 3 joints are TRANSLATIONAL
- Robots with any 3 rotational joints axes co-intersecting at a common point. i.e. their Z-axis intersect at a common point.
These can reduce system to a lower order subsystem (i.e. 3rd order) for which closed form solutions are guaranteed.
Example Case 1: Cartesian Robot
As the first three joints are translational, we can write: $^0R_6 = f(q_4, q_5, q_6)$ then we can solve for $q_4, q_5, q_6$. Then we can solve for $q_1, q_2, q_3$ using $^0P_6 = f(q_1, q_2, q_3) (known: q_4, q_5, q_6)$So, we decoupled the problem into two subsystems, with orientaion decoupled.
Example Case 2: PUMA Robot
The last three rotaional joints have co-intersecting axes, which means when rotating them, the $^0P_{cointersection} = f(q_1, q_2, q_3)$. Given $^0P_6$, $^0P_{co} = {}^0P_6 - r_6 {}^0z_6$, where $r_6$ is the distance between co to $O_6$ So, we solve $^0R_4 = f(q_1, q_2, q_3)$ first and then $^0R_6 = f(q_1, q_2, q_3, q_4, q_5, q_6)$We decoupled position this time.