Roboception - SilhouetteMatch
This command can be used to perform a SilhouetteMatch command by Roboception.
The command uses a contour based template matching algorithm to locate the object in 3D-Space and retrieve the optimal
grasping pose in either the robot’s or camera’s coordinate system [1].
The templates are defined in the .dxf
format and have to be uploaded to the template database in the Roboception
GUI. Check out the Template generation
chapter in the Roboception documentation for more details of how to generate these files.
Parameterization panel
The following section describes how to parameterize the command while being in the Modify mode. Navigation between the different setup panels can be done by pressing the belonging tab in the voraus.operator (Fig. 22/➊).
Configuration
- Template Name:
The name of the silhouette model to be detected. The model has to be uploaded to the Roboception using the Roboception’s GUI beforehand (Fig. 22/➋).
- Camera Pipeline:
The pipeline ID of the camera to use (Fig. 22/➌).
- Target Coordinate System:
The retrieved grasp pose is stored inside the configured User CS. Afterwards a motion command can be applied with regard of the configured User CS (Fig. 22/➍).
- Load Carrier ID:
(Optional): The ID of the Load Carrier defined within Roboception’s GUI (Fig. 22/➎).
- 2D Region of Interest ID:
(Optional): The ID of the 2D Region of Interest defined within Roboception’s GUI (Fig. 22/➏).
- Robot Synchronization:
Sync (default): The detection is only executed after the robot has finished its latest movement command. Async (for experts only): The detection is executed asynchronous to the movement of the robot. Should only be used if currently enqueued movement commands can not interfere with the detection (Fig. 22/➐).
- Object Plane Detection:
Select Off if the objects are placed on a calibrated base plane, select On if the objects surfaces are planar and the base plane is unknown, or the objects are located on multiple different planes, e.g. stacks (Fig. 22/➑).
- Baseplane Offset:
An offset, in case the calibrated base plane should be used, but the objects are not lying on this plane but on a plane parallel to it. The offset is the distance between both planes given in the direction towards the camera (Fig. 22/➒).
Gripper
Configuration of the gripper and Collision Check.
- Use Collision Check:
Activates the Collision Check of the Roboception camera. Read the Roboception manual to learn about the included and non-included checks (Fig. 23/➊).
- Gripper ID:
The ID of the gripper to be used for the Collision Check. This is the gripper configured in the Roboception database, not the voraus.core tool (Fig. 23/➋).
- Pre-Grasp Offset:
The offset that will be used for the Collision Check. It is just evaluated during the Collision Check and will not be used as a movement in the application (Fig. 23/➌).
Last Detection
Snapshot of the last result image retrieved by the Roboception camera (Fig. 24).
Runtime behavior
Once configured, the application can be executed. In case that at least one object was found, the selected Target Coordinate System will be set to the best detection instance and the SUCCESS branch will be executed, otherwise the ELSE branch is executed. The detection result can be reviewed inside the Last Detection panel by clicking at the command in Modify mode. In order to move with regard to the detected object, a Move To command can be added to the SUCCESS branch. The chosen coordinate system should match the Target Coordinate System configured in the detection command.
Errors
For the documentation of raised error codes see the Roboception’s rc_cube manual: https://doc.rc-cube.com/latest/en/silhouettematch.html
Python API
The command triggers a detect_object()
method call
and stores the result in a local variable called silhouette_detect_result.
For advanced post-processing of the detection result, access this variable in a Run Script
command.