Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP7617050B2 - Device control device, control system, and control method - Google Patents
[go: Go Back, main page]

JP7617050B2 - Device control device, control system, and control method - Google Patents

Device control device, control system, and control method Download PDF

Info

Publication number
JP7617050B2
JP7617050B2 JP2022009403A JP2022009403A JP7617050B2 JP 7617050 B2 JP7617050 B2 JP 7617050B2 JP 2022009403 A JP2022009403 A JP 2022009403A JP 2022009403 A JP2022009403 A JP 2022009403A JP 7617050 B2 JP7617050 B2 JP 7617050B2
Authority
JP
Japan
Prior art keywords
command
command execution
time difference
robots
phase
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2022009403A
Other languages
Japanese (ja)
Other versions
JP2023108339A (en
Inventor
勇気 田中
学 佐々本
俊晴 菅原
輝昭 酒田
光太郎 島村
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2022009403A priority Critical patent/JP7617050B2/en
Priority to PCT/JP2023/000249 priority patent/WO2023145410A1/en
Publication of JP2023108339A publication Critical patent/JP2023108339A/en
Application granted granted Critical
Publication of JP7617050B2 publication Critical patent/JP7617050B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Program-control systems
    • G05B19/02Program-control systems electric
    • G05B19/04Program control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Program control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Program-control systems
    • G05B19/02Program-control systems electric
    • G05B19/04Program control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Program-control systems
    • G05B19/02Program-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of program data in numerical form
    • G05B19/41Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of program data in numerical form characterised by interpolation, e.g. the computation of intermediate points between programmed end points to define the path to be followed and the rate of travel along that path
    • G05B19/4103Digital interpolation
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Program-control systems
    • G05B19/02Program-control systems electric
    • G05B19/418Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM]

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Manufacturing & Machinery (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Programmable Controllers (AREA)
  • Manipulator (AREA)

Description

本発明は、産業に用いられる機器の制御装置、制御システム、及び制御方法に関する。 The present invention relates to a control device, a control system, and a control method for industrial equipment.

各業界で顧客要求が多様化し、製造業においては開発サイクルの短期化とともに、大量生産や複雑な製品製造への対応が急務となっている。このため、産業用ロボットなどの機器の制御においては、生産性向上のために、同時に多数の機器を制御することが求められている。同時に複数の機器を制御する際には、制御対象である機器間での同期が必要である。例えば、複数のロボットで1つの製品を作るためには、各ロボットが動作タイミングを高精度に合わせる必要がある。 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 manufacturing 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 simultaneously, synchronization between the devices being controlled is necessary. For example, to use multiple robots to manufacture a single product, the timing of each robot's movements must be synchronized with high precision.

複数の機器を同期させる従来の技術の例は、特許文献1に記載されている。特許文献1に記載された制御システムは、通信路で接続されマスタユニットとスレーブユニットを構成する各制御装置で生成するタイミング信号の位相差及び周期差を補正し、同期制御を行う。 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 is connected by a communication path and constitutes a master unit and a slave unit.

特開2007-219642号公報JP 2007-219642 A

上述したように、産業用ロボットなどの複数の機器を制御する際には、複数の機器間で同期した制御が必要である。特に、異なる型の機器や異なるメーカで製造された機器などの、複数種類の機器が用いられている場合には、このような複数の機器間で同期が必要である。 As mentioned above, when controlling multiple devices such as industrial robots, synchronized control between the multiple devices is necessary. In particular, when multiple types of devices are used, such as devices of different models or devices manufactured by different manufacturers, synchronization between such multiple devices is necessary.

複数の機器の制御において、機器を制御するコントローラや機器のそれぞれが、受信した制御指令を実行するタイミングは、互いに異なっている。このため、コントローラや機器は、同じ制御指令を入力しても、指令を実行するタイミング(指令実行タイミング)が互いに異なり、動作にずれが生じる。そこで、複数の機器の制御においては、指令実行タイミングの差を吸収して、各機器で同期した動作を実行させる制御が必要である。例えば、機器のタイミング信号を発生する周期と位相を調整して、各機器で指令実行タイミングを同期させることで、同期した動作を実行させることができる。 When controlling multiple devices, the controllers and devices that control the devices each execute the control commands they receive at different times. For this reason, even if the same control command is input to the controllers and devices, the timing at which the command is executed (command execution timing) differs from one another, resulting in discrepancies in operation. Therefore, when controlling multiple devices, control is required that absorbs the difference in command execution timing and causes each device to execute synchronized operations. For example, by adjusting the cycle and phase that generates the timing signals for the devices and synchronizing the command execution timing of each device, synchronized operations can be executed.

しかし、例えば互いに異なるメーカの機器などの複数種類の機器を制御する場合には、必ずしも全ての機器とコントローラのタイミング信号や指令実行タイミングを期待通りに調整できるわけではない。このため、特許文献1に記載された技術などの従来の技術では、内部動作や設定の変更が容易に行えないこのような機器が制御対象として存在していると、機器間で同期した動作を実行させることが困難である。 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 such devices, whose internal operations and settings cannot be easily changed, are present as control targets, it is difficult to execute synchronized operations between the devices.

本発明の目的は、1つ以上の機器の動作を同期させることができる、機器の制御装置、機器の制御システム、及び機器の制御方法を提供することである。 The object of the present invention is to provide an equipment control device, an equipment control system, and an equipment control method that can synchronize the operation of one or more equipment.

本発明による、機器の制御装置は、1つ以上の機器と通信可能な通信部と、前記機器に対する指令を生成する指令生成部と、前記通信部から前記機器へ前記指令を送信してから前記機器が前記指令を実行するまでの時間差である指令実行時間差を取得する指令実行時間差取得部と、前記指令実行時間差を用いて、前記機器が前記指令を実行する周期である指令実行周期を算出する周期計算部と、前記指令実行時間差を用いて、前記機器の前記指令実行周期の基準点である位相を算出する位相計算部と、前記指令実行周期と前記位相から、前記機器が前記指令を実行するタイミングである指令実行タイミングを算出し、次の前記指令実行タイミングでの指令の値を求めることで、前記指令を補正する指令補正部とを備える。 The device for controlling 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 that 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 that 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 that is a reference point for the command execution period of the appliance, and a command correction unit that calculates a command execution timing that 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 command value at the next command execution timing.

本発明による、機器の制御システムは、本発明による制御装置と、前記制御装置に制御され、前記制御装置が備える前記通信部と通信可能な1つ以上の機器とを備えることを特徴とする。 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 that are controlled by the control device and can communicate with the communication unit provided in the control device.

本発明による、機器の制御方法は、1つ以上の機器と通信可能な通信部を備える制御装置に実行され、前記機器に対する指令を生成する指令生成ステップと、前記通信部から前記機器へ前記指令を送信してから前記機器が前記指令を実行するまでの時間差である指令実行時間差を取得する指令実行時間差取得ステップと、前記指令実行時間差を用いて、前記機器が前記指令を実行する周期である指令実行周期を算出する周期計算ステップと、前記指令実行時間差を用いて、前記機器の前記指令実行周期の基準点である位相を算出する位相計算ステップと、前記指令実行周期と前記位相から、前記機器が前記指令を実行するタイミングである指令実行タイミングを算出し、次の前記指令実行タイミングでの指令の値を求めることで、前記指令を補正する指令補正ステップとを有する。 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 for generating a command for the appliance, a command execution time difference acquisition step for 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 for 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 for 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 for 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 determining a command value at the next command execution timing.

本発明によると、1つ以上の機器の動作を同期させることができる、機器の制御装置、機器の制御システム、及び機器の制御方法を提供することができる。 According to the present invention, it is possible to provide an equipment control device, an equipment control system, and an equipment control method that can synchronize the operation of one or more equipment.

本発明の実施例1による制御装置の機能ブロック図である。FIG. 2 is a functional block diagram of a control device according to the first embodiment of the present invention. 指令生成部の動作フローの例を示す図である。FIG. 11 is a diagram illustrating an example of an operation flow of a command generating unit. 指令補正部の動作フローの例を示す図である。FIG. 11 is a diagram illustrating an example of an operation flow of a command correction unit. 周期計算部と位相計算部が計算するロボットの指令実行周期Tと位相αを示すタイムチャートを示す図である。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. 指令補正部により補正される軌道指令と、指令補正部が補正した軌道指令の一例を示す図である。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. 指令実行時間差Δtと指令実行周期Tと位相αを計算する際に用いる要素を示すタイムチャートを示す図である。FIG. 11 is a time chart showing elements used when calculating a command execution time difference Δt, a command execution period T, and a phase α. 通信部の動作フローの例を示す図である。FIG. 11 is a diagram illustrating an example of an operation flow of a communication unit. 本発明の実施例2による制御装置の機能ブロック図である。FIG. 11 is a functional block diagram of a control device according to a second embodiment of the present invention. 本発明の実施例3による制御装置の機能ブロック図である。FIG. 11 is a functional block diagram of a control device according to a third embodiment of the present invention. 本発明の実施例4による制御装置の機能ブロック図である。FIG. 11 is a functional block diagram of a control device according to a fourth embodiment of the present invention. 算出値更新部の機能ブロック図である。FIG. 4 is a functional block diagram of a calculation value update unit.

本発明による、機器の制御装置、制御システム、及び制御方法では、複数の機器(例えば、型や製造メーカが互いに異なる複数種類の機器)が指令を実行するタイミングの差異を吸収することができ、複数の機器の動作を同期して制御することができる。また、制御対象の機器が1台の場合では、指令を送信するタイミングと指令を実行するタイミングの差を加味して軌道指令を補正することにより機器の動作を調整して、理想の動作と実際の動作の乖離を無くすことができる。 The device, control system, and control method for equipment according to the present invention can absorb differences in the timing at which multiple equipment (e.g., multiple types of equipment of different models or manufacturers) execute commands, and can control the operation of multiple equipment in a synchronized manner. Furthermore, when there is only one equipment to be controlled, the operation of the equipment can be adjusted by correcting the trajectory command taking into account the difference between the timing at which the command is sent and the timing at which the command is executed, thereby eliminating the discrepancy between ideal operation and actual operation.

本発明によると、例えば1つ以上の機器を制御する生産ラインや産業システムにおいて、内部動作や設定を変更できず調整が困難な機器が存在していても、機器の動作を同期させたり調整したりすることができ、複雑な生産工程や、高精度かつ高効率な生産を実現させることができる。 According to the present invention, even if there is equipment in a production line or industrial system that controls one or more devices, 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.

以下、本発明の実施例による、機器の制御装置、機器の制御システム、及び機器の制御方法を、図面を用いて説明する。本発明において、制御対象の機器には、ロボット(例えば、産業用ロボット)、自律走行車両、及びベルトコンベアなどの装置が含まれる。以下の実施例では、制御対象の機器として、複数のロボットを例示する。但し、本発明は、制御対象の機器(以下の実施例ではロボット)が1つの場合にも適用することができる。 The following describes an equipment control device, an equipment control system, and an equipment control method according to an embodiment of the present invention, with reference to the drawings. In the present invention, the equipment to be controlled includes devices such as robots (e.g., industrial robots), autonomous vehicles, and conveyor belts. In the following embodiment, multiple robots are exemplified as the equipment to be controlled. However, the present invention can also be applied to the case where there is only one equipment to be controlled (a robot in the following embodiment).

なお、本明細書で用いる図面において、同一のまたは対応する構成要素には同一の符号を付け、これらの構成要素については繰り返しの説明を省略する場合がある。 In the drawings used in this specification, the same or corresponding components are designated by the same reference numerals, and repeated explanations of these components may be omitted.

本発明の実施例1による、機器の制御装置、機器の制御システム、及び機器の制御方法を、図1から図7を参照して説明する。 The device control device, device control system, and device control method according to the first embodiment of the present invention will be described with reference to Figures 1 to 7.

図1は、本実施例による制御装置101の機能ブロック図である。本実施例による制御装置101は、主要な構成として、指令生成部102と、指令補正部103と、周期計算部104と、位相計算部105と、指令実行時間差取得部106と、通信部107a~107cを備え、ロボットコントローラ108a~108cを介して複数のロボット109a~109cを制御する。図1には、一例として、制御装置101が、3台のロボット109a~109cを制御する例を示している。 Figure 1 is a functional block diagram of a control device 101 according to this embodiment. The control device 101 according to this embodiment mainly comprises 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 multiple robots 109a to 109c via robot controllers 108a to 108c. Figure 1 shows an example in which the control device 101 controls three robots 109a to 109c.

ロボットコントローラ108a~108cは、制御装置101に接続されるとともに、それぞれロボット109a~109cに接続され、制御装置101からの指令に従ってロボット109a~109cを制御する。ロボットコントローラ108a~108cは、制御装置101からの指令を、それぞれロボット109a~109cに送信する。 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.

ロボット109a~109cは、制御装置101の制御対象の機器であり、それぞれロボットコントローラ108a~108cを介して制御装置101から送信された指令を周期的に実行する。例えば、ロボット109a~109cは、制御装置101からの指令に従って、それぞれロボット109a~109cが備える関節(軸)を駆動させる。なお、以下の説明では、ロボット109a、ロボット109b、及びロボット109cを、それぞれロボットA、ロボットB、及びロボットCと呼ぶこともある。 The robots 109a to 109c are devices controlled by the control device 101, and periodically execute commands sent from the control device 101 via the robot controllers 108a to 108c, respectively. For example, the robots 109a to 109c drive their own joints (axes) according to 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.

指令生成部102は、ロボット109a~109cに対する指令を生成する。指令生成部102は、ロボット109a~109cが実行すべき動作に基づいて、指令を生成する。ロボット109a~109cが実行すべき動作は、例えば、ユーザに指示された動作であり、外部から入力され、制御装置101に保存されている。 The command generation unit 102 generates commands for the robots 109a to 109c. The command generation unit 102 generates commands based on the operations to be executed by the robots 109a to 109c. The operations to be executed by the robots 109a to 109c are, for example, operations instructed by a user, which are input from outside and stored in the control device 101.

指令補正部103は、指令生成部102が生成した指令を、ロボット109a~109cの周期と位相に応じて補正する。ロボット109a~109cの周期と位相とは、ロボット109a~109cがそれぞれ指令を実行する周期と位相のことである。 The command correction unit 103 corrects the command generated by the command generation unit 102 according to the cycle and phase of the robots 109a to 109c. The cycle and phase of the robots 109a to 109c refer to the cycle and phase at which the robots 109a to 109c each executes a command.

周期計算部104は、各ロボット109a~109cが指令を実行する周期である指令実行周期Tを算出する。指令実行周期Tの算出には、制御装置101が各ロボット109a~109cへ指令を送信してから各ロボット109a~109cが指令を実行するまでの時間差(後述する指令実行時間差Δt)を用いる。 The period calculation unit 104 calculates the command execution period T, which is the period during which each robot 109a to 109c executes a command. The command execution period T is calculated using the time difference between when the control device 101 sends a command to each robot 109a to 109c and when each robot 109a to 109c executes the command (the command execution time difference Δt, described later).

位相計算部105は、各ロボット109a~109cの指令実行周期Tの基準点(始点)である位相αを算出する。位相αの算出には、後述する指令実行時間差Δtを用いる。位相αは、ロボット109a~109cが指令を実行する開始時点を定める。 The phase calculation unit 105 calculates the phase α, which is the reference point (starting point) of the command execution period T of each of the robots 109a to 109c. The 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 commands.

指令実行時間差取得部106は、制御装置101がロボット109a~109cへ指令を送信してから各ロボット109a~109cが指令を実行するまでの時間差である指令実行時間差Δtを取得する。 The command execution time difference acquisition unit 106 acquires the command execution time difference Δt, which is the time difference between when the control device 101 sends a command to the robots 109a to 109c and when each of the robots 109a to 109c executes the command.

通信部107a~107cは、ロボットコントローラ108a~108cを介してロボット109a~109cと通信可能である。通信部107a~107cは、それぞれロボットコントローラ108a~108cに接続され、ロボットコントローラ108a~108cと通信することで、ロボット109a~109cへ指令を送信したり、ロボット109a~109cから情報を受信したりする。通信部107a~107cは、ロボット109a~109c以外の任意の外部装置に対しても、指令や情報を送受信することができる。 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 send commands to the robots 109a to 109c and receive information from the robots 109a to 109c. The communication units 107a to 107c can also send and receive commands and information to any external device other than the robots 109a to 109c.

通信部107a~107cの数は、制御装置101が通信する機器や装置の数に応じて定められる。また、ロボットコントローラ108a~108cの数は、制御装置101が制御するロボットの数に応じて定められる。 The number of communication units 107a to 107c is determined according to the number of devices and equipment with which the control device 101 communicates. In addition, the number of robot controllers 108a to 108c is determined according to the number of robots controlled by the control device 101.

本実施例による、機器の制御システムは、制御装置101と、ロボットコントローラ108a~108cと、ロボット109a~109cを備える。ロボット109a~109cは、ロボットコントローラ108a~108cを介して、制御装置101の通信部107a~107cと通信可能であり、制御装置101に制御される。 The device control system according to this embodiment includes a control device 101, robot controllers 108a-108c, and robots 109a-109c. The robots 109a-109c can communicate with the communication units 107a-107c of the control device 101 via the robot controllers 108a-108c, and are controlled by the control device 101.

図2は、指令生成部102の動作フローの例を示す図である。図2を用いて、指令生成部102の動作を説明する。 Figure 2 is a diagram showing an example of the operation flow of the command generation unit 102. The operation of the command generation unit 102 will be explained using Figure 2.

S201で、指令生成部102は、指令(軌道指令)を生成する対象のロボットとロボットの軸(関節)を選択する。指令生成部102は、ロボット109a~109cのうち、任意のロボットを選択することができ、選択したロボットの任意の軸を選択することができる。以下では、指令を生成する対象のロボット(S201で選択したロボット)を「対象ロボット」と呼ぶ。 In S201, the command generation 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 generation unit 102 can select any robot from robots 109a to 109c, and can select any axis of the selected robot. In the following, the target robot for which a command is to be generated (the robot selected in S201) is referred to as the "target robot".

S202で、指令生成部102は、選択したロボットの軸について、対象ロボットの次に実行すべき動作に従い、現在時刻における軸の軌道指令を生成する。 At S202, the command generation 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.

S203で、指令生成部102は、対象ロボットの全ての軸について、軌道指令の生成が完了したか確認する。対象ロボットの全ての軸について軌道指令の生成が完了していない場合には、S204の処理を実行し、完了している場合には、S205の処理を実行する。 In S203, the command generation unit 102 checks whether generation of trajectory commands has been completed for all axes of the target robot. If generation of trajectory commands has not been completed for all axes of the target robot, the process of S204 is executed, and if generation of trajectory commands has been completed, the process of S205 is executed.

S204で、指令生成部102は、対象ロボットの、次に軌道指令を生成する軸を選択する。S204の処理を実行したら、S202の処理に戻る。 In S204, the command generation unit 102 selects the axis for which the next trajectory command is to be generated for the target robot. After executing the process of S204, the process returns to S202.

S205で、指令生成部102は、全てのロボット109a~109cについて、軌道指令の生成が完了したか確認する。全てのロボット109a~109cについて、軌道指令の生成が完了していない場合には、S206の処理を実行する。 In S205, the command generation unit 102 checks whether generation of trajectory commands has been completed for all robots 109a to 109c. If generation of trajectory commands has not been completed for all robots 109a to 109c, the process of S206 is executed.

S206で、指令生成部102は、次に軌道指令を生成する対象のロボット(次の対象ロボット)を選択する。S206の処理を実行したら、S202の処理に戻る。 In S206, the command generation unit 102 selects the next robot for which a trajectory command is to be generated (the next target robot). After executing the process of S206, the process returns to S202.

S205で、指令生成部102は、全てのロボット109a~109cについて軌道指令の生成が完了していると判断した場合には、動作を終了する。 In S205, if the command generation unit 102 determines that trajectory command generation has been completed for all robots 109a to 109c, it ends the operation.

図3は、指令補正部103の動作フローの例を示す図である。図3を用いて、指令補正部103の動作を説明する。 Figure 3 is a diagram showing an example of the operation flow of the command correction unit 103. The operation of the command correction unit 103 will be explained using Figure 3.

S301で、指令補正部103は、指令(軌道指令)を補正する対象のロボットとロボットの軸(関節)を選択する。指令補正部103は、ロボット109a~109cのうち、任意のロボットを選択することができ、選択したロボットの任意の軸を選択することができる。以下では、指令を補正する対象のロボット(S301で選択したロボット)を「対象ロボット」と呼ぶ。 In S301, the command correction unit 103 selects a target robot and an axis (joint) of the robot for which the command (trajectory command) is to be corrected. The command correction unit 103 can select any robot from robots 109a to 109c, and can select any axis of the selected robot. In the following, the target robot for which the command is to be corrected (the robot selected in S301) is referred to as the "target robot."

S302で、指令補正部103は、対象ロボットについて指令実行周期Tと位相αを取得する。指令実行周期Tと位相αは、それぞれ周期計算部104と位相計算部105が算出する。 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 phase calculation unit 105, respectively.

S303で、指令補正部103は、対象ロボットが指令を実行するタイミング(指令実行タイミング)に合わせて軌道指令を補正する。指令補正部103は、例えば、時刻についての軌道指令の値を時刻について補間して、次の指令実行タイミングでの軌道指令の値を求める。そして、指令補正部103は、求めた、次の指令実行タイミングでの軌道指令の値を軌道指令(補正後の軌道指令)とすることで、軌道指令を補正する。 In S303, the command correction unit 103 corrects the trajectory command to match 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).

