Robot control system and control device

The control system addresses the challenge of controlling diverse robots by using a control device with adaptable modules, ensuring flexible and efficient robot control.

JP7771792B2Active Publication Date: 2025-11-18OMRON CORP
View PDF 7 Cites 0 Cited by

Patent Information

Application Number
JP2022013208
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2022-01-31
Publication Date
2025-11-18
Estimated Expiration
2042-01-31

AI Technical Summary

Technical Problem

Existing robot control systems struggle to accommodate the diversity in processes and functions among various robots, making it difficult to control them with a common control device.

Method used

A control system that includes a control device generating control commands through an intermediate representation, with a development support device capable of changing modules to adapt to the specifications and communication protocols of different robots, allowing flexible control.

Benefits of technology

Enables flexible control of various types of robots by adapting the communication and command generation modules to their specific requirements, accommodating diverse functions and protocols.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007771792000001
    Figure 0007771792000001
  • Figure 0007771792000002
    Figure 0007771792000002
  • Figure 0007771792000003
    Figure 0007771792000003
Patent Text Reader

Abstract

To provide a technique capable of flexibly coping with the diversity of robots.SOLUTION: A control system for controlling a robot in accordance with a control program code includes: a control device that generates a control command for the robot in accordance with intermediate expressions sequentially generated by interpreting control program codes; and a development assistance device capable of communicating with the control device. The control device comprises: a first generation module configured to generate an internal command including a series of instructions corresponding to the intermediate expressions; a second generation module configured to generate, for each control cycle, a command value for one or more actuators constituting the robot, in accordance with the internal command; and a communication module configured to transmit the command value to the robot as the control command. The development assistance device is configured to be able to change at least one of the second generation module and the communication module in accordance with a designation regarding the robot.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present invention relates to a robot control system and a control device. [Background technology]

[0002] Various robots are being introduced and put to practical use in production sites. Since it is sometimes necessary to operate robots in cooperation with production equipment, configurations have been disclosed in which one or more robots are controlled by a common control device (see Patent Documents 1 to 4). [Prior art documents] [Patent documents]

[0003] [Patent Document 1] Patent Publication No. 2021-142625 [Patent Document 2] Patent Publication No. 2021-144586 [Patent Document 3] Patent Publication No. 2021-144587 [Patent Document 4] Japanese Patent Publication No. 2021-144588 Summary of the Invention [Problem to be solved by the invention]

[0004] A wide variety of robots are used in production sites, and some robots have processes and functions that differ from those of other robots, which can be a barrier to controlling these robots with a common control device.

[0005] An object of the present invention is to provide a technology that can flexibly respond to the diversity of robots. [Means for solving the problem]

[0006] According to one aspect of the present invention, there is provided a control system for controlling a robot in accordance with control program code. The control system includes a control device that generates control commands for the robot in accordance with an intermediate representation that is sequentially generated by interpreting the control program code, and a development support device capable of communicating with the control device. The control device includes a first generation module that generates internal commands consisting of a series of instructions corresponding to the intermediate representation, a second generation module that generates command values ​​for one or more actuators that constitute the robot for each control period in accordance with the internal commands, and a communication module that transmits the command values ​​to the robot as control commands. The development support device is configured to be able to change at least one of the second generation module and the communication module in accordance with specifications related to the robot.

[0007] According to this configuration, by changing at least one of the second generation module and the communication module, various types of robots can be controlled, and therefore, it is possible to flexibly respond to the diversity of robots.

[0008] The development support device may be configured to change the communication module depending on the communication protocol for transmitting control commands to the robot. This configuration allows for flexible response to the communication protocol of the robot to be controlled.

[0009] The development support device may be configured to change the second generation module in accordance with the functions of the robot, which allows for flexible response to the functions of the robot to be controlled.

[0010] The second generation module after the change may successively generate target positions to which the robot should move in accordance with the internal command, and the communication module may transmit the target positions to the robot as control commands. This configuration allows for flexible response even when the robot to be controlled has its own control algorithm.

[0011] The second generation module after the change may output the internal command as is, and the communication module may transmit the internal command to the robot as a control command. This configuration allows for flexible response even when the robot to be controlled has an environment in which it can directly execute the internal command.

[0012] The development support device may be configured to change the second generation module and the communication module together depending on the type of robot. This configuration allows for flexible support even if the functions of the robot to be controlled and the communication protocol used by the robot to be controlled are different from the standard.

[0013] The second generation module may determine a trajectory along which the robot should move in accordance with the internal command. With this configuration, a control command can be generated for the robot for each control period in accordance with the determined trajectory.

[0014] The second generation module may determine the operation of one or more actuators corresponding to the internal command based on the mechanical coupling relationship between the robot mechanism and the one or more actuators. This configuration makes it possible to accurately generate control commands that determine the operation of the actuators.

[0015] The control system may further include a third generation module that sequentially generates an intermediate representation by interpreting the control program code. With this configuration, one or more robots 350 can be controlled using control program code written in any high-level language.

[0016] According to another aspect of the present invention, there is provided a control device constituting a control system for controlling a robot in accordance with control program code. The control device includes a first generation module that generates internal commands consisting of a series of instructions corresponding to an intermediate representation that is generated sequentially by interpreting the control program code, a second generation module that generates command values ​​for one or more actuators that constitute the robot for each control period in accordance with the internal commands, and a communication module that transmits the command values ​​to the robot as control commands. The control device is configured to be able to change at least one of the second generation module and the communication module in accordance with specifications related to the robot. [Effects of the Invention]

[0017] According to the present invention, it is possible to flexibly respond to the diversity of robots. [Brief explanation of the drawings]

