
Ar you saying they printed stuff in white on the back of that thing?
(photo is really bad)
_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/992e7b5e-7199-4ad6-9301-c9039238718dn%40googlegroups.com.
Ar you saying they printed stuff in white on the back of that thing?
(photo is really bad)

Aren't they morons?!
Assuming you use default stock pipelines, and you have (at least)
the DEBUG logging level selected, look in your
~/.openpnp2/org.openpnp.vision.pipeline.stages.ImageWriteDebug/
directory for images bv_source_*.png and send those.
Also tell me your calibrated Unit per Pixel on the bottom camera.
I'll try something.
_Mark
To view this discussion on the web visit https://groups.google.com/d/msgid/openpnp/e29eab6f-475c-44f8-b281-efa78c687f11n%40googlegroups.com.
Another thought: are these standard 0.1" pitch contacts?
Then with a well calibrated machine, perhaps you'd be able to place them without using bottom vision at all. Perhaps they would also self-align further in reflow, through surface tension.
https://youtu.be/_5lksMvmqQc?t=66
_Mark
To view this discussion on the web visit https://groups.google.com/d/msgid/openpnp/a6378bee-7976-3185-61c7-915ed7302422%40makr.zone.







Hi Fabian,
I was hoping to distinguish ENIG "gold" color from markings, but that seems hopeless. 🙁
However, as I now see you have a magenta color-keyed backdrop, so we could forget about contacts altogether and just go for the overall outline of the whole part (maybe you need to color the backdrop a bit better, i.e. less whitish smudges).

Unfortunately, that means going back to square one 🙁. You would
have to undo the changes to the center in the E-CAD, i.e. again
make it centered on the whole part (PCB) body. I'm just assuming
you can pick it like that (nozzle tip rim must never overlap the
metallic cover edge).
Sorry about that U-turn 😅
Then do the following:
<stages> <cv-stage class="org.openpnp.vision.pipeline.stages.ParameterNumeric" name="pDetail" enabled="true" parameter-label="Min. Detail Size" parameter-description="Minimal size of a detail that should be included in the detected shape." stage-name="filterContours" property-name="minArea" effect-stage-name="contours" preview-result="true" minimum-value="0.0" maximum-value="0.25" default-value="0.01" numeric-type="SquareMillimetersToPixels"/> <cv-stage class="org.openpnp.vision.pipeline.stages.ImageCapture" name="0" enabled="true" default-light="true" settle-option="Settle" count="1"/> <cv-stage class="org.openpnp.vision.pipeline.stages.ImageWriteDebug" name="deb0" enabled="true" prefix="bv_source_" suffix=".png"/> <cv-stage class="org.openpnp.vision.pipeline.stages.BlurGaussian" name="3" enabled="true" kernel-size="9" property-name="BlurGaussian"/> <cv-stage class="org.openpnp.vision.pipeline.stages.ConvertColor" name="5" enabled="true" conversion="Bgr2HsvFull"/> <cv-stage class="org.openpnp.vision.pipeline.stages.MaskHsv" name="threshold" enabled="true" auto="false" fraction-to-mask="0.0" hue-min="60" hue-max="130" saturation-min="32" saturation-max="255" value-min="64" value-max="100" soft-edge="0" soft-factor="1.0" invert="false" binary-mask="true" property-name="MaskHsv"/> <cv-stage class="org.openpnp.vision.pipeline.stages.MaskCircle" name="4" enabled="true" diameter="525" property-name="MaskCircle"/> <cv-stage class="org.openpnp.vision.pipeline.stages.FindContours" name="findCountours" enabled="true" retrieval-mode="List" approximation-method="None"/> <cv-stage class="org.openpnp.vision.pipeline.stages.FilterContours" name="filterContours" enabled="true" contours-stage-name="findCountours" min-area="0.01" max-area="900000.0" property-name="FilterContours"/> <cv-stage class="org.openpnp.vision.pipeline.stages.MaskCircle" name="11" enabled="true" diameter="0" property-name=""/> <cv-stage class="org.openpnp.vision.pipeline.stages.DrawContours" name="contours" enabled="true" contours-stage-name="filterContours" thickness="2" index="-1"> <color r="255" g="255" b="255" a="255"/> </cv-stage> <cv-stage class="org.openpnp.vision.pipeline.stages.MinAreaRect" name="results" enabled="true" threshold-min="100" threshold-max="255" expected-angle="0.0" search-angle="45.0" left-edge="true" right-edge="true" top-edge="true" bottom-edge="true" diagnostics="false" property-name="MinAreaRect"/> <cv-stage class="org.openpnp.vision.pipeline.stages.ImageRecall" name="14" enabled="true" image-stage-name="0"/> <cv-stage class="org.openpnp.vision.pipeline.stages.DrawRotatedRects" name="15" enabled="true" rotated-rects-stage-name="results" thickness="2" draw-rect-center="false" rect-center-radius="20" show-orientation="false"/> <cv-stage class="org.openpnp.vision.pipeline.stages.ImageWriteDebug" name="deb1" enabled="true" prefix="bv_result_" suffix=".png"/> </stages> </cv-pipeline>


