Learn how to use the HAL Robotics Framework from Rhinoceros and Grasshopper.

• table of contents
• back to main site
• issues and bugs

7. Glossary

7.1. Cell Setup

7.2. Programming

7.3. Simulation

7.4. Control

7.1. Cell Setup

a.k.a digital model

the process of virtualizing, or digitally recreating, the work environment including all relevant physical, mechanical and communication systems.


a.k.a station, layout, session, scene

a set of simulated objects. A cell is typically built around controlled mechanisms and their associated controller. References are used to organize the relative positioning of the objects in a cell.


a.k.a robot computer

a (virtual or physical) computer controlling the joints of one or more mechanisms. A controller can share data via electric signals or communication protocols.


a.k.a assembly, kinematic system

a set of parts connected together by joints or connections. A mechanism also has sockets on which parts can be attached, and one or more end-points, that can be used in kinematic calculations. Robots, positioners and tools are all types of mechanism.


a.k.a robot

specific type of mechanism which is the primary controlled element of a controller. Multiple manipulators can share a single cell.

end effector

a.k.a tool

specific type of mechanism which performs a process e.g. welding torch, spindle, gripper or camera. End effectors can either be mounted onto a mechanism or be installed elsewhere in the cell, referred to as stationary tools, with a mechanism moving a part towards the end effector. The term end effector is preferred over tool as a an end effector can actually be composed of multiple tools, for example a gripper and camera mounted simultaneously to identify objects before picking.


a.k.a external axis

specific type of mechanism which supports the work of a manipulator by moving its base or parts around to facilitate access. Tracks and rotary tables are both examples of positioners. Multiple positioners can be installed in a single cell.


a.k.a articulation, axis

an articulated link between two parts. A joint can be active (controlled) or passive.

joint mapping

a.k.a joint index

the index a joint should be assigned during export. This is typically only required with external axes to set the index of a joint within a main program.


a.k.a rigid joint

a fixed link between parts.


a.k.a tool center point

tip of a mechanism which should attempt to reach any programmed targets. A single mechanism can have multiple endpoints but only one should be active at a time.


a.k.a object, body, link

a physical body. A part is a reference with a geometry and a mass.


a.k.a coordinate system, reference frame, basis, work object

a coordinate system upon which targets and other objects can be located. References can be linked to other references and parts by connections and be made mobile if they are connected to a mechanism.


a.k.a i/o, electrical signal

signals are used to send electrical data between connected devices. Electrical signals can be either input (receivers) or output (senders), this pairing leads to their common pseudonym i/o (pronounced ‘I-O’). Theses signals can also be either digital, with only high or low values, or analog, with values anywhere between their minimum and maximum voltages.

7.2. Programming

a.k.a telling a machine what to do

creation of procedures from CAD data or other sources


a.k.a program, task, process, job, module, routine

a set of actions to be executed by a controller.


a.k.a command, instruction, function, method, operation, nested procedure

an operation executable by a controller. As actions can be nested and combined, a procedure is a graph of actions.

Typical actions include: motion (move), assembly (change tool, pick), signal (set I/O) and thread actions (wait).

motion action

a.k.a move

instructs one or more mechanisms to reach a target using specified motion settings.

wait action

a.k.a wait, pause, halt

instructs a controller to temporarily pause its execution. Execution can be resumed automatically, e.g. after a fixed period of time, upon a signal change or synchronization, or manually via an operator interaction e.g. by pressing a button.

signal action

a.k.a set signal

changes the value of a signal at runtime. This is typically used to trigger the (de)activation of a tool or announce a change of state to a connected device.


a.k.a waypoint, frame, pose

a position to be reached by one or more mechanisms, expressed in joint space or Cartesian space.


a.k.a motion sequence

series of targets through which the endpoint of mechanism will move to perform a process e.g. milling.

joint space

a.k.a space of the manipulator

the positions in which a mechanism can be by moving its joints, expressed as a position for each joint.

Cartesian space

a.k.a operational space, task space, space of the end-effector

the positions in which tool can be, expressed in Cartesian coordinates


a.k.a approximation, zone, corner path

depicts tolerances within which a target will be considered “reached”. Increasing these tolerances allows a mechanism to perform continuous motion: it will not stop at each target.

7.3. Simulation

a.k.a digital execution

virtual execution and validation of one or more programmed procedures


a.k.a validation

computing how a procedure will run when executed and logging any potential issues such as out of reach targets or singularities.


a.k.a accessible space

the set of points that can be reached by a mechanism’s end effector. Targets outside a mechanism’s workspace are out of reach.

(kinematic) singularity

a.k.a degeneracy

a location in a mechanism workspace where a change of joint position does not result in a change of end effector position. This happens when two or more joints line up, meaning the movement of one is canceled out by the other’s.

7.4. Control

a.k.a real-world connection

any interaction that allows digital information to be passed to real-world controllers, sensors or mechanisms.


a.k.a code generation, post-processing

process by which procedures are converted into the relevant programming language for a target controller, e.g. ABB RAPID, KUKA KRL or Universal Robots URScript.


a.k.a transfer

moving of files from one device to another. Typically exported procedures can be uploaded to a real controller and, if supported, executed.