X & Y Accuracy Analysis

justusrijke@gmail.com wrote:

  1. Belt stretch & sag. Maslow’s model treats the belts as perfectly stiff, but
    IRL they’re springs. On a vertical rig gravity exaggerates the mismatch: TL/TR
    belts have to fight sag, BL/BR get a free assist. Net result is a “bow-tie”
    pull toward center. Should be doable to compensate for this in the software
    (needs a spring constant variable).

perfectly stiff (no stretch) and 0 weight (no sag)

  1. Result of Maslow’s calibration routine is the width/height of the frame, but it hides the fact that all frames are slightly trapezoidal/skewed. @kyleschoen, if you could share anchor-to-anchor distances (all 6, including diagonals), that could help diagnose this. Software could compensate using 5 of these measurements, bypassing the current calibration routine.

no, the result of calibration is the coordinates of the 4 anchors, one at 0,0
one at 0,y1, one at x2,y2 and one at x3,y3

  1. Frame flex. Not something that software can compensate easily (I think it’ll become complicated & hard to grasp the effects).

If we can know the belt elongation factor, we can test the frame under different
tensions and figure the difference from what the belts account for is due to the
frame flex

  1. Direction-dependent error. The left-to-right vs right-to-left discrepancy
    feels like a belt-stretch artefact. Possible to correct in code, but
    complexity ramps fast (depends on friction, bit size etc), so I’d leave it
    until 1-3 are nailed.

My proposal would be to tackle the list in order, leaving #4 for dessert.
Instead of hacking firmware every round, maybe there exists some “g-code
deformer” tool that pre-warps toolpaths to cancel the bow-tie and compensates
for skew? It’ll be easier to iterate, and we could use the results as
inspiration for a future firmware update.

we need to get a better model of the error before we can program in correction
(either in the firmware or in an external tool)

David Lang

Didn’t do the math but - assuming the deformation is symmetrical (all belts having a nearly identical stretch), taking the belt elongation factor + belt angles should be enough to model the bow tie effect, right? At least for a horizontal setup. But I don’t know how much of a problem this really is. It seems to be pretty visible in the top y deviations in the table.

Ah ok, nice! @kyleschoen I think you said that you entered the frame measurements manually (not using the calibration tool), did you take skew into account?

Do you think measuring belt force is going to be repeatable enough (motor variance, ADC drift, temp, dust, spool lenght, arm friction, …)?

justusrijke@gmail.com wrote:

Didn’t do the math but - assuming the deformation is symmetrical (all belts
having a nearly identical stretch)

This will not be the case, the forces will balance out, but each belt will have
different force (depending on the angle) and different stretch (depending on the
force and length)

Ah ok, nice! @kyleschoen I think you said that you entered the frame measurements manually (not using the calibration tool), did you take skew into account?

we have several calculators/spreadsheets that take the 6 measurements between
anchors and calculates the positions)

Do you think measuring belt force is going to be repeatable enough (motor variance, ADC drift, temp, dust, spool lenght, arm friction, …)?

I don’t think we cam measure the force with the current hardware, but I think we
can make a good stab at calculating it.

David Lang

That’s what I meant with “the math” - calculating stretch by means of angle/elongation factor/gravity, I think we’re on the same page.

:+1: question remains if Kyle used that. I don’t mean to pry, just curious.

Yes, I put the dimensions and diagonal measurements into CAD to get the skew. My frame is surprisingly square the calibration numbers were fairly far off from the manual measurements.

I’m out of town this weekend, but will pick the project back up when I’m home. I was going to try loading a belt and measuring the stretch, but that will need some setup.

2 Likes

@kyleschoen Maybe the calibration routine does inadvertently (by detecting somewhat off anchor positions) compensate for belt stretch. Did you have similar X position deviations before (i.e., when using automatic calibration instead of manual measurements)?

Previously I didn’t test it as throughly as I have in this post, but it was pretty consistently -6mm off at 1200 from the origin on the X axis with the machine calibration settings. I tried entering in the manual measurements since @hendrik 's research in his post seemed to show that was more accurate.

If the drive motor was turning the spool directly, this would make sense to me; because the drive motor is driving a fixed-diameter cog, there must be other factors at play. Can you explain how the amount of belt on the spool affects force/current?

Im leaning towards something like this. After calibrating with the calibration force up high, the anchor positions were off, some by up to 20mm from my manual measurement but my machine has been performing well. I wonder if having the calibration force up high compensates for belt stretch by pulling them very tight. Would be curious for someone to try this on a vertical setup

1 Like

David Negaard wrote:

If the drive motor was turning the spool directly, this would make sense to
me; because the drive motor is driving a fixed-diameter cog, there must be
other factors at play. Can you explain how the amount of belt on the spool
affects force/current?

when the belt wraps more than once around the spool, the 2nd layer is the
thickness of the belt further out from the center. when winding up the full
spool, this is over an inch of change between the beginning and end.

David Lang

1 Like

Seems to me like belt stretch is a product of force and higher force would only make the problem worse, unless there’s a different amount of force while running than with calibration.

Stretching is going to elongate the belts so if it stretches 1%, and the machine pulls 1000mm of belt in, that means it’s going to be 10mm short of what it thinks it’s done. This could be why the machine is always behind where it’s suppose to be since the direction of movement is where the most force is being applied and causing stretch.

Again, belt stretch seems like a pretty simple thing to measure, not sure why it hasn’t been done yet (right?) considering all the talk about it. Hopefully this week I’ll be able to mount a belt to something very rigid, put a load on it, and measure the stretch.

Recall Will did try and measure stretch in this post

Dano

1 Like

Thanks for the reminder, I do remember that now but was interested in his design mostly :stuck_out_tongue:

Seems like it would be worthwhile to run some more experiments on this.

Agreed. Im interested to see what you come up with.

Dano

Interested as well… I’m in my travel season now shold be back in the studio in July

Laying at down flat made the biggest difference for me, which seems like a pretty good indiator that gravity is in play with the vertical accucracy issues…

3 Likes

I’m about to publish 1.05 and I added two scale factors which can be used to compensate for distortion in the calibration.

They’re not a perfect solution, but they could be worth playing around with in the short term

The input shape is just stretched by the scale factor in X and Y.

2 Likes

Very cool! Seems almost like playing with the esteps on a 3D printer?

1 Like

It should be exactly the same.

Ideally I want to find the true source of the error, but this should help compensate for it until we do

Yeah this could definitely help. The issue seems more logarithmic than linear, but it’s definitely a start.

BTW I bought 4 “Crane” scales and am doing some load testing right now and belt stretch testing soon.

5 Likes