対象ロボットの次の指令実行タイミングは、対象ロボットの指令実行周期Tと位相αから求めることができる。従って、指令補正部103は、対象ロボットについて、指令を実行する周期である指令実行周期Tと指令を実行する基準点(始点)である位相αがわかると、次の指令実行タイミングを算出することができる。 The next command execution timing of the target robot can be obtained from the command execution period T and phase α of the target robot. Therefore, once the command execution period T, which is the period 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.

S304で、指令補正部103は、対象ロボットの全ての軸について、軌道指令の補正が完了したか確認する。対象ロボットの全ての軸について軌道指令の補正が完了していない場合には、S305の処理を実行し、完了している場合には、S306の処理を実行する。 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.

S305で、指令補正部103は、対象ロボットの、次に軌道指令を補正する軸を選択する。S305の処理を実行したら、S303の処理に戻る。 In S305, the command correction unit 103 selects the axis for which the trajectory command of the target robot is to be corrected next. After executing the process of S305, the process returns to S303.

S306で、指令補正部103は、全てのロボット109a~109cについて、軌道指令の補正が完了したか確認する。全てのロボット109a~109cについて、軌道指令の補正が完了していない場合には、S307の処理を実行する。 In S306, the command correction unit 103 checks whether the correction of the trajectory command has been completed for all robots 109a to 109c. If the correction of the trajectory command has not been completed for all robots 109a to 109c, the process of S307 is executed.