[0018] [Figure 1] FIG. 1 is a schematic diagram illustrating an application example of a robot control system according to an embodiment of the present invention. [Figure 2] 1 is a schematic diagram illustrating an example of the overall configuration of a robot control system according to an embodiment of the present invention. [Figure 3] FIG. 2 is a schematic diagram illustrating an example of a hardware configuration of a control device according to the present embodiment. [Figure 4] FIG. 2 is a schematic diagram illustrating an example of a hardware configuration of a control device according to the present embodiment. [Figure 5] FIG. 2 is a schematic diagram illustrating an example of a hardware configuration of a robot controller according to the present embodiment. [Figure 6] 1 is a schematic diagram illustrating an example of a hardware configuration of a development support device according to an embodiment of the present invention; [Figure 7] FIG. 2 is a schematic diagram illustrating an example of a functional configuration related to standard control of the robot control system according to the present embodiment. [Figure 8] FIG. 8 is a schematic diagram for explaining processing in the example functional configuration shown in FIG. 7. [Figure 9]It is a schematic diagram showing a functional configuration example related to the control of robots manufactured by other companies in the robot control system according to this embodiment. [Figure 10] It is a schematic diagram showing a functional configuration example related to the control of a robot having a control algorithm of the robot control system according to this embodiment. [Figure 11] It is a schematic diagram showing a functional configuration example related to the control of a mobile robot in the robot control system according to this embodiment. [Figure 12] It is a schematic diagram showing an implementation example for changing the robot control unit of the robot control system according to this embodiment. [Figure 13] It is a schematic diagram showing another functional configuration example for changing the robot control unit of the robot control system according to this embodiment. [Figure 14] It is a schematic diagram showing an example of a setting screen provided by the development support device of the robot control system according to this embodiment. [Figure 15] It is a flowchart showing an example of a processing procedure executed by the development support device of the robot control system according to this embodiment. [Figure 16] It is a schematic diagram showing a modification example of the robot control system according to this embodiment.

Embodiments for Carrying Out the Invention

[0019] Embodiments of the present invention will be described in detail with reference to the drawings. For the same or corresponding parts in the drawings, the same reference numerals are given and their descriptions will not be repeated.

[0020] <A. Application Example> First, referring to FIG. 1, an example of a scene to which the present invention is applied will be described.

[0021] FIG. 1 is a schematic diagram showing an application example of the robot control system 1 according to this embodiment. Referring to FIG. 1, the robot control system 1 controls the robot 350 according to the control program code 30. Typically, the robot control system 1 includes an interpretation unit 50, an integrated instruction unit 60, and a robot control unit 70.

[0022] The interpretation unit 50 is implemented in the control device 100 or the control device 200 (see FIG. 2), and sequentially generates an intermediate representation by interpreting the control program code 30. The integration instruction unit 60 is implemented in the control device 200 (see FIG. 2), and provides the intermediate representation to the robot control unit 70.

[0023] The robot control unit 70 is implemented in the control device 200 or the robot controller 300 (see FIG. 2), and generates control commands for the robot 350 according to the intermediate representations that are generated sequentially.

[0024] The robot control unit 70 includes a host communication unit 71 , a routine management unit 72 , a command storage unit 73 , a command value generation unit 74 , and a robot communication unit 75 .

[0025] The upper communication unit 71 and the routine management unit 72 correspond to a first generation module, and generate an internal command consisting of a series of instructions corresponding to the intermediate representation.

[0026] The command value generating unit 74 corresponds to a second generating module, and generates command values ​​for one or more actuators that configure the robot 350 for each control period in accordance with an internal command.

[0027] The robot communication unit 75 corresponds to a communication module, and transmits a command value to the robot 350 as a control command.

[0028] A development support device 400 (see FIG. 2), which can communicate with the control device 200, is configured so that at least one of the command value generation unit 74 (second generation module) and the robot communication unit 75 (communication module) can be changed in accordance with specifications related to the robot 350. That is, in the robot control system 1, the command value generation unit 74 and / or the robot communication unit 75 can be changed in accordance with the processing and functions of the robot 350. By employing such a configuration, it is possible to flexibly respond to the diversity of the robot 350.

[0029] <B. Hardware Configuration Example> Next, a hardware configuration example of the robot control system 1 according to this embodiment will be described.

[0030] (b1: Overall Configuration Example) FIG. 2 is a schematic diagram showing an overall configuration example of the robot control system 1 according to this embodiment. Referring to FIG. 2, the robot control system 1 controls the robot 350 according to the control program code 30. More specifically, the robot control system 1 includes a control device 100, a control device 200, and one or more robot controllers 300-1, 300-2, 300-3, 300-4,... (hereinafter also collectively referred to as "robot controller 300").

[0031] The control device 100 sequentially interprets an arbitrary control program code 30 and sequentially generates commands to be transmitted to the robot controller 300 via the control device 200. The control program code may be described in, for example, an arbitrary high-level language (for example, a robot control programming language such as V+ language or a programming language related to NC control such as G code).

[0032] The control device 200 transmits commands to the robot controller 300 according to the commands from the control device 100. More specifically, the control device 200 generates control commands for the 350 robots according to the intermediate representation sequentially generated by interpreting the control program code 30.

[0033] The control device 100 and the control device 200 are connected via the upper network 10. For the upper network 10, a protocol for industrial networks such as EtherNet / IP can be used.

[0034] The robot controllers 300-1, 300-2, 300-3, 300-4, ... control the robots 350-1, 350-2, 350-3, 350-4, ... (hereinafter also collectively referred to as "robots 350"). As will be described later, the robot control system 1 according to this embodiment provides a platform capable of controlling various types of robots 350.

[0035] The robot controller 300 is connected to the control device 200 via a field network 20. For the field network 20, industrial network protocols such as EtherCAT (registered trademark) and EtherNet / IP can be used. It is preferable that periodic communication be possible between the control device 200 and the robot controller 300.

