ROBOT CONTROL DEVICE, CONTROL METHOD, PROGRAM, ROBOT, AND ROBOT SYSTEM
Patent Information
- Application Number
- JP2024044539
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2024-03-21
- Publication Date
- 2025-03-14
- Estimated Expiration
- 2042-12-27
AI Technical Summary
【0010】 ロボットを利用して、他よりも積み上がった複数の対象物を崩すことができる。
Smart Images

Figure 0007646050000001 
Figure 0007646050000002 
Figure 0007646050000003
Abstract
Description
[Technical field]
[0001] The present disclosure relates to robots. [Background technology]
[0002] Patent Document 1 describes a technology in which a robot mixes up multiple randomly piled workpieces. [Prior art documents] [Patent documents]
[0003] [Patent Document 1] JP 2011-115930 A Summary of the Invention [Problem to be solved by the invention]
[0004] There is room for improvement when it comes to robotics technology. [Means for solving the problem]
[0005] A robot control device, a control method, a program, a robot, and a robot system are disclosed. In one embodiment, the robot control device includes a control unit that controls a robot that performs work on a plurality of objects. The control unit causes the robot to operate in a manner that breaks down a plurality of objects that are piled up higher than the others.
[0006] In one embodiment, the control method is a method for controlling a robot that performs work on a plurality of objects, and controls the robot so as to break down a plurality of objects that are piled higher than others.
[0007] In one embodiment, the program is a program for causing a computer device to function as a control unit included in the robot control device.
[0008] In one embodiment, the robot is a robot controlled by the robot control device described above.
[0009] In one embodiment, a robot system includes the robot control device described above and a robot controlled by the robot control device. Effect of the Invention
[0010] The robot can be used to knock down multiple objects that are stacked higher than the others. [Brief description of the drawings]
[0011] [Figure 1] FIG. 1 is a schematic diagram illustrating an example of a robot system. [Diagram 2] FIG. 1 is a schematic diagram showing an example of a robot and its surroundings. [Diagram 3] FIG. 2 is a schematic diagram illustrating an example of an end effector. [Figure 4] 10 is a schematic diagram showing an example of a state in which a stirring member stirs a plurality of held objects in a container. FIG. [Diagram 5] FIG. 2 is a schematic diagram showing an example of the configuration of a robot control device. [Figure 6] 5 is a flowchart showing an example of the operation of the robot control device. [Figure 7] 10A to 10C are schematic diagrams showing an example of the movement of a stirring member during a stirring process. [Figure 8] 10A to 10C are schematic diagrams showing an example of the movement of a stirring member during a stirring process. [Figure 9] 10 is a schematic diagram showing an example of a moving direction of a stirring member in a stirring process. FIG. [Figure 10] 10A to 10C are schematic diagrams showing an example of the movement of a stirring member during a stirring process. [Figure 11] 10A to 10C are schematic diagrams showing an example of the movement of a stirring member during a stirring process. [Figure 12] 10A to 10C are schematic diagrams showing an example of the movement of a stirring member during a stirring process. [Figure 13]10A to 10C are schematic diagrams showing an example of the movement of a stirring member during a stirring process. [Figure 14] FIG. 11 is a schematic diagram for explaining an example of setting the height of the stirring member. [Figure 15] 1 is a schematic diagram showing an example of a state in which the inside of a container is divided into a plurality of partial regions. FIG. [Figure 16] 10A to 10C are schematic diagrams showing an example of the movement of a stirring member during a stirring process. [Figure 17] 5 is a flowchart showing an example of the operation of the robot control device. [Figure 18] 5 is a flowchart showing an example of the operation of the robot control device. [Figure 19] 5 is a flowchart showing an example of the operation of the robot control device. [Figure 20] 5 is a flowchart showing an example of the operation of the robot control device. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0012] FIG. 1 is a schematic diagram showing an example of the configuration of a robot system 1. As shown in FIG. 1, the robot system 1 includes, for example, a robot 2 and a robot control device 6 that controls the robot 2. The robot control device 6 manages, for example, the operation of the entire robot system 1. The robot 2 includes, for example, an arm 20 and an end effector 25. The robot system 1 includes an arm control device 3 that controls the arm 20 and an effector control device 4 that controls the end effector 25. The robot control device 6 can communicate with the arm control device 3 and can control the arm control device 3. The arm control device 3 can communicate with the effector control device 4. The robot control device 6 can communicate with the effector control device 4 through the arm control device 3 and can control the effector control device 4 through the arm control device 3. The robot control device 6 can control the arm 20 through the arm control device 3. The robot control device 6 can control the end effector 25 through the arm control device 3 and the effector control device 4. The robot control device 6 can also be called a higher-level control device 6 that controls the robot 2.
[0013] The robot system 1 includes, for example, a first camera 8, a second camera 9, an arm sensor unit 50 that detects the state of the arm 20, and an effector sensor unit 55 that detects the state of the end effector 25. The robot control device 6 controls the robot 2 based on, for example, the camera images obtained by the first camera 8 and the second camera 9 and the detection results by the arm sensor unit 50 and the effector sensor unit 55.
[0014] <About the robot> FIG. 2 is a schematic diagram showing an example of the robot 2 and its surroundings. The robot 2 can move from a source area to a destination area while holding, for example, a holding object 10. The holding object 10 is also called, for example, a workpiece. The robot 2 holds the holding object 10 in the source area with the end effector 25. The robot 2 then moves the holding object 10 held by the end effector 25 from the source area to the destination area. For example, the robot 2 moves the holding object 10 held by the end effector 25 from the source area to the destination area by changing the posture of the robot 2, specifically, the posture of the arm 20. The position of the arm 20 is determined by the posture of the arm 20. The position of the end effector 25 is determined by the posture of the arm 20. The end effector 25 releases the holding object 10 that has moved to the destination area and places it in the destination area.
[0015] The source area and the destination area are, for example, containers. A plurality of holding objects 10 are present in a container 15 (also referred to as source container 15) as the source area. A plurality of holding objects 10 are piled up in the source container 15, for example. The robot 2, for example, holds the holding objects 10 in the source container 15 one by one in sequence and moves them to a container 16 (also referred to as destination container 16) as the destination area. The source container 15 and the destination container 16 are placed on, for example, a workbench 18 and a workbench 19, respectively. It can also be said that the robot 2 moves the holding object 10 on the workbench 18 to the workbench 19. The robot control device 6 can control the movement of the robot 2 to cause the robot 2 to perform the work. Hereinafter, the holding object 10 may be simply referred to as the object 10.
[0016] The work performed by the robot 2 is not limited to the above example. Furthermore, the source area and the destination area are not limited to the above example. For example, at least one of the source area and the destination area may be a shelf on which the object 10 is placed, a table on which the object 10 is directly placed, or a conveyor that transports the object 10.
[0017] The arm 20 includes, for example, a plurality of joints and a plurality of links (in other words, arms). Each joint includes a motor for rotating the joint. The arm 20 includes, for example, six joints. The arm 20 has, for example, six degrees of freedom. The robot 2 can change the posture of the arm 20 by changing the rotation angle of at least one of the six joints. The arm control device 3 can control the rotation angle of each joint in response to an instruction from the robot control device 6. That is, the robot control device 6 can control the rotation angle of each joint through the arm control device 3. The robot control device 6 can control the posture of the arm 20 through the arm control device 3. The number of joints included in the arm 20 may be other than six.
[0018] The effector control device 4 is capable of controlling the end effector 25 in response to instructions from the robot control device 6. The robot control device 6 is capable of issuing various instructions to the effector control device 4, for example, via the arm control device 3. The robot control device 6 is capable of controlling the end effector 25 via the arm control device 3 and the effector control device 4.
[0019] 2, the end effector 25 includes, for example, a holding unit 26 that holds the object 10 in the container 15, a stirring member 28 that stirs the objects 10 in the container 15, and a housing 29 that can house the holding unit 26 and the stirring member 28. During operation, the robot 2 performs a stirring process that stirs the objects 10 in the container 15 with the stirring member 28. By performing the stirring process, the robot 2 can easily hold the objects 10 in the container 15.
[0020] The holding unit 26 and the stirring member 28 can each individually move out of or into the housing 29. The holding unit 26 may be composed of, for example, a plurality of finger structures that grip the object 10, or may be composed of at least one suction unit that suctions and holds the object 10. The suction unit is also called, for example, a suction pad. FIG. 2 shows, as an example, the holding unit 26 composed of at least one suction unit. The end effector 25 includes a first drive unit that drives the holding unit 26. The effector control device 4 can control the holding operation of the holding unit 26 by controlling the first drive unit.
[0021] The end effector 25 has an attachment portion 27 to which the holding portion 26 is attached. The attachment portion 27 is, for example, fixed to the housing 29 inside the housing 29 and has an elongated shape. The holding portion 26 is attached to one end of the attachment portion 27 in the longitudinal direction. The attachment portion 27 can also be referred to as a fixed portion 27 fixed to the housing 29. The attachment portion 27 can also be referred to as, for example, a shaft portion.
[0022] The attachment portion 27 is extendable, for example. By extension of the attachment portion 27, the holding portion 26 can come out of the housing 29 or enter into the housing 29. FIG. 2 shows an example of a state in which the attachment portion 27 extends and the holding portion 26 comes out of the housing 29. The end effector 25 includes a second drive unit that extends and expands the attachment portion 27. The effector control device 4 can extend and contract the attachment portion 27 by controlling the second drive unit. Hereinafter, regarding the state of the holding portion 26, the state in which the holding portion 26 comes out of the housing 29 as shown in FIG. 2 is called an exposed state, and the state in which the holding portion 26 is inside the housing 29 is called a housed state. The effector control device 4 can put the holding portion 26 into an exposed state or a housed state by controlling the second drive unit.
[0023] The stirring member 28 includes, for example, a plurality of elongated members 281 and an attachment portion 280 to which the plurality of elongated members 281 are attached. The plurality of elongated members 281 extend from the attachment portion 280 and are softer than the attachment portion 280. The attachment portion 280 has, for example, an elongated shape and can also be called a shaft portion. The plurality of elongated members 281 extend, for example, from one end of the attachment portion 280 in the longitudinal direction so as to spread out in a cone shape. The tips of the plurality of elongated members 281 are located on approximately the same plane. The stirring member 28 can also be called, for example, a stirring rod.
[0024] The elongated member 281 has, for example, a tube shape. The elongated member 281 is made of, for example, an elastomer. The elongated member 281 may be made of polyurethane or silicone resin. The attachment portion 280 is made of, for example, a metal or a relatively hard resin such as ABS (acrylonitrile butadiene styrene). However, the materials of the elongated member 281 and the attachment portion 280 are not limited to these.
[0025] The mounting portion 280 is fixed to the housing 29 within the housing 29, for example. The mounting portion 280 can also be called a fixed portion 280 fixed to the housing 29. The mounting portion 280 is, for example, extendable. By the mounting portion 280 extending and contracting, the stirring member 28 can come out of the housing 29 or enter into the housing 29. FIG. 3 is a schematic diagram showing an example of a state in which the mounting portion 280 extends and the stirring member 28 comes out of the housing 29. FIG. 2 shows an example of a state in which the mounting portion 280 contracts and the stirring member 28 enters the housing 29. In FIG. 3, the second camera 9 is omitted.
[0026] The mounting portion 280 can expand and contract, for example, along the same direction as the mounting portion 27. Therefore, the multiple elongated members 281 can move along the same direction as the holding portion 26. The holding portion 26 and the stirring member 28 can, for example, extend to the outside of the housing 29 through the same opening 290 (see FIGS. 2 and 3) that the housing 29 has, and can enter the housing 29 through the opening 290.
[0027] As shown in FIG. 3, when the stirring member 28 is protruding from the housing 29, all of the elongated members 281 protrude from the housing 29, and the attachment portion 280 partially protrudes from the housing 29. The end effector 25 includes a third drive unit that extends and retracts the attachment portion 280. The effector control device 4 can extend and retract the attachment portion 280 by controlling the third drive unit. Hereinafter, regarding the state of the stirring member 28, the state in which the stirring member 28 partially protrudes from the housing 29 as shown in FIG. 3 is referred to as an exposed state, and the state in which the stirring member 28 is entirely contained within the housing 29 is referred to as a housed state. The effector control device 4 can put the stirring member 28 into an exposed state or a housed state by controlling the third drive unit.
[0028] When the robot 2 holds the object 10 in the container 15, the state of the holding unit 26 is set to the exposed state, and the state of the stirring member 28 is set to the housed state, as shown in FIG. 2. On the other hand, when the robot 2 performs a stirring process, the state of the stirring member 28 is set to the exposed state, and the state of the holding unit 26 is set to the housed state, as shown in FIG. 3. In the stirring process, the robot 2 stirs the objects 10 in the container 15 so that the elongated members 281 hit the objects 10 in the container 15. For example, the robot 2 stirs the objects 10 in the container 15 by sweeping the objects 10 in the container 15 with the elongated members 281. FIG. 4 is a schematic diagram showing an example of the stirring member 28 stirring the objects 10 in the container 15.
[0029] For example, except when the stirring process is being performed, the state of the holding unit 26 is set to the exposed state and the state of the stirring member 28 is set to the housed state. And, for example, only when the stirring process is being performed, the state of the holding unit 26 is set to the housed state and the state of the stirring member 28 is set to the exposed state.
[0030] Normally, the states of the holding portion 26 and the stirring member 28 are both set to the stored state, and the state of the holding portion 26 is set to the exposed state and the state of the stirring member 28 is set to the stored state only when the end effector 25 holds the object 10, and the state of the holding portion 26 is set to the stored state and the state of the stirring member 28 is set to the exposed state only when the stirring process is performed.
[0031] The robot controller 6 can control the robot 2 to control the position of the mixing member 28 of the end effector 25. Specifically, the robot controller 6 can control the position of the mixing member 28 by controlling the attitude of the arm 20 via the arm controller 3. The robot controller 6 can cause the robot 2 to execute a mixing process by controlling the attitude of the arm 20. In the mixing process, the robot controller 6 controls the attitude of the arm 20 so that the mixing member 28 performs a predetermined movement. A specific example of the movement of the mixing member 28 in the mixing process will be described in detail later.
[0032] The mounting portion 27 does not have to be extendable. In this case, the first moving mechanism included in the end effector 25 may move the mounting portion 27 so that the holding portion 26 can move out of the housing 29 or into the housing 29.
[0033] In addition, the attachment portion 280 does not have to be extendable. In this case, the second movement mechanism included in the end effector 25 may move the attachment portion 280, so that the stirring member 28 can move out of the housing 29 or into the housing 29.
[0034] <Regarding the first and second cameras> The first camera 8 is, for example, a three-dimensional camera. The shooting range of the first camera 8 (also called the first shooting range) includes, for example, the working range of the robot 2. The first camera 8 shoots the first shooting range to generate a two-dimensional color image and a distance image. Each pixel value of the color image includes, for example, an R component (red component), a G component (green component), and a B component (blue component). Such a color image is also called an RGB image. The color image shows the state of the working range. The distance image is an image that two-dimensionally represents the distance to each measurement point included in the first shooting range. Each pixel value of the distance image indicates the distance to the measurement point corresponding to the pixel value. The distance image is also called a depth image. The first camera 8 outputs first image data 80 (see FIG. 1) indicating the first camera image including the color image and the distance image to the robot control device 6. The robot control device 6 controls the robot 2 based on the first camera image indicated by the first image data 80.
[0035] 2, the second camera 9 is fixed to, for example, the outer surface of the housing 29 of the end effector 25. Therefore, the shooting range of the second camera 9 (also referred to as the second shooting range) changes according to the posture of the end effector 25. Since the posture of the end effector 25 changes according to the posture of the arm 20, the second shooting range changes according to the posture of the arm 20.
[0036] When the end effector 25 holds the object 10 in the container 15, the second camera 9 photographs the source container 15 from above. In this case, the second photographing range includes multiple objects 10 in the container 15. On the other hand, when the end effector 25 releases the object 10 and places the object 10 in the destination container 16, the second camera 9 photographs the destination container 16 from above.
[0037] The second camera 9, like the first camera 8, captures an image of the second imaging range to generate, for example, a two-dimensional color image and a distance image. When the end effector 25 holds an object 10 in a container 15, the color image captures the container 15 and the multiple objects 10 in the container 15. The second camera 9 outputs second image data 90 (see FIG. 1 ) indicating the second camera image including the color image and the distance image to the effector control device 4. The effector control device 4 transmits the second image data 90 to the robot control device 6 via the arm control device 3. The robot control device 6 controls the robot 2 based on the second image indicated by the second image data 90.
[0038] <About the arm sensor and effector sensor> The arm sensor unit 50 can detect, for example, the state of each of the multiple joints of the arm 20. For each of the multiple joints, the arm sensor unit 50 includes, for example, a current sensor that detects a current flowing through the joint, a torque sensor that detects a torque applied to the joint, and an encoder that detects a rotation angle of the joint. The encoder is also called, for example, a rotary encoder. The arm sensor unit 50 outputs arm state information indicating the detection result of the arm sensor unit 50 to the arm control device 3. The arm state information indicates the current flowing through each joint, the torque applied to each joint, and the rotation angle of each joint. The arm control device 3 transmits the arm state information to the robot control device 6. The robot control device 6 controls the robot 2 based on the arm state information.
[0039] The effector sensor unit 55 includes, for example, a contact sensor and a force sensor. The contact sensor can detect, for example, the holding force (for example, gripping force or suction force) of the holding unit 26 on the target object 10. The contact sensor is also called, for example, a force sensor. The contact sensor may be, for example, an electrical resistance type, an electrostatic capacitance type, a piezoelectric type, or an optical type.
[0040] The force sensor can detect, for example, a force applied to the end effector 25. The force sensor may be, for example, a six-axis force sensor. The force sensor may be, for example, an electrical resistance type, an electrostatic capacitance type, a piezoelectric type, or an optical type.
[0041] The effector sensor unit 55 outputs end effector status information indicating the detection result of the effector sensor unit 55 to the effector control device 4. The end effector status information indicates the holding force of the holding unit 26 on the target object 10 and the force applied to the end effector 25. The effector control device 4 transmits the end effector status information to the robot control device 6 via the arm control device 3. The robot control device 6 controls the robot 2 based on the end effector status information.
[0042] <Example of robot control device configuration> Fig. 5 is a schematic diagram showing an example of the configuration of the robot control device 6. The robot control device 6 is, for example, a computer device, and can also be called a control device or a control circuit. As shown in Fig. 5, the robot control device 6 includes, for example, a control unit 60, an interface 61, an interface 62, and a storage unit 63.
[0043] The interface 61 is capable of communicating with the first camera 8. The interface 61 may be, for example, an interface circuit, a communication unit, or a communication circuit. The interface 61 may perform wired communication or wireless communication.
[0044] The interface 62 is capable of communicating with the arm control device 3. The control unit 60 is capable of controlling the arm control device 3 through the interface 62. The interface 62 performs wired communication with the arm control device 3, for example, in accordance with EtherCAT (registered trademark). The arm control device 3 performs wired communication with the effector control device 4, for example, in accordance with EtherCAT. The interface 62 receives arm state information output by the arm sensor unit 50, and receives effector state information output by the effector sensor unit 55. The interface 62 and the arm control device 3 may be compliant with a communication standard other than EtherCAT. The interface 62 and the arm control device 3 may also perform wireless communication.
[0045] The control unit 60 can generally manage the operation of the robot control device 6 by controlling other components of the robot control device 6. The control unit 60 can also be referred to as, for example, a control circuit. The control unit 60 includes at least one processor to provide control and processing capabilities for performing various functions, as described in more detail below.
[0046] According to various embodiments, the at least one processor may be implemented as a single integrated circuit (IC) or as multiple communicatively connected integrated circuit ICs and / or discrete circuits. The at least one processor may be implemented according to various known techniques.
[0047] In one embodiment, a processor includes one or more circuits or units configured to perform one or more data computation procedures or processes, for example by executing instructions stored in associated memory. In other embodiments, a processor may be firmware (e.g., discrete logic components) configured to perform one or more data computation procedures or processes.
[0048] According to various embodiments, the processor may include one or more processors, controllers, microprocessors, microcontrollers, application specific integrated circuits (ASICs), digital signal processors, programmable logic devices, field programmable gate arrays, or any combination of these devices or configurations, or other known devices and configurations, to perform the functions described below.
[0049] The control unit 60 may include, for example, a CPU (Central Processing Unit) as a processor. The control unit 60 can control the arm 20 through the interface 62 and the arm control device 3. The control unit 60 can identify the current posture of the arm 20 based on the arm state information received by the interface 62. The control unit 60 can also control the end effector 25 through the interface 62, the arm control device 3, and the effector control device 4. The control unit 60 can identify whether the end effector 25 is properly holding the object 10 or whether the end effector 25 has dropped the object 10 based on the effector state information received by the interface 62. The control unit 60 can control the position of the mixing member 28 by controlling the posture of the arm 20 through the interface 62 and the arm control device 3. The control unit 60 can cause the robot 2 to execute a mixing process by controlling the posture of the arm 20.
[0050] The storage unit 63 may include a non-transitory recording medium readable by the CPU of the control unit 60, such as a read only memory (ROM) and a random access memory (RAM). The storage unit 63 stores, for example, a program 630 for controlling the robot control device 6. Various functions of the control unit 60 are realized, for example, by the CPU of the control unit 60 executing the program 630 in the storage unit 63.
[0051] In addition to the program 630, the memory unit 63 stores, for example, robot information and object information used in controlling the robot 2. The robot information is information about the robot 2. The robot information includes, for example, information representing the shape of the robot 2. The object information is information about the object 10. The object information includes, for example, information representing the shape of the object 10.
[0052] The configuration of the control unit 60 is not limited to the above example. For example, the control unit 60 may include multiple CPUs. The control unit 60 may also include at least one DSP (Digital Signal Processor). All or some of the functions of the control unit 60 may be realized by a hardware circuit that does not require software to realize the function. The storage unit 63 may also include a computer-readable non-transitory recording medium other than ROM and RAM. The storage unit 63 may also include, for example, a small hard disk drive and an SSD (Solid State Drive).
[0053] The robot control device 6 may include an input unit capable of receiving various inputs from a user. The input unit may include, for example, a mouse and a keyboard. The input unit may also include a touch sensor that receives a touch operation by a user. When the robot control device 6 includes a display unit such as a liquid crystal display, the display unit and the touch sensor may constitute a touch panel display having a display function and a touch detection function. The input unit may also include a microphone that receives a voice input from a user. The control unit 60 can recognize the contents of the user input received by the input unit based on the output signal from the input unit. When the robot control device 6 includes an interface that communicates with an external device other than the first camera 8 and the arm control device 3, the robot control device 6 may receive an input from a user through the interface.
[0054] The robot control device 6 may be composed of multiple computer devices. The robot control device 6 may also be composed of a cloud server. In this case, the robot control device 6 may be capable of communicating with other components such as the arm control device 3 through a network including the Internet, for example.
[0055] The arm control device 3 may have, for example, a configuration similar to that of the robot control device 6. For example, the arm control device 3 may have a control unit having a processor such as a CPU, a storage unit that stores programs and the like executed by the processor, an interface for communicating with the robot control device 6, and an interface for communicating with the effector control device 4. The effector control device 4 may also have, for example, a configuration similar to that of the robot control device 6. For example, the effector control device 4 may have a control unit having a processor such as a CPU, a storage unit that stores programs and the like executed by the processor, and an interface for communicating with the arm control device 3.
[0056] <About the stirring process> 6 is a flow chart showing an example of the operation of the control unit 60 regarding the mixing process. When the robot 2 starts working, the holder 26 in an exposed state is positioned above the container 15. When the robot 2 starts working, in step s1, the control unit 60 determines whether or not a holding object 10 is present in the container 15 based on the second camera image obtained by the second camera 9. If the determination in step s1 is YES, the control unit 60 determines in step s2 whether or not an object 10 that can be held by the robot 2 (specifically, the holder 26 of the end effector 25) is present in the container 15. On the other hand, if the determination in step s1 is NO, the work of the robot 2 ends.
[0057] Here, even if the robot 2 tries to hold a certain object 10 in the container 15 with the holding unit 26 of the end effector 25 by changing the posture of the arm 20, the container 15 may interfere with the robot 2, making it impossible for the holding unit 26 to hold the certain object 10. In addition, since the posture that the arm 20 can take is limited by the reach of the arm 20 and the rotation range of each joint of the arm 20, etc., even if the robot 2 tries to hold a certain object 10 in the container 15 with the holding unit 26 by changing the posture of the arm 20, the arm 20 may not be able to take a posture that allows the holding unit 26 to hold the certain object 10. When there is no holding object 10 in the container 15 that can be held by the holding unit 26 due to interference between the container 15 and the robot 2, etc., the control unit 60 executes step s4. The control unit 60 can, for example, acquire information about the container 15 (for example, the position and shape of the container 15) based on the first camera image, and determine whether the container 15 and the robot 2 will interfere with each other when the robot 2 attempts to hold an object 10 in the container 15, based on the acquired information about the container 15. Note that the information about the container 15 may be stored in advance in the storage unit 63.
[0058] If it is determined in step s2 that the object 10 that can be held by the holding unit 26 is present in the container 15, step s3 is executed. In step s3, the control unit 60 performs holding control to control the arm 20 and the end effector 25 so that the robot 2 attempts to hold the object 10 in the container 15.
[0059] When the robot 2 attempts to hold the object 10 in the container 15 and the robot 2 succeeds in holding the object 10, the control unit 60 controls the posture of the arm 20 so that the object 10 held by the holding unit 26 moves from the source container 15 to the destination container 16. The control unit 60 can determine whether the robot 2 succeeds in holding the object 10 based on the end effector state information. When the control unit 60 controls the posture of the arm 20 so that the object 10 moves from the source container 15 to the destination container 16, the control unit 60 identifies an obstacle within the working range based on the first camera image. Then, the control unit 60 changes the posture of the arm 20 so that the identified obstacle does not interfere with the robot 2 and the object 10. When the object 10 moves to the destination container 16, the control unit 60 controls the end effector 25 to release the object 10. As a result, the object 10 is placed in the destination container 16. Thereafter, the control unit 60 controls the attitude of the arm 20 so that the holder 26 is again positioned above the container 15, as shown in Fig. 2. Then, step s1 is executed again. After executing step s1, the control unit 60 operates in the same manner.
[0060] If the robot 2 attempts to hold the object 10 in the container 15 through the holding control in step s3 and fails to hold the object 10, step s1 is executed again. After execution of step s1, the control unit 60 operates in the same manner.
[0061] In step s4, the control unit 60 causes the robot 2 to execute a mixing process. In step s4, first, the control unit 60 controls the end effector 25 so that the holding unit 26 and the mixing member 28 are in a contained state and an exposed state, respectively. Next, the control unit 60 controls the posture of the arm 20 so that the mixing member 28 in the exposed state mixes the multiple objects 10 in the container 15. Then, after the mixing process is completed, the control unit 60 controls the end effector 25 so that the holding unit 26 and the mixing member 28 are in an exposed state and a contained state, respectively.
[0062] After step s4, step s1 is executed again. Thereafter, the control unit 60 operates in the same manner. In step s2 after step s4 is executed, since the arrangement of the objects 10 in the container 15 has changed due to the stirring process, it may be determined that an object 10 that can be held by the holding unit 26 is present in the container 15. This makes it easier for the robot 2 to hold the object 10 in the container 15. Note that the stirring process may be performed so that the overlapping state of the objects 10 changes among the objects 10 that overlap each other in the container.
[0063] <How to stir> Below, several examples of stirring methods in which the stirring member 28 stirs the multiple objects 10 in the container 15 will be described.
[0064] <First example> FIG. 7 is a schematic diagram showing an example of a stirring method. In this example, the control unit 60 controls the robot 2 so that the stirring member 28 moves from the edge side of the container 15 toward the center side in the stirring process. In other words, the control unit 60 controls the robot 2 so that the stirring operation is performed on the multiple objects 10 in the container 15 from the edge side of the container 15 toward the center side in the stirring process. The control unit 60 can specify the edge and center of the container 15 based on, for example, the second camera image obtained by the second camera 9. The control unit 60 controls the posture of the arm 20 based on the second camera image so that the stirring member 28 moves from the edge side of the container 15 toward the center side. The control unit 60 may specify the edge and center of the container 15 based on information about the container 15 previously stored in the storage unit 63.
[0065] The control unit 60 may control the robot 2 so that, for example, in the stirring process, the stirring member 28 moves in a plurality of directions 300 from the edge side of the container 15 toward the center side. In the example of FIG. 7, the plurality of directions 300 are set so as to surround the center of the container 15 in a substantially circular shape when the container 15 is viewed from above (in other words, from the opening side). The control unit 60 controls the attitude of the arm 20 so that the stirring member 28 moves along one direction 300, and then controls the attitude of the arm 20 so that the stirring member 28 moves along another direction 300. The control unit 60 repeats this process, and controls the attitude of the arm 20 for each of the plurality of directions 300 so that the stirring member 28 moves along the direction 300.
[0066] The control unit 60 may select a plurality of directions 300 one by one in a clockwise or counterclockwise direction when the container 15 is viewed from above as shown in Fig. 7, and control the posture of the arm 20 so that each time a direction 300 is selected, the stirring member 28 moves along the selected direction 300. Note that the order in which the plurality of directions 300 are selected is not limited to this. For example, the control unit 600 may select a direction 300, and then select a direction 300 opposite to the selected direction 300.
[0067] The number of the multiple directions 300 may be set according to, for example, the size of the container 15 when the container 15 is viewed from above. In other words, the number of the multiple directions 300 may be set according to the size of the opening of the container 15. The arrangement of the multiple directions 300 may be set according to the shape of the container 15 when the container 15 is viewed from above. In other words, the arrangement of the multiple directions 300 may be set according to the shape of the opening of the container 15. The number of the multiple directions 300 may also be set according to the size of the stirring member 28, etc. More specifically, the number may be set according to the area of the lower surface of the stirring member 28 facing the container 15 or the size of the outer edge, etc. The number of the multiple directions 300 may also be set according to the remaining number of the multiple objects 10, etc. The number of the multiple directions 300 may be changed for each timing of the stirring process.
[0068] As in the example of Fig. 7, when the shape of the container 15 is square when viewed from above, the multiple directions 300 may be set to be arranged in a substantially circular shape when the container 15 is viewed from above. Also, when the shape of the container 15 is square when viewed from above and the shape of the container 15 when viewed from above is larger than that of the example of Fig. 7, more than eight directions 300 (for example, 16 directions 300) may be set to be arranged in a substantially circular shape. Also, as in the example of Fig. 8, when the shape of the container 15 is rectangular when viewed from above, the multiple directions 300 may be set to be arranged in a substantially long rectangular shape or a substantially elliptical shape along the longitudinal direction of the container 15 when viewed from above.
[0069] The control unit 60 may control the robot 2 so that the mixing member 28 moves in only one direction 300 during the mixing process.
[0070] Thus, in this example, in the stirring process, the stirring member 28 moves from the edge side of the container 15 toward the center side. That is, in the stirring process, the multiple objects 10 in the container 15 are stirred from the edge side of the container 15 toward the center side. When the end effector 25 tries to hold the object 10 on the edge side of the container 15, the robot 2 interferes with the container 15, and the end effector 25 may not be able to hold the object 10 on the edge side of the container 15. On the other hand, the robot 2 is more likely to hold the object 10 located on the center side of the container 15. As in this example, in the stirring process, the stirring member 28 moves from the edge side of the container 15 toward the center side, thereby reducing the number of times the robot 2 cannot hold the object 10. In other words, by performing the stirring process as in this example, the robot 2 has an improved opportunity to hold the object 10, which reduces the number of interruptions to the work and shortens the work time.
[0071] Furthermore, when the stirring member 28 moves along the edge of the container 15, there is a possibility that the object 10 may be caught between the peripheral wall of the container 15 and the mounting part 280 of the stirring member 28. In the case where the robot system 1 is configured so that the robot 2 is forcibly stopped when a large torque is generated in the joint of the arm 20, if the object 10 is caught between the peripheral wall of the container 15 and the hard mounting part 280 and a large torque is generated in the joint of the arm 20, there is a possibility that the robot 2 may be forcibly stopped. In this example, since the stirring member 28 moves from the edge side to the center side of the container 15 in the stirring process, the object 10 is unlikely to be caught between the peripheral wall of the container 15 and the hard mounting part 280. Therefore, the robot 2 is unlikely to be forcibly stopped.
[0072] 7 and 8, when the stirring member 28 moves in a plurality of directions 300 from the edge side of the container 15 toward the center side in the stirring process, in other words, when stirring is performed along a plurality of directions 300 from the edge side of the container 15 toward the center side, the plurality of objects 10 in the container 15 can be sufficiently stirred. Therefore, the robot 2 can easily hold the objects 10 in the container 15.
[0073] <Second example> As in the above first example, when the stirring member 28 moves in multiple directions 300 from the edge side of the container 15 toward the center during the stirring process, multiple objects 10 may pile up in the center of the container 15. If too many objects 10 pile up in the center of the container 15, it may become difficult for the robot 2 to hold the objects 10 in the container 15.
[0074] Therefore, in this example, the control unit 60 controls the robot 2 so that, in the stirring process, the stirring member 28 moves in a plurality of directions 300, and then the stirring member 28 revolves around the center of the container 15. As a result, the stirring member 28 moves in a plurality of directions 300 from the edge side of the container 15 toward the center side, so that the plurality of objects 10 piled up in the center of the container 15 can be stirred so as to break down. In other words, stirring is performed in a plurality of directions 300 from the edge side of the container 15 toward the center side, so that the plurality of objects 10 gathered in the center of the container 15 can be stirred so as to break down. Therefore, the robot 2 can improve the chance of holding the objects 10 in the container 15. Hereinafter, the operation of the stirring member 28 revolving around the center of the container 15 may be referred to as a revolving stirring operation. Also, the operation of the stirring member 28 moving in a plurality of directions 300 from the edge side of the container 15 toward the center side may be referred to as a stirring operation toward the center.
[0075] The circular stirring operation may be performed in each stirring process, or may be performed each time the stirring process is performed multiple times. In other words, the circular stirring operation may be performed each time the above-mentioned step s4 is performed, or may be performed each time step s4 is performed multiple times. In addition, since a stirring operation toward the center may cause a plurality of objects 10 to pile up in the center of the container 15, when a circular stirring operation is performed, the height of the stirring member 28 relative to the container 15 may be set to be greater than when a stirring operation toward the center is performed.
[0076] 9 is a schematic diagram for explaining an example of a state in which the stirring member 28 revolves around the central part of the container 15. In the stirring process, the stirring member 28 moves, for example, in a first direction 311, then in a second direction 312, then in a third direction 313, and finally in a fourth direction 314, thereby making one revolution around the central part of the container 15.
[0077] The first direction 311, the second direction 312, the third direction 313, and the fourth direction 314 are set so as to surround the center of the container 15 when the container 15 is viewed from above. The first direction 311, the second direction 312, the third direction 313, and the fourth direction 314 are set so as to be parallel to the four sides of a rectangle formed by the outer shape of the container 15 when viewed from above, for example. In the example of Fig. 9, when the container 15 is viewed from above, the stirring member 28 moves so as to draw a rectangle around the center of the container 15.
[0078] The movement of the stirring member 28 when it revolves around the central part of the container 15 is not limited to the example in Fig. 9. For example, the stirring member 28 may start moving in the second direction 312, the third direction 313, or the fourth direction 314 among the first direction 311, the second direction 312, the third direction 313, and the fourth direction 314. Furthermore, for example, the stirring member 28 may revolve around the central part of the container 15 two or more times. Furthermore, when the container 15 is viewed from above, the stirring member 28 may move in a circular motion around the central part of the container 15.
[0079] <Third Example> When the robot 2 is performing a mixing process, it cannot hold and move the object 10 in the container 15, and therefore if it takes a long time to mix the multiple objects 10 in the container 15, the work efficiency of the robot 2 decreases. On the other hand, simply reducing the number of directions 300 in which the mixing member 28 moves in each mixing process may result in insufficient mixing of the multiple objects 10 in the container 15.
[0080] Therefore, in this example, in a stirring process that is executed multiple times, a stirring pattern consisting of multiple directions 300 in which the stirring member 28 moves in one stirring process is made different from a stirring pattern consisting of multiple directions 300 in which the stirring member 28 moves in another stirring process. This makes it possible to efficiently stir the multiple objects 10 in the container 15.
[0081] Hereinafter, the stirring pattern consisting of the multiple directions 300 in which the stirring member 28 moves in the stirring process may be referred to as a stirring pattern toward the center. In addition, in the eight directions 300 shown in Fig. 8, the direction 300 located in the 12 o'clock direction is referred to as direction 300a, the direction 300 located in the 3 o'clock direction is referred to as direction 300c, the direction 300 located in the 6 o'clock direction is referred to as direction 300e, and the direction 300 located in the 9 o'clock direction is referred to as direction 300g. The direction 300 between the direction 300a and the direction 300c is referred to as direction 300b, the direction 300 between the direction 300c and the direction 300e is referred to as direction 300d, the direction 300 between the direction 300e and the direction 300g is referred to as direction 300f, and the direction 300 between the direction 300g and the direction 300a is referred to as direction 300h.
[0082] In this example, there are multiple types of shuffling processes that have different shuffling patterns toward the center. Here, the shuffling patterns toward the center between two types of shuffling processes are different from each other, meaning that either the multiple directions 300 in one type of shuffling process include directions 300 different from all of the multiple directions 300 in the other type of shuffling process, or the multiple directions 300 in the other type of shuffling process include directions 300 different from all of the multiple directions 300 in the one type of shuffling process. Therefore, the shuffling patterns toward the center between two types of shuffling processes are different from each other, including the number of multiple directions 300 between the two types of shuffling processes. Also, the shuffling patterns toward the center between two types of shuffling processes are different from each other, including the case where some of the multiple directions 300 in one type of shuffling process include all of the multiple directions 300 in the other type of shuffling process. In addition, the difference in the mixing patterns toward the center between the two types of mixing processes includes a case where the number of multiple directions 300 is the same between the two types of mixing processes, but the arrangement of the multiple directions 300 is different between the two types of mixing processes.
[0083] For example, consider a first mixing process and a second mixing process in which the mixing patterns toward the center are different from each other. For example, assume that the multiple directions 300 in the first mixing process are the four directions 300a, 300c, 300e, and 300g shown in FIG. 10, and the multiple directions 300 in the second mixing process are the four directions 300b, 300d, 300f, and 300h shown in FIG. 11. In this case, the multiple directions 300 in the first mixing process include directions 300a, 300c, 300e, and 300g that are different from all of the multiple directions 300 in the second mixing process. Also, the multiple directions 300 in the second mixing process include directions 300b, 300d, 300f, and 300h that are different from all of the multiple directions 300 in the first mixing process. In this example, the number of the multiple directions 300 is the same between the first stirring process and the second stirring process, but the arrangement of the multiple directions 300 is different between the first stirring process and the second stirring process. Also, in this example, each of the multiple directions 300 in the first stirring process is different from each of the multiple directions 300 in the second stirring process. In other words, the multiple directions 300 in the first stirring process do not include the multiple directions 300 in the second stirring process. Also, each of the multiple directions 300 in the second stirring process is different from each of the multiple directions 300 in the first stirring process. In other words, the multiple directions 300 in the second stirring process do not include the multiple directions 300 in the first stirring process.
[0084] As another example, the multiple directions 300 in the first mixing process are the four directions 300a, 300c, 300e, and 300h shown in FIG. 12, and the multiple directions 300 in the second mixing process are the four directions 300b, 300d, 300f, and 300h shown in FIG. 11. In this case, the multiple directions 300 in the first mixing process include directions 300a, 300c, and 300e that are different from all of the multiple directions 300 in the second mixing process. Also, the multiple directions 300 in the second mixing process include directions 300b, 300d, and 300f that are different from all of the multiple directions 300 in the first mixing process. In this example, the number of multiple directions 300 is the same between the first mixing process and the second mixing process, but the arrangement of the multiple directions 300 is different between the first mixing process and the second mixing process.
[0085] As another example, the multiple directions 300 in the first mixing process are the five directions 300a, 300b, 300c, 300e, and 300g shown in FIG. 13, and the multiple directions 300 in the second mixing process are the four directions 300b, 300d, 300f, and 300h shown in FIG. 11. In this case, the multiple directions 300 in the first mixing process include directions 300a, 300c, 300e, and 300g that are different from all of the multiple directions 300 in the second mixing process. Also, the multiple directions 300 in the second mixing process include directions 300d, 300f, and 300h that are different from all of the multiple directions 300 in the first mixing process. In this example, the number of multiple directions 300 is different between the first mixing process and the second mixing process.
[0086] In addition, when there are a first stirring process, a second stirring process, and a third stirring process which have different stirring patterns toward the center, for example, the multiple directions 300 in the first stirring process may be the four directions 300a, 300c, 300e, and 300h shown in FIG. 12, the multiple directions 300 in the second stirring process may be the five directions 300a, 300b, 300c, 300e, and 300g shown in FIG. 13, and the multiple directions 300 in the third stirring process may be the four directions 300b, 300d, 300f, and 300h shown in FIG. 11.
[0087] The control unit 60 may control the robot 2 so that, for example, a plurality of types of stirring processes, each having a different stirring pattern toward the center, are repeatedly executed in sequence. For example, the control unit 60 may control the robot 2 so that the robot 2 alternately executes a first stirring process and a second stirring process. For example, in the process shown in FIG. 6, one of the first stirring process and the second stirring process may be executed in the odd-numbered step s4, and the other of the first stirring process and the second stirring process may be executed in the even-numbered step s4. For example, in the odd-numbered step s4, the stirring member 28 may move in the directions 300a, 300c, 300e, and 300g shown in FIG. 10, and in the even-numbered step s4, the stirring member 28 may move in the directions 300b, 300d, 300f, and 300h shown in FIG. 11. This allows the plurality of objects 10 in the container 15 to be efficiently stirred. That is, the plurality of objects 10 in the container 15 can be sufficiently mixed while reducing the time required for mixing the plurality of objects 10 in the container 15 during the operation of the robot 2. When each of the plurality of directions 300 in the first mixing process is different from each of the plurality of directions 300 in the second mixing process as in this example, the plurality of objects 10 in the container 15 can be mixed more efficiently.
[0088] In addition, the multiple types of stirring processes having different stirring patterns toward the center do not have to be repeatedly executed in sequence. For example, one of the first stirring process and the second stirring process may be executed multiple times in succession, and then the other of the first stirring process and the second stirring process may be executed at least once. Also, after the first stirring process, the second stirring process, and the third stirring process are executed in this order, the third stirring process, the second stirring process, and the first stirring process may be executed in this order.
[0089] <About the height of the mixing parts> Here, an example of a method for setting the height of the stirring member 28 relative to the container 15 during the stirring process will be described.
[0090] FIG. 14 is a schematic diagram for explaining an example of the height of the stirring member 28 set in the stirring process. As shown in FIG. 14, the control unit 60 may control the robot 2 in the stirring process so that the reference height position ref of the multiple objects 10 in the container 15 is located between the tip of the elongated member 281 and the attachment part 280. The reference height position ref can also be said to be a representative height position of the multiple objects 10 in the container 15. When the lengths of the multiple elongated members 281 vary, the reference height position ref in the stirring process may be located, for example, between the tip of the shortest elongated member 281 among the multiple elongated members 281 and the attachment part 280, or between the tip of the longest elongated member 281 among the multiple elongated members 281 and the attachment part 280.
[0091] The reference height position ref may be set based on, for example, an average height position of the multiple objects 10 in the container 15. In the above-mentioned step s4, the control unit 60 obtains the average height position of the multiple objects 10 in the container 15 based on, for example, the second camera image in which the multiple objects 10 in the container 15 are captured. Then, when the control unit 60 causes the robot 2 to execute a stirring operation toward the center, the control unit 60 sets, for example, the obtained average height position as the reference height position ref of the multiple objects 10 in the container 15. On the other hand, when the control unit 60 causes the robot 2 to execute a circular mixing operation, the control unit 60 sets a position that is a predetermined amount higher than the obtained average height position as the reference height position ref of the multiple objects 10 in the container 15. The control unit 60 controls the robot 2 so that the set reference height position ref is located between the tip of the elongated member 281 and the attachment unit 280. After that, the control unit 60 causes the robot 2 to move the stirring member 28 and cause the robot 2 to execute a stirring operation toward the center or a circular stirring operation.
[0092] When determining the average height position of multiple objects 10 in container 15, control unit 60 identifies an area in container 15 where multiple objects 10 exist (also referred to as an object existence area) based on, for example, a color image included in the second camera image. Then, control unit 60 determines the average value of the distances to each measurement point in the object existence area based on a distance image included in the second camera image. Control unit 60 may use the determined average value as the average height position of multiple objects 10 in container 15.
[0093] In this way, in the mixing process, the robot 2 is controlled so that the reference height position ref of the multiple objects 10 in the container 15 is located between the tip of the elongated member 281 and the attachment part 280, so that the relatively hard attachment part 280 is less likely to hit the objects 10 in the container 15. This makes it less likely that the objects 10 will be damaged in the mixing process.
[0094] Furthermore, if the robot system 1 is configured so that the robot 2 is forcibly stopped when a large torque is generated in the joint of the arm 20, the robot 2 may be forcibly stopped if the relatively hard attachment part 280 hits the target object 10. In this example, since the attachment part 280 is less likely to hit the target object 10 during the mixing process, the robot 2 is less likely to be forcibly stopped.
[0095] In the above example, since a single reference height position ref is set for the entire container 15, if there are areas within the container 15 where the objects 10 are piled high and areas where the objects 10 are piled low, there is a possibility that the hard mounting portion 280 will hit the objects 10 in the areas where the objects 10 are piled high.
[0096] Therefore, the control unit 60 may divide the inside of the container 15 into a plurality of partial regions 150, and set the reference height position ref individually for each partial region 150. In this case, the control unit 60 may control the robot 2 such that, for each partial region 150, when a plurality of objects 10 in the partial region 150 are mixed in the mixing process, the reference height position ref corresponding to the partial region 150 is located between the tip of the elongated member 281 and the attachment portion 280.
[0097] Fig. 15 is a schematic diagram showing an example of how the inside of container 15 is divided into a plurality of partial regions 150. In the example of Fig. 15, the inside of container 15 is divided evenly into nine partial regions 150 in a matrix shape. Hereinafter, the partial region 150 of interest (in other words, the partial region 150 to be described) may be referred to as the partial region of interest 150.
[0098] The control unit 60 obtains the average height position of the multiple objects 10 in the attention partial region 150 based on the second camera image in the same manner as described above. Then, the control unit 60 sets the reference height position ref of the multiple objects 10 in the attention partial region 150 based on the obtained average height position. For example, the control unit 60 sets the obtained average height position as the reference height position ref of the multiple objects 10 in the attention partial region 150. The control unit 60 sets the reference height position ref corresponding to each partial region 150 in the same manner. In this example, the height of the stirring member 28 is set in the same manner regardless of whether a stirring operation toward the center or a circular stirring operation is performed.
[0099] During the stirring process, for example, when the central axis 280a along the longitudinal direction of the mounting portion 280 is located on the attention portion region 150 when viewed from above the container 15, the control unit 60 controls the robot 2 so that the reference height positions ref of the multiple targets 10 in the attention portion region 150 are located between the tips of the multiple elongated members 281 and the mounting portion 280.
[0100] For example, as shown in Fig. 16, consider a case in which the stirring member 28 moves from the partial region 150a to the partial region 150b when viewed from above the container 15 during the stirring process. In this case, in the stirring process, the robot 2 is controlled so that when the central axis 280a is located on the partial region 150a when viewed from above the container 15, the reference height position ref of the multiple objects 10 in the partial region 150a is located between the tip of the elongated member 281 and the attachment part 280. Then, in the stirring process, when the central axis 280a is located on the partial region 150b when viewed from above the container 15, the robot 2 is controlled so that the reference height position ref of the multiple objects 10 in the partial region 150b is located between the tip of the elongated member 281 and the attachment part 280. In addition, when the central axis 280a is located on one of the multiple partial regions 150a when viewed from above the container 15, the robot 2 may be controlled so that the reference height position ref corresponding to any one of the multiple partial regions 150a is located between the tip of the elongated member 281 and the mounting portion 280.
[0101] In this manner, by setting the reference height position ref for each of the plurality of partial regions 150 individually, the hard attachment portion 280 is less likely to come into contact with the target object 10 during the mixing process.
[0102] The method of dividing the inside of the container 15 into a plurality of partial regions 150 is not limited to the above example. For example, the inside of the container 15 may be divided into less than nine partial regions 150, or into ten or more partial regions 150. Moreover, the inside of the container 15 does not have to be divided into a matrix.
[0103] <Other examples of execution timing of the stirring process> The control unit 60 may cause the robot 2 to execute the stirring process depending on the number of times the robot 2 has succeeded in holding the object 10 in the container 15 (also referred to as the number of successful holding attempts). Fig. 17 is a flowchart showing an example of the operation of the control unit 60 in this case. In the example of Fig. 17, the control unit 60 includes a success counter that counts the number of successful holding attempts.
[0104] When the robot 2 starts working, in step s11, the control unit 60 resets the success counter to zero. Next, the control unit 60 executes the above-mentioned step s1. If the result of step s1 is YES, the control unit 60 executes the above-mentioned step s2. If the result of step s2 is YES, step s12 is executed. On the other hand, if the result of step s2 is NO, a mixing process is executed in step s4.
[0105] In step s12, the control unit 60 determines whether the value of the success counter is equal to or greater than a first threshold value. The first threshold value is, for example, an integer equal to or greater than 1. If the determination in step s12 is YES, step s4 is executed. That is, when the number of successful holding times is equal to or greater than the first threshold value, a mixing process is executed. When the mixing process is executed in step s4, in step s15, the control unit 60 resets the success counter and sets the value of the success counter to zero.
[0106] If the result of the determination in step s12 is NO, the above-mentioned step s3 is executed. After step s3, step s13 is executed. In step s13, the control unit 60 determines whether the robot 2 has succeeded in holding the object 10 in the container 15. If the result of the determination in step s13 is YES, the control unit 60 counts up the success counter in step s14, and increments the value of the success counter by one. As a result, if the robot 2 succeeds in holding the object 10 as a result of the robot 2 attempting to hold the object 10 in the container 15 in step s3, the value of the success counter is incremented by one. If the robot 2 succeeds in holding the object 10, the control unit 60 controls the attitude of the arm 20 so that the object 10 held by the holder 26 moves from the source container 15 to the destination container 16. After that, after the object 10 is placed in the destination container 16, the holder 26 is again positioned above the container 15. Then, step s1 is executed again. Thereafter, the control unit 60 operates in the same manner.
[0107] On the other hand, if the result of the determination in step s13 is NO, that is, if the robot 2 fails to hold the object 10 in the container 15 as a result of the robot 2 attempting to hold the object 10 in the container 15 in step s3, step s1 is executed again. Thereafter, the control unit 60 operates in the same manner.
[0108] 17, the stirring process is executed according to the number of successful holding attempts. If the robot 2 succeeds in holding the object 10, the arrangement of the objects 10 in the container 15 changes, and therefore it may become difficult for the robot 2 to hold the objects 10 in the container 15. As in this example, by executing the stirring process according to the number of successful holding attempts, it becomes easier for the robot 2 to hold the objects 10 in the container 15.
[0109] Note that in step s3, if the robot 2 initially succeeds in holding the object 10, but drops the object 10 while the robot 2 is moving the object 10 toward the destination container 16, the control unit 60 may determine that the robot 2 has failed to hold the object 10. In this case, step s14 is not executed, and step s1 is executed again. The control unit 60 can identify that the robot 2 has dropped the object 10, based on the end effector state information output from the effector sensor unit 55.
[0110] The control unit 60 may cause the robot 2 to execute the stirring process depending on the number of times the robot 2 fails to hold the object 10 in the container 15 (also referred to as the number of holding failures). Fig. 18 is a flowchart showing an example of the operation of the control unit 60 in this case. In the example of Fig. 18, the control unit 60 includes a failure counter that counts the number of holding failures.
[0111] When the robot 2 starts working, in step s21, the control unit 60 resets the failure counter to zero. Next, the control unit 60 executes the above-mentioned step s1. If the result of step s1 is YES, the control unit 60 executes the above-mentioned step s2. If the result of step s2 is YES, step s22 is executed. On the other hand, if the result of step s2 is NO, a mixing process is executed in step s4.
[0112] In step s22, the control unit 60 determines whether the value of the failure counter is equal to or greater than a second threshold value. The second threshold value is, for example, an integer equal to or greater than 1. The second threshold value may be the same as the first threshold value, or may be greater than or less than the first threshold value. If the determination in step s22 is YES, step s4 is executed. That is, when the number of holding failures is equal to or greater than the second threshold value, a mixing process is executed. When the mixing process is executed in step s4, in step s25, the control unit 60 resets the failure counter and sets the value of the failure counter to zero.
[0113] If the determination in step s22 is NO, step s3 is executed. After step s3, step s23 is executed. In step s23, the control unit 60 determines whether the robot 2 has failed to hold the object 10 in the container 15. If the determination in step s23 is YES, the control unit 60 counts up the failure counter in step s24, and increments the value of the failure counter by one. As a result, if the robot 2 fails to hold the object 10 as a result of attempting to hold the object 10 in the container 15 in step s3, the value of the failure counter is incremented by one. After step s24, step s1 is executed, and thereafter, the control unit 60 operates in the same manner.
[0114] On the other hand, if the determination in step s23 is NO, that is, if the robot 2 attempts to hold the object 10 in the container 15 in step s3 and the robot 2 succeeds in holding the object 10, the robot 2 moves the object 10 it is holding to the destination container 16 and places it in the destination container 16. Thereafter, the holding unit 26 of the end effector 25 is again positioned above the container 15, and then step s1 is executed. Thereafter, the control unit 60 operates in the same manner.
[0115] In this way, by executing the stirring process according to the number of holding failures, the robot 2 becomes more likely to hold the object 10 in the container 15. Note that, in step s3, if the robot 2 initially succeeds in holding the object 10, but the robot 2 drops the object 10 while moving the object 10 toward the destination container 16, the control unit 60 may determine that the robot 2 has failed to hold the object. In this case, step s1 is executed again after step s24 is executed.
[0116] The control unit 60 may cause the robot 2 to execute the stirring process according to the elapsed time of the work of the robot 2 (also referred to as the elapsed work time). FIG. 19 is a flowchart showing an example of the operation of the control unit 60 in this case. In the example of FIG. 19, the control unit 60 has a time counter that counts time. The value of the time counter is incremented by 1, for example, every time a predetermined time elapses. In the example of FIG. 19, the robot 2 periodically and repeatedly executes the stirring process while performing the work.
[0117] When the robot 2 starts working, in step s31, the control unit 60 resets the time counter to zero. Next, the control unit 60 executes the above-mentioned step s1. If the result of step s1 is YES, the control unit 60 executes the above-mentioned step s2. If the result of step s2 is YES, step s32 is executed. On the other hand, if the result of step s2 is NO, a mixing process is executed in step s4.
[0118] In step s32, the control unit 60 determines whether the value of the time counter is equal to or greater than a third threshold value. The third threshold value is, for example, an integer equal to or greater than 1. The third threshold value may be the same as the first threshold value, or may be greater than or smaller than the first threshold value. The third threshold value may be the same as the second threshold value, or may be greater than or smaller than the second threshold value.
[0119] If the determination in step s32 is YES, step s4 is executed. When the stirring process is executed in step s4, the control unit 60 resets the time counter to set the value of the time counter to zero in step s35.
[0120] If the result of step s32 is NO, step s3 is executed. If the robot 2 fails to hold the object 10 as a result of attempting to hold the object 10 in the container 15 in step s3, step s1 is executed again. Thereafter, the control unit 60 operates in the same manner. On the other hand, if the robot 2 succeeds in holding the object 10 as a result of attempting to hold the object 10 in the container 15 in step s3, the robot 2 moves the held object 10 to the destination container 16 and places it in the destination container 16. Thereafter, step s1 is executed after the holding unit 26 of the end effector 25 is again positioned above the container 15. Thereafter, the control unit 60 operates in the same manner.
[0121] In this way, by executing the mixing process according to the elapsed work time, the robot 2 can easily hold the object 10 in the container 15.
[0122] The control unit 60 may cause the robot 2 to execute the stirring process in accordance with at least two of the number of holding successes, the number of holding failures, and the elapsed work time. Fig. 20 is a flowchart showing an example of the operation of the control unit 60 when the control unit 60 causes the robot 2 to execute the stirring process in accordance with the number of holding successes, the number of holding failures, and the elapsed work time.
[0123] When the robot 2 starts working, in step s41, the control unit 60 resets the success counter, failure counter, and time counter to zero. Next, the control unit 60 executes the above-mentioned step s1. If the result of step s1 is YES, the control unit 60 executes the above-mentioned step s2. If the result of step s2 is YES, step s42 is executed. On the other hand, if the result of step s2 is NO, a mixing process is executed in step s4.
[0124] In step s42, the control unit 60 judges whether the value of the success counter is equal to or greater than the first threshold value. If the judgment in step s42 is YES, step s4 is executed. When the mixing process is executed in step s4, in step s48, the control unit 60 resets the success counter, the failure counter, and the time counter to set the values of each counter to zero. After step s48, step s1 is executed again, and thereafter, the control unit 60 operates in the same manner.
[0125] If the result of step s42 is NO, then in step s43, the control unit 60 determines whether the value of the failure counter is equal to or greater than the second threshold value. If the result of step s43 is YES, then step s4 is executed. Thereafter, steps s48 and s1 are executed in sequence, and thereafter, the control unit 60 operates in the same manner.
[0126] If the result of the determination in step s43 is NO, then in step s44, the control unit 60 determines whether the value of the time counter is equal to or greater than the third threshold value. If the result of the determination in step s44 is YES, then step s4 is executed. Thereafter, steps s48 and s1 are executed in sequence, and thereafter, the control unit 60 operates in the same manner.
[0127] If the determination in step s44 is NO, step s3 is executed. After step s3, step s45 is executed. In step s45, the control unit 60 determines whether the robot 2 has succeeded in holding the object 10 in the container 15. If the determination in step s45 is YES, the control unit 60 counts up the success counter in step s46, incrementing the value of the success counter by one. After step s46, the robot 2 moves the held object 10 to the destination container 16 and places it there. Thereafter, the holding unit 26 of the end effector 25 is again positioned above the container 15, and then step s1 is executed. Thereafter, the control unit 60 operates in the same manner.
[0128] On the other hand, if the result of the determination in step s45 is NO, that is, if it is determined that the robot 2 has failed to hold the target object 10 in the container 15, the control unit 60 counts up the failure counter in step s47 to increment the value of the failure counter by 1. After step s47, step s1 is executed again, and thereafter, the control unit 60 operates in the same manner.
[0129] In the above example, steps s42, s43, and s44 are executed in this order, but the order of execution of steps s42, s43, and s44 may be interchanged. For example, steps s43, s44, and s42 may be executed in this order, or steps s44, s42, and s43 may be executed in this order.
[0130] When the control unit 60 causes the robot 2 to execute the stirring process according to the number of holding successes and the number of holding failures, the flowchart shown in Fig. 20 may be modified as follows. For example, in step s41, the success counter and the failure counter are initialized, and if the result of step s43 is NO, step s44 is not executed and step s3 is executed. Then, in step s48, the success counter and the failure counter are reset.
[0131] Furthermore, when the control unit 60 causes the robot 2 to execute the mixing process according to the number of successful holding attempts and the elapsed time of the operation, the flowchart shown in Fig. 20 may be modified as follows. For example, in step s41, the success counter and the time counter are initialized, and if the determination in step s42 is NO, step s43 is not executed and step s44 is executed. Then, if the determination in step s45 is NO, step s47 is not executed and step s1 is executed. Also, in step s48, the success counter and the time counter are reset.
[0132] Furthermore, when the control unit 60 causes the robot 2 to execute the mixing process in accordance with the number of holding failures and the elapsed work time, the flowchart shown in Fig. 20 may be modified as follows. For example, in step s41, the failure counter and the time counter are initialized, and if a YES decision is made in step s2, step s43 is executed without executing step s42. Then, if a YES decision is made in step s45, step s1 is executed without executing step s46. Also, in step s48, the failure counter and the time counter are reset.
[0133] In the above examples of FIGS. 17 to 20, if the determination in step s2 is NO, the mixing process is executed in step s4, but the work of the robot 2 may end without executing the mixing process.
[0134] The positional relationship between the member consisting of the holding portion 26 and the mounting portion 27 and the stirring member 28 is not limited to the above example. For example, unlike the examples of Figs. 2 and 3, the longitudinal direction of the mounting portion 27 and the longitudinal direction of the mounting portion 280 of the stirring member 28 may not be parallel to each other. For example, the longitudinal direction of the mounting portion 27 and the longitudinal direction of the mounting portion 280 of the stirring member 28 may be perpendicular to each other. As in the case where the longitudinal direction of the mounting portion 27 and the longitudinal direction of the mounting portion 280 are perpendicular to each other, when the holding portion 26 in the exposed state holds the object 10, the stirring member 28 in the exposed state does not come into contact with the object 10, and when the stirring member 28 in the exposed state stirs the multiple objects 10 in the container 15, the holding portion 26 and the stirring member 28 may always be exposed without being housed in the housing 29.
[0135] In the above example, the stirring member 28 is provided separately from the holding portion 26, but the holding portion 26 may be used as the stirring member 28 for stirring multiple objects 10 in the container 15, or the holding portion 26 and the mounting portion 27 may be used as the stirring member 28 for stirring multiple objects 10 in the container 15.
[0136] The robot system 1 may not be provided with an arm control device 3, and the robot control device 6 may perform the same function as the arm control device 3. That is, the robot control device 6 and the arm control device 3 may be configured as a single control device. Also, the robot system 1 may not be provided with an effector control device 4, and the robot control device 6 may perform the same function as the effector control device 4. That is, the robot control device 6 and the effector control device 4 may be configured as a single control device. Also, the robot system 1 may not be provided with an arm control device 3 and an effector control device 4, and the robot control device 6 may perform the same function as the arm control device 3 and the effector control device 4. That is, the robot control device 6, the arm control device 3 and the effector control device 4 may be configured as a single control device.
[0137] As described above, the robot control device, the robot, and the robot system including them have been described in detail, but the above description is merely illustrative in all respects, and this disclosure is not limited thereto. Furthermore, the above-described various examples can be combined and applied as long as they are not mutually contradictory. It is understood that countless examples not illustrated can be envisioned without departing from the scope of this disclosure.
[0138] For example, in the above example, the end effector has the holding portion 26 and the stirring member 28, but the holding portion 26 may function as the stirring member 28. In this case, the stirring member 28 may be read as the holding portion 26 as appropriate.
[0139] This disclosure includes the following:
[0140] In one embodiment, (1) the robot control device includes a control unit that controls a robot that performs work on a plurality of objects, and the control unit operates the robot in a manner that breaks down a plurality of objects that are stacked higher than the others.
[0141] (2) In the robot control device of (1) above, the control unit causes the robot to perform an orbital motion around a plurality of objects that are piled higher than others, thereby breaking down the plurality of objects.
[0142] (3) In the robot control device of (1) or (2) above, the control unit causes the robot to execute a first operation of moving the multiple objects so that the multiple objects are stacked on top of each other, and causes the robot to execute a second operation of breaking down the multiple objects that are stacked higher than the others.
[0143] (4) In the robot control device according to (3) above, the control unit causes the second operation to be executed after performing a plurality of the first operations.
[0144] (5) A robot control device according to (3) or (4) above, wherein the control unit causes the robot to perform a holding task of the plurality of objects, and causes the robot to perform the first action depending on the number of times the robot has successfully held the plurality of objects.
[0145] (6) A robot control device according to any one of (3) to (5) above, wherein the control unit causes the robot to perform a holding task of the plurality of objects, and causes the robot to perform the first action depending on the number of times the robot fails to hold the plurality of objects.
[0146] (7) A robot control device according to any one of (3) to (6) above, wherein the control unit causes the robot to perform a holding task of the plurality of objects, and when there is no object that the robot can hold, causes the robot to perform the first action.
[0147] (8) A control method for a robot performing work on a plurality of objects, the control method controlling the robot so as to break down a plurality of objects that are piled higher than others.
[0148] (9) The program is a program for causing a computer device to function as the control unit provided in any one of the robot control devices (1) to (7) above.
[0149] (10) The robot is a robot controlled by any one of the robot control devices described above in (1) to (7).
[0150] (11) A robot system includes a robot control device according to any one of (1) to (7) above, and a robot controlled by the robot control device. [Explanation of symbols]
[0151] 2. Robot 6 Robot control device 10. Retention Objects 15 Container 28 Stirring member 60 Control section 150 subregion 280 Mounting part 281 Slender Members 630 Programs
Claims
1. A control unit is provided for controlling a robot that performs operations on a plurality of objects, The control unit causes the robot to execute a first operation of moving the plurality of objects so that the objects are stacked on top of each other, and causes the robot to execute a second operation of breaking down the plurality of objects that are stacked higher than the others. Robot control device.
2. The robot control device according to claim 1 , The control unit causes the robot to perform a circling motion for a plurality of objects that are piled up higher than others, thereby breaking down the plurality of objects. Robot control device.
3. The robot control device according to claim 1 , The control unit executes the second operation after performing a plurality of the first operations.
4. The robot control device according to claim 1 , The control unit causes the robot to perform a holding task of the plurality of objects, and causes the robot to perform the first action depending on the number of times the robot succeeds in holding the plurality of objects.
5. The robot control device according to claim 1 , The control unit causes the robot to perform a holding task of the plurality of objects, and causes the robot to perform the first action depending on the number of times the robot fails to hold the plurality of objects.
6. The robot control device according to claim 1 , The control unit causes the robot to perform a holding task of the plurality of objects, and when there is no object that the robot can hold, causes the robot to perform the first action.
7. A method for controlling a robot that performs tasks on a plurality of objects, comprising the steps of: A control method comprising: causing a robot to perform a first operation of moving a plurality of objects so that the objects are stacked on top of each other; and causing the robot to perform a second operation of breaking down the plurality of objects that are stacked higher than the others.
8. A computer device, A program for causing the robot control device according to claim 1 to function as the control unit.
9. A robot controlled by the robot control device according to any one of claims 1 to 6.
10. A robot control device according to any one of claims 1 to 6, A robot system comprising: a robot controlled by the robot control device.
Citation Information
Patent Citations
Article picking-up device
JP1999300670A
Target object holding area extraction apparatus and robot system using the same
JP2011093058A
Robot device, workpiece taking-out system, and workpiece taking-out method
JP2011115930A
Information processor, information processing method, and program
JP2016097481A
Robot system, control method and program for the same, and system
JP2022063707A