S307で、指令補正部103は、次に軌道指令を補正するロボット(次の対象ロボット)を選択する。S307の処理を実行したら、S302の処理に戻る。 In S307, the command correction unit 103 selects the next robot (next target robot) for which the trajectory command is to be corrected. After executing the process of S307, the process returns to S302.

S306で、指令補正部103は、全てのロボット109a~109cについて軌道指令の補正が完了していると判断した場合には、動作を終了する。 In S306, if the command correction unit 103 determines that the correction of the trajectory commands for all robots 109a to 109c has been completed, the operation ends.

図4は、周期計算部104と位相計算部105が計算するロボット109a~109cの指令実行周期Tと位相αを示すタイムチャートを示す図である。図4を用いて、指令実行周期Tと位相αについて説明する。 Figure 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 phase α will be explained using Figure 4.

図4には、制御装置101がロボット109a~109cに指令を送信するタイミング(指令送信タイミングts)と、ロボット109a~109c(ロボットA~C)がそれぞれ指令を実行するタイミング(指令実行タイミングte)を示している。制御装置101は、ロボット109a~109cのそれぞれに同じタイミング(指令送信タイミングts)で指令を送信する。ロボット109aは、指令実行タイミングteAで指令を実行し、ロボット109bは、指令実行タイミングteBで指令を実行し、ロボット109cは、指令実行タイミングteCで指令を実行する。 Figure 4 shows the timing (command transmission timing ts) at which the control device 101 sends 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 sends commands to each of the robots 109a to 109c at the same timing (command transmission timing ts). Robot 109a executes the command at command execution timing teA, robot 109b executes the command at command execution timing teB, and robot 109c executes the command at command execution timing teC.

