← Labs
· updated JUN 2026

Transformation matrix from D-H Parameters

Interactive tool to build a Denavit-Hartenberg robot, see its 3D kinematic chain, and read out the transformation matrices — with copy-to-NumPy/MATLAB/LaTeX.

#aα (°)dθ (°)type
1
2
3
4
5
6
a — link length (along xᵢ)
α — link twist (about xᵢ, °)
d — link offset (along zᵢ₋₁)
θ — joint angle (about zᵢ₋₁, °)

Highlighted cell = the joint variable: θ for a revolute joint, d for a prismatic one.

3D kinematic chaindrag · scroll · X Y Z
x374
y0
z630
roll
pitch90°
yaw
quat
x0
y0.7071
z0
w0.7071

Result — end-effector transform

T = T₁·T₂·…·Tₙ

The 4×4 homogeneous transform giving the pose of the last joint frame relative to the base. Read the position straight off the right column; the orientation is the top-left 3×3 (also shown as roll/pitch/yaw and a quaternion under the 3D view).

0
0
1
374
0
1
0
0
-1
0
0
630
0
0
0
1
top-left 3×3 = rotation (orientation)right column = position (x, y, z)
Per-joint transforms — each T₁·T₂·… factor (6)

Each joint's frame-to-frame transform. Multiplying them in order (T₁·T₂·…) gives the result above — useful for checking which joint a value comes from.

T1
1
0
0
0
0
0
1
0
0
-1
0
290
0
0
0
1
T2
0
1
0
0
-1
0
0
-270
0
0
1
0
0
0
0
1
T3
-1
0
0
70
0
0
1
0
0
1
0
0
0
0
0
1
T4
1
0
0
0
0
0
1
0
0
-1
0
302
0
0
0
1
T5
1
0
0
0
0
0
-1
0
0
1
0
0
0
0
0
1
T6
1
0
0
0
0
1
0
0
0
0
1
72
0
0
0
1

Enter a robot’s Denavit-Hartenberg parameters in the table and the tool builds the transformation from each joint frame to the next, multiplies them into the end-effector pose, and draws the kinematic chain in 3D. Load a preset to see a worked example, drag the 3D view to orbit, and copy any matrix straight into NumPy, MATLAB, or LaTeX. The URL updates as you edit, so a configuration can be bookmarked or shared.

New to DH parameters? How to derive them

DH parameters are the most common way to describe the joints and links of a serial robot for kinematics, control, and dynamics. Four numbers describe the relationship between two consecutive joint frames.

Step 1 — Define the Z axes

Choose zᵢ along the axis of motion of the (i+1)th link. Do this for every joint.

Define the Z axis for each joint

Step 2 — Define the X axes

Choose xᵢ as the shortest (common-normal) vector between zᵢ₋₁ and zᵢ.

Define the X axis

Step 3 — Read off the four parameters

The four DH parameters

  • aᵢ — distance between zᵢ₋₁ and xᵢ along xᵢ (link length)
  • αᵢ — angle between zᵢ₋₁ and zᵢ about xᵢ, in degrees (link twist)
  • dᵢ — distance between zᵢ₋₁ and xᵢ along zᵢ₋₁ (link offset)
  • θᵢ — angle between xᵢ₋₁ and xᵢ about zᵢ₋₁, in degrees (joint angle)

The units of a and d must match (the tool is unit-agnostic — use mm or m consistently).

Worked example — ABB IRB120

The ABB IRB120 preset is the 6-DOF industrial arm below. The images show the robot, its DH frame assignments, and the parameter table the preset loads.

ABB IRB120 robot arm

ABB IRB120 with DH frame assignments

IRB120 DH parameter table IRB120 DH parameters — robot images courtesy of abb.com, used here as reference only.