Position dependent Offset between Top-Camera and Nozzle (LitePlacer)

312 views
Skip to first unread message

Team14

unread,
Oct 18, 2017, 6:14:52 AM10/18/17
to OpenPnP
Hi again,

we did now a calibration (measurement without any adustment) of the offset between the camera and the nozzle.

The camera and the nozzle of course are mounted on the same head.
I cannot explain the measured data, since it shows a systematic dependency of the offset-error, depending on the position over the table.

Procedure of measurement:
* move the nozzle to 100mm raster points
* stick a piece of jewing gum beneath it onto the table
* make an indentation with the nozzle into the jewing gum
* repeat for all raster points
* then move camera over this points and save images

The images where taken from sceenshots of OpenPnP, so the scale is included in the images (0.1mm ticks).
Then the images where aligned in Inkscape along their image center axis.

Any ideas, where this could come from, and what we can do about it?
The last chance I see is to compensate this by hacking a software correction - but this seems to be a major task.

Greets,
Karl
analyse-1.png
analyse-1.svg
head-front.jpg
head-left.jpg
head-right.jpg
table-perspective.jpg
table-top.jpg

Jason von Nieda

unread,
Oct 18, 2017, 9:48:31 AM10/18/17
to OpenPnP
Hi Karl,

It looks like your camera is mounted using rubber tubing, or rubber spacers. That would be the first thing to replace for me. Using something more rigid. If your cable assembly is not being held rigidly, as it moves around the torque from the cables could easily move the camera.

An easy test for this is to touch the camera with a finger and a little bit of pressure. Does the image move?

Jason


--
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 post to this group, send email to ope...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/openpnp/250dd2ff-8e0b-463b-a1c6-90e641881ddc%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Bernd Walter

unread,
Oct 18, 2017, 10:03:55 AM10/18/17
to OpenPnP

A few things I've noticed while building mine.

My Y rails weren't parallel, so the gantry twisted over the Y position.
Your error looks mostly X related, so unlikely.

The camera optical axis in my head camera at least is not vertical.
This could be just mounting - there are some points left to be checked on my machine.
Or it is just a hardware property of the camera module to be off from the mounting.
In any case, if your camera to surface distance is not constant a non vertical optical axis would explain an offset.
You want a constant height anyway, so just verify and calibrate it if you havn't already.


Greets,
Karl

Henrik

unread,
Oct 18, 2017, 3:20:16 PM10/18/17
to OpenPnP
Have you verified that the machine moves the same distance per step for a full turn of the motor/pulley?
With a dial test indicator on the axis, jog the machine in steps of 0.1mm and check the movement on the DTI, do this until the motor have completed a full turn and verify that the machine Always moves an equal distance.

I'm thinking that if you have half a motor revolution worth of offset between nozzle and camera and, for example, the motor pulley isn't concentric with the motor shaft the machine won't move the distance you think it will. That could possibly explain the more or less static error on the X-axis.

Then, which Bernd also mentioned, check that the Y-axis is parallel to surface, if the distance between the camera and the surface changes - AND the camera isn't parallel with surface the image will "drift".

And check the rigidty of the whole setup. My camera mount is all metal, screwed into other metal and it's STILL fairly flimsy. Not that it moves on its own but it doesn't take much effort to push/pull/twist on the camera housing to make it go WAY out of "alignment".

/Henrik. 

Michael Anton

unread,
Oct 18, 2017, 5:01:09 PM10/18/17
to OpenPnP
If your X axis is on the gantry, it looks like your X and Y axis are not perfectly square, and that the belts for Y do not have the same tension.  The out of square axis accounts for most of the error, and the drift from one end to the other is due to differing belt pitch between the two sides, which can be cause by uneven tension.

So, square up the axis, probably by loosening one of the Y pulleys on one side, so it tracks square on the near side, then move to the other end, and adjust belt tension to get the other end square.  Belt tension will affect the initial squaring, so you may have to repeat this a couple of times.

Jason von Nieda

unread,
Oct 18, 2017, 5:03:32 PM10/18/17
to OpenPnP
Henrik and Michael,

Note that Karl is referring to offset error between camera and nozzle, not absolute positioning error. In other words, he is finding that when he moves the camera and the nozzle to the same position, there is an error. This indicates that the offsets between the nozzle and camera (which are attached to each other on the head) is changing.

What you both seem to be describing is absolute error with relation to the head and table.

Jason


--
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 post to this group, send email to ope...@googlegroups.com.

Michael Anton

unread,
Oct 18, 2017, 6:20:12 PM10/18/17
to OpenPnP
Ok, got it.

One thing I didn't think to mention that might cause this, is if the camera is not mounted parallel to the bed (it's hard to tell from the images, but it doesn't look parallel), and if the camera happens to be changing in height slightly at different locations.  Then the image seen by the camera would be different.  So, if one of the Y rails was at a slightly different height than the other, or not the same height over the length, then something like this might be observed.

Team14

unread,
Oct 18, 2017, 7:20:46 PM10/18/17
to OpenPnP
Thanks for your hints.

Yes, the camara is held by rubber hoses - this is needed to adjust the angle of the camera. We did this procedure totay again.
When I pull/push the wires attached to the camera/camera mount, the image moves about 0.1mm, but since the cables are fixed relative to the camera, there shouldn't be any force induced into the camera mount. Not of that scale! We are talking about 0.46mm offset variation (!!) in the y-axis and 0.13mm in the x-axis.
I will try fixing the cables though.

I have measured now also the heights of the y bars and of the x bar. Nothing suspicious. A variation of about +-0.4mm - I think this is acceptable.





Team14

unread,
Oct 18, 2017, 8:07:34 PM10/18/17
to OpenPnP
@Jason, thanks for pointing out, that it is all about the deviation of the offset - which one would expect to be zero over the whole table.