通信部107a~107cからロボット109a~109cへ指令を送信してから、すなわち制御装置101が指令を送信してから、ロボット109a~109cがそれぞれ指令を実行するまでの時間差(te-ts)を、指令実行時間差Δtと呼ぶ。図4では、ロボット109aの指令実行時間差ΔtをΔtA(=teA-ts)で示し、ロボット109bの指令実行時間差ΔtをΔtB(=teB-ts)で示し、ロボット109cの指令実行時間差ΔtをΔtC(=teC-ts)で示している。 The time difference (te-ts) between when a command is sent from the communication units 107a-107c to the robots 109a-109c, i.e., when the control device 101 sends a command, and when each of the robots 109a-109c executes the command, is called the command execution time difference Δt. In FIG. 4, the command execution time difference Δt for robot 109a is indicated as ΔtA (=teA-ts), the command execution time difference Δt for robot 109b is indicated as ΔtB (=teB-ts), and the command execution time difference Δt for robot 109c is indicated as ΔtC (=teC-ts).

図4には、一例として、ロボット109b、109c(ロボットB、C)のそれぞれの指令実行周期Tb、Tcと、ロボット109a、109b(ロボットA、B)のそれぞれの位相αa、αbを示している。指令実行周期Tは、ロボット109a~109cが連続する2つの指令を実行する時間間隔である。位相αは、ロボット109a~109cの指令実行周期Tの基準点(始点)である。 As an example, FIG. 4 shows the command execution periods Tb and Tc of robots 109b and 109c (robots B and C) and the phases αa and αb of robots 109a and 109b (robots A and B). The command execution period T is the time interval during which robots 109a to 109c execute two successive commands. The phase α is the reference point (starting point) of the command execution period T of robots 109a to 109c.

図4に示すように、制御装置101がロボット109a~109cのそれぞれに同じタイミング(指令送信タイミングts)で軌道指令を送信しても、ロボット109a~109cは、受信した指令を実行するタイミング(指令実行タイミングteA~teC)が互いに異なっている。 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 times (command execution timings teA to teC).

ロボット109a~109cは、制御装置101からの指令を受信し、一定時間ごとに軌道指令を実行する。この一定時間(時間間隔)が指令実行周期Tである。 The robots 109a to 109c receive commands from the control device 101 and execute the trajectory commands at regular intervals. This regular time (time interval) is the command execution cycle T.

また、ロボット109a~109cは、指令実行周期Tが互いに同じでも、指令実行タイミングteが互いに異なっていることがある。これは、ロボット109a~109cにおいて、それぞれの指令実行周期Tの始点が互いに異なっているためである。この指令実行周期Tの始点が位相αである。 In addition, even if the robots 109a to 109c have the same command execution period T, the command execution timing te may differ from one another. This is because the starting points of the command execution periods T of the robots 109a to 109c are different from one another. The starting points of these command execution periods T are the phase α.

指令補正部103は、ロボット109a~109cのそれぞれに対して、指令実行周期Tと位相αを用いて次の指令実行タイミングteを算出し、指令生成部102が生成した軌道指令を、算出した次の指令実行タイミングteにおいて実行すべき軌道指令に補正する。指令補正部103は、指令を実行する時間間隔である指令実行周期Tと、指令実行周期Tの始点である位相αとから、次の指令実行タイミングteを算出することができる。 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 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 a command, and the phase α, which is the starting point of the command execution period T.

なお、周期計算部104と位相計算部105は、制御装置101のキャリブレーションの期間で、各ロボット109a~109c(ロボットA~C)の指令実行周期Tと位相αを取得する。指令補正部103は、制御装置101がロボット109a~109cを制御するロボット制御の期間で、指令生成部102が生成した指令を補正する。 The period calculation unit 104 and phase calculation unit 105 acquire the command execution period T and phase α of each robot 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.

図5は、指令補正部103により補正される軌道指令と、指令補正部103が補正した軌道指令の一例を示す図である。図5を用いて、指令補正部103が指令を補正する処理を説明する。指令補正部103は、図3のS303の処理で、対象ロボットの次の指令実行タイミングに合わせて、指令を補正する。 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 timing of the next command execution of the target robot in the process of S303 in Fig. 3.

図5の左の表は、指令補正部103により補正される軌道指令の例を示している。この軌道指令は、指令生成部102が生成した指令であり、例えば、時刻(基準時刻t0からの時刻)についての軸の位置を示す値で表される。図5には、一例として、ロボット109a(ロボットA)の軸1と軸2と、ロボット109c(ロボットC)の軸10について、それぞれの時刻における角度位置(予め定めた基準位置からの角度)を示している。例えば、ロボットAの軸1は、時刻10msでは20度の位置にあり、時刻20msでは10度の位置にあるという軌道指令の例を、図5の左の表に示している。 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.

図5の右の表は、指令補正部103が補正した軌道指令の例を示している。図5には、一例として、ロボットAの軸1と軸2と軸10について、時刻12msにおける角度位置を示している。例えば、ロボットAの軸1は、時刻12msでは18度の位置にあるというように補正された軌道指令の例を、図5の右の表に示している。なお、時刻12msは、次の指令実行タイミングteの例であり、例えば、位相αが基準時刻t0から4msであり、指令実行周期Tが8msである場合に、位相αと指令実行周期Tの和(=4ms+8ms)として得られる。 The table on the right of FIG. 5 shows an example of a trajectory command corrected by the command correction unit 103. As an example, FIG. 5 shows 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 time 12 ms is an example of the next command execution timing te, which 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.

指令補正部103は、例えば、指令生成部102が生成した指令の値を時刻について補間することで、指令生成部102が生成した指令を補正する。指令補正部103は、上述したように、指令実行周期Tと位相αを用いて、次の指令実行タイミングteを算出する。指令補正部103は、次の指令実行タイミングteから、指令生成部102が生成した指令のうちどの2つの時刻(図5の例では時刻10msと20ms)の指令を補間し、どの時刻(図5の例では時刻12ms)における指令(角度位置)を求めるかを決めることができる。すなわち、指令補正部103は、次に実行する動作の指令について、その指令の指令実行タイミングteを指令実行周期Tと位相αを用いて導出し、指令実行タイミングteからその指令がどの2つの時刻の間にあるかを求め、求めた2つの時刻の指令を時刻について補間することで、指令を補正する。 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 using the command execution period T and 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) the command (angular position) should be obtained. That is, the command correction unit 103 derives the command execution timing te of the command for the next operation to be executed using the command execution period T and phase α, determines between which two times the command falls from the command execution timing te, and corrects the command by interpolating the commands of the two times obtained with respect to time.

指令補正部103は、例えば線形補間やスプライン補間などの任意の補間方法を用いて、指令の値を時刻について補間することで指令を補正し、補正された指令を求めることができる。 The command correction unit 103 can correct the command by interpolating the command value over time using any interpolation method, such as linear interpolation or spline interpolation, to obtain the corrected command.

既に述べたように、ロボット109a~109cは、指令送信タイミングtsが同じでも、指令実行タイミングteA~teCが互いに異なる。ロボット109a~109cにおいて、指令実行タイミングteA~teCを同期させること(一致させること)は、一般に困難である。 As already mentioned, 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.

本実施例では、次の指令実行タイミングteA~teCに合わせて指令を補正することで、指令実行タイミングteA~teCを同期させるのではなく、ロボット109a~109cの動作を同期させる。このため、ロボット109a~109cは、指令実行タイミングteA~teCが互いに異なっていても、互いに一致した動作を実行することができ、動作を同期させることができる。この指令の補正は、ロボット109a~109cの指令実行タイミングteA~teCを基にした補正であるので、ロボット109a~109cの指令実行タイミングteA~teCの差が考慮されており、ロボット109a~109cの動作を同期させることができる補正である。 In this embodiment, the command is corrected to match 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 timing 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 matching operations and synchronize their operations. This command correction is based on the command execution timings teA to teC of the robots 109a to 109c, so it takes into account the difference in the command execution timings teA to teC of the robots 109a to 109c, and is a correction that can synchronize the operation of the robots 109a to 109c.

図6は、指令実行時間差Δtと指令実行周期Tと位相αを計算する際に用いる要素を示すタイムチャートを示す図である。図6を用いて、指令実行時間差Δtと、指令実行周期Tと位相αの算出方法について説明する。指令実行時間差Δtは、指令実行時間差取得部106が算出し、指令実行周期Tは、周期計算部104が算出し、位相αは、位相計算部105が算出する。 Figure 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 α. Using Figure 6, the calculation method of the command execution time difference Δt, the command execution period T, and the phase α will be explained. 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.

