/RobotComponents

A Grasshopper plugin for intuitive robot programming

Primary LanguageC#GNU General Public License v3.0GPL-3.0

DOI


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 controllers
  • Robot Components API to develop your custom components using either Python or C# (w.i.p)

Getting Started

You can download the latest release directly from this repository's releases page or from 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! If you use Rhino 7 you can also install Robot Components via the package manager.

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 current release is built and tested against the ABB PC SDK version 2020.1 (ABB Robot Communication Runtime 7.0). We do not guarantee that the Controller Utility components work with older versions of the ABB Robot Communucation Runtime. 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 is coming soon.

For easy sharing of the download link and the documentation (with e.g. students) you can also use our linktree.

Credits

EDEK_logo

Robot Components is an open source project initiated by the chair of Experimental and Digital Design and Construction of the University of Kassel. The developers and contributors are listed here.

Robot Components uses the ABB PC SDK for real-time connection to ABB Robots, you can find the SDK used in this project here.

We would like to acknowledge Jose Luis Garcia del Castillo and Vicente Soler for making their Grasshopper plugins RobotExMachina and Robots available. Even our approach is different it was helpful for us to see how you implemented certain functionalities and approached certain issues.

Known Issues

Known issues are listed here. If you find a bug, please help us solve it by filing a report.

Roadmap

Please have a look at the open issues and projects to know on what we are currently working and what we want to add and change in the future.

Contribute

Bug reports: Please report bugs at our issue page.

Feature requests: Feature request can be proposed on our issue page. Please include how this feature should work by explaining it in detail and if possible by adding relevant documentation (from e.g. ABB).

Code contributions: We accept code contributions through pull requests. For this you have to fork or clone this repository. To compile the code all necesarry references are placed in the folder DLLs. We only accept code constributions if they are commented. We use XML comments to auto generate our API documentation. You can read more about this topic here. If you want to make a significant contribution, please let us know what you want to add or change to avoid doing things twice. For questions or if you want to discuss your constribution you can reach out to one of the developers. Feel free to add your name to the list with contributors before you make a pull request.

Adding support for other brands: Robot Components is developed to intuitive program ABB robots inside Grasshopper. At the moment we have no plans to implement the support for other robot brands. However, we have a few ideas about how to implement this and since we want to keep Robot Components as intuitive as possible we kindly ask you to contact one of the developers first in case if you want to implement other robot brands. We are happy to contribute to and support this development.

Cite Robot Components

Robot Components is a free to use Grasshopper plugin and does not legally bind you to cite it. However, we have invested time and effort in creating Robot Components, and we would appreciate if you would cite if you used. Please use our DOI from Zenodo. To cite all versions of Robot Components in publications use:

Arjen Deetman, Gabriel Rumpf, Benedikt Wannemacher, Mohamed Dawod, Zuardin Akbar, & Andrea Rossi (2021). 
Robot Components: Intuitive Robot Programming for ABB Robots inside of Rhinoceros Grasshopper.
Zenodo. https://doi.org/10.5281/zenodo.5773814

Note that there are two reasons for citing the software used. One is giving recognition to the work done by others which we already addressed. The other is giving details on the system used so that experiments can be replicated. For this, you should cite the version of Robot Components that is used. On our Zenodo page you can find how to cite specific versions. See How to cite and describe software for more details and an in depth discussion.

Version numbering

Robot Components uses the following Semantic Versioning scheme:

0.x.x ---> MAJOR version when you make incompatible API changes
x.0.x ---> MINOR version when you add functionality in a backwards compatible manner
x.x.0 ---> PATCH version when you make backwards compatible bug fixes

Versions that were not released on Food4Rhino are marked as pre-release.

Used in

Conference contributions

Dawod M. et al. (2020) Continuous Timber Fibre Placement. In: Gengnagel C., Baverel O., Burry J., Ramsgaard Thomsen M., Weinzierl S. (eds) Impact: Design With All Senses. DMSB 2019. Springer, Cham

Workshops

Robot Wood Printing Workshop at the Design Modeling Symposium 2019

Video's

EDEK Studio Project - Digital Timber 2018 - Batwing

EDEK Studio Project - Digital Timber 2018 - Wood Joints

EDEK Studio Project - Digital Timber 2018 - Incremental Growth

EDEK Studio Project - Digital Timber 2018 - Stütze

EDEK Research Project - TETHOK at Ligna Fair 2019 - Hannover

EDEK Studio Project - Robotic Wood Printing 2019 - Wiggle wiggle

EDEK Studio Project - Robotic Wood Printing 2019 - Six Times Curvy

EDEK Studio Project - Robotic Wood Printing 2019 - Multi extruder

EDEK Studio Project - Robotic Additive Manufacturing 2019 - Wiggle Wiggle 2.0

EDEK Studio Project - Robotic Additive Manufacturing 2019 - Komorebi

EDEK Studio Project - Robotic Additive Manufacturing 2019 - From Flat

EDEK Master Thesis Project - Wood Printing: The Possibility Of Printing Wood In 3D Space

License

Robot Components

Copyright (c) 2018-2022 The Robot Components authors and / or their affiliations

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