2.9 Glossary of RapidPlan Create and Realtime Controller Terms

Appliance

The Appliance takes projects exported by RapidPlan Create to plan and execute robot motions that ensure there are no collisions between robots.

Assigned Robots 

An Assigned robot is a robot that controls user-defined joints. The heuristics is used to determine an assigned robot:

  • The robot is assigned if it descends from the user-defined joints.

  • The robot is assigned if the user-defined joints descend from the first robot movable link.

  • If the joint descends from the robot base (non-movable link) then the robot is not assigned.

  • Each user-defined joint may have up to 1 assigned robot at a time only.

First Robot Joint

It is a joint that is first in the robot kinematic chain. It could be either a native or user-defined joint.

  • Example #1: The first native joint is considered as the first joint in the robot with no additional joints.

  • Example #2: A linear rail joint is considered as the first in the robot construction with linear rail.

Movable Robot Link 

It is an object/link that descends from the first robot joint so it will move when the robot is jogged.

Non-movable Robot Link 

It is an object/link that has the first robot joint as a descendant so it will not move when the robot is jogged.

Attached Object

It is an object that descends from any movable robot link. Note: if an object descends from robot base (non-movable link) it is not considered as attached.

Static object

It is an object that does not descend from any movable robot link.

Native link 

It is a link that came with the original (native) robot.

Robot base 

It is the local origin frame of an object/link that has the first robot joint as a parent.

  1. Robot base does not always correspond to the native robot base. For example, in case of a robot with a linear rail, the linear rail base is considered as the robot base.

  2. Multiple robots may share the same robot base. For example: Two robots that have two independent linear rail sliders but the same linear rail base.

  3. As a consequence of #2, if the joint descends from the robot base it doesn't mean that this joint is controlled by the robot

Native robot base 

It is the local origin of the first native link of the robot. It could be movable or non-movable depending on the robot kinematic chain.

Assigned Target

A target is assigned when it has been associated to one or more robots whose joint configuration(s) allows it/them to reach the target.

Auto-Connect

A method to automatically find collision-free paths between a number of targets. An Auto-connect takes a number of targets as input and returns a set of new via points and edges that are needed to move from any input target to any other input target without collisions, on a short path.

Planner Iterations

Internally, the methods to compute collision-free paths are all based on repeating the same actions over and over. For example, a smoothing method might try to shortcut an existing path, or a planner might try to extend the internal roadmap into random directions. Executing one such internal method is called a planner iteration. Running a planner usually consists of executing multiple planner iterations until a certain end condition is met, for example when a solution is found, or when time runs out.

Configuration/Joint Configuration

A configuration, or joint configuration, describes the set of angles for each joint in a robot. For a prismatic joint, the value would be distance.

Collision Analysis

A method to analyze the entire RPC project and identify pairs of links/objects that will either (a) never collide, (b) always collide, or (c) are always equidistant to each other. Collision Analysis provide option to disable collision checking for such pairs, which in turn does not take into account these pairs for collision checking during validation; thereby, making the process less costly.

Direct connection and connection validities

Direct Connection is a straight-line connection between two targets in either joint-space or cartesian space.

Validities for the current workcell state: Valid/Invalid/Nonvalidated

In terms of current workcell state (current active arrangements), direct connections could be valid, invalid or non-validated:

  • Valid connection is a collision-free connection according to the validation pipeline. Such connections are marked as valid.

  • Invalid connection is a connection that results in robot colliding with obstacles after running validation pipeline. Such connections are marked as invalid.

  • Non-validated connection is a connection that was not checked by validation pipeline. Such connections are marked as non-validated.

Validities for all workcell states: Always/Possibly/Never Valid/Invalid

Defines the validity of a direct connection for all arrangements (workcell states), not only for the active arrangement.

  • Always valid or always invalid connection is a connection that is valid or invalid in all possible workcell states. In other words; an always invalid connection is a connection which is invalid for all workcell states. There is no single arrangement that makes the connection valid.

  • Possibly valid or possibly invalid connection is a connection that may be valid or invalid in at least one possible workcell state.

  • Never valid or never invalid connection is a connection that is never valid or invalid in all possible workcell states. For example a never valid connection is invalid for all arrangements. Never valid is another name for always invalid connection status.

Always invalid: For both states of the large cylinder, the connection between 2 targets is invalid. (Assuming the workcell has no other object states)

Validities for autoconnects: Valid/Invalid