図6には、一例として、ロボット109a(ロボットA)について、指令実行周期Ta、位相αa、指令実行タイミングteA、及び指令実行時間差ΔtAを示している。制御装置101は、ロボット109a~109cに周期的に指令を送信する。制御装置101が1回目に指令を送信してからロボット109a~109cが指令を実行するまでの時間差を指令実行時間差Δt_1と表し、制御装置101が2回目に指令を送信してからロボット109a~109cが指令を実行するまでの時間差を指令実行時間差Δt_2と表す。図6では、ロボット109aについての指令実行時間差Δt_1と指令実行時間差Δt_2が、指令実行時間差ΔtA_1と指令実行時間差ΔtA_2としてそれぞれ表されている。 As an example, FIG. 6 shows the command execution period Ta, phase αa, command execution timing teA, and command execution time difference ΔtA for 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 robot 109a are represented as command execution time difference ΔtA_1 and command execution time difference ΔtA_2, respectively.

指令実行時間差取得部106は、制御装置101がロボット109a~109cへ指令を送信してから、ロボット109a~109cがそれぞれ指令を実行するまでの時間を取得する。具体的には、指令実行時間差取得部106は、通信部107a~107cから、制御装置101が指令を送信した時刻(指令送信タイミングts)と、ロボット109a~109cが指令を実行した時刻(指令実行タイミングte)を受信し記録する。そして、指令実行時間差取得部106は、これらの時刻の差から指令実行時間差Δt(=te-ts)を算出し、指令実行時間差Δtを周期計算部104と位相計算部105へ出力する。 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 each of the robots 109a to 109c 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. The command execution time difference acquisition unit 106 then 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.

さらに、図6には、制御装置101がロボット109a~109cに指令を送信する周期(指令送信周期command_period)と、予め任意に定めた基準時刻t0と制御装置101の指令送信タイミングtsとの差(指令送信時間差command_diff)を示している。 Furthermore, FIG. 6 shows the period (command transmission period command_period) at which the control device 101 sends 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.

周期計算部104は、例えば、指令送信周期command_periodと指令実行時間差Δt_1と指令実行時間差Δt_2を用いて下記の式(1)に従い、各ロボット109a~109cの指令実行周期Tを算出する。 The period calculation unit 104 calculates the command execution period T of each robot 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).

指令実行周期T= command_period
-(Δt_1%(command_period×(Δt_1/command_period)))
+Δt_2 (1)
なお、式(1)は、変数を整数で表した場合(整数型変数で演算をする場合)の例であり、演算子「/」は、商の小数点以下を切り捨てる除算を表し、演算子「%」は、除算の剰余を求める演算を表している。
Command execution period T = command_period
-(Δt_1%(command_period×(Δt_1/command_period)))
+Δt_2 (1)
Note that formula (1) is an example where variables are expressed as integers (when performing an operation with integer type variables), the operator "/" represents division that truncates the quotient to the nearest integer, and the operator ""%" represents an operation to find the remainder of a division.

式(1)は、サンプリングに用いる指令送信周期command_periodに対して指令実行周期Tが倍以上異なる場合を加味して構成されており、指令実行時間差Δt_1を指令送信周期command_periodで割った剰余を用いている。なお、制御装置101は、2回目の指令を、指令実行タイミングteが返ってきてから、指令実行周期Tに従って送信する。なお、式(1)において、演算子「/」と「%」で表される演算の分母となる値が0になる場合には、エラーの発生を避けるため、この演算を削除するか分母となる値を1に置き換えた式で計算する。 Equation (1) is constructed taking into account 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 calculation expressed by the operators "/" and "%" is 0, this calculation is deleted or the denominator is replaced with 1 to avoid the occurrence of an error.

位相計算部105は、例えば指令送信時間差command_diffと指令実行時間差Δt_1と指令実行周期Tを用いて下記の式(2)に従い、各ロボット109a~109cの位相αを算出する。 The phase calculation unit 105 calculates the phase α of each robot 109a to 109c according to the following formula (2), for example, using the command transmission time difference command_diff, the command execution time difference Δt_1, and the command execution period T.

位相α=(command_diff+Δt_1)%T (2)
式(2)は、式(1)と同様に、変数を整数で表した場合の例であり、演算子「%」は、除算の剰余を求める演算を表している。
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 obtain a remainder of division.

位相αは、指令実行周期Tを用いて算出される。位相計算部105は、周期計算部104が算出した指令実行周期Tを入力して、位相αを算出してもよい。式(2)において、演算子「%」で表される演算の分母となる値が0になる場合には、この演算を削除するか分母となる値を1に置き換えた式で計算する。 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 formula (2), if the denominator of the operation represented by the operator "%" is 0, this operation is deleted or the denominator is replaced with 1 for calculation.

なお、図5の右の表に示した、補正された軌道指令(時刻12msでの軌道指令)は、command_diffが0msであってcommand_periodが10msである場合の例であり、時刻が(command_diff+command_period)以降の指令実行タイミングteは、位相α(4ms)と指令実行周期T(8ms)の和となる。すなわち、時刻が10ms以降の指令実行タイミングteは、時刻12msである。従って、次の指令実行タイミングteは、制御装置101がロボット109a(ロボットA)に指令を送信するタイミング(10ms)から2ms後のタイミング(12ms)である。 The corrected trajectory command (trajectory command at time 12 ms) shown in the table on the right of Figure 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). In other words, the command execution timing te after the time 10 ms is 12 ms. Therefore, the next command execution timing te is 2 ms (12 ms) after the timing (10 ms) when the control device 101 sends a command to the robot 109a (robot A).

図7は、図1に示した通信部107a~107cの動作フローの例を示す図である。図7を用いて、通信部107a~107cの動作を説明する。 Figure 7 is a diagram showing an example of the operation flow of the communication units 107a to 107c shown in Figure 1. The operation of the communication units 107a to 107c will be explained using Figure 7.

通信部107a~107cは、ロボットコントローラ108a~108cを介してロボット109a~109cと通信可能であり、ロボット109a~109cへの指令を制御装置101からロボットコントローラ108a~108cに送信する機能と、指令に対するロボット109a~109cの応答などの情報をロボットコントローラ108a~108cから受信する機能を備える。 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 the function of transmitting commands to the robots 109a to 109c from the control device 101 to the robot controllers 108a to 108c, and the function of receiving information such as the responses of the robots 109a to 109c to the commands from the robot controllers 108a to 108c.

S701で、通信部107a~107cは、通信が制御装置101からの指令の送信か否かを判断する。指令の送信である場合には、S702の処理を実行する。指令の送信でなく、応答を受信する場合には、S704の処理を実行する。 In S701, the communication units 107a to 107c determine whether the communication is a command transmission from the control device 101. If a command is being transmitted, the process of S702 is executed. If a response is being received instead of a command transmission, the process of S704 is executed.

S702で、通信部107a~107cは、送信する指令を基にパケットを生成する。 At S702, the communication units 107a to 107c generate a packet based on the command to be sent.

S703で、通信部107a~107cは、S702で生成したパケットを送信する。 In S703, the communication units 107a to 107c transmit the packets generated in S702.

S704で、通信部107a~107cは、ロボットコントローラ108a~108cを介してロボット109a~109cから受信したパケットを取得する。 In S704, the communication units 107a to 107c acquire packets received from the robots 109a to 109c via the robot controllers 108a to 108c.

S705で、通信部107a~107cは、S704で取得したパケットを解析し、パケットを解析して得られた情報を指令実行時間差取得部106へ出力する。指令実行時間差取得部106は、通信部107a~107cがロボット109a~109cから得た情報を用いて指令実行時間差Δtを求めることができる。 In S705, the communication units 107a to 107c analyze the packets acquired in S704, and output the information obtained by analyzing the packets to the command execution time difference acquisition unit 106. The command execution time difference acquisition unit 106 can determine the command execution time difference Δt using the information acquired by the communication units 107a to 107c from the robots 109a to 109c.

指令実行時間差取得部106は、指令実行時間差Δtを求めるときに、ロボット109a~109cが指令を実行した時間(時刻)を、以下に示す方法などの任意の方法で求めることができる。 When calculating the command execution time difference Δt, the command execution time difference acquisition unit 106 can calculate the time (time instant) at which the robots 109a to 109c executed the command by any method, such as the method shown below.

