Calibration Process Brainstorming

hmmm… I’m just not feeling it. Seems really, really complicated and overworked. Any other soultions? :wink:

Remember, we are trying to make it easier to do calibration :slight_smile:

I didn’t think it was so bad. Sometimes it is difficult to see it when your own baby is ugly.

I have been thinking the 4x8 face of the Maslow is like a blank canvas. For example, any recess could be cut into its face, and as long as the structural integrity wasn’t compromised, it would not affect how the machine functioned. I can think of several ways to use this to make the machine more useful. This is just one example.

Let me think about it. I am open to suggestions

I think this is a really cool idea. If this machine were targeting more industrial workloads where calibrations were likely more frequent, I think this would be a great addition. But it might be a bit complex for a hobbyist CNC machine for people who don’t have outside CNC experience.

Keep 'em coming! Great ideas so far, and thinking outside of the norm is how we improve this!

2 Likes

Just because there are criticisms doesn’t mean it is dead. If there were an opportunity to develop an order of magnitude more confidence in the machine’s calibration, and it would require one or two hour’s worth of time, I believe everyone would be in favor.

1 Like

Completed agreed. I would say build it! People can be hesitant if the idea sounds difficult. But seeing it and the improvement it offers can put minds at ease.

3 Likes

OK, here is a solution. The problem was that the cut schedule I drew above basically destroyed an entire sheet, which is a lot.

Woodworkers often use what is called a “story stick”. It is a straight stick that you draw lines on. Each line represents the intended length of the parts you would like to cut. This is more precise than using a tape-measure for many reasons: the stick is very rigid; the end of the stick can be butted directly against a surface and support a compressive load; there are fewer lines, leading to less opportunity for mistake. Sometimes the story-stick is just a “golden rule”, cut to the intended length of the parts.

Use the uncalibrated Maslow to cut one story-stick. Then make short cuts that are ideally the same distance apart as the length of the story-stick. Place these cuts strategically in various positions on worksheet. These short cuts are similar to the current approach.
Compare the length of the story stick against the distance between short cuts. Use calipers to quantify these small differences. I believe this can be done with sub-millimeter precision. These measurements are inputs to a calibration similar to the one described above.

Using this approach reduces the quantity of wasted material. There is just one story stick, and several short cuts. This is similar to the current approach.

Thoughts?

2 Likes

It’s worth a try, I’m not sure if it will really be better (how do you hold the stick in place as you are measuring, especially as it needs to be precisely held on one side of the machine while you are trying to use calipers on the other end of the machine)

good in theory, someone needs to try it in practice.

I would say, get a machine that is calibrated with the existing meaurement, cut a story stick, then cut a few sets of measurement slots and see how precisely you can measure the differences, remember that you are trying to beat 1/2mm over 6+ feet.

2 Saw Horses is what every woodworker needs and also makes a good flatpack table :grin:
Simple saw horse

the problem is that whatever we build needs to work when it’s fairly
significantly distorted

1 Like

What if we just create the calibration schedule such that it doesn’t interfere with the pieces in the sawhorse? We plan the calibration cuts around the sawhorse design, so that the sawhorse can be cut out afterward.

Also, I have been working the last week to get Ground Control up and running. I had an old laptop. I installed Ubuntu (the Long-Term Stable release), and was able to install all dependencies such that Ground Control is running. This was the first step.

I would like to get to the point where I can step into the calibration Python code and start debugging, but I am not sure the best way to set that environment up. I have the Spyder IDE installed, which has debugging features. I have used Spyder in the past, and it has worked well. It is similar to the Matlab IDE, with which I am familiar. The debugging features appear to not be compatible with the Kivy GUI API. I cannot get it to stop on a debugging break-point. I set up a break-point in Spyder and run the main.py script, but when I click on a button to execute the code I wish to debug, it doesn’t work. Does anyone have any recommendations or explanations? This might just be a user issue “We know the problem is originating somewhere between the chair and the keyboard”.

Thanks in advance,

look at what the current calibration does.

I think it will satisfy the need to keep out of the way.
but the stated desire was to make the calibration step produce something useful.

David Lang

As an update, I have downloaded the Ground Control software. I can successfully run Ground Control. I am to the point where I can successfully stop the code in a debugger, so I believe I am to the point where I can think actual developments. Just starting out, I have one question about the triangularCalibration.py module (I believe this is the right place). It implements an inverse calculation of the (left, I think) chain length within the calibration loop. There is an inverse method within the kinematics class that implements the chain length calculation, too. Could the inverse method be referenced from the kinematics.py module within the triangularCalibration.py module? This is just an observation, and a detail.

Thanks,
Josh

You should be able to reference it there. It might require an additional import at the top.

It can be done, but you would need to properly reference all the variables as well.

Here is another question. The calibration routine should minimize error between the measured and calculated part lengths. In order to do this, a “forward” translation calculates (x,y) points corresponding to the ends of the cuts, which are subsequently used to determine calculated part lengths. Currently, the inverse calculation is analytical, but the forward calculation is numeric. I am a little nervous about stacking a calibration (numeric method) on top of another numeric method (the forward kinematics translation). I would like to try implement an analytic forward translation for the triangular kinematics. Does anyone have those equations off-hand?

1 Like

I don’t think they exist. Back when the triangular kinematics was comprised of just the motor distance equations, this was easy. When we added in motor sprocket geometry, I attempted to calculate the forward kinematics but was not able to solve for them in a clean way. After adding in chain sag I didn’t even try.

You’re absolutely welcome to give it a shot though. Not saying it can’t be done, but it won’t be easy!

3 Likes

Thanks. I was afraid of that.

Yeah, it is a bit of a pain. I initially wanted to maintain a clean forward kinematics algorithm, but quickly found that as the reverse kinematics algorithm became more accurate (and correspondingly more complex), the forward kinematics equations became hideous. Hence the current triangular kinematics calibration algorithm.

3 Likes

Another question. Is it ok to create a dependence on another Python module, SciPy? I am not 100% sure about all the implications of doing this.

That’s a good question. I’m new to this project also, so I’m not sure the opinion and implications on additional modules. @bar and others, would you know?

1 Like