WO2023145361A1 - Robot control system and method for configuring robot control system - Google Patents

Robot control system and method for configuring robot control system Download PDF

Info

Publication number
WO2023145361A1
WO2023145361A1 PCT/JP2022/047966 JP2022047966W WO2023145361A1 WO 2023145361 A1 WO2023145361 A1 WO 2023145361A1 JP 2022047966 W JP2022047966 W JP 2022047966W WO 2023145361 A1 WO2023145361 A1 WO 2023145361A1
Authority
WO
WIPO (PCT)
Prior art keywords
computing resource
auxiliary
processing
control system
robot
Prior art date
Application number
PCT/JP2022/047966
Other languages
French (fr)
Japanese (ja)
Inventor
ディエゴ エスクデロ
ダビド フォルナス
アントニオ ペナルヴェル
イゴール ジョバノビッチ
マジッド カサワット
嘉英 田村
圭 安田
Original Assignee
オムロン株式会社
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 オムロン株式会社 filed Critical オムロン株式会社
Publication of WO2023145361A1 publication Critical patent/WO2023145361A1/en

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]

Definitions

  • the present invention relates to a robot control system and a method of configuring the robot control system.
  • JP 2021-142625 A JP 2021-144586 A JP 2021-144587 A JP 2021-144588 A
  • the computational cost of processing can be high when multiple robots are to work together or perform complex actions.
  • the purpose of the present invention is to provide technology that can flexibly respond to changes in computational resources required to realize robot operations.
  • a control system for controlling one or more robots.
  • the control system includes a first module that generates an intermediate representation according to an interpretation result of a control program by executing one or more first processes, and a first module that generates an intermediate representation by executing one or more second processes.
  • a second module for generating a command value for the robot according to the intermediate representation, a main computing resource for realizing the first module and the second module, and the first processing and the second processing, wherein and auxiliary computing resources that perform specified processing on behalf of the primary computing resource.
  • the primary computing resource includes a first interface for exchanging data between processing performed on the primary computing resource and processing performed on the auxiliary computing resource.
  • the auxiliary computing resources can be made to execute arbitrarily specified processes. Execution becomes possible by combining resources. This makes it possible to flexibly respond to changes in computational resources required to realize robot motions.
  • the auxiliary computing resource may include a second interface for exchanging data between processing performed on the auxiliary computing resource and processing performed on the primary computing resource. According to this configuration, arbitrary data can be exchanged between the process executed by the main computational resource and the process executed by the auxiliary computational resource.
  • It may further include a development support device that accepts a user's specification of processing and performs settings for executing the processing specified by the user with an auxiliary computing resource. According to this configuration, the user can operate the development support device to cause the auxiliary computing resource to execute arbitrary processing.
  • the development support device may present at least part of the first process and the second process, and information indicating the degree of computational resources required for the at least part of the process. According to this configuration, the user can more easily determine which process should be executed by the auxiliary computing resource.
  • the development support device may present information indicating the size of computational resources that can be provided by the main computational resource and the auxiliary computational resource. According to this configuration, the user can more easily determine which of the main computational resource and the auxiliary computational resource is to be used for processing.
  • Auxiliary computing resources may be general-purpose computers. According to this configuration, auxiliary computational resources can be realized at relatively low cost.
  • the auxiliary computing resource may be an industrial computer. According to this configuration, it is possible to realize an auxiliary computing resource capable of stable operation.
  • a method of configuring a control system for controlling one or more robots includes placing on a main computing resource a first module that generates an intermediate representation according to an interpretation result of a control program by executing a plurality of first processes; and one or more second processes. arranging a second module on the main computing resource for generating a command value for the robot according to the generated intermediate representation by execution; , configuring the auxiliary computing resource to execute on behalf of the primary computing resource; and providing the primary computing resource with an interface for passing data to and from the processing running on the auxiliary computing resource.
  • FIG. 1 is a schematic diagram showing an application example of a robot control system according to an embodiment
  • FIG. 1 is a schematic diagram showing an example of the overall configuration of a robot control system according to an embodiment
  • FIG. 2 is a schematic diagram showing a hardware configuration example of a control device according to the present embodiment
  • FIG. 1 is a schematic diagram showing a hardware configuration example of a robot according to an embodiment
  • FIG. 2 shows an example hardware configuration of an auxiliary processing device according to the present embodiment.
  • 1 is a schematic diagram showing a hardware configuration example of a development support device according to an embodiment
  • FIG. FIG. 2 is a schematic diagram showing a functional configuration example related to robot control of the robot control system according to the present embodiment
  • 1 is a schematic diagram showing an implementation example of a robot control system according to an embodiment
  • FIG. 4 is a schematic diagram showing a usage example of a computation node in the robot control system according to the present embodiment
  • FIG. 4 is a schematic diagram showing another usage example of the computation node in the robot control system according to the present embodiment
  • FIG. 4 is a schematic diagram showing a processing example for distributing processing in the robot control system according to the present embodiment
  • FIG. 4 is a schematic diagram showing an example of a user interface screen provided by the robot control system according to the present embodiment
  • 4 is a flow chart showing a processing procedure for realizing distributed arrangement of processing in the robot control system according to the present embodiment
  • FIG. 1 is a schematic diagram showing an application example of the robot control system 1 according to this embodiment.
  • a robot control system 1 controls one or more robots.
  • the robot control system 1 includes an interpretation section 50, an integrated instruction section 60, and a robot control section 70 as functional modules related to robot control. Since the robot control units 70 are basically associated with the robots to be controlled, the same number of robot control units 70 as the robots to be controlled are arranged.
  • the interpretation unit 50 sequentially interprets the control program 30 .
  • the integration instruction unit 60 corresponds to a first module, and generates an intermediate representation according to the interpretation result of the control program 30 by executing one or more processes. More specifically, the integration instruction section 60 executes one or more first processes 80 .
  • the robot control unit 70 corresponds to a second module, and by executing one or more processes, generates a command value for the robot according to the generated intermediate representation. More specifically, the robot controller 70 executes one or more second processes 90 .
  • first processing and second processing are merely expressions for specifying that the executing subject modules are different. Therefore, processes included in a plurality of "first processes” may be the same or different as long as they are originally scheduled to be executed by the integration instruction unit 60 . Similarly, processes included in a plurality of “second processes” may be the same or different as long as they are originally scheduled to be executed by the robot control unit 70. .
  • the robot control system 1 has main computational resources for realizing the integrated instruction section 60 and the robot control section 70 .
  • FIG. 1 shows an example in which the control device 100 is used as the main computational resource, a robot controller mounted on a robot may be used as at least part of the main computational resource.
  • the robot control system 1 includes a first process 80 executed by the integrated instruction section 60 (first module) and a first process 80 executed by the robot control section 70 (second module).
  • the second processes 90 it has an auxiliary computational resource that executes a predesignated process instead of the main computational resource.
  • FIG. 1B shows an example in which one auxiliary processing unit 300 is used as an auxiliary computing resource, a plurality of auxiliary processing units 300 may be used.
  • the processing 82 that is part of the first processing 80 executed by the integration instruction unit 60 is executed using the computational resources (main computational resources) of the control device 100, and the first The remainder of process 80, process 84, is performed using the computational resources of the auxiliary processor 300 (auxiliary computational resources).
  • control device 100 which is the primary computing resource, has a relay connector 86 (first interface) for exchanging data between the process 82 executed by the primary computing resource and the process 84 executed by the auxiliary computing resource. ).
  • auxiliary computing resource auxiliary processing unit 300
  • auxiliary processing unit 300 has a relay connector 88 (second interface).
  • the interpreting unit 50 and the robot control unit 70 can also have the auxiliary processing device 300 execute part of the processing for realizing the functional modules.
  • FIG. 2 is a schematic diagram showing an example of the overall configuration of the robot control system 1 according to this embodiment.
  • robot control system 1 comprises control device 100 and one or more robots 200-1, 200-2, 200-3, . include.
  • a robot control system 1 controls one or more robots 200 .
  • the control device 100 controls the robot 200 according to any control program.
  • the control program may be written, for example, in any high-level language (for example, programming language for robot control such as V+ language or programming language for NC control such as G code).
  • Robot 200 is controlled by the control device 100.
  • Robot 200 can be, for example, an articulated robot, a scalar robot, a mobile robot, an arbitrarily configured robot, or anything else.
  • the control device 100 may be connected to the display device 500 via the host network 10 .
  • a protocol for industrial networks such as EtherNet/IP can be used.
  • Control device 100 is connected to robot 200 via field network 20 .
  • protocols for industrial networks such as EtherCAT (registered trademark) and EtherNet/IP can be used. It should be noted that the field network 20 preferably employs a communication protocol capable of periodic communication.
  • a development support device 400 may be connectable to the control device 100 .
  • the robot control system 1 further includes auxiliary processors 300-1, 300-2, ... (hereinafter collectively referred to as "auxiliary processors 300").
  • auxiliary processors 300 In the configuration example shown in FIG. 2, the auxiliary processing device 300-1 is connected to the host network 10, and the auxiliary processing device 300-2 is connected to the field network 20.
  • FIG. 2 In the configuration example shown in FIG. 2, the auxiliary processing device 300-1 is connected to the host network 10, and the auxiliary processing device 300-2 is connected to the field network 20.
  • FIG. 3 is a schematic diagram showing a hardware configuration example of the control device 100 according to this embodiment.
  • control device 100 includes processor 102, main memory 104, storage 110, host network controller 106, field network controller 108, and USB controller 120 that provides a USB (Universal Serial Bus) interface. , and a memory card interface 122 . These components are connected via processor bus 130 .
  • processor bus 130 main memory 104, storage 110, host network controller 106, field network controller 108, and USB controller 120 that provides a USB (Universal Serial Bus) interface.
  • USB Universal Serial Bus
  • the processor 102 corresponds to an arithmetic processing unit that executes control arithmetic, and is composed of a CPU (Central Processing Unit), a GPU (Graphics Processing Unit), and the like. Specifically, the processor 102 reads out a program stored in the storage 110, develops it in the main memory 104, and executes it, thereby realizing processing as described later.
  • a CPU Central Processing Unit
  • GPU Graphics Processing Unit
  • the main memory 104 is composed of volatile storage devices such as DRAM (Dynamic Random Access Memory) and SRAM (Static Random Access Memory).
  • the storage 110 is configured by, for example, a non-volatile storage device such as an SSD (Solid State Drive) or HDD (Hard Disk Drive).
  • the storage 110 stores system programs 112 and the like for realizing basic functions.
  • the host network controller 106 exchanges data with arbitrary information processing devices (auxiliary processing device 300-1 and display device 500, etc. shown in FIG. 2) via the host network 10.
  • auxiliary processing device 300-1 and display device 500, etc. shown in FIG. 2 exchanges data with arbitrary information processing devices (auxiliary processing device 300-1 and display device 500, etc. shown in FIG. 2) via the host network 10.
  • the field network controller 108 exchanges data with the robot 200 and the auxiliary processing device 300-2 via the field network 20.
  • the USB controller 120 exchanges data with any information processing device via a USB connection.
  • the memory card interface 122 accepts a memory card 124, which is an example of a removable storage medium.
  • the memory card interface 122 is capable of reading/writing arbitrary data from/to the memory card 124 .
  • FIG. 4 is a schematic diagram showing a hardware configuration example of the robot 200 according to this embodiment.
  • robot 200 includes a robot controller 250 and a servo driver 260 .
  • the robot controller 250 includes a field network controller 210 and a control processing circuit 220.
  • the field network controller 210 exchanges data with the control device 100 via the field network 20.
  • control processing circuit 220 executes arithmetic processing necessary to drive the robot 200 .
  • control processing circuitry 220 includes processor 222 , main memory 224 , storage 226 , and interface circuitry 230 .
  • the processor 222 executes control operations for driving the robot.
  • the main memory 224 is composed of, for example, a volatile memory device such as DRAM or SRAM.
  • the storage 226 is configured by, for example, a non-volatile storage device such as SSD or HDD.
  • a system program 228 for controlling the robot 200 is stored in the storage 226 .
  • the interface circuit 230 exchanges signals with the servo driver 260 .
  • Servo driver 260 powers and drives one or more motors 262-1, 262-2, 262-3, . . . , 262-N.
  • Rotation of motors 262-1, 262-2, 262-3, . . . , 262-N changes the position and orientation of robot 200.
  • Auxiliary processing device 300 may be a general-purpose computer or an industrial computer. That is, the auxiliary computing resource can be either a general purpose computer or an industrial computer.
  • FIG. 5 shows a hardware configuration example of the auxiliary processing device 300 according to this embodiment.
  • auxiliary processing unit 300 includes processor 302 such as a CPU or GPU, main memory 304, input unit 306, display unit 308, storage 310, USB controller 320, and network controller 322. including. These components are connected via bus 330 .
  • the processor 302 reads various programs stored in the storage 310, develops them in the main memory 304, and executes them.
  • the storage 310 is composed of, for example, an HDD or SSD.
  • the storage 310 typically stores an OS 312 , a system program 314 and a process execution program 316 .
  • the process execution program 316 may be transferred from the development support device 400 or the like. Further, the storage 310 may store necessary programs other than the programs shown in FIG.
  • the input unit 306 is composed of a mouse, keyboard, touch panel, etc., and receives instructions from the user.
  • a display unit 308 includes a display, various indicators, and the like, and outputs processing results from the processor 302 and the like.
  • the USB controller 320 exchanges data with any information processing device via a USB connection.
  • the network controller 322 exchanges data with any information processing device via any network.
  • FIG. 6 is a schematic diagram showing a hardware configuration example of the development support device 400 according to this embodiment.
  • development support apparatus 400 includes processor 402 such as a CPU or GPU, main memory 404, input unit 406, display unit 408, storage 410, USB controller 420, network controller 422, and , and an optical drive 424 . These components are connected via bus 430 .
  • the processor 402 reads various programs stored in the storage 410, develops them in the main memory 404, and executes them, thereby realizing the processing described later by the development support device 400.
  • the storage 410 is composed of, for example, an HDD or SSD.
  • the storage 410 typically stores an OS 412 and a development support program 414 for realizing processing as described later. Note that the storage 410 may store necessary programs other than the programs shown in FIG.
  • the input unit 406 is composed of a mouse, keyboard, touch panel, etc., and receives instructions from the user.
  • a display unit 408 includes a display, various indicators, and the like, and outputs processing results from the processor 402 and the like.
  • the USB controller 420 exchanges data with any information processing device via a USB connection.
  • the network controller 422 exchanges data with any information processing device via any network.
  • the optical drive 424 reads the program from a recording medium 426 (for example, an optical recording medium such as a DVD) that stores a computer-readable program non-transitory, and stores the program in the storage 410 or the like.
  • a recording medium 426 for example, an optical recording medium such as a DVD
  • Various programs executed by the development support device 400 may be installed via the computer-readable recording medium 426, or may be installed by downloading from any server on the network.
  • Display device 500 may be realized using a general-purpose personal computer as an example. Since the basic hardware configuration example of the display device 500 is well known, detailed description thereof will not be given here.
  • FIG. 3 to 6 show configuration examples in which one or more processors execute programs to provide necessary functions. It may be implemented using a hardware circuit (for example, ASIC (Application Specific Integrated Circuit) or FPGA (Field-Programmable Gate Array)).
  • ASIC Application Specific Integrated Circuit
  • FPGA Field-Programmable Gate Array
  • part or all of the processing necessary for realizing the robot control system according to the present embodiment may be executed using so-called computing resources on the cloud. What kind of hardware resources and software resources are used to realize the robot control system according to the present embodiment can be arbitrarily designed and selected.
  • FIG. 7 is a schematic diagram showing a functional configuration example related to robot control of the robot control system 1 according to the present embodiment.
  • robot control system 1 includes an interpreter 50, an integrated instruction unit 60, and one or more robot controllers 70 as functional modules related to robot control.
  • the interpretation unit 50 sequentially interprets the control program 30 and generates an intermediate representation as an interpretation result.
  • the integrated instruction unit 60 generates an intermediate representation directed to the target robot control unit 70 from the intermediate representation as the interpretation result, and sequentially provides the generated intermediate representation to the target robot control unit 70 . More specifically, the integration instruction unit 60 determines the robot control unit 70 to which the intermediate representation is to be sent, based on the identification information included in the intermediate representation.
  • the robot control unit 70 is prepared for each robot 200.
  • Each robot control unit 70 generates an internal command corresponding to the intermediate representation received from the integrated instruction unit 60, and generates a command value for each control cycle according to the generated internal command.
  • the command value for each control cycle may be, for example, a target position (target angle) or target velocity (target angular velocity) for each of the motors 262 forming the robot 200 .
  • the robot control unit 70 generates a trajectory for the robot 200 to move according to the generated internal command, and calculates the position (angle) of each axis for realizing the generated trajectory by kinematics calculation. calculate.
  • the interpretation unit 50, the integrated instruction unit 60, and one or more robot control units 70 may all be implemented in the control device 100, or some of them may be implemented in another device.
  • FIG. 8 is a schematic diagram showing an implementation example of the robot control system 1 according to this embodiment.
  • FIG. 8A shows an example in which the interpretation unit 50, the integrated instruction unit 60, and one or more robot control units 70 are implemented in the control device 100.
  • controller 100 is used as the primary computing resource.
  • FIG. 8(B) shows an example in which the integrated instruction unit 60 and the robot control unit 70 are implemented in the control device 100 and each of the robot control units 70 is implemented in the robot 200 .
  • controller 100 and robot 200 are used as primary computing resources.
  • the integrated instruction unit 60 and the robot control unit 70 are implemented in the control device 100, part of the robot control unit 70 is implemented in the control device 100, and the remaining robot control unit 70 is implemented by the robot. 200 implementation.
  • controller 100 and robot 200 are used as primary computing resources.
  • the interpretation unit 50 may be implemented in an information processing device different from the control device 100 .
  • functional modules for realizing robot control can be arranged in any device. Note that it is an arbitrary design matter in which device each functional module is arranged.
  • the auxiliary processing device 300 can be used as a computation node. More specifically, the auxiliary processing device 300 can execute any part of the processing executed by the functional modules related to robot control. That is, the auxiliary processing unit 300 is used as an auxiliary computing resource.
  • a plurality of functional modules related to robot control can be distributed to different computational resources, and processes executed by arbitrary functional modules can also be different. It can be distributed in computing resources (auxiliary computing resources).
  • FIG. 9 is a schematic diagram showing an example of use of computation nodes in the robot control system 1 according to this embodiment.
  • FIG. 9A shows an example in which the integration instruction unit 60 executes one or more processes.
  • the first processing 80 executed by the integration instruction section 60 includes processing for realizing the functions that the integration instruction section 60 should provide.
  • the first process 80 requires hardware resources such as the processor 102 and the main memory 104 of the control device 100, for example. Therefore, when a plurality of functional modules are installed in the control device 100, there is a possibility that computational resources will be insufficient. In such a case, computational resources provided by the auxiliary processing unit 300 may be used.
  • FIG. 9(B) shows an example in which the auxiliary processing device 300 executes part of the first process 80 executed by the integration instruction unit 60 arranged in the control device 100 . That is, the processing 82, which is a part of the first processing 80 executed by the integration instruction unit 60, is executed using the computational resources of the control device 100, and the processing 84, which is the remainder of the first processing 80, is executed by the auxiliary processing device 300. of computational resources.
  • a relay connector 86 is arranged in the control device 100 and a relay connector 88 is arranged in the auxiliary processing device 300 in order to exchange necessary data between processes. Also, the process execution program 316 (FIG. 5) required for the auxiliary processing unit 300 to execute the process 84 is transferred to the auxiliary processing unit 300 .
  • an auxiliary processing device 300-1 connected to the control device 100 via the host network 10 can be used, or an auxiliary processing device 300-1 connected to the control device 100 via the field network 20 can be used.
  • An auxiliary processor 300-2 can also be used.
  • FIG. 10 is a schematic diagram showing another usage example of the computation node in the robot control system 1 according to this embodiment.
  • FIG. 10A shows an example in which the robot control unit 70 executes one or more processes.
  • the second processing 90 executed by the robot control unit 70 includes processing for realizing functions to be provided by the robot control unit 70 .
  • the second process 90 requires hardware resources such as the processor 222 and main memory 224 of the robot controller 250 of the robot 200 . Processing beyond the computational resources of the robot controller 250 may be required to achieve the desired motion. In such a case, computational resources provided by the auxiliary processing unit 300 may be used.
  • FIG. 10B shows an example in which the auxiliary processing device 300 executes part of the second processing 90 executed by the robot control unit 70 arranged in the control device 100 . That is, the processing 92, which is a part of the second processing 90 executed by the robot control unit 70, is executed using the computational resources of the control device 100, and the processing 94, which is the remainder of the second processing 90, is executed by the auxiliary processing device 300. of computational resources.
  • a relay connector 96 is arranged in the control device 100 and a relay connector 98 is arranged in the auxiliary processing device 300 in order to exchange necessary data between processes. Also, the processing execution program 316 (FIG. 5) required for executing the processing 94 executed by the auxiliary processing unit 300 is transferred to the auxiliary processing unit 300 .
  • an auxiliary processing device 300-1 connected to the control device 100 via the host network 10 can be used, or an auxiliary processing device 300-1 connected to the control device 100 via the field network 20 can be used.
  • An auxiliary processor 300-2 can also be used.
  • the robot control unit 70 is arranged in the robot 200, an auxiliary processor 300-2 connected to the robot 200 via the field network 20 can be used.
  • the auxiliary processing device 300 which is an auxiliary computational resource, preliminarily performs The specified processing is executed instead of the control device 100 (or the robot controller 250), which is the main computing resource.
  • the control device 100 (or the robot controller 250), which is the main computing resource, performs processing executed by the main computing resource and processing executed by the auxiliary computing resource.
  • Intermediate connectors 86 and 96 are included as an interface for exchanging data to and from processes that
  • auxiliary processing unit 300 which is an auxiliary computing resource, includes relay connectors 88 and 98 as an interface for exchanging data between the processing executed by the auxiliary computing resource and the processing executed by the main computing resource. .
  • FIGS. 9(B) and 10(B) are typically realized by the processing shown below.
  • Processing for Distributing Processing may be mainly executed by development support device 400 .
  • the development support device 400 accepts the user's specification of processing, and makes settings for executing the processing specified by the user with the auxiliary computing resource.
  • FIG. 11 is a schematic diagram showing a processing example for distributing processing in the robot control system 1 according to the present embodiment.
  • development support device 400 receives settings from the user ((1) user settings).
  • the settings from the user include designation of processing to be executed by the auxiliary processing unit 300, and the like.
  • the development support device 400 generates necessary data according to the settings from the user ((2) data generation). More specifically, the data to be generated includes the processing execution program 316 for causing the auxiliary processing unit 300 to execute the designated processing, and the setting of relay connectors arranged in the control unit 100 and the auxiliary processing unit 300. include.
  • the development support device 400 performs necessary settings for the control device 100 (or the robot 200) based on the generated data ((3) settings). Based on the generated data, the development support device 400 transfers necessary programs to the auxiliary processing device 300 and performs necessary settings for the auxiliary processing device 300 ((4) program transfer + setting).
  • auxiliary processing unit 300 Through such a series of processes, it is possible to cause the auxiliary processing unit 300 to execute the processing specified by the user, and exchange necessary data between the control unit 100 (or the robot 200) and the auxiliary processing unit 300. can do.
  • FIG. 12 is a schematic diagram showing an example of a user interface screen provided by the robot control system 1 according to this embodiment.
  • the user interface screen shown in FIG. 12 is provided by development support device 400 .
  • FIG. 12 shows an example of a user interface screen directed to the integration instruction section 60. As shown in FIG.
  • user interface screen 450 includes a resource display portion 460, a processing setting portion 470, and an apply button 480.
  • the resource display section 460 shows available computing resources for each device capable of executing processing (in this example, the control device 100 and the auxiliary processing device 300).
  • the resource display section 460 includes a value 461 indicating computing resources available in the control device 100 and a value 462 indicating computing resources available in the auxiliary processing device 300 .
  • the development support device 400 presents information indicating the size of computational resources that can be provided by the main computational resource (control device 100) and the auxiliary computational resource (auxiliary processing device 300).
  • the processing setting unit 470 accepts selection of a device that executes processing. More specifically, the process setting unit 470 includes a process name column 471 indicating the target process, a description column 472 indicating the details of each process, a parameter column 473 indicating parameters required by each process, and each process and a cost column 475 indicating the calculation cost required by each process.
  • the value of the distributed arrangement setting column 474 corresponding to the determined process is set. Set to "Yes".
  • the development support device 400 When the user presses the apply button 480, the development support device 400 generates the necessary data according to the settings from the user.
  • the development support device 400 performs at least some of the processes executed by the integrated instruction unit 60 and the processes executed by the robot control unit 70 (process name column 471) and at least some of the processes executed by the robot control unit 70.
  • a cost column 475 is presented that indicates the degree of computational resources required for processing.
  • the target process differs for each functional module, so the user interface screen 450 may be prepared for each functional module.
  • FIG. 13 is a flowchart showing a processing procedure for realizing distributed arrangement of processing in the robot control system 1 according to this embodiment. That is, FIG. 13 shows a method of configuring a robot control system 1 that controls one or more robots 200 . Each step shown in FIG. 13 may typically be implemented by processor 402 of development support device 400 executing development support program 414 .
  • development support apparatus 400 sets each of interpretation unit 50, integrated instruction unit 60 and robot control unit 70 as main computational resources according to user's setting operation. 250) (step S100).
  • the development support device 400 acquires the processing states of the target control device 100, the robot 200, and the auxiliary processing device 300 (step S104).
  • a user interface screen 450 as shown in is displayed (step S106).
  • the development support device 400 receives a setting operation from the user on the user interface screen 450 (step S108), and when the apply button 480 is pressed (step S110), generates necessary data according to the setting contents (step S112). ).
  • the development support device 400 performs necessary settings for the control device 100 and/or the robot 200 based on the generated data (step S114).
  • an interface for exchanging data with the process executed by the auxiliary computing resource is arranged in the control device 100 or the robot 200 (robot controller 250), which is the main computing resource.
  • the development support device 400 transfers necessary programs to the auxiliary processing device 300 based on the generated data, and performs necessary settings for the auxiliary processing device 300 (step S116). With this setting, predesignated processing among the processing executed by the integration instruction unit 60 and the processing executed by the robot control unit 70 is executed by the auxiliary computing resource instead of the main computing resource.
  • a series of processes are completed by the above.
  • the control device 100 and/or the robot 200 stops execution of a part of the process and activates the relay connector according to the settings from the development support device 400 .
  • the robot controller 350 stores and activates the program transferred from the development support device 400 and activates the relay connector according to the settings from the development support device 400 .
  • Such a series of processes allows the processes to be distributed.
  • said primary computing resource includes a first interface (86; 96) for exchanging data between processing performed on said primary computing resource and processing performed on said auxiliary computing resource.
  • Control system according to configuration 1 or 2, further comprising a development support device (400) that accepts designation of processing by a user and performs settings for executing the processing designated by the user on the auxiliary computing resource.
  • a development support device 400
  • the development support device presents at least part of the first process and the second process (471) and information (475) indicating the degree of computational resources required for the at least part of the process.
  • the control system of configuration 3 wherein:
  • Robot control system 10. Upper network, 20. Field network, 30. Control program, 50. Interpretation unit, 60. Integrated instruction unit, 70. Robot control unit, 80. First processing, 82, 84, 92, 94. Processing, 86, 88, 96, 98 relay connector, 90 second processing, 100 control device, 102, 222, 302, 402 processor, 104, 224, 304, 404 main memory, 106 upper network controller, 108, 210 field network controller, 110, 226 , 310, 410 storage, 112, 228, 314 system program, 120, 320, 420 USB controller, 122 memory card interface, 124 memory card, 130 processor bus, 200 robot, 220 control processing circuit, 230 interface circuit, 250, 350 Robot controller, 260 servo driver, 262 motor, 300 auxiliary processing unit, 306, 406 input unit, 308, 408 display unit, 312, 412 OS, 316 processing execution program, 322, 422 network controller, 330, 430 bus, 400 development Support device, 414 Development support program,

