Robot control system, subordinate control device, control method for robot control system, and control method for subordinate control device

The robot control system addresses synchronization issues by using extrapolated commands to ensure timely control execution, enhancing responsiveness in robot operations.

JP7881982B2Active Publication Date: 2026-06-30SEIKO EPSON CORP

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
SEIKO EPSON CORP
Filing Date
2022-05-13
Publication Date
2026-06-30

AI Technical Summary

Technical Problem

Existing robot control systems lack synchronization with control cycles, leading to unpredictable response times and inability to meet applications requiring responsiveness.

Method used

A robot control system with a lower-level control unit that transmits control commands and receives state information at predetermined cycles, and a higher-level unit that synchronizes command information transmission within a shorter time frame than the control cycle, using extrapolated commands if necessary to maintain responsiveness.

Benefits of technology

Ensures timely and responsive control command execution, even in the presence of communication delays, by using extrapolated commands to maintain synchronization and meet responsiveness requirements.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007881982000001
    Figure 0007881982000001
  • Figure 0007881982000002
    Figure 0007881982000002
  • Figure 0007881982000003
    Figure 0007881982000003
Patent Text Reader

Abstract

To provide a technique capable of executing a robot operation required to have responsibility, without a problem.SOLUTION: A robot control system comprises: a robot which has a servo-control part; a low-order control device which transmits a control command to the servo-control part for each preset control cycle and receives robot state information expressing the state of the robot from the servo-control part; and a high-order control device which transmits command information for creating a control command to the low-order control device. The low-order control device executes: (i) processing of creating an extrapolation control command by extrapolating a plurality of past control commands; (ii) processing of creating the next control command from command information and transmitting it to the servo-control part in a case where the command information can be received from the high-order control device by the time-out time of the next control command; and (iii) processing of transmitting the extrapolation control command to the servo-control part when the command information cannot be received from the high-order control device by the time-out time.SELECTED DRAWING: Figure 3
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure relates to a robot control system, a lower-level control device, a control method for a robot control system, and a control method for a lower-level control device.

Background Art

[0002] Patent Document 1 describes a robot control system including a service server and a robot terminal. In this robot control system, the service server creates operation control data, voice data, etc. that are synchronized with each other as one packet and transmits it to the robot terminal.

Prior Art Documents

Patent Documents

[0003] <000,0017>

Patent Document 1

Summary of the Invention

Problems to be Solved by the Invention

[0004] [[ID=3,5]]However, in the above prior art, the service server is configured to transmit packets to the robot terminal at an arbitrary timing, and the synchronization with the control cycle of the robot is not considered in the transmission and reception of packets. Therefore, the time from when a packet is transmitted until it is reflected in the actual operation becomes indefinite, and there is a problem that it cannot be applied to applications where responsiveness is required.

Means for Solving the Problems

[0005] A robot control system is provided according to a first embodiment of the present disclosure. This robot control system comprises a robot having a servo control unit, a lower-level control unit that transmits control commands to the servo control unit and receives robot state information representing the state of the robot from the servo control unit at predetermined control cycles, and a higher-level control unit that transmits command information for creating the control commands to the lower-level control unit. The lower-level control unit transmits the robot state information to the higher-level control unit in synchronization with the control cycle. The higher-level control unit transmits the command information to the lower-level control unit within a predetermined transmission time shorter than the control cycle from the time it receives the robot state information from the lower-level control unit. The lower-level control device performs the following processes: (i) transmits the control command to the servo control unit and creates an extrapolated control command by extrapolating a plurality of past control commands as candidates for the next control command; (ii) if it receives the command information from the higher-level control device before the timeout time, which is before the timing at which the next control command should be sent to the servo control unit, it creates the next control command from the command information and transmits it to the servo control unit; and (iii) if it does not receive the command information from the higher-level control device before the timeout time, it transmits the extrapolated control command to the servo control unit.

[0006] According to a second embodiment of the present disclosure, a subordinate control device is provided which constitutes a robot control system together with a robot and a higher-level control device. The subordinate control device is configured to perform the following: (a) a process of transmitting a control command to the servo control unit of the robot and receiving robot state information representing the state of the robot from the servo control unit at each predetermined control cycle; and (b) a process of transmitting the robot state information to the higher-level control device in synchronization with the control cycle. The process (a) includes: (i) a process of transmitting the control command to the servo control unit and creating an extrapolated control command by extrapolating a plurality of past control commands as candidates for the next control command; (ii) a process of creating the next control command from the command information and transmitting it to the servo control unit if command information can be received from the higher-level control device before a timeout time prior to the timing at which the next control command should be sent to the servo control unit; and (iii) a process of transmitting the extrapolated control command to the servo control unit if the command information cannot be received from the higher-level control device by the timeout time.

[0007] A third embodiment of the present disclosure provides a control method for a robot control system comprising a robot having a servo control unit, a lower-level control unit, and a higher-level control unit. This control method includes (a) the steps of the lower-level control unit transmitting a control command to the servo control unit and receiving robot state information representing the state of the robot from the servo control unit at each predetermined control cycle, and (b) the steps of the higher-level control unit transmitting command information for creating the control command to the lower-level control unit. In step (a), the lower-level control unit transmits the robot state information to the higher-level control unit in synchronization with the control cycle. In step (b), the higher-level control unit transmits the command information to the lower-level control unit within a predetermined transmission time shorter than the control cycle, from the time it receives the robot state information from the lower-level control unit. The step (a) includes (i) transmitting the control command to the servo control unit and creating an extrapolated control command by extrapolating a plurality of past control commands as candidates for the next control command; (ii) if the command information can be received from the higher-level control device by a timeout time prior to the timing at which the next control command should be sent to the servo control unit, creating the next control command from the command information and transmitting it to the servo control unit; and (iii) if the command information cannot be received from the higher-level control device by the timeout time, transmitting the extrapolated control command to the servo control unit.

