Bin picking / Understanding 3D vision / Video

Preventing and recovering from collisions in Pickit 3D Applications

For automation engineers tackling their first 3D vision bin picking projects, nothing is more frustrating than a collision that brings the entire cell to a protective stop. The Pickit 3D system provides powerful tools to prevent these unwanted interruptions, and standard programming practices to recover quickly when the unexpected happens.

This post will walk you through setting up your Pickit system to proactively avoid tool-obstacle collisions and implement robust recovery routines in your robot program.

Part 1: Proactive collision prevention via Pickit configuration

In constrained scenarios like bin picking, preventing the robot tool from colliding with the bin or other surrounding obstacles is paramount for maintaining an uninterrupted application. Pickit addresses this by checking whether a detected pick point would result in a collision before sending the command to the robot.

1. Defining the robot tool model

Collision prevention starts by accurately defining the tool model on the Picking page of the UI. Defining a tool model is highly recommended as it allows Pickit to prevent collisions between the robot tool and obstacles in the picking area. You can choose between generic models (like the Box-shaped tool), Pickit billet picker models, or upload a CAD file.

The tool model editor for the Box-shaped tool

2. Defining Obstacles

Pickit checks the defined tool model against two main sources of obstacles that can be independently enabled:

A. Camera scene points (dynamic obstacles): These points represent the 3D scene visible to the camera. This is primarily used to prevent collisions between your tool and the contents of the bin -parts other than the one currently being picked. These obstacles are dynamically updated every time a detection runs.

B. Collision environment (static obstacles): These are user-defined obstacles whose location does not change over time. This is crucial for modeling static structures that might not be fully visible to the camera.

  • Modeling the bin: The most common obstacle defined here is the bin itself. On the Setup page, you can conveniently specify the bin as a collision obstacle. For box-like bins, it is recommended to initialize it from the Region of Interest (ROI) box using the "Set from ROI" button. You can then customize the geometry to model specific features like handles or slanted walls.
  • Other obstacles: It is also possible to model obstacles surrounding the bin, such as fences.

The bin geometry can be explicitly modeled as part of the collision environment.

3. The Result: unpickable objects

If, based on the defined tool model and the obstacles (scene points or collision environment), reaching a specific pick point would cause a collision, Pickit labels that object as unpickable. This object is displayed in orange in the Objects view and is never sent to the robot, proactively preventing the collision.


Part 2: Reactive collision recovery in the robot program

While Pickit prevents collisions at the pick point, unexpected collisions may still occasionally occur during the robot’s motion sequence, potentially triggering a protective stop. To prevent human intervention and avoid downtime, it is strongly recommended to add a collision recovery routine to your robot program, assuming your robot programming language supports it.

Note: If your robot does not natively support collision detection, it is possible to mount an anti-collision Force-Torque sensor directly on the robot flange.

1. Ensuring safe trajectories: the extraction path

Pickit helps you construct predictable bin extraction paths in your robot program, from simple ones (three-point) for shallow bins, to more complex ones (five-point) for deep bins.


2. Implementing the collision recovery routine

A recovery strategy is implemented by wrapping the pick sequence in an error catch loop within the pick() function hook.

The general goal of the recovery routine is to:

  • Detect the collision (using robot programming language error handling).
  • Stop movement in case of a collision and safely retract the tool.
  • Indicate pick failure.

Upon an indicated failure due to collision, the generic pick_and_place logic proceeds to release the gripper), then moves to the point to trigger a new object detection to resume the cycle.

Summary: keeping your automation running

The Pickit system provides the ability to management collisions end-to-end.:

Strategy

Location

Purpose

Collision prevention(Proactive)

Pickit Web Interface
(Picking & Setup Pages)

Ensures unpickable objects (due to collision risk at the pick point) are never sent to the robot by modeling the tool, bin, and bin contents.

Bin Extraction

Robot Program.
Nominal pick sequence

Ensures the robot follows predictable, linear paths when moving near obstacles (e.g., inside the bin).

Collision
Recovery (Reactive)

Robot Program.
Pick sequence error handling

Catches unexpected collisions during motion, safely retracts the tool, releases the object, and automatically restarts the picking cycle.

By implementing these features, you transform potential robot downtime into minor, manageable cycle interruptions, ensuring your bin picking application runs robustly and reliably.

Think of managing collisions in 3D vision systems like navigating a ship through an ice field. Collision Prevention is like using radar to map out all known icebergs (the bin walls and static environment) and mark hazardous ice floes (unpickable objects) so you never steer toward them. Bin extraction is setting your course with slow, linear movements, ensuring you don't swerve unpredictably. If, however, the ship still bumps a small, unseen piece of ice (an unexpected collision), Collision Recovery is the automated system that immediately cuts the engine, reverses slightly, checks for damage (releases the gripper), and plots a course to the next clear objective, preventing a total breakdown.

Stay in touch

Subscribe to our newsletter to receive updates of product announcements, special offers, and more.