RapidPlan Create - Model Mode

Model Mode is the mode in which you design your workcell. In model mode, the tool is made up of robots, mates, and objects.

Model Mode Components

Workcell


RapidPlan Create Workcell

The RPC work cell is where the robot application takes place. It is an avatar in RPC for a real work cell. When completely modeled, the work cell contains all the relevant elements of the application: robots, objects, imported CAD models involved in the application, etc.

Floor

The floor is the plane that represents the floor of the work cell. The characteristics of the floor are editable: You can resize the floor, display or hide its grid lines, change the size of its step increments, and choose whether RPC checks the floor for collisions.

Origin


Origin (shown before being mated to an object)

The origin is 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.

Object

A 3D model in the work cell 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 tools, for example, a gripper or weld gun, are also objects.

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 resolute joints).

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.

Frame

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).

Collision

In Model Mode, collision entity allows for selection of static objects for which collision checking needs to be disabled. This is available through the drop-down menu item in the top panel: Globally Disable Collision Checking for Object. These objects constitute non-robot native links. Using this optional entity will also imply that the selected objects be not taken into account for collision checking during validation and path planning in the roadmap mode.

Model Mode Tool Bar

Toolbar in Model Mode:

 

Much of the creation, modifying, and measuring of the work cell starts here. The Tool Bar contains buttons for adding robots and robot presets, objects and object states, mates, frames, and a dialog for taking measurements of the model.

These quick-access pushbuttons are arranged from left to right, based on the sequence of the workflow in Model Mode of RapidPlan Create.

Robot

Robot libraries and robot models

All robot models are provided based on the installation of the Robot Libraries provided by Realtime Robotics. The supported robot models are maintained and updated by Realtime Robotics upon request. The following robot libraries are available upon request:

  • ABB

  • Fanuc

  • Denso

  • Kawasaki

  • Kuka

  • Mitsubishi

  • Nachi

  • UR

  • Yaskawa

The supported robot controllers and required options are listed below.

Robot Manufacturer

Controller

Required Options

Robot Manufacturer

Controller

Required Options

Universal Robots

CB3 and E-series

NO REQUIRED OPTION

Mitsubishi MELFA

CR800

NO REQUIRED OPTION

Kawasaki

E and F controllers

KRNX

Fanuc

R-30iB, R-30iB-Mate, R30iB+

STREAM MOTION or RMI

Kuka

KR C4

RobotSensorInterface (RSI) 4.0

ABB

-

ABB RobotStudio with the following plugins/software:

  • 616-1 PC Interface

  • 623-1 Multitasking

  • 689-1 Externally Guided Motion

  • RobotWare version >= 6.10.01

Yaskawa

YRC1000

NO REQUIRED OPTION

Denso

RC8

b-Cap Slave license

Nachi

-

OpenNR, External Tracking

Robot

Click on the Robot button in the toolbar to display the Add Robot dialog.

Manufacturer - The selection list of the robot models can be filtered by Manufacturer.

Series - The selection list of the robot models can be filtered by Series.

Search - Full or partial robot model names can be used for search to narrow down the selection list.

Selection list - The selection list will only show installed robot libraries and included robot models and the filtered results. To add a robot, a robot model must be selected from the selection list. Once a robot is selected, the model name is highlighted from the list, and a corresponding robot CAD model is previewed.

Robot Name - Robot name defined by a user. Robot names can only contain letters, numbers, underscores, and hyphens; not spaces or special characters. The default name is Robot1 for the first robot to be added, Robot2 for the second robot to be added, and so on.

After a robot is selected, and a name is assigned, press OK button to add a robot to the project.

Only one robot can be added each time by the robot dialog.

When a robot is added, the robot can be weak-mated (no mate) or mated to a frame.

Object

A 3D model in the work cell that represents an obstacle that robots need to avoid (walls, boxes, etc). Objects can be simple primitives like Boxes, Cylinders, or Spheres, or CAD models (stl, step, stp, dae files). End of arm tools, for example, a gripper or weld gun, are also objects under the Parts category.

