Warning
You are reading the documentation for an older Pickit release (3.3). Documentation for the latest release (3.4) can be found here.
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 thePI_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()
orPI_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 andPost 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
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.