[0008] A fourth embodiment of the present disclosure provides a control method for a lower-level control device that constitutes a robot control system together with a robot and a higher-level control device. This control method includes (a) a process of transmitting a control command to the servo control unit of the robot and receiving robot state information representing the state of the robot from the servo control unit at each predetermined control cycle, and (b) a process of transmitting the robot state information to the higher-level control device in synchronization with the control cycle. Process (a) includes (i) a process of transmitting the control command to the servo control unit and creating an extrapolated control command by extrapolating a plurality of past control commands as candidates for the next control command, and (ii) a process of creating the next control command from the command information and transmitting it to the servo control unit if command information can be received from the higher-level control device before a timeout time prior to the timing at which the next control command should be sent to the servo control unit, and (iii) a process of transmitting the extrapolated control command to the servo control unit if the command information cannot be received from the higher-level control device by the timeout time. [Brief explanation of the drawing]

[0009] [Figure 1] An explanatory diagram showing the configuration of the robot control system in the embodiment. [Figure 2] Functional block diagram of a robot control system. [Figure 3] Sequence diagram of communication between control units. [Figure 4] A flowchart illustrating the procedure for receiving command information. [Figure 5] A flowchart illustrating the procedure for extrapolating control commands. [Figure 6] A flowchart illustrating the procedure for transmitting control commands. [Figure 7] Timing chart of control command generation and transmission by the control command generation unit. [Figure 8] A flowchart illustrating the procedures for transmitting and receiving robot status and command information between a higher-level control unit and a lower-level control unit. [Modes for carrying out the invention]

[0010] Figure 1 is an explanatory diagram showing an example of a robot control system in one embodiment. This robot control system comprises a robot 100, a lower-level control device 200 that transmits control commands CC to the robot 100, and a higher-level control device 300 that transmits command information CI for creating the control commands CC to the lower-level control device 200. The lower-level control device 200 is, for example, a robot controller, and the higher-level control device 300 is, for example, a personal computer. The lower-level control device 200 can also be called the "first control device," and the higher-level control device 300 can be called the "second control device."

[0011] The robot 100 comprises a base 110, a robot arm 120, and a servo control unit 130. The servo control unit 130 performs servo control of the actuators that move the joints of the robot arm 120. The servo control unit 130 is connected to a lower control unit 200.

[0012] The robot arm 120 is connected sequentially by four joints J1 to J4. A force sensor 140 and an end effector 150 are attached to the tip of the robot arm 120. The force sensor 140 may be omitted. Other sensors such as a gyro sensor or vibration sensor may also be provided on the robot arm 120. A TCP (Tool Center Point) is set near the tip of the robot arm 120 as a control point for the robot 100. In this embodiment, a 4-axis robot with four joints J1 to J4 is exemplified, but it is possible to use a robot with any arm mechanism having multiple joints. Also, although the robot 100 in this embodiment is a horizontal articulated robot, a vertical articulated robot may be used.

[0013] Figure 2 is a functional block diagram of the robot control system. The lower-level control device 200 controls the robot 100 by transmitting a control command CC to the servo control unit 130 in synchronization with a predetermined robot control cycle Tc1, and also receives robot status information RI from the servo control unit 130 and transmits it to the higher-level control device 300. The higher-level control device 300 can use this robot status information RI as needed to create the next command information CI. From the time the robot status information RI is received, the higher-level control device 300 transmits the command information CI to the lower-level control device 200 within a predetermined transmission time that is shorter than the robot control cycle Tc1.

[0014] The robot arm 120 includes actuators 122 and sensors 124. The actuators 122 are provided at each joint and are used to operate each joint. The actuators 122 also include encoders as position sensors that indicate the position of each joint. In this disclosure, the position of a joint means the displacement or angle of the joint. The sensors 124 include various sensors such as the force sensor 140 shown in Figure 1. The robot state information RI is information that represents the state of the robot 100 and includes position data, which are the detected values ​​of the encoders at multiple joints, and sensor values, which are the detected values ​​of the sensors 124.

[0015] The servo control unit 130 includes an actuator control unit 132 that controls the actuator 122 and a real-time communication unit 134. The real-time communication unit 134 has the function of performing synchronous communication with the lower-level control device 200 at the robot's control cycle Tc1. In this embodiment, the robot's control cycle Tc1 is 2ms. The servo control unit 130 and the lower-level control device 200 are connected by a protocol that enables real-time communication at a fixed period, for example, by EtherCAT (Ethernet Control Automation Technology). EtherCAT allows process data, which is a combination of digital data, analog data, encoder values, and other input / output information, to be exchanged on an Ethernet frame. In an EtherCAT connection, the lower-level control device 200 functions as a master, and the servo control unit 130 functions as a slave. The lower-level control device 200 and the upper-level control device 300 are connected by a protocol that performs non-real-time communication, for example, by Ethernet.

[0016] The higher-level control device 300 includes a command information generation unit 310 and a non-real-time communication unit 320. The command information generation unit 310 generates a trajectory for the robot arm 120 according to a pre-created robot control program RP, and creates command information CI for operating the robot arm 120 according to that trajectory. The command information CI includes position commands for operating the robot arm 120. The position commands are commands that indicate the position of each of the multiple actuators that the robot arm 120 has, and indicate a position with a 2ms period, which is the robot's control period Tc1. The non-real-time communication unit 320 performs non-real-time communication with the non-real-time communication unit 210 of the lower-level control device 200. As described above, in this embodiment, the higher-level control device 300 and the lower-level control device 200 are connected by Ethernet. In non-real-time communication, the command information CI is transmitted from the higher-level control device 300 to the lower-level control device 200, and the robot state information RI is transmitted from the lower-level control device 200 to the higher-level control device 300. As mentioned above, the robot state information RI includes position data for each joint of the robot arm 120 and sensor values ​​from sensor 124.