[0036] The development support device 400 may be connectable to the control device 100 and / or the control device 200. In other words, the development support device 400 may be able to communicate with the control device 100 and / or the control device 200.

[0037] In addition to the control devices 100 and 200, a display device 500 may be connected to the upper network 10.

[0038] For convenience of explanation, four pairs of robot controllers 300 and robots 350 are shown as an example, but it is not necessary that there be a plurality of pairs of robot controllers 300 and robots 350; it is sufficient that there be at least one pair.

[0039] (b2: control device 100) Fig. 3 is a schematic diagram showing an example of a hardware configuration of a control device 100 according to the present embodiment. Referring to Fig. 3, the control device 100 includes a processor 102 such as a CPU (Central Processing Unit) or a GPU (Graphics Processing Unit), a main memory 104, an input unit 106, a display unit 108, a storage 110, a USB controller 120, and a network controller 122. These components are connected via a bus 130.

[0040] The processor 102 reads out various programs stored in the storage 110, loads them into the main memory 104, and executes them to realize the processes required by the control device 100.

[0041] The storage 110 is configured, for example, with a hard disk drive (HDD) or a solid state drive (SSD). The storage 110 typically stores an OS 112 and a system program 114. The storage 110 may also store a control program code 30. Note that the storage 110 may store necessary programs other than the programs shown in FIG. 3.

[0042] The input unit 106 is configured with a mouse, keyboard, touch panel, etc., and receives instructions from the user. The display unit 108 is configured with a display, various indicators, etc., and outputs processing results from the processor 102, etc.

[0043] The USB controller 120 exchanges data with any information processing device via a USB connection.

[0044] The network controller 122 exchanges data with any information processing device via any network.

[0045] The optical drive 124 reads a computer-readable program from a recording medium 126 (for example, an optical recording medium such as a DVD (Digital Versatile Disc)) that non-transiently stores the program, and stores the program in the storage 110 or the like.

[0046] The various programs executed by the control device 100 may be installed via a computer-readable recording medium 126, or may be installed by downloading from an arbitrary server on the network.

[0047] (b3: control device 200) 4 is a schematic diagram showing an example of the hardware configuration of a control device 200 according to this embodiment. Referring to Fig. 4, the control device 200 includes a processor 202, a main memory 204, a storage 210, a host network controller 206, a field network controller 208, a USB (Universal Serial Bus) controller 220 that provides a USB interface, and a memory card interface 222. These components are connected via a processor bus 230.

[0048] The processor 202 corresponds to an arithmetic processing unit that executes control calculations, and is configured with a CPU, a GPU (Graphics Processing Unit), etc. Specifically, the processor 202 reads out a program stored in the storage 210, expands it in the main memory 204, and executes it to realize control calculations for a control target.

[0049] The main memory 204 is configured with a volatile storage device such as a dynamic random access memory (DRAM) or a static random access memory (SRAM). The storage 210 is configured with a non-volatile storage device such as an SSD or HDD.

[0050] The storage 210 stores a system program 212 for realizing basic functions.

[0051] The upper network controller 206 exchanges data with any information processing device (such as the control device 100 and the display device 500 shown in FIG. 2) via the upper network 10.

[0052] The field network controller 208 exchanges data with the robot controller 300 via the field network 20 .

[0053] The USB controller 220 exchanges data with any information processing device via a USB connection.

[0054] The memory card interface 222 accepts a memory card 224, which is an example of a removable storage medium. The memory card interface 222 is capable of reading and writing any data from and to the memory card 224.

[0055] (b4: Robot Controller 300) 5 is a schematic diagram showing an example of a hardware configuration of a robot controller 300 according to this embodiment. Referring to FIG. 5, the robot controller 300 includes a field network controller 310 and a control processing circuit 320.

[0056] The field network controller 310 mainly exchanges data with the control device 200 via the field network 20 .

[0057] The control processing circuit 320 executes calculations necessary to drive the robot. As an example, the control processing circuit 320 includes a processor 322, a main memory 324, a storage 326, and an interface circuit 330.

[0058] The processor 322 executes control calculations for driving the robot. The main memory 324 is configured with a volatile storage device such as a DRAM or SRAM. The storage 326 is configured with a non-volatile storage device such as an SSD or HDD.

[0059] The storage 326 stores a system program 328 for controlling the robot 350 .

[0060] The interface circuit 330 exchanges signals with the robot 350 . (b5: Development support device 400) 6 is a schematic diagram showing an example of the hardware configuration of a development support device 400 according to this embodiment. Referring to Fig. 6, the development support device 400 includes a processor 402 such as a CPU or a GPU, a main memory 404, an input unit 406, a display unit 408, storage 410, a USB controller 420, a network controller 428, and an optical drive 424. These components are connected via a bus 430.

[0061] The processor 402 reads out various programs stored in the storage 410, expands them in the main memory 404, and executes them to realize the processing required by the development support device 400.

[0062] The storage 410 is configured with, for example, an HDD or SSD. The storage 410 typically stores an OS 412 and a development support program 414 for realizing the processing described below. Note that the storage 410 may store necessary programs other than the programs shown in FIG. 6.

[0063] The input unit 406 is configured with a mouse, keyboard, touch panel, etc., and receives instructions from the user. The display unit 408 is configured with a display, various indicators, etc., and outputs processing results from the processor 402, etc.

[0064] The USB controller 420 exchanges data with any information processing device via a USB connection.

[0065] The network controller 428 exchanges data with any information processing device via any network.

[0066] The optical drive 424 reads a computer-readable program from a recording medium 426 (for example, an optical recording medium such as a DVD) that non-transiently stores the program, and stores the program in the storage 410 or the like.

