robotcomponents

A Grasshopper plugin for intuitive robot programming

https://github.com/robotcomponents/robotcomponents

Science Score: 49.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 7 DOI reference(s) in README
  • Academic publication links
    Links to: researchgate.net, zenodo.org
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (17.2%) to scientific vocabulary

Keywords

abb abb-robots food4rhino grasshopper grasshopper-plugin grasshopper3d rapid rhino rhino3d rhino3dm rhinoceros robot-components robot-programming robotcomponents
Last synced: 6 months ago · JSON representation

Repository

A Grasshopper plugin for intuitive robot programming

Basic Info
Statistics
  • Stars: 60
  • Watchers: 6
  • Forks: 16
  • Open Issues: 29
  • Releases: 66
Topics
abb abb-robots food4rhino grasshopper grasshopper-plugin grasshopper3d rapid rhino rhino3d rhino3dm rhinoceros robot-components robot-programming robotcomponents
Created over 6 years ago · Last pushed 6 months ago
Metadata Files
Readme Funding License Authors Zenodo

README.md

Light color mode

DOI


Robot Components is a plugin for intuitive robot programming for ABB robots inside 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

Installation

If you are using Rhino 7 or higher, you can install Robot Components via the Package Manager. For other versions, download the latest release directly from the repository's releases page or from Food4Rhino.

After downloading, unzip the archive and copy all files into the Grasshopper Components folder (in Grasshopper, navigate to File > Special Folders > Components Folder). Ensure that all files are unblocked by right-clicking each file, selecting Properties, and clicking Unblock on the General tab. Restart Rhino, and you're ready to go!

Robot Components supports the following Rhino versions:

  • Version 3 (v3): Compatible with Rhino 7 or higher.
  • Version 2 (v2): Compatible with Rhino 6 or higher.
  • Version 1 (v1): Compatible with Rhino 5 or higher.

With each latest release, we aim to support the latest two major Rhino versions.

Example files and documentation

Explore a collection of example files demonstrating Robot Components' main features in the repository's Example Files folder. Comprehensive documentation for Grasshopper is available on our documentation website and API documentation can be found here.

Controller utility components

To use the components in the Controller Utility section, you must also install Robot Studio or the ABB Robot Communication Runtime. You can download the runtime directly from this link.

The latest release of Robot Components is built and tested against ABB PC SDK version 2024.1 (ABB Robot Communication Runtime 2024.1). Compatibility with older versions of the runtime is not guaranteed. Additionally, the Controller Utility components are supported only on Windows operating systems.

If you encounter issues with establishing a real-time connection from Grasshopper, please contact us for assistance.

Quick Links

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

Credits

Light color mode Light color mode

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 being actively developed and maintained by Arjen Deetman. A complete list of developers and contributors is available here.

Robot Components integrates the ABB PC SDK for real-time communication with ABB robots. You can access the SDK used in this project here.

Robot Components utilizes 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 Brandsttter, Arthur Angerer, and Michael Hofbaur.

We would like to acknowledge Jose Luis Garcia del Castillo and Vicente Soler for their Grasshopper plugins RobotExMachina and Robots. While our approach differs, it was helpful for us to see how they 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 what we are currently developing and what we want to add and change in the future.

Contribute

Bug reports: Please report bugs at our issue page.

Feature requests: Feature requests 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 necessary references are placed in the folder DLLs. We only accept code contributions if they are commented. We use XML comments to auto-generate our API documentation. You can read more about this topic here and 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 contribution 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 intuitively 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 is a free-to-use Grasshopper plugin, and we kindly ask you to cite it if used. By citing the software, you recognize the work that went into its development and allow us to track its usage, making it easier to secure funding for further improvements. More importantly, citing the software and providing details on the tools used ensures that results can be reproduced. See How to cite and describe software for more details and an in-depth discussion.

To cite all versions of Robot Components - as a reference to the whole project - in publications, use:

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

