Hi,
Finally, I more or less rewrote the Wiki on that:
https://github.com/openpnp/openpnp/wiki/Bottom-Vision
Tell me what you think, contributions always welcome.
Side remark: Jan is using the Rectlinear Symmetry
variety as his default (that in itself is not the OpenPnP
factory default). Rectlinear Symmetry is of course a
powerful option (and I had high hopes for it), but it turned out
to have huge computation demands, so unless you have a very fast
computer, I'd say stick to the Stock pipeline now
explained in the Wiki. The Stock pipeline also has the
advantage of being compatible with Multi-Shot Vision, e.g.
for aligning parts larger than the camera view, which Rectlinear
Symmetry is not (yet).
Hint to all:
If your Bottom Vision does not work like in the following animation, you are missing out:
_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/8210f71d-7e12-466f-9800-210296195a75n%40googlegroups.com.
Hi Jan,
For the understanding: "- Default Machine Bottom Vision - " (unlike the others with the "-") is not a factory setting, but simply the default vision setting that was found in the configuration when the system upgraded OpenPnP to the Vision Settings system. For new configurations it is identical to the Stock settings, but already cloned so it can be edited.
If yours is gone, simply go to the Vision tab, select the Stock (or other) settings, press Copy and press Paste:
Then you can rename the Copy as you like in the table cell (F2) and assign it in Machine Setup / Vision / Bottom Vision.
Is this needed in the Wiki?
I considered this rather generic OpenPnP GUI usage, but certainly my "developer viewpoint" is not to be trusted 😅
In the Wiki, it is always a balance between too much information, where you lose your readers before they went through the important stuff, and too little 😎
_Mark
Thanks Micael,
I have made some adjustments re your 1.
https://github.com/openpnp/openpnp/wiki/Bottom-Vision#parts-too-big-for-camera
and also this:
https://github.com/openpnp/openpnp/wiki/Bottom-Vision#troubleshooting
Re your 3.
https://github.com/openpnp/openpnp/wiki/Bottom-Vision#global-configuration
But I agree this is still (and always will be) incompletely revised, not only here but elsewhere too.
Re your 2. there is talk about a new documentations system that
(if I understand correctly) is versioned, so we can revise
everything without regard to old OpenPnP version. Users/readers
can still go back to the older Wiki version.
https://github.com/openpnp/openpnp/issues/1537
As always: contribution are welcome!!
_Mark
To view this discussion on the web visit https://groups.google.com/d/msgid/openpnp/003c3a18-0a05-4c50-b79b-11c748ecc290n%40googlegroups.com.
> Is there a way to measure/compare between the two?
If you edit the pipeline, each stage shows its computation time. The computations time is largely dependent on the search range (from the nozzle tip pick tolerance) and mask diameter (from the nozzle tip max. part diameter). If you set both tight (which is easy for 0402) then it will be no problem.
> The rectlinear, seems _much_ more forgiving when it comes
to the tweaking - almost regardless of what I do, it will work.
:-)
That was the intention. Robust, self-tuning. 😎
But there were still some tough nuts I could not make rock solid. One example is exactly the three-legged SOT23 with roundish pads you mention.
Then I made the Vision Compositing / Multi-Shot and this gives you an alternative for SOT23 and the likes.
Watch the video linked below, but .... unfortunately, I
was very tired when I recorded that and kept stuttering about it.
The idea is to isolate the pins on each side separately
(two shots), and then align the part from the composited geometry.
We need to make the pick tolerance very small, so it can
reduce the mask to such a small circle that only one side of
the part is visible in each shot:
https://youtu.be/P-ZudS7QQeE?t=298
https://github.com/openpnp/openpnp/wiki/Vision-Compositing
_Mark
To view this discussion on the web visit https://groups.google.com/d/msgid/openpnp/83f5315d-29b7-4c8e-84bf-8791cf192e15n%40googlegroups.com.
> Unfortunately it will make the process slower because it
requires two pictures at different positions.
True, but because the move is very short, I expect it to be quite fast for that not-so-large SOT23, not much more than any normal vision iteration. It would be nice if Micael could actually provide his log, so we see how much time it costs.
On the other hand: some SOT23 are huge with 1.9 millimeter pitch
and often generous solder pads, are you sure you need bottom
vision at all? AFAIK, reflow aligns such parts nicely.
> A better solution for SOT23 and alike would be to implement rotated pattern matching
Yeah image or even just footprint pattern matching would solve it. But unfortunately there is no "Match Template With Rotation" OpenCV routine, otherwise I would probably have implemented it a long time ago.
The DetectRectlinearSymmetry computation time problem actually
warned me off trying in java (for now). I am toying with
some ideas...
_Mark
> Actually, while I was grabbing screenshots, I also activated part size
> check on this part, and got the same issues with height (height on this
> package is set to 1.000);
> What am I missing? Is height actually height, or is it "Body length"
> (which incidentally is 1.300 on this package)?
Please keep in mind, that the part size (width and height) you provide
as part of the footprint of the package are compared against the image
you have after all image processing has been done. Usually you then only
have the pins visible. I'm using the "Part size check" method
"PadExtents" with the default tolerance of 20%.
> But if it is actually using the dimensions from the
footprint page, it should be width and length, right? Height (Z)
is something else.
> In this case, the error message has a flaw.
Please send a native camera snapsot file and your camera Units per Pixel.
_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/4d9097d4-a2a0-43d1-907b-7cb54858de77n%40googlegroups.com.
This should work using a Stock pipeline, and multi-shot bottom
vision. You need to generate the footprint which is easy.
Best watch the whole video:
_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/e1aca268-14e5-468b-8365-d0c2b6fcfeddn%40googlegroups.com.
Best watch the whole video:
> Could it be that the tray feeder, which does not seem to have a "rotation in tape" setting is part of the problem?
Yes that was my initial guess when I saw your image, because you already had the bracket rectangle but from the wrong side. But then you did not mention multi-shot, so I thought I was mistaken.
Also check the max. part diameter on the nozzle tip. With the bracketing going out so far, I guess it is too large.
Also: I always recommend cropping the camera image to "only valid pixels" in Advanced Camera Calibration (slider all the way). So the black margins go away. They fool Multi-shot into thinking it can use this margin area, when in fact it is partly black.
(if it was for me, I would make this the default, or even remove
that slider).
_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/d7d8dba3-a978-4afa-b504-4151b2cb3750n%40googlegroups.com.
> Could it be that the tray feeder, which does not seem to have a "rotation in tape" setting is part of the problem?
Also check the max. part diameter on the nozzle tip. With the bracketing going out so far, I guess it is too large.
Also: I always recommend cropping the camera image to "only valid pixels" in Advanced Camera Calibration (slider all the way). So the black margins go away. They fool Multi-shot into thinking it can use this margin area, when in fact it is partly black.
> It is set to 20, this part is about 18 (diagonal), so I guess it should be ok?
It is for parts that fit inside the camera view. For larger parts and multi-shot it controls the max mask diameter of the corner/bracket shots.
But if you set the camera to "only valid pixels" it does not matter if you set it too large, OpenPnP will always reduce it to the smaller camera dimension.
> So, it is better, but not good enough. I would not try to place it on a real board. I _think_ this may be because the pins are not flat, so the reflection of them is different depending on the camera angle
Yes the pins are very thin, rounded and angled, so reflection is
bad. Maybe a larger/bowl shaped diffuser would help, so strong
light comes from a wider range of angles.
You have played with the Threshold and Min. Detail
Size sliders, right?
_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/c058a4e3-41a4-45b7-b8ad-3694993b9580n%40googlegroups.com.