ロボット109a~109cが指令を実行した時間は、例えば、ロボット109a~109cの動作を伴わずに、ロボット109a~109cからのメッセージを求める方法で求めることができる。この方法は、制御装置101のキャリブレーションの期間において、通信部107a~107cが、ロボット109a~109cに指令を送信してロボット109a~109cが指令を認識したことの応答(メッセージ)を受信したときを、ロボット109a~109cが指令を実行した時間とみなす方法である。ロボット109a~109cは、通信部107a~107cから指令を受信したら、指令を認識したことの応答(メッセージ)を通信部107a~107cに送信する。 The time at which 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 robots 109a to 109c moving. This method considers the time at which the robots 109a to 109c execute a command to be the time when the communication units 107a to 107c send a command to the robots 109a to 109c during the calibration period of the control device 101 and receive a response (message) from the robots 109a to 109c that they have recognized the command. When the robots 109a to 109c receive a command from the communication units 107a to 107c, they send a response (message) to the communication units 107a to 107c that they have recognized the command.

また、ロボット109a~109cが指令を実行した時間は、例えば、ロボット109a~109cが動作の前に現在の状況をメッセージで返す方法で求めることができる。この方法は、ロボット109a~109cが動作を実行する前に、これから動作を実行するという情報や現在時刻などの任意の情報を現在の状況として送信し、通信部107a~107cがこのような情報を含むメッセージを受信したときを、ロボット109a~109cが指令を実行した時間とみなす方法である。 The time at which the robots 109a to 109c execute a command can also be found by, for example, having the robots 109a to 109c return a message indicating their current status before performing an action. In this method, before the robots 109a to 109c execute an action, they send any information, such as information that they are about to execute an action or the current time, as their current status, and the time at which the communication units 107a to 107c receive a message containing such information is considered to be the time at which the robots 109a to 109c execute a command.

また、ロボット109a~109cが指令を実行した時間は、例えば、ロボット109a~109cが指令を受け取ってから指令を実行するまでの時間差をロボットコントローラ108a~108cが保存しておく方法や、ロボット109a~109cが指令を実行した時刻をロボットコントローラ108a~108cが記録しておく方法でも求めることができる。指令実行時間差取得部106は、ロボットコントローラ108a~108cから、ロボットコントローラ108a~108cが保存した時間差や記録した指令実行時刻を取得することで、ロボット109a~109cが指令を実行した時間を求めることができる。 The time at which the robots 109a to 109c execute a command can also be found 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 find the time at which the robots 109a to 109c execute a command by acquiring from the robot controllers 108a to 108c the time difference stored by the robot controllers 108a to 108c or the recorded command execution time.

また、指令補正部103は、1回の指令実行周期Tだけ後の指令実行タイミングteを算出してもよく、複数回の指令実行周期Tだけ後の指令実行タイミングteを算出してもよい。すなわち、指令補正部103は、1回または複数回の指令実行周期Tだけ後の指令実行タイミングteを算出し、算出したこの指令実行タイミングteでの指令の値を求めることで指令を補正することができる。なお、ロボットコントローラ108a~108cは、複数の指令実行タイミングteでの指令を受信できるように、複数の指令を保存することができるバッファを備えるのが好ましい。 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 can correct the command by calculating the command execution timing te one or multiple command execution periods T later and determining the value of the command at the calculated command execution timing te. It is preferable that the robot controllers 108a to 108c are provided with a buffer that can store multiple commands so that they can receive commands at multiple command execution timings te.

以上説明したように、本実施例による制御装置101は、指令実行タイミングteが互いに異なる複数のロボット109a~109cに対して、ロボット109a~109cの間の指令実行タイミングteの差を吸収して、それぞれのロボット109a~109cの動作を同期させることができる。 As described above, the control device 101 according to this embodiment can absorb the difference in command execution timing te between multiple robots 109a to 109c that have different command execution timing te, and synchronize the operations of each of the robots 109a to 109c.

また、本実施例による制御装置101は、制御対象のロボットが1台の場合にも適用可能である。制御対象のロボットが1台の場合では、指令送信タイミングtsと指令実行タイミングteの差である指令実行時間差Δtを加味して軌道指令を補正することにより、理想の動作と実際の動作の乖離を無くすことができる。 The control device 101 according to this embodiment can also be applied to cases where there is only one robot to be controlled. When there is only one robot to be controlled, the trajectory command can be corrected taking into account the command execution time difference Δt, which is the difference between the command transmission timing ts and the command execution timing te, thereby eliminating the discrepancy between the ideal operation and the actual operation.

図8を参照して、本発明の実施例2による制御装置101について説明する。 The control device 101 according to the second embodiment of the present invention will be described with reference to FIG. 8.

図8は、本実施例による制御装置101の機能ブロック図である。本実施例による制御装置101は、実施例1による制御装置101(図1)と同様の構成を備えるが、センサ通信部802とセンサ値解析部803を備える点が実施例1による制御装置101と異なる。以下では、本実施例による制御装置101について、実施例1による制御装置101と異なる点を主に説明する。 Figure 8 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 embodiment 1 (Figure 1), but differs from the control device 101 according to embodiment 1 in that it includes a sensor communication unit 802 and a sensor value analysis unit 803. The following mainly describes the differences between the control device 101 according to this embodiment and the control device 101 according to embodiment 1.

制御装置101の制御対象の機器であるロボット109a~109cは、センサ801を備える。センサ801は、ロボット109a~109cの各軸に設置されており、各軸の動きを記録する任意のセンサで構成することができる。 The robots 109a to 109c, which are devices controlled by the control device 101, are equipped with sensors 801. The sensors 801 are installed on each axis of the robots 109a to 109c, and can be configured with any sensor that records the movement of each axis.

センサ通信部802は、ロボット109a~109cが備えるセンサ801と接続されている。センサ通信部802は、センサ801と通信し、センサ801が記録したセンサ値を取得する。 The sensor communication unit 802 is connected to the sensor 801 equipped 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.

センサ値解析部803は、センサ通信部802からセンサ値を取得し、このセンサ値から、各ロボット109a~109cが指令を実行した時間(時刻)を解析して求め、求めた時間を指令実行時間差取得部106へ出力する。例えば、センサ値解析部803は、センサ値からロボット109a~109cの軸が動いた時刻を求め、この時刻をロボット109a~109cが指令を実行した時間とすることができる。 The sensor value analysis unit 803 acquires the sensor values from the sensor communication unit 802, analyzes and determines the time (time instant) when each of the robots 109a to 109c executes a command from the sensor values, and outputs the determined time to the command execution time difference acquisition unit 106. For example, the sensor value analysis unit 803 can determine the time when the axis of the robots 109a to 109c moves from the sensor values, and use this time instant as the time when the robots 109a to 109c execute a command.

本実施例による制御装置101は、ロボット109a~109cが指令実行時刻を返さない場合や、指令実行時刻の取得方法がロボット109a~109cにより異なる場合でも、より正確にロボット109a~109cが指令を実行した時間(時刻)を取得することができる。 The control device 101 according to this embodiment can obtain the time (time instant) 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 for obtaining the command execution time differs depending on the robots 109a to 109c.

図9を参照して、本発明の実施例3による制御装置101について説明する。 The control device 101 according to the third embodiment of the present invention will be described with reference to FIG. 9.

図9は、本実施例による制御装置101の機能ブロック図である。本実施例による制御装置101は、実施例1による制御装置101(図1)と同様の構成を備えるが、カメラ通信部902と画像解析部903を備える点が実施例1による制御装置101と異なる。以下では、本実施例による制御装置101について、実施例1による制御装置101と異なる点を主に説明する。 Figure 9 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 embodiment 1 (Figure 1), but differs from the control device 101 according to embodiment 1 in that it includes a camera communication unit 902 and an image analysis unit 903. The following will mainly describe the control device 101 according to this embodiment, focusing on the differences from the control device 101 according to embodiment 1.

制御装置101の制御対象の機器であるロボット109a~109cは、カメラ901により撮影される。カメラ901は、ロボット109a~109cを撮影するように設置されている。カメラ901は、ロボット109a~109cの各軸の動きを記録する任意のカメラ、例えば、1000fpsなどの高フレームレートのカメラで構成することができる。本実施例による、機器の制御システムは、カメラ901を備えることができる。 The robots 109a to 109c, which are devices controlled by the control device 101, are photographed by the 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 each axis of the robots 109a to 109c, for example a camera with a high frame rate such as 1000 fps. The device control system according to this embodiment can be equipped with the camera 901.

カメラ通信部902は、カメラ901と接続されている。カメラ通信部902は、カメラ901と通信し、カメラ901が撮影した画像の情報を取得する。 The camera communication unit 902 is connected to the camera 901. The camera communication unit 902 communicates with the camera 901 and obtains information about images captured by the camera 901.

