Tony is right, of course, but he jumps right into the solution
and its details, so I'd like to take a step back, and give a
broader perspective. I'm no mechanical engineer, so this is just
what I learned as a hobbyist, so far (Numbers for referencing).
Now that is laid out, let's talk about it:

_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/7d8177c2-b1f5-4f9d-8af7-696cbd28ca1bn%40googlegroups.com.
> Before proceeding with any changes though, I want to think about also adding support for fiducials that are local to specific placements
Assuming that flaws in machine motion mechanics and/or PCB manufacturing are always locally continuous, wouldn't it make sense to model a net of all the fiducials, regardless of whether they are intended for specific placements or for the whole PCB, (or even for the Panel) and then smoothly interpolate between them?
http://stockage.univ-brest.fr/~herbette/Data-Analysis/data-analysis-steven-interpolation-recov.pdf_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/14f7115d-8267-42b2-8fb9-c985759134ebn%40googlegroups.com.
Hi,
if this can help, a couple of years ago while adding linear scale I make some measurements of X axis position error:

One measure every mm, moves from the motor to the idler pulley and back.
The shift between the curve is the backlash, the high "frequency"
sinus shape is the pulleys eccentricity and certainly stepper
error. The increase in error is the idler pulley eccentricity.
That's a real low cost one!
I don't know what is causing the low "frequency" error.
With better quality pulleys and for small moves accuracy can be not so bad...
joël
To view this discussion on the web visit https://groups.google.com/d/msgid/openpnp/055a93b7-6dd9-3551-b733-90048b0df802%40makr.zone.
Wow, very illustrative, thanks!
I didn't think pully/idler errors would be that large. But this
could easily be compensated (obtaining the data is the difficult
thing for those that do not own linear scales).
The low frequence error is not important for PnP, IMHO, as I
explained earlier here. It could come from changing drag chain
weight/forces.
Did you do it multiple times? How repeatable is it? At different
speeds/accelerations?
Did you do it continuously or always full axis motion to the
point (i.e. once from the right end, once from the left end of the
axis)?
_Mark
To view this discussion on the web visit https://groups.google.com/d/msgid/openpnp/bedc8ea0-e5c9-0f56-97df-60993a8c223b%40gmail.com.
Position were measured every mm, motor moves 1mm, stops, waits
for stabilisation and position is measured.
Sorry I don't have two plots with exactly the same conditions but with different belt tension :

To view this discussion on the web visit https://groups.google.com/d/msgid/openpnp/1a45c7f2-431f-a2b9-f20b-f52511c4ce53%40makr.zone.
--
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/92623f9a-5138-b233-88b7-563f17e28e58%40mcguirescientificservices.com.
> The difference in the peaks for instance on the blue scale is about .1mm So while the graph looks like there is huge error, the error is likely as good as any DIY system will ever get.
I agree. One needs to only look at one of the curves (the
backlash we can compensate) and only for one cycle. All the lower
frequency stuff can be sufficiently compensated by the Affine
Tranform, i.e. by fiducials.
And thinking about it some more, it would probably not be easy to
compensate the sinusoid after all, as the idler (unlike the
pulley) can slip on the belt, so its phase will likely shift over
time. Probably easier to buy a higher quality one.
For a successful wheel run-out compensation, one would need a
design, where all the wheels are toothed (idlers too), and
of the same (known) number of teeth. Therefore, you'd need a
construction, that only bends the belt around its toothed side.
_Mark
To view this discussion on the web visit https://groups.google.com/d/msgid/openpnp/CA%2BKNHNympsTqp6kpX3Hrt2ra4vbv8JXqCSr4%2B0MoHM897QZHFA%40mail.gmail.com.
Hi, Tony. I have a question for you. Imagine I have a critical placement where the most accuracy possible is needed. If I create a fiducial at X, Y (using the part shape as the fiducial shape ) and then have the part placement at X, Y , will that “guarantee” that the part is placed at the X,Y location found for the fiducial?
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/4c198c71-c5a3-4a82-b470-a93fbe6114adn%40googlegroups.com.
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/1ec7f284-83a1-468b-a0ae-df28b043186an%40googlegroups.com.
Jan,
like you said, you are "ignoring that all belts and the PCB
itself will also expand". The whole machine does, so the resulting
error will be much less than 94µm. Everything on the machine
is expanding or contracting, so errors can only be in the differences
of thermal expansion coefficients. If a machines is made of
Aluminium throughout (as seems to be the case for any
ambitious design), the belt will stretch to whatever length the
Aluminium gives (assuming your tensioner is rigid), so these
differences will be minor. I guess if you were to mix Steel and
Aluminium, you must be careful not to create bimetal bending.
And using a wooden tables such as in the simplest Liteplacers
could be a problem too (maybe thermally and hygroscopically).
But ...
There are fiducials on each PCB, so both the position and the dimension of the PCB are compensated. And how long does it take to assemble one PCB? How many °C of temperature change during that time?
The bottom camera position is always implicitly calibrated when
you calibrate a nozzle tip. That's one of the reasons why nozzle
tip calibration is important, even if you do not have run-out.
The more advanced feeder classes can be position calibrated by
vision (BlindsFeeder, ReferencePushPullFeeder, others), some are
even vision-all-the-time (LoosePartFeeder, etc.)
The nozzle tip changer can be vision calibrated.
All the above can be configured so the position calibration is invalidated on machine homing. So simply re-homing the machine after a particularly bad temperature change can take care of all that.
To sum it up: I do not think thermal expansion in the mechanics* is a problem for OpenPnP at all. 😎
_Mark*) Some users reported that the camera can exhibit image
shift/distortion
when the camera heats up. That's a completely different matter...
Probably best to replace that camera or at least warm it up
consistently before calibration and use.