[0017] The command information generation unit 310 executes the process of creating command information CI according to the robot control program RP. The command information CI can be processed by selecting and executing one of the following processes: (i) A first process that creates command information CI according to the robot control program RP without using the robot state information RI received from the lower control unit 200. (ii) A second process in which command information CI is created using robot state information RI according to the robot control program RP. Which of these two processes to select and execute is described in advance in the robot control program RP. By doing so, since the command information generation unit 310 creates the command information CI using the robot state information RI as needed, the lower-level control device 200 can send the control command CC reflecting the robot state information RI to the servo control unit 130 to operate the robot 100. Instead of selectively executing the above two processes, the second process may always be executed.

[0018] As an example of creating the command information CI using the robot state information RI in the second process, for example, the following examples exist. (1) Using the sensor value of the force sensor 140, change the parameters of the force control included in the command information CI. (2) Using the sensor value of the force sensor 140, create the command information CI by adding the displacement due to force control in addition to the displacement due to position control. (3) When the encoder value of a specific joint reaches a value indicating a specific angle, create the command information CI so as to start accelerating or decelerating the control point.

[0019] The lower-level control device 200 includes a non-real-time communication unit 210, a control command generation unit 220, a real-time communication unit 230, and a robot state transfer unit 240. The command information CI transmitted from the upper-level control device 300 is received by the non-real-time communication unit 210 and transferred to the control command generation unit 220. The control command generation unit 220 creates the control command CC according to this command information CI. The control command CC includes a position command having substantially the same position command as the 2 ms cycle position command included in the command information CI. The control command CC may be the same as the command information CI. The real-time communication unit230 transmits the control command CC to the servo control unit 130 every control cycle Tc1 of the robot and receives the robot state information RI from the servo control unit 130. This robot state information RI is transmitted from the robot state transfer unit 240 to the upper-level control device 300 via the non-real-time communication unit (210).

[0020] The control command generation unit 220 includes a command reception processing unit 221, a command extrapolation processing unit 222, and a command transmission processing unit 223. The command transmission processing unit 223 includes a command memory 225 for storing control commands CC and a command history memory 226 for storing the history of control commands CC. The command reception processing unit 221 checks the command information CI received from the higher-level control device 300 and executes the process of writing the control command CC corresponding to the command information CI to the command memory 225. After the control command CC has been transmitted to the servo control unit 130 by the command transmission processing unit 223, the command extrapolation processing unit 222 generates an extrapolated control command CCe by extrapolating a plurality of past control command CCs as candidates for the next control command, and executes the process of writing the extrapolated control command CCe to the command memory 225. However, the command extrapolation processing unit 222 may start the extrapolation process before the command transmission processing unit 223 has finished transmitting the control command CC. The command transmission processing unit 223 executes the process of transmitting the control command CC stored in the command memory 225 to the servo control unit 130 at a timing synchronized with the robot's control cycle Tc1. As will be described later, the command reception processing unit 221, the command extrapolation processing unit 222, and the command transmission processing unit 223 execute their processes in parallel.

[0021] When communication between the upper-level control unit 300 and the lower-level control unit 200 is normal, the control command transmitted by the command transmission processing unit 223 is a control command CC corresponding to the command information CI received from the upper-level control unit 300. On the other hand, if there is a delay in communication between the control units, the control command transmitted by the command transmission processing unit 223 is an extrapolated control command CCe created by the command extrapolation processing unit 222. This process will be described in more detail later. Details of the processing of each part within the control command generation unit 220 will be described later.

[0022] Figure 3 is a sequence diagram of communication between control devices. In the following explanation, various processes will be described in the order of processes P1 to P10 shown in Figure 3. For illustrative purposes, the robot state transfer unit 240 is omitted from Figure 3, and "robot state information" is simply referred to as "robot state".

[0023] The lower-level control unit 200 operates with a fixed control period Tc1 using its timer interrupt. As mentioned above, this control period Tc1 is 2ms. Specifically, the real-time communication unit 230 of the lower-level control unit 200 performs read / write operations using the EtherCAT protocol, i.e., transmission and reception, with a control period Tc1 of 2ms in response to the timer interrupt. The timing of this transmission and reception by the real-time communication unit 230 becomes the reference timing for controlling the operation timing of the other parts.

[0024] In processing P1, the real-time communication unit 230 transmits a control command CC to the servo control unit 130 at the timing of a timer interrupt. This control command CC includes a 2ms period position command for each joint of the robot arm 120. In processing P2, the servo control unit 130 interpolates the received 2ms period position command into multiple position commands for a finer divided control period Tc2 to control the actuator 122 of the robot arm 120. In the example in Figure 3, the divided control period Tc2 is 250 μs.

[0025] In processing P3, the servo control unit 130 transmits robot state information RI to the lower-level control unit 200. As mentioned above, this robot state information RI includes position data for each joint and sensor values ​​from sensor 124. After transmitting a control command CC to the servo control unit 130, the real-time communication unit 230 of the lower-level control unit 200 instructs the robot state transfer unit 240 to start operation in processing P4. However, the robot state transfer unit 240 is not shown in Figure 3.

[0026] Meanwhile, once the transmission of the control command CC to the servo control unit 130 is complete, the command extrapolation processing unit 222 of the control command generation unit 220 creates an extrapolated control command CCe in processing P5 by extrapolating multiple past control commands and writes it to the command memory 225. The multiple past control commands are stored in the command history memory 226. In processing P6, the robot state transfer unit 240 transfers the robot state information RI received from the servo control unit 130 to the higher-level control device 300 via the non-real-time communication unit 210.

