Skip to content

Robot Kinematics

Overview

Kinematics studies the geometric and motion relationships between robot links, without involving forces or torques. It is the most fundamental analytical tool in robotics, divided into two main directions: forward kinematics (FK) and inverse kinematics (IK).

graph LR
    A["Joint Space<br/>q = (q₁, q₂, ..., qₙ)"] -->|Forward Kinematics FK| B["Task Space<br/>x = (x, y, z, φ, θ, ψ)"]
    B -->|Inverse Kinematics IK| A
    style A fill:#e8f4fd,stroke:#2196F3
    style B fill:#fff3e0,stroke:#FF9800

Prerequisites

This article assumes the reader is familiar with homogeneous transformation matrices and coordinate frame descriptions. See Coordinate Systems and Transformations for details.


1 DH Parameters and Forward Kinematics

1.1 Denavit-Hartenberg Convention

DH parameters (Denavit & Hartenberg, 1955) describe the spatial relationship between adjacent links using 4 parameters:

Parameter Symbol Meaning
Link Length \(a_i\) Distance along \(x_i\) from \(z_{i-1}\) to \(z_i\)
Link Twist \(\alpha_i\) Rotation angle about \(x_i\) from \(z_{i-1}\) to \(z_i\)
Link Offset \(d_i\) Distance along \(z_{i-1}\) from \(x_{i-1}\) to \(x_i\)
Joint Angle \(\theta_i\) Rotation angle about \(z_{i-1}\) from \(x_{i-1}\) to \(x_i\)

Revolute vs. Prismatic Joints

  • Revolute Joint: \(\theta_i\) is the joint variable; the other three are constants
  • Prismatic Joint: \(d_i\) is the joint variable; the other three are constants

The transformation from frame \(\{i-1\}\) to frame \(\{i\}\) can be decomposed into four elementary transformations:

\[ ^{i-1}T_i = \text{Rot}(z, \theta_i) \cdot \text{Trans}(0, 0, d_i) \cdot \text{Trans}(a_i, 0, 0) \cdot \text{Rot}(x, \alpha_i) \]

Expanding yields the complete \(4 \times 4\) homogeneous transformation matrix:

\[ ^{i-1}T_i = \begin{bmatrix} \cos\theta_i & -\sin\theta_i \cos\alpha_i & \sin\theta_i \sin\alpha_i & a_i \cos\theta_i \\ \sin\theta_i & \cos\theta_i \cos\alpha_i & -\cos\theta_i \sin\alpha_i & a_i \sin\theta_i \\ 0 & \sin\alpha_i & \cos\alpha_i & d_i \\ 0 & 0 & 0 & 1 \end{bmatrix} \]

1.3 Forward Kinematics Solution

For an \(n\)-DOF robot, the end-effector pose relative to the base is the chain product of all adjacent transformations:

\[ ^{0}T_n = \;^{0}T_1 \cdot \;^{1}T_2 \cdots \;^{n-1}T_n = \prod_{i=1}^{n} \;^{i-1}T_i \]

Example: 2-DOF Planar Manipulator

Assume two revolute joints with link lengths \(l_1, l_2\). DH parameter table:

Link \(\theta_i\) \(d_i\) \(a_i\) \(\alpha_i\)
1 \(\theta_1\) 0 \(l_1\) 0
2 \(\theta_2\) 0 \(l_2\) 0

End-effector position:

\[ x = l_1 \cos\theta_1 + l_2 \cos(\theta_1 + \theta_2) \]
\[ y = l_1 \sin\theta_1 + l_2 \sin(\theta_1 + \theta_2) \]

2 Inverse Kinematics

2.1 Problem Definition

Given a desired end-effector pose \(T_{\text{desired}}\), solve for joint variables \(q = (\theta_1, \theta_2, \ldots, \theta_n)\):

\[ f(q) = T_{\text{desired}} \]

Core challenges of inverse kinematics:

  • Multiple Solutions: The same pose may correspond to multiple joint angle configurations
  • No Solution: The target may be outside the workspace
  • Singularity: At certain configurations, degrees of freedom degenerate

2.2 Geometric (Analytical) Method

Applicable to manipulators with simple structures (e.g., 2-link, 6-DOF with spherical wrist).

2-Link Planar Arm Inverse Solution Derivation:

Given end-effector position \((x, y)\), solve for \((\theta_1, \theta_2)\).

Step 1: Solve for \(\theta_2\) using the law of cosines

\[ x^2 + y^2 = l_1^2 + l_2^2 + 2 l_1 l_2 \cos\theta_2 \]
\[ \cos\theta_2 = \frac{x^2 + y^2 - l_1^2 - l_2^2}{2 l_1 l_2} \]
\[ \theta_2 = \pm \arccos\left(\frac{x^2 + y^2 - l_1^2 - l_2^2}{2 l_1 l_2}\right) \]

The \(\pm\) sign corresponds to elbow-up/elbow-down configurations

Step 2: Solve for \(\theta_1\) using \(\text{atan2}\)

\[ \theta_1 = \text{atan2}(y, x) - \text{atan2}(l_2 \sin\theta_2,\; l_1 + l_2 \cos\theta_2) \]

2.3 Numerical Method (Newton-Raphson Iteration)

Applicable to manipulators with general configurations.

Basic Idea: Linearize forward kinematics \(f(q)\) at the current solution \(q_k\) and iteratively solve.

\[ f(q_k + \Delta q) \approx f(q_k) + J(q_k) \Delta q = x_d \]
\[ \Delta q = J(q_k)^{-1} (x_d - f(q_k)) = J(q_k)^{-1} \, e_k \]

Complete Iterative Algorithm:

Input: Target pose x_d, initial guess q_0, tolerance ε, max iterations N
Output: Joint angles q*