Abstract

This control system includes: a first module for generating an intermediate expression in accordance with an interpretation result of a control program; a second module for generating a command value for a robot in accordance with the generated intermediate expression; a main calculation resource for realizing the first module and the second module; and an auxiliary calculation resource for executing, in place of the main calculation resource, a predesignated process among a first process and a second process. The main calculation resource includes a first interface for exchanging data between the process executed by the main calculation resource and the process executed by the auxiliary calculation resource.

Description

ロボット制御システムおよびロボット制御システムを構成する方法A robot control system and how to configure a robot control system
 本発明は、ロボット制御システムおよび当該ロボット制御システムを構成する方法に関する。 The present invention relates to a robot control system and a method of configuring the robot control system.
 生産現場において、様々なロボットの導入および実用化が進行している。生産設備と連携してロボットを動作させる必要なども生じるため、共通の制御装置により1または複数のロボットを制御するような構成が開示されている(特許文献1~4参照)。 Various robots are being introduced and put into practical use at production sites. Since there is a need to operate robots in cooperation with production equipment, configurations are disclosed in which one or more robots are controlled by a common control device (see Patent Documents 1 to 4).
特開2021-142625号公報JP 2021-142625 A 特開2021-144586号公報JP 2021-144586 A 特開2021-144587号公報JP 2021-144587 A 特開2021-144588号公報JP 2021-144588 A
 例えば、複数のロボットを連係して動作させる場合や、複雑な動作を行わせる場合などにおいては、処理の計算コストが大きくなり得る。 For example, the computational cost of processing can be high when multiple robots are to work together or perform complex actions.
 本発明は、ロボットの動作を実現するために要求される計算リソースの変化に対して柔軟に対応できる技術を提供することを目的としている。 The purpose of the present invention is to provide technology that can flexibly respond to changes in computational resources required to realize robot operations.
 本発明のある局面に従えば、1または複数のロボットを制御する制御システムが提供される。制御システムは、1または複数の第1の処理を実行することで、制御プログラムの解釈結果に従って中間表現を生成する第1のモジュールと、1または複数の第2の処理を実行することで、生成される中間表現に従ってロボットに対する指令値を生成する第2のモジュールと、第1のモジュールおよび第2のモジュールを実現するための主計算リソースと、第1の処理および第2の処理のうち、予め指定された処理を、主計算リソースに代わって実行する補助計算リソースとを含む。主計算リソースは、主計算リソースで実行される処理と補助計算リソースで実行される処理との間でデータをやり取りするための第1のインターフェイスを含む。 According to one aspect of the invention, a control system is provided for controlling one or more robots. The control system includes a first module that generates an intermediate representation according to an interpretation result of a control program by executing one or more first processes, and a first module that generates an intermediate representation by executing one or more second processes. a second module for generating a command value for the robot according to the intermediate representation, a main computing resource for realizing the first module and the second module, and the first processing and the second processing, wherein and auxiliary computing resources that perform specified processing on behalf of the primary computing resource. The primary computing resource includes a first interface for exchanging data between processing performed on the primary computing resource and processing performed on the auxiliary computing resource.
 この構成によれば、主計算リソースが実行する処理のうち、任意に指定された処理を補助計算リソースで実行させることができるので、主計算リソースだけでは実行が難しい処理であっても、補助計算リソースを組み合わせることで実行が可能になる。これによって、ロボットの動作を実現するために要求される計算リソースの変化に対して柔軟に対応できる。 According to this configuration, among the processes executed by the main computing resources, the auxiliary computing resources can be made to execute arbitrarily specified processes. Execution becomes possible by combining resources. This makes it possible to flexibly respond to changes in computational resources required to realize robot motions.
 補助計算リソースは、補助計算リソースで実行される処理と主計算リソースで実行される処理との間でデータをやり取りするための第2のインターフェイスを含んでいてもよい。この構成によれば、主計算リソースが実行する処理と、補助計算リソースが実行する処理との間で任意のデータをやり取りできる。 The auxiliary computing resource may include a second interface for exchanging data between processing performed on the auxiliary computing resource and processing performed on the primary computing resource. According to this configuration, arbitrary data can be exchanged between the process executed by the main computational resource and the process executed by the auxiliary computational resource.
 ユーザによる処理の指定を受け付けるとともに、ユーザにより指定された処理を補助計算リソースで実行させるための設定を行なう開発支援装置をさらに含んでいてもよい。この構成によれば、ユーザは、開発支援装置を操作して、任意の処理を補助計算リソースで実行させることができる。 It may further include a development support device that accepts a user's specification of processing and performs settings for executing the processing specified by the user with an auxiliary computing resource. According to this configuration, the user can operate the development support device to cause the auxiliary computing resource to execute arbitrary processing.
 開発支援装置は、第1の処理および第2の処理のうち、少なくとも一部の処理と、当該少なくとも一部の処理で必要な計算リソースの度合いを示す情報とを提示するようにしてもよい。この構成によれば、ユーザは、いずれの処理を補助計算リソースで実行させるかをより容易に決定できる。 The development support device may present at least part of the first process and the second process, and information indicating the degree of computational resources required for the at least part of the process. According to this configuration, the user can more easily determine which process should be executed by the auxiliary computing resource.
 開発支援装置は、主計算リソースおよび補助計算リソースが提供可能な計算リソースの大きさを示す情報を提示するようにしてもよい。この構成によれば、ユーザは、主計算リソースおよび補助計算リソースのいずれで処理を実行させるのかをより容易に決定できる。 The development support device may present information indicating the size of computational resources that can be provided by the main computational resource and the auxiliary computational resource. According to this configuration, the user can more easily determine which of the main computational resource and the auxiliary computational resource is to be used for processing.
 補助計算リソースは、汎用コンピュータであってもよい。この構成によれば、相対的に低いコストで補助計算リソースを実現できる。 Auxiliary computing resources may be general-purpose computers. According to this configuration, auxiliary computational resources can be realized at relatively low cost.
 補助計算リソースは、産業用コンピュータであってもよい。この構成によれば、安定動作可能な補助計算リソースを実現できる。 The auxiliary computing resource may be an industrial computer. According to this configuration, it is possible to realize an auxiliary computing resource capable of stable operation.
 本発明の別の局面に従えば、1または複数のロボットを制御する制御システムを構成する方法が提供される。方法は、または複数の第1の処理を実行することで、制御プログラムの解釈結果に従って中間表現を生成する第1のモジュールを主計算リソースに配置するステップと、1または複数の第2の処理を実行することで、生成される中間表現に従ってロボットに対する指令値を生成する第2のモジュールを主計算リソースに配置するステップと、第1の処理および第2の処理のうち、予め指定された処理を、主計算リソースに代わって補助計算リソースに実行させるように設定するステップと、主計算リソースに、補助計算リソースで実行される処理との間でデータをやり取りするためのインターフェイスを配置するステップとを含む。 According to another aspect of the invention, a method of configuring a control system for controlling one or more robots is provided. The method includes placing on a main computing resource a first module that generates an intermediate representation according to an interpretation result of a control program by executing a plurality of first processes; and one or more second processes. arranging a second module on the main computing resource for generating a command value for the robot according to the generated intermediate representation by execution; , configuring the auxiliary computing resource to execute on behalf of the primary computing resource; and providing the primary computing resource with an interface for passing data to and from the processing running on the auxiliary computing resource. include.
 本発明によれば、ロボットの動作を実現するために要求される計算リソースの変化に対して柔軟に対応できる。 According to the present invention, it is possible to flexibly respond to changes in computational resources required to realize robot operations.
