Offset problem with Makelangelo 2.5.2
Shop › Forum › Makelangelo Polargraph Art Robot › Offset problem with Makelangelo 2.5.2
- This topic has 34 replies, 3 voices, and was last updated 8 years, 5 months ago by Dan.
-
AuthorPosts
-
2016-06-25 at 12:51 #10160DanKeymaster
I notice that the error appears to be related to the slope of the line.
2016-06-25 at 12:54 #10161AnonymousInactiveyes, I suspect the errors follow a sin or cos wave, (but that’s just my intuition), since the errors are 0 at 0 degrees and increase to maximum and then go back to 0 again at 90 degrees.At the moment I’m trying to characterise the error better since I’m up against a bit of a deadline and I don’t think I’ve got time to understand your code, so I’m trying t write something that compensates for the error when generating line coordinates in the first place.
2016-06-25 at 13:34 #10162DanKeymasterwhen someone sends gcode it triggers line_safe(), which is written to prevent any rounding errors from screwing up the end of a line. line_safe() then calls polargraph_line(), which does the IK, which does not change anywhere on the board, and is independent of the current pen position.
2016-06-25 at 13:43 #10163AnonymousInactiveThat’s useful to know – I’ve been assuming the problem is in the motor.ino file, since the IK stuff didn’t seem to have any obvious way to cause this kind of problem (but I still haven’t really got my head around the code yet). Unfortunately, we’re in a bit of a panic at the moment because we have an exhibition opening on tuesday, so we haven’t got much time to try to fix this at the moment – hence my hacky attempt to mitigate the issue by compensating for the error in the gcode. If you’ve got time to work on this in the next couple of days then maybe it would be good to organise a skype call or something so that we could be collaborate a bit more efficiently?
2016-06-25 at 14:10 #10164DanKeymaster> N13 G01 X460 Y840 H0=202965 H1=66541 G0=-73525 G1=-62597 X46.00 Y84.00 > N22 G01 X460 Y840 H0=202965 H1=66541 G0=-73525 G1=-62597 X46.00 Y84.00 > N35 G01 X460 Y840 H0=202965 H1=66541 G0=-73603 G1=-62675 X46.00 Y84.00
H values are obtained
from IK(x,y,h0,h1);
in polargraph_line(). Something in the way bresenham’s algorithm is counting the number of diagonal steps has produced a rounding error. I’m getting closer to the source of the problem.2016-06-25 at 14:12 #10166DanKeymasteremail your phone number to [email protected]. I get free long distance calling for just such emergencies.
2016-06-25 at 14:57 #10167DanKeymasterI am running tests on a machine calibrated to your settings, with the motors unplugged. I have to wait while it draws in real time, which is ~3 minutes wait for every attempt. Not long enough to go do something else! Patience, Dan, patience…
2016-06-25 at 15:49 #10168DanKeymasterPlease grab the latest here and give it a try. I just ran a long difficult drawing that usually fails and it came out better than I’ve ever seen before.
2016-06-25 at 17:45 #10170AnonymousInactiveI just did a test on my rig here and the new firmware seems to have completely fixed the problem.
Thanks Dan!
I suspect that this new firmware will make every drawing considerably better than it used to be, Since there will always have been inaccuracies creeping in which came from the firmware, even though they looked like pen wobble etc.2016-07-09 at 16:39 #10258DanKeymasterPlease let me know if the new firmware is better. I’d love to see a pic of whatever you’re drawing! 🙂
-
AuthorPosts
- You must be logged in to reply to this topic.