q ← q_0
for k = 1 to N:
    e ← x_d - f(q)           # Pose error
    if ||e|| < ε:
        return q              # Converged
    J ← Jacobian(q)          # Compute Jacobian
    Δq ← J⁺ · e              # Pseudoinverse for increment
    q ← q + α · Δq           # Step size α ∈ (0,1]
return FAILURE

Practical Recommendations

  • When \(J\) is not square or near singular, use Damped Least Squares (DLS): \(\Delta q = J^T(JJ^T + \lambda^2 I)^{-1} e\)
  • \(\lambda\) is the damping factor, which can be adaptively adjusted (Levenberg-Marquardt)
  • Multiple random initializations help find global solutions

3 The Jacobian Matrix

3.1 Definition and Significance

The Jacobian matrix describes the linear mapping between joint velocities and end-effector velocities:

\[ J(q) = \frac{\partial f(q)}{\partial q} \in \mathbb{R}^{m \times n} \]
\[ \dot{x} = J(q) \dot{q} \]

where \(\dot{x} \in \mathbb{R}^m\) is the end-effector velocity (including linear and angular velocity) and \(\dot{q} \in \mathbb{R}^n\) is the joint velocity.

For a spatial manipulator, \(m = 6\) (3 linear velocity + 3 angular velocity), and the Jacobian takes the form:

\[ J = \begin{bmatrix} J_v \\ J_\omega \end{bmatrix} = \begin{bmatrix} \frac{\partial p}{\partial q_1} & \cdots & \frac{\partial p}{\partial q_n} \\ \vdots & & \vdots \end{bmatrix}_{6 \times n} \]

3.2 Methods for Computing the Jacobian

Method 1: Differentiation

Directly differentiate the forward kinematics equations.

Method 2: Geometric Method (more commonly used)

For revolute joint \(i\):

\[ J_i = \begin{bmatrix} z_{i-1} \times (p_n - p_{i-1}) \\ z_{i-1} \end{bmatrix} \]

For prismatic joint \(i\):

\[ J_i = \begin{bmatrix} z_{i-1} \\ 0 \end{bmatrix} \]

where \(z_{i-1}\) is the rotation axis direction of joint \(i\), \(p_{i-1}\) is the position of joint \(i\), and \(p_n\) is the end-effector position.

3.3 Applications of the Jacobian

Application Formula
Velocity Mapping \(\dot{x} = J \dot{q}\)
Force Mapping \(\tau = J^T F\)
Inverse Kinematics \(\dot{q} = J^{-1} \dot{x}\) (or pseudoinverse)
Redundancy Resolution \(\dot{q} = J^{\dagger}\dot{x} + (I - J^{\dagger}J)\dot{q}_0\)

4 Singularities

4.1 Definition

When the Jacobian matrix \(J(q)\) is rank-deficient, the robot is in a singular configuration:

\[ \det(J(q)) = 0 \quad (\text{square matrix case}) \]
\[ \text{rank}(J(q)) < \min(m, n) \quad (\text{general case}) \]

4.2 Consequences of Singularity

  • The end-effector loses degrees of freedom in certain directions
  • Inverse kinematics joint velocities tend toward infinity
  • Force transmission characteristics degenerate

4.3 Types of Singularities

Type Description Example
Boundary Singularity Arm fully extended or folded 2-link arm fully straightened
Internal Singularity Two joint axes aligned Wrist gimbal lock

4.4 Mitigation Methods

  • Damped Least Squares (DLS): Adding a regularization term to prevent velocity explosion
  • Singularity-Aware Planning: Avoiding singular regions during trajectory generation
  • Redundant DOF: Using null-space motion to bypass singularities

5 Workspace

5.1 Definition

The set of all positions (and orientations) that the robot's end-effector can reach.

  • Reachable Workspace: All points the end-effector can reach, regardless of orientation
  • Dexterous Workspace: Points the end-effector can reach with arbitrary orientation

5.2 Influencing Factors

  • Link lengths and DH parameters
  • Joint motion range limits
  • Joint types (revolute/prismatic)
  • Mechanical interference and self-collision

5.3 Workspace Analysis Methods

  • Analytical Method: Deriving boundary equations for simple mechanisms
  • Numerical Method: Monte Carlo sampling + forward kinematics computation
  • Manipulability Index: \(w = \sqrt{\det(J J^T)}\), quantifying distance from singularity

6 Advanced Topics

6.1 Redundant Robots

When degrees of freedom \(n > m\) (more joints than task space dimensions), the robot has kinematic redundancy. Null-space projection can be used to optimize secondary objectives:

\[ \dot{q} = J^{\dagger} \dot{x} + (I - J^{\dagger}J) \dot{q}_0 \]

where \(\dot{q}_0\) is an arbitrary velocity in the null space, which can be used for:

  • Obstacle avoidance
  • Staying away from joint limits
  • Minimizing energy consumption

6.2 Humanoid Robot Kinematics

Humanoid robots (see Humanoid Robots) have highly redundant tree-structured kinematic chains. Their kinematic analysis requires:

  • Floating base modeling (6-DOF virtual joint)
  • Multiple end-effector constraints (bipedal contact, hand manipulation)
  • Center of mass kinematics (\(x_{\text{CoM}} = \frac{1}{M}\sum m_i p_i\))

References

  1. Craig, J. J. (2005). Introduction to Robotics: Mechanics and Control. Pearson.
  2. Siciliano, B. et al. (2009). Robotics: Modelling, Planning and Control. Springer.
  3. Lynch, K. M. & Park, F. C. (2017). Modern Robotics. Cambridge University Press.
  4. Corke, P. (2017). Robotics, Vision and Control. Springer.

评论 #