1. Field of the Invention
The present invention relates to an object gripping apparatus for performing bin picking of piled works using an industrial machine such as a robot, a method of controlling the same, and a storage medium. The present invention particularly relates to an object gripping apparatus for picking works piling up irregularly on a tray while measuring their three-dimensional positions and orientations, a method of controlling the same, and a storage medium.
2. Description of the Related Art
There are many research reports about an apparatus for automatizing the part supply or assembly process by causing an industrial robot to pick works piling up irregularly on a tray. An example is Japanese Patent No. 03377465. In Japanese Patent No. 03377465, a robot performs picking by executing pattern matching using a three-dimensional model prepared in advance so as to recognize the position and orientation of a work. In Japanese Patent No. 03377465, the apparatus measures the three-dimensional position and orientation of only one work at a time. Hence, when bin-picking piled works, position and orientation measurement processing needs to be repeated as many times as the number of works stacked on the tray. To decrease the number of times of position and orientation measurement processing upon bin picking, a method of obtaining and holding the three-dimensional positions and orientations of a plurality of works by one measurement operation has been considered. In Journal of IHI technologies Vol. 48, No. 1 (2008-3), three-dimensional position and orientation recognition is done for a plurality of piled works having a complex shape.
However, when the three-dimensional positions and orientations of a plurality of works are measured at once, the measured positions and orientations of the works may vary due to interference that may occur between the robot arm and the picking target work at the time of work picking after the measurement. In this case, the work whose position and orientation have varied needs to be remeasured, resulting in time-consuming processing.
The present invention has been made in consideration of the above-described problem, and provides a technique of reducing the influence of a variation in the position and orientation of a work caused by interference upon picking.
According to one aspect of the present invention, there is provided an object gripping apparatus comprising: an image capturing unit adapted to capture an image of a region including a plurality of works; an obtaining unit adapted to obtain distance information of the region including the plurality of works; a measurement unit adapted to measure three-dimensional positions and orientations of a plurality of gripping candidate works out of the plurality of works based on the image and the distance information, thereby generating three-dimensional position and orientation information; a selection unit adapted to select a gripping target work from the gripping candidate works based on the three-dimensional position and orientation information measured by the measurement unit; a gripping unit adapted to grip the gripping target work; and an updating unit adapted to update the three-dimensional position and orientation information by measuring the three-dimensional positions and orientations of the gripping candidate works at a predetermined time interval during gripping of the gripping target work by the gripping unit, wherein when the gripping by the gripping unit has ended, the selection unit selects the next gripping target work based on the three-dimensional position and orientation information of the gripping candidate works updated by the updating unit.
According to one aspect of the present invention, there is provided a method of controlling an object gripping apparatus comprising: capturing an image of a region including a plurality of works; obtaining distance information of the region including the plurality of works; measuring three-dimensional positions and orientations of a plurality of gripping candidate works out of the plurality of works based on the image and the distance information, thereby generating three-dimensional position and orientation information; selecting a gripping target work from the gripping candidate works based on the three-dimensional position and orientation information measured in the measuring; gripping the gripping target work; and updating the three-dimensional position and orientation information by measuring the three-dimensional positions and orientations of the gripping candidate works at a predetermined time interval during gripping of the gripping target work in the gripping, wherein in the selecting, when the gripping in the gripping has ended, the next gripping target work is selected based on the three-dimensional position and orientation information of the gripping candidate works updated in the updating.
Further features of the present invention will be apparent from the following description of exemplary embodiments with reference to the attached drawings.
An exemplary embodiment(s) of the present invention will now be described in detail with reference to the drawings. It should be noted that the relative arrangement of the components, the numerical expressions and numerical values set forth in these embodiments do not limit the scope of the present invention unless it is specifically stated otherwise.
In the present invention, pile picking means an operation of gripping a plurality of irregularly arranged works using a robot arm functioning as an object gripping apparatus and moving them to a predetermined place. Note that at least one picking point (gripping point) to be gripped by the robot arm is set in advance for each work.
An object gripping apparatus according to the first embodiment obtains the positions and orientations of a plurality of picking candidate works (gripping candidate works) in advance, and during picking (gripping) of a gripping target work, tracks and updates the positions and orientations of the plurality of remaining picking candidate works.
The processing units of an object gripping apparatus 1100 according to the first embodiment will be explained with reference to
As shown in
The image capturing unit 1101 captures a visible image of piled target works 210 shown in
The distance information obtaining unit 1102 obtains the distance information of the piled target works 210 shown in
The three-dimensional position and orientation measurement unit 1103 detects a plurality of picking candidate works from the piled target works 210 based on the visible image captured by the image capturing unit 1101 and the distance information obtained by the distance information obtaining unit 1102. The three-dimensional position and orientation measurement unit 1103 then measures the three-dimensional positions and orientations of the plurality of detected picking candidate works to generate three-dimensional position and orientation information. The three-dimensional position and orientation measurement method will be described later.
The picking target work selection unit 1104 selects a work to be picked from the plurality of picking candidate works measured by the three-dimensional position and orientation measurement unit 1103.
During the picking operation of the picking unit 1106, the tracking unit 1105 tracks the coarse position/orientation of each of the candidate works other than the picking target work selected by the picking target work selection unit 1104, based on the three-dimensional position and orientation information measured by the three-dimensional position and orientation measurement unit 1103. The tracking method will be described later.
The picking unit 1106 operates, for example, a robot arm 203 shown in
The procedure of processing of the object gripping apparatus according to the first embodiment will be described next with reference to the flowchart of
In step S301, the image capturing unit 1101 captures the piled target works 210 using the global camera 201.
In step S302, the distance information obtaining unit 1102 obtains the distance information of the whole piled target works 210. The distance information obtaining method is not particularly limited. For example, the distance information can be obtained by active stereo measurement that time-serially projects a binary fringe pattern to divide the measurement space and thus obtains the distance information of a target region, as described in Kousuke Satou and Seiji Inokuchi, “Liquid crystal range finder. High speed range imaging system using liquid crystal shutter”, IEICE Transactions J71-D, No. 7, pp. 1249-1257, 1988-7. In the arrangement example shown in
In step S303, the three-dimensional position and orientation measurement unit 1103 detects the coarse positions/orientations of a plurality of picking candidate works from the piled target works 210 using the visible image obtained in step S301. The three-dimensional position and orientation of each picking candidate work are measured using the detected coarse position/orientation information and the distance information obtained in step S302. This step aims at detecting the three-dimensional positions and orientations of the plurality of picking candidate works. The measurement can be done using an arbitrary existing method. For example, Japanese Patent Laid-Open No. 2009-128201 proposes a method of estimating the coarse position/orientation of a target work using linear bright region information extracted from a visible image and estimating the three-dimensional position and orientation using the estimation result and distance information.
In step S304, the three-dimensional position and orientation measurement unit 1103 determines whether there exist one or more candidate works whose three-dimensional positions and orientations are detected in step S303. The process advances to step S305 upon determining that one or more candidate works exist (YES in step S304). The processing ends upon determining that no candidate work exists (NO in step S304).
In step S305, the picking target work selection unit 1104 selects one picking target work from the candidate works detected in step S303, based on the three-dimensional position and orientation information measured by the three-dimensional position and orientation measurement unit 1103 and a selection condition set for each three-dimensional position and orientation information. The candidate works other than the selected picking target work are set as tracking target works. The picking target work selection unit 1104 selects the picking target work based on the three-dimensional position and orientation information of each candidate work measured in step S303. In this embodiment, the candidate works are sequentially picked from the top of the pile. The target can easily be estimated from the depth information of the candidate works.
In step S306, the tracking unit 1105 starts tracking processing of the tracking target works after the robot arm has moved to above the picking target work selected in step S305 so as to be ready for picking. Note that tracking means processing of time-serially obtaining the image of the region including the piled target works 210 during picking and continuously estimating and updating the three-dimensional positions and orientations of the tracking target works from the obtained image. For example, the three-dimensional positions and orientations of the tracking target works are updated at a predetermined time interval. In this embodiment, the edges of CAD models of target works registered in the database 1200 are associated on the image, and the projection error is minimized, thereby performing tracking processing. At this time, the distance information is not used.
Note that interference between the arm and works or between works upon picking readily occurs for the works around the picking target work. For this reason, the tracking target works located on the periphery of the picking target work are supposed to easily vary their positions and orientations. Out of the tracking target works, only works on the periphery of the picking target work may undergo the tracking processing to reduce the calculation cost. The periphery may be, for example, a predetermined range from the picking target work.
In step S307, the picking unit 1106 controls picking processing of the picking target work in parallel to the tracking processing in step S306. The picking unit 1106 grips the predetermined picking point of the picking target work and moves it to a predetermined position. The next picking target work is selected from the works that have succeeded tracking.
Note that the tracking target work may be absent after the tracking processing is completed due to some reason when, for example, the track of a tracking target work is lost because of a tracking failure, or only one candidate work is measured in step S303.
Hence, in step S308, the picking target work selection unit 1104 determines whether a tracking target work exists. Upon determining that a tracking target work exists (YES in step S308), the process returns to step S305 to select the next picking target work. Upon determining that no tracking target work exists (NO in step S308), the process returns to step S301 to execute the processing of obtaining the visible image and distance information of the piled candidate works again.
Three-dimensional position and orientation estimation by tracking is done without using the distance information. For this reason, if the initial position and orientation of a tracking target work vary during picking, the accuracy of three-dimensional position and orientation estimation processing by tracking is assumed to be lower than the accuracy of three-dimensional position and orientation measurement processing in step S303. If a candidate work whose position and orientation have been measured using the distance information and a candidate work estimated by tracking are mixed, the candidate work measured using the distance information may preferentially be picked in the picking target work selection processing in step S305. For example, the selection condition may be set to, when picking the candidate works sequentially from the top of the pile, pick the work on the top of the pile out of the candidate works measured using the distance information. In addition, the selection condition may be set to, if no candidate work measured using the distance information exists, pick a candidate work estimated by tracking processing.
Alternatively, precise three-dimensional position and orientation measurement may be executed again after the picking processing. When it is determined in step S308 that a tracking target work exists, and it has varied the three-dimensional position and orientation from those measured in step S303, the distance information is obtained again only for the tracking target work and its periphery, thereby measuring the three-dimensional position and orientation. The periphery may be a predetermined range including the tracking target work. In this case as well, using the three-dimensional position and orientation information by tracking processing makes it possible to perform high-speed measurement as compared to three-dimensional position and orientation measurement for the entire piled target works 210.
In this way, the processing is repeated to pick the piled works until no more picking candidate work remains.
According to this embodiment, the positions and orientations of a plurality of candidate works are obtained at the time of candidate work detection. The pieces of position and orientation information of the plurality of candidate works are held independently of the presence/absence of interference between works or between works and the robot arm. This allows the time required for position and orientation measurement of the candidate works to be reduced and thus shorten the tact time necessary for picking the whole piled candidate works.
The second embodiment of the present invention will be described next. In the first embodiment, a plurality of candidate works are detected, and the candidate works other than a picking target work are tracked, thereby holding the position and orientation information of the plurality of candidate works. This reduces the calculation time required to perform three-dimensional position and orientation measurement in each picking operation. In the picking operation, however, when the robot arm exists between the global camera and a tracking target work, and the three-dimensional position and orientation of the shielded tracking target work vary, it may be impossible to track the position and orientation of the tracking target work.
In this embodiment, the picking target work is selected so as to reduce tracking processing failures that occur when a tracking target work is shielded by the robot arm during picking processing. This aims at suppressing losing the track of a candidate work due to a tracking failure.
The arrangement of the object gripping apparatus is the same as in the first embodiment, and a description thereof will be omitted. In this embodiment, the picking target work is selected such that the tracking failure ratio lowers. Hence, the algorithm for selecting the picking target work and tracking target works in S305 of
First, necessary data are obtained in advance.
In step S501, a picking target work selection unit 1104 obtains the three-dimensional position and orientation information of a plurality of candidate works measured by a three-dimensional position and orientation measurement unit 1103.
In step S502, the picking target work selection unit 1104 obtains the picking point information of the candidate works, the three-dimensional position and orientation information of the global camera, the CAD data of the robot arm, and the CAD data of the work, which are prepared in a database 1200 in advance. CAD data is the three-dimensional geometric information of the robot arm or the work.
The processes of steps S503 to S507 are repetitively executed as many times as the number N of detected candidate works.
In step S503, the picking target work selection unit 1104 selects an arbitrary work P(i) (i=1 to N) as the picking candidate work.
In step S504, the picking target work selection unit 1104 calculates, based on the gripping position information of the candidate works and the three-dimensional position and orientation information of the work P(i), the three-dimensional position and orientation of the robot arm when picking the work P(i).
In step S505, the picking target work selection unit 1104 obtains, based on the image obtained by the global camera, a region of the image region to be shielded by the robot arm at the time of picking, and detects candidate works included in the shielded region. More specifically, based on the three-dimensional position and orientation information of the robot arm calculated in step S504, the CAD data of the robot arm, and the three-dimensional position and orientation information of the global camera, the picking target work selection unit 1104 obtains a portion of the piled work region, which is to be shielded from the global camera by the robot arm. In addition, the picking target work selection unit 1104 detects candidate works included in the shielded region using the three-dimensional position and orientation information of the plurality of candidate works measured by the three-dimensional position and orientation measurement unit 1103.
In step S506, the picking target work selection unit 1104 obtains the ratio of the shielded region on the candidate works detected in step S505, based on the image obtained by the global camera. The ratio (shielding ratio) of the shielded region to the surface area of the candidate works on the two-dimensional image is calculated. Let S(i) be the sum of the shielding ratios of all candidate works except the work i when picking the work i.
S(i) is calculated for the N candidate works in this way. In step S507, the picking target work selection unit 1104 selects the candidate work P(i) having the minimum value S(i) as the picking target work. If there are a plurality of candidate works having the same value S(i), the work on the top of the pile is selected, as in the first embodiment.
According to this embodiment, it is possible to decrease the number of tracking target works to be shielded by the robot arm upon picking so as to be unobservable from the global camera. In addition, decreasing the number of works that fail in tracking allows the number of times three-dimensional position and orientation measurement processing is executed to be reduced.
The third embodiment of the present invention will be described. When picking piled works, the picking target work itself may move due to, for example, interference with the robot arm before it grips the picking target work. In such a case, picking fails at a high probability. In this embodiment, tracking processing is performed not only for the tracking target works but also for the picking target work to update the position and orientation information up to the moment just before picking processing. This allows to correctly transit to repicking processing and thus prevent a picking failure even when the position and orientation of the picking target work vary during picking.
The procedure of processing of an object gripping apparatus according to this embodiment will be described with reference to the flowchart of
The processes of steps S301 to S304 are the same as in the first embodiment.
In step S305, a picking target work selection unit 1104 selects the picking target work and tracking target works from the candidate works detected in step S303. When tracking the picking target work, it needs to be included in the field of view of the global camera. Hence, the picking target work is preferably not shielded by the robot arm when observed from the global camera. In this embodiment, the picking target work is selected based on the shielding ratio of the robot arm, as in the second embodiment. The procedure of processing is the same as described in the second embodiment. In the second embodiment, the sum S(i) of the shielding ratios is calculated based on the shielding ratios of (N−1) works except the picking target work i. In the third embodiment, however, the sum of the shielding ratios is calculated based on the shielding ratios of N works including the picking target work i. A weight may be added to the shielding ratio of the picking target work i so that the work i is hardly shielded.
In step S306, a tracking unit 1105 starts tracking the tracking target works and the picking target work. At this time, tracking of the picking target work selected in step S305 may be impossible because it is shielded by the robot arm. In this case, only tracking of the tracking target works is executed in step S306 so that the object gripping apparatus operates as in the first embodiment.
In step S307, a picking unit 1106 picks the picking target work. The procedure of processing when the picking target work is successfully tracked in step S306 will be explained with reference to the flowchart of
In step S701, the picking unit 1106 starts picking processing of the picking target work.
In step S702, the picking unit 1106 determines whether the position and orientation of the picking target work have varied before completion of picking. Upon determining that the position and orientation of the picking target work have varied before completion of picking (YES in steps S702), the process advances to step S703. Upon determining that the position and orientation of the picking target work have not varied before completion of picking (NO in steps S702), that is, no variation has occurred during picking, the process advances to step S706.
In step S703, the picking unit 1106 determines whether tracking of the picking target work whose position and orientation have varied has succeeded. Upon determining that tracking of the picking target work has succeeded (YES in step S703) the process advances to step S704. Upon determining that tracking of the picking target work has failed (NO in step S703), the process advances to step S705.
In step S704, the picking unit 1106 updates the position and orientation information of the picking target work to that obtained by tracking, and the process returns to step S701.
In step S705, the picking unit 1106 excludes the current picking target work from the candidate works because picking is impossible due to loss of position and orientation information, and ends the picking processing end.
In step S706, the picking unit 1106 grips the picking target work, moves it to a predetermined position, and ends the picking processing.
The process of step S308 is the same as in the first embodiment, and a description thereof will be omitted.
According to this embodiment, tracking the picking target work enables to suppress a picking failure caused by a variation in the position and orientation of the picking target work at the time of picking.
According to the present invention, it is possible to reduce the influence of a variation in the position and orientation of a work caused by interference upon picking.
Aspects of the present invention can also be realized by a computer of a system or apparatus (or devices such as a CPU or MPU) that reads out and executes a program recorded on a memory device to perform the functions of the above-described embodiment(s), and by a method, the steps of which are performed by a computer of a system or apparatus by, for example, reading out and executing a program recorded on a memory device to perform the functions of the above-described embodiment(s). For this purpose, the program is provided to the computer for example via a network or from a recording medium of various types serving as the memory device (for example, computer-readable storage medium).
While the present invention has been described with reference to exemplary embodiments, it is to be understood that the invention is not limited to the disclosed exemplary embodiments. The scope of the following claims is to be accorded the broadest interpretation so as to encompass all such modifications and equivalent structures and functions.
This application claims the benefit of Japanese Patent Application No. 2010-279868, filed on Dec. 15, 2010, which is hereby incorporated by reference herein in its entirety.
Number | Date | Country | Kind |
---|---|---|---|
2010-279868 | Dec 2010 | JP | national |