Does one ‘high current’ motor affect calibration?

Howdy,

I have two problems with my Maslow and I am wondering if they may be related? Looking for some advice

Issue #1

I have one motor (top right) that consistently draws more current than the other three. On the new motor current debug screen (nice work there @bar ) I can see it drawing almost double the peak current of the other motors

Sometimes this motor won’t retract all the way taking two or three presses of the ‘retract all’ button to finally retract the belt. At other times it retracts just fine.

I have increased the retraction (and calibration) forces in the config

Extending the belts works as expected.

Issue #2

I can’t get the calibration/find anchors to get the dimensions expected. The numbers generated for the frame dimensions are up to 60mm out. This is even with a fitness result consistently over 1.

After automatic calibration my X / Y dimensional accuracy when cutting (or drawing to save wasting plywood) is out by 2 or 3 %. Interestingly this is approximately the same % as the error in the calibration (60mm over 3000mm is 2%) and the errors in the X and Y dimensions seem to match between calibration and cutting

Entering in manually calculated frame values (using @dlang ’s neat calculator) gives a better result with errors closer to 1%, but they are still there

I am using firmware v1.12

So, my questions are:

  1. could the high current motor/ arm/ belt be the cause of the poor calibration / dimensional inaccuracy

  2. Is it worth trying to prove this by doing something like swapping the arms about (and adjusting z offsets to match) to see if the errors move with the arm?

  3. Should I disassemble the Maslow to ‘service’ that arm, and if so what am I looking for when I do so?

Thanks

Andrew

1 Like

It certainly seems possible that they are related, although the fact that you are consistently getting pretty solid fitness values when finding the anchor locations says that we’re getting good measurements.

Is this in horizontal or vertical orientation?

In vertical orientation that top right motor is going to have gravity making sure it always stays tight which might help with getting good fitness since we’re only using the lower two belts to pull in and take measurements in the vertical mode.

Do you consistently find the same anchor points, they’re just off?

@bar

Horizontal orientation
Concrete floor with bolt in anchors (ridgid)

I’ve run calibration 6 times over the last three days to see what happens
The results move about - see table below
I got one calibration close to my manual measurements but the others move about by up to 150mm
This is the config I am using:

and here are the results:

item Manual Measurement 23 09 1600 24 09 1000 24 09 1700 25 09 1720 25 09 1743 25 09 1815 Spread of values
Fitness n/a 1.094 1.282 1.548 1.271 1.259 1.216
Maslow_blX: 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
Maslow_blY: 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
Maslow_brX: 3716.0 3632.7 3635.7 3684.1 3722.8 3744.0 3754.3 121.6
Maslow_brY: 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
Maslow_tlX: 5.7 -9.3 3.7 5.3 5.5 7.4 7.6 16.9
Maslow_tlY: 2693.0 2790.9 2800.5 2748.1 2691.0 2663.4 2651.1 149.4
Maslow_trX: 3685.7 3611.2 3605.5 3652.6 3687.8 3714.0 3722.5 117.0
Maslow_trY: 2691.8 2795.8 2801.7 2745.1 2693.2 2656.0 2644.6 157.1

Sample yaml and log attached

Maslow-serial 25092025 1720.log (35.0 KB)

maslow 25092025 1720.yaml (6.7 KB)

1 Like

That’s a great experiment! I’ll try doing the same thing and see what I get for the change in locations

@bar

I ran some more calibrations today to see what would happen.

It is interesting to see the results plotted as graphs.
In the plots below the blue column is the manual measurements
The other colours (from red through to pale blue) are from earliest to most recent calibration

This looks like something mechanical is changing over time… possible belt stretch, possibly friction changing as parts wear in … or possibly temperature.

-Andrew

1 Like

…. and its probably not temperature, no obvious correlation

Temps in Degrees C with no data (-1 value) for manual measurement and first calibration

-A

1 Like

These is a phenomenal way to look at the data!

Over how long of a period are these taken?

Does the .yaml file get replaced between each run (like are they starting from scratch or building on the previous calibration run)?

@bar

3 day period, the dates and times are in the first row of the data table

