Motivation
Extremely reliable object manipulation is critical for advanced personal robotics applications. Before this system, a robot using the object manipulation pipeline picked up an object using a grasp provided by either the database-backed grasp planner, or the point cluster grasp planner. The choice of which planner to use usually depended on the results of the tabletop object detector, which would attempt to detect known models sitting on a table in front of the robot. If the detector found a model which matched a given point cluster, it would return information about the matched model; if not, it would just return the point cluster. Based on these results, the appropriate grasp planner was called and grasps were tested for reachability until a suitable one was found.
Although this worked reliably in many cases, it was highly dependent on the performance of the object detector. If the detector decided that the point cluster matched a given model, then in the eyes of the rest of the system, that was the correct model. This incorrect certainty was the cause of many of the grasping failures, and also looked embarrassing ("the robot thinks it's a tennis ball can" was often used as an explanation for failure when the detection system saw a particular wine glass).