Robot system and teaching device
The robot system and teaching device improve workpiece handling efficiency by controlling the robot arm to position and rotate the tool within containers, addressing the challenges of varying workpiece shapes and sizes and ensuring safe operation.
Patent Information
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- FANUC LTD
- Filing Date
- 2024-10-29
- Publication Date
- 2026-05-07
AI Technical Summary
Existing robot systems face challenges in efficiently handling workpieces of varying shapes, sizes, and weights within containers while avoiding damage to the workpieces, containers, and surrounding equipment, particularly when performing picking operations near enclosure walls.
A robot system and teaching device that control a robot arm to position a tool between a workpiece and an enclosure wall, then move it away or rotate it within the container to improve workpiece handling efficiency, utilizing a tool with claw members and sensors for precise positioning and orientation adjustments.
Enhances the efficiency of workpiece picking by allowing the robot arm to safely and effectively move and orient workpieces within containers, reducing the complexity of setting operations and minimizing the risk of collisions.
Smart Images

Figure JP2024038544_07052026_PF_FP_ABST
Abstract
Description
Robot system and teaching device
[0001] The present disclosure relates to a robot system and a teaching device.
[0002] Conventionally, a robot system that performs a picking operation on a workpiece by a hand attached to the tip of a robot arm is known. For example, refer to Patent Document 1. Also, in order to facilitate the removal of a workpiece close to the surrounding wall of a container, a hand attached to the robot arm is brought close to the workpiece from the side opposite to the surrounding wall, and the workpiece is pulled into the container by the hand in that state, and a robot system that performs a picking operation in the space inside the container is also known. For example, refer to Patent Document 2.
[0003] Japanese Patent Application Laid-Open No. 2021-24002, Japanese Patent Application Laid-Open No. 2018-187687
[0004] For example, it is often not easy to teach (set) a robot to perform a picking operation on workpieces stacked in a container. The reasons include that since the shapes, sizes, weights, etc. of the workpieces are various, it is rare that the teaching performed on one workpiece can be directly used for other workpieces, and there are also many cases where the changes are large, and it is necessary to be careful not to damage the container, surrounding equipment, workpieces, etc. by the robot arm and hand. For this reason, the setting work for the collapsing operation for moving the workpiece near the surrounding wall of the container to the inside of the container as described above is often performed after the teaching of the picking operation as described above is completed. It is also conceivable to perform the setting work for the collapsing operation simultaneously with the teaching of the picking operation, but if the setting work for the collapsing operation is difficult, the work becomes complicated, which is not desirable for ensuring the safe operation of the robot.
[0005] To improve workpiece picking efficiency, moving workpieces near the container's enclosure towards the inside of the container is useful. However, this requires users to repeatedly experiment with complex robot arm settings. Furthermore, it is rare for a single robot arm to handle only one type of workpiece; typically, one robot arm handles multiple types of workpieces. In these circumstances, various efficiency improvements related to workpiece picking are desired.
[0006] A robot system according to a first aspect of the present disclosure comprises one or more processors that control a robot arm having a tool, the processors capable of setting at least one of the following actions: a first action of the robot arm, which causes a portion of the tool to be positioned between the workpiece and the enclosure wall of the container, and then causes the tool to move away from any position on the enclosure wall, for the purpose of moving a workpiece within the container that requires movement within the container; or a second action of the robot arm, which causes the tool, with a portion positioned inside the container, to rotate, for the purpose of moving within the container.
[0007] A second aspect of the present disclosure is a teaching device for teaching the operation of a robot arm for moving a target workpiece within a container, comprising one or more processors capable of controlling a robot arm having a tool, wherein the processors can set at least one of the following operations: a first operation of the robot arm for moving within the container, in which a part of the tool is positioned between the target workpiece and the enclosure wall of the container, and then the tool is moved away from an arbitrary position on the enclosure wall; or a second operation of the robot arm for moving within the container, in which the part of the tool positioned inside the container is rotated.
[0008] This is a perspective view illustrating the movement of a tool using a part of the robot system of one embodiment. This is a perspective view illustrating the movement of a tool using a part of the robot system of this embodiment. This is a perspective view illustrating the movement of a tool using a part of the robot system of this embodiment. This is a schematic diagram of the robot system of this embodiment. This is a block diagram of the control device of this embodiment. This is a plan view of the container and workpiece used in this embodiment. This is a flowchart illustrating an example of the processing of the control device of this embodiment. This is a diagram illustrating an example of the setting screen for the collapse operation of this embodiment. This is a diagram illustrating an example of the setting screen for the collapse operation of this embodiment. This is a flowchart illustrating an example of the processing of the control device of this embodiment. This is a perspective view showing a modified example of the tool of the robot system of this embodiment.
[0009] A robot system 100 of the first embodiment will be described below with reference to the drawings. The robot used in the robot system 100 of this embodiment is a vertical articulated type and comprises a robot arm 20 and a control device 30, as shown in Figure 4.
[0010] The robot arm 20 comprises an arm base 10, a plurality of arm members 21, 22, 23, 24, 25, 26, and a plurality of joints. Each of the multiple joints is rotatable around axes J1 to J6 shown in Figure 4. The robot arm 20 also includes a plurality of motors 27 for driving each of the multiple joints (see Figure 5). Each motor 27 has an operating position detection device for detecting its operating position and operating speed, and the operating position detection device is an encoder, for example. The detected values from the operating position detection device are transmitted to the control device 30. The number of arm members may be 5 or less, or 7 or more.
[0011] The robot arm 20 is not limited to any particular type. The robot arm 20 may be the arm of a horizontal articulated robot, the arm of a multi-link robot, etc. Furthermore, the robot arm 20 may be supported by a moving device such as a linear guide, an AGV (Automatic Guided Vehicle), a vehicle, a walking robot, etc.
[0012] Furthermore, the robot arm 20 may be a robot arm for a collaborative robot. The collaborative robot has a function to detect contact between the robot arm 20 and people, objects, etc., using known sensors such as force sensors, contact sensors, and vision sensors, and to safely stop the robot arm 20 according to the detection result. In addition, the collaborative robot may have a function to decelerate and stop the robot arm 20 just before it comes into contact with people, objects, etc.
[0013] A tool 40 is attached to the robot arm 20, and the coordinate system 40A of the tool 40 (Figure 1) and the coordinate system 20A of the robot arm 20 (Figure 4) are associated within the control device 30. In this embodiment, the origin of the coordinate system 40A is fixed to the tool center point 40B, and the orientation of the coordinate system 40A is also fixed to the tool 40. Therefore, the position and orientation of the coordinate system 40A change with the position and orientation of the tool 40. The origin of the coordinate system 40A may be fixed to another position.
[0014] In this embodiment, as shown in Figures 4 and 5, the tool 40 is a hand equipped with a plurality of claw members 41 and a motor 42 for driving the claw members 41. The motors 27 and 42 can be various known motors such as servo motors. In this embodiment, the tool 40 is attached to the furthest arm member 26 of the robot arm 20, but the tool 40 may be attached to other parts of the robot arm 20.
[0015] In this embodiment, a motor 42 allows a plurality of claw members 41 to move in the opening and closing directions. The tool 40 in this embodiment is called a hand and can hold the workpiece W in the container 200 with the plurality of claw members 41 and transport it to any position. The tool 40 may be any other type of tool that can hold the workpiece W in the container 200 and transport it to any position. For example, the tool 40 may be a tool that uses air suction, magnetism, etc. to attract the workpiece W, and in this case as well, the effects described later can be achieved.
[0016] As shown in Figure 6, the container 200 of this embodiment comprises a substantially rectangular bottom surface 210 and an enclosure wall 220 extending upward from the periphery of the bottom surface 210. As shown in Figures 1, 6, etc., the enclosure wall 220 has four corner portions 221 that constitute the four corners, and wall members 222 provided between the corner portions 221. Each corner portion 221 is formed by a prism member, a cylindrical member, etc. Each corner portion 221 may be the joint portion of two wall members 222, etc. The wall members 222 may be mesh members, grid members, cloth members, etc., and the wall members 222 may consist of a plurality of frame members, prism members, cylindrical members, etc. that are parallel to each other. The wall members 222 may be other members for housing the workpiece W inside the container 200. The bottom surface 210 may have other shapes, and the enclosure wall 220 may have other shapes. If partition walls are installed inside container 200, these partition walls can also serve as enclosure walls surrounding each area.
[0017] In this embodiment, the robot arm 20 and tool 40 are connected to the control device 30 by a cable 30A in which a bundle of power lines and signal lines is covered by a sheath (Figure 4). In some cases, a flexible pipe or the like for supplying fluids to the tool 40, etc., may be placed inside the cable 30A.
[0018] As shown in Figure 5, the robot control device 30 includes a processor 31 such as a CPU, a known display device 32 such as a liquid crystal display, and a memory unit 33 having non-volatile storage, RAM, etc. Examples of non-volatile storage include hard disks, flash memory, ROM, etc. In some cases, the CPU's memory functions as part of the memory unit 33. The control device 30 also includes an input device 34 which includes one of the following computers: a keyboard, touch panel, control panel, teaching control panel, tablet computer, etc., a transmitting and receiving unit 35 for transmitting and receiving signals, a servo controller 36 connected to each motor 27, and a servo controller 37 connected to the motor 42.
[0019] The teaching control panel is a portable control panel called a teach pendant. When the input device 34 is a computer such as a control panel, teaching control panel, or tablet computer, the input device 34 is equipped with a known display device 34A such as a liquid crystal display, and the processor such as the CPU of the input device 34 may perform some or all of the functions of the processor 31. The input device 34 and the transmitting / receiving unit 35 function as input units. The storage unit 33 stores a system program 33A, an operation program 33B, etc., and the processor 31 controls each motor 27, 42 based on the operation program 33B and operation signals from the input device 34.
[0020] In this embodiment, as shown in Figure 4, the sensor 50 is attached to the robot arm 20. The coordinate systems 20A and 40A and the coordinate system of the sensor 50 are associated within the control device 30. In this embodiment, unless otherwise specified, the following description and control by the processor 31 of the control device 30 are performed using the coordinate system 20A of the robot arm 20, but the coordinate system 40A of the tool 40 may be used, or other coordinate systems may be used. In some cases, the sensor 50 is supported by a support member separate from the robot arm 20, and the sensor 50 does not move with the robot arm 20, in which case the same effects as described below can be achieved.
[0021] In one example, the sensor 50 is a three-dimensional sensor that outputs three-dimensional point cloud data, three-dimensional image data, etc., of the container 200 and the workpiece W. As the three-dimensional sensor, a known three-dimensional distance sensor, distance image sensor, three-dimensional camera, etc., capable of detecting the horizontal position, height position, orientation, etc., of the workpiece W can be used, and the three-dimensional sensor outputs, for example, point cloud data, three-dimensional image data, etc., to the control device 30. Based on the detection program 33C stored in the memory unit 33, the processor 31 of the control device 30 uses the data output from the sensor 50 to detect the range of existence, position, orientation, etc., of the surrounding wall 220 of the container 200. Similarly, the processor 31 also detects the range of existence, position, orientation, etc., of the workpiece W inside the container 200.
[0022] The processor 31 of the control device 30, based on the operation program 33B, causes the robot arm 20 and tool 40 to sequentially pick up the detected workpieces W in the container 200 and transport them to predetermined positions. For example, as shown in Figure 7, the control device 30 detects the position and orientation of the workpieces W in the container 200 (step S1-1), and based on the operation program 33B, causes the robot arm 20 and tool 40 to perform an operation to hold the detected workpieces W (step S1-2). The control device 30 also causes the robot arm 20 and tool 40 to transport the workpieces W held by the tool 40 to a predetermined position and place the workpieces W (step S1-3).
[0023] The control device 30 repeats steps S1-1 to S1-3 as long as workpieces W that can be held by the tool 40 are detected in the container 200. Alternatively, the control device 30 repeats steps S1-1 to S1-3 as long as workpieces W that can be efficiently or easily held by the tool 40 are detected in the container 200. Alternatively, the control device 30 repeats steps S1-1 to S1-3 as long as the number of workpieces W that can be efficiently or easily held by the tool 40 in the container 200 exceeds a predetermined value. In this way, the control device 30 repeats steps S1-1 to S1-3 when the picking efficiency of workpieces W in the container 200 by the tool 40 meets the criteria.
[0024] For example, as shown in Figures 2 and 3, if the workpieces W remain only in the vicinity of the enclosure wall 220 within the container 200, the control device 30 determines in step S1-4 that the picking efficiency does not meet the criteria. In such a case, the control device 30 moves the workpieces W within the container 200. This movement of the workpieces W moves the workpieces W near the enclosure wall 220 away from the enclosure wall 220. More typically, this movement of the workpieces W changes the orientation of at least one of the multiple workpieces W near the enclosure wall 220.
[0025] In the example shown in Figure 2, the target workpiece WT, indicated by the dashed line, is moved away from the corner 221 of the nearby enclosure wall 220, and the orientation of the target workpiece WT may be changed at this time. The orientation of the target workpiece WT is typically changed by the target workpiece WT falling or detaching from other workpieces W. In order to move the target workpiece WT, in one example, the control device 30 rotates the tool 40 in the direction of arrow A-1 in Figure 1 (around the Y axis), moves the tool 40 downward (in the Z axis direction) as shown by arrow A-2 in Figure 2, and then moves the tool 40 away from the corner 221 as shown by arrow A-3 in Figure 2. If the orientation of the tool 40 is already that of Figure 2, the rotation of arrow A-1 is unnecessary.
[0026] In the example in Figure 3, the target workpiece WT, drawn with a dashed line, is moved away from the corner 221 of the nearby enclosure wall 220, and the orientation of the target workpiece WT may be changed at this time. To move the target workpiece WT, in one example, the control device 30 rotates the tool 40 in the direction of arrow B-1 in Figure 1 (around the Z axis), moves the tool 40 downward (in the Z axis direction) as shown by arrow B-2 in Figure 3, and then rotates the tool 40 in the direction of arrow B-3 in Figure 3 (around the Z axis). Note that if the orientation of the tool 40 is already as shown in Figure 3, the rotation by arrow B-1 is unnecessary.
[0027] As shown in Figures 2 and 3, the operation of the robot arm 20 to make it easier to hold the workpiece W in the container 200 with the tool 40 is referred to as a "disruption operation" in this embodiment. The disruption operation can also be described as changing the arrangement of the workpiece W in the container 200 (disrupting the arrangement) in order to improve the picking efficiency.
[0028] In the first example of setting the operation for the collapsing motion, the processor 31 displays the collapsing motion setting screen 110 shown in Figure 8 on the display devices 32, 34A, etc. The processor 31 may also display the setting screen 110 on other display devices. In this embodiment, the container 200 is positioned at a predetermined position and in a predetermined posture relative to the robot arm 20, and in this state, the robot arm 20 picks up the workpiece W. To do this, the user makes contact with the container 200 multiple times with a tool 40, calibration jig, etc. attached to the tip of the robot arm 20, for example, with the four corners 221, the four wall members 222, the bottom surface 210, etc. By using the position data at the time of these contacts and, if necessary, shape data such as CAD data of the container 200, the control device 30 recognizes the position, existence range, etc. of the four corners 221, the four wall members 222, and the bottom surface 210 in the coordinate system 20A. Furthermore, in this embodiment, the control device 30 recognizes the operable range of the tool 40 within the container 200 based on the positions and extents of the four corners 221, the wall members 222, and the bottom surface 210. An example of the operable range is an area that is 20 mm, 30 mm, or more away from the corners 221 and the wall members 222 inside the container 200, and is higher than the bottom surface 210 in the Z-axis direction.
[0029] In the operation settings for the collapse operation, if the user wants to set the tool 40 to a position rotated around the Y-axis, for example as shown in Figure 2, during the collapse operation, the user inputs an angle value (parameter), for example 25 degrees, into the rotation position P, as shown in Figure 8. Note that rotation position P corresponds to the rotation position of the tool 40 around the Y-axis, rotation position W corresponds to the rotation position of the tool 40 around the X-axis, and rotation position R corresponds to the rotation position of the tool 40 around the Z-axis. In this embodiment, these rotations are centered on the tool center point 40B, but they may be centered on other points. An angle corresponding to the position of the container 200 or the position of the corners 221 may be input into the rotation position R. For a roughly rectangular container 200, it is preferable that the position of the tool 40 around the Z-axis (rotation position R) differs by 90° at two adjacent corners 221. Considering this, a configuration in which the processor 31 automatically sets the value of rotation position R for each of the four corners 221 can also be adopted.
[0030] Furthermore, if the user wants to set the pre-operation position of the tool center point 40B during the collapse operation, the user sets the pre-operation position X, pre-operation position Y, and height from the reference position as shown in Figure 8. In this embodiment, the pre-operation position X and pre-operation position Y may be set as the distance in the X-axis and Y-axis directions from the corner 221, or as the distance from the reference origin described later, and are not limited to these. Positions X and Y in Figures 9 and 10 can be set similarly. Regarding the height direction, if the user wants to position the tool center point 40B of the tool 40 at the pre-operation position lower than the top surface of the target workpiece WT, for example as shown by arrow A-2 in Figure 2, the user inputs, for example, 20 mm as the height value (parameter) from the reference position as shown in Figure 8. In the example in Figure 8, the reference position is the height position of the bottom surface 210 recognized by the control device 30. In Figure 8, "Use target workpiece height" is disabled, but the user can enable the "Use target workpiece height" setting. In this case, the reference position is the detected height position such as the top surface of the target workpiece WT. Having this degree of flexibility in setting the height position allows users to adjust the height position according to the shape of the workpiece, the type of tool 40, etc., which can contribute to improving picking efficiency.
[0031] Furthermore, if the user wants to set the pre-operation position of the tool center point 40B, the user inputs values (parameters) from the reference origin for the pre-operation position X and Y, respectively, as shown in Figure 8. Also, if the user wants to move the tool center point 40B of the tool 40 on the X-Y plane during the collapse operation, for example, as shown by arrow A-3 in Figure 2, the user inputs a value (parameter) for the collapse operation distance, for example, 50.0 mm, as shown in Figure 8. In the example in Figure 8, the collapse operation distance is the distance on the X-Y plane and the distance in a direction tilted 45° with respect to the X and Y axes, but it may be in other directions, and the system may be configured so that the user can set that direction. Note that in the example in Figure 8, the reference origin, X-axis direction, and Y-axis direction in the settings screen coincide with the coordinate system 20A, but these may be configured to coincide with the container coordinate system 200A described later. If the reference origin, X-axis direction, and Y-axis direction in the settings screen coincide with the container coordinate system 200A, it often becomes easier for the user to visualize the collapse operation.
[0032] In the second example of setting the operation for the collapse action, the processor 31 displays the collapse action setting screen 120 shown in Figure 9 on the display device 32, display device 34A, etc. The processor 31 may also display the setting screen on other display devices, such as the display device of the computer 60 shown in Figure 4 or a display device of another computer. The computer 60 is part of the robot system, and the processor such as the CPU of the computer 60 may perform some or all of the functions of the processor 31.
[0033] If a user wants to set the tool 40 to a position where it is not rotated around the Y-axis during a collapse operation, for example as shown in Figure 1, in the settings screen 120 in Figure 9, they set the rotation position P in the pre-operation position to an angle of, for example, 0 degrees, as shown in Figure 9. On the right side of the settings screen 120 in Figure 9, the tool image 40M corresponding to the tool 40 and the work image WM corresponding to the work W are displayed, and the user can change the position and orientation of the tool image 40M. In one example, the work image WM and tool image 40M corresponding to the drawing data selected in the "Work CAD Selection" and "Tool CAD Selection" items in the settings screen 120 are displayed.
[0034] In setting up the collapse operation using Figure 9, first, with the user positioning the tool image 40M to an arbitrary position and orientation, the processor 31 accepts input for setting the pre-operation position. An example of input for setting the pre-operation position is clicking or pressing the pre-operation position setting button 121 in Figure 9. Through such operations using the tool image 40M, numerical values (parameters) corresponding to the above position and orientation, as shown in Figure 9, are set as the pre-operation position.
[0035] Next, with the user positioning the tool image 40M to any desired position and orientation, the processor 31 accepts input for setting the post-operation position. An example of input for setting the post-operation position is clicking or pressing the post-operation position setting button 122 in Figure 9. Through such operations using the tool image 40M, numerical values (parameters) corresponding to the above position and orientation, as shown in Figure 9, are set as the post-operation position.
[0036] In the third example of setting the collapse action, the processor 31 displays a tool image 41M corresponding to the tool 40 on the right side of the collapse action setting screen 120, as shown in Figure 10. The user can change the position and orientation of the tool image 41M. The user can also set the pre-action position and post-action position in the same manner as in the example in Figure 9.
[0037] In the example shown in Figure 10, the tool image 41M is an image corresponding to the claw member 41, which is part of the tool 40. Instead of the tool image 41M, an image of the tool center point 40B of the tool 40 and the coordinate system 40A of the tool 40 may be displayed as the tool image. In this case as well, the tool image can show the position and orientation of the tool 40 and is a tool image corresponding to the tool 40.
[0038] In the example in Figure 10, the container image 200M corresponding to the container 200 is also displayed on the right side of the settings screen 120. In the example in Figure 10, the numerical values (parameters) of the rotation position before and after the operation may be values based on the position and orientation of the container image 200M (container coordinate system 200A). Similarly, in the example in Figure 10, the numerical values (parameters) of the position before and after the operation may be values based on the position and orientation of the container image 200M (container coordinate system 200A).
[0039] For example, the direction in which the wall member image 222M of the container image 200M extends may be defined as the X-axis and Y-axis directions of the container coordinate system 200A, and the direction orthogonal thereto may be defined as the Z-axis direction of the container coordinate system 200A. Alternatively, a predetermined position such as the upper end of the corner image 221M may be defined as the origin of the container coordinate system 200A. In this case, the processor 31 can perform a collapse operation based on the range of existence, position, orientation, etc. of the enclosure wall 220 detected based on the output of the sensor 50. This is useful, for example, when the position and orientation of the container 200 are not constant.
[0040] In the example of Figure 8, the tool image 40M corresponding to the tool 40 and the workpiece image WM corresponding to the workpiece W are displayed on the right side of the settings screen 110, and the method of display may differ from that of the examples in Figures 9 and 10. In the examples of Figures 8 and 9, it is possible to set the parameters of the collapse operation based on the container coordinate system 200A, as in the example of Figure 10. Conversely, in the example of Figure 10, it is possible to set the parameters of the collapse operation based on the coordinate system 20A of the robot arm 20, as in the examples of Figures 8 and 9. In addition, in the settings screens of Figures 8 to 10, the processor 31 may determine whether the robot arm 20 is set to be placed outside its operational range based on the pre-operation position, post-operation position, etc., of the collapse operation set by the user. If the processor 31 determines that the robot arm 20 is set to be placed outside its operational range, it will notify the user using the display devices 32, 34A or an audio output device such as a speaker. Examples of being outside the operational range include the singularity or its vicinity, and the range below a predetermined distance from the enclosure wall 220 or the bottom surface 210.
[0041] In this embodiment, when the picking efficiency fails to meet the standard, the processor 31 starts the collapsing operation process shown in FIG. 11. The processor 31 may start the collapsing operation process at different timings.
[0042] Based on the collapsing operation program 33D, the processor 31 performs, for example, the following processes. First, the processor 31 moves the sensor 50 above one of the four corners of the container 200 by controlling the robot arm 20 (step S2-1), and detects at least the position of the target workpiece WT based on the output data from the sensor 50 (step S2-2). The orientation of the target workpiece WT may also be detected in step S2-1. In this embodiment, the position and orientation of the target workpiece WT are detected by pattern matching using the model data of the workpiece W, and examples of the position are the center position of the upper surface of the target workpiece WT, the center of gravity position of the target workpiece WT, and the like.
[0043] In step S2-1, one target workpiece WT may be detected, or a plurality of target workpieces WT may be detected. In this embodiment, in the vicinity of a certain corner 221, one workpiece W closest to the corner 221 and one workpiece W with the highest position in the output data (point cloud data) are set as the target workpiece WT. There are also corners 221 where a plurality of target workpieces WT are set. In FIGS. 1 to 3, the target workpiece WT is drawn with a two-dot chain line.
[0044] If no target workpiece WT is detected in step S2-2 (step S2-3), the processor 31 moves the sensor 50 above the next one of the four corners of the container 200 (step S2-1), and repeats steps S2-2 and S2-3.
[0045] When the target workpiece WT is detected in step S2-2, at least the position of the target workpiece WT is stored in the storage unit 33 (step S2-4). When the detection process of the target workpiece WT for all four corners is completed by steps S2-1 to S2-3 (step S2-5), and if the target workpiece WT is not detected at all four corners at this time (step S2-6), the processor 31 ends the collapsing operation process.
[0046] If the answer in step S2-6 is NO, the processor 31 controls the robot arm 20 to move the tool 40 to a position corresponding to one of the four corners where the target workpiece WT is detected (step S2-7). Then, the processor 31 controls the robot arm 20 for the collapse operation based on the operation settings of the first example, the second example, or the third example described above (step S2-8). The user can set which operation setting to use, but the processor 31 may select it automatically. Due to this control for the collapse operation, in the case of the first example shown in Figure 8 and the second example shown in Figure 9, the tip of the claw member 41, which is part of the tool 40, is positioned between the target workpiece WT and the enclosure wall 220 as shown in Figure 2. Also, in the case of the first example shown in Figure 8 and the second example shown in Figure 9, due to the control for the collapse operation described above, the tip of the claw member 41, which is part of the tool 40, moves away from the corner 221 of the enclosure wall 220. Such a collapse operation is referred to as the first operation in this embodiment. During the movement, the processor 31 can set passing points between the pre-movement position and the post-movement position using known interpolation calculations. The type of interpolation calculation, such as linear interpolation or circular interpolation, can be set by the user, or it can be set automatically by the processor 31.
[0047] Furthermore, in the third example shown in Figure 10, the tool 40, with the tip of the claw member 41 positioned inside the container 200 as shown in Figure 3, rotates due to the control for the collapse operation described above. This collapse operation is referred to as the second operation in this embodiment. The first and second operations are operations to move the target workpiece WT and / or the surrounding workpieces W toward the inside of the container 200. It is also possible to set a collapse operation different from the example in Figure 3. For example, it is possible to set the tool 40 to rotate around the X axis, rotate around the Y axis, or rotate around the Z axis, or a combination thereof, for the collapse operation, even when the tip of the claw member 41 is not positioned between the target workpiece WT and the surrounding wall 210.
[0048] In step S2-8, the processor 31 may perform the crumbling operation based on the third example after the crumbling operation based on the first example. For this purpose, the processor 31 can receive inputs for causing a combination of multiple types of operation settings to be performed and inputs for causing the same operation setting to be performed multiple times, and store the received combinations and numbers in the storage unit 33. The said input is, for example, performed by the user using the input device 34.
[0049] When the crumbling operation for all the detected target workpieces WT is completed (step S2-9), the processor 31 ends the crumbling operation process. Also, since an improvement in picking efficiency by the crumbling operation process is expected, the processor 31 starts the picking process of steps S1-1 to S1-3. Thereafter, when the picking process in FIG. 7 ends again based on the determination in step S1-4, the processor 31 may start the crumbling operation process in FIG. 11.
[0050] It should be noted that it is also possible for the processor 31 to perform only steps S2-7 and S2-8 without performing the above steps S2-1 to S2-6. In this case, the confirmation using the sensor 50 as to whether the target workpiece WT is at the corner of the container 200 is not performed, and at the said corner, the robot arm 20 performs the crumbling operation set in FIGS. 8, 9, 10, etc. Even in this case, the user can easily and effectively set the crumbling operation according to the type of the workpiece W, etc.
[0051] Furthermore, after step S2-8 has been completed, the processor 31 may perform the following evaluation processing based on the evaluation program 33E stored in the storage unit 33. In one example, the processor 31 detects the position of the target workpiece WT that has undergone the collapse operation as the post-collapse position and stores it in the storage unit 33. The position of the target workpiece WT stored in the storage unit 33 before the collapse operation in step S2-4 is the pre-collapse position. The processor 31 performs a position comparison between the pre-collapse position and the post-collapse position, calculates the amount of movement of the target workpiece WT based on the position comparison, calculates the direction of movement of the target workpiece WT based on the position comparison, and so on. The amount of movement may include only the amount of movement in the X-axis direction and the Y-axis direction, or it may include the amount of movement in the X-axis direction, the Y-axis direction, and the Z-axis direction. The amount of movement may be the amount by which the post-collapse position is further from the enclosure wall 220 relative to the pre-collapse position.
[0052] Furthermore, the processor 31 evaluates the movement of the target workpiece WT within the container due to the collapsing operation, based at least on the amount of movement. In one example, the processor 31 evaluates each of the four corners based at least on the amount of movement. In an example where multiple types of operation settings are combined and implemented at each corner, the processor 31 evaluates each of the combinations at each of the four corners based at least on the amount of movement. In an example where a single operation setting is implemented at each corner, the processor 31 evaluates each of the operation settings at each of the four corners based at least on the amount of movement.
[0053] The evaluation result can be expressed using a multi-level score based on pre-set criteria. For example, if the distance from the enclosure wall 220 due to the collapse operation is 50 mm or more, the score will be 5; if the distance is 40 mm or more but less than 50 mm, the score will be 4; and similar scores will be set for other cases. A computer (other device) connected to a sensor capable of detecting the position of the workpiece W may derive the evaluation result. In this case, the computer can detect the amount of movement, etc., using the sensor. The computer may also be connected to a control device 30, for example, and derive the evaluation result based on an evaluation program 33E. The processor 31 stores the evaluation result in the storage unit 33, linked to the corresponding operation setting or combination of corresponding operation settings.
[0054] The processor 31, based on the learning program 33F stored in the memory unit 33, either estimates the result of the movement of the target workpiece WT within the container, or creates operation settings to improve the result of the movement within the container, or both. For example, as described above, the processor 31 receives the output data from the sensor 50, detects the position before and after the collapse based on this data, calculates the amount of movement, calculates the direction of movement, derives evaluation results such as a score, and stores the obtained amount of movement, direction of movement, and evaluation results in the memory unit 33, linked to the corresponding operation settings. The amount of movement, direction of movement, and evaluation results obtained in this way are the results of movement within the container. Alternatively, as described above, the processor 31 can store data including the amount of movement, direction of movement, and evaluation results such as a score (results of movement within the container) received from another device, such as a computer, linked to the corresponding operation settings in the memory unit 33. Alternatively, the processor 31 can receive evaluation result data (results of movement within the container) input by the user using an input device 34, etc., and store the received evaluation result data linked to the corresponding operation settings in the memory unit 33. The evaluation results concern the quality of the movement of the target workpiece WT within the container.
[0055] In one example, the processor 31 performs learning using at least multiple sets of movement amounts, movement directions, or evaluation results obtained using data from the sensor 50, and corresponding operation settings. This learning enables the estimation of the expected movement amount, movement direction, or evaluation result for the target workpiece WT to be moved within the container, based on the operation settings used in the learning. The movement amount, movement direction, and evaluation result are examples of the results of movement within the container. In another example, the processor 31 performs learning using at least multiple sets of movement amounts and movement directions obtained using data from the sensor 50, and corresponding operation settings. This learning enables the creation of operation settings to improve the movement amount and movement direction of the target workpiece WT to be moved within the container. This creation also includes creating new operation settings by changing existing operation settings. The processor stores the learned data obtained through learning in the storage unit 33. The learned data includes the new operation settings mentioned above, and the learned data can be used in other robot systems, etc. The processor 31 can use evaluation results input via the input device 34 or the like as evaluation results, or it can use evaluation results such as movement amount, movement direction, and score received from another device, such as a computer.
[0056] In this embodiment, the user can set a collapse operation performed by the robot arm 20 to move a target workpiece WT within the container, for reasons such as difficulty in removing it with the tool 40. The first collapse operation by the robot arm 20 involves positioning a part of the tool 40 between the target workpiece and the surrounding wall 220 of the container 200, and then moving the tool 40 away from an arbitrary position on the surrounding wall 220. In the example of Figure 2, the arbitrary position is a predetermined position in the vertical direction of the corner 221, etc. The predetermined position can be any position such as the upper end, center, or lower end of the corner 221. Alternatively, in the example of Figure 2, the arbitrary position may be a predetermined position on either of the two wall members 222 that sandwich the corner 221. Unlike the example of Figure 2, during the collapse operation, the tool 40 may move away from one of the two wall members 222 while moving parallel to the other. In this case, the arbitrary position is a predetermined position on one of the wall members 222, a predetermined position on the corner 221, etc. In the first operation, the tool 40 moves away from the enclosure wall 220, and the user sets its position before the collapse operation. This setting reduces the concern that the tool 40 will come into contact with the enclosure wall 220 during the collapse operation, allowing the user to concentrate on an efficient collapse operation. Therefore, this configuration contributes to an effective improvement in picking efficiency (improved efficiency of the collapse operation).
[0057] The second action of the collapse operation by the robot arm 20 involves rotating the tool 40 while a part of the tool 40, such as a claw member 41, is positioned inside the container 200. In the example shown in Figure 3, the claw member 41 is not in contact with the target workpiece WT in the position before the collapse operation (the position before the rotation for the collapse operation). When the claw member 41 rotates several tens of degrees around the Z axis as part of the collapse operation, the claw member 41 comes into contact with the target workpiece WT. Furthermore, as described above, the robot system of this embodiment can combine multiple types of operation settings, perform the same operation setting multiple times, etc. If the user sets multiple second operations with the positions of the pre-collapse operation slightly offset from each other, for example, even if the target workpiece WT does not move with the first rotation of the claw member 41, the target workpiece WT can be moved to a position where picking efficiency is improved with the second rotation of the claw member 41. The user can set in which direction the tool 40 is rotated, which axis of rotation the tool 40 is rotated around, etc. This configuration reduces the risk of the tool 40 coming into contact with the surrounding wall 220 during the dismantling operation, allowing the user to concentrate on efficient dismantling. Therefore, this configuration contributes to a more efficient improvement in picking efficiency (more efficient dismantling operation).
[0058] Furthermore, in this embodiment, for example, by appropriately setting the pre-operation position and post-operation position in the settings screen shown in Figures 9 and 10, it is possible to set a collapse operation that combines the first and second operations. This configuration allows the user to set various collapse operations, and the setting process is not complicated.
[0059] Furthermore, in this embodiment, a settings screen is displayed on the display devices 32 and 34A, and on the settings screen, the user can set the position of the tool 40 before the collapse operation in the direction away from the arbitrary position. In the example shown in Figures 8 to 10, the setting of the position before the collapse operation and the setting of the collapse operation are performed on the same screen. In this way, the user can set not only the collapse operation but also the position before the collapse, and this configuration contributes to the safe operation of the robot arm 20.
[0060] In this embodiment, a settings screen is displayed on the display devices 32 and 34A, where the user sets the parameters for the rotation of the second operation. In a typical settings screen, the user can set the direction of rotation of the tool 40 during the collapse operation, the axis of rotation around which the tool 40 rotates, and so on. This configuration is useful for improving the efficiency of the collapse operation by the tool 40, as well as for the user to set a safe rotation so that the tool 40 does not come into contact with the container 200, and for setting the movement of the robot arm 20 so that it does not reach a singularity or its vicinity. In this embodiment, the tool 40 can be set to rotate only around a specific axis, for example, around the Z axis. This setting is more useful for controlling the movement so that it does not reach a singularity or its vicinity.
[0061] Furthermore, in this embodiment, for example, the tool image 40M is displayed on the settings screen as shown in Figure 9. When the user moves the tool image 40M to an arbitrary position and / or orientation, and the settings buttons 121 and 122 in Figure 9 are operated in that state, the processor 31 sets the pre-operation position or post-operation position according to the position and / or orientation of the tool image 40M. This configuration facilitates the user's setting work and improves the efficiency of the collapsing operation by the tool 40, as well as contributing to the image and setting of a safe collapsing operation in which the tool 40 does not come into contact with the container 200, etc. When the workpiece image WM is displayed together with the tool image 40M as shown in Figure 9, the user can easily visualize the size, position, orientation, etc. of the tool 40 relative to the workpiece W during the collapsing operation, which contributes to the efficiency of the collapsing operation. Furthermore, as shown in Figure 10, when the container image 200M is displayed together with the tool image 40M, the user can easily visualize the size, position, and orientation of the tool 40 relative to the container 200 during the collapse operation. This is useful for improving the efficiency of the collapse operation and for visualizing and setting up safe collapse operations where the tool 40 does not come into contact with the container 200, etc.
[0062] Furthermore, in this embodiment, for example, the tool image 40M is displayed on the settings screen as shown in Figure 10. When the user moves the tool image 40M to an arbitrary position and / or orientation, and the settings buttons 121 and 122 in Figure 9 are operated in that state, the processor 31 sets the pre-operation position or post-operation position according to the position and / or orientation of the tool image 40M. This configuration is useful for facilitating the user's setting work and improving the efficiency of the collapsing operation by the tool 40, as well as for creating a safe rotation image and setting that prevents the tool 40 from coming into contact with the container 200, etc. The effect of displaying the workpiece image WM or container image 200M together with the tool image 40M is as described above.
[0063] Using the settings screens in Figures 9 and 10, the user can set the pre-operation position (first position) by operating the setting button 121 with the tool image 40M positioned at any desired location. The user can also set the post-operation position (second position) by operating the setting button 122 with the tool image 40M positioned at any other desired location. This configuration, which allows setting the post-operation position relative to the pre-operation position, is useful for simplifying the user's setup process, improving the efficiency of the collapsing operation by the tool 40, and ensuring a more reliable image and setting of a safe collapsing operation where the tool 40 does not come into contact with the container 200, etc. Note that the pre-operation position may also be fixed. For example, the pre-operation position may be fixed at a predetermined distance of 20 mm or so in the X-axis and Y-axis directions from the corners 221 of the container 200. In this case, the user only needs to set the post-operation position relative to the pre-operation position near the four corners of the container 200. This configuration is useful not only for facilitating user setup and improving the efficiency of the collapsing operation by the tool 40, but also for creating a more reliable image and setting of a safe collapsing operation in which the tool 40 does not come into contact with the container 200, etc.
[0064] Furthermore, the processor 31 may perform learning as described above. In this case, the processor 31 performs multiple in-container movements of the target workpiece WT using the operation settings for the first operation and / or the second operation. The processor 31 is also configured to obtain the results of multiple in-container movements. The processor 31 also uses at least the multiple results and the operation settings corresponding to each of the multiple results to perform learning related to estimating the result of the next in-container movement, or creating operation settings to improve the result of the in-container movement, or both.
[0065] It is difficult to estimate how the target workpiece WT will move during a collapsing operation, considering factors such as which part of the tool 40 will contact the target workpiece WT, the shape of the target workpiece WT, the weight of the target workpiece WT, and how the target workpiece WT overlaps with other workpieces W. An operator who continuously performs a collapsing operation using the robot arm 20 on a certain type of workpiece W may be able to estimate to some extent how the target workpiece WT will move during the collapsing operation of that type of workpiece W. However, even for that operator, estimating the movement of the target workpiece WT during the collapsing operation of other types of workpieces W is difficult. Furthermore, there are not many operators skilled in collapsing operations. Being able to estimate the results of the above-mentioned movement within the container will lead to further improvements in picking efficiency and further efficiency in setting up the collapsing operation.
[0066] Furthermore, creating action settings to improve the results of movement within containers, as described above, reduces the user's workload for setting up the collapse action. Also, since the results of movement within containers due to the collapse action vary depending on various factors and are difficult to predict, the collapse action settings set through learning in this way may surpass the approach of human-made settings. This configuration leads to further improvements in picking efficiency and further efficiency in setting up the collapse action.
[0067] In addition, the processor 31 may estimate the results of movement within the container by methods other than learning. For example, the processor 31 may perform multiple movements of the target workpiece WT within the container using the aforementioned operation settings for the first and / or second operation. Then, the processor 31 may perform multiple collapse operations using a certain operation setting set as, for example, the first operation, and obtain multiple results of movement within the container corresponding to each of the multiple collapse operations. The processor 31 may use well-known methods such as statistical processing to obtain the maximum range, central position, and highly probable range of the position of the target workpiece WT after movement due to the collapse operation from the results of the multiple movements within the container. The processor 31 may obtain the minimum, maximum, median, and highly probable range of the amount of movement of the target workpiece WT due to the collapse operation from the results of the multiple movements within the container. These are used as estimated results of movement within the container.
[0068] The processor 31 can display, for example, the maximum range, central position, and most likely range of movement within the container on the display devices 32 and 34A. For example, when a user makes settings on the setting screens shown in Figures 8 to 10, the processor 31 displays the estimation results corresponding to those settings on the display devices 32 and 34A. This configuration leads to further improvements in picking efficiency and further efficiency in setting up the crumpling operation.
[0069] As shown in Figure 12, the tool 40 may be provided with a contact member 43, and the contact member 43 may be used in place of the claw member 41 in the collapsing operation. In this case, for example, the user sets the position of the tip of the contact member 43 before the collapsing operation as shown in Figures 8 to 10.
[0070] In this embodiment, a two-dimensional sensor may be used instead of a three-dimensional sensor as the sensor 50. Even in this case, the horizontal position of the target workpiece WT can be detected by the two-dimensional sensor in step S2-2. Furthermore, by performing pattern matching using the model data of the workpiece W in step S2-2, it is also possible to estimate the height position of the target workpiece WT. In addition, by using projection transformation of the model data, the orientation of the target workpiece WT can also be detected. Moreover, even if the height position of the workpiece W cannot be completely detected, it is possible to attach one or more distance sensors such as a TOF sensor to the tip of the robot arm 20 and control the robot arm 20 while understanding the distance between the tool 40 and the target workpiece WT using the distance sensors.
[0071] In addition, the tool 40 may be provided with a mechanism that rotates the tip end, which has a claw member 41 attached to it, around the axis J6 relative to the base end of the tool 40. For example, the base end may be fixed to the arm member 26 by bolts or the like, the tip end may be supported by the base end so as to be rotatable around the axis J6 by bearings or the like, and a motor for rotating the tip end may be provided inside the tool 40. In this case, in this embodiment, the rotation mechanism that rotates the tip end relative to the base end is considered to be part of the robot arm 20. Therefore, the rotation mechanism also moves in the collapsing operation as set in the setting screens in Figures 8 to 10.
[0072] While embodiments of this disclosure have been described in detail, this disclosure is not limited to the individual embodiments described above. These embodiments can be added, replaced, modified, partially deleted, etc., in any way that does not depart from the gist of this disclosure or from the idea and intent of this disclosure derived from the claims and their equivalents. For example, in the embodiments described above, some configurations or steps can be omitted or added depending on the circumstances, without being bound by the above examples. The same applies when numerical values or mathematical formulas are used in the description of the embodiments above.
[0073] [Note 1] A robot system comprising one or more processors for controlling a robot arm having a tool, wherein the processors are capable of setting at least one of the following actions: a first action of the robot arm, which involves positioning a part of the tool between the target workpiece and the enclosure wall of the container, and then causing the tool to move away from an arbitrary position on the enclosure wall, for the purpose of moving a target workpiece within the container, or a second action of the robot arm, which involves causing the tool, with a part positioned inside the container, to rotate for the purpose of moving within the container. [Note 2] The robot system according to Note 1, further comprising a display device for the setting, wherein the display device displays a setting screen for setting the position of the part of the tool before the movement away from the arbitrary position. [Note 3] The robot system according to Note 1, further comprising a display device for the setting, wherein the display device displays a setting screen for setting parameters for the rotation of the tool for the movement within the container. [Note 4] The robot system according to Note 1, further comprising a display device for the setting, wherein the display device displays a tool image corresponding to the tool so that the user can change its position and orientation, and the processor can set the position of the part of the tool before the movement away from the arbitrary position, depending on at least the position of the tool image. [Note 5] The robot system according to Note 1, further comprising a display device for the setting, wherein the display device displays a tool image corresponding to the tool so that the user can change its position and orientation, and the processor can set the rotation parameters of the tool, part of which is placed in the container, depending on at least the orientation of the tool image. [Note 6] The robot system according to Note 1, further comprising a display device for the setting, wherein the display device displays a tool image corresponding to the tool so that the user can change its position and orientation, and the processor can set the position of the tool after the movement away from the arbitrary position, depending on at least the position of the tool image placed in a second position.[Note 7] The robot system according to Note 1, wherein the processor is configured to estimate the result of the movement within the container using the operation settings and to display the estimated result on a display device. [Note 8] The robot system according to Note 1, wherein the processor is configured to perform the movement of the target workpiece within the container multiple times using the operation settings, the processor is configured to obtain the results of multiple movements within the container, and the processor is configured to learn, either or both, to estimate the result of the next movement within the container, or to create an operation setting to improve the result of the movement within the container, using at least the multiple results and the operation settings corresponding to each of the multiple results. [Note 9] The robot system according to Note 3, wherein the setting screen displayed on the display device can be configured to rotate the tool 40 around a specific axis. [Note 10] A teaching device for teaching the operation of a robot arm for moving a target workpiece within a container, the device comprising one or more processors capable of controlling a robot arm having a tool, wherein the processors are capable of setting at least one of the following operations for movement within the container: a first operation of the robot arm, in which a part of the tool is positioned between the target workpiece and the enclosure wall of the container, and then the tool is moved away from an arbitrary position on the enclosure wall; or a second operation of the robot arm, in which the part of the tool positioned inside the container is rotated.
[0074] 20: Robot arm 20A: Coordinate system 30: Control device 31: Processor 32: Display device 33: Memory unit 34A: Display device 40: Tool 40A: Coordinate system 41: Claw member 43: Contact member 50: Sensor 60: Computer 100: Robot system 110: Settings screen 120: Settings screen 121: Settings button 122: Settings button 200: Container 200A: Container coordinate system 210: Bottom surface 220: Enclosure wall 221: Corner 222: Wall member W: Workpiece WT: Target workpiece
Claims
1. A robot system comprising one or more processors for controlling a robot arm having a tool, wherein the processors are capable of setting at least one of the following actions: a first action of the robot arm, which involves positioning a part of the tool between the target workpiece and the enclosure wall of the container, and then causing the tool to move away from any position on the enclosure wall, for the purpose of moving a target workpiece within the container; or a second action of the robot arm, which involves causing the tool, with a part positioned inside the container, to rotate for the purpose of moving within the container.
2. The robot system according to claim 1, comprising a display device for the setting, wherein the display device displays a setting screen for setting the position of the part of the tool before the movement away from the arbitrary position.
3. The robot system according to claim 1, comprising a display device for the setting, wherein the display device displays a setting screen for setting parameters for the rotation of the tool for movement within the container.
4. The robot system according to claim 1, comprising a display device for the setting, the display device displays a tool image corresponding to the tool so that the user can change its position and orientation, and the processor can set the position of the part of the tool before the movement away from the arbitrary position, depending on at least the position of the tool image.
5. The robot system according to claim 1, comprising a display device for the setting, the display device displays a tool image corresponding to the tool so that the user can change its position and orientation, and the processor can set the rotation parameters of the tool, of which a portion is placed in the container, according to at least the orientation of the tool image.
6. The robot system according to claim 1, comprising a display device for the setting, the display device displaying a tool image corresponding to the tool so that the user can change its position and orientation, and the processor being able to set the position of the tool after the movement away from the arbitrary position, depending on at least the position of the tool image positioned at a second position.
7. The robot system according to claim 1, wherein the processor is configured to estimate the result of the movement within the container, which is performed using the operation settings, and to display the estimation result on a display device.
8. The robot system according to claim 1, wherein the processor is configured to perform multiple movements of the target workpiece within the container using the operation settings, the processor is configured to obtain the results of the multiple movements within the container, and the processor is configured to learn, either or both, to estimate the result of the next movement within the container, or to create operation settings to improve the result of the movement within the container, using at least the multiple results and the operation settings corresponding to each of the multiple results.
9. The robot system according to claim 3, wherein the setting screen displayed on the display device can be configured to rotate the tool 40 only around a specific axis.
10. A teaching device for teaching the operation of a robot arm for the movement of a target workpiece that requires movement within a container, comprising one or more processors capable of controlling a robot arm having a tool, wherein the processors are capable of setting at least one of the following operations for movement within the container: a first operation of the robot arm, which involves positioning a part of the tool between the target workpiece and the enclosure wall of the container, and then causing the tool to move away from an arbitrary position on the enclosure wall; or a second operation of the robot arm, which involves causing the part of the tool positioned inside the container to rotate for movement within the container.
Citation Information
Patent Citations
Workpiece take-out device and workpiece take-out method for improving take-out operation of workpiece
JP2018126802A
Robot system for taking out work-piece loaded in bulk state and robot system control method
JP2019198949A
Robot system
JP2023097483A
Apparatus for Automated Removal of Workpieces Arranged in a Container
US20140052297A1
Gripping position and attitude teaching device, gripping position and attitude teaching method, and robot system
WO2019069361A1