Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Chain Sag Correction for Triangular Kinematics #558

Merged
merged 6 commits into from
Jan 16, 2018
Merged

Chain Sag Correction for Triangular Kinematics #558

merged 6 commits into from
Jan 16, 2018

Conversation

reecej
Copy link
Contributor

@reecej reecej commented Jan 11, 2018

This incorporates chain sag correction into the triangular kinematics algorithm. Changes are made to the simulator to align with the associated firmware changes.

Additionally, a new parameter called chainSagCorrection is introduced. The triangular calibration process is updated to determine this value and send to the firmware.

This is the Ground Control PR associated with Firmware PR 369.

This incorporates chain sag correction into the triangular kinematics algorithm. Changes are made to the simulator to align with the associated firmware changes.

Additionally, a new parameter called chainSagCorrection is introduced. The triangular calibration process is updated to determine this value and send to the firmware.
@reecej
Copy link
Contributor Author

reecej commented Jan 11, 2018

I would request @BarbourSmith and others test this thoroughly before being merged. I have run simulations on it and all seems well, but testing on an actual Maslow is the real test.

@BarbourSmith
Copy link
Member

Man, you are really getting things done @reecej! Fantastic work!

I will run the same test we were running yesterday using this branch and the compirable branch for the firmware. I will start with a fresh settings file and run through the calibration process before starting the test.

@BarbourSmith
Copy link
Member

I got to the end of the calibration process, but then I ran into an error. When I entered my values I got a warning which looked like this:

image

57, Chain Sag Correction Value: 0.0
  Chain Error Cut 1: -0.0, Chain Error Cut 2: -0.0, Chain Error Cut 3: 19.1736, Chain Error Cut 4: 3.2198, Sled Drift Error: 0.0
N: 4979, Motor Spacing: 2975.34, Motor Y Offset: 429.51, Rotation Disk Radius: 144.057, Chain Sag Correction Value: 0.0
  Chain Error Cut 1: 0.0, Chain Error Cut 2: 0.0, Chain Error Cut 3: 19.1736, Chain Error Cut 4: 3.2198, Sled Drift Error: 0.0
N: 4980, Motor Spacing: 2975.34, Motor Y Offset: 429.51, Rotation Disk Radius: 144.057, Chain Sag Correction Value: 0.0
  Chain Error Cut 1: -0.0, Chain Error Cut 2: -0.0, Chain Error Cut 3: 19.1736, Chain Error Cut 4: 3.2198, Sled Drift Error: 0.0
N: 4981, Motor Spacing: 2975.34, Motor Y Offset: 429.51, Rotation Disk Radius: 144.057, Chain Sag Correction Value: 0.0
  Chain Error Cut 1: 0.0, Chain Error Cut 2: 0.0, Chain Error Cut 3: 19.1736, Chain Error Cut 4: 3.2198, Sled Drift Error: 0.0
N: 4982, Motor Spacing: 2975.34, Motor Y Offset: 429.51, Rotation Disk Radius: 144.057, Chain Sag Correction Value: 0.0
  Chain Error Cut 1: -0.0, Chain Error Cut 2: -0.0, Chain Error Cut 3: 19.1736, Chain Error Cut 4: 3.2198, Sled Drift Error: 0.0
N: 4983, Motor Spacing: 2975.34, Motor Y Offset: 429.51, Rotation Disk Radius: 144.057, Chain Sag Correction Value: 0.0
  Chain Error Cut 1: 0.0, Chain Error Cut 2: 0.0, Chain Error Cut 3: 19.1736, Chain Error Cut 4: 3.2198, Sled Drift Error: 0.0
N: 4984, Motor Spacing: 2975.34, Motor Y Offset: 429.51, Rotation Disk Radius: 144.057, Chain Sag Correction Value: 0.0
  Chain Error Cut 1: -0.0, Chain Error Cut 2: -0.0, Chain Error Cut 3: 19.1736, Chain Error Cut 4: 3.2198, Sled Drift Error: 0.0