[0067] The various programs executed by the development support device 400 may be installed via a computer-readable recording medium 426, or may be installed by downloading from an arbitrary server on the network.

[0068] (b6:Display device 500) As an example, the display device 500 according to the present embodiment may be realized using a general-purpose personal computer. The basic hardware configuration of the display device 500 is well known, and therefore will not be described in detail here.

[0069] (b7: Other forms) Although Figures 3 to 6 show configuration examples in which the required functions are provided by one or more processors executing programs, some or all of these provided functions may be implemented using dedicated hardware circuits (e.g., ASICs (Application Specific Integrated Circuits) or FPGAs (Field-Programmable Gate Arrays)).

[0070] Further, part or all of the processes necessary for realizing the robot control system according to the present embodiment may be executed using so-called computer resources on the cloud. Regarding what hardware resources and software resources are used to realize the robot control system according to the present embodiment, it is a matter that can be arbitrarily designed and selected.

[0071] For example, the control device 100 and the control device 200 may be mounted on the same processing device. <C. Functional Configuration> Next, an example of the functional configuration of the robot control system 1 according to the present embodiment will be described.

[0072] (c1: Standard Control) FIG. 7 is a schematic diagram showing an example of the functional configuration related to the standard control of the robot control system 1 according to the present embodiment. Referring to FIG. 7, the robot control system 1 includes, as functions related to standard control, an interpretation unit 50, an integration instruction unit 60, and one or more robot control units 70.

[0073] The interpretation unit 50 is typically realized by the processor 102 of the control device 100 executing the system program 114. That is, the interpretation unit 50 may be mounted on the control device 100. The interpretation unit 50 sequentially interprets the control program code 30 and generates an intermediate representation. Thus, the interpretation unit 50 corresponds to the third generation module and sequentially generates an intermediate representation by interpreting the control program code 30. The intermediate representation generated by the interpretation unit 50 includes identification information for specifying the target robot control unit 70.

[0074] The integration instruction unit 60 is typically realized by the processor 202 of the control device 200 executing the system program 212. The integration instruction unit 60 sequentially transmits the intermediate representation to one or more robot control units 70. Based on identification information included in the intermediate representation generated by the interpretation unit 50, the integration instruction unit 60 determines the robot control unit 70 (robot controller 300) to which the intermediate representation will be transmitted. The integration instruction unit 60 generates a new intermediate representation by removing the identification information from the intermediate representation, and transmits it to the destination robot control unit 70.

[0075] The robot control unit 70 is typically realized by the processor 322 of the robot controller 300 executing the system program 328. The robot control unit 70 includes a host communication unit 71, a routine management unit 72, a command storage unit 73, a command value generation unit 74, a robot communication unit 75, a periodic service execution unit 76, and a sub-module execution unit 77.

[0076] The upper communication unit 71 receives the intermediate representation from the integration instruction unit 60 and generates an internal command corresponding to the received intermediate representation.

[0077] The routine management unit 72 has a database 722 that stores routines. The routines are referenced to generate internal commands corresponding to the intermediate representation received from the integration instruction unit 60. Here, a routine means a series of instructions for implementing processing specified by the intermediate representation. The routines may be implemented in the form of, for example, a function and / or a procedure.

[0078] The upper communication unit 71 acquires a routine corresponding to the instruction included in the received intermediate representation from the routine management unit 72 (database 722), generates an internal command using the acquired routine, and outputs it to the command storage unit 73. The upper communication unit 71 notifies the integration instruction unit 60 of the execution result of the received intermediate representation, etc.

[0079] In this way, the upper communication unit 71 and the routine management unit 72 correspond to a first generation module, and generate an internal command consisting of a series of instructions corresponding to the intermediate representation.

[0080] The command storage unit 73 sequentially stores the internal commands generated by the higher-level communication unit 71. The command storage unit 73 has a queue 732 for storing one or more internal commands. The command storage unit 73 stores the commands in association with the corresponding priority and type.

[0081] The command value generation unit 74 generates a command value for each control cycle in accordance with the internal command stored in the command storage unit 73. That is, the command value generation unit 74 corresponds to a second generation module, and generates a command value for one or more actuators (for example, a motor or a hydraulic mechanism) that configure the robot 350 in accordance with the internal command in each control cycle.

[0082] More specifically, the command value generation unit 74 generates an execution code to be executed in each control cycle for realizing a routine included in the internal command, with reference to the command storage unit 73. Then, the command value generation unit 74 executes the generated execution code in each control cycle to generate a command value for the robot 350-1 to be controlled in each control cycle, and acquire necessary information from the robot 350-1 in each control cycle.

[0083] Typically, the command value generator 74 has a control algorithm 742 specific to the robot 350-1 to be controlled, such as trajectory generation and kinematics calculation. The command value generator 74 can generate a command value appropriate for the robot 350-1 from an instruction by referring to the control algorithm 742.

[0084] More specifically, as a trajectory generation process, the command value generation unit 74 determines a trajectory along which the robot 350 should move in accordance with the internal command. Furthermore, as a kinematics calculation, the command value generation unit 74 determines the operation of one or more actuators corresponding to the internal command based on the mechanical coupling relationship between the mechanism of the robot 350 and one or more actuators.

[0085] The robot communication unit 75 corresponds to a communication module and transmits a command value as a control command to the robot 350. More specifically, the robot communication unit 75 transmits a command value generated by the command value generation unit 74 for each control cycle to the robot 350-1 to be controlled, and receives a specified state value from the robot 350-1 for each control cycle. The robot communication unit 75 exchanges data with the robot 350-1 in accordance with a predetermined communication protocol.

