Hi Toby!
On 23.09.2025 12:58, Toby Dickenson wrote:
> On Tue, 23 Sept 2025 at 10:44, 'Jan' via OpenPnP
> <
ope...@googlegroups.com <mailto:
ope...@googlegroups.com>> wrote:
>
> Hi Toby!
> Interesting finding! I'd guess you could debug it by
> forcing a bad pick
> position.
>
>
> I have been doing that today, and have found a problem with my suggestion.
>
> Suppose there is a false negative result from the vacuum test. The
> nozzle thinks it failed to pick the part, but actually it succeeded. The
> current retry implementation causes the nozzle to dip back down while
> carrying the part, and maybe the next vacuum check will see that the
> part is present. But my proposed "fix" causes the part to get tossed in
> the air if it turns the vacuum off (vacuum valve, not pump!) before
> descending again.
>
> All of these are marginal cases that occur very infrequently in practice
> of course.
>
Hm... that's a good catch too! I suppose that a false positive even with
todays implementation (keep vacuum active, just go down to pick
location) will result in new issues as there is a good chance to push
the part off when going down to the pick location again.
To overcome that, a discard cycle seems mandatory...
> 1) I was not aware, that pick retry due to vacuum part on detection
> skips feeding a new part. IMHO that should be done.
>
>
> Openpnp has always had **both** types of retry. This is the difference
> between "pick retry count" in the part configuration, and "pick retry
> count" in the feeder configuration.
>
I remember that you talked about two different "pick retry count"
values/settings. Now I understand what you mean. So, what's actually
happening in the job processor and which of them is triggered? I assume,
that after picking a part, a single vacuum part on detection is used to
"retry". And which is it?
> <
https://github.com/openpnp/openpnp/wiki/Retries>
>
Do I understand the wiki correctly, that vacuum part on detection is
used to check if part has been picked. If not the nozzle goes down again
trying to pick it once more (your initial question of this thread). If
there is finally no part on the nozzle, the entire process of feeding
and picking is retried according to the part-retry-counter?
> Then a retry
> cycle might feed a new part, go lower by eg. 0.1mm and increase dwell
> time by eg. doubling. This shall provide a good opportunity to succeed.
>
>
> Thats a great idea!! I shall add this to my tests.
>
Seems, there are lot of errors and false-positives to consider.
Hopefully we'll catch them all until you spend your time improving the
current situation...
Jan