ABB Pickit interface¶
This article documents the interface of the ABB Pickit integration. For installation instructions, please refer to the ABB installation and setup article.
Pickit communication functions¶
Below you find an overview of the functions for communicating with Pickit. For more details on these functions, refer to The Pickit interface.
|Function||Comment||Input arguments||Return type|
|Pickit_is_running()||Check if Pickit is set to Robot mode.||-||Boolean|
|Pickit_find_calib_plate()||Trigger a detection of the robot-camera calibration plate.||-||-|
|Pickit_look_for_object()||Trigger a Pickit object detection using the currently active setup and product Configuration.||-||-|
|Pickit_detect_with_retries (num retries)||Repeatedly trigger a Pickit object detection as long as nothing is found and the ROI is not empty, up to a number of attempts.||max number of retries||-|
|Pickit_capture_image()||Trigger Pickit to capture a camera image to be used by a following Pickit_process_image() call.||-||-|
|Pickit_process_image()||Trigger an object detection on the camera image that was previously captured via the Pickit_capture_image() function (or one of the Detection functions).||-||-|
|Pickit_next_object()||Request the next detected object.||-||-|
|Pickit_configure (num setup, num product)||Load the specified setup and product Configuration.||setup id, product id||-|
|Pickit_save_snapshot()||Save a snapshot with the latest detection results.||-||-|
|Pickit_build_background()||Build the background cloud used by one of the Advanced filters.||-||-|
|Pickit_has_response()||Returns true and updates results, if the Pickit detection is finished. Usually used inside a Wait command. Pickit_has_response() should always be the next Pickit function after a Pickit_look_for_object(), Pickit_next_object(), Pickit_detect_with_retr(..) or Pickit_process_image() request.||-||Boolean - (Some Pickit detection results are updated in the background)|
|Pickit_get_results()||Combination of Pickit_has_response() and Pickit_get_pick_point_data() function. This function is not compatible with Pickit versions prior 2.2.||-||Boolean - (All Pickit detection results are updated in the background)|
|Pickit_get_pick_point_data()||Request the pick point ID and pick point offset of the last requested object. This function is not compatible with Pickit versions prior 2.2.||-||- (Some Pickit detection results are updated in the background)|
Pickit helper functions¶
The following functions don’t communicate with Pickit. They use the information received in the most recent detection results, and are intended to make your robot program more readable. The return values of these functions get updated when calling Pickit_has_response() or Pickit_get_results(). See ABB example picking program on how they are typically implemented in a robot program.
|Pickit_object_found()||True if detection results are available.|
|Pickit_no_image_captured()||True if no image was captured by Pickit. If so, check the camera connection.|
|Pickit_roi_empty()||True if the ROI is empty.|
Pickit output functions¶
The following functions are used to get the output values of Pickit. The output values are updated after using the Pickit function Pickit_has_response() or Pickit_get_results().
|Function||Return value||Return type|
|Pickit_get_pose()||Pick point expressed with respect to the robot base frame.||robtarget|
|Pickit_pick_offset()||Pick point offset of the last requested object.||pose|
|Pickit_pick_id()||ID of the pick point that was selected for the previously sent object.||num|
|Pickit_object_age()||Amount of time that has passed between the capturing of the camera image and the moment the object information is sent to the robot (s).||num|
|Pickit_object_dimensons()||: Length or diameter (mm). : Width or diameter (mm). : Height (mm).||pos|
|Pickit_pick_reference_id()||ID of the selected pick point’s reference pick point.||num|
|Pickit_remaining_objects()||Number of remaining objects that can be sent to the robot in the next messages.||num|
More detailed information about these outputs can be found here.
Using pick offset in a robot program¶
When using multiple pick points or flexible pick orientations, it can be useful to compensate the pick offset from a reference/nominal pick point in order to correct a drop-off point. For this, an additional function is created, pickit_apply_offset(robtarget ..). In the example below the robot will move to the offset point relative to the fixed point DropOff.
MoveJ pickit_apply_offset(DropOff), v500, fine, tool0;