N: 4985, Motor Spacing: 2975.34, Motor Y Offset: 429.51, Rotation Disk Radius: 144.057, Chain Sag Correction Value: 0.0
  Chain Error Cut 1: 0.0, Chain Error Cut 2: 0.0, Chain Error Cut 3: 19.1736, Chain Error Cut 4: 3.2198, Sled Drift Error: 0.0
N: 4986, Motor Spacing: 2975.34, Motor Y Offset: 429.51, Rotation Disk Radius: 144.057, Chain Sag Correction Value: 0.0
  Chain Error Cut 1: -0.0, Chain Error Cut 2: -0.0, Chain Error Cut 3: 19.1736, Chain Error Cut 4: 3.2198, Sled Drift Error: 0.0
N: 4987, Motor Spacing: 2975.34, Motor Y Offset: 429.51, Rotation Disk Radius: 144.057, Chain Sag Correction Value: 0.0
  Chain Error Cut 1: 0.0, Chain Error Cut 2: 0.0, Chain Error Cut 3: 19.1736, Chain Error Cut 4: 3.2198, Sled Drift Error: 0.0
N: 4988, Motor Spacing: 2975.34, Motor Y Offset: 429.51, Rotation Disk Radius: 144.057, Chain Sag Correction Value: 0.0
  Chain Error Cut 1: -0.0, Chain Error Cut 2: -0.0, Chain Error Cut 3: 19.1736, Chain Error Cut 4: 3.2198, Sled Drift Error: 0.0
N: 4989, Motor Spacing: 2975.34, Motor Y Offset: 429.51, Rotation Disk Radius: 144.057, Chain Sag Correction Value: 0.0
  Chain Error Cut 1: 0.0, Chain Error Cut 2: 0.0, Chain Error Cut 3: 19.1736, Chain Error Cut 4: 3.2198, Sled Drift Error: 0.0
N: 4990, Motor Spacing: 2975.34, Motor Y Offset: 429.51, Rotation Disk Radius: 144.057, Chain Sag Correction Value: 0.0
  Chain Error Cut 1: -0.0, Chain Error Cut 2: -0.0, Chain Error Cut 3: 19.1736, Chain Error Cut 4: 3.2198, Sled Drift Error: 0.0
N: 4991, Motor Spacing: 2975.34, Motor Y Offset: 429.51, Rotation Disk Radius: 144.057, Chain Sag Correction Value: 0.0
  Chain Error Cut 1: 0.0, Chain Error Cut 2: 0.0, Chain Error Cut 3: 19.1736, Chain Error Cut 4: 3.2198, Sled Drift Error: 0.0
N: 4992, Motor Spacing: 2975.34, Motor Y Offset: 429.51, Rotation Disk Radius: 144.057, Chain Sag Correction Value: 0.0
  Chain Error Cut 1: -0.0, Chain Error Cut 2: -0.0, Chain Error Cut 3: 19.1736, Chain Error Cut 4: 3.2198, Sled Drift Error: 0.0
N: 4993, Motor Spacing: 2975.34, Motor Y Offset: 429.51, Rotation Disk Radius: 144.057, Chain Sag Correction Value: 0.0
  Chain Error Cut 1: 0.0, Chain Error Cut 2: 0.0, Chain Error Cut 3: 19.1736, Chain Error Cut 4: 3.2198, Sled Drift Error: 0.0
N: 4994, Motor Spacing: 2975.34, Motor Y Offset: 429.51, Rotation Disk Radius: 144.057, Chain Sag Correction Value: 0.0
  Chain Error Cut 1: -0.0, Chain Error Cut 2: -0.0, Chain Error Cut 3: 19.1736, Chain Error Cut 4: 3.2198, Sled Drift Error: 0.0
N: 4995, Motor Spacing: 2975.34, Motor Y Offset: 429.51, Rotation Disk Radius: 144.057, Chain Sag Correction Value: 0.0
  Chain Error Cut 1: 0.0, Chain Error Cut 2: 0.0, Chain Error Cut 3: 19.1736, Chain Error Cut 4: 3.2198, Sled Drift Error: 0.0