本実施の形態に係るロボット制御システムの適用例を示す模式図である。1 is a schematic diagram showing an application example of a robot control system according to an embodiment; FIG. 本実施の形態に係るロボット制御システムの全体構成例を示す模式図である。1 is a schematic diagram showing an example of the overall configuration of a robot control system according to an embodiment; FIG. 本実施の形態に係る制御装置のハードウェア構成例を示す模式図である。2 is a schematic diagram showing a hardware configuration example of a control device according to the present embodiment; FIG. 本実施の形態に係るロボットのハードウェア構成例を示す模式図である。1 is a schematic diagram showing a hardware configuration example of a robot according to an embodiment; FIG. 本実施の形態に係る補助処理装置のハードウェア構成例を示す。2 shows an example hardware configuration of an auxiliary processing device according to the present embodiment. 本実施の形態に係る開発支援装置のハードウェア構成例を示す模式図である。1 is a schematic diagram showing a hardware configuration example of a development support device according to an embodiment; FIG. 本実施の形態に係るロボット制御システムのロボット制御に係る機能構成例を示す模式図である。FIG. 2 is a schematic diagram showing a functional configuration example related to robot control of the robot control system according to the present embodiment; 本実施の形態に係るロボット制御システムの実装例を示す模式図である。1 is a schematic diagram showing an implementation example of a robot control system according to an embodiment; FIG. 本実施の形態に係るロボット制御システムにおける計算ノードの利用例を示す模式図である。FIG. 4 is a schematic diagram showing a usage example of a computation node in the robot control system according to the present embodiment; 本実施の形態に係るロボット制御システムにおける計算ノードの別の利用例を示す模式図である。FIG. 4 is a schematic diagram showing another usage example of the computation node in the robot control system according to the present embodiment; 本実施の形態に係るロボット制御システムにおける処理を分散配置するための処理例を示す模式図である。FIG. 4 is a schematic diagram showing a processing example for distributing processing in the robot control system according to the present embodiment; 本実施の形態に係るロボット制御システムが提供するユーザインターフェイス画面の一例を示す模式図である。FIG. 4 is a schematic diagram showing an example of a user interface screen provided by the robot control system according to the present embodiment; 本実施の形態に係るロボット制御システムにおける処理の分散配置を実現するための処理手順を示すフローチャートである。4 is a flow chart showing a processing procedure for realizing distributed arrangement of processing in the robot control system according to the present embodiment;
 本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰り返さない。 Embodiments of the present invention will be described in detail with reference to the drawings. The same or corresponding parts in the drawings are given the same reference numerals, and the description thereof will not be repeated.
 <A.適用例>
 まず、図1を参照して、本発明が適用される場面の一例について説明する。
