Robot system, method for controlling robot system, method for manufacturing article, program and storage medium

JP2025030938APending Publication Date: 2025-03-07CANON KK
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
JP2023136659
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2023-08-24
Publication Date
2025-03-07

AI Technical Summary

Benefits of technology

【0008】 本開示によれば、ロボットの作業の成功率を向上させるのに有利な技術が提供される。

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025030938000001_ABST
    Figure 2025030938000001_ABST
Patent Text Reader

Abstract

To provide a technique advantageous for improving a success rate of work by a robot.SOLUTION: A robot system includes a robot, and a control part for controlling the robot, wherein the control part makes the robot hold first workpiece having a first part, and makes the robot operate so as to bring the first part of the first workpiece into contact with the second part, according to the state of a second region other than a first region corresponding to a second part when viewed in a predetermined direction.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] The present disclosure relates to robot technology. [Background technology]

[0002] When a robot is made to perform an assembly task on a production line in an assembly factory or the like, it is necessary for the workpiece held by the robot to come into contact with the contact portion without interfering with objects around the contact portion. Patent Document 1 discloses planning an assembly task to be performed by a robot. [Prior art documents] [Patent documents]

[0003] [Patent Document 1] Japanese Patent Application Publication No. 10-263957 Summary of the Invention [Problem to be solved by the invention]

[0004] However, even if the robot is operated according to plan, the position of the workpiece held by the robot may shift due to the robot vibrating, and depending on the conditions around the contact point, the robot may fail to perform its work.

[0005] The present disclosure provides advantageous techniques for improving the success rate of robotic tasks. [Means for solving the problem]

[0006] A first aspect of the present disclosure is a robot system comprising a robot and a control unit that controls the robot, wherein the control unit causes the robot to hold a first workpiece having a first portion, and operates the robot so that the first portion of the first workpiece contacts the second portion depending on a state of a second area other than a first area corresponding to a second portion when viewed in a predetermined direction.

[0007] A second aspect of the present disclosure is a control method for a robot system including a robot, the control method comprising: causing the robot to hold a first workpiece having a first portion; and operating the robot so that the first portion of the first workpiece contacts the second portion depending on a state of a second area other than a first area corresponding to the second portion when viewed in a predetermined direction. Effect of the Invention

[0008] The present disclosure provides an advantageous technique for improving the success rate of robot tasks. [Brief description of the drawings]

[0009] [Figure 1] FIG. 1 is an explanatory diagram illustrating a schematic configuration of a robot system according to a first embodiment. [Diagram 2] FIG. 1 is an explanatory diagram of an information processing system according to a first embodiment. [Diagram 3] FIG. 1 is an explanatory diagram of an information processing system according to a first embodiment. [Figure 4] 3(a) and 3(b) are explanatory views showing an example of assembling the assembly according to the first embodiment. FIG. [Diagram 5] 5 is a flowchart showing a process of a position acquisition unit according to the first embodiment. [Figure 6] 5 is an explanatory diagram of a process of a position acquisition unit according to the first embodiment. FIG. [Figure 7] 5 is an explanatory diagram of a process of a position acquisition unit according to the first embodiment. FIG. [Figure 8] 5 is an explanatory diagram of a process of a position acquisition unit according to the first embodiment. FIG. [Figure 9] 5 is an explanatory diagram of a process of a position acquisition unit according to the first embodiment. FIG. [Figure 10] 5 is an explanatory diagram of a process of a position acquisition unit according to the first embodiment. FIG. [Figure 11] 5 is an explanatory diagram of a process of a position acquisition unit according to the first embodiment. FIG. [Figure 12] 5 is an explanatory diagram of a process of a position acquisition unit according to the first embodiment. FIG. [Figure 13]5 is a flowchart showing a process of a command unit according to the first embodiment. [Figure 14] 5(a) to 5(c) are explanatory diagrams of the process of a command unit according to the first embodiment. [Figure 15] FIG. 2 is an explanatory diagram of a GUI according to the first embodiment. [Figure 16] FIG. 11 is an explanatory diagram showing a schematic configuration of a robot system according to a second embodiment. [Figure 17] 11(a) and 11(b) are schematic diagrams showing an assembly produced by an assembly operation according to a comparative example. [Figure 18] 13A and 13B are schematic diagrams for explaining an assembly operation according to a second embodiment, and FIG. 13C is a flowchart showing the processing of a force point determination unit according to the second embodiment. [Figure 19] 13(a) and 13(b) are diagrams illustrating a point of effort determination process according to the second embodiment. [Figure 20] 13(a) and 13(b) are diagrams illustrating a point of effort determination process according to the second embodiment. [Figure 21] 13(a) and 13(b) are explanatory views of a force point determination process according to the second embodiment, and 13(c) is a schematic diagram of the robot hand shown in 13(b). [Figure 22] FIG. 11 is an explanatory diagram of a part of a processing unit according to a third embodiment. [Figure 23] 13(a) and (b) are explanatory views of an assembly which is an example of an article according to a third embodiment. [Figure 24] 13 is a flowchart of an assembly sequence generating process according to the third embodiment. [Diagram 25] FIG. 13 is an explanatory diagram of an example of an assembly tree according to the third embodiment. [Figure 26] 13 is a flowchart of an assembly possibility determination process according to the third embodiment. [Figure 27] FIG. 13 is an explanatory diagram of an assembly possibility determination process according to the third embodiment. [Figure 28] FIG. 13 is an explanatory diagram of an assembly possibility determination process according to the third embodiment. [Figure 29] 13(a) and 13(b) are explanatory diagrams showing an example of a case in which an avoidance position cannot be set according to the third embodiment. [Diagram 30] 13(a) and (b) are explanatory views of an example of an assembly operation according to the third embodiment. [Diagram 31] FIG. 13 is an explanatory diagram showing an example of assembly sequence data according to the third embodiment. [Diagram 32] FIG. 13 is an explanatory diagram of a GUI according to the third embodiment. [Diagram 33] FIG. 13 is an explanatory diagram of an assembly operation according to a fourth embodiment. [Diagram 34] FIG. 13 is an explanatory diagram of an assembly operation according to a fourth embodiment. [Diagram 35] FIG. 13 is an explanatory diagram of an example of an assembly tree according to the fifth embodiment. [Diagram 36] 13A is an explanatory diagram of a workpiece that is a subassembly according to a fifth embodiment, and FIG. 13B is an explanatory diagram of the subassembly according to the fifth embodiment. [Figure 37] FIG. 13 is an explanatory diagram showing a schematic configuration of a robot system according to a sixth embodiment. [Figure 38] FIG. 23 is an explanatory diagram showing an example of force data according to the sixth embodiment. [Figure 39] 13 is a flowchart of a process according to the sixth embodiment. [Diagram 40] 13A to 13C are explanatory diagrams of an assembly operation according to the sixth embodiment. [Diagram 41] 13 is a flowchart of a workpiece supply control process according to the sixth embodiment. [Diagram 42] 13(a) to 13(f) are explanatory diagrams of a workpiece supply control process according to a sixth embodiment. [Diagram 43] FIG. 23 is an explanatory diagram of a supply table and a supply index according to the sixth embodiment. [Diagram 44] 13 is a flowchart of a workpiece removal subroutine according to the sixth embodiment. [Diagram 45] 13 is a flowchart of a trajectory correction subroutine according to the sixth embodiment. [Diagram 46] 13(a) and 13(b) are diagrams illustrating a trajectory correction subroutine according to a sixth embodiment. [Figure 47]13 is a flowchart of an assembly subroutine according to the sixth embodiment. [Figure 48] 13(a) to 13(c) are diagrams illustrating an assembly subroutine according to a sixth embodiment. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0010] Hereinafter, exemplary embodiments of the present disclosure will be described in detail with reference to the drawings. The following embodiments are illustrative of preferred configurations of the present disclosure, and for example, those skilled in the art can appropriately modify the detailed configurations without departing from the spirit of the present disclosure. In addition, in the drawings referred to in the following description of the embodiments, elements indicated by the same reference numbers have the same functions unless otherwise noted. In addition, these drawings are represented diagrammatically for convenience of illustration and explanation, and therefore shapes, sizes, arrangements, etc. may not strictly match between the drawings.

[0011] In the following embodiments, directions are indicated by the XYZ coordinate system, which is a Cartesian coordinate system. The XYZ coordinate system is a robot coordinate system. The X, Y, and Z directions are mutually orthogonal. In the XYZ coordinate system, the XY plane is a horizontal plane, and the XZ and YZ planes are vertical planes. The X and Y directions are horizontal directions. The negative direction of the Z axis is the vertical direction (gravity direction), in other words, the downward direction. The positive direction of the Z axis is the upward direction. The Z direction is also the height direction.

[0012] In the following description, for example, the positive direction of the X-axis refers to the same direction as the X-axis arrow in the XYZ coordinate system, and the negative direction of the X-axis refers to the direction 180 degrees opposite to the direction of the X-axis arrow in the XYZ coordinate system. Also, when simply referring to the X-direction, it refers to the direction parallel to the X-axis, regardless of whether it is in the same direction as the X-axis arrow. The same applies to the Y-axis and Z-axis other than the X-axis.

[0013] [First embodiment] FIG. 1 is an explanatory diagram showing a schematic configuration of a robot system 100 according to a first embodiment. The robot system 100 is placed on a production line in a factory or the like, and is used to manufacture articles. The robot system 100 includes an assembly system 200 and an information processing system 300. The information processing system 300 includes a robot controller 403 and an information processing device 101. The assembly system 200 includes a robot 400 and a position acquisition tool 302.

[0014] The robot controller 403 has the function of a control unit 450 that controls the robot 400. The robot 400 operates under the control of the control unit 450. The robot 400 has a robot arm 401 and a robot hand 402 for holding a workpiece W1. The robot hand 402 is an example of an end effector, and is provided at a predetermined portion of the robot arm 401, for example, at the tip of the robot arm 401.

[0015] A workpiece W2, which is a working area, is arranged around the robot 400. A workpiece W3 and a surrounding object A1 are arranged on the workpiece W2. The control unit 450 causes the robot 400 to hold the workpiece W1 and operates the robot 400 so that the workpiece W1 comes into contact with the workpiece W2. In the first embodiment, the robot 400 assembles the workpiece W1 to the workpiece W2 as an example of bringing the workpiece W1 into contact with the workpiece W2.

[0016] The position acquisition tool 302 is, for example, a digital camera, which is placed at a position above the workpiece W2 and captures an image of a predetermined range including the workpiece W2 in the negative direction of the Z axis. Thus, in the first embodiment, the position acquisition tool 302 captures an image of the predetermined range including the workpiece W2 to generate an image as a state on the workpiece W2.

[0017] The information processing device 101 has the functions of a processing unit 250 including a position acquisition unit 220 and a command unit 240. The processing unit 250 executes information processing. The position acquisition unit 220 acquires an image (e.g., a two-dimensional image) generated by a position acquisition tool 302, and performs processing to acquire position information based on the image.

[0018] The command unit 240 performs a process of generating plan data based on the processing result of the position acquisition unit 220. The plan data is data indicating an operation plan for the robot 400. The plan data includes holding operation data for making the robot hand 402 hold the holding portion of the workpiece W1, and trajectory data indicating the operation of the robot 400 from the posture in which the robot 400 holds the workpiece W1 to the time when the robot 400 brings the workpiece W1 into contact with the workpiece W2.

[0019] The command unit 240 outputs the plan data, which is the processing result, to the robot controller 403. The robot controller 403 executes an assembly operation to manufacture an assembly product, which is an article, by having the robot 400 assemble the workpiece W1 to the workpiece W2 based on the plan data acquired from the command unit 240. The assembly product, which is an article, may be a final product or an intermediate product.

[0020] 2 and 3 are explanatory diagrams of an information processing system 300 according to the first embodiment. The information processing device 101 will be described with reference to FIG. 2. The information processing device 101 includes a CPU (Central Processing Unit) 102, which is an example of a processor. The information processing device 101 also includes a ROM (Read Only Memory) 103, a RAM (Random Access Memory) 104, and a HDD (Hard Disk Drive) 105, which are storage units. The information processing device 101 also includes a recording disk drive 106 and an interface 107, which is an input / output interface. The information processing device 101 also includes a display 108, a keyboard 109, and a mouse 110, which are input / output devices. The display 108 is an example of a display unit, and the keyboard 109 and the mouse 110 are examples of an input unit. The display unit and the input unit may be configured as an integrated touch panel display.

