
Hi David,
Thanks for testing. Something is really not working there.
I wonder if the problem could be with the vision. Could you re-do the calibration, while you zoom in on the screen, and observe in the first step tests, whether the green cross-hairs move step by step and precisely hug the fiducial? In my video it is shown here:
https://youtu.be/md68n_J7uto?t=346
Note, it has slightly changed since then, the green cross-hairs should now even have sub-pixel precision, i.e. the precise match with fiducial should even be more apparent.
Ideally, you could record it too and post the video?
If the cross-hairs do hug the fiducial, but they don't evenly move between steps, then I would look at micro-step settings. Perhaps you have switched them off?
What stepper drivers do you have?
_Mark
--
You received this message because you are subscribed to the Google Groups "OpenPnP" group.
To unsubscribe from this group and stop receiving emails from it, send an email to openpnp+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/openpnp/f5af476b-7175-4c84-88e6-821dea2e4332n%40googlegroups.com.
Hi, Mark. If convenient, could you post your optical pipelines you used in this video? (Or similar)? Thanks, JIm
Â
From: ope...@googlegroups.com <ope...@googlegroups.com> On Behalf Of ma...@makr.zone
Sent: Wednesday, October 20, 2021 7:35 AM
To: ope...@googlegroups.com
Subject: Re: [OpenPnP] Interpreting Backlash graphs
Â
Hi David,
Thanks for testing. Something is really not working there.
I wonder if the problem could be with the vision. Could you re-do the calibration, while you zoom in on the screen, and observe in the first step tests, whether the green cross-hairs move step by step and precisely hug the fiducial? In my video it is shown here:
https://youtu.be/md68n_J7uto?t=346
Note, it has slightly changed since then, the green cross-hairs should now even have sub-pixel precision, i.e. the precise match with fiducial should even be more apparent.
Ideally, you could record it too and post the video?
If the cross-hairs do hug the fiducial, but they don't evenly move between steps, then I would look at micro-step settings. Perhaps you have switched them off?
What stepper drivers do you have?
_Mark
Â
Â
Am 20.10.2021 um 12:19 schrieb David Griffiths:
I have been trying to tune my backlash using the new auto tune in Mark's test version (2021-10-12). The results have not been wonderful.
Â
If I am interpreting these graphs correctly, I think the rising red line in the top graph is telling me that I have a gradually increasing error.
My immediate thought was losing steps. I have tried increasing motor current, drastically slowing acceleration, jerk etc but nothing I have tried seems to change the curve.
X & Y axes are similar.
Comments please.
DG
Â
--
You received this message because you are subscribed to the Google Groups "OpenPnP" group.
To unsubscribe from this group and stop receiving emails from it, send an email to openpnp+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/openpnp/f5af476b-7175-4c84-88e6-821dea2e4332n%40googlegroups.com.
--
You received this message because you are subscribed to the Google Groups "OpenPnP" group.
To unsubscribe from this group and stop receiving emails from it, send an email to openpnp+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/openpnp/8a3db808-eb41-c2aa-7822-48570a68d916%40makr.zone.
There is no pipeline in the calibration vision (this early in the
machine setup process this would be too much for the user). It is
all built-in using the DetectCircularSymmetry method. I developed
this method to be tuning-free and extremely robust. Only the
real-world diameter of the circular feature is needed.
You can use the DetectCircularSymmetry stage in pipelines too, it is well documented 😎:
https://github.com/openpnp/openpnp/wiki/DetectCircularSymmetry
_Mark
To view this discussion on the web visit https://groups.google.com/d/msgid/openpnp/00cc01d7c5b1%2438d75b80%24aa861280%24%40gmail.com.
It is definitely not a vision problem, i.e. the problem is either
with the machine or with my calibration code.
The video is just a bit too short to judge, it stops right where
it begins to be interesting. I do see some "sticking" in these
first 4 steps. Each step should move the cross-hairs about the
same amount.
I don't think you can switch off micro-stepping on Smoothie, not
entirely sure.
If the stickiness is really there, and if you already increased
currents, I don't know where the problem could be, other than just
too much mechanical stickiness, belts too tense etc.
_Mark
To view this discussion on the web visit https://groups.google.com/d/msgid/openpnp/60b63cf7-3e4a-42b1-97cf-27423c7bb624n%40googlegroups.com.
Hi David,
Please read this carefully, it is complex, and took a lot of time and effort to write down (hopefully) understandably.😉
Aaaarghhh.. the video is still too short to be completely
telling. And you should keep both the cross-hairs and the step
counter in the view. A screen-recorder would be much better. I'm
sure there's freeware around.

Also make sure to enable the Reticle type Ruler,
or Grid in the camera view, so we'll see the camera Units
per Pixel it in the next video. The grid should exactly
frame the fiducial at the start of the step test. See later, as to
why this is important.
Right-click in the camera view:

