Robot control method, robot control system, and robot control program
By isolating the processor core in the upper control unit and assigning communication tasks, the operational instability caused by the real-time operating system on the general operating system is solved, and stable and efficient command sending of the robot control system is achieved.
Patent Information
- Application Number
- CN202211272553.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2021-10-21
- Filing Date
- 2022-10-18
- Publication Date
- 2025-05-13
- Estimated Expiration
- 2042-10-18
AI Technical Summary
Real-time operating systems implemented on general operating systems may cause unstable movements of other application software, and the newly imported real-time operating systems may not be suitable for the system composition owned by users, resulting in the impact of the real-time communication function of the communication board.
By isolating a part of the processor cores in the upper control unit and assigning communication tasks with the lower control unit to the isolated processor cores, stable transmission of instruction information is achieved.
This method can ensure that instruction information is sent to the lower control unit within a predetermined time without affecting the load of other processor cores, thereby improving the stability and efficiency of robot control.
Smart Images

Figure CN116000915B_ABST
Abstract
Description
Technical Field
[0001] The present disclosure relates to a robot control system, a robot control method, and a robot control program. Background Art
[0002] Conventionally, there is a technique for implementing real-time robot control based on a predetermined motion cycle using a real-time operating system implemented on a general-purpose operating system, as described in Patent Document 1. In the technique described in Patent Document 1, a real-time operating system environment is created on a general-purpose operating system.
[0003] Patent Document 1: Japanese Patent Application No. 2018-535468
[0004] However, the operation of other application software running on the general-purpose operating system may become unstable. In addition, when a real-time operating system is newly introduced on the general-purpose operating system of a system previously owned by a user, the real-time operating system and the application running on the real-time operating system may not operate properly depending on the configuration of the system owned by the user. In addition, in addition to the communication board that the user's system has and is controlled by the general-purpose operating system, it is necessary to prepare a communication board that is controlled by the real-time operating system and can perform real-time communication. Summary of the invention
[0005] According to a first aspect of the present disclosure, a robot control method is provided, wherein a robot system is executed and controlled by a superior control unit, wherein the robot system comprises: the superior control unit; the superior control unit connected to the superior control unit and controlling one of the superior control units; and the superior control unit connected to the superior control unit and sending command information for controlling the superior control unit to the superior control unit. The superior control unit comprises a processor, and the processor comprises a plurality of processor cores. The robot control method comprises: an isolation step of isolating a part of the plurality of processor cores from other processor cores; an allocation step of allocating one or more communication tasks with the superior control unit to the isolated part of the processor cores; a communication step of sending the command information to the superior control unit by causing the isolated part of the processor cores to execute the one or more communication tasks with the superior control unit; and a release step of releasing the isolation of the isolated part of the processor cores. BRIEF DESCRIPTION OF THE DRAWINGS
[0006] Figure 1 It is an explanatory diagram showing an example of a robot control system according to an embodiment.
[0007] Figure 2 It is the functional block diagram of the robot control system.
[0008] Figure 3 1 is a flowchart showing processing performed when the host control device 300 controls the robot 100 .
[0009] Figure 4 This is a sequence diagram of controlling the robot 100 when communication between control devices is normal.
[0010] Figure 5 This is a sequence diagram of control of the robot 100 when a timeout occurs in communication between control devices.
[0011] Figure 6 1 is a flowchart showing the procedure of the transmission process of the control command CC by the lower control device 200 .
[0012] Figure 7 This is a flowchart showing the procedure of sending and receiving robot state information RI and the procedure of sending command information CI between the upper control device 300 and the lower control device 200.
[0013] Figure 8 This is a functional block diagram of a robot control system according to the second embodiment.
[0014] Description of Reference Numerals
[0015] 1…Robot control system, 1B…Robot control system, 100…Robot, 100a…Robot, 100b…Robot, 110…Base, 120…Robot arm, 122…Actuator, 124…Position sensor, 130…Servo control unit, 132…Actuator control unit, 134…Real-time communication unit, 140…External sensor, 140a…External sensor, 140b…External sensor, 142…Force sensor, 144…Proximity sensor, 150 …end effector, 200…lower control device, 200a…lower control device, 200b…lower control device, 210…non-real-time communication unit, 220…control instruction generation unit, 230…real-time communication unit, 240…robot status transmission unit, 300…upper control device, 300B…upper control device, 301…processor core, 302…processor core, 303…processor core, 304…processor core, 305…processor core, 306…processor device kernel, 310…instruction information generating unit, 310p…a program for making the CPU function as an instruction information generating unit, 320…a non-real-time communication unit, 320p…a program for making the CPU function as a non-real-time communication unit, 330…a sensor value receiving unit, 350…a CPU, 350B…a CPU, 360…a RAM, 370…a ROM, CC…a control instruction, CI…an instruction information, DS…an allocation script, J1…a joint, J2…a joint, J3…a joint, J4…a joint, JPP…a job plan generating program, OS…an operating system, P1…a processing, P2…a processing, P3…a processing, P4…a processing, P5…a processing, P6…a processing, P7…a processing, P8…a processing, P9…a processing, P10…a processing, P11…a processing, P12…a processing, RI…a robot status information, RP…a robot control program, RS…a release script, SS…a quarantine script, TO…a timeout, TT…a sending time, TCP…a control point. DETAILED DESCRIPTION
[0016] A. First Implementation Method:
[0017] Figure 1 1 is an explanatory diagram showing an example of a robot control system 1 according to an embodiment. The robot control system 1 includes: a robot 100; an external sensor 140 for detecting the state of the robot 100; an end effector 150 for processing an object of operation; a lower control device 200 for sending a control command CC to the robot 100; and an upper control device 300 for sending instruction information CI for generating the control command CC to the lower control device 200. The lower control device 200 is, for example, a robot controller, and the upper control device 300 is, for example, a computer equipped with Linux (registered trademark) as an operating system. Linux is not a real-time operating system, but a general-purpose operating system.
[0018] The robot 100 includes a base 110, a robot arm 120, and a servo control unit 130. The servo control unit 130 performs servo control on actuators for operating joints of the robot arm 120. The servo control unit 130 is connected to a lower control device 200. The servo control unit 130 is also called a "servo board".
[0019] The robot arm 120 is connected in sequence through four joints J1 to J4. A force sensor 142 and an end effector 150 as an external sensor 140 are installed at the front end of the robot arm 120. The force sensor 142 may also be omitted. In addition, other sensors such as proximity sensors, gyro sensors, and vibration sensors may also be provided in the robot arm 120. A TCP (Tool Center Point) is set near the front end of the robot arm 120 as a control point of the robot 100. In the present embodiment, a four-axis robot having four joints J1 to J4 is illustrated, but a robot having any arm mechanism having multiple joints may also be used. In addition, the robot 100 of the present embodiment is a horizontal multi-joint robot, but a vertical multi-joint robot may also be used.
[0020] Figure 2 1 is a functional block diagram of a robot control system 1. A lower control device 200 is connected to the robot 100 to control the robot 100. Specifically, the lower control device 200 sends a control instruction CC to the servo control unit 130 in synchronization with a predetermined robot control cycle to control the robot 100. In addition, the lower control device 200 receives robot state information RI from the servo control unit 130 in synchronization with the robot control cycle and sends it to the upper control device 300.
[0021] The upper control device 300 is connected to the lower control device 200. The upper control device 300 transmits the instruction information CI for controlling the robot 100 to the lower control device 200. Specifically, the upper control device 300 generates the next instruction information CI using the robot state information RI as needed. The upper control device 300 transmits the instruction information CI to the lower control device 200 within a predetermined transmission time shorter than the control cycle of the robot from the moment of receiving the robot state information RI.
[0022] The robot arm 120 includes an actuator 122 and a position sensor 124 (see Figure 2 Actuators 122 are provided at each joint to move each joint.
[0023] The position sensor 124 detects the position of each joint of the robot arm 120. In the present disclosure, the position of a joint refers to the displacement or angle of the joint. The robot state information RI received by the lower control device 200 from the servo control unit 130 is information indicating the state of the robot 100. The robot state information RI includes the detection values of the position sensors 124 in a plurality of joints, i.e., position data and error information of the robot 100. Specifically, the position sensor 124 is an encoder. Specifically, the actuator 122 is configured to also include an encoder as the position sensor 124.
[0024] The servo control unit 130 includes an actuator control unit 132 for controlling the actuator 122 and a real-time communication unit 134 (see Figure 2 middle right part of the image).
[0025] The real-time communication unit 134 has a function of synchronously communicating with the lower control device 200 in accordance with the control cycle of the robot. In the present embodiment, the control cycle of the robot is 2 ms. The servo control unit 130 and the lower control device 200 are connected via a protocol capable of real-time communication in a certain period, for example, via EtherCAT (registered trademark) (Ethernet Control Automation Technology: Ethernet Control Automation Technology). In EtherCAT, process data connected to input and output information such as digital data, analog data, encoder values, etc. can be loaded in an Ethernet frame for exchange. In the EtherCAT connection, the lower control device 200 functions as a host, and the servo control unit 130 functions as a slave.
[0026] The external sensor 140 is a sensor for detecting the state of the robot 100. The external sensor 140 sends a detection value to the upper control device 300 at a certain cycle, for example, 2 ms, without passing through the servo control unit 130. The external sensor 140 includes a force sensor 142. The force sensor 142 can detect the direction and magnitude of a force applied from the outside. The force sensor 142 sends a detection value to the upper control device 300 at a cycle of 2 ms.
[0027] The host control device 300 includes a command information generating unit 310, a non-real-time communication unit 320, and a sensor value receiving unit 330 (see Figure 2 The command information generating unit 310 generates a trajectory of the robot arm 120 according to the robot control program RP generated in advance, and generates command information CI for moving the robot arm 120 according to the trajectory. The command information CI includes a position command for moving the robot arm 120. The position command is a command indicating the position or displacement of each of the plurality of actuators of the robot arm 120, and indicates the position of a 2 ms period as the control period of the robot.
[0028] The non-real-time communication unit 320 performs non-real-time communication with the non-real-time communication unit 210 of the lower control device 200. In the present embodiment, the upper control device 300 and the lower control device 200 are connected via Ethernet. In the non-real-time communication, the command information CI is sent from the upper control device 300 to the lower control device 200 via DDS (Data Distribution Service), and the robot state information RI is sent from the lower control device 200 to the upper control device 300. The robot state information RI received by the non-real-time communication unit 320 is transmitted to the command information generation unit 310 for generating the command information CI. As described above, the robot state information RI includes the position data of each joint of the robot arm 120.
[0029] The sensor value receiving unit 330 performs non-real-time communication with the external sensor 140. In the present embodiment, the host control device 300 is connected to the external sensor 140 via Ethernet. The external sensor 140 and the host control device 300 may also be connected via, for example, a USB (Universal Serial Bus). The detection value of the external sensor 140 received by the sensor value receiving unit 330 is transmitted to the instruction information generating unit 310 for generating the instruction information CI.
[0030] The command information generation unit 310 executes a process of generating command information CI according to the robot control program RP. As the process of the command information CI, any of the following processes can be selected and executed.
[0031] (i) A first process of generating command information CI in accordance with the robot control program RP without using the robot state information RI received from the lower control device 200 .
[0032] (ii) A second process of generating instruction information CI using the robot state information RI in accordance with the robot control program RP.
[0033] The selection of which of the two processes to be executed is described in advance in the robot control program RP. In this way, the command information generation unit 310 generates the command information CI using the robot state information RI as needed. Therefore, the lower 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. In addition, instead of selectively executing the above two processes, the above second process can also be always executed.
[0034] As an example of generating the instruction information CI using the robot state information RI in the second process, there is the following example.
[0035] (1) Using the sensor value of the force sensor 142, the force control parameter included in the command information CI is changed.
[0036] (2) Using the sensor value of the force sensor 142, command information CI is generated by adding the displacement amount due to the force control to the displacement due to the position control.
[0037] (3) When the encoder value of a specific joint reaches a value indicating a specific angle, instruction information CI is generated to start acceleration or deceleration of the control point.
[0038] As a specific structure, the upper control device 300 has a CPU 350 as a processor, a RAM 360 and a ROM 370. The RAM 360 includes a main memory as a semiconductor memory and an auxiliary storage device as a hard disk. The hard disk stores: (i) an operating system OS; (ii) a robot control program RP; (iii) a program 310p for making the CPU 350 function as an instruction information generation unit 310; (iv) a program 320p for making the CPU 350 function as a non-real-time communication unit 320; (v) the isolation script SS, allocation script DS and release script RS described later; (vi) a job plan generation program JPP that can plan jobs including robot jobs and other jobs, etc. The CPU 350 implements real-time control of the robot 100 on Linux as the operating system OS by loading the computer program stored in the hard disk into the main memory and executing it.
[0039] The CPU 350 includes four processor cores 301 to 304 .
[0040] In this specification, "processor core" refers to a computing device that functions independently inside the CPU. The CPU 350 can execute multiple tasks on Linux, which is a multi-tasking operating system, by using one or more of the four processor cores 301 to 304. The multiple tasks include a communication process with the lower control device 200 implemented by the non-real-time communication unit 320. The multiple tasks include a process implemented by the instruction information generation unit 310, a process for executing the job plan generation program JPP, and the like.
[0041] The functions of the instruction information generation unit 310 and the non-real-time communication unit 320 are implemented by the processor core 304. The function of the sensor value receiving unit 330 is implemented by the processor core 303. In the control of the robot 100, the processor core 304 is isolated from the other processor cores 301 to 303. The isolation process of the processor core 304 will be described later.
[0042] The lower 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 transmission unit 240 (see Figure 2 The command information CI sent from the upper control device 300 is received by the non-real-time communication unit 210 and transmitted to the control command generation unit 220. The control command generation unit 220 generates a control command CC according to the command information CI. The control command CC includes a position instruction that is substantially the same as the position instruction of the 2ms period included in the command information CI. The control instruction CC may also be the same as the command information CI. The real-time communication unit 230 sends the control instruction CC to the servo control unit 130 in each control cycle of the robot, and receives the robot state information RI from the servo control unit 130. The robot state information RI is sent from the robot state transmission unit 240 to the upper control device 300 via the non-real-time communication unit 210.
[0043] Furthermore, when the communication between the upper control device 300 and the lower control device 200 is normal, the control command CC generated by the control command generation unit 220 includes the same position command as the command information CI received from the upper control device 300. On the other hand, when there is a delay in the communication between the control devices, the control command generation unit 220 generates the next control command CC without waiting for the reception of the command information CI from the upper control device 300. This processing will be further described later.
[0044] Figure 3 1 is a flowchart showing processing performed when the host control device 300 controls the robot 100 . Figure 3 The processing is executed in the CPU 350 of the host control device 300.
[0045] In step S10, an isolation process is performed to isolate the processor core 304 of the processor cores 301 to 304 from the other processor cores 301 to 303. The isolation process is performed, for example, by executing a script including the following description on Linux. In addition, in this specification, a "script" refers to a program that performs one or more predetermined processes.
[0046] cset shield --cpu 3
[0047] The processor cores 301 to 304 are respectively assigned numbers 0, 1, 2, and 3. "cset shield" is a command indicating that the processor cores should be isolated. "--cpu 3" is a parameter that specifies the processor core 304 to which the number 3 is assigned.
[0048] By including the script described above, the processor core 304 among the processor cores 301 to 304 is isolated from the other processor cores 301 to 303 among the processor cores 301 to 304. As a result, processes other than the processes of the instruction information generation unit 310 and the non-real-time communication unit 320 are executed by processor cores other than the processor core 304. The script that realizes this function is also called "isolation script SS".
[0049] In step S10, a process is executed to fix the operation clock of the isolated processor core 304. This process is performed by executing a script including the following description on Linux, for example.
[0050] cpufreq-set--cpu 3-g performance
[0051] "cpufreq-set" is a command indicating that the operating frequency of the operating clock of a certain processor core should be changed. "--cpu 3" is a parameter that specifies the processor core 304 assigned number 3. "-gperformance" is a parameter that specifies that the operating frequency of the operating clock of the processor core should be set to the maximum value.
[0052] In a processor core capable of changing the action clock, the action clock is reduced when the load is low. Thereafter, when a certain process with a large load needs to be executed, the action clock is increased. In such a processor core, it takes time to transition from a state with a low action clock to a state with a high action clock. Therefore, in the case where a processor core capable of dynamically changing the action clock is used to execute a communication process with a lower control device 200, it may occur that the necessary timing is not kept up when executing the communication process with the lower control device 200. However, by performing the above-mentioned process to fix the action clock of the isolated processor core 304, such a delay can be prevented from occurring.
[0053] The operation clock of the other processor cores 301 to 303 is set to be variable. Therefore, in the other processor cores 301 to 303, when the processing load is small, the operation clock can be reduced to reduce power consumption. In addition, when the processing load is large, the operation clock can be increased to shorten the processing time.
[0054] In step S20, an allocation process is executed to allocate the communication process with the lower control device 200 to the isolated processor core 304. This allocation process is performed by executing a script including the following description on Linux, for example.
[0055] cset shield--exec program_name arg1 arg2 "cset shield--exec" is an instruction indicating that a certain program should be assigned to the isolated processor core. "program_name" is a parameter that specifies the name of the program to be assigned. "arg1" and "arg2" are parameters specified when executing the program to be assigned. By including the script described above, the communication process with the lower control device 200 is started as a dedicated process for the processor core 304. As a result, the processes of the instruction information generation unit 310 and the non-real-time communication unit 320 that control the robot 100 are executed only by the processor core 304. The script that implements this function is also called an "allocation script DS."
[0056] In step S30, the operation of the robot 100 is performed. The processor core 304 of the upper control device 300 executes a process for controlling the robot 100 according to the robot control program RP. More specifically, the upper control device 300 performs a communication process for sending the instruction information CI to the lower control device 200 by causing the isolated processor core 304 to execute a communication process with the lower control device 200. As a result, the instruction information CI is repeatedly sent from the non-real-time communication unit 320 to the lower control device 200.
[0057] In step S40 , the operation of the robot 100 is completed. The processor core 304 of the host control device 300 ends the process of controlling the robot 100 .
[0058] In step S50, a release process is executed to release the isolation of the isolated processor core 304. This release process is performed by executing a script including the following description on Linux, for example.
[0059] cset shield --reset
[0060] By including the script described above, the isolation of the isolated processor core 304 is released. The script that realizes this function is also called a "release script".
[0061] In addition, in step S50 , a process of setting the operating clock of the isolated processor core 304 to be variable is executed.
[0062] In not conducting Figure 3 In the case of processing S10 and S20, if the load of processing other than robot control executed in CPU350 increases, the sending of instruction information CI based on instruction information generation unit 310 and non-real-time communication unit 320 will not catch up with the control cycle of robot 100, and there is a possibility that the end effector 150 presses the object of operation with excessive force.
[0063] However, in this embodiment, since the isolation processing and the distribution processing are performed, the processor core 304 is not affected by the load of the processing such as the job plan generation program JPP executed by other processor cores 301 to 303, and the communication process with the lower control device 200 can be stably executed (see Figure 3 S10 and Figure 2 Therefore, it is highly possible that the upper control device 300, which does not introduce a real-time operating system, can send the instruction information CI to the lower control device 200 without delaying the timing determined by the control cycle of the robot 100 in the lower control device 200. As a result, the robot 100 can be controlled even if a mid-range computer is used instead of a high-end computer.
[0064] In addition, in the present embodiment, after the control of the robot 100 is completed, the isolation of the processor core 304 to which the communication process is assigned is released (see Figure 3 As a result, when the CPU 350 performs the provided processing later, it can use all the processor cores 301 to 304 for processing. That is, the processing capacity of the upper control device 300 can be improved when the upper control device 300 performs various processing other than the control of the robot 100.
[0065] In addition, since the operation clock of the processor core 304 is set to be variable (see Figure 3 Therefore, for all processor cores 301 to 304, the processing capacity can be changed according to the load to be processed.
[0066] Figure 4 FIG. 1 is a sequence diagram of the control of the robot 100 when the communication between the control devices is normal. Figure 4 The various processes are described in the order of processes P1 to P10 shown. Figure 4 In the figure, for the convenience of illustration, the robot state transmitting unit 240 is omitted, and the “robot state information” is simply recorded as “robot state”.
[0067] The lower control device 200 operates in a certain control cycle using the timer interrupt of the lower control device 200. As described above, the control cycle is 2ms. Specifically, the real-time communication unit 230 of the lower control device 200 performs read / write, i.e., transmission and reception based on the EtherCAT protocol every 2ms control cycle according to the timer interrupt. The timing of transmission and reception of the real-time communication unit 230 becomes the reference timing for controlling the operation timing of other parts.
[0068] In the process P1, the real-time communication unit 230 sends the control command CC to the servo control unit 130 at the timing of the timer interrupt (see Figure 4 The control command CC includes a 2 ms period position command related to each joint of the robot arm 120. In the process P2, the servo control unit 130 interpolates the received 2 ms period position command into a plurality of position commands for a finer divided control period to control the actuator 122 of the robot arm 120 (see Figure 4 ). Figure 4 In the example shown in FIG. 1 , the split control period is a 128 μs period.
[0069] The servo control unit 130 transmits the robot state information RI to the lower control device 200 (see Figure 4 As described above, the robot state information RI includes the position data of each joint. After the real-time communication unit 230 of the lower control device 200 sends the control command CC to the servo control unit 130, in the process P4, it instructs the control command generation unit 220 and the robot state transmission unit 240 to start the action respectively (refer to Figure 4 As mentioned above, in Figure 4 The illustration of the robot state transmission unit 240 is omitted. In addition, both the control instruction generation unit 220 and the robot state transmission unit 240 execute tasks in real time, and when a start instruction is received, the action is started with a small jitter of less than tens of μs. In addition, "jitter" refers to how much the interval between the last start time and the current start time deviates from the expected value of 2ms. In processing P5, the robot state transmission unit 240 transmits the robot state information RI received from the servo control unit 130 to the upper control device 300 (refer to Figure 4 ).
[0070] In the process P6, the command information generating unit 310 of the upper control device 300 confirms the reception of the robot state information RI, calculates the trajectory for the next position command, and generates the command information CI including the position command (see Figure 4 When the generation of the instruction information CI is completed, the upper control device 300 immediately sends the instruction information CI including the position instruction to the lower control device 200 in the process P7 (refer to Figure 4 The command information CI is assigned a unique serial number. When the processing in the upper control device 300 and the communication between the control devices are normally performed, the command information CI is sent within a predetermined sending time TT shorter than 2 ms, which is the control cycle of the robot, from the moment the robot status information RI is received (refer to Figure 4).
[0071] The upper control device 300 operates on Linux, which is not a real-time OS. Therefore, after receiving the robot state information RI from the lower control device 200, the next instruction information CI cannot be sent in less than several tens of μs. However, if the instruction information CI can be sent within the sending time TT from the timing of receiving the robot state information RI, the upper control device 300 can make the sending of the next instruction information CI catch up with the timing of the lower control device 200 sending the next control instruction CC to the servo control unit 130.
[0072] After receiving the instruction to start the operation from the real-time communication unit 230, the control instruction generation unit 220 of the lower control device 200 waits for the instruction information CI to be sent from the upper control device 300. In the process P8, when the control instruction generation unit 220 receives the instruction information CI from the upper control device 300, it checks the sequence number attached to the instruction information CI and checks whether the position, speed, and acceleration indicated by the position instruction exceed the limit (refer to Figure 4 If there is no abnormality in the instruction information CI, then in process P9, the control instruction generation unit 220 generates a control instruction CC including a position instruction and sends it to the servo control unit 130 via the real-time communication unit 230 (refer to Figure 4 ).
[0073] As described above, the lower control device 200 transmits the robot state information RI to the upper control device 300 in synchronization with the predetermined control cycle, and the upper control device 300 transmits the command information CI to the lower control device 200 within the predetermined transmission time TT shorter than the control cycle from the moment when the robot state information RI is received from the lower control device 200. In this robot control system 1, since the communication between the upper control device 300 and the lower control device 200 is performed within the transmission time TT shorter than the control cycle of the robot, the lower control device 200 can transmit the control command CC to the servo control unit 130 in each control cycle, and can perform the robot action requiring responsiveness without any problem. However, in the case where a large delay occurs in the communication from the upper control device 300 to the lower control device 200, the processing is performed as described below.
[0074] Figure 5 is a sequence diagram of the control of the robot 100 when a timeout occurs in the communication between the control devices. Figure 4 Same. Figure 5In the process P7, it is assumed that the instruction information CI sent from the upper control device 300 to the lower control device 200 cannot keep up with the control cycle of the robot 100, that is, it is assumed that the timing of sending the next control instruction CC from the lower control device 200 to the servo control unit 130 cannot be kept up. Specifically, Figure 5 The transmission of the instruction information CI in the processing P7 occurs after the normal transmission time TT has passed (refer to Figure 5 In this case, in the process P10, the process of waiting for receiving the instruction information CI from the upper control device 300 times out (refer to Figure 5 The timeout is determined by whether the command information CI is received from the upper control device 300 before the timeout time TO before the timing at which the next control command CC is to be sent to the servo control unit 130 (refer to Figure 5 the lower center of the section).
[0075] The time from the timeout moment TO to the next control instruction CC transmission timing is a time longer than zero, and can be set to, for example, 0.1 to 0.2 ms. The transmission time TT of the upper control device 300 is set so that the lower control device 200 does not time out. That is, the transmission time TT is set so that if the upper control device 300 transmits the instruction information CI to the lower control device 200 within the transmission time TT from the moment of receiving the robot state information RI, the instruction information CI is received by the lower control device 200 before the timeout moment TO.
[0076] In the event of a timeout, the control instruction generation unit 220 uses the past control instruction CC to perform extrapolation of the position instruction and generates the next control instruction CC. As the past control instruction CC, it is preferred to use the most recent control instruction CC of a predetermined number of times or more. In addition, the control instruction generation unit 220 checks whether the position, speed, and acceleration exceed the limits for the position instruction included in the next control instruction CC. If there is no abnormality in the control instruction CC, the control instruction generation unit 220 sends the control instruction CC to the servo control unit 130 (see Figure 5 ).
[0077] Thus, when a timeout occurs, the past control command CC is extrapolated to generate the next control command CC. Therefore, even when the command information CI sent from the host control device 300 to the subordinate control device 200 is delayed, an appropriate control command CC can be sent to the servo control unit 130.
[0078] After the timeout occurs, the command information CI sent from the host control device 300 is discarded in the process P12 (refer to Figure 5 As described above, a unique serial number is added to the instruction information CI. The control instruction generation unit 220 discards the instruction information CI, but updates the serial number. Therefore, when the control instruction generation unit 220 receives the next instruction information CI, it can determine whether it is the expected instruction information CI based on the serial number included in the instruction information CI.
[0079] In addition, Figure 5 In the example, when a communication timeout occurs, the next control instruction CC is extrapolated from the past control instruction CC. However, the next control instruction CC may be generated by methods other than extrapolation. For example, the same instruction as the previous control instruction CC may be used as the next control instruction CC. In this way, when the lower control device 200 cannot receive the instruction information CI before the predetermined timeout time TO, the instruction information CI sent from the upper control device 300 may not be used, but the next control instruction CC may be generated using the past control instruction CC and sent to the lower control device 200. In this way, even when the instruction information CI sent from the upper control device 300 to the lower control device 200 is delayed, the robot 100 can be operated.
[0080] Figure 6 This is a flowchart showing the steps of the transmission process of the control command CC of the lower control device 200. In steps S110 and S120, the control command generation unit 220 waits until receiving a process start instruction from the real-time communication unit 230. When receiving the process start instruction, the control command generation unit 220 waits until receiving the command information CI from the upper control device 300 in step S130.
[0081] In step S140 , if the reception of the command information CI has not timed out and the command information CI is confirmed to be normal in step S150 , the process proceeds to step S160 , where the control command generation unit 220 generates the next control command CC according to the command information CI and sends it to the servo control unit 130 .
[0082] On the other hand, if a timeout occurs in step S140, the process proceeds to step S180, where the control command generation unit 220 generates the next control command CC using the previous control command CC and sends it to the servo control unit 130. The processing in step S180 is equivalent to the processing in step S140. Figure 5 Processing P10 and P11 described in .
[0083] If the command information CI is not normal in step S150, the command information CI is discarded, and a request is made to the host control device 300 to resend the command information CI, and the process returns to step S130.
[0084] In step S170, the control command generation unit 220 determines whether a processing end instruction is received. If not, the control command generation unit 220 returns to step S110 and repeats the processing after step S110. The processing end instruction is sent from the upper control device 300 to the lower control device 200, for example.
[0085] Figure 7 The flowchart shows the procedure of sending and receiving robot state information RI and the procedure of sending command information CI between the upper control device 300 and the lower control device 200. Steps S310 to S360 are processed by the upper control device 300, and steps S210 to S250 are processed by the lower control device 200.
[0086] In steps S210 and S220, the robot state transmission unit 240 waits until receiving a processing start instruction from the real-time communication unit 230. When receiving the processing start instruction, the robot state transmission unit 240 acquires the robot state information RI sent from the servo control unit 130 in step S230, and sends it to the upper control device 300 via the non-real-time communication unit 210 in step S240.
[0087] In step S250, it is determined whether a processing end instruction is received. If not, the process returns to step S210 and the process after step S210 is repeated. The processing end instruction is transmitted from the upper control device 300 to the lower control device 200, for example.
[0088] In steps S310 and S320, the non-real-time communication unit 320 waits until receiving the robot state information RI from the lower control device 200. When receiving the robot state information RI, the instruction information generation unit 310 obtains the robot state information RI from the non-real-time communication unit 320 in step S330, and generates the next instruction information CI using the robot state information RI as needed in step S340.
[0089] In step S350, the instruction information generating unit 310 transmits the instruction information CI to the lower control device 200 via the non-real-time communication unit 320. Figure 6 The processing after step S130 is shown.
[0090] In step S360, the instruction information generating unit 310 determines whether the processing end instruction is received. If not, it returns to step S310 and repeats the processing after step S310. In addition, the processing end instruction is issued based on the input of the operator to the upper control device 300, for example, when the operator inputs the end of the operation of the robot 100 to the upper control device 300.
[0091] As described above, in the robot control system 1 of the above-mentioned embodiment, the lower control device 200 transmits the robot state information RI to the upper control device 300 in synchronization with the control cycle of the robot, and the upper control device 300 transmits the instruction information CI to the lower control device 200 within a predetermined transmission time TT shorter than the control cycle of the robot from the moment of receiving the robot state information RI from the lower control device 200. According to the robot control system 1, since the communication between the upper control device 300 and the lower control device 200 is performed within the transmission time TT shorter than the control cycle of the robot, the lower control device 200 can transmit the control instruction CC to the servo control unit 130 in each control cycle, and can execute the robot action requiring responsiveness without any problem.
[0092] In addition, conventionally, the control of the robot 100 is mainly performed by the lower control device 200 that can communicate with the robot 100 in real time. However, in the robot control system 1 of the above-mentioned embodiment, the communication between the upper control device 300 and the lower control device 200 is performed within a transmission time TT that is shorter than the control cycle of the robot. Therefore, by sending the instruction information CI to the lower control device 200, the upper control device 300 operating on the non-real-time OS becomes the main body and can control the robot 100.
[0093] The lower control device 200 of this embodiment is also referred to as a "lower control unit". The upper control device 300 is also referred to as a "upper control unit". The communication process between the upper control device 300 and the lower control device 200 is also referred to as a "communication task". The CPU 350 is also referred to as a "processor". The operating system OS and the robot control program RP are also referred to as "computer programs".
[0094] B. Second Implementation Method:
[0095] In the first embodiment, the CPU 350 of the upper control device 300 has four processor cores 301 to 304. Moreover, the upper control device 300 controls one robot 100. In contrast, in the second embodiment, the CPU 350B of the upper control device 300B has six processor cores 301 to 306. Moreover, the upper control device 300B controls two robots 100a and 100b at the same time. Other aspects of the robot system of the second embodiment are the same as those of the robot system of the first embodiment.
[0096] Figure 81B is a functional block diagram of a robot control system 1B according to a second embodiment. The robot control system 1B according to the second embodiment includes robots 100a, 100b, external sensors 140a, 140b, end effectors 150a, 150b, lower control devices 200a, 200b, and an upper control device 300B. Figure 8 The details of each structure and the end effectors 150a and 150b are not shown.
[0097] The structures of the robot 100a, the external sensor 140a, the end effector 150a, and the lower control device 200a are respectively the same as the robot 100, the external sensor 140, the end effector 150, and the lower control device 200 of the first embodiment. The structures of the robot 100b, the external sensor 140b, the end effector 150b, and the lower control device 200b are respectively the same as the robot 100, the external sensor 140, the end effector 150, and the lower control device 200 of the first embodiment.
[0098] The upper control device 300B is connected to the lower control devices 200a and 200b. The upper control device 300B sends the instruction information CI for controlling the robot 100a to the lower control device 200a. The function of the upper control device 300B sending the instruction information CI to the lower control device 200a is the same as the function of the upper control device 300 sending the instruction information CI to the lower control device 200 in the first embodiment. The upper control device 300B sends the instruction information CI for controlling the robot 100b to the lower control device 200b. The function of the upper control device 300B sending the instruction information CI to the lower control device 200b is the same as the function of the upper control device 300 sending the instruction information CI to the lower control device 200 in the first embodiment.
[0099] In the second embodiment, the instruction information generating unit 310 that functions to transmit the instruction information CI to the lower control device 200a is configured to generate the instruction information CI in a non-real-time communication unit 320 (see Figure 2 The left part of the processor core 304 is implemented by the processor core 304. The function of the sensor value receiving unit 330 that performs communication with the external sensor 140a is implemented by the processor core 303. On the other hand, the function of the instruction information generating unit 310 that performs the function of sending the instruction information CI to the lower control device 200b and the function of the non-real-time communication unit 320 (see Figure 2 The function of the sensor value receiving unit 330 that performs communication with the external sensor 140b is implemented by the processor core 305.
[0100] In the control of the robots 100a and 100b of the second embodiment, the processor cores 304 and 306 are isolated from the other processor cores 301 to 303 and 305. Hereinafter, the processing when the host control device 300B of the second embodiment controls the robots 100a and 100b will be described.
[0101] exist Figure 3 In step S10, an isolation process is performed to isolate the processor cores 304 and 306 of the processor cores 301 to 306 from the other processor cores 301 to 303 and 305. In addition, in step S10, a process of fixing the operation clock of the isolated processor cores 304 and 306 is performed. The details of these processes are the same as those of step S10 of the first embodiment.
[0102] exist Figure 3 In step S20 of the embodiment, the communication process of the lower control device 200a among the two lower control devices 200a and 200b is allocated to the processor core 304 among the two isolated processor cores 304 and 306. Similarly, the communication process of the lower control device 200b is allocated to the processor core 306. That is, the allocation process of the communication process to the execution processor core is performed for each of the two lower control devices 200a and 200b. The details of these processes are the same as those of step S20 of the first embodiment.
[0103] exist Figure 3 In step S30, the operation of robots 100a and 100b is performed. The processor core 304 of the upper control device 300B executes the process of controlling the robot 100a. The processor core 306 of the upper control device 300B executes the process of controlling the robot 100b. More specifically, the upper control device 300B sends the instruction information CI to the lower control device 200a by causing the processor core 304 to execute the communication process with the lower control device 200a. The upper control device 300B causes the processor core 306 to execute the communication process with the lower control device 200b, thereby sending the instruction information CI to the lower control device 200b. That is, the processing of causing the processor core to execute the communication process with the lower control unit is performed on the two lower control devices 200a and 200b respectively. The details of these processes are the same as the processing of step S30 of the first embodiment.
[0104] exist Figure 3 In step S40, the work of the robots 100a and 100b is completed. The processor cores 304 and 306 of the host control device 300B end the process of controlling the robots 100a and 100b.
[0105] exist Figure 3In step S50, the isolation release process of the isolated processor cores 304 and 306 is performed. In addition, in step S50, the operation clock of the isolated processor cores 304 and 306 is made variable. The specific process in step S50 is the same as the process in step S50 of the first embodiment.
[0106] According to the second embodiment, when the upper control device 300B controls multiple robots 100a, 100b, it is highly likely that the upper control device 300B can send instruction information CI to each lower control device 200a, 200b without delay in the timing determined by the control cycle of the robots 100a, 100b.
[0107] C. Other implementation methods:
[0108] C1. Other implementation methods 1:
[0109] (1) In the first embodiment described above, the force sensor 142 is mounted on the front end portion of the robot arm 120 (see Figure 1 However, the force sensor may be mounted at other locations such as the base of the robot arm.
[0110] (2) In the first embodiment described above, the force sensor 142 is described as an example of an external sensor (see Figure 2 However, as an external sensor, for example, a proximity sensor that can detect when the distance to another object becomes less than a certain value, or other sensors may be used. The robot may have one proximity sensor at the front end of the robot arm. In addition, the robot may have multiple proximity sensors at multiple locations of the robot arm. Figure 2 In FIG. 1 , the proximity sensor 144 is represented by a dotted line.
[0111] The instruction information generation unit 310 generates instruction information CI by using the detection value of the proximity sensor so as to generate instruction information CI in a manner that the robot arm 120 does not contact the obstacle. On the other hand, the instruction information generation unit 310 generates instruction information CI by using the detection value of the force sensor 142, for example, so as to make the end effector 150 contact the object of operation and to separate the end effector 150 from the object of operation after applying a certain force for a certain period of time.
[0112] (3) In the first embodiment, as the tasks executed by the CPU 350, which is the processor of the host control device 300, the tasks of the instruction information generating unit 310, the tasks of the non-real-time communication unit 320, and the tasks of the work plan generating program JPP are listed (see Figure 2). However, the tasks executed by the CPU may include other tasks such as a task of displaying the status of the robot arm in three dimensions and a task of saving the progress status of the work in a file.
[0113] (4) In the first embodiment described above, the processor cores are isolated by executing a script including the "cset shield" instruction on Linux (see Figure 3 In addition, by executing a script including the "cpufreq-set" instruction, the operation clock of the processor core is fixed. However, the technology disclosed in the present invention can also be implemented on an OS other than Linux.
[0114] For example, when the technology of the present disclosure is executed on Windows (registered trademark), the isolation of the processor core can be performed by the "SetProcessAffinityMask" function. In addition, the fixed operation clock can be set by setting [Control Panel] - [Hardware and Sound] - [Power Options] - [Edit Plan Settings].
[0115] (5) In the first embodiment described above, processes other than the processes of the instruction information generation unit 310 and the non-real-time communication unit 320 are executed by processor cores other than the processor core 304. However, among processes other than the processes of the instruction information generation unit 310 and the non-real-time communication unit 320, processes with a light load may be executed by an isolated processor core. In addition, for processes with a light load, execution in an isolated processor core and execution in other processor cores that are not isolated may be switched according to the load of the process.
[0116] (6) In the first embodiment described above, the sensor value receiving unit 330 is implemented by the processor core 303 which is not isolated and performs non-real-time communication with the external sensor 140 (see Figure 2 However, the sensor value receiving unit may be implemented by an isolated processor core to perform communication with the external sensor 140. If this is done, the isolated processor core will not be affected by the load of the processing performed by other processor cores, and the isolated processor core can stably perform the communication process with the lower control device.
[0117] (7) In the first embodiment described above, Figure 3 In step S10, the processor core 304 is isolated. In step S20, the communication process with the lower control device 200 is assigned to the processor core 304. In step S30, the processor core 304 executes the communication process with the lower control device 200. In step S50, the isolation of the processor core 304 is released.
[0118] However, it is also possible to make a plurality of processor cores, such as the processor cores 304 and 306, control a single robot 100 via a single lower control device 200. That is, the isolation step S10 and the release step S50 can be performed on a plurality of processor cores that are part of the processor cores. The allocation step S20 may include a step of allocating one or more communication processes with one or more lower control units to the isolated plurality of processor cores. The communication step S30 may include a step of sending instruction information CI to one or more lower control units by making the isolated plurality of processor cores execute one or more communication processes with one or more lower control units.
[0119] If this is done, the following effects can be achieved when the load of the communication process with the lower control device 200 is large, with respect to the processing capabilities of each of the plurality of processor cores 301 to 306 included in the upper control unit. That is, compared with a system in which the isolation process, the allocation process, the communication process, and the release process can be performed on only one processor core 304, the possibility that the transmission of the instruction information CI is delayed beyond the timing determined by the control cycle of the robot 100 can be reduced.
[0120] (8) In the second embodiment described above, the upper control device 300B controls the two robots 100a and 100b simultaneously. Furthermore, one processor core controls one robot via one lower control device (see Figure 8 Reference). However, the upper control unit may also control 3, 5, 10 or more robots simultaneously. However, the number m of processor cores of the processor provided by the upper control unit is preferably greater than the number n of robots provided by the robot control system.
[0121] C2. Other implementation methods 2:
[0122] In the above embodiment, in step S10, a process of fixing the operation clock of the isolated processor core is executed (see Figure 3 However, the operating clock of the isolated processor core may be set to be variable according to the load.
[0123] C3. Other implementation methods 3:
[0124] In the above-mentioned other embodiment 1, the isolation step S10 and the release step S50 are performed on multiple processor cores that are part of the processor cores. The allocation step S20 allocates one or more communication processes with one or more lower control units to the isolated multiple processor cores. The communication step S30 enables the isolated multiple processor cores to execute one or more communication processes with one or more lower control units. However, as shown in the first embodiment, the isolation step S10 and the release step S50 can also be performed on one processor core 304. The allocation step S20 can also allocate one communication process with one lower control device 200 to one isolated processor core 304. The communication step S30 can also enable one isolated processor core 304 to execute one communication process with one lower control device 200.
[0125] C4. Other implementation methods 4:
[0126] In the second embodiment described above, the upper control device 300B controls two robots 100a and 100b simultaneously. Also, one processor core controls one robot via one lower control device (see Figure 8 ). However, multiple processor cores may control one robot via one lower control unit. In addition, one processor core may control multiple robots via multiple lower control units. That is, the number of processor cores may be greater or less than the number of robots.
[0127] D.Other ways:
[0128] The present disclosure is not limited to the above-mentioned embodiments, and can be implemented in various ways without departing from its main purpose. For example, the present disclosure can also be implemented in the following manner (aspect). In order to solve part or all of the problems of the present disclosure, or to achieve part or all of the effects of the present disclosure, the technical features in the above-mentioned embodiments corresponding to the technical features in the various methods described below can be appropriately replaced or combined. In addition, if its technical features are not described as necessary content in this specification, they can be appropriately deleted.
[0129] (1) According to a first aspect of the present disclosure, a robot control method is provided, wherein a robot system is executed and controlled by a host control unit, wherein the robot system comprises: the one or more robots; one or more host control units, each connected to the one or more robots and each controlling one of the one or more robots; and the host control unit, connected to the one or more host control units and transmitting command information for controlling the one or more robots to the one or more host control units. The host control unit comprises a processor, and the processor comprises a plurality of processor cores. The robot control method comprises: an isolation step of isolating a part of the plurality of processor cores from other processor cores of the plurality of processor cores; an allocation step of allocating one or more communication tasks with the one or more host control units to the isolated part of the processor cores; a communication step of transmitting the command information to the one or more host control units by causing the isolated part of the processor cores to execute the one or more communication tasks with the one or more host control units; and a release step of releasing the isolation of the isolated part of the processor cores.
[0130] In this way, some processor cores can be made to perform communication tasks with the lower control unit without being affected by the load of processing executed by other processor cores. Therefore, even if an upper control unit that does not have a real-time operating system is used, there is a high possibility that instruction information can be sent to the lower control unit without delaying the timing determined by the control cycle of the robot in the lower control unit.
[0131] Furthermore, after the control of the robot is completed, by releasing the isolation of some processor cores to which the communication task is assigned, the performance of the higher-level control unit when performing subsequent processing other than the control of the robot can be improved.
[0132] (2) The above method may include a step of fixing an operating clock of the isolated part of the processor cores.
[0133] In a processor core that can change the operation clock, when the load is low, the operation clock is reduced. Thereafter, when it is necessary to execute certain processing, the operation clock is increased. In such a processor core, it takes time to switch from a low operation clock state to a high operation clock state, and when executing a communication task with a lower control unit, it may be impossible to catch up with the necessary timing. However, in the above-mentioned method, by fixing the operation clock of a part of the isolated processor cores, such a delay can be prevented.
[0134] (3) In the above method, it can also be set as follows: the isolation process and the release process are performed on multiple processor cores that are part of the processor cores, the allocation process includes the process of allocating one or more communication tasks with the one or more lower control units to the isolated multiple processor cores, and the communication process includes the process of sending the instruction information to the one or more lower control units by causing the isolated multiple processor cores to execute the one or more communication tasks with the one or more lower control units.
[0135] According to this method, when the load of the communication task with the lower control unit is large relative to the processing capabilities of each of the multiple processor cores of the upper control unit, the following effect is achieved. That is, compared with a system that can perform isolation processing, allocation processing, communication processing, and release processing on only one processor core, the possibility of delaying the transmission of command information beyond the timing determined by the control cycle of the robot can be reduced.
[0136] (4) In the above method, the one or more robots are n robots, wherein n is an integer greater than 2, the one or more lower-level control units are n lower-level control units, the isolation step includes a step of isolating m processor cores as the part of the processor cores, wherein m is an integer greater than n, the allocation step includes a step of executing, for each of the n lower-level control units, a process of allocating a communication task with one of the n lower-level control units to one or more processor cores of the isolated m processor cores, and the communication step includes a step of executing, for each of the n lower-level control units, a process of causing the one or more processor cores to which the one communication task with the one lower-level control unit is allocated to execute the one communication task with the one lower-level control unit.
[0137] In such an aspect, there is a high possibility that command information can be transmitted from the upper control unit to each lower control unit for each of the plurality of robots without delaying the timing determined by the control cycle of the robot.
[0138] (5) According to the second aspect of the present disclosure, a robot control system is provided. The robot control system includes: one or more robots; one or more lower control units, each connected to the one or more robots and controlling one of the one or more robots; and an upper control unit, connected to the one or more lower control units, and sending command information for controlling the one or more robots to the one or more lower control units. The upper control unit includes a processor, and the processor includes a plurality of processor cores. The upper control unit can perform the following processing: isolation processing, isolating a part of the plurality of processor cores from other processor cores of the plurality of processor cores; allocation processing, allocating one or more communication tasks with the one or more lower control units to the isolated part of the processor cores; communication processing, sending the command information to the one or more lower control units by causing the isolated part of the processor cores to perform the one or more communication tasks with the one or more lower control units; and release processing, releasing the isolation of the isolated part of the processor cores.
[0139] (6) According to the third aspect of the present disclosure, a robot control system is provided. The robot control system comprises: one or more robots; one or more lower-level control units, each connected to the one or more robots and controlling one of the one or more robots; and an upper-level control unit, connected to the one or more lower-level control units, and sending instruction information for controlling the one or more robots to the one or more lower-level control units. The upper-level control unit comprises: a processor, comprising a plurality of processor cores; a multitasking operating system; a plurality of tasks, executed by one or more processor cores among the plurality of processor cores on the multitasking operating system, and including one or more communication tasks with the one or more lower-level control units; an isolation script, which describes isolating a portion of the plurality of processor cores from other processor cores among the plurality of processor cores; and a release script, which describes releasing the isolation of the isolated portion of the processor cores. The upper-level control unit is capable of allocating the one or more communication tasks to the isolated portion of the processor cores.
[0140] (7) According to a fourth aspect of the present disclosure, there is provided a robot control program, which is executed by a host control unit in a robot system and controls one or more robots, the robot system comprising: the one or more robots; one or more lower control units, each connected to the one or more robots and each controlling one of the one or more robots; and the host control unit, connected to the one or more lower control units and sending instruction information for controlling the one or more robots to the one or more lower control units. The host control unit comprises: a processor, comprising a plurality of processor cores; a multitasking operating system; a plurality of tasks, executed by one or more processor cores among the plurality of processor cores on the multitasking operating system, and including one or more communication tasks with the one or more lower control units. The robot control program comprises: an isolation script, which describes isolating a portion of the plurality of processor cores from other processor cores among the plurality of processor cores; and a release script, which describes release of the isolation of the isolated portion of the processor cores, the isolation script describing allocation of the one or more communication tasks to the isolated portion of the processor cores.
[0141] The present disclosure may be implemented in various ways other than those described above, for example, by a robot system including a robot and a robot control device, a computer program for implementing the functions of the robot control device, a non-transitory storage medium recording the computer program, and the like.
Claims
1. A robot control method, characterized in that: In a robot system, one or more robots are executed and controlled by an upper control unit, and the robot system comprises: the one or more robots; one or more lower control units, each connected to the one or more robots and controlling one of the one or more robots; and the upper control unit, connected to the one or more lower control units, and sending instruction information for controlling the one or more robots to the one or more lower control units. The upper control unit includes a processor, and the processor includes a plurality of processor cores. The robot control method comprises: an isolation step of isolating a portion of the plurality of processor cores from other processor cores of the plurality of processor cores; an allocating step of allocating one or more communication tasks with the one or more lower control units to the isolated part of the processor cores; a communication step of causing the isolated part of the processor cores to execute the one or more communication tasks with the one or more lower control units, thereby sending the instruction information to the one or more lower control units; and The releasing step releases the isolation of the isolated part of the processor cores.
2. The robot control method according to claim 1, characterized in that: The robot control method includes a step of fixing an operation clock of the isolated portion of the processor cores.
3. The robot control method according to claim 1 or 2, characterized in that: The isolating step and the releasing step are performed on a plurality of processor cores that are part of the processor cores. The allocating step includes the step of allocating one or more communication tasks with the one or more lower control units to the plurality of isolated processor cores. The communication step includes the step of causing the isolated plurality of processor cores to execute the one or more communication tasks with the one or more lower control units, thereby transmitting the command information to the one or more lower control units.
4. The robot control method according to claim 1 or 2, characterized in that: The one or more robots are n robots, wherein n is an integer greater than 2, The one or more lower-level control units are n lower-level control units, The isolation step includes a step of isolating m processor cores as the part of the processor cores, wherein m is an integer greater than n, The allocating step includes the step of allocating, for each of the n lower control units, a communication task with one of the n lower control units to one or more of the isolated m processor cores. The communication step includes a step of causing the one or more processor cores assigned with the one communication task with the one lower control unit to execute, for each of the n lower control units, a process of causing the one or more processor cores to execute the one communication task with the one lower control unit.
5. A robot control system, characterized in that: have: More than 1 robot; One or more lower-level control units are respectively connected to the one or more robots and respectively control one of the one or more robots; and The upper control unit is connected to the one or more lower control units and sends command information for controlling the one or more robots to the one or more lower control units. The upper control unit includes a processor, and the processor includes a plurality of processor cores. The upper control unit can perform the following processing: Isolation processing, isolating a portion of the plurality of processor cores from other processor cores of the plurality of processor cores; Allocating processing to allocate one or more communication tasks with the one or more lower control units to the isolated part of the processor cores; communication processing, sending the instruction information to the one or more lower control units by causing the isolated part of the processor cores to perform the one or more communication tasks with the one or more lower control units; and The release process releases the isolation of the isolated part of the processor cores.
6. A robot control system, characterized in that: have: More than 1 robot; One or more lower-level control units are respectively connected to the one or more robots and respectively control one of the one or more robots; and The upper control unit is connected to the one or more lower control units and sends command information for controlling the one or more robots to the one or more lower control units. The upper control unit includes: A processor, having multiple processor cores; Multitasking operating system; a plurality of tasks executed by at least one processor core of the plurality of processor cores on a multitasking operating system and including at least one communication task with the at least one lower control unit; an isolation script for isolating a portion of the plurality of processor cores from other processor cores of the plurality of processor cores; and A release script is used to describe the release of the isolation of the isolated part of the processor cores. The higher-level control unit may allocate the one or more communication tasks to the isolated part of the processor cores.
7. A recording medium, characterized in that A robot control program is recorded, wherein the robot control program is executed by a superior control unit in a robot system and controls one or more robots, wherein the robot system comprises: the one or more robots; one or more subordinate control units, each connected to the one or more robots and controlling one of the one or more robots; and the superior control unit, connected to the one or more subordinate control units and sending instruction information for controlling the one or more robots to the one or more subordinate control units. The upper control unit includes: A processor, having multiple processor cores; Multitasking operating systems; and a plurality of tasks, executed by at least one processor core of the plurality of processor cores on a multitasking operating system, and including at least one communication task with the at least one lower control unit, The robot control program includes: an isolation script for isolating a portion of the plurality of processor cores from other processor cores of the plurality of processor cores; and A release script is used to describe the release of the isolation of the isolated part of the processor cores. The isolation script describes how to allocate the one or more communication tasks to the isolated portion of the processor cores.
Citation Information
Patent Citations
gpos-linked real-time robot control system and real-time device control system using the same
JP2018535468A
Image forming apparatus
US20100272454A1
Highly parallel reconfigurable computer architecture for robotic computation having plural processor cells each having right and left ensembles of plural processors
US5361367A