Defines the validity of an autoconnect. An autoconnect is not valid if it is a disjoint graph. A disjoint graph means that we have multiple groups of targets that are connected within each group but there are no valid connections between the different groups.

Invalid auto-connect with 2 groups which are not connected to each other.

Dynamic Scene Model(DSM)

The Dynamic Scene Model (DSM) feature allows a user to add obstacles at runtime. A user may need this feature if the size or location of the obstacles is unknown offline, and therefore cannot be modeled. A user may also use the DSM if the number of obstacle variations is unrealistic to model (e.g. in palletizing there may be thousands of obstacle sizes and possible object states).

  • Any possible obstacle can be modeled with either a Box or CAD Object.

  • CAD objects must be configured in RPC ahead of time to reference at runtime.

  • The DSM cannot be attached to robots, nor any stateful objects

DSM’s are different from the static scene models, because they’re represented as voxels and move with their parent frame. A robot is collision checked against DSM with voxel to voxel and therefore uses the dilated robot model. On the other hand, a robot is collision-checked against the static scene models using dilated voxel to un-dilated mesh.

Edge

A path between two configurations, namely two nodes in the roadmap. There are two types of edges:

Joint space linear

The motion is calculated by linearly interpolating the values of each joint between the endpoint joint configurations. Note that the robot end effector will not move in a straight line between the endpoints.

Task space linear

The motion is calculated by interpolating in 3D space between the two endpoints at a discrete set of intermediate poses, performing inverse kinematics at each one.

Reachable targets

Two targets are reachable from each other, if there exists a collision-free path that connects these two targets in the current workcell state. Two targets are considered non-reachable targets, if no such path exists.

Always reachable targets

Two targets are always reachable from each other if they are reachable in all possible workcell states. If there exists at least one workcell state where the pair of targets is non-reachable, then the targets are considered not always reachable.

All targets reachable

All targets in a roadmap are reachable, if all target pairs are reachable.

All targets always reachable

All targets in a roadmap are always reachable, if all target pairs are always reachable.

Not always reachable targets

A pair of targets is considered not always reachable, if they are non-reachable in at least one workcell state.

Always non-reachable targets

A pair of targets is considered always non-reachable, if they are non-reachable in all possible workcell states.

Forward Kinematics

The use of calculations to compute the position of a robot’s end effector in space from the robot’s joint configurations. In other words, given the joint angles of the robot, what is the location in space of the robot’s tool tip? The reverse process is called Inverse Kinematics.

Frame

A coordinate system used as a way to orient the world in which you are working. It is a 3D point in space with X, Y, Z coordinates as well as Rx, Ry, Rz rotation information. Its purpose is to make other 3D objects relate to it by using its coordinate system. In Model Mode, you can, among other things, mate items to a frame, measure distances between frames, and convert a frame into a tool center point (TCP).

Inverse Kinematics

The mathematical process of calculating the joint configuration needed to position a robot so its TCP/end-effector frame reaches a given target. In other words, given the pose of the robot’s tool tip, what joint angles are required to achieve that pose? See also, Forward Kinematics. Inverse Kinematics are generally non-unique, i.e. there are multiple joint configurations that reach the target.

Joint

A joint is similar to a mate (geometry that is constrained with a fixed transform), but with one degree of freedom. Revolute joints allow a link to rotate. Prismatic joints allow a link to slide linearly along a single axis, for example, a rail. Joints can be native (if they are built-in in the original robots) or user-defined (if they were added by users).

Joint Types

Native Joints

A native joint is one that came together with the original (native) robot. Restrictions: native joints cannot be renamed, removed, copied (unless the whole robot is removed or copied). Dynamic characteristics (such as speed, acceleration, jerk, joint limits, joint driver index) cannot be modified, however, joint limits can be more restricted explicitly by the user.

User-defined

A user-defined joint is a joint that was created by the user separately from the existing robots. User-defined joints can be renamed, removed, and copied. Dynamic characteristics (such as speed, acceleration, jerk, joint limits, joint driver index) can be modified. Any external, additional or detached joint is a user-defined joint.

Additional Joint

A user-defined joint that is a part of the kinematic chain. The primary use case for joints is robots that can move along linear rails.

 

External Joint

An external joint is a user-defined joint that is not part of the kinematic chain. For example, a tool such as a gripper or a weld gun that descends from the robot’s TCP is an external joint.

Detached Joint

A detached joint is a user-defined joint that has not been assigned to a robot.

Key frame

