Skip to content
visose edited this page Jan 29, 2022 · 29 revisions

Robots

Robots is a Grasshopper plugin for programming and simulating ABB, KUKA, UR and Staubli robots. Special care is taken to have feature parity between all manufacturers and have them behave as similar as possible. The plugin can also be used as a .NET library to create robot programs through scripting inside Rhino (using Python, C# or VB.NET). Advanced functionality is only exposed through scripting.

Prerequisites

  • Rhinoceros 3D version 7 (Win or Mac)
  • .NET Framework 4.8 in Windows

Upgrading from an older version

  1. Delete Robots.gha and Robots.dll from the Grasshopper Components folder.

    Applies when upgrading from versions older than 1.0.0

  2. The existing libraries in your documents folder will take preference over installed libraries. Check the robot libraries section.

    Applies when upgrading from versions older than 1.1.0

Installation

  1. Install in Rhino 7 using the _PackageManager command, search for Robots.
  2. Restart Rhino and open Grasshopper. There should be a new tab in Grasshopper named Robots.
  3. Install a robot library by clicking on the Libraries button of a Load robot system component.

    The robots from the library should appear in a value list connected to a Load robot system component.

Workflow

The basic Grasshopper workflow:

  1. Select your robot model using the Load robot system component.

    Install a robot library if you haven't by clicking on the Libraries button.

  2. Define your end effector (TCP, weight, and geometry) using the Create tool component.
  3. Create a flat list of targets that define your tool path using the Create target component.
  4. Create a robot program connecting your list of targets and robot model to the "Create program" component.
  5. Preview the tool path using the "Simulation" component.
  6. Save the robot program to a file using the "Save program" component. If you're using a UR robot, you can also use the "Remote UR" component to stream the program through a network.

Adding a custom robot

Visit the robot libraries section for instructions on how to add your own robot cells.

Coordinate systems

As with Rhino, the plugin uses a right-handed coordinate system. The main coordinate systems are:

  • World coordinate system: It's the Rhino document's coordinate system. Cartesian robot targets are defined in this system. They're transformed to the robot coordinate system during post-processing.
  • Robot coordinate system: Used to position the robot in reference to the world coordinate system. By default, robots are place in the world XY plane. The X axis points away from the front of the robot, the Z axis points vertically.
  • Tool coordinate system: Used to define the position and orientation of the TCP relative to the flange. The Z axis points away from the flange (normal to the flange), the X axis points downwards.

Coordinate systems

Units

The plugin always uses the same units irrespective of the robot type or document settings.

Quantity Unit
Length Millimeters
Angle Radians
Weight Kilograms
Time Seconds
Linear speed Millimeters per second
Angular speed Radians per second

Uploading the program to a robot

Most robot controllers from ABB, KUKA and UR support uploading a program through a USB port. Use the "Save program" component to create a file of the program and copy it to a USB drive. Use this method if your controller doesn't have network support.

The fastest way is to upload the program through a network connection. If you use a LAN cable to directly connect your PC to a KUKA or UR controller, you'll need to know the IP of the controller and assign an IP manually to your PC in your network adapter settings. ABB controllers (IRC5) include a DHCP server, so you don't need to set an IP address. If you use a router with DHCP server to connect to KUKA or UR controllers, you can set both the IP of your PC and controller to automatic. The following is the currently preferred upload method for each robot manufacturer (more integration of the upload process within Grasshopper is planned):

KUKA

  1. KUKA controllers run on top of Windows. Create a shared folder in the controller as you would in a Windows PC. You'll need to know the username and password to access the shared folders (the default username and password depend on the controller version).
  2. In Grasshopper, use the "Save program" component and set the folder path to point to the shared folder.
  3. Use the pendant to copy the program from the shared folder to the program folder to be able to select it.

UR

  1. If the program is not very long, use the "Remote UR" component to establish an TCP connection to the controller. You can then stream the program to the controller directly from Grasshopper.
  2. If the program is long, or you want to upload multiple files, you can use an FTP client (that supports a secure connection) to upload the program.

ABB

With the Remote component

  1. You can use the Remote component directly from Grasshopper to upload, load and optionally run the program on the controller.

    You'll need to install the Robot Communication Runtime if you don't have RobotStudio installed.

With Robot Studio

  1. In Grasshopper, use the save program component to create a folder containing the ABB RAPID program.
  2. Install RobotStudio (you can use the free version).
  3. Open RobotStudio and click on "Online" and then "One click connect".
  4. Switch to the controller tab and click on file transfer.
  5. Copy the folder generated by the robots plugin to the HOME folder of the controller (do not rename the folder or files).
  6. If the controller is in manual mode, click on "Request Write Access" button in the ribbon. You'll need to acknowledge in the pendant.
  7. On the left-hand side, expand the RAPID tab, delete any modules loaded on the current robot (T_ROB1).
  8. Right click on T_ROB1, select load module from controller and load the first module inside the program folder.