Warning
You are reading the documentation for an older Pickit release (2.2). Documentation for the latest release (3.4) can be found here.
Yaskawa example picking program
This example program requires that Pickit is installed and set up with your robot. For installation instructions, please refer to the Yaskawa installation and setup article.
Before you can start picking, make sure that Calibration is done. This can be done by running the Yaskawa calibration program.
Example program: TEST_SIMPLEPICK
This example program can be found in JOB → SELECT JOB.
NOP
SET B021 0
MOVJ C00000 VJ=30.00 //HOME_POS
PULSE OT#(2)
PI_CFG
*LABEL
IFTHENEXP I040=20
'PREPICK_POS
MULMAT LP000 P049 P022
'POSTPICK_POS
MULMAT LP001 P021 P049
'GET_PICK_POINT_DATA
PI_GPPD
IFTHENEXP I041=1
IFTHENEXP I042=1
MOVJ P025 VJ=50.00 //ABOVE_PICK_AREA
MSG "moving to objects"
MOVL LP000 V=750.0 //PREPICK_POS
PULSE OT#(2)
MOVL P049 V=500.0 //PICK_POS
PULSE OT#(1)
TIMER T=0.50
MOVL LP001 V=750.0 //POSTPICK_POS
MOVJ P023 VJ=50.00 //ABOVE_PICK_AREA
MOVJ P025 VJ=50.00 //DETECT_POS
PI_LOOK
MSG "Looking for objects"
MULMAT LP002 P047 P029
MSG "Moving to drop"
MOVL P029 V=750.0 //DROP_POS
MOVL LP002 V=750.0 //CORR_DROP_POS
PULSE OT#(2)
TIMER T=0.50
MOVJ P025 VJ=50.00 //DETECT_POS
PI_WAIT
ENDIF
ENDIF
ELSEIFEXP I040=23
MSG "ROI is empty"
JUMP *EMPTY
ELSE
INC B021
IFTHENEXP B021>3
MSG "No objects found after 3 detecti"
PI_SAVE
JUMP *EMPTY
ENDIF
MOVJ P025 VJ=50.00 //DETECT_POS
PI_LOOK
MSG "Looking for objects"
PI_WAIT
ENDIF
JUMP *LABEL
*EMPTY
END
The idea of the program is the following:
If an object is found, its model and pick point ID are retrieved. The robot moves to the object to pick it. Next, the robot moves to a fixed drop off position, and finally it moves to a corrected drop off position. The corrected position is based on the pick offset and the fixed drop off position. During these motions when the robot is out the field of view of the camera, a new Pickit detection is triggered immediately.
If the ROI is empty, the program stops.
If no object is found but ROI is not empty, the robot moves outside the field of view of the camera and a new detection is triggered. If three times no object is found, a snapshot is saved on the Pickit system and the robot program stops.
Define the tool for picking
Create a tool frame with the actual TCP values. Again it is important that tool0 is not changed. Any other tool can be used.
Set PI_CFG
In this command the input arguments have to be set. See PI_CFG for more information on how to do this.
Variables used in TEST_SIMPLEPICK
Below you find an overview of the variables used in this example program. The Pickit variables, in the 40 range, can’t be changed by the user, an overview of these can be found in the Yaskawa Pickit interface article. All other variables can be adapted according the changes you want to apply to this example program.
Variable |
Field name |
Comment |
Set by user |
---|---|---|---|
B021 |
Detection counter |
This variable keeps track of the number of detections that are triggered |
Yes |
P021 |
Post pick offset |
Distance offset to calculate the post pick position |
Yes |
P022 |
Pre pick offset |
Distance offset to calculate the pre pick position |
Yes |
P023 |
Above pick area |
Position that is defined above the pick area |
Yes |
P025 |
Detect position |
Position not blocking the field of view of the camera when triggering detections |
Yes |
P029 |
Drop off position |
Position where the part is dropped off |
Yes |
LP000 |
Pre pick position |
Position the robot moves to before picking the object |
No |
LP001 |
Post pick position |
Position the robot moves to after picking the object |
No |
LP002 |
Corrected drop off positon |
Drop off position corrected with offset of the pick point |
No |
C000 |
Home position |
Position where the robot starts his program |
Yes |
Tip
The positions P021-P029 can be changed in the position variable menu.
Add grasping/releasing logic
At the Pick and Dropoff positions, grasping and releasing logic needs to be added, respectively.
Execute the picking program
To run this program either do Play + Start, Interlock + FWD or Interlock + Test. Happy picking!