Simuveliq

3D robot arm simulator

Define the joints of a serial robot with the Denavit–Hartenberg table and see it in 3D. It computes forward kinematics with homogeneous transformation matrices, inverse kinematics to follow lines and circles, the Jacobian with the end-effector velocities and every motor torque from the dynamics.

What you can do

Frequently asked questions

What are Denavit–Hartenberg parameters?

Four values per joint (θ, d, a, α) that describe how to go from one reference frame to the next.

What is a robot Jacobian?

The matrix that maps joint velocities to the linear and angular velocity of the end effector.

Guide: robot arm kinematics

A robot arm is a chain of links connected by revolute (R) or prismatic (P) joints. Forward kinematics answers where the tool is for given joint angles; inverse kinematics, which angles are needed to bring it to a point. This guide explains the Denavit–Hartenberg convention, both kinematics and the Jacobian, with a verified example.

The Denavit–Hartenberg convention

Each joint i is described by four parameters: θi (rotation about z), di (offset along z), ai (length along x) and αi (twist about x). With them, the transformation from one frame to the next is

Ai = Rotz(θi) · Transz(di) · Transx(ai) · Rotx(αi)

For a revolute joint the variable is added to θ; for a prismatic one, to d. Multiplying them all, T = A1·A2·…·An gives the tool position (fourth column) and its orientation (the first three columns).

Example: 3-joint anthropomorphic arm

A rotating base (q1) with the shoulder 0.4 m high (d1 = 0.4 m, α1 = 90°), a 0.5 m upper arm (q2) and a 0.4 m forearm (q3). It is the robot the tool opens with.

  1. Forward kinematics with q = (0°, 40°, −70°): with q1 = 0 the arm works in the x–z plane. The forearm sits at 40° − 70° = −30° from horizontal, so x = 0.5 cos 40° + 0.4 cos(−30°) ≈ 0.383 + 0.346 = 0.729 m and z = 0.4 + 0.5 sin 40° + 0.4 sin(−30°) ≈ 0.4 + 0.321 − 0.2 = 0.521 m. The tool is at (0.729, 0, 0.521) m.
  2. Inverse kinematics to get back to that point: relative to the shoulder, the horizontal distance is 0.729 m and the vertical 0.121 m. By the law of cosines, cos q3 = (0.729² + 0.121² − 0.5² − 0.4²)/(2·0.5·0.4) ≈ 0.342, so q3 = ±70°.
  3. Two solutions: with q3 = −70° you get q2 = 40° (elbow up), and with q3 = +70°, q2 ≈ −21.1° (elbow down). Both put the tool at the same point, but the second is outside this robot's shoulder limit (q2 ≥ −10°), so only the first is reachable.

The tool gives the same position with those angles, and its numerical inverse kinematics recovers q2 = 40° and q3 = −70°.

The Jacobian

The Jacobian J relates the joint velocities to the tool velocity: v = Jv·q̇. For a revolute joint, its column is zi−1 × (p − oi−1); for a prismatic one, zi−1. Where J loses rank, the robot is at a singularity: it loses the ability to move in some direction, as with the arm fully stretched out. Manipulability, √det(JvJvᵀ), measures how far you are from a singularity.

How to use the tool

  1. Load a robot (anthropomorphic 3R, PUMA-type or collaborative 6R, SCARA, Cartesian, planar 2R) or define your own Denavit–Hartenberg table.
  2. Set the initial position and limits of each joint, and choose the motion: oscillate the joints, point to point, straight line or circle of the tool.
  3. Read the tool's position and orientation, the Ai and T matrices step by step, the Jacobian, the velocity, the manipulability and the motor torques with the masses and payload.

Common mistakes

Further reading

J. J. Craig, Introduction to Robotics: Mechanics and Control (Pearson); M. W. Spong, S. Hutchinson and M. Vidyasagar, Robot Modeling and Control (Wiley). Simuveliq is not affiliated with these authors or publishers.

More tools

Versión en español

© 2026 Simuveliq. All rights reserved.