<A. Application example>
First, with reference to FIG. 1, an example of a scene to which the present invention is applied will be described.
 図1は、本実施の形態に係るロボット制御システム1の適用例を示す模式図である。ロボット制御システム1は、1または複数のロボットを制御する。 FIG. 1 is a schematic diagram showing an application example of the robot control system 1 according to this embodiment. A robot control system 1 controls one or more robots.
 図1(A)を参照して、ロボット制御システム1は、ロボット制御に係る機能モジュールとして、解釈部50と、統合指示部60と、ロボット制御部70とを含む。なお、基本的には、ロボット制御部70は、制御対象のロボットに対応付けられるため、制御対象のロボットと同数のロボット制御部70が配置される。 With reference to FIG. 1(A), the robot control system 1 includes an interpretation section 50, an integrated instruction section 60, and a robot control section 70 as functional modules related to robot control. Since the robot control units 70 are basically associated with the robots to be controlled, the same number of robot control units 70 as the robots to be controlled are arranged.
 解釈部50は、制御プログラム30を逐次解釈する。
 統合指示部60は、第1のモジュールに相当し、1または複数の処理を実行することで、制御プログラム30の解釈結果に従って中間表現を生成する。より具体的には、統合指示部60は、1または複数の第1の処理80を実行する。
The interpretation unit 50 sequentially interprets the control program 30 .
The integration instruction unit 60 corresponds to a first module, and generates an intermediate representation according to the interpretation result of the control program 30 by executing one or more processes. More specifically, the integration instruction section 60 executes one or more first processes 80 .
 ロボット制御部70は、第2のモジュールに相当し、1または複数の処理を実行することで、生成される中間表現に従ってロボットに対する指令値を生成する。より具体的には、ロボット制御部70は、1または複数の第2の処理90を実行する。 The robot control unit 70 corresponds to a second module, and by executing one or more processes, generates a command value for the robot according to the generated intermediate representation. More specifically, the robot controller 70 executes one or more second processes 90 .
 本明細書において、「第1の処理」および「第2の処理」との用語は、実行主体のモジュールが異なっていることを特定するための表現にすぎない。そのため、複数の「第1の処理」に含まれる処理は、本来的に統合指示部60で実行されることが予定されていれば、互いに同一であってもよいし、異なっていてもよい。同様に、複数の「第2の処理」に含まれる処理は、本来的にロボット制御部70で実行されることが予定されていれば、互いに同一であってもよいし、異なっていてもよい。 In this specification, the terms "first processing" and "second processing" are merely expressions for specifying that the executing subject modules are different. Therefore, processes included in a plurality of "first processes" may be the same or different as long as they are originally scheduled to be executed by the integration instruction unit 60 . Similarly, processes included in a plurality of "second processes" may be the same or different as long as they are originally scheduled to be executed by the robot control unit 70. .
 ロボット制御システム1は、統合指示部60およびロボット制御部70を実現するための主計算リソースを有している。図1には、主計算リソースとして、制御装置100が用いられる例を示すが、ロボットに搭載されるロボットコントローラが主計算リソースの少なくとも一部として用いられてもよい。 The robot control system 1 has main computational resources for realizing the integrated instruction section 60 and the robot control section 70 . Although FIG. 1 shows an example in which the control device 100 is used as the main computational resource, a robot controller mounted on a robot may be used as at least part of the main computational resource.
 図1(B)を参照して、ロボット制御システム1は、統合指示部60(第1のモジュール)が実行する第1の処理80、および、ロボット制御部70(第2のモジュール)が実行する第2の処理90のうち、予め指定された処理を、主計算リソースに代わって実行する補助計算リソースを有している。図1(B)には、補助計算リソースとして、1つの補助処理装置300が用いられる例を示すが、複数の補助処理装置300が用いられてもよい。 With reference to FIG. 1B, the robot control system 1 includes a first process 80 executed by the integrated instruction section 60 (first module) and a first process 80 executed by the robot control section 70 (second module). Among the second processes 90, it has an auxiliary computational resource that executes a predesignated process instead of the main computational resource. Although FIG. 1B shows an example in which one auxiliary processing unit 300 is used as an auxiliary computing resource, a plurality of auxiliary processing units 300 may be used.
 図1(B)に示す例では、統合指示部60が実行する第1の処理80の一部である処理82を制御装置100の計算リソース(主計算リソース)が用いて実行され、第1の処理80の残りである処理84が補助処理装置300の計算リソース(補助計算リソース)を用いて実行される。 In the example shown in FIG. 1B, the processing 82 that is part of the first processing 80 executed by the integration instruction unit 60 is executed using the computational resources (main computational resources) of the control device 100, and the first The remainder of process 80, process 84, is performed using the computational resources of the auxiliary processor 300 (auxiliary computational resources).
 この場合、主計算リソースである制御装置100は、主計算リソースで実行される処理82と補助計算リソースで実行される処理84との間でデータをやり取りするための中継コネクタ86(第1のインターフェイス)を有することになる。 In this case, the control device 100, which is the primary computing resource, has a relay connector 86 (first interface) for exchanging data between the process 82 executed by the primary computing resource and the process 84 executed by the auxiliary computing resource. ).
 同様に、補助計算リソースである補助処理装置300は、補助計算リソースで実行される処理84と主計算リソースで実行される処理82との間でデータをやり取りするための中継コネクタ88(第2のインターフェイス)を有することになる。 Similarly, the auxiliary computing resource, auxiliary processing unit 300, has a relay connector 88 (second interface).
 なお、解釈部50およびロボット制御部70についても同様に、機能モジュールを実現するための処理の一部を補助処理装置300で実行させることができる。 It should be noted that the interpreting unit 50 and the robot control unit 70 can also have the auxiliary processing device 300 execute part of the processing for realizing the functional modules.
 このような構成を採用することで、主計算リソースの計算リソースが不足するような場合であっても、補助処理装置300(補助計算リソース)を適宜追加することで、必要な計算リソースを確保できる。よって、ロボットの動作を実現するために要求される計算リソースの変化に対して柔軟に対応できる。 By adopting such a configuration, even if the calculation resources of the main calculation resources are insufficient, the necessary calculation resources can be secured by appropriately adding the auxiliary processing unit 300 (auxiliary calculation resources). . Therefore, it is possible to flexibly respond to changes in computational resources required to realize the motion of the robot.
 <B.ハードウェア構成例>
 次に、本実施の形態に係るロボット制御システム1のハードウェア構成例について説明する。
<B. Hardware configuration example>
Next, a hardware configuration example of the robot control system 1 according to this embodiment will be described.
 (b1:全体構成例)
 図2は、本実施の形態に係るロボット制御システム1の全体構成例を示す模式図である。図2を参照して、ロボット制御システム1は、制御装置100と、1または複数のロボット200-1,200-2,200-3,…(以下、「ロボット200」とも総称する。)とを含む。ロボット制御システム1は、1または複数のロボット200を制御する。
(b1: Overall configuration example)
FIG. 2 is a schematic diagram showing an example of the overall configuration of the robot control system 1 according to this embodiment. Referring to FIG. 2, robot control system 1 comprises control device 100 and one or more robots 200-1, 200-2, 200-3, . include. A robot control system 1 controls one or more robots 200 .
 制御装置100は、任意の制御プログラムに従ってロボット200を制御する。制御プログラムは、例えば、任意の高級言語(例えば、V+言語などのロボット制御用プログラミング言語やGコードなどのNC制御に係るプログラミング言語)で記述されていてもよい。 The control device 100 controls the robot 200 according to any control program. The control program may be written, for example, in any high-level language (for example, programming language for robot control such as V+ language or programming language for NC control such as G code).
 ロボット200は、制御装置100によって制御される。ロボット200は、例えば、多関節ロボット、スカラーロボット、モバイルロボット、任意に構成されたロボットなどどのようなものであってもよい。 The robot 200 is controlled by the control device 100. Robot 200 can be, for example, an articulated robot, a scalar robot, a mobile robot, an arbitrarily configured robot, or anything else.
 制御装置100は、上位ネットワーク10を介して、表示装置500と接続されていてもよい。上位ネットワーク10には、産業用ネットワーク用のプロトコルであるやEtherNet/IPなどを用いることができる。制御装置100は、フィールドネットワーク20を介してロボット200と接続されている。フィールドネットワーク20には、産業用ネットワーク用のプロトコルである、EtherCAT(登録商標)やEtherNet/IPなどを用いることができる。なお、フィールドネットワーク20には、定周期通信が可能な通信プロトコルを採用することが好ましい。制御装置100には、開発支援装置400が接続可能になっていてもよい。 The control device 100 may be connected to the display device 500 via the host network 10 . For the upper network 10, a protocol for industrial networks such as EtherNet/IP can be used. Control device 100 is connected to robot 200 via field network 20 . For the field network 20, protocols for industrial networks such as EtherCAT (registered trademark) and EtherNet/IP can be used. It should be noted that the field network 20 preferably employs a communication protocol capable of periodic communication. A development support device 400 may be connectable to the control device 100 .
 ロボット制御システム1は、補助処理装置300-1,300-2,…(以下、「補助処理装置300」とも総称する。)をさらに含む。図2に示す構成例においては、補助処理装置300-1は上位ネットワーク10に接続されており、補助処理装置300-2はフィールドネットワーク20に接続されている。 The robot control system 1 further includes auxiliary processors 300-1, 300-2, ... (hereinafter collectively referred to as "auxiliary processors 300"). In the configuration example shown in FIG. 2, the auxiliary processing device 300-1 is connected to the host network 10, and the auxiliary processing device 300-2 is connected to the field network 20. FIG.
 (b2:制御装置100)
 図3は、本実施の形態に係る制御装置100のハードウェア構成例を示す模式図である。図3を参照して、制御装置100は、プロセッサ102と、メインメモリ104と、ストレージ110と、上位ネットワークコントローラ106と、フィールドネットワークコントローラ108と、USB(Universal Serial Bus)インターフェイスを提供するUSBコントローラ120と、メモリカードインターフェイス122とを含む。これらのコンポーネントは、プロセッサバス130を介して接続されている。
(b2: control device 100)
FIG. 3 is a schematic diagram showing a hardware configuration example of the control device 100 according to this embodiment. Referring to FIG. 3, control device 100 includes processor 102, main memory 104, storage 110, host network controller 106, field network controller 108, and USB controller 120 that provides a USB (Universal Serial Bus) interface. , and a memory card interface 122 . These components are connected via processor bus 130 .
 プロセッサ102は、制御演算を実行する演算処理部に相当し、CPU(Central Processing Unit)やGPU(Graphics Processing Unit)などで構成される。具体的には、プロセッサ102は、ストレージ110に格納されたプログラムを読み出して、メインメモリ104に展開して実行することで、後述するような処理を実現する。 The processor 102 corresponds to an arithmetic processing unit that executes control arithmetic, and is composed of a CPU (Central Processing Unit), a GPU (Graphics Processing Unit), and the like. Specifically, the processor 102 reads out a program stored in the storage 110, develops it in the main memory 104, and executes it, thereby realizing processing as described later.
 メインメモリ104は、DRAM(Dynamic Random Access Memory)やSRAM(Static Random Access Memory)などの揮発性記憶装置などで構成される。ストレージ110は、例えば、SSD(Solid State Drive)やHDD(Hard Disk Drive)などの不揮発性記憶装置などで構成される。 The main memory 104 is composed of volatile storage devices such as DRAM (Dynamic Random Access Memory) and SRAM (Static Random Access Memory). The storage 110 is configured by, for example, a non-volatile storage device such as an SSD (Solid State Drive) or HDD (Hard Disk Drive).
 ストレージ110には、基本的な機能を実現するためのシステムプログラム112などが格納される。 The storage 110 stores system programs 112 and the like for realizing basic functions.
 上位ネットワークコントローラ106は、上位ネットワーク10を介して、任意の情報処理装置(図2に示される補助処理装置300-1および表示装置500など)との間でデータをやり取りする。 The host network controller 106 exchanges data with arbitrary information processing devices (auxiliary processing device 300-1 and display device 500, etc. shown in FIG. 2) via the host network 10. FIG.
 フィールドネットワークコントローラ108は、フィールドネットワーク20を介して、ロボット200および補助処理装置300-2との間でデータをやり取りする。 The field network controller 108 exchanges data with the robot 200 and the auxiliary processing device 300-2 via the field network 20.
 USBコントローラ120は、USB接続を介して、任意の情報処理装置との間でデータをやり取りする。 The USB controller 120 exchanges data with any information processing device via a USB connection.
 メモリカードインターフェイス122は、着脱可能な記憶媒体の一例であるメモリカード124を受け付ける。メモリカードインターフェイス122は、メモリカード124に対して任意のデータの読み書きが可能になっている。 The memory card interface 122 accepts a memory card 124, which is an example of a removable storage medium. The memory card interface 122 is capable of reading/writing arbitrary data from/to the memory card 124 .
 (b3:ロボット200)
 図4は、本実施の形態に係るロボット200のハードウェア構成例を示す模式図である。図4を参照して、ロボット200は、ロボットコントローラ250と、サーボドライバ260とを含む。