The stepping is not completely even, but as far the video goes, I
don't see an error of 0.3mm accumulating. So something is amiss.
https://github.com/openpnp/openpnp/wiki/Machine-Axes#controller-settings
If you change the Resolution, the step test will do exactly the right number of steps over the 1mm span (steps can be an integral multiple of the Resolution, if it is finer than 0.01mm, or finer than the sub-pixel resolution of the camera).
I'm also having another suspicion: either
your camera Units per Pixel are not accurate, or your
fiducial is not at the same Z as the calibration rig where you did
the Units per Pixel. Or you moved the camera up/down, or changed
the video mode.
Please confirm that you did all the calibration step in Issues & Solutions as in my video, on the same unchanged calibration rig and camera configuration:
If it in-deed is the Units per Pixel, please repeat the Issues & Solutions calibration steps. Switch the Include Solved checkbox on, and Re-open those, all at once, then do them in the right sequence.I will try to add a Units per Pixel error detection to
the calibration, that throws an error after the step test. This is
also needed, because the calibration can be started from the Axis,
i.e. outside Issues & Solutions.
If the Units per Pixel are right, I still cannot rule out a bug in my code.
_Mark
To view this discussion on the web visit https://groups.google.com/d/msgid/openpnp/71ea628b-2ff1-46e7-b0b7-6b1cf440e042n%40googlegroups.com.
> I don't understand the Resolution [driver Units] setting
on the axis Config page.
You mean the Wiki page is not understandable? Any hints where I
could improve it?
https://github.com/openpnp/openpnp/wiki/Machine-Axes#controller-settings
Or do you mean the Wizard in the GUI?
> Mine are defaulted to 0.00010. I am thinking I should increase these to 0.01125 ?
Yes, exactly (with the 0 inserted).
> OBS Studio
I'll have a look at that one. Always wanted to get a good alternative for my commercial one.
_Mark
To view this discussion on the web visit https://groups.google.com/d/msgid/openpnp/8f358295-43f2-48bb-8850-7ece77ce6698n%40googlegroups.com.
> The backlash graphs look vastly better as you can see at the end. Should I be concerned that the red line on the top graph (Y axis) is mainly out of the tolerance range?
There seems to be some problem every 36 steps (0.01mm) which
corresponds to 32 microsteps with 0.01125mm.
So this is clearly a microstep issue. Somehow, your Y axis has
trouble positioning to some of these microstep interval positions.
In the other post you mention having empirically set steps/mm to
89.38 for X and 89.2 for Y. This does not point to having the
belts overstretched (as I suspected), on the contrary (steps/mm
would be less, not more). So I don't understand. AFAIK, these
belts are usually manufactured with enough precision for PnP
purposes, i.e. you should be able to configure the nominal steps
per mm (88.8888), and get reasonably accurate results.
Over-tightening the belts could have explained why the steppers
struggle. An overstretched belt's teeth will no longer match the
pulley teeth and it takes force to jam the belt teeth in and rip
them out, the rubber being sticky and all.
When I built my Liteplacer there was no indication as to how
tight the belts must be. I searched long and hard to find guidance
and found a very good page, but stupid me has not recorded the
link (and I can't refind it). When I followed that advice, it
resulted in belts being so surprisingly lose, I almost couldn't
believe it's right. On a typical PnP machine size (500 .. 750mm),
the free side of the belt should sound very low when plucked, like
the lowest key on a piano or even lower. It should be very easy to
pull it out sideways one/two centimeters. This seemed to work very
well for my machine; I do have some backlash, but
repeatability/precision is good, considering how "DIY" the
Liteplacer construction is.
If you have (or had at one point) your belts tensed to sound like
a guitar, you have might have to replace them, apparently they get
damaged that way. But again, the steps/mm being higher than
nominal does not point to that (???)
_Mark
To view this discussion on the web visit https://groups.google.com/d/msgid/openpnp/95a26b95-4d08-9eb3-2084-ff007e5a3003%40makr.zone.
Yes, one thing to make it matter less, is to use smaller pulleys.
Replace your 36 teeth pulleys with the standard 20 teeth, this
will almost halve the microstep length, and therefore also halve
the positioning errors, and it will almost double the torque. I'm
sure the machine will still be fast enough.
_Mark
To view this discussion on the web visit https://groups.google.com/d/msgid/openpnp/ac6c8ebd-41e1-4b6d-ada7-933d8e88752cn%40googlegroups.com.
> Why does resolution default to 0.0001mm?
That is, what the standard G-code MOVE_TO_COMMAND traditionally
used through its format specifier %.4f
(limiting any coordinate to 4 digits after the dot) so I set it as
the default. In this case it is more a "representational"
resolution, rather than a mechanical resolution, it just prevents
nonsensical microscopic moves that end up in the same G-code.
I added the Steps / Unit field as an alternative reciprocal entry field. The driver unit is displayed. And I improved the tool tips, I hope:


_Mark
To view this discussion on the web visit https://groups.google.com/d/msgid/openpnp/f9aaffa4-2332-4ecd-93e1-f48580e271d4n%40googlegroups.com.

To view this discussion on the web visit https://groups.google.com/d/msgid/openpnp/4982b4fa-7fd4-07b2-c81c-60f3758e2ed7%40makr.zone.

 Â
 

Hi David
> I don't understand the last sentence: 'Note, the Resolution is given in driver (not System) units'Â Aren't they both in mm?
Not necessarily. The driver could be in Millimeters but
the user perhaps prefers Inches system units for display
in the GUI. Or maybe you have retrofitted an old machine where the
controller is fixed to Inches, but you still want to
display everything on the GUI in mm. One user had linear
actuators, that only spoke Microns. I think it is easy to
see, that in these cases you still want to specify the Resolution
and/or Steps/Unit in the native driver units, for them
to be precise.


_Mark
To view this discussion on the web visit https://groups.google.com/d/msgid/openpnp/cb2df16a-039c-474e-9a51-847d30d8e231n%40googlegroups.com.


Y looks very good. The only thing i can't explain, is the last
graph: You have larger backlash, when your speed is higher. So far
I've observed the opposite (and that's what I can explain, i.e.
through inertia).
But the end result is good: the brown points in the first graph
are all nicely within the tolerance window.
X is strange. I cannot see a consistent pattern. What happens, if
you repeat? Do the graphs look similar?
_Mark
To view this discussion on the web visit https://groups.google.com/d/msgid/openpnp/1c62dfda-a96a-4211-97a5-613d320eb2a3n%40googlegroups.com.






