logo

Parametric Robot Control Documentation

πŸš€Getting StartedπŸ’»For DevelopersπŸ“Downloadβš™οΈSample ProjectsπŸ’£Known Issues🚨Troubleshooting
🚧
We are currently starting to invite groups of people to test Parametric Robot Control. Thank you for giving it a try, your feedback is appreciated! Johannes

Overview

  • Proven - builds upon the well-established KUKA|prc framework
  • Robot-Agnostic – unified interface across robot systems (KUKA, ABB, UR, Neura, igus...)
  • Modular – integrates into host software as plugins, such as Grasshopper and Grasshopper 2
  • Programmable – gRPC API for custom applications
  • Standalone – single executable, no ROS2 required
  • Flexible – runs on Windows, macOS, and Linux
  • Accessible – reference implementation for Grasshopper
Parametric Robot Control (PRC) brings robot simulation and control to the environment of your choice. A single cross-platform server handles kinematics, simulation, collision checking, and code generation for robots from KUKA, ABB, Universal Robots, NEURA, and more – while lightweight clients connect to it via gRPC from Grasshopper, Blender, Unity, Python, the browser, or any platform you build yourself. PRC is the successor to KUKA|prc: rewritten from scratch, robot-agnostic, and designed around the same connectivity paradigm as modern robotic systems like Boston Dynamics' Spot SDK and KUKA's iiQKA.

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.
  • Create your own MCP server to verify and execute robot programs.
  • …

Platforms

PRC is fully cross-platform capable and runs on both Windows 10+ and macOS 13+ (both x64 and arm64). The developer version has also been used successfully on Linux and Intel-based macOS devices, but is not tested thoroughly.
The core implementation is provided for GrasshopperGrasshopper. An initial implementation als exists for Grasshopper 2Grasshopper 2. 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 .NET 10 / ASP.NET Core 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, it is subject to e.g. a firewall that may block access. However, especially when running it locally, the connection to localhost should be very fast and stable.

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.