(b3: robot 200)
FIG. 4 is a schematic diagram showing a hardware configuration example of the robot 200 according to this embodiment. Referring to FIG. 4, robot 200 includes a robot controller 250 and a servo driver 260 .
 ロボットコントローラ250は、フィールドネットワークコントローラ210と、制御処理回路220とを含む。 The robot controller 250 includes a field network controller 210 and a control processing circuit 220.
 フィールドネットワークコントローラ210は、フィールドネットワーク20を介して、制御装置100との間でデータをやり取りする。 The field network controller 210 exchanges data with the control device 100 via the field network 20.
 制御処理回路220は、ロボット200を駆動するために必要な演算処理を実行する。一例として、制御処理回路220は、プロセッサ222と、メインメモリ224と、ストレージ226と、インターフェイス回路230とを含む。 The control processing circuit 220 executes arithmetic processing necessary to drive the robot 200 . As an example, control processing circuitry 220 includes processor 222 , main memory 224 , storage 226 , and interface circuitry 230 .
 プロセッサ222は、ロボットを駆動するための制御演算を実行する。メインメモリ224は、例えば、DRAMやSRAMなどの揮発性記憶装置などで構成される。ストレージ226は、例えば、SSDやHDDなどの不揮発性記憶装置などで構成される。 The processor 222 executes control operations for driving the robot. The main memory 224 is composed of, for example, a volatile memory device such as DRAM or SRAM. The storage 226 is configured by, for example, a non-volatile storage device such as SSD or HDD.
 ストレージ226には、ロボット200の制御を実現するためのシステムプログラム228が格納される。 A system program 228 for controlling the robot 200 is stored in the storage 226 .
 インターフェイス回路230は、サーボドライバ260との間で信号をやり取りする。
 サーボドライバ260は、1または複数のモータ262-1,262-2,262-3,…,262-Nに電力を供給して駆動する。モータ262-1,262-2,262-3,…,262-Nは、ロボット200を構成する軸と機械的に連結されている。モータ262-1,262-2,262-3,…,262-Nが回転することで、ロボット200の位置および姿勢が変化することになる。
The interface circuit 230 exchanges signals with the servo driver 260 .
Servo driver 260 powers and drives one or more motors 262-1, 262-2, 262-3, . . . , 262-N. Motors 262-1, 262-2, 262-3, . Rotation of motors 262-1, 262-2, 262-3, . . . , 262-N changes the position and orientation of robot 200. FIG.
 (b4:補助処理装置300)
 本実施の形態に係る補助処理装置300は、汎用コンピュータであってもよいし、産業用コンピュータであってもよい。すなわち、補助計算リソースは、汎用コンピュータおよび産業用コンピュータのいずれであってもよい。
(b4: Auxiliary processing device 300)
Auxiliary processing device 300 according to the present embodiment may be a general-purpose computer or an industrial computer. That is, the auxiliary computing resource can be either a general purpose computer or an industrial computer.
 図5は、本実施の形態に係る補助処理装置300のハードウェア構成例を示す。図5を参照して、補助処理装置300は、CPUやGPUなどのプロセッサ302と、メインメモリ304と、入力部306と、表示部308と、ストレージ310と、USBコントローラ320と、ネットワークコントローラ322とを含む。これらのコンポーネントは、バス330を介して接続される。 FIG. 5 shows a hardware configuration example of the auxiliary processing device 300 according to this embodiment. 5, auxiliary processing unit 300 includes processor 302 such as a CPU or GPU, main memory 304, input unit 306, display unit 308, storage 310, USB controller 320, and network controller 322. including. These components are connected via bus 330 .
 プロセッサ302は、ストレージ310に格納された各種プログラムを読み出して、メインメモリ304に展開して実行する。 The processor 302 reads various programs stored in the storage 310, develops them in the main memory 304, and executes them.
 ストレージ310は、例えば、HDDやSSDなどで構成される。ストレージ310には、典型的には、OS312と、システムプログラム314と、処理実行プログラム316とが格納される。処理実行プログラム316は、開発支援装置400などから転送されてもよい。また、ストレージ310には、図5に示すプログラム以外の必要なプログラムが格納されてもよい。 The storage 310 is composed of, for example, an HDD or SSD. The storage 310 typically stores an OS 312 , a system program 314 and a process execution program 316 . The process execution program 316 may be transferred from the development support device 400 or the like. Further, the storage 310 may store necessary programs other than the programs shown in FIG.
 入力部306は、マウス、キーボード、タッチパネルなどで構成され、ユーザからの指示を受け付ける。表示部308は、ディスプレイ、各種インジケータなどで構成され、プロセッサ302からの処理結果などを出力する。 The input unit 306 is composed of a mouse, keyboard, touch panel, etc., and receives instructions from the user. A display unit 308 includes a display, various indicators, and the like, and outputs processing results from the processor 302 and the like.
 USBコントローラ320は、USB接続を介して、任意の情報処理装置との間でデータをやり取りする。 The USB controller 320 exchanges data with any information processing device via a USB connection.
 ネットワークコントローラ322は、任意のネットワークを介して、任意の情報処理装置との間でデータをやり取りする。 The network controller 322 exchanges data with any information processing device via any network.
 (b5:開発支援装置400)
 図6は、本実施の形態に係る開発支援装置400のハードウェア構成例を示す模式図である。図6を参照して、開発支援装置400は、CPUやGPUなどのプロセッサ402と、メインメモリ404と、入力部406と、表示部408と、ストレージ410と、USBコントローラ420と、ネットワークコントローラ422と、光学ドライブ424とを含む。これらのコンポーネントは、バス430を介して接続される。
(b5: development support device 400)
FIG. 6 is a schematic diagram showing a hardware configuration example of the development support device 400 according to this embodiment. 6, development support apparatus 400 includes processor 402 such as a CPU or GPU, main memory 404, input unit 406, display unit 408, storage 410, USB controller 420, network controller 422, and , and an optical drive 424 . These components are connected via bus 430 .
 プロセッサ402は、ストレージ410に格納された各種プログラムを読み出して、メインメモリ404に展開して実行することで、開発支援装置400で後述するような処理を実現する。 The processor 402 reads various programs stored in the storage 410, develops them in the main memory 404, and executes them, thereby realizing the processing described later by the development support device 400.
 ストレージ410は、例えば、HDDやSSDなどで構成される。ストレージ410には、典型的には、OS412と、後述するような処理を実現するための開発支援プログラム414とが格納される。なお、ストレージ410には、図6に示すプログラム以外の必要なプログラムが格納されてもよい。 The storage 410 is composed of, for example, an HDD or SSD. The storage 410 typically stores an OS 412 and a development support program 414 for realizing processing as described later. Note that the storage 410 may store necessary programs other than the programs shown in FIG.
 入力部406は、マウス、キーボード、タッチパネルなどで構成され、ユーザからの指示を受け付ける。表示部408は、ディスプレイ、各種インジケータなどで構成され、プロセッサ402からの処理結果などを出力する。 The input unit 406 is composed of a mouse, keyboard, touch panel, etc., and receives instructions from the user. A display unit 408 includes a display, various indicators, and the like, and outputs processing results from the processor 402 and the like.
 USBコントローラ420は、USB接続を介して、任意の情報処理装置との間でデータをやり取りする。 The USB controller 420 exchanges data with any information processing device via a USB connection.
 ネットワークコントローラ422は、任意のネットワークを介して、任意の情報処理装置との間でデータをやり取りする。 The network controller 422 exchanges data with any information processing device via any network.
 光学ドライブ424は、コンピュータ読取可能なプログラムを非一過的に格納する記録媒体426(例えば、DVDなどの光学記録媒体)からプログラムを読み取って、ストレージ410などに格納する。 The optical drive 424 reads the program from a recording medium 426 (for example, an optical recording medium such as a DVD) that stores a computer-readable program non-transitory, and stores the program in the storage 410 or the like.
 開発支援装置400で実行される各種プログラムは、コンピュータ読取可能な記録媒体426を介してインストールされてもよいが、ネットワーク上の任意のサーバからダウンロードする形でインストールするようにしてもよい。 Various programs executed by the development support device 400 may be installed via the computer-readable recording medium 426, or may be installed by downloading from any server on the network.
 (b6:表示装置500)
 本実施の形態に係る表示装置500は、一例として、汎用パソコンを用いて実現されてもよい。表示装置500の基本的なハードウェア構成例は、周知であるので、ここでは詳細な説明は行わない。
(b6: display device 500)
Display device 500 according to the present embodiment may be realized using a general-purpose personal computer as an example. Since the basic hardware configuration example of the display device 500 is well known, detailed description thereof will not be given here.
 (b7:その他の形態)
 図3~図6には、1または複数のプロセッサがプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(例えば、ASIC(Application Specific Integrated Circuit)またはFPGA(Field-Programmable Gate Array)など)を用いて実装してもよい。
(b7: other forms)
3 to 6 show configuration examples in which one or more processors execute programs to provide necessary functions. It may be implemented using a hardware circuit (for example, ASIC (Application Specific Integrated Circuit) or FPGA (Field-Programmable Gate Array)).
 また、本実施の形態に係るロボット制御システムの実現に必要な処理の一部または全部を、いわゆるクラウド上の計算リソースを用いて実行するようにしてもよい。本実施の形態に係るロボット制御システムをどのようなハードウェアリソースおよびソフトウェアリソースを用いて実現するのかについては、任意に設計および選択できる事項である。 Also, part or all of the processing necessary for realizing the robot control system according to the present embodiment may be executed using so-called computing resources on the cloud. What kind of hardware resources and software resources are used to realize the robot control system according to the present embodiment can be arbitrarily designed and selected.
 <C.機能構成例>
 次に、本実施の形態に係るロボット制御システム1の機能(functionality)構成例について説明する。
<C. Functional configuration example>
Next, a functional configuration example of the robot control system 1 according to the present embodiment will be described.
 図7は、本実施の形態に係るロボット制御システム1のロボット制御に係る機能構成例を示す模式図である。図7を参照して、ロボット制御システム1は、ロボット制御に係る機能モジュールとして、解釈部50と、統合指示部60と、1または複数のロボット制御部70とを含む。 FIG. 7 is a schematic diagram showing a functional configuration example related to robot control of the robot control system 1 according to the present embodiment. Referring to FIG. 7, robot control system 1 includes an interpreter 50, an integrated instruction unit 60, and one or more robot controllers 70 as functional modules related to robot control.
 解釈部50は、制御プログラム30を逐次解釈し、解釈結果としての中間表現を生成する。 The interpretation unit 50 sequentially interprets the control program 30 and generates an intermediate representation as an interpretation result.
 統合指示部60は、解釈結果としての中間表現から対象のロボット制御部70に向けた中間表現を生成し、生成した中間表現を対象のロボット制御部70へ順次提供する。より具体的には、統合指示部60は、中間表現に含まれる識別情報に基づいて、当該中間表現の送信先となるロボット制御部70を決定する。 The integrated instruction unit 60 generates an intermediate representation directed to the target robot control unit 70 from the intermediate representation as the interpretation result, and sequentially provides the generated intermediate representation to the target robot control unit 70 . More specifically, the integration instruction unit 60 determines the robot control unit 70 to which the intermediate representation is to be sent, based on the identification information included in the intermediate representation.
 ロボット制御部70は、ロボット200毎に用意される。ロボット制御部70の各々は、統合指示部60から受信した中間表現に対応する内部コマンドを生成し、生成した内部コマンドに従って、制御周期毎の指令値を生成する。制御周期毎の指令値は、例えば、ロボット200を構成するモータ262の各々に対する目標位置(目標角度)あるいは目標速度(目標角速度)であってもよい。 The robot control unit 70 is prepared for each robot 200. Each robot control unit 70 generates an internal command corresponding to the intermediate representation received from the integrated instruction unit 60, and generates a command value for each control cycle according to the generated internal command. The command value for each control cycle may be, for example, a target position (target angle) or target velocity (target angular velocity) for each of the motors 262 forming the robot 200 .
 より具体的には、ロボット制御部70は、生成した内部コマンドに従って、ロボット200が移動すべき軌道を生成するとともに、生成した軌道を実現するための各軸の位置(角度)をキネマティクス計算により算出する。 More specifically, the robot control unit 70 generates a trajectory for the robot 200 to move according to the generated internal command, and calculates the position (angle) of each axis for realizing the generated trajectory by kinematics calculation. calculate.
 解釈部50、統合指示部60、および、1または複数のロボット制御部70は、制御装置100にすべて実装してもよいし、一部を他の装置へ実装してもよい。 The interpretation unit 50, the integrated instruction unit 60, and one or more robot control units 70 may all be implemented in the control device 100, or some of them may be implemented in another device.
 図8は、本実施の形態に係るロボット制御システム1の実装例を示す模式図である。
 図8(A)には、解釈部50、統合指示部60、および、1または複数のロボット制御部70が制御装置100に実装されている例を示す。この実装例においては、制御装置100が主計算リソースとして用いられる。
