Skip to content

Components

visose edited this page Jun 28, 2026 · 1 revision

This page explains the user-facing Robots Grasshopper components. Grasshopper already shows each component's exact input and output names, nicknames, access type, and short descriptions. This reference focuses on workflow role, non-obvious behavior, and links to the typed Robots parameters used by the components.

For the recommended order of components in a real definition, see Workflow guide. For failures and error messages, see Troubleshooting.

Main workflow

Most definitions follow this chain:

Load Robot System -> Create Tool or Load Tool -> Create Target -> Create Program -> Program Simulation -> Save Program

Add frames, commands, collision checks, remote upload, or scripting-only objects only when the cell needs them. See Core concepts for the robot programming model behind these components.

Robot systems and library data

Load Robot System

Loads a Robot System from the installed robot libraries.

Use this once per robot cell. The Base input places the loaded system in the Rhino model; it is not library calibration data and should not be used to compensate for a wrong XML definition.

The Libraries button opens the library manager. The generated library value list is kept beside the component and removed with it. See Robot libraries for local override behavior and library file conventions.

Load Tool

Loads a Tool from the robot libraries.

Use this when the tool should be shared across files or maintained in XML/3DM. Library tools can include TCP, weight, centroid, display mesh, and optional collision mesh data.

Use Create Tool instead when the tool is local to one Grasshopper definition or depends on geometry in the Rhino file.

Load Frame

Loads a Frame from the robot libraries.

Use this for named work planes that are shared across definitions or controller-managed frames. Use Create Frame when the frame is part of the current definition.

Targets, tools, speeds, and frames

Create Target

Creates or modifies a Target.

Right-click the component to switch between Cartesian and joint targets and to add optional inputs. A connected reference target can provide fallback values: if an optional input is absent, the new target can keep the corresponding tool, speed, zone, frame, command, external axes, or motion data from the reference target.

The most common pattern is to connect a plane list, then add Tool, Speed, and Zone inputs only when those attributes need to vary. Use joint targets for unambiguous home, start, and recovery poses.

Deconstruct Target

Extracts selected values from a Target.

Right-click the component to choose outputs. Outputs that do not apply to the target type may remain empty; for example, a joint target has joints but no Cartesian plane.

Create Tool

Creates a Tool in the Grasshopper definition.

The optional four-plane calibration computes a TCP from four flange orientations around the same physical point. The mesh input is preview geometry stored in the Grasshopper file; library-defined tools can also provide separate collision meshes through the 3DM layer convention.

Create Speed

Creates a Speed.

Use one shared speed object when many targets should refer to the same controller speed. Translation and rotation speeds affect checking, duration estimates, and generated code. Acceleration values are posted only by manufacturers that support them and are otherwise used for warnings about optimistic velocity-only timing.

Create Frame

Creates a Frame or work plane.

For static frames, leave coupling at -1. Use coupling when the frame moves with an external mechanism or coordinated robot. The mechanical group selects the group that owns the moving object; the mechanism index selects the coupled mechanism inside that group.

Deconstruct Toolpath

Extracts targets from a Toolpath.

Use this to inspect or reuse targets after combining lists, passing toolpaths through parameters, or splitting a multi-step definition.

Programs, simulation, and checking

Create Program

Creates, checks, and generates code for a Program.

This is the main validation boundary in Grasshopper. See Program Parameter for the checked inputs, outputs, and warning/error behavior.

For multi-robot systems, the component adds one target/toolpath input per mechanical group. Step Size controls how finely linear motion is sampled for checking and simulation; smaller values are more accurate and slower.

Program Simulation

Animates a checked Program.

When Normalized is true, Time runs from 0 to 1 across the program duration. The output Program is a pass-through carrying the current simulation state, which visualization components such as Simple Trail can use.

For what simulation includes and excludes, see Simulation.

Check Collisions

Checks two sets of posed meshes from a Program.

Collision groups use the same mesh order as Program Simulation; an optional environment mesh is appended at the end. Library collision meshes are used internally when present, while preserving the display mesh index order.

Use the environment plane when the environment mesh is attached to a moving mechanism. Use -1 for static world geometry. See Simulation.

Save Program

Writes generated controller code from a Program to a folder.

Save only after Create Program has generated code and the warnings and errors have been reviewed. If you manually edit saved code, Robots can no longer check or simulate those edits.

Remote Connection

Uploads, starts, or pauses supported controller programs over the network.

Remote support is manufacturer-specific. ABB, UR, and Franka Emika have remote workflows; other manufacturers should use Save Program and the controller's normal transfer workflow.

For UR, a plain IP streams through the secondary client interface, while an sftp:// URL uses SFTP upload and dashboard loading. See Uploading programs and Manufacturer support.

Custom Code

Replaces generated program code with custom manufacturer-specific text.

Use this only when you need Robots to carry a program object through Grasshopper after replacing the generated code. Programs with custom code cannot be simulated because Robots no longer has a target-level model of the motion.

Deconstruct Program Targets

Exposes calculated simulation data from a checked Program.

Use it for diagnostics, custom visualization, and comparing solved planes or joints against source targets. It is not a code-generation component.

Simple Trail

Draws a TCP trail from the current simulation state.

Connect the pass-through Program output from Program Simulation, not the original Create Program output. Select the mechanical group when simulating multi-group systems.

Kinematics and conversion utilities

Kinematics

Solves one Target per robot for a Robot System.

Use this when you need immediate kinematic feedback without creating a full program. Previous joints help choose among multiple inverse-kinematic solutions. Enable Display Geometry only when posed meshes are needed, because mesh posing is heavier than solving joints and planes.

Get Plane

Converts robot position and orientation numbers to a plane.

Supplying a robot system selects the manufacturer-specific orientation convention. Without one, the orientation is interpreted as a quaternion.

From Plane

Converts a plane to robot position and orientation numbers.

Supplying a robot system selects the manufacturer-specific orientation convention, such as ABB quaternions, KUKA Euler angles in degrees, or UR axis angles in radians.

Degrees To Radians

Converts manufacturer-specific joint degrees to Robots joint radians.

This is not always the same as applying a plain degree-to-radian conversion, because the selected robot system can define axis sign and external-axis conventions.

Commands

Command components output typed Command values. Connect commands to Create Target when they should run at a target, or to Create Program initialization commands when they should run before motion starts.

Custom Command

Creates a command from manufacturer-specific code and optional declaration/setup text.

Use Manufacturer to limit where the command applies, or All for code that should be emitted by every postprocessor. A custom command must contain code, declaration text, or both.

Group Command

Combines several commands into one command value.

Use this when one target or one program initializer should carry multiple command actions.

Message

Creates a pendant message command.

Message behavior is controller-specific. Treat it as an operator-facing hint, not as a synchronization or safety mechanism.

Pulse DO

Pulses a digital output for a fixed duration in seconds.

Use this for simple gripper or fixture actions only when the output mapping and pulse duration are known for the cell.

Set AO

Sets an analog output.

The valid value range and physical meaning are controller and cell dependent.

Set DO

Sets a digital output to true or false.

Confirm the controller output mapping before running on hardware.

Stop Program

Creates a stop/pause command that waits for operator action before continuing.

Controller behavior and pendant prompts vary by manufacturer.

Wait

Waits for a fixed duration in seconds.

Use explicit waits sparingly. If the robot is waiting for equipment, a digital input or controller-side handshake is usually clearer than a fixed delay.

Wait DI

Waits until a digital input is on.

Confirm the input number against the controller IO map before running on hardware.

Clone this wiki locally