Forward kinematics of serial manipulators

Computing tool position and orientation from joint values: link transform products, planar 2R/3R and articulated RRR formulas, and joint-error sensitivity.

Drafted with Aria, reviewed by the AiCanCode.org team. Spotted an error? Use Give Feedback at the bottom of the page.

Why it matters

Forward kinematics answers the question the controller asks thousands of times a second: given the joint readings, where is the tool and which way is it pointing? It is used to display the tool position on the teach pendant, to check workspace and safety zones, and as the starting point for the Jacobian, inverse kinematics and dynamics.

Key ideas

Definition. For a serial manipulator with joint variables q = (q₁, …, qₙ) — angles θ for revolute joints, displacements d for prismatic joints — forward kinematics (FK) is the map q → ⁰Tₙ(q), the pose (position + orientation) of the tool frame in the base frame. FK always has a unique answer, unlike inverse kinematics.

Procedure.

  1. Assign link frames (usually with the DH convention) and write the DH table.
  2. Form each link transform Aᵢ(qᵢ).
  3. Multiply: ⁰Tₙ = A₁·A₂·…·Aₙ. Add a fixed base transform (robot mounted on a pedestal) and tool transform (gripper length) if needed: ʷT_tool = ʷT₀·⁰Tₙ·ⁿT_tool.
  4. Read position from the fourth column and orientation from the 3 × 3 block; convert to roll-pitch-yaw or another set if required.

Planar arms can be solved by geometry directly: each link adds a vector of length Lᵢ at the cumulative angle θ₁ + … + θᵢ. The tool orientation in the plane is φ = θ₁ + θ₂ + … + θₙ.

Articulated (RRR) arm. For waist θ₁, shoulder θ₂ and elbow θ₃ (shoulder height d₁, upper arm a₂, forearm a₃), the arm acts as a planar 2R arm in a vertical plane that is rotated by θ₁ about the vertical axis. This decoupling is the key to both FK and IK of most 6-axis industrial arms; the last three joints form a spherical wrist that only changes orientation.

Joint space vs task space. q lives in joint space (n-dimensional); the tool pose lives in task (Cartesian) space (up to 6-dimensional). FK maps joint space to task space; it is nonlinear because of the sines and cosines.

Error sensitivity. A small joint angle error δθ at a joint produces a tool position error of about r·δθ, where r is the distance from that joint axis to the tool — base joints matter most. This is why encoder resolution and link deflection on the first axes dominate accuracy.

Formulas

⁰Tₙ = A₁(q₁) · A₂(q₂) · … · Aₙ(qₙ)

Planar 2R: x = L₁·cos θ₁ + L₂·cos(θ₁ + θ₂), y = L₁·sin θ₁ + L₂·sin(θ₁ + θ₂), φ = θ₁ + θ₂

Planar 3R: x = L₁·c₁ + L₂·c₁₂ + L₃·c₁₂₃, y = L₁·s₁ + L₂·s₁₂ + L₃·s₁₂₃, φ = θ₁ + θ₂ + θ₃

  • cᵢⱼ = cos(θᵢ + θⱼ), sᵢⱼ = sin(θᵢ + θⱼ); Lᵢ in m; angles in degrees or rad.

Articulated RRR: r = a₂·cos θ₂ + a₃·cos(θ₂ + θ₃), x = r·cos θ₁, y = r·sin θ₁, z = d₁ + a₂·sin θ₂ + a₃·sin(θ₂ + θ₃)

  • d₁ — shoulder height (m); a₂, a₃ — upper-arm and forearm lengths (m); θ₂ measured from the horizontal.

Position error ≈ r · δθ

  • r — distance from the joint axis to the tool (m); δθ — joint error (rad).

Worked examples

