FIELD OF THE INVENTION

The invention generally relates to robotics and, more specifically, to a system and method for robotic bin picking.

BACKGROUND

Certain forms of manual labor such as unloading a bin one workpiece at a time into a machine, bulk parts sorting, and order fulfillment are labor-intensive. These jobs are often dangerous if the workpieces or operations are heavy, sharp, or otherwise hazardous. In an effort to counteract these issues, bin picking robots have been tackling these tedious jobs. However, robotic bin picking is a particularly difficult task to master as the amount of accuracy and precision required is often beyond the capabilities of the system.

SUMMARY

In one implementation, a method for identifying one or more candidate objects for selection by a robot. A path to the one or more candidate objects may be determined based upon, at least in part, a robotic environment and at least one robotic constraint. A feasibility of grasping a first candidate object of the one or more candidate objects may be validated. If the feasibility is validated, the robot may be controlled to physically select the first candidate object. If the feasibility is not validated, at least one of a different grasping point of the first candidate object, a second path, or a second candidate object may be selected.

One or more of the following features may be included. Validating may include using a robot kinematic model. The path may be at least one of a feasible path or an optimal path. The path may be determined in real-time while controlling the robot. Determining the path may include using information about one or more surfaces of at least one object adjacent to the candidate object and avoiding a collision with the at least one object adjacent the candidate object. At least one of the robot or the one or more candidate objects may be displayed at a graphical user interface. The graphical user interface may allow a user to visualize or control at least one of the robot, a path determination, a simulation, a workcell definition, a performance parameter specification, or a sensor configuration. The graphical user interface may allow for a simultaneous creation of a program and a debugging process associated with the program. The graphical user interface may be associated with one or more of a teach pendant, a hand-held device, a personal computer, or the robot. An image of the environment including one or more static and dynamic objects using a scanner may be provided, where the robot is configured to receive the image and use the image to learn the environment to determine the path and collision avoidance. Controlling the robot may include performing a second scan of the first candidate object, moving the first candidate object to a placement target having a fixed location with an accuracy requirement, manipulating the first candidate object and delivering the first candidate object to the placement target in accordance with the accuracy requirement. Controlling the robot may include presenting the first candidate object to a scanner to maximize the use of one or more features on the first candidate object to precisely locate the first candidate object. Controlling the robot may include locating and picking the first candidate object in a way that maximizes the probability that is physically selected successfully. The second scan may be in an area of maximum resolution of the scanner. Determining a path to the one or more candidate objects may be based upon, at least in part, at least one of a robot linkage or robot joint limitation. A shrink-wrap visualization over all non-selected components and non-selected surfaces other than the one or more candidate objects may be displayed at the graphical user interface. At least one of identifying, determining, validating, or controlling may be performed using at least one of a primary processor and at least one co-processor. Determining a path to the one or more candidate objects may be based upon, at least in part, at least one of global path planning and local path planning. Validating a feasibility of grasping a first candidate object may include analyzing conditional logic associated with a user program. Validating a feasibility of grasping a first candidate object may include at least one of validating all path alternatives, validating a specific path alternative, validating any path alternative, validating one or more exception paths, excluding one or more sections from being validated, or performing parallelized validation of multiple sections of the path.

In another implementation, a computing system including a processor and memory is configured to perform operations including identifying one or more candidate objects for selection by a robot. A path to the one or more candidate objects may be determined based upon, at least in part, a robotic environment and at least one robotic constraint. A feasibility of grasping a first candidate object of the one or more candidate objects may be validated. If the feasibility is validated, the robot may be controlled to physically select the first candidate object. If the feasibility is not validated, at least one of a different grasping point of the first candidate object, a second path, or a second candidate object may be selected.

One or more of the following features may be included. Validating may include using a robot kinematic model. The path may be at least one of a feasible path or an optimal path. The path may be determined in real-time while controlling the robot. Determining the path may include using information about one or more surfaces of at least one object adjacent to the candidate object and avoiding a collision with the at least one object adjacent the candidate object. At least one of the robot or the one or more candidate objects may be displayed at a graphical user interface. The graphical user interface may allow a user to visualize or control at least one of the robot, a path determination, a simulation, a workcell definition, a performance parameter specification, or a sensor configuration. The graphical user interface may allow for a simultaneous creation of a program and a debugging process associated with the program. The graphical user interface may be associated with one or more of a teach pendant, a hand-held device, a personal computer, or the robot. An image of the environment including one or more static and dynamic objects using a scanner may be provided, where the robot is configured to receive the image and use the image to learn the environment to determine the path and collision avoidance. Controlling the robot may include performing a second scan of the first candidate object, moving the first candidate object to a placement target having a fixed location with an accuracy requirement, manipulating the first candidate object and delivering the first candidate object to the placement target in accordance with the accuracy requirement. Controlling the robot may include presenting the first candidate object to a scanner to maximize the use of one or more features on the first candidate object to precisely locate the first candidate object. Controlling the robot may include locating and picking the first candidate object in a way that maximizes the probability that is physically selected successfully. The second scan may be in an area of maximum resolution of the scanner. Determining a path to the one or more candidate objects may be based upon, at least in part, at least one of a robot linkage or robot joint limitation. A shrink-wrap visualization over all non-selected components and non-selected surfaces other than the one or more candidate objects may be displaying, at the graphical user interface. At least one of identifying, determining, validating, or controlling may be performed using at least one of a primary processor and at least one co-processor. Determining a path to the one or more candidate objects may be based upon, at least in part, at least one of global path planning and local path planning. Validating a feasibility of grasping a first candidate object may include analyzing conditional logic associated with a user program. Validating a feasibility of grasping a first candidate object may include at least one of validating all path alternatives, validating a specific path alternative, validating any path alternative, validating one or more exception paths, excluding one or more sections from being validated, or performing parallelized validation of multiple sections of the path.

The details of one or more implementations are set forth in the accompanying drawings and the description below. Other features and advantages will become apparent from the description, the drawings, and the claims.