[0021] The CPU 102, the ROM 103, the RAM 104, the HDD 105, the recording disk drive 106, the display 108, the keyboard 109, and the mouse 110 are connected to each other via a bus so that data can be transmitted between them. The ROM 103 stores a basic program related to the operation of the computer. The RAM 104 is a storage device that temporarily stores various data such as the results of the calculation processing of the CPU 102. The HDD 105 records the results of the calculation processing of the CPU 102 and various data acquired from the outside, and also records a program 120 for making the CPU 102 execute information processing of the processing unit 250 including the position acquisition unit 220 and the command unit 240. The program 120 is application software for making the CPU 102 function as the processing unit 250. Thus, the CPU 102 can execute information processing by executing the program 120.

[0022] The recording disk drive 106 can read out various data and programs recorded on the recording disk 150. In the first embodiment, the non-transient recording medium readable by the computer is the HDD 105, and the program 120 is recorded on the HDD 105, but this is not limiting. The program 120 may be recorded on any recording medium as long as it is a non-transient recording medium readable by the computer. As a recording medium for supplying the program 120 to the computer, for example, a flexible disk, a hard disk, an optical disk, a magneto-optical disk, a magnetic tape, a non-volatile memory, etc. can be used. Also, the program 120 may be acquired by the CPU 102 via a network.

[0023] In addition, a position acquisition tool 302 and a robot controller 403 are connected to the information processing device 101 , and image information and information about the robot 400 can be acquired from each device and recorded in the HDD 105 .

[0024] Next, the robot controller 403 will be described with reference to Fig. 3. The robot controller 403 includes a CPU 404, which is an example of a processor. The robot controller 403 also includes a ROM 405, a RAM 406, and a HDD 407 as storage units. The robot controller 403 also includes a recording disk drive 408, and an interface 409, which is an input / output interface.

[0025] The CPU 404, the ROM 405, the RAM 406, the HDD 407, the recording disk drive 408, and the interface 409 are connected to each other via a bus so that data can be transmitted between them. The ROM 405 stores a basic program related to the operation of the computer. The RAM 406 is a storage device that temporarily stores various data such as the results of the calculation processing of the CPU 404. The HDD 407 records the results of the calculation processing of the CPU 404 and various data acquired from the outside, and also records a program 410 for causing the CPU 404 to execute a control process for controlling the robot 400, i.e., the robot arm 401 and the robot hand 402. The program 410 is application software for causing the CPU 404 to function as a control unit 450. Thus, the CPU 404 executes the control process by executing the program 410, and is able to control the operation of the robot 400.

[0026] The recording disk drive 408 can read out various data and programs recorded on the recording disk 440. In this embodiment, the non-transient recording medium readable by a computer is the HDD 407, and the program 410 is recorded on the HDD 407, but this is not limiting. The program 410 may be recorded on any recording medium as long as it is a non-transient recording medium readable by a computer. As a recording medium for supplying the program 410 to a computer, for example, a flexible disk, a hard disk, an optical disk, a magneto-optical disk, a magnetic tape, a non-volatile memory, etc. can be used. Also, the program 410 may be acquired by the CPU 404 via a network.

[0027] In the first embodiment, the information processing and the control processing are executed by a plurality of computers, i.e., a plurality of CPUs 102, 404, but the present invention is not limited to this. The information processing and the control processing may be executed by one computer, i.e., one CPU. In this case, it is sufficient to configure the one CPU to function as the processing unit 250 and the control unit 450.

[0028] 4(a) and 4(b) are explanatory diagrams showing an example of assembling the assembly W0 according to the first embodiment. Fig. 4(a) is a diagram of the assembly W0 viewed in the Z direction, specifically, in the negative direction of the Z axis. The Z direction is an example of a predetermined direction. Fig. 4(b) is a diagram of the assembly W0 viewed in the Y direction, specifically, in the positive direction of the Y axis.

[0029] The workpiece W2 is, for example, a flat base member. A plurality of workpieces, for example, the workpiece W1 and the workpiece W3, are assembled on the base member, the workpiece W2, to manufacture an assembly W0, which is an example of an article. The workpiece W1 assembled on the workpiece W2 is adjacent to the workpiece W3 and the surrounding object A1. Hereinafter, an example will be described in which the workpiece W1 is assembled on the workpiece W2 so that the workpiece W1 is adjacent to the workpiece W3 and the surrounding object A1. In the first embodiment, the workpiece W1 is an example of a first workpiece, and the workpiece W2 is an example of a second workpiece. A plurality of workpieces including the workpiece W1 can be assembled on the workpiece W2. The plurality of workpieces are, for example, block-shaped members that can be fitted together with each other.

[0030] The workpiece W1 has an attachment part T1 which is an example of a contact part, and the workpiece W2 has an attachment part T2 which is an example of a contact part. The attachment part T1 of the workpiece W1 is attached to the attachment part T2 of the workpiece W2 by contacting the attachment part T2. The attachment part T1 is an example of a first part, and the attachment part T2 is an example of a second part. In this manner, the attachment part T2 is a part to which the attachment part T1 of the workpiece W1 is attached.

[0031] Fig. 5 is a flowchart showing the process of the position acquisition unit 220 according to the first embodiment. First, in step S100, the position acquisition unit 220 performs a process of acquiring position information. Figs. 6 to 12 are explanatory diagrams of the process of the position acquisition unit 220 according to the first embodiment.

[0032] In the first embodiment, first, the position acquisition tool 302 acquires information regarding the presence or absence of the workpiece W3 and the surrounding object A1 on the workpiece W2. The position acquisition tool 302 is, for example, a digital camera, and generates information regarding the presence or absence of objects such as the workpiece W3 and the surrounding object A1 on the workpiece W2 as an image 303 shown in Fig. 6. The image 303 is a captured image.

[0033] The position acquisition tool 302 faces in the negative direction of the Z axis, and captures an image of a subject viewed in the negative direction of the Z axis from the position acquisition tool 302. An image 303 obtained by capturing an image includes a workpiece image W2I corresponding to the workpiece W2, a workpiece image W3I corresponding to the workpiece W3, and a surrounding object image A1I corresponding to the surrounding object A1.

[0034] The position acquisition tool 302 may be installed anywhere as long as it can acquire information about whether or not objects such as the workpiece W3 and the surrounding object A1 are present on the workpiece W2. The number of position acquisition tools 302 is not limited to one, and there may be multiple position acquisition tools. The position acquisition tool 302 may be a camera that acquires two-dimensional images, or a camera capable of three-dimensional measurement.

[0035] The position acquisition unit 220 converts the image 303 into position information 221 as shown in FIG. 7. When converting the image 303 into position information 221, the positions and orientations of the workpiece W3 and the surrounding object A1 are measured using known techniques such as two-dimensional matching, three-dimensional matching, or three-dimensional point cloud. The measurement results include information on the positions and orientations of the workpiece W3 and the surrounding object A1. The information on the positions and orientations of the workpiece W3 and the surrounding object A1 includes information on the heights of the workpiece W3 and the surrounding object A1. The position acquisition unit 220 converts information indicating the measurement results into position information 221 based on various parameters input by the user in a graphical user interface (GUI) 500 shown in FIG. 15, which will be described later.

[0036] As shown in FIG. 4(b), a reference plane S0 is set on the upper surface of the workpiece W2. The reference plane S0 is a plane parallel to the XY plane. A virtual plane S1 is defined at a position that is an integer multiple of a predetermined height H1 relative to the reference plane S0 in the Z direction, for example, at the position of the predetermined height H1. The virtual plane S1 is a plane parallel to the XY plane.

[0037] Image 303 is an image obtained by capturing an image of an area including workpiece W2, workpiece W3, and surrounding object A1 viewed in the Z direction (negative direction of the Z axis). Workpiece image W2I is an image of workpiece W2 viewed in the Z direction. The inner area surrounded by the outline of workpiece W2 viewed in the Z direction is defined as area R0 projected onto virtual plane S1 in the Z direction. In the first embodiment, area R0 is a part of virtual plane S1. Area R0 is an example of a predetermined area. In the example of FIG. 7, area R0 is a rectangular area. In the first embodiment, the inner area surrounded by the outline of workpiece image W2I corresponds to area R0. Note that the method of setting area R0 is not limited to this, and area R0 can be set arbitrarily.

[0038] The position information 221 includes array data indicating whether or not an object is present in the region R0 (i.e., in the virtual plane S1). In the example of the first embodiment, a workpiece W3 and a surrounding object A1 are placed on the workpiece W2, and the workpiece W3 and the surrounding object A1 may exist in the region R0. As shown in Fig. 7, the region R0 is divided into a plurality of elements 222 (e.g., 6 rows x 6 columns). Each element 222 is, for example, rectangular, and is arranged in a matrix.

[0039] Of the multiple elements 222, an identification code "1" is associated with an element 222 in which the workpiece W3 or the surrounding object A1 is present, and an identification code "0" is associated with an element 222 in which neither the workpiece W3 nor the surrounding object A1 is present. In this manner, different identification codes are associated with each element 222 depending on whether or not an object is present in the region R0. By assigning an identification code to each element 222, it is possible to express where the workpiece W3 or the surrounding object A1 is present on the workpiece W2.

[0040] If the presence or absence of objects such as the workpiece W3 and the surrounding object A1 can be expressed using the identification code, the position information 221 can take various forms such as a two-dimensional array, a three-dimensional array, a polygon mesh, etc. Furthermore, the number of elements 222 may be any number, and the identification code associated with the element 222 may be any identification code, which can be set by the user in the GUI 500 described later.

[0041] In the first embodiment, the position information 221 is expressed by a two-dimensional array, and an identification code "1" is associated with an element 222 in which a workpiece W3 or a surrounding object A1 exists, and an identification code "0" is associated with an element 222 in which no workpiece W3 or surrounding object A1 exists.

[0042] Next, in step S101, the position acquisition unit 220 acquires information on a region R1 of the region R0 that corresponds to the assembly part T2 (FIG. 4(b)) to which the assembly part T1 of the workpiece W1 is to be assembled as viewed in the Z direction. The region R1 is a region obtained by projecting the assembly part T2 onto a virtual plane S1 in the Z direction. In other words, as viewed in the Z direction, the region R1 is a region of the outer shape of the assembly part T2. For example, the region R1 is a region surrounded by a thick solid line in the position information 221 shown in FIG. 8. The dashed line portion in the image 303 shown in FIG. 8 corresponds to the region R1 (assembly part T2). The region R1 is an example of a first region.

[0043] Next, in step S102, the position acquisition unit 220 acquires information on region R2 other than region R1 within region R0. Region R2 is a region in region R0 other than the attachment part T2 when viewed in the Z direction. Region R2 is a region different from region R1. For example, region R2 is a region surrounded by a thick solid line in the position information 221 shown in FIG. 9. Region R2 is an example of a second region. In this way, regions R1 and R2 are regions within the virtual plane S1 at the position of height H1 in the Z direction. As described above, the position acquisition unit 220 identifies regions R1 and R2 in element 222 units.

[0044] Next, in step S103, the position acquisition unit 220 performs an adjacency determination as to whether or not an element 222 with an identification code "1" corresponding to an object such as the workpiece W3 or the surrounding object A1 is adjacent to the region R1 in the region R2. If the element 222 with the identification code "1" is adjacent to the region R1, the object corresponding to the element 222 may become an obstacle when assembling the workpiece W1 to the workpiece W2.

[0045] The position acquisition unit 220 sets a flag 224 for the position information 221 with reference to the identification code linked to the element 222 in the region R2 adjacent to the region R1. The flag 224 is set as information indicating an adjacent direction when the identification code "1" is linked to the element 222 in the region R2 adjacent to the region R1. The adjacent direction is the direction from the element 222 in the region R1 to the element 222 linked to the identification code "1" adjacent to the element 222 in the region R1. For example, in the case of FIG. 10, the identification code "1" is linked to the element 222 in the region R2 on the upper and left side of the region R1, so the flag 224 is set to "upper and left".

[0046] If the result of the determination is that at least one flag 224 is set, that is, if at least one of the elements 222 adjacent to the region R1 has an identification code "1", then step S103 is YES, and the position acquisition unit 220 proceeds to the process of step S104.

[0047] If the result of the determination is that none of the flags 224 are set, i.e., if all of the elements 222 adjacent to the region R1 have the identification code "0", then step S103 is NO, and the position acquisition unit 220 sets multiple positions where the workpiece W1 passes through the region R1 in the negative direction of the Z axis, and terminates the processing.

[0048] In this way, the image 303 includes a range including the regions R1 and R2, and the position acquisition unit 220 acquires the state of the region R2, such as the presence or absence of an object, by performing image processing on the image 303.

[0049] 11, the position acquisition unit 220 provisionally determines an avoidance position 225 of the workpiece W11 for performing assembly work without interference between the workpiece W1 and objects such as the workpiece W3 and the surrounding object A1. In the first embodiment, the position acquisition unit 220 provisionally determines, as the avoidance position 225, a position shifted from the position of the region R1 by an avoidance distance preset in the GUI 500 described later in the direction opposite to the adjacent direction indicated by the flag 224. The avoidance distance is the amount of shift, and can be set by the number of elements 222, for example.

