End-effectors & TCP

A bare robot moves its flange (the J6 mounting face). Once you bolt on a gripper, vacuum cup, pen, or spindle, you care about where the tool tip goes, not the flange. That tip is the TCP, the Tool Center Point. Egret lets you both see the tool on J6 and aim moves at its TCP.

The quick way: tool presets

Two drop-in components carry their own geometry and TCP so you don't have to model anything:

Each one takes your Targets and gives back three things:

  1. Targets, the same list, now stamped with the tool's TCP offset (so Stage and the generated code work at the tip).
  2. Tool Meshes, the tool drawn in the flange frame.
  3. TCP Plane, the working point, for reference.
  4. Tool, the whole tool bundled (geometry + TCP + payload), to drop into the Robot picker's Tool input (see below).

The easy way: attach the tool to the Robot

Drag the tool component's Tool output into the Robot picker's Tool input. The tool then travels with the robot across the whole canvas, every component that resolves the Robot sees it, with no extra wiring:

Grasshopper node graph: a Lite 6 Robot and Pose sliders feed a Custom Tool (built from a cylinder primitive) into Stage; the posed arm in the Rhino viewport carries the tool on J6 with its TCP marked in red

Drop one Robot picker with a tool and the entire graph follows it, even unwired components find it. Grab the tool-on-robot example (.ghx) to see it end to end. (Tool components live under Egret ▸ Tools.)

Or wire the mesh into Stage directly

Stage also has a Tool input, wire the tool's Tool Meshes output into it to draw the tool on J6 without attaching it to the Robot. Either way, Stage's TCP Axes output shows the working point (the little XYZ tripod).

Grasshopper Tool component with its right-click menu open, choosing the uFactory tool type - Custom, Gripper, or Vacuum - in the Robot, Pose, Tool chain for a Lite 6

Pick & place examples

Two ready-made definitions show the whole pattern. Download either and open it in Grasshopper:

Custom or measured tools

For a real tool you've modelled, use the general components instead of the presets:

On a real arm, also tell the controller the tool's offset and weight with TCP Load so its dynamics and singularity checks stay accurate.

Which way does the tool point?

Tool geometry grows along the flange's local +Z axis, and the TCP sits a set distance out along that same axis. If a tool looks like it's pointing into the wrist, your Tool Plane Z is flipped, rotate it 180° about X (or use a preset, which gets this right for you).