[0086] The periodic service execution unit 76 processes information updated for each control period. For example, the periodic service execution unit 76 transmits the state value received from the robot 350-1 by the robot communication unit 75 for each control period to the integrated instruction unit 60 via the upper communication unit 71.

[0087] The sub-module execution unit 77 controls the execution of modules (not shown) included in the robot control unit 70 .

[0088] FIG. 8 is a schematic diagram for explaining the processing in the example of the functional configuration shown in FIG. Referring to FIG. 8, the control program code 30 describes a series of instructions for moving the second robot to the position (10, 20, 10).

[0089] The interpretation unit 50 interprets the control program code 30 and outputs an intermediate representation 32. The intermediate representation 32 includes an instruction consisting of an instruction code "MoveRequest" and operands [10,20,10] and "Robot1".

[0090] The integration instruction unit 60 identifies the robot to which the command (intermediate representation) is to be sent from the operand "Robot1" included in the intermediate representation 32 from the interpretation unit 50. The integration instruction unit 60 also generates a new intermediate representation 34 from the command code "MoveRequest" and the operand [10,20,10] included in the intermediate representation 32. The intermediate representation 34 includes a command consisting of the command code "MoveCommand" and the operand [10,20,10]. The integration instruction unit 60 then sends the intermediate representation 34 to the robot control unit 70 corresponding to "Robot1."

[0091] The upper communication unit 71 of the robot control unit 70 obtains a routine corresponding to the instruction code "MoveCommand" included in the intermediate representation 34 from the routine management unit 72 (database 722). More specifically, the upper communication unit 71 specifies "MoveCommand" as the "Motion Type" and then executes a method to send a routine request 36 to the routine management unit 72. The routine management unit 72 refers to the database 722, extracts a routine 38 corresponding to the specified "Motion Type," and responds to the upper communication unit 71.

[0092] The upper communication unit 71 references the acquired routine 38 and generates an internal command 42 from the intermediate representation 34. The internal command 42 is stored in a command storage unit 73.

[0093] The internal command 42 includes an instruction 421 for setting the variable targetPosition to [10,20,10], an instruction 422 for setting the execution result of the function generateTrajectory(targetPosition) to the variable plan, and an instruction 423 for causing the command value generation unit 74 to execute the method executeTrajectory(plan). The instruction 422 is a function for generating a trajectory to the coordinates specified by the variable targetPosition, and the variable plan stores a set of coordinates indicating the generated trajectory (one or more coordinates to pass through). The method executeTrajectory(plan) described in the instruction 423 executes processing for moving along the trajectory indicated by the variable plan.

[0094] The command value generation unit 74 reads and executes the internal command 42 from the command storage unit 73. The command value generation unit 74 generates the execution code 44 corresponding to the method executeTrajectory(plan) described in the instruction 423 of the internal command 42, and executes it for each control cycle.

[0095] The execution code 44 includes a command 441 indicating that the execution is for each control cycle, a command 442 for acquiring the current position of each axis of the robot 350-1, a command 443 for calculating the command position of each axis for the control cycle (the position that should be at the next control cycle), and a command 444 for transmitting the command position (command value) of each axis for the control cycle to the robot 350-1. The command 442 is for requesting the robot communication unit 75 for the current position of each axis of the robot 350-1. The command 444 is for causing the robot communication unit 75 to transmit the command position to the robot 350-1. The command 443 is executed by referencing the control algorithm 742.

[0096] As described above, the robot control system 1 according to this embodiment is composed of an interpretation unit 50 that interprets the control program code 30 and generates an intermediate representation for each robot 350, an integrated instruction unit 60 that transmits the intermediate representation to each robot 350, and a robot control unit 70 that periodically generates command values ​​in accordance with the intermediate representation. By employing such a functional configuration, the flexibility of the system can be increased.

[0097] In the robot control system 1 according to this embodiment, in addition to the standard control described above, various types of robots 350 can be controlled by changing the command value generation unit 74 and / or the robot communication unit 75. More specifically, the development support device 400 is configured to be able to change at least one of the command value generation unit 74 (second generation module) and the robot communication unit 75 (communication module) in accordance with specifications related to the robot 350.

[0098] Below, we will explain practical configuration examples that can be realized by increasing flexibility. (c2: Third-party robot control) Next, as an applied configuration example, a configuration example for controlling a robot 350-2 made by another company will be described.

[0099] 9 is a schematic diagram showing an example of a functional configuration for controlling a robot made by another company by the robot control system 1 according to this embodiment. Referring to FIG. 9, the robot 350-2 has a communication protocol for exchanging command values ​​and state values ​​that is different from that of the standard robot 350-1.

[0100] In this case, the robot controller 300-2 that controls the robot 350-2 includes a robot communication unit 75A that corresponds to the communication protocol adopted by the robot 350-2. That is, the robot communication unit 75A exchanges data with the robot 350-2 according to a predetermined communication protocol (different from the communication protocol adopted by the robot 350-1 shown in FIG. 7).

[0101] As shown in instructions 442 and 444 of the execution code 44 (see FIG. 8), the command value generation unit 74 and the robot communication unit 75A are configured to exchange data according to internal commands, and are not affected by changes in the communication protocol used by the robot communication unit 75A to exchange data with the robot 350-2. Therefore, the modules of the robot controller 300-2 are identical to the corresponding modules of the robot controller 300-1, except for the robot communication unit 75A. In other words, the robot control unit 70A corresponds to a robot control unit 70 (robot controller 300-1) that supports standard control, with only the robot communication unit 75A changed. In this way, by simply changing the robot communication unit 75A, it is possible to control a robot 350-2 made by another manufacturer.

[0102] The control algorithm 742A of the command value generator 74 is specific to the robot 350-2.

