BoxPick

This tutorial shows how to use the BoxPick 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.

Overivew

The boxpick 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 BoxPick:

  • DetectItems: Triggers detection of boxes
  • GetNextItem: Gets the next item after detection has been triggered
  • GetLCPose: Returns the pose of the detected load carrier.

DetectItems

../_images/bp_detect_items.png

It is mandatory to set the minimum and maximum length and width of the item model. If necessary enter a load carrier id and/or a region of interest id, but it’s not mandatory.

GetNextItem

../_images/bp_get_next_item.png

This functions requires that DetectItems has been triggered before. It returns the next available item/box that was detected and stores the pose in PolyScope’s variable format (e.g. p[-0.300517, -0.367119, -0.007997, -0.001221, 3.116277, 0.038892]). If no box was detected, the call returns a zero pose (p[0,0,0,0,0,0]). It also returns the size of the detected object in vector format (e.g. [0.04, 0.02] for a box with 4 x 2 centimeters)

If no reachable object is detected 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.

Note

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 BoxPick 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 BoxPick is ignored, instead the orientation of the last waypoint is used

GetBpLcPose

../_images/bp_get_lc_pose.png

This function requires that DetectItems has been triggered with a load carrier id. It returns the pose of the detected load carrier. If no load carrier was detected, a zero pose (p[0,0,0,0,0,0]) is returned.

Note

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.