FIG. 8 is a schematic diagram showing an implementation example of the robot control system 1 according to this embodiment.
FIG. 8A shows an example in which the interpretation unit 50, the integrated instruction unit 60, and one or more robot control units 70 are implemented in the control device 100. FIG. In this implementation, controller 100 is used as the primary computing resource.
 図8(B)には、統合指示部60およびロボット制御部70が制御装置100に実装されており、ロボット制御部70の各々がロボット200に実装されている例を示す。この実装例においては、制御装置100およびロボット200(ロボットコントローラ250)が主計算リソースとして用いられる。 FIG. 8(B) shows an example in which the integrated instruction unit 60 and the robot control unit 70 are implemented in the control device 100 and each of the robot control units 70 is implemented in the robot 200 . In this implementation, controller 100 and robot 200 (robot controller 250) are used as primary computing resources.
 図8(C)には、統合指示部60およびロボット制御部70が制御装置100に実装されており、ロボット制御部70の一部が制御装置100に実装され、残りのロボット制御部70がロボット200に実装されている例を示す。この実装例においては、制御装置100およびロボット200(ロボットコントローラ250)が主計算リソースとして用いられる。 In FIG. 8C, the integrated instruction unit 60 and the robot control unit 70 are implemented in the control device 100, part of the robot control unit 70 is implemented in the control device 100, and the remaining robot control unit 70 is implemented by the robot. 200 implementation. In this implementation, controller 100 and robot 200 (robot controller 250) are used as primary computing resources.
 また、解釈部50は、制御装置100とは別の情報処理装置に実装されてもよい。
 このように、本実施の形態に係るロボット制御システム1においては、ロボット制御を実現するための機能モジュールを任意の装置に配置することができる。なお、各機能モジュールをいずれの装置に配置するのかについては、任意の設計事項である。
Moreover, the interpretation unit 50 may be implemented in an information processing device different from the control device 100 .
Thus, in the robot control system 1 according to the present embodiment, functional modules for realizing robot control can be arranged in any device. Note that it is an arbitrary design matter in which device each functional module is arranged.
 <D.処理の分散配置>
 本実施の形態に係るロボット制御システム1においては、補助処理装置300を計算ノード(computation node)として用いることができる。より具体的には、ロボット制御に係る機能モジュールで実行される処理のうち任意の一部を補助処理装置300で実行させることができるようになっている。すなわち、補助処理装置300が補助計算リソースとして用いられる。
<D. Distributed Arrangement of Processing>
In the robot control system 1 according to this embodiment, the auxiliary processing device 300 can be used as a computation node. More specifically, the auxiliary processing device 300 can execute any part of the processing executed by the functional modules related to robot control. That is, the auxiliary processing unit 300 is used as an auxiliary computing resource.
 このように、本実施の形態に係るロボット制御システム1においては、ロボット制御に係る複数の機能モジュールを異なる計算リソースに分散配置することができるとともに、任意の機能モジュールが実行する処理についても、異なる計算リソース(補助計算リソース)に分散配置することができる。 As described above, in the robot control system 1 according to the present embodiment, a plurality of functional modules related to robot control can be distributed to different computational resources, and processes executed by arbitrary functional modules can also be different. It can be distributed in computing resources (auxiliary computing resources).
 図9は、本実施の形態に係るロボット制御システム1における計算ノードの利用例を示す模式図である。 FIG. 9 is a schematic diagram showing an example of use of computation nodes in the robot control system 1 according to this embodiment.
 図9(A)には、統合指示部60が1または複数の処理を実行する例を示す。統合指示部60が実行する第1の処理80は、統合指示部60が提供すべき機能を実現するための処理を含む。 FIG. 9A shows an example in which the integration instruction unit 60 executes one or more processes. The first processing 80 executed by the integration instruction section 60 includes processing for realizing the functions that the integration instruction section 60 should provide.
 第1の処理80は、例えば、制御装置100のプロセッサ102およびメインメモリ104といったハードウェアリソースを必要とする。そのため、制御装置100に複数の機能モジュールが実装された場合などには、計算リソースが不足する可能性がある。このような場合には、補助処理装置300が提供する計算リソースを利用するようにしてもよい。 The first process 80 requires hardware resources such as the processor 102 and the main memory 104 of the control device 100, for example. Therefore, when a plurality of functional modules are installed in the control device 100, there is a possibility that computational resources will be insufficient. In such a case, computational resources provided by the auxiliary processing unit 300 may be used.
 図9(B)には、制御装置100に配置された統合指示部60が実行する第1の処理80の一部を補助処理装置300が実行する例を示す。すなわち、統合指示部60が実行する第1の処理80の一部である処理82を制御装置100の計算リソースを用いて実行し、第1の処理80の残りである処理84を補助処理装置300の計算リソースを用いて実行する。 FIG. 9(B) shows an example in which the auxiliary processing device 300 executes part of the first process 80 executed by the integration instruction unit 60 arranged in the control device 100 . That is, the processing 82, which is a part of the first processing 80 executed by the integration instruction unit 60, is executed using the computational resources of the control device 100, and the processing 84, which is the remainder of the first processing 80, is executed by the auxiliary processing device 300. of computational resources.
 この場合、処理間で必要なデータをやり取りするために、制御装置100に中継コネクタ86が配置され、補助処理装置300に中継コネクタ88が配置される。また、補助処理装置300が処理84を実行するために必要な処理実行プログラム316(図5)が補助処理装置300へ転送される。 In this case, a relay connector 86 is arranged in the control device 100 and a relay connector 88 is arranged in the auxiliary processing device 300 in order to exchange necessary data between processes. Also, the process execution program 316 (FIG. 5) required for the auxiliary processing unit 300 to execute the process 84 is transferred to the auxiliary processing unit 300 .
 図9(B)に示す構成例においては、制御装置100と上位ネットワーク10を介して接続された補助処理装置300-1を用いることもできるし、制御装置100とフィールドネットワーク20を介して接続された補助処理装置300-2を用いることもできる。 In the configuration example shown in FIG. 9B, an auxiliary processing device 300-1 connected to the control device 100 via the host network 10 can be used, or an auxiliary processing device 300-1 connected to the control device 100 via the field network 20 can be used. An auxiliary processor 300-2 can also be used.
 図10は、本実施の形態に係るロボット制御システム1における計算ノードの別の利用例を示す模式図である。図10(A)には、ロボット制御部70が1または複数の処理を実行する例を示す。ロボット制御部70が実行する第2の処理90は、ロボット制御部70が提供すべき機能を実現するための処理を含む。 FIG. 10 is a schematic diagram showing another usage example of the computation node in the robot control system 1 according to this embodiment. FIG. 10A shows an example in which the robot control unit 70 executes one or more processes. The second processing 90 executed by the robot control unit 70 includes processing for realizing functions to be provided by the robot control unit 70 .
 第2の処理90は、例えば、ロボット200のロボットコントローラ250のプロセッサ222およびメインメモリ224といったハードウェアリソースを必要とする。要求される動作を実現するためには、ロボットコントローラ250の計算リソースを超える処理が必要になることもある。このような場合には、補助処理装置300が提供する計算リソースを利用するようにしてもよい。 The second process 90 requires hardware resources such as the processor 222 and main memory 224 of the robot controller 250 of the robot 200 . Processing beyond the computational resources of the robot controller 250 may be required to achieve the desired motion. In such a case, computational resources provided by the auxiliary processing unit 300 may be used.
 図10(B)には、制御装置100に配置されたロボット制御部70が実行する第2の処理90の一部を補助処理装置300が実行する例を示す。すなわち、ロボット制御部70が実行する第2の処理90の一部である処理92を制御装置100の計算リソースを用いて実行し、第2の処理90の残りである処理94を補助処理装置300の計算リソースを用いて実行する。 FIG. 10B shows an example in which the auxiliary processing device 300 executes part of the second processing 90 executed by the robot control unit 70 arranged in the control device 100 . That is, the processing 92, which is a part of the second processing 90 executed by the robot control unit 70, is executed using the computational resources of the control device 100, and the processing 94, which is the remainder of the second processing 90, is executed by the auxiliary processing device 300. of computational resources.
 この場合、処理間で必要なデータをやり取りするために、制御装置100に中継コネクタ96が配置され、補助処理装置300に中継コネクタ98が配置される。また、補助処理装置300が実行する処理94を実行するために必要な処理実行プログラム316(図5)が補助処理装置300へ転送される。 In this case, a relay connector 96 is arranged in the control device 100 and a relay connector 98 is arranged in the auxiliary processing device 300 in order to exchange necessary data between processes. Also, the processing execution program 316 (FIG. 5) required for executing the processing 94 executed by the auxiliary processing unit 300 is transferred to the auxiliary processing unit 300 .
 図10(B)に示す構成例においては、制御装置100と上位ネットワーク10を介して接続された補助処理装置300-1を用いることもできるし、制御装置100とフィールドネットワーク20を介して接続された補助処理装置300-2を用いることもできる。あるいは、ロボット制御部70がロボット200に配置される場合には、ロボット200とフィールドネットワーク20を介して接続された補助処理装置300-2を用いることができる。 In the configuration example shown in FIG. 10B, an auxiliary processing device 300-1 connected to the control device 100 via the host network 10 can be used, or an auxiliary processing device 300-1 connected to the control device 100 via the field network 20 can be used. An auxiliary processor 300-2 can also be used. Alternatively, if the robot control unit 70 is arranged in the robot 200, an auxiliary processor 300-2 connected to the robot 200 via the field network 20 can be used.
 なお、統合指示部60およびロボット制御部70に限らず、解釈部50が実行する処理についても、補助処理装置300の計算リソースを用いて実行するようにしてもよい。 It should be noted that not only the processing executed by the integrated instruction unit 60 and the robot control unit 70, but also the processing executed by the interpretation unit 50 may be executed using the computational resources of the auxiliary processing device 300.
 図9(B)および図10(B)に示すように、補助計算リソースである補助処理装置300は、統合指示部60が実行する処理、および、ロボット制御部70が実行する処理のうち、予め指定された処理を、主計算リソースである制御装置100(または、ロボットコントローラ250)に代わって実行する。 As shown in FIGS. 9B and 10B, the auxiliary processing device 300, which is an auxiliary computational resource, preliminarily performs The specified processing is executed instead of the control device 100 (or the robot controller 250), which is the main computing resource.
 また、図9(B)および図10(B)に示すように、主計算リソースである制御装置100(または、ロボットコントローラ250)は、主計算リソースで実行される処理と補助計算リソースで実行される処理との間でデータをやり取りするためのインターフェイスとして、中継コネクタ86および96を含む。一方、補助計算リソースである補助処理装置300は、補助計算リソースで実行される処理と主計算リソースで実行される処理との間でデータをやり取りするためのインターフェイスとして、中継コネクタ88および98を含む。 Further, as shown in FIGS. 9B and 10B, the control device 100 (or the robot controller 250), which is the main computing resource, performs processing executed by the main computing resource and processing executed by the auxiliary computing resource. Intermediate connectors 86 and 96 are included as an interface for exchanging data to and from processes that On the other hand, auxiliary processing unit 300, which is an auxiliary computing resource, includes relay connectors 88 and 98 as an interface for exchanging data between the processing executed by the auxiliary computing resource and the processing executed by the main computing resource. .
 図9(B)および図10(B)に示すような構成は、典型的には、以下に示すような処理によって実現される。 The configurations as shown in FIGS. 9(B) and 10(B) are typically realized by the processing shown below.
 <E.処理を分散配置するための処理>
 次に、図9および図10に示すような処理を分散配置するための処理について説明する。処理を分散配置するための処理は、主として、開発支援装置400によって実行されてもよい。
