Premium apps

Kinetica Inverse Kinematics

Target TCP pose → all joint solutions found, residuals, joint limits and reachability.

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.

mm
mm
mm
deg
deg
deg

Joint values the solutions are sorted by (closest first). Empty = home pose.

Seeds the deterministic restart generator, so the same input always gives the same solutions.

Try an example: 6-axis arm, tool pointing down at (700, 200, 600) mm · SCARA closed form: (300, 250, 200) mm, yaw 45° · Planar arm: elbow-up and elbow-down for (350, 200) · Unreachable target (2 m away)

How it works

Solves the inverse kinematics of a serial robot (DH table, URDF subset or library robot) for a target TCP pose with damped least squares from several deterministic seeds, plus closed-form solutions for planar 2-link arms and SCARAs. Lists every distinct solution with its residual, joint-limit and singularity status, and explains why a target is unreachable.

  • Error e = [Δp / L; Δφ] with Δφ the rotation vector from current to target orientation and L the arm’s characteristic length, restricted to the task rows the robot can actually control (e.g. x, y, z, yaw for a SCARA; x, y for a planar arm).
  • Damped least squares step Δq = Jᵀ(J·Jᵀ + λ²I)⁻¹e with adaptive damping λ (decrease after an improving step, increase after a failed one), step-size limit 0.5 rad, and projection onto the joint limits (revolute joints wrap by 2π when the range allows).
  • Restarts: the preferred configuration, the home pose, then pseudo-random configurations from a seeded mulberry32 generator; distinct converged solutions (position residual ≤ 1e-6 mm, orientation ≤ 1e-8 rad) are kept and sorted by distance to the preferred configuration.
  • Closed forms: planar 2R and SCARA use the law of cosines (two elbow branches), then FK verifies and a short DLS polish removes any remaining residual.
  • Unreachable targets report the distance from the first joint versus the skeleton length (upper bound of reach) and the closest configuration found.

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://kineticainversekinematics.usefulweb.site/api/v1/calculate (same calculation as this page)
  • Interface description: OpenAPI 3.1 · AI guide: llms.txt
  • MCP server (Streamable HTTP): https://kineticainversekinematics.usefulweb.site/mcp · tool name kinetica_inverse_kinematics
Example request
curl -s -X POST https://kineticainversekinematics.usefulweb.site/api/v1/calculate \
  -H 'content-type: application/json' \
  -d '{"robot":"kx6-1400","x":700,"y":200,"z":600,"roll":180,"pitch":0,"yaw":0}'

Related tools

Feedback