Control device, control method, robot system, article manufacturing method, display device, program, and recording medium
The control device enhances robot arm teaching by using force and position sensors to accurately replicate instructor motion, addressing the limitations of existing direct teaching methods and improving precision and efficiency in robot arm operations.
Patent Information
- Application Number
- JP2024000566
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2018-02-13
- Filing Date
- 2024-01-05
- Publication Date
- 2025-08-19
- Estimated Expiration
- 2038-12-04
AI Technical Summary
Existing methods for teaching robot arms, such as direct teaching, do not accurately control the robot arm in precision work environments, as they rely on force teaching data that may not align with the instructor's intended motion.
A control device that uses a combination of force and position sensors to acquire data during manual operation, allowing the robot arm to be controlled based on both position and force information, with interpolation and simplification of trajectories where no contact force is generated, and separate control modes for position and force.
Enables precise control of the robot arm by replicating the instructor's intended motion, improving the reproducibility and efficiency of teaching processes, especially in precision tasks.
Smart Images

Figure 0007725624000001 
Figure 0007725624000002 
Figure 0007725624000003
Abstract
Description
[Technical Field]
[0001] The present invention relates to a robot control device, a control method, a robot system, a program, and a recording medium that allow a teacher to manually operate a robot arm and teach the robot arm how to move. , etc. Regarding. [Background technology]
[0002] Conventionally, when teaching a robot arm to operate, an operating device such as a teaching pendant is used to move an end effector or the like to a teaching position, and the instructor memorizes the teaching position while visually confirming the position. In this case, the instructor must repeatedly input coordinates into the teaching pendant or operate the teaching pendant to make small movements of the robot arm, which is a cumbersome process and makes it difficult to teach efficiently.
[0003] One method for improving operability during teaching is a technique called direct teaching. Direct teaching involves a teacher grasping a specific part of the robot and manually operating the robot arm, acquiring position and orientation data of the tip of the robot arm at that time, generating motion command values for the robot arm based on that data, and reproducing the assembly motion during teaching. Direct teaching allows intuitive teaching by simply manually guiding the robot arm, making it possible to easily generate teaching data for operating the robot arm without cumbersome work. When a teacher manually operates the robot arm, the robot control device generally performs a control technique known as compliance control or impedance control. For example, the robot control device controls the robot arm so that the force applied to the tip of the robot arm is zero, thereby moving the robot arm in the direction of the force applied by the teacher.
[0004] Patent Document 1 describes a system in which, when an instructor manually operates a robot arm, time-series data of force torque data is acquired together with position and orientation data, and force instruction data relating to contact force is generated. [Prior art documents] [Patent documents]
[0005] [Patent Document 1] Japanese Patent Application Laid-Open No. 2008-134903 Summary of the Invention [Problem to be solved by the invention]
[0006] However, the method described in Patent Document 1 generates force teaching data related to contact force. Therefore, even if a robot arm is regenerated and operated according to the force teaching data described in Patent Document 1, the robot arm does not necessarily operate as instructed by an instructor in places where precision work such as assembly work is required.
[0007] An object of the present invention is to control a robot arm in a desired manner based on the motion of the robot arm during teaching. [Means for solving the problem]
[0008] One aspect of the present invention is a control device for a robot system including a robot whose predetermined part can be moved by a user, a first sensor that acquires information about a force acting on the predetermined part as first information, and a second sensor that acquires information about the position of the predetermined part as second information, the control device acquiring the first information and the second information while the user is moving the predetermined part, acquiring information about a contact force that occurs when the predetermined part comes into contact with a surrounding object or when an object held by the predetermined part comes into contact with a surrounding object based on the first information, and acquiring a trajectory of the predetermined part based on the second information. ,before Section where no contact force is generated In the above, a section for simplifying the trajectory of the predetermined portion is set, and interpolation is performed between the start point and the end point of the second information in the section. Simplification do The control device is characterized by the above.
[0009] Another aspect of the present invention is a robot system including a robot capable of moving a predetermined part by a user, a first sensor that acquires information about a force acting on the predetermined part as first information, a second sensor that acquires information about the position of the predetermined part as second information, and a control device, in which the control device acquires the first information and the second information while the user is moving the predetermined part, acquires information about a contact force that occurs when the predetermined part comes into contact with a surrounding object or when an object held by the predetermined part comes into contact with a surrounding object based on the first information, and acquires a trajectory of the predetermined part based on the second information. ,before Section where no contact force is generated In the above, a section for simplifying the trajectory of the predetermined portion is set, and interpolation is performed between the start point and the end point of the second information in the section. Simplification do The robot system is characterized by the above. [Effects of the Invention]
[0010] According to the present invention, it is possible to control a robot arm in a desired manner based on the movement of the robot arm during teaching. [Brief explanation of the drawings]
[0011] [Figure 1] FIG. 1 is an explanatory diagram of a robot device according to a first embodiment. [Figure 2] FIG. 2 is a block diagram showing a control system of the robot device according to the first embodiment. [Figure 3] FIG. 2 is an explanatory diagram of a force measured using the sensor according to the first embodiment. [Figure 4] FIG. 3 is a control block diagram of the control system shown in FIG. 2. [Figure 5] 4A and 4B are explanatory diagrams showing time-series data of an operation force and a contact force according to the first embodiment. [Figure 6] FIG. 10 is an explanatory diagram of a third section according to the first embodiment. [Figure 7] 10(a) to 10(c) are diagrams illustrating data of the operating force in the third section according to the first embodiment. [Figure 8]FIG. 10 is an explanatory diagram showing a case where a retry operation is performed in teaching a connector connection in the robot according to the first embodiment. [Figure 9] 5 is an explanatory diagram of the process of the collation unit shown in FIG. 4. FIG. [Figure 10] 3 is a flowchart showing an example of a robot teaching method according to the first embodiment. [Figure 11] 11 is a flowchart showing the force command value generation process of FIG. 10. [Figure 12] 5(a) to 5(d) are explanatory diagrams for teaching the probing operation of the robot arm according to the first embodiment. [Figure 13] FIG. 4 is an explanatory diagram showing a specific example of complementing a trajectory according to the first embodiment. [Figure 14] FIG. 10 is an explanatory diagram of a robot device according to a second embodiment. [Figure 15] FIG. 10 is an explanatory diagram of a robot device according to a third embodiment. [Figure 16] FIG. 10 is a block diagram showing a control system of a robot device according to a fourth embodiment. [Figure 17] FIG. 17 is a control block diagram of the control system shown in FIG. [Figure 18] FIG. 2A is a schematic diagram showing a display unit of the operating device, and FIG. 2B is a schematic diagram showing an operating unit of the operating device. [Figure 19] FIG. 11 is a schematic diagram showing a display unit of an operating device according to a fifth embodiment. DETAILED DESCRIPTION OF THE INVENTION
[0012] DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings. [First embodiment] Fig. 1 is an explanatory diagram of a robot device according to a first embodiment. A robot device 100 as a robot system shown in Fig. 1 includes a robot 200 and a control system 300 which is an example of a control device that controls the robot 200. The control system 300 includes a robot control device 350 and a servo control device 360.
[0013] The robot 200 is a vertically articulated industrial robot. The robot 200 has a robot arm 201, a hand 202 which is an example of an end effector, and a handling unit 203. The handling unit 203 is attached to the tip of the robot arm 201. The hand 202 is supported at the tip of the robot arm 201 via the handling unit 203. In other words, the handling unit 203 is provided between the tip of the robot arm 201 and the hand 202. The handling unit 203 is a part that is operated by an instructor when directly teaching the operation of the robot arm 201, and is shaped so that the instructor can grasp and operate it.
[0014] The robot arm 201 has a plurality of links, for example, seven links 210-216 connected in series, and a base end (fixed end) is fixed to a base B on which a work object is placed, for example. In this embodiment, the seven links 210-216 are connected by six joints J1-J6. Note that the number of links is not limited to seven. Each of the joints J1-J6 is either a prismatic joint, a pivot joint, or a rotary joint (also called a torsion joint). In this embodiment, the joints J2, J3, and J5 are pivot joints, and the joints J1, J4, and J6 are rotary joints. The link 210 is the base end of the robot arm 201. The link 216 is the tip (free end) of the robot arm 201. The hand 202 has a plurality of fingers 220, and is capable of grasping a workpiece or the like by operating the plurality of fingers 220.
[0015] A force sensor 251, which is an example of a first sensor, is disposed between the hand 202 and the handling unit 203. The hand 202 is supported by the force sensor 251, which in turn is supported by the handling unit 203. The force sensor 251 is built into the hand 202. In this embodiment, the force sensor 251 is built into the hand 202, but it may be located between the hand 202 and the handling unit 203, or may be built into the handling unit 203. The force sensor 251 is a sensor used to measure six-axial forces acting on the hand 202. The six-axial forces are translational forces in three mutually orthogonal axial directions and rotational forces around each axis, i.e., moments. The force acting on the hand 202 is a reaction force (hereinafter referred to as a "contact force") that is applied when the hand 202 or an object held by the hand comes into contact with a work object. The contact force is also the force applied by the hand 202 to the work object.
[0016] The force sensor 251 outputs a signal corresponding to the force acting on itself, i.e., the contact force, to the robot control device 350 of the control system 300 at a predetermined cycle. The robot control device 350 performs processing to determine the force acting on the hand 202 based on the signal obtained from the force sensor 251. In this way, the control system 300, i.e., the robot control device 350, can measure the force acting on the hand 202 using the force sensor 251. That is, the force sensor 251 is configured to acquire first force data acting on the tip of the robot 200. As described above, in this embodiment, the term "robot" includes an end effector. Therefore, if an end effector is attached, the tip of the end effector becomes the tip of the robot.
[0017] A driving unit 230 is disposed at each of the joints J1 to J6 of the robot arm 201. Each driving unit 230 has a motor 231 that rotates and drives the corresponding joint. The posture of the robot arm 201 is changed by operating the motor 231 disposed at each of the joints J1 to J6. By changing the posture of the robot arm 201, the hand 202 supported at the tip of the robot arm 201 can be changed to any position and posture. Hereinafter, the "position and posture" of the tip of the robot arm 201 will also be simply referred to as the "position."
[0018] Each drive unit 230 also has a torque sensor 252. That is, a plurality of torque sensors 252, which are an example of second sensors, are disposed at the joints J1 to J6 of the robot arm 201. Each torque sensor 252 outputs a signal corresponding to the torque acting on each joint J1 to J6, i.e., the torque acting between a pair of links connected at each joint J1 to J6, to the robot control device 350 at a predetermined cycle. Based on the signals obtained from the plurality of torque sensors 252, the robot control device 350 performs processing to determine the force acting on the tip of the robot arm 201, i.e., the handling unit 203 attached to the link 216. In this way, the robot control device 350 can measure the force acting on the tip of the robot arm 201, i.e., the handling unit 203, using the plurality of torque sensors 252. That is, the torque sensor 252 is configured to acquire second force data F2 acting on the handling unit 203. The forces acting on the handling unit 203 include contact forces as well as operating forces applied to the handling unit 203 when an instructor grasps and operates the handling unit 203. The force sensor 251 as the first sensor is disposed closer to the tip of the robot (closer to the end effector) than the torque sensor 252 as the second sensor described above.
[0019] Each drive unit 230 also has an encoder 253. That is, a plurality of encoders 253, which are an example of a third sensor, are arranged at the joints J1 to J6 of the robot arm 201. Each encoder 253 is a rotary encoder, and outputs a signal corresponding to the rotation angle of the rotation shaft of the motor 231 to the robot control device 350 and the servo control device 360 at a predetermined cycle. The robot control device 350 performs processing to determine the position of the tip of the robot arm 201 based on the signals obtained from the plurality of encoders 253. In this way, the robot control device 350 can measure the position of the tip of the robot arm 201 using the plurality of encoders 253. That is, the encoder 253 is configured to acquire position and orientation data of the tip of the robot arm 201.
[0020] 2 is a block diagram showing a control system of the robot device 100 according to the first embodiment. The robot control device 350 is configured with a computer. The robot control device 350 includes a CPU (Central Processing Unit) 301, which is an example of a processing unit. The robot control device 350 also includes a ROM (Read Only Memory) 302, a RAM (Random Access Memory) 303, and an HDD (Hard Disk Drive) 304. The robot control device 350 also includes a recording disk drive 305, and I / Os 311 to 314, which are input / output interfaces.
[0021] The CPU 301, ROM 302, RAM 303, HDD 304, recording disk drive 305, and I / O 311 to 314 are connected to one another via a bus 310 so that they can communicate with one another. A servo control device 360 is connected to the I / O 311, and an encoder 253 is connected to the I / O 312. A torque sensor 252 is connected to the I / O 313, and a force sensor 251 is connected to the I / O 314.
[0022] The servo control device 360 is connected to the motors 231 and encoders 253 corresponding to the joints J1 to J6. Note that, although Fig. 2 shows the motors 231, encoders 253, and torque sensors 252 for only one joint, there are six joints in the first embodiment. Therefore, although not shown in Fig. 2, there are six motors 231, six encoders 253, and six torque sensors 252.
[0023] The CPU 301 controls the motors 231 that drive the joints J1 to J6 of the robot arm 201 via a servo control device 360, thereby controlling the operation of the robot arm 201. An HDD 304, which is an example of a storage unit, stores a control and calculation program 325 and teaching data 320. The recording disk drive 305 can read various data, programs, etc. recorded on a recording disk 326. The program 325 is a program that causes the CPU 301 to perform various calculations and controls, which will be described later.
[0024] The teaching data 320 is generated by the CPU 301 when teaching the robot arm 201, and is time-series data of operation command values issued at a predetermined cycle, such as 1 ms. The CPU 301 is set to either a teaching mode or a playback operation mode by a user operating a switch (not shown) provided in the robot control device 350.
[0025] When the teaching mode is set, the CPU 301 controls the robot arm 201 by impedance control, thereby controlling the robot arm 201 so that the robot arm 201 moves in accordance with the direction of a force acting on the robot arm 201. Then, the CPU 301 generates teaching data 320 and stores it in the HDD 304. When the playback operation mode is set, the CPU 301 moves the robot arm 201 in accordance with the teaching data 320 stored in the HDD 304. The teaching data 320 is also called trajectory data.
[0026] The motion command values included in the teaching data 320 are either position command values or force command values. The position command value is composed of three parameters indicating a position and three parameters indicating an attitude. The force command value is composed of three parameters indicating a translational force and three parameters indicating a moment.
[0027] In this embodiment, time-series data of position command values is position teaching data 321, and time-series data of force command values is force teaching data 322. CPU 301 controls the position and posture of robot arm 201 based on position teaching data 321, and controls the force of robot arm 201 based on force teaching data 322. Hereinafter, "position and posture control" will be referred to as "position control." Note that position teaching data 321 may be configured with time-series data of angle command values indicating target angles of each joint J1 to J6, or angle command values indicating target angles of each motor 231, instead of position command values.
[0028] An example of feedback control in position control will be described. The CPU 301 converts the position command value of the teaching data 320 into an angle command value indicating a target value for the angle of each of the joints J1 to J6. Furthermore, the CPU 301 converts the angle command value of each of the joints J1 to J6 into an angle command value indicating a target value for the rotation angle of the motor 231 arranged at each of the joints J1 to J6. The CPU 301 outputs the angle command value for the motor 231 of each of the joints J1 to J6 to the servo control device 360 at a predetermined cycle. The servo control device 360 controls the current supplied to the motor 231 so that the angle detected by the encoder 253 approaches the angle command value. Through the above position control, the position of the tip of the robot arm 201 approaches the position command value.
[0029] An example of feedback control in force control will be described. The CPU 301 calculates a torque command value for each motor 231 so that the force generated at the tip of the robot arm 201 matches the force command value of the teaching data 320, and outputs the calculated torque command value to the servo control device 360. The servo control device 360 controls the current supplied to each motor 231 based on the angle value of each encoder 253 so that the torque generated at each joint matches the torque command value. When energized, each motor 231 generates a driving force, which generates torque at each joint, thereby generating a force at the tip of the robot arm 201. Each encoder 253 outputs a signal indicating the angle value of each motor 231 to the CPU 301. Each torque sensor 252 outputs a signal indicating the torque value to the CPU 301. As a result, the angle value of each encoder 253 and the torque value of each torque sensor 252 are fed back to the CPU 301. The CPU 301 calculates the angle values of each of the joints J1 to J6 based on the robot model and the angle values of each of the encoders 253. The CPU 301 calculates the position of the tip of the robot arm 201 based on the robot model and the angle values of each of the joints J1 to J6. The CPU 301 calculates the force generated at the tip of the robot arm 201 based on the robot model, the angle value of each joint, and the torque value of each joint. Through the above force control, the force generated at the tip of the robot arm 201 is made to approach the force command value.
[0030] The angle command value and torque command value that the CPU 301 outputs to the servo control device 360 are drive command values. The CPU 301 generates drive command values corresponding to the motors 231 of the joints J1 to J6 of the robot arm 201 from the teaching data 320 and outputs them to the servo control device 360, thereby enabling position control and force control of the robot arm 201 to be performed by feedback control.
[0031] 3 is a diagram for explaining the relationship between a force F1 measured using the force sensor 251 and a force F2 measured using the torque sensor 252. The operating force with which the instructor operates the handling unit 203 is represented by F, and the contact force when the hand 202 or an object supported by the hand 202 comes into contact with the work object is represented by f. As shown in FIG. 3, the multiple torque sensors 252 are treated as a single integrated sensor.
[0032] 3, a force sensor 251 and a torque sensor 252 are arranged on either side of an operation point P that indicates the handling unit 203. The force F1 measured using the force sensor 251 is the contact force f with the work object itself. In contrast, the force F2 measured using the torque sensor 252 is the resultant force (f+F) of the contact force f and the operation force F. That is, the contact force f acts on the handling unit 203 in addition to the operation force F applied by the instructor.
[0033] The robot control device 350 can perform force feedback control, which changes the drive command values corresponding to the motors 231 of the joints J1 to J6 based on the contact force f and the operating force F. Specifically, the robot control device 350 can perform control to press the gripped object against the workpiece with a predetermined force by changing the drive command values corresponding to the motors 231 of the joints J1 to J6 so that the contact force f becomes a predetermined force. The robot control device 350 also changes the drive command values corresponding to the motors 231 of the joints J1 to J6 based on information about the operating force F and an impedance model based on virtual viscosity and inertia. This makes it possible to move the robot arm 201 based on the operating force F applied by a human to the handling unit 203. That is, during teaching, the robot control device 350 performs impedance control on the robot arm 201 so that the robot arm 201 moves in the direction of the operating force F acting on the robot arm 201.
[0034] Hereinafter, a case where the robot arm 201 is directly taught will be described. Fig. 4 is a control block diagram of the control system 300 shown in Fig. 2. The CPU 301 shown in Fig. 2 executes a program 325 to function as each of the units 331 to 344 shown in Fig. 4. The HDD 304 shown in Fig. 2 functions as the storage unit 346 shown in Fig. 4. The robot model 347 is information (data) such as the shape and dimensions of the robot arm 201, and is stored in advance in the HDD 304. The hand information 348 is information (data) such as the shape and dimensions of the hand 202, and is stored in advance in the HDD 304.
[0035] When direct teaching is performed, the robot control device 350 performs impedance control on the robot arm 201 so that the robot arm 201 moves in accordance with the direction of the operating force F acting on the robot arm 201. Direct teaching can also be performed by manually operating the robot arm 201, with the instructor pressing a decision button at key points to determine teaching points and connecting these teaching points to generate teaching data. In contrast, in direct teaching according to this embodiment, a series of motion data obtained when the instructor operates the robot arm 201 is acquired point by point, and after acquiring a series of time-series data, teaching data 320 is generated based on this data. As a result, in automatic operation in which the robot arm 201 is regenerated and operated in accordance with the teaching data 320, the reproducibility of the motion of the robot arm 201 as taught by the instructor is improved.
[0036] The process of generating the teaching data 320 will be described below. During teaching, i.e., when the robot control device 350 is set to teaching mode, the robot control device 350 receives signals output from the force sensor 251, torque sensor 252, and encoder 253 at a predetermined cycle, for example, a cycle of 1 ms. The first measurement unit 331 measures a first force, force F1, based on the signal from the force sensor 251, i.e., calculates data on force F1, and stores the data on force F1 in the memory unit 346. The second measurement unit 332 measures a second force, force F2, based on signals from the multiple torque sensors 252, i.e., calculates data on force F2, and stores the data on force F2 in the memory unit 346. The third measurement unit 333 calculates the rotation angle of each of the multiple motors 231 based on signals from the multiple encoders 253, and stores the data on the rotation angle of each of the multiple motors 231 in the memory unit 346. The data of force F1, data of force F2, and data of rotation angle stored in storage unit 346 are time-series data, for example, every 1 [ms]. Each data is synchronized so as to correspond to each other on the time axis.
[0037] The posture calculation unit 334 calculates the posture of the robot arm 201 based on the robot model 347 and the data of the rotation angles of the encoders 253 stored in the storage unit 346. The posture of the robot arm 201 is the angle of each joint J1 to J6 of the robot arm 201. The hand tip calculation unit 335 calculates the coordinates of the tip of the robot arm 201, i.e., the handling unit 203, based on the posture data of the robot arm 201 and the hand information 348. That is, the posture calculation unit 334 and the hand tip calculation unit 335 measure the position of the tip of the robot arm 201 in time series. Note that measurement of the position of the tip of the robot arm 201 is not limited to using the encoder 253. For example, the position of the tip of the robot arm 201 may be measured using a vision sensor arranged around the robot arm 201.
[0038] The contact force calculation unit 336 calculates the contact force f from the force F1 measured using the force sensor 251. In this embodiment, the force F1 measured using the force sensor 251 is the contact force f. The operating force calculation unit 337 calculates a difference value (F2-F1) between the data of the force F1 measured using the force sensor 251 and the data of the force F2 measured using the torque sensor 252. In this embodiment, the difference value (F2-F1) is the data of the operating force F. In this way, only the data of the operating force F can be extracted using the difference value (F2-F1).
[0039] Based on the measurement results of the position of the robot arm 201, the setting unit 338 divides the entire section of the time-series data into a first section in which the position of the robot arm 201 is controlled during the playback operation, and a second section in which the force of the robot arm 201 is controlled during the playback operation. In this embodiment, the setting unit 338 divides the entire section of the time-series data based on whether the magnitude of the calculated contact force f is zero. Specifically, the setting unit 338 defines the section in which the magnitude of the contact force f is zero as the first section, and the section in which the magnitude of the contact force f is other than zero as the second section. Note that in this embodiment, the first section can also be referred to as a first period in which the position and orientation of the robot arm 201 are controlled so as to reproduce the position and orientation data of the third sensor (encoder 253 in this embodiment). Furthermore, the second section can also be referred to as a second period in which the force of the robot arm 201 is controlled so as to reproduce the first force data and second force data. These first and second periods are set by the setting unit 338 based on the analysis results of the first force data and the second force data, as described above. In this embodiment, "reproduction" does not mean merely executing the exact same robot movement, but also means executing a movement based on the taught robot movement, even if the movement differs from the taught robot movement, and is included in the scope of the concept of "reproduction." In other words, as long as the robot can be made to move appropriately through position control in the first period and force control in the second period, the movement may differ from the taught movement.
[0040] FIG. 5 is an explanatory diagram showing time-series data of the operation force and the contact force. FIG. 5 illustrates an example of an assembly operation in which the hand 202 grips a connector W1, which is an example of a first component, and assembles the connector W1 to a connector W2, which is an example of a second component. FIG. 5 also illustrates the operation force and the contact force based on an orthogonal coordinate system of the XYZ axes. For simplicity of explanation, the operation force is limited to operation forces Fx, Fy, and Fz, which are three translational forces in the XYZ directions. Similarly, the contact force is limited to contact forces fx, fy, and fz, which are three translational forces in the XYZ directions. The setting unit 338 divides the entire period in which the time-series data is measured into a first period S1, in which the magnitudes of the three contact forces fx, fy, and fz are all zero, and a second period S2, in which the magnitudes of the three contact forces fx, fy, and fz are non-zero. In other words, the period when there is no contact force is called period S1, and the period when there is contact force is called period S2.
[0041] In section S1, no contact force is generated, i.e., the three contact forces fx, fy, and fz are zero. Specifically, this is the state before the connectors W1 and W2 come into contact with each other. The operating forces Fx, Fy, and Fz vary depending on the force applied by the person to the handling unit 203. What is important in assembling the connectors W1 and W2 is the behavior after the connectors W1 and W2 come into contact with each other. The movement trajectory and force fluctuations before the connectors W1 and W2 come into contact with each other are not important. In this embodiment, the section can be divided into a contact force f and an operating force F. Therefore, it is possible to divide the section into section S1 where the connectors W1 and W2 are not in contact with each other and section S2 where the connectors W1 and W2 come into contact with each other.
[0042] Before the connectors W1 and W2 come into contact with each other, as described above, no contact force is generated, and therefore force control of the robot arm 201 is not necessary. Therefore, the position teaching data generation unit 339 shown in FIG. 4 generates position teaching data 321 based on position data of the tip of the robot arm 201 in section S1. In this embodiment, the position teaching data generation unit 339 generates the position teaching data 321 by interpolating between two points, namely, position data at the start point of section S1 and position data at the end point, using a predetermined interpolation method, such as linear interpolation or joint interpolation. This simplifies the trajectory along the way, allowing the robot arm 201 to operate at a higher speed. Note that the position teaching data 321 may be the measured time-series position data itself. Even in this case, the robot arm 201 can operate at a higher speed than when force control is performed. Furthermore, in this embodiment, the robot control device 350 automatically divides sections S1 and S2, reducing the instructor's workload. It is preferable that the two starting and ending points for the interpolation calculation be the starting and ending points of section S1, but this is not limited to this, and they may be points before and after the starting point of section S1 and points before and after the ending point of section S1.
[0043] In section S2, a contact force is generated, i.e., any one of the three translational forces fx, fy, and fz is not zero, so it is necessary to perform force control on the robot arm 201. The force teaching data generation unit 342 shown in Fig. 4 generates force teaching data 322 so that the robot arm 201 operates with the difference value (F2-F1), i.e., a force (third force) corresponding to the operating force F, during playback operation in section S2.
[0044] The teaching data generating unit 343 generates teaching data 320 by connecting the generated position teaching data 321 and force teaching data 322 in time series, and stores the teaching data 320 in the HDD 304, which is a storage unit for storing the generated teaching data 320. In this embodiment, the teaching data generating unit 343, together with the position teaching data generating unit 339, the force teaching data generating unit 342, and the correction unit 340 and the collating unit 341, which will be described later, constitutes a generating means for generating teaching data having the above-mentioned first and second periods.
[0045] When set to the playback operation mode, the operation command unit 344 reads out the teaching data 320 stored in the HDD 304, generates operation command values, and outputs them to the servo control device 360. By performing playback operations of the robot arm 201 in accordance with the force teaching data 322, the motors 231 of the joints J1 to J6 generate torques such that a force equivalent to the operating force F is generated at the tip of the robot arm 201. This makes it possible to make the robot arm 201 reproduce the same movements as when the instructor (expert) operated the robot arm 201. That is, in a series of movements of the robot arm 201, the movements of the robot arm 201 at the time of teaching can be accurately reproduced at points requiring precision work. That is, the robot arm can be controlled in a desired manner based on the movements of the robot arm at the time of teaching.
[0046] The data on the operating force F, i.e., the difference value (F2-F1), may be used as the force teaching data 322 without correction. However, the series of time-series data may include unnecessary actions such as hand shake by the instructor or an action before a retry. Therefore, the correction unit 340 and the collation unit 341 correct the data on the operating force F to remove the unnecessary actions. When the data on the operating force F is corrected, the force teaching data generation unit 342 generates a force command value included in the force teaching data 322 from the corrected data on the operating force F.
[0047] A specific description will now be given of a method for generating the force teaching data 322, that is, the force command value. The correction unit 340 divides the section S2 in which force control is performed into a plurality of third sections S3-1, S3-2, and S3-3.
[0048] Section S3-1 represents the state immediately after connectors W1 and W2 come into contact with each other. In section S3-1, the contact forces fx, fy, and fz change abruptly. After that, the operating force Fy in the y direction changes significantly, and the person is trying to move the robot arm 201 in the y direction. Looking more closely at the operating force Fy, most of the force is applied in the +y direction, but there is a temporary force applied in the -y direction. The instructor intentionally returns the robot arm to the -y direction after moving it in the +y direction. Near the end of section S3-1, the operating force Fy stabilizes, and a constant force is applied in the +y direction. When the force is stable, the instructor has often discovered the force required for assembly during instruction.
[0049] In section S3-2, the x-direction operating force Fx and contact force fx change sharply. The direction of the operating force Fx changes frequently, indicating that the instructor is applying a vibrational operating force to the handling unit 203. Assembling the connector W1 while vibrating it can sometimes make it easier to assemble the connectors W1 and W2. In this case, the instructor is intentionally operating the handling unit 203 with a vibrational force. If the recorded force data shows a continuous reversal of the operating force direction, this is considered an intended operation, and force teaching data 322 is generated without excluding the intervening operating force data. This allows the instructor's intended operation to be reflected during playback. If the operating force in this state were simply corrected using a moving average or other method, the data would contain no change in the operating force, making it impossible to reproduce the instructor's intended operation. Note that in the above explanation, the determination is made based on the continuous reversal of the operating force direction. However, it may also be determined based on the frequency at which the operating force reversals occur. Since responses of several kHz or higher are not caused by human operation, thresholds may be set around the frequency (several Hz) at which a person intentionally performs a vibratory action to determine whether or not correction should be performed.
[0050] In section S3-3, the connectors W1 and W2 are completely butted together, i.e., assembly is complete, and the operating force disappears after a sudden change in contact force. Since the operating force has disappeared, it can be seen that the teaching operation has ended.
[0051] The data on the operating force F, the data on the contact force f, and the data on the position are a continuous data group with no divisions. A method for dividing the section S2 into a plurality of sections S3-1, S3-2, and S3-3 will now be described in detail.
[0052] Humans tend to perform slower tasks with greater precision. Therefore, the sections in which the robot arm 201 is operated at high speed are considered to be movements that do not require precision or are subject to controlled vibrations. Therefore, in this embodiment, the correction unit 340 performs frequency analysis on the data of the operating force F in section S2 and divides section S2 into multiple sections S3-1, S3-2, and S3-3 based on the analysis results. Specifically, the CPU 301 performs frequency analysis on the data of the operating force F, extracts frequency change points, and uses the frequency change points as the sections dividing the sections. This allows for the extraction of change points in the instructor's movements, i.e., the division of section S2 into multiple sections based on the change points in the instructor's movements. Change points in the operator's movements can also be extracted from changes in the main force components of the operating forces Fx, Fy, and Fz, as well as changes in the positive and negative directions of each force. For example, if the operating force changes from being applied only in the x direction to being applied only in the y direction, it can be determined that the instructor intentionally changed the movement in some way.
[0053] One of the multiple third intervals obtained by dividing interval S2 is set to interval S3. Fig. 6 is an explanatory diagram of interval S3, which is the third interval. As shown in Fig. 6, CPU 301 further divides interval S3 into multiple small intervals SA. Each small interval SA has the same time interval, which in this embodiment is the data sampling period, for example, 1 [ms].
[0054] The correction unit 340 calculates the magnitude of change in the operating force F from the start point to the end point for each of the multiple narrow sections SA, and stores the calculated magnitude in the HDD 304, which is a storage unit. When expressed as a graph as shown in FIG. 6, the magnitude of change in the operating force F is proportional to the angle of the vector indicated by the arrow. If the magnitude of change in the operating force F is below a preset threshold, it is labeled with "S," and if it exceeds a preset threshold, it is labeled with "L." These are stored in the HDD 304 in association with the data on the magnitude of change in the operating force F. Furthermore, regarding the direction of change in the operating force F, a "+" label is assigned to a direction away from zero, and a "-" label is assigned to a direction approaching zero. Regarding the stored labels, a section in which a predetermined number or more of narrow sections SA labeled with "S" are consecutive is defined as a consecutive section SB. Sections other than the consecutive sections are defined as sections SC.
[0055] The correction unit 340 smooths the data of the operating force F included in the continuous section SB by averaging or the like. That is, the correction unit 340 smooths the operating force F applied to the handling unit 203 during teaching for a specific period within the second period set by analyzing the first and second force data. The force-teach-data generation unit 342 generates force-teach-data 322 from the smoothed data (operating force). In this manner, in this embodiment, the correction unit 340 and the force-teach-data generation unit 342 generate the force-teach-data 322 so that the force generated in the robot arm 201 is smoothed during the continuous section SB. By smoothing minute changes in this manner, it is possible to eliminate unnecessary movements, such as the instructor's hand shaking.
[0056] The correction unit 340 performs the following processing in the section SC other than the continuous section SB. Figures 7(a), 7(b), and 7(c) are explanatory diagrams of the data of the operating force in section S3. The dashed line shows the data of the operating force F before correction, and the solid line shows the data of the operating force F after correction. Note that the overlapping of the dashed line and the solid line indicates that the data of the operating force F has not been corrected.
[0057] If the operating force F crosses zero in the section SC as shown in FIG. 7(a), the correction unit 340 does not correct the data of the operating force F. Therefore, the force teaching data generation unit 342 uses the data of the operating force F as the force teaching data 322 as is. The reason why the positive and negative signs of the operating force are reversed is because there is a possibility that this is an important operation in assembly, such as when the operator intentionally vibrates. Here, when the data of the operating force F crosses zero, it means that the positive and negative signs of the data of the operating force F are reversed.
[0058] Even if the operating force F does not cross zero in section SC as shown in FIG. 7(b), if the operating force F at the end point of the continuous section SB is within a predetermined range R that includes zero, the correction unit 340 does not correct the data of the operating force F. Therefore, the force teach data generation unit 342 uses the data of the operating force F as the force teach data 322 as is. This is because if the data were smoothed to generate force teach data when the operating force F is near zero in the continuous section SB, the force teach data would be zero, in which all of the operating force is ignored. To avoid this, in the case of FIG. 7(b), the data of the operating force F is not corrected in section SC.
[0059] When the operating force F does not cross zero in the section SC as shown in FIG. 7(c) and the operating force F at the end point of the continuous section SB is outside a predetermined range R including zero, the correction unit 340 smooths and corrects the data of the operating force F. Specifically, the correction unit 340 smooths the data of the operating force F in the latter section of the section SC relative to the data of the operating force F in the first section that approaches the same operating force as the starting point of the continuous section SB. The force teach data generation unit 342 generates force teach data 322 from the corrected data of the operating force F. Here, the section SC is a collection of narrow sections before the continuous section SB. Thus, in this embodiment, the correction unit 340 and the force teach data generation unit 342 generate the force teach data 322 so that the force (third force) generated by the robot arm 201 is smoothed in the section before the continuous section SB. In the example of Fig. 7(c), in the first half of the section SC, the force vector increases with the maximum gradient, and in the second half of the section SC, the force teaching data 322 is generated with the force teaching data in the continuous section SB as the final command value. This eliminates force fluctuations that occur during trial and error by the instructor, and makes it possible to reflect the final operating force result from the beginning.
[0060] Next, the processing of the collation unit 341 will be described. Fig. 8 is an explanatory diagram showing a case where a retry operation is performed in teaching how to connect connectors. When connecting the connectors W1 and W2 shown in Fig. 8, if a flexible object W such as a flexible flat cable is held by the hand 202, applying too much force will increase the amount of deformation of the flexible object W. The orientation of the connector W1 will become significantly misaligned with the direction in which it can be assembled. In such a case, the instructor will return the connector to its original position and perform a retry operation to adjust the applied force.
[0061] 9 is an explanatory diagram of the processing of the collation unit 341. As shown in Fig. 9, the position data when the return operation is completed has the same value as the position data before the assembly work was performed. Therefore, when the second half of the retry operation is performed, the first half of the operation is not required at all.
[0062] Therefore, in this embodiment, the collation unit 341 checks the time-series position data in the section S2. ofAmong these, data between two position data having the same value is excluded, and operational force data synchronized with the excluded position data is excluded from the time-series operational force data. In other words, the collation unit 341 refers to the position data synchronized with the operational force data corrected by the correction unit 340, and determines whether there is similar time-series position data. If there is similar time-series position data, the similar time-series position data is excluded, and the synchronized force teach data is also excluded. The force teach data generation unit 342 generates force teach data 322 from the partially excluded operational force data. In this way, the collation unit 341 and the force teach data generation unit 342 compare the time-series position data in section S2 with the time-series position data of The force teaching data 322 is generated so as to omit the movement of the robot arm 201 between two pieces of position data that have the same value. Here, "the same value" includes cases where the position data are misaligned within a tolerance range previously set in a storage unit such as the HDD 304. For example, if the tolerance is set to 0.1 mm, coordinates X: 200.0 mm, Y: 200.0 mm, Z: 200.0 mm and coordinates X: 199.9 mm, Y: 200.0 mm, Z: 200.0 mm are considered to be the same value. Note that when omitting the movement of the robot arm 201 between two pieces of position data, it is preferable to omit the movement corresponding to one of the two pieces of position data and leave the movement corresponding to the other piece of position data. In the example of FIG. 9, the movement in section S4, where assembly failed, is omitted. That is, the generation means (341, 342) determines whether or not a retry operation is required when teaching the robot arm based on the position and orientation data acquired by the third sensor, and if it determines that a retry operation is required, generates teaching data so that the failed operation is not reproduced. In this way, by processing the position data as well, unnecessary operations can be effectively eliminated.
[0063] The operation of the robot control device 350 has been described above with reference to the block diagram shown in Fig. 4. A series of processes performed by the robot control device 350 will now be summarized as the flowchart shown in Fig. 10. Fig. 10 is a flowchart showing an example of a robot teaching method according to the first embodiment.
[0064] First, the CPU 301 acquires time-series position data, operating force data, and contact force data of the robot arm 201 at the time of teaching (S101). The CPU 301 also reads settings for dividing teaching data into sections, thresholds for labeling small sections, and settings for determining similarity of position data, which have been manually set in advance.
[0065] Next, the CPU 301 performs a division process in accordance with the settings read in for each piece of data at the time of teaching (S102). Specifically, the CPU 301 divides the data into sections S1, S3-1, S3-2, S3-3, etc., as shown in the example of FIG.
[0066] The CPU 301 assigns interval numbers 1 to N to the divided data. MAX are assigned in time series (S103). Thereafter, teaching data is generated for each interval. The CPU 301 defines an interval processing number N, and first sets N=1 (S104).
[0067] The CPU 301 determines whether or not there is a contact force in the Nth section (S105). If there is no contact force (S105: NO), the CPU 301 performs a process of generating a position command value based on position control (S106). Step S10 7 In the above, the CPU 301 generates a position command value by connecting the start position and end position of the Nth interval using a predetermined interpolation method, i.e., correcting the position data. That is, the CPU 301 as a generating means generates position teaching data to be reproduced in the first period (first interval) by interpolating between two points of the position and orientation data acquired by the third sensor using a predetermined interpolation method.
[0068] If there is a contact force (S105: YES), the CPU 301 performs a process of generating a force command value (S109) based on force control (S108). After generating the position command value or the force command value, the CPU 301 <N MAX It is determined whether or not N <N MAXIf N=N (S110: YES), the CPU 301 increments N by 1 (S111) and returns to the process of step S105. MAX In this case (S110: NO), the CPU 301 generates teaching data 320 in which the command values for all sections are arranged in chronological order (S112).
[0069] The process of step S109 in Fig. 10 will be described in detail below. Fig. 11 is a flowchart showing the force command value generation process. CPU 301 determines whether there are similar parts in the position data (S121). If there are similar parts (S121: YES), CPU 301 executes a deletion process to delete data at parts determined to have similar position data, except for the last data of the similar parts, together with force data in the simultaneous series (S122).
[0070] Next, the CPU 301 further divides the data of the Nth section into subsections for each sampling period of the force sensor (S123). The CPU 301 assigns numbers 1 to n to each subsection. MAX (S124). The CPU 301 determines whether the displacement of the operational force data in the narrow section is large or small based on a threshold value, and performs labeling. At this time, the CPU 301 determines a group of narrow sections in which narrow sections with small displacements are consecutive as a consecutive section.
[0071] The CPU 301 defines a sub-interval processing number n, and initially sets n=1 (S125). The CPU 301 determines whether the nth sub-interval is a continuous interval (S126). If it is a continuous interval (S126: YES), the CPU 301 averages the operating force data to generate a smoothed force command value (S127).
[0072] If the Nth interval is not a continuous interval (S126: NO), the CPU 301 determines whether the operating force F crosses zero (S128). If the operating force F crosses zero (S128: YES), the CPU 301 generates a force command value without processing the operating force data. If the operating force F does not cross zero (S128: NO), the CPU 301 processes the operating force data depending on whether there is a continuous interval in the Nth interval and the value to which the operating force data converges (S129). As described above, if there is a continuous interval in the Nth interval, the CPU 301 generates a force command value that targets the value at the start of the continuous interval.
[0073] CPU301 is <n MAX It is determined whether or not (S130). <n MAX If n=n (S130: YES), the CPU 301 increments n by 1 (S131) and returns to the process of step S126. MAX If so (S130: NO), the process proceeds to step S110 in FIG.
[0074] In the above explanation, for example, the operation of assembling the connectors W1 and W2 shown in FIG. 5 has been described, but the robot 200 may perform other tasks as well. For example, the robot arm 201 may also perform a probing operation.
[0075] There are cases where a person performs assembly work by using the sense of touch without relying on vision. After determining the rough target position by visual inspection, the person proceeds with the assembly relying on the sense of touch. This is thought to be because it is more efficient to find an assembly method in which the part is brought into a rough position and then pressed in a certain direction to converge on a certain state, rather than assembling while visually correcting the target position to match the part. The same can be said for assembly using the robot 200.
[0076] Figures 12(a) to 12(d) are explanatory diagrams for teaching the robot arm's probing operation. The axes along the top surface of the workpiece W12 are designated X and Y, and the axis perpendicular to the X and Y axes is designated Z. As shown in Figure 12(a), the robot arm performs a probing operation (position search) to insert a rod-shaped workpiece W11 into the insertion hole H12 of the workpiece W12. The workpiece W11 held by the hand is brought into contact with the top surface of the workpiece W12 to be inserted and pressed with a constant force in the Z direction while searching for the insertion position in the X and Y directions. When the workpiece W11 approaches the insertion hole H12 as shown in Figure 12(b), the operator senses a change in contact force, adjusts the operating force, and proceeds to the next assembly stage as shown in Figures 12(c) and 12(d). If the contact force changes when the operating force changes, the operator can adjust the contact force as a stepping condition to reproduce an assembly operation that can accommodate misalignment of parts. However, when the operating force fluctuates continuously, as in probing (position search), but there is no or little change in contact force, processing is different from before. If the insertion hole H12 during playback operation is within the operating range up to the insertion hole H12 during teaching, the assembly operation can be reproduced by using the change in contact force as a stepping condition for the operation, but if the misalignment of the part is outside the operating range during teaching, the operation cannot be reproduced. For probing operations, it is necessary to supplement the operation from the time of teaching so that it can also handle misalignment of the part.
[0077] Therefore, in this embodiment, the CPU 301 determines that a movement in which the operating force continuously fluctuates but there is no or little change in the contact force is a probing movement, and complements the reproduced movement based on the movement tendency. Figure 13 is an explanatory diagram showing a specific example of trajectory complementation. Figure 13 illustrates three probing movements α, β, and γ. The CPU 301 analyzes the tendency of the probing movement from the displacement of each coordinate until the insertion hole H12 is reached, i.e., until the contact force changes, and complements the movement that was not taught, making it possible to deal with component misalignment and other problems, thereby increasing versatility.
[0078] [Second embodiment] FIG. 14 is an explanatory diagram of a robot device 100A according to the second embodiment. In the first embodiment, a case was described in which the second sensor is a plurality of torque sensors arranged at each joint of the robot arm 201. In the second embodiment, the second sensor is a force sensor 252A. The force sensor 252A is preferably arranged between the tip of the robot arm 201 and the handling unit 203. In this embodiment, the force sensor 252A is built into the handling unit 203. The force sensor 252A has the same configuration as the force sensor 251. The force sensor 252A outputs a signal corresponding to the force applied to the handling unit 203 to the robot control device 350 at a predetermined cycle. In the second embodiment, as in the first embodiment, the operating force F can be calculated by subtracting the force F1 measured using the force sensor 251 from the force F2 measured using the force sensor 252A.
[0079] [Third embodiment] 15 is an explanatory diagram of a robot device 100B according to the third embodiment. In the first embodiment, a force sensor 251 serving as a first sensor is mounted on the robot 200. In the third embodiment, the first sensor is a force sensor 251B provided on a base B on which a work target W22 is placed. The force sensor 251B has the same configuration as the force sensor 251 described in the first embodiment.
[0080] When the hand 202 grips the workpiece W21, the workpiece W21 comes into contact with the work target W22. The contact force at this time acts on the force sensor 251B. The force sensor 251B outputs a signal corresponding to the force acting on itself to the robot control device 350 at a predetermined cycle. Therefore, the robot control device 350 can measure the contact force using the force sensor 251B.
[0081] [Fourth embodiment] Next, the fourth embodiment will be described with reference to FIGS. 16 to 18(b). In the following description, only the differences from the first embodiment will be described, and the same reference numerals will be used to designate the same components as those in the first embodiment, and a description thereof will be omitted. FIG. 16 is a block diagram showing a control system of a robot device according to the fourth embodiment. As shown in FIG. 16, in this embodiment, an operation device 254 is connected to a bus 310 via an I / O 315. That is, the operation device 254 is connected to a robot control device 350, and the operation device 254 is configured to be able to acquire position and orientation information of the robot 200 and force sensor information from the force sensor 251, torque sensor 252, etc., via the robot control device 350.
[0082] As shown in FIG. 17 , the operation device 254 includes a display unit 256, an operation unit 257, an external input / output unit 258, a display control unit 259, and a communication interface unit 260. The operation device 254 processes data acquired from the robot control device 350, displays the data on the display unit 256, and notifies the robot control device 350 of changes in the state of the operation unit 257. The operation unit 257 is a control unit that receives operations from a user (teaching operator) and controls the display information displayed on the display unit 256 to be changed. The external input / output unit 258 is an interface for inputting and outputting any sensor signal, trigger signal, etc. to and from the outside. The display control unit 259 is an output unit that outputs display information corresponding to the teaching data generated by the teaching data generation unit 343 to the display unit. The display control unit 259 displays the display information on the display unit 256 as time-series information that allows a first section (first period) and a second section (second period) to be distinguished from each other.
[0083] Next, the configuration of the display unit 256 will be described in detail. The display unit 256 draws the screen and displays data at the time of teaching, as shown in the teaching data confirmation screen in FIG. 18(a). The teaching data confirmation screen may be constantly displayed on the display unit 256, or may be switched to a different screen by performing a screen transition. The teaching data confirmation screen displays the position information of the robot 200 at the time of teaching and the force sensor information of the robot 200 as time-series data (time-series raw data). Furthermore, teaching data automatically generated from the acquired position information and force sensor information is also displayed together with the time-series (time-series teaching data). By comparing the acquired time-series raw data with the generated time-series teaching data, it is possible to distinguish and confirm areas where the operator's intentions are faithfully reflected from areas where omissions, smoothing, or deletions have been made. Furthermore, the teaching data may be modified while checking this display. Note that, for convenience, the data is arranged vertically in FIG. 18(a), but they may be displayed overlapping on the same graph.
[0084] As described above, the time-series raw data is automatically divided into intervals, and data processing is performed for each interval according to its characteristics to generate training data. The intervals are divided at least into a first interval (first period) and a second interval (second period), and these divided intervals can be independently selected and changed using the operation unit 257. More specifically, in this embodiment, the intervals are further subdivided and displayed by further dividing the first interval and the second interval. That is, the display unit 256 displays first subintervals (first subintervals) obtained by further dividing the first interval and / or second subintervals (second subintervals) obtained by further dividing the second period, and these first subintervals and second subintervals can be independently selected and changed. Note that, in this embodiment, the first interval and the second interval are automatically divided into subintervals, but they may also be manually divided into subintervals. Naturally, these subintervals may be selected, edited, or deleted.
[0085] The teaching data confirmation screen displays the time-series raw data and the time-series teaching data so that the section boundaries are clearly visible. The divided sections can be selected using buttons on the operation unit 257, or, if the display unit 256 of the operation device 254 is a touch panel, by directly clicking on the screen. The selected section is clearly indicated by shading, inversion, or other color to indicate that it has been selected, and it is possible to select and instruct the method of generating teaching data for the selected section. However, information showing how the teaching data was generated from the time-series raw data may always be displayed without selecting a section.
[0086] Furthermore, when a certain section is selected, a selection UI is displayed, allowing the user to select a desired process from various pre-defined processes. For example, the user can reselect a teaching data generation method, such as averaging, linear approximation, zeroing, omission, fastest trajectory generation, or no correction (faithfully reproducing the teaching raw data), and regenerate the teaching data. When the teaching data generation method is reselected, a confirmation screen is displayed asking whether to regenerate the teaching data. However, the regeneration confirmation screen may be eliminated and the regeneration may be performed automatically. When the teaching data is regenerated, the time-series teaching data on the display unit 256 is updated and displayed. That is, when a change operation is performed on the display information displayed on the display unit 256 via the operation unit 257, the display control unit 259, which serves as an update means, updates the teaching data based on the change operation. The confirmation screen for reselecting the teaching data generation method and regeneration may be displayed by displaying a pop-up screen or by selecting using a button assigned to the operation unit 257.
[0087] In addition to selecting a section, if the display unit 256 of the operation device 254 is a touch panel, the section boundaries themselves can be selected by directly clicking on the screen or using buttons on the operation unit 257. Automatically generated section boundaries can also be moved along the time axis, and boundaries can be deleted or added, making it possible to change the duration of a section. Section boundaries are selected using the same methods as those used for selecting a section. A boundary can be added by selecting a location on the screen where there is no boundary, causing an addition screen to pop up, or by using a button assigned to the operation unit 257. If the display unit 256 is a touch panel, the operation unit 257 is integrated with the display unit 256. The above-described change operation can be performed by operating the button on the operation unit 257 or the touch panel. The button or switch on the operation unit 257 may be a physical button / switch or a button / switch displayed as an image on a touch panel.
[0088] Next, the configuration of the operation unit 257 will be described in detail with reference to Fig. 18(b). In the following description, the operation unit 257 will be described as an example of buttons displayed on the display unit 256 of the operation device 254 in Fig. 16, but it may also be a physical button provided on the operation device 254.
[0089] The operation unit 257 is equipped with a teaching enable / disable switch 257a that switches whether the teaching work is enabled or disabled, and when this teaching enable / disable switch 257a is enabled, the time-series raw data is updated and displayed. The time-series raw data may be updated and displayed at all times, but the teaching enable / disable switch 257a is provided to avoid increasing the load on the control device, such as drawing, when it is not necessary other than the teaching work. The period for which the display is updated can be set arbitrarily in advance, but if the period is too long, the data display density increases, making it difficult for the operator to see, so it should be set appropriately.
[0090] The operation unit 257 also includes a teach data acquisition button 257b, which is configured so that operating the teach data acquisition button 257b resets the displayed time-series raw data and allows the display to be started from scratch. That is, the operation unit 257 realizes the function of the teach data acquisition button 257b by using a selection unit that allows the user to select whether or not to acquire the first force data and the second force data when operating the handling unit 203. When the teach data acquisition button 257b is pressed or released, the robot immediately stops on the spot. The teach data acquisition button 257b may also be provided on the handling unit 203 on the robot side.
[0091] Furthermore, the operation unit 257 is provided with an execution button 257c that reproduces the operation of the time-series teaching data, and when the execution button 257c is pressed, the robot 200 (robot arm 201) performs an operation based on the selected time-series teaching data.
[0092] Next, the flow of teaching will be explained in detail. The teaching work enable / disable switch 257a is enabled to start teaching the robot 200. When the teaching work enable / disable switch 257a is enabled, time-series raw data is displayed on the display unit 256 of the operating device 254 for a predetermined arbitrary period of time. The teaching worker then proceeds with the consideration of the workpiece assembly work, etc., while looking at the time-series raw data. Next, when trial and error is completed and the stage of actually generating teaching data is reached, the teaching worker presses the teaching data acquisition button 257b, and the time-series raw data is accumulated.
[0093] The accumulated and displayed time-series raw data is divided into multiple sections as described above, and can be selected and deleted even while the teaching operation is active. The teaching data can be acquired again from the beginning of the deleted section, and by pressing the teaching data acquisition button 257b while the deleted section is selected, the teaching data will be combined.
[0094] However, if there is a difference between the final time-series raw data (especially position and orientation information) of the section immediately preceding the deleted section and the reacquired time-series raw data that exceeds a preset threshold, a warning is displayed to prevent the data from being merged. A function to assist the operator in successfully merging the data may also be provided. For example, a function may perform automatic movement at a low speed to trace the section immediately preceding the deleted section, and display a notification when the section reaches the final section. In this case, the operator presses the Acquire Teaching Data button 257b after the notification to continue the teaching work. Similar assistance may also be provided for merging the next deleted section, automatically interpolating the movement to the starting position and orientation of the section immediately following the deleted section when the Acquire Teaching Data button 257b is released. In other words, it is important to avoid abrupt changes in position and orientation at the joining point of the teaching data. However, caution is required regarding force information, as continuity will be lost.
[0095] When the teaching data acquisition button 257b is pressed, time-series teaching data is automatically generated from the acquired time-series raw data and displayed on the display unit 256 of the operation device 254. The operator checks the displayed time-series teaching data, edits it as appropriate, and saves the teaching data.
[0096] Next, the reproduction of teaching data will be explained. The reproduction of teaching data is performed by pressing the execute button 257c. The worker sets various conditions for the teaching work, such as the initial position of the assembly object and the initial position and posture of the robot, and then presses the execute button 257c. The time-series teaching data on the display unit 256 of the operation device 254 is displayed so that the position on the time axis can be seen, so that the part being reproduced can be seen. For example, a bar perpendicular to the time axis may be displayed, moving over time, or highlighted. This allows the worker to check the parts of the teaching work that went well and the parts that had problems, making it easier to edit the teaching data.
[0097] Furthermore, the time-series raw data and time-series teaching data are managed as set data in the storage unit of the robot control device 350 so that they can be reloaded and reedited from the operating device, and the saved teaching data can be given any file name. The above operations may be performed by a teaching pendant that teaches the robot, or may be configured to be performed by a predetermined application on any computer.
[0098] With the above functions, the automatic generation of teaching data and the correction of teaching data can be performed simply and clearly. As a result, a UI can be provided that allows users of all levels, from beginner users who are unfamiliar with robots to experts who are accustomed to using robots, to easily generate and correct teaching data. Furthermore, experts who are accustomed to using robots can teach the robot while checking the teaching data and can try and error the method of generating the teaching data, making it possible to perform advanced teaching with simple operations.
[0099] [Fifth embodiment] Next, a fifth embodiment will be described with reference to FIG. 19. In the following description, only the differences from the fourth embodiment will be described, and the same components will be denoted by the same reference numerals and will not be described again. In this embodiment, the display unit 256 is configured so that the time-series raw data and the time-series teaching data are not displayed side by side with their time axes aligned. For example, as shown in FIG. 19, the time axis of the time-series teaching data, such as unnecessary operations, is partially compressed, and a correspondence line 400 is displayed so that the corresponding parts of the sections can be recognized and the amount of data reduction on the time axis can be easily understood.
[0100] It should be noted that the present invention is not limited to the above-described embodiments, and many modifications are possible within the technical concept of the present invention, and the inventions described in each embodiment may be combined in any manner. Furthermore, the effects described in the embodiments are merely a list of the most preferable effects resulting from the present invention, and the effects of the present invention are not limited to those described in the embodiments.
[0101] (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.The present invention can also be realized by a circuit (e.g., ASIC) that realizes one or more functions.
[0102] In the above-described embodiment, the computer-readable recording medium is the HDD 304, but the present invention is not limited to this and may be any recording medium, such as the recording disk 326. Specific examples include flexible disks, optical disks (e.g., CD-ROMs and DVD-ROMs), magneto-optical disks, magnetic tapes, non-volatile memories (e.g., USB memories), and ROMs. The program 325 in the above-described embodiment may be downloaded via a network and executed by a computer.
[0103] Furthermore, the functions of the above-described embodiments are not limited to being realized only by a computer reading and executing the program code, but also include cases where an operating system (OS) running on a computer performs some or all of the actual processing based on instructions from the program code, thereby realizing the functions of the above-described embodiments.
[0104] Furthermore, the program code read from the recording medium may be written to a memory provided on a function expansion board inserted into a computer or a function expansion unit connected to the computer, and based on instructions from the program code, a CPU or the like provided on the function expansion board or function expansion unit may perform part or all of the actual processing, thereby realizing the functions of the above-mentioned embodiments. [Explanation of symbols]
[0105] 100... robot system (robot device), 200... robot, 201... robot arm, 202... hand (end effector), 203... handling unit, 251... force sensor (first sensor), 252... torque sensor (second sensor), 253... encoder (third sensor), 256... display unit, 257... operation unit, 259... output means / update means (display control unit), 300... control system (control device), 301: generation means (CPU), 320... teaching data, 321... position teaching data, 322... force teaching data
Claims
1. A control device for a robot system including: a robot whose predetermined portion can be moved by a user; a first sensor that acquires information about a force acting on the predetermined portion as first information; and a second sensor that acquires information about a position of the predetermined portion as second information, acquiring the first information and the second information while the user is moving the predetermined part; acquiring, based on the first information, information regarding a contact force generated by contact between the predetermined portion and a peripheral object or by contact between an object held by the predetermined portion and a peripheral object; acquiring a trajectory of the predetermined portion based on the second information; a section in which the trajectory of the predetermined portion is simplified in a section in which the contact force is not generated, and the trajectory is simplified by interpolating between the start point and the end point of the second information in the section; A control device characterized by:
2. The control device acquiring at least a part of the simplified trajectory as position control data; 2. The control device according to claim 1.
3. The control device performing linear interpolation or joint interpolation between the start point and the end point of the second information; 2. The control device according to claim 1.
4. The control device In a simplified portion of the trajectory of the predetermined portion, position control is performed but force control is not performed. The control device according to any one of claims 1 to 3, characterized in that
5. The user moves the predetermined portion by executing direct teach.
5. The control device according to claim 1, wherein the control device is a control unit for controlling a vehicle.
6. the robot system includes a handling unit operable by the user; The predetermined portion can be moved by operating the handling unit.
6. The control device according to claim 5.
7. the robot system includes a third sensor that acquires information about a force acting on the handling unit as third information; The control device acquiring the third information while the user is moving the predetermined part; acquiring information about an operating force from the user while the user is moving the predetermined portion based on the first information and the third information; 7. The control device according to claim 6.
8. The control device acquiring force control data for force controlling the robot based on the information about the operating force; 8. The control device according to claim 7.
9. The control device In the trajectory of the predetermined portion, a section where the information about the contact force is determined to be zero is determined as a first section where position control is performed, and a section where the information about the contact force is determined to be other than zero is determined as a second section where force control is performed.
9. The control device according to claim 1, wherein the control device is a control unit for controlling a vehicle.
10. The control device smoothing information about the operating force, and acquiring the force control data based on the smoothed information about the operating force; 9. The control device according to claim 8.
11. The control device determining whether or not a redo operation is required at the time of teaching the robot based on the first information, the second information, and the third information, and if it is determined that the redo operation is required, acquiring the force control data so as not to repeat the operation; 9. The control device according to claim 8.
12. the first sensor is a force sensor provided between the handling unit and an end effector supported by the robot; 9. The control device according to claim 6, wherein the control device is a control unit for controlling a vehicle.
13. the third sensor is a force sensor provided between the robot and the handling unit; 9. The control device according to claim 7 or 8.
14. the first sensor is disposed closer to the tip of the arm of the robot than the third sensor; 9. The control device according to claim 7 or 8.
15. an output means for outputting display information corresponding to the first section and the second section to a display unit; The control device according to claim 9 .
16. the output means displays the display information on the display unit as time-series information that enables the first interval and the second interval to be distinguished.
16. The control device according to claim 15.
17. an operation unit that receives an operation from the user and controls the display information displayed on the display unit to enable a change operation; an update means for updating the first section or the second section based on the change operation, 17. The control device according to claim 15 or 16.
18. The operation unit is capable of independently selecting the first section or the second section, and is capable of performing a change operation for each selected section.
18. The control device according to claim 17.
19. the operation unit is configured to be able to change the time width of the period displayed on the display unit.
19. The control device according to claim 17 or 18.
20. the operation unit has a selection unit that can select information to be acquired when the user is moving the predetermined portion, 20. The control device according to any one of claims 17 to 19.
21. The display unit is equipped with a touch panel, and the change operation can be performed based on an operation of the touch panel.
21. The control device according to any one of claims 17 to 20.
22. the first section is a section in which position control is performed when performing the movement of the predetermined part instructed by the user, and the second section is a section in which force control is performed when performing the movement of the predetermined part instructed by the user. The control device according to claim 9 .
23. A robot system including: a robot capable of moving a predetermined portion by a user; a first sensor that acquires information about a force acting on the predetermined portion as first information; a second sensor that acquires information about a position of the predetermined portion as second information; and a control device, The control device acquiring the first information and the second information while the user is moving the predetermined part; acquiring, based on the first information, information regarding a contact force generated by contact between the predetermined portion and a peripheral object or by contact between an object held by the predetermined portion and a peripheral object; acquiring a trajectory of the predetermined portion based on the second information; a section in which the trajectory of the predetermined portion is simplified in a section in which the contact force is not generated, and the trajectory is simplified by interpolating between the start point and the end point of the second information in the section; A robot system characterized by:
24. A method for manufacturing an article, comprising the step of manufacturing an article using the robot system according to claim 23.
25. A method for controlling a robot system including a robot capable of moving a predetermined portion by a user, a first sensor that acquires information about a force acting on the predetermined portion as first information, and a second sensor that acquires information about a position of the predetermined portion as second information, the method comprising: acquiring the first information and the second information while the user is moving the predetermined part; acquiring, based on the first information, information regarding a contact force generated by contact between the predetermined portion and a peripheral object or by contact between an object held by the predetermined portion and a peripheral object; acquiring a trajectory of the predetermined portion based on the second information; a section in which the trajectory of the predetermined portion is simplified in a section in which the contact force is not generated, and the trajectory is simplified by interpolating between the start point and the end point of the second information in the section; A control method comprising:
26. 1. A display device that displays information related to a robot system including a robot whose predetermined portion can be moved by a user, a first sensor that acquires information related to a force acting on the predetermined portion as first information, and a second sensor that acquires information related to a position of the predetermined portion as second information, acquiring the first information and the second information while the user is moving the predetermined part; acquiring, based on the first information, information regarding a contact force generated by contact between the predetermined portion and a peripheral object or by contact between an object held by the predetermined portion and a peripheral object; acquiring a trajectory of the predetermined portion based on the second information; a section in which the trajectory of the predetermined portion is simplified in a section in which the contact force is not generated, and the simplified trajectory is displayed by interpolating between the start point and the end point of the second information in the section. A display device characterized by:
27. 1. A control method for a display device that displays information about a robot system including a robot whose predetermined portion can be moved by a user, a first sensor that acquires information about a force acting on the predetermined portion as first information, and a second sensor that acquires information about a position of the predetermined portion as second information, acquiring the first information and the second information while the user is moving the predetermined part; acquiring, based on the first information, information regarding a contact force generated by contact between the predetermined portion and a peripheral object or by contact between an object held by the predetermined portion and a peripheral object; acquiring a trajectory of the predetermined portion based on the second information; a section in which the trajectory of the predetermined portion is simplified in a section in which the contact force is not generated, and the simplified trajectory is displayed by interpolating between the start point and the end point of the second information in the section. A control method comprising:
28. A control program for causing a computer to execute the control method according to claim 25 or 27.
29. A computer-readable recording medium on which the control program according to claim 28 is recorded.
Citation Information
Patent Citations
Control method for manipulator
JP1990059287A
Hand of direct teaching robot
JP1999231925A
Reproduction device for robot teaching
JP2008134903A
Robot device, robot control method, program and record medium
JP2017124455A
Robot control device, control method, robot system, program and recording medium
JP2019136860A