Hi David
thanks for the ongoing testing. In-deed, these are interesting
results.
Just to exclude this for sure: check camera settling. This could be one explanation for the results. Just set it to FixedTime and choose a very long settling time, then redo the calibration:
https://github.com/openpnp/openpnp/wiki/Camera-Settling
If camera settling is not the culprit, here's another possible explanation:
There are two opposing forces at play: friction and inertia.
I'm afraid, my calibration does currently not expect negative
backlash i.e. inertia to win out in the end. At lower speeds, the
algorithm expects friction to take over (that's the whole point of
testing at various speeds in the last graph). But of course,
inertia can still win out, if the machine friction is low even at
low speeds. I don't know enough about different types of mechanics
to know if that is a good or bad sign.
On your X axis the effect is not dramatic. So choosing None is
actually a valid choice. The brown points are sometimes out of the
tolerance band, but they are biased to one side, so this is OK,
i.e. it will cancel itself out (yes, I should center the brown
points around their average in the graph).
You should still follow-up on these spikes, i.e. the micro-step
issue.
On the Y axis, the graph is not from the last calibration, if it threw an Error. The last successful calibration is then retained, as are the backlash compensation settings.
> What is the difference between the light and dark traces?
I think one is theoretical and the other actual.Â
The dark traces are what the planner does in theory (in your case
it is accounting for jerk limits). The light traces is what it
then makes out of it, i.e. it converts it to the controller's
motion control model, which (in case of a Smoothie) cannot limit
jerk, therefore the acceleration is instead moderated in ModeratedConstantAcceleration.
https://github.com/openpnp/openpnp/wiki/Motion-Planner#motion-planner-diagnostics
You could try to use Simulated3rdOrderControl. It will lower the deceleration at the end of a move step-wise and could solve the "inertia always wins" problem:

https://github.com/openpnp/openpnp/wiki/GcodeAsyncDriver#interpolation
_Mark
To view this discussion on the web visit https://groups.google.com/d/msgid/openpnp/8f0387bd-dca9-4123-974a-e36e3d15a8f5n%40googlegroups.com.
There is definitely always this strange peak, at about 0.20 mm

Could this point to some Eigenfrequency/Resonance effect, i.e. the machine/camera shaking quite strongly at certain step sizes?
My tips are very similar as those to David, just before:
_Mark
To view this discussion on the web visit https://groups.google.com/d/msgid/openpnp/93a733cd-e4be-4728-a342-e98394e6b18en%40googlegroups.com.
> I also tried Simualted3rdOrder and it caused OpenPnP to
hang 😢.
What? Could you please set your logging level to TRACE, then retry, then send me the log? If it really hangs, the log should still be available as a file.
https://github.com/openpnp/openpnp/wiki/FAQ#where-are-configuration-and-log-files-located
Or send me your machine.xml if you
want.
_Mark
To view this discussion on the web visit https://groups.google.com/d/msgid/openpnp/74c954d6-15f7-40b6-a6db-804e3d7a3d3fn%40googlegroups.com.