[0103] In this way, the development support device 400 is configured to be able to change the robot communication unit 75 (communication module) in accordance with the communication protocol for transmitting control commands to the robot 350. As a result, even when the robot control system 1 according to this embodiment controls a robot 350-2 that uses a different communication protocol, it can handle this by simply changing the module related to communication with the robot 350-2.

[0104] (c3: Control of a robot with a control algorithm) Next, as an applied configuration example, a configuration example for controlling a robot 350-3 having a control algorithm will be described.

[0105] 10 is a schematic diagram showing an example of a functional configuration related to the control of a robot having a control algorithm of the robot control system 1 according to this embodiment. Referring to Fig. 10, the robot 350-3 has a specific control algorithm 742B such as kinematics and trajectory generation.

[0106] In this configuration, the robot 350-3 operates according to a target position 752 transmitted from the robot control unit 70B. That is, processes such as trajectory generation and kinematics calculation are executed by the robot 350-3. In addition, the current position 754 of each axis of the robot 350-3 is transmitted from the robot 350-3 to the robot control unit 70B.

[0107] The command value generation unit 74B does not have a control algorithm, and executes a process of transmitting a target position 752 to the robot 350-3 and receiving a current position 754 from the robot 350-3. For example, the execution code 44 generated by the command value generation unit 74B includes an instruction 445 indicating that the execution is to be performed at the start of processing, and an instruction 446 for transmitting the target position 752 to the robot 350-3. The instructions 445 and 446 are executed once at the start of processing. Furthermore, the execution code 44 includes an instruction 447 indicating that the execution is to be performed every control cycle, and an instruction 448 for acquiring the current position of each axis of the robot 350-1. The instructions 445 and 446 are repeatedly executed every control cycle.

[0108] The modules of the robot controller 300-3 are the same as the corresponding modules of the robot controller 300-1, except for a command value generator 74B that simplifies the processing in the command value generator 74. In other words, by simply changing the robot control unit 70 (robot controller 300-1) that supports standard control to the command value generator 74B, it is possible to control a robot 350-2 made by another company.

[0109] In this way, the development support device 400 is configured to be able to change the command value generation unit 74 (second generation module) in accordance with the function of the robot 350. In the configuration example shown in Fig. 10, the changed command value generation unit 74B sequentially generates a target position 752 to which the robot 350 should move in accordance with an internal command, and the robot communication unit 75 transmits the target position as a control command to the robot 350. This allows the robot control system 1 according to this embodiment to use the same control program code 30 even when controlling a robot 350-3 having a control algorithm.

[0110] (c4: Mobile robot control) Next, as an applied configuration example, a configuration example for controlling a robot 350-4, which is a mobile robot, will be described.

[0111] 11 is a schematic diagram showing an example of a functional configuration for controlling a mobile robot in the robot control system 1 according to this embodiment. Referring to FIG. 11, the robot 350-4 is a mobile robot that has computing resources capable of performing high-load processing such as path determination.

[0112] The robot 350-4 uses computing resources to have a processing environment equivalent to the command value generator 74. That is, the robot 350-4 is responsible for processing such as generating a command value for each control cycle in accordance with the internal command 42. That is, the robot 350-4 is responsible for generating an execution code corresponding to the internal command 42 and executing it for each control cycle.

[0113] The command value generation unit 74C does not actually perform calculation processing, but is responsible for processing of transmitting the internal command 42 to the robot 350-4. That is, the command value generation unit 74C transmits the internal command 42 stored in the command storage unit 73 to the robot 350-4 via the robot communication unit 75. Note that the command value generation unit 74C may be configured to appropriately acquire a state value from the robot 350-4.

[0114] In this way, the modules of the robot controller 300-4 are the same as the corresponding modules of the robot controller 300-1, except for the command value generator 74C, which omits the substantial calculation processing in the command value generator 74. In other words, by simply changing the robot control unit 70 (robot controller 300-1) that corresponds to standard control to the command value generator 74C, it is possible to control a robot 350-3 made by another company.

[0115] Furthermore, when controlling multiple mobile robots (robot 350-4), a robot control unit 70C (control device 200) is provided to control each mobile robot, and the timing of transmitting the corresponding intermediate representation 34 from the control device 200 that oversees the multiple robot control units 70C (control device 200) to each robot control unit 70C can be appropriately determined, thereby enabling the multiple mobile robots to be controlled in a synchronized manner.

[0116] When this configuration is adopted, the operations of multiple mobile robots can be written using a single control program code 30. In other words, multiple mobile robots can be controlled using a single control program code 30. As a result, there is no need to write synchronization processes between other control program codes within the control program code 30, which improves the efficiency of program development.

[0117] In this way, the development support device 400 is configured to be able to change the command value generation unit 74 (second generation module) depending on the function of the robot 350. In the configuration example shown in Fig. 11, the changed command value generation unit 74C outputs the internal command as is, and the robot communication unit 75 transmits the internal command to the robot 350-4 as a control command. This allows the robot control system 1 according to this embodiment to use the same control program code 30 even when controlling the robot 350-4, which is a mobile robot.

[0118] (c5: Variation) In the configuration examples shown in FIGS. 10 and 11, for the sake of convenience of explanation, the change of the robot communication unit 75 was not mentioned. However, depending on the target robot 350, the robot communication unit 75 may also be changed. In this case, the development support device 400 may integrally change the command value generation unit 74 (second generation module) and the robot communication unit 75 (communication module) according to the type of the robot 350.

[0119] <D. Implementation Example of Development Support Device 400 and Robot Control Unit 70> Next, the processes and configurations for realizing the change of the modules of the robot control unit 70 as described above will be described.

[0120] FIG. 12 is a schematic diagram showing an implementation example for changing the robot control unit 70 of the robot control system 1 according to the present embodiment. In the implementation example shown in FIG. 12, the robot controller 300 includes a command value generation library 374 including a plurality of types of command value generation units and a robot communication library 375 including a plurality of types of robot communication units.