Object submenu is activated when the Object pushbutton is pushed:

Box

The Add Box dialog is activated when Box is selected from the Object submenu.

Name - Box object name defined by a user. The default name is Box1 for the first to be added, Box2 for the second to be added, and so on.

X Size - The length of the box object along the X direction.

Y Size - The length of the box object along the Y direction.

Z Size - The length of the box object along the Z direction.

The numerical values are displayed with engineering units according to the project settings.

The numerical values can be entered with values of different engineering units, e.g., 100m or 100in. The values are automatically converted and displayed as equivalent values in engineering units according to the project settings.

The numerical values can also be entered as a formula, e.g., 5/1.2+0.5. The values are automatically calculated and displayed in engineering units according to the project settings.

After OK button is pressed, the dialog is closed and a box object is added to the canvas, and can be moved along the tip of the mouse cursor. After Cancel button is pressed, no object is added and the dialog is closed.

When a box object is added, the box object can be weak-mated(no mate) or mated to a frame.

The size of the box object cannot be modified once it’s added to the canvas.

Cylinder

The Add Cylinder dialog is activated when Cylinder is selected from the Object submenu.

Name - Cylinder object name defined by a user. The default name is Cylinder1 for the first to be added, Cylinder2 for the second to be added, and so on.

Radius - The radius of the object.

Height - The height of the object.

The numerical values are displayed with engineering units according to the project settings.

The numerical values can be entered with values of different engineering units, e.g., 100m or 100in. The values are automatically converted and displayed as equivalent values in engineering units according to the project settings.

The numerical values can also be entered as a formula, e.g., 5/1.2+0.5. The values are automatically calculated and displayed in engineering units according to the project settings.

After OK button is pressed, the dialog is closed and a cylinder object is added to the canvas, and can be moved along the tip of the mouse cursor. After Cancel button is pressed, no object is added and the dialog is closed.

When a cylinder object is added, the cylinder object can be weak-mated(no mate) or mated to a frame.

The size of the cylinder object cannot be modified once it’s added to the canvas.

Sphere

The Add Sphere dialog is activated when Sphere is selected from the Object submenu.

Name - Sphere object name defined by a user. The default name is Sphere1 for the first to be added, Sphere2 for the second to be added, and so on.

Radius - The radius of the object.

The numerical values are displayed with engineering units according to the project settings.

The numerical values can be entered with values of different engineering units, e.g., 100m or 100in. The values are automatically converted and displayed as equivalent values in engineering units according to the project settings.

The numerical values can also be entered as a formula, e.g., 5/1.2+0.5. The values are automatically calculated and displayed in engineering units according to the project settings.

After OK button is pressed, the dialog is closed and a sphere object is added to the canvas, and can be moved along the tip of the mouse cursor. After Cancel button is pressed, no object is added and the dialog is closed.

When a sphere object is added, the sphere object can be weak-mated(no mate) or mated to a frame.

The size of the sphere object cannot be modified once it’s added to the canvas.

CAD File

