Premium apps

Kinetica Forward Kinematics

DH table or URDF + joint values → TCP pose, every joint frame, Jacobian and manipulability.

A library robot, or choose a custom DH table, URDF or Kinetica robot JSON.

DH table (custom)

One row per joint. Lengths in mm, angles in degrees. For revolute joints θ is the zero offset, for prismatic joints d is.

DH table (custom)
#Typea (mm)α (deg)d (mm)θ (deg)minmaxv max (/s)a max (/s²)
1
2
3
4
5
6

Used when Robot is “URDF” or “Kinetica robot JSON”. URDF subset: links with box/cylinder/sphere, revolute/continuous/prismatic/fixed joints.

x, y, z (mm), roll, pitch, yaw (deg) in the flange frame, e.g. “0, 0, 150, 0, 0, 0”. Empty = robot default.

Comma-separated, degrees for revolute and mm for prismatic joints. Empty = the robot’s home pose.

Try an example: PUMA 560 at qz (all zeros) — textbook pose · UR5-style cobot at its upright home · Planar 2-link arm from a custom DH table (l1 = 300, l2 = 250)

How it works

Computes the tool-centre-point pose of a serial robot from its Denavit–Hartenberg table (standard or modified), a URDF subset or a library robot and the joint values. Returns the 4×4 transform, position and roll/pitch/yaw, quaternion, all intermediate frames, the geometric Jacobian, manipulability and singularity status, and static payload torques.

  • Each joint compiles to Fᵢ = Fᵢ₋₁ · Preᵢ · Motionᵢ(qᵢ) · Postᵢ. Standard DH: Rz(θ+q)·Tz(d)·Tx(a)·Rx(α); modified DH (Craig): Rx(α)·Tx(a)·Rz(θ+q)·Tz(d); URDF: origin(xyz, rpy) · rotation about / translation along the joint axis.
  • TCP = base mount · F_n · tool offset. Orientation is reported as fixed-axis roll-pitch-yaw (R = Rz(yaw)·Ry(pitch)·Rx(roll), the URDF convention) and as a unit quaternion [w, x, y, z].
  • Geometric Jacobian at the TCP: revolute column [zᵢ × (p − oᵢ); zᵢ], prismatic column [zᵢ; 0]. Rows vx, vy, vz in mm per rad (or per mm), wx, wy, wz in rad per unit.
  • Manipulability: Yoshikawa √det(J·Jᵀ) of the Jacobian with translation rows divided by a characteristic length (the arm’s skeleton length), and σmin/σmax as a 0–1 singularity indicator (< 0.001 singular, < 0.03 near-singular).
  • Payload loads: static holding torque τ = −Jᵀ(cog)·m·g for the tool mass at its centre of gravity (g = 9.80665 m/s², gravity along −z world).
  • Verified against hand-computed planar cases, the PUMA 560 qz pose (452.1, −150.05, 1103.63) mm of the Robotics Toolbox model and the UR5 zero pose (−817.25, −191.45, −5.491) mm.

Kinematic simulation for planning and teaching. It is not a certified safety function: verify every program on the real controller with reduced speed and the cell safety system active.

Sources

For scripts and AI agents

  • JSON API: POST https://kineticaforwardkinematics.usefulweb.site/api/v1/calculate (same calculation as this page)
  • Interface description: OpenAPI 3.1 · AI guide: llms.txt
  • MCP server (Streamable HTTP): https://kineticaforwardkinematics.usefulweb.site/mcp · tool name kinetica_forward_kinematics
Example request
curl -s -X POST https://kineticaforwardkinematics.usefulweb.site/api/v1/calculate \
  -H 'content-type: application/json' \
  -d '{"robot":"puma560","joints":"0, 0, 0, 0, 0, 0"}'

Related tools

Feedback