[0121] The command value generation library 374 includes, for example, a command value generation unit 74, a command value generation unit 74B, and a command value generation unit 74C. The robot communication library 375 includes, for example, a robot communication unit 75 and a robot communication unit 75A.

[0122] The command value generation library 374 and the robot communication library 375 may be included as a part of the system program 328, or may be transferred (downloaded) from the development support device 400.

[0123] The robot controller 300 determines which modules to enable from among the modules included in the command value generation library 374, and also determines which modules to enable from among the modules included in the robot communication library 375, according to the setting information 80. In this way, the robot controller 300 may refer to the setting information 80, which specifies which of a plurality of pre-prepared modules to enable.

[0124] The development support device 400 may generate the setting information 80 in response to a user operation or the like, and transfer the generated setting information 80 to the robot controller 300 .

[0125] 13 is a schematic diagram showing another example of the functional configuration for changing the robot control unit 70 of the robot control system 1 according to this embodiment. In the implementation example shown in FIG. 13, the robot controller 300 includes a command value generation library 374 and a robot communication library 375.

[0126] The development support device 400 adds a command value generation unit that is enabled in the command value generation library 374 and also adds a robot communication unit that is enabled in the robot communication library 375.

[0127] For example, when the command value generating unit 74B is enabled in the command value generating library 374, the development support device 400 disables the command value generating unit 74 and adds the command value generating unit 74B to the robot controller 300.

[0128] In this way, the development support device 400 may be configured to be able to change or update the modules used in the robot controller 300 as needed.

[0129] 14 is a schematic diagram showing an example of a setting screen provided by the development support device 400 of the robot control system 1 according to this embodiment. The setting screen 450 shown in FIG. 14 may be provided by the processor 402 of the development support device 400 executing the development support program 414.

[0130] Referring to FIG. 14, the setting screen 450 includes a selection menu 452 for selecting the robot controller 300 to be set, a selection menu 454 for selecting the type of robot 350 connected to the robot controller 300 to be set, and a selection menu 456 for selecting the manufacturer of the robot 350 connected to the robot controller 300 to be set.

[0131] The user makes settings on the setting screen 450 according to the robot controller 300 and robot 350 to be controlled. When the user presses the apply button 458, the development support device 400 generates setting information 80 (see FIG. 12) according to the setting contents and transfers it to the target robot controller 300. Alternatively, the development support device 400 transfers a necessary module to the target robot controller 300 according to the setting contents.

[0132] By performing such processing, a robot controller 300 that corresponds to the robot 350 to be controlled can be realized.

[0133] 15 is a flowchart showing an example of a processing procedure executed by the development support device 400 of the robot control system 1 according to this embodiment. Each step shown in FIG. 15 is typically realized by the processor 402 of the development support device 400 executing the development support program 414.

[0134] 15, when development support device 400 accepts a setting operation from the user (step S100), it displays setting screen 450 as shown in FIG. 14 (step S102). Next, development support device 400 accepts a setting operation from the user on setting screen 450 (step S104), and when apply button 458 is pressed (step S106), it generates setting information 80 in accordance with the setting contents (step S108). Then, development support device 400 transfers the generated setting information 80 to the target robot controller 300 (step S110). Then, the processing ends.

[0135] The robot controller 300 constitutes a module for realizing the robot control unit 70 according to the setting information 80.

[0136] <E. Modified Example> In the above description, the robot control system 1 including the control device 100, the control device 200, and one or more robot controllers 300 has been exemplified. However, the present invention is not limited to this, and the interpretation unit 50, the integration instruction unit 60, and one or more robot control units 70 may be implemented in any device.

[0137] FIG. 16 is a schematic diagram showing a modified example of the robot control system 1 according to the present embodiment. Referring to FIG. 16(A), the interpretation unit 50 and the integration instruction unit 60 may be implemented in the control device 200. In this case, the control device 100 becomes unnecessary.

[0138] Referring to FIG. 16(B), the integration instruction unit 60 and the robot control unit 70 may be implemented in the control device 200. In this case, the robot controller 300 functions as an interface for the robot 350.

[0139] Referring to FIG. 16(C), the interpretation unit 50, the integration instruction unit 60, and the robot control unit 70 may be implemented in the control device 200. In this case, the control device 100 becomes unnecessary, and the robot controller 300 functions as an interface for the robot 350.

[0140] Not limited to the above-described configuration examples, the devices implementing the interpretation unit 50, the integration instruction unit 60, and the robot control unit 70 can be arbitrarily designed.

[0141] <F. Supplementary Note> The present embodiment as described above includes the following technical ideas.

[0142] [Configuration 1] A control system (1) for controlling a robot (350) according to a control program code (30), a control device (200) that generates control commands for the robot according to intermediate representations (32; 34) that are sequentially generated by interpreting the control program code; A development support device (400) capable of communicating with the control device is provided, The control device a first generation module (71, 72) for generating an internal command consisting of a series of instructions corresponding to the intermediate representation; a second generation module (74) that generates command values ​​for one or more actuators that configure the robot in each control period according to the internal command; a communication module (75) that transmits the command value as the control command to the robot; The development support device is configured to be able to change at least one of the second generation module and the communication module in accordance with specifications related to the robot.

[0143] [Configuration 2] 2. The control system according to claim 1, wherein the development support device is configured to be able to change the communication module depending on a communication protocol for transmitting the control command to the robot.

[0144] [Configuration 3] 3. The control system according to configuration 1 or 2, wherein the development support device is configured to be able to change the second generation module depending on the function of the robot.

[0145] [Configuration 4] The second generation module (74B) after the change sequentially generates a target position to which the robot should move in accordance with the internal command, 4. The control system according to claim 3, wherein the communication module transmits the target position to the robot as the control command.

