ARTICLE CONVEYANCE PROCESSING SYSTEM
20240286289 ยท 2024-08-29
Inventors
- Takashi Ueda (Osaka, JP)
- Yoshiaki Uemizo (Osaka, JP)
- Tomonori Kitano (Osaka, JP)
- Shin Iose (Osaka, JP)
- Kazuyoshi NAKATANI (Osaka, JP)
- Yoshimi Ezawa (Osaka, JP)
Cpc classification
B25J9/0027
PERFORMING OPERATIONS; TRANSPORTING
B25J9/1687
PERFORMING OPERATIONS; TRANSPORTING
International classification
B25J13/08
PERFORMING OPERATIONS; TRANSPORTING
B25J15/06
PERFORMING OPERATIONS; TRANSPORTING
Abstract
Provided is an article conveyance processing system in which article(s) are efficiently taken out from a mobile cart and/or article(s) are placed on a mobile cart even when various types of mobile carts are used. Using the cart coordinate system obtained such that the horizontal, vertical and depth axes of the cart coordinate system substantially coincide with the horizontal, vertical and depth directions of the mobile cart, respectively, the article conveyance processing system performs the control of moving the robot hand and the attitude control of the robot hand; thus, the article conveyance processing system can efficiently take out an article from a mobile cart and/or place an article on a mobile cart regardless of in what orientation a wide variety of mobile carts are placed.
Claims
1. An article conveyance processing system for taking out an article from a mobile cart having a horizontal frame and a vertical frame and/or conveying and placing an article on the mobile cart, comprising: a robot hand that grips and conveys an article; a moving mechanism configured to perform attitude control and movement control for the robot hand; and a control unit that controls the robot hand and the moving mechanism, wherein the robot hand comprises: a frame; and a telescopic mechanism, an adsorption mechanism, a first distance sensor, a second distance sensor, and an imaging unit that are installed in the frame, wherein the control unit performs: a first distance obtaining step of measuring a distance between a first measurement point on a horizontal frame of the mobile cart and the first distance sensor by the first distance sensor in a state in which the robot hand is attitude-controlled to have a predetermined attitude with respect to the mobile cart, and obtaining the measured value as a first distance; a second distance obtaining step of, in a state of controlling the attitude of the robot hand in the same attitude as the predetermined attitude, measuring a distance between the first measurement point on the horizontal frame of the mobile cart and a second measurement point different from the first measurement point, and obtaining the measured value as a second distance; a horizontal error determination step of determining whether a difference between the first distance and the second distance is equal to or less than a predetermined value; a cart coordinate system horizontal axis setting step of, when it is determined that the difference between the first distance and the second distance is equal to or less than a predetermined value in the horizontal error determination step, setting an axis in substantially the same direction as a vector from the position of the robot hand when the first distance has been measured to the position of the robot hand when the second distance has been measured as a horizontal axis of the cart coordinate system that is a coordinate system used as references when controlling the movement and/or attitude for the mobile cart by the robot hand; and a robot hand control step of controlling the robot hand based on the cart coordinate system.
2. The article conveyance processing system according to claim 1, wherein the control unit further performs: a third distance obtaining step of measuring a distance between a third measurement point on the vertical frame of the mobile cart and the first distance sensor by the first distance sensor in a state in which the robot hand is attitude-controlled to have a predetermined attitude with respect to the mobile cart, and obtaining the measured value as a third distance; a fourth distance obtaining step of measuring a distance between a fourth measurement point, which is different from the third measurement point, on the vertical frame of the mobile cart and the first distance sensor by the first distance sensor in a state of controlling the attitude of the robot hand in the same attitude as in the third distance obtaining step, and obtaining the measured value as a fourth distance; a vertical error determination step of determining whether a difference between the third distance and the fourth distance is equal to or less than a predetermined value; and a cart coordinate system vertical axis setting step of, when it is determined that the difference between the third distance and the fourth distance is equal to or less than a predetermined value in the vertical error determination step, setting an axis in substantially the same direction as a vector from the position of the robot hand when the third distance has been measured to the position of the robot hand when the fourth distance has been measured as a vertical axis of the cart coordinate system that is a coordinate system used as references when controlling the movement and/or attitude for the mobile cart by the robot hand.
3. The article conveyance processing system according to claim 1, wherein the control unit further performs a cart coordinate system depth axis setting step of setting an axis in a direction substantially orthogonal to both of a horizontal axis and a vertical axis of the cart coordinate system as a depth axis of the cart coordinate system.
4. The article conveyance processing system according to claim 1, wherein the control unit analyzes a captured image of the identification information mark affixed on the vertical frame or the horizontal frame of the mobile cart, which has been obtained by imaging the identification information mark by the imaging unit, to obtain information included in the identification information mark.
5. The article conveyance processing system according to claim 1, wherein the control unit further performs a cart coordinate system origin setting step of setting a predetermined position of an identification information mark affixed on the vertical frame or the horizontal frame of the mobile cart to an origin of the cart coordinate system.
6. The article conveyance processing system according to claim 1, wherein the control unit further performs: a movement step of, when an article is to be taken out from a predetermined shelf of the mobile cart or an article is to be placed, taking out the article from the predetermined shelf or moving the article to a position where the article can be taken out from the predetermined shelf or be placed using the robot hand while performing the attitude control of the robot hand; a detecting step of analyzing a captured image of the vertical frame supporting the predetermined shelf, which has been obtained by imaging the vertical frame by the imaging unit moved to a predetermined position in the movement step, to detect an inclination of the horizontal frame; and an attitude adjustment step of, when the inclination of the horizontal frame is larger than a predetermined value, adjusting the attitude control of the robot hand so as to correct the inclination.
7. The article conveyance processing system according to claim 1, wherein the mobile cart has a reference mark, which is for specifying a center position when the article is to be placed in a row on the horizontal frame, for each row for arranging articles in a row, and wherein the control unit, based on the reference mark, moves the robot hand while performing the attitude control of the robot hand, thereby performing the robot hand control step.
8. The article conveyance processing system according to claim 1, wherein the control unit further performs: a section setting step of, when an article is to be taken out from a predetermined shelf of the mobile cart, measuring a distance to the article by using the second distance sensor, and setting a high-speed movement section that is a section for controlling the suction mechanism attached to the telescopic mechanism to move at high speed, and a low-speed movement section that is a section for controlling the suction mechanism to move at low speed while monitoring a suction state of a suction portion of the suction mechanism attached to the telescopic mechanism; and a telescopic mechanism control step of controlling the telescopic mechanism so that the suction mechanism attached to the telescopic mechanism moves at high speed in the high-speed movement section set in the section setting step, and controlling the telescopic mechanism so that the suction mechanism moves at low speed while monitoring a suction state of the suction portion of the suction mechanism attached to the telescopic mechanism in the low-speed movement section set in the section setting step.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0044]
[0045]
[0046]
[0047]
[0048]
[0049]
[0050]
[0051]
[0052]
[0053]
[0054]
[0055]
[0056]
[0057]
[0058]
[0059]
[0060]
[0061]
[0062]
[0063]
[0064]
[0065]
[0066]
[0067]
[0068]
[0069]
[0070]
[0071]
DESCRIPTION OF EMBODIMENTS
First Embodiment
[0072] A first embodiment will now be described with reference to the drawings.
1.1: Configuration of Article Conveyance Processing System
[0073]
[0074]
[0075]
[0076]
[0077]
[0078]
[0079]
[0080]
[0081]
[0082]
[0083]
[0084] The article conveyance processing system 1000 is, for example, a system capable of performing processing of taking out article(s) from a mobile shelf and/or placing article(s) on the mobile shelf (e.g., a mobile cart). As shown in
[0085] The moving mechanism Rbt_arm is a moving mechanism for freely moving the robot hand 100 in a predetermined region in the three-dimensional space. The moving mechanism Rbt_arm is configured using, for example, a multi-articulated robot arm. As shown in
[0086] The first link Rbt_L1 is connected to the base Rbt_base so as to be rotatable around the axis r_ax.sub.1 with the axis r_ax.sub.1 as a rotation axis (rotation angle is ?.sub.1). The first link Rbt_L1 is connected to the second link Rbt_L2 such that the second link Rbt_L2 is rotatable around the axis r_ax.sub.2 with the axis r_ax.sub.2 as a rotation axis.
[0087] The second link Rbt_L2 is connected to the first link Rbt_L1 so as to be rotatable around the axis r_ax.sub.2 (rotation angle is ?.sub.2) with the axis r_ax.sub.2 as a rotation axis. The second link Rbt_L2 is also connected to the third link Rbt_L3.
[0088] The third link Rbt_L3 is connected to the second link Rbt_L2. The third link Rbt_L3 is also connected to the fourth link Rbt_L4 so that the fourth link Rbt_L4 is rotatable around the axis r_ax.sub.3 with the axis r_ax.sub.3 as a rotation axis.
[0089] The fourth link Rbt_L4 is connected to the third link Rbt_L3 so as to be rotatable around the axis r_ax.sub.3 (rotation angle is ?.sub.3) with the axis r_ax.sub.3 as a rotation axis. The fourth link Rbt_L4 is also connected to the fifth link Rbt_L5 such that the fifth link Rbt_L5 is rotatable around the axis r_ax.sub.4 with the axis r_ax.sub.4 as a rotation axis.
[0090] The fifth link Rbt_L5 is connected to the fourth link Rbt_L4 so as to be rotatable around the axis r_ax.sub.4 (rotation angle is ?.sub.4) with the axis r_ax.sub.4 as a rotation axis. The fifth link Rbt_L5 is also connected to the fifth link Rbt_L6 such that the sixth link Rbt_L6 is rotatable around the axis r_ax.sub.5 with the axis r_ax.sub.5 as a rotation axis.
[0091] The sixth link Rbt_L6 is connected to the fifth link Rbt_L5 so as to be rotatable around the axis r_ax.sub.5 with the axis r_ax.sub.5 as a rotation axis (rotation angle is ?.sub.5). Further, the sixth link Rbt_L6 has a mechanism (referred to as a robot hand attachment mechanism) for attaching the robot hand 100 to the tip portion thereof.
[0092] The moving mechanism Rbt_arm drives each joint (each link) by an actuator (not shown) based on a command (a command (a torque command) for rotating each joint (each link) by a predetermined angle) from the control unit 1, and moves the robot hand 100 attached to the tip of the moving mechanism Rbt_arm to a predetermined position in the three-dimensional space.
[0093] The robot hand 100 is a mechanism that is attached to the tip portion of the moving mechanism Rbt_arm in a attitude controllable manner, for example, to take out an article (for example, a cash box) placed on a shelf of the mobile cart 200 from the mobile cart 200, convey the article to a predetermined place, and/or place the article in a predetermined position (for example, a predetermined position on a predetermined shelf) of the mobile cart 200.
[0094] As shown in
[0095] It is assumed that the frame 10Fr of the robot hand 100 mainly includes the top plate 10T, the bottom plate 10B, the side plates 10S1 and 10S2, the first side L-shaped plate 10L1, and the second side L-shaped plate 10L1.
[0096] The top plate 10T is a substantially rectangular flat plate, and has a robot hand connection mechanism JT10 on an upper surface thereof; the robot hand connection mechanism JT10 is rotatably (attitude-controllably) attached to the tip portion of the moving mechanism Rbt_arm. The side plates 10S1 and 10S2, the first side L-shaped plate 10L1, and the second side L-shaped plate 10L1 are attached to the lower surface of the top plate 10T.
[0097] The bottom plate 10B has the side plates 10S1 and 10S2 attached to the upper surface thereof. Further, the bottom plate 10B has the imaging unit 15 attached to the lower surface thereof. Further, the placing flat plate 10LT is attached to the lower surface of the front end portion of the bottom plate 10B.
[0098] As shown in
[0099] As shown in
[0100] Note that the attitude control of the robot hand 100 (the frame 10Fr of the robot hand) is performed as follows. In the moving mechanism Rbt_arm, the fifth link Rbt_L5 is rotated around the rotation axis r_ax.sub.4 by an angle ?.sub.4, the sixth link Rbt_L6 is rotated around the rotation axis r_ax.sub.5 by an angle ?.sub.5, and the robot hand 100 is rotated around the rotation axis r_ax.sub.6 by an angle ?.sub.6, thereby causing the robot hand 100 (the frame 10Fr of the robot hand) to be placed in any desired attitude. In other words, the robot hand 100 is controlled so as to have a predetermined attitude (predetermined orientation) by rotating the frame 10Fr as one unit around the three rotational axes r_ax.sub.4, r_ax.sub.5, and r_ax.sub.6 by predetermined angles (see
[0101] The telescopic mechanism 11 is installed inside the frame 10Fr of the robot hand 100 and can move its tip portion in a predetermined direction. The telescopic mechanism 11 is provided by using, for example, a telescopic tong-type mechanism used for a magic hand or the like. The telescopic mechanism 11 has a rear end portion fixed to a rear end portion of the frame 10Fr (for example, a rear end portion of the lower surface of the top plate 10T), and the body of the telescopic mechanism 11 extends in a predetermined direction, thereby moving the tip portion of the telescopic mechanism 11 in a predetermined direction. The telescopic mechanism may be provided by using, for example, a technique and a configuration disclosed in Japanese Patent Application No. 2021-039180.
[0102] As shown in
[0103] For example, as shown in
[0104] Then, as shown in
[0105] The suction mechanism 12 includes a suction pipe 12T and a suction portion 12S, and is a mechanism for sucking an article or the like placed on a shelf or the like by the suction portion 12S. As shown in
[0106] Note that the suction mechanism 12 is configured such that the suction portion 12S moves in substantially the same direction (substantially the same direction as the forward-backward direction in
[0107] The first distance sensor 13 is a sensor that measures a distance between the robot hand 100 and a predetermined point (for example, a point on a substantially flat surface (e.g., a point on the frame of the mobile cart 200)), and is installed on the lower side of the side of the second side L-shaped plate 10L1 as shown in
[0108] The first distance sensor 13 is controlled by the control unit 1 of the control device Dev1.
[0109] Assuming that the straight line connecting the measurement reference point P_ref and the measurement point P_msr is a straight line line.range-snsr1, as shown in
[0110] The second distance sensor 14 is a sensor that measures a distance between the robot hand 100 and a predetermined point (e.g., a point on a substantially flat surface (e.g., a point on a surface of an article placed on a shelf of the mobile cart 200)); and the second distance sensor 14 is installed at a predetermined position in the frame 10Fr (e.g., a position on the side of the telescopic mechanism 11, the position being a position at about the middle of the height of the frame 10Fr), as shown in
[0111] The second distance sensor 14 is controlled by the control unit 1 of the control device Dev1.
[0112] As shown in
[0113] The imaging unit 15 is, for example, a small camera equipped with an optical system including one or more lenses, a CMOS image sensor, a CCD image sensor, or the like, is attached to a lower surface of the bottom plate 10B of the robot hand 100 (for example, a substantially center position in the widthwise direction of the lower surface of the bottom plate 10B), and captures an image of the foreground of the robot hand 100. The imaging unit 15 is controlled by the control unit 1 of the control device Dev1.
[0114] As shown in
[0115] As shown in
[0116] As shown in
[0117] The control unit 1 is connected to the moving mechanism Rbt_arm, the telescopic mechanism 11, the suction mechanism 12, the first distance sensor 13, the second distance sensor 14, and the imaging unit 15, and controls the moving mechanism Rbt_arm, the telescopic mechanism 11, the suction mechanism 12, the first distance sensor 13, the second distance sensor 14, and the imaging unit 15. Further, the control unit 1 performs conversion processing between the robot coordinate system and the cart coordinate system (details will be described later).
[0118] The communication interface IF1 is a communication interface for performing wired or wireless communication with an external device (not shown).
[0119] The storage unit Mem1 is a memory for storing data; data stored in the storage unit Mem1 can be read out by the control unit 1, and predetermined data can be written into the storage unit Mem1 by the control unit 1.
[0120] As shown in
[0121] Further, as shown in
[0122] As shown in
[0123] In addition, articles (for example, cash boxes) are placed on each shelf (on each placing flat plate) of the mobile cart 200 with the articles arranged.
[0124] Guides (e.g., guides (guide plates) provided on a moving rack disclosed in JP-A-2021-039181 may be employed as these guides) may be provided in part or all of the positions indicated by the one-dot chain line in
[0125] In the above description, the placing flat plate 20PL1 that is the uppermost shelf of the mobile cart 200 has been described, but the same applies to other placing flat plates 20PL2 to 20PL6.
1.2: Operation of Article Conveyance Processing System
[0126] The operation of the article conveyance processing system 1000 configured as described above will be described with reference to the drawings.
[0127]
[0128]
[0129] Hereinafter, the operation of the article conveyance processing system 1000 will be described with reference to the flowcharts of
Step S1:
[0130] In step S1, the cart coordinate system setting processing is performed.
Step S11:
[0131] In step S11, processing of detecting the approximate position of the mobile cart 200 is performed. For example, a case where the mobile cart 200 is transported manually and placed in the state (orientation) shown in
Step S12:
[0132] In step S12, the control unit 1 drives the moving mechanism Rbt_arm to move the robot hand 100 to a position (an area near the identification information mark mk1) where the details of the identification information mark mk1 of the mobile cart 200 can be imaged by the imaging unit 15. At this time, the control unit 1 performs attitude control of the robot hand 100 such that the optical axis (linear line camera) of the optical system of the imaging unit 15 is substantially perpendicular to the front surface of the frame to which the identification information mark mk1 of the mobile cart 200 is attached (for example, performs attitude control in consideration of the degree of distortion of the captured images of the identification information mark mk1).
Step S13:
[0133] In step S13, processing of setting the horizontal axis of the cart coordinate system (the y-axis of the cart coordinate system) is performed. Note that the cart coordinate system is a coordinate system that is set in accordance with the state (direction) of the mobile cart 200.
[0134] The control unit 1 drives the moving mechanism Rbt_arm to move the robot hand 100 to a position where the distance measurement can be performed by the first distance sensor 13 of the robot hand 100 by using two different points (for example, a point on the rear side and a point on the front side) on the horizontal frame 20h6 of the mobile cart 200 as distance measurement points with the identification information mark mk1 as a substantially center. The specific processing will be described below.
[0135] First, as shown in
[0136] The measured value of the distance between the measurement reference point and the distance measurement point measured by the first distance sensor 13 is defined as a distance dm1, and the attitude (direction) of the robot hand 100 when the measured value is obtained is expressed as Ori(vec_x.sub.rh, vec_z.sub.rh) using the vector vec_x.sub.rh (the vector vec_x.sub.rh is a vector in the same direction as the x.sub.rh axis of the attitude determination coordinate system of the robot hand 100) and the vec_z.sub.rh (the vector vec_z.sub.rh is a vector in the same direction as the z.sub.rh axis of the attitude determination coordinate system of the robot hand 100) (the same applies hereinafter). Note that the attitude Ori(vec_x.sub.rh, Vec_z.sub.rh) indicates an attitude (orientation) in which the x.sub.rh axis (positive direction of the x.sub.rh axis) of the robot hand 100 coincides with the vector vec_x.sub.rh and the z.sub.rh axis (positive direction of the z.sub.rh axis) of the robot hand 100 coincides with the vector vec_z.sub.rh.
[0137] Next, the control unit 1 drives the moving mechanism Rbt_arm, sets a point on the front side of the identification information mark on the horizontal frame 20h6 as a distance measurement point, and moves the robot hand 100 to a position where the distance measurement can be performed by the first distance sensor 13 of the robot hand 100 while performing attitude control of the robot hand 100 (while maintaining the attitude Ori(vec_x.sub.rh, vec_z.sub.rh)).
[0138] In other words, as shown in
[0139] The control unit 1 then determines whether the difference between the measured distance values dm1 and dm2 for the above-described two points is within a predetermined range (within a predetermined error ?). [0140] (1) When it is determined that the difference (=|dm1?dm2|) between the measured distance values dm1 and dm2 for the two points is not within a predetermined range (within a predetermined error ?), the straight line line.range-snsr1 connecting the measurement reference point of the first distance sensor 13 of the robot hand 100 and the distance measurement point at the time of the distance measurement is largely shifted with respect to the normal direction of the horizontal frame 20h6 of the mobile cart 200; and thus the attitude control of the robot hand 100 is performed again (in particular, the attitude control for rotating the robot hand 100 around the rotation axis r_ax6 (see
[0142] Note that the attitude (orientation) of the robot hand 100 when the setting processing of the cart coordinate system y-axis (the processing of (2) above) has been completed is referred to as Ori(vec1_x.sub.rh, vec1_z.sub.rh). The vector vec1_x.sub.rh is a vector having the same direction as x.sub.rh axis of the orientation determination coordinate system of the robot hand 100 when the setting processing of the cart coordinate system y-axis (the process of (2)) has been completed.
Step S14:
[0143] In step S14, origin obtaining processing (processing of obtaining the coordinates of the robot coordinate system that corresponds to the origin of the cart coordinate system) is performed. Specifically, the following processing is performed.
[0144] The control unit 1 drives the moving mechanism Rbt_arm to move the robot hand 100 to a position where the optical axis (linear line range-camera) of the imaging unit 15 of the robot hand 100 passes over the identification information mark mk1 while controlling the attitude of the robot hand 100 (while maintaining the attitude Ori(vec1_x.sub.rh, vec1_z.sub.rh)) Further, the imaging parameter (focal length, angle of view, and the like) of the imaging unit 15 is adjusted (or the distance between the imaging unit 15 and the identification information mark mk1 is adjusted) so that the captured image by the imaging unit 15 is in focus on the identification information mark mk1 (a state in which the image is in focus) (for example, the state shown in
[0145] After the above-described state has been set, the control unit 1 captures an image of the identification information mark mk1 by using the imaging unit 15, thereby obtaining the image of the identification information mark mk1. The control unit 1 then sets a predetermined position of the identification information mark mk1 to the origin of the cart coordinate system. For example, as shown in
Step S15:
[0146] In step S15, identification information mark reading processing is performed. Specifically, the following processing is performed.
[0147] The control unit 1 captures an image of the identification information mark mk1 by the imaging unit 15, and performs image processing on the captured image of the identification information mark mk1 to obtain information on the identification information mark mk1 (for example, when the identification information mark mk1 is a two-dimensional barcode, the two-dimensional barcode is read and information included in the two-dimensional barcode is obtained).
[0148] In the present embodiment, it is assumed that the identification information mark mk1 (for example, a two-dimensional bar code) includes information of a number for identifying a mobile cart.
[0149] The control unit 1 then obtains information of a number for identifying the mobile cart included in the identification information mark mk1.
[0150] In the storage unit Mem1 of the control device Dev1, a number for identifying a mobile cart and information associated with the number are stored in advance or it is obtained from the outside via the communication interface IF1 and stored therein. For example, the information associated with the number for identifying the mobile cart is as follows (an example). [0151] (1) The size of the mobile cart (vertical length, horizontal length, height) [0152] (2) The number of stages of the mobile cart (the number of shelves) [0153] (3) Side A/Side B (information indicating whether the front surface (side A) or the back surface (side B) of the mobile cart) [0154] (4) Coordinates of the upper left corner of the mobile cart (coordinates in the cart coordinate system) [0155] (5) Arrangement position and arrangement pitch (arrangement interval) of each shelf.
[0156] Based on the obtained number for identifying the mobile cart, the control unit 1 reads out data associated with the number from the storage unit Mem1.
Step S16:
[0157] In step S16, processing of setting the vertical axis of the cart coordinate system (the z-axis of the cart coordinate system) is performed.
[0158] The control unit 1 drives the moving mechanism Rbt_arm to move the robot hand 100 to a position where the distance measurement can be performed by the first distance sensor 13 of the robot hand 100 with two different points on the vertical frame 20v2 of the mobile cart 200 as distance measurement points with the identification information mark mk1 as the center between the two different points (see
[0159] First, as shown in
[0160] The measured value of the distance between the measurement reference point and the distance measurement point measured by the first distance sensor 13 is referred to as a distance dm3, and the attitude (direction) of the robot hand 100 when the measured value is obtained is expressed as Ori(vec2_x.sub.rh, vec2_z.sub.rh) using the vector vec2_x.sub.rh (the vector vec2_x.sub.rh is a vector in the same direction as the x.sub.rh axis of the attitude determination coordinate system of the robot hand 100). Note that the attitude Ori(vec2_x.sub.rh, vec2_z.sub.rh) indicates an attitude (orientation) in which the x.sub.rh axis of the robot hand 100 coincides with the vector vec2_x.sub.rh.
[0161] Next, the control unit 1 drives the moving mechanism Rbt_arm, sets another point on the vertical frame 20v2 as a distance measurement point, and moves the robot hand 100 to a position where the distance measurement can be performed by the first distance sensor 13 of the robot hand 100 while performing attitude control of the robot hand 100 (while maintaining the attitude Ori(vec2_x.sub.rh, vec2_z.sub.rh)) (for example, moves the robot hand 100 upward as shown in
[0162] In other words, as shown in
[0163] The control unit 1 then determines whether the difference between the measured distance values dm3 and dm4 for the above-described two points is within a predetermined range (within a predetermined error ?). [0164] (1) When it is determined that the difference (=|dm3?dm4|) between the measured distance values dm3 and dm4 for the two points is not within a predetermined range (within a predetermined error ?), the straight line line.range-snsr1 connecting the measurement reference point of the first distance sensor 13 of the robot hand 100 and the distance measurement point at the time of the distance measurement is largely shifted with respect to the normal direction of the vertical frame 20v2 of the mobile cart 200; and thus the attitude control of the robot hand 100 is performed again (in particular, the attitude control for rotating the robot hand 100 around the rotation axis r_ax5 (see
[0166] Note that the attitude (orientation) of the robot hand 100 when the setting processing of the cart coordinate system y-axis (the processing of (2) above) has been completed is referred to as Ori(vec3_x.sub.rh, vec3_z.sub.rh). The vector vec3_x.sub.rh is a vector having the same direction as x.sub.rh axis of the orientation determination coordinate system of the robot hand 100 when the setting processing of the cart coordinate system y-axis (the processing of (2) above) has been completed. Further, processing of the step S13 is performed again with the attitude (orientation) Ori(vec3_x.sub.rh, vec3_z.sub.rh) of the robot hand 100 obtained in the step S16, and then it may be confirmed that the difference (=|dm1?dm2|) between the measured distance values dm1 and dm2 for the two points is within a predetermined range (within a predetermined error ?). When the difference (=|dm1?dm2|) between the measured distance values dm1 and dm2 for the two points is not within a predetermined range (within a predetermined error ?), the processing from the step S13 may be performed again.
Step S17:
[0167] In step S17, processing of setting a depth axis (x-axis of the cart coordinate system) of the cart coordinate system is performed.
[0168] The y-axis of the cart coordinate system has been set in the step S13, the z-axis of the cart coordinate system has been set in the step S16, and the y-axis and z-axis of the cart coordinate system are grasped; thus, the control unit 1 sets the direction (the normal direction of the y-z plane in the cart coordinate system) orthogonal to both the y-axis and z-axis of coordinate system as the direction of the depth axis of the cart coordinate system (x-axis of the cart coordinate system).
[0169] The control unit 1 then sets the origin obtained in the step S14 as the origin of the cart coordinate system (this is referred to as the origin o.sup.(cart)). In other words, the control unit 1 sets the position Po.sup.(rbt)=[xo.sup.(rbt), yo.sup.(rbt), zo.sup.(rbt)] of the robot coordinate system to the position of the origin Po.sup.(cart)=[0.sup.(cart), 0.sup.(cart), 0.sup.(cart)] of the cart coordinate system (.sup.(rbt) indicates coordinates or a position vector of the robot coordinate system, and (cart) indicates coordinates or a position vector of the cart coordinate system).
[0170] Also, assuming that (1) a unit vector in the same direction as the direction of the y-axis of the cart coordinate system obtained in the step S13 is ye.sup.(cart), (2) a unit vector in the same direction of the direction of the z-axis of the cart coordinate system obtained in the step S16 is ze.sup.(cart), and (3) a unit vector in the same direction as the direction orthogonal to both the y-axis and z-axis of the cart coordinate system is xe.sup.(cart), the control unit 1 sets an origin to the point o.sup.(cart), and furthermore sets a coordinate system (three-dimensional coordinate system) whose basis vectors are the unit vector xe.sup.(cart) (vector (basis vector) that defines the x-axis of the cart coordinate system (this is referred to as the x.sup.(cart) axis)), the unit vector ye.sup.(cart) (vector (basis vector) that defines the y-axis of the cart coordinate system (this is referred to as the y.sup.(cart) axis)), and the unit vector ze.sup.(cart) (vector (basis vector) that defines the z-axis of the cart coordinate system (this is referred to as the z.sup.(cart) axis)). As a result, a cart coordinate system is set as shown in
[0171] The control unit 1 then performs conversion (coordinate conversion) of a position vector (position coordinates) of the robot coordinate system and a position vector (position coordinates) of the cart coordinate system by performing processing corresponding to the following equation.
<When Converting the Cart Coordinate System to the Robot Coordinate System>
[0172]
p.sup.(rbt)=.sub.cart.sup.rbtTp.sup.(cart)Formula 1 [0173] p.sup.(rbt): vector indicating a position in the robot coordinate system (position vector) [0174] R.sup.bt.sub.cartT: matrix (affine transformation matrix) for converting a cart coordinate system into a robot coordinate system (4?4 matrix) [0175] p.sup.(cart): vector indicating a position in the cart coordinate system (position vector)
p.sup.(rbt)=[x.sup.(rbt),y.sup.(rbt),z.sup.(rbt),1].sup.T
p.sup.(cart)=[x.sup.(cart),y.sup.(cart),z.sup.(cart),1].sup.T
<When Converting the Robot Coordinate System to the Cart Coordinate System>
[0176]
p.sup.(rbt)=[x.sup.(rbt),y.sup.(rbt),z.sup.(rbt),1].sup.T
p.sup.(cart)=[x.sup.(cart),y.sup.(cart),z.sup.(cart),1].sup.T
[0180] When both the robot coordinate system and the cart coordinate system are coordinate systems defined by normal orthonormal vectors, the affine transformation matrix may be a homogeneous transformation matrix.
[0181] As described above, the control unit 1 can perform processing (coordinate system conversion processing) of converting the position vector (position coordinates) of the robot coordinate system and the position vector (position coordinates) of the cart coordinate system, and can perform, for example, conversion processing (coordinate system conversion processing) of the robot coordinate system and the cart coordinate system as shown in
[0182] In the manner described above, the cart coordinate system setting processing is performed.
Step S2:
[0183] In step S2, loop processing (loop 1) is started, and the loop processing (loop 1) is repeatedly performed as long as the condition of the loop processing is satisfied (for example, until a command to terminate the article conveyance processing is issued by the control unit 1).
Step S3:
[0184] In step S3, moving processing of the moving mechanism Rbt_arm is performed. For example, as shown in
[0191] The control unit 1 obtains coordinates of the upper left end of the mobile cart 200 (position vector P.sub.LT.sup.(cart)=[x.sub.LT.sup.(cart), y.sub.LT.sup.(cart), z.sub.LT.sup.(cart)]) in the cart coordinate system; taking the above information into consideration, the control unit 1 expands the telescopic mechanism 11 and sucks the cash box CB1 to move the cash box to a position where it can be taken out. The specific processing will be described below. Note that a case where the position of the robot hand 100 is controlled based on the focal position of the imaging unit 15 (an example) will be described.
[0192] The control unit 1 obtains information about the size (vertical length, horizontal length, and height) of the mobile cart 200, the number of stages (the number of shelves) of the mobile cart 200, the article arrangement positions of the shelves, and the arrangement pitch (arrangement interval), and thus can obtain a distance ?y between the columns of the cash box CB1 and a distance ?z between the shelves as shown in
[0193] Further, as shown in
[0194] Thus, the control unit 1 can specify a position (a position at which the focus of the imaging unit 15 of the robot hand 100 is a point P.sub.2.sup.(cart)) at which the imaging unit 15 can image the point P.sub.1.sup.(cart) (a point on the vertical frame 20h2) (P.sub.1.sup.(cart)=[x.sub.LT.sup.(cart)??x, y.sub.LT.sup.(cart), z.sub.LT.sup.(cart)]) with the in-focus condition for the point P.sub.1.sup.(cart) in
[0195] The control unit 1 then sets p.sup.(cart)=[P.sub.2.sup.(cart), 1].sup.T=[x.sub.2.sup.(cart), y.sub.2.sup.(cart), z.sub.2.sup.(cart), 1].sup.T, and performs coordinate conversion processing according to the Formula 1, thereby obtaining p.sup.(rbt) (=[P.sub.2.sup.(rbt), 1].sup.T=[x.sub.2.sup.(rbt), y.sub.2.sup.(rbt), z.sub.2.sup.(rbt), 1].sup.T) and furthermore obtaining the coordinates (position vector) P.sub.2.sup.(rbt) (=[x.sub.2.sup.(rbt), y.sub.2.sup.(rbt), z.sub.2.sup.(rbt)]) in the robot coordinate system corresponding to the point P.sub.2.sup.(cart) in the cart coordinate system. The control unit 1 then drives the moving mechanism Rbt_arm and moves the robot hand 100 to the coordinates (position vector) P.sub.2.sup.(rbt) in the robot coordinate system, thereby allowing for moving the robot hand 100 to the point P.sub.2.sup.(cart) in the cart coordinate system.
[0196] At this time, the control unit 1 performs attitude control of the robot hand 100 so that the attitude of the robot hand 100 becomes an attitude in which the x.sub.rh axis of the attitude determination coordinate system of the robot hand 100 coincides with the x.sup.(cart) axis of the cart coordinate system.
[0197] In this state, the control unit 1 takes an image of the vertical frame 20h2 (the vicinity of the point P.sub.1.sup.(cart)) of the mobile cart 200 by using the imaging unit 15.
Step S4:
[0198] In step S4, attitude fine adjustment processing of the moving mechanism Rbt_arm is performed. Specifically, the following processing is performed.
[0199] The control unit 1 analyzes the image of the horizontal frame 20h2 (the vicinity of the point P.sub.1.sup.(cart)) of the mobile cart 200 captured in the step S3, and determines whether the longitudinal direction of the horizontal frame 20h2 substantially coincides with the y-axis direction of the cart coordinate system. In a case when the longitudinal direction of the horizontal frame 20h2 is inclined by a predetermined angle or more with respect to the y-axis direction of the cart coordinate system, it may become difficult to cause the suction mechanism 12 to reach the cash box CB1 by linearly expanding the telescopic mechanism 11 of the robot hand 100 towards the cash box CB1 when the cash box CB1 is to be sucked and taken out by expanding the telescopic mechanism 11 of the robot hand 100.
[0200] Thus, when the longitudinal direction of the horizontal frame 20h2 is inclined by a predetermined angle or more with respect to the y-axis direction of the cart coordinate system, the control unit 1 controls the attitude of the robot hand 100 so that the longitudinal direction of the horizontal frame 20h2 substantially coincides with y.sub.rh axis of the attitude determination coordinate system of the robot hand 100, or adjusts the height of the placing flat plate 10LT of the robot hand 100 in accordance with the height in the longitudinal direction of the horizontal frame 20h2. This allows the robot hand to linearly reach the cash box CB1 by expanding the telescopic mechanism 11 of the robot hand 100 of the robot hand 100, thus making it possible to smoothly take out the cash box CB1.
[0201] Note that, for example, as shown in
Step S5:
[0202] In step S5, article taking-out processing is performed. Specifically, the following processing is performed.
[0203] When the processing in the step S4 has been completed, as shown in State 1 of
[0204] As shown in State 2 of
[0205] When the distance measurement has been normally performed by the second distance sensor 14, the control unit 1 sets a section defined by a position, whose distance is shorter than a distance d_all from the second distance sensor 14 to the cash box CB1 (the measured distance) by a distance d2, and the position of the cash box CB1 as a low-speed movement section (the section from Pb to Pc in
[0206] The control unit 1 then drives and controls the telescopic mechanism 11 so that the suction mechanism 12 (suction portion 12S) reaches the front face of the cash box CB1 by expanding the telescopic mechanism 11. At this time, in the high-speed movement section set as described above, the control unit 1 sets a control method for driving the telescopic mechanism 11 as the position control method (the control method of the electric cylinder for driving the telescopic mechanism 11), and then performs control so that the suction mechanism 12 (the suction portion 12S) attached to the tip of the telescopic mechanism 11 moves at high speed.
[0207] When the control unit 1 determines that the suction mechanism 12 (suction portion 12S) at the front end of the telescopic mechanism 11 has entered the low-speed movement section beyond the high-speed movement section, the control unit sets the control method for driving the telescopic mechanism 11 to a pressing control method (sets a control method of an electric cylinder for driving telescopic mechanism 11 to a control method that monitors the pressure change of the suction portion 12S and stops the expansion operation of the telescopic mechanism 11 when it is determined that the suction portion 12S has sucked), and then controls the suction mechanism 12 (the suction portion 12S) attached to the tip of the telescopic mechanism 11 to move at low speed so that the suction state is reliably detected.
[0208] When the suction mechanism 12 (suction portion 12S) at the tip of the telescopic mechanism 11 reaches the surface of the cash box CB1 and then a state in which the surface of the cash box CB1 has been adsorbed (State 3 in
Step S6:
[0209] In step S6, article conveyance processing is performed. In step S5, the control unit 1 controls the moving mechanism Rbt_arm so as to convey the cash box CB1 placed on the placing portion 10Tr of the robot hand 100 to a predetermined position. As a result, the cash box CB1 placed on the placing portion 10Tr of the robot hand 100 is conveyed to a predetermined position.
Step S7:
[0210] In step S7, it is determined whether the termination condition of the loop processing (loop 1) is satisfied; when the termination condition is satisfied, the article conveyance processing is terminated, whereas when the termination condition is not satisfied, the processing is returned to the step S2, and the processing of the steps S3 to S6 is performed.
[0211] For example, in the article conveyance processing system 1000, a case will be described in which an article (for example, a cash box) placed in an adjacent row of a row on which the cash box CB1 has been placed is to be taken out by using the robot hand 100, the adjacent row being on the same shelf of the mobile cart 200 where the cash box CB1 has been placed; in this case, when taking out the cash box CB1, the article conveyance processing system 1000 may control the robot hand 100 to be moved to a position of coordinates obtained by subtracting a predetermined value (e.g., ?y1 (?y1 is a displacement amount in the y-axis direction of the cart coordinate system)) from the y coordinate of the position P.sub.1.sup.(cart)(=[x.sub.LT.sup.(cart)-?x, y.sub.LT.sup.(cart), z.sub.LT.sup.(cart)] in the cart coordinate system.
[0212] Also, a case in which an article (e.g., a cash box) placed on a shelf one stage below the stage where the cash box CB1 has been placed in the mobile cart 200 is to be taken out will be described; in this case, when the cash box CB1 is taken out, control processing may be performed so that the robot hand 100 is moved to a position of coordinates obtained by subtracting a predetermined value (e.g., ?z1 (?z1 is a displacement amount in the z-axis direction of the cart coordinate system)) from the z coordinate of the position P.sub.1.sup.(cart)(=[x.sub.LT.sup.(cart)??x, y.sub.LT.sup.(cart), z.sub.LT.sup.(cart)] in the cart coordinate system.
[0213] In other words, using the cart coordinate system obtained such that the vertical, horizontal, and depth axes of the cart coordinate system substantially coincide with the vertical, horizontal, and depth directions of the mobile cart 200, respectively, the article conveyance processing system 1000 can move the robot hand 100, and thus makes it possible to easily take out an article at a predetermined position of the mobile cart 200 or to easily convey an article to a predetermined position of the mobile cart 200. Further, based on the cart coordinate system obtained such that the vertical, horizontal, and depth axes of the cart coordinate system substantially coincide with the vertical, horizontal, and depth directions of the mobile cart 200, respectively, the article conveyance processing system 1000 can control the attitude of the robot hand 100, and thus makes it possible to accurately (reliably) take out an article placed on the shelf of the mobile cart 200 at high speed and to accurately (reliably) place an article at a predetermined position of the mobile cart 200 at high speed.
[0214] As described above, using the cart coordinate system obtained such that the vertical, horizontal, and depth axes of the cart coordinate system substantially coincide with the vertical, horizontal, and depth directions of the mobile cart 200, respectively, the article conveyance processing system 1000 performs the control of moving the robot hand 100 and the attitude control of the robot hand 100. Further, the article conveyance processing system 1000 determines the type, the configuration, and the like of the mobile cart based on the identification information mark attached to the mobile cart 200, and performs the control of moving the robot hand 100 and the attitude control of the robot hand 100 accordingly.
[0215] In the manner described above, using the cart coordinate system obtained such that the vertical, horizontal, and depth axes of the cart coordinate system substantially coincide with the vertical, horizontal, and depth directions of the mobile cart 200, respectively, the article conveyance processing system 1000 performs the control of moving the robot hand 100 and the attitude control of the robot hand 100; thus, the article conveyance processing system 1000 can efficiently take out an article from a shelf or the like (e.g., a mobile cart) and/or place an article on a shelf or the like (e.g., a mobile cart) regardless of in what orientation a wide variety of mobile carts are placed.
OTHER EMBODIMENTS
[0216] In the above embodiment, a case where the robot hand 100 includes two distance sensors (the first distance sensor 13 and the second distance sensor 14) in the article conveyance processing system 1000 has been described, but the present invention should not be limited thereto; the robot hand 100 may be provided with one distance sensor, and the distance sensor may perform the processing performed by the first distance sensor 13 and the second distance sensor 14.
[0217] Also, in the robot hand 100, the same distance sensor as the first distance sensor 13 may be attached to a position below the side surface of the second side L-shaped plate 10L2 of the robot hand 100 (a position symmetrical with respect to the placing flat plate 10LT across the placing flat plate 10LT), the distance to the horizontal frame of the mobile cart may be measured using the first distance sensor 13 and the newly attached distance sensor, and the attitude control of the robot hand 100 may be performed based on whether the measured distances of the two distance sensors are substantially the same.
[0218] In the above embodiment, a case where the moving mechanism Rbt_arm is a robot arm in the article conveyance processing system 1000 has been described, but the present invention should not be limited thereto; the moving mechanism Rbt_arm may be any other mechanism (moving mechanism) as long as it is capable of moving it in three-dimensional space and controlling the attitude.
[0219] In the above-described embodiment, the identification information mark mk1 in the article conveyance processing system 1000 stores only the number for identifying the mobile cart, but the present invention should not be limited thereto; for example, information stored in the storage unit Mem1 in association with the number for identifying the mobile cart in the above-described embodiment may be stored in the identification information mark mk1.
[0220] The terms substantially the same and substantial parallel used in the above embodiments intend to permit an error occurring when control or the like is executed using a target value (or a design value) of being the same or using a target of being the parallel, or also permit an error determined depending on the resolution of the apparatus, and substantially the same or substantial parallel can include a range that a person skilled in the art determines (or recognizes) as being the same or being parallel.
[0221] In some example(s) in the above embodiments, only relevant member(s), among the constituent members of the embodiments of the present invention, necessary for describing the present invention are simplified and shown. Thus, the above embodiment(s) may include any constituent member that is not shown in the above embodiment(s). Also, in the above embodiment(s) and/or drawing(s), the dimensions of the members may not be faithfully (strictly) identical to their actual dimensions, their actual dimension ratios, or the like. Thus, the dimension(s) and/or the dimension ratio(s) may be changed without departing from the scope and the spirit of the invention.
[0222] Each block (each functional unit) of the article conveyance processing system 1000 described in the above embodiment may be formed using a single chip with a semiconductor device, such as LSI, or some or all of the blocks of the article conveyance processing system 1000 may be formed using a single chip. Further, each block (each functional unit) of the article conveyance processing system 1000 described in the above embodiments may be implemented with a semiconductor device such as a plurality of LSIs.
[0223] Note that although the term LSI is used here, it may also be called IC, system LSI, super LSI, or ultra LSI depending on the degree of integration.
[0224] Further, the method of circuit integration should not be limited to LSI, and it may be implemented with a dedicated circuit or a general-purpose processor. A field programmable gate array (FPGA) that can be programmed after the LSI is manufactured, or a reconfigurable processor that can reconfigure connection and setting of circuit cells inside the LSI may be used.
[0225] Further, a part or all of the processing of each functional block of each of the above embodiments may be implemented with a program. A part or all of the processing of each functional block of each of the above-described embodiments is then performed by a central processing unit (CPU) in a computer. The programs for these processes may be stored in a storage device, such as a hard disk or a ROM, and may be executed from the ROM or be read into a RAM and then executed.
[0226] The processes described in the above embodiments may be implemented by using either hardware or software (including use of an operating system (OS), middleware, or a predetermined library), or may be implemented using both software and hardware.
[0227] For example, when functional units of the above embodiment is achieved by using software, a predetermined hardware structure (the hardware structure including CPU(s) (or it may be GPU(s)),, ROM, RAM, an input unit, an output unit, a communication unit, a storage unit (eg, a storage unit achieved by using HDD, SSD, or the like), a drive for external media or the like, each of which is connected to a bus) may be employed to achieve the functional units by using software.
[0228] When each functional unit of the above embodiment is achieved by using software, the software may be achieved by using a single computer having the hardware configuration described above, and may be achieved by using distributed processes using a plurality of computers.
[0229] The processes described in the above embodiment may not be performed in the order specified in the above embodiment. The order in which the processes are performed may be changed without departing from the scope and the spirit of the invention. Further, in the processing method in the above-described embodiment, some steps may be performed in parallel with other steps without departing from the scope and the spirit of the invention.
[0230] The present invention may also include a computer program enabling a computer to implement the method described in the above embodiment and a computer readable recording medium on which such a program is recorded. Examples of the computer readable recording medium include a flexible disk, a hard disk, a CD-ROM, an MO, a DVD, a DVD-ROM, a DVD-RAM, a large capacity DVD, a next-generation DVD, and a semiconductor memory.
[0231] The computer program should not be limited to one recorded on the recording medium, but may be transmitted via an electric communication line, a wireless or wired communication line, a network represented by the Internet, or the like.
[0232] The specific structures described in the above embodiment are mere examples of the present invention, and may be changed and modified variously without departing from the scope and the spirit of the invention.
REFERENCE SIGNS LIST
[0233] 1000 article conveyance processing system [0234] 100 robot hand [0235] Rbt_arm moving mechanism [0236] 1 control unit [0237] 11 telescopic mechanism [0238] 12 adsorption mechanism [0239] 13 first distance sensor [0240] 14 second distance sensor [0241] 15 imaging unit