N: 4996, Motor Spacing: 2975.34, Motor Y Offset: 429.51, Rotation Disk Radius: 144.057, Chain Sag Correction Value: 0.0
  Chain Error Cut 1: -0.0, Chain Error Cut 2: -0.0, Chain Error Cut 3: 19.1736, Chain Error Cut 4: 3.2198, Sled Drift Error: 0.0
N: 4997, Motor Spacing: 2975.34, Motor Y Offset: 429.51, Rotation Disk Radius: 144.057, Chain Sag Correction Value: 0.0
  Chain Error Cut 1: 0.0, Chain Error Cut 2: 0.0, Chain Error Cut 3: 19.1736, Chain Error Cut 4: 3.2198, Sled Drift Error: 0.0
N: 4998, Motor Spacing: 2975.34, Motor Y Offset: 429.51, Rotation Disk Radius: 144.057, Chain Sag Correction Value: 0.0
  Chain Error Cut 1: -0.0, Chain Error Cut 2: -0.0, Chain Error Cut 3: 19.1736, Chain Error Cut 4: 3.2198, Sled Drift Error: 0.0
N: 4999, Motor Spacing: 2975.34, Motor Y Offset: 429.51, Rotation Disk Radius: 144.057, Chain Sag Correction Value: 0.0
  Chain Error Cut 1: 0.0, Chain Error Cut 2: 0.0, Chain Error Cut 3: 19.1736, Chain Error Cut 4: 3.2198, Sled Drift Error: 0.0
N: 5000, Motor Spacing: 2975.34, Motor Y Offset: 429.51, Rotation Disk Radius: 144.057, Chain Sag Correction Value: 0.0
  Chain Error Cut 1: -0.0, Chain Error Cut 2: -0.0, Chain Error Cut 3: 19.1736, Chain Error Cut 4: 3.2198, Sled Drift Error: 0.0
Machine parameters could not be determined
Sending: G21
Sending: G90
Sending: G40
Sending: G0 X0 Y0

@reecej
Copy link
Contributor Author

reecej commented Jan 11, 2018

Could you send me the full logs please? And do you know which values you entered for the measurements?

I should modify the calibration process to include the entered measurements as well for troubleshooting.

@BarbourSmith
Copy link
Member

Yes here is the log:

log.txt

The full output of the terminal is unfortunately lost because it will only let me scroll back so far before the terminal itself stops keeping track. Those same repeating lines scrolled by for maybe a minute before it got to the end

Here are the measurements I entered:

image

@reecej
Copy link
Contributor Author

reecej commented Jan 11, 2018

Were you starting with a clean configuration? Based on the screenshot of the console output it calibrated for the motorYoffset and rotationRadius, and was attempting to calibrate for chain sag but calculated that a negative chain sag would be required. The algorithm doesn't allow this, so it timed out.

@BarbourSmith
Copy link
Member

I did start with a clean configuration (deleted the Ground Control.ini file)

What would cause it to come up with a negative number?

@reecej
Copy link
Contributor Author

reecej commented Jan 11, 2018

In this case, it looks like the horizontal measurement you had (1861mm) is longer than it expected. For an 8' wide work area it should have tried to cut out a 1830mm wide mark. With a smaller-than-actual rotationDiskRadius setting it would be reasonable to expect the cut out mark to be longer than 1830, but this value was long enough that the chains to cuts 3 and 4 were calculated as being too long rather than too short (i.e. chain stretch, for instance).

Could you confirm you measured from the same side of each mark (left/top/etc) to remove the size of the bit from the equation? The only place the bit diameter is factored in is the motor Y offset. If everything is good there then I have an idea to see if we can make it work.

@BarbourSmith
Copy link
Member

I am still measuring pretty much exactly 1861mm from the right edge of the left cut to the right edge of the right cut

@reecej
Copy link
Contributor Author

reecej commented Jan 11, 2018