<E. Processing for Distributing Processing>
Next, the processing for distributing the processing as shown in FIGS. 9 and 10 will be described. Processing for distributing processing may be mainly executed by development support device 400 .
 開発支援装置400は、ユーザによる処理の指定を受け付けるとともに、ユーザにより指定された処理を補助計算リソースで実行させるための設定を行なう。 The development support device 400 accepts the user's specification of processing, and makes settings for executing the processing specified by the user with the auxiliary computing resource.
 図11は、本実施の形態に係るロボット制御システム1における処理を分散配置するための処理例を示す模式図である。図11を参照して、まず、開発支援装置400は、ユーザからの設定を受け付ける((1)ユーザ設定)。ユーザからの設定は、補助処理装置300で実行させるべき処理の指定などを含む。 FIG. 11 is a schematic diagram showing a processing example for distributing processing in the robot control system 1 according to the present embodiment. Referring to FIG. 11, first, development support device 400 receives settings from the user ((1) user settings). The settings from the user include designation of processing to be executed by the auxiliary processing unit 300, and the like.
 続いて、開発支援装置400は、ユーザからの設定に従って必要なデータを生成する((2)データ生成)。より具体的には、生成されるデータは、補助処理装置300に指定した処理を実行させるための処理実行プログラム316と、制御装置100および補助処理装置300などに配置される中継コネクタの設定とを含む。 Subsequently, the development support device 400 generates necessary data according to the settings from the user ((2) data generation). More specifically, the data to be generated includes the processing execution program 316 for causing the auxiliary processing unit 300 to execute the designated processing, and the setting of relay connectors arranged in the control unit 100 and the auxiliary processing unit 300. include.
 続いて、開発支援装置400は、生成したデータに基づいて、制御装置100(あるいは、ロボット200)に対して必要な設定を行う((3)設定)。また、開発支援装置400は、生成したデータに基づいて、必要なプログラムを補助処理装置300へ転送するとともに、補助処理装置300に対して必要な設定を行う((4)プログラム転送+設定)。 Subsequently, the development support device 400 performs necessary settings for the control device 100 (or the robot 200) based on the generated data ((3) settings). Based on the generated data, the development support device 400 transfers necessary programs to the auxiliary processing device 300 and performs necessary settings for the auxiliary processing device 300 ((4) program transfer + setting).
 このような一連の処理によって、ユーザが指定した処理を補助処理装置300で実行させることができるとともに、制御装置100(あるいは、ロボット200)と補助処理装置300との間で、必要なデータをやり取りすることができる。 Through such a series of processes, it is possible to cause the auxiliary processing unit 300 to execute the processing specified by the user, and exchange necessary data between the control unit 100 (or the robot 200) and the auxiliary processing unit 300. can do.
 図12は、本実施の形態に係るロボット制御システム1が提供するユーザインターフェイス画面の一例を示す模式図である。典型的には、図12に示されるユーザインターフェイス画面は、開発支援装置400により提供される。なお、図12には、統合指示部60に向けられたユーザインターフェイス画面の一例を示す。 FIG. 12 is a schematic diagram showing an example of a user interface screen provided by the robot control system 1 according to this embodiment. Typically, the user interface screen shown in FIG. 12 is provided by development support device 400 . Note that FIG. 12 shows an example of a user interface screen directed to the integration instruction section 60. As shown in FIG.
 図12を参照して、ユーザインターフェイス画面450は、リソース表示部460と、処理設定部470と、適用ボタン480とを含む。 Referring to FIG. 12, user interface screen 450 includes a resource display portion 460, a processing setting portion 470, and an apply button 480.
 リソース表示部460は、処理を実行することが可能な装置(この例では、制御装置100および補助処理装置300)毎に利用可能な計算リソースを示す。図12に示す例では、リソース表示部460は、制御装置100において利用可能な計算リソースを示す値461と、補助処理装置300において利用可能な計算リソースを示す値462とを含む。 The resource display section 460 shows available computing resources for each device capable of executing processing (in this example, the control device 100 and the auxiliary processing device 300). In the example shown in FIG. 12, the resource display section 460 includes a value 461 indicating computing resources available in the control device 100 and a value 462 indicating computing resources available in the auxiliary processing device 300 .
 このように、開発支援装置400は、主計算リソース(制御装置100)および補助計算リソース(補助処理装置300)が提供可能な計算リソースの大きさを示す情報を提示する。 In this way, the development support device 400 presents information indicating the size of computational resources that can be provided by the main computational resource (control device 100) and the auxiliary computational resource (auxiliary processing device 300).
 処理設定部470は、処理を実行する装置の選択を受け付ける。より具体的には、処理設定部470は、対象の処理を示す処理名カラム471と、各処理の内容を示す説明カラム472と、各処理が必要とするパラメータを示すパラメータカラム473と、各処理を補助処理装置300が実行するか否かを示す分散配置設定カラム474と、各処理が要求する計算コストを示すコストカラム475とを含む。 The processing setting unit 470 accepts selection of a device that executes processing. More specifically, the process setting unit 470 includes a process name column 471 indicating the target process, a description column 472 indicating the details of each process, a parameter column 473 indicating parameters required by each process, and each process and a cost column 475 indicating the calculation cost required by each process.
 ユーザは、処理設定部470に表示される処理の説明や計算コストなどを参照して、補助処理装置300に実行させる処理を決定すると、当該決定した処理に対応する分散配置設定カラム474の値を「Yes」に設定する。 When the user determines the process to be executed by the auxiliary processing unit 300 by referring to the description of the process and the calculation cost displayed in the process setting section 470, the value of the distributed arrangement setting column 474 corresponding to the determined process is set. Set to "Yes".
 最終的に、ユーザが適用ボタン480を押下すると、開発支援装置400は、ユーザからの設定に従って必要なデータを生成する。  Finally, when the user presses the apply button 480, the development support device 400 generates the necessary data according to the settings from the user.
 このように、開発支援装置400は、統合指示部60が実行する処理、および、ロボット制御部70が実行する処理のうち、少なくとも一部の処理(処理名カラム471)と、当該少なくとも一部の処理で必要な計算リソースの度合いを示すコストカラム475とを提示する。 In this way, the development support device 400 performs at least some of the processes executed by the integrated instruction unit 60 and the processes executed by the robot control unit 70 (process name column 471) and at least some of the processes executed by the robot control unit 70. A cost column 475 is presented that indicates the degree of computational resources required for processing.
 なお、対象となる処理は、機能モジュール毎に異なるので、機能モジュール別にユーザインターフェイス画面450が用意されてもよい。 Note that the target process differs for each functional module, so the user interface screen 450 may be prepared for each functional module.
 図13は、本実施の形態に係るロボット制御システム1における処理の分散配置を実現するための処理手順を示すフローチャートである。すなわち、図13には、1または複数のロボット200を制御するロボット制御システム1を構成する方法が示される。図13に示す各ステップは、典型的には、開発支援装置400のプロセッサ402が開発支援プログラム414を実行することで実現されてもよい。 FIG. 13 is a flowchart showing a processing procedure for realizing distributed arrangement of processing in the robot control system 1 according to this embodiment. That is, FIG. 13 shows a method of configuring a robot control system 1 that controls one or more robots 200 . Each step shown in FIG. 13 may typically be implemented by processor 402 of development support device 400 executing development support program 414 .
 まず、ロボット制御システム1の基本的な機能モジュール配置が構成される。図13を参照して、開発支援装置400は、ユーザからの設定操作に従って、解釈部50、統合指示部60およびロボット制御部70の各々を主計算リソースとなる制御装置100またはロボット200(ロボットコントローラ250)に配置する(ステップS100)。 First, the basic functional module layout of the robot control system 1 is configured. Referring to FIG. 13, development support apparatus 400 sets each of interpretation unit 50, integrated instruction unit 60 and robot control unit 70 as main computational resources according to user's setting operation. 250) (step S100).
 次に、開発支援装置400は、ユーザからの設定操作を受け付けると(ステップS102)、対象となる制御装置100、ロボット200および補助処理装置300の処理状態などを取得し(ステップS104)、図12に示すようなユーザインターフェイス画面450を表示する(ステップS106)。 Next, when receiving a setting operation from the user (step S102), the development support device 400 acquires the processing states of the target control device 100, the robot 200, and the auxiliary processing device 300 (step S104). A user interface screen 450 as shown in is displayed (step S106).
 開発支援装置400は、ユーザインターフェイス画面450上でユーザからの設定操作を受け付け(ステップS108)て、適用ボタン480が押下されると(ステップS110)、設定内容に従って必要なデータを生成する(ステップS112)。 The development support device 400 receives a setting operation from the user on the user interface screen 450 (step S108), and when the apply button 480 is pressed (step S110), generates necessary data according to the setting contents (step S112). ).
 そして、開発支援装置400は、生成したデータに基づいて、制御装置100および/またはロボット200に対して必要な設定を行う(ステップS114)。この設定によって、主計算リソースとなる制御装置100またはロボット200(ロボットコントローラ250)に、補助計算リソースで実行される処理との間でデータをやり取りするためのインターフェイス(中継コネクタ)が配置される。 Then, the development support device 400 performs necessary settings for the control device 100 and/or the robot 200 based on the generated data (step S114). With this setting, an interface (relay connector) for exchanging data with the process executed by the auxiliary computing resource is arranged in the control device 100 or the robot 200 (robot controller 250), which is the main computing resource.
 また、開発支援装置400は、生成したデータに基づいて、必要なプログラムを補助処理装置300へ転送するとともに、補助処理装置300に対して必要な設定を行う(ステップS116)。この設定によって、統合指示部60が実行する処理、および、ロボット制御部70が実行する処理のうち、予め指定された処理が、主計算リソースに代わって補助計算リソースで実行させるようになる。 In addition, the development support device 400 transfers necessary programs to the auxiliary processing device 300 based on the generated data, and performs necessary settings for the auxiliary processing device 300 (step S116). With this setting, predesignated processing among the processing executed by the integration instruction unit 60 and the processing executed by the robot control unit 70 is executed by the auxiliary computing resource instead of the main computing resource.
 以上によって、一連の処理は終了する。
 制御装置100および/またはロボット200は、開発支援装置400からの設定に従って、処理の一部の実行を停止するとともに、中継コネクタを有効化する。一方、ロボットコントローラ350は、開発支援装置400から転送されたプログラムを格納して起動するとともに、開発支援装置400からの設定に従って、中継コネクタを有効化する。このような一連の処理によって、処理を分散配置することができる。
A series of processes are completed by the above.
The control device 100 and/or the robot 200 stops execution of a part of the process and activates the relay connector according to the settings from the development support device 400 . On the other hand, the robot controller 350 stores and activates the program transferred from the development support device 400 and activates the relay connector according to the settings from the development support device 400 . Such a series of processes allows the processes to be distributed.
 <F.変形例>
 処理を実行する計算リソースを制御装置100および/またはロボット200から1つの補助処理装置300に変更する例を説明したが、複数の補助処理装置300を利用するようにしてもよい。この場合には、制御装置100および/またはロボット200には、複数の補助処理装置300にそれぞれ対応する中継コネクタが配置されることになる。
<F. Variation>
An example has been described in which the computational resource for executing processing is changed from the control device 100 and/or the robot 200 to one auxiliary processing device 300, but a plurality of auxiliary processing devices 300 may be used. In this case, the controller 100 and/or the robot 200 are provided with relay connectors respectively corresponding to the plurality of auxiliary processing devices 300 .
 <G.付記>
 上述したような本実施の形態は、以下のような技術思想を含む。
<G. Note>
The present embodiment as described above includes the following technical ideas.
 [構成1]
 1または複数のロボット(200)を制御する制御システム(1)であって、
 1または複数の第1の処理(80)を実行することで、制御プログラム(30)の解釈結果に従って中間表現を生成する第1のモジュール(60)と、
 1または複数の第2の処理(90)を実行することで、前記生成される中間表現に従って前記ロボットに対する指令値を生成する第2のモジュール(70)と、
 前記第1のモジュールおよび前記第2のモジュールを実現するための主計算リソース(100;250)と、
 前記第1の処理および前記第2の処理のうち、予め指定された処理(84;94)を、前記主計算リソースに代わって実行する補助計算リソース(300)とを備え、
 前記主計算リソースは、前記主計算リソースで実行される処理と前記補助計算リソースで実行される処理との間でデータをやり取りするための第1のインターフェイス(86;96)を含む、制御システム。
[Configuration 1]
A control system (1) for controlling one or more robots (200), comprising:
a first module (60) for generating an intermediate representation according to the interpreted result of the control program (30) by performing one or more first processes (80);
a second module (70) for generating command values for the robot according to the generated intermediate representation by performing one or more second processes (90);
a main computing resource (100; 250) for implementing said first module and said second module;
an auxiliary computational resource (300) that executes a predesignated process (84; 94) out of the first process and the second process instead of the main computational resource;
A control system, wherein said primary computing resource includes a first interface (86; 96) for exchanging data between processing performed on said primary computing resource and processing performed on said auxiliary computing resource.
 [構成2]
 前記補助計算リソースは、前記補助計算リソースで実行される処理と前記主計算リソースで実行される処理との間でデータをやり取りするための第2のインターフェイス(88;98)を含む、構成1に記載の制御システム。
[Configuration 2]
A configuration 1, wherein said auxiliary computing resource includes a second interface (88; 98) for exchanging data between processing performed on said auxiliary computing resource and processing performed on said primary computing resource. Control system as described.
 [構成3]
 ユーザによる処理の指定を受け付けるとともに、前記ユーザにより指定された処理を前記補助計算リソースで実行させるための設定を行なう開発支援装置(400)をさらに備える、構成1または2に記載の制御システム。
[Configuration 3]
3. The control system according to configuration 1 or 2, further comprising a development support device (400) that accepts designation of processing by a user and performs settings for executing the processing designated by the user on the auxiliary computing resource.
 [構成4]
 前記開発支援装置は、第1の処理および第2の処理のうち、少なくとも一部の処理(471)と、当該少なくとも一部の処理で必要な計算リソースの度合いを示す情報(475)とを提示する、構成3に記載の制御システム。
[Configuration 4]
The development support device presents at least part of the first process and the second process (471) and information (475) indicating the degree of computational resources required for the at least part of the process. The control system of configuration 3, wherein:
 [構成5]
 前記開発支援装置は、前記主計算リソースおよび前記補助計算リソースが提供可能な計算リソースの大きさを示す情報(460)を提示する、構成3または4に記載の制御システム。
