The Challenge
Here is a picture what we are actually dealing with. The goal is to accurately detect the position and orientations of these objects so that a robot can pick them. In other words a robot should be able to take one part after the other from this heap and put it into a machine for further processing.
Applying CANDELOR
The workflow to get recognition results is this: First, you need some data to perform experiments and scans on. CANDELOR requires three different inputs:
- A 3D pointcloud to actually perform recogntion on
- a CAD model that should be detected in the point cloud
- a configuration for detection parameters
Given a CAD model of the object that should be detected, CANDELOR can analyze the object in a preprocessing step and automatically generate parameters that are optimized for detecting the given geometry. This process takes a few seconds. The generated configuration can now be directly used as input for the detection algorithm. It is also possible to fine tune these settings by hand for even better recognition rates.
Finding Objects
Armed with this configuration, CANDELOR is loaded and ready for object localization. Each time you call CANDELOR with a point cloud, it will perform the detection and return the resulting positions and orientations of the detected objects. The results of the detection can be directly used programatically, or used for visualization.
Here is a screenshot of the point cloud we are using for this test:
Here is a image of the original scan:
Robustness & Difference Analysis
All of the objects in the above scene are occluded to varying degree. CANDELOR is robust against incomplete scans. That means it is possible to correctly detect an objects position and orientation despite missing data, to a degree. This robustness extends to inaccurate models. In this particular scans, some of the real objects are acutally manufactured slightly different: one side is mirrored. This is very hard to see without help. CANDELOR makes it possible to provide data for difference analysis:
If you look closely at the above screenshots, you see that the grey CAD model has two elevated cylindrical parts on the left side, but not on its right side. The point cloud on the other hand indicates the opposite: The yellow/greenish dots on the right side indicate that there are points from the scan at a position where the CAD model does not have any structures. The parts of the scan that are a good match with the found object are colorized in blue.
As a summary, in this example CANDELOR has been used to for a robust detection of highly complex objects in a scan of bulk material. The configuration is performed automatically, and evaluation results indicate that some parts in the bulk material are actually not the correct version of the part, but the mirrored version. This analysis can be done very efficiently with the help of CANDELOR’s algorithms.