Could you check your settings and ensure the chainSagCorrection value is 0? If so, try rolling back to the previous firmware and repeating the cut to see if the measurement changes. I'm wondering if something is off in the firmware.

@BarbourSmith
Copy link
Member

I am seeing zero...but I am also seeing that it is in the quadrilateral kinematics mode:

image

I'm 99.9% sure I clicked triangular during the calibration process...no wait I know exactly what happened...I forgot to turn on the z-axis because the switch wasn't working the calibration option (now fixed) and going back probably messed something up. 203% my fault...although if I was in quadrilateral mode how did I get to the triangular calibration window?

@reecej
Copy link
Contributor Author

reecej commented Jan 11, 2018

Definitely not 203% your fault. If you, admittedly very experienced in using the machine, was able to encounter an issue then I am confident a new user could have the exact same issue.

Did you by chance press the next step button from step 9 rather than pressing the triangular kinematics button?

@BarbourSmith
Copy link
Member

It's possible, but I thought I had a lockout that would prevent someone from being able to skip into the wrong one. It should skip you into the correct calibration window.

I am going to try again being very careful from step 1

@BarbourSmith
Copy link
Member

Good call on asking me to check on the settings! We never would have found it if you hadn't throught to look there 👍 👍

@reecej
Copy link
Contributor Author

reecej commented Jan 11, 2018

I have a theory as to what happened. I see in the code that if no rotationRadius was able to be obtained, then a value of 260 is applied. I'm wondering if you deleted your .ini file if this value would be used instead. The algorithm is written to search upwards for a rotation radius as there are actually two sets of solutions (the motor being below the workspace technically satisfies the math), so with the rotation radius default being so much above the actual value I could see it being confused.

It might be worthwhile having the calibration routine clear the rotation radius and chain sag correction values before calibration if this is the case, to avoid these types of problems.

Thoughts?

@BarbourSmith
Copy link
Member

Oh good point!

Something that has been on my todo list for a while now is to re-think the order of the calibration process. There is the step where we make a rough estimate of the distance between the points where the brackets attach to the sled and I think doing something similar for the rotation radius would be a good idea.

I am mid way through the calibration process (after deleting the .ini), and I just checked the newly created .ini file and the radius is at 100 right now. I will keep an eye on it through the rest of the process

@BarbourSmith
Copy link
Member

Here are my settings going into running the test cut:

[Maslow Settings]
bedheight = 1219.2
openfile = 
motoroffsety = 432.92
sledwidth = 310
bedwidth = 2438.4
comport = COM4
macro1_title = Macro 1
sledheight = 139
macro2 = 
macro1 = 
zaxis = 1
sledcg = 79
macro2_title = Macro 2
colorscheme = Light
zdistperrot = 3.17
motorspacingx = 2974.83

[Advanced Settings]
digits = 4
kinematicstype = Triangular
rotationradius = 100
kppos = 1300
encodersteps = 8113.73
zencodersteps = 7560.0
enablepospidvalues = 0
kpv = 7
homex = 0.0
homey = 0.0
propweight = 1
enablevpidvalues = 0
kiv = 0
gearteeth = 10
zaxisauto = 0
kipos = 0
kdpos = 34
truncate = 0
kdv = 0.28
chainsagcorrection = 0
chainpitch = 6.35

[Ground Control Settings]
zoomout = pagedown
centercanvasonresize = 0
zoomin = pageup
validextensions = .nc, .ngc, .text, .gcode


@davidelang
Copy link
Contributor

davidelang commented Jan 11, 2018 via email

@reecej
Copy link
Contributor Author

reecej commented Jan 11, 2018

The calculations do start at rotationRadius = 0, but it's more of the possibility of the test cut being done with a rotation radius that was substantially larger than the real value. Regardless, even if we clear the rotationRadius on the machine and iterate from complete scratch, like you mention it will take a negligible amount more time to complete the calculations.

@BarbourSmith
Copy link
Member

I'm getting spookily similar values to last time, should I press "Enter Values"?

image

@reecej
Copy link
Contributor Author

