Picking Program

This is the generic logic of picking process for all kinds of robot. If you want to see Picking of individual robot, you can go to Different type of Robots to find the specific picking program under the robot page.

You can find the picking program in here. Details for UR Picking program is in here.

Picking process needs some setup and file beforehand:
  • Calibration result(.yml file): Picking needs the camera to base relation in order to correctly output object locations in scene;

  • Detection Pose: Robot needs a Detection Pose(a waypoint) which is not blocking the camera captures. After each picking cycle, robot moves back here;

  • Place Locations: Robot needs to place the objects after picking them;

  • Gripper grab and loose signal: Robot needs the signal of grabbing objects as well as loosing off the objects;

In pseudo code:

Picking():
        #Start the communication
        move(detection_pose) # Setup a Detection pose for Picking Process
        if(daoai_find_objects(p1, p2) is objects_found):
                while(daoai_receive_result(p1, p2)):
                move_robot(waypoint_n)
        #Error Handlings
        else if(receive is object_not_found):
                repeat Picking() from beginning
        else if(receive is image_capture_failed):
                repeat Picking() from beginning

end_of_function