Robotic system, robotic controller, and control method

CN122975746APending Publication Date: 2026-10-27YASKAWA DENKI KK
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202610521323.8
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2025-04-25
Filing Date
2026-04-20
Publication Date
2026-10-27

AI Technical Summary

Benefits of technology

[0007]根据本公开,能够提供更准确地控制末端执行器的位置的机器人系统。

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN122975746A_ABST
    Figure CN122975746A_ABST
Patent Text Reader

Abstract

A robot system, a robot controller, and a control method. The robot system is provided with: a multi-joint robot that relatively moves an end effector that performs a prescribed process on a workpiece with respect to the workpiece; a robot control section that controls the multi-joint robot based on a plurality of target positions stored in advance; a timing estimation section that performs simulation of an action that the multi-joint robot does not perform based on at least one of the plurality of target positions, and estimates a timing at which an execution instruction of the process is output based on a result of the simulation; an instruction output section that outputs the execution instruction based on the timing estimated by the timing estimation section; and an end effector control section that causes the end effector to perform the process in accordance with the execution instruction.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This disclosure relates to robot systems, robot controllers, and control methods. Background Technology

[0002] Japanese Patent Application Publication No. 2023-034483 discloses a robot system comprising: a multi-joint robot arm including multiple joints; a work unit that performs work on a workpiece; a signal output unit that outputs a signal based on the relative movement of the work unit relative to the workpiece for each relative movement of the work unit relative to the workpiece; and a work control unit that controls the work unit's work on the workpiece based on the signal output from the signal output unit. Summary of the Invention

[0003] This disclosure provides a robot system for more accurately controlling the position of an end effector.

[0004] One aspect of the robot system disclosed herein includes: a multi-joint robot that moves an end effector that performs a predetermined process; a robot control unit that controls the multi-joint robot based on a plurality of pre-stored target positions; a timing estimation unit that simulates an action not performed by the multi-joint robot based on at least one of the plurality of target positions, and estimates the timing of an execution instruction for outputting the process based on the simulation result; an instruction output unit that outputs the execution instruction based on the timing estimated by the timing estimation unit; and an end effector control unit that causes the end effector to perform the process according to the execution instruction.

[0005] Another aspect of the robot controller disclosed herein includes: a robot control unit that controls a multi-joint robot based on a plurality of pre-stored target positions in a manner that moves an end effector that performs a predetermined process; a timing estimation unit that simulates an action that the multi-joint robot has not performed based on at least one of the plurality of target positions, and estimates the timing of an execution instruction for outputting the process based on the simulation result; and an instruction output unit that outputs the execution instruction based on the timing estimated by the timing estimation unit.

[0006] Another aspect of the control method of this disclosure includes: controlling a multi-joint robot based on a plurality of pre-stored target positions to move an end effector performing a specified process; simulating an action not performed by the multi-joint robot based on at least one of the plurality of target positions, and estimating the timing of an execution instruction for outputting the process based on the simulation results; and outputting the execution instruction based on the estimated timing.

[0007] According to this disclosure, a robot system is able to provide more accurate control over the position of the end effector. Attached Figure Description

[0008] Figure 1 This is a schematic diagram illustrating the structure of a robot system.

[0009] Figure 2 This is a diagram illustrating the relationship between elapsed time and the position of the end effector.

[0010] Figure 3 This is a diagram illustrating the estimated timing of instructions for multiple processing locations.

[0011] Figure 4 This is a diagram illustrating the estimated arrival position of the end effector in a loop process.

[0012] Figure 5 This is a graph illustrating the relationship between elapsed time and estimated movement speed.

[0013] Figure 6 This is a diagram showing a variation of a robot controller.

[0014] Figure 7 This is a block diagram illustrating the hardware structure of a robot controller.

[0015] Figure 8 This is a flowchart illustrating the control process of a multi-joint robot.

[0016] Figure 9 This is a flowchart illustrating the control process of a joint.

[0017] Figure 10 This is a flowchart illustrating the estimation process of instruction timing.

[0018] Figure 11 This is a flowchart illustrating the process of executing instructions and outputting results.

[0019] Figure 12 This is a flowchart illustrating the control process of an end effector.

[0020] Label Explanation

[0021] 1 Robot system; 10 Multi-joint robot; 13 End effector; 112 Robot control unit; 114 Timing estimation unit; 116 Command output unit; 121 Storage unit; 133 Issuance unit. Detailed Implementation

[0022] Hereinafter, the embodiments will be described in detail with reference to the accompanying drawings. In the description, the same reference numerals are used to label the same elements or elements having the same function, and repeated descriptions are omitted.

[0023] [Robot System]

[0024] Figure 1The robot system 1 shown is a system that enables a jointed robot 10 to perform a predetermined task for a workpiece. The jointed robot 10 moves an end effector 13 relative to the workpiece to perform a predetermined process. The end effector 13 is configured to perform the predetermined process. Examples of processes include coating, light irradiation, and obtaining information about the workpiece surface. Examples of obtaining information about the workpiece surface include measuring the distance to the workpiece surface and obtaining image information about the workpiece surface. For example, the end effector 13 can be an inkjet head that intermittently sprays paint, a light irradiation device for processing such as lasers, a distance sensor such as a TOF or triangulation sensor, or a camera device. The end effector 13 can also be a line sensor for obtaining image information about the workpiece surface by line scanning.

