TCP 5-axis kinematics
There is an argument that there should be secondary axis-space limits too.
Please Log in or Create an account to join the conversation.
- plopes9000
- Offline
- Premium Member
- Posts: 87
- Thank you received: 18
How does Linuxcnc handle softends with TCPC? does it automatically stop when the physical axis hits the softend or does it just go through? (until it hits the endstop)
The overall behavior I have observed is that the soft limits are respected without issues. I have had a couple of cases where I jogged the A axis too fast leading to the soft limits being breached resulting in the message "Stop, fix joints axis LIMITS, then Restart".
I believe I had the speed set to 333 mm/s and acceleration to 1000 mm/s2 on all axis, things can happen pretty fast with xyzac tcp kinematics.
I do not recall having this issue outside of fast manual jogging with a too high of a step size.
Please Log in or Create an account to join the conversation.
Finally, see attached test gcode file and video.
I thought that your video was very instructive about what TCP is, and the Linuxcnc home page needed a new Showcase.
So your video is now on the front page of LinuxCNC
Please Log in or Create an account to join the conversation.
- plopes9000
- Offline
- Premium Member
- Posts: 87
- Thank you received: 18
Please Log in or Create an account to join the conversation.
please keep me updated on the success of this code making it in?
commit to the master branch today:
github.com/LinuxCNC/linuxcnc/commit/5ea5...6e3759f85bb4037869f7
Would be good if you try the master branch and report
Please Log in or Create an account to join the conversation.
Please Log in or Create an account to join the conversation.
- plopes9000
- Offline
- Premium Member
- Posts: 87
- Thank you received: 18
@plopes9000
please keep me updated on the success of this code making it in?
commit to the master branch today:
github.com/LinuxCNC/linuxcnc/commit/5ea5...6e3759f85bb4037869f7
Would be good if you try the master branch and report
So sorry dgarret, had not seen your message ... I’m on vacation but will be back home this coming weekend and can then test and report.
Please Log in or Create an account to join the conversation.
- plopes9000
- Offline
- Premium Member
- Posts: 87
- Thank you received: 18
@plopes9000
please keep me updated on the success of this code making it in?
So sorry dgarret, had not seen your message ... I’m on vacation but will be back home this coming weekend and can then test and report.
@dgarrett, I built and tested the commit to the master branch github.com/LinuxCNC/linuxcnc/commit/5ea5...6e3759f85bb4037869f7, and can now report it as successful - thank you !
Please Log in or Create an account to join the conversation.
- plopes9000
- Offline
- Premium Member
- Posts: 87
- Thank you received: 18
Just before I went on vacation and since I arrived back, I have been working on a complete workflow for 5 axis.
With TCP but without an easy to use 3+2 setup its still a pain to rough out before the TCP operation.
Enter Dynamic Work Offsets - see Haas DWO G254 - link .
I came across a 4 axis macro ( link ) by "thesidetalker" and based on that design implemented a 5 axis version - see attached files (dwo_on/off) remapped as below:
<....>.ini
[RS274NGC]
...
REMAP=G55.4 modalgroup=1 ngc=dwo_on
REMAP=G55.5 modalgroup=1 ngc=dwo_off
By moving the 5 axis params from the hal file to the ini file, I only have to maintain these values in one location, serving both the xyzac-trt-kins module and the dwo_on/off gcode files.
<...>.ini
[XYZAC_KINS]
Y-OFFSET = -0.15
Z-OFFSET = -27.59
X-ROT-POINT = 407.565
Y-ROT-POINT = 154.229
Z-ROT-POINT = -225.9
<...>.hal
net :tool-offset motion.tooloffset.z xyzac-trt-kins.tool-offset
setp xyzac-trt-kins.y-offset [XYZAC_KINS]Y-OFFSET
setp xyzac-trt-kins.z-offset [XYZAC_KINS]Z-OFFSET
setp xyzac-trt-kins.x-rot-point [XYZAC_KINS]X-ROT-POINT
setp xyzac-trt-kins.y-rot-point [XYZAC_KINS]Y-ROT-POINT
setp xyzac-trt-kins.z-rot-point [XYZAC_KINS]Z-ROT-POINT
Hence a fairly clean setup.
On a side note, I had to update the component axiszeropulserotposition to ignore small changes of direction in the count, i.e. more robust check using what I called a deadband property. I have updated my post on page 13.
I renew my offer to make all this (implemented this way or in better ways) part of the dev branch ... just need a dev sponsor
Totally forgot to talk about the Fusion360 post processor which had to see major redesign - see attachment.
Please Log in or Create an account to join the conversation.
TCP switching after pre-rotation seems to work well.
I have posted rotate macro in this thread earlier.
Look it as well.
Problem in my rotate macro is that it only translates active zeropoint to correct location.
If you have multiple zeropoints around part, other than active one will shifted wrongly.
Please Log in or Create an account to join the conversation.