Skip to content
visose edited this page Dec 6, 2021 · 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.

Navigate this page:

  1. Prerequisites
  2. Installation
  3. Adding a custom robot
  4. Coordinate systems
  5. Units
  6. Uploading to a robot

Prerequisites

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

Installation

  1. Install in Rhino 7 using the _PackageManager command, search for Robots.

    If you have an older version, delete Robots.gha and Robots.dll from the Grasshopper Components folder.

  2. Download at least one pair of XML and 3DM files from the libraries folder.

    You can install multiple libraries.

  3. Place them inside a folder named Robots under the OS's Documents folder.

    In Windows the path will look like C:\Users\userName\Documents\Robots\RobotLibrary.xml.
    In Mac the path will look like HD/Users/userName/Robots/RobotLibrary.xml.

  4. Restart Rhino and open Grasshopper. There should be a new tab in Grasshopper named Robots.
  5. The robots from the library should appear in a value list when you place a Load Robot System component.

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

  • In the latest version 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.

Instructions for uploading 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.
Clone this wiki locally