[0146] [Configuration 5] The second generation module (74C) after the change outputs the internal command as is, 4. The control system according to claim 3, wherein the communication module transmits the internal command to the robot as the control instruction.

[0147] [Configuration 6] 6. The control system according to any one of configurations 1 to 5, wherein the development support device changes the second generation module and the communication module together depending on the type of the robot.

[0148] [Configuration 7] 7. The control system according to any one of configurations 1 to 6, wherein the second generation module determines a trajectory along which the robot should move in accordance with the internal command.

[0149] [Configuration 8] The control system according to any one of configurations 1 to 7, wherein the second generation module determines the operation of the one or more actuators corresponding to the internal command based on the mechanical coupling relationship between the robot's mechanism and the one or more actuators.

[0150] [Configuration 9] 9. The control system according to any one of configurations 1 to 8, further comprising a third generation module (50) that interprets the control program code to sequentially generate the intermediate representation.

[0151] [Configuration 10] A control device (200) constituting a control system (1) that controls a robot (350) according to a control program code (30), a first generation module (71, 72) that generates an internal command consisting of a series of instructions corresponding to an intermediate representation that is sequentially generated by interpreting the control program code; a second generation module (74) that generates command values ​​for one or more actuators that configure the robot in each control period according to the internal command; a communication module (75) that transmits the command value to the robot as a control command; The control device is configured to be able to change at least one of the second generation module and the communication module in accordance with a specification related to the robot.

[0152] The embodiments disclosed herein should be considered to be illustrative in all respects and not restrictive. The scope of the present invention is defined by the claims, not by the above description, and is intended to include all modifications within the meaning and scope of the claims. [Explanation of symbols]

[0153] 1 Robot control system, 10 Upper network, 20 Field network, 30 Control program code, 32, 34 Intermediate representation, 36 Routine request, 38 Routine, 42 Internal command, 44 Execution code, 50 Interpretation unit, 60 Integrated instruction unit, 70, 70A, 70B, 70C Robot control unit, 71 Upper communication unit, 72 Routine management unit, 73 Command storage unit, 74, 74B, 74C Command value generation unit, 75, 75A Robot communication unit, 76 Periodic service execution unit, 77 Submodule execution unit, 80 Setting information, 100, 200 Control device, 102, 202, 322, 402 Processor, 104, 204, 324, 404 Main memory, 106, 406 Input unit, 108, 408 Display unit, 110, 210, 326, 410 Storage, 112,412 OS, 114,212,328 System program, 120,220,420 USB controller, 122,428 Network controller, 124,424 Optical drive, 126,426 Recording medium, 130,430 Bus, 206 Upper network controller, 208,310 Field network controller, 222 Memory card interface, 224 Memory card, 230 Processor bus, 300 Robot controller, 320 Control processing circuit, 330 Interface circuit, 350 Robot, 374 Command value generation library, 375 Robot communication library, 400 Development support device, 414 Development support program, 421,422,423,441,442,443,444,445,446,447,448 Instruction, 450 Setting screen, 452,454,456 Selection menu, 458 Apply button, 500 Display device, 722 Database, 732 Queue, 742, 742A, 742B Control algorithm, 752 Target position, 754 Current position.

Claims

1. A control system for controlling a robot according to a control program code, a control device that generates control commands for the robot according to intermediate representations that are sequentially generated by interpreting the control program code; a development support device capable of communicating with the control device; The control device a first generation module for generating internal commands consisting of a series of instructions corresponding to the intermediate representation; a second generation module that generates command values ​​for one or more actuators that configure the robot in each control period according to the internal command; a communication module that transmits the command value to the robot as the control command, The development support device means for receiving a designation regarding the robot; and means for modifying at least one of the second generation module and the communication module in response to the designation.

2. 2. The control system according to claim 1, wherein the development support device is configured to be able to change the communication module in accordance with a communication protocol for transmitting the control command to the robot.

3. 3. The control system according to claim 1, wherein the development support device is configured to be able to change the second generation module depending on the function of the robot.

4. the second generation module after the change sequentially generates a target position to which the robot should move in accordance with the internal command; The control system according to claim 3 , wherein the communication module transmits the target position as the control command to the robot.

5. The second generation module after the change outputs the internal command as is, The control system according to claim 3 , wherein the communication module transmits the internal command as the control command to the robot.

6. The control system according to any one of claims 1 to 5, wherein the development support device changes the second generation module and the communication module together depending on the type of the robot.

7. The control system according to any one of claims 1 to 6, wherein the second generation module determines a trajectory along which the robot should move in accordance with the internal command.

8. The control system according to any one of claims 1 to 7, wherein the second generation module determines the operation of the one or more actuators corresponding to the internal command based on a mechanical coupling relationship between a mechanism of the robot and the one or more actuators.

9. The control system according to any one of claims 1 to 8, further comprising a third generation module that sequentially generates the intermediate representation by interpreting the control program code.

10. A control device constituting a control system for controlling a robot according to a control program code, a first generation module that generates an internal command consisting of a series of instructions corresponding to an intermediate representation that is sequentially generated by interpreting the control program code; a second generation module that generates command values ​​for one or more actuators that configure the robot in each control period according to the internal command; a communication module that transmits the command value to the robot as a control command; means for receiving a designation regarding the robot; and means for modifying at least one of the second generation module and the communication module in response to the designation.

Citation Information

Patent Citations

  • Robot controller and control method for robot

    JP2003058217A

  • Creation method of robot teaching data

    JP2004237364A

  • Robot control system and control method

    JP2021142625A

  • Robot control system and control method

    JP2021144586A

  • Robot control system and control method

    JP2021144587A