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?
- Control a robot from entirely new platforms, as long as they support gRPC / gRPC-Web Supported languages | gRPC
- Create highly optimized toolpaths through optimization algorithms like KUKA|prc Tool-path optimizer - Parametric Zoo
- 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
Grasshopper. We have developed prototypes for diverse platforms like
Unity | C#,
Blender | Python and have PRC also running in the browser via
gRPC 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.
https://learn.microsoft.com/en-us/aspnet/core/grpc/client?view=aspnetcore-8.0

Protocol Buffers
Protocol Buffers are language-neutral, platform-neutral extensible mechanisms for serializing structured data.
https://protobuf.dev/
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.