Kinetica Forward Kinematics
DH table or URDF + joint values → TCP pose, every joint frame, Jacobian and manipulability.
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
- Denavit–Hartenberg parameters (overview of standard and modified conventions) (Wikipedia)
- Robotics Toolbox for Python — Puma560 DH model (reference poses qz, qr, qn) (Peter Corke)
- DH parameters for calculations of kinematics and dynamics (UR robots) (Universal Robots)
- Robotics: Modelling, Planning and Control (geometric Jacobian, manipulability) (Siciliano, Sciavicco, Villani, Oriolo — Springer 2009)
- URDF XML specification: joint and link elements (ROS Wiki)
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 namekinetica_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
- Kinetica Inverse Kinematics – Target TCP pose → all joint solutions found, residuals, joint limits and reachability.
- Kinetica Trajectory Planner – Waypoints (PTP, LIN, CIRC) + limits → timed joint samples, cycle time and peak velocities.
- Kinetica Collision Check – Robot pose + obstacles → collisions, minimum clearance and self-collision between links.