The following CAD file formats are supported:

  • 3MF (.3mf)

    • polygonal representations

    • colors and materials

    • assembly structure

    • names

  • ACIS (.sat, .sab); can read files compliant with the ACIS formats from R1.5 to R28.0 (2018 1.0.1)

    • B-Rep representations

    • colors

    • names

    • assembly structure

  • OpenCASCADE B-Rep (.brep)

    • B-Rep representations

    • assembly structure

  • Collada (.dae); can read Collada files version 1.5 and earlier in XML format

    • polygonal representations

    • colors and materials

    • assembly structure

    • names

  • FBX (.fbx)

    • polygonal representations

    • colors/materials

    • names

    • assembly structure

  • IFC (.ifc); can read IFC files of version 2X3. Only models saved as physical STEP files (ISO 10303-21, .ifc extension) are supported. ifcXML and ifcZIP varieties are currently not supported

    • B-Rep representations

    • colors

    • assembly structure

  • IGES (.igs, .iges); can read files compliant with the IGES format up to version 5.3

    • B-Rep representations

    • colors

    • names

    • assembly structure

  • JT (.jt); can read files compliant with the JT formats 8.x, 9.x, 10.x(< 10.6) and ISO14306:2012

    • B-Rep representations *

    • polygonal representations

    • colors/materials

    • names

    • assembly structure

    • external files

  • OBJ (.obj)

    • polygonal representations

    • colors/materials

  • Parasolid (.x_t, .x_b); can read files compliant with the Parasolid file format (schema) from v0.15 and above (the latest tested version is Parasolid v32.1)

    • B-Rep representations

    • colors

    • names

    • assembly structure

  • Rhino (.3dm); can read files compliant with the Rhino file format from v1 to v7

    • B-Rep representations

    • polygonal representations

    • colors/materials

    • names

    • assembly structure

  • STEP (.stp, .step)

    • B-Rep representations

    • polygonal representations

    • colors

    • names

    • assembly structure

    • external files

  • STL (.stl); can read both binary and ASCII STL files

    • polygonal representations

  • U3D (.u3d); can read U3D files (Standart ECMA-363, 1st Edition) in binary format

    • polygonal representations

    • colors/materials

    • assembly structure

    • names

  • VRML (.vmrl); can read files compliant with formats VRML version 1.0 and VRML97 (version 2.0)

    • polygonal representations

    • colors/materials

    • names

    • assembly structure

  • X3D (.x3d)

    • polygonal representations

    • colors/materials

    • names

    • assembly structure

Note that .3mf, files, OBJ files, and STL files do not explicitly contain unit information, and should be scaled such that each vertex value represents a length in meters.

STEP files are the preferred representation for B-Rep data, and Collada files are the preferred representation for polygon meshes.

Parts

While in Model Mode, you can can add parts from other saved projects into the current project.

Requirement when using a parts library:

  • You must be in model mode to import parts from another project.

  • Robots, objects, frames, mates, joints, and presets can be part of the parts library.

  • Added parts can be undone using Ctrl-Z or “undo“.

  • The added parts are shown in the property tree.

  • Duplicate item names are renamed.

  • Must not include weak-mated objects in the parts library.

  • The parts to be added are shown at the tip of the mouse cursor before a parent frame is selected, i.e., a snapping behavior using the origin of the import project as local origin. Then the parts can be added.

  • Use ESC key before selecting a parent frame to cancel the process.

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).

 

Name – The name of the new mate, which increments automatically. This field is editable.

Child – The child frame for this mate.

Parent – Defines the parent of the child, which is the object’s specific keyframe. When the parent is selected, the child snaps to it in the 3D View. RapidPlan Create automatically aligns the parts by their Z axes.

State tab/State Name - The state describes a single specific offset between parent and child node. By default, as in this example, a mate has only one state. A mate with multiple states is called a Stateful Mate. (See the Edit Mate dialog, below.)

X, Y, Z and Rx, Ry, Rz – The coordinates and rotation values, respectively, of the child.

Enable suppressed state - The suppressed state of the mate is when the child object is not present in the work cell.

Rotate button - 90° snap of the child about Z axis.

Flip button - 180° rotation of the child about X or Y axes.

 

Note: The contents of the Edit Mate dialog are nearly identical to those of the Add Mate dialog. Refer to the description above.

Object State (Mate State)

 

The state of a mate which describes a single specific offset between parent and child node. A mate with multiple states is called a Stateful Mate. In this example the states are named Default and center. 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.

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).

The Joint button on the Toolbar displays the Add Joint dialog.

 

In this example, Frame2 is a frame on a rail, to which the Robot1 base frame is mated. The selections of the child and parent can be made by clicking on them in the 3D View.

Name – The name of the new joint, which increments automatically. This field is editable.

Child – The child frame for this joint.

Parent – Defines the parent of the child. When the parent is selected, the child snaps to it in the 3D View.

