Picking apparatus and picking method
09604364 ยท 2017-03-28
Assignee
Inventors
Cpc classification
International classification
Abstract
A picking apparatus includes: a three-dimensional imaging device configured to three-dimensionally-image workpieces contained in bulk in a container; a robot arm having a hand capable of gripping a workpiece; and a control device configured to control an operation of the robot arm; the control device is configured: to recognize a position and a posture of a target workpiece, based on an imaging result of the three-dimensional imaging device; to obtain an gripping position of the workpiece and an approach vector thereof, based on the recognized position and posture information; to calculate an intersection point between a straight line extending along the approach vector through the gripping position and a plane including an opening of the container; and to judge whether the workpiece can be picked or not, based on a positional relationship between the intersection point and the opening.
Claims
1. A picking apparatus comprising: a three-dimensional imaging device configured to three-dimensionally image workpieces contained in bulk in a container; a robot arm comprising a hand configured to grip a workpiece; and a control device configured to control an operation of the robot arm; wherein the control device is configured: to recognize a position and a posture of a target workpiece, based on an imaging result of the three-dimensional imaging device; to obtain a gripping position of the workpiece and an approach vector of the gripping position, based on the recognized position and posture information; to calculate an intersection point between a straight line extending along the approach vector through the gripping position and a plane including an opening of the container; and to determine whether the workpiece can be picked or not, based on a positional relationship between the intersection point and the opening.
2. The picking apparatus according to claim 1, wherein the control device is configured: to determine whether a condition, in which the intersection point is located inside the opening and a shortest distance between the intersection point and a peripheral part defining the opening is larger than a predetermined value, is satisfied or not; to cause the robot arm to pick the workpiece, in response to determining the condition is satisfied; and not to cause the robot arm to pick the workpiece, in response to determining the condition is not satisfied.
3. The picking apparatus according to claim 2, wherein the predetermined value is 1 to 1.1 times any larger one of a maximum value of a distance between the gripping position and a profile of the workpiece in a direction orthogonal to the approach vector and a maximum value of a distance between the gripping position and a profile of the hand in the direction orthogonal to the approach vector.
4. The picking apparatus according to claim 1, wherein the control device is configured to operate the robot arm such that the hand is brought into contact with a peripheral part defining the opening, to thereby obtain a position of the peripheral part.
5. The picking apparatus according to claim 1, further comprising a sensor configured to detect a position of a position indicating marker disposed around the opening, wherein the control unit is configured to obtain a position of a peripheral part defining the opening based on a detection result of the sensor.
6. A picking method comprising: three-dimensionally imaging workpieces contained in bulk in a container; and controlling an operation of a robot arm comprising a hand configured to grip a workpiece; wherein the controlling of the operation of the robot arm includes: recognizing a position and a posture of a target workpiece, based on an imaging result of the three-dimensionally imaging; obtaining a gripping position of the workpiece and an approach vector of the gripping position, based on the recognized position and posture information; calculating an intersection point between a straight line extending along the approach vector through the gripping position and a plane including an opening of the container; and determining whether the workpiece can be picked or not, based on a positional relationship between the calculated intersection point and the opening.
7. The picking method according to claim 6, wherein the determining whether the workpiece can be picked or not includes: determining whether a condition, in which the intersection point is located inside the opening and a shortest distance between the intersection point and a peripheral part defining the opening is larger than a predetermined value, is satisfied or not; causing the robot arm to pick the workpiece, in response to determining the condition is satisfied; and not causing the robot arm to pick the workpiece, in response to determining the condition is not satisfied.
8. The picking method according to claim 7, wherein the predetermined value is 1 to 1.1 times any larger one of a maximum value of a distance between the gripping position and a profile of the workpiece in a direction orthogonal to the approach vector and a maximum value of a distance between the gripping position and a profile of the hand in the direction orthogonal to the approach vector.
9. The picking method according to claim 6, further comprising operating the robot arm such that the hand is brought into contact with a peripheral part defining the opening to obtain a position of the peripheral part.
10. The picking method according to claim 6, further comprising: detecting a position of a position indicating marker disposed around the opening; and obtaining a position of a peripheral part defining the opening based on a detection result of the detecting.
11. The picking apparatus according to claim 2, wherein the control device is configured to operate the robot arm such that the hand is brought into contact with a peripheral part defining the opening to obtain a position of the peripheral part.
12. The picking apparatus according to claim 3, wherein the control device is configured to operate the robot arm such that the hand is brought into contact with a peripheral part defining the opening to obtain a position of the peripheral part.
13. The picking apparatus according to claim 2, further comprising a sensor configured to detect a position of a position indicating marker disposed around the opening, wherein the control unit is configured to obtain a position of a peripheral part defining the opening based on a detection result of the sensor.
14. The picking apparatus according to claim 3, further comprising a sensor configured to detect a position of a position indicating marker disposed around the opening, wherein the control unit is configured to obtain a position of a peripheral part defining the opening based on a detection result of the sensor.
15. The picking method according to claim 7, further comprising operating the robot arm such that the hand is brought into contact with a peripheral part defining the opening to obtain a position of the peripheral part.
16. The picking method according to claim 8, further comprising operating the robot arm such that the hand is brought into contact with a peripheral part defining the opening to obtain a position of the peripheral part.
17. The picking method according to claim 7, further comprising: detecting a position of a position indicating marker disposed around the opening; and obtaining a position of a peripheral part defining the opening based on a detection result of the detecting.
18. The picking method according to claim 8, further comprising: detecting a position of a position indicating marker disposed around the opening; and obtaining a position of a peripheral part defining the opening based on a detection result of the detecting.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
DETAILED DESCRIPTION OF THE INVENTION
(12) An embodiment of the present invention will be described in detail below with reference to the attached drawings.
(13)
(14) The three-dimensional imaging device 11 is known per se as a known imaging device capable of obtaining three-dimensional information of a target object by a method such as stereo vision method, an optical cutting method, a band projection method and so on. The three-dimensional imaging device 11 is disposed to face an opening 22 of the container 20. Thus, the three-dimensional imaging device 11 can three-dimensionally image workpieces contained in bulk in the container 20 through the opening 22.
(15)
(16) As shown in
(17) The image recognition unit 15 is configured to read out three-dimensional data imaged by the three-dimensional imaging device 11 through the network hub 17, and is configured to store the three-dimensional data in a storage unit. The image recognition unit 15 is constituted of a computer system including a storage unit storing a commercially available three-dimensional recognition program or the like. The three-dimensional image recognition program stored in the storage unit is configured to analyze workpieces contained in bulk in the container 20, based on the three-dimensional image data read out from the three-dimensional imaging device 11, to retrieve therefrom a part (i.e., target workpiece) having image data conforming to a pre-stored model workpiece shape, and to recognize a position and a posture of the retrieved part.
(18) The robot controller 16 is configured to read out the information about the position and the posture (position and posture information) recognized by the image recognition unit 15 through the network hub 17. Based on the position and posture information read out from the image recognition unit 15, the robot controller 16 is configured to obtain a gripping position of the target workpiece 21 and an approach vector thereof in the world coordinate system. The approach vector herein means a direction in which the hand 13 of the robot arm 12 linearly approaches the gripping position of the workpiece 21 when picking. Based on the information about the gripping position of the target workpiece 21 and the approach vector thereof, the robot controller 16 is configured to control an operation of the robot arm 12.
(19) A vertical articulated robot known per se is used as the robot arm 12, for example. In the illustrated example, the number of articulations of the robot arm 12 is six (hexaxial). A drive source (e.g., servomotor) provided on each articulation is driven by a desired amount by a control output from the robot controller 16, whereby the robot arm 12 is moved and/or rotated such that a distal end thereof is located on a desired position with a desired posture.
(20) The distal end of the robot arm 12 is equipped with the hand 13 capable of gripping a workpiece 21. The gripping operation herein may be an absorbing operation by a magnetic force or a negative pressure, etc., as well as a holding operation such as a pinching operation.
(21) In the illustrated example, the hand 13 has a pair of elongate movable members. The pair of elongate movable members are opposedly arranged in parallel with each other, and are pneumatically movable relatively to each other, for example. When the pair of elongate movable members come close to each other, a workpiece 21 located in position between the pair of elongate movable members is pinched and gripped by the pair elongate movable members. On the other hand, when the pair of elongate movable members separate away from each other, the workpiece 21 gripped between the pair of elongate movable members is released.
(22) An operation of the robot arm 12 when picking is described. Firstly, the hand 13 on the distal end of the robot arm 12 is moved from a predetermined standby position to an approach position outside the container 20. The approach position herein means a predetermined position outside the container 20, which is on a straight line L extending along the approach vector through the gripping position of the target workpiece 21 (e.g., position distant from the gripping position of the workpiece 21 by 100 mm). At the approach position, the pair of elongate movable members of the hand 13 are oriented in a direction extending along the approach vector. Then, the hand 13 is linearly moved from the approach position to the gripping position of the workpiece along the approach vector, so that the target workpiece 21 is located in position between the pair of elongate movable members. At the gripping position of the workpiece, the target workpiece 21 is gripped by the hand 13. Then, the hand 13 gripping the workpiece 21 is linearly moved from the gripping position of the workpiece along the approach vector to return to the approach position. Thereafter, the hand 13 is moved from the approach position to the standby position or a predetermined release position of the workpiece.
(23) In this embodiment, the robot controller 16 is configured to operate the robot arm 12 such that the hand 13 is brought into contact with the peripheral part 23 defining the opening 22 of the container 20, so as to obtain a position of the peripheral part 23 in the world coordinate system. In more detail, the robot controller 16 operates the robot arm 12 such that the hand 13 is brought close to the peripheral part 23 of the container 20. By detecting a contact pressure generated upon contact, the robot controller 16 judges whether the hand 13 comes into contact with the peripheral part 23 or not. When it is judged that the hand 13 came into contact with the peripheral part 23, a position coordinate value of the peripheral part 23 defining the opening 22 is obtained from a position coordinate value of the hand 13 at this time.
(24) In addition, in this embodiment, the robot controller 16 is configured to calculate an intersection point M between a straight line L, which extends along the approach vector through the gripping position of the target workpiece 21, and a plane F including the opening 22.
(25) An example of a method of calculating the intersection point M is described. Firstly, as shown in
N={right arrow over (B.sub.1B.sub.2)}{right arrow over (B.sub.1B.sub.4)}(1)
(26) By using a coordinate value B.sub.1: (x.sub.1, y.sub.1, z.sub.1) in the world coordinate system of the apex B.sub.1 of the opening 22, an equation of the plane F that is perpendicular to the normal vector N through the apex B.sub.1 is shown by the following equation (2).
n.sub.x(xx.sub.1)+n.sub.y(yy.sub.1)+n.sub.z(zz.sub.1)=0(2)
(27) Then, as shown in
(28) In more detail, for example, the Z, Y, X Euler angles expression is employed as a distal end posture expression of the robot, and the reference coordinate system (world coordinate system) i is rotated in the following order. Namely, (i) the reference coordinate system i is rotated about the Z-axis by c.sub.wk. (ii) Then, the rotated coordinate system is rotated about the Y-axis by b.sub.wk. (iii) Then, the rotated coordinate system is rotated about the X-axis by a.sub.wk.
(29) The respective rotation matrices of the above (i) to (iii) are shown by the following equation (3).
(30)
wherein sa=sin(a.sub.wk), sb=sin(b.sub.wk), sc=sin(c.sub.wk), ca=cos(a.sub.wk), cb=cos(b.sub.wk), and cc=cos(c.sub.wk),
(31) In the Euler angles expression, since the conversion matrices of the rotated coordinate systems are multiplied from the right side in sequence, the posture matrix R.sub.abc of the workpiece 21 is shown by the following equation (4).
(32)
(33) The approach vector of the workpiece 21 is the Z-axis vector of the coordinate system showing the posture of the workpiece 21, and is given by v.sub.z(r.sub.13, r.sub.23, r.sub.33). The approach vector of the workpiece 12 is equivalent to a direction vector of the straight line L. Thus, when the gripping position of the workpiece 21 conforms to the origin position, an equation of the straight line L is shown by the following equations (5), (6) and (7) using a parameter t.
x=x.sub.wk+t.Math.r.sub.13(5)
y=y.sub.wk+t.Math.r.sub.23(6)
z=z.sub.wk+t.Math.r.sub.33(7)
(34) In order to obtain the intersection point M between the plane F and the straight. The L, the equations (5), (6) and (7) are substituted in the equation (2), and the resulted equation is deformed as to the parameter t, to thereby obtain the following equation (8).
(35)
(36) By respectively substituting the equation (8) into the equations (5), (6) and (7), an intersection point coordinate M: (x.sub.M, y.sub.M, Z.sub.M) between the plane F and the straight line L is obtained.
(37) In addition, in this embodiment, as shown in
(38) Specifically, for example, as shown in Hg. 5, the robot controller 16 is configured to judge whether a condition (hereinafter referred to as non-interference condition) in which the intersection point M is located inside the opening 22 and shortest distances L.sub.1, L.sub.2, L.sub.3, L.sub.4 between the intersection point M and the peripheral part 23 defining the opening 22 are larger than a predetermined value r. When the condition is satisfied, the robot controller 16 is configured to cause the robot arm 12 to pick the workpiece 21. When the condition is not satisfied, the robot controller 16 is configured not to cause the robot arm 12 to pick the workpiece 21.
(39) As shown in
(40) Next, an example of judging whether the non-interference condition is satisfied or not is described. Firstly, as shown in
{right arrow over (V.sub.c1)}={right arrow over (B.sub.1B.sub.2)}{right arrow over (B.sub.1M)}(9)
(41) Then, a Z-axis value of the outer product vector obtained by the above equation (9) is evaluated. When the Z-axis value is equal to or larger than zero, i.e., when the following equation (10) is satisfied, the intersection point M is located inside the opening 22 with respect to the ridge vector from the apex B.sub.1 to the apex B.sub.2, as shown in
{right arrow over (V.sub.c1)}.Math.z>=0.0(10)
(42) On the other hand, when the Z-axis value of the outer product vector is smaller than zero, i.e., when the following equation (11) is satisfied, the intersection point M is located opposedly to the opening 22 with respect to the ridge vector from the apex B.sub.1 to the apex B.sub.7, as shown in
{right arrow over (V.sub.c1)}.Math.z<0.0(11)
(43) The other ridge vectors of the peripheral part 23 defining the opening 22 are similarly evaluated. Namely, the following equations (12), (13) and (14) are obtained.
{right arrow over (V.sub.c2)}={right arrow over (B.sub.2B.sub.3)}{right arrow over (B.sub.2M)}(12)
{right arrow over (V.sub.c3)}={right arrow over (B.sub.3B.sub.4)}{right arrow over (B.sub.3M)}(13)
{right arrow over (V.sub.c4)}={right arrow over (B.sub.4B.sub.1)}{right arrow over (B.sub.4M)}(14)
(44) Then, it is judged whether the following equation (15) is satisfied or not.
{right arrow over (V.sub.c1)}.Math.z>=0.0 AND {right arrow over (V.sub.c2)}.Math.z>=0.0 AND {right arrow over (V.sub.c3)}.Math.z>=0.0 AND {right arrow over (V.sub.c4)}.Math.z>=0.0(15)
(45) When the above equation (15) is satisfied, the intersection point M is located inside the opening 22. On the other hand, when the above equation (15) is not satisfied, the intersection point M is located outside the opening 22.
(46) Next, it is judged whether a condition (second condition), in which a shortest distance between the intersection point M and the peripheral part 23 defining the opening 22 is larger than a predetermined value, is satisfied or not. Specifically, for example, in the peripheral part 23 defining the opening 22, an angle .sub.1 defined between the ridge vector from the apex B.sub.1 to the apex B.sub.2 and the vector from the apex B.sub.1 to the intersection point M is obtained by the following equation (16).
(47)
(48) From the above equation (16), a shortest distance L.sub.1 between the ridge vector from the apex B.sub.1 up to the apex B.sub.2 and the intersection point M is obtained by the following equation (17).
L.sub.1=|{right arrow over (B.sub.1M)}|sin (.sub.1)(17)
(49) The other ridge vectors of the peripheral part 23 defining the opening 22 are similarly evaluated. Namely, the following equations (18), (19) and (20) are obtained.
(50)
(51) Then, shortest distances L.sub.2, L.sub.3 and L.sub.4 between the other ridge vectors of the peripheral part 23 defining the opening 22 and the intersection point M are obtained by the following equations (21), (22) and (23).
L.sub.2=|{right arrow over (B.sub.2M)}|sin(.sub.2)(21)
L.sub.3=|{right arrow over (B.sub.3M)}|sin(.sub.3)(22)
L.sub.4=|{right arrow over (B.sub.4M)}|sin(.sub.4)(23)
(52) It is judged whether the respective shortest distances L.sub.1, L.sub.2, L.sub.3 and L.sub.4 between the respective ridge vectors of the peripheral part 23 and the intersection point M are larger than the predetermined value r or not. When at least one of L.sub.1, L.sub.2, L.sub.3 and L.sub.4 is smaller than the predetermined value r, there is a possibility that the hand 13 or the workpiece 21 gripped by the hand 13 interferes with the container 20.
(53) Thus, when the aforementioned first and second conditions are both satisfied, the robot controller 16 judges that the hand 13 or the workpiece 21 gripped by the hand 13 and the container 20 do not interfere with each other, and causes the robot arm 12 to pick the workpiece 21. On the other hand, when one or both of the first and second conditions is not satisfied, the robot controller 16 judges that the hand 13 or the workpiece 21 gripped by the hand 13 and the container 20 may interfere with each other, and does not cause the robot arm 12 to pick the workpiece 21.
(54) In this embodiment, the robot controller 16 obtains a gripping position of a target workpiece and an approach vector thereof, based on position and posture information recognized by the image recognition unit 15. However, not limited thereto, the image recognition unit 15 may obtain a gripping position of a target workpiece and an approach vector thereof, and the robot controller 16 may read out, through the network hub 17, the information about the gripping position of the workpiece and the approach vector thereof, which has been obtained by the image recognition unit 15. In addition, the image recognition unit 15 may calculate the intersection point M between the straight line L extending along the approach vector through the gripping position of the target workpiece 21 and the plane F including the opening 22, and may judge whether the intersection point M is located inside the opening 22 or not, and whether the shortest distance between the intersection point M and the peripheral part 23 defining the opening 22 is larger than the predetermined value r or not. In this case, the robot controller 16 may read out, through the network hub 17, the result judged by the image recognition unit 15.
(55) Next, an operation of this embodiment as above (picking method according to one embodiment of the present invention) is described with reference to
(56) Firstly, the opening 22 of the container 20 containing workpieces in bulk is located in position so as to face the three-dimensional imaging device 11 of the picking apparatus 10.
(57) Then, an operation of the robot arm 12 is controlled by the robot controller 16 such that the hand 13 of the robot arm 12 is brought into contact with the peripheral part 23 defining the opening 22 of the container 20, to thereby obtain a position coordinate value in the world coordinate system.
(58) Then, an inside of the container 20 is three-dimensionally imaged by the three-dimensional imaging device 11 through the opening 22 (step S1). The imaging result of the three-dimensional imaging device 11 is read out by the image recognition unit 15 through the network hub 17.
(59) The image recognition unit 15 recognizes a position and a posture of a target workpiece, based on the imaging result of the three-dimensional imaging device 11 (step S2). In more detail, the workpieces contained in bulk in the container 20 are analyzed by the three-dimensional image recognition program stored in the storage unit of the image recognition unit 15, based on the three-dimensional image data read out from the three-dimensional imaging device 11. Out of these workpieces, a part (i.e., target workpiece) having image data conforming to a pre-stored model workpiece shape is retrieved, and a position and a posture of the retrieved part are recognized. The position and posture information recognized by the image recognition unit 15 is read out by the robot controller 16 through the network hub 17.
(60) The robot controller 16 obtains a gripping position of the target workpiece 21 and an approach vector thereof in the world coordinate system by means of the aforementioned method, for example, based on the position and posture information recognized by the image recognition unit 15 (step S3).
(61) Then, the robot controller 16 calculates an intersection point M between a straight line L extending along the approach vector through the gripping position of the target workpiece 2 and a plane F including the opening 22 by means of the aforementioned method, for example (step S4).
(62) Then, the robot controller 16 judges whether the target workpiece 21 can be picked or not, based on a positional relationship between the calculated intersection point M and the opening 22 (step S5). Specifically, for example, the robot controller 16 judges whether the condition (non-interference condition), in which the intersection point M is located within the opening 22 and a shortest distance between the intersection point M and the peripheral part 23 defining the opening 22 is larger than a predetermined value, is satisfied or not.
(63) When the non-interference condition is judged to be satisfied, the robot controller 16 causes the robot arm 12 to pick the workpiece 21 (step S6). In more detail, the robot controller 16 controls an operation of a drive unit of each articulation of the robot arm 12 such that the hand 13 of the robot arm 12 is moved from a standby position to an approach position, and is then linearly moved from the approach position to a gripping position of the workpiece along the approach vector. At this time, the hand 13 passes through a position which is located inside the opening 22 and is apart from the peripheral part 23 defining the opening 22 by the predetermined value r or more. Thus, an interference between the hand 13 and the container 20 is prevented. Then, after the hand 13 has gripped the workpiece 21 at the gripping position of the workpiece, the hand 13 is linearly moved from the gripping position of the workpiece to the approach position along the approach vector. Also at this time, since the hand 13 passes through a position which is located inside the opening 22 and is apart from the peripheral part 23 defining the opening 22 by the predetermined value r or more, an interference between the hand 13 or the workpiece 21 gripped by the hand 13 and the container 20 is prevented. Thereafter, the hand 13 gripping the workpiece 21 is moved from the approach position to the standby position or a predetermined release position of the workpiece.
(64) On the other hand, when the condition is judged to be not satisfied, the robot controller 16 does not cause the robot arm 12 to pick the workpiece 21. In this case, the above respective steps S1 to S5 are sequentially repeated for another workpiece 21 to be gripped.
(65) According to the above embodiment, before an operation of the robot arm 12, whether a workpiece 21 can be picked or not without any interference between the hand 13 or the workpiece 21 gripped by the hand 13 and the container 20 is previously judged by the control device 14, and such a judgment on whether the picking is possible or not is achieved by the simple method requiring shorter computing time. Thus, the workpiece 21 can be picked safely and efficiently, without damaging the hand 13 and the container 20.
(66) In addition, according to this embodiment, since the predetermined value r is 1 to 1.1 times any larger one of the maximum value rw of the distance between the gripping position C and the profile of the workpiece 21 in the direction orthogonal to the approach vector and a maximum value rh of the distance between the gripping position C and the profile of the hand 13 in the direction orthogonal to the approach vector, it can be reliably prevented that the hand 13 that is linearly moved along the approach vector or the workpiece 21 gripped by the hand 13 and the container 20 interfere with each other when picking.
(67) In this embodiment, the control unit 14 is configured to judge whether the workpiece 21 can be picked or not based on the fact that the condition, in which the intersection point M is located within the opening 22, and a shortest distance between the intersection point M and the peripheral part 23 defining the opening 22 is larger than a predetermined value r, is satisfied or not. However, not limited thereto, even when the calculated intersection point M is located outside the opening 22, the control device 14 may judge that the workpiece 21 can be picked, by suitably performing some assisting operation such as changing a gripping position of the workpiece 21 or the like,
(68) In addition, in this embodiment, when obtaining a position of the peripheral part 23 defining the opening 22, the robot arm 12 is operated such that the hand 13 is brought into contact with the peripheral part 23 defining the opening 22, to thereby obtain the peripheral part 23. However, not limited thereto, there may be further provided, for example, a sensor (not shown) configured to detect a position of a position indicating marker disposed around the opening 22, and the control device 14 may obtain a position of the peripheral pare 23 defining the opening 22 based on a detection result of the sensor. In this case, although not specifically limited, an optical, electric or magnetic sensor is used as the sensor, for example. Alternatively, the three-dimensional imaging device 11 may be used as the sensor. 10 Picking apparatus 11 Three-dimensional imaging device 12 Robot arm 13 Hand 14 Control device 15 Image recognition unit 16 Robot controller 17 Network hub 20 Container 21 Workpiece 22 Opening 23 Peripheral part