I'm too tired to follow this one up today, but is everybody sure the Strip Feeder is working?In the NullDriver test job the strips are deliberately offset. Vision gets the holes alright but nothing is corrected in the pick location.Unfortunately the Test Unit does not seem to test whether it actually picks at the right place.Need to go to bed..._Mark
Wrong mailing list, I think, Mark. :)Easy to test this using the UI in simulator mode, as you'll see the camera go to the corrected position. I know it was working as of a month or two ago as someone submitted a fix that significantly improved the vision and I tested it quite a bit then.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 view this discussion on the web visit https://groups.google.com/d/msgid/openpnp/f82ba87f-3e39-471b-9b12-23071e1a06b5%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/5bebe1e1-cf0e-4ab5-b3f7-b135b674b0d2%40googlegroups.com.
OK. A simpler case, so we're positive it's not something I'm
doing wrong.
https://makr.zone/ReferenceStripFeederBug2.gif
It seems as if it was trying to gradually adapt to a "running
average hole position", instead of just taking the holes as
definitive guides.
This might make sense when your hole recognition is completely
unreliable and you can't trust the last result alone. If
that was the intention, then maybe that's OK.
_Mark
To view this discussion on the web visit https://groups.google.com/d/msgid/openpnp/CA%2BQw0jzbu-DsvX6JcgESdN7FZOVoh47aHR4Wbi4QcoGG6DLzUA%40mail.gmail.com.
OK. A simpler case, so we're positive it's not something I'm doing wrong.
- Check my working assumptions: it is the job of the Vision to correct offsets, that may have happened since the feeder was "last seen". Due to a magnet mount shifted, the homing fiducial or end-stop slightly moved, your steps per mm tuned, a fresh belt mounted or whatever can happen on a DIY machine. If the assumption is wrong, we can probably stop right here :-)
- Otherwise, start fresh with the OpenPnP test case
- Manually change each hole X coordinate by -1mm. So the distance of the holes remains constant, the feeder is just shifted in X, as it might happen, after you had an X end-stop crash or whatever.
- Apply.
- Then use Feed, repeatedly.
https://makr.zone/ReferenceStripFeederBug2.gif
It seems as if it was trying to gradually adapt to a "running average hole position", instead of just taking the holes as definitive guides.
To view this discussion on the web visit https://groups.google.com/d/msgid/openpnp/489a10b2-f032-56c5-ed2f-27f22506ff06%40makr.zone.
Hi Jason, Tony
I've implemented the pick and place location check. It recognizes
the pockets in the strips and the placements on the boards.
Assuming a tolerance of 0.1mm (adequate for the 0201 parts in the example), I had trouble with the accuracy and this uncovered more issues.
The ReferenceStripFeeder standard pipeline has a Canny edge detection in front of Hough Circles.
But Hough circles has its own Canny edge detection in-built, so
this will create "the edges of the edges". What Hough is seeing is
this (simulated with two Cannies in a row):

Sometimes it will therefore fuse parts of the outer and inner
circles together and create this:

That's easily observable in the NullDriver Auto Setup.
The Canny should be removed.
Also, I don't think a Median Blur is a good thing before edge
detection, it will amplify aliasing. Just leave the Gaussian blur
in.
When I disable Canny and BlurMedian I get this:

Now I can successfully pick 0201. Well in the NullDriver... :-)
That's what I'd recommend. But as @tonlyluken is on it, I hope he
can consider and integrate this:
<cv-pipeline>
<stages>
<cv-stage
class="org.openpnp.vision.pipeline.stages.ImageCapture"
name="original" enabled="true" settle-first="true"
count="1"/>
<cv-stage
class="org.openpnp.vision.pipeline.stages.ConvertColor"
name="gray" enabled="true" conversion="Bgr2Gray"/>
<cv-stage
class="org.openpnp.vision.pipeline.stages.BlurGaussian"
name="predetect-1" enabled="true" kernel-size="5"/>
<cv-stage
class="org.openpnp.vision.pipeline.stages.DetectFixedCirclesHough"
name="results" enabled="true" dp="1.0" param-1="25.0"
param-2="20.0"/>
<cv-stage
class="org.openpnp.vision.pipeline.stages.ImageRecall"
name="recalled" enabled="true" image-stage-name="original"/>
<cv-stage
class="org.openpnp.vision.pipeline.stages.DrawCircles"
name="display" enabled="true" circles-stage-name="results"
thickness="1">
<color r="255" g="0" b="0" a="255"/>
</cv-stage>
</stages>
</cv-pipeline>
_Mark
To view this discussion on the web visit https://groups.google.com/d/msgid/openpnp/CA%2BQw0jxCWJR5L%3DEets7g5HA0hVinZR%3D%2B-24d5hwf6E1mD9y8Sg%40mail.gmail.com.
Marek, I don't understand.