[0025] like Figure 1 As shown, robot system 1 includes a multi-joint robot 10 and a control system 2. The multi-joint robot 10 is, for example, an industrial vertical multi-joint robot, having a base 11, an arm 12, and an end effector 13. The base 11 is fixed to the ground, wall, or ceiling surface of the work area of ​​the multi-joint robot 10. The arm 12 is a tandem linkage type with multiple (e.g., six-axis) joints 14 and is connected to the base 11. The end effector 13 is connected to the end of the arm 12 and acts on a workpiece during the operation of the multi-joint robot 10. The arm 12 changes the position of the end effector 13 by moving the multiple joints 14. Changing the position of the end effector 13 includes changing the posture of the end effector 13.

[0026] The control system 2 controls the articulated robot 10 to move the end effector 13 and controls the end effector 13 to perform processing. The control system 2 can also move the end effector 13 via the articulated robot 10 while simultaneously causing the end effector 13 to perform processing. To process a desired position within a workpiece, it is sometimes necessary to accurately control the position processed by the end effector 13. In particular, when the end effector 13 is moved via the articulated robot 10 while simultaneously performing processing, it is necessary to accurately control the timing of the processing to prevent the position processed by the end effector 13 from deviating from the desired position (the position to be processed).

[0027] Therefore, the control system 2 is configured to perform the following processes: control the multi-joint robot 10 based on a plurality of pre-stored target positions; simulate unexecuted actions based on at least one of the plurality of target positions, and estimate the timing of the execution instruction for output processing (hereinafter referred to as "instruction timing") based on the simulation results; output the execution instruction based on the estimated instruction timing; and cause the end effector 13 to perform the processing according to the execution instruction.

[0028] When the end effector 13 is triggered to perform processing after detecting that it has reached the desired position, a delay may occur between the timing of the end effector 13 actually reaching the desired position and the timing of the processing. Due to this delay, it may be impossible to accurately control the position where the end effector 13 performs processing. According to the control system 2, before the end effector 13 reaches the position where processing is desired, the timing of the execution command for output processing is estimated by simulation, and the execution command is output based on the estimated timing. Therefore, the position where the end effector 13 performs processing can be controlled more accurately.

[0029] For example, the control system 2 includes a robot controller 100 and an external controller 200. The robot controller 100 controls the articulated robot 10 in a manner that moves the end effector 13 and outputs the aforementioned execution commands. The external controller 200 (end effector control unit) causes the end effector 13 to perform processing according to the execution commands.

[0030] The robot controller 100 has a target position storage unit 111, a robot control unit 112, a model storage unit 113, a timing estimation unit 114, a clock 115, and an instruction output unit 116 as functional components (hereinafter referred to as "functional blocks"). The target position storage unit 111 stores multiple target positions arranged in a time sequence. Each of the multiple target positions (hereinafter simply referred to as "target position") represents the target position of the end effector 13. The target position of the end effector 13 includes the target posture of the end effector 13.

[0031] The target position can be data that directly determines the target position of the end effector 13, or data that indirectly determines the target position of the end effector 13. For example, the target position can also be data that determines the target angles of each of the multiple joints 14. The target position of the end effector 13 is uniquely determined based on the target angles of each of the multiple joints 14. For example, the target position of the end effector 13 is uniquely determined by forward kinematics calculations based on the target angles of each of the multiple joints 14 and the Denavit-Hartenberg (DH) parameters of the multi-joint robot 10.

[0032] The robot control unit 112 controls the multi-joint robot 10 based on multiple target positions pre-stored in the target position storage unit 111. For example, the robot control unit 112 causes the multiple joints 14 to move individually by moving the end effector 13 sequentially to multiple target positions arranged in a time sequence.

[0033] The model storage unit 113 stores the simulation model of the multi-joint robot 10. The simulation model is a model used to simulate the movement of the multi-joint robot 10, and it is numerical data representing the structural characteristics, mechanical characteristics, etc. of the multi-joint robot 10.

[0034] The timing estimation unit 114 simulates the unexecuted action based on at least one of a plurality of target positions, and estimates the timing of the execution command for output processing (hereinafter referred to as "command timing") based on the simulation results. The timing estimation unit 114 may also estimate the command timing in a manner that reduces the error between the position where the end effector 13 performs processing and the predetermined processing position. By pre-determining the processing position, the position where processing is performed can be controlled. Pre-determining the processing position includes not only pre-determining it before the joint robot 10 moves, but also determining it in real time based on surrounding environmental information, etc., while the joint robot 10 is moving. The processing position only needs to be determined at least before the end effector 13 reaches that position.

[0035] For example, the timing estimation unit 114 estimates the movement trajectory (time change of position) of the end effector 13 in the unexecuted action based on one or more unexecuted target positions among multiple target positions and the simulation model stored in the model storage unit 113. Based on the estimated time change of the position of the end effector 13, the timing estimation unit 114 estimates the timing of the end effector 13 reaching the processing position (hereinafter referred to as "arrival timing"), and estimates the instruction timing based on the estimated arrival timing.

[0036] Clock 115 measures elapsed time. For example, clock 115 measures elapsed time by counting clock pulses used for timing.

