Premium apps Part of Kinetica

Kinetica Workspace Reachability Map

Robot + plane → sampled 2-D reachability map coloured by manipulability, with collisions.

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

More options
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

Position of the plane along its normal in world coordinates.

mm

Grid cell size; also the thickness of the slice.

Obstacles

Box: centre x, y, z and size sx, sy, sz. Sphere: centre and r. Capsule or cylinder: start x, y, z, end x2, y2, z2 (in the size columns) and r. All in mm, world frame.

Obstacles
#NameShapexyzsx / x2sy / y2sz / z2r
1
2
mm

Try an example: 6-axis arm: vertical slice through the base · Planar teaching arm: horizontal annulus at z = 50 mm · Cobot next to a machine: reach without collision

More about this tool

How it works

Maps where a serial robot’s tool centre point can reach in a horizontal or vertical plane: seeded joint samples are mapped through forward kinematics onto a grid and every cell is coloured by the best manipulability (σmin/σmax) found there, so near-singular zones stand out. With obstacles, cells the robot reaches only in collision are shown separately. Returns an SVG map, the reachable area and the cell list.

  • Joint configurations are drawn uniformly within the joint limits from a seeded mulberry32 generator and mapped to TCP positions by forward kinematics. A sample counts for the slice when the TCP lies within half a cell of the plane.
  • When joint 1 is revolute, each sample is also rotated about the fixed joint-1 axis onto the plane (A·cos δ + B·sin δ = C has up to two solutions); the rest of the arm turns rigidly with it, so manipulability is unchanged. Rotations that would leave joint 1’s limits are dropped. This puts almost every sample into the slice instead of a few percent.
  • Each grid cell stores the best σmin/σmax of the normalised Jacobian found there: green ≥ 0.1, light green 0.06–0.1, amber 0.03–0.06, red < 0.03 (near-singular, as in the forward-kinematics tool). With the reach-normalised Jacobian, 6-axis arms rarely exceed about 0.13, planar arms and gantries reach up to 1.
  • With obstacles, each sample is checked with the capsule/box collision model (plus self-collision when enabled); cells reached only in collision are grey and do not count as reachable area.
  • It is a Monte-Carlo map: an empty cell inside the envelope may still be reachable with more samples. Orientation is free (any tool orientation counts).

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. Geometry is a simplified envelope of the real robot.

Sources

Part of Kinetica

  • Kinetica Robot motion studio

    Simulate robot arms in your browser: kinematics, trajectories, collisions, program export.

    Open Kinetica

Related tools

How to use Kinetica Workspace Reachability Map

Draw where a robot's tool centre point can reach in one plane, coloured by manipulability, and see which zones obstacles block.

What it is for

A data sheet gives a robot's reach as one radius, but a cell layout needs more: can the arm reach the far corner of the conveyor at table height, is the area right above the base usable, and how much of the envelope does the fence take away? This tool answers that for one plane at a time. It samples thousands of joint configurations, maps the tool centre point onto a grid in a vertical (x–z or y–z) or horizontal (x–y) plane and colours each cell by the best manipulability found there.

It counts any tool orientation. A cell is reachable if the TCP got there in some pose, not necessarily with the gripper pointing down. Because it is sampled, an empty cell inside the envelope might still be reachable with more samples.

Worked example

Vertical slice of a 6-axis arm. KX6-1400, plane x–z at y = 0, 50 mm cells, 12 000 samples, seed 1:

1951 reachable cells of 50 mm (4.878 m²) in the xz plane at y = 0 mm; 336 of them only near-singular.

15 589 samples landed in the slice. That is more than the number of samples, because every configuration is turned about joint 1 onto the plane, and each one can land on both sides of the base. The map spans x from −1300 to 1600 mm and z from −800 to 1900 mm. The red band straight above the base is the classic shoulder singularity, where the wrist centre sits on the joint-1 axis.

With a fence. Add a box "Fence" at (−900, 0, 1000) mm, size 40 × 2400 × 2000, margin 10 mm: the reachable area drops to 4.343 m² (1737 cells), and 214 cells are now reached only in collision.

Known answer. The two-link planar arm (300 mm and 250 mm links, elbow limited to ±160°) in the x–y plane at z = 50 mm with 20 mm cells: 2406 cells, 0.962 m². The analytic annulus between 107.5 mm and 550 mm has 0.914 m²; the rest is the partly covered boundary cells.

How to read the result

  • Reachable area: the number of reachable cells times the cell area. It is a coarse figure; halving the cell size makes the boundary sharper.
  • Map colours: green σmin/σmax ≥ 0.1, light green 0.06–0.1, amber 0.03–0.06, red below 0.03 (near-singular). 6-axis arms rarely exceed about 0.13 here, planar arms and gantries go up to 1.
  • Grey cells: reached only in collision with an obstacle or, with self-collision on, the robot itself.
  • Cells list (API): cell centre coordinates and the best σmin/σmax, for your own plots.

Tips and common mistakes

  • Put the plane where the work happens: the conveyor height for x–y, the line through the base and the part for x–z.
  • A horizontal plane needs more samples than a vertical one through the base, because there the joint-1 trick cannot move samples onto the plane.
  • Use the same seed to compare layouts. Only the obstacles then change, not the sampling.
  • Red cells are not forbidden, but motion there needs large joint speeds for small TCP moves. Keep frequent targets in green cells.
  • The map ignores joint speeds and tool orientation. Check a candidate target with the inverse kinematics tool before committing to it.

FAQ

Why does a cell next to reachable ones stay empty?

The map is sampled. More samples or a larger cell fill such gaps; a whole empty region usually is truly out of reach.

Does it consider the gripper?

Only through the tool offset and any tool shapes in the robot model. Add the gripper's length as a tool offset for realistic reach.

What is σmin/σmax?

The ratio of the smallest to the largest singular value of the Jacobian, scaled by the arm's reach. It is 0 at a singularity and grows as the arm can move the TCP more evenly in all directions.

Can I use my own robot?

Yes: a DH table, a URDF subset or Kinetica robot JSON work the same way as in the other Kinetica tools.

Guide last updated:

For scripts and AI agents

  • JSON API: POST https://kineticaworkspacemap.usefulweb.app/api/v1/calculate (same calculation as this page)
  • Interface description: OpenAPI 3.1 · AI guide: llms.txt
  • MCP server (Streamable HTTP): https://kineticaworkspacemap.usefulweb.app/mcp · tool name kinetica_workspace_map
Example request
curl -s -X POST https://kineticaworkspacemap.usefulweb.app/api/v1/calculate \
  -H 'content-type: application/json' \
  -d '{"robot":"kx6-1400","plane":"xz","offset":0,"cell":50,"samples":12000}'
Feedback · ideas & bug reports welcome