This document highlights the advantages of using the software application Rhinoceros, and supporting plug-in apps such as Grasshopper, Robots for Grasshopper or KUKA|PRC for controlling an industrial arm robots like the Universal Robotics UR10 or the KUKA range of robots. The software allows users to create a visual 3D environment on their computers – as well as program and simulate the movements of a 3D modelled robot, or command a real robot to move and perform tasks.
Rhinoceros (also called Rhino 3D, or Rhino) is a Computer Aided Design (CAD) software used for the design and modelling of 3D products. It is widely used in the industrial / product design professions, and also used in a variety of industries because of a large range of plug-in applications that enhance the options of the basic Rhino software. A major advantage of using Rhino over similar software packages is a plug-in application called Grasshopper. Grasshopper allows users to use a visual programming language that makes coding accessible to people with limited programming knowledge. By using Grasshopper, users can make rapid changes or explore many variations of 3D models using algorithms or simple commands. Grasshopper’s interface simplifies the creation of complex models, and with the right plug-ins – allows for other abilities such as robot control that can potentially fabricate.
Why use Grasshopper
Rhino and the Grasshopper plug-in have many advantages over other methods of robotic control systems. Rhino is primarily a 3D modelling application, so creating or editing the 3D simulation environment is controlled within one type of software. Once a model is created, it is easy to make adjustments to the location for setting up a robot in a real world environment, as well as objects for the robot to interact with or avoid. The advantages to using Grasshopper include rapid workflows from virtual prototypes to production. Changes to the control of the program or the intended design can be made quickly and new fabrications can be created.
The example workflow (illustrated below) of this is the *RoboBlox** *project by QUT Design Robotics and UQ Architectural Robotics. The project created over 100 unique polystyrene foam blocks cut by a hot-wire cutter attached to a KUKA industrial robot, for installation as an art piece. The workflow for the RoboBlox project was:
- Creation of the 3D models for each unique design of the blocks in Rhino.
- Grasshopper was used to create the path the robot would follow to cut each of the blocks, and this pathway is simulated to predict any errors.
- Grasshopper was used again to send the commands to the robot for the real blocks to be cut from a large slab of polystyrene.
- The unique polystyrene blocks were finished and installed on site.
The entire process from choosing a design, to installation was fabricated quicker and with greater accuracy compared with a similar project completed without a robot.
Visual Coding, or how to easily program a robot in Grasshopper
On a typical Windows PC, the grasshopper interface, or canvas is clearly laid out (shown below). Menus at the top of the Grasshopper window allow users to switch between different panels of icons. Each icon provides an option or toolset – with additional downloadable plugins extending these panels of tools. A script in Grasshopper uses components that look like box-like containers, each one offering varying inputs, an altering function, and outputs. The example image shows a script made with components from the Robots plugin. This layout shows how the visual script is easily read by following the guidewires that connect the containers transfer data. Changes made to the data at the beginning of the script alters later outcomes, and using this method it is quick to visualise many alternative designs before sending the final design to the robot for fabricating. The advantages of this is that rapid prototyping and robotic fabrication can be achieved or experimented in a variety of adaptations through the use of one type of software.