[0037] The instruction output unit 116 outputs the execution instruction based on the instruction timing estimated by the timing estimation unit 114. For example, the instruction output unit 116 outputs the execution instruction when the elapsed time measured by the clock 115 reaches the instruction timing.

[0038] The robot controller 100 may also include a delay time storage unit 121. The delay time storage unit 121 stores the delay time from the output of the execution instruction to the end effector 13 performing the processing. The timing estimation unit 114 may also estimate the instruction timing based on the delay time stored in the delay time storage unit 121. This can further suppress the position deviation of the end effector 13 during processing.

[0039] Figure 2 It is a diagram illustrating the relationship between elapsed time and the position of the end effector 13. Figure 2 The horizontal axis represents the elapsed time. Figure 2 The vertical axis represents the position of the end effector 13. For example... Figure 2 As shown in (a), the timing estimation unit 114 begins simulation at a predetermined estimation start time T0. The estimation start time T0 is not particularly limited. The estimation start time T0 can be the time when the multi-joint robot 10 begins its movement, or the time when the end effector 13 reaches a predetermined target position. Furthermore, the estimation start time T0 can also be the time when the model storage unit 113 issues a predetermined target position, as described later. Based on the target position after the estimation start time T0 and the simulation model, the timing estimation unit 114 estimates the movement trajectory R2 of the end effector 13, which is continuous with the movement trajectory R1 of the end effector 13 before the estimation start time T0. Based on the estimation result of the movement trajectory R2, the timing estimation unit 114 estimates the arrival time T2 of the end effector 13 reaching the processing position EP, and estimates a time DT that is delayed before the arrival time T2 as the instruction time T1.

[0040] After that, as Figure 2 As shown in (b), when the instruction timing T1 is reached after a certain time, the instruction output unit 116 outputs the execution instruction. Figure 2 As shown in (c), the external controller 200 delays the instruction timing T1 by a delay time DT, causing the end effector 13 to perform processing. As described above, the instruction timing T1 is set to be delayed by a delay time DT before the arrival timing T2, so the timing of the end effector 13 performing processing is approximately consistent with the timing of the end effector 13 arriving at the processing position EP.

[0041] like Figure 3As shown, the timing estimation unit 114 can also estimate the instruction timing T1 for each of the multiple processing positions EP. The multiple processing positions EP are arranged at equal intervals, for example, along the movement trajectory R2. The instruction output unit 116 can also output an execution instruction based on the instruction timing T1 estimated for each of the multiple processing positions EP. The magnitude of the offset from the processing position to the actual processing position of the end effector 13 (hereinafter referred to as the "execution position") varies not only due to the aforementioned delay but also due to the movement speed of the end effector 13. Therefore, the magnitude of the offset may deviate at each processing position. Thus, even if the multiple processing positions are arranged at equal intervals and the same delay occurs relative to each processing position, changes in the movement speed of the end effector 13 may cause deviations in the intervals between the multiple execution positions. According to this robot system 1, which can significantly reduce the delay from the timing of the end effector 13 reaching the processing position to the timing of execution, deviations in the intervals between the multiple execution positions can be suppressed.

[0042] For example, when the robot system 1 prints a workpiece by spraying paint from the end effector 13 while moving the end effector 13 via the jointed robot 10, distortion of the printing result can be suppressed by suppressing deviations in the intervals between multiple execution positions. Similarly, when the robot system 1 performs a line scan of the workpiece while moving the end effector 13 via the jointed robot 10, distortion of the scanning result can be suppressed by suppressing deviations in the intervals between multiple execution positions.

[0043] The robot control unit 112 can also perform cyclic processing to control the articulated robot 10 based on each of the multiple target positions. For example, each of the multiple target positions can be the target position of each cyclic processing that the robot control unit 112 repeats with a fixed control cycle. The timing estimation unit 114 can also perform simulations based on the target positions of unexecuted cyclic processing and the model of the articulated robot 10, and estimate the timing of instructions in unexecuted cyclic processing based on the simulation results. Since the timing can be estimated by simulating the future behavior of each cyclic processing, the position of the processing performed by the end effector 13 can be controlled more accurately.

[0044] For example, Figure 4As shown, the timing estimation unit 114 repeatedly performs loop processing with a fixed control cycle CT, performs simulation based on the target position of the unexecuted loop processing and the model of the multi-joint robot 10, and estimates the arrival position CP of the end effector 13 in the unexecuted loop processing based on the simulation results. The timing estimation unit 114 estimates the movement trajectory R2 based on the estimation result of the arrival position CP, and as described above, estimates the command timing T1 based on the estimation result of the movement trajectory R2. The timing estimation unit 114 may also sequentially estimate the arrival position CP for multiple unexecuted loop processing, and estimate the movement trajectory R2 based on the estimation results of multiple arrival position CP. It is also possible to execute the sequential estimation of arrival position CP for multiple unexecuted loop processing and the loop processing with estimated arrival position CP executed by the robot control unit 112 in parallel. The estimation of the arrival position CP for each loop processing need to be completed at least before execution by the robot control unit 112.

[0045] The timing estimation unit 114 can also simulate the response delay of each joint 14 of the multi-joint robot 10 in the unexecuted loop processing based on the model of the multi-joint robot 10, and estimate the timing based on the simulation results of the response delay of each joint 14. Since the timing is estimated by taking into account the response delay of each joint 14, the position of the end effector 13 performing the processing can be controlled more accurately.

