Processing system and processing method
By introducing controller generation object placement conditions and operating procedures into the robot system, the failure problem caused by improper preparation of the robot is solved, and the reliability and efficiency of biomedical sample processing are improved.
Patent Information
- Application Number
- JP2021005234
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2021-01-15
- Publication Date
- 2025-01-24
- Estimated Expiration
- 2041-01-15
AI Technical Summary
In the prior art, robots have frequent failures due to improper preparation, especially in the sample processing process in the field of biomedical science, and the problem of improper preparation caused by human error is particularly prominent.
By introducing a controller into the robot system, object placement conditions and operating procedures are generated to ensure that multiple locations are properly prepared before the operation begins. The controller generates object placement conditions and operating procedures, uses work command information to ensure the accuracy of preparation by displaying images and detecting sensors.
It effectively suppresses robot failures caused by improper preparation, improves operation reliability and efficiency, and reduces the impact of human errors.
Smart Images

Figure 0007621123000001 
Figure 0007621123000002 
Figure 0007621123000003
Abstract
Description
[Technical field]
[0001] The present disclosure relates to a processing system and a processing method. [Background technology]
[0002] Patent Document 1 discloses a processing system including a robot, a robot control device, and an operation command generating device. The robot control device controls a control object including the robot. The operation command generating device generates an operation command, which is a collection of jobs for controlling the control object, based on a plurality of processing symbols each representing a process for a container containing the process object and whose processing order has been determined. [Prior art documents] [Patent documents]
[0003] [Patent Document 1] Patent No. 6399214 Summary of the Invention [Problem to be solved by the invention]
[0004] The present disclosure provides a processing system that is effective in suppressing operational defects of a robot caused by inappropriate advance preparation. [Means for solving the problem]
[0005] A processing system according to one aspect of the present disclosure includes a robot, an operation control unit that causes the robot to execute a series of operations, and a placement condition generation unit that generates object placement conditions for multiple positions in the robot's work field before the start of the series of operations based on the content of multiple tasks executed by the robot's series of operations.
[0006] A processing method according to another aspect of the present disclosure includes generating object placement conditions for multiple positions in a work field of the robot before the start of a series of operations based on the content of multiple tasks performed by the robot through a series of operations, and causing the robot to perform the series of operations. Effect of the Invention
[0007] According to the present disclosure, it is possible to provide a processing system that is effective in suppressing defective robot work caused by inappropriate advance preparation. [Brief description of the drawings]
[0008] [Figure 1] FIG. 1 is a schematic diagram illustrating a configuration of a processing system. [Diagram 2] FIG. 2 is a schematic diagram illustrating a configuration of a robot. [Diagram 3] FIG. 2 is a block diagram illustrating an example of a functional configuration of a controller. [Figure 4] FIG. 13 is a schematic diagram illustrating a protocol input screen. [Diagram 5] 13 is a schematic diagram illustrating a condition display image. FIG. [Figure 6] 13A and 13B are schematic diagrams showing modified examples of the condition display image. [Figure 7] FIG. 13 is a schematic diagram illustrating a result display image. [Figure 8] FIG. 13 is a schematic diagram showing a modified example of the result display image. [Figure 9] FIG. 2 is a block diagram illustrating a hardware configuration of a controller. [Figure 10] 1 is a flowchart illustrating a program generation procedure. [Figure 11] 13 is a flowchart illustrating a procedure for displaying an object placement condition. [Figure 12] 13 is a flow chart illustrating a placement check procedure. [Figure 13] 11 is a flowchart illustrating an operation control procedure. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0009] Hereinafter, the embodiments will be described in detail with reference to the drawings. In the description, the same elements or elements having the same functions are denoted by the same reference numerals, and duplicated description will be omitted.
[0010] [Processing System] The processing system 1 shown in Fig. 1 is a system that causes a robot to execute at least a part of processing in the biomedical field. Specific examples of processing in the biomedical field include cell culture, pharmaceutical preparation, and pre-processing of specimens in specimen analysis such as genome analysis. The processing system 1 includes a robot system 2 and one or more peripheral devices 3.
[0011] The robot system 2 includes a robot 10 and a controller 100. The robot 10 executes a series of operations in the above process. The series of operations includes a plurality of tasks on one or more work target objects. The work target object is an object that can be transported by the robot 10 and is the subject of work by any of the plurality of tasks. Specific examples of the work target object include containers (e.g., microtubes or dishes) that contain specimens, reagents, etc. The controller 100 causes the robot 10 to execute the series of operations in response to an operation start command. A specific configuration of the robot system 2 will be described later.
[0012] The one or more peripheral devices 3 are devices used by the robot 10 in the above series of operations, and are arranged in the work field of the robot 10. The processing system 1 may include a plurality of peripheral devices 3 arranged in the work field of the robot 10. As examples of the plurality of peripheral devices 3, the processing system 1 includes a work table 3A, an incubator 3B, a freezer 3C, a mixer 3E, a pipette 3F, a field sensor 3G, a waste bottle 3H, a dish storage area 3J, and a rack 3K.
[0013] The working table 3A supports at least a part of the other peripheral devices 3. The incubator 3B is a device that keeps the temperature, humidity, and carbon dioxide concentration in the culture space constant so as to promote cell culture in a container (e.g., a dish) placed in the culture space. As an example, the incubator 3B is placed around the working table 3A. The freezer 3C is a device that freezes and stores samples, reagents, etc. As an example, the freezer 3C is placed around the working table 3A.
[0014] The centrifuge 3D is a device that applies centrifugal force to a container (e.g., a microtube) containing a processing object such as a specimen or a reagent, to separate the object. As an example, the centrifuge 3D is arranged around the work table 3A. The mixer 3E is a device that moves a container (e.g., a microtube) containing a processing object such as a specimen or a reagent, to mix the object. As an example, the mixer 3E is arranged on the work table 3A. A specific example of the mixer 3E is a vortex mixer. The pipette 3F is an electric pipette that sucks up and discharges an object. The processing system 1 may include a plurality of pipettes 3F. As an example, the plurality of pipettes 3F are arranged on the work table 3A.
[0015] The waste bottle 3H is a collection container for objects to be worked on that are no longer needed. As an example, the waste bottle 3H is placed on the work table 3A. The dish placement 3J is a support stand on which dishes are temporarily placed for the injection of samples, reagents, etc. The processing system 1 may be equipped with a plurality of dish placements 3J. As an example, the dish placement 3J is placed on the work table 3A. The rack 3K is a rack that temporarily holds containers (e.g., microtubes). The processing system 1 may be equipped with a plurality of racks 3K. As an example, the rack 3K is placed on the work table 3A.
[0016] [Robot System] Next, a specific example of the configuration of the robot system 2 will be described. As described above, the robot system 2 includes the robot 10 and the controller 100. For example, the robot 10 is a dual-arm multi-joint robot, and includes a torso 11, a chest 12, a left arm 20, a right arm 30, an actuator M01, actuators M11, M12, M13, M14, M15, M16, and M17, and actuators M21, M22, M23, M24, M25, M26, and M27, as shown in FIG.
[0017] The torso 11 is fixed to the periphery of the work table 3A. The chest 12 is provided on the torso 11 so as to be rotatable around a vertical axis Ax01. The chest 12 has a left end 12a and a right end 12b aligned horizontally. Hereinafter, the direction in which the left end 12a and the right end 12b are aligned is referred to as the left-right direction. The left arm 20 and the right arm 30 are attached to the left end 12a and the right end 12b of the chest 12, respectively. Both the left arm 20 and the right arm 30 are multi-joint arms with seven degrees of freedom.
[0018] The left arm 20 has a shoulder rotation part 21, a first arm 22, a second arm 23, a wrist part 24, a tip part 25, and a hand 26. The shoulder rotation part 21 is attached to the left end part 12a so as to be rotatable around an axis Ax11 along the left-right direction.
[0019] The first arm 22 is attached to the shoulder pivot part 21 so as to be rotatable around an axis Ax12 that intersects (e.g., perpendicular to) the axis Ax11. The intersection includes a twisted relationship, such as a so-called three-dimensional intersection. The same applies below. The first arm 22 extends along an axis Ax13 that intersects (e.g., perpendicular to) the axis Ax12, and has an arm base 22a and an arm pivot part 22b that are arranged in order from the shoulder pivot part 21. The arm base 22a is connected to the shoulder pivot part 21 so as to be rotatable around the axis Ax12. The arm pivot part 22b is connected to an end of the arm base 22a so as to be rotatable around the axis Ax13.
[0020] The second arm 23 is connected to an end of the arm pivot portion 22b (an end of the first arm 22) so as to be rotatable around an axis Ax14 intersecting (for example, perpendicular to) the axis Ax13. The second arm 23 extends along an axis Ax15 intersecting (for example, perpendicular to) the axis Ax14, and has an arm base 23a and an arm pivot portion 23b arranged in order from the end of the first arm 22. The arm base 23a is connected to an end of the arm pivot portion 22b so as to be rotatable around the axis Ax14. The arm pivot portion 23b is connected to an end of the arm base 23a so as to be rotatable around the axis Ax15.
[0021] The wrist 24 is connected to the end of the arm rotation part 23b (the end of the second arm 23) so as to be rotatable around an axis Ax16 intersecting (e.g., perpendicular to) the axis Ax15. The wrist 24 extends along an axis Ax17 intersecting (e.g., perpendicular to) the axis Ax16. The tip 25 is provided at the end of the wrist 24 so as to be rotatable around the axis Ax17. The hand 26 is a gripping tool capable of gripping a work object or a pipette 3F, etc., and is provided at the tip 25.
[0022] Thus, the left arm 20 has seven joints: a joint J11 between the chest 12 and the shoulder pivot part 21, a joint J12 between the shoulder pivot part 21 and the arm base 22a, a joint J13 between the arm base 22a and the arm pivot part 22b, a joint J14 between the arm pivot part 22b and the arm base 23a, a joint J15 between the arm base 23a and the arm pivot part 23b, a joint J16 between the arm pivot part 23b and the wrist 24, and a joint J17 between the wrist 24 and the tip 25.
[0023] The right arm 30 has a shoulder rotation part 31, a first arm 32, a second arm 33, a wrist part 34, a tip part 35, and a hand 36. The shoulder rotation part 31 is attached to the right end part 12b so as to be rotatable about an axis Ax21 along the left-right direction.
[0024] The first arm 32 is attached to the shoulder pivot part 31 so as to be rotatable around an axis Ax22 that intersects (e.g., perpendicular to) the axis Ax21. The first arm 32 extends along an axis Ax23 that intersects (e.g., perpendicular to) the axis Ax22, and has an arm base 32a and an arm pivot part 32b that are arranged in order from the shoulder pivot part 31. The arm base 32a is connected to the shoulder pivot part 31 so as to be rotatable around the axis Ax22. The arm pivot part 32b is connected to an end of the arm base 32a so as to be rotatable around the axis Ax23.
[0025] The second arm 33 is connected to an end of the arm pivot part 32b (an end of the first arm 32) so as to be rotatable around an axis Ax24 intersecting (for example, perpendicular to) the axis Ax23. The second arm 33 extends along an axis Ax25 intersecting (for example, perpendicular to) the axis Ax24, and has an arm base 33a and an arm pivot part 33b arranged in order from the end of the first arm 32. The arm base 33a is connected to an end of the arm pivot part 32b so as to be rotatable around the axis Ax24. The arm pivot part 33b is connected to an end of the arm base 33a so as to be rotatable around the axis Ax25.
[0026] The wrist 34 is connected to the end of the arm pivot part 33b (the end of the second arm 33) so as to be rotatable around an axis Ax26 intersecting (e.g., perpendicular to) the axis Ax25. The wrist 34 extends along an axis Ax27 intersecting (e.g., perpendicular to) the axis Ax26. The tip 35 is provided at the end of the wrist 34 so as to be rotatable around the axis Ax27. The hand 36 is a gripping tool capable of gripping a work object or a pipette 3F, etc., and is provided at the tip 35.
[0027] Thus, the right arm 30, like the left arm 20, has seven joints: a joint J21 between the chest 12 and the shoulder pivot part 31, a joint J22 between the shoulder pivot part 31 and the arm base 32a, a joint J23 between the arm base 32a and the arm pivot part 32b, a joint J24 between the arm pivot part 32b and the arm base 33a, a joint J25 between the arm base 33a and the arm pivot part 33b, a joint J26 between the arm pivot part 33b and the wrist 34, and a joint J27 between the wrist 34 and the tip 35.
[0028] The actuator M01 rotates the chest 12 around the axis Ax01, for example, by power generated by an electric motor. The actuators M11, M12, M13, M14, M15, M16, and M17 drive the joints J11, J12, J13, J14, J15, J16, and J17 of the left arm 20, respectively. For example, the actuator M11 rotates the shoulder pivot unit 21 around the axis Ax11, for example, by power generated by an electric motor. For example, the actuator M12 rotates the arm base 22a around the axis Ax12, for example, by power generated by an electric motor. For example, the actuator M13 rotates the arm pivot unit 22b around the axis Ax13, for example, by power generated by an electric motor. For example, the actuator M14 rotates the arm base 23a around the axis Ax14, for example, by power generated by an electric motor. For example, the actuator M15 rotates the arm rotating part 23b about the axis Ax15 by power generated by, for example, an electric motor. For example, the actuator M16 rotates the wrist part 24 about the axis Ax16 by power generated by, for example, an electric motor. For example, the actuator M17 rotates the tip part 25 about the axis Ax17 by power generated by, for example, an electric motor.
[0029] The actuators M21, M22, M23, M24, M25, M26, and M27 drive the joints J21, J22, J23, J24, J25, J26, and J27 of the right arm 30, respectively. For example, the actuator M21 rotates the shoulder pivot unit 31 around the axis Ax21, for example, by power generated by an electric motor. For example, the actuator M22 rotates the arm base 32a around the axis Ax22, for example, by power generated by an electric motor. For example, the actuator M23 rotates the arm pivot unit 32b around the axis Ax23, for example, by power generated by an electric motor. For example, the actuator M24 rotates the arm base 33a around the axis Ax24, for example, by power generated by an electric motor. For example, the actuator M25 rotates the arm pivot unit 33b around the axis Ax25, for example, by power generated by an electric motor. For example, the actuator M26 rotates the wrist portion 34 about the axis line Ax26 by power generated by, for example, an electric motor. For example, the actuator M27 rotates the tip portion 35 about the axis line Ax27 by power generated by, for example, an electric motor.
[0030] The configuration of the robot 10 shown above is merely an example, and can be modified as appropriate depending on the content of the series of operations. For example, the degrees of freedom of each of the left arm 20 and the right arm 30 of the robot 10 do not necessarily have to be seven. The number of degrees of freedom of each of the left arm 20 and the right arm 30 may be more than seven, or six or less. The robot 10 may be a single-arm robot (for example, a vertical articulated robot, or a SCARA robot).
[0031] As described above, the controller 100 causes the robot 10 to execute the series of operations in response to the operation start command. The series of operations means a set of operations that is automatically executed after the operation start command from the operator without waiting for the next command from the operator. The series of operations may include a pause for waiting for the operation conditions to be met. Specific examples of the operation conditions include the lapse of a predetermined waiting time between two operations, or the completion of a process by the peripheral device 3 (e.g., a centrifugation process by the centrifuge 3D, or a mixing process by the mixer 3E, etc.). The controller 100 may cause the robot 10 to execute a series of operations of multiple types. In this case, the controller 100 may wait for an operation start command from the operator for each of the multiple types.
[0032] In order to have the robot 10 perform multiple desired tasks through a series of operations, it is necessary to carry out appropriate advance preparations. If the advance preparations are inappropriate, the robot 10 may not be able to perform its tasks properly. For example, if the multiple tasks include transporting an object to be worked on, the object to be worked on (hereinafter referred to as the "object to be transported") must be placed in advance at the transport start position. Also, the transport completion position must be empty.
[0033] If the controller 100 causes the robot 10 to execute the operation for the transfer work when the object to be transferred is not located at the transfer start position, the robot 10 will execute the operation for the transfer work without gripping the object to be transferred. Also, if the controller 100 causes the robot 10 to execute the operation for the transfer work when the object to be transferred is located at the transfer start position but the transfer completion position is not empty, the object to be transferred transferred by the robot 10 will collide with an existing object at the transfer completion position.
[0034] In a system in which at least a part of a process in the biomedical field is performed by the robot 10, advance preparation of samples, reagents, etc. may be performed by a human being. In such a system in which humans and robots work together, it is more important to prevent inappropriate advance preparation due to human error.
[0035] In response to this, the controller 100 is configured to generate object placement conditions for multiple positions in the work field of the robot 10 before the start of a series of operations, based on the contents of multiple tasks performed by a series of operations of the robot 10. By generating object placement conditions for multiple positions before the start of a series of operations, appropriate advance preparation can be promoted.
[0036] The controller 100 may be further configured to generate an operation program for causing the robot 10 to execute the series of operations based on work instruction information specifying the contents of the multiple operations, and to cause the robot 10 to execute the series of operations based on the generated operation program. In this case, the controller 100 may be configured to generate the object placement conditions for the multiple positions based on the work instruction information. By effectively utilizing the work instruction information for generating the operation program, the object placement conditions for the multiple positions can be easily generated.
[0037] The controller 100 may be further configured to generate a condition display image showing the object placement conditions for each of the plurality of positions. In this case, it is possible to easily encourage the user to perform advance preparations based on the object placement conditions with certainty.
[0038] For example, as shown in FIG. 3, the controller 100 has, as functional components (hereinafter referred to as "functional blocks"), a unit job database 111, a program generation unit 112, a program memory unit 113, a placement condition generation unit 114, a condition display unit 116, and an operation control unit 115.
[0039] The unit job database 111 stores a plurality of unit jobs. Each unit job is a set of time-series movement commands for the hands 26, 36. Each movement command includes at least a target position / posture and a target movement speed for the hands 26, 36. Each of the plurality of unit jobs is generated in advance by teaching using at least one of the actual robot 10 and a simulator for the robot 10. The plurality of unit jobs include a plurality of process jobs and a plurality of connecting jobs.
[0040] Each of the multiple processing jobs is a unit operation program that causes the robot 10 to start a unit operation corresponding to a predetermined task with the hands 26, 36 placed in a predetermined task reference position and posture, and completes the unit operation with the hands 26, 36 placed in the task reference position and posture. Specific examples of predetermined tasks are shown below. Example 1) Taking pipette 3F out of the designated pipette storage area. Example 2) Return pipette 3F to the designated pipette storage area. Example 3) The contents of a container placed in a designated position are aspirated using pipette 3F. Example 4) The contents of a container placed in a designated position are injected using pipette 3F. Example 5) Removing a container from its designated location. Example 6) Place the container in place and release it. Example 7) Cause Centrifuge 3D to perform a centrifuge run for a given period of time. Example 8) Mixer 3E is caused to perform mixing for a predetermined period of time.
[0041] Each of the multiple connecting jobs corresponds to one of two combinations of work reference positions and postures, and is a unit operation program that moves the hands 26, 36 along a predetermined path from one of the two corresponding work reference positions and postures to the other.
[0042] The program generation unit 112 generates an operation program for causing the robot 10 to execute a series of operations based on work instruction information that specifies the contents of multiple tasks. The operation program is a set of time-series movement commands for the hands 26, 36. Each movement command includes at least a target position and posture for the hands 26, 36, and a target movement speed.
[0043] The multiple operations may include multiple groups of individual operations corresponding to multiple work target objects, and one or more inter-object operations corresponding to any two of the multiple work target objects. For example, when the multiple work target objects include a first container and a second container, the one or more inter-object operations may include an operation of transferring at least a part of the content of the first container to the second container. A specific example of the operation of transferring at least a part of the content of the first container to the second container is an operation of sucking the content of the first container with a pipette 3F and injecting the sucked object into the second container with the pipette 3F. The operation of transferring at least a part of the content of the first container to the second container may be an operation of directly transferring the content of the first container to the second container without using the pipette 3F.
[0044] The work instruction information may include individual work instructions for multiple groups that specify work contents of the individual work of the multiple groups, and one or more inter-object work instructions that specify work contents of one or more inter-object work. Each of the individual work instructions for the multiple groups and the one or more inter-object work instructions may include an instruction to extract one or more processing jobs. In this case, the program generation unit 112 may generate an operation program by extracting multiple processing jobs based on the individual work instructions for the multiple groups and the one or more inter-object work instructions, and inserting a connecting job between each of two processing jobs arranged in chronological order.
[0045] The program generation unit 112 may generate a user interface that allows input of multiple groups of individual work instructions and one or more inter-object work instructions by selecting, arranging, and connecting multiple instruction symbols prepared in advance and inputting parameters for each of the multiple instruction symbols, and generate an operation program based on the input to the user interface.
[0046] In this case, the controller 100 may further include an instruction symbol database 119. The instruction symbol database 119 stores a plurality of instruction symbols prepared in advance. The plurality of instruction symbols include an initial state instruction symbol, an individual operation instruction symbol, and an object-to-object operation instruction symbol.
[0047] The initial state instruction symbol is a symbol for specifying the initial state of a work target object in an individual work instruction, and an initial placement position of the work target object, etc. can be input as a parameter. When the work target object is a container, the parameters that can be input for the initial state instruction symbol may further include the contents of the container.
[0048] The individual task instruction symbol is a symbol for specifying one task in a group of individual tasks, and allows input of parameters for that task. The individual task instruction symbol corresponds to an extraction instruction for one or more processing jobs.
[0049] The inter-object work instruction symbol is a symbol for specifying one inter-object work, and allows input of parameters for the one inter-object work. The inter-object work instruction symbol is associated with at least an extraction instruction for one or more processing jobs for one work target object and one or more processing jobs for the other work target object.
[0050] For example, the program generation unit 112 may display a protocol input screen on the display device 195 (described later) for selecting, arranging, and connecting multiple instruction symbols prepared in advance and inputting parameters for each of the multiple instruction symbols, and generate an operating program based on input to the protocol input screen.
[0051] Fig. 4 is a schematic diagram showing an example of input to a protocol input screen. In Fig. 4, a first group of individual work instructions 210 corresponding to a first container, a second group of individual work instructions 220 corresponding to a second container, and an object-to-object work instruction 230 for transferring the contents of the first container to the second container are input to a protocol input screen 200.
[0052] An individual work instruction 210 includes instruction symbols 211 and 212 arranged in chronological order. The instruction symbol 211 is an example of the above-mentioned initial state instruction symbol. The work target object of the instruction symbol 211 is a first container. The initial placement position of the first container and the contents of the first container can be input into the instruction symbol 211.
[0053] The instruction symbol 212 is an example of the individual work instruction symbol, and instructs to transport the first container to a specified destination. The destination can be input into the instruction symbol 212. The instruction symbol 212 is associated with an extraction instruction for a processing job to take out the first container from the position indicated by the previous instruction symbol in the time series, and a processing job to place the first container at the destination and release it.
[0054] The individual work instruction 220 includes instruction symbols 221, 222, 223, and 224 arranged in chronological order. The instruction symbol 221 is an example of the initial state instruction symbol. The work target object of the instruction symbol 212 is a second container. The initial placement position of the second container and the contents of the second container can be input into the instruction symbol 221.
[0055] The instruction symbol 222 is an example of the individual work instruction symbol, and instructs mixing by the mixer 3E. A mixing time can be input into the instruction symbol 222. The instruction symbol 222 is associated with instructions to extract a processing job for taking out the second container from the position indicated by the previous instruction symbol in the time series, a processing job for placing the second container on the mixer 3E, and a processing job for causing the mixer 3E to perform mixing for a specified mixing time.
[0056] The instruction symbol 223 is an example of the individual work instruction symbol, and instructs to perform centrifugation using the centrifuge 3D. A centrifugation time can be input into the instruction symbol 223. The instruction symbol 223 is associated with extraction instructions for a processing job of taking out the second container from the position indicated by the previous instruction symbol in the time series, a processing job of placing the second container in the centrifuge 3D and releasing it, and a processing job of causing the centrifuge 3D to perform centrifugation for a specified centrifugation time.
[0057] The inter-object work instruction 230 includes an instruction symbol 231. The instruction symbol 231 is an example of the inter-object work instruction symbol, and instructs the user to transfer the content of a first container to a second container by a pipette 3F. The amount of content to be transferred from the first container to the second container can be input into the instruction symbol 231.
[0058] The instruction symbol 231 corresponds to extraction instructions for a processing job to take the pipette 3F from a specified pipette storage area, a processing job to use the pipette 3F to aspirate a specified amount of contents from a first container placed at a position indicated by the previous instruction symbol in the chronological order, a processing job to use the pipette 3F to inject contents into a second container placed at a position indicated by the next instruction symbol in the chronological order, and a processing job to return the pipette 3F to the pipette storage area.
[0059] Hereinafter, a procedure for generating an operation program executed by the program generation unit 112 based on the individual work instruction 210, the individual work instruction 220, and the object-to-object work instruction 230 in Fig. 4 will be illustrated. First, the program generation unit 112 extracts the following processing jobs from a plurality of unit jobs based on the instruction symbol 211, the instruction symbol 221, and the instruction symbol 231. Job 1-1) Take pipette 3F from the designated pipette storage area. Job 1-2) From a first container placed at a position specified by the instruction symbol 211, the amount of contents specified by the instruction symbol 231 is aspirated by the pipette 3F. Job 1-3) The contents of a second container placed at a position designated by instruction symbol 221 are injected using pipette 3F. Job 1-4) Return pipette 3F to the designated pipette storage area.
[0060] After extracting the above processing jobs, the program generation unit 112 extracts a transition job for moving the hands 26, 36 from the work reference position / posture of job 1-1 toward the work reference position / posture of job 1-2 from the multiple unit jobs, and inserts it between jobs 1-1 and 1-2. Similarly, the program generation unit 112 extracts a transition job for moving the hands 26, 36 from the work reference position / posture of job 1-2 toward the work reference position / posture of job 1-3 from the multiple unit jobs, and inserts it between jobs 1-2 and 1-3. Similarly, the program generation unit 112 extracts a transition job for moving the hands 26, 36 from the work reference position / posture of job 1-3 toward the work reference position / posture of job 1-4 from the multiple unit jobs, and inserts it between jobs 1-3 and 1-4. Similarly, the program generation unit 112 extracts a transition job that moves the hands 26, 36 from the work reference position / posture of job 1-4 toward the work reference position / posture of job 1-5 from the multiple unit jobs, and inserts it between jobs 1-4 and 1-5.
[0061] Next, the program generating section 112 extracts the following processing jobs from the multiple unit jobs based on the instruction symbol 211 and the instruction symbol 212. Job 2-1) Take out the first container from the location specified by instruction symbol 211. Job 2-2) Place the first container at the position designated by instruction symbol 212 and release it.
[0062] After extracting the above processing jobs, the program generation unit 112 extracts a transition job from the multiple unit jobs for moving the hands 26, 36 from the work reference position / posture of job 1-5 toward the work reference position / posture of job 2-1, and inserts it between jobs 1-5 and 2-1. Similarly, the program generation unit 112 extracts a transition job from the multiple unit jobs for moving the hands 26, 36 from the work reference position / posture of job 2-1 toward the work reference position / posture of job 2-2, and inserts it between jobs 2-1 and 2-2.
[0063] Next, the program generating section 112 extracts the following processing jobs from the multiple unit jobs based on the instruction symbol 221 and the instruction symbol 222. Job 3-1) Take out the second container from the location specified by instruction symbol 221. Job 3-2) Place the second container on mixer 3E. Job 3-3) The mixer 3E is caused to execute mixing for the time designated by the instruction symbol 222. Job 3-4) Take the second container from Mixer 3E.
[0064] After extracting the above processing jobs, the program generation unit 112 extracts a transition job for moving the hands 26, 36 from the work reference position / posture of job 2-2 toward the work reference position / posture of job 3-1 from the multiple unit jobs, and inserts it between jobs 2-2 and 3-1. Similarly, the program generation unit 112 extracts a transition job for moving the hands 26, 36 from the work reference position / posture of job 3-1 toward the work reference position / posture of job 3-2 from the multiple unit jobs, and inserts it between jobs 3-1 and 3-2. Similarly, the program generation unit 112 extracts a transition job for moving the hands 26, 36 from the work reference position / posture of job 3-2 toward the work reference position / posture of job 3-3 from the multiple unit jobs, and inserts it between jobs 3-2 and 3-3. Similarly, the program generation unit 112 extracts a transition job for moving the hands 26, 36 from the work reference position / posture of job 3-3 toward the work reference position / posture of job 3-4 from the multiple unit jobs, and inserts it between job 3-3 and job 3-4.
[0065] Next, the program generating section 112 extracts the following processing jobs from the multiple unit jobs based on the instruction symbol 223. Job 4-1) Place the second container into the centrifuge 3D and release it. Job 4-2) Cause the centrifuge 3D to carry out centrifugation for the time specified by the instruction symbol 223. Job 4-3) Take the second container out of Centrifuge 3D.
[0066] After extracting the above processing jobs, the program generation unit 112 extracts a transition job for moving the hands 26, 36 from the work reference position / posture of job 3-4 toward the work reference position / posture of job 4-1 from the multiple unit jobs, and inserts it between jobs 3-4 and 4-1. Similarly, the program generation unit 112 extracts a transition job for moving the hands 26, 36 from the work reference position / posture of job 4-1 toward the work reference position / posture of job 4-2 from the multiple unit jobs, and inserts it between jobs 4-1 and 4-2. Similarly, the program generation unit 112 extracts a transition job for moving the hands 26, 36 from the work reference position / posture of job 4-2 toward the work reference position / posture of job 4-3 from the multiple unit jobs, and inserts it between jobs 4-2 and 4-3.
[0067] Next, the program generation section 112 extracts the following processing jobs from the multiple unit jobs based on the instruction symbol 224. Job 5-1) Place the second container at the position designated by instruction symbol 224 and release it.
[0068] After extracting the above processing jobs, the program generation unit 112 extracts a connecting job for moving the hands 26, 36 from the work reference position / posture of job 4-3 toward the work reference position / posture of job 5-1 from the multiple unit jobs, and inserts it between job 4-3 and job 5-1. This completes the generation of the operation program based on the protocol chart shown in FIG.
[0069] In the above, a case where a connecting job is prepared in advance has been exemplified, but the controller 100 may be configured to automatically generate a connecting job. An example of an algorithm for automatically generating a connecting job is the Probabilistic Roadmap Method (PRM), which randomly generates postures of the robot 10 that do not interfere with obstacles (for example, the peripheral device 3 or the work target object, etc.), and generates a path from a roadmap that combines them using a graph search algorithm. Examples of graph search algorithms for generating the shortest path from a given roadmap include the Dijkstra algorithm and the A* algorithm, which is an improved version of the Dijkstra algorithm. Another algorithm for automatically generating a path is the Rapidly-exploring Random Trees (RRT), which randomly generates several path trees that do not interfere with obstacles using the start point of the operation as a base point, and repeats random generation of the path trees using the tip of the path tree as a new base point. In addition, a connecting job can also be automatically generated using Sampling-based Roadmap of Trees (SRT), Rapidly-exploring RoadMap (RRM), etc., which are combinations of PRM and RRT. These algorithms are merely examples. The algorithm for automatically generating a transition job may be any algorithm as long as it can generate a transition job that does not cause interference between the robot 10 and an obstacle.
[0070] The program storage unit 113 stores the operation program generated by the program generation unit 112 .
[0071] The placement condition generating unit 114 generates object placement conditions for multiple positions in the work field of the robot 10 before the start of the series of operations based on the contents of the multiple tasks executed by the series of operations. The placement condition generating unit 114 generates object placement conditions that specify at least the presence or absence of an object for each of the multiple positions. The placement condition generating unit 114 may generate object placement conditions that further specify the type and state of an object to be placed for a position where the object is to be placed.
[0072] The placement condition generating unit 114 may generate the object placement conditions for the multiple positions based on the work instruction information. The multiple positions include a position where the work target object is placed at the start of the work and a position where the work target object is placed after the work is completed for each of the multiple works.
[0073] When the position where the work target object is placed when work begins is different from the position where the work target object is placed after work is completed, the placement condition generation unit 114 may generate an object placement condition that includes the work target object being placed at the position where the work target object is placed before work begins and the position where the work target object is placed after work is completed being empty.
[0074] However, the position where the work target object is placed after the completion of one task may be the position where another work target object is placed at the start of another task, so even if a position where the work target object is placed after the completion of a task is not necessarily empty at the start of a series of operations.
[0075] When the multiple tasks include multiple groups of individual tasks corresponding to multiple work objects, the multiple positions include a first type of position where the corresponding work object is placed at the start of each of the multiple groups of individual tasks, and a second type of position that does not correspond to the first type of position but where any of the multiple work objects is placed during the individual task. In this case, the placement condition generating unit 114 may identify the first type of position and the second type of position based on the transport path of the work object in each of the multiple groups of individual tasks, and generate an object placement condition that includes the work object corresponding to each of the first type of positions being placed and the second type of position being empty.
[0076] The placement condition generating unit 114 may identify a first type of position and a second type of position based on multiple groups of individual work instructions included in the work instruction information. For example, when the work instruction information is included by the protocol chart shown in Fig. 4, the placement condition generating unit 114 identifies the placement position specified by the first instruction symbol 211 of the individual work instruction 210 of the first group and the placement position specified by the first instruction symbol 221 of the individual work instruction 220 of the second group as the first type of position. In addition, the placement condition generating unit 114 identifies the placement position specified by the instruction symbol 212 of the individual work instruction 210 and the placement positions specified by the instruction symbols 222, 223, and 224 of the individual work instruction 220 as the second type of position.
[0077] Returning to Fig. 3, the condition display unit 116 generates a condition display image showing the object placement conditions generated by the placement condition generation unit 114 for each of the multiple positions, and displays it on the display device 195 (described later). The condition display unit 116 may include a condition map that displays the placement conditions in association with each of the multiple positions in a layout diagram of the work field of the robot 10. The condition display unit 116 may indicate, in the condition map, the positions where the object should be placed among the multiple positions with a first type of marker, and may indicate, among the multiple positions, the positions that should be left empty with a second type of marker different from the first type of marker.
[0078] Fig. 5 is a schematic diagram illustrating a condition display image. The condition display image 300 shown in Fig. 5 includes a placement condition list 310 and a condition map 320. The placement condition list 310 is a text list indicating the generated object placement conditions for each of a plurality of positions. The condition map 320 indicates, within a layout diagram 321 in which the work field of the robot 10 is viewed from above, positions among the plurality of positions where objects should be placed with a first type of marker 322, and positions among the plurality of positions that should be left empty with a second type of marker 323.
[0079] The condition display image 300 may further display a leader line 324 that associates the text displayed in the arrangement condition list 310 with the markers 322, 323 of the condition map 320. As shown in Fig. 5, the condition display unit 116 may display the leader line 324 for the text selected by the user in the arrangement condition list 310, and omit displaying the leader line 324 for the text not selected by the user.
[0080] 6, the condition display unit 116 may enlarge and display the periphery of the positions to which the markers 322 and 323 are added when displaying the leader line 324 for the text selected by the user in the arrangement condition list 310. In this case, the leader line 324 may be displayed so as to associate the text selected by the user with the markers 322 and 323 in the enlarged and displayed image.
[0081] The operation control unit 115 causes the robot 10 to execute a series of operations in response to the operation start command. For example, the operation control unit 115 causes the robot 10 to operate based on an operation program stored in the program storage unit 113. As an example, the operation control unit 115 repeatedly executes the following control procedure at a predetermined control period until the execution of the operation program is completed. Control procedure 1) Based on the operation program, the target positions and orientations of the hands 26, 36 in the current control cycle are calculated. Control procedure 2) Using predetermined constraint conditions and inverse kinematics calculations, target rotation angles of actuator M01, actuators M11, M12, M13, M14, M15, M16, M17, and actuators M21, M22, M23, M24, M25, M26, M27 corresponding to the target positions and postures of the hands 26, 36 are calculated. Control procedure 3) Drive power is supplied to actuator M01, actuators M11, M12, M13, M14, M15, M16, M17, and actuators M21, M22, M23, M24, M25, M26, M27 to cause the rotation angle to follow the target rotation angle.
[0082] The controller 100 may be further configured to check whether at least one of the multiple positions satisfies an object placement condition. By checking whether the object placement condition is satisfied (hereinafter, referred to as a "placement check") by the controller 100, it is possible to encourage more reliable execution of advance preparations based on the object placement condition.
[0083] The processing system 1 may further include a field sensor 3G that detects an object placement state in the work field of the robot 10. In this case, the controller 100 may check whether or not one or more check target positions satisfy an object placement condition based on the detection result by the field sensor 3G. A specific example of the field sensor 3G is a laser sensor that detects the presence or absence of an object based on the reflection of a laser light. The field sensor 3G may be a camera that obtains image information of the work field as information representing the object placement state.
[0084] As an example, the field sensor 3G may be fixed to the hand 26 or the hand 36 (see FIG. 2). Hereinafter, of the hands 26 and 36, the hand to which the field sensor 3G is fixed is referred to as the "inspection hand." When the field sensor 3G is fixed to the inspection hand, the controller 100 may control the robot 10 to place the field sensor 3G at a position where the object placement state of one or more check target positions can be detected. For example, the controller 100 may further include a sensor placement database 121, a check program generation unit 122, a check program storage unit 123, a check operation control unit 124, a placement check unit 117, and a result display unit 118, as shown in FIG. 3.
[0085] The sensor arrangement database 121 determines the arrangement of the field sensor 3G for each of a plurality of candidate positions including the above-mentioned plurality of positions. For example, the sensor arrangement database 121 stores a plurality of detection positions and orientations in association with the plurality of candidate positions. Each of the plurality of detection positions and orientations is a position and orientation of an inspection hand for placing the field sensor 3G at a position where the object arrangement state of the corresponding candidate position can be detected. There are cases where the object arrangement state of two or more candidate positions can be detected without changing the arrangement of the field sensor 3G. In this case, the sensor arrangement database 121 may associate the same inspection position and orientation with two or more candidate positions.
[0086] The check program generation unit 122 generates a transport program for the field sensor 3G based on the sensor arrangement database 121 and one or more check target positions. For example, the check program generation unit 122 generates, as the transport program, an operation program for sequentially placing an inspection hand at one or more inspection positions / postures associated with one or more check target positions in the sensor arrangement database 121. The check program storage unit 123 stores the transport program generated by the check program generation unit 122.
[0087] The check operation control unit 124 causes the robot 10 to move the field sensor 3G so as to detect the object placement state at each of one or more check target positions. For example, the check operation control unit 124 causes the robot 10 to move the field sensor 3G based on the transport program stored in the check program storage unit 123. As an example, the check operation control unit 124 repeatedly executes the following control procedure at a predetermined control period until execution of the transport program is completed. Control procedure 2-1) Based on the transfer program, the target position and orientation of the inspection hand in the current control cycle is calculated. Control procedure 2-2) Using predetermined constraint conditions and inverse kinematics calculations, calculate the target rotation angles of actuator M01, actuators M11, M12, M13, M14, M15, M16, M17, and actuators M21, M22, M23, M24, M25, M26, M27 corresponding to the target position and posture of the inspection hand. Control procedure 2-3) Drive power is supplied to actuator M01, actuators M11, M12, M13, M14, M15, M16, M17, and actuators M21, M22, M23, M24, M25, M26, M27 to cause the rotation angle to follow the target rotation angle.
[0088] The placement check unit 117 checks whether or not one or more check target positions satisfy the object placement condition based on the detection result by the field sensor 3G. For example, every time the check operation control unit 124 places the inspection hand at an inspection position / posture, the placement check unit 117 acquires the detection result of the object placement state at the check target position corresponding to the inspection position / posture from the field sensor 3G, and checks whether or not the acquired object placement state satisfies the object placement condition.
[0089] The result display unit 118 generates a result display image showing the check result by the placement check unit 117 for each of one or more check target positions. The result display image may include a result map showing the check result by the placement check unit in association with each of the one or more check target positions in the layout diagram of the work field of the robot 10.
[0090] Fig. 7 is a schematic diagram illustrating a result display image. The result display image 400 shown in Fig. 7 includes a placement condition list 410, a result list 412, and a result map 420. The placement condition list 410 is a text list showing object placement conditions for multiple positions, similar to the placement condition list 310.
[0091] The result list 412 is a list showing the check results by the placement check unit 117 for each of a plurality of positions in association with the placement condition list 410. In the figure, "OK" means that the corresponding position satisfies the object placement condition, and "NG" means that the corresponding position does not satisfy the object placement condition.
[0092] The result map 420 indicates, among the multiple positions, positions where objects should be placed with a first type of marker 422 and indicates, among the multiple positions, positions that should be left empty with a second type of marker 423 in a layout diagram 421 in which the work field of the robot 10 is viewed from above. The result map 420 indicates whether or not the object placement condition is satisfied by, for example, the display mode of the markers 422 and 423. As long as it is possible to clearly indicate whether or not the object placement condition is satisfied, there is no particular limitation on the display mode. As a specific example, the result map 420 may indicate whether or not the object placement condition is satisfied by differences in the size, shape, frame thickness, color, etc. of the markers 422 and 423.
[0093] The result display image 400 may further display a leader line 424 that associates the text displayed in the placement condition list 410 with the markers 422, 423 of the result map 420. As shown in Fig. 7, the result display unit 118 may display the leader line 424 for the text selected by the user in the placement condition list 410, and omit displaying the leader line 424 for the text not selected by the user.
[0094] When a sensor capable of detecting a wider range of object placement conditions, such as a camera, is used as the field sensor 3G, the field sensor 3G may be fixed to a position where it can check the entire work field of the robot 10. In this case, generation of a transport program by the check program generation unit 122 and transport control of the field sensor 3G by the check operation control unit 124 are not required.
[0095] The condition display unit 116 may generate a condition display image that allows a user to specify whether or not a check is required for each of a plurality of positions. For example, the condition display unit 116 may generate a condition display image 300 that further includes a check required list 311, as shown in Figs. 5 and 6. The check required list 311 is a list that indicates whether or not a check is required for each of a plurality of positions in association with the arrangement condition list 310. In the illustration, "required" means that a check is required, and "no" means that a check is not required. "required" and "no" can be changed by the user, for example, using the input device 196 (described later). Hereinafter, a position that is set to "no" in the check required list 311 is referred to as a "no-check position."
[0096] The placement check unit 117 may exclude the positions not requiring checking from one or more positions to be checked. The check program generation unit 122 may generate a transport program by excluding the positions not requiring checking from one or more positions to be checked. This makes it possible to reduce unnecessary operations of the robot 10.
[0097] When the condition display unit 116 generates the condition display image 300 further including the check necessity list 311, the result display unit 118 may generate a result display image 400 further including a check necessity list 411 as shown in Fig. 7. The check necessity list 411 is a list showing the designation results of whether or not to check in the check necessity list 311 for each of a plurality of positions in association with the arrangement condition list 410. In Fig. 7, the check result is "-" for the positions where the check necessity is "no". This means that the arrangement check unit 117 has excluded the position from one or more check target positions.
[0098] The operation control unit 115 may cause the robot 10 to execute the series of operations in response to the operation start command when the object placement state at each of the one or more check target positions satisfies the object placement condition, and may cause the robot 10 to stop the series of operations without responding to the operation start command when the object placement state at any of the one or more check target positions does not satisfy the object placement condition. When causing the robot 10 to stop the series of operations, the operation control unit 115 may notify the user that there is a position that does not satisfy the object placement condition by displaying on the display device 195 (described later) or the like.
[0099] The result display unit 118 may generate a result display image that allows the user to specify whether or not the check result may be ignored for each of one or more check target positions. For example, the result display unit 118 may generate a result display image 400 that further includes a result selection list 413, as shown in FIG. 8. The result selection list 413 is a list that indicates, for each of a plurality of positions, whether or not the check result may be ignored in association with the arrangement condition list 410. In the figure, "OK" means that the check result may be ignored, and "NO" means that the check result must not be ignored. "OK" and "NO" can be changed by the user, for example, using the input device 196 (described later).
[0100] If at least one check result indicating that the object placement condition is not satisfied is specified as not ignorable, the operation control unit 115 may cause the robot 10 to stop the series of operations described above without responding to the operation start command, and if all check results indicating that the object placement condition is not satisfied are specified as being ignorable, the operation control unit 115 may cause the robot 10 to perform the series of operations described above in response to the operation start command.
[0101] FIG. 9 is a block diagram illustrating a hardware configuration of the controller 100. As shown in FIG. 9, the controller 100 has a circuit 190. The circuit 190 includes one or more processors 191, a memory 192, a storage 193, an input / output port 194, a display device 195, an input device 196, and a servo driver 197. The storage 193 has a computer-readable storage medium, such as a non-volatile semiconductor memory. The storage 193 stores a program for causing the controller 100 to generate object placement conditions before the start of a series of operations for a plurality of positions in the work field of the robot 10 based on the contents of a plurality of tasks performed by a series of operations of the robot 10, and to cause the robot 10 to perform the series of operations. For example, the storage 193 stores a program for causing the controller 100 to configure each of the above-mentioned functional blocks.
[0102] The memory 192 temporarily stores the program loaded from the storage medium of the storage 193 and the calculation result by the processor 191. The processor 191 configures each functional block of the controller 100 by executing the above program in cooperation with the memory 192. The input / output port 194 inputs and outputs information to and from the field sensor 3G according to a command from the processor 191. The display device 195 and the input device 196 function as a user interface of the controller 100. The display device 195 includes, for example, a liquid crystal monitor, and is used to display information to the user. The input device 196 is, for example, a keypad, and acquires information input by the user. The display device 195 and the input device 196 may be integrated into one device, such as a so-called touch panel. The display device 195 and the input device 196 may be incorporated in the controller 100, or may be provided in an external device connected to the controller 100. The servo driver 197 outputs driving power to the actuators M01, M11, M12, M13, M14, M15, M16, M17, M21, M22, M23, M24, M25, M26, and M27 of the robot 10 in accordance with instructions from the processor 191.
[0103] Note that the circuit 190 is not necessarily limited to one that configures each function by a program. For example, the circuit 190 may configure at least some of its functions by a dedicated logic circuit or an ASIC (Application Specific Integrated Circuit) that integrates such a dedicated logic circuit.
[0104] In the above, the controller 100 has been exemplified as one device, but the controller 100 may be composed of a plurality of devices capable of communicating with each other. For example, the controller 100 may be composed of a robot controller and an external computer capable of communicating with each other. In this case, for example, the program storage unit 113, the operation control unit 115, the check program storage unit 123, and the check operation control unit 124 may be provided in the robot controller, and the unit job database 111, the program generation unit 112, the placement condition generation unit 114, the condition display unit 116, the placement check unit 117, the result display unit 118, the instruction symbol database 119, the sensor placement database 121, and the check program generation unit 122 may be provided in the external computer.
[0105] [Processing Procedure] Next, as an example of a processing method, a control procedure of the robot 10 executed by the controller 100 will be specifically illustrated. This procedure includes a program generation procedure, an object placement condition display procedure, a placement check procedure, and an operation control procedure. Each procedure will be described in detail below.
[0106] (Program Generation Procedure) 10, the controller 100 executes steps S01, S02, S03, and S04 in order. In step S01, the program generation unit 112 displays the protocol input screen 200 on the display device 195. In step S02, the program generation unit 112 waits for a command to generate an operation program based on the input contents on the protocol input screen 200. The command to generate the operation program is input by the user using, for example, the input device 196.
[0107] In step S03, the program generation unit 112 extracts a plurality of processing jobs from the plurality of unit jobs in the unit job database 111 and arranges them in chronological order based on the input contents on the protocol input screen 200. In step S04, the program generation unit 112 extracts and inserts connecting jobs from the plurality of unit jobs in the unit job database 111 between each of two processing jobs arranged in chronological order. This completes the program generation procedure.
[0108] (Procedure for displaying object placement conditions) As shown in FIG. 11, the controller 100 executes steps S11, S12, S13, S14, and S15 in order. In step S11, the placement condition generating unit 114 waits for a command to display the object placement conditions. The command to display the object placement conditions is input by the user using, for example, the input device 196. In step S12, the placement condition generating unit 114 specifies a movement path of the work target object in each of the individual tasks of the multiple groups based on the individual task instructions of the multiple groups. In step S13, the placement condition generating unit 114 specifies a first type of position where the work target object is to be placed at the start of each of the individual tasks of the multiple groups, and a second type of position that does not correspond to the first type of position but where any of the multiple work targets is to be placed during the individual task, based on the individual task instructions of the multiple groups.
[0109] In step S14, the placement condition generating unit 114 generates an object placement condition including that a work target object corresponding to each of the first type of positions is placed and that the second type of positions is empty. In step S15, the condition display unit 116 generates a condition display image showing the object placement conditions generated by the placement condition generating unit 114 for each of the multiple positions, and displays the image on the display device 195. This completes the procedure for displaying the object placement conditions.
[0110] (Placement check procedure) 12, the controller 100 first executes steps S21, S22, S23, S24, and S25. In step S21, the check program generation unit 122 waits for a placement check command. The placement check command is input by a user using, for example, the input device 196. In step S22, the check program generation unit 122 generates a transport program for the field sensor 3G based on the sensor placement database 121 and one or more check target positions, and stores the transport program in the check program storage unit 123.
[0111] In step S23, the check operation control unit 124 moves the inspection hand to the initial inspection position and posture based on the transport program. In step S24, the placement check unit 117 acquires the detection result of the object placement state of the check target position corresponding to the inspection position and posture from the field sensor 3G, and checks whether the acquired object placement state satisfies the object placement condition. In step S25, the check operation control unit 124 checks whether the inspection hand has been placed at all inspection positions and postures based on the transport program.
[0112] In step S25, if it is determined that there are still inspection positions and postures at which the inspection hand has not been placed, the controller 100 executes step S26. In step S26, the check operation control unit 124 moves the inspection hand to the next inspection position and posture based on the transport program. After that, the controller 100 returns the process to step S24. Thereafter, the movement of the inspection hand and the check of whether the object placement state satisfies the object placement condition are repeated until the inspection hand is placed in all inspection positions and postures.
[0113] If it is determined in step S25 that the inspection hand has been placed in all inspection positions and postures, the controller 100 executes step S27. In step S27, the result display unit 118 generates a result display image showing the check result by the placement check unit 117 for each of one or more check target positions. This completes the placement check procedure.
[0114] (Operation control procedure) 13, the controller 100 first executes steps S31 and S32. In step S31, the operation control unit 115 waits for an operation start command. The operation start command is input by the user using, for example, the input device 196. In step S32, the operation control unit 115 checks whether or not the object placement state at each of one or more check target positions satisfies an object placement condition.
[0115] If it is determined in step S32 that the object placement state at each of the one or more check positions satisfies the object placement condition, the controller 100 executes step S33. In step S33, the operation control unit 115 causes the robot 10 to execute the above series of operations based on the operation program in the program storage unit 113 in response to the above operation start command.
[0116] If it is determined in step S32 that there is a check position where the object placement state does not satisfy the object placement condition, the controller 100 executes step S34. In step S34, the operation control unit 115 causes the robot 10 to stop the series of operations described above without responding to the operation start command, and causes the display device 195 to display a message informing the user that there is a position that does not satisfy the object placement condition. This completes the operation control procedure.
[0117] [Effects of this embodiment] As described above, the processing system 1 includes the robot 10, an operation control unit 115 that causes the robot 10 to execute a series of operations, and a placement condition generation unit 114 that generates object placement conditions for multiple positions in the work field of the robot 10 before the start of the series of operations, based on the content of multiple tasks executed by the series of operations of the robot 10.
[0118] By generating object placement conditions for multiple positions before the start of a series of operations, it is possible to encourage appropriate advance preparation. Therefore, this system is effective in preventing operational defects of the robot 10 due to inappropriate advance preparation.
[0119] The processing system 1 may further include a program generation unit 112 that generates an operation program for causing the robot 10 to execute a series of operations based on work instruction information that specifies the contents of a plurality of operations, and the placement condition generation unit 114 may generate object placement conditions for a plurality of positions based on the work instruction information. In this case, by effectively utilizing the work instruction information for generating the operation program, it is possible to easily generate object placement conditions for a plurality of positions.
[0120] The multiple positions may include a position where the work target object is placed at the start of each of the multiple tasks and a position where the work target object is placed after the task is completed. In this case, by generating object placement conditions for multiple positions including key positions for each of the multiple tasks, appropriate advance preparation can be further promoted.
[0121] In the case where the position where the work target object is placed at the start of work differs from the position where the work target object is placed after the work is completed, the placement condition generating unit 114 may generate an object placement condition including that the work target object is placed at the position where the work target object is placed before the work starts and that the position where the work target object is placed after the work is completed is empty. In this case, by generating a more appropriate object placement condition, it is possible to further encourage appropriate advance preparation.
[0122] The multiple tasks include multiple groups of individual tasks corresponding to multiple work objects, and one or more inter-object tasks corresponding to any two of the multiple work objects, and the multiple positions include a first type of position where the corresponding work object is placed at the start of each of the multiple groups of individual tasks, and a second type of position that does not correspond to the first type of position but where any of the multiple work objects is placed during the individual task, and the placement condition generation unit 114 may identify the first type of position and the second type of position based on the transport path of the work object in each of the multiple groups of individual tasks, and generate object placement conditions including that the work object corresponding to each of the first type positions is placed and that the second type of position is empty. In this case, more appropriate object placement conditions can be easily generated.
[0123] The processing system 1 may further include a program generation unit 112 that generates an operation program for causing the robot to execute a series of operations based on individual operation instructions that specify the operation contents of individual operations of multiple groups and inter-object operation instructions that specify the operation contents of one or more inter-object operations, and the placement condition generation unit 114 may identify a first type of position and a second type of position based on the individual operation instructions. In this case, in order to generate the operation program, a protocol that specifies the contents and procedures of multiple operations is effectively utilized, and object placement conditions for multiple positions can be easily generated.
[0124] The plurality of work target objects may include a first container and a second container, and the one or more inter-object operations may include an operation of transferring at least a portion of the contents of the first container to the second container. In this case, by generating a more appropriate object placement condition, appropriate advance preparation can be further promoted.
[0125] The processing system 1 may further include a condition display unit 116 that generates a condition display image 300 that shows the object placement conditions for each of a plurality of positions. In this case, it is possible to easily encourage the user to reliably carry out advance preparations based on the object placement conditions.
[0126] The condition display image 300 may include a condition map 320 that displays placement conditions in association with each of a plurality of positions in a layout diagram 321 of the work field. In this case, it is possible to easily recognize the object placement conditions for each of a plurality of positions, and to encourage more reliable execution of advance preparations based on the object placement conditions.
[0127] The condition display unit 116 may indicate, in the condition map 320, positions among the multiple positions where an object should be placed with a first type of marker 322, and may indicate positions among the multiple positions that should be left empty with a second type of marker 323 different from the first type of marker 322. In this case, it is possible to make it easier to recognize the object placement conditions for each of the multiple positions, and to encourage more reliable execution of advance preparations based on the object placement conditions.
[0128] The processing system 1 may further include a placement check unit 117 that checks whether or not at least one check target position among the multiple positions satisfies an object placement condition based on the detection result by a field sensor 3G that detects an object placement state in the work field. In this case, it is possible to encourage more reliable execution of advance preparation based on the object placement condition.
[0129] The processing system 1 may further include a check operation control unit 124 that causes the robot 10 to move the field sensor 3G to detect the object placement state at each of one or more check target positions. In this case, the object placement state can be detected with higher reliability.
[0130] The processing system 1 may further include a check program generation unit 122 that generates a transport program for the field sensor 3G based on a database that defines the placement of the field sensor 3G for each of a plurality of candidate positions including a plurality of positions, and on one or more positions to be checked, and the check operation control unit 124 may cause the robot 10 to move the field sensor 3G based on the transport program for the field sensor 3G generated by the check program generation unit 122. In this case, the transport program for the field sensor 3G can be easily changed in accordance with one or more positions to be checked.
[0131] The processing system 1 further includes a placement check unit 117 that checks whether or not at least one of the multiple positions to be checked satisfies an object placement condition based on the detection result by a field sensor 3G that detects an object placement state in the work field, the condition display unit 116 generates a condition display image that allows designation of whether or not checking is required for each of the multiple positions, and the placement check unit 117 may exclude positions that are determined not to require checking in the condition display image 300 from the one or more positions to be checked. In this case, it is possible to improve the efficiency of checking whether or not an object placement state satisfies an object placement condition.
[0132] The operation control unit 115 may cause the robot 10 to execute a series of operations when the object placement state at each of the one or more check target positions satisfies the object placement condition, and may cause the robot 10 to stop the series of operations when the object placement state at any of the one or more check target positions does not satisfy the object placement condition. In this case, it is possible to suppress defective work of the robot 10 caused by inappropriate advance preparation.
[0133] The processing system 1 may further include a result display unit 118 that generates a result display image 400 that shows the check result by the placement check unit 117 for one or more check target positions. In this case, it is possible to suppress defective work of the robot 10 caused by inappropriate advance preparation.
[0134] The result display image 400 may include a result map 420 showing the check result by the placement check unit 117 in association with each of one or more check target positions in a layout diagram 421 of the work field. In this case, the check result can be more easily recognized, and defective work by the robot 10 caused by inappropriate advance preparation can be more reliably prevented.
[0135] The result display unit 118 generates a result display image 400 for one or more check target positions, allowing the user to specify whether or not the check result can be ignored, and the operation control unit 115 may cause the robot 10 to stop a series of operations when at least one check result indicating that the object placement condition is not satisfied is specified as not ignorable, and may cause the robot 10 to execute a series of operations when all check results indicating that the object placement condition is not satisfied are specified as ignorable. In this case, by causing the robot 10 to execute a series of operations while ignoring the ignorable check results, it is possible to both suppress defective work of the robot 10 caused by inappropriate advance preparation and improve the operating efficiency of the robot 10.
[0136] Although the embodiments have been described above, the present disclosure is not necessarily limited to the above-described embodiments, and various modifications are possible without departing from the gist of the present disclosure.
[0137] In the above, the robot system 2 is applied to a processing system in the biomedical field, but the scope of application of the robot system 2 is not limited to the biomedical field. For example, the robot system 2 can also be applied to processing systems in the industrial field (e.g., production systems). In industrial processing systems, multiple parts can be the objects to be worked on. Furthermore, a specific example of multiple groups of individual tasks corresponding to multiple objects to be worked on is processing work on each of the parts. Furthermore, a specific example of a task between one or more objects is the task of assembling one part to another part. [Explanation of symbols]
[0138] 1...processing system, 3G...field sensor, 10...robot, 112...program generation unit, 114...placement condition generation unit, 115...operation control unit, 116...condition display unit, 117...placement check unit, 118...result display unit, 122...check program generation unit, 124...check operation control unit, 210, 220...individual work instructions, 230...inter-object work instructions, 300...condition display image, 320...condition map, 321...layout drawing, 322...marker (first type of marker), 323...marker (second type of marker), 400...result display image, 420...result map, 421...layout drawing.
Claims
1. Robots and a program storage unit that stores operation programs generated to cause the robot to execute a plurality of tasks including transporting each of one or more work target objects along a predetermined transport path; a placement condition generating unit that generates, based on the contents of the plurality of tasks according to the generated operation program, object placement conditions that determine, among a plurality of positions within a work field of the robot, positions at which at least one of the one or more work target objects should be placed before the start of the plurality of tasks and positions that should be empty before the start of the plurality of tasks; an operation control unit that causes the robot to execute the plurality of tasks based on the generated operation program in a state in which the object placement condition is satisfied; A processing system comprising:
2. The system further includes a program generating unit that generates the operation program based on work instruction information that specifies the contents of the plurality of operations including the transport path, The processing system according to claim 1 , wherein the placement condition generating unit generates the object placement conditions for the plurality of positions based on the work instruction information.
3. 3 . The processing system according to claim 1 , wherein the plurality of positions include a position where a work target object is placed at the start of each of the plurality of tasks, and a position where the work target object is placed after the task is completed.
4. The processing system of claim 3, wherein when a position at which the work target object is to be placed when the work starts is different from a position at which the work target object is to be placed after the work is completed, the placement condition generation unit generates the object placement condition including that the work target object is placed at the position at which the work target object is to be placed before the work starts and that the position at which the work target object is to be placed after the work is completed being empty.
5. The multiple tasks include multiple groups of individual tasks corresponding to multiple work target objects, respectively, and one or more inter-object tasks corresponding to any two of the multiple work target objects, the plurality of positions include a first type of position at which a corresponding work target object is placed at the start of each of the plurality of groups of individual tasks, and a second type of position not corresponding to the first type of position but at which any of the plurality of work target objects is placed during the individual task, The processing system according to claim 1, wherein the placement condition generation unit identifies the first type of position and the second type of position based on a transport path of a work target object in each of the individual tasks of the multiple groups, and generates the object placement condition including that a work target object corresponding to each of the first type of positions is placed and that the second type of position is empty.
6. a program generating unit configured to generate the operation program based on individual task instructions that specify task contents of the individual tasks of the plurality of groups and object-to-object task instructions that specify task contents of the one or more object-to-object tasks, The processing system according to claim 5 , wherein the placement condition generating unit specifies the first type of location and the second type of location based on the individual work instruction.
7. the plurality of work target objects include a first container and a second container, The processing system of claim 5 or 6, wherein the one or more inter-object operations include transferring at least a portion of the contents of the first container to the second container.
8. 8. The processing system according to claim 1, further comprising a condition display unit that generates a condition display image that indicates the object placement condition for each of the plurality of positions.
9. 9. The processing system according to claim 8, wherein the condition display image includes a condition map that displays the object placement conditions in association with each of the plurality of positions in a layout diagram of the work field.
10. The processing system according to claim 9 , wherein the condition display unit indicates, in the condition map, positions among the plurality of positions where objects should be placed with a first type of marker, and indicates, among the plurality of positions, positions that should be left empty with a second type of marker different from the first type of marker.
11. The processing system according to any one of claims 1 to 10, further comprising a placement check unit that checks whether at least one check target position among the multiple positions satisfies the object placement condition based on a detection result by a field sensor that detects an object placement state in the work field.
12. The processing system according to claim 11 , further comprising a check operation control unit that causes the robot to move the field sensor so as to detect an object placement state at each of the one or more check target positions.
13. a check program generating unit that generates a transport program for the field sensor based on a database that determines an arrangement of the field sensor for each of a plurality of candidate positions including the plurality of positions, and the one or more check target positions; 13. The processing system according to claim 12, wherein the check operation control unit causes the robot to move the field sensor based on a transport program for the field sensor generated by the check program generation unit.
14. a placement check unit that checks whether or not at least one check target position among the plurality of positions satisfies the object placement condition based on a detection result by a field sensor that detects an object placement state in the work field, the condition display unit generates the condition display image that allows designation of whether or not a check is required for each of the plurality of positions; 11. The processing system according to claim 8, wherein the placement check section excludes positions in the condition display image that are determined not to require checking from the one or more check target positions.
15. The operation control unit is causing the robot to perform the plurality of tasks when the object placement state at each of the one or more check target positions satisfies the object placement condition; The processing system according to any one of claims 11 to 14, further comprising: causing the robot to stop performing the plurality of tasks when the object placement state at any one of the one or more check target positions does not satisfy the object placement condition.
16. 15. The processing system according to claim 11, further comprising a result display unit that generates a result display image that shows a check result by said placement check unit for each of said one or more check target positions.
17. 17. The processing system according to claim 16, wherein the result display image includes a result map showing a check result by the placement check section in association with each of the one or more check target positions in the layout diagram of the work field.
18. the result display unit generates the result display image for each of the one or more check target positions, allowing the user to specify whether or not the check result may be ignored; The operation control unit is When at least one check result indicating that the object placement condition is not satisfied is designated as non-negligible, the robot is caused to stop performing the plurality of tasks; 18. The processing system according to claim 17, wherein when all check results indicating that the object placement condition is not satisfied are designated as ignorable, the processing system makes the robot perform the plurality of tasks.
19. Robots and A motion control unit that causes the robot to execute a series of motions; a placement condition generation unit that generates object placement conditions for a plurality of positions in a work field of the robot before the start of the series of operations based on contents of a plurality of tasks performed by the series of operations of the robot; Equipped with The multiple tasks include multiple groups of individual tasks corresponding to multiple work target objects, respectively, and one or more inter-object tasks corresponding to any two of the multiple work target objects, the plurality of positions include a first type of position at which a corresponding work target object is placed at the start of each of the plurality of groups of individual tasks, and a second type of position not corresponding to the first type of position but at which any of the plurality of work target objects is placed during the individual task, The placement condition generation unit identifies the first type of position and the second type of position based on a transport path of a work target object in each of the multiple groups of individual tasks, and generates the object placement condition including that a work target object corresponding to each of the first type of positions is placed and that the second type of position is empty.
20. Robots and A motion control unit that causes the robot to execute a series of motions; a placement condition generation unit that generates object placement conditions for a plurality of positions in a work field of the robot before the start of the series of operations based on contents of a plurality of tasks performed by the series of operations of the robot; a condition display unit that generates a condition display image that indicates the object placement condition for each of the plurality of positions; Equipped with The condition display image includes a condition map that displays the object placement conditions in association with each of the multiple positions within a layout diagram of the work field.
21. Robots and A motion control unit that causes the robot to execute a series of motions; a placement condition generation unit that generates object placement conditions for a plurality of positions in a work field of the robot before the start of the series of operations based on contents of a plurality of tasks performed by the series of operations of the robot; a condition display unit that generates a condition display image that indicates the object placement condition for each of the plurality of positions; a placement check unit that checks whether or not at least one check target position among the plurality of positions satisfies the object placement condition based on a detection result by a field sensor that detects an object placement state in the work field; Equipped with the condition display unit generates the condition display image that allows designation of whether or not a check is required for each of the plurality of positions; The placement checking unit excludes positions in the condition display image that are determined not to require checking from the one or more check target positions.
22. generating an operation program for causing a robot to execute a plurality of tasks including transporting each of one or more work target objects along a predetermined transport path; generating an object placement condition that determines, among a plurality of positions within a work field of the robot, a position where at least one of the one or more work target objects should be placed before the start of the plurality of operations and a position that should be empty before the start of the plurality of operations, based on the contents of the plurality of operations including the transport path; causing the robot to perform the multiple tasks based on the operation program when the object placement condition is satisfied.
Citation Information
Patent Citations
Photopolymerizable composition containing organopolysiloxane
JP1988099214A
Automatic manufacturing apparatus
JP2010105105A
Control device, robot system, robot, robot operation information generation method, and program
JP2015058493A
Layout setting method, and layout setting device
JP2018020410A
Learning data set preparing method, as well as object recognition and position attitude estimation method
JP2019029021A