Menu

Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Show posts Menu

Messages - Johannes @ Robots in Architecture

#1
Support / Re: Roboteam example
February 24, 2024, 09:55:47 PM
Hello,

What do you mean about the coordinates changing? Because the Actual Position shows you the current position within the current base using the current tool.
So let's assume that you have got a position 100/0/50 in base 1 and then move to 100/0/50 in base 2.
Even if base 1 and 2 are different within the global coordinate system, the position shown in Actual Position will be the same.
Also, I'm not sure if changing the base has got an immediate effect, or if the positions only update once the robot is moving again. Did you change the base while running the KRL file, or via Display/Variable/Set Variable?

Best,
Johannes
#2
General Discussion / Re: rotational_axis
February 21, 2024, 10:38:55 PM
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
#3
General Discussion / Re: rotational_axis
February 21, 2024, 11:03:13 AM
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
#4
General Discussion / Re: rotational_axis
February 20, 2024, 09:27:38 PM
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
#5
Support / Re: Roboteam example
February 18, 2024, 10:19:20 PM
Hello Alex,

Ask me something easier, with RiA on one side and the university on the other side, the time for the "new" PRC usually happens when my schedule clears unexpectedly.

Honestly the challenge is that KUKA|prc is now very well tested, stable, and relatively fully featured, so doing something that does "more" is hard, considering that users don't see whether the code behind it is janky or well structured ;) But the next PRC will definitely have some nice, new things that are not possible with the current KUKA|prc releases!

But thanks for the offer regarding testing. RoboTeam is definitely on my todo list to explore further, once we have got a suitable project that requires it, I might take you up on the offer!

Best,
Johannes
#6
Support / Re: Parametric speed value for LIN movements
February 18, 2024, 10:11:46 PM
Thanks a lot for the feedback, glad that I could help!
Best,
Johannes
#7
Support / Re: Parametric speed value for LIN movements
February 16, 2024, 10:14:28 AM
Hello,

What is shown in the screenshot is not the KRL output, but the string representation in Grasshopper.
So just like when you plug a point object into a panel, it says {0.1;0.5;16} or so. Within the data object, there is more data - like the speed - than is shown in the panel.
When you look into the generated KRL file and search for "$VEL.CP" you will find numerous speed changes.
But why would you expect a speed change at every line? In your GH script you are providing ca.11000 planes and ca. 200 speed values, one per data tree it seems. Some speed values are identical, in which case they are not output.

Best,
Johannes
#8
Support / Re: Roboteam example
February 14, 2024, 02:39:59 PM
Hello,

Regarding the planes in the Analysis component, there is an ID output for every position and if it's an integer (10) then it's a programmed movement and if it's a float (10.43) it's interpolated. Maybe that could help a bit.

For the kinematically linked base, I guess that you could simulate that by transforming the positions according to the other robot's movements, though, of course, that would mess up the KRL code as the positions would be in the global coordinate system and not in the other robot's base. So I think that would require two steps, one for code generation and the following one for simulation, with the appropriate transformations.

We are currently in the process of a full rebuild of KUKA|prc, and this feedback is very important to me to decide how to lay out the software architecture. But within the context of the current version of KUKA|prc, unfortunately I don't think that it's feasible for me to integrate the linked base any time soon, especially as we don't have a RoboTeam setup ourselves...

Best,
Johannes
#9
Support / Re: Roboteam example
February 05, 2024, 02:14:27 PM
Hello Alex,

You can right-click the Core component to set the base dynamically.
It's definitely possible to mock something like this up, however you might have problems with the normalized simulation slider. Because when you change the base, the toolpath changes and through that the time changes.
You may want to provide a single movement out of the toolpath, or have KUKA|prc generate all movements for one robot and then generate the corresponding movements for the other robot. That might also work fine via the Analysis component.

Regarding that becoming a feature: The annoying part is the communication between two components in Grasshopper. Of course it is possible in the "background" (as it is already doing), but the more such features there are, the less transparent the dataflows become. At least in my opinion.

But I'm very open to suggestions, how that could be implemented!
Best,
Johannes
#10
Tutorials / Re: DKP 400
February 02, 2024, 02:59:08 PM
Hello,

I would recommend that example to get started, and then you could expand it with the second degree of freedom of the DKP: https://forum.robotsinarchitecture.org/index.php/topic,822.0.html
If you provide me with proof of your member access (e.g. sending me an email from your university/company email address) I can unlock the member section for you.

Best,
Johannes
#11
Tutorials / Re: DKP 400
February 02, 2024, 12:00:27 PM
Hello,

You need a membership at the Association for Robots in Architecture (or a commercial license of KUKA|prc), having a license of Rhino is not enough. I am not aware of any specific DKP400 tutorial, so it would help to know what you would like to achieve.

Best,
Johannes
#12
Tutorials / Re: DKP 400
February 01, 2024, 09:41:38 AM
Hello,

Congratulations on your first steps with the robot! Regarding the DKP, in KUKA|prc it is implemented that it basically rotates your base (with an optional offset, if the center of the base is not in the center of the DKP).
So, you program your path normally and then add the rotation, usually to improve reachability. There is an automatic algorithm for it in KUKA|prc, but it is rather basic, so for more complex projects, you will probably define your own strategy to set the external axis value. You can show the inputs for external axes on any movement component by right-clicking it and selecting the relevant options - assuming you have got access to the member version through your university, as external axes are not supported in the free community version.

Best,
Johannes
#13
Support / Re: turntable with parametric Root Frame
January 30, 2024, 07:41:20 AM
Hello David,
You can do that with C# scripting, the component itself currently does not support it.
Attached is a related example. You see how you can get the external axis object, its rootpln property should be what you are looking for. Just be aware that the plane is not a Rhino.Geometry.Plane but a KUKAprcCore.Geometry.Plane. KUKAprcGH.PRC_GH_Methods has got a method to turn your Rhino/GH plane into a KUKA|prc plane.
Best,
Johannes
#14
Support / Re: Roboteam example
January 25, 2024, 03:05:26 PM
Hello Alex,

It's still weird why that would cause an error message, but I'm happy that it got resolved!

Regarding the PTP, it just avoids a lot of problems, because you cannot set the posture of the robot via a LIN movement. So in the settings via the Initial Posture that needs to be actively set. You can avoid it by manually setting a PTP position. But going from the start position to the first position in a straight line usually leads to problems with singularities etc.

Best,
Johannes
#15
Support / Re: Roboteam example
January 25, 2024, 09:32:40 AM
Hello Alex,

For one robot, you have the "Hardcode Tool and Base" option (in Advance/Code) enabled, could you try disabling it?

Thanks,
Johannes