Roboception - CADMatch

This command can be used to perform a CADMatch command by Roboception. An rc_cube connected to the camera is needed for this. The command uses an object’s CAD data to locate the object in 3D-Space and retrieve the optimal grasping pose in either the robot’s or camera’s coordinate system [1].

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. 19/).

Configuration

Template Name:

The name of the CAD model to be detected. The model has to be uploaded to the Roboception using the Roboception’s GUI beforehand (Fig. 19/).

Camera Pipeline:

The pipeline ID of the camera to use (Fig. 19/).

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. 19/).

Load Carrier ID:

(Optional): The ID of the Load Carrier defined within Roboception’s GUI (Fig. 19/).

Region of Interest ID:

(Optional): The ID of the Region of Interest defined within Roboception’s GUI (Fig. 19/).

Pose Prior ID:

(Optional): The ID of a pose prior. If a pose prior is given, the initial pose estimation is skipped and instead the pose will be refined (Fig. 19/).

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. 19/).

Configuration of the CADMatch command

Fig. 19 Configuration of the CADMatch command.

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. 20/).

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. 20/).

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. 20/).

Configuration of the gripper tab of a CADMatch command

Fig. 20 Configuration of the gripper tab of a CADMatch command.

Last Detection

Snapshot of the last result image retrieved by the Roboception camera (Fig. 21).

Image of the last detection tab of a CADMatch command

Fig. 21 Image of the last detection tab of a CADMatch command.

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

Note

The first CADMatch command for a given template after a reboot of the rc_cube might be extremely slow and raise a timeout error after 10 seconds. Either just restart the app, or warm up the system by manually executing a detection via the Roboception GUI beforehand.

For the documentation of raised error codes see the Roboception’s rc_cube manual: https://doc.rc-cube.com/latest/en/cadmatch.html

Python API

The command triggers a detect_object() method call and stores the result in a local variable called cad_detect_result. For advanced post-processing of the detection result, access this variable in a Run Script command.