Robot system, control method, article manufacturing method, information processing apparatus, information processing method, program, and recording medium

The robot system automatically adjusts movement directions based on force feedback, addressing the burden of manual controller adjustments in factory layout changes, thereby enhancing efficiency.

JP2025179739APending Publication Date: 2025-12-10CANON KK
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
JP2024086681
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-05-28
Publication Date
2025-12-10

AI Technical Summary

Technical Problem

In factory settings, changes in robot layout and controller settings require manual adjustment by workers, which is burdensome and time-consuming.

Method used

A robot system with a controller that adjusts movement directions based on force feedback, allowing automatic adaptation to changes in layout without manual intervention.

Benefits of technology

Reduces the burden on workers by automating the adjustment of robot movements in response to changes in factory layout, enhancing efficiency and reducing setup time.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025179739000001_ABST
    Figure 2025179739000001_ABST
Patent Text Reader

Abstract

To provide a technique advantageous for reducing a burden on a user.SOLUTION: A robot system comprises a robot and a controller which controls the robot. The controller executes: first operation processing for causing the robot to perform a first operation; and second operation processing for causing the robot to perform a second operation after the first operation processing. The controller sets a first movement direction of the robot in the second operation of the second operation processing to either a first direction or a second direction opposite to the first direction according to first information related to a force applied to the robot in the first operation processing.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present disclosure relates to a robot system, a control method, an article manufacturing method, an information processing device, an information processing method, a program, and a recording medium. [Background technology]

[0002] Patent Document 1 discloses a robot system that uses a robot to perform assembly work. Specifically, Patent Document 1 discloses that a first object is held by a robot hand, and the first object is brought into contact with the inner surface of a recess of a second object while tilted by a predetermined amount, and then the first object is rotated, the tilt of the first object is returned to its original position, and an insertion operation is performed. [Prior art documents] [Patent documents]

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

[0004] However, for example, in a factory, the layout of robots, workbenches, etc. may change, and the settings of the controller that controls the robot may also need to be changed. In such cases, the worker (user) must change the settings of the controller, which is a burden on the worker and also takes time, so improvements were needed.

[0005] The present disclosure provides a technique that is advantageous in reducing the burden on workers (users). [Means for solving the problem]

[0006] A first aspect of the present disclosure is a robot system comprising a robot and a controller that controls the robot, wherein the controller executes a first movement process that causes the robot to perform a first movement, and a second movement process that causes the robot to perform a second movement after the first movement process, and wherein the controller sets a first movement direction of the robot in the second movement of the second movement process to either a first direction or a second direction opposite to the first direction, depending on first information regarding a force received by the robot in the first movement process.

[0007] A second aspect of the present disclosure is a control method for controlling a robot, the control method comprising: a first movement process for making the robot perform a first movement; and a second movement process for making the robot perform a second movement after the first movement process, wherein a first movement direction of the robot in the second movement of the second movement process is set to either a first direction or a second direction opposite to the first direction, depending on first information regarding a force received by the robot in the first movement process.

[0008] A third aspect of the present disclosure is an information processing device that sets information for operating a robot, characterized in that a user can set the direction of rotation in a predetermined movement of the robot to change depending on the force received by the robot.

[0009] A fourth aspect of the present disclosure is an information processing method for setting information for operating a robot, characterized in that a user can set the direction of rotation in a predetermined movement of the robot to change depending on the force received by the robot. [Effects of the Invention]

[0010] According to the present disclosure, a technique that is advantageous for reducing the burden on workers (users) is provided. [Brief explanation of the drawings]

[0011] [Figure 1] FIG. 1 is a perspective view of a robot system according to a first embodiment. [Figure 2] FIG. 1 is a block diagram of a robot system according to a first embodiment. [Figure 3] 10(a) and 10(b) are flowcharts for causing the robot according to the first embodiment to perform a fitting operation. [Figure 4] 5(a) to 5(f) are explanatory views showing states of a fitting operation according to the first embodiment. [Figure 5] FIG. 4 is an explanatory diagram of setting a movement direction according to the first embodiment. [Figure 6] FIG. 2 is an explanatory diagram of a display screen that is an example of a user interface according to the first embodiment. [Figure 7] FIG. 10 is an explanatory diagram of a display screen that is an example of a user interface according to the second embodiment. [Figure 8] FIG. 10 is an explanatory diagram of a display screen according to the second embodiment. [Figure 9] FIG. 11 is an explanatory diagram of a display screen that is an example of a user interface according to the third embodiment. [Figure 10] FIG. 11 is an explanatory diagram of an operation handle displayed on a display screen according to the third embodiment. DETAILED DESCRIPTION OF THE INVENTION

[0012] Exemplary embodiments of the present disclosure will be described in detail below with reference to the drawings. The following embodiments exemplify preferred configurations of the present disclosure, and those skilled in the art can appropriately modify the detailed configurations without departing from the spirit of the present disclosure. Furthermore, in the drawings referred to in the following description of the embodiments, elements designated by the same reference numerals have similar functions unless otherwise noted. Furthermore, these drawings are represented schematically for the convenience of illustration and explanation, and therefore may not strictly correspond in shape, size, arrangement, etc., between the drawings.

[0013] [First embodiment] FIG. 1 is a perspective view of a robot system 1000 according to the first embodiment. The robot system 1000 includes a robot 100, a base 300, a workbench 350, a controller 400, and an operation panel 500. The robot 100 is installed on the base 300. The base 300 is, for example, a movable platform. A worker (user) can operate the base 300 to move the robot 100 to any position relative to the workbench 350. The base 300 may be, for example, a fixed platform fixed to the floor of a factory or the like.

[0014] The robot 100 is, for example, an industrial robot. The workbench 350 is a platform on which the robot 100 performs a predetermined task. The workbench 350 is, for example, a fixed platform fixed to the floor of a factory or the like. Note that the workbench 350 may also be a movable platform that is configured to be movable.

[0015] With the base 300 disposed adjacent to the work table 350, the robot 100 can perform a predetermined task on the work table 350. The predetermined task is, for example, an assembly task of assembling a workpiece Wa to a workpiece Wb. The workpiece Wa is an example of a first workpiece, and the workpiece Wb is an example of a second workpiece.

[0016] The base of the robot 100 is a fixed end, and is fixed to the base 300. The tip of the robot 100 is a free end. That is, when the robot 100 operates, a tip portion 103, which is an example of a predetermined portion of the robot 100, moves to an arbitrary position. The robot 100 has a robot arm 101 and a robot hand 102, which is an example of an end effector. In the first embodiment, the tip portion 103 of the robot 100 is the robot hand 102. The robot hand 102 is attached to a predetermined position of the robot arm 101, for example, to the tip of the robot arm 101.

[0017] The robot arm 101 is, for example, a vertically articulated robot arm. The robot arm 101 is a multi-axis, for example, six-axis, robot arm. The robot 100 is used for applications such as manufacturing goods, or transporting or picking up workpieces. The robot 100 may further include an end effector (not shown), or the robot hand 102 may be replaced with another end effector.

[0018] The robot arm 101 has six joints J1 to J6. The number of joints is not limited to six and may be, for example, seven. The robot arm 101 has a base 110, which is a fixed link, and multiple links 111 to 116, which are movable links. The base 110 and the links 111 to 116 are connected by the joints J1 to J6 in a serial link format, so that each of the links 111 to 116 can rotate at each of the joints J1 to J6. The robot hand 102 is attached to the link 116, for example.

[0019] A motor, a reducer, a torque sensor, and an angle sensor are disposed in each of the joints J1 to J6. The motors provided in each of the joints J1 to J6 drive the links 111 to 116 via reducers, allowing the robot 100 to assume various postures. A tool center point (TCP) is defined at the tip end 103 of the robot 100, and by specifying the position and posture of the TCP, the robot 100 can be operated in various postures. Note that although each of the joints J1 to J6 is a rotary joint, the present invention is not limited to this, and for example, any of the joints may be a linear joint.

[0020] The robot hand 102 is configured to be able to hold a workpiece. The robot hand 102 has, for example, two fingers. Note that the robot hand 102 may have any configuration as long as it is able to hold a workpiece, and may have, for example, a suction mechanism instead of fingers. In a production line that manufactures goods, the robot 100 can grasp a workpiece with the robot hand 102 to carry it out a transport operation, assemble it onto another workpiece, or grasp a tool to process the workpiece.

[0021] For example, a workpiece Wb is placed on a work table 350 around the robot 100. An assembled product can be manufactured by a manufacturing method in which the robot 100 holds the workpiece Wa and assembles the workpiece Wa to the workpiece Wb. The assembled product may be an intermediate product or a final product.

