This tutorial shows how to use the SilhouetteMatch Module with Roboception’s URCap.

Before we start

This tutorials assumes that you are familiar with the Generic rc_visard node and that a valid hand-eye calibration has been stored on the rc_visard as described in Hand-Eye Calibration.


The SilhouetteMatch functionality is available in the generic rc_visard node. Please see Generic rc_visard node in order to learn how to work with generic rc_visard nodes.

The following functions are available for SilhouetteMatch:

  • DetectItems: Triggers detection of boxes
  • GetObjectPose: Gets the next pose after detection has been triggered
  • CalibratePlane: Starts the plane calibration



It is mandatory to choose the template that has to be detected. If necessary enter a region of interest and offset, but it’s not mandatory.



This functions requires that DetectItems has been triggered before. It returns the pose of the next available object that was detected and stores the pose in PolyScope’s variable format.

If no reachable template is matched and Stop program when pose is not available checkbox is checked, popup will appear and the program will be terminated. If the checkbox is not checked zero pose (p[0,0,0,0,0,0]) is returned.


When the Stop program when pose is not available checkbox is unchecked, user has catch the case when nothing is detected (the zero pose (p[0,0,0,0,0,0]) is returned). If this situation is not handled, it might lead to collision or undefined robot behavior.

With the ‘Pick approach angle’ drop down menu it is possible to change the strategy of calculating the angle of the returned position. There are three different options to choose from:

  • Orientation from pick module the complete orientation computed by SilhouetteMatch module is used
  • Only z-axis from pick module only the orientation around z axis of the TCP is used (useful for non-symmetrical grippers)
  • Last pose orientation orientation from SilhouetteMatch is ignored, instead the orientation of the last waypoint is used



This function starts plane calibration procedure.