Example 1 (standard). A planar 2R arm has L₁ = L₂ = 1 m, θ₁ = 45°, θ₂ = 30°. Find the tool position and orientation.

  1. x = L₁·cos θ₁ + L₂·cos(θ₁ + θ₂) = cos 45° + cos 75° = 0.7071 + 0.2588 = 0.9659 m.
  2. y = sin 45° + sin 75° = 0.7071 + 0.9659 = 1.6730 m.
  3. φ = 45° + 30° = 75°.

Answer: (0.966 m, 1.673 m), φ = 75°.

Example 2 (GATE level). An articulated RRR arm has d₁ = 0.5 m, a₂ = 0.4 m, a₃ = 0.3 m. For θ₁ = 60°, θ₂ = 30°, θ₃ = −60°, find the tool position.

  1. Horizontal reach: r = 0.4·cos 30° + 0.3·cos(−30°) = 0.3464 + 0.2598 = 0.6062 m.
  2. Height: z = 0.5 + 0.4·sin 30° + 0.3·sin(−30°) = 0.5 + 0.2 − 0.15 = 0.55 m.
  3. Rotate the plane by θ₁: x = 0.6062·cos 60° = 0.3031 m, y = 0.6062·sin 60° = 0.5250 m.
  4. Check with the DH product A₁·A₂·A₃ (α₁ = 90°): fourth column = (0.3031, 0.5250, 0.5500). ✓

Answer: (0.303, 0.525, 0.550) m.

Example 3 (error sensitivity). The tool of an arm is 1.2 m from the base axis. The base encoder has an error of 0.01°. Position error ≈ r·δθ = 1.2 × (0.01 × π/180) = 2.09 × 10⁻⁴ m ≈ 0.21 mm.

Common mistakes

  • Using θ₂ alone instead of the cumulative angle θ₁ + θ₂ for the second link.
  • Calculator in radian mode with angles in degrees (or the reverse).
  • Multiplying link transforms in the wrong order — always base to tool, A₁·A₂·…
  • Forgetting the tool transform, so the computed point is the flange, not the gripper tip.
  • Thinking FK can have several answers — it is unique; multiplicity belongs to IK.
  • Using r·δθ with δθ in degrees.

For GATE ME

Most questions are planar 2R or 3R arms: find x, y or the tool angle for given joint angles, or the distance of the tool from the base. Occasionally a DH table is given for a 2- or 3-joint arm. Practise fast, careful trigonometry with cumulative angles and sanity-check with the reach limits |L₁ − L₂| ≤ r ≤ L₁ + L₂.

Quick check

  1. Planar 2R, L₁ = 2 m, L₂ = 1 m, θ₁ = 0°, θ₂ = 90°. Tool position?
  2. Is forward kinematics unique?
  3. What is the tool orientation of a planar 3R arm with θ = 30°, 40°, −20°?
  4. Order of multiplication for ⁰T₃?
  5. A 0.001 rad error at a joint 0.8 m from the tool causes about how much position error?

Answers: 1. (2, 1) m; 2. Yes; 3. 50°; 4. A₁·A₂·A₃; 5. 0.8 mm.

Forward Kinematics of a 2-Link Manipulator

Adjust the joint angles to see how the end effector's position changes. Observe the live computation of the end effector's coordinates.

Equations used
  • x = L1 * cos(θ1) + L2 * cos(θ1 + θ2) — x position of end effector
  • y = L1 * sin(θ1) + L2 * sin(θ1 + θ2) — y position of end effector