To view this discussion on the web visit https://groups.google.com/d/msgid/openpnp/bac13d45-1dd0-43dc-b173-a04d531a06ccn%40googlegroups.com.




> But, there is a catch with the view angle (the magenta is not wide enough :-) )
Can't you make it so?
> Masking out with a polygon mask did not work for me
You should not apply any additional mask, Vision Compositing
already does that using a circular mask and that should be
considered minimal, as it goes into the compositing calculation.
> ... as masking whitens the outline :-/
Well, the mask must now come after the MaskHsv.
_Mark
To view this discussion on the web visit https://groups.google.com/d/msgid/openpnp/a8ed5ceb-0d03-40ee-aed1-a69519cbf16fn%40googlegroups.com.
> But, there is a catch with the view angle (the magenta is not wide enough :-) )
Can't you make it so?
> Masking out with a polygon mask did not work for me
You should not apply any additional mask, Vision Compositing
already does that using a circular mask and that should be
considered minimal, as it goes into the compositing calculation.
> ... as masking whitens the outline :-/
Well, the mask must now come after the MaskHsv.




> one more thing, is green the better color of choice ?
No.
> I figured I may not be able to make the screen
larger, but I can bring it closer to the tip, which will make it
use more space of the viewport
Good! I'm quite sure this will work.
I'm mostly offline today.
_Mark
To view this discussion on the web visit https://groups.google.com/d/msgid/openpnp/67bce2c0-cab4-4b1f-b2e8-fdd0a335accen%40googlegroups.com.
> > one more thing, is green the better color of choice
?
> No.
I was a bit quick with that. From a vision standpoint it does not matter. But of course it is also a matter of any electronic parts not having this color. As the very common Juki nozzle tips use green, I guess most part manufacturers will actively avoid using green as a color on parts. Maybe.
But I would not rip out the magenta just because of that
assumption. Maybe in case you need to replace it anyways
😉.
_Mark
To view this discussion on the web visit https://groups.google.com/d/msgid/openpnp/faa73fdd-ec65-a12a-a1c4-4c26f653349d%40makr.zone.
Hi Fabian,
Hi all,
I made some extensions for this use case:

See the "Instructions for use" in the PR:
https://github.com/openpnp/openpnp/pull/1546
Available in the test version, allow some minutes to deploy.
_Mark
To view this discussion on the web visit https://groups.google.com/d/msgid/openpnp/c70df703-9b2b-4154-86e9-cf7df1a8fcf5n%40googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/openpnp/e4f22ddd-44ac-db64-b377-484744e76fe1%40makr.zone.








Fabian,
please follow the following carefully, it is complex and everything
must play together:


_Mark
To view this discussion on the web visit https://groups.google.com/d/msgid/openpnp/d3b9eca3-95ad-4d88-8b4b-d974a9d8c9a6n%40googlegroups.com.
Am 16.06.2023 um 14:14 schrieb 'Mark' via OpenPnP <ope...@googlegroups.com>:
Fabian,
please follow the following carefully, it is complex and everything must play together:
- Downloaded the newest test version.
- Select the "Whole Part Body Bottom Vision Settings" on packages/parts where you need it.
- Select the Body method on the Vision Compositing tab, if you need multi-shots because the part is too large for the camera view.
- <w2Lofd1zvdXtlXKA.png>
- Ensure the Nozzle Tip Background Calibration is done properly and shows the magenta background color (either manually or by using Issues & Solutions, which is triggered, if you switch off Nozzle tip calibration and then press Find Issues & Solutions):
https://github.com/openpnp/openpnp/wiki/Nozzle-Tip-Background-Calibration
- Probably the most important: Your camera images from earlier messages show your magenta shade is not large enough to cover the whole camera view. To handle this, on the Nozzle tip, make sure the Max. Part Diameter is smaller than the shade in all directions across the center of the camera view. As you can see, that diameter is rather small:
- <tQOobm5bd0we7GlI.png>
- Needless to say, it yould be better to fix the shade, i.e., make it larger or move it closer to the camera.
To view this discussion on the web visit https://groups.google.com/d/msgid/openpnp/e491be2f-728a-060b-30ab-c027bd522af0%40makr.zone.
> A feature of Version 3 ( to which I upgraded ) was to
lower the bottom camera - that now bites me in the butt :-(
> Fixing the shade is not really a viable option, as the
design is „special“.
To view this discussion on the web visit https://groups.google.com/d/msgid/openpnp/72BC6809-34BF-4945-8A13-DC90F39E6CA2%40googlemail.com.