[0027] In processing P7, the command information generation unit 310 of the higher-level control device 300 confirms the reception of robot status information RI, calculates the trajectory for the next position command, and generates command information CI including the position command. Once the generation of command information CI is complete, in processing P8, the higher-level control device 300 immediately transmits command information CI including the position command to the lower-level control device 200. This command information CI is assigned a unique sequential number. If the processing within the higher-level control device 300 and communication between control devices are executed normally, the transmission of command information CI is performed within a predetermined transmission time TT, which is shorter than the robot control period Tc1 of 2ms, from the time the robot status information RI is received. Since the higher-level control device 300 does not operate on a real-time OS, it is impossible to transmit the next command information CI in less than several tens of microseconds after receiving robot status information RI from the lower-level control device 200. However, if the command information CI can be transmitted within the transmission time TT from the time the robot status information RI is received, it can be timed to coincide with the lower-level control device 200 transmitting the next control command CC to the servo control unit 130.

[0028] The command receiving processing unit 221 of the control command generation unit 220 constantly waits for command information CI to be sent from the higher-level control device 300. In processing P9, when the command receiving processing unit 221 of the control command generation unit 220 receives command information CI from the higher-level control device 300, it checks the sequence number attached to the command information CI and also checks whether the position, velocity, and acceleration indicated by the position command exceed the limits. If there is no abnormality in the command information CI, the control command CC corresponding to the command information CI is written to the command memory 225. In processing P10, the command transmission processing unit 223 of the control command generation unit 220 transmits the control command CC stored in the command memory 225 to the servo control unit 130 via the real-time communication unit 230.

[0029] The command receiving processing unit 221 has a timeout time Tout set for each control cycle Tc1 when receiving command information CI. If the next command information CI is received from the higher-level control device 300 before this timeout time Tout, the regular control command CC corresponding to that command information CI is written to the command memory 225, and this regular control command CC is sent to the servo control unit 130. On the other hand, if the next command information CI is not received by the timeout time Tout, the regular control command CC is not written to the command memory 225, so an extrapolated control command CCe is read from the command memory 225 and sent to the servo control unit 130. This process will be described in more detail later.

[0030] As described above, the lower-level control unit 200 transmits robot state information RI to the upper-level control unit 300 in synchronization with a predetermined control cycle Tc1, and the upper-level control unit 300 transmits command information CI to the lower-level control unit 200 within a predetermined transmission time TT that is shorter than the control cycle Tc1, starting from the time it receives the robot state information RI from the lower-level control unit 200. In this robot control system, since communication between the upper-level control unit 300 and the lower-level control unit 200 takes place within a transmission time TT that is shorter than the robot's control cycle Tc1, the lower-level control unit 200 can transmit control commands CC to the servo control unit 130 for each control cycle Tc1, and robot operations requiring responsiveness can be executed without problems.

[0031] The control command generation unit 220 of the lower-level control device 200 has a command reception processing unit 221, a command extrapolation processing unit 222, and a command transmission processing unit 223, and each of these units executes its respective processing in parallel. The processing contents of the command reception processing unit 221, the command extrapolation processing unit 222, and the command transmission processing unit 223 will be described in order below.

[0032] Figure 4 is a flowchart showing the procedure for receiving command information CI by the command receiving processing unit 221. In steps S111 and S112, the command receiving processing unit 221 waits until it receives command information CI from the higher-level control device 300. It is preferable that the command receiving processing unit 221 constantly waits for the reception of command information CI without waiting for a start instruction from the real-time communication unit 230 or the command transmission processing unit 223. When command information CI is received, in step S113, it is determined whether the reception of command information CI has exceeded the timeout period. If the timeout period has exceeded the timeout period, the command information CI is discarded and the process proceeds to step S117, which will be described later.

[0033] If the timeout period has not been exceeded, the process proceeds to step S114, where the command reception processing unit 221 checks the command information CI. Specifically, it checks the sequence number attached to the command information CI, and also checks whether the target position indicated in the command information CI, and the corresponding velocity and acceleration, exceed the limits. If the command information CI is not normal, it is discarded, and the process proceeds from step S115 to step S117, which will be described later. If the command information CI is normal, the process proceeds to step S116, where the command reception processing unit 221 creates the next control command CC from the command information CI and writes it to the command memory 225. At this time, the next extrapolated control command CCe has already been written to the command memory 225, so the regular control command CC is overwritten by the extrapolated control command CCe. In step S117, the regular control command CC is also stored in the command history memory 226 along with its sequence number.

[0034] In step S117, the command reception processing unit 221 determines whether or not it has received a processing termination instruction. If it has not, it returns to step S111 and repeats the processing from step S111 onward. The processing termination instruction is transmitted, for example, from the higher-level control unit 300 to the lower-level control unit 200.

[0035] Figure 5 is a flowchart showing the procedure for extrapolating control commands by the command extrapolation processing unit 222. In steps S121 and S122, the command extrapolation processing unit 222 waits until it receives a processing start instruction. This processing start instruction is, for example, a notification that the command transmission processing unit 223 has completed transmitting a control command CC, or a notification that the real-time communication unit 230 has completed sending and receiving. That is, in this embodiment, the command extrapolation processing unit 222 starts extrapolation processing for the next control command CC after the completion of transmitting the control command CC to the servo control unit 130. However, the command extrapolation processing unit 222 may start extrapolation processing for the next control command CC before the completion of transmitting the control command CC to the servo control unit 130.

[0036] Upon receiving a processing start instruction, in step S123, the command extrapolation processing unit 222 determines whether the control command immediately transmitted to the servo control unit 130 was a regular control command CC or an extrapolated control command CCe corresponding to the command information CI received from the higher-level control device 300, and confirms the transmission history of control commands stored in the command history memory 226. A signal indicating whether a regular control command CC or an extrapolated control command CCe corresponding to the command information CI was transmitted is notified by the command transmission processing unit 223. If the previously transmitted control command was an extrapolated control command CCe, the process proceeds from step S124 to step S125, and the extrapolation processing counter, which records the number of times an extrapolated control command CCe has been transmitted, is incremented by one. This extrapolation processing counter represents the number of consecutive extrapolation processes.