reecej commented Jan 11, 2018

Try it out!

@BarbourSmith
Copy link
Member

I'm seeing the same thing as before 😐

This error:

N: 4994, Motor Spacing: 2974.83, Motor Y Offset: 425.17, Rotation Disk Radius: 145.15, Chain Sag Correction Value: 0.0
  Chain Error Cut 1: 0.0, Chain Error Cut 2: 0.0, Chain Error Cut 3: 19.4743, Chain Error Cut 4: 2.9178, Sled Drift Error: 0.0
N: 4995, Motor Spacing: 2974.83, Motor Y Offset: 425.17, Rotation Disk Radius: 145.15, Chain Sag Correction Value: 0.0
  Chain Error Cut 1: 0.0, Chain Error Cut 2: 0.0, Chain Error Cut 3: 19.4743, Chain Error Cut 4: 2.9178, Sled Drift Error: 0.0
N: 4996, Motor Spacing: 2974.83, Motor Y Offset: 425.17, Rotation Disk Radius: 145.15, Chain Sag Correction Value: 0.0
  Chain Error Cut 1: 0.0, Chain Error Cut 2: 0.0, Chain Error Cut 3: 19.4743, Chain Error Cut 4: 2.9178, Sled Drift Error: 0.0
N: 4997, Motor Spacing: 2974.83, Motor Y Offset: 425.17, Rotation Disk Radius: 145.15, Chain Sag Correction Value: 0.0
  Chain Error Cut 1: 0.0, Chain Error Cut 2: 0.0, Chain Error Cut 3: 19.4743, Chain Error Cut 4: 2.9178, Sled Drift Error: 0.0
N: 4998, Motor Spacing: 2974.83, Motor Y Offset: 425.17, Rotation Disk Radius: 145.15, Chain Sag Correction Value: 0.0
  Chain Error Cut 1: 0.0, Chain Error Cut 2: 0.0, Chain Error Cut 3: 19.4743, Chain Error Cut 4: 2.9178, Sled Drift Error: 0.0
N: 4999, Motor Spacing: 2974.83, Motor Y Offset: 425.17, Rotation Disk Radius: 145.15, Chain Sag Correction Value: 0.0
  Chain Error Cut 1: 0.0, Chain Error Cut 2: 0.0, Chain Error Cut 3: 19.4743, Chain Error Cut 4: 2.9178, Sled Drift Error: 0.0
N: 5000, Motor Spacing: 2974.83, Motor Y Offset: 425.17, Rotation Disk Radius: 145.15, Chain Sag Correction Value: 0.0
  Chain Error Cut 1: 0.0, Chain Error Cut 2: 0.0, Chain Error Cut 3: 19.4743, Chain Error Cut 4: 2.9178, Sled Drift Error: 0.0
Machine parameters could not be determined

Scrolling by very quickly and then ultimately the popup say that the values could not be determined.

The fact that we got the exact same measurements feels like a little bit of a win...at least the calibration process is very repeatable

@reecej
Copy link
Contributor Author

reecej commented Jan 11, 2018

Could you try setting the rotationRadius to 0 and repeating the cut to see what the measurements are by chance?

@reecej
Copy link
Contributor Author

reecej commented Jan 11, 2018

Something seems off in the cut pattern. In the testing you did yesterday the long horizontal cuts were always a couple mm shorter than the nominal distance. Here, it's 30+mm too long. Another option would be to reset your rotationRadius to the proper value and perform the test cut too.

@davidelang
Copy link
Contributor

davidelang commented Jan 11, 2018 via email

@BarbourSmith
Copy link
Member

I agree that its very strange that all the cuts used to tend to short, but now we're getting long. I will run the 1905mm test cut again and see what I get with the current settings

@reecej
Copy link
Contributor Author

reecej commented Jan 11, 2018

should we do the vertical spacing test, get the results, then do the horizontal
ones?

That's effectively how the algorithm works, but the part that is giving us trouble is moving to that second phase of calibrating the horizontal.

@BarbourSmith
Copy link
Member

