Robot, device for controlling an operation of a robot, system comprising the same and method for controlling an operation of a robot
Patent Information
- Application Number
- DE102023211530
- Authority / Receiving Office
- DE · DE
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2023-08-03
- Filing Date
- 2023-11-20
- Publication Date
- 2025-02-06
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
TECHNICAL FIELDThe present disclosure relates to a robot, an apparatus for controlling an operation of the robot, a system including the same, and a method for controlling an operation of the robot.BACKGROUNDA robot technology is used in various industrial fields. The control of various functions such as a service function, a patrol function, and a delivery function is essential for robots used in any industrial field. In the past, a corresponding function or operation has been defined in units of source code, and the robot has been controlled to execute the corresponding function or operation in response to a command.A process for defining the function or operation of the robot includes processes for writing the source code of a user and constructing, simulating, and testing with an actual robot. Such processes may be inefficient processes with respect to distributing and applying the newly defined functions or operation to the robot in actual operation. In addition, it has been only limitedly possible for third parties to infer the operation of the robot via the user's source code, and it has been difficult to test the robot by constructing a separate simulation environment or to apply requirements for changes to the robot.In addition, when a test is required for an expensive robot, when there is no separate test robot, or when at least one user performs the test on a test robot, the user may transmit a wrong operation command to the test robot, resulting in failure of the robot, or the cooperating users may simultaneously transmit an execution command to the robot, resulting in a failure in the robot. For example, the user may generate the fault in the robot by executing a command having an angle equal to or greater than a physically available angle of a robot arm or a command having a speed equal to or higher than an available speed.In order to solve such a problem, it is necessary to develop a technology concerning a robot, a device for controlling an operation of a robot, a system including the same, and a method for controlling the operation of the robot, which provide information concerning the operation of the robot to a user via a graphic object.SUMMARYThe present disclosure relates to a robot, an apparatus for controlling an operation of the robot, a system including the same, and a method for controlling the operation of the robot. Particular embodiments relate to a technology for providing information related to an operation of a robot to a user via a graphical object.Embodiments of the present disclosure may solve problems occurring in the prior art while retaining the advantages achieved by the prior art.An embodiment of the present disclosure provides a robot, an apparatus for controlling an operation of the robot, a system including the same, and a method for controlling the operation of the robot, which can generate and modify a target operation related to the operation of the robot to control the operation of the robot based on units of the operation for each module mounted on the robot instead of controlling the operation of the robot in units of source code, and provide convenience and efficiency to a developer or a user in the process of controlling the operation of the robot.Another embodiment of the present disclosure provides a robot, an apparatus for controlling an operation of the robot, a system including the same, and a method for controlling an operation of the robot, which can verify a target operation for a graphic object corresponding to the robot to minimize a need for a test robot and reduce development costs of the robot, ensure safety of the test robot against simultaneous execution by a plurality of developers or users, and provide user-friendliness to the developers or users.Another embodiment of the present disclosure provides a robot, an apparatus for controlling an operation of the robot, a system including the same, and a method for controlling the operation of the robot, which can perform safety validation on a module mounted on the robot to ensure stability of a test robot as well as quickness of feedback of a change request of a user to the robot in real time via association of a machine that interprets operation data and an operation, instead of a code fed back to the robot after creation of the source code.The technical problems that can be solved by embodiments of the present disclosure are not limited to the above-mentioned problems, and all 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 embodiment of the present disclosure, an apparatus for managing an operation of a robot includes a memory storing computer-executable instructions, and at least one processor that accesses the memory and executes the instructions, and the at least one processor sets a driving time of at least one module included in a target operation among a plurality of operations classified based on the driving of at least one module included in the robot, sets a driving option of the at least one module whose driving time is set, verifies the target operation by simulating a graphic object corresponding to the robot, and transmits the verified target operation to the control server via a communication device, so that the verified target operation is applied to the robot.In one embodiment, based on a case where an operation different from the target operation is added to an operation list including the target operation, the at least one processor may set a driving time of at least one module included in the different operation and set a driving option of the at least one module included in the different operation.In an embodiment, based on a case where there are a plurality of execution commands for applying an operation different from the target operation to the robot, the at least one processor may provide information about an operation corresponding to each of the plurality of execution commands.In an embodiment, the at least one processor may obtain raw data of the target operation based on a first input of a user and reflect the modification of the target operation based on a case where at least one of a first element related to the driving time or a second element related to the driving option included in the raw data or any combination.In one embodiment, the at least one processor may verify whether raw data of the target operation meets a data standard based on a second input of a user transmitting the target operation to the control server via the communication device, based on a case where the raw data meets the data standard, and provide a predetermined alert to the user based on a case where the raw data does not meet the data standard.In one embodiment, the at least one processor may receive an alternative operation corresponding to the target operation and stored at a time closest to a time at which the third input among the operations stored in the control server is received from the control server via the communication device, based on a third input of a user, and the at least one processor may replace the target operation with the alternative operation.In one embodiment, the at least one processor may transmit an execution command to the control server such that the target operation transmitted to the control server is applied to the robot based on a fourth input of a user.According to another embodiment of the present disclosure, a system for managing an operation of a robot includes a robot operation control device, a control server, and the robot that receives a command from the control server. The robot operation control device sets a driving time of at least one module included in a target operation among a plurality of operations classified based on the driving of at least one module included in the robot, sets a driving option of the at least one module whose driving time is set, verifies the target operation via the simulation of a graphic object corresponding to the robot, and transmits the verified target operation to the control server, so that the verified target operation is applied to the robot, and the control server transmits an execution command to the robot based on the verified target operation received from the robot operation control device.In one embodiment, the control server may perform security validation for the at least one module mounted on the robot based on receipt of the verified target operation from the robot operation control device, the control server may process the execution command by queuing the execution command based on receipt of the execution command for applying the target operation to the robot, and the robot may apply the target operation to the at least one module in response to the processed execution command.In one embodiment, based on a case where the received target operation is applied to the at least one module included in the robot, the safety validation may include at least one of a validation of a position of the module, validation of a speed of the module, validation of a torque of the module, or validation of an acceleration of the module, or any combination thereof.In one embodiment, the control server may determine whether the received target operation uses a drive system including a servo motor related to driving the at least one module, obtain a threshold related to the safety validation based on a case where the received target operation uses the drive system, and perform the safety validation by comparing the obtained threshold with the drive option included in the received target operation.In one embodiment, the control server may transmit an alarm provision command to the robot operation control device such that the robot operation control device provides a predetermined alarm to a user based on a case where at least one of the driving options included in the received target operation is greater than the obtained threshold.In one embodiment, the control server may store the target operation in the memory of the control server based on a case where the security validation for the at least one module mounted on the robot has been passed.In one embodiment, the control server may insert the execution command into the queue based on a case where an operation of a previous execution command preceding the execution command is applied to the robot, and the control server may process an execution command first inserted among the execution commands inserted into the queue based on a case where the previous execution command is finished.In one embodiment, the control server may process the execution command based on a case where the robot is in an execution standby state.According to another embodiment of the present disclosure, a robot acquires information on at least one module included in a target operation related to an execution command received from a control server, and performs a check as to whether the at least one module is a module mounted on the robot.In one implementation, the robot may set a second time point after a first time point to obtain the information about the at least one module included in the target operation based on a case where the at least one module included in the target operation is the module mounted on the robot, transmit a standby command for setting the at least one module in a standby mode from the first time point to the second time point to the at least one module, and apply the target operation to the at least one module from the second time point.In an embodiment, the robot may set a third time point different from the first time point and the second time point and indicating an end time point of the target operation, obtain a state of the robot applying the target operation based on a predetermined tick from the second time point, and end the target operation applied to the at least one module based on at least one of whether the state of the robot is an end state or a time point for obtaining the state of the robot is after the third time point, or any combination thereof.According to another embodiment of the present disclosure, a method for managing an operation of a robot includes setting, by a robot operation control device, a driving time of at least one module included in a target operation among a plurality of operations classified based on the driving of at least one module included in the robot, setting, by the robot operation control device, a driving option of the at least one module whose driving time is set, verifying, by the robot operation control device, the target operation by simulating a graphic object corresponding to the robot, transmitting, by the robot operation control device, the verified target operation to a control server so that the verified target operation is applied to the robot, and transmitting, by the control server, the target operation, an execution command to the robot based on the verified target operation received from the robot operation control device.In an embodiment, the method may further include performing, by the control server, security validation for the at least one module attached to the robot based on receiving the verified target operation from the robot operation control device, processing, by the control server, the execution command with reference to a queue based on receiving the execution command for applying the target operation to the robot, and applying, by the robot, the target operation to the at least one module in response to the processed execution command.BRIEF DESCRIPTION OF THE DRAWINGSThe above and other objects, features and advantages of embodiments of the present disclosure will become more apparent from the following detailed description when taken in conjunction with the accompanying drawings, in which: FIG. 1 is a diagram showing a robot operation control device according to an embodiment of the present disclosure; FIG. 2 is a flowchart for illustrating a robot operation control method according to an embodiment of the present disclosure; FIGS. 3 and 4 are diagrams illustrating a robot operation control system according to an embodiment of the present disclosure; FIG. 5 is a diagram showing a screen provided to a user in a robot operation control device according to an embodiment of the present disclosure; FIG. 6 is a diagram showing an example of raw data of a target operation in a robot operation control device according to an embodiment of the present disclosure; FIG. 7 is a flowchart illustrating a method for a control server to execute security validation for a module of a robot in a robot operation control system according to an embodiment of the present disclosure; FIG. 8 is a flowchart illustrating a method for a control server to process an execution command in a robot operation control system according to an embodiment of the present disclosure; FIG. 9 is a diagram illustrating a method for a control server to insert an execution command into a queue in a robot operation control system according to an embodiment of the present disclosure; FIG. 10 is a flowchart illustrating a method for a robot to apply a target operation to a module in a robot operation control system according to an embodiment of the present disclosure; FIG. 11 is a diagram for illustrating operations stored in the memory of a control server in a robot operation control system according to an embodiment of the present disclosure; and FIG. 12 is a diagram illustrating a computer system related to a robot, a robot operation control device, a system including the same, and a robot operation control method according to an embodiment of the present disclosure.With regard to the description of the drawings, the same or similar reference numerals may be used for the same or similar components.DETAILED DESCRIPTION OF EXEMPLARY EMBODIMENTSHereinafter, some embodiments of the present disclosure will be described in detail with reference to the exemplary drawings. In adding reference numerals to the components of each drawing, it should be noted that the identical or equivalent component is denoted by the identical numeral, although they are shown on other drawings. Further, in describing the embodiments of the present disclosure, detailed description of the related known configuration or function will be omitted when it is determined to impair understanding of the embodiments of the present disclosure. In particular, various embodiments of the present disclosure will be described with reference to the accompanying drawings. However, this is not intended to limit the technology described herein to the specific embodiments, and should be understood to include various modifications, equivalents, and / or alternatives to the embodiments of the present disclosure. In connection with the description of the drawings, like reference numerals may be used for like components.In describing the components of the embodiments according to the present disclosure, terms such as first, second, A, B, (a), (b), and the like may be used. These terms are merely for distinguishing the components from other components, and the terms do not limit the type, order, or sequence of the components. Unless otherwise defined, all terms used herein, including technical and scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art to which this disclosure pertains. It will be further understood that terms, as defined in commonly used dictionaries, should be construed as having a meaning that is consistent with their meaning in the context of the relevant art and will not be interpreted in an idealized or overly formal sense unless expressly so defined herein. For example, terms such as "first", "second", and the like, which can modify various components regardless of an order and / or importance, are used herein only to distinguish one component from another, and do not limit the corresponding components. For example, a first user device and a second user device may represent different user devices regardless of the order or importance. For example, without departing from the scope of the rights described herein, a first component may be referred to as a second component, and similarly, the second component may also be referred to as a first component.An expression such as "has", "may have", "comprises" or "may comprise" refers to the presence of a corresponding feature (e.g., a numerical value, function, operation, or component such as a module) and does not exclude the presence of further features.When a component (e.g., the first component) is referred to as being "(operatively or communicatively) coupled to / to" another component (e.g., the second component), it is understood that the one component may be directly coupled to the other component or may be connected to the other component via another component (e.g., a third component). On the other hand, when a component (e.g., the first component) is referred to as being "directly coupled to / at" another component (e.g., the second component), it may be considered that another component (e.g., the third component) is not present between the one component and the other component.The term "configured around" as used herein may be used interchangeably with "suitable for ~", "with the ability to ~", "designed around", "adapted around", "manufactured around" or "capable around" depending on the circumstances.The term "configured by ~" does not necessarily mean only "specially designed by ~" with respect to the hardware. Instead, the term "device configured around" may mean that the device is "capable of ~" in conjunction with other devices or components. For example, the term "processor configured to execute A, B, and C" may mean a special processor (e.g., an embedded processor) for executing the respective operations, or may mean a general processor (e.g., a CPU or an application processor) capable of executing the respective operations by executing one or more software programs stored in a storage device. The terms used herein are used only to describe a particular embodiment and are not intended to limit the scope of another embodiment. A singular expression may include a plural expression unless the context clearly dictates otherwise. The terms used herein, including technical or scientific terms, may have the same meaning as understood by one of ordinary skill in the art described herein. Among the terms used herein, terms defined in a general dictionary may be construed to have the same or similar meaning as the meaning in the context of the related art, and should not be construed to have the ideal or excessively formal meaning unless expressly defined herein. In some instances, even terms defined herein may not be construed to exclude embodiments of the present disclosure.As used herein, terms such as "A or B", "at least one of A and / or B", or "one or more of A and / or B" may encompass all possible combinations of the listed items together. For example, "A or B", "at least one of A and B", or "at least one of A or B" may refer to any instances that include (1) at least one A, (2) at least one B, or (3) at least one A and at least one B. Moreover, in describing the components of the embodiment of the present disclosure, each of the expressions such 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", "at least one of A, B or C", and "at least one of A, B or C, or any combination thereof" may include each of the items listed together in the corresponding expression, or all possible combinations thereof. In particular, the phrase such as "at least one of A, B, or C, or a combination thereof" may include A or B, or C, or combinations thereof such as AB or ABC.Hereinafter, with reference to FIGS. 1 to 12, embodiments of the present disclosure will be described in detail.FIG. 1 is a diagram illustrating a robot operation control device according to an embodiment of the present disclosure.A robot operation control device 100 according to an embodiment may include a processor 110, a memory 120 having instructions 122, an input device 130, an output device 140, and a communication device 150.The robot operation control device 100 may be a device that generates or modifies an operation of a robot based on an input of a user or a time line based on a predetermined method without directly changing the source code. For example, the robot operation control device 100 may set a target operation from among a plurality of operations classified based on the drive of at least one module included in the robot. The at least one module included in the robot may include at least one of a neck module, a motion module, a right arm module (Arm_rights), a left arm module (Arm_links), an upper light module (led_behen), a lower light module (led_unten), a sound module, a text-to-speech module (tts), an upper screen (Screen_behen), a middle screen (Screen_means), or a lower screen (Screen_unten) of the robot, or any combination thereof. Herein, for convenience, the module included in the robot is mainly described as an example of the above-mentioned module, but the present disclosure is not limited thereto. For example, the at least one module included in the robot may include various modules for driving the robot.The target operation may include a drive time and a drive option. The drive time may indicate, for example, a drive time of the at least one module included in the robot. The driving option may indicate a driving method or behavior of the at least one module included in the robot. Using the example of the robot-mounted right arm module, a right arm module drive option may include at least one of a control direction option (e.g., up or down), a speed option (e.g., 0.1 m / s), an angle option (e.g., 30 degrees), a start time option (StartBei), a duration option, or any combination of these.The robot operation control device 100 may set a driving time for at least one module included in the target operation and set a driving option for the at least one module for which the driving time is set. However, the method for setting the drive option of the at least one module is not limited thereto. For example, the robot operation control device 100 may simultaneously set the driving time and the driving option of the at least one module included in the target operation. Alternatively, the robot operation control device 100 may first set the driving option and then set the driving time.The robot operation control device 100 may verify the target operation by simulating a graphical object corresponding to the robot. For example, the robot operation control device 100 may provide the graphic object corresponding to the robot to the user via the output device 140. The user may transmit a simulation request for the provided graphical object to the robot operation control device 100 via the input device 130. The robot operation control device 100 may perform the simulation of the graphical object corresponding to the robot in response to the simulation request of the user. The simulation of the graphical object may include a process of providing results concerning the target operation when the target operation is applied to the robot. For example, the simulation of the graphical object may include the simulation of at least one expected motion of the robot, a color of the at least one robot-mounted module, or a sound of the at least one robot-mounted module, or any combination thereof. The robot operation control device 100 may verify the target operation via the simulation of the graphical object (i.e., a virtual robot) corresponding to the robot without simulating the target operation for a separate test robot (i.e., an actual robot).The robot operation control device 100 may transmit the verified target operation to a control server 160 via the communication device 150 so that the verified target operation is applied to the robot. The process of applying the target operation to the robot may include a process in which the robot performs the target operation while applying the driving time and the driving option included in the target operation generated by the robot operation control device 100 to the robot. A detailed description of the application of the target operation to the robot will be given later with reference to the following Figs. 7 to 10.The processor 110 may execute software and control at least one other component (e.g., a hardware or software component) connected to the processor 110. In addition, the processor 110 may perform various data processings or calculations. For example, the processor 110 may store at least one of the drive time, the drive option, the target operation, or raw data, or a combination thereof, in the memory 120. For illustration, the processor 110 may execute all operations performed by the robot operation control device 100. Therefore, for convenience of description herein, the operation performed by the robot operation control device 100 will be mainly described as the operation performed by the processor 110.Moreover, for convenience of description herein, the processor 110 is mainly described as a single processor, but is not limited thereto. For example, the robot operation control device 100 may include at least one processor. Each of the at least one processor may perform all operations related to the operation of the robot operation control device 100 that performs the robot operation control.The storage 120 may temporarily and / or permanently store various data and / or information required for performing the robot operation control. For example, the memory 120 may store at least one of the driving time, the driving option, the target operation, or the raw data, or any combination thereof.The input device 130 may represent a component for obtaining user data. For example, the input device 130 may obtain, as user data, content of the generation or the modification of the target operation applied to the robot. However, embodiments of the present disclosure are not limited to the above-described embodiment, and the input device 130 may obtain data in various formats as user data. For example, the input device 130 may receive data directly input from the user as user data. The input device 130 may include at least one camera, a microphone, or a touch panel, or any combination thereof, to obtain various external inputs.The output device 140 may output graphical objects for the modification content of the target operation applied to the robot. In this connection, output outputted via the output device 140 may be in various forms. For example, the output output via the output device 140 may include at least one output of the graphical object or an output of a plurality of objects for modifying the target operation, or any combination thereof. The display may be a component for outputting results of the user data obtained via the input device 130 as an image. The output device 140 may include a display, for example. The display may output the graphical object expressing the content of the modification of the target operation applied to the robot. That is, when it is desired to output an operation of the robot in response to the user data obtained via the input device 130, the operation of the robot for the user data may be output via the graphical object displayed on the display. In one example, the display for providing different images may be implemented as different types of display fields. For example, the display panel may be implemented with various display technologies such as a liquid crystal display (LCD), an organic light emitting diode (OLED), an active matrix organic light emitting diode (AM-OLED), a liquid crystal on silicon (LcoS), or a digital light processing (DLP).The communication device 150 may support establishment of communication between the robot operation control device 100 and the control server 160. For example, the communication device 150 may include one or more components that enable communication between the robot operation control device 100 and the control server 160. For example, the communication device 150 may include a short-range wireless communication unit, a microphone, and the like. In this context, a short-range communication technology may include, but is not limited to, 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.FIG. 2 is a flowchart illustrating a robot operation control method according to an embodiment of the present disclosure.In S 210, a robot operation control device (e.g., the robot operation control device 100 in FIG. 1 ) may set a driving time of at least one module included in a target operation among a plurality of operations classified based on the driving of at least one module included in a robot.In S 220, the robot operation control device may set a driving option of the at least one module for which the driving time is set. For example, the robot operation control device may generate or modify an operation of the robot without directly modifying the source code related to the operation of the robot by setting the driving time and the driving option based on an input of a user. As a reference, the robot operation control device may generate or modify the operation-related source code (e.g., raw data) of the robot by generating or modifying the operation of the robot. A detailed description of the raw data will be given later with reference to FIG. 6 below.In S 230, the robot operation control device may verify the target operation by simulating a graphical object corresponding to the robot. With respect to the verification of the target operation, the verification of the target operation may include, for example, a first verification and a second verification. The first verification may be verification that the robot operation control device applies the target operation to the graphic object corresponding to the robot. The robot operation control device may provide the user with a situation in which the target operation is applied to the robot via the graphic object by performing the first verification. Alternatively, the second verification may be verification by the robot operation control device whether the raw data concerning the operation of the robot satisfies a data standard. The robot operation control device may provide information on the suitability of the raw data to the user before the target operation is applied to the robot by performing the second verification. That is, the user does not directly generate or modify the source code (e.g., the raw data) related to the target operation, but generates or modifies the operation of the robot based on a time line via an input to the robot operation control device. Therefore, the robot operation control device performs verification (i.e., the second verification) as to whether the generation or change of the target operation based on the user input or a predetermined method is also appropriate for the raw data.In S 240, the robot operation control device may transmit the verified target operation to a control server (e.g., the control server 160 in FIG. 1 ) so that the verified target operation is applied to the robot. Thereafter, the control server may transmit an execution command to the robot based on the verified target operation received from the robot operation control device. Based on receiving the verified target operation from the robot operation control device, the control server may perform security validation on the at least one module mounted on the robot. A detailed method for performing security validation by the control server will be described later with reference to FIG. 7. Based on the reception of the execution command for applying the target operation to the robot, the control server may process the execution command with reference to a queue. A detailed method of processing the execution command by the control server will be described later with reference to the following FIGS. 8 and 9. The robot may apply the target operation to the at least one module in response to the processed execution command. A detailed method for the robot to respond to the processed execution command will be described later with reference to subsequent FIG. 10.FIGS. 3 and 4 are diagrams illustrating a robot operation control system according to an embodiment of the present disclosure.Referring to FIG. 3, a system according to an embodiment of the present disclosure may include a robot operation control device 300, a control server 310, and a robot 320.The robot operation control device 300 may represent the same robot operation control device as the robot operation control device described above with reference to FIG. 1. In other words, the robot operation control device 300 may set a driving time of at least one module included in a target operation among a plurality of operations classified based on the driving of at least one module included in a robot, set a driving option of the at least one module for which the driving time is set, verify the target operation via the simulation of a graphical object corresponding to the robot, and transmit the verified target operation to the control server 310, so that the verified target operation is applied to the robot 320. The robot operation control device 300 may be in communication with the control server 310. The robot operation control device 300 may transmit at least one of the target operation, an alternative operation, an execution command, or a command to provide a notification, or any combination thereof, to the control server 310. In FIGS. 3 and 4, for convenience, the robot operation control device 300 is illustrated as being in communication with the control server 310, but the present disclosure is not limited thereto. For example, the robot operation control device 300 may skip the control server 310 and transmit at least one of the target operation, the alternative operation, the execution command, or the command to provide a notification, or any combination thereof, directly to the robot 320.The control server 310 may transmit the execution command to the robot 320 based on the verified target operation received from the robot operation control device 300. For example, the control server 310 may perform security validation on the at least one module mounted on the robot 320 based on receipt of the verified target operation from the robot operation control device 300. In addition, the control server 310 may process the execution command by referencing a queue based on the reception of the execution command to apply the target operation to the robot 320. The control server 310 may transmit at least one of the target operation, the execution command, a standby command, or an end command, or any combination thereof, to the robot 320.The robot 320 may apply the target operation to the at least one module in response to the execution command processed by the control server 310. For example, the robot 320 may apply the target operation to the at least one module in response to the finally processed execution command via the reference of the security validation of the module with respect to the target operation and the queue of execution commands with respect to the application of the target operation, based on the control server 310 receiving the received verified target operation from the robot operation control device 300.Referring to FIG. 4, a system according to an embodiment of the present disclosure may include a robot operation control device 400, a control server 410, a second control server 415, and a robot 420.The robot operation control device 400 may generate or modify a target operation, perform a simulation on a graphical object corresponding to the robot to verify the target operation, and generate an execution command. For example, the robot operation control device may transmit the generated or modified target operation to the control server 410 via an application program interface (API) of the control server 410. Moreover, the robot operation control device 400 may transmit the execution command for applying the target operation to the robot 420 to the control server 410 via a Representational State Transfer (REST) application program interface of the control server 410.The second control server 415 may be a control server that automatically performs scheduling so that the execution command is transmitted or processed. For example, the second control server 415 may generate an execution command identical to the execution command transmitted from the robot operation control device 400 to the control server 410 and transmit the generated execution command to the control server 410. Like the robot operation control device 400, the second control server 415 may transmit the execution command for applying the target operation to the robot 420 to the control server 410 via the REST application program interface of the control server 410. In this regard, the second control server 415 may represent, as a control server different from the control server 410, a control server that generates and transmits the execution command and performs the scheduling for the execution command. In summary, the control server 410 may receive, via the execution command (i.e., a manual command) by an input of a user received from the robot operation control device 400 or a predetermined method and the execution command (i.e., an automatic command) received via the schedule received from the second control server 415, the execution command from at least one of the robot operation control device 400 and the second control server 415.The control server 410 may transmit the execution command to the robot 420 after processing the execution command (e.g., security validation or scheduling) based on the target operation received from the robot operation control device 400. For example, the control server 410 may perform the security validation on at least one module mounted on the robot 420 based on the receipt of the target operation. The control server 410 may store the received target operation in memory based on a case where the security validation for the at least one module mounted on the robot 420 has been passed. An example of the target operation stored in the memory will be described in detail later with reference to FIG. 11. The control server 410 may ensure the security of the security validation data for the at least one module related to the target operation received from the robot operation control device 400 until the target operation has been applied to the robot 420.The control server 410 may process the execution command by referencing a queue based on receiving the execution command for applying the target operation to the robot 420 from at least one of the robot operation control device 400 and the second control server 415. The control server 410 may prevent a risk of the robot 420 for executing multiple users or multiple developers simultaneously in a pre-emptive manner by separately controlling one or more different commands such as the execution command.The control server 410 may process the execution command with reference to the queue, and then the control server 410 may transmit the target operation and the execution command related to the target operation to the robot 420 via a transmission filter module. For example, the control server 410 transmits the received execution command when a corresponding ID is present in the memory as a result of the search for an ID of the target operation by the transmission filter module. The control server 410 may transmit the target operation and the execution command related to the target operation that has passed through the transmission filter module to the robot 420 via an open source solution in the form of middleware such as kaffka (Apache Kaffka). However, a method for the control server 410 to transmit the target operation and the execution command related to the target operation to the robot 420 is not limited thereto. For example, the control server 410 may transmit the target operation and the execution command related to the target operation that the transmission filter module has passed to the robot 420 via the open source solution in the form of middleware such as general purpose remote procedure call (gRP), REST API, web real time communication (WebRTC), and message queuing telemetry transport (MQTT).In response to receiving the execution command processed by the control server 410, the robot 420 may apply the target operation to the at least one module (e.g., shown in FIG. 4 as TTS, LED, ARM, GUI, TON, and NAVI) mounted on the robot 420. For example, the robot 420 may obtain the results of interpreting the execution command and apply the target operation to the at least one module via an execution engine. The robot 420 interprets the execution command and transmits a command to which the target operation can be applied via a robot operating system (ROS) channel of each module via the execution machine. The execution engine of the robot 420 may transmit a command to drive the module together with a set drive option to each module with reference to time values (StartAb and Duration) of the module included in the target operation. A detailed method for the robot 420 to apply the target operation to the at least one module will be described later with reference to FIG. 10 below.FIG. 5 is a diagram showing a screen provided to a user in a robot operation control device according to an embodiment of the present disclosure.A robot operation control device (e.g., robot operation control device 100 in FIG. 1 ) may provide a screen 501 to a user or a developer via an output device (e.g., output device 140 in FIG. 1 ). Moreover, the robot operation control device may obtain the content of the modification of a target operation applied to a robot as user data via an input device (e.g., the input device 130 in FIG. 1 ) by the user or the developer. The robot operation control device may generate or modify the target operation based on the obtained user data. Therefore, the role of a plurality of graphical objects included on the screen 501 provided to the user or the developer to obtain the user data will be described in detail below.A graphical object 503 may represent an object related to the target operation from among a plurality of operations classified based on the control of at least one module included in the robot. For example, the target operation may include modules of the robot for which drive times and drive options are set. That is, the target operation may include information in which the module of the robot and drive-related information (e.g., the drive time and the drive option) are paired with each other.A graphical object 505 may represent an object related to a drive time of at least one module included in the target operation among the plurality of operations classified based on the drive of the at least one module included in the robot. For example, the robot operation control device may set the driving time for the at least one module included in the robot as a time line based on an input of the user. The robot operation control device may provide the user or the developer with the driving time for which the time line is set via the screen 501 for each module.A graphical object 507 may represent an object that relates to an operation list that includes the target operation. For example, the robot operation control device may store the target operation as behavior No. 1 in the operation list as shown in FIG. 5. Moreover, the robot operation control device may store operations (e.g., behavior No. 2 and behavior No. 3) different from the target operation (i.e., behavior No. 1) in the operation list. Based on a case where the operation other than the target operation is added to the operation list including the target operation, the robot operation control device may set a drive time of at least one module included in the other operation and set a drive option of the at least one module included in the other operation. Moreover, the robot operation control device may provide information on operations each corresponding to a plurality of execution commands via an execution wait list based on a case where there are the plurality of execution commands to apply the operation different from the target operation to the robot.A graphical object 509 may represent an object related to a drive option of the at least one module for which the drive time is set. For example, as shown in FIG. 5, a right arm module drive option (ARM_RECHTS) among robot-mounted modules may include an option {"angle": 30, "speed": 2.4, "direction": upward}.A graphical object 511 may represent an object related to obtaining raw data of the target operation based on a first input of the user. The robot operation control device may output the raw data of the target operation as a graphical object 513 based on the input of the user to the graphical object 511 as the first input. The content of the graphical object 513 that is ambiguous in FIG. 5 may represent raw data that indicates elements such as direction, speed, angle, start position, and duration for the arms, as well as data related to sound and text as examples. A specific example will be described with reference to FIG. 6.The graphical object 513 may represent an object related to the raw data of the target operation. The raw data may represent the source code of the information in which the module of the robot and the drive-related information (e.g., the drive time and the drive option) are paired with each other. Based on a case where at least one of a first element related to the driving time or a second element related to the driving options included in the raw data, or any combination thereof is modified, the robot operation control device may transfer the content of the modification (e.g., the modification of at least one of the first element or the second element) to the target operation. That is, when the user modifies the target operation, the robot operation control device may modify the raw data of the target operation. On the other hand, when the user modifies the raw data of the target operation, the robot operation control device may modify the target operation according to the modified raw data.A graphical object 515 may represent an object related to storing the target operation based on a second input of the user. For example, the robot operation control device may verify whether the raw data of the target operation satisfies a data standard based on receiving the second input of the user, and transmit the target operation to a control server when the raw data satisfies the data standard, thereby storing the raw data of the target operation as well as the target operation in the control server. As a reference, the robot operation control device may provide a predetermined alarm to the user via the screen 501 based on a case where the raw data does not conform to the data standard.A graphical object 517 may represent an object related to replacing the target operation with an alternative operation based on a third input of the user. Based on the third input of the user, the robot operation control device may receive the alternative operation corresponding to the target operation among the operations stored in the control server and stored at a timing closest to a timing at which the third input is received from the control server via a communication device, and the robot operation control device may replace the target operation with the alternative operation.A graphical object 519 may represent a graphical object corresponding to the robot to which the target operation is applied. That is, the robot operation control device can provide the user with a verification process of the target operation via the screen 501 by simulating the graphic object 519 corresponding to the robot.A graphical object 521 may represent an object related to transmitting the execution command based on a fourth input of the user. For example, based on the fourth input of the user, the robot operation control device may transmit the execution command to the control server so that the target operation transmitted to the control server is applied to the robot.By providing the screen 501 to the user, the robot operation control device can change the target operation in a relatively short time with an intuitive user interface configuration (UI), and provide the user with consistent quality of development. By providing the screen 501 to the user, the robot operation control device can also provide a function of virtual identification without risk of accident that occurs during a robot-related test with the provision of a virtual simulation. Moreover, the robot operation control device can provide the screen 501 on which intuitive modification by a third party is possible even when the third party is not the developer responsible for the robot. Moreover, the robot operation control device can quickly pass the modified target operation to the robot without requiring a firmware update or distribution with only the modification of the target operation.FIG. 6 is a diagram showing an example of raw data of a target operation in a robot operation control device according to an embodiment of the present disclosure.A robot operation control device (e.g., the robot operation control device 100 in FIG. 1 ) may use a JavaScript Object Notation (JSON) data set in units of at least one module included in a robot as raw data 600 of a target operation.For example, as shown in FIG. 6, the raw data 600 may store a drive time and a drive option for each module of a left arm, a right arm, a sound module, and a text-to-speech module in the JSON data type. For example, the propulsion option may include a control direction option (e.g., up or down), a speed option (e.g., 0.1 m / s), an angle option (e.g., 30 degrees), a start time option (StartAb), a duration option (i.e., which may indicate the propulsion time of the corresponding module), a retry option, a storage path option, and a text option. Specifically, the start timing with respect to a start timing may indicate a start timing at which a corresponding module of a start point performs an operation in the target operation. That is, the start time may represent a relative start time at which the corresponding module relatively performs the operation compared to a start time of the entire target operation. Accordingly, the robot (e.g., robot 320 in FIG. 3 ) may apply the target operation to each module asynchronously at the start time of the entire target operation based on a certain start point of each module.FIG. 7 is a flowchart illustrating a method for a control server to perform security validation for a module of a robot in a robot operation control system according to an embodiment of the present disclosure.In S 701, a control server (e.g., the control server 310 in FIG. 3 ) may receive a target operation from a robot operation control device (e.g., the robot operation control device 300 in FIG. 3 ).In S 703, the control server may determine whether the received target operation uses a drive system including a servo motor for driving at least one module. The control server may store the target operation in a memory based on a case where the received target operation does not use the drive system.In S 705, the control server may obtain a threshold value related to the safety validation based on a case where the received target operation uses the driving system, and perform the safety validation by comparing the obtained threshold value with a driving option included in the received target operation. Based on a case where the received target operation is applied to at least one module included in a robot, the safety validation may include at least one of a validation of a position of the module, validation of a speed of the module, validation of a torque of the module, or validation of an acceleration of the module, or any combination thereof.In S 707 to S 713, the control server may perform validation as to whether each of the driving options included in the target operation is within a preset safety specification range (i.e., the obtained threshold). As a reference, the control server may obtain threshold values for the respective modules of each driving option included in the target operation. For example, when the servomotor corresponding to a right arm module has a drive range of 30 to 300 degrees to prevent physical collision with an external appearance of the robot, the control server may obtain a threshold value in a range of 30 to 300 degrees for the right arm module.In S 715, the control server may process that the security validation has failed based on a case where at least one of the driving options included in the received target operation is greater than the obtained threshold. In addition, the control server may transmit an alarm provision command to the robot operation control device so that the robot operation control device provides a predetermined alarm to a user.In S 717, based on a case where the security validation for the at least one module mounted on the robot is passed, the target operation may be stored in the memory of the control server.FIG. 8 is a flowchart showing a method for a control server for processing an execution command in a robot operation control system according to an embodiment of the present disclosure.In S 810, a control server (e.g., the control server 310 in FIG. 3 ) may receive a target operation from a robot operation control device (e.g., the robot operation control device 300 in FIG. 3 ).In S 820, the control server may determine whether an operation related to a previous execution command is applied to a robot (e.g., robot 320 in FIG. 3 ). For example, in S 830, the control server may insert an execution command into a queue based on a case where the operation related to the previous execution command is applied to the robot. A detailed description of the queue is described later in Fig. 9 below.In S 840, the control server may process the execution command related to the target operation based on a case where the operation related to the previous execution command is not applied to the robot. Specifically, in S 850, the control server may process a first inserted execution command among the queued execution commands based on a case where the previous execution command is ended. Next, the control server may process the execution command concerning the target operation when no execution command is inserted into the queue. Specifically, the control server may process the execution command related to the target operation based on a case where the robot is in an execution standby state because there is no execution command to be applied to the robot.FIG. 9 is a diagram showing a method for a control server to insert an execution command into a queue in a robot operation control system according to an embodiment of the present disclosure.A control server (e.g., control server 310 in FIG. 3 ) may process an execution command with respect to a queue 900 based on receiving the execution command to apply a target operation to a robot (e.g., robot 320 in FIG. 3 ). The queue 900 serves to solve a simultaneity problem when execution commands are transmitted from a plurality of users, for example, and may represent a queue that adopts a first-in first-out (FIFO) scheme.For example, since no command is executed in the robot at a time when the control server receives a command "A" 910, the control server can immediately execute the command "A" 910. At times when the control server receives a command "B" 920 and a command "C" 930, since the command "A" 910 is executed by the robot, the control server may insert the command "B" 920 and the command "C" 930 into the queue 900.The control server may execute the command "B" 920, which is the oldest inserted command among the commands waiting in the queue 900 after the execution of the command "A" 910 in the robot is completed. In addition, the control server may execute the command "C" 930, which is the oldest command inserted in the queue 900 after the execution of the command "B" 920 in the robot is finished. Since no command is executed in the robot at a time when the control server receives a command "D" 940, the control server can immediately execute the command "D" 940.FIG. 10 is a flowchart illustrating a method for a robot to apply a target operation to a module in a robot operation control system according to an embodiment of the present disclosure.In S 1001, a robot (e.g., robot 320 in FIG. 3 ) may receive a target operation from a control server (e.g., control server 310 in FIG. 3 ). For example, the robot may receive the target operation concerning an execution command from the control server together with the execution command.In S 1003 and S 1005, after interpreting the target operation or the execution command, the robot may obtain information related to the module. For example, the robot may obtain information about at least one module included in the target operation based on the target operation related to the execution command and perform a check whether the at least one module is a module mounted on the robot.In S 1007 and S 1009, the robot may set a second timing after a first timing of obtaining the information regarding the at least one module included in the target operation, based on a case where the at least one module included in the target operation is the module mounted on the robot, and transmit a standby command for setting the at least one module in a standby mode from the first timing to the second timing to the at least one module.In S 1011, the robot may apply the target operation to the at least one module from the second time point. That is, from the second time point, the robot may perform the target operation via driving the module by applying the target operation to the at least one module mounted on the robot.In S 1013, the robot may set a third timing different from the first timing and the second timing and indicating an end timing of the target operation, and determine whether a timing for applying the target operation is after the third timing. In this context, the robot may end the target operation applied to the at least one module when the time for applying the target operation is after the third time.In S 1015, the robot may determine whether a state of the robot is a final state and end the target operation applied to the at least one module. For example, the robot may obtain the state of the robot applying the target operation based on a predetermined crack from the second time point. When the state of the robot is not the final state, the robot may determine whether the third time has exceeded each predetermined stroke. In this connection, when the state of the robot is not the final state and the time for applying the target operation is after the third time, the robot may end the target operation applied to the at least one module. In contrast, when the state of the robot is the final state, the robot can immediately end the target operation applied to the at least one module without determining whether the time for applying the target operation is after the third time.In summary, the robot may end the target operation applied to the at least one module based on at least one of the states, whether the state of the robot is the final state, or whether a time point at which the state of the robot is obtained is after the third time point, or any combination thereof.FIG. 11 is a diagram illustrating operations stored in the memory of a control server in a robot operation control system according to an embodiment of the present disclosure.A control server (e.g., control server 310 in FIG. 3 ) may store a plurality of operations in memory, such as a list 1110. For example, the list 1110 may include the plurality of operations, and each of the plurality of operations that can be distinguished from each other by IDs may include name, config, error status, user, creation date, and change date. The name may indicate names of the operations. Herein, for convenience of description, the behavior No. 1 is mainly given as a target operation. The config may indicate the content of the raw data (e.g., JSON text content) of the target operation. For purposes of illustration, the config is described as, but is not limited to, JSON text content, but may also indicate extensible markup language (XML) text or comma-separated values (CSV) text content. The fault status may indicate the content of a fault that has occurred when each of the plurality of operations that can be distinguished from each other by the IDs was stored in memory. The user may indicate information about a user who has changed the operation for each of the plurality of operations that can be distinguished from each other by the IDs. The creation date and the change date may respectively indicate an initial creation date and a change date for each of the plurality of operations that can be distinguished from each other by the IDs.FIG. 12 is a diagram illustrating a computer system related to a robot, a robot operation control device, a system including the same, and a robot operation control method according to an embodiment of the present disclosure.Referring to FIG. 12, a computer system 1000 related to a robot may include a robot operation control device, a system including the same, and a robot operation control method at least a processor 1100, a memory 1300, a user interface input device 1400, a user interface output device 1500, a memory (i.e., a memory) 1600, and a network interface 1700 connected via 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 types of volatile or nonvolatile storage media. For example, the memory 1300 may include a ROM (Read Only Memory) 1310 and a RAM (Random Access Memory) 1320.As such, the operations of the method or algorithm described in connection with the embodiments disclosed herein may be embodied directly in hardware or a software module executed by the processor 1100, or in a combination thereof. The software module may reside on a storage medium (i.e., the memory 1300 and / or the storage 1600) such as a RAM, a flash memory, a ROM, an EPROM, an EEPROM, a register, a hard disk, a removable disk, and a CD-ROM.The example storage medium is coupled to processor 1100, which may read and write information to the storage medium. In another method, the storage medium may be integrated into the processor 1100. The processor and the storage medium may be incorporated in an application specific integrated circuit (ASIC). The ASIC may be located in the user terminal. In another method, the processor and the storage medium may be accommodated as individual components in the user terminal.The above description is merely for illustrating the technical idea of the embodiments of the present disclosure, and various modifications and changes can be made by those skilled in the art without departing from the essential features of the embodiments of the present disclosure.The embodiments described above may be implemented as hardware components, software components, and / or combinations of the hardware components and the software components. The apparatus, method, and components described in the embodiments may be implemented with, for example, a general purpose computer or a special purpose computer, 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 other device capable of executing and responding to instructions. A processing device may execute an operating system (OS) and a software application running on the operating system. The processing device may also access, store, manipulate, process, and generate data in response to execution of the software. For convenience in description, a single processing device is assumed, but those skilled in the art will understand that the processing device may include a plurality of processing elements and / or a plurality of types of processing elements. For example, the processing device may include a plurality of processors or a processor and a controller. Moreover, the processing device may include other processing configurations, such as parallel processors.The software may comprise a computer program, code, instructions, or combinations of one or more of these elements and may configure the processing device to operate as desired, or may control the processing device independently or collectively. The software and / or data may be embodied permanently or temporarily on any type of machine, component, physical device, virtual device, computer storage medium or device, or transmitted signal wave to be interpreted by the processing device or to provide the instructions or data. The software may be distributed on networked computer systems and stored or executed in a distributed manner. The software and data may be stored on a computer readable medium.The method according to the embodiments may be implemented in the form of program instructions that may be executed via various computer means and recorded on the computer readable medium. The computer readable medium may include a program instruction, a data file, a data structure, and the like, alone or in combination. The program instruction recorded on the medium may be specially designed and configured for the embodiment or may be known and usable by those familiar with computer software. Examples of the computer readable recording medium include magnetic media such as a hard disk, a flexible disk, and a magnetic tape, optical media such as a CD-ROM and a DVD, magneto-optical media such as a floppy disk, and hardware devices specifically configured to store and execute the program instructions such as a ROM, a RAM, and a flash memory. Examples of program instructions include high-level language code executable by the computer by an interpreter or the like, and machine language code generated by a compiler.The hardware device described above may be configured to cooperate with one or more software modules to perform the operation of the embodiments, and vice versa.As described above, although the embodiments have been described with limited drawings, those skilled in the art can apply various technical modifications and variations based on these drawings. For example, even if the described techniques are performed in a different order than in the described method and / or the components of the described system, structure, device, circuit and the like are coupled or combined with each other in a different form than in the described method or other components are replaced or replaced with equivalents, corresponding results may be achieved.Therefore, other implementations, other embodiments, and equivalents of the claims are within the scope of the following claims.Therefore, the embodiments disclosed in the present disclosure are not intended to limit the technical idea of the present disclosure but to illustrate the present disclosure, and the scope of the technical idea of the present disclosure is not limited by the embodiments. The scope of the present disclosure should be construed as being covered by the scope of the appended claims, and all technical ideas that fall within the scope of the claims should be construed as being included in the scope of the present disclosure.The effects of the robot, the device for controlling the operation of the robot, the system including the same, and the method for controlling the operation of the robot according to embodiments of the present disclosure will be described as follows.According to at least one of the embodiments of the present disclosure, when the target operation related to the operation of the robot is generated and modified, the operation of the robot may be controlled based on units of the operation for each module mounted on the robot instead of being controlled in units of the source code, and the convenience and the efficiency may be provided to the developer or the user in the process of controlling the operation of the robot.Moreover, according to at least one of the embodiments of the present disclosure, when the target operation for the graphical object corresponding to the robot is verified, the need for the test robot can be minimized and the development cost of the robot can be reduced, the safety of the test robot can be guaranteed against the simultaneous execution of a plurality of developers or users, and the user-friendliness can be provided to the developers or the users.Moreover, according to at least one of the embodiments of the present disclosure, when performing the security validation of the module mounted on the robot, the stability of the test robot as well as the speed of transmitting the modification request of the user to the robot in real time can be ensured via the association of the machine interpreting the operation data and the operation instead of the code transmitted to the robot after the creation of the source code.Moreover, various effects directly or indirectly identified by the present document may be provided.Although embodiments of the present disclosure have been described above with reference to exemplary embodiments and the accompanying drawings, the embodiments of the present disclosure are not limited thereto, but may be variously modified and changed by those skilled in the art to which the present disclosure pertains without departing from the spirit and scope of the present disclosure claimed in the following claims.REPRESENTATIVE FIGURE: FIG. 4501 Screen 503 ~ 521 Graphical object 600 Raw data 910 Command 'A' 920 Command 'B' 930 Command 'C' 940 Command 'D'
Claims
An apparatus for controlling an operation of a robot, the apparatus comprising: a memory configured to store computer-executable instructions; a communication device configured to be in communication with a control server; and at least one processor configured to access the memory and execute the instructions to cause the at least one processor to: set a driving time of at least one module included in a target operation among a plurality of operations classified based on the driving of at least one module included in the robot; set a driving option of the at least one module whose driving time is set; verify the target operation by simulating a graphical object corresponding to the robot; transmitting the verified target operation to the control server via the communication device, so that the verified target operation is applied to the robot.The apparatus of claim 1, wherein the at least one processor is configured to: set a driving time of at least one module included in the other operation; and set a driving option of the at least one module included in the other operation based on a case where an operation other than the target operation is added to an operation list including the target operation.The apparatus of claim 1, wherein the at least one processor is configured to provide information about an operation corresponding to each of the plurality of execution commands, based on a case where there are a plurality of execution commands for applying an operation other than the target operation to the robot.The apparatus of claim 1, wherein the at least one processor is configured to: obtain raw data of the target operation based on a first input of a user; and reflect the modification to the target operation based on a case where a first element related to the driving time or a second element related to the driving option included in the raw data is modified.The apparatus of claim 1, wherein the at least one processor is configured to: verify, based on a second input of a user, whether raw data of the target operation meets a data standard; transmit, via the communication device, the target operation to the control server based on a case where the raw data meets the data standard; and provide a predetermined alert to the user based on a case where the raw data does not meet the data standard.The apparatus of claim 1, wherein the at least one processor is configured to: receive, based on a third input of a user, an alternative operation corresponding to the target operation and stored at a time closest to a time at which the third input among the operations stored in the control server is received from the control server via the communication device; and replace the target operation with the alternative operation.The apparatus of claim 1, wherein the at least one processor is configured to transmit an execution command to the control server such that the target operation transmitted to the control server is applied to the robot based on a fourth input of a user.A system for controlling an operation of a robot, the system comprising: a robot operation control device; a control server; and the robot configured to receive a command from the control server; wherein the robot operation control device is configured to: set a driving time of at least one module included in a target operation among a plurality of operations classified based on the driving of at least one module included in the robot; set a driving option of the at least one module whose driving time is set; verify the target operation by simulating a graphic object corresponding to the robot; and transmit the verified target operation to the control server, so that the verified target operation is applied to the robot; and wherein the control server is configured to transmit an execution command to the robot based on the verified target operation received from the robot operation control device.The system of claim 8, wherein: the control server is configured to: execute a security validation for the at least one module attached to the robot based on receiving the verified target operation from the robot operation control device; and process the execution command by referencing a queue based on receiving the execution command to apply the target operation to the robot; and wherein the robot is configured to apply the target operation to the at least one module in response to the processed execution command.The system of claim 9, wherein based on a case where the received target operation is applied to the at least one module included in the robot, the safety validation comprises a validation of a position of the module, validation of a speed of the module, validation of a torque of the module, or validation of an acceleration of the module.The system of claim 9, wherein the control server is configured to: determine whether the received target operation uses a drive system comprising a servo motor associated with the drive of the at least one module; obtain a threshold associated with the security validation based on a case where the received target operation uses the drive system; and perform the security validation by comparing the obtained threshold with the drive option included in the received target operation.The system according to claim 11, wherein the control server is configured to transmit an alarm provision command to the robot operation control device such that the robot operation control device provides a predetermined alarm to a user based on a case in which at least one of the driving options included in the received target operation is greater than the obtained threshold value.The system of claim 9, wherein the control server is configured to store the target operation in the memory of the control server based on a case where the security validation for the at least one module mounted on the robot is passed.The system according to claim 9, wherein the control server is configured to: insert the execution command into the queue based on a case where an operation of a previous execution command preceding the execution command is applied to the robot; and process the first-inserted execution command among a plurality of execution commands inserted into the queue based on a case where the previous execution command is finished.The system of claim 9, wherein the control server is configured to process the execution command based on a case where the robot is in an execution standby state.A robot, wherein the robot is configured to: obtain information about at least one module included in a target operation related to an execution command received from a control server; and execute a check whether the at least one module is a module mounted on the robot.The robot according to claim 16, wherein the robot is configured to: set a second time point after a first time point for obtaining the information about the at least one module included in the target operation based on a case where the at least one module included in the target operation is the module mounted on the robot; transmit a standby command for setting the at least one module in a standby mode from the first time point to the second time point to the at least one module; and apply the target operation to the at least one module from the second time point.The robot according to claim 17, wherein the robot is configured to: set a third time point different from the first time point and the second time point and indicating an end time point of the target operation; obtain a state of the robot that applies the target operation based on a predetermined clock from the second time point; and end the target operation applied to the at least one module based on whether the state of the robot is an end state or whether a time point for obtaining the state of the robot is after the third time point.A method for controlling an operation of a robot, the method comprising: setting, by a robot operation control device, a driving time of at least one module included in a target operation among a plurality of operations classified based on a driving of at least one module included in the robot; setting, by the robot operation control device, a driving option of the at least one module whose driving time is set; verifying, by the robot operation control device, the target operation by simulating a graphic object corresponding to the robot; transmitting, by the robot operation control device, the verified target operation to a control server so that the verified target operation is applied to the robot; and transmitting, by the control server, an execution command to the robot based on the verified target operation received from the robot operation control device.The method of claim 19, further comprising: performing security validation for the at least one module attached to the robot based on receipt of the verified target operation from the robot operation control device by the control server; processing the execution command by referencing a queue based on receipt of the execution command to apply the target operation to the robot by the control server; and applying the target operation to the at least one module in response to the processed execution command by the robot.