Bernd Walter

unread,
Oct 18, 2017, 8:15:47 PM10/18/17
to OpenPnP


On Thursday, October 19, 2017 at 1:20:46 AM UTC+2, Team14 wrote:
Thanks for your hints.

Yes, the camara is held by rubber hoses - this is needed to adjust the angle of the camera. We did this procedure totay again.
When I pull/push the wires attached to the camera/camera mount, the image moves about 0.1mm, but since the cables are fixed relative to the camera, there shouldn't be any force induced into the camera mount. Not of that scale! We are talking about 0.46mm offset variation (!!) in the y-axis and 0.13mm in the x-axis.
I will try fixing the cables though.

Are the results reproduceable for given positions?
There is a clear tendency, especially from left to right, but they are not strictly linear and the X offsets also
changes with Y positions.
Do you use squareness correction?
This would explain why they are different, because for every Y move X gets a correction offset.

Hendric had a very interesting idea about off centric pulleys.
If they are reproduceable you might want to check if that same offset repeats every full pulley rotation.
On the other hand - it really won't explain why an X move would create an Y offset.
Y moves are compensated with squareness correction on X, but X moves are strictly just X moves.
Could cause X offsets, but not Y - Y won't move at all for X.
Y would move for cam to nozzle move, if you have a Y offset between them, but even then, Y moves
the same amount for all the X spots in the same row.
Should be a red hering.
But you run on rolers - wonder if any of them could be off centric enough to cause such a high offset.

Just for completeness, since it is a simple test.
Did you check if the coordinates send to your axis controller have the correct offset between head and nozzle?

I assume you didn't rotate the nozzle during the tests.


> I have measured now also the heights of the y bars and of the x bar. Nothing suspicious. A variation of about +-0.4mm - I think this is acceptable.

This is a high offset when it comes to camera focus, picture size and pick/placement height, but won't explain anything near of the offsets you see.
Your height variation would require a camera angel of 45 deg to explain similar sized XY offsets - absolutely unlikely.

Sorry - no real idea, just a bunch of random thoughts.
It really confuses me why an X move would introduce a dynamic Y offset.
Y should move to the exact same positions along a row.

Juha Kuusama

unread,
Oct 19, 2017, 12:48:46 AM10/19/17
to OpenPnP
Do some math on the offset measurements to find out if the nozzle to camera distance is changing or if the distance stays the same but the angle changes. The latter would indicate that the head wobbles or twists when it moves.

Henrik

unread,
Oct 19, 2017, 4:24:59 PM10/19/17
to OpenPnP
Jason & Team14,
Yes, I understand that but my theory is the axis movement might not be linear across a full turn of the motor/pulley.

For example, lets say the machine moves 60mm for each turn of the motor/pulley and that the physical distance between the nozzle and the camera is 90mm. This means that the motor/pulley must turn 1.5 revolutions to move the camera to where the nozzle made its mark in the cheewing gum. But if the axis movement isn't linear with the rotation of the pulley due to the pulley circumference not being concentric with the motor shaft then the axis might move 29.7mm for the first 180° and 30.3mm for the second 180° worth of rotation. This will still be 60mm/rev but the travel isn't linearily distirbuted across the rotation of the motor/pulley. This eccentricity could also make the belt tension vary which can both cause the accuracy of the positioning to change in its own right but also put more load on the motor which might cause it to not resolve each microstep as it otherwise might be able to do.

Obviously, such a "wobble-error" would ALSO be seen as an absolute positioning error but depending on how you measure that you might not have noticed it. So, if nothing else stands out I suggest you do put a DTI on the axis and move it 0.1mm steps or something for a full rotation of the motor and verify that the axis movement IS linear.

Anyway, it's all just speculation and guesses from my end, I haven't even done any math or simulation on how much off center the pulley would have to be :-)

/Henrik.

Jason von Nieda

unread,
Oct 19, 2017, 5:01:18 PM10/19/17
to OpenPnP
Ah yes, that's a possibility. Thanks for clarifying!

Jason


Team14

unread,
Oct 20, 2017, 6:26:13 AM10/20/17
to OpenPnP
@Henrik, thanks for your explanation.
We already delt with excentric pulleys on the y-axis, since the drive shaft had about 7.78mm instead of 8.00. We exchanged that shaft, and the nonlinearity of the y-axis disappeared.
The effect you are talking about could only introduce an x dependent delta-x, but not a y-dependent delta-x, right?
I've also measured this wobbling in the x-axis with a precise ruler and going in 1mm steps over it. But nothing that exceeds the repeatability of the machine.

Someone asked, if we use the non-squareness compensation: no, we don't use it.

If the results are reproducable?
I cannot say that for sure. But how we deal now with this error is like this:
1) We adjust the offset between the nozzle and the camera at our HeapFeeders DropBox - this is where most of the vision happens.
2) We manually change the positions of the fiducials in a board.xml, so error of the cam-nozzle offset gets compensated.
And this gives us now very good results of the placement precision. So I would say, yes this kind of error is reproducable.

@Juha
What kind of math do you think I should do here to find that out? From the measured points angle-variations are not distinguishable from distance-variations.

I think we will fix the heights of the x and y-bars as good as we can, and then we will do another measurement. But for now we have a workaround found.

Greets,
Karl

Juha Kuusama

unread,
Oct 20, 2017, 8:26:14 AM10/20/17
to OpenPnP
> From the measured points angle-variations are not distinguishable from distance-variations.

It seems to me that the simplest explanation is that when the gantry moves to right, it also twists a little. So, the absolute distance doesn't change, the angle does.
Reply all
Reply to author
Forward
0 new messages