[0037] In step S126, the command extrapolation processing unit 222 determines whether the extrapolation processing counter value exceeds a predetermined upper limit. If the extrapolation processing counter value exceeds the upper limit, the process proceeds to step S127, where the robot 100 is considered to have moved excessively along its trajectory without command information CI from the higher-level control device 300, and is stopped due to an error. On the other hand, if the extrapolation processing counter value does not exceed the upper limit, the process proceeds to step S128, which will be described later. If correct command information CI is received while the extrapolation processing counter value is below the upper limit, the counter value is reset to 0. The upper limit of the extrapolation processing counter is preferably in the range of 10 to 30.

[0038] In step S128, the command extrapolation processing unit 222 creates an extrapolated control command CCe by performing extrapolation processing using multiple past control commands, and writes the extrapolated control command CCe to the command memory 225. The multiple past control commands are stored in the command history memory 226. Various methods can be used for the extrapolation processing. For example, linear extrapolation may be performed using the two most recent control commands CC. Alternatively, polynomial interpolation or spline interpolation may be performed using three or more past control commands CC. The extrapolation processing is performed with respect to the target position included in the control command.

[0039] Extrapolated control commands CCe are created for each joint of the robot 100, just like regular control commands CC. For example, the robot 100 shown in Figure 1 has six joints J1 to J6, so extrapolated control commands CCe are created for all six of these joints J1 to J6. As explained in Figure 3, the creation of extrapolated control commands CCe is performed before receiving regular command information CI from the external higher-level control device 300.

[0040] If an extrapolated control command CCe written to the command memory 225 is received from the higher-level control device 300 with a regular command information CI before a predetermined timeout period, the regular control command CC will be overwritten by the regular control command CC. At the completion of step S128 in Figure 5, it is not yet determined whether the extrapolated control command CCe or the regular control command CC will be transmitted. Therefore, in step S129, the history information showing the provisional control command history is updated, and the target position of the extrapolated control command CCe, the velocity and acceleration corresponding to that target position, and the provisional sequence number are recorded in the command history memory 226. The provisional sequence number is set to the same value as the sequence number of the next expected regular command information CI. This provisional control command history is finalized in step S123 as described above.

[0041] In step S130, the command extrapolation processing unit 222 determines whether or not it has received a processing termination instruction. If it has not, it returns to step S121 and repeats the processing from step S121 onward. Note that the processing termination instruction is the same as the termination instruction in step S117 of Figure 4 described above.

[0042] Figure 6 is a flowchart showing the procedure for transmitting control commands by the command transmission processing unit 223. In steps S131 and S132, the command transmission processing unit 223 waits for a timer interrupt that occurs in the lower-level control device 200 at each control cycle Tc1. As mentioned above, this control cycle Tc1 is 2ms. Upon receiving a timer interrupt, in step S133, the command transmission processing unit 223 transmits the control command stored in the command memory 225 to the servo control unit 130. This transmission is performed by the command transmission processing unit 223 causing the real-time communication unit 230 to execute the transmission process.

[0043] As mentioned above, if the regular command information CI is received from the higher-level control device 300 before the timeout time Tout shown in Figure 3, the regular control command CC is sent to the servo control unit 130. On the other hand, if the regular command information CI is not received before the timeout time Tout, the extrapolated control command CCe is sent to the servo control unit 130. In step S134, the command transmission processing unit 223 instructs the command extrapolation processing unit 222 to start processing. This instruction to start processing is the same as the instruction received by the command extrapolation processing unit 222 in step S121 of Figure 6 shown above. Alternatively, the real-time communication unit 230 may instruct the command extrapolation processing unit 222 to start processing instead of the command transmission processing unit 223.

[0044] In step S135, the command transmission processing unit 223 determines whether or not it has received a processing termination instruction. If it has not, it returns to step S131 and repeats the processing from step S131 onward. Note that the processing termination instruction is the same as the termination instruction in step S117 of Figure 4 described above.

[0045] Furthermore, it is preferable that the following processes are executed mutually exclusive: in steps S114-S116 of Figure 4, the process Pa which creates a regular control command CC from the command information CI and writes it to the command memory 225; in step S128 of Figure 5, the process Pb which creates an extrapolated control command CCe and writes it to the command memory 225; and in step S133 of Figure 6, the process Pc which transmits the control command in the command memory 225 to the servo control unit 130. In other words, it is preferable that the command receiving processing unit 221, the command extrapolation processing unit 222, and the command transmitting processing unit 223 work in cooperation so that these three processes Pa, Pb, and Pc are not executed simultaneously or in parallel, and only one of them is executed independently. This ensures that the appropriate control command is always transmitted to the servo control unit 130 at the appropriate time.

[0046] Furthermore, regarding the two processes Pa and Pb, it is preferable to set a higher priority for process Pb, which performs extrapolation processing, than for process Pa, which generates the regular control command CC. In other words, it is preferable that the generation process of the extrapolated control command CCe by extrapolation processing is completed before the timing of receiving command information CI from the higher-level control device 300.

[0047] Figure 7 is a timing chart of control command generation and transmission by the control command generation unit 220. Control commands are transmitted to the servo control unit 130 every 2ms, which is the robot's control cycle Tc1. Once the transmission of the control command is complete, the command extrapolation processing unit 222 immediately starts extrapolation processing. The extrapolated control command CCe created by the command extrapolation processing unit 222 is written to the command memory 225. The command reception processing unit 221 constantly waits for the reception of command information CI. The timeout time Tout is set before the timing at which the next control command should be sent to the servo control unit 130.

