- GCode and Part Programs
- G&M Codes
- G43.1 does not bring expected results for my robot - expectation wrong?
G43.1 does not bring expected results for my robot - expectation wrong?
- robottom
- Offline
- Senior Member
-
Less
More
- Posts: 61
- Thank you received: 4
14 Nov 2016 15:39 #82789
by robottom
G43.1 does not bring expected results for my robot - expectation wrong? was created 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
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.
- andypugh
-
- Away
- Moderator
-
Less
More
- Posts: 23315
- Thank you received: 4944
15 Nov 2016 18:20 #82842
by andypugh
Replied by andypugh on topic G43.1 does not bring expected results for my robot - expectation wrong?
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
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.
- robottom
- Offline
- Senior Member
-
Less
More
- Posts: 61
- Thank you received: 4
15 Nov 2016 20:11 #82844
by robottom
Replied by robottom on topic G43.1 does not bring expected results for my robot - expectation wrong?
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
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.
- andypugh
-
- Away
- Moderator
-
Less
More
- Posts: 23315
- Thank you received: 4944
17 Nov 2016 13:05 #82893
by andypugh
Replied by andypugh on topic G43.1 does not bring expected results for my robot - expectation wrong?
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.
- GCode and Part Programs
- G&M Codes
- G43.1 does not bring expected results for my robot - expectation wrong?
Time to create page: 0.064 seconds