# Kinetica Forward Kinematics > DH table or URDF + joint values → TCP pose, every joint frame, Jacobian and manipulability. 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. Part of usefulweb.site (https://usefulweb.site/). Results are deterministic calculations from the inputs and the listed assumptions; the API returns exactly what the web page shows. ## Use it - Human interface: https://kineticaforwardkinematics.usefulweb.site/ (interactive tool at https://kineticaforwardkinematics.usefulweb.site/tool) - JSON API: POST https://kineticaforwardkinematics.usefulweb.site/api/v1/calculate with a JSON object of inputs (schema: https://kineticaforwardkinematics.usefulweb.site/api/v1/tool) - OpenAPI: https://kineticaforwardkinematics.usefulweb.site/openapi.json - MCP (Streamable HTTP): https://kineticaforwardkinematics.usefulweb.site/mcp - tool `kinetica_forward_kinematics` ## Inputs - robot (select): Robot - A library robot, or choose a custom DH table, URDF or Kinetica robot JSON. - convention (select): DH convention (custom table) - dh (table): 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. - robotText (textarea): URDF or robot JSON - Used when Robot is “URDF” or “Kinetica robot JSON”. URDF subset: links with box/cylinder/sphere, revolute/continuous/prismatic/fixed joints. - tool (text): Tool offset (TCP) - x, y, z (mm), roll, pitch, yaw (deg) in the flange frame, e.g. “0, 0, 150, 0, 0, 0”. Empty = robot default. - joints (text): Joint values - Comma-separated, degrees for revolute and mm for prismatic joints. Empty = the robot’s home pose. ## Method - 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. ## Limits - 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.