Workpiece Positioner Grasp Action


For some days I have been struggling with making a workpiece positioner grasp details.

Here is a pciture of the layout I have in KUKA SIM PRO.

Small explanation about what I am trying to achieve:

The red blocks with the orange blocks on top are representing linear units/rails. I modelled them similar to the robot linear unit with a servo controller and an abstract (not physical) one-to-one interface. Off course, I have a translational link between the orange and the red block.

The metal parts on the orange blocks are parts from a chasis.

For now I placed the chasis parts on the orange block by using the Attach tool and the robot is able to grasp them when they reach the end of the corresponding red block.

For the workpiece positioner I modelled a small frame that should hold the details. The frame is attached to the worpiece positioner successfully utilizing an interface.

I would like the big robot on the linear unit to place the chasis parts on the frame and they should be rotated by the worpiece positioner. When I try to release the chasis parts now, they just fall and disappear.

I want to point out that when I have the chasis whole assembly (please see the picture below) placed on the frame, utilizing the Attach tool, the robot releases the metal part and it gets somehow attach to the workpiece positioner. It does not fall or disappear. The metal part can also be rotated with the workpiece positioner.

Could give me a hint how to approach this problem?

I tried to use the GraspActionWizard but I did not manage to make the frame grasp the chasis parts.

Best Regards

Hi @KonstantinKolev
Click on your handling robot. Then on ‘Component Properties’ Panel go to ‘SignalActions’ Tab
then modify your properties as seen below. Then everything will be fine.

Hi @ozan

I checked the settings on the handling robot (the one that brings the chasis parts to the workpiece postioner) and I have pretty much the same settings, see the picture attached.

According to me, there should be a way to achieve grasping parts with the workpiece positioner since this a quite common set up in the industry.

Best Regards
Konstantin Kolev

There must be something else missing. Because when you release a part from robot, it detects the positioner under it and then part attaches itself to the positioner. I thought you were releasing part to pysics but looks like its not the case.


The part a model that I imported, could this be the reason for not detecting the workpiece positioner?
I also have a part attached to the node of the rotating plate on the workpiece positioner but I hid it. As I described in my first post, when the part is not hidden the positioner grasps the part from the robot.

Yesterday I tried with the GraspActionWizard again. I got some progress as it grasped a part but not the one I needed. I defined a very large detection volume for the GraspActionWizard. But when I was approaching the position on the workpiece positioner with the big robot, KUKA SIM PRO gives me a warning “Unreachable Position P8”. I can only press OK and then the part that the robot released just disappeared and did not return to the initial position when resetting the simulation.

I am completely sure that P8 is reachable since the robot executes everything fine without bringing the part.

Best Regards
Konstantin Kolev

I also have issues with grasping/releasing. The question is, how is it calculated internally? Is the volume looking for a surface or an origin?

Also, how does the volume look like? Is it a cuboid with volume in world coordinates?

Is it also looking for invisible objects?

Found this in the help documentation:

You can look at the default implementation of all robot signal actions in the file:
C:\Program Files\Visual Components\Visual Components Premium 4.3\Python\Commands\ActionScript\

For the release action logic search for this function
def Release( output, detection_tolerance ):

Thanks! This sheds some light into the topic.

I found dist = cont.getContainerProximity( pos )

Where do I find the definition of that function?

Note how its a vcContainer object, so look at the vcContainer topic in the Python API reference.

1 Like

So, I can only assume. Orthogonal distance from what to what? I would assume from TCP (or maybe origin of part) to surface. This means you have to make sure that the TCP is located, where you want to release and there is a surface in gravity direction.