Robot Components Documentation
Robot Components is a plugin for intuitive robot programming for ABB robots inside of Rhinoceros Grasshopper. Robot Components offers a wide set of tools to create toolpaths, simulate robotic motion and generate RAPID code within Grasshopper. Some of the main features include:
- 40+ predefined ABB robot models
- Possibility to add your own robot models
- Support for external axes (both linear and rotational)
- Possibility to define custom strategies for all external axis values
- Support for work objects (including movable work objects)
- Efficient forward and inverse kinematics
- Possibility to add your own custom code lines
- Real-time connection with IRC5 and OmniCore controllers
- Robot Components API to develop your custom components using either Python or C#
Getting Started
If you use Rhino 7 or higher you can install Robot Components via the package manager. For other versions, you can download the latest release directly from the GitHub releases page or Food4Rhino. Unzip the downloaded archive and copy all files in the Grasshopper Components folder (in GH, File > Special Folders > Components Folder). Make sure that all the files are unblocked (right-click on the file and select Properties from the menu. Click Unblock on the General tab). Restart Rhino and you are ready to go!
In case you want to use the components from the Controller Utility section you additionally have to install Robot Studio or the ABB Robot Communication Runtime (you can download it by clicking here). The latest release is built and tested against the ABB PC SDK version 2024.1 (ABB Robot Communication Runtime 2024.1). We do not guarantee that the Controller Utility components work with older versions of the ABB Robot Communication Runtime. Besides that, the components from the Controller Utility section are only supported on Windows operating systems. Please contact us if you have problems with establishing a real-time connection from Grasshopper.
You can find a collection of example files demonstrating the main features of Robot Components in this repository in the folder Example Files. You can find the Grasshopper documentation website here. The documentation website of the API here.
For easy sharing of the download link and the documentation (with e.g. students) you can also use our linktree.
Overview of the components
Code Generation Components: These components are used to generate the RAPID program and system modules for an ABB IRC5 robot controller which can be copied manually or uploaded and run by using Controller Utility components. Furthermore, movement instructions can be simulated visually in Rhino by using Simulation components.
Controller Utility Components: These components are used to build up a real-time connection to an ABB IRC5 robot controller.
Deconstruct Components: These components are used to deconstruct Simulation and Definitions components into their parameters.
Definitions Components: These components are used to define robots and robot tools which are needed for Code Generation and Simulation.
Multi Move Components: These components are used to create RAPID programs for Multi Move tasks. Multi Move components are an extension of the components in the Code Generation category and need to be combined with other Code Generation components to create a Multi Move program.
Parameters Components: These components are used to maintain and store Data of Code Generation and Definitions components.
Simulation Components: These components are used to visually approximate the movement behavior of the robot before running the RAPID program and system modules on an ABB IRC5 robot controller.
Utility Components: These components support other component categories with extra functionality.
NOTE: By selecting Documentation from the right-click menu of any robot components component in Grasshopper, the corresponding documentation page opens up in the browser.
Credits
Robot Components is an open-source project that was initiated by the chair of Experimental and Digital Design and Construction of the University of Kassel. The plugin is currently further developed and maintained by Arjen Deetman. All developers and contributors are listed here.
Robot Components uses the ABB PC SDK for real-time connection to ABB Robots, you can find the .dll used in this project here: ABB developercenter.
Robot Components uses the OPW kinematics solver as described in the paper ‘An Analytical Solution of the Inverse Kinematics Problem of Industrial Serial Manipulators with an Ortho-parallel Basis and a Spherical Wrist’ by Mathias Brandstötter, Arthur Angerer, and Michael Hofbaur.
We would like to acknowledge Jose Luis Garcia del Castillo and Vicente Soler for making their Grasshopper plugins RobotExMachina and Robots available. Even though our approach is different it was helpful for us to see how you implemented certain functionalities and approached certain issues.
License
Copyright (c) 2018-2020 EDEK Uni Kassel
Copyright (c) 2020-2024 Arjen Deetman
Robot Components is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 3.0 as published by the Free Software Foundation.
Robot Components is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with Robot Components; If not, see http://www.gnu.org/licenses/.
@license GPL-3.0 https://www.gnu.org/licenses/gpl-3.0.html