Kinematics for XYZAB mill
03 Dec 2022 12:26 #258418
by rodw
Replied by rodw on topic Kinematics for XYZAB mill
I updated the video in the previous thread.
forum.linuxcnc.org/10-advanced-configura...mill?start=40#258402
Sorry I sounded a bit short before. It was more surprise that i had things working.
Yes I will look at another sim re axis behaviour
I looked at our config but could not see anything out of place..
forum.linuxcnc.org/10-advanced-configura...mill?start=40#258402
Sorry I sounded a bit short before. It was more surprise that i had things working.
Yes I will look at another sim re axis behaviour
I looked at our config but could not see anything out of place..
Please Log in or Create an account to join the conversation.
03 Dec 2022 12:35 - 03 Dec 2022 12:46 #258420
by Aciera
Replied by Aciera on topic Kinematics for XYZAB mill
Which also makes me think that it might be a good idea to ask the owners of the machine for a couple gcode files to run on the simulation.
[Edit]
No problem, it's certainly a valid question. I have never worked on a 5 axis machine but I gather that it is only as good as the CAM behind it.
Thanks for the video
[Edit]
No problem, it's certainly a valid question. I have never worked on a 5 axis machine but I gather that it is only as good as the CAM behind it.
Thanks for the video
Last edit: 03 Dec 2022 12:46 by Aciera.
The following user(s) said Thank You: rodw
Please Log in or Create an account to join the conversation.
03 Dec 2022 15:10 - 03 Dec 2022 15:44 #258432
by Aciera
Replied by Aciera on topic Kinematics for XYZAB mill
Just cleaned up the sim folder a bit and changed the name to 'xyzab-drt'. DRT as Double Rotary Table.
Tool length is not included in the kinematics yet.
[edit]
To install the kinematic comp:
$ halcompile --install halcompile --install <yourpathhere>/xyzab_drt.comp
I also whipped up a vismach model called 'xyzab-drt-gui.py' which you might need to set as executable.
[edit2]
Here is the revised write up on the math behind xyzab_drt.comp:
Tool length is not included in the kinematics yet.
[edit]
To install the kinematic comp:
$ halcompile --install halcompile --install <yourpathhere>/xyzab_drt.comp
I also whipped up a vismach model called 'xyzab-drt-gui.py' which you might need to set as executable.
[edit2]
Here is the revised write up on the math behind xyzab_drt.comp:
Attachments:
Last edit: 03 Dec 2022 15:44 by Aciera.
The following user(s) said Thank You: rodw
Please Log in or Create an account to join the conversation.
03 Dec 2022 16:27 - 03 Dec 2022 16:31 #258437
by Aciera
Replied by Aciera on topic Kinematics for XYZAB mill
Just a few things to keep in mind with custom kinematics:
The motion planner of LinuxCNC is totally ignorant of any custom kinematics so it will happily assume that XYZ moves take place in a static (ie unrotated) coordinate system and apply the axis limits as defined in the hal file. With our custom kinematics we rotate the coordinate system freely inside the bounding box of where the machine can physically move (ie the joint limits) the lengths of the axes of that coordinate system get extended to and clipped by those physical limits and thus change with the rotation.
This means that when loading a Gcode file axis limit violations cannot be properly checked and axis limit settings might have to be increased in the ini file to avoid false limit errors.
Note that it is possible to automatically adjust the axis limit settings in the ini file when switching between different kinematics (ie M428 or M429).
See the 'millturn' simulation config /home/user/linuxcnc-dev/configs/sim/axis/vismach/millturn and specifically the 'mcodes' there.
Also note that the lookahead cannot 'see' beyond' a kinematic switch in a GCode file (ie M428 or M429)
I guess what I'm trying to say is that limit violations should be checked for in the CAM as LinuxCNC cannot be relied upon doing it correctly when loading a file that is to be run with custom kinematics.
The motion planner of LinuxCNC is totally ignorant of any custom kinematics so it will happily assume that XYZ moves take place in a static (ie unrotated) coordinate system and apply the axis limits as defined in the hal file. With our custom kinematics we rotate the coordinate system freely inside the bounding box of where the machine can physically move (ie the joint limits) the lengths of the axes of that coordinate system get extended to and clipped by those physical limits and thus change with the rotation.
This means that when loading a Gcode file axis limit violations cannot be properly checked and axis limit settings might have to be increased in the ini file to avoid false limit errors.
Note that it is possible to automatically adjust the axis limit settings in the ini file when switching between different kinematics (ie M428 or M429).
See the 'millturn' simulation config /home/user/linuxcnc-dev/configs/sim/axis/vismach/millturn and specifically the 'mcodes' there.
Also note that the lookahead cannot 'see' beyond' a kinematic switch in a GCode file (ie M428 or M429)
I guess what I'm trying to say is that limit violations should be checked for in the CAM as LinuxCNC cannot be relied upon doing it correctly when loading a file that is to be run with custom kinematics.
Last edit: 03 Dec 2022 16:31 by Aciera. Reason: finally got to the gist of it all.
Please Log in or Create an account to join the conversation.
04 Dec 2022 01:15 #258468
by rodw
Replied by rodw on topic Kinematics for XYZAB mill
Thanks again, I had looked at the millturn sim the other day but I had another good look at the kinematics .comp again today.
I can't help thinking that the machine design would lend itself to a XYZBC-ldtl kinematics mode being a lathe/tilting table (XYZBC-dtll does roll off the tongue so easilly ). The Z axis becomes the X axis and the B axis will still rotate the new X axis (repurposed Z).
From what I can see, it would be relatively simple to add an additional turn switchkins_type for turn mode and extend the case statement.
In turn mode, we would need to add some additional offsets to keep the cutting tool on the work piece as the B rotates. The kinematics translations seem like we coiuld calculate them using simple trig.
I'd love to hear others thoughts.
I can't help thinking that the machine design would lend itself to a XYZBC-ldtl kinematics mode being a lathe/tilting table (XYZBC-dtll does roll off the tongue so easilly ). The Z axis becomes the X axis and the B axis will still rotate the new X axis (repurposed Z).
From what I can see, it would be relatively simple to add an additional turn switchkins_type for turn mode and extend the case statement.
In turn mode, we would need to add some additional offsets to keep the cutting tool on the work piece as the B rotates. The kinematics translations seem like we coiuld calculate them using simple trig.
I'd love to hear others thoughts.
Please Log in or Create an account to join the conversation.
04 Dec 2022 06:52 #258480
by JPL
Replied by JPL on topic Kinematics for XYZAB mill
humm... This would be like a lathe with a live tool that can be oriented at different angles ... interesting... Is there such a thing that already exist?
Please Log in or Create an account to join the conversation.
04 Dec 2022 07:01 - 04 Dec 2022 07:13 #258481
by JPL
Replied by JPL on topic Kinematics for XYZAB mill
... but then the current Y axis of the machine (left-right) would be 'somehow' the Z axis for a lathe BUT at an angle determined by the current A axis of the machine. This thing can get real complicated very fast I think.
(and what about the current X axis that would now be a Y axis as a lathe ???????????)
(and what about the current X axis that would now be a Y axis as a lathe ???????????)
Last edit: 04 Dec 2022 07:13 by JPL. Reason: adde X -> Y axis
Please Log in or Create an account to join the conversation.
04 Dec 2022 07:12 #258482
by rodw
we just need to add the offsets b & c to the Z abd Y positions If my maths is right!
we'd need a pin to set the distance from the chuck to the pivot point of the B axis.
Replied by rodw on topic Kinematics for XYZAB mill
... but then the current Y axis of the machine (left-right) would be 'somehow' the Z axis for a lathe BUT at an angle determined by the current A axis of the machine. This thing can get real complicated very fast I think.No I don't think its super hard. We are already using custom kinematics so the additional mode would be based on something like the attached:
we just need to add the offsets b & c to the Z abd Y positions If my maths is right!
we'd need a pin to set the distance from the chuck to the pivot point of the B axis.
Attachments:
Please Log in or Create an account to join the conversation.
04 Dec 2022 07:14 #258483
by rodw
Replied by rodw on topic Kinematics for XYZAB mill
I forgot to mention that the millturn example shows how to swap joints around and change axis length etc.
Please Log in or Create an account to join the conversation.
04 Dec 2022 07:19 - 04 Dec 2022 07:27 #258484
by JPL
Replied by JPL on topic Kinematics for XYZAB mill
Yes, I'm pretty sure that you can indeed solve the Z axis at an angle but then I'm still very much lost about what to do with the X axis becoming a Y axis since I've never seen a lathe where you can control the 'height' of the tool.
Oh, milturn, I'm not very familiar with that (lathe guy here) but yes, that maybe the solution
Oh, milturn, I'm not very familiar with that (lathe guy here) but yes, that maybe the solution
Last edit: 04 Dec 2022 07:27 by JPL. Reason: milturn
Please Log in or Create an account to join the conversation.
Time to create page: 0.374 seconds