[0050] Here, interference refers to the fact that the attachment part T1 of the workpiece W1 comes into contact with, abuts against, or collides with a part other than the attachment part T2, such as an object such as the workpiece W3 or the surrounding object A1. For example, an example of the case in which the workpiece W1 interferes with the workpiece W3 or the surrounding object A1 is when the attachment part T1 of the workpiece W1 comes into contact with, abuts against, or collides with the upper surface of the workpiece W3 or the upper surface of the surrounding object A1 when the workpiece W1 is moved in the negative direction of the Z axis.

[0051] When flag 224 is set to "up and left" as shown in FIG. 10 and avoidance distance is set to "1", position acquisition unit 220 provisionally determines, as avoidance position 225, a position shifted by one element 222 in each of two directions, "down and right", from the position of region R1 as shown in FIG. 11.

[0052] Next, in step S105, the position acquisition unit 220 determines whether or not an object such as the workpiece W3 or the surrounding object A1 is adjacent to the provisionally determined avoidance position 225. In the first embodiment, as shown in Fig. 12, the position acquisition unit 220 refers to an element 222 adjacent to the provisionally determined avoidance position 225, obtains a flag 224 in the same manner as in step S103, and performs an adjacency determination based on the flag 224.

[0053] As a result of the determination, if at least one flag 224 is set, that is, if at least one of the elements 222 adjacent to the provisionally determined avoidance position 225 has the identification code "1", the answer in step S105 is YES, and the position acquisition unit 220 returns to the processing in step S104, and provisionally determines, as a new avoidance position 225, a position obtained by further shifting the provisionally determined avoidance position 225 in the opposite direction to the adjacent direction indicated by the flag 224.

[0054] If the result of the determination is that none of the flags 224 are set, that is, if all of the elements 222 adjacent to the provisionally determined avoidance position 225 have the identification code "0", the answer in step S105 is NO, and the position acquisition unit 220 determines the provisionally determined avoidance position 225 as the actual avoidance position 225, and ends the process.

[0055] As described above, the position acquisition unit 220 obtains information, such as the flag 224, indicating whether or not there is an object adjacent to the region R1 in the region R2 as the state of the region R2, and determines the avoidance position 225 based on the flag 224.

[0056] Next, a description will be given of the processing of the command unit 240. Fig. 13 is a flowchart showing the processing of the command unit 240 according to the first embodiment. Figs. 14(a) to 14(c) are explanatory diagrams of the processing of the command unit 240 according to the first embodiment.

[0057] The command unit 240 performs a process of generating a trajectory of the robot 400. First, in step S200, the command unit 240 acquires information on the offset position 241 by converting information on the avoidance position 225 into the coordinate system of the robot 400. A known coordinate conversion algorithm is used for the conversion of the coordinate system. The offset position 241 is a position where the workpiece W1 is separated from the workpiece W3 and the surrounding object A1 when viewed in the Z direction.

[0058] Next, in step S201, the command unit 240 acquires a target position 242 in the attachment part T2. The target position 242 is an example of a third position. The target position 242 may be acquired by transforming the position of the region R1 into the coordinate system of the robot 400.

[0059] Next, in step S202, the command unit 240 acquires a lowered position 243 shown in Fig. 14(a). The lowered position 243 is an example of a first position. The lowered position 243 is a position where the workpiece W1 is separated from the workpiece W3 and the surrounding object A1 when viewed in the Z direction. The lowered position 243 is a position lowered in the negative direction of the Z axis from the offset position 241.

[0060] It is preferable that the command unit 240 determines the lowering position 243 based on the height of the workpiece W3 and the surrounding object A1 so that the attachment part T1, which is the bottom of the workpiece W1, is located at a position lower than the height positions of the workpiece W3 and the surrounding object A1. The command unit 240 may also set the lowering position 243 based on information input to the GUI 500, which will be described later. In this case, the user may input the lowering position 243 to the GUI 500 taking into consideration the heights of the workpiece W3 and the surrounding object A1.

[0061] The surrounding object A1 has two ends 11, 12 in the Z direction. End 12 is located on the opposite side to end 11. End 11 is in contact with workpiece W2. End 12 is open upward. The workpiece W3 has two ends 31, 32 in the Z direction. End 32 is located on the opposite side to end 31. End 31 is in contact with workpiece W2. End 32 is open upward. Each end 11, 31 is an example of a first end, and each end 12, 32 is an example of a second end.

[0062] In the first embodiment, the lowered position 243 is a position where the attachment portion T1 of the workpiece W1 is located between the end 11 and the end 12 in the Z direction. Also, the lowered position 243 is a position where the attachment portion T1 of the workpiece W1 is located between the end 31 and the end 32 in the Z direction.

[0063] Next, in step S203, the command unit 240 acquires the previous position 244 shown in FIG. 14(b). The previous position 244 is an example of the second position. The previous position 244 is determined so that its position in the XY directions is the same as the target position 242, and its position in the Z direction, which is the height direction, is the same as the lowered position 243. That is, the previous position 244 is a position where the attachment part T1 of the workpiece W1 overlaps with the attachment part T2 when viewed in the Z direction. Also, the previous position 244 is a position separated from the target position 242 in the positive direction of the Z axis.

[0064] In the first embodiment, the immediately preceding position 244 is a position where the attachment portion T1 of the workpiece W1 is located between the end 11 and the end 12 in the Z direction. Also, the immediately preceding position 244 is a position where the attachment portion T1 of the workpiece W1 is located between the end 31 and the end 32 in the Z direction.

[0065] In the first embodiment, the workpiece W1 is assembled to the workpiece W2 adjacent to the surrounding object A1 and the workpiece W3. Therefore, when the workpiece W1 moves to the previous position 244, it is preferable that the side wall 23 of the workpiece W1 contacts the side wall 13 of the surrounding object A1 and the side wall 33 of the workpiece W3.

[0066] Finally, in step S204, the command unit 240 generates trajectory data B1 of the robot 400 shown in FIG. 14(c) based on the results of the processes in steps S200 to S203. In the first embodiment, the command unit 240 generates the trajectory data B1 of the robot 400 so that the workpiece W1 follows the positions 241, 243, 244, and 242 in this order. The positions 241, 243, 244, and 242 are teaching points, and the trajectory data B1 is generated by interpolating between the teaching points. That is, the command unit 240 generates the trajectory data B1 for operating the robot 400 so that the workpiece W1 moves from the position 241 to the position 242 via the positions 243 and 244.

[0067] The planning data including the holding motion data and trajectory data B1 of the robot 400 generated by processing of the command unit 240 is input to the robot controller 403, and the control unit 450 of the robot controller 403 operates the robot 400 in accordance with the planning data instructed by the command unit 240, thereby causing the robot 400 to perform assembly work.

[0068] The control unit 450 operates the robot 400 so that the workpiece W1 moves in the order of the positions 241, 243, 244, and 242 set in the above steps S202 to S203. After the side wall 23 of the workpiece W1 comes into contact with the side wall 33 of the workpiece W3 and the side wall 13 of the surrounding object A1, the workpiece W1 moves in the negative direction of the Z axis along the workpiece W3 and the surrounding object A1 to reach the target position 242. As a result, the attachment portion T1 of the workpiece W1 is attached to the attachment portion T2 of the workpiece W2. Therefore, during the assembly work, interference between the workpiece W1 and the workpiece W3 or the surrounding object A1 is reduced while the workpiece W1 is being moved downward.

[0069] The positions 241, 243, 244, and 242 may be expressed by a six-dimensional vector representing translation and rotation, such as (x, y, z, Rx, Ry, Rz), or may be expressed by the rotation angles of multiple joints of the robot 400.

[0070] According to the above configuration, the processing unit 250 generates trajectory data for the robot 400 based on the state of the area R2 surrounding the area R1, and the control unit 450 operates the robot 400 according to the trajectory data, so that the control unit 450 can perform the task of assembling the attachment portion T1 of the work W1 to the attachment portion T2 of the work W2 according to the state of the area R2 so that the work W1 does not interfere with the work W3 and the surrounding object A1.

[0071] 15 is an explanatory diagram of a GUI 500 according to the first embodiment. The GUI 500 is a user interface image related to settings for obtaining the position information 221 and trajectory data.

[0072] The processing unit 250 displays the GUI 500 on the display 108, which is an example of a display unit. The GUI 500 has windows 501 to 505. An operation (input) to the GUI 500 by a user is performed directly or via a pointing device such as a mouse 110. The user is also an operator.

[0073] Window 501 is an image display window that displays image 303 acquired from position acquisition tool 302. Window 502 is a conversion result display window that displays position information 221 obtained by converting image 303. Window 503 is a setting window that sets various parameters when converting image 303 into position information 221. Window 504 is a robot operation calculation window that can calculate the operation of robot 400 and perform processing for executing the operation of robot 400. Window 505 is a log display window that displays a log of the processing results in GUI 500.

[0074] A detailed description will be given of the window 503. The window 503 includes an array type selection button 510, an array parameter input field 511, an image load button 512, a conversion start button 513, and a save button 514.

[0075] The array type selection button 510 is an interface that can be operated by the user, and is used to set the type of array of the elements 222 that make up the position information 221. The position acquisition unit 220 executes a process corresponding to the array type selection button 510 selected by the user. Three types, a two-dimensional array, a three-dimensional array, and a polygon mesh, are illustrated in Fig. 15.

[0076] The array parameter input field 511 is an interface used to set the number of divisions of the elements 222 and a numerical value indicating the presence or absence of an object to be linked to the elements 222 when converting the image 303 into the position information 221. The array parameter input field 511 is an example of a first user interface that accepts the setting of parameters for dividing the region R0. In the example of FIG. 15, a secondary array having elements 222 of 6 rows and 6 columns is created, and it is set so that "1" is linked to the elements 222 in which an object exists and "0" is linked to the elements 222 in which no object exists.

[0077] Image load button 512 is an interface that can be operated by the user, and accepts an instruction to display image 303 in window 501. Position acquisition unit 220 causes image 303 to be displayed in window 501 when image load button 512 is operated by the user.

[0078] Conversion start button 513 is an interface that can be operated by the user, and when the user operates conversion start button 513, position acquisition unit 220 starts a process of converting image 303 into position information 221. When the conversion process ends, position acquisition unit 220 displays the obtained position information 221 in window 502.

[0079] The save button 514 is an interface that can be operated by the user, and when the save button 514 is operated by the user, the position acquisition unit 220 saves the converted position information 221 and various parameters selected in the window 503 in a storage device such as the HDD 105.

[0080] A detailed description will be given of the window 504. The window 504 has an avoidance distance input field 515, a height input field 516, a movement calculation start button 517, and a movement execution button 518.

[0081] The avoidance distance input field 515 is an example of a second user interface that accepts settings of the shift amounts in the X and Y directions of the offset position 241 and the lowered position 243 relative to the previous position 244 and the target position 242.

[0082] The avoidance distance input field 515 is input with information on the avoidance distance used in the process of generating the trajectory data of the robot 400 described above. The avoidance distance information may be specified, for example, as a distance in millimeters, or may be specified as the number of elements 222 that make up the position information 221, or may be specified in any format that includes information similar to these.

[0083] The height input field 516 is an example of a third user interface that accepts the setting of a height component of the previous position 244 with respect to the target position 242 as a reference.

[0084] The height input field 516 is input with height information used in the process of generating the trajectory data of the robot 400. The height information may be specified, for example, as a distance in millimeters from the reference plane S0, or as a ratio to the height of the workpiece W3 or surrounding object A1 present in the vicinity, or may be specified in any format that includes similar information.

[0085] The movement calculation start button 517 is an interface that can be operated by the user, and when the movement calculation start button 517 is operated by the user, the command unit 240 performs a process of generating trajectory data for the robot 400 based on an image showing the position information 221, the information input in the avoidance distance input field 515, and the information input in the height input field 516.

[0086] When the execution of the process for generating trajectory data of the robot 400 is completed, the command unit 240 displays information on the avoidance position 225 and the area R1 in the window 502. If the conversion process of the position information 221 is not completed when the motion calculation start button 517 is operated by the user, the command unit 240 does not execute the generation of trajectory data and displays an error message in the window 504.

[0087] The action execution button 518 is an interface that can be operated by a user, and when the action execution button 518 is operated by a user, the command unit 240 transmits plan data including the holding action data and the trajectory data to the control unit 450 of the robot controller 403. The control unit 450 causes the robot 400 to perform an assembly task for an assembly product according to the plan data acquired from the command unit 240.

[0088] As described above, the processing unit 250 displays the GUI 500 on the display 108, which can be operated by the user, so that the user can check the image 303, the position information 221, the avoidance position 225, and the area R1 on the GUI 500, and further, the user can easily cause the control unit 450 to execute the actions of the robot 400 corresponding to these through the GUI 500.

[0089] If interference occurs with the workpiece W1 held by the robot hand 402, the position or posture of the workpiece W1 may shift relative to the robot hand 402, or the workpiece W1 may fall from the robot hand 402, which may result in failure to assemble the workpiece W1 to the target part.

[0090] In contrast, according to the first embodiment, the processing unit 250 generates holding operation data according to the state of the area R2 surrounding the area R1, and the control unit 450 operates the robot 400 based on the holding operation data, so that the control unit 450 can make the robot 400 perform an appropriate task according to the state of objects such as the workpiece W3 and the surrounding object A1. That is, the control unit 450 operates the robot 400 so that the attachment portion T1 of the workpiece W1 contacts (attaches) the attachment portion T2 of the workpiece W2 according to the state of the area R2. This reduces interference of the workpiece W1 with surrounding objects, and can improve the success rate of the task of the robot 400 to assemble the workpiece W1 to the workpiece W1.

[0091] [Modification of the first embodiment] In the first embodiment, the state of the region R2 is acquired by performing image processing on the image 303, which is an image obtained by capturing an image of the real space, but the present invention is not limited to this. The processing unit 250 may acquire the state of the region R2 by a computer simulation using a three-dimensional virtual model in a virtual space.

[0092] Second Embodiment A second embodiment of the present disclosure will be described. In the following, elements with the same reference symbols as those in the first embodiment will have substantially the same configurations and functions as those described in the first embodiment unless otherwise specified, and differences from the first embodiment will be mainly described.

[0093] 16 is an explanatory diagram showing a schematic configuration of a robot system 100A according to the first embodiment of the second embodiment. The robot system 100A includes an assembly system 200 and an information processing system 300A. The information processing system 300A includes a robot controller 403 and an information processing device 101A.

[0094] The information processing device 101A has the functions of a processing unit 250A including a position acquisition unit 220, a force point determination unit 320, and a command unit 240. The processing unit 250A has the functions of the processing unit 250 in the first embodiment plus the functions of the force point determination unit 320. The hardware configuration of the information processing device 101A is similar to the hardware configuration of the information processing device 101 shown in Fig. 2, and therefore description of the hardware configuration of the information processing device 101A will be omitted.

[0095] The force point determination unit 320 calculates the force point and the point of action of the force acting on the workpiece W1 relative to the position of the holding portion of the workpiece W1 by the robot hand 402 through calculation processing, and can determine the holding operation data of the robot 400 based on the calculated force point and point of action.

[0096] In the robot system 100A shown in Fig. 16, after the position acquisition unit 220 performs the position acquisition process shown in Fig. 5, the force point determination unit 320 performs the force point determination process, then the command unit 240 performs the trajectory generation process for the robot 400 shown in Fig. 13, and finally the control unit 450 causes the robot 400 to perform the task. Since the processes of the position acquisition unit 220, the command unit 240, and the control unit 450 are similar to those in the first embodiment, their explanations will be omitted and only the process of the force point determination unit 320 will be described.

[0097] Fig. 17(a) is a schematic diagram showing an assembly W0A assembled by an assembly operation of a comparative example. Fig. 17(b) is a schematic diagram showing an assembly W0B assembled by an assembly operation of a comparative example. Fig. 17(a) shows an example in which a workpiece W3 has already been assembled on a workpiece W2, and a workpiece W1 is assembled on the workpiece W3. Fig. 17(b) shows an example in which a workpiece W3 and a workpiece W4 have already been assembled on a workpiece W2, and a workpiece W1 is assembled across the workpiece W3 and the workpiece W4. Note that the following description will be given assuming that the heights of the multiple workpieces assembled on the workpiece W2, which is a base member, are the same as each other.

[0098] 17(a), when the robot hand 402 assembles the workpiece W1 to the workpiece W3, the axis of the point of application of the assembly force by the robot 400 is offset from the axis of the point of application of the assembly force. Therefore, a moment is generated in the workpiece W1, and there is a risk of failure in assembling the workpiece W1 to the workpiece W3.

[0099] Therefore, in the second embodiment, the force point determination unit 320 determines the point of action and the force point, determines the holding portion of the workpiece W1 held by the robot hand 402 based on the force point, and determines the holding operation data of the robot 400. This makes it possible to reduce failures in assembling the workpiece W1.

[0100] The force point determination process by the force point determination unit 320 will be described in detail below. Figures 18(a) and 18(b) are schematic diagrams for explaining the assembly work according to the second embodiment. Note that Fig. 18(a) illustrates an example of assembling the assembly W0A shown in Fig. 17(a), and Fig. 18(b) illustrates an example of assembling the assembly W0B shown in Fig. 17(b).

[0101] As shown in Fig. 18(a), a reference plane S0 is set on the top surface of the workpiece W2. A virtual plane S1 is defined at a position that is an integer multiple of a predetermined height H1 relative to the reference plane S0 in the Z direction, for example, at the position of the predetermined height H1, and a virtual plane S2 is defined at a position that is twice the predetermined height H1. The virtual planes S1 and S2 are planes parallel to the XY plane. The virtual plane S1 is the first step, and the virtual plane S2 is the second step.

[0102] Fig. 18(c) is a flowchart showing the processing of the point of force determination unit 320 according to the second embodiment. Fig. 19(a) and Fig. 19(b) are explanatory diagrams of the point of force determination processing according to the second embodiment. Note that Fig. 19(a) illustrates an example of assembling the assembly W0A shown in Fig. 17(a), and Fig. 19(b) illustrates an example of assembling the assembly W0B shown in Fig. 17(b).

[0103] An area R0 is defined by projecting the inner area surrounded by the outline of the workpiece image W2I onto the virtual planes S1 and S2 in the Z direction. The area R0 corresponds to a predetermined area.

[0104] In step S300, the force point determination unit 320 acquires, through calculation processing, the action point 321 of the assembly force applied by the robot 400. The action point 321 is defined as a part of the element 222 of the position information 221.

[0105] In the example of FIG. 19(a), the portion indicated by the dashed line is the position where the workpiece W1 and the workpiece W3 fit together, and is the point of action 321. The point of action 321 is included in region R1. In the example of FIG. 19(b), the portion indicated by the dashed line is the position where the workpiece W1 and the workpieces W3 and W4 fit together, and is the point of action 321. The point of action 321 is included in region R1.

[0106] As shown in Fig. 19(a), the action point 321 may be composed of two or more adjacent elements 222. Also, as shown in Fig. 19(b), the action point 321 may include elements 222 that are not adjacent to each other.

[0107] Figures 20(a) and 20(b) are explanatory diagrams of the force point determination process according to the second embodiment. Note that Figure 20(a) illustrates an example of assembling the assembly W0A shown in Figure 17(a), and Figure 20(b) illustrates an example of assembling the assembly W0B shown in Figure 17(b).

[0108] In step S301, the force point determination unit 320 determines a force point 322 of the assembly force based on one or more points of action 321, i.e., all of the determined points of action 321. The force point 322 is defined as the center of gravity of the element 222 including the point of action 321. That is, the force point 322 is determined so that an axis extending in the Z direction that passes through the force point 322 overlaps with an axis extending in the Z direction that passes through the point of action 321 (center of gravity). Then, the force point determination unit 320 determines a portion of the workpiece W1 held by the robot hand 402 based on the force point 322.

[0109] Fig. 21(a) and Fig. 21(b) are explanatory diagrams of the force point determination process according to the second embodiment. Fig. 21(a) illustrates an example of assembling the assembly W0A shown in Fig. 17(a), and Fig. 21(b) illustrates an example of assembling the assembly W0B shown in Fig. 17(b). Fig. 21(c) is a schematic diagram of the robot hand 402 shown in Fig. 21(b) viewed in the Y direction.

[0110] 21(a) and 21(b), the force point determination unit 320 generates holding motion data D1 of the robot 400 based on the force point 322. That is, the force point determination unit 320 acquires the held portion D11 of the workpiece W1 by calculation processing using the force point 322 and the action point 321.

[0111] According to the force point determination unit 320 configured as above, based on the force point 322 and the action point 321 of the assembly force acting on the workpieces W1 and W3, the holding operation data D1 of the robot 400 is determined so that the force point 322 and the action point 321 are not offset. Therefore, it is possible to reduce assembly failures caused by the generation of a moment when assembling the workpiece W1 to the workpiece W3.

[0112] Note that the second embodiment or the modified example of the second embodiment may be combined with at least one of the first embodiment and the modified example of the first embodiment.

[0113] Third Embodiment A third embodiment of the present disclosure will be described. In the following, elements with the same reference symbols as those in the first or second embodiment will have substantially the same configurations and functions as those described in the first or second embodiment unless otherwise specified, and differences from the first and second embodiments will be mainly described.

[0114] 22 is an explanatory diagram of a part of a processing unit according to the third embodiment. In the third embodiment, the function of a generation processing unit 330 is added to the processing unit 250 of the first embodiment or the processing unit 250A of the second embodiment. Below, an example will be described in which the function of the generation processing unit 330 is added to the processing unit 250A of the second embodiment.

[0115] In the third embodiment, the generation processing unit 330 determines an assembly sequence of a plurality of workpieces as a work procedure of the robot 400. Assembly sequence data 335, which is data indicating the work procedure, is included in the plan data instructing the control unit 450 described in the first embodiment.

[0116] 23(a) and 23(b) are explanatory diagrams of an assembly W0C, which is an example of an article according to the third embodiment. The assembly W0C includes a workpiece W2 that is a base member, and four workpieces W1-A, W1-B, W1-C, and W1-D that are assembled on the workpiece W2. Note that the number of workpieces that are assembled on the workpiece W2 is not limited to four, and may be two or more. In the third embodiment, a method for automatically generating an assembly order for the workpieces W1-A, W1-B, W1-C, and W1-D will be described.

[0117] 22 generates assembly sequence data 335 for the workpieces W1-A to W1-D by computer simulation using a three-dimensional virtual model, and generates trajectory data corresponding to each of the workpieces W1-A to W1-D by computer simulation using the three-dimensional virtual model. The generation of the trajectory data is as described in the first embodiment.

[0118] The generation processing unit 330 shown in FIG. 22 includes an assembly data reading unit 332, an assembly sequence generation unit 333, and an assembly sequence output unit 334.

[0119] The assembly data reading unit 332 reads the assembly data 331. The assembly data 331 includes shape data created by, for example, 3D CAD. In the example of FIG. 23(a) and FIG. 23(b), the assembly data 331 includes shape data of the workpieces W1-A, W1-B, W1-C, and W1-D, and data on the relative positional relationship of the workpieces W1-A, W1-B, W1-C, and W1-D. The assembly sequence generating unit 333 generates assembly sequence data 335 of the workpieces W1-A to W1-D for assembling the assembly W0C by an assembly sequence generating process described later, based on the assembly data 331 read by the assembly data reading unit 332. The assembly sequence output unit 334 outputs the assembly sequence data 335 generated by the assembly sequence generating unit 333.

[0120] A detailed description will be given of the assembly sequence generation process by the assembly sequence generation unit 333. Fig. 24 is a flowchart of the assembly sequence generation process according to the third embodiment.

[0121] In step S 400 , the assembly sequence generating unit 333 creates an assembly tree 336 based on the assembly data 331 .

[0122] 25 is an explanatory diagram of an example of an assembly tree 336 according to the third embodiment. The assembly tree 336 includes nodes and edges connecting the nodes. The assembly tree 336 includes a plurality of assembly sequence candidates. The assembly sequence candidates are an example of work procedure candidates. In the assembly tree 336, the "A" node corresponds to the workpiece W1-A, the "B" node corresponds to the workpiece W1-B, the "C" node corresponds to the workpiece W1-C, and the "D" node corresponds to the workpiece W1-D.

[0123] The assembly tree 336 is a directed graph consisting of nodes and edges, as shown in Fig. 25. For example, when a subassembly consisting of workpieces W1-A and W1-B is assembled by attaching workpiece W1-B to workpiece W1-A, the assembly operation of the subassembly is expressed by connecting the node "A" to the node "A, B" with the edge "B". The assembly tree 336 is expressed by expanding from the initial state "INITIAL" to the completed states "A, B, C, D".

[0124] The initial state "INITIAL" is, for example, a state in which the workpiece W2 is placed at a predetermined position around the robot 400. The assembly tree 336 shown in Fig. 25 illustrates an example in which the workpiece W1-A is assembled to the workpiece W2 from the initial state "INITIAL", but the assembly tree 336 is created in the same manner for the workpieces W1-B, W1-C, and W1-D.

[0125] In step S401, the assembly sequence generation unit 333 starts a tree search loop including the processes of steps S402 to S405. In the third embodiment, the assembly sequence generation unit 333 uses a known tree search algorithm to search the assembly tree 336 in order from the node in the initial state "INITIAL" to repeatedly perform the processes of steps S402 to S405 until it reaches the terminal node.

[0126] In step S402, the assembly sequence generating unit 333 selects an edge on which the processes in and after step S403 are to be executed based on a tree search algorithm.

[0127] Next, in step S403, the assembly sequence generating unit 333 starts a subroutine for performing an assembly feasibility determination process for the selected edge. In the third embodiment, the assembly sequence generating unit 333 determines whether or not the assembly work can be performed by the robot 400 by performing a process such as a simulation using the actual robot 400 or a computer simulation using a virtual robot.

[0128] Next, in step S404, the assembly sequence generating unit 333 judges whether or not the assembly is possible based on the result of the process in step S403. If the judgment is false, the process returns to step S402, and another edge is selected and the process is repeated. If the judgment is true, the process proceeds to step S405.

[0129] In step S405, the assembly sequence generation unit 333 adds an assembly cost to the selected edge. The assembly cost is an index representing the ease of assembly, calculated from the presence or absence of the avoidance position 225 in assembly. For example, if the assembly can be performed even without the avoidance position 225, the assembly cost may be set to "0", and if the avoidance position 225 exists, the assembly cost may be set to "+1". Also, for example, the assembly cost may be set according to the operation time when the robot 400 performs the assembly operation.

[0130] Next, in step S406, the assembly sequence generating unit 333 judges whether the end node has been reached in the tree search. If the judgment is false, the tree search loop is repeated. If the judgment is true, the process proceeds to step S407.

[0131] In step S407, the assembly sequence generation unit 333 selects, from among a plurality of paths connecting the node of the initial state “INITIAL” of the assembly tree 336 to the completed state node, a path (assembly sequence) that minimizes the total assembly cost, thereby generating one assembly sequence data 335.

[0132] The assembly feasibility determination process will be described in detail below. Fig. 26 is a flowchart of the assembly feasibility determination process according to the third embodiment. Below, a case where the assembly feasibility determination process is performed by computer simulation will be described.

[0133] Fig. 27 is an explanatory diagram of the assembly feasibility determination process according to the third embodiment. In step S500, the assembly sequence generation unit 333 creates a virtual working area 337 shown in Fig. 27. The virtual working area 337 is array data representing the presence or absence of workpieces W1-A to W1-D that constitute the assembly W0C. The virtual working area 337 can have the same type of format as the position information 221 in the first embodiment, and can be arbitrarily set in the GUI 500.

[0134] In the third embodiment, a three-dimensional array is used to store "1" in elements where an object such as a workpiece exists and "0" in elements where an object does not exist, taking into account the state of the nodes before and after the selected edge.

[0135] For example, when the state in which workpiece W1-A is attached to workpiece W2 is converted into a virtual working area 337, it becomes as shown in Fig. 27. Fig. 27 illustrates the arrangement of elements 222 on a first virtual plane S1, the arrangement of elements 222 on a second virtual plane S2, and the arrangement of elements 222 on a third virtual plane S3.

[0136] Next, in step S501, the assembly sequence generating unit 333 acquires an area R1 and an area R2 according to the virtual working area 337 and the states of the nodes before and after the selected edge. The method of acquiring the areas R1 and R2 is the same as the method described in Fig. 8 and Fig. 9 of the first embodiment.

[0137] Next, in step S502, the assembly sequence generating unit 333 determines whether the workpiece W1 to be assembled can be assembled in the region R1.

[0138] Fig. 28 is an explanatory diagram of the assembly possibility determination process according to the third embodiment. As shown in Fig. 28, even if an attempt is made to assemble a workpiece W1-D onto a workpiece W1-C in the virtual working area 337 in the initial state, it is determined that the workpieces W1-C and W1-A are not present below the workpiece W1-D, and therefore the workpieces are determined to be impossible to assemble.

[0139] If the determination in step S502 is false (S502: NO), the assembly sequence generating unit 333 determines that assembly is impossible (S508) and ends the subroutine of the assembly feasibility determination process. If the determination in step S502 is true (S502: YES), the assembly sequence generating unit 333 proceeds to the process of step S503.

[0140] In step S503, the assembly sequence generating unit 333 acquires the avoidance position 225. In the third embodiment, the avoidance position 225 is acquired by the same processing as in Figs. 10 to 12 of the first embodiment.

[0141] However, there are cases where the avoidance position 225 cannot be set. Fig. 29(a) and Fig. 29(b) are explanatory diagrams showing examples of cases where the avoidance position 225 according to the third embodiment cannot be set. For example, as shown in Fig. 29(a), when flags 224 are set in two opposing directions, the avoidance position 225 cannot be set. Also, as shown in Fig. 29(b), when the result of performing adjacency determination at the provisionally determined avoidance position 225 is that it returns to the original position, the avoidance position 225 cannot be set.

[0142] Therefore, in the next step S504, the assembly sequence generation unit 333 judges whether or not there is an avoidance position 225. If the judgment is false (S504: NO), the assembly sequence generation unit 333 judges that assembly is impossible (S508) and ends the subroutine of the assembly possibility judgment process.

[0143] If the determination is true (S504: YES), the assembly sequence generating unit 333 proceeds to the process of step S505. In step S505, the assembly sequence generating unit 333 obtains information on the point of action 321 and the point of force 322 from the point of force determining unit 320.

[0144] In the third embodiment, the point of action 321 and the point of force 322 are found by the same processing as that described with reference to FIGS. 19(a), 19(b), 20(a) and 20(b) in the second embodiment.

[0145] Next, in step S506, the assembly sequence generating unit 333 determines whether or not the point of action 321 and the point of force 322 are on one axis extending in the Z direction. Figures 30(a) and 30(b) are explanatory diagrams of an example of an assembly operation according to the third embodiment.

[0146] For example, as shown in Fig. 30(a), when the workpiece W1 is assembled to the workpiece W3-A, the point of action 321 and the point of force 322 are on the same axis, so that the determination in step S506 is true.

[0147] On the other hand, for example, as shown in Fig. 30(b), when the workpiece W1 is assembled to the workpiece W3-B, the point of application 321 of the assembly force is also present at the boundary between the workpieces W3-A and W3-B. In such a case, the point of application 322 does not exist on the same axis as the point of application 321. Therefore, the determination in step S506 is determined to be false.

[0148] If the determination in step S506 is false (S506: NO), the assembly sequence generating unit 333 determines that assembly is impossible (S508) and ends the subroutine of the assembly feasibility determination process. If the determination is true (S506: YES), the assembly sequence generating unit 333 determines that assembly is possible (S507) and ends the subroutine of the assembly feasibility determination process.

[0149] In this manner, the assembly sequence generating unit 333 selects one assembly sequence data 335 from among a plurality of assembly sequence candidate data.

[0150] The details of the processing of the assembly sequence output unit 334 will be described. Here, an example will be described in which the assembly W0C shown in Fig. 23(a) and Fig. 23(b) is assembled in the order of workpieces W1-A, W1-B, W1-C, and W1-D. Fig. 31 is an explanatory diagram showing an example of assembly sequence data 335 according to the third embodiment.

[0151] The assembly order data 335 includes an assembly index 338 and assembly information associated with the assembly index 338. The assembly index 338 is a number indicating an assembly order. In FIG. 31, assembly information is assigned in the row direction corresponding to each number of the assembly index 338. The assembly information is information necessary for assembly. The assembly order data 335 can be expressed as table data in which the assembly information corresponding to the assembly index 338 is described in the column direction.

[0152] The assembly sequence data 335 includes information on the target position 242, the offset position 241, the lowered position 243, and the previous position 244. The information on these positions may be expressed, for example, as a six-dimensional vector representing translation and rotation such as (x, y, z, Rx, Ry, Rz), may be expressed as the rotation angle of each joint of the robot 400, may be expressed as (row, column) of the element 222 of the position information 221, or may be expressed in any manner as long as it includes information similar to these.

[0153] The assembly sequence data 335 may also include various information necessary for the robot system 100 to execute an assembly task. For example, the assembly sequence data 335 may include information on the color of an object such as a workpiece or a surrounding object, or information on the shape of an object such as a workpiece or a surrounding object.

[0154] The color information and the shape information may be expressed as a character string or a numerical value. The color information may be expressed as a character string such as "red, blue, green", or as a numerical value such as "0, 1, 2", or as a dictionary combining characters and numerical values, such as "0: red, 1: blue, 2, green". The shape information may be expressed as a character string such as "work size A", or as a numerical value such as "0, 1, 2", or as a dictionary combining characters and numerical values, such as "0: work size A, 1: work size B".

[0155] The assembly sequence data 335 may be in various file formats (CSV file, TXT file, etc.) that can be recorded in the HDD 105, etc. Also, the assembly sequence data 335 may be directly stored in the RAM 104, and the assembly sequence data 335 may be in any format as long as the assembly work can be performed based on the assembly sequence data 335.

[0156] The command unit 240 reads the assembly information in ascending order of index numbers of the assembly sequence data 335, and generates trajectory data for the robot 400 based on the assembly information. The control unit 450 controls the robot 400 based on the generated trajectory data to perform the assembly work.

[0157] In addition, in Fig. 31, four workpieces W1-A, W1-B, W1-C, and W1-D included in the assembly W0C shown in Fig. 23(a) and Fig. 23(b) are used as an example for explanation, but the number of workpieces is not limited to this. The number of rows in the assembly sequence data 335 may be set according to the number of workpieces to be assembled. For example, when assembling an assembly W0C consisting of N workpieces, the assembly sequence data 335 may have N rows of data.

[0158] According to the above configuration, it is possible to easily teach the assembly procedure for assembling the assembly W0C. In addition, it is possible to assemble the assembly W0C from a plurality of workpieces in an efficient assembly sequence, thereby improving the success rate of assembly.

[0159] 32 is an explanatory diagram of a GUI 520 according to the third embodiment. The GUI 500 is a user interface image related to settings for obtaining the assembly sequence data 335. The generation processing unit 330 can be executed using the GUI 520.

[0160] The GUI 520 has a plurality of windows 530 to 550. The window 530 is a window related to setting of a model. The window 540 is a window related to setting of an assembly sequence. The window 550 is a window related to display of assembly sequence data.

[0161] First, window 530 has a 3D model display window 531, an array display window 532, a 3D model load button 533, an array parameter load button 534, an array type selection button 510, an array parameter input field 511, and a conversion start button 513.

[0162] The 3D model load button 533 is an interface that can be operated by the user, and is used to load a 3D model representing the assembly WOC by the generation processing unit 330. The loaded 3D model is displayed in a 3D model display window 531.

[0163] The array parameter read button 534 is an interface that can be operated by the user. When the button 534 is operated by the user, the generation processing unit 330 reads the array parameters saved using the GUI 500 described in the first embodiment, and updates the values ​​of the array type selection button 510 and the array parameter input field 511.

[0164] If the array parameters are not saved in the GUI 500, the user may determine the setting items by arbitrarily changing the values ​​of the array type selection button 510 and the array parameter input field 511.

[0165] The conversion start button 513 is an interface that can be operated by the user, and when the user operates the motion calculation start button 517, the generation processing unit 330 converts the assembly W0C into the virtual working area 337. When the conversion is completed, the conversion result is displayed in the array display window 532.

[0166] The window 540 has an animation display window 541 , a tree display window 542 , an assembly sequence generation button 543 , an assembly animation forward button 544 , an assembly animation reverse button 545 , and an assembly sequence data save button 546 .

[0167] The assembly sequence generation button 543 is an interface that can be operated by the user, and when the user operates the assembly sequence generation button 543, the generation processing unit 330 generates the assembly sequence data 335 based on the various items set in the window 530.

[0168] The generation processing unit 330 displays the generated assembly sequence data 335 in a window 550. Furthermore, the generation processing unit 330 draws the assembly sequence (work procedure) for assembling the assembly W0C in animation format in an animation display window 541. Furthermore, the generation processing unit 330 displays an assembly tree 336 used when creating the assembly sequence data 335 in a tree display window 542. The nodes of the assembly tree 336 and the assembly sequence data 335 corresponding to the animation being displayed in the animation display window 541 are highlighted in each window.

[0169] The assembly order forward button 544 and the assembly order reverse button 545 are interfaces that can be operated by the user, and when the assembly order forward button 544 or the assembly order reverse button 545 is operated, the generation processing unit 330 can advance the assembly order displayed in the animation display window 541 in the forward or reverse direction.

[0170] The assembly sequence data save button 546 is an interface that can be operated by the user, and when the assembly sequence data save button 546 is operated, the generation processing unit 330 saves the assembly sequence data 335 in the HDD 105 etc. The method of saving may be in the various file formats (CSV file, TXT file, etc.) described above, or the data may be directly held in the RAM 104.

[0171] According to the GUI 520 configured as above, the user can confirm the assembly sequence through animation using the GUI 520. This allows the user to intuitively understand the assembly sequence.

[0172] Furthermore, the user can generate an assembly sequence while changing various parameters related to the generation of the assembly sequence on the GUI 520. Therefore, the user can easily adjust the parameters so that the desired assembly sequence data 335 is obtained.

[0173] The third embodiment or the modified example of the third embodiment may be combined with at least one of the first embodiment, the modified example of the first embodiment, the second embodiment, and the modified example of the second embodiment.

[0174] [Fourth embodiment] A fourth embodiment of the present disclosure will be described. In the following, elements with the same reference symbols as those in the first to third embodiments have substantially the same configurations and functions as those described in the first to third embodiments unless otherwise specified, and differences from the first to third embodiments will be mainly described.

[0175] 33 and 34 are explanatory diagrams of an assembly operation according to the fourth embodiment. The workpiece W10 is composed of a combination of at least two workpieces. For example, the workpiece W10 is assembled by assembling the workpiece W1 to the workpiece W3. The workpiece W10 is a subassembly (unit) obtained by assembling two or more parts.

[0176] 34, the robot hand 402 holds the workpiece W10 and attaches the workpiece W10 to the workpiece W3, thereby assembling the workpiece W20, which is an assembly product. In this case, the workpiece W10 may be the first workpiece, and the workpiece W3 may be the second workpiece.

[0177] In addition, the workpiece W20, which is an assembly product, may be a subassembly. The workpiece W20 may be held by the robot hand 402 and assembled to another workpiece. In this case, the workpiece W20 may be a first workpiece. Furthermore, the other workpiece may be a second workpiece.

[0178] In addition, the fourth embodiment or the modified example of the fourth embodiment may be combined with at least one of the first embodiment, the modified example of the first embodiment, the second embodiment, the modified example of the second embodiment, the third embodiment, and the modified example of the third embodiment.

[0179] Fifth embodiment A fifth embodiment of the present disclosure will be described. In the following, elements having the same reference symbols as those in the first to fourth embodiments will have substantially the same configurations and functions as those described in the first to fourth embodiments unless otherwise specified, and differences from the first to fourth embodiments will be mainly described.

[0180] The generation processing unit 330 (assembly sequence generation unit 333) of the third embodiment can generate an assembly sequence based on a workpiece, which is a subassembly of the fourth embodiment. FIG. 35 is an explanatory diagram of an example of an assembly tree 336E according to the fifth embodiment. Below, an example of generating an assembly sequence for the assembly W0C shown in FIG. 23(a) and FIG. 23(b) described in the third embodiment will be used. The assembly tree 336E shown in FIG. 35 is a directed graph composed of nodes and edges, similar to the assembly tree 336 shown in FIG. 25. In the fifth embodiment, the assembly sequence generation unit 333 generates assembly sequence data 335 based on the assembly tree 336E.

[0181] 36(a) is an explanatory diagram of a workpiece W1-ACD which is a subassembly according to the fifth embodiment. For example, a case will be described in which a workpiece W1-ACD which is a subassembly made up of workpieces W1-A, W1-C, and W1-D is assembled by assembling a workpiece W1-CD which is a subassembly made up of workpieces W1-C and W1-D to a workpiece W1-A.

[0182] In the assembly tree 336E, workpiece W1-ACD consisting of workpieces W1-A, W1-C, and W1-D is represented by connecting the "A" node and the "A, C, D" nodes with the "C, D" edge.

[0183] In order to assemble the workpiece W1-CD, it is necessary to determine whether or not the workpiece W1-CD is assemblable. Fig. 36(b) is an explanatory diagram of the workpiece W1-CD, which is a subassembly according to the fifth embodiment. When assembling the workpiece W1-CD, the assembly sequence generating unit 333 develops an assembly tree 336E-1 in which the workpiece W1-CD consisting of the works W1-C and W1-D is in a completed state, and generates an assembly sequence for assembling the assembly tree 336E-1 by the same process as that shown in the flowchart of Fig. 24.

[0184] As described above, according to the fifth embodiment, the assembly sequence generation unit 333 can generate assembly sequence data 335 for assembling the assembly W0C based on the subassemblies, that is, the work W1-CD and the work W1-ACD, and therefore can generate the assembly sequence data 335 more efficiently than in the third embodiment.

[0185] In addition, the fifth embodiment or a modified example of the fifth embodiment may be combined with at least one of the first embodiment, the modified example of the first embodiment, the second embodiment, the modified example of the second embodiment, the third embodiment, the modified example of the third embodiment, the fourth embodiment, and the modified example of the fourth embodiment.

[0186] Sixth Embodiment A sixth embodiment of the present disclosure will be described. In the following, elements with the same reference symbols as those in the first to fifth embodiments have substantially the same configurations and functions as those described in the first to fifth embodiments unless otherwise specified, and differences from the first to fifth embodiments will be mainly described.

[0187] 37 is an explanatory diagram showing a schematic configuration of a robot system 100F according to the sixth embodiment. The robot system 100F of the sixth embodiment is configured by combining the various systems described in the first to fifth embodiments. The robot system 100F includes an assembly system 200F, a workpiece supply system 210, and an information processing system 300F.

[0188] The information processing system 300F includes a robot controller 403 and an information processing device 101F. The hardware configuration of the information processing device 101F is similar to the hardware configuration of the information processing device 101 described with reference to FIG. 2 in the first embodiment.

[0189] The assembly system 200F includes a robot 400 including a robot arm 401 and a robot hand 402, a position acquisition tool 302, and an assembly state detection tool 431.

[0190] The robot hand 402 may have, for example, two fingers, and may hold the outer periphery or inner periphery of the workpiece W1 using the two fingers. Note that the robot hand 402 is not limited to a grip type, and may use various methods such as a suction type or a vacuum suction type as long as it is capable of holding the workpiece W1.

[0191] The position acquisition tool 302 is, for example, a digital camera, and has a function of acquiring information on the presence or absence of objects such as the workpiece W3 and surrounding object A1 present on the workpiece W2 as an image 303 as shown in Fig. 6. The position acquisition tool 302 may be installed anywhere as long as it can acquire information on the presence or absence of objects present around the robot 400. The number of position acquisition tools 302 is not limited to one, and may be multiple. The position acquisition tool 302 may be a camera that acquires a two-dimensional image, or a camera capable of three-dimensional measurement.

[0192] The assembly state detection tool 431 is, for example, a force sensor, and has a function of acquiring information on the force applied to the robot hand 402 as force data 432. The assembly state detection tool 431 is disposed, for example, between the robot arm 401 and the robot hand 402.

[0193] FIG. 38 is an explanatory diagram showing an example of force data 432 according to the sixth embodiment. The force data 432 includes, for example, forces Fx, Fy, and Fz acting in the translation directions of the x-axis, y-axis, and z-axis in a coordinate system based on the tip of the robot arm 401, and moments Mx, My, and Mz which are rotational forces acting around each axis. The assembly state detection tool 431 may be installed anywhere as long as it is possible to obtain force data 432 indicating the force acting on the robot hand 402. The number of the assembly state detection tool 431 is not limited to one, and may be multiple. The force sensor, which is an example of the assembly state detection tool 431, may employ various methods such as an electrical resistance type using a strain gauge, a capacitance type that captures a change in capacitance according to a force, a piezoelectric type that uses a piezoelectric element to generate a voltage according to a force, and an optical type that optically reads deformation according to a force.

[0194] The workpiece W2 may include a workpiece W3 and a surrounding object A1. However, depending on the assembly work being performed, the surrounding object A1 may not be present, and depending on the progress of the work, the workpiece W3 may not be present. For example, immediately after the start of the assembly work, the workpiece W3 may not be present on the workpiece W2.

[0195] The CPU 404 (FIG. 3) of the robot controller 403 executes the program 410 (FIG. 3) to function as a control unit 450F. The control unit 450F controls the robot 400 based on robot control information (trajectory data, etc.) received from the information processing device 101F. As a result, the robot 400 performs assembly work under the control of the control unit 450F of the robot controller 403.

[0196] The workpiece supply system 210 includes at least one workpiece supply shifter 211 and a workpiece supply controller 212 .

[0197] The workpiece supply shifter 211 has a supply tray 213. At least one workpiece 214 is aligned and arranged on the supply tray 213. The workpiece supply shifter 211 supplies the workpiece 214 to the assembly system 200.

[0198] The workpiece supply controller 212 transmits the supply state of the workpieces 214 to the information processing device 101F, and also controls the workpiece supply shifter 211 based on control information of the workpiece supply shifter 211 received from the information processing device 101F.

[0199] The CPU 102 (FIG. 2) of the information processing device 101F executes the program 120 (FIG. 2) to function as a processing unit 250F. The processing unit 250F includes a generation processing unit 330, a control processing unit 340, and a work supply control unit 345.

[0200] The generation processing unit 330 has an assembly data reading unit 332 that reads assembly data 331, an assembly sequence generation unit 333, a position acquisition unit 220, a force point determination unit 320, and an assembly sequence output unit 334. The generation processing unit 330 outputs assembly sequence data 335 by the same process as that described in the third embodiment.

[0201] The control processing unit 340 includes an assembly sequence data reading unit 341 , a supply state acquiring unit 342 , a trajectory correcting unit 343 , an assembly state control unit 344 , and a command unit 240 .

[0202] The assembly sequence data reading unit 341 reads the assembly sequence data 335 output by the assembly sequence output unit 334 .

[0203] The supply status acquisition unit 342 acquires information about the workpiece 214 to be assembled next that is present on the supply tray 213 by transmitting a supply status acquisition signal to the workpiece supply controller 212, and transmits the information about the workpiece 214 to the command unit 240.

[0204] The trajectory correction unit 343 performs a trajectory correction process for the robot 400, which will be described later, based on the information about the position acquired from the position acquisition tool 302.

[0205] The assembly state control unit 344 performs an assembly state control process, which will be described later, based on the information on the assembly state acquired from the assembly state detection tool 431 .

[0206] The command unit 240 executes a robot trajectory generation process, which will be described later, based on the assembly sequence data 335 read by the assembly sequence data reading unit 341, the processing result of the trajectory correction unit 343, and the processing result of the assembly state control unit 344. The result of the robot trajectory generation process is input to the control unit 450F of the robot controller 403. The control unit 450F controls the robot 400 based on the trajectory data acquired from the command unit 240, and the robot 400 executes the task of assembling the workpiece W1 to the workpiece W2.

[0207] The workpiece supply control unit 345 executes a workpiece supply control process, which will be described later. The execution result is input to the workpiece supply controller 212, and the workpiece supply controller 212 controls the operation of the workpiece supply shifter 211.

[0208] The processing of the information processing system 300F will be described in detail. Fig. 39 is a flowchart of the processing according to the sixth embodiment. Fig. 40 is an explanatory diagram of the assembly operation according to the sixth embodiment. Fig. 40 shows a schematic diagram of trajectory data B2 with each position as a teaching point.

[0209] In step S600 shown in Fig. 39, control unit 450F moves robot 400 to work origin 350 shown in Fig. 40. Work origin 350 is an arbitrary point set within the movable range of robot 400, and is set at a position that does not interfere with objects present around robot 400.

[0210] Next, in step S601, the assembly sequence data reading unit 341 reads the assembly sequence data 335 as shown in FIG.

[0211] Next, in step S 602 , the control processing unit 340 initializes the assembly index 338 .

[0212] Next, in step S603, the processing unit 250F and the control unit 450F start an assembly loop made up of steps S604 to S619.

[0213] Next, in step S604, the control processing unit 340 reads, from the assembly sequence data 335, the assembly information linked to the assembly index 338 corresponding to the current state.

[0214] Next, in step S605, the control processing unit 340 sends a removal information request signal to the work supply control unit 345, whereby the work supply control unit 345 performs work supply control processing, and the control processing unit 340 obtains information on the removal position of the work 214 to be removed next from the work supply control unit 345.

[0215] Next, in step S606, the control processor 340 starts a workpiece removal subroutine, which will be described later.

[0216] Next, in step S607, the control processing unit 340 sends an instruction to the control unit 450F to move the robot 400 to the acquisition position 353 shown in FIG. 40, and the control unit 450F moves the robot 400 to the acquisition position 353 in accordance with the instruction.

[0217] Next, in step S608, the control processing unit 340 acquires an image 303 as shown in FIG. 6 from the position acquisition tool 302 using the position acquisition tool 302, and converts the image 303 into position information 221 by the conversion process described in the first embodiment.

[0218] Next, in step S609, the control processing unit 340 starts a subroutine of a trajectory correction process for correcting the trajectory data of the robot 400, which will be described later.

[0219] Next, in step S610, the control processor 340 judges whether the trajectory correction process subroutine has ended normally. If the trajectory correction process subroutine has not ended normally, that is, if the judgment is false (S610: NO), the control processor 340 proceeds to the process of step S612, and terminates the process shown in FIG. 39 as an abnormality.

[0220] When the trajectory correction process subroutine ends normally, that is, when the determination is true (S610: YES), in step S611, the control unit 450F moves the robot 400 to the offset position 241 in FIG.

[0221] Next, in step S613, the control unit 450F moves the robot 400 to the lowered position 243 in FIG.

[0222] Next, in step S614, control unit 450F moves robot 400 to previous position 244 in FIG.

[0223] Next, in step S615, control unit 450F starts an assembly subroutine, which will be described later.

[0224] Next, in step S616, control unit 450F determines whether the assembly subroutine has ended normally.

[0225] If the assembly subroutine has not ended normally, that is, if the determination is false (S616: NO), the control unit 450F proceeds to the process of step S618, and terminates the process of Fig. 39 as an abnormality. If the assembly subroutine has ended normally, that is, if the determination is true (S616: YES), the control unit 450F proceeds to the process of step S617, and updates the assembly index 338 to the next assembly index 338.

[0226] Next, in step S619, the control unit 450F moves the robot 400 to the standby position 355 in Fig. 40. The standby position 355 is set to a position where the robot 400 will not interfere with objects such as the surrounding object A1 or the workpiece W3 when going to pick up the next workpiece 214 after the execution of assembly. If the robot 400 does not interfere with objects such as the surrounding object A1 or the workpiece W3, the standby position 355 may be the same as the work origin 350 described above, or may be set according to the execution status of the assembly work.

[0227] Next, in step S620, the control processing unit 340 judges whether or not the process has been performed for all the assembly indexes 338. If the judgment is false, the process returns to step S603 and continues. If the judgment is true, the control processing unit 340 ends the process of FIG.

[0228] Fig. 41 is a flowchart of the work supply control processing according to the sixth embodiment. Fig. 42(a) to Fig. 42(f) are explanatory diagrams of the work supply control processing according to the sixth embodiment. Hereinafter, the work supply control processing by the work supply control unit 345 related to the acquisition of the take-out position in step S605 will be described in detail.

[0229] First, in step S700, the workpiece supply control unit 345 moves the workpiece supply shifter 211 to the shifter origin 215 in FIG. 42(a).

[0230] 42(b), the workpiece 214 is placed on the supply tray 213. Note that as long as the workpiece 214 can be placed on the supply tray 213, the method of placement is not important.

[0231] Next, in step S702, the work supply control unit 345 judges whether the state of the supply tray 213 is normal. For example, as shown in FIG. 42(b), if the work 214 is not present at the position where the work 214 should be placed, or if the work 214 is placed at a position of the wrong color, the work supply control unit 345 judges that the state of the supply tray 213 is abnormal. If the state of the supply tray 213 is abnormal (S702: NO), the work supply control unit 345 issues a warning to the user (operator) that the state of the supply tray 213 is abnormal in step S704, and returns to the processing of step S701. Placement of the work 214 is performed until the state of the supply tray 213 becomes normal. If the state of the supply tray 213 is normal as shown in FIG. 42(c) (S702: YES), the work supply control unit 345 proceeds to the processing of step S703.

[0232] In step S703, the workpiece supply control unit 345 moves the workpiece supply shifter 211 to the shifter supply position 216 shown in FIG.

[0233] 43 is an explanatory diagram of the supply table 217 and the supply index 218 according to the sixth embodiment. In step S705, the work supply control unit 345 initializes the supply table 217 and the supply index 218. In the supply table 217, information indicating the position of the workpiece 214 that has been supplied to the supply tray 213 is written in the row direction corresponding to the supply index 218.

[0234] The information representing the position of the workpiece 214 may be expressed, for example, as a six-dimensional vector representing translation and rotation, such as (x, y, z, Rx, Ry, Rz), or may be expressed as a rotation angle of each joint of the robot 400, or may be expressed in any manner as long as it includes information similar to these. In the supply table 217, a plurality of pieces of information relating to the position of the workpiece 214 are described in the column direction. The supply table 217 is expressed, for example, as table data with M columns.

[0235] Next, in step S706, the workpiece supply control unit 345 starts a supply loop configured with the processes of steps S707 to S712.

[0236] In step S707, the work supply control unit 345 waits until the removal information request signal transmitted in step S605 of FIG. 39 is received.

[0237] In step S708, the work supply control unit 345 judges whether or not a removal information request signal has been received. If the judgment is false (S708: NO), the work supply control unit 345 returns to the processing of step S707 and waits. If the judgment is true (S708: YES), the work supply control unit 345 proceeds to the processing of step S709. In step S709, the work supply control unit 345 transmits information regarding the position of the workpiece 214 to be removed next based on the supply table 217 to the control processing unit 340 in step S605 of FIG.

[0238] This allows the robot 400 to remove the workpieces 214 that have been supplied to the supply tray 213, and therefore allows the robot 400 to sequentially remove the workpieces 214 from the supply tray 213, as shown in FIGS. 42(e) and 42(f).

[0239] Next, in step S710, the workpiece supply control unit 345 determines whether the work by the robot 400 is completed. In the sixth embodiment, it is determined whether the assembly index 338 has reached the last line of the assembly sequence data 335, similarly to the processing of step S620 in FIG.

[0240] If the determination is true (S710: YES), the workpiece supply control unit 345 ends the processing of Fig. 41. If the determination is false (S710: NO), the workpiece supply control unit 345 proceeds to the processing of step S711.

[0241] In step S711, the workpiece supply control unit 345 updates the supply index 218. For example, if the workpiece 214 corresponding to "1" of the supply index 218 has been removed from the supply tray 213 in the immediately preceding removal process, the workpiece supply control unit 345 deletes the row from the supply table 217. Note that in the removal process of the workpieces 214, the workpieces may be removed in ascending or descending order of the numbers of the supply index 218, or the workpiece 214 corresponding to the specified supply index 218 may be removed by adding the supply index 218 to the removal information request signal.

[0242] Next, in step S712, the work supply control unit 345 judges whether or not all of the workpieces 214 placed on the supply tray 213 have been removed. If the judgment is true (S712: YES), the work supply control unit 345 returns to step S700 and continues the process. If the judgment is false (S712: NO), the work supply control unit 345 proceeds to the process of step S713. In step S713, the work supply control unit 345 returns to step S706, which is the top of the supply loop, and continues the process.

[0243] The workpiece pick-up subroutine that starts in the process of step S606 in Fig. 39 will be described in detail. Fig. 44 is a flowchart of the workpiece pick-up subroutine according to the sixth embodiment. Below, a process will be described in which the control processing unit 340 transmits an instruction to the control unit 450F, and the control unit 450F controls the robot 400 according to the instruction.

[0244] In step S800 in Fig. 44, the control unit 450F operates the robot 400 so that the robot hand 402 moves to the pick-up upper position 351 in Fig. 40. The pick-up upper position 351 is a position that is vertically upwardly elevated by a predetermined height from the workpiece pick-up position 352 obtained in step S605 in Fig. 39. The predetermined height may be set in the GUI 500 in Fig. 15.

[0245] Next, in step S801, the control unit 450F operates the robot 400 so that the robot hand 402 moves to the workpiece removal position 352 in FIG.

[0246] Next, in step S802, the control unit 450F causes the robot hand 402 to hold the workpiece 214 on the supply tray 213. The workpiece 214 held by the robot hand 402 is referred to as workpiece W1.

[0247] Next, in step S803, the control unit 450F moves the robot hand 402 holding the workpiece W1 to the pick-up upper position 351.

[0248] Through the above process, the robot hand 402 can hold the workpiece 214 and take out the workpiece 214 from the supply tray 213.

[0249] The trajectory correction subroutine for the robot 400, which starts with the processing of step S609 in Fig. 39, will be described in detail. Fig. 45 is a flowchart of the trajectory correction subroutine according to the sixth embodiment. Fig. 46(a) and Fig. 46(b) are explanatory diagrams of the trajectory correction subroutine according to the sixth embodiment.

[0250] In step S900 of FIG. 45, the trajectory correction unit 343 reads the image 303 from the position acquisition tool 302.

[0251] Next, in step S901, the trajectory correction unit 343 performs measurement by image processing to obtain the measured target position 245 as shown in Fig. 46(a). In the image processing in step S901, a known pattern matching technique or the like is used. The target position 245 is preferably described in a coordinate system based on the robot 400, but may be expressed as a six-dimensional vector representing translation and rotation, such as (x, y, z, Rx, Ry, Rz), or may be expressed as the rotation angle of each joint of the robot 400.

[0252] Next, in step S902, the trajectory correction unit 343 judges whether the measurement in step S901 was successful. If the measurement in step S901 was not successful, that is, if the judgment is false (S902: NO), in step S905, the trajectory correction unit 343 returns "correction abnormal" and ends the subroutine. If the measurement in step S901 was successful, that is, if the judgment is true (S902: YES), the trajectory correction unit 343 proceeds to the process of step S903.

[0253] In step S903, the trajectory correction unit 343 updates the target position 242. In the sixth embodiment, as shown in Fig. 46(b), the trajectory correction unit 343 updates the target position 242 by overwriting the target position 242 with the actually measured target position 245. That is, the trajectory correction unit 343 updates the trajectory data B2.

[0254] After the process of step S903 is completed, in step S904, the trajectory correction unit 343 returns "correction normal" and ends the subroutine.

[0255] Through the above process, the target position 242 generated from design information such as 3D CAD can be corrected to the target position 245 according to the actual state of the workpiece W2, and then the assembly operation can be started.

[0256] The assembly subroutine that starts in step S615 of Fig. 39 will be described in detail. Fig. 47 is a flowchart of the assembly subroutine according to the sixth embodiment. Figs. 48(a) to 48(c) are explanatory diagrams of the assembly subroutine according to the sixth embodiment. An example will be described in which the workpiece W1 is assembled to the workpiece W3. The workpiece W1 is an example of the first workpiece, and the workpiece W3 is an example of the second workpiece. The workpiece W1 has an assembly part T1 that is an example of the first part, and the workpiece W3 has an assembly part T2 that is an example of the second part.

[0257] First, in step S1000 in Fig. 47, the control unit 450F moves the robot hand 402 holding the workpiece W1 to the start position 354 in Fig. 40. The start position 354 is a position where the force control of the robot 400 starts.

[0258] In step S1001, the control unit 450F starts acquiring the force data 432 from the assembly state detection tool 431.

[0259] Next, in step S1002, the control unit 450F starts the operation of the robot 400 so that the robot hand 402 descends, as shown in FIG. 48(a).

[0260] Next, in step S1003, the control unit 450F determines whether or not the workpiece W1 has come into contact with a contact target present at the target position 242. The determination as to whether or not contact has occurred is performed using a first threshold value set in advance.

[0261] 48(b), a case will be described in which the bottom surface of the workpiece W1, which is the attachment portion T1, and the top surface of the workpiece W3, which is the attachment portion T3, are in contact with each other. In a simulation using an actual machine, the control unit 450F measures the value of the force data 432 when the bottom surface of the workpiece W1 and the top surface of the workpiece W3 are brought into contact with each other, and sets the value of the force data 432 as a first threshold value.

[0262] In the assembly operation, the control unit 450F determines whether the bottom surface of the workpiece W1 and the top surface of the workpiece W3 have come into contact with each other by determining whether the current force data 432 exceeds the first threshold value. As described above, the control unit 450F acquires the force data 432 of the force acting on the robot 400, and determines whether the operation of bringing the attachment portion T1 of the workpiece W1 into contact with the attachment portion T3 of the workpiece W3 has been successful, based on the force data 432.

[0263] If the determination is false (S1003: NO), control unit 450F returns to step S1002 and continues the process. If the determination is true (S1003: YES), control unit 450F proceeds to the process of step S1004.

[0264] In step S1004, the control unit 450F operates the robot 400 to further lower the robot hand 402.

[0265] Next, in step S1005, the control unit 450F determines whether or not an overload (excessive force) is applied to the robot hand 402. The determination of whether or not an overload is applied is performed using a preset second threshold. The second threshold used to determine the overload is a preset value.

