How to change tandem (dual) homeing behavior?

More
06 Jan 2021 19:27 #194266 by bbg
Hi there!

I'm building a gantry style milling machine with two motors for the y-axis and 2 home sensors (y left, y2 right). I've configured tandem homing using HOME_SEQUENCE = -1 for both y and y2. The tandem homing is working as I was expecting from the documentation. However, I don't like the behavior (will explain why below) and would like to change it. Hopefully some more experienced people can me some pointers of how I can do that.

OK, what is the behavior I'm seeing (and expecting from the documentation)? When staring the dual homing both y and y2 start simultaneous moving looking for the trigger of their home switches. After both y and y2 find the trigger points of their home switched they move together to the home position. Seems logic behavior right?

However, what happens when one of the home sensors has a rather large offset from the other? Say home sensor y is at 540mm (machine coordinates) and home sensor y2 is at 545mm. Now when dual homing is started, y is moving to 540mm and y2 is moving to 545mm. So a 5 mm difference between y and y2. As the gantry on my machine is rather stiff these 5mm would lead to unacceptable high forces and moments. Hmmmm....

The behavior I would like to see when starting dual homing is:
1. y and y2 start moving together looking for the trigger of the home sensor of y
2. On the trigger of home sensor y the position of the sensor is used to set y (in machine coordinates)
3. y and y2 start moving together looking for the trigger of the second home sensor y2
4. On the trigger of home sensor y2 the required delta between y and y2 is computed from the known positions of the home sensors. The delta is then applied to y2 only to square the gantry.
5. after squaring y and y2 move together to the home position.

Can this behavior be configured or implemented in another way? Anybody some pointers / ideas.

Thanks in advance!

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

More
06 Jan 2021 20:17 #194278 by tommylight
Read this twice, can not figure out why would you want that behaviour, not important.
Important:
Set the Home_search_velocity and Home_latch_velocity to a small value, like really slow and home the machine so you can follow the homing sequence, as a user of several gantry machines i can confirm it works perfectly as is.
Implementing a different homing sequence in LinuxCNC is most probably possible, but might not be easy as i think it would require some code editing and compiling, so i'll leave that to someone with more experience.
The following user(s) said Thank You: Joeymcc

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

More
06 Jan 2021 21:08 #194284 by bbg
I did observer the behavior with different velocities and are testing without the gantry to simulate non squareness of the gantry. And the behavior I see is what you would expect from the documentation and will work in most cases.

I made some pictures in a try to better explain why I would like to change the behavior. I left out some of the details of the movements with the home_search_velocity and home_latch_velocity as it is irrelevant for the point I'm trying to make.

Assume that the home sensor are at different positions as shown in the picture. Then when starting the homing both carriages start moving towards the home sensors as shown in the picture below.



When the left carriage (y) sees the home sensor (and yes, it will back off and go forward again) it will stop there. However, the right side (y2) didn't see the sensor yet (as the sensor is further away) and keeps on moving.



Now the right carriage (y2) sees the home sensor (and yes, will also back off and go forward again to latch) and will stop there. Not the gantry is skewed (is this the right word?). When the gantry is rather rigidly connected you can get quite high forces to deform the gantry/carriages.This is the situation I want to try to avoid.



Now both sides have seen (and latched) their home sensors and start moving simultaneous towards the home position.




Rewriting/recompiling doesn't sound attractive :-)

But maybe there's another way. Like using one home sensor to home both sides. And then probe the other home sensor or so. I don't know but was hoping somebody already thought about this.
Attachments:

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

More
06 Jan 2021 21:17 #194285 by Clive S
Yes. But the 2 targets should be at the same location on each side to begin with.

The the idea is to then square the gantry with the home offset by a small amount.

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

More
06 Jan 2021 21:32 - 06 Jan 2021 22:42 #194290 by Clive S
Last edit: 06 Jan 2021 22:42 by Clive S.

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

More
06 Jan 2021 21:32 #194291 by bbg

Yes. But the 2 targets should be at the same location on each side to begin with.
.


Yes, but in practice the 2 targets will never be exactly at the same location on both sides. If the deviation between the targets is acceptable depends on the compliance/sitffness of the gantry.

By changing the homing sequence a little bit the deviation becomes irrelevant.

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

More
06 Jan 2021 21:33 #194292 by Clive S

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

More
06 Jan 2021 22:05 #194298 by bbg
For clarification, this is the homing sequence I had in mind:






Attachments:

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

More
07 Jan 2021 00:38 #194314 by cmorley
your sequence makes perfect sense if you can't set the home switches close enough.

You would need to write c code to change linuxcnc's homing process.

Most people would work hard to find away to adjust the home switches position and use the standard homing sequence.

Chris

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

Time to create page: 0.183 seconds
Powered by Kunena Forum