画像解析部903は、カメラ通信部902から画像の情報を取得し、この画像情報から、各ロボット109a~109cが指令を実行した時間(時刻)を解析して求め、求めた時間を指令実行時間差取得部106へ出力する。例えば、画像解析部903は、画像情報からロボット109a~109cの軸が動いた時刻を求め、この時刻をロボット109a~109cが指令を実行した時間とすることができる。 The image analysis unit 903 acquires image information from the camera communication unit 902, analyzes and determines from this image information the time (time instant) at which each robot 109a to 109c executed a command, and outputs the determined time to the command execution time difference acquisition unit 106. For example, the image analysis unit 903 can determine from the image information the time instant at which the axis of the robot 109a to 109c moved, and regard this time instant as the time at which the robot 109a to 109c executed a command.

本実施例による制御装置101は、ロボット109a~109cが指令実行時刻を返さない場合や、指令実行時刻の取得方法がロボット109a~109cにより異なる場合でも、より正確にロボット109a~109cが指令を実行した時間(時刻)を取得することができる。また、軸が動いた時刻を求めるためにロボット109a~109cにセンサを取り付ける必要がないので、ロボット109a~109cの交換や修理を容易に実施できる。 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. In addition, since there is no need to attach a sensor to the robots 109a to 109c to obtain the time at which the axis moved, the robots 109a to 109c can be easily replaced or repaired.

図10と図11を参照して、本発明の実施例4による制御装置101について説明する。 The control device 101 according to the fourth embodiment of the present invention will be described with reference to Figures 10 and 11.

図10は、本実施例による制御装置101の機能ブロック図である。本実施例による制御装置101は、実施例1による制御装置101(図1)と同様の構成を備えるが、算出値更新部1001を備える点が実施例1による制御装置101と異なる。以下では、本実施例による制御装置101について、実施例1による制御装置101と異なる点を主に説明する。 Figure 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 embodiment 1 (Figure 1), but differs from the control device 101 according to embodiment 1 in that it includes a calculated value update unit 1001. Below, the control device 101 according to this embodiment will be described, focusing mainly on the differences from the control device 101 according to embodiment 1.

図11は、算出値更新部1001の機能ブロック図である。算出値更新部1001は、周期保持部1101と、位相保持部1102と、カウンタ1103と、中央値計算部1104を備える。 Figure 11 is a functional block diagram of the calculated value update unit 1001. The calculated value update unit 1001 includes a period holding unit 1101, a phase holding unit 1102, a counter 1103, and a median calculation unit 1104.

周期保持部1101は、周期計算部104が算出した、各ロボット109a~109cの指令実行周期Tを保持する。周期計算部104は、制御装置101が指令を送信するたびに指令実行周期Tを算出する。周期保持部1101は、このようにして周期計算部104が複数回算出した指令実行周期T、すなわち複数の指令実行周期Tを保持している。 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 way, i.e., multiple command execution cycles T.

位相保持部1102は、位相計算部105が算出した、各ロボット109a~109cの位相αを保持する。位相計算部105は、制御装置101が指令を送信するたびに位相αを算出する。位相保持部1102は、このようにして位相計算部105が複数回算出した位相α、すなわち複数の位相αを保持している。 The phase holding unit 1102 holds the phase α of each robot 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 way, i.e., multiple phases α.

カウンタ1103は、周期計算部104が指令実行周期Tを算出した回数と、位相計算部105が位相αを算出した回数を記録する。すなわち、カウンタ1103は、周期保持部1101が保持する指令実行周期Tの数と、位相保持部1102が保持する位相αの数を記録する。カウンタ1103は、指令実行周期Tと位相αの数が予め定めた一定回数に到達したら、すなわち制御装置101がロボット109a~109cと予め定めた一定回数だけ通信したら、この旨の通知を中央値計算部1104へ送信し、記録した指令実行周期Tと位相αの数をクリアする。カウンタ1103は、指令実行周期Tと位相αの数が一定回数に到達するごとに、すなわち制御装置101がロボット109a~109cと一定回数だけ通信するごとに、中央値計算部1104へ上記の通知を送信する。 The counter 1103 records the number of times the period calculation unit 104 calculates the command execution period 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 periods T held by the period holding unit 1101 and the number of phases α held by the phase holding unit 1102. When the number of command execution periods T and phases α reaches 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 periods T and phases α. The counter 1103 transmits the above notification to the median calculation unit 1104 every time the number of command execution periods T and phases α reaches a certain number, that is, every time the control device 101 communicates with the robots 109a to 109c a certain number of times.

中央値計算部1104は、カウンタ1103から通知を受けたら、指令実行周期Tと位相αの中央値を算出する。すなわち、中央値計算部1104は、カウンタ1103から通知を受けたら、周期保持部1101が保持する複数の指令実行周期Tを周期保持部1101から受け取るとともに、位相保持部1102が保持する複数の位相αを位相保持部1102から受け取り、複数の指令実行周期Tの中央値と複数の位相αの中央値を算出する。そして、中央値計算部1104は、算出した指令実行周期Tの中央値と位相αの中央値を指令補正部103へ出力する。 When the median calculation unit 1104 receives a notification from the counter 1103, it calculates the median of the command execution period T and the phase α. That is, when the median calculation unit 1104 receives a notification from the counter 1103, it receives from the period holding unit 1101 the multiple command execution periods T held by the period holding unit 1101 and receives from the phase holding unit 1102 the multiple phases α held by the phase holding unit 1102, and calculates the median of the multiple command execution periods T and the median of the multiple phases α. Then, the median calculation unit 1104 outputs the calculated median of the command execution periods T and the median of the phase α to the command correction unit 103.

中央値計算部1104は、指令実行周期Tと位相αの両方の中央値ではなく、いずれかう一方の中央値を算出し、指令補正部103へ出力してもよい。また、中央値計算部1104は、指令実行周期Tと位相αの中央値ではなく、指令実行周期Tと位相αの平均値を算出し、指令補正部103へ出力してもよい。 The median calculation unit 1104 may calculate the median of either the command execution period T or the phase α instead of the median of both, and output the median to the command correction unit 103. The median calculation unit 1104 may also calculate the average value of the command execution period T and the phase α instead of the median value of the command execution period T and the phase α, and output the average value to the command correction unit 103.

本実施例による制御装置101では、算出値更新部1001は、制御装置101がロボット109a~109cと予め定めた一定回数だけ通信するごとに、指令実行周期Tと位相αの中央値(または平均値)を算出する。指令補正部103は、算出値更新部1001から受け取った指令実行周期Tと位相αを用いて、指令生成部102が生成した指令を補正する。すなわち、指令補正部103は、制御装置101がロボット109a~109cと予め定めた一定回数だけ通信するごとに、補正に用いる指令実行周期Tと位相αを更新することで、指令の補正値を定期的に更新する。 In the control device 101 according to this embodiment, the calculation value update unit 1001 calculates the median (or average) of the command execution period T and phase α each 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 phase α received from the calculation 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 phase α used for correction each time the control device 101 communicates with the robots 109a to 109c a predetermined number of times.

本実施例による制御装置101は、以上説明したように指令の補正を一定の通信回数ごとに更新することで、ロボット109a~109c(またはロボットコントローラ108a~108c)のタイマに時刻のずれが生じても、ロボット109a~109cに理想通りの動作を継続的に実施させることができる。 As described above, the control device 101 according to this embodiment updates the command corrections 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 continue to perform the desired operations.

なお、本発明は、上記の実施例に限定されるものではなく、様々な変形が可能である。例えば、上記の実施例は、本発明を分かりやすく説明するために詳細に説明したものであり、本発明は、必ずしも説明した全ての構成を備える態様に限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能である。また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、削除したり、他の構成を追加・置換したりすることが可能である。 The present invention is not limited to the above-mentioned examples, and various modifications are possible. For example, the above-mentioned examples have been described in detail to clearly explain the present invention, and the present invention is not necessarily limited to an embodiment that includes all of the configurations described. It is also possible to replace part of the configuration of one example with the configuration of another example. It is also possible to add the configuration of another example to the configuration of one example. It is also possible to delete part of the configuration of each example, or to add or replace other configurations.

