rotational_axis

Started by Moh.Yazdan, November 27, 2023, 02:36:07 PM

Previous topic - Next topic

Moh.Yazdan

Hello everyone

I would like to inquire about how to add an axis of rotation, as detailed in the attachment to the Grasshopper.

Best regards,
Moh

Johannes @ Robots in Architecture

Hello Moh,

The first step is that the external axis needs to be properly working. So you need to make sure that the axis itself is calibrated and then set an Offset Base (fine to use all-0 fror testing). That way, when you go into base movement mode and move your external axis in that mode, the turntable will turn and the robot will move along with it, i.e. it will keep its position relative to the turntable.

Is that working for you? What are the calibration values of your rotary axis?

Best,
Johannes

Moh.Yazdan

First of all, thank you very much for your response. As you mentioned, I set the root
position Frame by right-clicking on DKP 400. However, what is still unclear for me is
how to use the two axes of this component simultaneously, specifically for rotation in
the y and z directions. I attempted to define a position for DKP 400 in the Base
section using E1 and E2, but when I run the simulation, the accuracy is not
satisfactory. Can you please show me how to adjust the value in this file? In the
attachment, you can find the Grasshopper and Rhino files. Additionally, could you
please guide me on the value that should be defined in the dynamic value by vector
for the Rotary axis?
The second question is regarding where I can find the KP1-HC500 R1200-2 (one-axis
positioner).

best,
Moh

Johannes @ Robots in Architecture

Hello,

Sorry, where is the DKP 400 coming from now? Your screenshot showed a linear rail and a horizontal positioner.
You mention that the "simulation is not satisfactory", what do you mean by that? This can be anything from a 2mm difference to the robot being 1m away from where it should be.

I looked at your attached file and it seems fine to me. You would need to explain to me what exactly you want to achieve in order for me to be able to help you.

What I can tell you is that your tool is very high resolution which will reduce performance. I would reduce it down to like 10k vertices.

Especially when using a DKP (= 2 rotary axes) I would personally recommend defining your own positioner strategy (see e.g. attached). The automated solver settings define a vector (so entering 0/0/0 as in your file will have no effect). That being said I just looked at the solver and there might be bug in some cases. I will have to look into that whether it's related to us or Rhino.

The horizontal axis is not included by default, but we have several people using those through the custom turntable component.

It would be great if we could go through your questions in sequence and solve them one by one, rather than posting them all at the same time.

So first back to your turntable from the initial screenshot: Is it synchronizing properly? What are its XYZABC values?

Thanks,
Johannes

Moh.Yazdan

Hello Johannes,

Thank you very much for your response, and I'm sorry for replying late. I was waiting for the new robot to be installed to measure the XYZABC.
I measured XYZABC from the base and entered the resulting values with the same base number in KUKA|prc. The values are as follows:
X= 2011.78, Y= 221.90, Z= -34.91, A= -0.08, B= -0.03, C= 179.99.
However, in the .src file, X has negative values (X= -1940), and when I try to run the simulation, I get the following error: "Unreachable point Software end switch-A5." Attached, you will find my simulation in Grasshopper and photos of the TCP/Base coordinates, as well as the mentioned error.
Could you please check the simulation file to see where I went wrong?
It would be very kind of you to assist.

Thank you,
Mohammad


Johannes @ Robots in Architecture

Hello,
The first step is to get the root point of your turntable. Currently, it is set to 1500,0,0 (via right-clicking the turntable component). I guess that is not right.
Then when you calibrate the Offset Base, you will get values that are in relation to your positioner. So if the base origin is 10cm above the positioner, you will get something like 0,0,100 for XYZ.
Your current values seem a bit strange, because they have got a 2m offset in X and the other values quite low. Are the robot and the positioner more or less on a shared plane in Z?
In any case, unless you are working with a HUGE positioner, a base with 2000mm distance from the root point of the positioner is not really feasible, the values will be much lower.
Hope that helps with troubleshooting!
Best,
Johannes

Moh.Yazdan

Hello Johannes,

I have a question regarding the external axes. Is it possible to define the external axes differently in Kuka|prc? For example, for DKP-400 v2, defining E1 for rotational movement and E2 for tilting.

Thank you in advance for your assistance.

Best,
Mohammad

Johannes @ Robots in Architecture

Hello Mohammad,
In general, the axes take their numbering from the order in which they have been added.
So if you have got a linear axis (as E1) and then add a turntable, it will be the E2. Internally there are ways to change that, but not through GH components.
For the DKP, there is actually an option in the right-click menu to change the axis order!
Best,
Johannes

Moh.Yazdan

Thank you for DKP, it was very helpful. I was able to switch the E1 and E2. we have also a robot with an axis positioner (KP1 HC500) as E1 and a linear axis (KL 4000) as E2. Is it possible to switch the external axes here similar to DKP? If not through GH components, is it through WorkVisual? If yes, could you advise me on some manuals or tutorials on how to make these changes?

Thank you,
Mohammad

Johannes @ Robots in Architecture

Hello Mohammad,

If you have got a linear axis and a turntable, please connect them in the right order. So e.g. plug the robot component into the linear axis (E1) and the linear axis then into the turntable (E2), or the other way round.

Best,
Johannes

Moh.Yazdan

Thank you, Johannes, that was a clever idea. Yes, I will connect it that way. Do you know or do you have an example of how I can add a single-axis positioner with a counterbearing (KP1 HC500) in Kuka PRC? You mentioned that a single-axis positioner is not available in Kuka PRC. I want to define a linear axis as E1, a single-axis positioner as E2, and a turntable as E3.

Best,
Mohammad

Johannes @ Robots in Architecture

Hello,

You can define a custom turntable. Every single-axis turntable consists of a stationary and a mobile part. In addition, you need to set the rotation axis plus a range.
Here is an example, for a horizontal turntable you would use X or Y as the rotation axis.
However, KUKA|prc implements turntables as an offset base, so you can only use 1 positioner in addition to several linear axis. Two turntables will not work.

Best,
Johannes

Moh.Yazdan

Hello Johannes,

Thank you very much for your last answer, it was very helpful. I have a question about the tool angles, how can I change the ABC angles during my simulation (ABC tool variables). For example, I want to create my program with B = 0 degrees and after a certain point I want to change the B value to 40 degrees.
Thank you,
Mohammad

Johannes @ Robots in Architecture

Hello,

Well, that depends, you can change your tool (KUKA|prc Change Tool component) to another tool with a different tool number and XYZABC values (make sure they also exist on the robot controller!), or you can rotate the planes that make up your toolpath.

Two things to note: KUKA|prc by default works with X as the tool axis, which can be confusing especially to experienced robot users.
The ABC values are not "unique"; there are multiple combinations that express the same orientation. So don't be alarmed if you rotate a plane and, at a certain point, the ABC values make a large jump.

Best,
Johannes

Moh.Yazdan

Hello Johannes,

thanks, could you please tell me briefly how I can use the (KUKA|prc Change Tool component) and how I can use it in a specific place.
I tried to connect the like this photo, but I lost my first tool.

Thank you,
Mohammad