[0048] In the first of the two control cycles Tc1 shown in Figure 7, command information CI_1 is received before the timeout time Tout. In this case, a regular control command CC is created from command information CI_1 and written to the command memory 225, and this regular control command CC is sent to the servo control unit 130. On the other hand, in the second control cycle, command information CI_2 is received after the timeout time Tout. In this case, a regular control command CC corresponding to command information CI_2 is not written to the command memory 225, so the extrapolated control command CCe that was previously written to the command memory 225 is sent to the servo control unit 130.

[0049] Note that the time length L1 between the timeout time Tout and the timing at which the next control command should be sent to the servo control unit 130 is preferably set to be smaller than the time length L2 required for the extrapolation process. The reason for this is that the time length L1 required to check the command information CI received from the upper control device 300 and write the normal control command CC to the command memory 225 is shorter than the time length L2 required to create the extrapolation control command CCe and write it to the command memory 225. Also, if L1 < L2 is set, the probability that the command information CI becomes invalid can be reduced. Also, the probability of deviation from the original command position that may occur due to the extrapolation process can be reduced, and the probability that the robot 100 stops can be reduced. Also, although acceleration overshoot does not occur at that time even when the extrapolation process is executed, the probability of acceleration overshoot occurring increases when the subsequent normal command information CI is received. Therefore, it is possible to reduce the probability of acceleration overshoot by reducing the probability of using the extrapolation control command CCe.

[0050] FIG. 8 is a flowchart showing the transmission / reception procedure of the robot state information RI and the transmission procedure of the command information CI between the upper control device 300 and the lower control device 200. Steps S310 to S360 are the processes of the upper control device 300, and steps S210 to S250 are the processes of the lower control device 200.

[0051] In steps S210 and S220, the robot state transfer unit 240 waits until it receives an instruction to start processing from the real-time communication unit 230. When it receives the instruction to start processing, the robot state transfer unit 240 acquires the robot state information RI transmitted from the servo control unit 130 in step S230, and transmits it to the upper control device 300 via the non-real-time communication unit 210 in step S240. In step S250, it is determined whether an instruction to end the process has been received. If not, the process returns to step S210 and the processes after step S210 are repeated. Note that the instruction to end the process is transmitted, for example, from the upper control device 300 to the lower control device 200.

[0052] In steps S310 and S320, the non-real-time communication unit 320 waits until it receives robot status information RI from the lower-level control device 200. Upon receiving the robot status information RI, the command information generation unit 310 acquires the robot status information RI from the non-real-time communication unit 320 in step S330, and in step S340 generates the next command information CI using the robot status information RI as needed. In step S350, the command information generation unit 310 transmits the command information CI to the lower-level control device 200 via the non-real-time communication unit 320. In response to the transmission of this command information CI, the processes from step S114 onwards shown in Figure 4 are executed.

[0053] In step S360, the command information generation unit 310 determines whether or not it has received a processing completion instruction. If it has not, it returns to step S310 and repeats the processing from step S310 onward. The processing completion instruction is issued, for example, when the operator inputs to the higher-level control device 300 that the work performed by the robot 100 has been completed.

[0054] As described above, in the robot control system of the above embodiment, the lower-level control device 200 transmits robot state information RI to the upper-level control device 300 in synchronization with the robot's control cycle Tc1, and the upper-level control device 300 transmits command information CI to the lower-level control device 200 within a predetermined transmission time TT that is shorter than the robot's control cycle Tc1, starting from the time it receives the robot state information RI from the lower-level control device 200. With this robot control system, since communication between the upper-level control device 300 and the lower-level control device 200 takes place within a transmission time TT that is shorter than the robot's control cycle Tc1, the lower-level control device 200 can transmit control commands CC to the servo control unit 130 for each control cycle Tc1, and robot operations requiring responsiveness can be executed without problems.

[0055] Furthermore, in the above embodiment, if the lower-level control device 200 receives command information CI from the upper-level control device 300 by the timeout time Tout, which is before the timing at which the next control command CC should be sent to the servo control unit 130, it creates the next control command CC from the command information CI and sends it to the servo control unit 130. On the other hand, if it does not receive command information CI from the upper-level control device 300 by the timeout time Tout, it sends an extrapolated control command CCe to the servo control unit 130. As a result, even if there is a delay in the command information CI sent from the upper-level control device 300 to the lower-level control device 200, an appropriate control command can be sent to the servo control unit 130.

[0056] Furthermore, in step S113 of Figure 4, if it is determined that the command information CI was received after the timeout time Tout, the command information CI may not be discarded, but a regular control command CC corresponding to the command information CI may be created and added to the command history memory 226. In this case, when creating the extrapolated control command CCe in the next control cycle Tc1, the extrapolation process may be performed using the regular control command CC stored in the command history memory 226. That is, if the first command information CI_1 is not received before its timeout time Tout, and the first extrapolated control command CCe_1 is sent to the servo control unit 130, and then the first command information CI_1 is received, and the next second command information CI_2 is not received before its timeout time Tout, then the previous multiple control commands for creating the second extrapolated control command CCe_2 may include a regular control command CC_1 corresponding to the first command information CI_1. This makes the second extrapolated control command CCe_2 more accurate.

[0057] Furthermore, it is preferable to store both the regular control command CC_1 corresponding to the command information CI_1 received after the timeout time Tout, and the extrapolated control command CCe_1 having the same sequence number in the command history memory 226. This way, when creating the next extrapolated control command CCe_2, the extrapolated control command CCe_1 that was actually sent to the servo control unit 130 can be used to check its speed and acceleration, allowing for a more accurate check.

[0058] Furthermore, when storing the regular control command CC_1 corresponding to the command information CI_1 received after the timeout time Tout in the command history memory 226, the extrapolation processing counter value may be changed to 0 or 1. This allows the extrapolation processing counter value to be corrected to a more realistic value. Such correction of the extrapolation processing counter value may be performed when the difference between the target position in the extrapolation control command CCe_1 actually transmitted to the servo control unit 130 and the target position in the regular control command CC_1 that was not transmitted to the servo control unit 130 is less than or equal to a predetermined tolerance value. Also, if the difference in target positions exceeds the tolerance value, the robot 100 may be stopped. These processes make it possible to control the robot 100 more accurately.