Where is the gcode which is being sent to the machine? For some reason I can't see it in the "files changed of the pull request"

@reecej
Copy link
Contributor Author

reecej commented Jan 16, 2018

True, and that goes into my thought process from where we go from here.

So far, I have been grouping remaining error into three categories:

  1. Sled "randomness" during movement
  2. User measurement error during the calibration process
  3. Other influencing physics components that we have not identified/accounted for

My suspicion is that item 1 is contributing a substantial amount to this. As a test, I was designing the next generation of this calibration process (for a separate PR) which would incorporate additional horizontal cuts to use in the calibration process. The goal of this would be to remove some of the "randomness" of sled position, if such randomness exists. But it would substantially change how the calibration algorithm works, so I anticipate that will come sometime in the future.

@blurfl
Copy link
Collaborator

blurfl commented Jan 16, 2018

You've helped the sled randomness issue a lot by the way that you've ordered your cuts in vertical rows. Doing the right side cuts from top to bottom might help it a little as the X-accuracy is better at the top of the work area.

@davidelang
Copy link
Contributor

davidelang commented Jan 16, 2018 via email

@reecej
Copy link
Contributor Author

reecej commented Jan 16, 2018

Doing the right side cuts from top to bottom might help it a little as the X-accuracy is better at the top of the work area.

Very good point. Think this is something I should modify quickly, or leave as is for the time being?

@davidelang
Copy link
Contributor

davidelang commented Jan 16, 2018 via email

@blurfl
Copy link
Collaborator

blurfl commented Jan 16, 2018

Do modify it, to have it in this release. Is there a reason for the horizontal cut not to be connected to cut 2?

@blurfl
Copy link
Collaborator

blurfl commented Jan 16, 2018

@davidelang , the sled makes the cuts in counterclockwise order, so it makes cut 4 after a horizontal travers across the bottom of the aork area. That is sub-optimal for avoiding chain sag error...

@blurfl
Copy link
Collaborator

blurfl commented Jan 16, 2018

change the rotation radius to different values

I started with rotationRadius at 100, the default, and the procedure set it to 28.1mm, almost perfect. Subsequent runs changed it a half a mm up and down, and it settled on 27.7 on the fourth run.

@reecej
Copy link
Contributor Author

reecej commented Jan 16, 2018

My original thinking for the separation of the horizontal cut was to maximize the side area of cut 2 for measurement purposes. If cut 5 was connected to cut 2, do you think it would make it more difficult to measure?

@blurfl
Copy link
Collaborator

blurfl commented Jan 16, 2018

The cuts seem big enough to not interfere. Spoil less of the sheet, too 😁. I'd cut 1, 3, 5, 2 then 4.

@reecej
Copy link
Contributor Author

reecej commented Jan 16, 2018

Sounds good to me. 1, 3, 5, 2, 4 is the order I have been making the Gcode for right now. I think I'll move 5 to the top edge of 2, so that set of cuts will become a "L" shape rather than a "T" shape.

@reecej
Copy link
Contributor Author

reecej commented Jan 16, 2018

I'm glad I re-visited this, because I did actually find a little error in the Gcode. The cuts 3 and 4 were actually 2 inches lower than I expected. I'm cleaning that up here too, but that may create a bit more stability in the output.

@blurfl
Copy link
Collaborator

blurfl commented Jan 16, 2018

The cuts 3 and 4 were actually 2 inches lower

So when I measured center-to-center I was half a mm long! 😁

@reecej
Copy link
Contributor Author

reecej commented Jan 16, 2018

Well cuts 3 and 4 are primarily used for chain sag correction, so some error in height there (where we see the most chain sag effects) could create some of the widely varying values. Out of curiosity, could you measure the distance of the cuts 1/2/3/4 from the top/bottom? They should be around 10, but I suspect 3/4 are closer to the bottom than that.

@blurfl
Copy link
Collaborator

blurfl commented Jan 16, 2018

Cuts three and four end about 7 1/2 inches from the bottom of the sheet.