On our Zenodo page you can find how to cite specific versions.

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 backward-compatible manner x.x.0 ---> PATCH version when you make backward-compatible bug fixes Versions that were not released on Food4Rhino are marked as pre-release.

Used by

An overview of the projects wherein the software is used can be found here.

License

Copyright (c) 2018-2020 EDEK Uni Kassel\ Copyright (c) 2020-2025 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

Owner

  • Name: Robot Components
  • Login: RobotComponents
  • Kind: organization

GitHub Events

Total
  • Create event: 7
  • Issues event: 16
  • Release event: 5
  • Watch event: 7
  • Delete event: 1
  • Issue comment event: 36
  • Push event: 36
  • Pull request event: 2
  • Fork event: 1
Last Year
  • Create event: 7
  • Issues event: 16
  • Release event: 5
  • Watch event: 7
  • Delete event: 1
  • Issue comment event: 36
  • Push event: 36
  • Pull request event: 2
  • Fork event: 1

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 8
  • Total pull requests: 2
  • Average time to close issues: about 1 year
  • Average time to close pull requests: 16 days
  • Total issue authors: 2
  • Total pull request authors: 1
  • Average comments per issue: 0.0
  • Average comments per pull request: 2.0
  • Merged pull requests: 1
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 7
  • Pull requests: 2
  • Average time to close issues: about 1 month
  • Average time to close pull requests: 16 days
  • Issue authors: 2
  • Pull request authors: 1
  • Average comments per issue: 0.0
  • Average comments per pull request: 2.0
  • Merged pull requests: 1
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • arjendeetman (13)
  • xPhilippeRoux (2)
  • akudless (2)
  • jf--- (1)
  • MonkeyKingChina (1)
  • ChrisLVTBooth (1)
  • ar0551 (1)
Pull Request Authors
  • arjendeetman (8)
  • jonni-max (3)
Top Labels
Issue Labels
preset (6) not started (5) completed (5) addition (3) check (2) in discussion (2) modification (1) in process (1) sponsor needed (1)
Pull Request Labels
addition (1) not started (1)

Dependencies

RobotComponents/RobotComponents.csproj nuget
  • RhinoCommon 7.0.20314.3001
RobotComponents/packages.config nuget
  • RhinoCommon 7.0.20314.3001
RobotComponents.ABB/RobotComponents.ABB.csproj nuget
  • RhinoCommon 7.0.20314.3001
RobotComponents.ABB/packages.config nuget
  • RhinoCommon 7.0.20314.3001
RobotComponents.ABB.Controllers/RobotComponents.ABB.Controllers.csproj nuget
  • RhinoCommon 7.0.20314.3001
RobotComponents.ABB.Controllers/packages.config nuget
  • RhinoCommon 7.0.20314.3001
RobotComponents.ABB.Gh/RobotComponents.ABB.Gh.csproj nuget
  • Grasshopper 7.0.20314.3001
  • RhinoCommon 7.0.20314.3001
RobotComponents.ABB.Gh/packages.config nuget
  • Grasshopper 7.0.20314.3001
  • RhinoCommon 7.0.20314.3001
RobotComponents.ABB.Gh.Goos/RobotComponents.ABB.Gh.Goos.csproj nuget
  • Grasshopper 7.0.20314.3001
  • RhinoCommon 7.0.20314.3001
RobotComponents.ABB.Gh.Goos/packages.config nuget
  • Grasshopper 7.0.20314.3001
  • RhinoCommon 7.0.20314.3001
RobotComponents.ABB.Gh2/RobotComponents.ABB.Gh2.csproj nuget
  • RhinoCommon 7.0.20314.3001
RobotComponents.ABB.Gh2/packages.config nuget
  • RhinoCommon 7.0.20314.3001
RobotComponents.ABB.Presets/RobotComponents.ABB.Presets.csproj nuget
  • RhinoCommon 7.0.20314.3001
RobotComponents.ABB.Presets/packages.config nuget
  • RhinoCommon 7.0.20314.3001