[0059] Other embodiments: This disclosure is not limited to the embodiments described above, and can be implemented in various forms without departing from its spirit. For example, this disclosure can also be implemented in the following forms (aspects). The technical features in the embodiments described above that correspond to the technical features in each of the forms described below can be replaced or combined as appropriate in order to solve some or all of the problems of this disclosure, or to achieve some or all of the effects of this disclosure. Furthermore, if such technical features are not described as essential in this specification, they can be deleted as appropriate.

[0060] (1) According to a first embodiment of the present disclosure, a robot control system is provided. This robot control system comprises a robot having a servo control unit, a lower-level control unit that transmits control commands to the servo control unit and receives robot state information representing the state of the robot from the servo control unit at predetermined control cycles, and a higher-level control unit that transmits command information for creating the control commands to the lower-level control unit. The lower-level control unit transmits the robot state information to the higher-level control unit in synchronization with the control cycle. The higher-level control unit transmits the command information to the lower-level control unit within a predetermined transmission time shorter than the control cycle from the time it receives the robot state information from the lower-level control unit. The lower-level control device performs the following processes: (i) transmits the control command to the servo control unit and creates an extrapolated control command by extrapolating a plurality of past control commands as candidates for the next control command; (ii) if it receives the command information from the higher-level control device before the timeout time, which is before the timing at which the next control command should be sent to the servo control unit, it creates the next control command from the command information and transmits it to the servo control unit; and (iii) if it does not receive the command information from the higher-level control device before the timeout time, it transmits the extrapolated control command to the servo control unit. This robot control system allows communication between the higher-level and lower-level control units to occur within a transmission time shorter than the robot's control cycle. This enables the lower-level control unit to send control commands to the servo control unit at each control cycle, allowing for the smooth execution of robot movements requiring high responsiveness. Furthermore, even if there is a delay in the command information transmitted from the higher-level control unit to the lower-level control unit, the system can still send appropriate control commands to the servo control unit.

[0061] (2) In the robot control system described above, the lower-level control device may complete the process of creating the extrapolated control command before the timeout time. This robot control system allows the timeout to be set immediately before the control command is sent to the servo control unit, thus making timeouts less likely to occur.

[0062] (3) In the robot control system described above, the lower control device may create the extrapolated control command before receiving the command information from the higher control device, store the extrapolated control command in the command memory, and if it receives the command information before the timeout time, it may create the next control command from the command information and overwrite the extrapolated control command in the command memory with the next control command. According to this robot control system, appropriate control commands can be sent to the servo control unit by simply transmitting the command stored in the command memory at the timing of sending the control command to the servo control unit.

[0063] (4) According to a second embodiment of the present disclosure, a lower-level control device is provided which constitutes a robot control system together with a robot and a higher-level control device. The lower-level control device is configured to perform the following: (a) a process of transmitting a control command to the servo control unit of the robot and receiving robot state information representing the state of the robot from the servo control unit at each predetermined control cycle; and (b) a process of transmitting the robot state information to the higher-level control device in synchronization with the control cycle. The process (a) includes: (i) a process of transmitting the control command to the servo control unit and creating an extrapolated control command by extrapolating a plurality of past control commands as candidates for the next control command; (ii) a process of creating the next control command from the command information and transmitting it to the servo control unit if command information can be received from the higher-level control device before a timeout time prior to the timing at which the next control command should be sent to the servo control unit; and (iii) a process of transmitting the extrapolated control command to the servo control unit if the command information cannot be received from the higher-level control device by the timeout time.

[0064] (5) A third embodiment of the present disclosure provides a method for controlling a robot in a robot control system comprising a robot having a servo control unit, a lower-level control unit, and a higher-level control unit. This control method comprises: (a) the lower-level control unit transmitting a control command to the servo control unit and receiving robot state information representing the state of the robot from the servo control unit at each predetermined control cycle; and (b) the higher-level control unit transmitting command information to the lower-level control unit for creating the control command. In step (a), the lower-level control unit transmits the robot state information to the higher-level control unit in synchronization with the control cycle. In step (b), the higher-level control unit transmits the command information to the lower-level control unit within a predetermined transmission time shorter than the control cycle, from the time it receives the robot state information from the lower-level control unit. The step (a) includes (i) transmitting the control command to the servo control unit and creating an extrapolated control command by extrapolating a plurality of past control commands as candidates for the next control command; (ii) if the command information can be received from the higher-level control device by a timeout time prior to the timing at which the next control command should be sent to the servo control unit, creating the next control command from the command information and transmitting it to the servo control unit; and (iii) if the command information cannot be received from the higher-level control device by the timeout time, transmitting the extrapolated control command to the servo control unit.

[0065] (6) According to a fourth embodiment of the present disclosure, a control method is provided for a lower-level control device that constitutes a robot control system together with a robot and a higher-level control device. This control method includes (a) a process of transmitting a control command to the servo control unit of the robot and receiving robot state information representing the state of the robot from the servo control unit at each predetermined control cycle, and (b) a process of transmitting the robot state information to the higher-level control device in synchronization with the control cycle. Process (a) includes (i) a process of transmitting the control command to the servo control unit and creating an extrapolated control command by extrapolating a plurality of past control commands as candidates for the next control command, and (ii) a process of creating the next control command from the command information and transmitting it to the servo control unit if command information can be received from the higher-level control device before a timeout time prior to the timing at which the next control command should be sent to the servo control unit, and (iii) a process of transmitting the extrapolated control command to the servo control unit if the command information cannot be received from the higher-level control device by the timeout time.

[0066] This disclosure can also be implemented in various forms other than those described above. For example, it can be implemented in the form of a robot system comprising a robot and a robot control device, a computer program for realizing the functions of the robot control device, and a non-transitory storage medium on which the computer program is recorded. [Explanation of symbols]

