G43.1 does not bring expected results for my robot - expectation wrong?

More
14 Nov 2016 15:39 #82789 by robottom
I'm not an expert in G Codes and using a 6axis PUMA robot with LinuxCNC. After some issues it works pretty well so far.
When I now mounting a tool (just a little stick) to the Tool Center Point (TCP) of the robot I need to adjust the tool length offset. The tool endpoint is no longer within the the TCP but has an offset of a few mm. For this I want to make use of the G43.1: Dynamic Tool Length Offset (Example G43.1 Z40). When I enter this as MDI command in AXIS this basically is displayed in the paratmer values screen (easy to test with the PUMA 560 vismach simualtion that comes with the standard delivery of LinuxCNC).
But when I now control the hand orientation joints 4,5,6 (the angles of the TCP vector) my assumption is that the hand is no longer rotating around a point that is centered in the TCP but 40mm away. More concrete: I would expect that the hand is now doing a half-circle with a 40mm radius when go from -90 to +90 deg hand angle around the Z-axis (C-parameter: G1 C-90 F..., G1 C90 F...). But the robot behaves exactly the same as before without the G43.1 Z40 - the TCP is in the center of the circulation.
I would understand that the G43.1 X.. Y.. Z.. brings an easy offset to a normal move G1 X.. Y.. Z.. especially on a kartesian machine with a trivial kinematics but on a 6 axis robot with hand orientation X,Y,Z,A,B,C this should behave differently.
Is my expectation wrong with the tool length offset or is there something not working as intended? Would be nice if you experts can give me your thoughts.

Many thanks, Thomas

Please Log in or Create an account to join the conversation.

More
15 Nov 2016 18:20 #82842 by andypugh
I experimented and (if you are using Genserkins) you can do this by altering the genserkins.D-5 pin.

To experiment, try opening a terminal window:

halcmd -kf
setp genserkins.D-5 50
...

The genserkins pins are of the IO type. Which makes things a little awkward. It means that the obvious:
net tool-length genserkins.D-5 <= motion.tooloffset.z
won't work.
You need to use linuxcnc.org/docs/2.7/html/man/man9/tristate_float.9.html to change the pin type from float-out to float-io

Please Log in or Create an account to join the conversation.

More
15 Nov 2016 20:11 #82844 by robottom
Hi Andy,

thanks for the reply. Yes I'm using genserkins and the solution with the D5 is obvious and works - I already checked this out. This was anyhow my fallback.
But I want to prevent changing the .hal configuration for every tool-change. But what you are writing with the tristate-float is new to me and sounds very interesting. I will check it out.
Many thanks,
Thomas

Please Log in or Create an account to join the conversation.

More
17 Nov 2016 13:05 #82893 by andypugh
Did it work? You might find that you get a following error when changing tool-length.

Please Log in or Create an account to join the conversation.

Time to create page: 0.320 seconds
Powered by Kunena Forum