@reecej
Copy link
Contributor Author

reecej commented Jan 16, 2018

Thank you, they should end about 9 1/2 inches. Correcting that with the aforementioned changes!

The cut pattern for the triangular kinematics calibration algorithm was altered to spoil less of the sheet and make all vertical cuts in the same direction.
@reecej
Copy link
Contributor Author

reecej commented Jan 16, 2018

Alright, hopefully I have it all sorted out now. The cuts should all be approximately 9 1/2 inches away from the edges (after the machine is calibrated). The other thing I would request to be validated is that the motorYoffset value is correct. With moving cut 5 I had to adjust the calculation for motorYoffset, so I'm more just looking to ensure that after calibration the home location is truly the center of the sheet.

@blurfl
Copy link
Collaborator

blurfl commented Jan 16, 2018

Ok, I’ll check it.

@blurfl
Copy link
Collaborator

blurfl commented Jan 16, 2018

The marks are 9.5"" from the upper and lower edge, and 10" in from the sides. The 3-4 measurement was 1mm less than the previous runs (this time 1929.4 ) with the other cut order. Cuts 1-2 were the same, 1930.4. The new measurement for motoroffsety was within 1mm of the previous. I measure it to be 475mm, the calc guesses 464.4.Probbly close enough 👍 The rR came out 128.0 instead of 127.7 and the chain sag came out 35.75 instead of 29.05
I say "ship it!"

@reecej
Copy link
Contributor Author

reecej commented Jan 16, 2018

Thanks for your testing! Sounds like your sag correction value was right in the middle of the values you were getting before, which is a good sign.

@blurfl
Copy link
Collaborator

blurfl commented Jan 16, 2018

Here's a run with after using the most recent cal. routine.
calibration benchmark test report sheet - 2453887 -1
I notice that even though some squares differ in size, none are parallelogrammed. Most satisfying!
Smething funny about the right side of my machine; why not symmetrical?

@reecej
Copy link
Contributor Author

reecej commented Jan 16, 2018

Thanks @blurfl! From the horizontal lengths, it looks like that combination of rotationRadius and chainSagCorrection is pretty good for you. Are the vertical lines all supposed to be 900?

That is also very interesting about the right side of your machine. Bar saw similar errors on the right side, but also saw errors on the widths of the 100mm squares on the left side, which you don't seem to.

@blurfl
Copy link
Collaborator

blurfl commented Jan 16, 2018

I’m not in a place to check the file - it’s taken from Bar’s open PR, I think it’s the same one he’s been running.
Edit - the Y span is 800mm, the X span is 1905mm

@BarbourSmith
Copy link
Member

Something funny about the right side of my machine; why not symmetrical?

My right side is funny too! Let's investigate.

The Y-span should be 900mm so you are looking way closer than if it was 800mm 😀

I am sure we can continue to improve, but we've already proved conclusively that this pull request brings us a roughly five fold improvement in accuracy. It's been tested with both the ring and linkage systems. It is fantastic, and I am going to merge it here. We can continue to make tweaks in further pull requests.

I want to say a huge thank you to everyone who worked on this and especially @reecej for making it all happen. This is huge. Totally massive. This is open source at it's best with people working together to build something. Great work everyone! 👍 👍 🍾 🎆

@BarbourSmith BarbourSmith merged commit 96982df into MaslowCNC:master Jan 16, 2018
@reecej
Copy link
Contributor Author

reecej commented Jan 16, 2018

Thank you everyone for your assistance with this process. I greatly appreciate your input of time and testing to get this sorted out. It was a great team effort!

@reecej reecej deleted the Triangular-Chain-Sag-Correction branch January 20, 2018 00:37
@davidelang
Copy link
Contributor

davidelang commented Jan 23, 2018 via email

@BarbourSmith
Copy link
Member

I haven't yet. I started to and then I decided that enough of the play was in the plywood motor mounts that I really think the right solution is to attach the motor brackets directly to a beam like you show in your design. That way there are the minimal number of joints which could have play in them.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants