to work out mu frustration with the githum ai, I instead engaged with the grok ai (I know, glutton for punishment)
I had an interesting set of discussions (and was very amused when it showed as resources it was investigating, my posts on the forums here, including this thread)
It has suggested that the g-n algorithm I had it impelemtn and made an option was one to try, I asked this time what other ones to try, and if it’s possible to solve for the Z offsets as well (with a few more points measured, probably by making each move do two things, move in XY and take a measurement at Z=0 and then another measurement at Z=55 (or whatever our max safe height ends up as) the notes on each algorithm include comments about the impact that figuring out the Z offsets will have.
it estimates that it can get 0.1mm accuracy in 50-70 measurements (and that was with me saying that the best we could hope for was measuring belt and Z at 0.05mm when a single step with each is just over 0.01 mm. There are also comments in each algorithm of the number of points to measure and the spacing needed (additional points at less spacing do not add much value)
it came back and suggested 4 possibilities
The first is an improved version of what I implemented as an option
The fourth looks like approximately what Bar implemented in the stock UI (complete with warnings about it’s performance)
but the other two have very interesting capabilities
The second one is called Alternating Least Squares, and it has the very interesting feature that it’s incremental, you set a bootstrap, and then you can add points and do calculations one at a time. It means that it can be calculating the results of one point while we are moving to measure the next point. Each point improving our estimate
The third one can do that as well, but in addition, once it’s bootstraped, it can give directions on what point it wants to measure next, so instead of pre-defining a full grid and having to sample every point, the algorithm knows what areas it needs to get a measurement in to get more accuracy
These algorithms were designed by teams working on cable driven robots, and can accommodate systemic errors like belt stretch.
I am just going to dump a bunch of files here for people to read (and laugh at my fumbling) and use as starting points for further research.
grok-algorithms-GP.txt (7.1 KB)
grok-algorithms-ALS.txt (13.6 KB)
grok-algorithms.txt (7.0 KB)
grok-problem-restatement.txt (2.1 KB)
grok-density-last-1.txt (7.3 KB)
grok-density-last.txt (5.4 KB)
maslow_frame_prompt (5.3 KB)
grok-discussion.txt (59.2 KB)
None of this work is suitable for 1.13. We need to clean up and test what’s already written (we are nearing 100 commits since 1.12 with several pretty major features being added) but this points us at very interesting work and improvements in the near future.