Time synchronization method, robot controller, and robot system
The time synchronization method synchronizes processing units in a robot system by using a reference time from a third unit, addressing time discrepancies and enhancing robot controllability and task accuracy.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2022-03-16
- Publication Date
- 2026-03-10
AI Technical Summary
Time discrepancies between CPUs in an integrated control system for a work robot can lead to degraded drive characteristics, such as a work tool not starting or starting prematurely relative to the robot's posture.
A time synchronization method involving a synchronization command from a third processing unit to first and second processing units, with each unit correcting its time based on a reference time acquired from the third unit, using a clock circuit to ensure synchronization.
The method synchronizes the first and second processing units without time deviation, improving the robot's controllability and accuracy of tasks.
Smart Images

Figure 0007826760000001 
Figure 0007826760000002 
Figure 0007826760000003
Abstract
Description
[Technical Field]
[0001] The present invention relates to a time synchronization method, a robot controller, and a robot system. [Background technology]
[0002] For example, Patent Document 1 describes an integrated control system for a work robot that includes a CPU for controlling the robot, a CPU for controlling a first work tool, a CPU for controlling a second work tool, a common memory, and a system bus that integrates these CPUs and memories. [Prior art documents] [Patent documents]
[0003] [Patent Document 1] Japanese Patent Application Publication No. 9-323279 Summary of the Invention [Problem to be solved by the invention]
[0004] However, in such an integrated control system for a work robot, time discrepancies can occur between the CPUs. If time discrepancies occur between the CPUs, the robot's drive characteristics may be degraded, for example, such as the work tool not starting to drive even though the robot has assumed a predetermined posture, or conversely, the work tool starting to drive before the robot has assumed a predetermined posture. [Means for solving the problem]
[0005] A time synchronization method of the present invention is a method for synchronizing the time of a first processing unit and a second processing unit connected to the first processing unit via a first bus, the second processing unit being included in a robot controller that controls the driving of a robot, the method comprising: a synchronization command instruction step in which a third processing unit, connected to the second processing unit via a second bus and including a clock circuit, transmits a synchronization command to the first processing unit and the second processing unit, and holds the time when the synchronization command is transmitted as a reference time; a first processing unit time correction step in which the first processing unit acquires the reference time from the third processing unit in response to the synchronization command, and corrects the time of the first processing unit based on the reference time and the time required from when the synchronization command is received until acquisition of the reference time is completed; The method includes a second processing unit time correction step in which the second processing unit acquires the reference time from the third processing unit in response to the synchronization command, and corrects the time of the second processing unit based on the reference time and the time required from receiving the synchronization command to completing the acquisition of the reference time.
[0006] The robot controller of the present invention includes a first processing unit and A second processing unit; a third processing unit including a clock circuit; a first bus connecting the first processing unit and the second processing unit; a second bus connecting the second processing unit and the third processing unit; the third processing unit transmits a synchronization command to the first processing unit and the second processing unit, and holds a time when the synchronization command is transmitted as a reference time; the first processing unit acquires the reference time from the third processing unit in response to the synchronization command, and corrects the time of the first processing unit based on the reference time and the time required from when the synchronization command is received until acquisition of the reference time is completed; The second processing unit acquires the reference time from the third processing unit in response to the synchronization command, and corrects the time of the second processing unit based on the reference time and the time required from receiving the synchronization command to completing the acquisition of the reference time.
[0007] The robot system of the present invention comprises: a robot; a robot controller that controls the driving of the robot, The robot controller includes a first processing unit and A second processing unit; a third processing unit including a clock circuit; a first bus connecting the first processing unit and the second processing unit; a second bus connecting the second processing unit and the third processing unit; the third processing unit transmits a synchronization command to the first processing unit and the second processing unit, and holds a time when the synchronization command is transmitted as a reference time; the first processing unit acquires the reference time from the third processing unit in response to the synchronization command, and corrects the time of the first processing unit based on the reference time and the time required from when the synchronization command is received until acquisition of the reference time is completed; The second processing unit acquires the reference time from the third processing unit in response to the synchronization command, and corrects the time of the second processing unit based on the reference time and the time required from receiving the synchronization command to completing the acquisition of the reference time. [Brief explanation of the drawings]
[0008] [Figure 1] 1 is an overall configuration diagram of a robot system according to a preferred embodiment. [Figure 2] FIG. 1 is a block diagram of a robot controller. [Figure 3] 10 is a flowchart showing a time synchronization process. [Figure 4] 10 is a timing chart showing a time synchronization process. [Figure 5] 10 is a timing chart showing a time synchronization process. [Figure 6] FIG. 3 is a modified example of the block diagram of the robot controller of FIG. 2. DETAILED DESCRIPTION OF THE INVENTION
[0009] DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS A time synchronization method, a robot controller, and a robot system according to the present invention will be described in detail below based on preferred embodiments shown in the accompanying drawings.
[0010] Fig. 1 is a diagram showing the overall configuration of a robot system according to a preferred embodiment. Fig. 2 is a block diagram of a robot controller. Fig. 3 is a flowchart showing a time synchronization process. Figs. 4 and 5 are timing charts showing the time synchronization process. Fig. 6 is a modified example of the block diagram of the robot controller in Fig. 2.
[0011] The robot system 1 shown in FIG. 1 includes a robot 2 and a robot controller 3 that controls the driving of the robot 2.
[0012] -Robot 2- The robot 2 is a robot that performs tasks such as supplying, removing, transporting, and assembling precision equipment and the components that make up the equipment. However, the use of the robot 2 is not particularly limited. The robot 2 is a six-axis robot having six rotation axes. The robot 2 has a base 21 and a robot arm 22 that is rotatably connected to the base 21, and an end effector 23 is attached to the tip of the robot arm 22.
[0013] The robot arm 22 is a robotic arm in which multiple arms 221, 222, 223, 224, 225, and 226 are rotatably connected, and includes six joints J1 to J6. Of these, joints J2, J3, and J5 are bending joints, and joints J1, J4, and J6 are torsion joints. Each of the joints J1, J2, J3, J4, J5, and J6 includes a motor M as a drive source and an encoder E for detecting the amount of rotation of the motor M. A control point that indicates the position of the robot arm 22 and is the object of control is provided at the end of arm 226, which is the tip of the robot arm 22. By independently driving the motors M of the joints J1, J2, J3, J4, J5, and J6, the control point of the robot arm 22 can be moved along a desired trajectory.
[0014] In addition, an end effector 23 is connected to the arm 226. The end effector 23 is detachable from the arm 226, and an end effector suitable for the task that the robot 2 is to perform can be selected and attached.
[0015] Although the robot 2 has been described above, the configuration of the robot 2 is not particularly limited. For example, the robot 2 may be a SCARA robot (horizontal articulated robot), a dual-arm robot, etc. Furthermore, the robot 2 may be fixed to the floor or the like and immobile, or may be fixed to a mobile device such as an automated guided vehicle (AGV) and mobile.
[0016] -Robot Controller 3- The robot controller 3 is housed, for example, in a base 21. However, the location of the robot controller 3 is not particularly limited, and for example, it does not have to be housed in the robot 2. As shown in FIG. 2 , the robot controller 3 has a first processing unit 4, a second processing unit 5, a third processing unit 6, a first bus 7 connecting the first processing unit 4 and the second processing unit 5, and a second bus 8 connecting the second processing unit 5 and the third processing unit 6.
[0017] The first processing unit 4 is also connected to the host computer HPC and receives a program for the robot 2 from the host computer HPC. The first processing unit 4 has a program execution function for the robot controller 3, analyzes the received program, and acquires target position information for the robot arm 22 specified in the program. The target position information is information about a target position P1, which is a target point to which the control point of the robot arm 22 is to be moved, and is, for example, data indicating the coordinates of the target position P1. Alternatively, the information may be information such as the distance that the control point of the robot arm 22 moves from its current position to the target position P1.
[0018] The first processing unit 4 transmits the acquired target position information to the second processing unit 5 via the first bus 7. The second processing unit 5 has a function of generating the robot motion, i.e., the trajectories of each of the joints J1 to J6, based on the target position information received from the first processing unit 4. With this configuration, these functions can be assigned to separate processing units, allowing each function to be executed smoothly and improving the performance of the robot controller 3, particularly its real-time performance.
[0019] However, there are no particular limitations on the functions assigned to the first and second processing units 4 and 5. For example, contrary to this embodiment, the first processing unit 4 may have the function of generating robot motion, and the second processing unit 5 may have the function of executing the program of the robot controller 3. In this case, the second processing unit 5 may be connected to the host computer HPC.
[0020] The first processing unit 4 integrates the necessary functions on a single board, and has a printed wiring board 40, a first control unit 41, a main memory 42, and a system bus 43 connecting the first control unit 41 and the main memory 42.
[0021] The printed wiring board 40 includes an insulating substrate and wiring, and electrically connects the attached first control unit 41, first main memory 42, and first system bus 43. The first control unit 41 includes a processor 44, a cache memory 46, and a timer counter 47 (system timer) serving as a clock circuit. The first control unit 41 executes a program loaded in the main memory 42 to realize the functions of the first processing unit 4. The hardware configuration of the first control unit 41 is a system-on-chip (SoC). This allows for the first control unit 41 to be smaller, more energy-efficient, and less expensive. It also facilitates the manufacture of the first processing unit 4. However, the hardware configuration of the first control unit 41 is not particularly limited, and may be, for example, a configuration in which the processor 44 and cache memory 46 are integrated on a single board.
[0022] The first control unit 41 may be configured without the cache memory 46. The main memory 42 stores programs and data. The system bus 43 is a system bus that connects the processor 44 and the main memory 42. In this specification, the transmission path that connects the processor and transmits data is referred to as the system bus, regardless of whether the hardware configuration of the control unit 41 is a system-on-chip or not.
[0023] The processor 44 can read and execute programs stored in the main memory 42. The processor 44 uses the general-purpose OS Linux (registered trademark) as its OS (operating system). This facilitates program execution and external communication. The cache memory 46 temporarily stores programs and data read from the main memory 42. The cache memory 46 has a smaller storage capacity than the main memory 42 but can operate at high speed. The cache memory 46 is a multi-stage cache memory, and includes at least a primary cache memory and a secondary cache memory that is slower than the primary cache memory but has a larger storage capacity. It may also include a tertiary or higher cache memory. It may also be a single cache memory that does not have multiple stages.
[0024] The processor 44 may also be a multi-core processor having multiple cores. In this case, the execution of different application programs can be assigned to each core, allowing each application program to be executed smoothly, thereby improving the performance of the robot controller 3, particularly its real-time performance. A dedicated primary cache memory may also be provided for each core. In this case, a secondary cache memory may also be provided so that it can be shared by multiple cores. Sharing the secondary cache memory allows for effective use of the secondary cache memory. Similarly to the primary cache memory, a dedicated secondary cache memory may also be provided for each core. By dedicating a cache memory to each core, processing delays are reduced.
[0025] Furthermore, the timer counter 47 counts the number of pulses of the input signal to measure time.
[0026] According to the first processing unit 4 configured as described above, the first control unit 41 can occupy the main memory 42 and the system bus 43, thereby suppressing processing delays and improving the performance of the robot controller 3, particularly its real-time capabilities.
[0027] The second processing unit 5 has the same configuration as the first processing unit 4. Therefore, the following will provide a brief explanation of the second processing unit 5. The second processing unit 5 integrates the necessary functions on a single board, and has a printed wiring board 50, a second control unit 51, a main memory 52, and a system bus 53 connecting the second control unit 51 and the main memory 52.
[0028] The second control unit 51 is a system-on-chip and includes a processor 54, a cache memory 56, and a timer counter 57 (system timer) as a clock circuit. The processor 54 can read and execute programs stored in the main memory 52. With the second processing unit 5 configured in this way, the second control unit 51 can occupy the main memory 52 and the system bus 53, thereby suppressing processing delays and improving the performance of the robot controller 3, particularly its real-time performance.
[0029] Furthermore, the timer counter 57 counts the number of pulses of the input signal to measure time.
[0030] The third processing unit 6 integrates all the necessary functions on a single board, and includes a printed wiring board 60, a control unit 61, a main memory 62, and a system bus 63 connecting the control unit 61 and the main memory 62. The control unit 61 includes an element such as an FPGA (Field-Programmable Gate Array) equipped with a timer counter 67 (system timer) as a clock circuit. The control unit 61 also has functions such as generating a timing signal at predetermined time intervals, generating a synchronization command Ss along with the timing signal generation, and transmitting the generated synchronization command Ss to the first and second processing units 4 and 5.
[0031] The first bus 7 connects the first processing unit 4 and the second processing unit 5. The second bus 8 connects the second processing unit 5 and the third processing unit 6. The first and second buses 7 and 8 are transmission paths for transmitting data. This allows information to be transmitted between the first processing unit 4, the second processing unit 5, and the third processing unit 6. For example, the first processing unit 4 can write information to be shared with the second processing unit 5 to the main memory 52 via the first bus 7, and the second processing unit 5 can write information to be shared with the first processing unit 4 to the main memory 52 via the first bus 7. This allows the first processing unit 4 to obtain necessary information without accessing the main memory 52, thereby improving processing speed. The same applies to the second processing unit 5.
[0032] The standards for the first and second buses 7 and 8 are not particularly limited, and may be, for example, ISA, PCI, PCI Express (PCIe), AGP, etc. In the above, the first processing unit 4, the second processing unit 5, and the third processing unit 6 are each formed on a single board, but the processing units 4, 5, and 6 may also be provided on a printed wiring board 9 as a single board, as shown in FIG.
[0033] The circuit configuration of the robot controller 3 has been described above. Next, the software configuration of the robot controller 3, particularly the synchronization method between the first processing unit 4 and the second processing unit 5, will be described with reference to Figures 3 and 4. The horizontal axis in Figure 4 is the time axis, with time progressing from left to right. In Figure 4, the first period is period Q1, the next period is period Q2, and these periods are repeated periodically thereafter. The lengths of each period are equal. Note that the same processing is performed in each period, so the following description will focus on period Q1, and descriptions of the other periods will be omitted.
[0034] As shown in FIG. 3, the period Q1 includes a synchronization command instruction step S1, a first processing unit time correction step S2, and a second processing unit time correction step S3. In the synchronization command instruction step S1, the third processing unit 6 transmits a synchronization command Ss to the first processing unit 4 and the second processing unit 5, and stores the time at which the synchronization command Ss was transmitted as a reference time Tref. In the first processing unit time correction step S2, the first processing unit 4 acquires the reference time Tref from the third processing unit 6 in response to the synchronization command Ss, and corrects the time of the first processing unit 4 based on the reference time Tref and the time T1 required from receiving the synchronization command Ss to completing acquisition of the reference time Tref. In the second processing unit time correction step S3, the second processing unit 5 acquires the reference time Tref from the third processing unit 6 in response to the synchronization command Ss, and corrects the time of the second processing unit 5 based on the reference time Tref and the time T2 required from receiving the synchronization command Ss to completing acquisition of the reference time Tref. The times are system times. A detailed description is provided below.
[0035] <Synchronization command instruction step S1> 4, in period Q1, first, based on one timing signal St generated by the third processing unit 6, the third processing unit 6 simultaneously transmits a synchronization command Ss to the first processing unit 4 and the second processing unit 5. The third processing unit 6 also holds the time at which the synchronization command Ss is transmitted as a reference time Tref. Note that since the synchronization command Ss is an interrupt signal, the actual time at which the synchronization command Ss is transmitted and the actual time at which the first and second processing units 4 and 5 receive the synchronization command Ss are the same.
[0036] <First processing unit time correction step S2> When the first processing unit 4 receives the synchronization command Ss, it stores the time when the synchronization command Ss is received as a reception time Ts1, and accesses the third processing unit 6 to acquire the reference time Tref stored in the third processing unit 6. The first processing unit 4 also stores the time when acquisition of the reference time Tref is completed as an end time Te1. These times Ts1 and Te1 are each stored as count values of the timer counter 47.
[0037] Next, the first processing unit 4 calculates the time T1 from the reception time Ts1 to the end time Te1, i.e., the time T1 required from reception of the synchronization command Ss to completion of acquisition of the reference time Tref, based on the held reception time Ts1 and end time Te1. The time T1 can be easily calculated from the count number of the timer counter 47. However, the method of calculating the time T1 is not particularly limited.
[0038] Next, the first processing unit 4 corrects the time of the first processing unit 4 based on the acquired reference time Tref and the calculated time T1. Specifically, the first processing unit 4 corrects (updates) its own time to the time obtained by adding the time T1 to the reference time Tref, and stores the corrected time in the main memory 42. This synchronizes the first processing unit 4 with the third processing unit 6. Note that if the processor 44 is a multi-core processor, each core is driven based on the time stored in the main memory 42. This allows the cores to be easily synchronized.
[0039] <<Second processing unit time correction step S3>> When the second processing unit 5 receives the synchronization command Ss, it stores the time when the synchronization command Ss is received as a reception time Ts2, and accesses the third processing unit 6 to acquire the reference time Tref stored in the third processing unit 6. The second processing unit 5 also stores the time when acquisition of the reference time Tref is completed as an end time Te2. These times Ts2 and Te2 are stored as count values of the timer counter 57.
[0040] Next, based on the retained reception time Ts2 and end time Te2, the second processing unit 5 calculates the time T2 from the reception time Ts2 to the end time Te2, i.e., the time T2 required from reception of the synchronization command Ss to completion of acquisition of the reference time Tref. The time T2 can be easily calculated from the count number of the timer counter 57. However, the method of calculating the time T2 is not particularly limited.
[0041] Next, the second processing unit 5 corrects its own time based on the acquired reference time Tref and the calculated time T2. Specifically, it corrects (updates) its own time to the reference time Tref plus the time T2, and stores the result in the main memory 52. This synchronizes the second processing unit 5 with the third processing unit 6. If the processor 54 is multi-core, each core is driven based on the time stored in the main memory 52. This makes it easy to synchronize the cores.
[0042] In the example described above, the second processing unit time correction step S3 is performed after the first processing unit time correction step S2, but this is not limiting, and the second processing unit time correction step S3 may be performed before the first processing unit time correction step S2. The first party to access the third processing unit 6 has priority, and the second party to access the third processing unit 6 will wait to access the third processing unit 6 until the first party to access the third processing unit 6 has acquired the reference time Tref.
[0043] Through the above steps S1 to S3, the first processing unit 4 and the second processing unit 5 are synchronized with respect to the third processing unit 6. This method allows the first processing unit 4 and the second processing unit 5 to be easily synchronized. Synchronizing the first and second processing units 4 and 5 improves the controllability of the robot 2, allowing the robot 2 to perform tasks more accurately. Note that the first processing unit 4 and the second processing unit 5 access the third processing unit 6 via the second bus 8. Therefore, while one of the first processing unit 4 and the second processing unit 5 occupies the second bus 8, the other cannot access the third processing unit 6 and only accesses the third processing unit 6 after the occupancy ends. Therefore, the first processing unit 4 and the second processing unit 5 require different times to acquire the reference time Tref, resulting in a time discrepancy even if each of the first and second processing units 4 and 5 corrects its own time to the reference time Tref. However, since the correction is made using the times T1 and T2 required for the first and second processing units 4 and 5 to complete acquisition of the reference time Tref, respectively, the first and second processing units 4 and 5 can be synchronized without any time deviation.
[0044] Furthermore, according to this method, since the time of the third processing unit 6 is used as the reference, it is possible to synchronize the first processing unit 4 and the second processing unit 5 even if their operating cycles (number of clocks) are different. Furthermore, since the first and second processing units 4 and 5 do not require real-time clocks, the configurations of the first and second processing units 4 and 5 are simplified.
[0045] The cycles of the periods Q1 and Q2 are not particularly limited, but are set, for example, to be longer than the time Tm required to complete steps S1 to S3 and shorter than the maximum value of the timer counters 47 and 57, i.e., shorter than the time required for the counters to make one rotation. This ensures that the time corrections of the first and second processing units 4 and 5 can be performed for each period.
[0046] In the above-described method, the time correction of the first and second processing units 4 and 5 is performed for each period. However, time correction can also be performed at a different timing. For example, as shown in FIG. 5, if the time correction of the first processing unit 4 is to be performed at time Tx during period Q1, the first processing unit 4 first stores the count value of the timer counter 47 at time Tx. Next, the first processing unit 4 calculates the time T3 from the reception time Ts1 to time Tx based on the stored reception time Ts1 and time Tx. Next, the first processing unit 4 corrects the time of the first processing unit 4 based on these times Ts1 and Tx. Specifically, the first processing unit 4 corrects (updates) its own time to the time Ts1 plus time T3, and stores the result in the main memory 42. This allows the time of the first processing unit 4 to be corrected even during a period.
[0047] The above has described the robot system 1. As described above, the time synchronization method used in such a robot system 1 is a method for synchronizing the time of the first processing unit 4 and the second processing unit 5 connected to the first processing unit 4 via the first bus 7, which are included in the robot controller 3 that controls the driving of the robot 2, and includes a synchronization command instruction step S1 in which the third processing unit 6, which is connected to the second processing unit 5 via the second bus 8 and includes a timer counter 67 that is a clock circuit, transmits a synchronization command Ss to the first processing unit 4 and the second processing unit 5 and holds the time when the synchronization command Ss is transmitted as a reference time Tref; In response to the synchronization command Ss, the first processing unit 4 acquires the reference time Tref from the third processing unit 6, and corrects the time of the first processing unit 4 based on the reference time Tref and the time T1 required from when the synchronization command Ss is received until acquisition of the reference time Tref is completed (a first processing unit time correction step S2), and in response to the synchronization command Ss, the second processing unit 5 acquires the reference time Tref from the third processing unit 6, and corrects the time of the second processing unit 5 based on the reference time Tref and the time T2 required from when the synchronization command Ss is received until acquisition of the reference time Tref is completed (a second processing unit time correction step S3). According to this method, the first processing unit 4 and the second processing unit 5 can be easily synchronized.
[0048] As described above, the robot controller 3 provided in the robot system 1 has a first processing unit 4, a second processing unit 5, a third processing unit 6 equipped with a timer counter 67 which is a clock circuit, a first bus 7 connecting the first processing unit 4 and the second processing unit 5, and a second bus 8 connecting the second processing unit 5 and the third processing unit 6. The third processing unit 6 transmits a synchronization command Ss to the first processing unit 4 and the second processing unit 5, and stores the time at which the synchronization command Ss is transmitted as a reference time Tref. The first processing unit 4 acquires the reference time Tref from the third processing unit 6 in response to the synchronization command Ss, and corrects the time of the first processing unit 4 based on the reference time Tref and the time T1 required from receiving the synchronization command Ss to completing acquisition of the reference time Tref. The second processing unit 5 acquires the reference time Tref from the third processing unit 6 in response to the synchronization command Ss, and corrects the time of the second processing unit 5 based on the reference time Tref and the time T2 required from receiving the synchronization command Ss to completing acquisition of the reference time Tref. With this configuration, the first processing unit 4 and the second processing unit 5 can be easily synchronized.
[0049] As described above, the first processing unit 4 and the second processing unit 5 each have a timer counter 47, 57, which is a clock circuit, thereby making it possible to easily calculate the times T1 and T2.
[0050] As described above, the first processing unit 4 includes the first control unit 41, and the second processing unit 5 includes the second control unit 51, and the first control unit 41 and the second control unit 51 are each a system-on-chip. This allows the first and second control units 41 and 51 to be made smaller, consume less power, and are less expensive. Furthermore, the first and second control units 41 and 51 can be manufactured more easily.
[0051] As described above, one of the first processing unit 4 and the second processing unit 5 has the program execution function of the robot controller 3, and the other has the function of generating robot motion. This allows the program execution function and the robot motion generation function to be assigned to separate processing units, allowing each function to be executed smoothly and improving the performance of the robot controller 3, particularly its real-time performance.
[0052] As described above, the robot system 1 includes the robot 2 and the robot controller 3 that controls the driving of the robot 2. The robot controller 3 also has a first processing unit 4, a second processing unit 5, a third processing unit 6 equipped with a timer counter 67 which is a clock circuit, a first bus 7 connecting the first processing unit 4 and the second processing unit 5, and a second bus 8 connecting the second processing unit 5 and the third processing unit 6. The third processing unit 6 transmits a synchronization command Ss to the first processing unit 4 and the second processing unit 5, and stores the time at which the synchronization command Ss is transmitted as a reference time Tref. The first processing unit 4 acquires the reference time Tref from the third processing unit 6 in response to the synchronization command Ss, and corrects the time of the first processing unit 4 based on the reference time Tref and the time T1 required from receiving the synchronization command Ss to completing acquisition of the reference time Tref. The second processing unit 5 acquires the reference time Tref from the third processing unit 6 in response to the synchronization command Ss, and corrects the time of the second processing unit 5 based on the reference time Tref and the time T2 required from receiving the synchronization command Ss to completing acquisition of the reference time Tref. According to this configuration, the first processing section 4 and the second processing section 5 can be easily synchronized, the controllability of the robot 2 is improved, and more accurate work can be performed.
[0053] While the time synchronization method, robot controller, and robot system of the present invention have been described above based on the illustrated embodiments, the present invention is not limited to these, and the configuration of each part can be replaced with any configuration having a similar function. Furthermore, any other components may be added to the present invention. [Explanation of symbols]
[0054] 1...Robot system, 2...Robot, 21...Base, 22...Robot arm, 221...Arm, 222...Arm, 223...Arm, 224...Arm, 225...Arm, 226...Arm, 23...End effector, 3...Robot controller, 4...First processing unit, 40...Printed wiring board, 41...First control unit, 42...Main memory, 43...System bus, 44...Processor, 46...Cache memory, 47...Timer counter, 5...Second processing unit, 50...Printed wiring board, 51...Second control unit, 52...Main memory, 53...System bus, 54...Processor, 56...Cache memory, 57...Timer counter, 6...Third processing unit, 60...Print Circuit board, 61...control unit, 62...main memory, 63...system bus, 67...timer counter, 7...first bus, 8...second bus, 9...printed circuit board, E...encoder, HPC...host computer, J1...joint, J2...joint, J3...joint, J4...joint, J5...joint, J6...joint, M...motor, Q1...period, Q2...period, S1...synchronization command instruction step, S2...first processing unit time correction step, S3...second processing unit time correction step, Ss...synchronization command, St...timing signal, T1...time, T2...time, T3...time, Tm...time, Te1...end time, Te2...end time, Tm...time, Tref...reference time, Ts1...reception time, Ts2...reception time, Tx...time
Claims
1. A method for synchronizing the time of a first processing unit and a second processing unit connected to the first processing unit via a first bus, the method comprising: a synchronization command instruction step in which a third processing unit, connected to the second processing unit via a second bus and including a clock circuit, transmits a synchronization command to the first processing unit and the second processing unit, and holds the time when the synchronization command is transmitted as a reference time; a first processing unit time correction step in which the first processing unit acquires the reference time from the third processing unit in response to the synchronization command, and corrects the time of the first processing unit so that the time at which acquisition of the reference time is completed is the time obtained by adding the time required from receipt of the synchronization command to completion of acquisition of the reference time; a second processing unit time correction step in which the second processing unit acquires the reference time from the third processing unit in response to the synchronization command, and corrects the time of the second processing unit so that the time at which acquisition of the reference time is completed is the time obtained by adding the time required from receiving the synchronization command to completing acquisition of the reference time.
2. a first processing unit; A second processing unit; a third processing unit including a clock circuit; a first bus connecting the first processing unit and the second processing unit; a second bus connecting the second processing unit and the third processing unit; the third processing unit transmits a synchronization command to the first processing unit and the second processing unit, and holds a time when the synchronization command is transmitted as a reference time; the first processing unit acquires the reference time from the third processing unit in response to the synchronization command, and corrects the time of the first processing unit so that the time at which acquisition of the reference time is completed is the time obtained by adding a time required from receipt of the synchronization command to completion of acquisition of the reference time to the reference time; The second processing unit acquires the reference time from the third processing unit in response to the synchronization command, and corrects the time of the second processing unit so that the time at which acquisition of the reference time is completed is the time obtained by adding the time required from receiving the synchronization command to completing acquisition of the reference time to the reference time.
3. The robot controller according to claim 2 , wherein the first processing unit and the second processing unit each have a clock circuit.
4. the first processing unit includes a first control unit, the second processing unit includes a second control unit, The robot controller according to claim 2 or 3, wherein the first control unit and the second control unit are each a system-on-chip.
5. 5. A robot controller according to claim 2, wherein one of the first processing unit and the second processing unit has a program execution function for the robot controller, and the other has a function for generating robot motion.
6. Robots and a robot controller that controls the driving of the robot, The robot controller includes a first processing unit and A second processing unit; a third processing unit including a clock circuit; a first bus connecting the first processing unit and the second processing unit; a second bus connecting the second processing unit and the third processing unit; the third processing unit transmits a synchronization command to the first processing unit and the second processing unit, and holds a time when the synchronization command is transmitted as a reference time; the first processing unit acquires the reference time from the third processing unit in response to the synchronization command, and corrects the time of the first processing unit so that the time at which acquisition of the reference time is completed is the time obtained by adding a time required from receipt of the synchronization command to completion of acquisition of the reference time to the reference time; The second processing unit acquires the reference time from the third processing unit in response to the synchronization command, and corrects the time of the second processing unit so that the time at which acquisition of the reference time is completed is the time obtained by adding the time required from receiving the synchronization command to completing acquisition of the reference time to the reference time.
Citation Information
Patent Citations
Integration control system of working robot
JP1997323279A
Robot, module selection device and control method of robot
JP2006150562A
Synchronization system for at least two robot arms and its control method
JP2006312237A
Object detection parameter, object recognition parameter and method and robot for adjusting object detection parameter and object recognition parameter
JP2014116007A