liminfo

DH Parameter Calculator

Free reference guide: DH Parameter Calculator

22 results

About DH Parameter Calculator

The DH Parameter Reference is a comprehensive robotics guide covering the Denavit-Hartenberg convention for describing serial robot manipulator kinematics. It details both the standard DH notation (1955, with transformation order Rz-Tz-Tx-Rx) and Craig's modified DH convention (reversed order Rx-Tx-Rz-Tz), explains the critical differences between them (distal vs proximal frame attachment), and provides complete 4x4 homogeneous transformation matrices for both conventions with element-by-element formulas.

The kinematics section covers forward kinematics (computing end-effector pose from joint variables via chained transformation matrices T_0n = T_01 * T_12 * ... * T_{n-1,n}), complete with Python/NumPy and MATLAB/Robotics Toolbox implementations. Inverse kinematics is covered through analytical methods (geometric, algebraic, Pieper method for 3 intersecting axes), numerical methods (Newton-Raphson, Jacobian pseudoinverse), and the Damped Least Squares (DLS) algorithm with adaptive lambda for singularity-robust solutions.

The reference includes ready-to-use DH parameter tables for classic and modern robots: PUMA 560 (6DOF industrial standard), Universal Robots UR5 (6DOF collaborative robot in modified DH), SCARA (4DOF with prismatic joint), Stanford Arm (6DOF RRP structure), and pedagogical 2-DOF planar and 3-DOF spatial arm examples with complete forward and inverse kinematics derivations. Frame assignment rules, special cases for parallel and intersecting axes, and workspace analysis for redundant robots complete the guide.

Key Features

  • Standard DH (1955) and Modified DH (Craig) conventions with 4-parameter definitions and transformation order comparison
  • Complete 4x4 homogeneous transformation matrices with element-by-element formulas for both DH conventions
  • Forward kinematics implementation in Python (NumPy) and MATLAB (Robotics Toolbox) with working code examples
  • Inverse kinematics methods: analytical (geometric, Pieper), numerical (Jacobian pseudoinverse), and DLS with adaptive damping
  • Jacobian matrix construction for revolute and prismatic joints with singularity detection (det(J)=0, rank(J)<6)
  • DH parameter tables for PUMA 560, UR5 (modified DH), SCARA, Stanford Arm, 2-DOF planar, and 3-DOF spatial arms
  • Frame assignment rules with special case handling for parallel axes, intersecting axes, base frame, and end frame
  • DOF and workspace analysis covering under-actuated, full, and redundant (7DOF) robot configurations

Frequently Asked Questions

What is the difference between standard and modified DH conventions?

Standard DH (Denavit-Hartenberg 1955) applies transformations in the order Rz(theta)-Tz(d)-Tx(a)-Rx(alpha) with frames attached at the distal end of each link. Modified DH (Craig) reverses the order to Rx(alpha)-Tx(a)-Rz(theta)-Tz(d) with frames at the proximal end. Both yield the same end-effector pose but produce different intermediate frames. The reference emphasizes never mixing the two conventions in a single model.

What are the four DH parameters?

In standard DH: d_i (link offset along z_{i-1}), theta_i (joint angle about z_{i-1}, the joint variable for revolute joints), a_i (link length along x_i), and alpha_i (link twist about x_i). In modified DH, the subscript indices shift: alpha_{i-1} and a_{i-1} replace alpha_i and a_i, while d_i and theta_i reference z_i instead of z_{i-1}.

Which robot DH tables are included?

The reference provides complete DH tables for: PUMA 560 (6DOF, standard DH, with link dimensions in mm), UR5 (6DOF, modified DH, collaborative robot), SCARA (4DOF with one prismatic joint d_3), Stanford Arm (6DOF RRP with prismatic joint d_3), 2-DOF planar arm (with complete FK and IK closed-form solutions), and 3-DOF spatial arm (RRR with FK equations for x, y, z).

How is forward kinematics implemented in code?

The reference provides a complete Python implementation using NumPy: a dh_matrix() function computes the 4x4 transformation for one joint from theta, d, a, alpha parameters, and a forward_kinematics() function chains all joint transformations via matrix multiplication (T = T @ dh_matrix(...)). A MATLAB implementation using Peter Corke's Robotics Toolbox with Link objects and the fkine() method is also provided.

What inverse kinematics methods are covered?

Three approaches are covered: (1) Analytical/closed-form methods including geometric approach, algebraic solution, and Pieper method for robots with 3 intersecting axes (fast, finds all solutions, but limited to specific structures). (2) Numerical methods using Newton-Raphson and Jacobian inverse/pseudoinverse. (3) Damped Least Squares (DLS) with the formula dq = J^T * (J*J^T + lambda^2*I)^{-1} * dx, which remains stable near singularities with adaptive lambda.

How is the Jacobian matrix explained?

The Jacobian J (6xn) maps joint velocities to TCP velocities: v = J(q) * dq. For revolute joint i, the column is [z_{i-1} x (p_n - p_{i-1}); z_{i-1}]. For prismatic joint i, it is [z_{i-1}; 0]. Singularities occur when det(J)=0 or rank(J)<6, meaning the robot loses one or more degrees of freedom at that configuration.

How do the frame assignment rules work?

The z_i axis aligns with the joint i+1 rotation/translation axis, and x_i follows the common normal from z_{i-1} to z_i (or z_{i-1} cross z_i if they intersect). Special cases include parallel axes (alpha_i=0, x_i freely chosen), intersecting axes (a_i=0), base frame (x_0 aligned with x_1 at q1=0), and end frame (typically aligned with the last axis direction).

What is the workspace analysis section about?

It covers degrees of freedom and workspace: n>=6 DOF provides full position and orientation control in 3D space, n<6 is under-actuated, and n>6 is redundant. The reachable workspace includes all positions the end-effector can reach, while the dexterous workspace covers positions reachable from all orientations. 7-DOF redundant robots (e.g., KUKA iiwa) are highlighted for their infinite IK solutions, singularity avoidance, and obstacle avoidance optimization capabilities.