its DD MM YYYY format (we do things differently down here, temperature in DegC, colours with a ‘u’ and days before months…..)

They are consecutive tests starting with the previous yaml each time.

I can run some more today, I’ll start them each with a fixed yaml with my manual measurements.

A

1 Like

@bar

Five more calibration runs today

Each calibration run started with the same YAML file using the same set of measured / calculated values for MaslowKinematics

The results are better - less variability - see plot below

Today I’ve calculated the values for frame dimensions from the calibration results and plotted these.
The left column (blue) is my manual measurement / calculated values, the black horizotal line shows this projected across the other 17 dimesions calculations from the Maslow calibrations.
The five columns on the right are today’s calibration runs - each starting from the manually calculated dimensions.

The error / deviation from measured dimensions has moved from over 7% to less than 1% today
Fitness today averaged 1.6

What does this all mean?

I think it means the results of a Maslow calibration are significantly dependant on the existing values in the MaslowKinematics section of the YAML file. Anyone starting with the YAML in the distribution might suffer if their frame is not the same size as was used to make the distributed YAML.

Perhaps the setup process could allow for the entry of the approximate dimensions of the frame and calculate a new set of MaslowKinematics values before it starts … but this would introduce a great potention for human error.

Tommorow I’ll do some test plots with my marker pen fitting in the maslow and see how close to square I can get with the best of these values in the MaslowKinematics.

I think I’ll try a new technique to plot a grid of points, rather than drawing boxes as I suspect the marker pen might ’drag’ a little in its fitting and introduce a couple of mm of movement. A grid of points where I retract the pen while moving and then extend the pen to draw a dot should have it centred each time it marks a grid dot.

I just need to find another clean IKEA box!

-A

1 Like

see about getting some paper tablecloths to draw on. the problem is that they
will want to move so you will need to tape them to something more solid.

I have a gcode file at http://lang.hm/maslow/test-grid.4x8.nc that draws a grid
at 4" intervals. since it does it with long lines, the pen dragging should only
be an issue at the corners.

it does nothing to the Z, just moving in x/y

David Lang

2 Likes

I think that this is a super valuable insight.

Although rather than asking for user input (which I’ve found is a source of potential error), I think that we should focus on building the system so that it is robust to not being dependent on the initial values in the .yaml file.

The question then is how can we make the system more aggressively converge to the one true answer?

A while back someone threw out an idea which I thought was quite good which was to simulate a bunch of random starting values for the anchor points and see where it converges from each one. That way instead of having just one starting set of values in the .yaml we would have a bunch and then we could compare how they end up.

Having the software do this would be great.

Can we simulate this off the machine (ie on a PC) if we capture the movement data from a calibration run?

I’m really disliking the repeated retract / extend process and / or going out to the shed to click a couple of buttons and copy files from the browser :slight_smile:

1 Like

While playing with the Calibration simulation with various data points I have noticed that the width and height initial settings make a big difference to how quickly the simulation converged. If the values are lower than the actual values it does not ever converge. If they are too high it will get better but may take multiple runs to get a good fitness.

1 Like

Yes, absolutely. It very much is just dependent on having a set of measurements to play with, no hardware should be needed.

That is a great point. Is it any amount lower that is triggering it to never converge or only if it’s a lot lower?

I will test a few values to confirm

1 Like

Bar wrote:

That is a great point. Is it any amount lower that is triggering it to never converge or only if it’s a lot lower?

what is meant by ‘lower’?

we know the belt lengths at the first measurement point. If we were to draw arcs
for each arm and set the initial anchor guess outside those arcs is it good
enough?

or do the x coordinates need to be wider than the x coordinate if the frame was
1" high and the Y coordinate taller than if the frame was 1" wide?

I believe that the current starting guess is if the frame was perfectly square.

David Lang

It is not a lot to cause the distortion. e.g. for a frame of nominal size 2000 x 3200, entering a “height” of 1925 will cause the simulation to distort and not converge. 1950 will find acceptable convergence. “Width” seems to be more forgiving; I haven’t found the failure point yet.
Entering a height of 4000 will take a while but will be approaching the convergence points, may require multiple starts but will reach convergence.

1 Like