Device control device, control system, and control method
The device control system synchronizes command execution timings across multiple devices by adjusting command phases and cycles, addressing synchronization challenges in diverse manufacturing environments.
Patent Information
- Application Number
- JP2022009403
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2022-01-25
- Publication Date
- 2025-01-17
- Estimated Expiration
- 2042-01-25
AI Technical Summary
Conventional methods struggle to synchronize the operations of multiple devices, particularly those from different manufacturers, due to differences in command execution timings, making it difficult to achieve precise and synchronized operations in complex production environments.
A device control system that includes a communication unit, command generation unit, and correction units to calculate and adjust command execution times and phases, ensuring synchronized operations across devices by correcting command execution timings.
The system effectively synchronizes operations of multiple devices, enabling precise and efficient production processes even when devices have different internal operations or settings, allowing for complex and accurate production.
Smart Images

Figure 0007617050000001 
Figure 0007617050000002 
Figure 0007617050000003
Abstract
Description
[Technical field]
[0001] The present invention relates to a control device, a control system, and a control method for industrial equipment. [Background technology]
[0002] Customer demands are becoming more diverse in every industry, and in the manufacturing industry, there is an urgent need to shorten development cycles and respond to mass production and the manufacture of complex products. For this reason, when controlling equipment such as industrial robots, there is a demand to control a large number of devices simultaneously in order to improve productivity. When controlling multiple devices at the same time, synchronization between the devices to be controlled is necessary. For example, to manufacture a single product using multiple robots, the timing of each robot's movements must be synchronized with high precision.
[0003] An example of a conventional technique for synchronizing multiple devices is described in Patent Document 1. The control system described in Patent Document 1 performs synchronization control by correcting the phase difference and period difference of timing signals generated by each control device that constitutes a master unit and a slave unit connected by a communication path. [Prior art documents] [Patent documents]
[0004] [Patent Document 1] JP 2007-219642 A Summary of the Invention [Problem to be solved by the invention]
[0005] As described above, when controlling multiple devices such as industrial robots, synchronized control between the multiple devices is necessary. In particular, when multiple types of devices, such as devices of different models or devices manufactured by different manufacturers, are used, synchronization between such multiple devices is necessary.
[0006] In controlling multiple devices, the controllers and devices that control the devices each execute the control commands they receive at different times. Therefore, even if the same control command is input to the controllers and devices, the timing at which the commands are executed (command execution timing) differs from one another, resulting in a discrepancy in operation. Therefore, in controlling multiple devices, a control is required that absorbs the difference in command execution timing and causes each device to execute a synchronized operation. For example, by adjusting the cycle and phase at which the timing signals of the devices are generated and synchronizing the command execution timing of each device, the synchronized operations can be executed.
[0007] However, when controlling multiple types of devices, such as devices from different manufacturers, it is not always possible to adjust the timing signals and command execution timing of all devices and controllers as expected. For this reason, with conventional technologies such as the technology described in Patent Document 1, if there is such a device as a control target whose internal operation or settings cannot be easily changed, it is difficult to execute synchronized operations between the devices.
[0008] An object of the present invention is to provide an appliance control device, an appliance control system, and an appliance control method capable of synchronizing the operations of one or more appliances. [Means for solving the problem]
[0009] The control device for an appliance according to the present invention includes a communication unit capable of communicating with one or more appliances, a command generation unit that generates commands for the appliance, a command execution time difference acquisition unit that acquires a command execution time difference which is the time difference between when the command is transmitted from the communication unit to the appliance and when the appliance executes the command, a period calculation unit that uses the command execution time difference to calculate a command execution period which is the period during which the appliance executes the command, a phase calculation unit that uses the command execution time difference to calculate a phase which is a reference point of the command execution period of the appliance, and a command correction unit that calculates a command execution timing which is the timing at which the appliance executes the command from the command execution period and the phase, and corrects the command by determining a value of the command at the next command execution timing.
[0010] The device control system according to the present invention is characterized by comprising a control device according to the present invention, and one or more devices controlled by the control device and capable of communicating with the communication unit provided in the control device.
[0011] The method for controlling an appliance according to the present invention is executed by a control device having a communication unit capable of communicating with one or more appliances, and includes a command generation step of generating a command for the appliance, a command execution time difference acquisition step of acquiring a command execution time difference which is the time difference between when the command is transmitted from the communication unit to the appliance and when the appliance executes the command, a period calculation step of calculating a command execution period which is the period during which the appliance executes the command using the command execution time difference, a phase calculation step of calculating a phase which is a reference point of the command execution period of the appliance using the command execution time difference, and a command correction step of calculating a command execution timing which is the timing at which the appliance executes the command from the command execution period and the phase, and correcting the command by obtaining a value of the command at the next command execution timing. Effect of the Invention
[0012] According to the present invention, it is possible to provide an appliance control device, an appliance control system, and an appliance control method capable of synchronizing the operations of one or more appliances. [Brief description of the drawings]
[0013] [Figure 1] FIG. 2 is a functional block diagram of a control device according to a first embodiment of the present invention. [Diagram 2] FIG. 11 is a diagram illustrating an example of an operation flow of a command generating unit. [Diagram 3] FIG. 11 is a diagram illustrating an example of an operation flow of a command correction unit. [Figure 4] FIG. 2 is a time chart showing the command execution period T and phase α of the robot calculated by a period calculation unit and a phase calculation unit. [Diagram 5] 11A and 11B are diagrams illustrating an example of a trajectory command corrected by a command correction unit and a trajectory command corrected by the command correction unit. [Figure 6] FIG. 2 is a time chart showing elements used when calculating a command execution time difference Δt, a command execution period T, and a phase α. [Figure 7] FIG. 11 is a diagram illustrating an example of an operation flow of a communication unit. [Figure 8] FIG. 11 is a functional block diagram of a control device according to a second embodiment of the present invention. [Figure 9] FIG. 11 is a functional block diagram of a control device according to a third embodiment of the present invention. [Figure 10] FIG. 11 is a functional block diagram of a control device according to a fourth embodiment of the present invention. [Figure 11] FIG. 4 is a functional block diagram of a calculation value update unit. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0014] The device control device, control system, and control method of the present invention can absorb the difference in timing when multiple devices (e.g., multiple types of devices with different models or manufacturers) execute commands, and can control the operation of multiple devices in a synchronized manner. In addition, when there is only one device to be controlled, the trajectory command is corrected taking into account the difference between the timing of sending the command and the timing of executing the command, thereby adjusting the operation of the device and eliminating the discrepancy between the ideal operation and the actual operation.
[0015] According to the present invention, even if there is equipment in a production line or industrial system that controls one or more devices and whose internal operations or settings cannot be changed and are difficult to adjust, it is possible to synchronize and adjust the operation of the equipment, thereby realizing complex production processes and highly accurate and efficient production.
[0016] Hereinafter, an apparatus control device, an apparatus control system, and an apparatus control method according to an embodiment of the present invention will be described with reference to the drawings. In the present invention, the apparatus to be controlled includes devices such as robots (e.g., industrial robots), autonomous vehicles, and belt conveyors. In the following embodiment, a plurality of robots are exemplified as the apparatus to be controlled. However, the present invention can also be applied to the case where there is only one apparatus to be controlled (a robot in the following embodiment).
[0017] In the drawings used in this specification, the same or corresponding components are denoted by the same reference numerals, and repeated description of these components may be omitted. EXAMPLES
[0018] A device control device, a device control system, and a device control method according to a first embodiment of the present invention will be described with reference to FIGS. 1 to 7. FIG.
[0019] Fig. 1 is a functional block diagram of a control device 101 according to this embodiment. The control device 101 according to this embodiment includes, as its main components, a command generation unit 102, a command correction unit 103, a period calculation unit 104, a phase calculation unit 105, a command execution time difference acquisition unit 106, and communication units 107a to 107c, and controls a plurality of robots 109a to 109c via robot controllers 108a to 108c. Fig. 1 shows, as an example, a case in which the control device 101 controls three robots 109a to 109c.
[0020] The robot controllers 108a to 108c are connected to the control device 101 and to the robots 109a to 109c, respectively, and control the robots 109a to 109c according to commands from the control device 101. The robot controllers 108a to 108c transmit commands from the control device 101 to the robots 109a to 109c, respectively.
[0021] The robots 109a to 109c are devices to be controlled by the control device 101, and periodically execute commands transmitted from the control device 101 via the robot controllers 108a to 108c, respectively. For example, the robots 109a to 109c drive their own joints (axles) in accordance with commands from the control device 101. In the following description, the robots 109a, 109b, and 109c may also be referred to as robot A, robot B, and robot C, respectively.
[0022] The command generating unit 102 generates commands for the robots 109a to 109c. The command generating unit 102 generates commands based on the actions to be executed by the robots 109a to 109c. The actions to be executed by the robots 109a to 109c are, for example, actions instructed by a user, input from outside, and stored in the control device 101.
[0023] The command correction unit 103 corrects the command generated by the command generation unit 102 in accordance with the cycles and phases of the robots 109a to 109c. The cycles and phases of the robots 109a to 109c refer to the cycles and phases at which the robots 109a to 109c execute the commands, respectively.
[0024] The cycle calculation unit 104 calculates a command execution cycle T, which is a cycle in which each of the robots 109a to 109c executes a command. The command execution cycle T is calculated using a time difference (a command execution time difference Δt, described later) between when the control device 101 transmits a command to each of the robots 109a to 109c and when each of the robots 109a to 109c executes the command.
[0025] The phase calculation unit 105 calculates a phase α, which is a reference point (starting point) of the command execution period T of each of the robots 109a to 109c. A command execution time difference Δt, which will be described later, is used to calculate the phase α. The phase α determines the start time point at which the robots 109a to 109c start executing a command.
[0026] The command execution time difference acquisition unit 106 acquires a command execution time difference Δt, which is a time difference between when the control device 101 transmits a command to the robots 109a to 109c and when each of the robots 109a to 109c executes the command.
[0027] The communication units 107a to 107c can communicate with the robots 109a to 109c via the robot controllers 108a to 108c. The communication units 107a to 107c are connected to the robot controllers 108a to 108c, respectively, and communicate with the robot controllers 108a to 108c to transmit commands to the robots 109a to 109c and receive information from the robots 109a to 109c. The communication units 107a to 107c can also transmit and receive commands and information to any external device other than the robots 109a to 109c.
[0028] The number of communication units 107a to 107c is determined according to the number of devices or apparatuses with which the control device 101 communicates. Moreover, the number of robot controllers 108a to 108c is determined according to the number of robots that the control device 101 controls.
[0029] The device control system according to this embodiment includes a control device 101, robot controllers 108a to 108c, and robots 109a to 109c. The robots 109a to 109c can communicate with communication units 107a to 107c of the control device 101 via the robot controllers 108a to 108c, and are controlled by the control device 101.
[0030] 2 is a diagram showing an example of an operation flow of the command generating unit 102. The operation of the command generating unit 102 will be described with reference to FIG.
[0031] In S201, the command generating unit 102 selects a target robot and an axis (joint) of the robot for which a command (trajectory command) is to be generated. The command generating unit 102 can select any robot from the robots 109a to 109c, and can select any axis of the selected robot. Hereinafter, the target robot for which a command is to be generated (the robot selected in S201) is referred to as the "target robot."
[0032] In S202, the command generating unit 102 generates a trajectory command for the selected axis of the robot at the current time in accordance with the next operation to be executed by the target robot.
[0033] In S203, the command generating unit 102 checks whether the generation of the trajectory command is completed for all axes of the target robot. If the generation of the trajectory command is not completed for all axes of the target robot, the process of S204 is executed, and if the generation of the trajectory command is completed, the process of S205 is executed.
[0034] In S204, the command generating unit 102 selects an axis for generating a trajectory command for the target robot next. After executing the process of S204, the process returns to S202.
[0035] In S205, the command generating unit 102 checks whether generation of trajectory commands has been completed for all of the robots 109a to 109c. If generation of trajectory commands has not been completed for all of the robots 109a to 109c, the process proceeds to S206.
[0036] In S206, the command generating unit 102 selects a target robot (next target robot) for which a trajectory command is to be generated next. After executing the process of S206, the process returns to S202.
[0037] In S205, if the command generating unit 102 determines that the generation of trajectory commands for all the robots 109a to 109c is complete, the operation ends.
[0038] 3 is a diagram showing an example of an operation flow of the command correction unit 103. The operation of the command correction unit 103 will be described with reference to FIG.
[0039] In S301, the command correction unit 103 selects a target robot and an axis (joint) of the robot for which a command (trajectory command) is to be corrected. The command correction unit 103 can select any robot from the robots 109a to 109c, and can select any axis of the selected robot. Hereinafter, the target robot for which a command is to be corrected (the robot selected in S301) is referred to as the "target robot."
[0040] In S302, the command correction unit 103 acquires the command execution period T and phase α for the target robot. The command execution period T and phase α are calculated by the period calculation unit 104 and the phase calculation unit 105, respectively.
[0041] In S303, the command correction unit 103 corrects the trajectory command in accordance with the timing at which the target robot executes the command (command execution timing). For example, the command correction unit 103 interpolates the value of the trajectory command for time with respect to time to obtain the value of the trajectory command at the next command execution timing. Then, the command correction unit 103 corrects the trajectory command by setting the obtained value of the trajectory command at the next command execution timing as the trajectory command (corrected trajectory command).
[0042] The next command execution timing of the target robot can be obtained from the command execution cycle T and phase α of the target robot. Therefore, when the command execution cycle T, which is the cycle for executing commands, and the phase α, which is the reference point (starting point) for executing commands, are known for the target robot, the command correction unit 103 can calculate the next command execution timing.
[0043] In S304, the command correction unit 103 checks whether the correction of the trajectory command has been completed for all axes of the target robot. If the correction of the trajectory command has not been completed for all axes of the target robot, the process of S305 is executed, and if the correction has been completed, the process of S306 is executed.
[0044] In S305, the command correction unit 103 selects an axis of the target robot for which the trajectory command is to be corrected next. After executing the process of S305, the process returns to S303.
[0045] In S306, the command correcting unit 103 checks whether or not the correction of the trajectory command has been completed for all of the robots 109a to 109c. If the correction of the trajectory command has not been completed for all of the robots 109a to 109c, the process of S307 is executed.
[0046] In S307, the command correcting unit 103 selects a robot (next target robot) for which the trajectory command is to be corrected next. After executing the process of S307, the process returns to S302.
[0047] In S306, if the command correcting unit 103 determines that the correction of the trajectory commands for all the robots 109a to 109c has been completed, the operation is terminated.
[0048] 4 is a diagram showing a time chart showing the command execution period T and phase α of the robots 109a to 109c calculated by the period calculation unit 104 and the phase calculation unit 105. The command execution period T and the phase α will be described with reference to FIG.
[0049] 4 shows the timing (command transmission timing ts) at which the control device 101 transmits commands to the robots 109a to 109c, and the timing (command execution timing te) at which the robots 109a to 109c (robots A to C) each execute the command. The control device 101 transmits commands to each of the robots 109a to 109c at the same timing (command transmission timing ts). The robot 109a executes the command at command execution timing teA, the robot 109b executes the command at command execution timing teB, and the robot 109c executes the command at command execution timing teC.
[0050] The time difference (te-ts) from when a command is transmitted from the communication units 107a-107c to the robots 109a-109c, i.e., from when the control device 101 transmits a command, until when each of the robots 109a-109c executes the command, is called a command execution time difference Δt. In Fig. 4, the command execution time difference Δt of the robot 109a is indicated as ΔtA (=teA-ts), the command execution time difference Δt of the robot 109b is indicated as ΔtB (=teB-ts), and the command execution time difference Δt of the robot 109c is indicated as ΔtC (=teC-ts).
[0051] 4 shows, as an example, the command execution periods Tb and Tc of the robots 109b and 109c (robots B and C) and the phases αa and αb of the robots 109a and 109b (robots A and B). The command execution period T is the time interval during which the robots 109a to 109c execute two consecutive commands. The phase α is the reference point (starting point) of the command execution period T of the robots 109a to 109c.
[0052] As shown in FIG. 4, even if the control device 101 transmits trajectory commands to each of the robots 109a to 109c at the same timing (command transmission timing ts), the robots 109a to 109c execute the received commands at different timings (command execution timings teA to teC).
[0053] The robots 109a to 109c receive commands from the control device 101 and execute the trajectory commands at regular intervals. This regular interval (time interval) is the command execution cycle T.
[0054] In addition, the robots 109a to 109c may have different command execution timings te even if they have the same command execution period T. This is because the starting points of the command execution periods T of the robots 109a to 109c are different from each other. The starting points of the command execution periods T are the phase α.
[0055] The command correction unit 103 calculates the next command execution timing te for each of the robots 109a to 109c using the command execution period T and the phase α, and corrects the trajectory command generated by the command generation unit 102 to a trajectory command to be executed at the calculated next command execution timing te. The command correction unit 103 can calculate the next command execution timing te from the command execution period T, which is the time interval for executing the command, and the phase α, which is the starting point of the command execution period T.
[0056] The period calculation unit 104 and the phase calculation unit 105 acquire the command execution period T and phase α of each of the robots 109a to 109c (robots A to C) during the calibration period of the control device 101. The command correction unit 103 corrects the command generated by the command generation unit 102 during the robot control period in which the control device 101 controls the robots 109a to 109c.
[0057] Fig. 5 is a diagram showing an example of a trajectory command corrected by the command correction unit 103 and a trajectory command corrected by the command correction unit 103. The process of correcting a command by the command correction unit 103 will be described with reference to Fig. 5. The command correction unit 103 corrects the command in accordance with the next command execution timing of the target robot in the process of S303 in Fig. 3.
[0058] The table on the left of Fig. 5 shows an example of a trajectory command corrected by the command correction unit 103. This trajectory command is a command generated by the command generation unit 102, and is expressed, for example, by a value indicating the position of an axis with respect to time (time from reference time t0). As an example, Fig. 5 shows the angular positions (angles from a predetermined reference position) at each time for axis 1 and axis 2 of robot 109a (robot A) and axis 10 of robot 109c (robot C). For example, the table on the left of Fig. 5 shows an example of a trajectory command in which axis 1 of robot A is at a position of 20 degrees at time 10 ms and at a position of 10 degrees at time 20 ms.
[0059] The table on the right of Fig. 5 shows an example of a trajectory command corrected by the command correction unit 103. Fig. 5 shows, as an example, the angular positions of axis 1, axis 2, and axis 10 of robot A at time 12 ms. For example, the table on the right of Fig. 5 shows an example of a trajectory command corrected so that axis 1 of robot A is at a position of 18 degrees at time 12 ms. Note that the time 12 ms is an example of the next command execution timing te, and is obtained as the sum of phase α and command execution period T (=4 ms+8 ms) when, for example, phase α is 4 ms from reference time t0 and command execution period T is 8 ms.
[0060] The command correction unit 103 corrects the command generated by the command generation unit 102, for example, by interpolating the value of the command generated by the command generation unit 102 with respect to time. As described above, the command correction unit 103 calculates the next command execution timing te by using the command execution period T and the phase α. From the next command execution timing te, the command correction unit 103 can determine which two times (times 10 ms and 20 ms in the example of FIG. 5) of the commands generated by the command generation unit 102 should be interpolated, and at which time (time 12 ms in the example of FIG. 5) a command (angular position) should be obtained. That is, for a command of an operation to be executed next, the command correction unit 103 derives the command execution timing te of the command by using the command execution period T and the phase α, obtains between which two times the command falls from the command execution timing te, and corrects the command by interpolating the commands of the obtained two times with respect to time.
[0061] The command correction unit 103 can correct the command by interpolating the command value with respect to time using any interpolation method such as linear interpolation or spline interpolation, and obtain a corrected command.
[0062] As already described, even if the robots 109a to 109c have the same command transmission timing ts, their command execution timings teA to teC are different from one another. It is generally difficult to synchronize (match) the command execution timings teA to teC of the robots 109a to 109c.
[0063] In this embodiment, the command is corrected according to the next command execution timing teA to teC, so that the operation of the robots 109a to 109c is synchronized, rather than the command execution timings teA to teC being synchronized. Therefore, even if the command execution timings teA to teC of the robots 109a to 109c are different from each other, the robots 109a to 109c can execute the same operation and synchronize their operations. This command correction is based on the command execution timings teA to teC of the robots 109a to 109c, so the difference between the command execution timings teA to teC of the robots 109a to 109c is taken into consideration, and it is a correction that can synchronize the operation of the robots 109a to 109c.
[0064] Fig. 6 is a diagram showing a time chart showing elements used when calculating the command execution time difference Δt, the command execution period T, and the phase α. A calculation method for the command execution time difference Δt, the command execution period T, and the phase α will be described with reference to Fig. 6. The command execution time difference Δt is calculated by the command execution time difference acquisition unit 106, the command execution period T is calculated by the period calculation unit 104, and the phase α is calculated by the phase calculation unit 105.
[0065] 6 shows, as an example, the command execution period Ta, phase αa, command execution timing teA, and command execution time difference ΔtA for the robot 109a (robot A). The control device 101 periodically transmits commands to the robots 109a to 109c. The time difference between when the control device 101 transmits a command for the first time and when the robots 109a to 109c execute the command is represented as command execution time difference Δt_1, and the time difference between when the control device 101 transmits a command for the second time and when the robots 109a to 109c execute the command is represented as command execution time difference Δt_2. In FIG. 6, the command execution time difference Δt_1 and the command execution time difference Δt_2 for the robot 109a are represented as command execution time difference ΔtA_1 and command execution time difference ΔtA_2, respectively.
[0066] The command execution time difference acquisition unit 106 acquires the time from when the control device 101 transmits a command to the robots 109a to 109c until the robots 109a to 109c each executes the command. Specifically, the command execution time difference acquisition unit 106 receives and records the time when the control device 101 transmits a command (command transmission timing ts) and the time when the robots 109a to 109c execute the command (command execution timing te) from the communication units 107a to 107c. Then, the command execution time difference acquisition unit 106 calculates the command execution time difference Δt (=te-ts) from the difference between these times, and outputs the command execution time difference Δt to the period calculation unit 104 and the phase calculation unit 105.
[0067] Furthermore, FIG. 6 shows the period (command transmission period command_period) at which the control device 101 transmits commands to the robots 109a to 109c, and the difference (command transmission time difference command_diff) between a predetermined reference time t0 and the command transmission timing ts of the control device 101.
[0068] The period calculation unit 104 calculates the command execution period T of each of the robots 109a to 109c, for example, using the command transmission period command_period and the command execution time difference Δt_1 and command execution time difference Δt_2 according to the following formula (1).
[0069] Command execution period T= command_period -(Δt_1%(command_period×(Δt_1 / command_period))) +Δt_2 (1) Note that equation (1) is an example when variables are expressed as integers (when performing an operation with integer type variables), where the operator " / " represents a division that truncates the quotient to an integer, and the operator "%" represents an operation to find the remainder of the division.
[0070] Equation (1) is constructed taking into consideration the case where the command execution period T differs by more than double the command transmission period command_period used for sampling, and uses the remainder obtained by dividing the command execution time difference Δt_1 by the command transmission period command_period. Note that the control device 101 transmits the second command in accordance with the command execution period T after the command execution timing te is returned. Note that in equation (1), if the denominator of the operation expressed by the operators " / " and "%" becomes 0, this operation is deleted or the denominator is replaced with 1 to avoid the occurrence of an error.
[0071] The phase calculation unit 105 calculates the phase α of each of the robots 109a to 109c using, for example, the command transmission time difference command_diff, the command execution time difference Δt_1, and the command execution period T according to the following formula (2).
[0072] Phase α = (command_diff + Δt_1)%T (2) Like equation (1), equation (2) is an example in which variables are expressed as integers, and the operator "%" represents an operation to find the remainder of division.
[0073] The phase α is calculated using the command execution period T. The phase calculation unit 105 may input the command execution period T calculated by the period calculation unit 104 to calculate the phase α. In the case where the denominator of the operation represented by the operator "%" in the formula (2) is 0, this operation is deleted or the denominator is replaced with 1 for calculation.
[0074] The corrected trajectory command (trajectory command at time 12 ms) shown in the table on the right of Fig. 5 is an example in which command_diff is 0 ms and command_period is 10 ms, and the command execution timing te after the time (command_diff+command_period) is the sum of the phase α (4 ms) and the command execution period T (8 ms). That is, the command execution timing te after the time 10 ms is the time 12 ms. Therefore, the next command execution timing te is the timing (12 ms) 2 ms after the timing (10 ms) when the control device 101 sends a command to the robot 109a (robot A).
[0075] Fig. 7 is a diagram showing an example of an operation flow of the communication units 107a to 107c shown in Fig. 1. The operation of the communication units 107a to 107c will be described with reference to Fig. 7.
[0076] The communication units 107a to 107c are capable of communicating with the robots 109a to 109c via the robot controllers 108a to 108c, and have a function of transmitting commands to the robots 109a to 109c from the control device 101 to the robot controllers 108a to 108c, and a function of receiving information such as the responses of the robots 109a to 109c to the commands from the robot controllers 108a to 108c.
[0077] In S701, the communication units 107a to 107c judge whether or not the communication is a command transmission from the control device 101. If it is a command transmission, the process of S702 is executed. If it is not a command transmission but a response is received, the process of S704 is executed.
[0078] In S702, the communication units 107a to 107c generate packets based on the command to be transmitted.
[0079] In S703, the communication units 107a to 107c transmit the packets generated in S702.
[0080] In S704, the communication units 107a to 107c acquire packets received from the robots 109a to 109c via the robot controllers 108a to 108c.
[0081] In S705, the communication units 107a to 107c analyze the packets acquired in S704, and output the information acquired by analyzing the packets to the command execution time difference acquisition unit 106. The command execution time difference acquisition unit 106 can obtain the command execution time difference Δt using the information acquired by the communication units 107a to 107c from the robots 109a to 109c.
[0082] When obtaining the command execution time difference Δt, the command execution time difference obtaining unit 106 can obtain the time (time instant) at which the robots 109a to 109c executed the commands by any method such as the method shown below.
[0083] The time when the robots 109a to 109c execute a command can be obtained, for example, by a method of obtaining a message from the robots 109a to 109c without the movement of the robots 109a to 109c. This method is a method in which, during a calibration period of the control device 101, the communication units 107a to 107c transmit a command to the robots 109a to 109c and receive a response (message) from the robots 109a to 109c that the command has been recognized, and this is regarded as the time when the robots 109a to 109c execute a command. When the robots 109a to 109c receive a command from the communication units 107a to 107c, they transmit a response (message) to the communication units 107a to 107c that the command has been recognized.
[0084] The time when the robots 109a to 109c execute a command can be obtained by, for example, a method in which the robots 109a to 109c return a message of their current status before performing an action. In this method, before performing an action, the robots 109a to 109c transmit any information, such as information that the action is about to be performed or the current time, as their current status, and the time when the communication units 107a to 107c receive a message including such information is regarded as the time when the robots 109a to 109c execute a command.
[0085] The time at which the robots 109a to 109c execute a command can also be obtained by, for example, having the robot controllers 108a to 108c store the time difference between when the robots 109a to 109c receive a command and when they execute the command, or by having the robot controllers 108a to 108c record the time at which the robots 109a to 109c execute a command. The command execution time difference acquisition unit 106 can obtain the time at which the robots 109a to 109c execute a command by acquiring the time difference stored by the robot controllers 108a to 108c or the recorded command execution time from the robot controllers 108a to 108c.
[0086] Furthermore, the command correction unit 103 may calculate the command execution timing te one command execution period T later, or may calculate the command execution timing te multiple command execution periods T later. That is, the command correction unit 103 calculates the command execution timing te one or multiple command execution periods T later, and can correct the command by finding the value of the command at the calculated command execution timing te. Note that the robot controllers 108a to 108c preferably include a buffer capable of storing multiple commands so that they can receive commands at multiple command execution timings te.
[0087] As described above, the control device 101 according to this embodiment can absorb the difference in command execution timing te between the multiple robots 109a to 109c having different command execution timings te, and synchronize the operations of the respective robots 109a to 109c.
[0088] The control device 101 according to this embodiment can also be applied to a case where the number of robots to be controlled is one. In the case where the number of robots to be controlled is one, the deviation between the ideal operation and the actual operation can be eliminated by correcting the trajectory command in consideration of the command execution time difference Δt, which is the difference between the command transmission timing ts and the command execution timing te. EXAMPLES
[0089] Second Embodiment A control device 101 according to a second embodiment of the present invention will be described with reference to FIG.
[0090] 8 is a functional block diagram of the control device 101 according to the present embodiment. The control device 101 according to the present embodiment has a similar configuration to the control device 101 according to the first embodiment (FIG. 1), but differs from the control device 101 according to the first embodiment in that it includes a sensor communication unit 802 and a sensor value analysis unit 803. The following mainly describes the control device 101 according to the present embodiment and the differences from the control device 101 according to the first embodiment.
[0091] The robots 109a to 109c, which are devices to be controlled by the control device 101, are provided with a sensor 801. The sensor 801 is installed on each axis of the robots 109a to 109c, and can be configured with any sensor that records the movement of each axis.
[0092] The sensor communication unit 802 is connected to the sensor 801 provided on the robots 109a to 109c. The sensor communication unit 802 communicates with the sensor 801 and acquires the sensor value recorded by the sensor 801.
[0093] The sensor value analysis unit 803 acquires the sensor values from the sensor communication unit 802, analyzes and finds the time (time instant) when each of the robots 109a to 109c executed a command from the sensor values, and outputs the found time to the command execution time difference acquisition unit 106. For example, the sensor value analysis unit 803 can find the time instant when the axis of the robots 109a to 109c moved from the sensor values, and regard this time instant as the time when the robots 109a to 109c executed a command.
[0094] The control device 101 according to this embodiment can more accurately acquire the time (time) at which the robots 109a to 109c execute a command even when the robots 109a to 109c do not return the command execution time or when the method of acquiring the command execution time differs depending on the robots 109a to 109c. EXAMPLES
[0095] Third Embodiment With reference to FIG. 9, a control device 101 according to a third embodiment of the present invention will be described.
[0096] 9 is a functional block diagram of the control device 101 according to the present embodiment. The control device 101 according to the present embodiment has a similar configuration to the control device 101 according to the first embodiment (FIG. 1), but differs from the control device 101 according to the first embodiment in that it includes a camera communication unit 902 and an image analysis unit 903. The following mainly describes the control device 101 according to the present embodiment and the differences from the control device 101 according to the first embodiment.
[0097] The robots 109a to 109c, which are devices to be controlled by the control device 101, are photographed by a camera 901. The camera 901 is installed so as to photograph the robots 109a to 109c. The camera 901 can be any camera that records the movements of the respective axes of the robots 109a to 109c, for example, a camera with a high frame rate of 1000 fps or the like. The device control system according to this embodiment can include the camera 901.
[0098] The camera communication unit 902 is connected to the camera 901. The camera communication unit 902 communicates with the camera 901 and acquires information about images captured by the camera 901.
[0099] The image analysis unit 903 acquires image information from the camera communication unit 902, analyzes and finds the time (time instant) when each of the robots 109a to 109c executed a command from this image information, and outputs the found time to the command execution time difference acquisition unit 106. For example, the image analysis unit 903 can find the time instant when the axis of the robots 109a to 109c moved from the image information, and regard this time instant as the time when the robots 109a to 109c executed a command.
[0100] The control device 101 according to this embodiment can obtain the time (time) at which the robots 109a to 109c execute a command more accurately even if the robots 109a to 109c do not return the command execution time or if the method of obtaining the command execution time differs depending on the robots 109a to 109c. Also, since there is no need to attach a sensor to the robots 109a to 109c to obtain the time at which the axis moves, the robots 109a to 109c can be easily replaced or repaired. EXAMPLES
[0101] A control device 101 according to a fourth embodiment of the present invention will be described with reference to FIGS.
[0102] Fig. 10 is a functional block diagram of the control device 101 according to this embodiment. The control device 101 according to this embodiment has a similar configuration to the control device 101 according to the first embodiment (Fig. 1), but differs from the control device 101 according to the first embodiment in that it includes a calculated value update unit 1001. The following mainly describes the control device 101 according to this embodiment and the control device 101 according to the first embodiment.
[0103] 11 is a functional block diagram of the calculated value updating unit 1001. The calculated value updating unit 1001 includes a period holding unit 1101, a phase holding unit 1102, a counter 1103, and a median calculation unit 1104.
[0104] The cycle holding unit 1101 holds the command execution cycle T of each of the robots 109a to 109c calculated by the cycle calculation unit 104. The cycle calculation unit 104 calculates the command execution cycle T every time the control device 101 transmits a command. The cycle holding unit 1101 holds the command execution cycle T calculated multiple times by the cycle calculation unit 104 in this manner, i.e., multiple command execution cycles T.
[0105] The phase holding unit 1102 holds the phase α of each of the robots 109a to 109c calculated by the phase calculation unit 105. The phase calculation unit 105 calculates the phase α every time the control device 101 transmits a command. The phase holding unit 1102 holds the phase α calculated multiple times by the phase calculation unit 105 in this manner, i.e., multiple phases α.
[0106] The counter 1103 records the number of times the cycle calculation unit 104 calculates the command execution cycle T and the number of times the phase calculation unit 105 calculates the phase α. That is, the counter 1103 records the number of command execution cycles T held by the cycle holding unit 1101 and the number of phases α held by the phase holding unit 1102. When the command execution cycles T and the number of phases α reach a predetermined fixed number, that is, when the control device 101 communicates with the robots 109a to 109c a predetermined fixed number of times, the counter 1103 transmits a notification to that effect to the median calculation unit 1104 and clears the recorded number of command execution cycles T and phases α. The counter 1103 transmits the above notification to the median calculation unit 1104 every time the command execution cycles T and the number of phases α reach a certain number, that is, every time the control device 101 communicates with the robots 109a to 109c a certain number of times.
[0107] Upon receiving a notification from counter 1103, median calculation unit 1104 calculates the command execution period T and the median of the phase α. That is, upon receiving a notification from counter 1103, median calculation unit 1104 receives from period holding unit 1101 the multiple command execution periods T held by period holding unit 1101 and receives from phase holding unit 1102 the multiple phases α held by period holding unit 1102, and calculates the median of the multiple command execution periods T and the median of the multiple phases α. Then, median calculation unit 1104 outputs the calculated median of the command execution periods T and the median of the phase α to command correction unit 103.
[0108] The median calculation unit 1104 may calculate the median of either the command execution period T or the phase α instead of calculating the median of both, and output the median to the command correction unit 103. In addition, the median calculation unit 1104 may calculate the average value of the command execution period T and the phase α instead of calculating the median value of the command execution period T and the phase α, and output the average value to the command correction unit 103.
[0109] In the control device 101 according to this embodiment, the calculated value update unit 1001 calculates the command execution period T and the median (or average) of the phase α every time the control device 101 communicates with the robots 109a to 109c a predetermined number of times. The command correction unit 103 corrects the command generated by the command generation unit 102 using the command execution period T and the phase α received from the calculated value update unit 1001. In other words, the command correction unit 103 periodically updates the command correction value by updating the command execution period T and the phase α used for correction every time the control device 101 communicates with the robots 109a to 109c a predetermined number of times.
[0110] As described above, the control device 101 according to this embodiment updates the command correction every certain number of communications, so that even if a time lag occurs in the timers of the robots 109a to 109c (or the robot controllers 108a to 108c), the robots 109a to 109c can continuously perform ideal operations.
[0111] The present invention is not limited to the above-described embodiments, and various modifications are possible. For example, the above-described embodiments have been described in detail to clearly explain the present invention, and the present invention is not necessarily limited to an embodiment having all of the configurations described. It is also possible to replace a part of the configuration of one embodiment with the configuration of another embodiment. It is also possible to add the configuration of another embodiment to the configuration of one embodiment. It is also possible to delete a part of the configuration of each embodiment, or to add or replace another configuration. [Explanation of symbols]
[0112] 101...control device, 102...command generation unit, 103...command correction unit, 104...period calculation unit, 105...phase calculation unit, 106...command execution time difference acquisition unit, 107a to 107c...communication units, 108a to 108c...robot controller, 109a to 109c...robot, 801...sensor, 802...sensor communication unit, 803...sensor value analysis unit, 901...camera, 902...camera communication unit, 903...image analysis unit, 1001...calculated value update unit, 1101...period storage hold unit, 1102...phase hold unit, 1103...counter, 1104...median calculation unit, t0...reference time, ts...command transmission timing, te, teA to teC...command execution timing, T, Ta, Tb, Tc...command execution period, Δt, Δt_1, Δt_2, ΔtA, ΔtA_1, ΔtA_2, ΔtB, ΔtC...command execution time difference, α, αa, αb...phase, command_period...command transmission period, command_diff...command transmission time difference.
Claims
1. A communication unit capable of communicating with one or more devices; A command generating unit that generates a command for the device; a command execution time difference acquisition unit that acquires a command execution time difference that is a time difference between when the command is transmitted from the communication unit to the device and when the device executes the command; a period calculation unit that calculates a command execution period, which is a period during which the device executes the command, using the command execution time difference; a phase calculation unit that calculates a phase that is a reference point of the command execution cycle of the device by using the command execution time difference; a command correction unit that calculates a command execution timing, which is a timing at which the device executes the command, from the command execution cycle and the phase, and corrects the command by obtaining a command value at the next command execution timing; A control device for an appliance, comprising:
2. The cycle calculation unit calculates the command execution cycle by using a command transmission cycle, which is a cycle for transmitting the command to the device, and the command execution time difference. The device according to claim 1 .
3. the phase calculation unit calculates the phase using a command transmission time difference, which is a difference between a predetermined reference time and a time when a command is transmitted, the command execution time difference, and the command execution period. The device according to claim 1 .
4. the command execution time difference acquisition unit, when acquiring the command execution time difference, regards a time when the message is received from the device as a time when the device executed the command; The device according to claim 1 .
5. the command execution time difference acquisition unit, when acquiring the command execution time difference, acquires from the device a time difference between when the device receives the command and when the device executes the command, thereby determining a time at which the device executed the command. The device according to claim 1 .
6. the command execution time difference acquisition unit, when acquiring the command execution time difference, acquires, from the device, a time at which the device executed the command, thereby determining the time at which the device executed the command. The device according to claim 1 .
7. the command execution time difference acquisition unit acquires a value recorded by a sensor installed in the device when acquiring the command execution time difference, thereby determining the time when the device executed the command. The device according to claim 1 .
8. the command execution time difference acquisition unit, when acquiring the command execution time difference, acquires information on an image captured by a camera that captures the device, thereby determining the time at which the device executed the command; The device according to claim 1 .
9. The command correction unit updates the command execution period and the phase every time the control device communicates with the device a predetermined number of times. The device according to claim 1 .
10. the command correction unit calculates the command execution timing a plurality of command execution cycles later, obtains a command value at the command execution timing, and corrects the command. The device according to claim 1 .
11. The control device according to claim 1 ; One or more devices controlled by the control device and capable of communicating with the communication unit included in the control device; An equipment control system comprising:
12. The method is executed by a control device having a communication unit capable of communicating with one or more devices, A command generating step of generating a command for the device; a command execution time difference acquisition step of acquiring a command execution time difference which is a time difference between when the command is transmitted from the communication unit to the device and when the device executes the command; a period calculation step of calculating a command execution period, which is a period during which the device executes the command, using the command execution time difference; a phase calculation step of calculating a phase that is a reference point of the command execution cycle of the device using the command execution time difference; a command execution timing, which is a timing at which the device executes the command, is calculated from the command execution cycle and the phase, and a command correction step of correcting the command by determining a value of the command at the next command execution timing; A method for controlling an apparatus, comprising:
Citation Information
Patent Citations
Robot cooperative control system
JP2003145462A
Control system
JP2005269879A
Control system
JP2007219642A
Control system, record system, information processor and method, program, and recording medium
JP2007276052A
Slave device and program
JP2010140372A