Try answering each one aloud before you open it.

  1. 1.What is forward kinematics in the context of serial manipulators?Concept

    Forward kinematics is the process of determining the position and orientation of the end-effector of a serial manipulator, given the joint parameters such as angles or displacements. It involves using the kinematic equations of the manipulator to compute the pose of the end-effector in the workspace.

  2. 2.Explain the difference between forward kinematics and inverse kinematics.Concept

    Forward kinematics involves calculating the position and orientation of the end-effector from known joint parameters, while inverse kinematics involves determining the joint parameters needed to achieve a desired position and orientation of the end-effector. Forward kinematics is generally straightforward, whereas inverse kinematics can be more complex due to multiple possible solutions or constraints.

  3. 3.Why is the Denavit-Hartenberg (D-H) convention used in forward kinematics?Application

    The Denavit-Hartenberg convention is used to systematically represent the kinematic equations of a manipulator. It simplifies the process of modeling the geometry of the manipulator by using a standardized method to define the coordinate frames and transformations between them. This makes it easier to derive the forward kinematics equations.

  4. 4.What happens if there is an error in the joint parameters during forward kinematics calculations?Application

    If there is an error in the joint parameters, the calculated position and orientation of the end-effector will be incorrect. This can lead to inaccuracies in the manipulator's operation, potentially causing it to miss its target or collide with obstacles. Accurate joint parameter measurements are crucial for precise manipulator control.

  5. 5.Explain how the transformation matrix is used in forward kinematics.Concept

    In forward kinematics, transformation matrices are used to represent the position and orientation of each link relative to the previous link. By multiplying these matrices together, we can compute the overall transformation from the base of the manipulator to the end-effector, giving us its position and orientation in the workspace.

  6. 6.How does the number of degrees of freedom affect the forward kinematics of a serial manipulator?Application

    The number of degrees of freedom (DOF) in a serial manipulator determines the complexity of its forward kinematics. More DOF means more joints and links, leading to more transformation matrices to compute. While this increases the manipulator's flexibility and ability to reach various positions, it also makes the kinematic equations more complex.

  7. 7.What is the role of homogeneous coordinates in forward kinematics?Concept

    Homogeneous coordinates are used in forward kinematics to represent points in space, allowing for the inclusion of both rotational and translational transformations in a single matrix operation. This simplifies the mathematical manipulation of the kinematic equations, making it easier to compute the position and orientation of the end-effector.

  8. 8.Calculate the position of the end-effector for a 2-link planar manipulator with link lengths L1 = 1 m and L2 = 1 m, and joint angles θ1 = 45° and θ2 = 30°.Numerical

    x = L1·cos θ1 + L2·cos(θ1 + θ2) = cos 45° + cos 75° = 0.707 + 0.259 = 0.966 m. y = L1·sin θ1 + L2·sin(θ1 + θ2) = sin 45° + sin 75° = 0.707 + 0.966 = 1.673 m. The tool points at θ1 + θ2 = 75° to the x-axis. Note that the second link uses the cumulative angle, not θ2 alone.

  9. 9.For a 3-link planar manipulator, if the first two links are aligned (θ2 = 0), what is the effect on the end-effector?Application

    With θ2 = 0 the wrist point is at its maximum distance L1 + L2 from the base, on the boundary of the 2R sub-arm's workspace. This is a singular configuration of the first two joints: they can only move the wrist tangentially, so the arm cannot move the wrist radially and the Jacobian loses rank for position. The third link can still change the tool orientation and move the tip a little, but radial motion near full stretch needs large joint speeds.

  10. 10.Determine the end-effector position for a 3-link planar manipulator with link lengths L1 = 1 m, L2 = 1 m, L3 = 1 m, and joint angles θ1 = 0°, θ2 = 90°, θ3 = 0°.Numerical
    1. Convert angles to radians: θ1 = 0° = 0 rad, θ2 = 90° = π/2 rad, θ3 = 0° = 0 rad.
    2. Calculate the position using forward kinematics: x = L1 * cos(θ1) + L2 * cos(θ1 + θ2) + L3 * cos(θ1 + θ2 + θ3) y = L1 * sin(θ1) + L2 * sin(θ1 + θ2) + L3 * sin(θ1 + θ2 + θ3)
    3. Substitute values: x = 1 * cos(0) + 1 * cos(π/2) + 1 * cos(π/2) y = 1 * sin(0) + 1 * sin(π/2) + 1 * sin(π/2)
    4. Compute: x = 1 m, y = 2 m.

Finished this topic? Mark it so your progress, study plan and readiness keep up.

Stuck on something here?