[Configuration 5]
5. The control system according to configuration 3 or 4, wherein the development support device presents information (460) indicating the size of computing resources that the primary computing resource and the auxiliary computing resource can provide.
 [構成6]
 前記補助計算リソースは、汎用コンピュータである、構成1~5のいずれか1項に記載の制御システム。
[Configuration 6]
6. The control system of any one of the arrangements 1-5, wherein the auxiliary computing resource is a general purpose computer.
 [構成7]
 前記補助計算リソースは、産業用コンピュータである、構成1~5のいずれか1項に記載の制御システム。
[Configuration 7]
6. The control system of any one of the configurations 1-5, wherein the auxiliary computing resource is an industrial computer.
 [構成8]
 1または複数のロボット(200)を制御する制御システム(1)を構成する方法であって、
 1または複数の第1の処理(80)を実行することで、制御プログラムの解釈結果に従って中間表現を生成する第1のモジュール(60)を主計算リソース(100;250)に配置するステップ(S100)と、
 1または複数の第2の処理(90)を実行することで、前記生成される中間表現に従って前記ロボットに対する指令値を生成する第2のモジュール(70)を前記主計算リソースに配置するステップ(S100)と、
 前記第1の処理および前記第2の処理のうち、予め指定された処理(84;94)を、前記主計算リソースに代わって補助計算リソース(300)に実行させるように設定するステップ(S116)と、
 前記主計算リソースに、前記補助計算リソースで実行される処理との間でデータをやり取りするためのインターフェイス(86;96)を配置するステップ(S114)とを備える、制御システムを構成する方法。
[Configuration 8]
A method of configuring a control system (1) for controlling one or more robots (200), comprising:
Placement (S100) of a first module (60) that generates an intermediate representation according to an interpretation result of a control program by executing one or more first processes (80) on a main computing resource (100; 250) )and,
Placing (S100) a second module (70) on said main computing resource for generating command values for said robot according to said generated intermediate representation by executing one or more second processes (90); )and,
A step of setting a predesignated process (84; 94) out of the first process and the second process to be executed by the auxiliary computing resource (300) instead of the main computing resource (S116). and,
arranging (S114) in said primary computing resource an interface (86; 96) for exchanging data to and from processes performed in said auxiliary computing resource.
 今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、請求の範囲によって示され、請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。 The embodiments disclosed this time should be considered illustrative in all respects and not restrictive. The scope of the present invention is indicated by the scope of the claims rather than the above description, and is intended to include all modifications within the scope and meaning equivalent to the scope of the claims.
 1 ロボット制御システム、10 上位ネットワーク、20 フィールドネットワーク、30 制御プログラム、50 解釈部、60 統合指示部、70 ロボット制御部、80 第1の処理、82,84,92,94 処理、86,88,96,98 中継コネクタ、90 第2の処理、100 制御装置、102,222,302,402 プロセッサ、104,224,304,404 メインメモリ、106 上位ネットワークコントローラ、108,210 フィールドネットワークコントローラ、110,226,310,410 ストレージ、112,228,314 システムプログラム、120,320,420 USBコントローラ、122 メモリカードインターフェイス、124 メモリカード、130 プロセッサバス、200 ロボット、220 制御処理回路、230 インターフェイス回路、250,350 ロボットコントローラ、260 サーボドライバ、262 モータ、300 補助処理装置、306,406 入力部、308,408 表示部、312,412 OS、316 処理実行プログラム、322,422 ネットワークコントローラ、330,430 バス、400 開発支援装置、414 開発支援プログラム、424 光学ドライブ、426 記録媒体、450 ユーザインターフェイス画面、460 リソース表示部、461,462 値、470 処理設定部、471 処理名カラム、472 説明カラム、473 パラメータカラム、474 分散配置設定カラム、475 コストカラム、480 適用ボタン、500 表示装置。 1. Robot control system, 10. Upper network, 20. Field network, 30. Control program, 50. Interpretation unit, 60. Integrated instruction unit, 70. Robot control unit, 80. First processing, 82, 84, 92, 94. Processing, 86, 88, 96, 98 relay connector, 90 second processing, 100 control device, 102, 222, 302, 402 processor, 104, 224, 304, 404 main memory, 106 upper network controller, 108, 210 field network controller, 110, 226 , 310, 410 storage, 112, 228, 314 system program, 120, 320, 420 USB controller, 122 memory card interface, 124 memory card, 130 processor bus, 200 robot, 220 control processing circuit, 230 interface circuit, 250, 350 Robot controller, 260 servo driver, 262 motor, 300 auxiliary processing unit, 306, 406 input unit, 308, 408 display unit, 312, 412 OS, 316 processing execution program, 322, 422 network controller, 330, 430 bus, 400 development Support device, 414 Development support program, 424 Optical drive, 426 Recording medium, 450 User interface screen, 460 Resource display section, 461, 462 Value, 470 Processing setting section, 471 Processing name column, 472 Description column, 473 Parameter column, 474 Distributed arrangement setting column, 475 cost column, 480 apply button, 500 display device.

Claims (8)

  1.  1または複数のロボットを制御する制御システムであって、
     1または複数の第1の処理を実行することで、制御プログラムの解釈結果に従って中間表現を生成する第1のモジュールと、
     1または複数の第2の処理を実行することで、前記生成される中間表現に従って前記ロボットに対する指令値を生成する第2のモジュールと、
     前記第1のモジュールおよび前記第2のモジュールを実現するための主計算リソースと、
     前記第1の処理および前記第2の処理のうち、予め指定された処理を、前記主計算リソースに代わって実行する補助計算リソースとを備え、
     前記主計算リソースは、前記主計算リソースで実行される処理と前記補助計算リソースで実行される処理との間でデータをやり取りするための第1のインターフェイスを含む、制御システム。
    A control system for controlling one or more robots, comprising:
    a first module that generates an intermediate representation according to an interpretation result of the control program by executing one or more first processes;
    a second module that generates a command value for the robot according to the generated intermediate representation by executing one or more second processes;
    a main computing resource for implementing the first module and the second module;
    an auxiliary computational resource that executes a predesignated process out of the first process and the second process instead of the main computational resource;
    The control system, wherein the primary computing resource includes a first interface for exchanging data between processing performed on the primary computing resource and processing performed on the auxiliary computing resource.
  2.  前記補助計算リソースは、前記補助計算リソースで実行される処理と前記主計算リソースで実行される処理との間でデータをやり取りするための第2のインターフェイスを含む、請求項1に記載の制御システム。 2. The control system of claim 1, wherein said auxiliary computing resource includes a second interface for exchanging data between processing performed on said auxiliary computing resource and processing performed on said primary computing resource. .
  3.  ユーザによる処理の指定を受け付けるとともに、前記指定された処理を前記補助計算リソースで実行させるための設定を行なう開発支援装置をさらに備える、請求項1または2に記載の制御システム。 3. The control system according to claim 1 or 2, further comprising a development support device that accepts designation of processing by a user and performs settings for executing the designated processing with the auxiliary computing resource.
  4.  前記開発支援装置は、前記第1の処理および前記第2の処理のうち、少なくとも一部の処理と、当該少なくとも一部の処理で必要な計算リソースの度合いを示す情報とを提示する、請求項3に記載の制御システム。 The development support device presents at least part of the first process and the second process, and information indicating a degree of computational resources required for the at least part of the process. 4. The control system according to 3.
  5.  前記開発支援装置は、前記主計算リソースおよび前記補助計算リソースが提供可能な計算リソースの大きさを示す情報を提示する、請求項3または4に記載の制御システム。 5. The control system according to claim 3 or 4, wherein the development support device presents information indicating the size of computational resources that can be provided by the main computational resource and the auxiliary computational resource.
  6.  前記補助計算リソースは、汎用コンピュータである、請求項1~5のいずれか1項に記載の制御システム。 The control system according to any one of claims 1 to 5, wherein said auxiliary computing resource is a general-purpose computer.
  7.  前記補助計算リソースは、産業用コンピュータである、請求項1~5のいずれか1項に記載の制御システム。 The control system according to any one of claims 1 to 5, wherein said auxiliary computing resource is an industrial computer.
  8.  1または複数のロボットを制御する制御システムを構成する方法であって、
     1または複数の第1の処理を実行することで、制御プログラムの解釈結果に従って中間表現を生成する第1のモジュールを主計算リソースに配置するステップと、
     1または複数の第2の処理を実行することで、前記生成される中間表現に従って前記ロボットに対する指令値を生成する第2のモジュールを前記主計算リソースに配置するステップと、
     前記第1の処理および前記第2の処理のうち、予め指定された処理を、前記主計算リソースに代わって補助計算リソースに実行させるように設定するステップと、
     前記主計算リソースに、前記補助計算リソースで実行される処理との間でデータをやり取りするためのインターフェイスを配置するステップとを備える、制御システムを構成する方法。
    A method of configuring a control system for controlling one or more robots, comprising:
    Placing a first module on a main computing resource for generating an intermediate representation according to an interpretation result of a control program by executing one or more first processes;
    Placing a second module on the main computing resource that generates a command value for the robot according to the generated intermediate representation by executing one or more second processes;
    setting a predesignated process out of the first process and the second process to be executed by an auxiliary computing resource instead of the main computing resource;
    arranging an interface on said primary computing resource for exchanging data to and from a process running on said auxiliary computing resource.
PCT/JP2022/047966 2022-01-31 2022-12-26 Robot control system and method for configuring robot control system WO2023145361A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2022-013209 2022-01-31
JP2022013209A JP2023111377A (en) 2022-01-31 2022-01-31 Robot control system and method for configuring robot control system

Publications (1)

Publication Number Publication Date
WO2023145361A1 true WO2023145361A1 (en) 2023-08-03

Family

ID=87471128

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2022/047966 WO2023145361A1 (en) 2022-01-31 2022-12-26 Robot control system and method for configuring robot control system

Country Status (2)

Country Link
JP (1) JP2023111377A (en)
WO (1) WO2023145361A1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019053459A (en) * 2017-09-14 2019-04-04 オムロン株式会社 Control apparatus and control method
WO2019230262A1 (en) * 2018-05-29 2019-12-05 オムロン株式会社 Support device, control system, and development assistance program
WO2020039900A1 (en) * 2018-08-23 2020-02-27 オムロン株式会社 Information processing apparatus and program

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019053459A (en) * 2017-09-14 2019-04-04 オムロン株式会社 Control apparatus and control method
WO2019230262A1 (en) * 2018-05-29 2019-12-05 オムロン株式会社 Support device, control system, and development assistance program
WO2020039900A1 (en) * 2018-08-23 2020-02-27 オムロン株式会社 Information processing apparatus and program

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
TAKEDA KENJI.: "Programming Languages for Robotic Systems", JOURNAL OF THE ROBOTICS SOCIETY OF JAPAN, vol. 5, no. 3, 1 June 1987 (1987-06-01), pages 49 - 54, XP093080208, DOI: 10.7210/jrsj.5.217 *

Also Published As

Publication number Publication date
JP2023111377A (en) 2023-08-10

Similar Documents

Publication Publication Date Title
KR102392114B1 (en) System and method for flexible human-machine collaboration
Hong et al. A PC-based open robot control system: PC-ORC
US7590680B2 (en) Extensible robotic framework and robot modeling
Vaughan et al. Reusable robot software and the player/stage project
JPH10309685A (en) Robot control device
US8204732B1 (en) Modeling communication interfaces for multiprocessor systems
US20220156433A1 (en) Industrial network communication emulation
JP2022509608A (en) Data processing methods and devices, equipment, servers, systems and storage media
JP6550269B2 (en) PROGRAM CREATION SUPPORT DEVICE, CONTROL METHOD, AND PROGRAM
CN115407745A (en) Parallel simulation test method based on HIL test system and related equipment
WO2023145361A1 (en) Robot control system and method for configuring robot control system
Joseph et al. Mastering ROS for robotics programming: Best practices and troubleshooting solutions when working with ROS
JP2007102632A (en) Simulation device
CN115816459A (en) Robot control method, device, computer equipment, storage medium and product
JP2023111376A (en) Robot control system and control device
WO2023145362A1 (en) Robot control system and method of configuring robot control system
Stone et al. 1Augmented Reality Interface For Industrial Robot Controllers
Di Trapani et al. NTGsim: A graphical user interface and a 3D simulator for nonlinear trajectory generation methodology
Kuts et al. Digital Twin: Universal User Interface for Online Management of the Manufacturing System
JP7151161B2 (en) Control system, support equipment, support program
JP7441981B2 (en) System and method for providing autonomous driving simulation architecture with switchable models
Formanek et al. INMOOV PROJECT CONTROLLED BY ROBOT OPERATING SYSTEM (ROS)
WO2023171574A1 (en) Control system, computation module, robot controller, and control method
Krekhov et al. MorphableUI: a hypergraph-based approach to distributed multimodal interaction for rapid prototyping and changing environments
CN116394266B (en) Robot self-collision processing method and device, robot and medium

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 22924208

Country of ref document: EP

Kind code of ref document: A1