Linear X, Y, Z - For prismatic joints, select the axis upon which the joint should move.

Rotational Rx, Ry, Rz - For revolute joints, select the axis of rotation.

Rotate button - 90° snap of the child about Z axis.

Flip button - 180° rotation of the child about X or Y axes.

 

 

Joint Settings

Min: Max: slider - Defines the minimum and maximum distance the prismatic joint will travel or the amount the revolute joint will rotate. The slider moves the joint along or around the chosen axis.

Reverse the direction of the joint motion - Check if the direction of the joint motion is increasing in a direction that is not desired.

Joint Number - The driver index for the controller. Driver index is always zero-based. Enter a joint number here. Will vary (e.g., 0, 1, 8 ) depending upon the robot used.

Max Acceleration, Max Velocity, Max jerk - Enter maximum values for each. Must be a positive, non-zero value.

Rotate button - 90° snap of the child about Z axis.

Up down arrows - 180° rotation of the child about X or Y axes.

Frame

 

A frame is 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).

Selecting the Frame button on the toolbar displays the Add Frame dialog.

 

Name - The name to be given to the newly added frame. It is editable.

Keyframe Selection box - The name of the currently selected keyframe in the 3D View. (In this example, the keyframe is the projected arc on the edge of a piece of aluminum extrusion, which is part of an aluminum table.)

X, Y, Z and Rx, Ry, Rz – Used to offset the coordinates and rotation values of the frame.

Rotate icon = 90° snap of the frame about Z axis.

Up down arrows = 180° rotation of the frame about X or Y axes.

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 suppressed state). A second preset could represent the robot’s physical geometry when it is carrying a part (an active state). Each robot preset has its own roadmap. Each robot preset in a project must be given a unique name.

Clicking the Preset button in the toolbar displays the Robot Presets dialog.

Note: In the example there are two presets, gripper and gun. The gun preset is set such that it is associated with the weld gun tcp, rtr_1_weld_gun_tip. The gripper preset is set such that it is associated with the gripper tcp. In the gun preset, weld_gun_1 is set to state while the gripper_mate is set to Suppressed, meaning the weld gun is active while the gripper is hidden from the canvas and not taken into consideration for path planning when the Robot Preset for rtr_1 is set to gun.

+ button - Add additional presets.

Robot Preset Name - Name of the currently selected robot’s preset. Default name is Preset1, name which users can rename.

TCP for this Preset - The tool center point (TCP) with which this preset is associated.

Attached Objects/States - The objects and their selected states. The name of the attached object is actually the name of its mate, therefore the objects weld_gun and gripper are connected to the robot via their named mates, weld_gun_1 and gripper_mate.

Robot Dynamics

Robot dynamic parameters can be modified per preset through the robot dynamics dialog, which is accessible through the Presets dialog. The dialog box can be triggered by Robot Dynamics button on the bottom left corner of the Presets dialog.

The dialog box allows users to modify the velocity, acceleration, and jerk limits for native joints as well as user-defined joints (external joints such as weld gun and linear rail). The dialog box comprises of the following:

Robot Name - Name of the robot for which robot dynamics are shown.

Preset Name - Name of the selected robot’s preset for which robot dynamics are shown.

Joint Name - Names of all native joints and any user-defined joints. In the example above, the selected robot has a weld gun joint named gun1_joint. All native joints will usually have default names as shown above.

Max Velocity - Entry for the velocity limit for that specific joint. The unit is in unit/second, where unit in the edit box is set the same as provided under project settings for length and angle, whichever is applicable.

Max Acceleration - Entry for the acceleration limit for that specific joint. The unit is in unit/second2, where unit in the edit box is set the same as provided under project settings for length and angle, whichever is applicable.

Max Jerk - Entry for the jerk limit for that specific joint. The unit is in unit/second3, where unit in the edit box is set the same as provided under project settings for length and angle, whichever is applicable.

NOTE: There is no limit to the velocity, acceleration, and jerk limits for all joints. So, it is recommended to double check your dynamic values before saving your work.

