logo

Parametric Robot Control

πŸš€Getting StartedπŸ’»For DevelopersπŸ“DownloadπŸ’­Sample ProjectsπŸ’£Known Issues
🚧
We are currently starting to invite small groups of people to test Parametric Robot Control. Please do not yet share the link to this page - but let us know in case you would like us to invite additional testers. Thank you! Johannes

Overview

Parametric Robot Control (PRC) is closely related to KUKA|prc, but except for some basic, geometric algorithms has been completely re-written from scratch. The paradigm for Parametric Robot Control is integration: We see the value in bespoke, domain-specific solutions and aim to be able to integrate robot simulation and robot control into these platforms. To facilitate this approach, PRC takes inspiration from robotic systems such as Boston Dynamics's Spot SDK and KUKA's iiQKA, which implement gRPC to connect with other systems.

Scenarios

Where can you best utilize the new PRC?
  • Interact with a robot through a low-powered device (e.g. XR headsets) but run the simulation on a powerful server.
  • Define highly integrated dataflows to automate custom, individualized production.
  • Embed robotic processes into machine learning / AI environments.
  • …

Platforms

PRC is fully cross-platform capable and runs on both Windows 10+ and macOS 13+ (both x64 and arm64). Linux support is technically possible but has not been tested.
The core implementation is provided for GrasshopperGrasshopper. We have developed prototypes for diverse platforms like Unity | C#Unity | C#, Blender | PythonBlender | Python and have PRC also running in the browser via gRPC via JavascriptgRPC via Javascript. The prototypes are not fully developed products but address developers to kickstart the development of such plugins.

gRPC Architecture

At the core of PRC is the PRC.Server, a cross-platform capable (Windows, macOS, Linux) software written in NET8 / ASP.NET Core 8 where all robot specific computations are performed. The PRC.Server can host several robot simulation / control setups at the same time, though it is not designed as a cloud system for 1000s of users.
The foundation of the PRC.Server is a set of Protobuf files that define the communication between the server and the various clients. Software such as the NuGet Gallery | Grpc.Tools 2.64.0 can convert the Protobuf files into native C# code. For Python, these are the grpcio-tools Β· PyPI.
Therefore, the clients do not need to provide robot-specific functionality but only need to manage the basic data going to and coming from the PRC.Server. In the case of PRC.GH for Grasshopper, the Core component manages the data so that new tasks are only uploaded if the data has changed, and 3D visualization capabilities are provided. This facilitates the implementation of robotic fabrication into new software environments.

Server Architecture

The server processes data via gRPC, while also providing a graphical user interface that can be displayed in a browser at https://localhost:5001 - in PRC.GH a webview window was implemented to present the settings to the user. As the browser is used, the settings are platform-independent. Basic troubleshooting can be done via a console window.

Advantages

In general, the new code is significantly more optimized than the legacy KUKA|prc code that has been in use partly for over a decade. In itself, PRC allows for much easier implementation of new robot types and geometries. The gRPC communication offers a great potential for integrating robotic simulation and control into new software environments - from game engines to PLCs - as well as usage for scalability and automation, towards creating integrated fabrication workflows.

Disadvantages

As the communication via gRPC happens over a network connection, there may be issues with connection losses or timeouts. However, especially when running it locally, the connection to localhost should be very fast and stable. Having to start the server first is also a drawback compared to the regular KUKA|prc.

Relevant Links

Call gRPC services with the .NET client
Learn how to call gRPC services with the .NET gRPC client.
Call gRPC services with the .NET client
Protocol Buffers
Protocol Buffers are language-neutral, platform-neutral extensible mechanisms for serializing structured data.
πŸ’‘
Disclaimer:Β This software is provided β€œas is” without any warranties or guarantees. The creators and developers of this software do not accept any liability for any damages or losses arising from its use.