Skip to content
Vicente Soler edited this page Jan 25, 2016 · 29 revisions

Home

Grasshopper plugin for programming ABB, KUKA and UR robots for custom applications. Special care is taken to have feature party 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

Download

Prerequisites

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

Installation

  • Download the robots.gha file from the latest release.
  • Open the folder that contains the downloaded file, right click on it, select properties and click on Unblock.
  • Copy or move the file to the Grasshopper components folder. You can find this folder through the Grasshopper menu by clicking on File, Special Folders, Components Folder.
  • If you plan on referencing robots.gha in a scripting component and exchange data with other components using the custom parameters of the plugin, you'll need to run the Rhino command GrasshopperDeveloperSettings and disable "Memory load *.GHA assemblies using COFF byte arrays".
  • Restart Rhino or drag robots.gha to the Grasshopper canvas.

Adding a custom robot

The robots.gha file already includes the robot models we use at Bartlett School of Architecture. If your robot is not included you can add it yourself by following these instructions.

  • Download the files robotsData.xml and robotsGeometry.3dm found in the Resources folder of this repository. Copy these files to the same folder as robots.gha.

  • The 3DM file contains the geometry of the robot. Each robot is made out of exactly 7 mesh objects (the base plus the 6 joints). Open the 3DM file and create a new layer with the naming convention "MANUFACTUER.MODEL", place the mesh representing the base on this layer. Create 6 sublayers named 1 to 6 and place the mesh corresponding to each joint number. You can usually find CAD files in the manufacturers website containing the geometry of the robot.

  • The XML file contains the attributes of the robot. Duplicate one of the robot elements as reference and replace the values. You can find most of this data on the manufacturers website. The "a" and "d" values of the joints correspond to DH parameters. There are different conventions for DH parameters, so check the other robots in the XML file to see if the values make sense, you might need to change the order.

  • To load your custom robot in Grasshopper, you'll need to set the "F" input of the "Load robot" component to TRUE. The name of the robot should be "MANUFACTUER.MODEL".

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 on 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):

  • KUKA: 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. You'll need to use the pendant to copy the program from the shared folder to the program folder to be able to select it.
  • UR: 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 to the controller.
  • ABB: Install RobotStudio (you can use the free version). Click on "Online" and then "One click connect". If the program is not very long, in Grasshopper, connect a text panel to the code output of the "Create program" component. Right click on the panel and select "Copy data only". In Robot Studio, switch to the "RAPID" tab. 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, double click on the MainModule and replace the code by pasting the code from Grasshopper. Close the module to save the file. For longer files or uploading multiple files, in Grasshopper, use the "Save program" component. In Robot Studio, switch to the "Controller" tab and click on the "File transfer" button in the ribbon.
Clone this wiki locally