Vicente Soler edited this page Dec 4, 2016 · 20 revisions


Grasshopper plugin for programming ABB, KUKA and UR robots for custom applications. 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. Download



  • Windows 7 or above
  • .NET Framework 4.0
  • Rhinoceros 3D 5 SR13 64 bit
  • Grasshopper 0.9.0076


  1. Download the robots.gha and robots.dll files from the latest release.
  • Open the folder that contains the downloaded files, right click on them individually, select properties and click on Unblock.
  • Place the files on the Grasshopper components folder. You can find this folder through the Grasshopper menu by clicking on File, Special Folders, Components Folder.
  • In your Windows Documents folder, create a subfolder named Robots and place the XML and 3DM files that correspond to one ore more robot libraries.
  • Open Rhino, run the Rhino command GrasshopperDeveloperSettings and disable "Memory load *.GHA assemblies using COFF byte arrays".
  • Restart Rhino and open Grasshopper. There should be a new tab in Grasshopper named Robots.

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


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

  • 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 upload the program through a network connection. If you use a LAN cable to connect directly 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):


  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 a username and password to access the shared folders (the default username and password depend on the controller version).
  • In Grasshopper, use the "Save program" component and set the folder path to point to the shared folder.
  • Use the pendant to copy the program from the shared folder to the program folder to be able to select it.


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


  1. In Grasshopper, use the save program component to create a folder containing the ABB RAPID program. *. Install RobotStudio (you can use the free version).
  • Open RobotStudio and click on "Online" and then "One click connect".
  • Switch to the controller tab and click on file transfer.
  • Copy the folder generated by the robots plugin to the HOME folder of the controller (do not rename the folder or files).
  • If the controller is in manual mode, click on "Request Write Access" button in the ribbon. You'll need to acknowledge in the pendant.
  • On the left hand side, expand the RAPID tab, delete any modules loaded on the current robot (T_ROB1).
  • Right click on T_ROB1, select load module from controller and load the first module inside the program folder.
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.