Skip to content

Roboception rc_visard Cameras

drag&bot supports some of the features, which the Roboception rc_visard cameras provide. Once the camera has been configured in the robot system, these features can be accessed with function blocks.

Provided Features

drag&bot currently supports the following features for the rc_visard camera:

  • Static and dynamic hand-eye calibration
  • Item Pick for static setups
  • Box Pick for static setups

Important

For all aspects of the Roboception rc_visard camera please also read the Roboception manual. The drag&bot driver and function blocks only wrap around the functionalities described there.

Setup

Connect the rc_visard camera as described in the Roboception manual. Ensure it can be reached from the computer, where drag&bot is running. If DHCP is used the camera can be connected to the "Internet" connection. Otherwise a static IP address in the IP range of the "Robot and More" ethernet connection has to be configured in the rc_visard camera.

Add the Roboception component in the drag&bot Component Manager. Configure the Serial Number as Device ID.

Hand-Eye Calibration

The hand-eye calibration process for the rc_visard camera in drag&bot is based on three function blocks. They are supposed to be used in a program, which performs the complete calibration. Note that the calibration is always done based on the currently configured placement of the robot in the world and the currently selected tool. Changing the robots pose in the Scenario Designer or using later a different tool as in the calibration might result in wrong poses for detected objects (especially for robot mounted camera setups).

Important

For the calibration process itself please refer to the chapter Hand-eye calibration in the Roboception manual as the function blocks just wrap around the REST-API interface described there.

Start Calibration

The function block clears the current calibration and starts a new calibration process.

Name Data type Description
Inputs Grid Width Float The grid width of the calibration sheet in meters.
Grid Height Float The grid height of the calibration sheet in meters.
Robot Mounted Boolean Describes, whether the camera is mounted at the robot flange (true) or is mounted static in the cell (false).
Outputs -

Set Calibration Pose

Records a given pose and the pose of the currently visible calibration sheet to be used as calibration pose.

Name Data type Description
Inputs Calibration Pose Pose The pose to set as calibration pose.
Calibration Step Integer The calibration pose number for this pose. Using the same step more than one time within the calibration process will overwrite the old pose.
Outputs Success Boolean Indicates, whether the given pose was accepted by the calibration process or not, e.g. because the calibration plate was not clearly visible.
Calibration Ready Boolean Indicates, whether enough poses have been collected to calculate the calibration or more need to be recorded.

Finish Calibration

The function block finishes the calibration process, calculates the camera pose and saves the calibration in the camera if the residual error is small enough. The calibration is automatically applied to all poses, which are returned as result of following operations from the camera.

Name Data type Description
Inputs -
Outputs Success Boolean Indicates, whether the calibration process was successful or not.
Camera Pose Pose Relative pose of the grid with respect to the frame for which the pose was given in the Set Calibration Pose function blocks.
Residual Error Float The remaining residual error for detections in the range from 0.0 to 1.0.

Calibration Program Template

To simplify the calibration process its possible to use a template program. Here you just have to parametrize the calibration plate measurements and teach the calibration poses in the respective subprogram input parameters. The poses have to correspond to the positionings of the calibration sheet relative to the camera as shown in the Roboception manual. The best process is to move the robot manually to the respective camera pose and then take the current pose of the robot as input parameter pose of the respective subprogram. The poses are saved as robot joints to be save regarding different arm configurations for the same cartesian pose. Its important to use the same tool as later in the actual application. At least four poses are required, but eight are recommended. Delete the respective subprograms for the poses you don't want to use.

Calibration Template 💾

Item Pick - Static

The function block triggers the Roboception Item Pick Module to get the grasp pose for an unknown surface. The function block supports just static calibrated setups.

Name Data type Description
Inputs Region of Interest ID String ID string of the region of interest to be used. The region of interest has to be configured in the Roboception Web Interface. If the field is left empty, no region of intetrest is used.
Load Carrier ID String ID string of the load carrier to be used. The load carrier has to be configured in the Roboception Web Interface. If the field is left empty, no load carrier is used.
Length of Suction Surface Float Length of the suction surface in meters.
Width of Suction Surface Float Width of the suction surface in meters.
Outputs Success Boolean Indicates, whether the Roboception has found an object with sufficient grasp pose.
Calculated Suction Pose Pose Pose of the found grasp respecting the hand eye calibration.
Result message String Result message of the Roboception camera.
Load carrier empty Boolean Indicates, whether the load carrier has been declared empty by the Roboception camera.

Box Pick - Static

The function block triggers the Roboception Box Pick Module to get the grasp pose for a box model. The function block supports just static calibrated setups.

Name Data type Description
Inputs Region of Interest ID String ID string of the region of interest to be used. The region of interest has to be configured in the Roboception Web Interface. If the field is left empty, no region of intetrest is used.
Load Carrier ID String ID string of the load carrier to be used. The load carrier has to be configured in the Roboception Web Interface. If the field is left empty, no load carrier is used.
Length of Suction Surface Float Length of the suction surface in meters.
Width of Suction Surface Float Width of the suction surface in meters.
Minimum Box Length Float Minimum length of the box to search in meters.
Minimum Box Width Float Minimum width of the box to search in meters.
Maximum Box Length Float Maximum length of the box to search in meters.
Maximum Box Width Float Maximum width of the box to search in meters.
Outputs Success Boolean Indicates, whether the Roboception has found an object with sufficient grasp pose.
Calculated Suction Pose Pose Pose of the found grasp respecting the hand eye calibration.
Result message String Result message of the Roboception camera.
Load carrier empty Boolean Indicates, whether the load carrier has been declared empty by the Roboception camera.