[0046] The response delay of joint 14 refers to the delay from the start of control based on the target angle until joint 14 reaches the target angle. Reaching the target angle is not limited to being exactly the same as the target angle; it also includes cases where there is a slight error but the joint is closest to the target angle. For example, the timing estimation unit 114 calculates the response angle of each joint 14 that has a response delay relative to the target angle by simulating the response delay, and estimates the aforementioned arrival position CP by performing positive kinematic calculations based on the response angle of each joint 14 and the DH parameter. The timing estimation unit 114 may also consider mechanical characteristics such as the flexibility (or rigidity) of the arm 12 when estimating the aforementioned arrival position CP.

[0047] The timing estimation unit 114 can also estimate the instruction timing T1 in unexecuted loop processing during the period when the robot control unit 112 is repeatedly performing loop processing based on multiple target positions. For example, the timing estimation unit 114 estimates the instruction timing T1 in the next subsequent loop processing during the execution of loop processing of the robot system 1. By limiting the simulation object to the nearest future in the repetition of loop processing, computational resources can be saved.

[0048] The timing estimation unit 114 can also simulate the target position of the unexecuted loop process and the model of the multi-joint robot 10, and estimate the movement speed of the end effector 13 in the unexecuted loop process based on the simulation results, and estimate the command timing based on the estimated movement speed. By estimating the movement speed of the end effector 13 in the loop process, the position where the end effector 13 performs processing in the middle of the loop process can be controlled more accurately.

[0049] For example, the timing estimation unit 114 may estimate the movement speed in the unexecuted loop process based on the difference between the estimation result of the arrival position CP for the unexecuted loop process and the estimation result of the arrival position CP for the previous loop process. For example, the timing estimation unit 114 may also estimate the movement speed in the unexecuted loop process by dividing the above difference by the control period CT.

[0050] The timing estimation unit 114 can also estimate the instruction timing based on the estimation results of the movement speed of each of the multiple loop processes when the movement of the end effector 13 to the processing position EP is performed through a series of multiple loop processes before the unexecuted loop processes. By reflecting the changes in the movement speed of each loop process in the estimation results of the instruction timing, the position where the end effector 13 performs processing can be controlled more accurately.

[0051] Figure 5 It is a graph showing the relationship between elapsed time and estimated speed of movement. Figure 5 The horizontal axis represents the elapsed time. Figure 5 The vertical axis represents the moving speed of the end effector 13. For example, the timing estimation unit 114 will... Figure 5 The time integral of the movement speed shown in the shaded area reaches the distance to the processing position EP at which the arrival time T2 is estimated, and the instruction time T1 is estimated based on the arrival time T2.

[0052] For example, the timing estimation unit 114 may estimate the movement speed in the loop process each time it estimates the arrival at position CP for an unexecuted loop process. If the end effector 13 does not reach the processing position EP through the loop process, it may estimate the movement distance from the completion of the loop process to the processing position EP based on the estimated movement speed. If the end effector 13 reaches the processing position EP through the loop process, it may estimate the instruction timing based on the estimated movement distance and the estimated movement speed.

[0053] For example, if the end effector 13 reaches the processing position EP without completing the unexecuted loop process, the timing estimation unit 114 updates the travel distance to the processing position EP by subtracting the integral result of the travel speed in the loop process from the travel distance to the processing position EP. If the end effector 13 reaches the processing position EP through the unexecuted loop process, the timing estimation unit 114 estimates the arrival time T2 by dividing the travel distance by the travel speed.

[0054] The target position storage unit 111 does not necessarily need to store multiple target positions all the time. For example, the target position storage unit 111 can temporarily store multiple dynamically updated target positions. The multiple target positions can be pre-stored in the target position storage unit 111 at least at the point when the robot control unit 112 starts control based on the multiple target positions.

[0055] For example, such as Figure 6 As shown, the robot controller 100 may also include a program storage unit 131 and a program execution unit 132. The program storage unit 131 stores the motion program of the multi-joint robot 10. The motion program contains multiple motion commands arranged in a time sequence. Each of the multiple motion commands instructs the robot to move to a pre-taught teaching position at a predetermined speed. The teaching position can be represented by the position of the end effector 13 or by the angle of each joint 14.

[0056] The program execution unit 132 executes multiple action commands sequentially. For example, the program execution unit 132 calculates the target position for each control cycle based on the taught position of the action command of the object to be executed, the current position of the robot, and the moving speed, and stores the calculation results as multiple target positions in the target position storage unit 111.

[0057] The robot controller 100 may also include a dispatching unit 133. The dispatching unit 133 sequentially dispatches multiple target positions stored in the target position storage unit 111. The robot control unit 112 repeatedly performs loop processing based on the multiple target positions dispatched by the dispatching unit 133. The timing estimation unit 114 may also estimate the instruction timing after the dispatching unit 133 dispatches the target position of the loop processing that has not yet been executed and before the robot control unit 112 executes the loop processing that has not yet been executed. By utilizing the time delay from the dispatching of the target position to the execution of the loop processing corresponding to that target position, the instruction timing can be estimated in a timely manner. Furthermore, by limiting the simulation object to a more distant future, computational resources can be further saved.

[0058] The delay time storage unit 121 may also store the delay time from issuing the target position of the loop processing to executing the loop processing (hereinafter referred to as "robot control delay time"). The timing estimation unit 114 may also estimate the instruction timing based on the robot control delay time. By simulating the delay time, the position where the end effector 13 executes the processing can be controlled more accurately. For example, the timing estimation unit 114 estimates the arrival time of the end effector 13 at the target position of the loop processing corresponding to the arrival position CP based on the time when the target position of the loop processing is issued (hereinafter referred to as "issuance time") and the robot control delay time. For example, the timing estimation unit 114 estimates the start time of the loop processing from the issuance time after the robot control delay time. Based on the target position of the loop processing and the simulation model, the timing estimation unit 114 estimates the movement time from the start time of the loop processing to the arrival position CP, and adds the estimated movement time to the start time of the loop processing to estimate the arrival time of the end effector 13 at the arrival position CP.

[0059] Figure 7 This is a block diagram illustrating the hardware structure of the robot controller 100. For example... Figure 7 As shown, the robot controller 100 has circuitry 190. Circuitry 190 includes a processor 191, memory 192, storage 193, input / output ports 194, and servo circuitry 195. Memory 193 stores a program for causing the robot controller 100 to perform the following processes: controlling the multi-joint robot 10 based on a plurality of pre-stored target positions; simulating an unexecuted action based on at least one of the plurality of target positions, and estimating the timing of the execution instructions for output processing (hereinafter referred to as "instruction timing") based on the simulation results; and outputting the execution instructions based on the estimated instruction timing. For example, memory 193 stores a program for causing the robot controller 100 to constitute the above-described functional blocks. Memory 193 includes one or more non-volatile storage devices. Examples of non-volatile storage devices include hard disk drives, flash memory, optical disk drives, and read-only memories.

[0060] Memory 192 temporarily stores programs loaded from memory 193. Memory 192 contains one or more volatile storage devices. Examples of volatile storage devices include random access memory (RAM). Processor 191 executes the programs loaded into memory 192, enabling the robot controller 100 to form the aforementioned functional blocks. Processor 191 contains one or more computing devices. Examples of computing devices include a CPU (Central Processing Unit).

[0061] Input / output port 194 performs information input / output with external controller 200, etc., based on requests from processor 191. Servo circuit 195 supplies drive power to the multi-joint robot 10 for each of the multiple joints 14 based on requests from processor 191.

[0062] The above illustrates an example of a jointed robot 10 moving the end effector 13 relative to a workpiece by moving the end effector 13, but it is not limited to this. For example, the jointed robot 10 may also be configured to move the end effector 13 relative to the workpiece by moving the workpiece. In this case, the jointed robot 10 has a holding part (e.g., a suction holding part or a hand) for holding the workpiece instead of the end effector 13. The end effector 13 is disposed around the jointed robot 10.

[0063] The robot system 1 can also independently have a first articulated robot 10 that moves the end effector 13 and a second articulated robot 10 that moves the workpiece. In this case, the first articulated robot 10 cooperates with the second articulated robot 20 to move the end effector 13 relative to the workpiece. The timing estimation unit 114 can also simulate the actions that the first articulated robot 10 and the second articulated robot 20 have not performed, and estimate the command timing based on the simulation results.

[0064] [Control Process]

[0065] As an example of a control method, the control process of the multi-joint robot 10 and the end effector 13 executed by the control system 2 is illustrated. This process includes: controlling the multi-joint robot 10 based on a plurality of pre-stored target positions to move the end effector 13 relative to the workpiece; simulating an unexecuted action based on at least one of the plurality of target positions, and estimating the instruction timing of the execution command for output processing based on the simulation results; outputting the execution command based on the estimated instruction timing; and causing the end effector 13 to execute the processing according to the execution command. Hereinafter, this process will be illustrated in the following sections: the control process of the multi-joint robot 10, the control process of the joints 14, the instruction timing estimation process, the execution command output process, and the end effector 13 control process.

[0066] (Control process of multi-joint robot)

[0067] like Figure 8As shown, the robot controller 100 executes steps S01 and S02 sequentially. In step S01, the program execution unit 132 reads the action command to be executed next (hereinafter referred to as the "execution target command") from the program storage unit 131. In step S02, the program execution unit 132 calculates the target position for each control cycle based on the taught position of the execution command, the robot's current position, and the moving speed, and stores the calculation results as multiple target positions in the target position storage unit 111. Next, the robot controller 100 executes steps S03 and S04 sequentially. In step S03, the issuing unit 133 waits for the control cycle to pass. In step S04, the issuing unit 133 issues the target position at the beginning of the time sequence of the multiple target positions stored in the target position storage unit 111. The issuing unit 133 deletes the issued target position from the target position storage unit 111.

[0068] Next, the robot controller 100 executes step S05. In step S05, the issuing unit 133 confirms whether the execution of the target command has been completed (whether all the multiple target positions calculated in step S02 have been issued). In step S05, if it is determined that the execution of the target command has not been completed, the robot controller 100 returns the process to step S03. Then, the issuance of target positions is repeated in a control cycle until the execution of the target command is completed. In step S05, if it is determined that the execution of the target command has been completed, the robot controller 100 executes step S06. In step S06, the program execution unit 132 confirms whether the completed target command is the last action command. In step S06, if it is determined that the completed target command is not the last action command, the robot controller 100 returns the process to step S01. In step S06, if it is determined that the completed target command is the last action command, the control process of the multi-joint robot 10 is completed.