[0022] In the first embodiment, the assembly operation of assembling the workpiece Wa to the workpiece Wb is a fitting operation of fitting the workpiece Wa to the workpiece Wb. The workpiece Wa has a rectangular parallelepiped portion with a square tip surface Q1, but the shape of the tip surface Q1 may also be rectangular. The workpiece Wb is placed in a predetermined position on the worktable 350. The workpiece Wb has a recess H into which the workpiece Wa is inserted. The workpiece Wb is fixed on the worktable 350 so that it does not move during insertion of the workpiece Wa.

[0023] The robot 100 is connected to a controller 400 via a cable 160. The controller 400 controls the operation of the robot 100. An operation panel 500 is connected to the controller 400. The operation panel 500 is an operation device that can be operated by an operator (user), and is, for example, a teaching pendant. The operation panel 500 is used to set parameters for the force control operation, which will be described later, in the controller 400.

[0024] 2 is a block diagram of a robot system 1000 according to the first embodiment. A motor 130, an angle sensor 140, and a torque sensor 150 are disposed at each of the joints J1 to J6 of the robot arm 101. The torque sensor 150 is an example of a force sensor. Note that a force sensor capable of detecting forces along six axes may be used instead of the torque sensor. The six-axis force sensor is disposed, for example, between the robot arm 101 and the robot hand 102.

[0025] The controller 400 is configured as a computer and has a CPU (Central Processing Unit) 401 as a processor. The controller 400 also has a ROM (Read Only Memory) 402, a RAM (Random Access Memory) 403, and an HDD (Hard Disk Drive) 404 as examples of storage units. The controller 400 also has a recording disk drive 405 and multiple input / output interfaces (I / F) 406 to 409. The ROM 402, RAM 403, HDD 404, recording disk drive 405, and interfaces 406 to 409 are connected to the CPU 401 via a bus 420. The ROM 402 stores a basic program that is read by the CPU 401 when the computer starts up. The RAM 403 is a storage device that temporarily stores various data such as the results of calculations performed by the CPU 401. The HDD 404 is a storage device that stores the results of calculations performed by the CPU 401 and various data acquired from the outside. A program 430 for causing the CPU 401 to execute arithmetic processing is recorded on this HDD 404. The CPU 401 executes a control method, which will be described later, based on the program 430 recorded (stored) on the HDD 404. The recording disk drive 405 can read various data, programs, etc. recorded on the recording disk 431.

[0026] An operation panel 500 is connected to the interface 406. The CPU 401 acquires input data (input information) including parameters for force control operations from the operation panel 500 via the interface 406 and the bus 420. A display 600, which is an example of a display unit, is connected to the interface 407. The interface 408 is configured to be connectable to an external storage device 700, which is a storage unit such as a rewritable nonvolatile memory or an external HDD.

[0027] The servo control unit 120 is connected to the interface 409. The servo control unit 120 is connected to a motor 130, an angle sensor 140, and a torque sensor 150 for each joint of the robot arm 101. The motor 130 is, for example, a brushless DC motor or an AC motor, and rotates and drives the corresponding joint. The angle sensor 140 is, for example, a rotary encoder, and is provided in the motor 130 and configured to be able to detect the rotation angle of the motor 130. The torque sensor 150 is provided in the corresponding joint and configured to be able to detect the torque acting on the corresponding joint.

[0028] The CPU 401 can acquire angle information from the angle sensor 140 and torque information from the torque sensor 150 via the servo control unit 120, the interface 409, and the bus 420. The servo control unit 120 may divide the angle of the motor 130 detected using the angle sensor 140 by a reduction ratio of a reducer (not shown), convert it into angle information of the corresponding joint, and transmit it to the CPU 401.

[0029] The CPU 401 outputs command value data corresponding to each joint to the servo control unit 120 via the bus 420 and the interface 409 at predetermined time intervals (e.g., 1 ms). The HDD 404 is also a non-transitory computer-readable recording medium. In the first embodiment, the program 430 is stored in the HDD 404, but this is not a limitation. The program 430 may be recorded on any computer-readable non-transitory recording medium. For example, a flexible disk, a hard disk, an optical disk, a magneto-optical disk, a magnetic tape, or a non-volatile memory can be used as a recording medium for providing the program 430. The optical disk is, for example, a disk medium such as a Blu-ray disk, a DVD, or a CD. The non-volatile memory is, for example, a storage device such as a USB memory, a memory card, a ROM, or an SSD. The program 430 may also be acquired via a network.

[0030] In the first embodiment, the CPU 401 acquires information about the force acting on the robot hand 102 of the robot 100 based on torque information acquired from the multiple torque sensors 150. Then, the CPU 401 controls the operation of the robot 100 based on the information about the force. This type of control is called force control. In the first embodiment, the CPU 401 performs force control when causing the robot 100 to perform a fitting operation.

[0031] 3(a) and 3(b) are flowcharts for causing the robot 100 according to the first embodiment to perform a fitting operation. FIGS. 4(a) to 4(f) are explanatory diagrams showing states of the fitting operation according to the first embodiment. In FIGS. 4(a) to 4(f), for the sake of simplicity, the robot arm 101 and the robot hand 102 are omitted from the illustration, and only the workpiece Wa and the workpiece Wb are shown. The following describes the assembly operation of assembling the workpiece Wa held by the robot 100 to the workpiece Wb, specifically, the fitting operation of fitting the workpiece Wa held by the robot 100 into the recess H of the workpiece Wb.

[0032] 4(a) and 4(b), coordinate systems 901 and 902 are defined. The coordinate system 901 is a workpiece coordinate system based on the workpiece Wa, and the coordinate system 902 is a workpiece coordinate system based on the workpiece Wb. In the first embodiment, the origin of the coordinate system 901 is set at the center of the above-mentioned TCP, for example, the tip surface Q1 of the workpiece Wa.

[0033] In the following description, coordinate systems 901 and 902 are represented by an XYZ coordinate system, which is a three-dimensional Cartesian coordinate system. In each of coordinate systems 901 and 902, the X axis, Y axis, and Z axis intersect (are perpendicular to) each other. The Z axis in coordinate system 901 is an example of a first axis, and at least one of the X axis and the Y axis is an example of a second axis.

[0034] In the coordinate systems 901 and 902, the plane including the X-axis and the Y-axis is called the XY plane. The same applies to the XZ plane and the YZ plane.

[0035] In the coordinate systems 901 and 902, the direction of movement along the X axis is referred to as the X direction. The X direction includes the positive direction (+X direction) indicated by the X axis arrow and the negative direction (-X direction) opposite to the positive direction (+X direction) indicated by the X axis arrow. The same applies to the Y axis and Z axis.

[0036] In coordinate systems 901 and 902, the direction of rotation around the X axis is called the rX direction. The rX direction includes a clockwise positive direction (+rX direction) when viewed from the direction indicated by the X axis arrow (+X direction), and a negative direction (-rX direction) opposite to the positive direction (+rX direction). The -rX direction is also a counterclockwise direction when viewed from the direction indicated by the X axis arrow. The same applies to the Y axis and Z axis.

[0037] The coordinate systems 901 and 902 can also be expressed using six axes. The six axes are the X axis, Y axis, Z axis, rX axis around the X axis with the X axis as the base axis, rY axis around the Y axis with the Y axis as the base axis, and rZ axis around the Z axis with the Z axis as the base axis. The three movement axes, the X axis, Y axis, and Z axis, are linear axes. The three movement axes, the rX axis, rY axis, and rZ axis, are rotation axes. Even with this expression, the X direction, Y direction, Z direction, rX direction, rY direction, and rZ direction are defined as described above, and the corresponding positive and negative directions are also defined. For example, the rX direction is the direction of rotation along the rX axis, and the clockwise direction of the rX axis when viewed in the direction indicated by the X axis arrow is the positive direction, and the counterclockwise direction, opposite to the positive direction, is the negative direction.

[0038] The CPU 401 selectively executes a setting mode (first mode) in which parameters are set by accepting user input, and an operation mode (second mode) in which the robot 100 operates in accordance with the set parameters.

[0039] First, in step S100 (setting mode), CPU 401 accepts input of parameters for two or more operations related to force control, and sets the input parameters in a memory area to be referenced in force control.

[0040] Next, in step S300 (operation mode), the CPU 401 controls the operation of the robot 100 according to the parameters set in step S100.

[0041] The control of the CPU 401 in the operation mode will be specifically described. In step S30 shown in Fig. 3(b), the CPU 401 operates the robot 100 so that the workpiece Wa moves to a start position SP1 above the recessed portion H of the workpiece Wb, as shown in Fig. 4(a). The start position SP1 is an example of a predetermined position, and is a value set in advance based on the coordinate system 902. The distance from the start position SP1 to the recessed portion H of the workpiece Wb may be any distance, and is set to, for example, 10 mm.

[0042] The orientation (direction) of the workpiece Wa at the start position SP1 is also set in advance. For example, the orientation (direction) of the workpiece Wa at the start position SP1 is set so that the tip surface Q1 of the workpiece Wa is inclined with respect to the XY plane of the coordinate system 902. That is, the CPU 401 controls the robot 100 to incline the workpiece Wa with respect to the workpiece Wb at the start position SP1. In the example of FIG. 4(a), the orientation of the workpiece Wa is inclined in the positive direction around the X axis of the coordinate system 902 and the positive direction around the Y axis of the coordinate system 902. The degree of inclination of the workpiece Wa may be arbitrary as long as it ensures that the corner P of the workpiece Wa closest to the recess H of the workpiece Wb is inserted into the recess H of the workpiece Wb; for example, it is set to one degree. The robot 100 may be instructed to move the workpiece Wa to the start position SP1 by the user actually operating the robot 100 using the operation panel 500, or by calculation (simulation) based on the design dimensions of each device of the robot system 1000.

[0043] Next, the CPU 401 executes force control of the robot 100 via the servo control unit 120. Here, the servo control unit 120 controls the contact force acting on the workpiece Wa based on the coordinate system 901. The CPU 401 acquires torque information from the torque sensors 150 of the joints J1 to J6 from the servo control unit 120, and acquires information on the force received by the robot 100 based on the torque information, or information on the force acting on the workpiece Wa held by the robot hand 102 in the first embodiment.

[0044] The CPU 401 performs each of the force control operations described below with reference to the coordinate system 901. Force-related information is acquired with reference to the coordinate system 901. The force-related information includes six force components. Specifically, the force-related information includes information on the magnitude and positive / negative direction of a force in a linear direction along the X-axis, information on the magnitude and positive / negative direction of a force in a linear direction along the Y-axis, information on the magnitude and positive / negative direction of a force in a linear direction along the Z-axis, information on the magnitude and positive / negative direction of a force in a rotational direction around the X-axis, information on the magnitude and positive / negative direction of a force in a rotational direction around the Y-axis, and information on the magnitude and positive / negative direction of a force in a rotational direction around the Z-axis. The positive / negative direction information indicates whether the force is in a linear direction along the X-axis, positive or negative, for example. The positive / negative direction information indicates whether the force is in a rotational direction around the X-axis, positive or negative, for example. The rotational direction around the X-axis is also the rotational direction around the rX-axis. The same applies to the Y-axis and Z-axis. In this way, information about the force is expressed by six axes based on the coordinate system 901: X-axis, Y-axis, Z-axis, rX-axis, rY-axis, and rZ-axis, and also includes information about the direction of the force.

[0045] Here, a case will be described in which the CPU 401 sequentially executes a first operation process for making the robot 100 perform a first operation and a second operation process for making the robot 100 perform a second operation. The second operation is different from the first operation and is executed after the first operation. First, in step S31, the CPU 401 reads parameters of the first operation. Next, in step S32, the CPU 401 determines whether or not a movement axis (X-axis, Y-axis, Z-axis, rX-axis, rY-axis, or rZ-axis) and a movement direction (positive or negative direction) relative to the movement axis have been set for the first operation.

[0046] Here, the information on the movement direction may include information on the movement axis. For example, if the movement axis for the operation is the X axis, the movement direction is the positive or negative direction of the movement on the movement axis, i.e., the +X direction or the -X direction. The information on the movement direction may include not only information on the positive or negative direction but also information on the movement axis.

[0047] If a movement direction has been set for the first action (YES in step S32), the CPU 401 proceeds to step S34, and if a movement direction has not been set for the first action (NO in step S32), the CPU 401 proceeds to step S33. Note that the process proceeds to step S33 after the second round of processing in steps S31 to S37, when the robot 100 is caused to perform the second action. In other words, it is assumed that a movement direction has been set for the first action of the multiple actions, in this example, the first action, and that a movement direction has not been set for the second action.

[0048] In step S34 of the first cycle, a first movement process is executed to make the robot 100 perform a first movement of force control, and the robot 100 is made to move in a set direction.

[0049] Next, in step S35 of the first cycle, the CPU 401 determines whether or not the force received by the robot 100 (force in the direction opposite to the moving direction) is equal to or greater than a threshold value (first threshold value).

[0050] If the force received by the robot 100 is smaller than the threshold, i.e., if step S35 is NO, the CPU 401 returns to the process of step S34 and continues the first motion. If the force received by the robot 100 is equal to or greater than the threshold, i.e., if step S35 is YES, the CPU 401 stops the motion of the robot 100 in step S36. Then, in step S37, it is determined whether or not there is a next motion. Because there is a second motion following the first motion, step S37 is YES, and the CPU 401 returns to the process of step S31.

[0051] In step S31 of the second cycle, the CPU 401 reads the parameters of the next second action. Next, in step S32, the CPU 401 determines whether or not a movement direction relative to the movement axis has been set for the second action.

[0052] Since a movement direction has not been set for the second action, step S32 is NO, and the CPU 401 proceeds to step S33. In step S33, the CPU 401 sets the movement direction (first movement direction) of the robot 100 in the second action to either the positive direction or the negative direction according to information about the force received by the robot 100 in the first action processing, and proceeds to the next step, S34. The positive direction here is an example of the first direction, and the negative direction opposite to the positive direction is an example of the second direction.

[0053] In step S34 of the second cycle, the CPU 401 executes a second action process for making the robot 100 perform a second action under force control, and makes the robot 100 move in a set direction.

[0054] Next, in step S35 of the second cycle, the CPU 401 determines whether or not the force received by the robot 100 (force in the direction opposite to the moving direction) is equal to or greater than a threshold value (second threshold value).

[0055] If the force received by the robot 100 is smaller than the threshold, i.e., if step S35 is NO, the CPU 401 returns to the process of step S34 and continues the second motion. If the force received by the robot 100 is equal to or greater than the threshold, i.e., if step S35 is YES, the CPU 401 stops the motion of the robot 100 in step S36. Then, in step S37, it is determined whether or not there is a next motion. If there is a next motion, i.e., if step S37 is YES, the CPU 401 returns to the process of step S31. If there is no next motion, i.e., if step S37 is NO, the CPU 401 ends the process.

[0056] The control operations of the CPU 401 have been outlined above. The control operations of the CPU 401 in the fitting operation will now be specifically described with reference to FIGS. 4(a) to 4(f). The CPU 401 executes five force control operations A to E in order from the start position SP1. The CPU 401 performs force control for each of operations A to E. Operation A is the operation of the robot 100 that moves the workpiece Wa from the state shown in FIG. 4(a) to the state shown in FIG. 4(b). Operation B is the operation of the robot 100 that moves the workpiece Wa from the state shown in FIG. 4(b) to the state shown in FIG. 4(c). Operation C is the operation of the robot 100 that moves the workpiece Wa from the state shown in FIG. 4(c) to the state shown in FIG. 4(d). Operation D is the operation of the robot 100 that moves the workpiece Wa from the state shown in FIG. 4(d) to the state shown in FIG. 4(e). Operation E is the operation of the robot 100 that moves the workpiece Wa from the state shown in FIG. 4(e) to the state shown in FIG. 4(f).

[0057] As described above, at least one of the robot 100 and the workbench 350 is installed movably in a work space such as a factory. Therefore, if the robot 100 is operated without adjusting the settings of the controller 400 after a change in the layout of the factory, there is a risk that the fitting operation will fail if the movement direction of the robot 100 in any of the movements A to E, for example, movement C, is set to a preset direction. Therefore, in the first embodiment, the movement directions are set in advance for movements A, B, D, and E, but the movement direction for movement C is not set and is set according to the situation on site. It is assumed that the movement axis for movement C is set in advance. In other words, the movement axis is set in advance for each of movements A to E.

[0058] Movement A is a linear movement whose axis of movement is the Z axis and whose direction of movement is the +Z direction. Movement B is a linear movement whose axis of movement is the X axis and the Y axis and whose direction of movement is the -X direction and the +Y direction. Movement C is a rotational movement whose axis of movement is the rZ axis, that is, a rotational movement around the Z axis, but whether the direction of rotation around the Z axis is positive or negative is not set and will be set in step S33 described below. Movement D is a rotational movement whose axis of movement is the rX axis and the rY axis and whose direction of movement is the -rX direction and the -rY direction. Movement E is a linear movement whose axis of movement is the Z axis and whose direction of movement is the +Z direction. Movement B is an example of a first movement, movement C is an example of a second movement, and movement D is an example of a third movement.

[0059] First, in step S31, the CPU 401 reads the parameters of the operation A. Next, in step S32, the CPU 401 determines whether or not a movement direction on a movement axis (X-axis, Y-axis, Z-axis, rX-axis, rY-axis, or rZ-axis) has been set for the operation A.

[0060] In the first embodiment, since a movement direction is set for operation A (YES in step S32), the CPU 401 proceeds to the next step S34 and executes operation processing to cause the robot 100 to perform operation A. As described above, operation A is a linear movement in the +Z direction along the Z axis of the coordinate system 901. That is, the CPU 401 operates the robot 100 so that the workpiece Wa moves from the start position SP1 in the +Z direction along the Z axis, as shown in FIGS. 4(a) and 4(b).

[0061] In operation A, the robot 100 is operated so that the robot hand 102 of the robot 100, i.e., the workpiece Wa, moves in the +Z direction, so that the workpiece Wa comes into contact with the workpiece Wb in the +Z direction, and the contact force is detected as a force in the direction opposite to the movement direction, i.e., in the -Z direction. Therefore, in step S35, the CPU 401 determines whether the detected contact force (the magnitude of the force in the -Z direction) is equal to or greater than a threshold value (e.g., 5 [N]) set corresponding to the Z axis.

[0062] If the contact force is smaller than the threshold, i.e., if step S35 is NO, the CPU 401 returns to the processing of step S34 and continues operation A. If the contact force is equal to or greater than the threshold, i.e., if step S35 is YES, the CPU 401 stops the operation of the robot 100 in step S36. At this time, as shown in FIG. 4(b), a part of the tip surface Q1 of the workpiece Wa is in contact with a part of the recessed portion H of the workpiece Wb. Furthermore, since the workpiece Wa is brought into contact with the workpiece Wb while tilted relative to the workpiece Wb, a corner portion P of the workpiece Wa enters the recessed portion H of the workpiece Wb.

[0063] In step S37, the CPU 401 determines whether or not there is a next action. Since action B follows action A, the CPU 401 returns to the process of step S31 and reads the parameters of action B in step S31.

[0064] Next, in step S32, the CPU 401 determines whether or not a movement direction on the movement axis for the motion B has been set.

[0065] In the first embodiment, since a movement direction is set for operation B (YES in step S32), the CPU 401 proceeds to the next step S34 and executes operation processing (first operation processing) to cause the robot 100 to perform operation B. As described above, operation B is a linear movement in the −X direction and +Y direction along the X axis and Y axis of the coordinate system 901. That is, the CPU 401 operates the robot 100 so that the workpiece Wa moves in the −X direction and +Y direction, as shown in FIGS. 4(b) and 4(c).

[0066] In operation B, the robot 100 is operated so that the robot hand 102 of the robot 100, i.e., the workpiece Wa, moves in the -X and +Y directions, so that the workpiece Wa comes into contact with the workpiece Wb in the -X and +Y directions, and the contact force is detected as a force in the direction opposite to the movement direction, i.e., a force in the +X and -Y directions. Therefore, in step S35, the CPU 401 determines whether the detected contact force in the X direction (the magnitude of the force in the +X direction) is equal to or greater than a threshold value (e.g., 3 [N]) set corresponding to the X axis, and whether the detected contact force in the Y direction (the magnitude of the force in the -Y direction) is equal to or greater than a threshold value (e.g., 3 [N]) set corresponding to the Y axis. Each threshold value corresponding to operation B is a first threshold value.

[0067] If the contact force (force in the +X direction or force in the -Y direction) is smaller than the threshold, i.e., if step S35 is NO, the CPU 401 returns to the processing of step S34 and continues operation B. If the contact force (force in the +X direction and force in the -Y direction) is equal to or greater than the threshold, i.e., if step S35 is YES, the CPU 401 stops the operation of the robot 100 in step S36. At this time, as shown in FIG. 4(c), part of the side surface Q2 and part of the side surface Q3 of the workpiece Wa are in contact with the inner surface of the recessed portion H of the workpiece Wb. The movement direction of the robot 100 in operation B coincides with the direction from the center of the tip surface Q1 toward the corner portion P of the workpiece Wa.

[0068] In step S37, the CPU 401 determines whether or not there is a next action. Since action C follows action B, the CPU 401 returns to the process of step S31, and in step S31, the CPU 401 reads the parameters of action C.

[0069] Next, in step S32, the CPU 401 determines whether or not a movement direction on the movement axis for the action C has been set.

[0070] In the first embodiment, since the movement direction for the action C has not been set (NO in step S32), the CPU 401 proceeds to the next step S33 and sets the movement direction of the robot 100.

[0071] In step S33, the CPU 401 sets the positive or negative direction of movement relative to the movement axis in movement C based on whether the contact force in the rZ direction at the time of stopping the previous movement B was positive or negative. That is, the CPU 401 sets the movement direction of the robot 100 in movement C (first movement direction) to either the positive or negative direction according to information (first information) about the force received by the robot 100 in the previous movement B. The positive direction here is an example of the first direction, and the negative direction is an example of the second direction. In other words, the +rZ direction is the first direction, and the -rZ direction is the second direction. The information about the force received by the robot 100 in the previous movement B includes information about the direction (positive or negative direction) of the force about the Z axis received by the robot 100, as described above.

[0072] In the first embodiment, the CPU 401 sets the movement direction to the same direction as the positive or negative rZ direction at the time of stopping action B. That is, the CPU 401 sets the rotation direction around the Z axis, which is the movement direction of the robot 100, to the same direction (positive or negative) of the force around the Z axis that the robot 100 received in action C, out of the positive and negative directions, to the -rZ direction in the example of Fig. 4(c).

[0073] Next, in step S34, the CPU 401 executes an operation process (second operation process) that causes the robot 100 to perform operation C. As described above, operation C is a rotation operation around the Z axis of the coordinate system 901. Then, the rotation direction around the Z axis, which is the movement direction of the robot 100, is set to the -rZ direction in step S33. Then, the CPU 401 operates the robot 100 so that the workpiece Wa moves in the -rZ direction, as shown in FIGS. 4(c) and 4(d).

[0074] In operation C, the robot 100 is operated so that the robot hand 102 of the robot 100, i.e., the workpiece Wa, moves in the -rZ direction, so that the workpiece Wa comes into contact with the workpiece Wb in the -rZ direction, and the contact force is detected as a force in the direction opposite to the movement direction, i.e., in the +rZ direction. Therefore, in step S35, the CPU 401 determines whether the detected contact force (the magnitude of the force in the +rZ direction) is equal to or greater than a threshold value (e.g., 0.1 [Nm]) set corresponding to the rZ axis. The threshold value corresponding to operation C is the second threshold value.

[0075] If the contact force is smaller than the threshold, i.e., if step S35 is NO, the CPU 401 returns to the process of step S34 and continues operation C. If the contact force is equal to or greater than the threshold, i.e., if step S35 is YES, the CPU 401 stops the operation of the robot 100 in step S36. At this time, as shown in FIG. 4(d), the corner P of the workpiece Wa is in contact with the corner of the recessed portion H of the workpiece Wb.

[0076] 5 is an explanatory diagram of setting the movement direction according to the first embodiment. If operation B results in a state S1 in which corner P of workpiece Wa comes into contact with inner surface Q11 of recessed portion H of workpiece Wb, and a contact force is generated in the -rZ direction, rotating the workpiece Wa in the -rZ direction will cause corner P to come into contact with the corner between inner surfaces Q11 and Q12 of recessed portion H, and therefore the movement direction in operation C will be set to the -rZ direction. Also, if operation B results in a state S2 in which corner P of workpiece Wa comes into contact with inner surface Q12 of workpiece Wb, and a contact force is generated in the +rZ direction, rotating the workpiece Wa in the +rZ direction will cause corner P to come into contact with the corner between inner surfaces Q11 and Q12, and therefore the movement direction in operation C will be set to the +rZ direction.

[0077] In this way, the rotation direction of the robot 100 is set to the same direction as the contact force acting on the workpiece Wa, which is the -rZ direction in the example shown in Figure 4(c), so that the corner P of the workpiece Wa can be brought into contact with the corner formed by the inner surfaces Q11 and Q12 of the recess H of the workpiece Wb, as shown in Figure 4(d).

[0078] In step S37, the CPU 401 determines whether or not there is a next action. Since action D follows action C, the CPU 401 returns to the process of step S31, and in step S31, the CPU 401 reads the parameters of action D.

[0079] Next, in step S32, the CPU 401 determines whether or not a movement direction on the movement axis for the motion D has been set.

[0080] In the first embodiment, since a movement direction is set for operation D (YES in step S32), the CPU 401 proceeds to the next step S34 and executes operation processing (third operation processing) for causing the robot 100 to perform operation D. As described above, operation D is a rotation operation in the -rX direction around the X axis and the -rY direction around the Y axis of the coordinate system 901. That is, the CPU 401 operates the robot 100 so that the workpiece Wa moves in the -rX direction and the -rY direction, as shown in FIGS. 4(d) and 4(e). The direction in which the workpiece Wa is rotated in operation D is set to the opposite direction to the tilt direction in step S30.

[0081] In operation D, the robot 100 is operated so that the robot hand 102 of the robot 100, i.e., the workpiece Wa, moves in the -rX and -rY directions. Therefore, the workpiece Wa contacts the workpiece Wb in the -rX and -rY directions, and the contact force is detected as a force in the direction opposite to the direction of movement, i.e., a force in the +rX and +rY directions. Therefore, in step S35, the CPU 401 determines whether the detected contact force in the X direction (the magnitude of the force in the +rX direction) is equal to or greater than a threshold value (e.g., 0.01 [Nm]) set corresponding to the rX axis, and whether the detected contact force in the Y direction (the magnitude of the force in the +Y direction) is equal to or greater than a threshold value (e.g., 0.01 [Nm]) set corresponding to the rY axis. Each threshold value corresponding to operation D is a third threshold value.

[0082] If the contact force (the force in the +rX direction or the force in the +rY direction) is smaller than the threshold, i.e., if step S35 is NO, the CPU 401 returns to the processing of step S34 and continues operation D. If the contact force (the force in the +rX direction and the force in the +rY direction) is equal to or greater than the threshold, i.e., if step S35 is YES, the CPU 401 stops the operation of the robot 100 in step S36. At this time, as shown in FIG. 4(e), four side surfaces of the workpiece Wa, including side surface Q2 and side surface Q3, come into contact with the four inner surfaces of the recessed portion H of the workpiece Wb.

[0083] Note that, although the example has been described in which the movement direction is set in advance in operation D, the movement direction (positive / negative direction) may not be set as in operation C, and the positive / negative direction of movement relative to the movement axis may be set based on the contact force of the immediately preceding operation C. Even in this case, the positive / negative direction is set to the opposite direction to the tilt direction of the workpiece Wa in step S30.

[0084] In step S37, the CPU 401 determines whether or not there is a next action. Since action E follows action D, the CPU 401 returns to the processing of step S31, and in step S31, the CPU 401 reads the parameters of action E.

[0085] Next, in step S32, the CPU 401 determines whether or not a movement direction on the movement axis for the action E has been set.

[0086] In the first embodiment, since a movement direction is set for operation E (YES in step S32), the CPU 401 proceeds to the next step S34 and executes operation processing to cause the robot 100 to perform operation E. As described above, operation E is a linear movement in the +Z direction along the Z axis of the coordinate system 901. That is, the CPU 401 operates the robot 100 so that the workpiece Wa moves in the +Z direction along the Z axis, as shown in FIGS. 4(e) and 4(f).

[0087] In operation E, the robot 100 is operated so that the robot hand 102 of the robot 100, i.e., the workpiece Wa, moves in the +Z direction, so that the workpiece Wa comes into contact with the bottom surface of the recess H of the workpiece Wb in the +Z direction, and the contact force is detected as a force in the direction opposite to the movement direction, i.e., in the -Z direction. Therefore, in step S35, the CPU 401 determines whether the detected contact force (the magnitude of the force in the -Z direction) is equal to or greater than a threshold value (e.g., 10 [N]) set corresponding to the Z axis.

[0088] If the contact force is smaller than the threshold, i.e., if step S35 is NO, the CPU 401 returns to the process of step S34 and continues operation E. If the contact force is equal to or greater than the threshold, i.e., if step S35 is YES, the CPU 401 stops the operation of the robot 100 in step S36. At this time, the workpiece Wa is fitted into the workpiece Wb, as shown in FIG. 4(f).

[0089] In step S37, the CPU 401 determines whether or not there is a next operation. Since there is no next operation, the answer in step S37 is NO, and the CPU 401 ends the fitting operation.

[0090] As described above, according to the first embodiment, when the workpiece Wa and the workpiece Wb are brought into contact with each other, even if the direction (for example, the +rZ direction or the -rZ direction) for appropriately bringing the workpiece Wa into contact with the workpiece Wb changes depending on the situation between the workpieces Wa and Wb, the direction is set to an appropriate direction, thereby increasing the success rate of the fitting operation by the robot 100. In other words, the fitting operation can be realized more robustly against positional deviation of the robot 100.

[0091] Furthermore, according to the first embodiment, even if the direction in which the workpiece Wa is brought into contact with the workpiece Wb for operation C is not set in advance, the direction in which the workpiece Wa is brought into contact with the workpiece Wb is automatically set in accordance with information on the contact force received by the robot 100 when the previous operation B was stopped. This eliminates the need for the worker (user) to rewrite the parameters set in the controller 400, i.e., to re-teach the operation of the robot 100, every time the placement position of the robot 100 is changed, thereby reducing the burden on the worker (user) and shortening the time required to start up the robot 100.

[0092] In the above explanation, the movement direction in action C is set to the same direction as the direction of the contact force when the previous action B stopped. However, depending on the content of the work performed by the robot 100, the movement direction may be set to move in the opposite direction to the direction of the contact force when the previous action B stopped.

[0093] The parameters for the above operations A to E may be set in advance, but in the first embodiment, they are set by the user in step S100 of Fig. 3(a) The following describes how the parameters are set by the user.

[0094] FIG. 6 is an explanatory diagram of a display screen 800 according to the first embodiment. The display screen 800 is an example of a user interface. The display screen 800 is displayed, for example, on the display unit of the display 600 shown in FIG. 2 or the display unit of the operation panel 500 under the control of the CPU 401. For example, the operation panel 500 may have a touch panel display, and the display screen 800 may be displayed on the touch panel display. In step S100, the CPU 401 displays the display screen 800 on the display unit of the operation panel 500 or the display 600. The CPU 401 displays the display screen 800 on the display unit of the operation panel 500 or the display 600, and accepts user inputs, selections, and settings via the display screen 800. The user can input parameters to the display screen 800 by operating the display screen 800 with a pointing device, a finger, or the like. Then, input information such as parameters is set by the user operating an execution key (not shown) or the like.

[0095] The display screen 800 includes an add button 804 displayed as "+". When the add button 804 is operated, the CPU 401 adds and displays a setting field to the display screen 800 for setting an action to be performed by the robot 100. In the example of FIG. 5, setting fields represented by letters "action A," "action B," "action C," "action D," and "action E" corresponding to five actions are displayed. In this way, the CPU 401 is configured to accept input operations on the display screen 800 for setting actions to be performed by the robot 100 and adding actions. Actions A to E are actions added via the display screen 800, and parameters are set for each action. By adding a force control action with the add button 804, multiple actions are executed consecutively.

[0096] "Action A" is a setting field corresponding to the above-mentioned action A. "Action B" is a setting field corresponding to the above-mentioned action B. "Action C" is a setting field corresponding to the above-mentioned action C. "Action D" is a setting field corresponding to the above-mentioned action D. "Action E" is a setting field corresponding to the above-mentioned action E. In this embodiment, parameters for actions A to E are set via the display screen 800.

[0097] Each of the setting fields "Movement A" to "Movement E" includes multiple boxes 801, 802, and 803, and an add button 805. When the add button 805 is operated in any of the setting fields "Movement A" to "Movement E," the CPU 401 adds and displays boxes 801, 802, and 803 and a box 806 in that setting field. This makes it possible to additionally set parameters related to the movement direction for one force control movement. In other words, it is possible to set multiple movement directions for one force control movement.

[0098] Box 801 is a box for selecting a movement axis, and is configured to allow selection from a plurality of candidates, for example, in a pull-down format. In the first embodiment, box 801 is configured to allow selection from, for example, six candidates: "X", "Y", "Z", "rX", "rY", and "rZ".

[0099] The candidates "X", "Y", "Z", "rX", "rY", and "rZ" indicate the movement axes of the movement, with "X" being the X axis, "Y" being the Y axis, "Z" being the Z axis, "rX" being the rX axis, "rY" being the rY axis, and "rZ" being the rZ axis. That is, "X" indicates a linear movement along the X axis. "Y" indicates a linear movement along the Y axis. "Z" indicates a linear movement along the Z axis. "rX" indicates a rotational movement around the X axis. "rY" indicates a rotational movement around the Y axis. "rZ" indicates a rotational movement around the Z axis.

[0100] CPU 401 accepts the selection of one of these six candidates and displays a character corresponding to the axis of movement of the selected action among the six candidates in box 801. In the example shown in Fig. 6, the candidate "Z", i.e., the Z axis, is selected in box 801 for the setting field "Action A".

[0101] Box 802 is a box for selecting the movement direction relative to the movement axis selected in box 801, and is configured to allow selection from a plurality of candidates, for example, in a pull-down format. In the first embodiment, box 802 is configured to allow selection from, for example, three candidates: "+", "-", and "non".

[0102] The option "+" is an example of the first option, and is used by the user to set the movement direction in the positive direction. The option "-" is an example of the second option, and is used by the user to set the movement direction in the negative direction. Taking the setting field "Action A" as an example, "X" is selected in box 801, and "-" is selected in box 802. In this case, the movement axis is the X axis, and the movement direction relative to the movement axis is set in the negative direction. In other words, the movement direction by action A is set in the -X direction.

[0103] The selection candidate "non" is an example of a third candidate, and is used when the user does not set a movement direction, i.e., when the CPU 401 sets the movement direction in step S33. By setting "n on", the user can set the movement direction of the robot 100 in a predetermined movement so that it changes depending on the force received by the robot 100. Taking the setting field "Movement C" as an example, "rZ" is selected in box 801, and "non" is selected in box 802. In this case, the movement axis is set to the rZ axis, and the movement direction relative to the movement axis is not set, and is set by the CPU 401 in step S33 described above. Note that in the setting field "Movement A", the candidate "non" cannot be selected because this is the first movement.

[0104] In this way, in the first embodiment, the candidate "non" is selected in the box 802 of the setting field "motion C." When the candidate "non" is set in this way, in step S33 for motion C, the CPU 401 determines the positive or negative direction with respect to the movement axis based on the direction of the contact force acting on the workpiece Wa when motion B of the previous force control was stopped. Then, in step S34, the CPU 401 executes motion processing to cause the robot 100 to perform motion C.

[0105] Box 803 is a box for the user to input a contact force threshold value, which is a condition for stopping the operation of robot 100. CPU 401 accepts input of the threshold value via box 803. The threshold value input into box 803 is used for the determination in step S35.

[0106] Box 806 is a box displayed when multiple movement directions are set for one force control operation. In box 806, the CPU 401 accepts a selection of "AND" or "OR" as the condition for stopping the robot's movement based on a contact force threshold determination in each movement direction. If "AND" is selected, the CPU 401 stops the movement of the robot 100 when the contact force in the direction opposite to all of the movement directions selected in boxes 801 and 802 exceeds the corresponding threshold. If "OR" is selected, the CPU 401 stops the movement of the robot 100 when even one of the contact forces in the direction opposite to all of the movement directions selected in boxes 801 and 802 exceeds the corresponding threshold.

[0107] In the first embodiment, the coordinate system of the movement direction specified by the boxes 801 and 802 is the coordinate system 901, but this is not limited to this and any coordinate system can be set.

[0108] As described above, according to the first embodiment, even in the setting work, the operator (user) can easily set parameters in the controller 400 by using the display screen 800, which is a user interface. This reduces the burden on the operator (user) and shortens the time required to start up the robot 100. Furthermore, the robot system 1000 can easily control the robot arm 101 and the robot hand 102 according to the operating status of the robot system 1000. Furthermore, the present invention may be implemented as an information processing device or an information processing method having a processing unit capable of executing the user interface displayed on the display screen 800 of this embodiment. The present invention may be implemented as an information processing device or an information processing method, in which the user programs a program for operating the robot 100.

[0109] [Second embodiment] A second embodiment of the present disclosure will be described. The robot system of the second embodiment has basically the same hardware configuration as the robot system 1000 of the first embodiment described above. Hereinafter, elements with the same reference symbols as those of the first embodiment will be assumed to 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. In the second embodiment, the configuration of the user interface differs from that of the first embodiment. The user interface of the second embodiment will be described below.

[0110] 7 is an explanatory diagram of a display screen 810, which is an example of a user interface according to the second embodiment. The display screen 810 is obtained by adding boxes 811 to 814 for setting a start position SP1 to the display screen 800 of FIG. 6 described in the first embodiment, and by adding a button 815 for setting a force control parameter to each of the setting fields "MOTION A" to "MOTION E."

[0111] The display screen 810 is displayed, for example, on the display unit of the display 600 or the display unit of the operation panel 500 shown in FIG. 2 under the control of the CPU 401. In step S100, the CPU 401 displays the display screen 810 on the display unit of the operation panel 500 or the display 600. The CPU 401 displays the display screen 810 on the display unit of the operation panel 500 or the display 600, and accepts a user selection (input) via the display screen 810. The user can input parameters to the display screen 810 by operating the display screen 810 with a pointing device, a finger, or the like. Then, input information such as parameters is set by the user operating an execution key (not shown) or the like.

[0112] The box 811 is a box into which the teaching point number of the robot 100 for moving the origin of the coordinate system 901 to the start position SP1 is input. The CPU 401 receives the input of the teaching point number via the box 811.

[0113] 3(b), the CPU 401 reads from memory the data of the teaching point corresponding to the teaching point number input in the box 811. This teaching point is set to a value of a position above the recessed portion H of the workpiece Wb. The orientation data of this teaching point data is a value that does not tilt with respect to the XY plane of the coordinate system 902 by default.

[0114] Box 812 is a box in which the tilt direction after moving to the teaching point is selected from "rX," "rY," and "rZ." Box 813 is a box in which the positive or negative direction is selected from "+" and "-." Box 814 is a box in which the tilt angle is input. The CPU 401 receives input of the tilt direction and tilt angle of the workpiece Wa relative to the workpiece Wb via boxes 812 to 814.

[0115] Fig. 8 is an explanatory diagram of a display screen 820 according to the second embodiment. When a button 815 is operated, the CPU 401 displays the display screen 820 shown in Fig. 8 on the display unit of the operation panel 500 or the display 600, and accepts inputs, selections, and settings from the user via the display screen 820. The user can input parameters to the display screen 820 by operating the display screen 820 with a pointing device, a finger, or the like.

[0116] Display screen 820 is a screen for accepting input of force control parameters. The force control parameters for which input is accepted preferably include at least one parameter of stiffness, viscosity, and inertia.

[0117] In the second embodiment, the display screen 820 is configured to be able to accept input of stiffness, viscosity, and inertia parameters. The display screen 820 has boxes 821, 822, and 823. Six-axis stiffness parameters are input into box 821, six-axis viscosity parameters are input into box 822, and six-axis inertia parameters are input into box 823. The CPU 401 accepts input of force control parameters via the display screen 820.

[0118] The force control parameter may be set commonly or individually for two or more of the actions A to E. That is, the force control parameter may be set individually for each of two or more of the actions A to F, or may be set commonly for two or more of the actions.

[0119] In the second embodiment, the movement direction of the robot 100 in the action D is not set, as shown in Fig. 7. The following will be described with reference to the flowchart in Fig. 3(b). In step S31, the CPU 401 reads the parameters of the action D.

[0120] Next, in step S32, the CPU 401 determines whether or not a movement direction on the movement axis for the motion D has been set.

[0121] In the second embodiment, since the movement direction for the action D has not been set (NO in step S32), the CPU 401 proceeds to the next step S33 and sets the movement direction of the robot 100.

[0122] In step S33, the CPU 401 sets the positive or negative direction of movement relative to the movement axis in movement D based on whether the contact forces in the rX and rY directions at the time of stopping the previous movement C were positive or negative. That is, the CPU 401 sets the movement direction of the robot 100 in movement D (second movement direction) to either the positive or negative direction according to information (second information) about the force received by the robot 100 in the previous movement C. The positive direction here is an example of the third direction, and the negative direction is an example of the fourth direction. That is, the +rX direction and the +rY direction are each the third direction, and the -rX direction and the -rY direction are each the fourth direction. As described above, the information about the force received by the robot 100 in the previous movement C includes information about the direction (positive or negative) of the force about the X axis and the Y axis received by the robot 100.

[0123] In the second embodiment, the CPU 401 sets the movement direction to the same direction as the positive and negative rX and rY directions at the time of stopping action C. That is, the CPU 401 sets the rotation direction around the X axis, which is the movement direction of the robot 100, to the same direction (positive or negative) of the force around the X axis that the robot 100 received during action D, either the positive or negative direction, or the -rX direction in the example of FIG. 4(d). Furthermore, the CPU 401 sets the rotation direction around the Y axis, which is the movement direction of the robot 100, to the same direction (positive or negative) of the force around the Y axis that the robot 100 received during action D, either the positive or negative direction, or the -rY direction in the example of FIG. 4(d).

[0124] Next, in step S34, the CPU 401 executes movement processing (third movement processing) to make the robot 100 perform movement D. The subsequent processing is the same as that described in the first embodiment, and therefore description thereof will be omitted.

[0125] As described above, according to the second embodiment, similarly to the first embodiment, the success rate of the mating operation by the robot 100 is increased. In other words, the mating operation can be realized more robustly against positional deviation of the robot 100.

[0126] Furthermore, according to the second embodiment, even if the direction in which the workpiece Wa contacts the workpiece Wb for operations C and D is not set in advance, the direction in which the workpiece Wa contacts the workpiece Wb is automatically set in accordance with information about the contact force received by the robot 100 when the previous operations B and C were stopped. This eliminates the need for the worker (user) to rewrite the parameters set in the controller 400, i.e., to re-teach the robot 100 its operations, every time the placement position of the robot 100 is changed, thereby reducing the burden on the worker (user) and shortening the time required to start up the robot 100.

[0127] Furthermore, according to the second embodiment, even in the setting work, an operator (user) can easily set parameters in the controller 400 by using the display screen 810, which is a user interface. This reduces the burden on the operator (user) and shortens the time required to start up the robot 100. Furthermore, it is possible to easily cause the robot system 1000 to control the robot arm 101 and the robot hand 102 according to the operating status of the robot system 1000. Furthermore, the present invention may be implemented as an information processing device or an information processing method having a processing unit capable of executing the user interface displayed on the display screen 810 in this embodiment. The present invention may be implemented as an information processing device or an information processing method, in which a user programs a program for operating the robot 100.

[0128] Furthermore, according to the second embodiment, it is possible to set force control parameters for each of the force control operations A to E, and to execute force control suitable for each of the operations A to E.

[0129] [Third embodiment] A third embodiment of the present disclosure will be described. The robot system of the third embodiment has basically the same hardware configuration as the robot system 1000 of the first embodiment described above. Hereinafter, elements with the same reference symbols as those of 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. In the third embodiment, the configuration of the user interface differs from the configuration of the user interface of the first and second embodiments. The user interface of the third embodiment will be described below.

[0130] FIG. 9 is an explanatory diagram of a display screen 840, which is an example of a user interface according to the third embodiment. FIG. 10 is an explanatory diagram of an operation handle HN displayed on the display screen 840 according to the third embodiment. The display screen 840 is displayed, for example, on the display unit of the display 600 shown in FIG. 2 or the display unit of the operation panel 500 under the control of the CPU 401. In step S100, the CPU 401 displays the display screen 840 on the display unit of the operation panel 500 or the display 600. The CPU 401 displays the display screen 840 on the display unit of the operation panel 500 or the display 600, and accepts user input, selection, and setting via the display screen 840. The user can input parameters to the display screen 840 by operating the display screen 840 with a pointing device, a finger, or the like. Then, input information such as parameters is set by the user operating an execution key (not shown) or the like.

[0131] The display screen 840 includes the display screen 810 and the display screen 820 described in the second embodiment. The display screen 840 also includes a display screen 830. The display screen 830 is a screen that displays a 3D model.

[0132] The CPU 401 displays, on the display screen 830, an operation handle HN that can be operated by the user and a robot model 100M that moves in conjunction with the operation handle HN. The robot model 100M is displayed based on 3D-CAD data and is used to simulate the operation of the robot 100 in a three-dimensional virtual space. The robot model 100M is placed on a base model 300M. A workpiece model WaM may be defined near a robot hand model 102M of the robot model 100M, and the workpiece model WaM may be simulated to move in conjunction with the robot model 100M. The operation handle HN is defined at a position corresponding to the origin of the coordinate system 901. The CPU 401 simulates the robot model 100M to move in conjunction with the operation handle HN.

[0133] The CPU 401 may accept an operation of the operation handle HN by the user, and may accept an input of the tilt direction and tilt angle according to the position and orientation of the operation handle HN in the three-dimensional virtual space. At that time, the tilt direction may be displayed in boxes 812 and 813, and the tilt angle may be displayed in box 814.

[0134] The CPU 401 is also configured to be able to accept input of the movement direction for each of the actions A to E using the operation handle HN. For example, the user can drag the operation handle HN to set the movement axis and the positive or negative direction of the movement on the movement axis (for example, the +Z direction for action A).

[0135] As described above, according to the third embodiment, by using the operating handle HN, the tilt direction and tilt angle of the workpiece Wa at the start position SP1 can be easily set, and the movement direction for each of the operations A to E can be easily set. Furthermore, it is possible to easily cause the robot system 1000 to control the robot arm 101 and the robot hand 102 according to the operating status of the robot system 1000. Furthermore, the present embodiment may be implemented as an information processing device or an information processing method having a processing unit capable of executing the user interface displayed on the display screen 840. The present embodiment may be implemented as an information processing device or an information processing method, in which a user programs a program for operating the robot 100.

[0136] [Other variations] The present disclosure is not limited to the above-described embodiments, and many modifications of the embodiments are possible within the technical concept of the present disclosure. For example, at least two of the above-described embodiments may be combined. Furthermore, the effects described in the present embodiment are merely a list of the most preferable effects resulting from the present embodiment, and are not limited to those described in the present embodiment.

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

[0138] (Other Examples) The present invention can also be realized by supplying a program that realizes one or more functions of the above-described embodiments to a system or device via a network or a storage medium, and having one or more processors in the computer of the system or device read and execute the program. It can also be realized by a circuit (e.g., ASIC) that realizes one or more functions.

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

[0140] (Section 1) Robots and a controller for controlling the robot, The controller a first movement process for causing the robot to perform a first movement; a second operation process for making the robot perform a second operation after the first operation process; The controller setting a first movement direction of the robot in the second movement of the second movement process to either a first direction or a second direction opposite to the first direction, according to first information on a force received by the robot in the first movement process; A robot system characterized by:

[0141] (Section 2) the controller, when the force received by the robot in the first movement processing is equal to or greater than a first threshold, stops the movement of the robot and then executes the second movement processing; Item 1. A robot system according to item 1.

[0142] (Section 3) the second movement is a rotational movement about a first axis, The first movement direction is a rotation direction around the first axis. 3. The robot system according to item 1 or 2,

[0143] (Section 4) the first information includes information about a direction of a force around the first axis received by the robot; the controller sets the first movement direction to one of the first direction and the second direction, the same direction as the direction of the force around the first axis received by the robot; Item 4. The robot system according to item 3,

[0144] (Section 5) The first motion is a linear motion along a second axis that intersects the first axis. Item 5. The robot system according to item 3 or 4,

[0145] (Section 6) The controller When the robot is caused to perform an operation of assembling a first workpiece held by the robot to a second workpiece, the robot is operated so that the first workpiece moves to a predetermined position; operating the robot so that the first workpiece moves from the predetermined position along the first axis, and performing the first operation process after the first workpiece comes into contact with the second workpiece; Item 6. The robot system according to item 5,

[0146] (Section 7) the controller controls the robot to tilt the first workpiece relative to the second workpiece at the predetermined position. Item 7. The robot system according to item 6,

[0147] (Section 8) The controller After the second operation process, a third operation process is executed to cause the robot to perform a third operation; a second movement direction of the robot in the third movement of the third movement process is set to either a third direction or a fourth direction opposite to the third direction, according to second information on a force received by the robot in the second movement process; 8. The robot system according to any one of items 1 to 7, characterized in that:

[0148] (Section 9) the controller, when the force received by the robot in the second operation process is equal to or greater than a second threshold, stops the operation of the robot and then executes the third operation process. Item 9. The robot system according to item 8, characterized in that:

[0149] (Section 10) the third movement is a rotational movement about a second axis, the third direction and the fourth direction are rotation directions around the second axis; Item 10. The robot system according to item 8 or 9, characterized in that:

[0150] (Section 11) the second information includes information about a direction of the force around the second axis received by the robot; the controller sets the second movement direction to one of the third direction and the fourth direction, the same direction as the direction of the force about the second axis received by the robot; Item 11. The robot system according to item 10.

[0151] (Section 12) The controller performs force control in the first movement and the second movement. 12. The robot system according to any one of items 1 to 11, characterized in that:

[0152] (Section 13) the controller is configured to, when setting the second action, accept selection of one of a first candidate for setting the first movement direction to the first direction, a second candidate for setting the first movement direction to the second direction, and a third candidate for not setting the first movement direction; the controller is configured to, when accepting selection of the third candidate, set the first movement direction to one of the first direction and the second direction in accordance with the first information. 13. The robot system according to any one of items 1 to 12, characterized in that:

[0153] (Section 14) the controller is configured to display a user interface on a display unit and to accept a user selection via the user interface. Item 14. The robot system according to item 13,

[0154] (Section 15) The controller is configured to receive input of a tilt direction and a tilt angle of the first workpiece relative to the second workpiece. Item 8. The robot system according to item 7, characterized in that:

[0155] (Section 16) The controller is configured to display a user interface on a display unit and to receive input from a user via the user interface. Item 16. The robot system according to item 15,

[0156] (Section 17) the controller is configured to display, in the user interface, an operation handle operable by a user and a robot model linked to the operation handle, and to receive input of the tilt direction and the tilt angle via the operation handle. Item 17. The robot system according to item 16,

[0157] (Section 18) the controller is configured to accept an input of the first threshold value. Item 3. The robot system according to item 2, characterized in that:

[0158] (Section 19) the controller is configured to accept input of parameters of the force control. Item 13. The robot system according to item 12.

[0159] (Section 20) The controller is configured to display a user interface on a display unit and to receive input from a user via the user interface. 20. The robot system according to item 19, characterized in that:

[0160] (Section 21) The force control parameters that are input include at least one parameter of stiffness, viscosity, and inertia. 21. The robot system according to item 19 or 20,

[0161] (Section 22) The force control parameters are set commonly or individually for the first motion and the second motion. 22. The robot system according to any one of items 19 to 21,

[0162] (Section 23) The controller is configured to display a user interface on a display unit and to accept, via the user interface, settings of an action to be performed by the robot. Item 1. A robot system according to item 1.

[0163] (Section 24) the controller displays, in the user interface, an operation handle that can be operated by a user and a robot model that is linked to the operation handle, and receives an input of a movement direction of the robot in the operation by the operation handle; Item 24. The robot system according to item 23.

[0164] (Section 25) The controller is configured to receive, through the user interface, an input operation for adding an action to be performed by the robot. 25. The robot system according to item 23 or 24,

[0165] (Section 26) The controller is configured to receive, through the user interface, an input operation for adding a movement direction in which the robot is to move. Item 24. The robot system according to item 23.

[0166] (Section 27) A control method for controlling a robot, comprising: a first movement process for causing the robot to perform a first movement; a second operation process for making the robot perform a second operation after the first operation process; setting a first movement direction of the robot in the second movement of the second movement processing to either a first direction or a second direction opposite to the first direction, according to first information on a force received by the robot in the first movement processing; A control method comprising:

[0167] (Section 28) Item 27. A method for manufacturing an article, characterized in that the article is manufactured using the robot system according to any one of items 1 to 26.

[0168] (Section 29) An information processing device that sets information for operating a robot, The user can set the direction of rotation of the robot in a predetermined motion to change depending on the force applied to the robot. 1. An information processing device comprising:

[0169] (Section 30) An information processing method for setting information for operating a robot, comprising: The user can set the direction of rotation of the robot in a predetermined motion to change depending on the force applied to the robot. 1. An information processing method comprising:

[0170] (Section 31) A program for causing a computer to execute the control method according to item 27 or the information processing method according to item 30.

[0171] (Section 32) Item 32. A computer-readable recording medium having the program described in item 31 recorded thereon. [Explanation of symbols]

[0172] B...Operation (first operation), C...Operation (second operation), 100...Robot, 400...Controller, 1000...Robot system

Claims

1. Robots and a controller for controlling the robot, The controller a first movement process for causing the robot to perform a first movement; a second operation process for making the robot perform a second operation after the first operation process; The controller a first movement direction of the robot in the second movement of the second movement process is set to either a first direction or a second direction opposite to the first direction, according to first information on a force received by the robot in the first movement process; A robot system characterized by:

2. the controller, when a force received by the robot in the first operation process is equal to or greater than a first threshold, stops the operation of the robot and then executes the second operation process; 2. The robot system according to claim 1.

3. the second movement is a rotational movement about a first axis, the first movement direction is a rotation direction around the first axis; 2. The robot system according to claim 1.

4. the first information includes information about a direction of a force around the first axis received by the robot; the controller sets the first movement direction to one of the first direction and the second direction, the same direction as the direction of the force about the first axis received by the robot; 4. The robot system according to claim 3.

5. The first motion is a linear motion along a second axis that intersects the first axis.

4. The robot system according to claim 3.

6. The controller When the robot is caused to perform an operation of assembling a first workpiece held by the robot to a second workpiece, the robot is operated so that the first workpiece moves to a predetermined position; operating the robot so that the first workpiece moves from the predetermined position along the first axis, and performing the first operation process after the first workpiece comes into contact with the second workpiece; 6. The robot system according to claim 5.

7. the controller controls the robot to tilt the first workpiece relative to the second workpiece at the predetermined position.

7. The robot system according to claim 6.

8. The controller a third operation process for making the robot perform a third operation is executed after the second operation process; a second movement direction of the robot in the third movement of the third movement process is set to either a third direction or a fourth direction opposite to the third direction, depending on second information related to a force received by the robot in the second movement process; 2. The robot system according to claim 1.

9. the controller, when the force received by the robot in the second operation process is equal to or greater than a second threshold, stops the operation of the robot and then executes the third operation process. The robot system according to claim 8 .

10. the third movement is a rotational movement about a second axis, the third direction and the fourth direction are rotation directions around the second axis; The robot system according to claim 8 .

11. the second information includes information about a direction of the force around the second axis received by the robot; the controller sets the second movement direction to one of the third direction and the fourth direction, the same direction as the direction of the force about the second axis received by the robot; The robot system according to claim 10 .

12. the controller performs force control in the first movement and the second movement.

2. The robot system according to claim 1.

13. the controller is configured to, when setting the second action, accept selection of one of a first candidate for setting the first movement direction to the first direction, a second candidate for setting the first movement direction to the second direction, and a third candidate for not setting the first movement direction; the controller is configured, when accepting selection of the third candidate, to set the first movement direction to one of the first direction and the second direction in accordance with the first information.

2. The robot system according to claim 1.

14. the controller is configured to display a user interface on a display unit and to accept a user selection via the user interface. The robot system according to claim 13 .

15. The controller is configured to receive input of a tilt direction and a tilt angle of the first workpiece relative to the second workpiece.

8. The robot system according to claim 7.

16. The controller is configured to display a user interface on a display unit and to receive input from a user via the user interface.

16. The robot system according to claim 15.

17. the controller is configured to display, in the user interface, an operation handle operable by a user and a robot model linked to the operation handle, and to receive input of the tilt direction and the tilt angle via the operation handle.

17. The robot system of claim 16.

18. the controller is configured to accept an input of the first threshold value; 3. The robot system according to claim 2.

19. the controller is configured to accept input of parameters of the force control. The robot system according to claim 12 .

20. The controller is configured to display a user interface on a display unit and to receive input from a user via the user interface.

20. The robot system of claim 19.

21. The force control parameters that are input include at least one parameter of stiffness, viscosity, and inertia.

20. The robot system of claim 19.

22. a parameter of the force control is set commonly or individually for the first motion and the second motion; 20. The robot system of claim 19.

23. The controller is configured to display a user interface on a display unit and to accept, via the user interface, settings of an action to be performed by the robot.

2. The robot system according to claim 1.

24. the controller displays, in the user interface, an operation handle that can be operated by a user and a robot model that is linked to the operation handle, and receives an input of a movement direction of the robot in the operation by the operation handle; 24. The robotic system of claim 23.

25. The controller is configured to receive, through the user interface, an input operation for adding an action to be performed by the robot.

24. The robotic system of claim 23.

26. The controller is configured to receive, through the user interface, an input operation for adding a movement direction in which the robot is to move.

24. The robotic system of claim 23.

27. A control method for controlling a robot, comprising: a first movement process for causing the robot to perform a first movement; a second operation process for causing the robot to perform a second operation after the first operation process, a first movement direction of the robot in the second movement of the second movement process is set to either a first direction or a second direction opposite to the first direction, depending on first information related to a force received by the robot in the first movement process; A control method comprising:

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

29. An information processing device that sets information for operating a robot, The user can set the direction of rotation of the robot in a predetermined motion to change depending on the force applied to the robot.

1. An information processing device comprising:

30. An information processing method for setting information for operating a robot, comprising: The user can set the direction of rotation of the robot in a predetermined motion to change depending on the force applied to the robot.

1. An information processing method comprising:

31. A program for causing a computer to execute the control method according to claim 27 or the information processing method according to claim 30.

32. A computer-readable recording medium on which the program according to claim 31 is recorded.

Citation Information

Patent Citations

  • Robot system, method for controlling robot system, method for assembling article using robot system, control program and recording medium

    JP2019217593A