Control device, robot control system, program, and control method

The control device and method address the challenges of excessive robot hand tip movement and safety concerns by using processors to generate teaching information based on force sensor data, resulting in safer and more accurate robot operation teaching.

JP7687178B2Active Publication Date: 2025-06-03SINTOKOGIO LTD
View PDF 6 Cites 0 Cited by

Patent Information

Application Number
JP2021162931
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2020-10-30
Filing Date
2021-10-01
Publication Date
2025-06-03
Estimated Expiration
2041-10-01

AI Technical Summary

Technical Problem

Existing techniques for teaching robot operations, such as the direct teaching method, may result in excessive robot hand tip movement contrary to the teacher's intention, compromising teacher safety and teaching accuracy.

Method used

A control device and method that include processors to move an end effector and generate teaching information based on the movement path and force sensor detection values, allowing for safer and more accurate robot operation teaching.

Benefits of technology

Enhances teacher safety by allowing remote operation and improves teaching accuracy by enabling real-time feedback on external forces applied to the end effector.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007687178000001
    Figure 0007687178000001
  • Figure 0007687178000002
    Figure 0007687178000002
  • Figure 0007687178000003
    Figure 0007687178000003
Patent Text Reader

Abstract

To provide a technique for teaching a robot an operation more accurately.SOLUTION: A robot (30) comprises an end effector (33) fixed to an arm part (32) via a force sensor (34). One or multiple processors included in a control device (10) execute: movement processing for moving the end effector (33); and generation processing for generating teaching information in accordance with a movement route of the end effector (33) by referring to detection values of the force sensor (34).SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to a technique for teaching operations to a robot.

Background Art

[0002] Techniques for teaching operations to a robot are known. For example, Patent Document 1 describes an example of a technique called the direct teaching method. In this direct teaching method, a teacher applies a force to a force sensor (force sensing sensor) installed on the robot body. The arithmetic unit issues a movement command to the drive unit that drives the robot's hand tip based on the output value of the force sensor. Thereby, the arithmetic unit guides the robot's hand tip to the position and orientation desired by the teacher. Further, the arithmetic unit stores the position and orientation in the storage unit. Note that, in order for the robot not to perform an excessive operation contrary to the teacher's intention, if the output value of the force sensor is outside a predetermined range, the arithmetic unit issues a command with a movement amount of zero to the drive unit.

Prior Art Documents

Patent Documents

[0003]

Patent Document 1

Summary of the Invention

Problems to be Solved by the Invention

[0004] In the technique described in Patent Document 1, even if the output value of the force sensor is within a predetermined range, due to unexpected factors or the like, the robot's hand tip may move excessively contrary to the teacher's intention. In this case, there is a problem that the safety of the teacher near the robot cannot be sufficiently ensured. On the other hand, remote teaching methods or the like that ensure the safety of the teacher cannot be taught intuitively like the direct teaching method. If the teacher cannot teach intuitively, the teaching accuracy may not be sufficient.

[0005] One aspect of the present invention is made to solve the above-described problems, and an object thereof is to realize a technique for more accurately teaching operations to a robot.

Means for Solving the Problems

[0006] In order to solve the above problems, a control device according to one aspect of the present invention is a control device that controls a robot and includes one or more processors. The one or more processors execute a movement process and a generation process. Further, a control method according to one aspect of the present invention is a control method in which one or more processors control a robot, and includes a movement step and a generation step.

[0007] The robot includes an arm part, a force sensor, and an end effector fixed to the arm part via the force sensor. In the movement process (movement step), the one or more processors move the end effector. In the generation process (generation step), the one or more processors generate teaching information according to the movement path of the end effector with reference to the detection value of the force sensor.

Effects of the Invention

[0008] According to one aspect of the present invention, it is possible to more accurately teach operations to a robot.

Brief Description of the Drawings

[0009]

Figure 1

Figure 2

Figure 3

Figure 4

Figure 5

Figure 6

Figure 7

Figure 8

Mode for Carrying Out the Invention

[0010] 〔Embodiment 1〕 Hereinafter, the robot control system 1 according to the present embodiment will be described in detail.

[0011] <Overview of Robot Control System 1> The robot control system 1 is a system for controlling a robot, and controls the robot based on operations by a teacher. The robot to be controlled includes an arm unit, a force sensor, and an end effector fixed to the arm unit via the force sensor. One or more processors move the end effector based on operations on an operating device by a teacher. Also, one or more processors output information indicating the detected value of the force sensor to an output device in real time during the movement of the end effector.

[0012] In such a robot control system 1, the safety of the teacher can be enhanced by the teacher operating the operating device at a location sufficiently far from the robot (for example, outside a safety fence). Also, the teacher can perform an operation of moving the end effector while confirming the external force applied to the end effector by confirming the detected value of the force sensor in real time. As a result, the teacher can more easily teach the operation of the end effector in a safer environment.

[0013] Hereinafter, an example in which a hand unit is applied as the end effector of the present embodiment will be described.

[0014] <Configuration of the Robot Control System 1> The configuration of the robot control system 1 will be described with reference to FIGS. 1 and 2. FIG. 1 is a schematic diagram showing the configuration of the robot control system 1. FIG. 2 is a block diagram showing the configuration of the robot control system 1.

[0015] As shown in FIGS. 1 and 2, the robot control system 1 includes a dedicated controller 10, a robot controller 20, a robot 30, a display 40, and an operating device 50. Here, the dedicated controller 10 is an example of the control device in the present invention. Also, the display 40 is an example of the output device in the present invention. The robot control system 1 is a system for teaching the robot 30 an operation of inserting the convex workpiece 91 into the concave workpiece 92.

[0016] (Arrangement Positions of the Display 40 and the Operating Device 50) Here, the display 40 is arranged so as to be visible to the instructor U. Also, the operating device 50 is arranged at a location separated from the robot 30 by a predetermined distance or more (for example, outside the safety fence). Thereby, the instructor U teaches an operation to the robot 30 remotely while visually recognizing the display 40.

[0017] (Convex Workpiece 91 and Concave Workpiece 92) The convex portion of the convex workpiece 91 can be inserted into the concave portion of the concave workpiece 92. In the present embodiment, the convex portion has a shape that can be fitted into the concave portion. For example, when the concave workpiece 92 is arranged with the concave portion facing upward, the convex portion of the convex workpiece 91 can be fitted into the concave portion by moving the convex portion downward with the convex portion facing downward. Hereinafter, moving the convex workpiece 91 so that the convex portion of the convex workpiece 91 is fitted into the concave portion of the concave workpiece 92 is also described as inserting the convex workpiece 91 into the concave workpiece 92. Also, the direction in which the convex workpiece 91 is moved to be inserted into the concave workpiece 92 is also described as the insertion direction.

[0018] (Configuration of the Robot 30) The robot 30 includes a pedestal 31, an arm unit 32, a hand unit 33, and a force sensor 34.

[0019] The pedestal 31 is disposed on the placement surface of the robot 30. The placement surface is, for example, the floor or the like, but is not limited thereto. The pedestal 31 may be movable on the placement surface based on the control of the robot controller 20.

[0020] The arm unit 32 includes four arms. The base end portion of each arm is rotatably connected to the tip end portion of another arm or the pedestal 31 about a defined axis. Based on the control of the robot controller 20, by controlling the rotation of each arm at the connecting portion, the trajectory of the tip end portion of the entire arm unit 32 is controlled.

[0021] The hand unit 33 is fixed to the arm unit 32 via the force sensor 34. The hand unit 33 includes a base portion 331 and a pair of finger portions 332a and 332b connected to the base portion 331. Based on the control of the robot controller 20, the hand unit 33 performs an opening operation of separating the finger portions 332a and 332b from each other and a closing operation of approaching each other. The hand unit 33 grips the convex workpiece 91 by opening and closing the finger portions 332a and 332b. Hereinafter, opening and closing the finger portions 332a and 332b is also described as opening and closing the hand unit 33.

[0022] The force sensor 34 detects the direction and magnitude of the force and moment acting on itself. The detected values of the force sensor 34 will be described with reference to FIG. 3. FIG. 3 is a schematic diagram for explaining a specific example of the detected values and connection form of the force sensor 34. As shown in FIG. 3, the force sensor 34 is a six-axis force sensor that detects the magnitude of the force (Fx, Fy, Fz) acting in each direction of three axes (x-axis, y-axis, z-axis) and the magnitude of the moment about each axis (Mx, My, Mz). Hereinafter, Fx, Fy, Fz, Mx, My, Mz are also described as force components or simply detected values.

[0023] Further, as shown in FIG. 3, the force sensor 34 has a surface 341 and a surface 342. The force sensor 34 also has a strain generating body (not shown) that connects the member having the surface 341 and the member having the surface 342. The force sensor 34 calculates the values of the respective components of the force acting on itself by detecting the deformation of the internal strain generating body.