[0069] (The process of joint control)

[0070] like Figure 9 As shown, the robot controller 100 executes steps S11, S12, and S13 sequentially. In step S11, the robot control unit 112 waits for the target position to be issued by the issuing unit 133. In step S12, the robot control unit 112 obtains the detection result of the current position of the multi-joint robot 10 (e.g., the current angle of each joint 14). In step S13, the robot control unit 112 controls each joint 14 in a manner that brings the current position closer to the target position. For example, the robot control unit 112 generates drive power in a manner that brings the current position closer to the target position and supplies it to each joint 14. Afterward, the robot controller 100 returns the processing to step S11. The robot controller 100 repeats the above process.

[0071] (The process of estimating the timing of instructions)

[0072] This process is in Figure 9 The illustrated control process is executed during its execution. For example... Figure 10 As shown, the robot controller 100 first executes steps S21, S22, and S23. In step S21, the timing estimation unit 114 waits for the starting target position (a predetermined target position for starting the simulation) to be issued by the issuing unit 133. In step S22, the timing estimation unit 114 simulates the motion of the multi-joint robot 10 in the loop process corresponding to the issued target position based on the delay time of the end effector control (the delay time from the output of the execution command to the execution of the processing by the end effector 13), the delay time of the robot control, the simulation model of the multi-joint robot 10, and the target position of the unexecuted loop process. Hereinafter, the loop process corresponding to the issued target position is referred to as the "unexecuted loop process". Based on the simulation results, the timing estimation unit 114 estimates the arrival position CP of the end effector 13 based on the unexecuted loop process. In step S23, based on the estimation result of the arrival position CP, the timing estimation unit 114 estimates the movement speed of the end effector 13 in the unexecuted loop process.

[0073] Next, the robot controller 100 executes step S24. In step S24, the timing estimation unit 114 confirms whether the end effector 13 has reached the processing position EP through the unexecuted loop processing. For example, the timing estimation unit 114 confirms whether the end effector 13 has reached the processing position EP based on the positional relationship between the arrival position CP and the processing position EP. In step S24, if it is determined that the end effector 13 has not reached the processing position EP, the robot controller 100 executes step S25. In step S25, the timing estimation unit 114 estimates the remaining distance (the distance to the next processing position EP) after the unexecuted loop processing is completed based on the estimation result of the movement speed. In step S24, if it is determined that the end effector 13 has reached the processing position EP, the robot controller 100 executes step S26. In step S26, the timing estimation unit 114 estimates the command timing T1 based on the movement distance to the processing position EP and the movement speed.

[0074] Next, the robot controller 100 executes step S27. In step S27, the timing estimation unit 114 confirms whether the target position is a completed target position (a predetermined target position used to complete the simulation). In step S27, if it is determined that the target position is not a completed target position, the robot controller 100 executes step S28. In step S28, the timing estimation unit 114 waits for the issuance of the next target position. Afterwards, the robot controller 100 returns the process to step S22. Then, before the target position becomes a completed target position, the estimation of the arrival position CP and the estimation of the remaining distance or command timing T1 are repeated for each target position. In step S27, if it is determined that the target position is a completed target position, the command timing estimation process is completed.

[0075] (Execution instruction output process)

[0076] This process is in Figure 9 The illustrated control process is executed during its execution. For example... Figure 11 As shown, the robot controller 100 executes steps S31 and S32. In step S31, the instruction output unit 116 waits for an elapsed time, which becomes the instruction timing T1. In step S32, the instruction output unit 116 outputs an execution instruction. Afterward, the robot controller 100 returns the processing to step S31. The robot controller 100 repeats the above processing.

[0077] (Control process of end effector)

[0078] This process is in Figure 9 The illustrated control process is executed during its execution. For example... Figure 12 As shown, the external controller 200 executes steps S41 and S42. In step S41, the external controller 200 waits for an execution command to be output. In step S42, the external controller 200 causes the end effector 13 to perform processing. Afterward, the external controller 200 returns the processing to step S41. The external controller 200 repeats the above processing.

[0079] 〔Summarize〕

[0080] The above disclosure includes the following structure.

[0081] (1) The robot system 1 includes: a multi-joint robot 10, which moves an end effector 13 that performs a specified process; a robot control unit 112, which controls the multi-joint robot 10 based on a plurality of pre-stored target positions; a timing estimation unit 114, which performs a simulation of an action not performed by the multi-joint robot 10 based on at least one of the plurality of target positions, and estimates the timing of the execution command for outputting the process based on the simulation result; an instruction output unit 116, which outputs the execution command based on the timing estimated by the timing estimation unit 114; and an end effector control unit, which causes the end effector 13 to perform the process according to the execution command.

[0082] When the end effector 13 is triggered to perform processing after it has been detected that it has reached the desired position, a delay may occur between the timing of the end effector 13 actually reaching that position and the timing of the processing. Due to this delay, it may be impossible to accurately control the position where the end effector 13 performs processing. According to the robot system 1, before the end effector 13 reaches the desired position, the timing of the execution command for outputting the processing is estimated through simulation, and the execution command is output based on the estimated timing. Therefore, the position where the end effector 13 performs processing can be controlled more accurately.

[0083] (2) According to the robot system 1 described in (1), the timing estimation unit 114 estimates the timing of the output execution command in order to reduce the error between the position processed by the end effector 13 and the predetermined processing position.

[0084] By pre-determining the processing location, the location where processing takes place can be controlled.

[0085] (3) The robot system 1 according to (1) or (2) further includes a storage unit 121 that stores the delay time from the output of the execution instruction to the end effector 13 performing the processing, and a timing estimation unit 114 that estimates the timing based on the delay time.

[0086] It can further suppress the offset of the position of the execution end effector 13.

[0087] (4) The robot system 1 according to any one of (1) to (3), wherein the robot control unit 112 performs a loop process of controlling the multi-joint robot 10 based on each of the multiple target positions, and the timing estimation unit 114 performs a simulation based on the target position of the unexecuted loop process and the model of the multi-joint robot 10, and estimates the timing in the unexecuted loop process based on the simulation results.

[0088] Because the timing can be estimated by simulating the future behavior of each loop process, the position of the end effector 13 performing the process can be controlled more accurately.

[0089] (5) According to the robot system 1 described in (4), the timing estimation unit 114 performs a simulation of the response delay of each joint of the multi-joint robot 10 in the unexecuted loop processing based on the model of the multi-joint robot 10, and estimates the timing based on the simulation results of the response delay of each joint.

[0090] By taking into account the response delay of each joint to estimate the timing, the position of the end effector 13 performing the processing can be controlled more accurately.

[0091] (6) The robot system 1 according to (4) or (5), wherein the timing estimation unit 114 estimates the timing of unexecuted loop processing during the period when the robot control unit 112 repeatedly performs loop processing based on multiple target positions.

[0092] By limiting the simulated object to the nearest future in a repetitive process of loop processing, computational resources can be saved.

[0093] (7) The robot system 1 according to (6) further includes a transmitter 133 that sequentially transmits multiple target positions, a robot control unit 112 repeatedly performs loop processing based on the multiple target positions transmitted by the transmitter 133, and a timing estimation unit 114 estimates the timing after the transmitter 133 transmits the target positions of the loop processing that has not been executed and before the robot control unit 112 executes the loop processing that has not been executed.

[0094] By utilizing the time delay from issuance to cyclic processing, timing can be estimated in a timely manner.

[0095] (8) The robot system 1 according to (7) further includes a storage unit 121, which stores the delay time from the issuance of the target position of the loop processing to the execution of the loop processing, and the timing estimation unit 114 estimates the timing based on the delay time.

[0096] By taking into account the simulation of the delay time, the position of the end effector 13 can be controlled more accurately.

[0097] (9) The robot system 1 according to any one of (4) to (8), wherein the timing estimation unit 114 performs a simulation based on the target position of the unexecuted loop process and the model of the multi-joint robot 10, and estimates the movement speed of the end effector 13 in the unexecuted loop process based on the simulation results, and estimates the timing based on the estimated movement speed.

[0098] By estimating the movement speed of the end effector 13 in the loop process, the position processed by the end effector 13 in the middle of the loop process can be controlled more accurately.

[0099] (10) According to the robot system 1 of (9), in the case where the movement of the end effector 13 to the position to be processed is carried out by a series of multiple loop processes before the loop processes are executed, the timing estimation unit 114 estimates the timing based on the estimation results of the movement speed for each of the multiple loop processes.

[0100] By reflecting the changes in the movement speed of each cycle process in the estimated timing results, the position of the end effector 13 performing the process can be controlled more accurately.

[0101] (11) According to the robot system 1 described in (9) or (10), wherein, when the end effector 13 reaches the processing position without completing the unexecuted loop processing, the timing estimation unit 114 estimates the movement distance from the completion of the unexecuted loop processing to the processing position based on the estimation result of the movement speed, and when the end effector 13 reaches the processing position through the unexecuted loop processing, the timing estimation unit 114 estimates the timing based on the estimation result of the movement distance and the estimation result of the movement speed.

[0102] By reflecting the changes in the movement speed of each cycle process in the estimated timing results, the position of the end effector 13 performing the process can be controlled more accurately.

[0103] (12) According to the robot system 1 described in (2), the timing estimation unit 114 estimates the timing for a plurality of processing positions arranged at equal intervals, and the instruction unit outputs an execution instruction based on the timing estimated for the plurality of processing positions.

[0104] The magnitude of the offset from the processing position to the actual processing position of the end effector 13 (hereinafter referred to as the "execution position") varies not only due to the aforementioned delay but also due to the moving speed of the end effector 13. Therefore, the magnitude of the offset may deviate at each processing position. Consequently, even if multiple processing positions are arranged at equal intervals, the intervals between the multiple execution positions may deviate. According to this robot controller, which can reduce the delay from the timing of the end effector 13 reaching the processing position to the timing of execution, the deviation in the intervals between the multiple execution positions can be suppressed.

[0105] (13) A robot controller comprising: a robot control unit 112 that controls a multi-joint robot 10 based on a plurality of pre-stored target positions in a manner that moves an end effector 13 that performs a predetermined process; a timing estimation unit 114 that performs a simulation of an action not performed by the multi-joint robot 10 based on at least one of the plurality of target positions and estimates the timing of an execution instruction for outputting the process based on the simulation result; and an instruction output unit 116 that outputs the execution instruction based on the timing estimated by the timing estimation unit 114.

[0106] (14) A control method comprising: controlling a multi-joint robot 10 based on a plurality of pre-stored target positions to move an end effector 13 performing a specified process; simulating an action not performed by the multi-joint robot 10 based on at least one of the plurality of target positions, and estimating the timing of an execution instruction for outputting the process based on the result of the simulation; and outputting the execution instruction based on the estimated timing.

[0107] The implementation methods have been described above, but this disclosure is not limited to the above-described implementation methods, and various modifications can be made without departing from its spirit.

Claims

1. A robot system comprising: A multi-joint robot that moves an end effector relative to a workpiece relative to the workpiece to perform a prescribed process; The robot control unit controls the multi-joint robot based on multiple pre-stored target positions; The timing estimation unit performs a simulation of the non-executed actions of the multi-joint robot based on at least one of the plurality of target positions, and estimates the timing of outputting the execution command of the processing based on the simulation results; The instruction output unit outputs the execution instruction based on the timing estimated by the timing estimation unit; and An end effector control unit that causes the end effector to perform the processing according to the execution instructions.

2. The robot system according to claim 1, wherein, The timing estimation unit estimates the timing of the output of the execution command to reduce the error between the position where the end effector performs the processing and the predetermined processing position.

3. The robot system according to claim 1 or 2, wherein, The robot system also includes a storage unit that stores the delay time from the output of the execution instruction to the execution of the process by the end effector. The timing estimation unit also estimates the timing based on the delay time.

4. The robot system according to claim 1, wherein, The robot control unit performs cyclic processing to control the multi-joint robot based on each of the plurality of target positions. The timing estimation unit performs a simulation based on the target position of the unexecuted loop process and the model of the multi-joint robot, and estimates the timing in the unexecuted loop process based on the simulation results.

5. The robot system according to claim 4, wherein, The timing estimation unit performs a simulation of the response delay of each joint of the multi-joint robot in the unexecuted loop processing based on the model of the multi-joint robot, and estimates the timing based on the simulation results of the response delay of each joint.

6. The robot system according to claim 4, wherein, The timing estimation unit estimates the timing of the unexecuted loop processing during the period when the robot control unit repeatedly performs the loop processing based on the plurality of target positions.

7. The robot system according to claim 6, wherein, The robot system also includes a transmitter that sequentially emits signals to the plurality of target locations. The robot control unit repeatedly performs the cyclic processing based on the plurality of target positions emitted by the issuing unit. The timing estimation unit estimates the timing after the issuing unit issues the target position of the unexecuted loop process and before the robot control unit executes the unexecuted loop process.

8. The robot system according to claim 7, wherein, The robot system also includes a storage unit that stores the delay time from the issuance of the target position of the loop processing to the execution of the loop processing. The timing estimation unit also estimates the timing based on the delay time.

9. The robot system according to claim 4, wherein, The timing estimation unit performs a simulation based on the target position of the unexecuted loop process and the model of the multi-joint robot, and estimates the relative movement speed of the end effector relative to the workpiece in the unexecuted loop process based on the simulation results, and estimates the timing based on the estimated movement speed.

10. The robot system according to claim 9, wherein, When the relative movement of the end effector to the position where the processing is performed is carried out through a series of multiple loop processes prior to the unexecuted loop process, the timing estimation unit estimates the timing based on the estimation results of the movement speed for each of the multiple loop processes.

11. The robot system according to claim 9, wherein, If the end effector reaches the position for performing the processing without completing the unexecuted loop processing, the timing estimation unit estimates the distance to be traveled from the completion of the unexecuted loop processing to the position for performing the processing, based on the estimated travel speed. The timing estimation unit estimates the timing based on the estimated travel distance and the estimated travel speed when the end effector reaches the position for performing the processing through the unexecuted loop processing.

12. The robot system according to claim 2, wherein, The timing estimation unit estimates the timing for each of the multiple processing positions arranged at equal intervals. The instruction output unit outputs the execution instruction based on the timing estimated for each of the plurality of processing locations.

13. A robot controller, comprising: The robot control unit controls the multi-joint robot by moving the end effector relative to the workpiece in a manner that causes the end effector to perform a prescribed process on the workpiece to move relative to the workpiece. The timing estimation unit performs a simulation of the non-executed actions of the multi-joint robot based on at least one of the plurality of target positions, and estimates the timing of outputting the execution command of the processing based on the simulation results; as well as The instruction output unit outputs the execution instruction based on the timing estimated by the timing estimation unit.

14. A control method comprising: To control a multi-joint robot based on multiple pre-stored target positions, so that the end effector that performs the prescribed processing on the workpiece moves relative to the workpiece. Simulation of actions not performed by the multi-joint robot is performed based on at least one of the plurality of target positions, and the timing of outputting the execution command for the processing is estimated based on the results of the simulation. as well as The execution instructions are output based on the estimated timing.

Citation Information

Patent Citations

  • Robot system and robot

    JP2023034483A