Dual Y servos on a 5 axis gantry router
What is the best way to configure the Y axis?
Gantrykins?
I need active position control on both, I believe, even though they'll always be going to the same Y location
I'll likely be running the ubc3-7i80 branch.
Photos:
www.dropbox.com/sh/h8zfs0y3gb1u2ks/kVKFndHE3W
Please Log in or Create an account to join the conversation.
but you should probably wait until someone with a servo
driven gantry weighs in, especially someone who has solved
the somewhat tricky homing issues.
I would strongly suggest _not_ starting a large
retrofit project with the Mesa Ethernet interface cards
yet as your task is difficult enough without adding more
unknowns.
Please Log in or Create an account to join the conversation.
What would be a practical length limit for the 50 pin cables?
Thanks!
Please Log in or Create an account to join the conversation.
What is the proper way to handle this today?
joints_axes6 branch?
If so - do I just pull that branch, compile it, and run it on a stock 2.6.3 install from live-cd ?
Thanks!
Please Log in or Create an account to join the conversation.
Using gantrykins or JA4 would have been my preference. I even modified the homing code to synchronise the two Y joints movement during homing.
But in the end I got tired of all the little issues with a 4-axis configuration in LinuxCNC. It is possible to jog the joints independently (very, very dangerously), 'world' vs 'teleop' mode, somehow not being able to jog in steps, etcetera. So I decided to use a regular 3-axis trivial kinematics configuration and deal with the 2 Y joints externally.
Basically:
- Both Y joints run independant servo loops and are not mechanically connected.
- One Y-joint is the master and receives the motor-pos-cmd directly from motion.
- The other one receives the same motor position command, but through an 'offset' component. Setting the ofset can compensate for gantry racking.
- A 'comp' component watches the positions of both and throws an error when they deviate more than a given distance (+/- 0,5mm in my situation).
I did not yet implement automatic gantry squaring since there is no real need for it yet. My gantry is very stiff so it does not rack by itself anyway unless seriously abused. I once did the squaring by hand and from then on the linear scales attached to the gantry ensure that the gantry stays square.
I intend to add that automatic squaring at some point in the future using the index pulses of the scales, but these are too short to capture in software and the regular index-enable stuff is a royal pain in the ass too if you only want to latch the position where an index pulse occurred.
When I implement it, it will be with a component or bit of HAL logic that does something like 'I know the index pulse happens at -100,73mm, the joint position is now -100,78mm according to LinuxCNC, so I'll have to apply an offset of +0,05mm'.
A recent copy of my configuration files can be found here: www.linuxcnc.org/index.php/english/forum...uling?start=10#52435
Please Log in or Create an account to join the conversation.
I am not sure that is the case now. Perhaps I ought to investigate.
An alternative that I don't know much about is a gantry HAL component by Charles:
github.com/machinekit/machinekit/blob/ma...mponents/gantry.comp
It would need to be compiled/installed with "halcompile" to be used in LinuxCNC.
Please Log in or Create an account to join the conversation.
My problem with that component is mainly this:
For best results, set HOME_SEARCH_VEL and HOME_LATCH_VEL to the same direction
and as slow as practical. When a joint home switch trips, the commanded
velocity will drop immediately from HOME_SEARCH_VEL to zero, with no limit on
accleration.
With any weight in the gantry that's a huge impulse applied to the ballscrew nut/bearings, etc.
Another thing is that the home switch locations must be equal and accurate. Since I desire <0,03mm/500mm squareness that's not really an option; mounting those switches in a stable and convenient location and telling the component where they are located exactly is far easier.
So that component is not the holy grail either and could use some improvements.
This is not complaining BTW: at least someone made something to solve the gantry problem and took the effort to put it in a repository where it is accessible for everybody. By now I have a few components that might be useful for others and all I have to do is once again figure out what the mascot name was and put them on the wiki. But I am just too lazy sometimes, so I have no rights to complain at all.
Please Log in or Create an account to join the conversation.
I have to do is once again figure out what the mascot name was
His name is "chips" the more industrial younger brother of "Tux"
(which is why the sample G-code file that carves a penguin is called "3dChips.ngc")
Please Log in or Create an account to join the conversation.
I added two components to show good will
Some others need a bit more documentation than 'blah'
Please Log in or Create an account to join the conversation.
www.linuxcnc.org/index.php/english/forum...setting-up-5axiskins
Please Log in or Create an account to join the conversation.