Adjusting approach angle of Kuka Tool to specified point

Started by tjroy, March 03, 2025, 05:01:53 PM

Previous topic - Next topic

tjroy

We've got a toolpath set up that mimics the demo program Johannes posted here, which by and large has been working for us. However, I'm running into an issue wherein there doesn't seem to be a way to define the coordinate frame of the tool at the specified point. I've attached a screenshot below of what I mean, but as far as I can tell the program chooses the XYZ vectors of each point automatically, which is causing collisions that shouldn't need to happen. The point components do not have coordinate frames in Grasshopper at least, only XYZ locations, so I'm unclear what I'd need to change. Appreciate any advice!

Johannes @ Robots in Architecture

Hello,

What do you mean by "do not have coordinate frames in Grasshopper"? Because in your screenshot you can see the small coordinate systems. Generally there is no way in KUKA|prc to ONLY provide XYZ values. However, Grasshopper itself takes some liberties, so when you take a point with XYZ values and put it into a plane component (or an input expecting a plan geometry) then it turns that into a coordinate system with its origin at that point, and X facing in global X and Y facing in global Y.

Also, in that example we are using a milling spindle where we gain the rotation around the tool axis as a degree of freedom to optimize reachability (see the Orient Plane component). That is only useful if you have a symmetrical tool, otherwise that would also introduce weird behaviour.

Best,
Johannes

tjroy

Thanks for the response! I guess I meant more of "I can't find a way to specify what the coordinate frame should be at each point", mostly due to the point components only having XYZ location data. If there's a different method to use, rather than the drilling one, I'm all ears! Other than this slight hiccup, the drilling method has been working fairly well.

The existing point coordinate frames do match the Z axis of the normal vector they're related to, but I would think there should be a way to rotate the XY vectors about the Z axis, which is the best descriptor of what I'm trying to do.

Johannes @ Robots in Architecture

Ah, now I get it. In the example, the angle is taken from the normal vector of the closest face on the mesh.
Basically a Cartesian movement is defined via a coordinate system, in Grasshopper referred to as a "Plane". In the Vector tab, there are multiple ways of defining a plane, such as via an origin point and two vectors (X, Y) or via an origin and a normal vector. Or you choose the "preset" orientations, like Plane XY, YZ, XZ.

Best,
Johannes

tjroy