System for controlling a robot and method therefor
The system addresses inefficiencies in RAAS by using a symmetric key scheme and encryption for secure license management, enabling efficient and stable robot operation across online and offline environments.
Patent Information
- Application Number
- DE102024117801
- Authority / Receiving Office
- DE · DE
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2023-12-11
- Filing Date
- 2024-06-25
- Publication Date
- 2025-06-12
AI Technical Summary
Existing Robot as a Service (RAAS) systems lack efficient and secure methods for license management and registration, especially in varying network environments, leading to challenges in preventing illegal copying and ensuring transparency and security of robot use.
A system for controlling robots that includes a robot control server and robot, which manages target codes using a symmetric key issuance scheme and encryption, verifying code validity based on connection state, and supports both online and offline operations.
Enhances work efficiency and security by ensuring stable robot usage through secure license management and verification across different network conditions.
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
BACKGROUND OF THE PRESENT DISCLOSUREField of the Present DisclosureThe present disclosure relates to a system for controlling a robot and a method thereof, and more particularly to a technology for license registration, output, and authentication of a robot as a service (RAAS).Description of the Prior ArtA robot as a service (RAAS) is provided with a robot and a cloud solution that controls and manages the robot. In the present case, a buyer of RAAS uses the functions provided by a manufacturer depending on the amount of purchase and service usage. For example, the manufacturer may issue licenses divided by function and time period to users (buyers), and the users with such licenses may use the robot hardware and the control, monitoring, management, and software functions provided along with the robot. Such licenses are issued by digital licenses.License management and registration can protect the intellectual property and technology of a robot and prevent illegal copying and theft. By license registration, transparency and security of robot use can be ensured. In particular, license management and registration enable procedures necessary for maintenance and repair work, such as updating software or replacing hardware, while the robot is in use.RAAS providers have provided robot management cloud services and robot sales simultaneously and have previously used different authentication and license management schemes for each robot store. Therefore, it is necessary to manage online services (indoor and outdoor delivery, patrole, and the like) and closed network (offline) services (factory logistics, patrole, public facilities) with the same issued license. In addition, depending on a network environment, license authentication is required to operate the robot for services in an offline environment. Accordingly, it is necessary to develop a technology that provides a scheme of registration using a tool such as 2D code by a camera installed in the robot and enables registration more easily and quickly than existing procedures.The information included in this background of the present disclosure is merely for enhancement of understanding of the general background of the present disclosure and may not be considered as an acknowledgement or any form of suggestion that this information forms the prior art already known to a person skilled in the art.BRIEF SUMMARYVarious aspects of the present disclosure are directed to providing a system for controlling a robot configured to increase working efficiency according to the method and the configuration of outputting and managing a target code such as a digital license for the robot online by managing a request for outputting the target code related to the access right to the robot from a user operating the robot and a method thereof.Another aspect of the present disclosure provides a system for controlling a robot, configured to ensure stability in use of the robot according to a symmetric key output scheme and an encryption scheme of a target code by generating the target code by a payload including the characteristics of the robot and a prestored symmetric key, and a method thereof.Still another aspect of the present disclosure provides a system for controlling a robot configured to manage not only a robot configured to perform online service but also a robot configured to perform closed network service with the same target code by performing an operation to verify validity of the target code differently depending on the connection state between a robot control server and the robot, and a method thereof.The technical problems to be solved by the present disclosure are not limited to the aforementioned problems, and any other technical problems not mentioned herein will be clearly understood from the following description by those skilled in the art to which the present disclosure pertains.According to an aspect of the present disclosure, a system for controlling a robot includes a robot control server and the robot, wherein the robot control server may receive a request for output of a target code related to the access right to the robot from a user operating the robot, and wherein the robot may identify the target code input by the user and receive a command from the user based on the validity of the target code being verified.According to an exemplary embodiment of the present disclosure, the robot control server may transmit the output request to a manager that manages the robot control server based on the output request being received from the user, and generate the target code based on receiving an approval command regarding the output request from the manager.According to an exemplary embodiment of the present disclosure, the robot control server may be configured to generate a first payload based on at least one of series code information of the robot, medium access control (MAC) address information of the robot, information related to an operation period of the robot, information related to a model name of the robot, or information related to a provision function of the robot, or a combination thereof based on receiving the permission command, and generate the target code based on the first payload and a first symmetric key stored in the robot control server.According to an exemplary embodiment of the present disclosure, the robot control server may transmit the first payload and a signature based on receiving a login request from the robot.According to an exemplary embodiment of the present disclosure, the robot control server may transmit the target code to the user based on a connection between the robot and the robot control server being in a first state corresponding to online, and transmit the target code and a first subcode including the first payload to the user based on a connection between the robot and the robot control server being in a second state corresponding to offline.According to an exemplary embodiment of the present disclosure, the robot control server may update information different from information related to the robot among information included in the first payload based on the connection between the robot and the robot control server being in the first state.According to an exemplary embodiment of the present disclosure, the robot may identify a second symmetric key from the target code based on receiving the target code from the user through an input device of the robot, determine a connection state between the robot control server and the robot based on the identification of the second symmetric key, and verify validity of the target code based on the determination of the connection state.According to an exemplary embodiment of the present disclosure, the robot may transmit a login request based on at least one of a serial code of the robot, a MAC address of the robot, or a combination thereof to the robot control server based on the connection between the robot and the robot control server being online, receive a second payload including a signature from the robot control server, apply the second symmetric key to the second payload to decrypt the second payload, and verify the validity of the target code by identifying at least one of the serial code of the robot, the MAC address of the robot, an operation period of the robot, a model name of the robot, or a provided function of the robot, or a combination thereof from the decrypted second payload.According to an exemplary embodiment of the present disclosure, the robot may prompt the user to input a second subcode from the user based on the connection between the robot and the robot control server being offline, decrypt the second subcode by applying the second symmetric key to the second subcode based on the reception of the second subcode from the user by the input device of the robot, and verify the validity of the target code by identifying at least one of a serial code of the robot, a MAC address of the robot, an operation period of the robot, a model name of the robot, or a provided function of the robot, or a combination thereof from the decrypted second subcode.According to an exemplary embodiment of the present disclosure, the robot may apply a state of the robot as a failure state based on the verification that the validity of the target code fails, and transmit the state of the robot to the user.According to an aspect of the present disclosure, a method of controlling a robot includes receiving a request to output a target code related to the access right to the robot from a user operating the robot, identifying the target code input by the user, and receiving a command from the user based on the validity of the target code being verified.According to an exemplary embodiment of the present disclosure, receiving the request to output the target code may include transmitting the output request to a manager managing the robot control server based on the output request being received from the user, and generating the target code based on receiving an approval command regarding the output request from the manager.According to an exemplary embodiment of the present disclosure, generating the target code may include generating a first payload based on at least one of series code information of the robot, medium access control (MAC) address information of the robot, information related to an operation period of the robot, information related to a model name of the robot, or information related to a provision function of the robot, or a combination thereof based on receiving the permission command, and generating the target code based on the first payload and a first symmetric key stored in the robot control server.According to an exemplary embodiment of the present disclosure, generating the destination code may include transmitting the first payload and a signature based on receiving a login request from the robot.According to an exemplary embodiment of the present disclosure, generating the target code may include transmitting the target code to the user based on a connection between the robot and the robot control server being in a first state corresponding to online, and transmitting the target code and a first subcode including the first payload to the user based on a connection between the robot and the robot control server being in a second state corresponding to offline.According to an exemplary embodiment of the present disclosure, the method may further include updating information different from information related to the robot among information included in the first payload based on the connection between the robot and the robot control server being in the first state.According to an exemplary embodiment of the present disclosure, the method may further include identifying a second symmetric key from the target code based on receiving the target code from the user through an input device of the robot, determining a connection state between the robot control server and the robot based on the identification of the second symmetric key, and verifying validity of the target code based on the determination of the connection state.According to an exemplary embodiment of the present disclosure, verifying the validity of the target code may include transmitting a login request based on at least one of a serial code of the robot or a MAC address of the robot or a combination thereof to the robot control server based on the connection between the robot and the robot control server being online, receiving a second payload including a signature from the robot control server, applying the second symmetric key to the second payload to decrypt the second payload, and verifying the validity of the target code by identifying at least one of the serial code of the robot, the MAC address of the robot, an operation period of the robot, a model name of the robot or a provided function of the robot or a combination thereof from the decrypted second payload.According to an exemplary embodiment of the present disclosure, verifying the validity of the target code may include prompting the user to input a second subcode from the user based on the connection between the robot and the robot control server being offline, decrypting the second subcode by applying the second symmetric key to the second subcode based on the reception of the second subcode from the user by the input device of the robot, and verifying the validity of the target code by identifying at least one of a serial code of the robot, a MAC address of the robot, an operation period of the robot, a model name of the robot, or a provided function of the robot, or a combination thereof from the decrypted second subcode.According to an exemplary embodiment of the present disclosure, the method may further include applying a state of the robot as a failure state based on the verification that the validity of the target code fails, and transmitting the state of the robot to the user.The methods and apparatuses of the present disclosure have other features and advantages that will be apparent from or are set forth in more detail in the accompanying drawings, which are incorporated herein, and the following Detailed Description, which together serve to explain certain principles of the present disclosure.BRIEF DESCRIPTION OF THE DRAWINGSFIG. 1 is a diagram illustrating a system for controlling a robot according to an exemplary embodiment of the present disclosure; FIG. 2 is a diagram illustrating the connection relationship between a robot and a robot control server in a system for controlling a robot according to an exemplary embodiment of the present disclosure; FIG. 3 is a flowchart illustrating a method of generating a target code in a system for controlling a robot according to an exemplary embodiment of the present disclosure; FIG. 4 is a flowchart illustrating a method of registering a target code with a robot in a system for controlling a robot according to an exemplary embodiment of the present disclosure; FIG. 5 is a flowchart illustrating a method of verifying validity of a target code in a system for controlling a robot according to an exemplary embodiment of the present disclosure; FIG. 6 is a diagram illustrating a method of generating a target code while the connection between a robot and a robot control server is online in a system for controlling a robot according to an exemplary embodiment of the present disclosure; FIG. 7 is a diagram illustrating a method of generating a target code while the connection between the robot and the robot control server is offline in a system for controlling a robot according to an exemplary embodiment of the present disclosure; FIG. 8 is a diagram illustrating a process for generating a target code in a system for controlling a robot according to an exemplary embodiment of the present disclosure; and FIG. 9 is a block diagram illustrating a computing system related to a system for controlling a robot or a method for controlling a robot according to an exemplary embodiment of the present disclosure.It should be understood that the appended drawings are not necessarily to scale, presenting a somewhat simplified representation of various features illustrative of the basic principles of the present disclosure. The specific design features of the present disclosure as included herein, including, for example, specific dimensions, orientations, locations, and shapes will be determined in part by the particular intended application and use environment.In the figures, reference numerals refer to the same or equivalent parts of the present disclosure throughout the several figures of the drawing.DETAILED DESCRIPTIONReference will now be made in detail to various embodiments of the present disclosure(s), examples of which are illustrated in the accompanying drawings and described below. Although the present disclosure(s) will be described in connection with exemplary embodiments of the present disclosure, it should be understood that the present description is not intended to limit the present disclosure(s) to these exemplary embodiments of the present disclosure. On the other hand, the present disclosure(s) are intended to cover not only the exemplary embodiments of the present disclosure, but also various alternatives, modifications, equivalents, and other embodiments that may be included within the spirit and scope of the present disclosure as defined by the appended claims.Hereinafter, various exemplary embodiments of the present disclosure will be described in detail with reference to the exemplary drawings. In adding the reference numerals to the components of each drawing, it should be noted that the identical or equivalent component is denoted by the identical numeral even if they are displayed on other drawings. Further, in describing the exemplary embodiment of the present disclosure, a detailed description of the related known configuration or function will be omitted when it is determined to impair understanding of the exemplary embodiment of the present disclosure. Various embodiments of the present disclosure may be described with reference to the accompanying drawings. Accordingly, those skilled in the art will recognize that modifications, equivalents, and / or alternatives may be made to the various embodiments described herein in various ways without departing from the scope and spirit of the present disclosure. With reference to the description of the drawings, similar elements may be identified by similar reference numerals.Terms such as first, second, A, B, (a), (b), or the like may be used herein when describing components of the present disclosure. The terms are provided only to distinguish the elements from other elements, and the essences, sequences, orders, and numbers of the elements are not limited by the terms. Further, unless defined otherwise, all terms used herein, including technical or scientific terms, have the same meanings as those generally understood by those skilled in the art to which the present disclosure pertains. The terms defined in the generally used dictionaries should be construed as having the meanings that conform to the meanings of the relationships of the related technologies, and should not be construed as ideal or excessively formal meanings unless clearly defined in the description of the present disclosure. The terms such as "first", "second", and the like used herein may refer to various elements of various embodiments of the present disclosure, but do not limit the elements. For example, "a first user device" and "a second user device" indicate different user devices regardless of the order or priority. For example, without departing from the scope of the present disclosure, a first element may be referred to as a second element, and similarly, a second element may be referred to as a first element.In the present disclosure included herein, the terms "include", "may include", "include" and "comprise", or "may include" and "may include" used herein indicate the presence of corresponding features (e.g., elements such as numerical values, functions, operations, or components), but do not exclude the presence of additional features.It will be appreciated that when an element (e.g., a first element) is referred to as being "(operatively or communicatively) coupled or connected to" another element (e.g., a second element), it may be directly coupled or connected to the other element or an intervening element (e.g., a third element) may be present. In contrast, when an element (e.g., a first element) is referred to as being "directly coupled to or connected to another element (e.g., a second element)," it will be appreciated that there is no intervening element (e.g., a third element).According to the situation, the term "configured for" used herein may be used, for example, as the term "suitable for", "having the capability to", "designed for", "adapted to", "made to", or "capable of".The term "configured for" need not mean merely "specially designed for" in hardware. Rather, the term "a device configured to" may mean that the device is "capable of" operating in conjunction with another device or other components. A CPU, for example, a "processor configured to perform A, B, and C" may mean a dedicated processor (e.g., an embedded processor) for performing a corresponding operation, or a general-purpose processor (e.g., a central processing unit (CPU) or an application processor) that may perform corresponding operations by executing one or more software programs stored in a storage device. Terms used in the present disclosure are used to describe specified embodiments of the present disclosure, and are not intended to limit the scope of the present disclosure. The terms a singular form may include plural forms unless otherwise specified. All terms used herein, including technical or scientific terms, may have the same meaning as commonly understood by one of ordinary skill in the art. It will be further understood that terms defined and generally used in a dictionary should also be construed as being conventional in the art, and not in an idealized or overly formal sense unless expressly so defined herein. In some cases, although terms are terms defined in an exemplary embodiment of the present disclosure, terms may not be construed to exclude embodiments of the present disclosure.In an exemplary embodiment of the present disclosure included herein, the terms "A or B", "at least one of A or / and B", or "one or more of A or / and B", and the like, used herein, may include any and all combinations of one or more of the associated listed items. For example, the term "A or B", "at least one of A and B", or "at least one of A or B" may refer to all of the case (1) in which at least one A is contained, the case (2) in which at least one B is contained, or the case (3) in which both at least one A and at least one B are contained. Further, as used herein, any such phrase as "A or B", "at least one of A and B", "at least one of A or B", "A, B or C", "at least one of A, B and C", and "at least one of A, B or C" may include any or all possible combinations of the elements listed together in a corresponding one of the phrases. A phrase such as "at least one of A, B, or C, or any combination thereof" may include A or B or C, or any combination thereof such as AB or ABC.Hereinafter, various exemplary embodiments of the present disclosure will be described in detail with reference to FIGS. 1, 2, 3, 4, 5, 6, 7, 8, and 9.FIG. 1 is a diagram illustrating a system for controlling a robot according to an exemplary embodiment of the present disclosure.A system 100 for controlling a robot according to various exemplary embodiments of the present disclosure may include a robot 110 and a robot control server 120.The robot 110 may include a robot agent. For example, the robot agent may include an authentication request module 111, an authentication verification module 113, and a database (DB). The robot 110 may include a robot that autonomously moves in an area to be driven without user manipulation and performs the task of a command received from the user. In detail, the robot 110 may include a cleaning robot, a telepresence robot, a safety robot, a surgical robot, a home-care robot, a public-site service robot, an aerospace remote robot, a hazardous material disposal robot, and the like, but the exemplary embodiment of the present disclosure is not limited thereto. Such a robot can perform tasks using a driving device configured to move like a user's arm or hand using electric or mechanical mechanisms.The robot 110 may communicate with the robot control server 120. For example, the robot 110 may transmit and receive data via a communication device when the connection between the robot 110 and the robot control server 120 is online. In detail, the communication device of the robot 110 may support communication between the robot 110 and the robot control server 120. For example, the communication device may include one or more components that enable communication between the robot 110 and the robot control server 120. For example, the communication device may include a short-range wireless communication device, a microphone, and the like. In the present case, a short-range communication technology may include wireless LAN (Wi-Fi), Bluetooth, ZigBee, Wi-Fi Direct (WFD), Ultra Wide Band (UWB), Infrared Data Association (IrDA), Bluetooth Low Energy (BLE), Near Field Communication (NFC), and the like, but the exemplary embodiment of the present disclosure is not limited thereto.The robot 110 may verify validity of the target code input from a user 115 by a service provided by a robot agent within the robot. For example, when a target code is input from the user 115, the robot 110 may verify validity by interpreting the 2D code of the target code. The robot 110 may store the validated target code in a DB within the robot. Details of the 2D code will be described below with reference to FIG. 8.The destination code may represent a license that allows the user 115 to use the robot 110. For example, the destination code may be output by a manager 125 of the robot control server 120. The user 115 may receive an email, a text message, a request to the robot control server 120, or a destination code from the robot 110. The user 115 can use the robot 110 by the output destination code. In detail, the target code may include code encrypted with a symmetric key to improve security in issuing a license for the robot 110. Such a code may typically be expressed in a form such as a quick response (QR) code. Therefore, in the present description, for convenience of explanation, the destination code is mainly described as a QR code or 2D code. Further, the destination code is not limited thereto, and may be a general character string, a graphical user interface (GUI), or a command line interface (CLI).The symmetric key may represent a key needed to encrypt a license for using the robot 110. For example, the symmetric key may be stored in the robot 110 and the robot control server 120, respectively. In detail, the robot control server 120 may store a first symmetric key. The robot 110 may store a second symmetric key. The first symmetric key may include the same information as the second symmetric key. That is, the symmetric key including the same information may be referred to as the first symmetric key when stored in the robot control server 120. On the contrary, when stored in the robot 110, the symmetric key may be referred to as the second symmetric key. For example, the target code may represent a license encrypted in HS 256 or RS 256, along with the first symmetric key and / or the second symmetric key.The authentication request module 111 may be a module that performs a login request when the robot 110 logs on to the robot control server 120. For example, when the connection between the robot 110 and the robot control server 120 is online (e.g., the first state), the authentication request module 111 of the robot 110 may request the authentication information and the destination code stored in the DB inside the robot to perform a login request to the robot control server 120. For reference, the authentication information may include serial code information, media access control (MAC) address information, a model name, a secret key, and an application programming interface (APl) key.The authentication verification module 113 may be a module that verifies the target code within the robot 110 when the robot 110 is in a closed network service or offline. For example, when the connection between the robot 110 and the robot control server 120 is offline (e.g., the second state), the authentication verification module 113 of the robot 110 may independently verify the target code input by the user 115.The robot control server 120 may include an encryption and decryption module, a robot management service 121, and a target code output and management service 123. For example, the encryption and decryption module may be a module that encrypts and decrypts authentication information (e.g., serial code information) included in the target code when outputting the target code. The encryption and decryption module may perform encryption of authentication information and decryption of the target code, and store the results in the DB.The robot management service 121 may represent a service that stores and manages authentication information of a robot (e.g., the robot 110) that is the subject of management. In addition, the destination code output and management service 123 may be associated with the DB to output and manage the destination code.FIG. 2 is a diagram illustrating the connection relationship between a robot and a robot control server in a system for controlling a robot according to an exemplary embodiment of the present disclosure.A system for controlling a robot (e.g., the system 100 for controlling a robot of FIG. 1 ) according to various exemplary embodiments of the present disclosure may include a robot 210 and a robot control server 220. For example, robot 210 may identify the target code input by user 215. The robot 210 may receive a command from the user 215 based on verifying the validity of the target code. The robot control server 220 may receive a request for issuing the target code related to the access right to the robot 210 from the user 215 operating the robot. For reference, the user 215 who operates the robot may be the person who purchased the robot 210, but the exemplary embodiment of the present disclosure is not limited thereto. For example, the user 215 operating the robot may be the same person as a manager 225 that permits the request to output the destination code. Accordingly, the request to output the destination code may be generated by the user 215 operating the robot or the manager 225 managing the robot.For example, the user 215 may request the robot control server 220 to output the destination code. The robot control server 220 may receive the output request from the user 215. The robot control server 220 may transmit the received output request to the manager 225. The manager 225 may transmit an approval command regarding the output request received from the robot control server 220. The robot control server 220 may transmit generation completion notification of the target code to the user 215 based on receiving an approval command from the manager 225. The user 215 may receive the target code from the manager 225 based on receiving the generation completion notification of the target code. For reference, in the present description, for convenience of explanation, the user 215 receiving the target code from the manager 225 may be the same as the user 215 receiving the target code from the robot control server 220.The user 215 may input the target code to the robot 210 based on receiving the target code. The robot 210 may transmit an authentication request to the robot control server 220 based on the reception of the target code. In the present case, the authentication request may represent an authentication request with respect to the validation of the target code input and / or received by the user 215. The robot 210 may receive a command from the user 215 based on verifying the validity of the target code.FIG. 3 is a flowchart illustrating a method of generating a target code in a system for controlling a robot according to an exemplary embodiment of the present disclosure.In a system for controlling a robot (e.g., the system 100 for controlling a robot of FIG. 1 ) according to an exemplary embodiment of the present disclosure, a user may transmit a request to output a target code to a robot control server in operation 310.In operation 320, the robot control server may be configured to generate payload data based on serial code information and MAC address information based on receiving the request to output the target code. For example, the robot control server may transmit the output request to a manager that manages the robot control server based on receiving the output request from the user. At the same time, the robot control server can be configured to generate the user data for outputting and / or generating the destination code.In operation 330, the robot control server may be configured to generate the destination code based on a symmetric key and the payload. In detail, the symmetric key may represent a symmetric key (e.g., the first symmetric key shown in FIG. 1 ) stored in the robot control server. The robot control server may be configured to generate the destination code based on the symmetric key and the payload based on receiving an approval command regarding the output request from the manager.Based on receiving the approval command, the robot control server may be configured to generate a first payload based on at least one of serial code information of the robot, media access control (MAC) address information of the robot, information related to an operation period of the robot, information related to a model name of the robot, or information related to a provision function of the robot, or any combination thereof. The details of the first payload will be described below with reference to FIG. 8. The robot control server may be configured to generate the destination code based on the first payload and the first symmetric key stored in the robot control server.In operation 340, the robot control server may be configured to determine the connection state between the robot and the robot control server. For example, in a first state where the connection between the robot and the robot control server is online, the robot control server may transmit the destination code to the user through operation 350. In detail, the robot control server may transmit the target code to the user based on the first state corresponding to the connection between the robot and the robot control server being online.In operation 360, based on a second state in which the connection between the robot and the robot control server is offline, the robot control server may transmit a first subcode including the destination code and the first payload to the user. In detail, the robot control server may transmit the destination code to the user in the first state. On the contrary, the robot control server may transmit the destination code and the subcode to the user in the second state. The reasons for this are as follows. In the first state, the robot may transmit a login request to the robot control server. In the present case, the robot may receive data such as the first payload from the robot control server. The robot control server may transmit the first payload and a signature based on receiving the login request from the robot. On the contrary, in the second state, the robot cannot transmit the login request to the robot control server. Therefore, the robot must verify the destination code and the subcode input and / or received by the user itself.FIG. 4 is a flowchart illustrating a method of registering a target code with a robot in a system for controlling a robot according to an exemplary embodiment of the present disclosure.In a system for controlling a robot (e.g., the system 100 for controlling a robot of FIG. 1 ) according to an exemplary embodiment of the present disclosure, the robot may identify the second symmetric key from the target code based on the reception of the target code from the user by the input device of the robot in operation 410. In detail, the second symmetric key may represent the same symmetric key as the first symmetric key stored in the robot control server.In operation 420, the robot may be configured to determine the connection state between the robot and the robot control server. In detail, the robot may be configured to determine the connection state between the robot control server and the robot based on the identification of the second symmetric key. Thereafter, the robot may perform operations for verifying the validity of the target code, which will be described below, based on the determined connection state. For example, in the first state, in operation 421, the robot may transmit a login request to the robot control server. Alternatively, in the second state, in operation 423, the robot may prompt the user to enter a subcode.In operation 430, the robot may perform the verification of the validity of the target code input by the user. In operation 440, the robot may be configured to determine the validity of the target code for an object for which the validity of the target code is verified.For example, the robot may transmit the login request to the robot control server based on at least one of the robot's serial code or the robot's MAC address, or a combination thereof, based on the connection between the robot and the robot control server being online. In the present case, the robot may receive the second payload including a signature from the robot control server. For reference, the robot control server may transmit the first payload including the signature to the robot. The robot may receive the first payload including the signature from the robot control server and store it simultaneously. The first payload stored in the robot and including the signature may be the second payload including the signature. By such operations, the robot can receive the second payload including the signature from the robot control server. The robot may apply the second symmetric key to the second payload to decrypt the second payload.The robot may identify at least one of the serial code of the robot, the MAC address of the robot, the operation period of the robot, the model name of the robot, or the provided function of the robot, or any combination thereof, from the decrypted second payload, thereby verifying the validity of the target code.For example, the robot may prompt the user to enter a second subcode based on the connection between the robot and the robot control server being offline. That is, in the second state where the robot is offline, the robot may prompt the user to input the second subcode because the robot cannot receive the second payload from the robot control server. The robot may perform decryption of the second subcode by applying the second symmetric key to the second subcode based on the reception of the second subcode from the user by the input device of the robot.The robot may identify at least one of the serial code of the robot, the MAC address of the robot, the operation period of the robot, the model name of the robot, or the provided function of the robot, or any combination thereof, from the decrypted second payload, thereby verifying the validity of the target code.In operation 441, the robot may be configured to determine the state of the robot as a normal standby state based on the validity of the target code being verified. On the contrary, in operation 443, the robot may be configured to determine the state of the robot as a registration error state based on the failure to validate the target code. At the same time, the robot control server may apply the state of the robot as an error state based on the failure to validate the target code, and transmit the state of the robot to the user.FIG. 5 is a flowchart illustrating a method of verifying validity of a target code in a system for controlling a robot according to an exemplary embodiment of the present disclosure.In a system for controlling a robot (e.g., the system 100 for controlling a robot of FIG. 1 ) according to an exemplary embodiment of the present disclosure, the robot may identify a symmetric key from the target code in operation 510. For example, the destination code may be input or received by a user.In operation 510, the robot may store the identified symmetric key in the DB. For example, the robot may identify the symmetric key from the target code and store the identified symmetric key in the DB through an authentication request module included in the robot. Further, the robot may make a login request to the robot control server through the authentication request module included in the robot.In operation 520, the robot may be configured to determine the connection state between the robot and the robot control server. In the present case, if the connection state between the robot and the robot control server is online, the robot may transmit a login request to the robot control server in operation 540. On the contrary, if the connection state between the robot and the robot control server is offline, the robot may prompt the user to enter a subcode in operation 545. Further, the robot may store the payload and the signature based on the input subcode.In operation 550, the robot control server may confirm the login request transmitted from the robot. In detail, the robot control server may confirm the login request based on at least one of the robot serial code information or the robot MAC address, or a combination thereof. The robot control server may be configured to generate a payload by the provided symmetric key based on the confirmed login request. In detail, the payload may include at least one of the operation period required for robot management / operation, the serial code, the MAC address, the model name, the operation period, or the type of provided function of the robot, or a combination thereof. The payload may be stored in JavaScript Object Notation (JSON) format. The payload may be stored in the robot control server. The payload may be encrypted using a symmetric key when a login request is received from the robot. Accordingly, the robot control server may be configured to generate or encrypt the payload by the provided symmetric key.For reference, the types of provided functions may include at least one of whether a text-to-speech (TTS) function is provided, whether a function for releasing the maximum speed of the robot is provided, whether a robot environment lighting function is provided, or whether a robot operation statistics function is provided, or a combination thereof. The details regarding the payload will be described below with reference to FIG. 8.The robot control server may perform signature processing on the payload based on the generated payload. Then, the robot control server may transmit the signed payload to the robot.In operation 560, the robot may verify the signature of the signed payload based on the symmetric key. After verifying the signature, the robot may decrypt the payload received from the robot control server in operation 570.In operation 580, the robot may verify the validity of the target code based on the decryption of the payload being performed. For example, the robot may verify the validity of the target code by checking whether the serial code information of the robot and the MAC address of the robot match. The robot can verify the validity of the target code by checking the expiration period of the target code.FIG. 6 is a diagram illustrating a method of generating a target code while the connection between a robot and a robot control server is online in a system for controlling a robot according to an exemplary embodiment of the present disclosure.In a system for controlling a robot (e.g., the system 100 for controlling a robot of FIG. 1 ) according to an exemplary embodiment of the present disclosure, a manager 610 may add a robot to a robot control server 620. In the present case, the manager 610 may register basic information such as serial code information of the robot and a MAC address of the robot in the robot control server 620.The robot control server 620 may store the basic information received from the manager 610 in a DB 630. The robot control server 620 may transmit a response regarding completion of robot addition to the manager 610 based on stored robot information including the basic information.Based on the addition of the robot, the manager 610 may request the robot control server 620 to output (i.e., request output) the destination code for the added robot. The robot control server 620 may query information related to the target code output and generate the target code. Then, the robot control server 620 may transmit the destination code to the manager 610.A user 650 may input the destination code to a robot 640 based on receiving the destination code. In the present case, the user 650 may receive the destination code from the manager 610 through a tool such as an email.The robot 640 may perform the following operations based on receiving the destination code from the user 650. For reference, the operations performed by the robot 640 below may be explained on the assumption that the connection state between the robot 640 and the robot control server 620 is online. Accordingly, when the connection state between the robot 640 and the robot control server 620 is offline, this will be described in detail below in FIG. 7.The robot 640 may transmit a login request to the robot control server 620. In the present case, the robot 640 may transmit the login request to the robot control server 620 based on basic information such as serial code information of the robot and a MAC address of the robot.The robot control server 620 may query the payload and the signature stored in the DB 630 based on the received login request and generate the destination code based on the payload and the signature. As an exemplary embodiment of the present disclosure, the robot control server 620 may be configured to generate or encrypt the payload with the symmetric key in response to the login request.The robot 640 may check validity of the target code with the robot control server 620 at previously specified time intervals. In detail, the robot 640 may check validity of the target code at previously specified time intervals by performing the same operation as performing the login request to the robot control server 620 based on the target code input from the user 650.Based on the fact that the connection between the robot and the robot control server is in the first state (i.e., online state), the robot control server 620 may update information different from information (e.g., the basic information stored in the robot) about the robot among information included in the payload.FIG. 7 is a diagram illustrating a method of generating a target code while the connection between the robot and the robot control server is offline in a system for controlling a robot according to an exemplary embodiment of the present disclosure.In a system for controlling a robot (e.g., the system 100 for controlling a robot of FIG. 1 ) according to an exemplary embodiment of the present disclosure, a manager 710 may add a robot to a robot control server 720. In the present case, the manager 710 may register basic information such as serial code information of the robot and a MAC address of the robot in the robot control server 720.The robot control server 720 may store the basic information received from the manager 710 in a DB 730. The robot control server 720 may transmit a response regarding completion of robot addition to the manager 710 based on stored robot information including basic information.Based on the addition of the robot, the manager 710 may request the robot control server 720 to output the destination code for the added robot (i.e., request output). The robot control server 720 may query information regarding the target code output and generate the target code. Then, the robot control server 720 may transmit the destination code to the manager 710.The user 750 may input the target code to a robot 740 based on receiving the target code. In the present case, a user 750 may receive the destination code from the manager 710 through a tool such as an email.The robot 740 may prompt the user 750 to input a subcode based on the target code being input from the user 750. Further, the robot 740 may store the payload and the signature based on the input subcode.FIG. 8 is a diagram illustrating a process for generating a target code in a system for controlling a robot according to an exemplary embodiment of the present disclosure.Referring to FIG. 8, source code 810 may include a first code and a second code for generating a target code 820.The first code may represent a code encrypting a payload by a symmetric key. In detail, a robot control server may encrypt the payload by applying the symmetric key and the payload to the first code. In the present case, an example of the encrypted payload may be the target code 820, but the exemplary embodiment of the present disclosure is not limited thereto.The second code may represent a code that decrypts the payload by the symmetric key. In detail, the robot control server may decrypt the payload by applying the symmetric key and the encrypted payload to the second code.For reference, with respect to the payload, a first payload and a second payload may be described in the present specification. In detail, the first payload may represent the payload of the robot stored in the robot control server. The second payload may represent the payload of the robot stored in the robot. Accordingly, depending on where the payload of the robot is stored, it may be described as the first payload and / or the second payload.For example, the destination code 820 may be an image of a QR code. The target code 820 may include a payload, and more specifically, may include an encrypted payload. The user may input the target code 820 to the robot 830 through the input device of the robot 830.FIG. 9 is a block diagram illustrating a computing system related to a system for controlling a robot or a method for controlling a robot according to an exemplary embodiment of the present disclosure.Referring to FIG. 9, a computing system 1000 related to a system for controlling a robot or a method for controlling a robot may include at least a processor 1100, a memory 1300, a user interface input device 1400, a user interface output device 1500, a storage 1600, and a network interface 1700, which are connected by a bus 1200.The processor 1100 may be a central processing unit (CPU) or a semiconductor device that processes instructions stored in the memory 1300 and / or the storage 1600. The memory 1300 and the storage 1600 may include various volatile or nonvolatile storage media. For example, the memory 1300 may include a read only memory (ROM) and a random access memory (RAM).Accordingly, the processes of the method or algorithm described with respect to the exemplary embodiments of the present disclosure may be directly implemented by hardware executed by the processor 1100, a software module, or any combination thereof. The software module may reside in a storage medium (i.e., the memory 1300 and / or the storage 1600) such as a RAM memory, a flash memory, a ROM memory, an EPROM memory, an EEPROM memory, a register, a hard disk, a solid state drive (SSD), a detachable disk, or a CD-ROM.The example storage medium is coupled to the processor 1100, and the processor 1100 may read information from the storage medium and may write information to the storage medium. In another method, the storage medium may be integrated with the processor. The processor and the storage medium may reside in an application specific integrated circuit (ASIC). The ASIC may be located in a user terminal. In another method, the processor and the storage medium may be located in the user terminal as a single component.Although embodiments of the present disclosure have been described for illustrative purposes, those skilled in the art will appreciate that various modifications, additions and substitutions are possible, without departing from the scope and spirit of the present disclosure.The example embodiments described above may be implemented by hardware elements, software elements, and / or combinations thereof. For example, the devices and components illustrated in the exemplary embodiments of the present disclosure may be implemented in one or more general purpose or special purpose computers, such as a processor, a controller, an arithmetic logic unit (ALU), a digital signal processor, a microcomputer, a field programmable gate array (FPGA), a programmable logic unit (PLU), a microprocessor, or any device capable of executing and reacting instructions. A processing unit may operate an operating system (OS) or one or more software applications running on the OS. Further, in response to software execution, the processing unit may access, store, manipulate, process, and generate data. Those skilled in the art will understand that although a single processing unit may be illustrated for ease of understanding, the processing unit may include a plurality of processing elements and / or a plurality of types of processing elements. For example, the processing unit may include a plurality of processors, or a processor and a controller. In addition, the processing unit may include another processing configuration, such as a parallel processor.Software may include computer programs, code, instructions, or one or more combinations thereof, and may configure a processing unit to operate in a desired manner, or may control the processing unit independently or jointly. Software and / or data may be embodied permanently or temporarily in any type of machine, component, physical equipment, virtual equipment, computer storage media or devices, or transmitted signal waves to be interpreted by the processing unit, or to provide instructions or data to the processing unit. Software may be distributed in computer systems connected over networks and may be stored or executed in a distributed manner. Software and data may be recorded on one or more computer readable storage media.The methods according to the above-described exemplary embodiments of the inventive concept may be implemented with program instructions executable by various computer means and recorded in computer readable media. The media may also include data files, data structures, and the like, alone or in combination with the program instructions. The program instructions recorded in the media may be specially designed and configured for the exemplary embodiments of the inventive concept or may be known and available to those skilled in the art of computer software. Computer readable media includes magnetic media such as hard disks, floppy disks, and magnetic tapes; optical media such as compact disc read-only memory (CD-ROM) disks and digital versatile disks (DVDs); magneto-optical media such as optical disks; and hardware devices specifically configured to store and execute program instructions such as read-only memory (ROM), random access memory (RAM), flash memory, and the like. Program instructions include both machine code, such as generated by a compiler, and higher level code, which may be executed by the computer using an interpreter.The described hardware devices may be configured to function as one or more software modules to perform the operations of the above-described exemplary embodiments of the inventive concept, or vice versa.The effects of the system for controlling a robot and the method according to an exemplary embodiment of the present disclosure will be described below.According to at least one of the exemplary embodiments of the present disclosure, it is possible to increase work efficiency according to a method and a configuration for outputting and managing a target code such as a digital license for a robot online by managing a request for outputting the target code related to an access right to the robot from a user operating the robot.Further, according to at least one of the exemplary embodiments of the present disclosure, it is possible to ensure stability in using a robot depending on the symmetric key output method and the encryption method of the target code by generating the target code by a payload including the characteristics of the robot and a prestored symmetric key.Further, according to at least one of the exemplary embodiments of the present disclosure, it is possible to manage the target code output for both a robot that performs online service and a robot that performs closed network service by performing the operation to verify the validity of the target code differently depending on the connection state between the robot and the robot control server.Further, various effects can be provided that are directly or indirectly understood by the present disclosure.Although some exemplary embodiments have been shown and described with reference to the accompanying drawings, it will be apparent to those skilled in the art that various modifications and variations can be made from the foregoing descriptions. For example, even if the above processes and methods are performed in an order other than described above, and / or the above elements such as systems, structures, devices, or circuits are combined or coupled in forms and modes other than described above, or are replaced or switched by other components or equivalents, adequate effects can be achieved.Thus, it is intended that the present disclosure cover other implementations and other embodiments of the present disclosure provided they fall within the scope of the appended claims and their equivalents.Further, the terms such as "unit", "module", etc. included in the specification mean units for processing at least one function or operation that can be implemented by hardware, software, or a combination thereof.In an exemplary embodiment of the present disclosure, the vehicle may be referred to as being based on a concept including various means of transport. In some cases, the vehicle may be configured based on a concept including not only various land transportation means such as cars, bicycles, trucks and buses running on roads, but also various transportation means such as airplanes, drones, ships, etc.For convenience in explanation and accurate definition in the appended claims, the terms "upper", "lower", "inner", "outer", "upward", "downward", "upward", "downward", "front", "rear", "rearward", "inner", "outer", "inward", "outward", "interior", "exterior", "internal", "exterior", "forward", and "rearward" are used to describe features of the exemplary embodiments with reference to the positions of such features as displayed in the figures. It will be further understood that the term "connect" or its derivatives refer to both a direct and an indirect connection.According to an exemplary embodiment of the present disclosure, components may be combined with each other to be implemented as one, or some components may be omitted.The foregoing descriptions of specific exemplary embodiments of the present disclosure have been presented for purposes of illustration and description. They are not intended to be exhaustive or to limit the present disclosure to the precise forms disclosed, and obviously many modifications and variations are possible in light of the above teachings. The exemplary embodiments were chosen and described in order to explain certain principles of the invention and their practical application, to enable others skilled in the art to make and use various exemplary embodiments of the present disclosure, as well as various alternatives and modifications thereof. It is intended that the scope of the present disclosure be defined by the appended claims and their equivalents.100 System 820 Destination code 830 Robot
Claims
A system for controlling a robot, the system comprising: a robot control server; and the robot, wherein the robot control server is configured to receive a request for issuing a target code related to access authority to the robot from a user operating the robot, and wherein the robot is configured to: identify the target code input by the user, and receive a command from the user based on the validity of the target code being verified.The system of claim 1, wherein the robot control server is further configured to: transmit the output request to a manager managing the robot control server based on the output request being received from the user; and generate the destination code based on receiving an approval command regarding the output request from the manager.The system of claim 2, wherein the robot control server is further configured to: generate a first payload based on at least one of serial code information of the robot, media access control (MAC) address information of the robot, information related to an operation period of the robot, information related to a model name of the robot, or information related to a provision function of the robot, or a combination thereof based on receiving the permission command; and generate the destination code based on the first payload and a first symmetric key stored in the robot control server.The system of claim 3, wherein the robot control server is further configured to transmit the first payload and a signature based on receiving a login request from the robot.The system of claim 3, wherein the robot control server is further configured to: transmit the destination code to the user based on a connection between the robot and the robot control server being in a first state corresponding to online; and transmit the destination code and a first subcode including the first payload to the user based on a connection between the robot and the robot control server being in a second state corresponding to offline.The system of claim 5, wherein the robot control server is further configured to update information different from information related to the robot among information included in the first payload based on the connection between the robot and the robot control server being in the first state.The system of claim 1, wherein the robot is further configured to: identify a second symmetric key from the target code based on receiving the target code from the user through an input device of the robot; determine a connection state between the robot control server and the robot based on the identification of the second symmetric key; and verify validity of the target code based on the determination of the connection state.The system of claim 7, wherein the robot is further configured to: transmit a login request based on at least one of a serial code of the robot or a MAC address of the robot or a combination thereof to the robot control server based on the connection between the robot and the robot control server being online; receive a second payload including a signature from the robot control server; apply the second symmetric key to the second payload to decrypt the second payload; and verify the validity of the target code by identifying at least one of the serial code of the robot, the MAC address of the robot, an operation period of the robot, a model name of the robot, or a provided function of the robot, or a combination thereof from the decrypted second payload.The system of claim 7, wherein the robot is further configured to: prompt the user to input a second subcode from the user based on the connection between the robot and the robot control server being offline; decrypt the second subcode by applying the second symmetric key to the second subcode based on the reception of the second subcode from the user by the input device of the robot; and verify validity of the target code by identifying at least one of a serial code of the robot, a MAC address of the robot, an operation period of the robot, a model name of the robot, or a provided function of the robot, or a combination thereof from the decrypted second subcode.The system of claim 1, wherein the robot is further configured to: apply a state of the robot as a failure state based on the verification that the validity of the target code fails; and transmit the state of the robot to the user.A method for controlling a robot, the method comprising: receiving a request for output of a target code related to the access right to the robot from a user operating the robot; identifying the target code input by the user; and receiving a command from the user based on the validity of the target code being verified.The method of claim 11, wherein receiving the request to output the target code comprises: transmitting the output request to a manager managing the robot control server based on the output request being received from the user; and generating the target code based on receiving an approval command regarding the output request from the manager.The method of claim 12, wherein generating the target code comprises: generating a first payload based on at least one of serial code information of the robot, media access control (MAC) address information of the robot, information related to an operation period of the robot, information related to a model name of the robot, or information related to a provision function of the robot, or a combination thereof based on receiving the permission command; and generating the target code based on the first payload and a first symmetric key stored in the robot control server.The method of claim 13, wherein generating the destination code comprises transmitting the first payload and a signature based on receiving a login request from the robot.The method of claim 13, wherein generating the target code comprises: transmitting the target code to the user based on a connection between the robot and the robot control server being in a first state corresponding to online; and transmitting the target code and a first sub-code including the first payload to the user based on a connection between the robot and the robot control server being in a second state corresponding to offline.The method of claim 15, further comprising: updating information different from information related to the robot among information included in the first payload based on the connection between the robot and the robot control server being in the first state.The method of claim 11, further comprising: identifying a second symmetric key from the target code based on receiving the target code from the user through an input device of the robot; determining a connection state between the robot control server and the robot based on the identification of the second symmetric key; and verifying validity of the target code based on the determination of the connection state.The method of claim 17, wherein verifying the validity of the target code comprises: transmitting a login request based on at least one of a serial code of the robot or a MAC address of the robot or a combination thereof to the robot control server based on the connection between the robot and the robot control server being online; receiving a second payload including a signature from the robot control server; applying the second symmetric key to the second payload to decrypt the second payload; and verifying the validity of the target code by identifying at least one of the serial code of the robot, the MAC address of the robot, an operation period of the robot, a model name of the robot, or a provided function of the robot, or a combination thereof from the decrypted second payload.The method of claim 17, wherein verifying the validity of the target code comprises: prompting the user to input a second subcode from the user based on the connection between the robot and the robot control server being offline; decrypting the second subcode by applying the second symmetric key to the second subcode based on the reception of the second subcode from the user by the input device of the robot; and verifying the validity of the target code by identifying at least one of a serial code of the robot, a MAC address of the robot, an operation period of the robot, a model name of the robot, or a provided function of the robot, or a combination thereof from the decrypted second subcode.The method of claim 11, further comprising: applying a state of the robot as a failure state based on the verification that the validity of the target code fails; and transmitting the state of the robot to the user.