Yaskawa Pickit interface

This article documents the interface of the Yaskawa Pickit integration. For installation instructions, please refer to the Yaskawa installation and setup article.

Pickit macros

Below you find an overview of the macros defined by Pickit.

System macros

PI_RUN()

Check if Pickit is in Robot mode. It also initiates the communication with Pickit.

Detection macros

PI_CAPTU()

Trigger Pickit to capture a camera image to be used by a following PI_PROCE() command. This command blocks the robot movements. If the camera moves during image capture, a warning will be shown in the web interface. This function is suitable if the camera is robot-mounted.

PI_PROCE()

Trigger an object detection on the camera image that was previously captured via PI_CAPTU() command. This command is non-blocking. The robot can move while Pickit is processing the image that was already captured by the PI_CAPTU() command. This function is suitable if the camera is robot-mounted.

PI_LOOK()

Trigger a Pickit object detection (capture image and process image combined) using the currently active setup and product Configuration. This command is non-blocking. The robot can move while Pickit is detecting objects. This function is suitable if the camera is fixed.

PI_NEXT()

Request the next detected object.

PI_WAIT()

Wait for Pickit reply with detection results. PI_WAIT should always be the next Pickit command after a PI_LOOK() or PI_NEXT() request.

PI_GPPD()

Request the pick point ID and pick point offset of the last requested object.

PI_REACH()

Check if the pre pick, pick and post pick poses are reachable from the above pick area pose. It assumes that the poses are correctly set in the following registers: Above pick area in P040, Pre pick pose in P043, Pick in P049 and Post pick in P045. (Not supported for DX100 controllers).

Configuration macros

PI_CFG()

Load the specified setup and product Configuration. And sets the frame used for picking.

Parameters
  • SETUP – Setup id.

  • PRODUCT – Product id.

  • FRAME (USER) – User frame that was created in TEST_CALIB. By default, this is 5.

  • TOOL – Tool frame ID that is used by robot for picking.

  • TIMEOUT – Value of the timeout used for communication with Pickit.

Note

If something is wrong here, you can expect the following message: Undefined user frame. The example program by default uses frame 5 and tool 1, but these might not exist.

PI_SV_PD()

Save the currently active product file.

PI_SV_ST()

Save the currently active setup file.

PI_CYL()

Reset the dimensions of the cylinder model of the active product file.

Parameters
  • CYL_LENGTH – Length of the cylinder model in mm.

  • CYL_DIAMETER – Diameter of the cylinder model in mm.

PI_BUILD()

Build the background cloud used in Advanced filters.

Calibration macros

PI_CFCAL()

Configure the robot-camera calibration.

PI_CALIB()

Detect the robot-camera calibration plate.

Parameters

USER_FRAME – User frame created at start of TEST_CALIB. By default, this is 5.

PI_CLCAL()

Calculate the robot-camera calibration.

PI_VCAL()

Validate the robot-camera calibration. Returns the calibration validation result: distance error, angle error and calib error pose.

Monitoring macros

PI_SAVE()

Save a Snapshots with the latest detection results.

Pickit registers

Below you find an overview of the variables used by Pickit. When using Pickit these variables cannot be used for anything else. More information about the variables can be found in Pickit socket interface.

Variable

Field name

Comment

Type

I049

command

command from robot to Pickit

Input

I048

payload 1

First payload sent to Pickit (e.g. used for setup file ID, …)

Input

I047

payload 2

Second payload sent to Pickit (e.g. used for product file ID, …)

Input

I046

Frame ID

frame ID used during calibration and picking

Input

I045

Tool ID

tool ID used for picking

Input

I044

Timeout

timeout used for communication with Pickit [ms]

Input

I042

pick_id

ID of the pick point that was selected for the given object

Output

I041

object_type

ID type of the detected object

Output

I040

status

Pickit status or a response to previously received robot commands

Output

I043

reach status

Set to 0 if the object is reachable, and to -1 if it is not reachable

Output

I030-039

status of cycles

used for keeping track of the communication cycle with Pickit

Internal

OT 1021

reach trigger

Send a pulse on this signal to trigger a reachability check for the pre pick, pick and post pick position.

Input

S049

IP Pickit

IP address of Pickit, by default 169.254.5.180

Input

P049

object_pose

object pose expressed relatively to the robot base frame (used in the reachability check)

Output

P048

object_dimension

[0]: length or diameter (m) [1]: width or diameter (m) [2]: height (m)

Output

P047

object_offset

pick point offset of the last requested object

Output

P046

rx_flip

helper pose to calculate a correct offset pose

Internal

P040

Above pick area

Position that is defined above the pick area (used in the reachability check)

Input

P043

Pre pick pose

Position the robot moves to before picking the object (used in the reachability check)

Output

P045

Post pick pose

Position the robot moves to after picking the object (used in the reachability check)

Output

P041

Calib error pose

Pose error of the calibration validation

Output

D042

pick_ref_id

ID of the selected pick point’s reference pick point

Output

D041

object_remaining

Number of remaining objects that can be sent in next messages to the robot

Output

D040

object_age

Amount of time that has passed between the image capture and the moment the object information is sent to the robot

Output

R040

distance_error

Distance error of the calibration validation [mm]

Output

R041

angle_error

Orientation error of the calibration validation [deg]

Output

Tip

If these registers are already used on your robot, please contact us at support@pickit3d.com, and we will assist you in finding a solution.