101…制御装置、102…指令生成部、103…指令補正部、104…周期計算部、105…位相計算部、106…指令実行時間差取得部、107a~107c…通信部、108a~108c…ロボットコントローラ、109a~109c…ロボット、801…センサ、802…センサ通信部、803…センサ値解析部、901…カメラ、902…カメラ通信部、903…画像解析部、1001…算出値更新部、1101…周期保持部、1102…位相保持部、1103…カウンタ、1104…中央値計算部、t0…基準時刻、ts…指令送信タイミング、te、teA~teC…指令実行タイミング、T、Ta、Tb、Tc…指令実行周期、Δt、Δt_1、Δt_2、ΔtA、ΔtA_1、ΔtA_2、ΔtB、ΔtC…指令実行時間差、α、αa、αb…位相、command_period…指令送信周期、command_diff…指令送信時間差。 101...Control device, 102...Command generation unit, 103...Command correction unit, 104...Periodic calculation unit, 105...Phase calculation unit, 106...Command execution time difference acquisition unit, 107a to 107c...Communication unit, 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...Periodic retention unit, 1102...phase holding 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 (12)

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 determining a command value at the next command execution timing;
A device control apparatus comprising:
前記周期計算部は、前記機器に前記指令を送信する周期である指令送信周期と、前記指令実行時間差を用いて、前記指令実行周期を算出する、
請求項1に記載の、機器の制御装置。
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 .
前記位相計算部は、予め定めた基準時刻と指令を送信した時刻との差である指令送信時間差と、前記指令実行時間差と、前記指令実行周期を用いて、前記位相を算出する、
請求項1に記載の、機器の制御装置。
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 .
前記指令実行時間差取得部は、前記指令実行時間差を取得するときに、前記機器からのメッセージを受信したときを、前記機器が前記指令を実行した時間とみなす、
請求項1に記載の、機器の制御装置。
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 .
前記指令実行時間差取得部は、前記指令実行時間差を取得するときに、前記機器が前記指令を受け取ってから前記指令を実行するまでの時間差を前記機器から取得することで、前記機器が前記指令を実行した時間を求める、
請求項1に記載の、機器の制御装置。
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 .
前記指令実行時間差取得部は、前記指令実行時間差を取得するときに、前記機器が前記指令を実行した時刻を前記機器から取得することで、前記機器が前記指令を実行した時間を求める、
請求項1に記載の、機器の制御装置。
the command execution time difference acquisition unit, when acquiring the command execution time difference, acquires, from the device, a time when the device executed the command, thereby determining the time when the device executed the command.
The device according to claim 1 .
前記指令実行時間差取得部は、前記指令実行時間差を取得するときに、前記機器に設置されたセンサが記録した値を取得することで、前記機器が前記指令を実行した時間を求める、
請求項1に記載の、機器の制御装置。
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 .
前記指令実行時間差取得部は、前記指令実行時間差を取得するときに、前記機器を撮影するカメラが撮影した画像の情報を取得することで、前記機器が前記指令を実行した時間を求める、
請求項1に記載の、機器の制御装置。
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 .
前記指令補正部は、前記制御装置が前記機器と予め定めた一定回数だけ通信するごとに、前記指令実行周期と前記位相を更新する、
請求項1に記載の、機器の制御装置。
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 .
前記指令補正部は、複数回の前記指令実行周期だけ後の前記指令実行タイミングを算出し、この指令実行タイミングでの指令の値を求めて前記指令を補正する、
請求項1に記載の、機器の制御装置。
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 .
請求項1に記載の制御装置と、
前記制御装置に制御され、前記制御装置が備える前記通信部と通信可能な1つ以上の機器と、
を備えることを特徴とする、機器の制御システム。
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:
1つ以上の機器と通信可能な通信部を備える制御装置に実行され、
前記機器に対する指令を生成する指令生成ステップと、
前記通信部から前記機器へ前記指令を送信してから前記機器が前記指令を実行するまでの時間差である指令実行時間差を取得する指令実行時間差取得ステップと、
前記指令実行時間差を用いて、前記機器が前記指令を実行する周期である指令実行周期を算出する周期計算ステップと、
前記指令実行時間差を用いて、前記機器の前記指令実行周期の基準点である位相を算出する位相計算ステップと、
前記指令実行周期と前記位相から、前記機器が前記指令を実行するタイミングである指令実行タイミングを算出し、次の前記指令実行タイミングでの指令の値を求めることで、前記指令を補正する指令補正ステップと、
を有することを特徴とする、機器の制御方法。
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:
JP2022009403A 2022-01-25 2022-01-25 Device control device, control system, and control method Active JP7617050B2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2022009403A JP7617050B2 (en) 2022-01-25 2022-01-25 Device control device, control system, and control method
PCT/JP2023/000249 WO2023145410A1 (en) 2022-01-25 2023-01-10 Apparatus control device, control system, and control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2022009403A JP7617050B2 (en) 2022-01-25 2022-01-25 Device control device, control system, and control method

Publications (2)

Publication Number Publication Date
JP2023108339A JP2023108339A (en) 2023-08-04
JP7617050B2 true JP7617050B2 (en) 2025-01-17

Family

ID=87471222

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022009403A Active JP7617050B2 (en) 2022-01-25 2022-01-25 Device control device, control system, and control method

Country Status (2)

Country Link
JP (1) JP7617050B2 (en)
WO (1) WO2023145410A1 (en)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003145462A (en) 2001-11-07 2003-05-20 Kawasaki Heavy Ind Ltd Robot cooperative control system
JP2005269879A (en) 2004-02-19 2005-09-29 Toshiba Corp Control system
JP2007219642A (en) 2006-02-14 2007-08-30 Fanuc Ltd Control system
JP2007276052A (en) 2006-04-06 2007-10-25 Sony Corp Control system, recording system, information processing apparatus and method, program, and recording medium
JP2010140372A (en) 2008-12-15 2010-06-24 Mitsubishi Electric Corp Slave device and program
JP2018153881A (en) 2017-03-16 2018-10-04 株式会社安川電機 Control system, controller and control method
US20190339660A1 (en) 2016-02-29 2019-11-07 Beijing Etechwin Electric Co., Ltd. Synchronous control method and synchronous control system of multiple controlled components

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003145462A (en) 2001-11-07 2003-05-20 Kawasaki Heavy Ind Ltd Robot cooperative control system
JP2005269879A (en) 2004-02-19 2005-09-29 Toshiba Corp Control system
JP2007219642A (en) 2006-02-14 2007-08-30 Fanuc Ltd Control system
JP2007276052A (en) 2006-04-06 2007-10-25 Sony Corp Control system, recording system, information processing apparatus and method, program, and recording medium
JP2010140372A (en) 2008-12-15 2010-06-24 Mitsubishi Electric Corp Slave device and program
US20190339660A1 (en) 2016-02-29 2019-11-07 Beijing Etechwin Electric Co., Ltd. Synchronous control method and synchronous control system of multiple controlled components
JP2018153881A (en) 2017-03-16 2018-10-04 株式会社安川電機 Control system, controller and control method

Also Published As

Publication number Publication date
WO2023145410A1 (en) 2023-08-03
JP2023108339A (en) 2023-08-04

Similar Documents

Publication Publication Date Title
US11095382B2 (en) Communication system, communication device and communication method
US7525263B2 (en) Control system
EP3223093B1 (en) Optical measurement device
US20070050085A1 (en) Robot coordinated control method and system
JP6497331B2 (en) Control device and synchronous control method
JP2008531318A (en) Synchronous controller linked by communication network
US20180046169A1 (en) Information processing system, information processing device, workpiece position identifying method, and workpiece position identifying program
US10155317B2 (en) Information processing system, information processing device, workpiece position identifying method, and workpiece position identifying program
KR20160125942A (en) Programmable controller system and controller therefor
EP3361635B1 (en) Control system and pulse output device
US20200379441A1 (en) Control device, mechanical system, and time synchronization method
WO2019107022A1 (en) Control device and control method
JP6737018B2 (en) Optical measuring device
JP7470632B2 (en) Control device
JP7617050B2 (en) Device control device, control system, and control method
EP3851925B1 (en) A synchronised control system
US12199822B2 (en) Control system, control device, and non-transitory computer-readable recording medium recording program
JP6400553B2 (en) Numerical control system with synchronous control function between units
WO2021024523A1 (en) Control device
JP7844312B2 (en) Control device and control system
JP7577044B2 (en) Control device, control system, and time synchronization method
WO2024018900A1 (en) Device control equipment, control system, and control method
JP2023006307A (en) control system
JP2025162777A (en) Sensor System
JP2025162823A (en) Sensor System

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20240619

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20241224

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20250106

R150 Certificate of patent or registration of utility model

Ref document number: 7617050

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150