What's the optimal way to tell the robot if the bin is emtpy?

  • I’m using Mech Vision and Mech Viz 2.1.2
  • My camera is LSR-S
  • Robot model is Fanuc M-10iD8L
  • I’ts an ETH setup. I have a camera mounted around 1000mm above my bin.

It’s a random bin picking project.
I want to be able to tell whether the camera couldn’t define any object at the bottom of the bin or if the bin is really empty at the end.

Hi @mgun,

Great question! In Mech-Viz, the Check Vision Result Step is designed exactly for this purpose. It has 5 exit ports that let you handle different scenarios:

Exit Port Description
Has results Vision found objects — proceed to pick
No result Vision ran but found no objects
No cloud in ROI No point cloud data in the ROI — typically means the bin is truly empty
Timeout Vision processing timed out
Not called Vision service was not executed

How to distinguish “bin is empty” from “camera failed to detect”:

  1. “No cloud in ROI” → All target objects have been picked. The bin is empty. This exit port is prioritized over “Has results” and “No result”.
  2. “No result” → The camera captured data but no objects were recognized. This could mean objects are present but not matchable (e.g., orientation issues, occlusion).

So in your Mech-Viz project, after the Visual Recognition Step, connect a Check Vision Result Step and wire the No cloud in ROI exit port to your “bin is empty” handling logic (e.g., signal the robot to swap bins).

For more advanced logic:

You can also use Custom Alerts in Mech-Vision to define specific conditions (like object count thresholds) and send alert codes to Mech-Viz. The Check Vision Result Step can then branch based on these custom alerts.

For reference:

Hope this helps! Let us know if you need further assistance.