[0266] In the assembly work, the control unit 450F judges whether an overload is applied to the robot hand 402 by judging whether the current force data 432 exceeds the second threshold value. If an overload is applied to the robot hand 402, that is, if the judgment is true (S1005: YES), in step S1008, the control unit 450F returns "assembly abnormal" and ends the assembly subroutine. If an overload is not applied to the robot hand 402, that is, if the judgment is false (S1005: NO), the control unit 450F proceeds to the process of step S1006.

[0267] In step S1006, the control unit 450F determines whether the current position of the robot hand 402 and the force data applied to the robot hand 402 have reached preset values, as shown in FIG. 48(c).

[0268] In the sixth embodiment, the control unit 450F compares the current position 246 of the workpiece W1 with the target position 242, and determines whether the current position 246 of the workpiece W1 has exceeded the target position 242. The control unit 450F also determines whether the current force data 432 has exceeded a third threshold value. The third threshold value is a preset value. For example, the value of the force data 432 when the workpiece W1 reaches the target position 242 is measured in advance, and the value of the force data 432 is set as the third threshold value. As described above, the control unit 450F acquires the force data 432 of the force acting on the robot 400, and determines whether the task of fitting the attachment portion T1 of the workpiece W1 to the attachment portion T3 of the workpiece W3 has been successful, based on the force data 432.

[0269] If at least one of the two determinations is false (S1006: NO), control unit 450F returns to step S1004 and continues processing. If both determinations are true (S1006: YES), in step S1007, control unit 450F returns "Assembly normal" and ends the assembly subroutine.

[0270] By the above process, assembly work can be performed using not only the target position 242 but also the force data 432. Therefore, it is possible to reduce the occurrence of insufficient assembly, for example, when the robot hand 402 reaches the target position 242 but the workpiece W1 is not pushed enough into the workpiece W3.

[0271] In addition, the sixth embodiment or the variant of the sixth embodiment may be combined with at least one of the first embodiment, the variant of the first embodiment, the second embodiment, the variant of the second embodiment, the third embodiment, the variant of the third embodiment, the fourth embodiment, the variant of the fourth embodiment, the fifth embodiment, and the variant of the fifth embodiment.

[0272] The present disclosure is not limited to the above-described embodiments, and the embodiments can be modified in many ways within the technical concept of the present disclosure. For example, at least two of the above-described embodiments and modifications may be combined. In addition, the effects described in the present embodiment are merely a list of the most favorable effects resulting from the embodiments of the present disclosure, and the effects of the embodiments of the present disclosure are not limited to those described in the present embodiment.

[0273] In the above embodiment, the robot is a vertically articulated robot, but the present invention is not limited to this. The robot may be, for example, a horizontally articulated robot, a parallel link robot, or an orthogonal robot. The present disclosure is also applicable to a machine that can automatically perform movements such as expansion and contraction, bending and stretching, vertical movement, horizontal movement, or rotation, or a combination of these movements, based on information in a storage device provided in a control device.

[0274] (Other Examples) The present invention can also be realized by a process in which a program for implementing one or more of the functions of the above-described embodiments is supplied to a system or device via a network or a storage medium, and one or more processors in a computer of the system or device read and execute the program. The present invention can also be realized by a circuit (e.g., ASIC) that implements one or more of the functions.

[0275] The disclosure of the above embodiments includes the following sections.

[0276] (Section 1) Robots and A control unit for controlling the robot, The control unit is causing the robot to hold a first workpiece having a first portion; operating the robot so that the first portion of the first workpiece comes into contact with the second portion according to a state of a second region other than a first region corresponding to the second portion when viewed in a predetermined direction; A robot system comprising:

[0277] (Section 2) The first region and the second region are regions included in a virtual plane perpendicular to the predetermined direction at a position of a predetermined height in the predetermined direction. 2. The robot system according to item 1,

[0278] (Section 3) The second portion is a portion to which the first workpiece is assembled. 3. The robot system according to item 1 or 2,

[0279] (Section 4) The second portion is included in a second workpiece. 4. The robot system according to any one of items 1 to 3,

[0280] (Section 5) The state of the second region includes information on whether or not there is an object adjacent to the first region in the second region. 5. The robot system according to any one of items 1 to 4,

[0281] (Section 6) When the object is present, the control unit operates the robot so that the first work passes through a first position where the first work is separated from the object as viewed in the predetermined direction, and a second position where the first portion of the first work overlaps with the second portion as viewed in the predetermined direction, and then moves the first work to a third position where the first portion of the first work contacts the second portion. Item 6. The robot system according to item 5,

[0282] (Section 7) the object has a first end and a second end in the predetermined direction; Each of the first position and the second position is a position where the first portion of the first workpiece is located between the first end and the second end in the predetermined direction. Item 7. The robot system according to item 6,

[0283] (Section 8) When the first workpiece is moved to the second position, a side wall of the first workpiece contacts a side wall of the object. Item 8. The robot system according to item 7, characterized in that:

[0284] (Section 9) Further comprising a processing unit for processing information, The processing unit acquires a state of the second area through the information processing. 9. The robot system according to any one of items 1 to 8,

[0285] (Section 10) The processing unit acquires the state of the second region by performing image processing on an image including an area including the first region and the second region. Item 10. The robot system according to item 9, characterized in that:

[0286] (Section 11) The processing unit acquires the state of the second region by a computer simulation using a three-dimensional virtual model. Item 10. The robot system according to item 9, characterized in that:

[0287] (Section 12) The processing unit acquires plan data indicating an operation plan of the robot, The control unit causes the robot to operate based on the plan data. 12. The robot system according to any one of items 9 to 11,

[0288] (Section 13) The planning data includes trajectory data of the robot. Item 13. The robot system according to item 12,

[0289] (Section 14) The plan data includes holding operation data for causing the robot to hold the holding portion of the first workpiece. 14. The robot system according to item 12 or 13,

[0290] (Section 15) The processing unit acquires the held portion by calculation using a force point and an action point. Item 15. The robot system according to item 14,

[0291] (Section 16) The plan data includes data indicating a work procedure of the robot. 16. The robot system according to any one of items 12 to 15,

[0292] (Section 17) The processing unit includes: Obtain multiple work procedure candidates, selecting the work procedure from the plurality of work procedure candidates; Item 17. The robot system according to item 16,

[0293] (Section 18) The processing unit acquires the plurality of work procedure candidates by using a directed graph. Item 18. The robot system according to item 17,

[0294] (Section 19) The processing unit divides a predetermined area including the first area and the second area into a plurality of elements, and identifies the first area and the second area in units of the elements. Item 19. The robot system according to any one of items 9 to 18,

[0295] (Section 20) The processing unit displays a first user interface on a display unit, the first user interface receiving a setting of a parameter for dividing the predetermined region. 20. The robot system according to item 19, characterized in that:

[0296] (Section 21) Further comprising a processing unit for processing information, the processing unit displays, on a display unit, a second user interface that accepts a setting of a shift amount of the first position relative to the second position. Item 7. The robot system according to item 6,

[0297] (Section 22) Further comprising a processing unit for processing information, the processing unit displays, on a display unit, a third user interface that accepts setting of a height component of the second position relative to the third position. Item 7. The robot system according to item 6,

[0298] (Section 23) The processing unit displays the work procedure in animation on a display unit. 19. The robot system according to any one of items 16 to 18,

[0299] (Section 24) The control unit acquires force data of a force acting on the robot, and determines whether or not the operation of bringing the first portion of the first workpiece into contact with the second portion is successful based on the force data. 24. The robot system according to any one of items 1 to 23,

[0300] (Section 25) The control unit determines whether or not the operation of fitting the first portion of the first workpiece to the second portion has been successful based on the force data. 25. The robot system according to item 24,

[0301] (Section 26) The first work is a unit assembled from two or more parts. 26. The robot system according to any one of items 1 to 25,

[0302] (Section 27) A control method for a robot system including a robot, comprising: causing the robot to hold a first workpiece having a first portion; operating the robot so that the first portion of the first workpiece comes into contact with the second portion according to a state of a second region other than a first region corresponding to the second portion when viewed in a predetermined direction; A method for controlling a robot system comprising:

[0303] (Section 28) Item 27. A method for manufacturing an article, comprising the steps of: manufacturing an article by using the robot system according to any one of items 1 to 26.

[0304] (Section 29) Item 28. A program for causing a computer to execute the control method according to item 27.

[0305] (Section 30) Item 30. A computer-readable recording medium having the program according to item 29 recorded thereon. [Explanation of symbols]

[0306] R1: area (first area), R2: area (second area), 100: robot system, 250: processing unit, 400: robot, 450: control unit

Claims

1. Robots and A control unit for controlling the robot, The control unit is causing the robot to hold a first workpiece having a first portion; operating the robot so that the first portion of the first workpiece comes into contact with the second portion according to a state of a second region other than a first region corresponding to the second portion when viewed in a predetermined direction; A robot system comprising:

2. The first region and the second region are regions that are included in a virtual plane perpendicular to the predetermined direction at a position of a predetermined height in the predetermined direction.

2. The robot system according to claim 1 .

3. The second portion is a portion to which the first workpiece is assembled.

2. The robot system according to claim 1 .

4. The second portion is included in a second workpiece.

2. The robot system according to claim 1 .

5. The state of the second region includes information on whether or not there is an object adjacent to the first region in the second region.

2. The robot system according to claim 1 .

6. When the object is present, the control unit operates the robot so that the first work passes through a first position where the first work is separated from the object as viewed in the predetermined direction, and a second position where the first portion of the first work overlaps with the second portion as viewed in the predetermined direction, and then moves the first work to a third position where the first portion of the first work contacts the second portion.

6. The robot system according to claim 5.

7. the object has a first end and a second end in the predetermined direction; Each of the first position and the second position is a position where the first portion of the first workpiece is located between the first end and the second end in the predetermined direction.

7. The robot system according to claim 6.

8. When the first workpiece is moved to the second position, a side wall of the first workpiece contacts a side wall of the object.

8. The robot system according to claim 7.

9. Further comprising a processing unit for processing information, The processing unit acquires a state of the second area through the information processing.

2. The robot system according to claim 1 .

10. The processing unit acquires the state of the second region by performing image processing on an image in which a range including the first region and the second region is captured. The robot system according to claim 9 .

11. The processing unit acquires the state of the second region by a computer simulation using a three-dimensional virtual model. The robot system according to claim 9 .

12. The processing unit acquires plan data indicating an operation plan of the robot, The control unit causes the robot to operate based on the plan data. The robot system according to claim 9 .

13. The planning data includes trajectory data of the robot. The robot system according to claim 12 .

14. The plan data includes holding operation data for causing the robot to hold the holding portion of the first workpiece. The robot system according to claim 12 .

15. The processing unit acquires the held portion by calculation using a force point and an action point. The robot system according to claim 14 .

16. The plan data includes data indicating a work procedure of the robot. The robot system according to claim 12 .

17. The processing unit includes: Obtain multiple work procedure candidates, selecting the work procedure from the plurality of work procedure candidates; 17. The robot system according to claim 16.

18. The processing unit acquires the plurality of work procedure candidates by using a directed graph.

20. The robot system according to claim 17 .

19. The processing unit divides a predetermined area including the first area and the second area into a plurality of elements, and identifies the first area and the second area in units of the elements. The robot system according to claim 9 .

20. The processing unit displays a first user interface on a display unit, the first user interface receiving a setting of a parameter for dividing the predetermined region.

20. The robot system of claim 19.

21. Further comprising a processing unit for processing information, the processing unit displays, on a display unit, a second user interface that accepts a setting of a shift amount of the first position relative to the second position.

7. The robot system according to claim 6.

22. Further comprising a processing unit for processing information, the processing unit displays, on a display unit, a third user interface that accepts setting of a height component of the second position relative to the third position.

7. The robot system according to claim 6.

23. The processing unit displays the work procedure in animation on a display unit.

17. The robot system according to claim 16.

24. The control unit acquires force data of a force acting on the robot, and determines whether or not the operation of bringing the first portion of the first workpiece into contact with the second portion is successful based on the force data.

2. The robot system according to claim 1 .

25. The control unit determines whether or not the operation of fitting the first portion of the first workpiece to the second portion has been successful based on the force data.

25. The robotic system of claim 24.

26. The first workpiece is a unit assembled from two or more parts.

2. The robot system according to claim 1 .

27. A control method for a robot system including a robot, comprising: causing the robot to hold a first workpiece having a first portion; operating the robot so that the first portion of the first workpiece comes into contact with the second portion according to a state of a second region other than a first region corresponding to the second portion when viewed in a predetermined direction; A method for controlling a robot system comprising:

28. A method for manufacturing an article, comprising the steps of: manufacturing an article by using the robot system according to any one of claims 1 to 26;

29. A program for causing a computer to execute the control method according to claim 27.

30. A computer-readable recording medium having the program according to claim 29 recorded thereon.

Citation Information

Patent Citations

  • Assembling device

    JP1998263957A