Getting started with KUKA|prc

Started by Mido1988, November 21, 2013, 02:31:08 PM

Previous topic - Next topic


What's is the best way to get started with KUKA/Prc?
I want to try this out for my own self.
(Really sorry! I didn't want to post this in the Tutorials, but in the General Discussion!)

Johannes @ Robots in Architecture


No problem, I moved the topic!
It depends if you have got previous experience with Grasshopper and what you would like to do with KUKA|prc. You've already seen the tutorial section which is helpful for playing around with existing definitions, the first post there also contains a PDF tutorial. We also do quite a few workshops each year, though I can't provide any fixed dates for 2014 yet.
So what are your plans?



Hello Johannes,

i guess, that I'm going to start with these tutorials ...

I do pretty well with grasshopper though ...

my plan is to get to know more about the inputs of all these nice components ...


What are toolpath positions? What does "having three points at every toolpath" mean? What is the toolplane?
I have no problem creating points, curves, surfaces etc. in Grasshopper ... The problem is understanding the principle of controlling a robot or "what do I need for what"?

Johannes @ Robots in Architecture


Good initial reading are the KUKA manuals, which you should have received with your robot (if not, I can send you a few) - this will make it easier to understand some aspects.
Basically, KUKA|prc works with the principle that you just queue up commands, mostly movements. There are several types of movement, e.g. linear, PTP, spline, circular (see manual for details) which require different inputs.
It's just essential to know that you need more data than just XYZ to define a robot position - XYZ is enough for a 3-axis CNC machine, a 5-axis machine already requires the definition of XYZ plus a tool axis. With the robot, you at least have to define XYZ, plus tool axis, plus the rotation around the tool axis (in KUKA|prc: orientation). So you either define a position via a plane (fulfills the requirements) or via three points, with the first base point defining the tool center point (XYZ), the second point the tool axis, and the third point the orientation around the tool axis. You can switch between plane mode and 3-point mode by right-clicking a movement component.
Even with the endeffector clearly defined, there are still 8 different ways how a robot could approach that positon (see status/turn in the KUKA manual).
If you want to have the robot follow a line, you either have to divide the curve into many planes, or into many "triplets" of points. Some of KUKA|prc components take care of the work (e.g. divide by distance, which requires a base curve, a guide curve, and an orientation point - it gets the base points from dividing the base curve, the guide points from dividing the guide curve, and the orientation from the point).

Hope this makes it a bit clearer!


Ok, thank you for the answer. I don't have a robot yet though. I have managed to get two manuals till now.

So first things first ...

Now this first component (KUKA|prc CORE) ... #takes inputs# ... ##does something## ... ###gives outputs### ...

#What are the inputs "COMMAND", "COLLISION" and "DEFAULT TOOL"? Where do these inputs get "food" from? For the inputs "ENABLE" and "SLIDER", I could take the parameters "Boolean Toggle" and "Number Slider" ...#

##What does the "KUKA|prc CORE" do?##


you help me with figuring this out and you are the boss.

Johannes @ Robots in Architecture

Sure, there you go:

KUKA|prc Core generates the KRL code (double-click it to go into settings and set an output directory, though), If you enable Collision checking (in the settings, Simulation tab) you can plug a mesh object into the COLLISION input input and KUKA|prc will check for collisions. The default tool is just the initial tool that will be used, e.g. one of the included spindles. Every tool you measure in at the robot will get a number - it's important that you give the tool you're using the same ID as how you saved it at the robot.
KINEMATIC is the output for the virtual robot component - KUKA|prc simulates only the end-effector, if you attach the Virtual Robot component you can also simulate the full kinematic movements of the robot.
Don't worry about the ENDEFFECTOR and ORIENTATION outputs, they are just geometry, if you need it e.g. for rendering or visualization.

The ENABLE toggle will go away in the next version, it's actually highly redundant with Grasshopper functionality as was a bad idea to start with... Anyway...
Also take a look at the existing examples in the Tutorials section, this should make the data flows clearer as well.

Hope this helps you along!

P.S.: I've taken the liberty of renaming the topic to "Getting started with KUKA|prc" to make it easier for people looking for similar information.