External Axis joints - Values for these joints are initially inherited from the values set in the joint dialog for this joint. Values per preset from thereon can be modified without any limitations.

In addition to above, the joint values can be:

  • copied

  • pasted

  • restored to default

There is an additional option to perform the operations of copy, paste, and restore to default for the entire matrix constituting all joint values.

Collision

In Model Mode, collision checking can be disabled for static objects using the Globally Disable Collision checking for Object option under the Collision drop-down.

 

Static objects can be selected and deselected from this list. The selected objects will not be considered for collision checking during validation of the entire project. The list, once created, can be accessed via the top panel menu item as well as from the property tree.

Objects can be selected from canvas or from the property tree. In addition, objects can also be selected through the object context menu item named Disable Collision Check for <name>. Conversely, objects can de-selected from the list by various methods, including via accessing the dialog box, via context menu item under the object itself named Enable Collision Check for <name>, or via context menu item for the objects under the Globally Disable Object entry in the property tree.

NOTE: This option is also available in roadmap mode and changes are persisted across both modes.

Collision View

Turning off collision view will disable the animation of collision rendering (red in color). In some projects with complex models, the rendering speed might become faster with the collision views turned off, too.

 

Collision View ON/OFF button enables/disables the coloring of colliding objects in red.

Contact Segments View ON/OFF button enables/disables the highlight of the intersection of colliding objects in orange.

 

Align

The Align tool helps to fix mismatches between the real world setup of a work cell and the model of that work cell created in Model mode.

The Align tool works on weak-mated objects only, i.e., objects that are not mated to the floor yet, so that the Align tool can move the object to the best aligned position to achieve minimum mean error between multiple pairs of aligning frames, and then mate the object to the floor.

The Align tool requires at least one pair of aligning frames. Each pair of aligning frames must contain one frame from the object model, and the other frame from the measured coordinates on the actual object. For example, Frame1 and Frame4, Frame2 and Frame5 are 2 aligning frames for the Box1 object.

 

 

Application examples with Align Tool

The Align tool is primarily needed to align the simulation environment with the environment in reality. Couple of examples below:

We will now use the latter example to illustrate how align tool can be used to align simulation environment with the environment in reality.

  1. For the reality, suppose we know the joint configurations for the left robot at top four corners of this box

  2. Use the above joint configurations to add Frames for the left robot in RPC

  3. Press Align Button to process with the alignment accordingly

    1. Select the object you want to align , in this case, we select the left robot as the object to align

    2. Map the Simulation frames and RealWorld frames

    3. Since transformation includes orientation change, you can uncheck Translation only

      1. NOTE: This option is useful in example where alignment likely results from a mix of translation and orientation

    4. Once done, you can click OK, upon which the transformation is calculated and the alignment applied to the environment

  4. User can continue steps 1-3 for the other robot

Split

 

You can split one or more parts from an object that is made up of multiple parts (for example, a multi-part assembly CAD file) so that the split-off part becomes a separate object all by itself. The part will appear on the property tree as a new object. There will also be a new mate since the new part is still mated to its original existing object. If you delete the new mate, the part is separated from the original object. You can then move the split-off part on its own, mate it to another object, etc.

Measure

 

You can measure the distance between any two items in the 3D View by clicking on them. The Measure dialog box can display minimum (straight-line) distance and dimension-wise (Dx, Dy, and Dz) distance between the two items. In addition, the Measure dialog box can display the Rotational Offset (Rx, Ry, and Rz) if applicable.The Measure tool can display other measurement information such as distance between parallel surfaces, relative plane angles, and total area. 

To take a measurement, just click on any two parts in the work cell. You can select between different modes:

  • Face/Edge/Vertex - Allows selection of any face or edge or vertex for any objects or links in the project

  • Subassembly - Allows selection of a sub-assembly (part of an assembly or a complex object with multiple parts)

  • Object - Allows selection of an entire assembly (or an object)