The location on a b-rep object to which you can add a frame or mate another object. An object’s keyframes are displayed when you hover a potential mate over the object. The number and type of keyframe varies depending on the makeup of the object. For example, an object’s edge has two endpoints and a midpoint. An object’s face can have these keyframes for each of its edges as well as a center point. And an object such as a cylinder (for example, a pedestal stand) can also have a center mass keyframe.   

Kinematics

In general, kinematics refers to the relationship between the motion of a robot’s end effector and the motion of its joints. More specifically, it refers to the possible poses, geometry, and movements of a multi-link system (the robotic arm) based on factors such as its degrees of freedom and joint limitations. See Forward Kinematics and Inverse Kinematics.

Link

A specific rigid component on a robot. The links on a robot are connected by joints. For example, the upper arm link of a robot may be connected to its forearm link by an elbow joint. Note: A joint can be fixed or non-fixed. A non-fixed joint represents at least one degree-of-freedom.

Mate

A mate is a way to constrain geometry, “gluing” one thing to another with a fixed transform. Mates are used to attach robots and objects to frames. A mate has a parent frame, a child frame, and an offset (position and rotation). When mated, the object is no longer moveable (except for prismatic and revolute joints).

Mate State

The state of a mate which describes a single specific offset between parent and child node. By default, a mate has only one state. A mate with multiple states is called a Stateful Mate. Stateful mates are useful for objects whose positions may change or that may or may not be present. A mate that is not present is said to be in a suppressed state.

Suppressed State 

It is a mate state where descendant objects are not present in workcell at all.

Stateful Mate 

It is a mate with more then one mate states

Non-Stateful Mate

It is a mate with only one non-suppressed state

Suppressed-only Stateful Mate

It is a stateful mate with exactly two states and one of the states is the suppressed state. In other words, this mate can be either present or suppressed in workcell.

Arrangement 

It is a combination of several static mate states that are dependent only between each other and are independent to all other mate states. An arrangement is actually a container of mate id - state id pairs where state is one of the possible states of the mate in the same pair.

Current Arrangement

Current arrangement represents the current position of the stateful connected objects. It is a container made of mate and corresponding active state id pairs.

Default Arrangement 

It is an empty arrangement that combines together all static non-stateful objects and robot self-collision category.

Weak Mate

A non-fixed free connection between the root and any robot or object. Weak mates allow free movement in the canvas using the mouse. Added objects and robots are initially weak mated, and the user mates them to the desired location.

Object

A 3D model in the workcell that represents an obstacle that robots need to avoid (walls, boxes, etc). Objects can be simple primitives like cubes, cylinders, or spheres, or CAD models (stl, step, stp, dae files). End of arm tooling, for example, a gripper or weld gun, is also an object.

Stateful Object

It is an object that descends from a stateful mate.

Non-stateful Object 

It is an object that does not descend from any stateful mate.

Attached Object 

It is an object that descends from any movable robot link. Note: if an object descends from robot base (non-movable link) it is not considered as attached.

Static Object

It is an object that does not descend from any movable robot link and therefore does not move.

There could be four different combinations of objects present in the scene:

  • Static stateful. For example: virtual box that can be moved and/or suppressed, non-mounted swappable tool, etc.

  • Static non-stateful. For example: walls, linear rail base, etc.

  • Attached stateful. For example: mounted swappable tool

  • Attached non-stateful. For example: cords, EOAT attachment, etc.

Origin

A frame that functions as the base reference for all coordinates of the work cell. Everything in the work cell needs to be attached to or defined by the transforms of this point in space. The origin is usually designated as the kinematic chain start.

Pose

The X, Y, Z position and Roll, Pitch, Yaw orientation of a robot’s end effector.

Primitive

A box, cylinder, or sphere you can quickly add to a work cell in Model Mode.

Project

A project is a file that consists of the information needed by the Appliance to interpret and control a robot workcell. The workcell consists of objects, robots, targets, object states, robot presets, and workcell presets.

Projects are uploaded through the Control Panel to be installed onto the Appliance.

Project Settings

The Project Settings dialog is used to establish or change the length, angle, and area measurement units for a model and to define how many decimal places to display for the desired level of precision. Also chosen here are robot drag mode (the manner in which to move robot joints) and whether to display the edges of objects and robots in the 3D View.

RapidPlan Create

Desktop application that allows users to model their workcell: positioning robots, obstacles, other joints (linear rails), and targets to which robots should be able to move. The application checks if targets and edges are valid (reachable and do not result in collisions with themselves or other objects), and then voxelizes each edge. This data is then exported for use by the Realtime Controller.

