Robot control device, teaching device, robot system, and control method
Patent Information
- Application Number
- JP2025057992
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2025-03-31
- Publication Date
- 2026-10-14
Smart Images

Figure 2026165554000001_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to a robot control device, a teaching device, a robot system, and a control method.
Background Art
[0002] In recent years, in factories, due to rising labor costs and labor shortages, automation of tasks that have been performed manually has been promoted using various robots and their peripheral devices. The operation of the robot is controlled by the robot control device. The robot control device includes a storage unit that stores various programs, and a processing unit that executes the programs stored in the storage unit.
[0003] In such a robot control device, from the perspective of improving safety, it is preferable to confirm at startup of the robot control device that the various programs are in a proper state, and in particular that they have not been tampered with improperly due to external attacks or the like. As this method, a known method is to apply signatures to various programs and store them, and verify the signatures of the various programs at startup to detect the appropriateness of the programs including the presence or absence of tampering or the like.
[0004] For example, in the information processing apparatus described in Patent Document 1, signature verification is performed one by one on each of the stored various programs, and when the signature verification succeeds, the operation of starting that program is performed for each program. This makes it possible to start the program after confirming that the program has not been tampered with, thus ensuring safety.
Prior Art Documents
Patent Documents
[0005]
Patent Document 1
Summary of Invention
Problems to be Solved by the Invention
[0006] However, the information processing device described in Patent Document 1 is configured to store various programs with signatures and perform signature verification of these programs at startup. Programs and data that are updated as needed, as well as data transmitted and received with external devices, are not included in the various programs subject to signature verification. In other words, the information processing device described in Patent Document 1 is insufficiently secure (especially in terms of security robustness). [Means for solving the problem]
[0007] A robot control device according to an application example of the present invention is a robot control device that controls the operation of a robot, A drive control unit that controls the operation of the robot, A first storage unit that stores a startup program for starting the robot control device, unique data of the robot, a first public key, and a first private key. A first authentication information acquisition unit obtains authentication information to identify the user, A first key creation unit generates a second public key and a second private key based on the authentication information acquired by the first authentication information acquisition unit, A first verification file creation unit creates a second verification file of the unique data subject to signature verification using the second private key, A first communication unit that communicates with an external device and transmits the second verification file to the external device, The system includes a first signature verification unit that performs signature verification on a first verification file of the startup program created using the first private key using the first public key, and performs signature verification on a second verification file transmitted from the external device and received by the first communication unit using the second public key.
[0008] A teaching device according to an application example of the present invention is a teaching device that can communicate with a robot control device that controls the operation of a robot, and performs teaching on the robot, A second authentication information acquisition unit obtains authentication information to identify the user, A second key creation unit generates a third public key and a third private key based on the authentication information acquired by the second authentication information acquisition unit, A second creation unit creates a third verification file of the robot's unique data that is subject to signature verification using the third secret key, The system includes a second communication unit that transmits the third verification file created by the second creation unit to the robot control device.
[0009] A robot system according to an application example of the present invention includes a first robot control device that controls the operation of a first robot, The system comprises a second robot control device that can communicate with the first robot control device and controls the operation of the second robot, The first robot control device is A first drive control unit that controls the operation of the first robot, A first storage unit that stores unique data of the first robot, A third authentication information acquisition unit obtains authentication information to identify the user, A third key creation unit generates a fourth public key and a fourth private key based on the authentication information acquired by the third authentication information acquisition unit, A first verification file creation unit creates a fourth verification file of the unique data subject to signature verification using the fourth private key, It includes a third communication unit that transmits the fourth verification file and the authentication information to the second robot control device, The second robot control device is A second drive control unit for controlling the operation of the second robot, A fourth communication unit receives the fourth verification file and the authentication information transmitted by the third communication unit, A fourth key creation unit creates the fourth public key based on the authentication information received by the fourth communication unit, The system comprises a second signature verification unit that performs signature verification on the fourth verification file received by the fourth communication unit using the fourth public key.
[0010] A control method according to an application example of the present invention is a control method executed by a robot control device that controls the operation of a robot, The robot control device has a first storage unit that stores a startup program for starting the robot control device, unique data of the robot, a first public key, and a first private key. The first step is to obtain authentication information to identify the user, A second step involves generating a second public key and a second private key based on the authentication information obtained in the first step, A third step involves creating a second verification file for the unique data subject to signature verification using the second private key, A fourth step involves communicating with an external device and sending the second verification file to the external device, The method includes a fifth step in which a signature verification is performed on a first verification file created using a first private key using the first public key, and a signature verification is performed on a second verification file created in the third step and transmitted from the external device using the second public key.
[0011] A control method according to an application example of the present invention is a control method executed by a teaching device that can communicate with a robot control device that controls the operation of a robot and teaches the robot, Step 6 involves obtaining authentication information to identify the user, A seventh step involves generating a third public key and a third private key based on the authentication information obtained in the sixth step, An eighth step is to create a third verification file of the robot's unique data that is subject to signature verification using the third secret key, The ninth step includes transmitting the third verification file created in the eighth step to the robot control device. [Brief explanation of the drawing]
[0012] [Figure 1] Figure 1 is a schematic diagram showing the overall configuration of a robot system according to a first embodiment of the present invention. [Figure 2] Figure 2 is a block diagram of the robot system shown in Figure 1. [Figure 3] Figure 3 is a functional block diagram of the control unit shown in Figure 2. [Figure 4] Figure 4 is a flowchart for explaining an example of the control operation of the robot system shown in Figure 1. [Figure 5] Figure 5 is a schematic configuration diagram showing the overall configuration of a robot system according to the second embodiment of the present invention. [Figure 6] Figure 6 is a flowchart for explaining an example of the control operation of the robot system shown in Figure 1. [Figure 7] Figure 7 is a schematic configuration diagram showing the overall configuration of a robot system according to the third embodiment of the present invention. [Modes for Carrying Out the Invention]
[0013] <First Embodiment> Figure 1 is a schematic configuration diagram showing the overall configuration of a robot system according to the first embodiment of the present invention. Figure 2 is a block diagram of the robot system shown in Figure 1. Figure 3 is a functional block diagram of the control unit shown in Figure 2. Figure 4 is a flowchart for explaining an example of the control operation of the robot system shown in Figure 1.
[0014] Hereinafter, the robot control device, the teaching device, the robot system, and the control method of the present invention will be described in detail based on preferred embodiments shown in the accompanying drawings. For convenience of explanation below, regarding the robot arm, the base 11 side in Figure 1 is also referred to as the "proximal end", and the opposite side, that is, the end effector 20 side is also referred to as the "distal end".
[0015] As shown in Figure 1, the robot system 100 includes a robot 1, a robot control device 3 that controls the operation of the robot 1, and a teaching device 4 which is an example of an external device.
[0016] First, the robot 1 will be described. As shown in Figure 1, in this embodiment, robot 1 is a single-arm, six-axis vertical articulated robot, comprising a base 11 and a robot arm 10 rotatably mounted on the base 11. An end effector 20 can be attached to the tip of the robot arm 10. The end effector 20 may or may not be a component of robot 1.
[0017] Note that robot 1 is not limited to the configuration shown in the figure, and may be, for example, a dual-arm articulated robot, a horizontal articulated robot (SCARA robot), or a mobile robot.
[0018] The base 11 is a support that supports the robot arm 10 from the lower side in Figure 1, and is fixed, for example, to the floor of a factory. The robot 1 is electrically connected to the robot control device 3 via a relay cable on the base 11. Note that the connection between the robot 1 and the robot control device 3 is not limited to a wired connection as shown in Figure 1, but may be entirely or partially wireless, or even connected via a network such as the Internet.
[0019] In this embodiment, the robot arm 10 has a first arm 12, a second arm 13, a third arm 14, a fourth arm 15, a fifth arm 16, and a sixth arm 17, and these arms are connected in this order from the base 11 side. The number of arms that the robot arm 10 has is not limited to six, but may be one, two, three, four, five, or seven or more. Also, the size of each arm, such as the total length, is not particularly limited and can be set as appropriate.
[0020] The base 11 and the first arm 12 are connected via a joint 171. The first arm 12 is rotatable around a first axis of rotation parallel to the vertical direction relative to the base 11. The first axis of rotation coincides with the normal to the floor on which the base 11 is fixed.
[0021] The first arm 12 and the second arm 13 are connected via a joint 172. The second arm 13 is rotatable around a second axis of rotation parallel to the horizontal direction relative to the first arm 12. The second axis of rotation is parallel to an axis perpendicular to the first axis of rotation.
[0022] The second arm 13 and the third arm 14 are connected via a joint 173. The third arm 14 is rotatable around a third rotation axis parallel to the horizontal direction relative to the second arm 13. The third rotation axis is parallel to the second rotation axis.
[0023] The third arm 14 and the fourth arm 15 are connected via a joint 174. The fourth arm 15 is rotatable relative to the third arm 14 around a fourth rotation axis parallel to the central axis direction of the third arm 14. The fourth rotation axis is perpendicular to the third rotation axis.
[0024] The fourth arm 15 and the fifth arm 16 are connected via a joint 175. The fifth arm 16 is rotatable relative to the fourth arm 15 around the fifth rotation axis as its center of rotation. The fifth rotation axis is perpendicular to the fourth rotation axis.
[0025] The fifth arm 16 and the sixth arm 17 are connected via a joint 176. The sixth arm 17 is rotatable relative to the fifth arm 16 around the sixth rotation axis as its center of rotation. The sixth rotation axis is perpendicular to the fifth rotation axis.
[0026] Furthermore, the sixth arm 17 is the robot's tip, located at the very front of the robot arm 10. This sixth arm 17 can rotate together with the end effector 20 by the drive of the robot arm 10.
[0027] Robot 1 includes motors M1, M2, M3, M4, M5, and M6 as drive units, and encoders E1, E2, E3, E4, E5, and E6. Motor M1 is built into joint 171 and rotates the base 11 and the first arm 12 relative to each other. Motor M2 is built into joint 172 and rotates the first arm 12 and the second arm 13 relative to each other. Motor M3 is built into joint 173 and rotates the second arm 13 and the third arm 14 relative to each other. Motor M4 is built into joint 174 and rotates the third arm 14 and the fourth arm 15 relative to each other. Motor M5 is built into joint 175 and rotates the fourth arm 15 and the fifth arm 16 relative to each other. Motor M6 is built into joint 176 and rotates the fifth arm 16 and the sixth arm 17 relative to each other.
[0028] Encoder E1 is built into joint 171 and detects the position of motor M1. Encoder E2 is built into joint 172 and detects the position of motor M2. Encoder E3 is built into joint 173 and detects the position of motor M3. Encoder E4 is built into joint 174 and detects the position of motor M4. Encoder E5 is built into fifth arm 16 and detects the position of motor M5. Encoder E6 is built into sixth arm 17 and detects the position of motor M6.
[0029] Encoders E1 to E6 are electrically connected to the robot control device 3, and the position information of motors M1 to M6, i.e., the amount of rotation, is transmitted to the robot control device 3 as an electrical signal. Based on this information, the robot control device 3 drives motors M1 to M6 via motor drivers D1 to D6, as shown in Figure 2. In other words, controlling the robot arm 10 means controlling motors M1 to M6.
[0030] An end effector 20 can be detachably attached to the tip of the robot arm 10. In this embodiment, the end effector 20 is a hand having a pair of claws that can move closer to and further apart from each other, and each claw grips and releases the workpiece. The end effector 20 is not limited to the configuration shown, and may be a hand that grips the workpiece or tool by suction. The end effector 20 may also be, for example, a polishing machine, grinding machine, cutting machine, coating device, spray gun, or a tool such as a screwdriver or wrench.
[0031] Robot 1 uses such an end effector 20 to operate the robot arm 10 as desired to perform various tasks such as transporting, manufacturing, processing, assembling, and painting of workpieces.
[0032] Furthermore, a control point TCP is set at the tip of the end effector 20. In the robot system 100, by knowing the position of the control point TCP, the control point TCP can be used as the control reference.
[0033] Next, we will describe the teaching device 4. As shown in Figures 1 and 2, the teaching device 4 is an example of an external device that communicates with the robot control device 3.
[0034] The robot control device 3 and the teaching device 4 are connected by a signal line 35. More specifically, the communication unit 33 (first communication unit) of the robot control device 3 and the communication unit 43 (second communication unit) of the teaching device 4 are connected by a signal line 35. In this case, the connection is not limited to a wired signal line 35 as shown in Figure 1; for example, all or part of the connection may be wireless, or even connected via a network such as the Internet.
[0035] As shown in Figures 1 and 2, the teaching device 4 has a display unit 40 and an input unit 44, and by operating the input unit 44, it is possible to create and input an operation program for the robot arm 10. The teaching device 4 is not particularly limited and examples include a desktop or notebook PC, a tablet terminal, a smartphone, a teaching pendant, etc.
[0036] Specifically, the teaching device 4 comprises a display unit 40, a control unit 41, a storage unit 42, a communication unit 43, and an input unit 44.
[0037] The display unit 40 is composed of, for example, a liquid crystal display or an organic EL display. The display unit 40 may also constitute a notification unit, which will be described later.
[0038] The control unit 41 is composed of, for example, a CPU (Central Processing Unit) and reads various programs, such as teaching programs, stored in the memory unit 42.
[0039] The memory unit 42 has, for example, volatile memory such as RAM (Random Access Memory) and non-volatile memory such as ROM (Read Only Memory), and stores the various programs mentioned above. As will be described later, the memory unit 42 also stores verification files F1 and F2 received from the robot control device 3.
[0040] The communication unit 43 transmits and receives signals and data to and from the robot control device 3 using an external interface such as a wired LAN (Local Area Network) or wireless LAN.
[0041] The input unit 44 consists of a keyboard, mouse, connectors, external connection terminals, etc., and the user can input or select desired information by, for example, operating the keyboard or mouse.
[0042] If the display unit 40 is composed of a touch panel type liquid crystal display, the desired information can be input by touching the display surface of the display unit 40 with a finger, stylus, or the like. In this case, the display unit 40 also serves as the input unit 44.
[0043] Next, we will describe the robot control device 3. As shown in Figures 1, 2, and 3, the robot control device 3 controls the operation of the robot 1 and has functions such as acquiring and storing the robot 1's operation history.
[0044] As shown in Figure 1, in this embodiment, the robot control device 3 is installed at a location separate from the robot 1. However, the configuration is not limited to this, and for example, the robot control device 3 may be built into the base 11 of the robot 1.
[0045] As shown in Figure 2, the robot control device 3 includes a control unit 31, a storage unit 32, and a communication unit 33. These units are connected to each other so as to be able to communicate with one another, for example, via a bus.
[0046] The control unit 31, for example, consists of at least one CPU (Central Processing Unit) and reads and executes various programs, such as operation programs, stored in the memory unit 32. Signals generated by the control unit 31 are transmitted to various parts of the robot 1 via the communication unit 33. This allows the robot arm 10 to perform predetermined tasks under predetermined conditions.
[0047] Furthermore, the control unit 31 has various functions, including a function for verifying signatures, as will be described later. This will be explained in detail later.
[0048] The communication unit 33 transmits and receives signals and data to and from the teaching device 4 using an external interface such as a wired LAN (Local Area Network) or wireless LAN. The communication unit 33 is a first communication unit that transmits unique data to the teaching device 4 and receives the verification file F1 from the teaching device 4.
[0049] The memory unit 32 stores (stores) various programs that the control unit 31 can execute, as well as various data. Examples of the memory unit 32 include volatile memory such as RAM, non-volatile memory such as ROM, hard disks, and removable external storage devices.
[0050] Examples of the various programs mentioned above include an operation program for driving the robot 1, a key creation program for the key creation unit 311 to create a public key and a private key, a verification file creation program for the verification file creation unit 312 to create a verification file, a data compression processing program for the compression processing unit 313 to compress unique data, and a startup program for starting the robot control device 3.
[0051] The operation program includes a program that specifies various conditions for driving the robot 1, such as the path of the control point TCP of the robot 1, the posture of the robot arm 10 over time, and the speed information of the control point TCP.
[0052] The startup program is a program for starting the system of the robot control device 3. Examples of startup programs include boot programs, BIOS (Basic Input / Output System), loaders, kernels, native programs, and Java® programs. The startup program is basically data that does not change after shipment and is data that does not change for each individual robot control device 3. In this embodiment, it is data that is not included in the unique data.
[0053] The various data mentioned above include unique data specific to each robot, as well as the public key KA1 and private key KB1, and the public key KA2 and private key KB2. The public key KA2 and private key KB2 are created by the key creation unit 311, which will be described later. Figure 2 shows the state in which the public key KA2 and private key KB2 created by the key creation unit 311 are stored in the storage unit 32. Before the public key KA2 and private key KB2 are created by the key creation unit 311, the storage unit 32 does not store them.
[0054] The unique data includes the operating parameters of robot 1 and the robot's operating history information.
[0055] The operating parameters include force control parameters for the robot arm 10, such as the mass coefficient, viscosity coefficient, and elastic modulus, as well as settings for peripheral equipment such as cameras and sensors (not shown).
[0056] The operation history information includes information on the changes in the posture of the robot arm 10 over time, information on the progress of the work, and information such as the date and time when an error occurred.
[0057] The operation program, operation parameters, and operation history information can be rewritten by the control unit 31 at predetermined timings. The operation program and operation parameters can be input, selected, or changed (rewritten) by, for example, the user operating the input unit 44 of the teaching device 4. The operation history information is newly accumulated each time the robot 1 operates and can be acquired from the robot 1 in real time or at predetermined time intervals.
[0058] The private key KB1 is data used to encrypt the hash value of the startup program. The public key KA1 is data used to decrypt the startup program that has been encrypted using the private key KB1.
[0059] The private key KB2 is used to encrypt the hash value of unique data. The public key KA1 is used to decrypt the unique data that has been encrypted using the private key KB1.
[0060] These unique data, public key KA1, private key KB1, public key KA2, and private key KB2 may be stored in the same memory or in different memories of the memory unit 32, but it is preferable that the public keys KA1, private key KB1, public key KA2, and private key KB2 and the unique data are stored in different memories. This prevents the public keys KA1, private key KB1, public key KA2, and private key KB2 from being corrupted even if the unique data is corrupted, thereby enabling more reliable encryption and decryption. Note that the private key KB1 does not necessarily need to be stored in the robot control device 3.
[0061] An input device 5 is connected to such a robot control device 3, for example, by a telecommunications line. The input device 5 receives authentication information D that identifies the user using the robot control device 3. The authentication information D entered by the input device 5 is then acquired by the first authentication information acquisition unit 316, which will be described later.
[0062] In this embodiment, it is assumed that the users of robot 1, robot control device 3, and teaching device 4 are the same person. However, if they are different, the user to be identified is the user of robot control device 3.
[0063] Examples of input devices 5 include password input devices, card readers that read employee ID cards, card keys, etc., and devices that acquire the user's biometric information (e.g., patterns of face, veins, retina, fingerprints, etc.). Examples of such devices include facial recognition devices, vein recognition devices, retinal recognition devices, and fingerprint recognition devices.
[0064] If input device 5 is a password input device, authentication information D can be, for example, a string of characters such as alphanumeric characters and symbols that make up a password.
[0065] If input device 5 is a card reader, authentication information D can be, for example, a string of characters such as an employee number read by the card reader.
[0066] If input device 5 is a device that acquires the user's biometric information, then, for example, authentication information D can be the employee number of the user identified by the biometric information.
[0067] The input device 5 is connected to the robot control device 3 by a wire, but is not limited to this; for example, it may be connected entirely or partially by wireless connection, or even via a network such as the Internet.
[0068] In this embodiment, the case in which the input device 5 is connected to the robot control device 3 has been described, but it is not limited to this, and for example, the robot control device 3 itself may have the input device 5, the input device 5 may be connected to the teaching device 4 by wire or wireless, or the input section 44 of the teaching device 4 may also serve as the input device 5.
[0069] Next, the control unit 31 will be described. As shown in Figure 3, the control unit 31 has, as functional units, a drive control unit 310, a key creation unit 311, a verification file creation unit 312, a compression processing unit 313, a signature verification unit 314, a status information acquisition unit 315, and an authentication information acquisition unit 316.
[0070] Each functional unit may be considered as a separate processor, or as different cores within a single processor.
[0071] The drive control unit 310 reads the operation program stored in the memory unit 32 and executes it. That is, the drive control unit 310 controls the power supply conditions to motors M1 to M6 according to the operation program.
[0072] The key creation unit 311 creates the public key KA2 and the private key KB2 based on the authentication information D obtained by the authentication information acquisition unit 316. Specifically, the key creation unit 311 has a random number generator and creates the public key KA2 and the private key KB2 by generating random numbers using the string contained in the authentication information D as a seed value.
[0073] The verification file creation unit 312 has the function of creating a verification file F1 of the startup program stored in the storage unit 32 using the secret key KB1, and the function of creating a verification file F2 of the unique data stored in the storage unit 32 using the secret key KB2.
[0074] "Creating verification files to be used for signature verification" means encrypting the hash value of specified data or a specified program using the secret key KB1 or secret key KB2. In other words, verification files F1 and F2 are the encrypted versions of the specified data or program.
[0075] The compression processing unit 313 has the function of performing compression processing to compress desired unique data based on a data compression processing program stored in the storage unit 32. This makes it possible to speed up communication and reduce the communication load when sending and receiving unique data. The compression processing method performed by the compression processing unit 313 is not particularly limited and includes ZIP, TAR, CAB, 7z, RAR, etc.
[0076] The compression processing unit 313 can appropriately select which data from the startup program and unique data to compress and which data not to compress. A preferred example is that the compression processing unit 313 compresses the startup program, the operation program of robot 1, and the operation parameter data of robot 1, but does not compress the operation history information data of robot 1. The operation history information data of robot 1 is text data and has a relatively small data size. Therefore, by compressing the operation program of robot 1 and the operation parameters of robot 1, which have a relatively large data size, and not compressing the operation history information data of robot 1, it is possible to balance the reduction of compression time, the speed of communication, and the reduction of communication load.
[0077] The communication unit 33 is the first communication unit, and it sends verification files F1 and F2, with the compressed file created by the compression processing unit 313 signed, to the teaching device 4. This reduces the hash value calculation time.
[0078] Furthermore, since the operational history information of robot 1 may also be checked on the backup destination teaching device 4, treating it as a separate file rather than including it in the verification file offers greater convenience. The compression processing unit 313 may also have a function for decompressing the compressed data.
[0079] The signature verification unit 314 has the function of verifying the signature of verification file F1 received from teaching device 4 using the public key KA1, and the function of verifying the signature of verification file F2 received from teaching device 4 using the public key KA2.
[0080] "Signature verification" means verifying whether the first hash value obtained by applying a hash function to the original data (startup program or unique data) matches the second hash value obtained by decrypting the digital signature for the original data (startup program or unique data) using public key A1.
[0081] The signature verification unit 314 verifies the signatures of the received verification files F1 and F2. If the signature verification is successful, it can read and execute the data or program. On the other hand, if the signature verification of verification files F1 and F2 fails, it cannot read or execute the data or program.
[0082] Here, "signature verification successful" means that the signature verification of both verification files F1 and F2 is successful, and "signature verification failed" means that the signature verification of either or both of verification files F1 and F2 fails.
[0083] Even if signature verification fails, the system may still be configured to read and execute the data and program. In this case, it is preferable to notify the system that signature verification has failed and to store the failure information in the storage unit 32. Furthermore, it is even more preferable to notify the system which of the verification files F1 or F2 failed and to store this information in the storage unit 32.
[0084] More specifically, "successful signature verification" means that the first hash value and the second hash value are compared and found to be the same. If signature verification is successful, the program has not been tampered with, the robot control device 3 can be started with high security, and the robot 1 can be driven safely.
[0085] "Signature verification failure" means that when comparing the first hash value and the second hash value, they are different values. If signature verification fails, the program may have been tampered with, or the program may be in an improper or incomplete state. Therefore, the safety of starting the robot control device 3 and the safety of driving the robot 1 cannot be guaranteed.
[0086] The status information acquisition unit 315 has the function of acquiring information regarding the status of the robot control device 3. The information acquired by the status information acquisition unit 315 is used as a trigger for creating verification files F1 and F2. The information acquired by the status information acquisition unit 315 includes, for example, information on the status of the robot control device 3, such as whether the power is switched ON or OFF, information on whether the data in the storage unit 32 is normal or corrupted, information on whether a backup request has been made, whether there has been an instruction to restore to the state when verification files F1 and F2 were last created, and information on the elapsed time since the power was turned on.
[0087] In such a robot system 100, the key creation unit 311 creates a public key KA2 and a private key KB2 at a predetermined timing based on authentication information D acquired in advance. Next, the verification file creation unit 312 creates a verification file F1 for the startup program using the private key KB1 and a verification file F2 for unique data using the private key KB2, and the communication unit 33 transmits the verification files F1 and F2 to the teaching device 4. When the communication unit 43 of the teaching device 4 receives the verification files F1 and F2, the storage unit 42 stores the verification files F1 and F2.
[0088] Although the configuration described above involves the verification file creation unit 312 creating the startup program verification file F1 using the secret key KB1, the device that creates the startup program verification file F1 may be another device, not necessarily the robot control device 3.
[0089] Next, for example, when the teaching device 4 receives a command to send verification files F1 and F2 to the robot control device 3, it sends verification files F1 and F2 to the robot control device 3. The signature verification unit 314 then performs signature verification on verification file F1, which has been sent from the communication unit 43 and received by the communication unit 33, using the public key KA1 stored in the storage unit 32, and also performs signature verification on verification file F2, which has been sent from the communication unit 43 and received by the communication unit 33, using the public key KA2 stored in the storage unit 32.
[0090] If signature verification is successful, the verification files F1 and F2 are decrypted, and if necessary, the compressed data (hereinafter sometimes simply referred to as "compressed data") is uncompressed, and the program is executed or stored in the storage unit 32.
[0091] Furthermore, the decompression of compressed data in the robot control device 3 can be performed by either the compression processing unit 313 or the signature verification unit 314.
[0092] The verification file F1 for the startup program may be stored within the robot control device 3 instead of being transmitted or received by the communication units 33 and 43.
[0093] With this configuration, both the startup program verification file F1 and the unique data verification file F2 are first sent to the teaching device 4, and the robot control device 3 receives verification files F1 and F2 as needed. This allows the startup program and unique data to be stored in the teaching device 4, and even if the storage unit 32 of the robot control device 3 fails, the startup program and unique data can be recovered.
[0094] Furthermore, since the system is configured to perform signature verification on verification files F1 and F2, it is possible to prevent the accidental execution of a tampered program or its storage (overwriting) in the storage unit 32. Therefore, the safety of the operation of the robot control device 3 and the operation of the robot 1 can be enhanced.
[0095] Furthermore, only the verification file F2 for unique data is sent to the teaching device 4, and the robot control device 3 receives the verification file F2 as needed. This allows the unique data to be stored in the teaching device 4, and even if the storage unit 32 of the robot control device 3 fails, the unique data can be recovered.
[0096] Furthermore, the startup program basically does not change after the robot control device is shipped and delivered to the user. Therefore, even if the startup program is not backed up to the teaching device, it can be restored by returning the robot control device to its factory settings. However, the verification file targeted for signature verification in this embodiment is unique data whose contents differ for each individual robot control device 3. In other words, the unique data changes after the robot control device 3 is shipped and delivered to the user. For this reason, it is difficult to restore the state without saving the backup data somewhere. Therefore, this embodiment requires the creation of at least a verification file for the unique data.
[0097] For particularly important proprietary data, a verification file F2 is created using the private key KB2, which is generated based on the authentication information D. In other words, the private key KB2 is not pre-stored in the storage unit 32, but is created each time using the newly generated private key F2. This further enhances security (robustness of security).
[0098] Furthermore, since the configuration creates the private key KB2 based on authentication information D, it is possible to create the verification file F2 after identifying the user. Therefore, security (robustness of security) can be further enhanced.
[0099] Based on the above, the robot system 100 can enhance the safety and security of the operation of the robot control device 3 and the robot 1.
[0100] The timing at which the user inputs authentication information D using the input device 5 is not particularly limited and may, for example, be when starting the robot control device 3 or when creating the verification file F2. In the latter case, it is preferable that at least one of the robot control device 3, teaching device 4, and input device 5 prompts the user to input authentication information D when it becomes necessary to create the verification file F2.
[0101] If the user has not entered authentication information D, that is, if the authentication information acquisition unit 316 has not acquired authentication information D, the verification file creation unit 312 can create a verification file F2 of unique data using the secret key KB1 stored in the storage unit 32. Note that even if authentication information is entered but that authentication information does not match the correct authentication information D, this is also included in "if authentication information D has not been entered," and in this case it falls under "if the authentication information acquisition unit 316 has not acquired authentication information D."
[0102] With this configuration, even if the authentication information acquisition unit 316 does not acquire authentication information D, the verification file F2 can still be created.
[0103] As explained above, the robot control device 3 controls the operation of the robot 1, and includes a drive control unit 310 that controls the operation of the robot 1, a storage unit 32 which is a first storage unit that stores a startup program for starting the robot control device 3, unique data of the robot 1, a public key KA1 which is a first public key, and a private key KB1 which is a first private key, an authentication information acquisition unit 316 which is a first authentication information acquisition unit that acquires authentication information D to identify the user, and a key creation unit 311 which is a first key creation unit that generates a public key KA2 which is a second public key and a private key KB2 which is a second private key based on the authentication information D acquired by the authentication information acquisition unit 316. The robot system 100 includes a first verification file creation unit 312 that creates a verification file F2 as a second verification file for unique data subject to signature verification using the private key KB2, a first communication unit 33 that communicates with a teaching device 4 as an external device and transmits the verification file F2 to the teaching device 4, and a first signature verification unit 314 that performs signature verification on a verification file F1 as a first verification file for a startup program created using the private key KB1 using the public key KA1, and performs signature verification on a verification file F2 transmitted from the teaching device 4 and received by the communication unit 33 using the public key KA1. With such a robot system 100, the safety and robustness of the operation of the robot control device 3 and the robot 1 can be enhanced.
[0104] If the signature verification unit 314, acting as the first signature verification unit, successfully verifies the signature of the verification file F2, acting as the second verification file, the storage unit 32, acting as the first storage unit, stores the unique data of the verification file F2. This allows the unique data of the verification file F2 to be reflected (newly stored or copied) in the robot control device 3.
[0105] If the authentication information acquisition unit 316, which acts as the first authentication information acquisition unit, fails to acquire authentication information D, the verification file creation unit 312, which acts as the first verification file creation unit, creates a verification file F2, which is the second verification file for unique data, using the private key KB1, which acts as the first private key. This ensures that the verification file F2 can be created even if the authentication information acquisition unit 316 fails to acquire authentication information D.
[0106] The unique data for robot 1 includes at least one (three in this embodiment) of the following: the robot 1's operation program, the robot 1's operation parameters, and the robot 1's operation history information. This allows for the creation of a verification file F1 for the robot 1's operation program, robot 1's operation parameters, and robot 1's operation history information, thereby further enhancing safety.
[0107] Next, an example of the control operation of the robot control device 3 (the control method of the present invention) will be explained with reference to the flowchart shown in Figure 4.
[0108] First, in step S101, it is determined whether the trigger for creating verification files F1 and F2 has been activated. That is, when the status information acquisition unit 315 acquires information regarding the status of the robot control device 3, it is considered that the trigger has been activated. The information regarding the status of the robot control device 3 is as described above.
[0109] If it is determined in step S101 that the trigger has been activated (S101:YES), the process proceeds to step S102. If it is determined in step S101 that the trigger has not been activated (S101:NO), step S101 is repeated until it is determined that the trigger has been activated.
[0110] Next, in step S102, the authentication information acquisition unit 316 determines whether or not it has already acquired authentication information D. If it determines in step S102 that it has acquired authentication information D (S102: YES), the process proceeds to step S103. If it determines in step S102 that it has not acquired authentication information D (S102: NO), the process proceeds to step S108. Step S108 will be described later. If authentication information D was obtained in advance, that step is considered the first step.
[0111] Next, in step S103, the key creation unit 311 creates the public key KA2 and the private key KB2 based on the authentication information D obtained by the authentication information acquisition unit 316. The creation method is as described above. This step S103 is the second step.
[0112] Next, in step S104, the verification file creation unit 312 creates verification files F1 and F2. Specifically, the verification file creation unit 312 uses the secret key KB1 to create verification file F1 of the startup program stored in the storage unit 32, and uses the secret key KB2 created in step S102 to create verification file F2 of the unique data stored in the storage unit 32. This step S104 is the third step.
[0113] Next, in step S105, the communication unit 33 of the robot control device 3 transmits verification files F1 and F2 to the communication unit 43 of the teaching device 4. The verification files F1 and F2 transmitted by the communication unit 33 include compressed data compressed by the compression processing unit 313. The teaching device 4 stores the verification files F1 and F2 in the storage unit 42. This step S105 is the fourth step.
[0114] For example, when a user inputs a backup request instruction (transmission instruction) to the teaching device 4, the communication unit 43 of the teaching device 4 sends verification files F1 and F2 to the communication unit 33 of the robot control device 3, and in step S106, the communication unit 33 receives the verification files F1 and F2. The verification files F1 and F2 sent by the communication unit 43 include compressed data.
[0115] Next, in step S107, the signature verification unit 314 performs signature verification on the verification files F1 and F2. Specifically, the signature verification unit 314 performs signature verification on verification file F1, which is transmitted from the communication unit 43 and received by the communication unit 33, using the public key KA1 stored in the storage unit 32, and also performs signature verification on verification file F2, which is transmitted from the communication unit 43 and received by the communication unit 33, using the public key KA2 stored in the storage unit 32. This step S107 is the fifth step.
[0116] Next, in step S109, it is determined whether the signature verification was successful or not. This determination is made by the signature verification unit 314. If it is determined in step S109 that the signature verification was successful (S109: YES), then in step S110, the startup program and unique data contained in the verification files F1 and F2 are stored in the storage unit 32. This storage may be an overwrite (data update), or it may be stored as new data while retaining the old data.
[0117] If it is determined in step S109 that signature verification has failed (S109: NO), then in step S111, a notification unit (not shown) provides notification. This notification unit may be located on the robot control device 3, on the teaching device 4 such as the display unit 40, or on other devices. The notification method may be audio, visual using a display unit such as the display unit 40, LEDs, lamps, etc., or vibration using a vibrator, or a combination of two or more of these.
[0118] Although not shown in the diagram, if the startup program and unique data are stored in the storage unit 32 in step S110, the notification unit may be configured to notify the system of this fact.
[0119] On the other hand, if it is determined in step S102 that authentication information D has not been obtained (S102: NO), then in step S108, the verification file creation unit 312 creates verification files F1 and F2. In this step, the verification file creation unit 312 creates verification file F1 of the startup program stored in the storage unit 32 using the default secret key KB1, and also creates verification file F2 of the unique data stored in the storage unit 32 using the default secret key KB1. Then, steps S105 to S111 are executed in the same manner as described above.
[0120] As described above, the control method of the present invention is a control method executed by a robot control device that controls the operation of robot 1, wherein the robot control device 3 has a startup program for starting the robot control device 3, unique data of robot 1, a public key KA1 which is a first public key, and a private key KB1 which is a first private key, and has a storage unit 32 which is a first storage unit that stores a startup program for starting the robot control device 3, unique data of robot 1, a public key KA1 which is a first public key, and a private key KB1 which is a first private key, and has a first storage unit 32 that stores a startup program for starting the robot control device 3, and has a first storage unit 32 that stores a public key KA1 which is a first public key, and a private key KB2 which is a second private key, based on the authentication information D obtained in the first step, a third step of creating a verification file F2 as a second verification file of the unique data to be subject to signature verification using the private key KB2, a fourth step of communicating with a teaching device 4 as an external device and sending the verification file F2 to the teaching device 4, and a fifth step of performing signature verification on a verification file F1 which is a first verification file of the startup program created using the private key KB1 using the public key KA1, and performing signature verification on the verification file F2 created in the third step and sent from the teaching device 4 using the public key KA2. By implementing this control method, the safety and security of the operation of the robot control device 3 and the robot 1 can be enhanced.
[0121] Any other steps may be added before or after each of the above steps, particularly before and after each step in steps S101 to S111.
[0122] <Second Embodiment> Figure 5 is a schematic diagram showing the overall configuration of a robot system according to a second embodiment of the present invention. Figure 6 is a flowchart illustrating an example of the control operation of the robot system shown in Figure 1.
[0123] The following description will focus on the differences from the first embodiment, and will omit explanations of similar matters.
[0124] As shown in Figure 5, the robot system 100 of this embodiment comprises a robot 1, a robot control device 3, a teaching device 4, and an input device 5, similar to the first embodiment.
[0125] In the control unit 31 of the robot control device 3, the verification file creation unit 312 and the authentication information acquisition unit 316 of the first embodiment are omitted.
[0126] The teaching device 4 is connected to an input device 5 with the same configuration as in the first embodiment. The input device 5 receives and retrieves authentication information D that identifies the user using the teaching device 4. In this embodiment, it is assumed that the users of the robot 1, robot control device 3, and teaching device 4 are the same person. However, if they are different, the user to be identified is the user using the teaching device 4.
[0127] The type, configuration, and connection method of the input device 5 are the same as those described in the first embodiment. In this embodiment, the case in which the input device 5 is connected to the teaching device 4 has been described, but this is not the only possible configuration. For example, the input device 5 may be connected to the robot control device 3, or the input unit 44 of the teaching device 4 may also function as the input device 5.
[0128] The control unit 41 of the teaching device 4 has, as functional units, an authentication information acquisition unit 411 as a second authentication information acquisition unit, a key creation unit 412 as a second key creation unit, and a verification file creation unit 413 as a second verification file creation unit. The function of the authentication information acquisition unit 411 is the same as that of the authentication information acquisition unit 316 in the first embodiment. The function of the key creation unit 412 is the same as that of the key creation unit 311 in the first embodiment. The function of the verification file creation unit 413 is the same as that of the verification file creation unit 312 in the first embodiment.
[0129] In this embodiment, the storage unit 42 of the teaching device 4 stores the default public key KA3 and private key KB3. The public key KA4 (third public key) and private key KB4 (third private key) created by the key creation unit 412 based on the authentication information D are stored in the storage unit 42 of the teaching device 4.
[0130] In such a robot system 100, the robot control device 3 transmits a startup program ("P1" in Figure 5) and unique data ("P2" in Figure 5) to the teaching device 4 via the communication unit 33 at a predetermined timing. In the teaching device 4, the authentication information acquisition unit 411 acquires authentication information D from the input device 5, and the key creation unit 412 creates a public key KA4 and a private key KB4 based on the authentication information D. Next, the verification file creation unit 413 creates a verification file F4 for the unique data using the private key KB4. Then, if necessary, it creates a verification file F3 for the startup program using the private key KB3 and a verification file F4 for the unique data using the private key KB4.
[0131] Next, the communication unit 43 of the teaching device 4 transmits verification files F3, F4 and public keys KA3, KA4 to the communication unit 33 of the robot control device 3. Upon receiving the verification files F3, F4 and public keys KA3, KA4, the signature verification unit 314 of the robot control device 3 performs signature verification of verification file F3 using public key KA3 and signature verification of verification file F4 using public key KA4. If the signature verification is successful, the data of the verified verification files F3 and F4 is stored in the storage unit 32.
[0132] Here, "signature verification successful" means that the signature verification of both verification files F3 and F4 is successful, and "signature verification failed" means that the signature verification of either or both of verification files F3 and F4 fails.
[0133] With this configuration, the startup program and unique data of the robot control device 3 can be stored in the teaching device 4, and even if the storage unit 32 of the robot control device 3 fails, the unique data can be recovered. Therefore, it is possible to prevent the accidental execution of a tampered program or its storage (overwriting) in the storage unit 32. As a result, the safety of the robot 1's operation can be enhanced.
[0134] Furthermore, for particularly important proprietary data, a verification file F4 is created using the private key KB4, which is generated based on the authentication information D. In other words, the private key KB4 is not pre-stored in the storage unit 42, and the verification file F4 is created each time using the newly generated private key KB4. This further enhances security (robustness of security).
[0135] Furthermore, since the configuration creates the private key KB4 based on authentication information D, it is possible to identify the user and then create the verification file F4. Therefore, security (robustness of security) can be further enhanced.
[0136] Based on the above, the teaching device 4 can enhance the safety and security of the operation of the robot control device 3 and the robot 1.
[0137] Note that the default public key KA3 and private key KB3 do not necessarily need to be stored in the storage unit 42. In this case, the startup program may also use the private key KB4 to create a verification file.
[0138] As described above, the teaching device 4 is a device that can communicate with the robot control device 3 which controls the operation of the robot 1, and teaches the robot 1, and comprises: an authentication information acquisition unit 411 as a second authentication information acquisition unit that acquires authentication information D to identify the user; a key creation unit 412 as a second key creation unit that generates a public key KA4 as a third public key and a private key KB4 as a third private key based on the authentication information acquired by the authentication information acquisition unit 411; a verification file creation unit 413 as a second creation unit that creates a verification file F4 as a third verification file of the unique data of the robot 1 that is subject to signature verification using the private key KB4; and a communication unit 43 as a second communication unit that transmits the verification file F4 created by the verification file creation unit 413 to the robot control device 3. This enhances the safety and robustness of the operation of the robot control device 3 and the robot 1.
[0139] In this embodiment, the case in which the communication unit 43 transmits verification files F3 and F4 to the robot control device 3 has been described. However, the present invention is not limited to this, and the data may be transmitted to other devices, such as robot control devices other than the robot control device 3, or teaching devices other than the teaching device 4.
[0140] Next, an example of the control operation of the teaching device 4 (the control method of the present invention) will be explained with reference to the flowchart shown in Figure 6.
[0141] First, in step S201, the communication unit 43 of the teaching device 4 receives the startup program and unique data from the robot control device 3.
[0142] Next, in step S202, the authentication information acquisition unit 411 determines whether or not it has already acquired authentication information D. If it determines in step S202 that it has acquired authentication information D (S202:YES), the process proceeds to step S203. If it determines in step S202 that it has not acquired authentication information D (S202:NO), the process proceeds to step S206. Step S206 will be described later. If authentication information D was obtained in advance, that step is step 6.
[0143] Next, in step S203, the key creation unit 412 creates a public key KA4 and a private key KB4 based on the authentication information D acquired by the authentication information acquisition unit 411. The creation method is as described in the first embodiment. This step S203 is the seventh step.
[0144] Next, in step S204, the verification file creation unit 413 creates verification files F3 and F4. Specifically, the verification file creation unit 413 uses the secret key KB3 to create verification file F3 of the startup program stored in the storage unit 42, and uses the secret key KB4 created in step S203 to create verification file F4 of the unique data stored in the storage unit 42. This step S204 is the eighth step.
[0145] Next, in step S205, the communication unit 43 of the teaching device 4 transmits the data of public keys KA3 and KA4, and the verification files F3 and F4, to the communication unit 33 of the robot control device 3. This step S205 is the ninth step.
[0146] The robot control device 3 then performs signature verification on verification files F3 and F4 using public keys KA3 and KA4. The subsequent steps performed by the robot control device 3 are the same as steps S109 to S111 described in the first embodiment.
[0147] On the other hand, if it is determined in step S102 that authentication information D has not been obtained (S102: NO), then in step S108, the verification file creation unit 413 creates verification files F3 and F4. In this step, the verification file creation unit 413 uses the default secret key KB3 to create verification file F3 of the startup program stored in the storage unit 42, and also creates verification file F4 of the unique data. Then, steps S105 to S111 are executed in the same manner as described above.
[0148] As described above, the control method is a control method executed by a device that provides teaching instructions to robot 1 and is capable of communicating with a robot control device 3 that controls the operation of robot 1. The method comprises: a sixth step of obtaining authentication information D to identify the user; a seventh step of generating a public key KA4 as a third public key and a private key KB4 as a third private key based on the authentication information D obtained in the sixth step; an eighth step of creating a verification file F4 as a third verification file for the unique data of robot 1 that is subject to signature verification using the private key KB4; and a ninth step of transmitting the verification file F4 created in the eighth step to the robot control device 3. By executing such a control method, the safety and robustness of the operation of robot control device 3 and robot 1 can be enhanced.
[0149] Any other steps may be added before or after each of the above steps, particularly before and after each step in steps S201 to S205.
[0150] In this embodiment, the creation of a verification file for the startup program may be omitted.
[0151] <Third Embodiment> Figure 7 is a schematic diagram showing the overall configuration of a robot system according to a third embodiment of the present invention.
[0152] The following description will focus on the differences between this embodiment and the previous embodiments, and will omit explanations of similar matters.
[0153] As shown in Figure 7, the robot system 100 of this embodiment includes a first robot 1A, a second robot 1B that is different from (separate from) the first robot 1A, a first robot control device 3A that controls the operation of the first robot 1A, and a second robot control device 3B that controls the operation of the second robot 1B. The first robot control device 3A and the second robot control device 3B have the same configuration as the robot control device 3 described in the above embodiment, except that they differ in the presence or absence of the functional parts described below and in the robots that are controlled.
[0154] The first robot 1A and the second robot 1B may be the same type of robot or different types of robots. In this embodiment, the first robot 1A and the second robot 1B are each the same type and have the same configuration as robot 1 in the first embodiment.
[0155] As shown in Figure 7, the control unit 31 of the first robot control device 3A has, as functional units, a drive control unit 310A, an authentication information acquisition unit 311A, a key creation unit 312A, and a verification file creation unit 313A.
[0156] The drive control unit 310A has the same functions as the drive control unit 310 in the first embodiment. The authentication information acquisition unit 311A has the same functions as the authentication information acquisition unit 316 in the first embodiment. The key creation unit 312A has the same functions as the key creation unit 311 in the first embodiment. The verification file creation unit 313A has the same functions as the verification file creation unit 312 in the first embodiment.
[0157] The control unit 31 of the second robot control device 3B includes, as functional units, a drive control unit 310B, a key creation unit 311B, and a signature verification unit 312B. The drive control unit 310B has the same functions as the drive control unit 310 in the first embodiment. The key creation unit 311B has the same functions as the key creation unit 311 in the first embodiment.
[0158] An input device 5 with the same configuration as in the first embodiment is connected to the first robot control device 3A. The input device 5 receives and retrieves authentication information D that identifies the user using the first robot control device 3A. In this embodiment, it is assumed that the users of the first robot 1A, the second robot 1B, the first robot control device 3A, and the second robot control device 3B are the same person. However, if they are different, the user to be identified is the user using the first robot control device 3A.
[0159] The type, configuration, and connection method of the input device 5 are the same as those described in the first embodiment. In this embodiment, the case in which the input device 5 is connected to the first robot control device 3A has been described, but this is not limited to this, and for example, the first robot control device 3A itself may have the input device 5, the input device 5 may be connected to the second robot control device 3B, or the second robot control device 3B itself may have the input device 5.
[0160] Furthermore, although not shown in the figures, the robot system 100 may also have a teaching device 4 as described above. In this case, the teaching device 4 may be connected to both the first robot control device 3A and the second robot control device 3B, or the teaching device 4 may be connected to either the first robot control device 3A or the second robot control device 3B. In such a robot system 100, the input device 5 may be connected to the teaching device 4, or the input section 44 of the teaching device 4 may also serve as the input device 5.
[0161] In this embodiment, the storage unit 32 of the first robot control device 3A stores the public key KA5 (fourth public key) and private key KB5 (fourth private key) created by the key creation unit 312A based on the authentication information D. In addition, the storage unit 42 of the second robot control device 3B stores the public key KA5 (fourth public key) and private key KB5 (fourth private key) created by the key creation unit 311B based on the authentication information D.
[0162] In such a robot system 100, at a predetermined timing, the key creation unit 312A of the first robot control device 3A creates a public key KA5 and a private key KB5 based on authentication information D that has been acquired in advance. Next, the verification file creation unit 313A creates a verification file F5 for the startup program using the private key KB5, and also creates a verification file F6 for unique data. The communication unit 33A of the first robot control device 3A then transmits the authentication information D data along with the verification files F5 and F6 to the communication unit 33B of the second robot control device 3B. When the communication unit 33B of the second robot control device 3B receives the verification files F5 and F6 and the authentication information D data, the key creation unit 311B of the second robot control device 3B creates a public key KA5 and a private key KB5 based on the authentication information D. Next, the signature verification unit 312B of the second robot control device 3B verifies the signature of the verification files F5 and F6 received by the communication unit 33B using the public key KA5 created by the key creation unit 311B. If signature verification is successful, the second robot control device 3B stores the startup program and unique data contained in the verification files F5 and F6 in the storage unit 32 of the second robot control device 3B.
[0163] With this configuration, the startup program and unique data of the first robot control device 3A can be transmitted to the second robot control device 3B as verification files F5 and F6 and copied securely. Therefore, for example, the settings of the first robot control device 3A can be reflected in the second robot control device 3B, which is convenient and provides excellent reproducibility and uniformity of operation between robots. In this case, it is possible to prevent the second robot control device 3B from mistakenly executing a tampered program or storing (overwriting) it in the storage unit 32B. As a result, the safety of operation of not only the first robot control device 3A but also the second robot control device 3B and the second robot 1B can be enhanced.
[0164] In the robot system 100 of this embodiment, since the configuration is such that a secret key KB2 is created based on authentication information D, verification files F5 and F6 can be created after identifying the user. Therefore, security (robustness of security) can be further enhanced.
[0165] Based on the above, the robot system 100 offers excellent convenience, reproducibility and uniformity of operations between the first robot 1A and the second robot 1B, and also enhances the safety and security of the operation of the second robot control device 3B and the second robot 1B.
[0166] Although the communication unit 33A of the first robot control device 3A transmits the authentication information D data to the communication unit 33B of the second robot control device 3B, the communication unit 33A may also transmit the public key KA5 and private key KB5 generated from the authentication information D to the communication unit 33B of the second robot control device 3B. Furthermore, the communication unit 33A of the first robot control device 3A may transmit the verification file F6 to the communication unit 33B of the second robot control device 3B, but may not transmit the verification file F5.
[0167] As described above, the robot system 100 of this embodiment includes a first robot control device 3A that controls the operation of the first robot 1A, and a second robot control device 3B that can communicate with the first robot control device 3A and controls the operation of the second robot 1B. The first robot control device 3A includes a drive control unit 310A as a first drive control unit that controls the operation of the first robot 1A, a first storage unit 32A that stores unique data of the first robot 1A, an authentication information acquisition unit 311A as a third authentication information acquisition unit that acquires authentication information D to identify the user, a third key creation unit 312A that generates a public key KA5 as a fourth public key and a private key KB5 as a fourth private key based on the authentication information D acquired by the authentication information acquisition unit 311A, and a first verification file creation unit that creates a verification file F6, which is a fourth verification file of the unique data subject to signature verification, using the private key KB5. The robot system 100 includes a driver unit 313A and a communication unit 33A as a third communication unit that transmits a verification file F6 and authentication information D to the second robot control device 3B. The second robot control device 3B includes a drive control unit 310B as a second drive control unit that controls the operation of the second robot 1B, a communication unit 33B as a fourth communication unit that receives the verification file F6 and authentication information D from the communication unit 33A, a key creation unit 311B as a fourth key creation unit that creates a public key KA5 based on the authentication information D received by the communication unit 33B, and a signature verification unit 312B as a second signature verification unit that performs signature verification on the verification file F6 received by the communication unit 33B using the fourth public key KA5. With such a robot system 100, the safety and robustness of the operation of the first robot control device 3A, the first robot 1A, the second robot control device 3B, and the second robot 1B can be enhanced.
[0168] Although embodiments of the robot control device, teaching device, robot system, and control method of the present invention have been described above, the present invention is not limited to these embodiments. Furthermore, each part of the robot system can be replaced with any component that can perform a similar function, or any component may be added. Similarly, each step of the control method can be replaced with any step that can perform a similar function, or any step may be added. [Explanation of Symbols]
[0169] 1…Robot, 1A…First robot, 1B…Second robot, 3…Robot control device, 3A…First robot control device, 3B…Second robot control device, 4…Teaching device, 5…Input device, 6…Verification file, 10…Robot arm, 11…Base, 12…First arm, 13…Second arm, 14…Third arm, 15…Fourth arm, 16…Fifth arm, 17…Sixth arm, 20…End effector, 31…Control unit, 32…Storage unit, 32A…First storage unit, 32B…Storage unit, 33…Communication unit, 33A…Communication unit, 33B…Communication unit, 35…Signal line, 40…Display unit, 41…Control unit ,42...Storage unit,43...Communication unit,44...Input unit,100...Robot system,171...Joint,172...Joint,173...Joint,174...Joint,175...Joint,176...Joint,310...Drive control unit,310A...Drive control unit,310B...Drive control unit,311...Key creation unit,311A...Authentication information acquisition unit,311B...Key creation unit,312...Verification file creation unit,312A...Key creation unit,312B...Signature verification unit,313...Compression processing unit,313A...Verification file creation unit,314...Signature verification unit,315...Status information acquisition unit,316...Authentication information acquisition unit,411...Authentication information acquisition unit, 412...Key creation unit, 413...Verification file creation unit, A1...Public key, D...Authentication information, D1...Motor driver, D2...Motor driver, D3...Motor driver, D4...Motor driver, D5...Motor driver, D6...Motor driver, E1...Encoder, E2...Encoder, E3...Encoder, E4...Encoder, E5...Encoder, E6...Encoder, F1...Verification file, F2...Verification file, F3...Verification file, F4...Verification file, F5...Verification file, F6...Verification file, KA1...Public Key, KA2...Public key, KA3...Public key, KA4...Public key, KA5...Public key, KB...Private key, KB1...Private key, KB2...Private key, KB3...Private key, KB4...Private key, KB5...Private key, M1...Motor, M2...Motor, M3...Motor, M4...Motor, M5...Motor, M6...Motor, S101...Step, S102...Step, S103...Step, S104...Step, S105...Step, S106...Step, S107...Step, S108...Step, S109...Step, S110...Step, S111...Step, S201...Step,S202...step, S203...step, S204...step, S205...step, S206...step, TCP...control point,
Claims
1. A robot control device that controls the operation of a robot, A drive control unit that controls the operation of the robot, A first storage unit that stores a startup program for starting the robot control device, unique data of the robot, a first public key, and a first private key. A first authentication information acquisition unit obtains authentication information to identify the user, A first key creation unit generates a second public key and a second private key based on the authentication information acquired by the first authentication information acquisition unit, A first verification file creation unit creates a second verification file of the unique data subject to signature verification using the second private key, A first communication unit that communicates with an external device and transmits the second verification file to the external device, A robot control device comprising: a first signature verification unit that performs signature verification on a first verification file of the startup program created using the first private key using the first public key, and performs signature verification on a second verification file transmitted from the external device and received by the first communication unit using the second public key.
2. The robot control device according to claim 1, wherein if the signature verification of the second verification file by the first signature verification unit is successful, the first storage unit stores the unique data of the second verification file.
3. If the first authentication information acquisition unit fails to acquire the authentication information, the first verification file creation unit creates a second verification file of the unique data using the first secret key, according to claim 1 or 2.
4. The robot control device according to claim 1 or 2, wherein the unique data of the robot includes at least one of the robot's operation program, the robot's operation parameters, and the robot's operation history information.
5. A teaching device that can communicate with a robot control device that controls the operation of a robot, and that provides teaching instructions to the robot, A second authentication information acquisition unit obtains authentication information to identify the user, A second key creation unit generates a third public key and a third private key based on the authentication information acquired by the second authentication information acquisition unit, A second creation unit creates a third verification file of the robot's unique data that is subject to signature verification using the third secret key, A teaching device comprising: a second communication unit that transmits the third verification file created by the second creation unit to the robot control device.
6. A first robot control device that controls the operation of the first robot, The system comprises a second robot control device that can communicate with the first robot control device and controls the operation of the second robot, The first robot control device is A first drive control unit that controls the operation of the first robot, A first storage unit that stores unique data of the first robot, A third authentication information acquisition unit obtains authentication information to identify the user, A third key creation unit generates a fourth public key and a fourth private key based on the authentication information acquired by the third authentication information acquisition unit, A first verification file creation unit creates a fourth verification file of the unique data subject to signature verification using the fourth private key, It includes a third communication unit that transmits the fourth verification file and the authentication information to the second robot control device, The second robot control device described above is: A second drive control unit for controlling the operation of the second robot, A fourth communication unit receives the fourth verification file and the authentication information transmitted by the third communication unit, A fourth key creation unit creates the fourth public key based on the authentication information received by the fourth communication unit, A robot system comprising: a second signature verification unit that performs signature verification on the fourth verification file received by the fourth communication unit using the fourth public key.
7. A control method performed by a robot control device that controls the operation of a robot, The robot control device has a first storage unit that stores a startup program for starting the robot control device, unique data of the robot, a first public key, and a first private key. The first step is to obtain authentication information to identify the user, A second step involves generating a second public key and a second private key based on the authentication information obtained in the first step, A third step involves creating a second verification file for the unique data subject to signature verification using the second private key, A fourth step involves communicating with an external device and sending the second verification file to the external device, A control method characterized by comprising: a fifth step of performing signature verification on a first verification file created using a first private key using the first public key; and performing signature verification on a second verification file created in the third step and transmitted from the external device using the second public key.
8. A control method executed by a teaching device that can communicate with a robot control device that controls the operation of a robot and teaches the robot, The sixth step is to obtain authentication information to identify the user, A seventh step involves generating a third public key and a third private key based on the authentication information obtained in the sixth step, The eighth step involves creating a third verification file of the robot's unique data that is subject to signature verification using the third secret key, A control method characterized by comprising: a ninth step of transmitting the third verification file created in the eighth step to the robot control device.
Citation Information
Patent Citations
Information processing apparatus and information processing method
JP2019175000A