Content
    DH - Parameters

Denavit–Hartenberg Transformation

DH - Parameters

  • Serial-link manipulator
    • Links are rigid
    • Joints connect links
      • can move
      • revolute or prismatic
  • Every link connects 2 joints
    • except the first and last link
  • Every joint connects 2 links
  • Each joint is described simply by 4 parameters
    • Two constraints
      • xjx_j axis intersects zj1z_{j-1} axis
      • xjx_j axis is perpendicular to zj1z_{j-1} axis
  • Describe the pose of a link frame with respect to the link frame of the previous joint
  • N+1N+1 Links (0n0 \dots n)
    • First link: (link 00) base
    • Last link nn: end effector
  • NN Joints (1n1 \dots n)

Coordinate Frames

  • Start at base
  • Attach a coordinate frame to the end of every link
  • Enumerate joints and links
    • Base link: 00
    • Joint jj connects link jj with link j1j-1
  • Base frame {0}\{0\}:
    • z0z_0 aligns with axis of first link
  • Generally: zjz_j axis aligns with j+1j+1 joint axis
  • xjx_j axis:
    • Along normal between zj1z_{j-1} and zjz_j axis
    • Points (positive direction) from joint jj to joint j+1j+1
  • Choose yjy_j axis to form a right-handed coordinate system

The link frame is not necessarily located on the physical link

Parameters

  • Describe pose of a link jj with respect to previous link frame {j1}\{j-1\}
  • Only 4 parameters: aa, α\alpha, dd and θ\theta
  • DH notation: constraints
    • Axis xjx_j intersects zj1z_{j-1}
    • Axis xjx_j is perpendicular to zj1z_{j-1}
  • Axis of each joint defined by zz-axis of previous coordinate frame
    • Revolute: rotates about zz-axis
    • Prismatic: translates about zz-axis
  • Define coordinate system {j}\{j\}
    • zjz_j axis: axis of movement of joint (j+1j+1) for end of link
    • Origin of {zj}\{z_j\} frame: intersection point of zjz_j with common normal of zj1z_{j-1} and zjz_j
    • yy axis is not considered (defined by xx and zz axes, through right-handed coordinate system)
WhatSymbolDescriptionVariable / Constant
Link Lengthaja_jDistance between zjz_j and zj+1z_{j+1} along xj+1x_{j+1} axis. For intersecting axes: parallel to zj×zj+1z_j \times z_{j+1}Constant
Link Twistαj\alpha_jAngle from zjz_j axis to zj+1z_{j+1} axis about xj+1x_{j+1} axisConstant
Link Offsetdjd_jDistance from origin of frame {j}\{j\} to xj+1x_{j+1} axis along zjz_j axisConstant or prismatic joint variable
Joint Angleθj\theta_jAngle between xjx_j and xj+1x_{j+1} about zj1z_{j-1} axisRevolute joint variable or constant
Joint Typeσj\sigma_jσj=R\sigma_j = R for revolute, σj=P\sigma_j = P for prismaticConstant: R=0R=0, P=1P=1

The link transform is represented by a homogeneous transformation matrix AA.

It comprises four elementary transformations:

  • A rotation around the ZZ axis
  • A translation along the ZZ axis
  • A translation along the XX axis
  • A rotation around the XX axis


  • Category

  • Robotics

  • Tags

  • Control Systems
    Robotics

  • Created

  • 17. August 2025


  • Modified

  • 19. August 2025