RapidSense

When enabled on the Controller, RapidSense adds the ability to avoid dynamic obstacles in addition to other robots, using 3D cameras mounted around the workcell.

Roadmap

A motion planning data structure made up of robot configurations and the edges (paths) connecting them. During runtime, the RTR Controller can switch between checking roadmap files with no additional latency. A roadmap defines a large set of a robot's potential motions in free space.

Robot Dilation

The robot dilation is used to increase the voxelization volume of every robot to avoid collisions with other robots, or DSM/Rapidsense voxels. This is important because robots might not perfectly follow their paths, and sensor data is noisy.

Robot Drag Mode 

There are two robot drag mode options: Screen Y and Natural mode. Screen Y means the robot moves in relation to the screen’s Y axis. In Natural mode the mouse is rotated around its axis to increase or decrease the movement of the joint.

Robotic Arm

Robotic arms are made of links connected by joints that allow the links to move.

Reference: How Are Industrial Robots Built? A Guide on the Components and the Movement of Robot Arms | Industrial Robots by Kawasaki Robotics

The two most common types of joints are:

Revolute joint: allows a link to rotate

Prismatic joint: allows a link to slide linearly along a single axis

Robot Preset

Robot presets are designed to give you a fast and intuitive way to define various states of robot geometry and to visualize how they affect the robot’s roadmap. For example, in a pick and place application one robot preset could represent the robot’s physical geometry when it is not carrying a part. A second preset could represent the robot’s physical geometry when it is carrying a part. Each robot preset has its own roadmap. Each robot preset in a project must be given a unique name.

RTR Controller

The RTR Controller is basically a computer in an industrial chassis.

It connects to the robots via network interfaces and controls the movements of the robots.

It also connects to a device that the customer uses to send commands to the Appliance for moving the robots. This device can be a programmable logic controller (PLC), a computer running a python script, etc. The commands are simple ASCII strings to do things like 'move robot A to target 1', and they're sent via TCP connection.

The Appliance takes projects exported by RapidPlan Create to plan and execute robot motions that ensure there are no collisions between robots. When it receives a command to move a robot, it uses the voxels of the edges and other robots' current positions (or edges if other robots are moving) to find a collision-free path from the current position to the target, and then moves the robot along that path.

Route

A route is a named, predefined path to navigate between a pair of targets, which includes the smoothing applied at each way-points between the targets.

Static Object

Any item in the work cell that doesn’t change is considered a static object. For example, once placed in the work cell, a device like a screw feeder will never move. The screw itself, however, which can either be moved or suppressed, will be a stateful object.

Stateful Object/Mate

A stateful object or mate in the work cell is one that can either be moved or suppressed (which makes it disappear from the work cell), depending on its state.

Subassembly

A subassembly is a CAD model made up of multiple components. These components are displayed individually within the Property Tree and can be treated as individual parts that can be moved, hidden, deleted, etc.

Suppressed State

When an object is suppressed, it is not considered for collision avoidance; it will not be displayed while in a suppressed state.

Swept Volume

The total area taken up by a moving robot arm as it moves from one location to another. For a multi-robot project, when Robot A is in motion, RapidPlan sends Robot A’s swept volume information to Robot B so that Robot B considers that area occupied and will therefore not move to anywhere within that area.

Target

An X,Y,Z, Rx, Ry, Rz node in a roadmap. A target is a desired position and orientation that a robot end-effector should be able to move to. Like a frame, a target is specified by users as a position in Cartesian coordinates and a rotation, relative to a parent frame.

Target Sequences

A target sequence is a listed order of targets that the robot can follow. In Rapid Plan Create, users can create a sequence of targets in roadmap mode. A target sequence is created per robot per preset.

 

Teleport

To teleport means to make a simulated robot jump immediately to a target. When the controller type is Internal Simulated, and while in Configure Mode, you can “teleport” the robot to targets.

Tool Center Point (TCP)

A special frame positioned at the robot's end effector, which is usually the tip of a gripper or welding tool.

Transform, Transformation

A set of translation and rotation values that describes the relative position of two frames. A transform can be used to convert data from one frame to another.

Voxel

A “volumetric pixel,” which has length, width, and height. The voxel region, also known as the Deconfliction Zone, is divided into a 3-dimensional grid of voxels.

Voxelization

The process of computing the discretized swept volume, in voxels (3D pixels), occupied by a robot as it moves along an edge.