[0024] Next, an example of the connection form of "the hand unit 33 is fixed to the arm unit 32 via the force sensor 34" will be described with reference to FIG. 3. As shown in FIG. 3, the tip 321 of the entire arm unit 32 is fixed to the surface 342 of the force sensor 34. The base 331 of the hand unit 33 is fixed to the surface 341 of the force sensor 34. Thus, when an external force is applied to the convex workpiece 91 in a state where the hand unit 33 holds the convex workpiece 91, an external force is also applied to the force sensor 34. Therefore, when an external force is applied to the convex workpiece 91, the force sensor 34 detects the values of the respective components of the force acting on itself.

[0025] (Configuration of the robot controller 20) The robot controller 20 is a device that controls the operation of the entire robot 30. As shown in FIG. 2, the robot controller 20 includes a processor 21, a primary memory 22, a secondary memory 23, a communication interface (IF) 24, and an input / output interface (IF) 25. The processor 21, the primary memory 22, the secondary memory 23, the communication interface 24, and the input / output interface 25 are interconnected via a bus.

[0026] A program P2 is stored in the secondary memory 23. The program P2 is a program for causing the processor 21 to execute a process for controlling the operation of the entire robot 30. The processor 21 expands the program P2 stored in the secondary memory 23 onto the primary memory 22. Then, the processor 21 executes a process for controlling the operation of the entire robot 30 according to the instructions included in the program P2 expanded onto the primary memory 22. Details of the process for controlling the operation of the entire robot 30 will be described later.

[0027] Examples of devices that can be used as the processor 21 include, for example, a CPU (Central Processing Unit), a GPU (Graphic Processing Unit), a DSP (Digital Signal Processor), an MPU (Micro Processing Unit), an FPU (Floating point number Processing Unit), a PPU (Physics Processing Unit), a microcontroller, or a combination thereof. The processor 21 may also be referred to as an "arithmetic unit".

[0028] Examples of devices that can be used as the primary memory 22 include, for example, a semiconductor RAM (Random Access Memory). The primary memory 22 may also be referred to as a "main storage device". Examples of devices that can be used as the secondary memory 23 include, for example, a flash memory, an HDD (Hard Disk Drive), an SSD (Solid State Drive), an ODD (Optical Disk Drive), an FDD (Floppy (registered trademark) Disk Drive), or a combination thereof. The secondary memory 23 may also be referred to as an "auxiliary storage device". Note that the secondary memory 23 may be built into the robot controller 20, or may be built into another computer (for example, a computer that constitutes a cloud server) connected to the robot controller 20 via the communication interface 24. In the present embodiment, the storage in the robot controller 20 is realized by two memories (the primary memory 22 and the secondary memory 23), but it is not limited thereto. That is, the storage in the robot controller 20 may be realized by one memory. In this case, for example, a certain storage area of the memory may be used as the primary memory 22, and another storage area of the memory may be used as the secondary memory 23.

[0029] The communication interface 24 is an interface for communicating with the dedicated controller 10. Specific examples of the communication interface 24 include interfaces such as USB (Universal Serial Bus), Ethernet (registered trademark), Wi-Fi (registered trademark), and serial communication systems. Specific examples of the network system connecting the communication interface 24 and the communication interface 14 described later include PAN (Personal Area Network), LAN (Local Area Network), CAN (Campus Area Network), MAN (Metropolitan Area Network), WAN (Wide Area Network), GAN (Global Area Network), or an internetwork including these networks. The internetwork may be an intranet, an extranet, or the Internet. Note that the dedicated controller 10 may be connected to the input / output interface 25.

[0030] The arm unit 32 and the hand unit 33 are connected to the input / output interface 25 via their respective drive units (not shown). Examples of the input / output interface 25 include interfaces such as serial communication, Ethernet (registered trademark), DeviceNet, CC-Link, PROFIBUS, EtherNet (registered trademark) / IP, and EtherCat (Ethernet for Control Automation Technology). Note that one or both of the arm unit 32 and the hand unit 33 may be connected to the communication interface 24 via the drive unit.

[0031] (Processing for controlling the operation of the entire robot 30) The process by which the robot controller 20 controls the operation of the entire robot 30 includes a movement control process and a gripping control process. The movement control process is a process of moving the tip 321 of the entire arm unit 32. When the tip 321 moves, the hand unit 33 fixed to the tip 321 via the force sensor 34 also moves. Hereinafter, moving the tip 321 will also be described as moving the hand unit 33. The processor 21 moves the hand unit 33 by transmitting control information to the drive unit that drives each connecting part of the arm unit 32. The processor 21 may move the hand unit 33 to the position indicated by the information received from the outside. Further, the processor 21 may move the hand unit 33 in the direction indicated by the information received from the outside.

[0032] The gripping control process is a process of causing the hand unit 33 to grip the convex workpiece 91. The processor 21 performs the gripping control process by combining the raising and lowering process of raising and lowering the tip 321 of the arm unit 32 and the opening and closing process of opening and closing the hand unit 33. The processor 21 performs the raising and lowering process by transmitting control information to the drive unit that drives each connecting part of the arm unit 32. Further, the processor 21 performs the opening and closing process by transmitting control information to the drive unit that drives the finger parts 332a and 332b.

[0033] (Configuration of the dedicated controller 10) The dedicated controller 10 is a device that executes each process for teaching the operation to the robot 30. The dedicated controller 10 moves the hand unit 33 based on the operation of the instructor U on the operation device 50. Further, the dedicated controller 10 displays, in real time, information indicating each detection value of the force sensor 34 on the display 40 while the hand unit 33 is moving.

[0034] As shown in FIG. 2, the dedicated controller 10 includes a processor 11, a primary memory 12, a secondary memory 13, a communication interface 14, and an input / output interface 15. The processor 11, the primary memory 12, the secondary memory 13, the communication interface 14, and the input / output interface 15 are interconnected via a bus.

[0035] The secondary memory 13 stores a program P1 and teaching information D. The program P1 is a program for causing the processor 11 to execute a control method S1 and a control method S2, which will be described later. The processor 11 expands the program P1 stored in the secondary memory 13 onto the primary memory 12. Then, the processor 11 executes each step included in the control method S1 and the control method S2 according to the instructions included in the program P1 expanded onto the primary memory 12. The teaching information D is information referred to by the processor 11 that executes the control method S1 and the control method S2. Details of the teaching information D will be described later.

[0036] Examples of devices that can be used as the processor 11 include a CPU (Central Processing Unit), a GPU (Graphic Processing Unit), a DSP (Digital Signal Processor), an MPU (Micro Processing Unit), an FPU (Floating point number Processing Unit), a PPU (Physics Processing Unit), a microcontroller, or a combination thereof. The processor 11 may also be referred to as an "arithmetic unit".

[0037] Examples of devices that can be used as the primary memory 12 include, for example, semiconductor RAM (Random Access Memory). The primary memory 12 is sometimes referred to as the "main memory device". Examples of devices that can be used as the secondary memory 13 include, for example, flash memory, HDD (Hard Disk Drive), SSD (Solid State Drive), ODD (Optical Disk Drive), FDD (Floppy (registered trademark) Disk Drive), or a combination thereof. The secondary memory 13 is sometimes referred to as the "auxiliary storage device". Note that the secondary memory 13 may be built into the dedicated controller 10, or may be built into another computer (for example, a robot controller 20 or a computer that constitutes a cloud server) connected to the dedicated controller 10 via the communication interface 14 or the input / output interface 15. In this embodiment, the storage in the dedicated controller 10 is realized by two memories (the primary memory 12 and the secondary memory 13), but it is not limited thereto. That is, the storage in the dedicated controller 10 may be realized by one memory. In this case, for example, a certain storage area of the memory may be used as the primary memory 12, and another storage area of the memory may be used as the secondary memory 13.

[0038] The communication interface 14 is an interface for communicating with the robot controller 20. Specific examples of the communication interface 14 include interfaces such as USB (Universal Serial Bus), Ethernet (registered trademark), Wi-Fi (registered trademark), and serial communication systems. Specific examples of the network system connecting the communication interface 14 and the communication interface 24 are as described above. PAN (Personal Area Network), LAN (Local Area Network), CAN (Campus Area Network), MAN (Metropolitan Area Network), WAN (Wide Area Network), GAN (Global Area Network), or an internetwork including these networks can be mentioned. The internetwork may be an intranet, an extranet, or the Internet. Note that the robot controller 20 may be connected to the input / output interface 15.

[0039] The force sensor 34, the display 40, and the operating device 50 are connected to the input / output interface 15. Examples of the input / output interface 15 include interfaces such as serial communication, Ethernet (registered trademark), USB, A / D converter, and EtherCat (Ethernet for Control Automation Technology). Note that the force sensor 34 may be connected to the communication interface 14 or the input / output interface 25.

[0040] (Configuration of the display 40) The display 40 has a display area for displaying an image. The display 40 displays the image generated by the processor 11 in the display area. Hereinafter, displaying an image in the display area of the display 40 is also simply described as displaying on the display 40. Also, the image displayed in the display area is also described as a screen. Examples of the display 40 include a liquid crystal display, a plasma display, and an organic EL (Electro Luminescence) display.

[0041] (Configuration of the operating device 50) The operating device 50 has an operation unit that receives the operation of the instructor U. The operation of the instructor U includes an operation for instructing the moving direction of the hand unit 33. Also, the operation of the instructor U includes an operation for instructing the confirmation of various processes.

[0042] For example, the operation unit includes push buttons that function as direction buttons in each direction such as up, down, right, and left. Each direction button receives an operation for instructing the moving direction. When any of the direction buttons is pressed, the operating device 50 transmits direction information indicating the direction corresponding to the pressed direction button to the dedicated controller 10. Note that an operation for instructing the moving direction can also be received by a joystick or the like. In this case, when the joystick is tilted, the operating device 50 may transmit direction information indicating the tilted direction to the dedicated controller 10.

[0043] Also, for example, the operation unit includes a push button that functions as an enter button. The enter button receives an operation for instructing the confirmation of various processes. When the enter button is pressed, the operating device 50 transmits confirmation information indicating an instruction of confirmation to the dedicated controller 10.

[0044] Further, the operating device 50 may have a touch panel instead of, or in addition to, the physical user interfaces such as the push buttons and joysticks described above as the operation unit. In this case, the operating device 50 displays user interface objects that function as the direction buttons, joystick, and determination button described above on the touch panel. Further, when the operating device 50 receives a touch operation on each user interface object, it transmits direction information or confirmation information to the dedicated controller 10.

[0045] Hereinafter, the operating device 50 will be described as having direction buttons and a confirmation button.

[0046] <Control method executed by the robot control system 1> The robot control system 1 executes a control method S1 and a control method S2. The control method S1 is a method for teaching the operation of the hand unit 33 to the robot 30. The control method S2 is a method for correcting the operation taught to the hand unit 33 while operating the robot 30 experimentally.

[0047] <Flow of control method S1> The control method S1 executed by the processor 11 will be described with reference to FIG. 4. FIG. 4 is a flowchart showing the flow of the control method S1. As shown in FIG. 4, the control method S1 includes steps S101 to S112.

[0048] (Step S101) In step S101, the processor 11 causes the hand unit 33 to grip the convex workpiece 91. Specifically, the processor 11 requests the robot controller 20 to move the hand unit 33 to the gripping position and then grip the convex workpiece 91.

[0049] More specifically, the processor 11 transmits information indicating the gripping position to the robot controller 20 and requests movement control processing to the gripping position. The gripping position is predetermined above the position where the convex workpiece 91 is arranged. For example, when the processor 21 of the robot controller 20 receives a request for movement control processing, it moves the hand unit 33 to the gripping position. Further, the processor 11 requests gripping control processing from the robot controller 20. When the processor 21 of the robot controller 20 receives a request for gripping control processing, it opens the hand unit 33 and lowers it to the position of the convex workpiece 91. Then, the processor 21 closes the hand unit 33 to grip the convex workpiece 91 and raises it to the original gripping position.

[0050] In this step, the hand unit 33 grips the convex workpiece 91 in a direction in which it can be inserted into the concave workpiece 92. Here, as shown in FIG. 1, when the concave workpiece 92 is arranged with the concave portion facing upward, the insertable direction is the direction in which the convex portion is on the lower side. For example, by arranging the convex workpiece 91 before gripping so that the convex portion is on the lower side, the hand unit 33 can grip the convex workpiece 91 in a direction in which it can be inserted into the concave workpiece 92.

[0051] (Step S102) In step S102, the processor 11 moves the hand unit 33 to the start position. Here, the start position is the position where teaching starts. The start position may be predetermined or specified by the instructor U.

[0052] The case where the start position is predetermined will be described. In this case, for example, a position above the concave workpiece 92 is predetermined as the start position. The processor 11 requests the robot controller 20 to move the hand unit 33 to the start position. More specifically, the processor 11 transmits information indicating the start position to the robot controller 20 and requests movement control processing to the start position. When the processor 21 of the robot controller 20 receives a request for movement control processing, it moves the hand unit 33 to the start position.

[0053] A case where the start position is specified by the instructor U will be described. In this case, the instructor U operates the direction buttons of the operating device 50 so as to move the hand unit 33 to a desired start position. The processor 11 transmits the direction information received from the operating device 50 to the robot controller 20 and requests a movement control process. When the processor 21 of the robot controller 20 receives the request for the movement control process, it moves the hand unit 33 in the direction indicated by the direction information. When the hand unit 33 has moved to the desired start position, the instructor U operates the confirmation button of the operating device 50. When the processor 11 receives the confirmation information from the operating device 50, it sets the position of the hand unit 33 at that time as the start position. The processor 11 stores the information indicating the start position in the primary memory 12 as the information indicating the first passing point of the movement path.

[0054] (Step S103) In step S103, the processor 11 resets the force sensor 34. The force sensor 34 outputs zero as each detection value in the state at the time of reset.

[0055] (Step S104) In step S104, the processor 11 executes a movement process for moving the hand part 33. Specifically, the processor 11 requests the robot controller 20 to move the hand part 33 based on the operation of the instructor U on the operation device 50 (for example, pressing a direction button). The process of this step is an example of the first movement process in the present invention. More specifically, the processor 11 transmits the direction information received from the operation device 50 to the robot controller 20 and requests a movement control process in the moving direction. When the processor 21 of the robot controller 20 receives the request for the movement control process, it moves the hand part 33 in the direction indicated by the direction information. This step is repeatedly executed after each detection value of the force sensor 34 is displayed on the display 40 in step S106 described later. Thereby, the instructor U can operate the operation device 50 to move the hand part 33 while visually recognizing each detection value displayed on the display 40 in real time. Details of the operation by the instructor U will be described later.

[0056] (Step S105) In step S105, the processor 11 acquires each detection value from the force sensor 34. Here, when the convex workpiece 91 is moving in the appropriate insertion direction with respect to the concave workpiece 92, no external force is applied to the convex workpiece 91. In this case, zero is acquired as each detection value of the force sensor 34. Also, when the convex workpiece 91 is moving in a direction deviated from the appropriate insertion direction, an external force is applied to the convex workpiece 91 from the concave workpiece 92. In this case, a value greater than zero is acquired as at least one of the detection values of the force sensor 34.

[0057] Also, in step S105, the processor 11 acquires information indicating the position of the hand part 33. Further, when the orientation of the hand part 33 is variable, the processor 11 may further acquire information indicating the orientation of the hand part 33.

[0058] (Step S106) In step S106, the processor 11 displays, in real time on the display 40, information indicating the position of the hand part 33 and information indicating each detected value of the force sensor 34. Further, when the orientation of the hand part 33 is variable, the processor 11 may further display, in real time, information indicating the orientation of the hand part 33. The processing of this step is an example of the first output processing in the present invention.

[0059] Specifically, the processor 11 displays, in real time on the display 40, an image showing a virtual space in which an object corresponding to the hand part 33 is arranged, information indicating the position of the hand part 33, and information indicating each detected value. In the virtual space, an object corresponding to the hand part 33 is arranged at a virtual position corresponding to the actual position of the hand part 33. The information indicating each detected value indicates the detected value when the hand part 33 is at the actual position. An example of the screen displayed on the display 40 in this step will be described later.

[0060] (Step S107) In step S107, the processor 11 determines whether the detected value of the force sensor 34 satisfies a predetermined condition. Here, the predetermined condition is that at least any one of the detected values exceeds a threshold value. The threshold value is determined for each of the detected values Fx, Fy, Fz, Mx, My, Mz of the force sensor 34.

[0061] Note that, among the threshold values of the respective detected values, the threshold value of the detected value Fz is set to a value larger than the threshold values of the other detected values. This is because when the convex workpiece 91 is inserted to an appropriate position, the tip of the convex portion reaches the concave workpiece 92, and an external force is applied only in the z-axis direction to the convex workpiece 91.

[0062] (Yes in step S107: step S108) If it is determined as Yes in step S107, in step S108, the processor 11 requests the robot controller 20 to stop the hand unit 33. The processing of this step is an example of the first stop processing in the present invention. When the processor 21 of the robot controller 20 receives the stop request, it stops the movement of the hand unit 33. Then, the processor 11 ends the control method S1.

[0063] (Step S107: No: Step S109) If it is determined as No in step S107, in step S109, the processor 11 determines whether to store the current position of the hand unit 33 as a passing point on the movement path. For example, the processor 11 may make this determination based on the operation of the instructor U on the operation device 50 (for example, pressing the confirmation button). In this case, for example, when the processor 11 receives the confirmation information from the operation device 50, it determines to store the current position of the hand unit 33 as a passing point.

[0064] (Step S109: No) If it is determined as No in step S109, the processor 11 repeats the processing from step S104.

[0065] (Step S109: Yes: Step S110) If it is determined as Yes in step S109, in step S110, the processor 11 acquires information indicating the current position of the hand unit 33. The position of the hand unit 33 is represented by, for example, spatial coordinates with the starting position as the origin. For example, the processor 11 may calculate the current position of the hand unit 33 based on the history of the movement direction and movement distance of the hand unit 33. Further, the processor 11 stores the information indicating the current position of the hand unit 33 in the primary memory 12 as information indicating a passing point.

[0066] (Step S111) In step S111, the processor 11 determines whether the teaching has ended. For example, the processor 11 may make this determination based on the operation of the instructor U on the operating device 50 (for example, pressing the confirmation button). In this case, for example, when the processor 11 receives confirmation information from the operating device 50, it determines that the teaching has ended.

[0067] Also, for example, the processor 11 may determine whether the teaching has ended based on the detected value of the force sensor 34. For example, when the convex workpiece 91 is inserted to an appropriate position, as described above, an external force is applied to the convex workpiece 91 only in the z-axis direction, and only the detected value Fz increases. Therefore, the processor 11 may use the condition that the detected value Fz exceeds a predetermined value and the other detected values are zero as the end condition of the teaching.

[0068] (No in step S111) If it is determined No in step S111, the processor 11 repeats the process from step S104.

[0069] (Yes in step S111: step S112) If it is determined Yes in step S111, in step S112, the processor 11 stores the teaching information D indicating the movement path of the hand unit 33 in the secondary memory 13. This step is an example of the storage process in the present invention. Then, the processor 11 ends the control method S1.

[0070] Here, the teaching information D is information indicating the movement path of the hand unit 33 in the first movement process (step S104). For example, when the processor 11 determines that the teaching has ended, the information indicating the position of the hand unit 33 at that time (hereinafter also referred to as the end position) is stored in the primary memory 12 as information indicating the last passing point of the movement path. The processor 11 sets the information indicating the passing points stored in the primary memory 12 as an array arranged in the order of passage as the teaching information D. In other words, the teaching information D is an array of information indicating the passing points arranged in the order along the movement path. Thus, the teaching information D is generated when none of the output values exceed the threshold value with reference to the output values of the force sensor 34 (No in step S107). Therefore, the process of generating such teaching information D is an example of the "generation process of generating teaching information according to the movement path of the end effector with reference to the detection value of the force sensor" in the present invention.

[0071] <Example screen> Next, a specific example of the screen in the control method S1 will be described with reference to FIG. 5. FIG. 5 is an example of a screen (screen G1) displayed on the display 40. Here, the screen G1 is an example of a screen output in the nth (n is an integer of 2 or more) repetition process in the control method S1. Hereinafter, the time point when the i-th (i = 1, 2, 3,..., n) repetition process is executed will also be referred to as time point i. As shown in FIG. 5, the screen G1 includes regions G101, G102, and G103.

[0072] (Region G101) The region G101 includes a region G101a and a region G101b. The region G101a is a region that displays the history of information regarding the position of the hand unit 33 in real time. The region G101b is a region that displays the information regarding the current position of the hand unit 33 in real time.

[0073] Specifically, the area G101a includes information regarding the positions of the hand unit 33 from the start position p1 to the immediately preceding position p(n - 1). Note that the immediately preceding position p(n - 1) refers to the position of the hand unit 33 at the time point t(n - 1). In this example, in the area G101a, for the time points ti (i = 1, 2, 3, …, n - 1), information regarding the position pi of the hand unit 33 and information indicating the detection values of the force sensor 34 are displayed. Specifically, as the information regarding the position pi, values indicating xi, yi, zi, Rxi, Ryi, and Rzi are respectively displayed. (xi, yi, zi) indicates the position pi. (Rxi, Ryi, Rzi) indicates the orientation of the hand unit 33 at the position pi. Also, as the information indicating the detection values of the force sensor 34 at the time point ti, values indicating Fxi, Fyi, Fzi, Mxi, Myi, and Mzi are respectively displayed.

[0074] Further, the area G101b includes information regarding the current position pn of the hand unit 33 at the current time point tn. Specifically, (x, y, z) included in the area G101b indicates the current position pn. Also, (Rx, Ry, Rz) included in the area G101b indicates the orientation of the hand unit 33 at the current position pn.

[0075] (Area G102) The area G102 is an area that displays in real time information indicating each detection value of the force sensor 34. Specifically, the area G102 includes an area G102a and an area G102b. In the area G102a, a graph showing the time change of each detection value up to the current time point tn is displayed. In the area G102b, each detection value of the force sensor 34 at the current time point tn is displayed. Thus, the area G102 includes information indicating each detection value of the force sensor 34 when the hand unit 33 is at the current position pn. The processor 11 updates the areas G102a and G102b using each detection value at the current time point tn in step S106.

[0076] (Area G103) The area G103 is an area that displays, in real time, an image showing a virtual space in which the object OBJ33 is placed. The object OBJ33 is an object corresponding to the hand part 33. In the virtual space, the object OBJ33 is placed at a virtual position corresponding to the actual current position pn of the hand part 33. Also, in the virtual space, objects OBJ91 and OBJ92 corresponding to the convex workpiece 91 and the concave workpiece 92, respectively, are placed at virtual positions corresponding to the actual positions. The object OBJ92 has a recess OBJ92a corresponding to the recess of the concave workpiece 92. The recess OBJ92a has a shape that closely adheres to the tip of the object OBJ91 when the object OBJ91 enters the recess OBJ92a. For example, the processor 11 generates a field-of-view image of the object OBJ33 (or OBJ91, OBJ92) in the virtual space as seen from the virtual viewpoint, and displays the generated field-of-view image in the area G103. Also, when the actual positions of the hand part 33 and the convex workpiece 91 move, the processor 11 moves the virtual positions of the objects OBJ33 and OBJ91 in the virtual space to update the field-of-view image. Note that the virtual viewpoint is the position of the viewpoint in the virtual space. The virtual viewpoint may be a pre-determined virtual position, or a virtual position corresponding to the actual position of the operating device 50 or the like. Also, the virtual viewpoint may be changeable according to the operation of the instructor U.

[0077] <Flow of operations by instructor U> By using the robot control system 1 that executes the control method S1, the instructor U can perform an operation of teaching the robot 30 while looking at the screen G1 displayed on the display 40 outside the safety fence. After the hand part 33 holding the convex workpiece 91 has moved to the start position (that is, after the processor 11 has executed steps S101 to S103), the instructor U performs the following operations in steps A1 to A5.

[0078] (Step A1) In step A1, the instructor U moves the hand part 33 while visually recognizing the screen G1 by operating the direction buttons of the operating device 50. As a result, the processor 11 executes steps S104 to S107.

[0079] Here, if the moving direction of the convex workpiece 91 is deviated from the appropriate insertion direction with respect to the concave workpiece 92, an external force is applied to the convex workpiece 91. As a result, at least one of the detected values of the force sensor 34 exceeds zero, and a detected value exceeding zero is displayed in the region G102. In this case, the instructor U can confirm at which position of the hand part 33 the external force is applied to the convex workpiece 91 by visually recognizing the regions G101 and G103. Thereby, the instructor U can recognize the deviation between the moving direction of the hand part 33 and the appropriate insertion direction. Therefore, the instructor U moves the hand part 33 so that the detected value becomes zero and operates it so that the moving direction follows the appropriate insertion direction.

[0080] (Step A2) In step A2, the instructor U performs an operation with the current position of the hand part 33 as a passing point by operating the confirmation button of the operating device 50. As a result, the processor 11 executes the processes up to steps S109 to S110, and adds and stores the information indicating the passing point in the primary memory 12.

[0081] (Step A3) In step A3, the instructor U repeats steps A1 to A2.

[0082] (Step A4) In step A4, the instructor U confirms in the region G101 that only the detected value Fz exceeds zero and the other detected values are zero. As described above, the state where only the detected value Fz is greater than zero indicates that the tip of the convex part of the convex workpiece 91 has reached the concave workpiece 92, that is, the appropriate insertion position has been reached.

[0083] (Step A5) In step A5, the instructor U ends the teaching by operating the confirmation button of the operation device 50. As a result, the processor 11 executes steps S111 to S112. Also, as a result, an array of information indicating two or more passing points from the start position to the end position is stored in the secondary memory 13 as teaching information D.

[0084] For example, assume that from the start time point t1 to the end time point tN of the teaching, the hand part 33 has moved from the position p1 to pN (N is an integer of n or more). Also, assume that M out of the N positions pi are stored as passing points Pj (j = 1, 2,..., M: M is an integer of 2 or more, P1 = p1, PM = pN). In this case, the teaching information D is an array in which the information indicating the passing points P1, P2,..., PM is arranged in this order. That is, the teaching information D indicates a movement path that passes through the passing points P1, P2,..., PM in this order.

[0085] Also, when the instructor U remotely teaches the robot 30 to operate using the operation device 50, the relationship between the external force applied to the convex workpiece 91 and the position of the hand part 33 can be confirmed on the screen G1. Therefore, the instructor U can easily teach the operation remotely.

[0086] <Flow of control method S2> The control method S2 executed by the processor 11 will be described with reference to FIG. 6. As described above, the control method S2 is a method for correcting the operation taught to the hand part 33 while operating the robot 30 experimentally. FIG. 6 is a flowchart showing the flow of the control method S2. As shown in FIG. 6, the control method S2 includes steps S201 to S212.

[0087] (Steps S201 to S203) The operations of the processor 11 in steps S201 to S203 are the same as the operations in steps S101 to S103. As a result, the processor 11 causes the hand part 33 to grip the convex workpiece 91 and move it to the start position, and resets the force sensor 34.

[0088] (Step S204) Next, the processor 11 reads the teaching information D from the secondary memory 13, and moves the hand unit 33 along the movement path indicated by the read teaching information D (S204). The processing of this step is an example of the second movement processing in the present invention. More specifically, the processor 11 acquires information indicating the first passing point on the movement path by referring to the teaching information D. Further, the processor 11 transmits the information indicating the passing point to the robot controller 20 to request movement control processing. When the processor 21 of the robot controller 20 receives the request for movement control processing, it moves the hand unit 33 to the passing point. Then, the processor 11 repeatedly acquires information indicating the next passing point on the movement path and transmits it to the robot controller 20. As a result, the hand unit 33 moves along the movement path indicated by the teaching information D.

[0089] (Step S205) In step S205, the processor 11 acquires each detection value from the force sensor 34. Here, when the convex workpiece 91 is moving in the appropriate insertion direction, no external force is applied to the convex workpiece 91. In this case, zero is acquired as each detection value of the force sensor 34. Also, when the convex workpiece 91 is moving in a direction deviated from the appropriate insertion direction, an external force is applied to the convex workpiece 91 from the concave workpiece 92. In this case, a value greater than zero is acquired as at least one of the detection values of the force sensor 34.

[0090] Also, in step S205, the processor 11 acquires information indicating the position of the hand unit 33. Further, when the orientation of the hand unit 33 is variable, the processor 11 may further acquire information indicating the orientation of the hand unit 33.

[0091] (Step S206) In step S206, the processor 11 displays in real time on the display 40 information indicating the position of the hand unit 33 and information indicating each detected value of the force sensor 34. Further, when the orientation of the hand unit 33 is variable, the processor 11 may also display in real time information indicating the orientation of the hand unit 33. Note that the processes of steps S205 and S206 are repeatedly executed even during the adjustment process of step S209 described later. The process of this step is an example of the second output process in the present invention.

[0092] Specifically, similar to the first output process, the processor 11 displays on the display 40 in real time an image indicating a virtual space in which an object corresponding to the hand unit 33 is arranged, information indicating the position of the hand unit 33, and information indicating each detected value. In the virtual space, the object is arranged at a virtual position corresponding to the actual current position of the hand unit 33. The information indicating each detected value indicates the detected value when the hand unit 33 is at the actual current position. An example of the screen displayed on the display 40 in this step is as described with reference to FIG. 5.

[0093] (Step S207) In step S207, the processor 11 determines whether the detected value of the force sensor 34 satisfies a predetermined condition. Here, the predetermined condition is the same as the predetermined condition used in step S107, that is, at least any one of the detected values becomes equal to or greater than the threshold value. The details of the process of this step are as described in step S107.

[0094] (No in step S207) If it is determined No in step S207, the processor 11 executes the process of step S212 described later.

[0095] (Yes in step S207: step S208) If it is determined Yes in step S207, in step S208, the processor 11 requests the robot controller 20 to stop the hand unit 33. The processing of this step is an example of the second stop processing in the present invention. When the processor 21 of the robot controller 20 receives the stop request, it stops the movement of the hand unit 33. At this time, for example, the processor 11 may display information indicating the current position of the hand unit 33 on the display 40 as a location to be corrected.

[0096] (Step S209) In step S210, the processor 11 adjusts the position of the hand unit 33 based on the operation of the instructor U on the operating device 50 (for example, pressing a direction button) from the position where it stopped by the second stop processing. The processing of this step is an example of the adjustment processing in the present invention.

[0097] More specifically, the processor 11 transmits the direction information received from the operating device 50 to the robot controller 20 and requests movement control processing in the moving direction. When the processor 21 of the robot controller 20 receives the request for movement control processing, it moves the hand unit 33 in the moving direction. Here, as described above, during the execution of this step, the processes of steps S205 and S206 are repeatedly executed. That is, information indicating each detection value that can change according to the adjustment processing is displayed on the display 40 in real time. Thereby, the instructor U can perform an operation of adjusting the position of the hand unit 33 while visually recognizing each detection value displayed on the display 40 in real time. Details of the operation by the instructor U will be described later.

[0098] (Step S210) In step S210, the processor 11 determines whether the adjustment has ended. For example, the processor 11 may make this determination based on the operation of the instructor U on the operating device 50 (for example, pressing an enter button). In this case, when the processor 11 receives confirmation information from the operating device 50, it determines that the adjustment has ended.

[0099] (Step S211) In step S211, the processor 11 corrects the teaching information D based on the position adjusted by the adjustment process. The process of this step is an example of the correction process in the present invention.

[0100] Specifically, for example, the processor 11 acquires information indicating the current position of the hand unit 33. Further, the processor 11 corrects the teaching information D using the acquired information indicating the current position. For example, assume that the teaching information D includes information indicating M passing points Pj in this order. Also, assume that the current position of the hand unit 33 (i.e., the location to be corrected) is between the passing points Pk and Pk+1. In this case, the processor 11 corrects the teaching information D so as to insert the current position as a new passing point between the passing points Pk and Pk+1.

[0101] (Step S212) In step S212, the processor 11 determines whether the hand unit 33 has reached the end position of the movement path indicated by the teaching information D.

[0102] If the determination in step S212 is No, the processor 11 repeats the process from step S204. If the determination in step S212 is Yes, the processor 11 ends the control method S2.

[0103] <Flow of operations by the instructor U> By using the robot control system 1 that executes the control method S2, the instructor U can perform an operation to correct the taught movement path while viewing the screen G1 displayed on the display 40 outside the safety fence. After the hand unit 33 holding the convex workpiece 91 has moved to the start position (i.e., after the processor 11 has executed steps S201 to S203), the instructor U performs the following operations in steps B1 to B6.

[0104] (Step B1) In step B1, while the robot 30 is operating experimentally according to the teaching information D, the instructor U views the screen G1. That is, the processor 11 executes the processes up to steps S204 to S206.

[0105] (Step B2) In step B2, when any detection value of the force sensor 34 exceeds the threshold value, the hand unit 33 stops. That is, the processor 11 executes the processes up to steps S207 to S208. Therefore, the instructor U views the screen G1 to confirm the location to be corrected in the movement path.

[0106] (Step B3) At this time, the current position of the hand unit 33 is displayed in the area G101 of the screen G1 in a manner indicating the location to be corrected. For example, assume that in step B2, the screen G1 shown in FIG. 5 is displayed on the display 40. That is, assume that at least one detection value of the force sensor 34 exceeds the threshold value when the hand unit 33 is at the position pn. In this case, the position pn is the location to be corrected in the movement path. Therefore, the processor 11 displays the row of the position pn in the area G101 in a manner indicating the location to be corrected. Note that the manner of indicating the location to be corrected includes, for example, changing the character color or the background color of the character, boldface, blinking, etc., but is not limited thereto.

[0107] (Step B4) In step B4, the instructor U operates the direction buttons of the operating device 50 to move the hand unit 33 while viewing the area G102. Thereby, the processor 11 executes the process of step S209. Specifically, the instructor U adjusts the position of the hand unit 33 so as to make each detection value displayed in the area G102 zero.

[0108] (Step B5) In step B5, when each detection value displayed in region G102 becomes zero, instructor U operates the confirmation button of operation device 50 to end the adjustment process. As a result, processor 11 executes step S211. Consequently, the current position of hand part 33 when each detection value becomes zero is inserted into the movement path as a passing point.

[0109] (Step B6) Instructor U repeats steps B1 to B5. As a result, when there is a location on convex workpiece 91 where an external force is applied during the test operation of robot 30, instructor U can modify teaching information D.

[0110] <Effects of the present embodiment> In the technology described in Patent Document 1, even when the output value of the force sensor is within a predetermined range, due to unexpected factors or the like, the robot hand tip may operate excessively contrary to the intention of the instructor. In this case, there is a problem that the safety of the instructor near the robot cannot be sufficiently ensured. On the other hand, remote teaching methods or the like that ensure the safety of the instructor have problems in teaching ease because they cannot be taught intuitively like the direct teaching method.

[0111] The present embodiment can realize a technology that enables an instructor to teach more easily while enhancing the safety of the instructor who teaches the robot to operate, and solves the above-described problems. Further, in the present embodiment, the instructor can teach more easily, and as a result, can teach the robot to operate with higher accuracy.

[0112] Specifically, by using robot control system 1 according to the above-described present embodiment, instructor U can easily teach the operation of robot 30 while being in a safer environment outside the safety fence. The reason is that instructor U can confirm the detection value of force sensing sensor 34 in real time through screen G1, so the external force received by convex workpiece 91 can be grasped in real time. As a result, even if instructor U cannot intuitively grasp the external force received by convex workpiece 91 like in direct teaching, teaching can be performed while grasping the external force in real time.

[0113] In addition, by using this embodiment, the instructor U can recognize the relationship between each detection value of the force sensor 34 and the position of the hand unit 33 by looking at the screen G1, so that the ease of teaching is further improved. For example, the instructor U can easily find the position of the hand unit 33 where each detection value of the force sensor 34 becomes zero by operating while looking at the screen G1. As a result, the instructor U can easily teach the robot 30 so that the hand unit 33 passes through a position where no external force is applied to the convex workpiece 91.

[0114] Also, for example, by using this embodiment, the instructor U can easily grasp an appropriate position at which to end the teaching. Here, if the teaching of the operation of inserting the convex workpiece 91 into the concave workpiece 92 is not ended at an appropriate position, the convex workpiece 91 or the concave workpiece 92 may be damaged. For example, when an inexperienced instructor U performs teaching visually and remotely without using this embodiment, there is a high possibility of causing such damage or ending the teaching before an appropriate position with priority given to avoiding such damage. By using this embodiment, even an inexperienced instructor U can grasp that the convex workpiece 91 has reached an appropriate position when only the detection value Fz becomes greater than zero on the screen G1. As a result, even an inexperienced instructor U can easily end the teaching at an appropriate position.

[0115] More specifically, the instructor U can easily modify the taught movement path of the robot 30 while being in a safer environment outside the safety fence. The reason is that when there is a portion in the movement path where an external force is applied to the convex workpiece 91, the instructor U can modify the portion while looking at the screen G1. For example, the instructor U can easily find the position where each detection value becomes zero around a position where at least any one of the detection values becomes greater than zero by operating while looking at the screen G1. As a result, the instructor U can easily modify the movement path so that it does not pass through a portion where an external force is applied to the convex workpiece 91.

[0116] For example, by using this embodiment, even an instructor U with little experience can shorten the teaching time. Here, when an instructor U with little experience conducts teaching visually from a distance without using this embodiment, the number of times of modifying the movement path is likely to increase. In this embodiment, even an instructor U with little experience can modify the movement path while visually confirming in real time the external force applied to the convex workpiece 91 by the screen G1, so that a more appropriate movement path can be obtained with fewer modification times. As a result, even an instructor U with little experience can shorten the overall teaching time.

[0117] Also, in this embodiment, when any of the detection values of the force sensor 34 becomes equal to or greater than the threshold value during teaching by the instructor U or during a trial operation, the movement of the hand part 33 stops. Thereby, the possibility that the robot 30 performs an unexpected operation can be reduced. As a result, the possibility that the convex workpiece 91, the concave workpiece 92, or the surrounding equipment, etc. is damaged can be reduced.

[0118] 〔Embodiment 2〕 Hereinafter, the robot control system 1A according to this embodiment will be described in detail.

[0119] <Overview of the robot control system 1A> The robot control system 1 according to Embodiment 1 corrected the teaching information D generated based on the operation of the instructor U based on the operation of the instructor U. The robot control system 1A according to this embodiment corrects the teaching information D generated based on the operation of the instructor U without depending on the operation of the instructor U while outputting each detection value of the force sensor 34.

[0120] <Configuration of the robot control system 1A> The configuration of the robot control system 1A will be described with reference to FIG. 7. FIG. 7 is a schematic diagram showing the configuration of the robot control system 1A. The robot control system 1A is configured substantially the same as the robot control system 1 according to Embodiment 1, except that it includes a dedicated controller 10A instead of the dedicated controller 10. The dedicated controller 10A is an example of the control device in the present invention. Details of the robot controller 20, the robot 30, the display 40, the operating device 50, the convex workpiece 91, and the concave workpiece 92 are as described in Embodiment 1.

[0121] The detailed configuration of the dedicated controller 10A is substantially the same as that of the dedicated controller 10 described with reference to FIG. 2, except that the details of the program P1 stored in the secondary memory 13 are different. The program P1 is a program for causing the processor 11 to execute the control method S1 and the control method S3.

[0122] <The control method executed by the robot control system 1A> The robot control system 1A executes the control method S1 and the control method S3. The control method S1 is as described in Embodiment 1. The control method S3 is a method of modifying the movement path included in the teaching information D without depending on the operation of the teacher U.

[0123] <The flow of the control method S3> The control method S3 executed by the processor 11 will be described with reference to FIG. 8. FIG. 8 is a flowchart showing the flow of the control method S3. As shown in FIG. 8, the control method S3 includes steps S301 to S309.

[0124] The operations of steps S301 to S303 are the same as the operations of steps S201 to S203 of the control method S2 described with reference to FIG. 6. Thereby, the hand unit 33 moves to the start position while gripping the convex workpiece 91 in a direction in which it can be inserted into the concave workpiece 92 (here, the direction in which the convex portion is on the lower side).

[0125] The operation of step S304 is the same as the operation of step S204 of control method S2. Note that the operation of this step is an example of the movement process described in the claims. As a result, the hand unit 33 moves to the first passing point or the next passing point included in the teaching information D. By repeating this step as described later, the hand unit 33 moves from the start point to the end point of the movement path indicated by the teaching information D.

[0126] The operation of step S305 is the same as the operation of step S205 of control method S2. As a result, while the hand unit 33 is moving in step S304, the processor 11 acquires each detection value detected by the force sensor 34 and information indicating the position of the hand unit 33, and associates and stores them in the primary memory 12. Also, similar to step S205, when the orientation of the hand unit 33 is variable, the processor 11 may further acquire information indicating the orientation of the hand unit 33 and store it in the primary memory 12 in association with each detection value of the force sensor 34.

[0127] In step S306, the processor 11 determines whether the position of the hand unit 33 is the end point of the movement path indicated by the teaching information D.

[0128] If the result in step S306 is No, the processor 11 repeats the operations of steps S304 to S305. By repeating the operations of steps S304 to S305, each detection value of the force sensor 34 at each point included in the movement path is accumulated in the primary memory 12. Note that the points included in the movement path are the passing points included in the teaching information D or the points on the path connecting two adjacent passing points. If the result in step S306 is Yes, the processor 11 executes the next operation of S307.

[0129] In step S307, the processor 11 determines whether there is a detected value of the force sensor 34 stored in the primary memory 12 that is greater than or equal to a threshold value. Here, the threshold value is defined for each of the detected values Fx, Fy, Fz, Mx, My, Mz of the force sensor 34. The threshold value for each detected value may be the same as or different from the threshold value used in step S107 of control method S1 or step S207 of control method S2. For example, as the threshold value for each detected value, a value smaller than the threshold value used in step S107 of control method S1 is used. Thereby, it becomes possible to more accurately correct the teaching information D generated based on the operation of the instructor U without depending on the operation of the instructor U by using a smaller threshold value.

[0130] If it is determined Yes in step S307, in step S308, the processor 11 refers to each detection value of the force sensor 34 and corrects the movement path. Specifically, the processor 11 refers to the detection values that are equal to or greater than the threshold value and corrects the movement path indicated by the teaching information D. Specifically, for example, the processor 11 identifies at least one passing point in the vicinity of the position associated with the detection value that is equal to or greater than the threshold value among the passing points included in the teaching information D. Further, the processor 11 corrects the position of the identified passing point according to the degree to which the detection value becomes equal to or greater than the threshold value. Thereby, the movement path indicated by the teaching information D is corrected. For example, the processor 11 corrects the x coordinate of the position of the passing point in the vicinity of the position where the detection value Fx becomes equal to or greater than the threshold value. Also, for example, the processor 11 corrects the orientation of the hand unit 33 around the x axis at the passing point in the vicinity of the position where Mx becomes equal to or greater than the threshold value. In this way, for each position where at least any one of the six detection values becomes equal to or greater than the threshold value, the processor 11 corrects the position of the passing point in the vicinity thereof. Here, the position where the detection value becomes equal to or greater than the threshold value and the passing point to be corrected do not have to correspond one-to-one. For example, the processor 11 may correct the positions of a plurality of passing points for one position where the detection value becomes equal to or greater than the threshold value. Also, for example, the processor 11 may correct the position of one passing point for a plurality of positions where the detection value becomes equal to or greater than the threshold value (for example, the range where the detection value becomes equal to or greater than the threshold value on the movement path). Also, for example, the processor 11 may add a new passing point in the vicinity of the position where the detection value becomes equal to or greater than the threshold value.

[0131] After correcting the movement path indicated by the teaching information D in this way, the processor 11 deletes each detection value of the force sensor 34 stored in the primary memory 12, and then repeats the processing from step S304. Thereby, the hand unit 33 moves along the corrected movement path, and if the detection value detected by the force sensor 34 during the movement becomes equal to or greater than the threshold value, the movement path is further corrected.

[0132] If it is determined as No in step S307, in step S309, the processor 11 generates teaching information D corresponding to the corrected movement path. Specifically, the processor 11 outputs teaching information D including the corrected movement path.

[0133] <Effects of this embodiment> This embodiment can generate teaching information D for accurately teaching the operation of the robot 30. The reasons will be explained below. For example, the movement path indicated by the teaching information D generated by the operation of the instructor U by the control method S1 does not necessarily coincide with the path along which the hand unit 33 moved during teaching. For example, even when the movement path during teaching from the passing point Pk to Pk+1 is not linear, the movement path from the passing point Pk to Pk+1 indicated by the teaching information D is linear, and these do not match. Therefore, each detection value of the force sensor 34 may become equal to or greater than the threshold value when moving the hand unit 33 along the movement path indicated by the teaching information D, even if it does not become equal to or greater than the threshold value during the teaching when the teaching information D was generated.

[0134] Therefore, in this embodiment, the hand unit 33 is moved along the movement path indicated by the teaching information D generated by the operation of the instructor U, and the movement path is corrected with reference to each detection value detected by the force sensor 34 during the movement. More specifically, in this embodiment, the movement path is corrected when each detection value detected by the force sensor 34 during the movement becomes equal to or greater than the threshold value. The teaching information D corresponding to the movement path corrected in this way indicates a movement path in which each detection value of the force sensor 34 becomes a more appropriate value. As a result, by using the teaching information D generated by this embodiment, the operation of the robot 30 can be accurately taught.

[0135] 〔Modification example〕 In each embodiment, the processor 11 may further execute level recording processing. Here, the level recording processing is processing for recording level information indicating the level of the instruction by the instructor U based on the execution history of the correction processing. For example, the processor 11 stores the level information in the secondary memory 13 in association with the identification information of the instructor U. Further, for example, the level information may indicate that the lower the number of executions of the adjustment processing, the higher the level. By thus modifying, each embodiment can manage the level of the instruction by the instructor U.

[0136] Also, in each embodiment, instead of the display 40, other output devices may be used. For example, examples of the output device include a speaker, an LED (light emitting diode) lamp, and the like. For example, in the first output processing and the second output processing, the processor 11 may output voice corresponding to the detection value of the force sensor 34 from the speaker. As an example, when the detection value satisfies a predetermined condition (for example, any detection value becomes equal to or greater than the threshold value), the processor 11 outputs a warning sound from the speaker. Further, for example, in the first output processing and the second output processing, the processor 11 turns on the LED lamp according to the detection value of the force sensor 34. As an example, when the detection value satisfies a predetermined condition (for example, any detection value becomes equal to or greater than the threshold value), the processor 11 turns on the LED lamp.

[0137] Also, in each embodiment, instead of the hand unit 33, other end effectors may be used. For example, examples of the end effector include an end effector that performs laser processing. Further, the number of finger portions included in the hand unit 33 is not limited to two, and may be three or more.

[0138] Also, in each embodiment, the number of joints in the arm unit 32 is not limited to three. For example, the arm unit 32 may be an articulated arm in which two arms are connected by one joint, or may be a multi-joint arm in which three or five or more arms are connected by two or four or more joints.

[0139] In each embodiment, an example was described in which, as a predetermined condition for the processor 11 to determine whether to perform the first stop process or the second stop process, a condition that at least one of the detection values of the force sensor 34 exceeds a threshold value is applied. However, the predetermined condition in this embodiment is not limited to the above-described condition, and any condition may be used as long as it indicates that an external force inappropriate for the end effector is applied. The predetermined condition is determined in advance according to the type of the end effector to be applied, the type of work to be performed by the end effector, or the type of work on which the end effector works.

[0140] In each embodiment, an example was described in which the instructor U gives instructions so that each detection value of the force sensor 34 becomes zero. However, the appropriate value of each detection value of the force sensor 34 is not limited to zero. The appropriate value is a value corresponding to the type of the end effector to be applied, the type of work to be performed by the end effector, or the type of work on which the end effector works. The instructor U may give instructions so that each detection value of the force sensor approaches an appropriate value.

[0141] In each embodiment, the force sensor 34 may be built in the arm portion 32 or the hand portion 33. Further, the force sensor 34 may be integrally formed with the arm portion 32 or the hand portion 33.

[0142] In each embodiment, the force sensor 34 does not necessarily have to detect all six-axis components.

[0143] In each embodiment, the operation device 50 is not limited to a configuration having a direction button and an enter button. The operation device 50 only needs to have an operation unit for receiving an operation for moving at least the hand portion 33.

[0144] Also, in each embodiment, the dedicated controller 10 may execute part of the processes executed by the robot controller 20. Also, the robot controller 20 may execute part of the processes executed by the dedicated controller 10. In this case, the control device in the present invention includes a plurality of processors 11 and 21. Also, in this case, the control method in the present invention is executed by the plurality of processors 11 and 21. Also, the dedicated controller 10 and the robot controller 20 may be integrally formed.

[0145] Also, in Embodiment 2, the dedicated controller 10A may execute the control method S2 without executing the control method S1. In this case, for example, the dedicated controller 10A corrects the movement path indicated by the teaching information D by executing the control method S2 on the teaching information D acquired from the outside. In this case, the robot control system 1A may not include the display 40 and the operation device 50.

[0146] 〔Summary〕 The control device according to Aspect 1 is a control device that controls a robot and includes one or more processors. The robot includes an arm part, a force sensor, and an end effector fixed to the arm part via the force sensor. The one or more processors execute a movement process and a generation process. The movement process is a process of moving the end effector. The generation process is a process of generating teaching information according to the movement path of the end effector with reference to the detection value of the force sensor. Execute.

[0147] With the above configuration, it is possible to teach the robot to operate more accurately.

[0148] The control device according to Aspect 2 has the following features in addition to the features of the control device according to Aspect 1. That is, in the control device according to Aspect 2, the generation process corrects the movement path of the end effector with reference to the detection value of the force sensor, and generates the teaching information according to the corrected movement path.

[0149] With the above configuration, by using the teaching information, the robot can be accurately taught to operate.

[0150] The control device according to Aspect 3 has the following features in addition to the features of the control device according to Aspect 1. That is, in the control device according to Aspect 3, the one or more processors execute a first output process and a first movement process. In the first output process, information indicating the detected value of the force sensor is output to the output device in real time while the end effector is moving. The movement process moves the end effector based on the operation of the instructor on the operating device. Further, the generation process generates information indicating the movement path of the end effector in the first movement process as the teaching information.

[0151] With the above configuration, while enhancing the safety of the instructor who teaches the operation of the robot, the instructor can teach more easily. One of the reasons is that the place where the instructor operates the operating device may be a place away from the robot. Another reason is that the instructor can teach the operation while grasping the external force received by the end effector in real time because the detected value of the force sensor is output. As a result, the instructor can easily teach even if he / she cannot intuitively grasp the external force received by the end effector as in direct teaching.

[0152] The control device according to Aspect 4 has the following features in addition to the features of the control device according to Aspect 3. That is, in the control device according to Aspect 4, the output device is a display. In the first output process, the one or more processors display on the display an image showing a virtual space in which an object corresponding to the end effector is arranged and information indicating the detected value when the end effector is at the actual position. The virtual space is a virtual space in which the object is arranged at a virtual position corresponding to the actual position of the end effector.

[0153] With the above configuration, the instructor can teach more easily. The reason is that the instructor can associate and recognize the position of the hand part and the detection value of the force sensor by visually recognizing the image of the virtual space described above and the information indicating the detection value described above at the same time. As a result, the instructor can easily find the position of the hand part such that the detection value of the force sensor becomes appropriate, and the ease of teaching is improved.

[0154] The control device according to Aspect 5 has the following features in addition to the features of the control device according to Aspect 3 or Aspect 4. That is, in the control device according to Aspect 5, when the one or more processors detect that the detection value satisfies a predetermined condition during the movement of the end effector by the first movement process, the one or more processors further execute a first stop process for stopping the movement of the end effector.

[0155] With the above configuration, the dedicated controller can reduce the robot from performing an operation such that the detection value of the force sensor satisfies a predetermined condition (exceeds a threshold value) during teaching. For example, by setting a predetermined condition (threshold value) to determine the detection value when the robot performs an excessive operation, it is possible to reduce the possibility that the object of the work by the robot or the facilities around the robot are damaged.

[0156] The control device according to Aspect 6 has the following features in addition to the features of the control device according to any one of Aspects 3 to 5. That is, in the control device according to Aspect 6, the one or more processors further execute a storage process, a second movement process, a second stop process, an adjustment process, a second output process, and a correction process. The storage process is a process of storing, in a memory, teaching information indicating a movement path of the end effector by the first movement process. The second movement process is a process of moving the end effector along the movement path indicated by the teaching information. The second stop process is a process of stopping the movement of the end effector when it is detected that the detected value satisfies a predetermined condition during the movement of the end effector by the second movement process. The adjustment process is a process of adjusting the position of the end effector from the position stopped by the second stop process based on an operation of the instructor on the operating device. The second output process is a process of outputting, in real time, information indicating the detected value of the force sensor to an output device during the movement of the end effector by the adjustment process. The correction process is a process of correcting the teaching information based on the position adjusted by the adjustment process.

[0157] With the above configuration, the instructor can more easily correct the operation taught to the robot. The reason is that when there is a part where the detected value of the force sensor is not appropriate in the taught operation, the instructor can correct the taught operation while grasping the external force received by the hand part in real time. As a result, the instructor can easily correct the taught operation even if they cannot intuitively grasp the external force received by the hand part as in direct teaching.

[0158] The control device according to Aspect 7 has the following features in addition to the features of the control device according to Aspect 6. That is, in the control device according to Aspect 7, the one or more processors further execute a level recording process. The level recording process is a process of recording level information indicating the level of teaching by the instructor based on the execution history of the correction process.

[0159] With the above configuration, the level of the instructor's instruction can be managed.

[0160] The robot control system according to Aspect 8 includes a control device according to any one of Aspects 3 to 7, the robot, the operating device, and the output device.

[0161] With the above configuration, the same effects as those of the control device according to Aspect 3 are achieved.

[0162] The program according to Aspect 9 is a program for operating a control device according to any one of Aspects 1 to 7, and causes the one or more processors to execute each of the above processes.

[0163] With the above configuration, the same effects as those of the control device according to Aspect 1 are achieved.

[0164] The control method according to Aspect 10 is a control method in which one or more processors control a robot, and includes a movement step and a generation step. The robot includes an arm part, a force sensor, and an end effector fixed to the arm part via the force sensor. In the movement step, the one or more processors move the end effector. In the generation step, the one or more processors generate teaching information corresponding to the movement path of the end effector with reference to the detection value of the force sensor.

[0165] With the above configuration, the same effects as those of the control device according to Aspect 1 are achieved.

[0166] In the control method according to Aspect 11, in the generation step, the one or more processors correct the movement path of the end effector with reference to the detection value of the force sensor, and generate the teaching information corresponding to the corrected movement path.

[0167] With the above configuration, the same effects as those of the control device according to Aspect 2 are achieved.

[0168] The control method according to aspect 12 further includes, in the control method according to aspect 11, a first output step in which the one or more processors output information indicating a detected value of the force sensor to an output device in real time during the movement of the end effector. The movement step includes a first movement step in which the one or more processors move the end effector based on an operation of an instructor on an operating device. In the generation step, the one or more processors generate information indicating a movement path of the end effector in the first movement step as the teaching information.

[0169] With the above configuration, the same effects as those of the control device according to aspect 3 are achieved.

Explanation of reference numerals

[0170] 1 Robot control system 10 Dedicated controller 20 Robot controller 11, 21 Processors 12, 22 Primary memories 13, 23 Secondary memories 14, 24 Communication interfaces 15, 25 Input / output interfaces 30 Robot 31 Pedestal 32 Arm part 33 Hand part 34 Force sensor 40 Display 50 Operating device 91 Convex workpiece 92 Concave workpiece

Claims

1. A control device for controlling a robot, comprising one or more processors, wherein the robot includes an arm portion, a force sensor, and an end effector fixed to the arm portion via the force sensor, the one or more processors perform a movement process for moving the end effector, and a generation process for generating teaching information corresponding to the movement path of the end effector by referring to a detection value of the force sensor, and execute wherein the force sensor is a six-axis force sensor that detects the magnitude of a force acting in each of three axes and a moment about each of the three axes, wherein when at least any one of the detection values of the force sensor becomes equal to or greater than a threshold value, the generation process corrects the movement path of the end effector and generates the teaching information corresponding to the corrected movement path, wherein correcting the movement path of the end effector is to insert the position of the corrected end effector between two passing points, the control device.

2. the one or more processors further execute a first output process for outputting in real time to an output device information indicating a detection value of the force sensor during movement of the end effector, wherein the movement process includes a first movement process for moving the end effector based on an operation of an instructor on an operation device, wherein the generation process generates, as the teaching information, information indicating the movement path of the end effector in the first movement process, the control device according to claim 1.

3. wherein the output device is a display, the one or more processors in the first output process, display on the display an image showing a virtual space in which an object corresponding to the end effector is arranged, the virtual space in which the object is arranged at a virtual position corresponding to the actual position of the end effector, and information indicating the detection value when the end effector is at the actual position, the control device according to claim 2.

4. the one or more processors when detecting that the detection value satisfies a predetermined condition during movement of the end effector by the first movement process, further execute a first stop process for stopping the movement of the end effector, the control device according to claim 2 or 3.

5. the one or more processors A storage process for storing in a memory teaching information indicating a movement path of the end effector by the first movement process; A second movement process for moving the end effector along the movement path indicated by the teaching information; A second stop process for stopping the movement of the end effector when it is detected that the detection value satisfies a predetermined condition during the movement of the end effector by the second movement process; An adjustment process for adjusting the position of the end effector from the position stopped by the second stop process based on the operation of the instructor on the operating device; A second output process for outputting in real time to an output device information indicating the detection value of the force sensor during the movement of the end effector by the adjustment process; A correction process for correcting the teaching information based on the position adjusted by the adjustment process, and the control device according to any one of claims 2 to 4 further executes.

6. The one or more processors The control device according to claim 5, further executing a level recording process for recording level information indicating the level of teaching by the instructor based on the execution history of the correction process.

7. The control device according to any one of claims 2 to 6, The robot, The operating device, An output device, and a robot control system including the same.

8. A program for operating the control device according to any one of claims 1 to 6, the program causing the one or more processors to execute each process.

9. A control method for controlling a robot by one or more processors, The robot includes an arm part, a force sensor, and an end effector fixed to the arm part via the force sensor, The one or more processors include a movement step of moving the end effector, The one or more processors include a generation step of generating teaching information corresponding to the movement path of the end effector with reference to the detection value of the force sensor, The force sensor is a six-axis force sensor that detects the magnitude of the force acting in each of the three axes and the moment around each of the three axes, In the generation step, when at least any one of the detection values of the force sensor becomes equal to or greater than a threshold value, the one or more processors correct the movement path of the end effector and generate the teaching information corresponding to the corrected movement path. A control method for modifying the movement path of the end effector, which is to insert the position of the modified end effector between two passing points.

10. The one or more processors further include a first output step of outputting information indicating a detected value of the force sensor to an output device in real time during the movement of the end effector. The movement step includes a first movement step in which the one or more processors move the end effector based on an operation of an instructor on an operating device. The control method according to claim 9, wherein in the generation step, the one or more processors generate information indicating the movement path of the end effector in the first movement step as the teaching information.

Citation Information

Patent Citations

  • Automatic discriminating device for kind of work

    JP1990009553A

  • Simulation device, control device and robot

    JP2019081236A

  • Robot control device, control method, robot system, program and recording medium

    JP2019136860A

  • Robot control device and robot system

    JP2019141937A

  • Control device and robot system

    JP2019202365A