[0067] 100...Robot, 110...Base, 120...Robot arm, 122...Actuator, 124...Sensor, 130...Servo control unit, 132...Actuator control unit, 134...Real-time communication unit, 140...Force sensor, 150...End effector, 200...Lower-level control unit, 210...Non-real-time communication unit, 220...Control command generation unit, 221...Command reception processing unit, 222...Command extrapolation processing unit, 223...Command transmission processing unit, 225...Command memory, 226...Command history memory, 230...Real-time communication unit, 240...Robot state transfer unit, 300...Higher-level control unit, 310...Command information generation unit, 320...Non-real-time communication unit

Claims

1. A robot control system, A robot having a servo control unit, A lower-level control device that transmits control commands to the servo control unit at predetermined control cycles and receives robot state information representing the state of the robot from the servo control unit, A higher-level control device that transmits command information for creating the control command to the lower-level control device, Equipped with, The lower-level control unit transmits the robot state information to the higher-level control unit in synchronization with the control cycle. The higher-level control unit transmits the command information to the lower-level control unit within a predetermined transmission time shorter than the control cycle, starting from the time it receives the robot state information from the lower-level control unit. The aforementioned lower-level control device is (i) A process of transmitting the control command to the servo control unit and creating an extrapolated control command by extrapolating multiple past control commands as candidates for the next control command, (ii) If the command information can be received from the higher-level control device before the timeout time, which is earlier than the timing at which the next control command should be sent to the servo control unit, the process of creating the next control command from the command information and sending it to the servo control unit, (iii) If the command information cannot be received from the higher-level control device by the timeout time, the extrapolation control command is transmitted to the servo control unit. Execute, A robot control system in which the lower-level control device counts the number of times the extrapolation control command is transmitted to the servo control unit, and stops the robot if the count value exceeds an upper limit.

2. A robot control system according to claim 1, The lower-level control device is a robot control system that completes the process of creating the extrapolated control command before the timeout period.

3. A robot control system according to claim 2, The aforementioned lower-level control device is Before receiving the command information from the higher-level control device, the extrapolation control command is created and stored in the command memory. A robot control system that, if the command information is received before the timeout period, creates the next control command from the command information and overwrites the extrapolated control command in the command memory with the next control command.

4. A lower-level control unit that constitutes a robot control system together with a robot and a higher-level control unit, wherein the lower-level control unit is (a) A process that transmits a control command to the servo control unit of the robot at each predetermined control cycle and receives robot state information representing the state of the robot from the servo control unit, (b) A process of transmitting the robot state information to the higher-level control device in synchronization with the control cycle, It is configured to perform the following actions: The above process (a) is, (i) A process of transmitting the control command to the servo control unit and creating an extrapolated control command by extrapolating multiple past control commands as candidates for the next control command, (ii) If command information can be received from the higher-level control device before the timeout time, which is earlier than the timing at which the next control command should be sent to the servo control unit, the process of creating the next control command from the command information and sending it to the servo control unit, (iii) If the command information cannot be received from the higher-level control device by the timeout time, the extrapolation control command is transmitted to the servo control unit. Includes, A lower-level control device that counts the number of times the extrapolation control command is transmitted to the servo control unit, and stops the robot if the count value exceeds an upper limit.

5. A robot control system comprising a robot having a servo control unit, a lower-level control unit, and a higher-level control unit, and a method for controlling the robot, (a) The lower control device transmits a control command to the servo control unit at each predetermined control cycle and receives robot state information representing the state of the robot from the servo control unit, (b) The higher-level control device transmits command information for creating the control command to the lower-level control device, Equipped with, In step (a) above, the lower control device transmits the robot state information to the higher control device in synchronization with the control cycle, In step (b) above, the higher-level control device transmits the command information to the lower-level control device within a predetermined transmission time shorter than the control cycle, from the time it receives the robot state information from the lower-level control device. The above step (a) is, (i) A step of transmitting the control command to the servo control unit and creating an extrapolated control command by extrapolating a plurality of past control commands as candidates for the next control command, (ii) If the command information can be received from the higher-level control device by the timeout time, which is earlier than the timing at which the next control command should be sent to the servo control unit, the next control command is created from the command information and transmitted to the servo control unit, (iii) If the command information cannot be received from the higher-level control device by the timeout time, the extrapolation control command is transmitted to the servo control unit, Includes, A control method comprising: the lower-level control device counts the number of times it has transmitted the extrapolation control command to the servo control unit, and stops the robot if the count value exceeds an upper limit.

6. A control method for a lower-level control device that constitutes a robot control system together with a robot and a higher-level control device, (a) A process that transmits a control command to the servo control unit of the robot at each predetermined control cycle and receives robot state information representing the state of the robot from the servo control unit, (b) A process of transmitting the robot state information to the higher-level control device in synchronization with the control cycle, Includes, The above process (a) is, (i) A process of transmitting the control command to the servo control unit and creating an extrapolated control command by extrapolating multiple past control commands as candidates for the next control command, (ii) If command information can be received from the higher-level control device before the timeout time, which is earlier than the timing at which the next control command should be sent to the servo control unit, the process of creating the next control command from the command information and sending it to the servo control unit, (iii) If the command information cannot be received from the higher-level control device by the timeout time, the extrapolation control command is transmitted to the servo control unit. Includes, A control method that counts the number of times the extrapolation control command is transmitted to the servo control unit, and stops the robot if the count value exceeds an upper limit.

7. A robot control system according to claim 3, The lower-level control device counts the number of times the extrapolation control command has been continuously transmitted to the servo control unit as the count value. A robot control system in which, if the count value is less than the upper limit value and the command information can be received from the higher-level control device before the timeout period, which is before the timing at which the next control command should be sent to the servo control unit, the count value is reset.