Robot and robot control method
Patent Information
- Application Number
- JP2024000362
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2023-09-13
- Filing Date
- 2024-01-04
- Publication Date
- 2025-03-26
Smart Images

Figure 2025041495000001_ABST
Abstract
Description
[Technical field]
[0001] The present invention relates to a robot and a method for controlling a robot, and more particularly to a technique for controlling a robot based on a network connection state of the robot. [Background technology]
[0002] In controlling the robot, the control server can monitor the robot's on / offline status and grasp the real-time location through the robot's various sensor values. When the robot is online, the control server can control the robot and manually move the robot's location by checking the map.
[0003] However, a network interruption between the robot and the control server may result in an inability to grasp the current location or status of the robot, and may lead to a decrease in safety, as the robot cannot be controlled or monitored from the control server.
[0004] In addition, in a system that controls multiple robots, a network interruption between a robot and a control server can cause a robot that has not received an instruction to be placed in an infinite waiting state, which can lead to a decrease in productivity and efficiency. For example, if one robot is offline and stopped in a limited space, it may become impossible for other robots to move or it may cause great inconvenience to people walking around.
[0005] To solve these problems, it is necessary to develop technology that can execute evasive movement commands defined by mechanisms received from the control server in order to ensure the stability of the robot and complement service quality in a situation where the network between the robot and the control server is interrupted. Summary of the Invention [Problem to be solved by the invention]
[0006] An embodiment of the present invention aims to provide a robot and a method for controlling the robot that communicates with a control server based on a first communication protocol and a second communication protocol, is suitable for large-scale communication processing, is optimized for high throughput and real-time data processing, operates asynchronously to support two-way streams, compensates for the shortcomings of the general MQTT protocol, minimizes data loss, and prevents the robot from receiving erroneous commands.
[0007] In addition, an embodiment of the present invention aims to provide a robot and a robot control method that can perform exception scenarios for commands being executed by determining a network connection state at least twice based on a first communication protocol setting and a second communication protocol setting, thereby ensuring the safety and service quality of the robot.
[0008] In addition, an embodiment of the present invention aims to provide a robot and a method for controlling the robot, which controls the operation of the robot based on a network connection state determined by a network unit, and when the network connection state is restored from an offline state to an online state, synchronizes with a control server and automatically resumes the last command and / or task being performed.
[0009] The technical problems of the present invention are not limited to the technical problems mentioned above, and other technical problems not mentioned can be clearly understood by those skilled in the art from the following description. [Means for solving the problem]
[0010] A robot according to an embodiment of the present invention may include, in the robot, a communication unit that communicates with a control server based on a first communication protocol and a second communication protocol; a network unit that determines a network connection state between the communication unit and the control server based on a setting of the first communication protocol and a setting of the second communication protocol; and a control unit that controls operation of the robot based on the network connection state determined by the network unit.
[0011] In one embodiment, the communication unit receives a command set including a movement command, an effective time of the movement command, a unique identifier of the movement command, and whether offline movement is possible from the control server when a network connection state between the communication unit and the control server is online, compares a difference between a first time point at which the movement command is received and a second time point subsequent to the first time point with the effective time of the movement command to determine whether the effective time of the movement command is effective, and compares the unique identifier of the movement command with an identifier included in a storage unit of the robot and corresponding to a command different from the movement command to determine whether the unique identifier of the movement command is unique.
[0012] In one embodiment, the communication unit can receive the command set from the control server based on the first communication protocol, and transmit the command set to the control unit based on whether the effective time of the movement command is valid and the unique identifier of the movement command is unique, and when the control unit receives the command set from the communication unit, it can control the operation of the robot based on the movement command included in the command set.
[0013] In one embodiment, the robot may further include a Long-Term Evolution (LTE) router that communicates with the network unit, and the network unit may acquire Reference Signal Received Power (RSRP) and Reference Signal Received Quality (RSRQ) of the LTE router based on a case where the communication unit receives a command set from the control server and the command set is transmitted to the control unit, and may determine a network connection state between the communication unit and the control server as an offline state based on a case where the RSRP is equal to or less than a first threshold and the RSRQ is equal to or less than a second threshold different from the first threshold.
[0014] In one embodiment, the network unit determines the network connection state between the communication unit and the control server as an online state based on whether the RSRP exceeds the first threshold or the RSRQ exceeds the second threshold, and if the network connection state between the communication unit and the control server is determined to be an online state, the network unit can re-determine the network connection state between the communication unit and the control server based on the setting of the first communication protocol and the setting of the second communication protocol.
[0015] In one embodiment, the network unit transmits arbitrary dummy data to the control server at predetermined time intervals based on the first communication protocol, increments count data at a predetermined unit interval based on a case where the transmission time of the dummy data exceeds a first target threshold, and redetermines a network connection state between the communication unit and the control server as an offline state based on a case where the count data exceeds a second target threshold.
[0016] In one embodiment, the network unit transmits arbitrary dummy data to the control server at predetermined time intervals based on the second communication protocol, and can redetermine the network connection state between the communication unit and the control server as an offline state based on a case in which the dummy data cannot be transmitted to the control server.
[0017] In one embodiment, the control unit stores collected data acquired by the robot from a target time point when a network connection state between the communication unit and the control server is determined to be an offline state, skips the movement command if the robot is in a stopped state from the target time point, and controls the operation of the robot depending on whether or not the offline movement is possible based on the case where the movement command is skipped.
[0018] In one embodiment, the control unit may control the operation of the robot so that the robot can move to a predetermined waiting location when the value of the offline movement possibility indicates that the robot is capable of moving, and may control the operation of the robot at the position of the robot when the value of the offline movement possibility indicates that the robot is not capable of moving.
[0019] In one embodiment, the control unit may transmit to the communication unit collected data acquired and stored by the robot from a first point in time when a network connection status between the communication unit and the control server is determined to be an offline state to a second point in time when the network connection status between the communication unit and the control server is changed from an offline state to an online state, and the communication unit may request synchronization between the control server and the robot by transmitting the stored collected data to the control server.
[0020] A method for controlling a robot according to an embodiment of the present invention may include an operation of communicating with a control server based on a first communication protocol and a second communication protocol; an operation of determining a network connection state between a communication unit and the control server based on a setting of the first communication protocol and a setting of the second communication protocol; and an operation of controlling an operation of the robot based on the network connection state determined by the network unit.
[0021] In one embodiment, the operation of communicating with the control server may include an operation of receiving a command set from the control server, the command set including a movement command, a valid time of the movement command, a unique identifier of the movement command, and whether offline movement is possible, based on a case where a network connection state between the communication unit and the control server is online; an operation of comparing a difference between a first time point at which the movement command is received and a second time point subsequent to the first time point with the valid time of the movement command to determine whether the valid time of the movement command is valid; and an operation of comparing the unique identifier of the movement command with an identifier included in a storage unit of the robot and corresponding to a command different from the movement command, to determine whether the unique identifier of the movement command is unique.
[0022] In one embodiment, the operation of receiving the instruction set may include an operation of receiving the instruction set from the control server based on the first communication protocol; an operation of transmitting the instruction set to a control unit based on whether the effective time of the movement command is valid and the unique identifier of the movement command is unique; and an operation of controlling the movement of the robot based on the movement command included in the instruction set.
[0023] In one embodiment, the operation of determining the network connection state may include an operation of acquiring RSRP (Reference Signal Received Power) and RSRQ (Reference Signal Received Quality) of an LTE router based on a case where the communication unit receives an instruction set from the control server and the instruction set is transmitted to a control unit; and an operation of determining the network connection state between the communication unit and the control server as an offline state based on a case where the RSRP is equal to or less than a first threshold and the RSRQ is equal to or less than a second threshold different from the first threshold.
[0024] In one embodiment, the robot control method may further include an operation of determining a network connection state between the communication unit and the control server as an online state based on whether the RSRP exceeds the first threshold or the RSRQ exceeds the second threshold; and an operation of re-determining the network connection state between the communication unit and the control server based on a setting of the first communication protocol and a setting of the second communication protocol when the network connection state between the communication unit and the control server is determined to be an online state.
[0025] In one embodiment, the operation of redetermining the network connection status may include an operation of transmitting arbitrary dummy data to the control server at predetermined time intervals based on the first communication protocol; an operation of incrementing count data at a predetermined unit interval based on a case where the transmission time of the dummy data exceeds a first target threshold; and an operation of redetermining the network connection status between the communication unit and the control server as an offline state based on a case where the count data exceeds a second target threshold.
[0026] In one embodiment, the operation of redetermining the network connection status may include an operation of transmitting arbitrary dummy data to the control server at predetermined time intervals based on the second communication protocol; and an operation of redetermining the network connection status between the communication unit and the control server as an offline state based on a case where the dummy data cannot be transmitted to the control server.
[0027] In one embodiment, the method for controlling the robot may further include an operation of storing collected data acquired by the robot from a target time point when a network connection state between the communication unit and the control server is determined to be an offline state; an operation of skipping the movement command if the robot is in a stopped state from the target time point; and an operation of controlling an operation of the robot depending on whether or not the offline movement is possible based on a case where the movement command is skipped.
[0028] In one embodiment, the operation of controlling the movement of the robot may include an operation of controlling the movement of the robot so that the robot can move to a predetermined waiting location when the value of the offline movement possibility indicates that the robot is movable; and an operation of controlling the movement of the robot at the position of the robot when the value of the offline movement possibility indicates that the robot is not movable.
[0029] In one embodiment, the method for controlling the robot may further include an operation of transmitting collected data acquired and stored by the robot to the communication unit from a first time point when a network connection status between the communication unit and the control server is determined to be an offline state to a second time point when the network connection status between the communication unit and the control server is changed from an offline state to an online state; and an operation of requesting synchronization between the control server and the robot by transmitting the stored collected data to the control server. Effect of the Invention
[0030] The effects of the robot and the method for controlling the robot according to the present invention will be described below.
[0031] According to at least one embodiment of the present invention, by communicating with a control server based on a first communication protocol and a second communication protocol, it is suitable for large-scale communication processing, is optimized for high throughput and real-time data processing, and operates asynchronously to support two-way streaming, thereby compensating for the shortcomings of the general MQTT protocol, minimizing data loss, and preventing the robot from receiving erroneous commands.
[0032] In addition, according to at least one embodiment of the present invention, by determining the network connection state at least twice based on the setting of the first communication protocol and the setting of the second communication protocol, an exception scenario can be performed for the command being executed, thereby achieving the effect of ensuring the safety of the robot and the service quality.
[0033] In addition, according to at least one embodiment of the present invention, the operation of the robot is controlled based on the network connection state determined by the network unit, and when the network connection state is restored from an offline state to an online state, synchronization with the control server is performed, and the last command and / or task being performed can be automatically resumed.
[0034] In addition, various other effects can be provided that can be grasped directly or indirectly through this document. [Brief description of the drawings]
[0035] [Figure 1] FIG. 1 is a diagram showing a configuration of a robot according to an embodiment of the present invention. [Diagram 2] 4 is a flow chart illustrating a method for controlling a robot according to an embodiment of the present invention. [Diagram 3] FIG. 2 is a diagram showing communication between a robot and a control server according to one embodiment of the present invention. [Figure 4] 4 is a flow chart illustrating a method of transmitting a command set to a control unit in a robot according to an embodiment of the present invention. [Diagram 5] 4 is a flow chart illustrating a method for determining a network connection state in a robot according to an embodiment of the present invention. [Figure 6] 4 is a flowchart illustrating a method for controlling a robot when a network connection state is an offline state in a robot according to an embodiment of the present invention. [Figure 7] 11 is a flowchart illustrating a method for requesting synchronization from a control server when a network connection state of a robot according to an embodiment of the present invention is changed from an offline state to an online state. [Figure 8] 1 is a diagram illustrating the features of RSRP and RSRQ of an LTE router included in a robot according to an embodiment of the present invention. FIG. [Figure 9] FIG. 1 illustrates a computing system for a robot or a method for controlling a robot according to an embodiment of the present invention.
[0036] In connection with the description of the drawings, the same or similar reference numbers may be used for the same or similar components. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0037] Some embodiments of the present invention will be described in detail below with reference to the drawings. When attaching reference numerals to components in each drawing, attention should be paid to using the same numerals to the same components as much as possible, even if they are displayed in different drawings. In addition, when describing the embodiments of the present invention, if a detailed description of related known configurations or functions is deemed to hinder understanding of the embodiments of the present invention, the detailed description will be omitted. In particular, various embodiments of the present document will be described with reference to the accompanying drawings. However, this is not intended to limit the technology described in this document to a specific embodiment, and should be understood to include various modifications, equivalents, and / or alternatives of the embodiments of the present document. In connection with the description of the drawings, similar reference numerals may be used for similar components.
[0038] In describing components of the embodiments of the present invention, terms such as first, second, A, B, (a), and (b) may be used. Such terms are used to distinguish the components from other components, and do not limit the nature, order, or sequence of the components. In addition, unless otherwise defined, all terms used herein, including technical and scientific terms, have the same meaning as commonly understood by a person having ordinary skill in the art to which the present invention belongs. Terms similar to those defined in commonly used dictionaries should be interpreted as meanings consistent with the meanings they have in the context of the related art, and unless otherwise clearly defined in this application, they should not be interpreted in an idealized and overly formal sense. For example, expressions such as "first," "second," "primary," or "secondary" used in this document may modify various components regardless of order and / or importance, and are used only to distinguish one component from other components, and do not limit the components. For example, a first user device and a second user device may indicate different user devices regardless of order or importance. For example, a first component may be named a second component, and similarly, a second component may be named in place of the first component, without departing from the scope of the claims set forth herein.
[0039] In this document, the terms "have," "may have," "include," or "may include" indicate the presence of a given feature (e.g., a value, a function, an operation, or a component such as a module) and do not exclude the presence of additional features.
[0040] When a component (e.g., a first component) is referred to as being "operatively or communicatively coupled with / to" or "connected to" another component (e.g., a second component), it should be understood that the component may be directly coupled to the other component or may be coupled through another component (e.g., a third component). On the other hand, when a component (e.g., a first component) is referred to as being "directly coupled with" or "directly connected to" another component (e.g., a second component), it should be understood that there is no other component (e.g., a third component) between the component and the other component.
[0041] As used in this document, the expression "configured to" may be used alternatively with, for example, "suitable for," "having the capacity to," "designed to," "adapted to," "made to," or "capable of," depending on the context.
[0042] The term "configured to" does not necessarily mean "specifically designed to" hardware. Instead, depending on the context, the phrase "apparatus configured to" may mean that the apparatus is capable of performing, together with other apparatus or components. For example, the phrase "a processor configured to perform A, B, and C" may mean a dedicated processor (e.g., an embedded processor) for performing the operations, or a generic-purpose processor (e.g., a CPU or application processor) that can perform the operations by executing one or more software programs stored in a memory device. Terms used in this document are merely used to describe certain embodiments and may not be intended to limit the scope of other embodiments. A singular expression may include a plural expression unless the context clearly dictates otherwise. Terms used herein, including technical and scientific terms, may have the same meaning as commonly understood by a person of ordinary skill in the art described in this document. Among the terms used in this document, terms defined in a general dictionary may be interpreted as meanings identical or similar to those in the context of the relevant art, and unless expressly defined in this document, they are not interpreted as ideal and overly formal. In some cases, even if a term is defined in this document, it cannot be interpreted as excluding the embodiment of this document.
[0043] In this document, expressions such as "A or B," "at least one of A and / or B," or "one or more of A and / or B" may include all possible combinations of the items listed together. For example, "A or B," "at least one of A and B," or "at least one of A or B" may refer to all cases including (1) at least one A, (2) at least one B, or (3) both at least one A and at least one B. In addition, in describing components of the embodiments of the present invention, phrases 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, or C," and "at least one of A, B, C, or a combination thereof" may include any one of the items listed together in the phrase, or all possible combinations thereof. In particular, a phrase such as "at least one of A, B, C, or a combination thereof" may include A, B, or C, or a combination thereof, such as AB or ABC.
[0044] Hereinafter, an embodiment of the present invention will be described in detail with reference to FIGS.
[0045] FIG. 1 is a diagram showing the configuration of a robot according to an embodiment of the present invention.
[0046] The robot 100 according to an embodiment may include a processor 110, a memory 120 including an instruction code 122, a communication unit 130, a network unit 150, and a control unit 160. However, none of the components shown in the figures are essential components. The robot or the robot control system may be embodied with more components than those shown in the figures, or may be embodied with fewer components than those shown in the figures.
[0047] The robot 100 may be a robot device capable of moving by itself using wheels, etc., and may represent a robot capable of moving in at least one service space and performing a service action required in the service space. For example, a space requiring a cleaning service may be a space requiring cleaning such as a house or an office, and a space requiring a guidance service may be a space requiring guidance such as a sales agency or an airport, and is not limited thereto.
[0048] 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. The processor 110 may also perform various other data processing or calculations. The processor 110 controls the overall operation of the robot 100. The processor 110 may execute instructions 122 or commands stored in the memory 120 to perform a predetermined operation. The processor 110 may also control the operation of components included in the robot 100. For reference, the processor 110 may perform all operations performed by the robot 100. Therefore, in this specification, for convenience of explanation, the operations performed by the robot 100 will be mainly described as operations performed by the processor 110.
[0049] In addition, for convenience of explanation, the processor 110 is mainly explained as one processor in this specification, but is not limited thereto. For example, the robot 100 may include at least one or more processors. Each of the at least one or more processors can perform all operations related to the robot control operation.
[0050] The memory 120 may temporarily and / or permanently store various data and / or information required to control and / or drive the robot, For example, the memory 120 may store a movement command, an effective time of the movement command, a unique identifier of the movement command, an instruction set including whether or not offline movement is possible, and the like.
[0051] The communication unit 130 may communicate with an external device in a wired or wireless manner. The communication unit 130 communicates with a user terminal (not shown) and the control server 140. The communication unit 130 may communicate with the user terminal using a short-range communication method. For example, the communication unit 130 communicates with the user terminal via a Bluetooth or WiFi communication connection. The communication unit 130 may also communicate with the control server 140 using a long-range communication method. For example, the communication unit 130 communicates with an AP device via WiFi, and communicates with the control server 140 via a long-range communication network connected to the AP device.
[0052] The communication unit 130 may include a wireless communication module (e.g., a cellular communication module, a short-range wireless communication module, or a global navigation satellite system (GNSS) communication module) or a wired communication module (e.g., a local area network (LAN) communication module, or a power line communication module). The communication unit 130 may perform short-range communication, for example, using Bluetooth, Bluetooth Low Energy (BLE), Near Field Communication, Wi-Fi (WLAN), Zigbee, infrared Data Association (IrDA) communication, Wi-Fi Direct (WFD), ultra-wideband (UWB), Ant+ communication, etc. The communication unit 130 may perform long-range communication, for example, communicating with an external device via a legacy cellular network, a 5G network, a next-generation communication network, the Internet, or a computer network (e.g., a LAN or a WAN).
[0053] The communication unit 130 can establish communication with the user terminal, the robot 100, and the control server 140 under the control of the processor 110. In addition, the communication unit 130 transmits control signals and data to the user terminal, the robot 100, and the control server 140, or receives control signals and data from the user terminal, the robot 100, and the control server 140.
[0054] In particular, in this specification, the communication unit 130 may be described as a communication unit that communicates with the control server 140 based on a first communication protocol and a second communication protocol. For example, the first communication protocol may include a Kafka interface for a Pub-sub model, and the second communication protocol may include an RSocket interface for TCP byte stream transmission, which will be described in more detail in FIG. 5 below.
[0055] The network unit 150 may determine a network connection state between the communication unit 130 and the control server 140 based on the setting of the first communication protocol and the setting of the second communication protocol. For example, unlike the communication unit 130 that communicates with the control server 140, the network unit 150 may determine a network connection state between the communication unit 130 and the control server 140 and transmit a command for controlling the operation of the robot 100 to the processor 110 or the control unit 160 based on the determined network connection state. In addition, the network unit 150 may transmit the network connection state to at least one component included in the robot 100 based on the case where the network connection state is determined to be an offline state. This will be described in detail later with reference to FIG. 6.
[0056] The control unit 160 may control the operation of the robot 100 based on the network connection state determined by the network unit 150. In particular, the control unit 160 may execute software and control at least one other component (e.g., hardware or software component) connected to the processor 110. Therefore, in this specification, for convenience of explanation, the operation performed by the control unit 160 will be described as the same operation as the operation performed by the processor 110.
[0057] FIG. 2 is a flow chart illustrating a method for controlling a robot according to an embodiment of the present invention.
[0058] In operation 210, a communication unit (e.g., communication unit 130 in FIG. 1) may receive an instruction set from a control server (e.g., control server 140 in FIG. 1). For example, the communication unit may receive an instruction set including a movement command, an effective time of the movement command, a unique identifier of the movement command, and whether or not offline movement is possible, from the control server based on a case where a network connection state between the communication unit and the control server is an online state. This will be described in detail later with reference to FIG. 4.
[0059] In operation 220, the communication unit may transmit the instruction set to a control unit (e.g., the control unit 160 of FIG. 1). For example, the communication unit may transmit the instruction set to the control unit based on whether the validity time of the movement command is valid and the unique identifier of the movement command is unique. A method for determining the validity of the validity time and the uniqueness of the unique identifier will be described in more detail below in FIG. 4.
[0060] In operation 230, the network unit (e.g., the network unit 150 in FIG. 1) may primarily determine (or confirm) the network connection state. For example, the network unit may primarily determine the network connection state based on a characteristic value of an LTE router included in a robot (e.g., the robot 100 in FIG. 1) when the communication unit receives a command set from the control server and the command set is transmitted to the control unit.
[0061] In operation 235, the control unit may control the avoidance movement of the robot when the network connection state between the communication unit and the control server is an offline state. For example, the control unit may control the avoidance movement of the robot in an offline state based on the value of whether or not to move offline from the target point in time when the network connection state between the communication unit and the control server is determined to be an offline state. This will be described in detail later with reference to FIG. 6.
[0062] In operation 240, when the network connection state between the communication unit and the control server is an online state, the network unit may secondarily determine (or confirm) the network connection state. For example, when the network connection state between the communication unit and the control server is determined as an online state, the network unit may re-determine the network connection state between the communication unit and the control server based on the setting of the first communication protocol and the setting of the second communication protocol. This will be described in detail later with reference to FIG. 5.
[0063] In operation 245, when the network connection state between the communication unit and the control server is online, the communication unit may request synchronization from the control server. However, the present invention is not limited thereto, and when the network connection state between the communication unit and the control server is changed from offline to online, the communication unit may request synchronization from the control server. This will be described in detail later with reference to FIG. 7.
[0064] FIG. 3 is a diagram showing communication between a robot and a control server according to one embodiment of the present invention.
[0065] The robot 300 according to an embodiment may include a communication unit 310, a network unit 320, a control unit 330, a condition unit 340, a recovery unit 350, and an LTE router 360. For example, the communication unit 310, the network unit 320, and the control unit 330 may have the same configuration as the communication unit, the network unit, and the control unit described in FIG. 1. The condition unit 340 may determine an avoidance movement condition (e.g., an avoidance movement condition in an offline state) and transmit a command corresponding to the avoidance movement through the control unit 330 if the condition is met. The recovery unit 350 may transmit a request to the control unit 330 to perform state recovery between the robot 300 and the control server 370 when the network connection state between the communication unit 310 and the control server 370 is changed from an offline state to an online state (i.e., network restoration).
[0066] The communication unit 310 can transmit and receive status data (e.g., data including the status of the robot) and control data (e.g., data including control of the robot) to and from the control server 370 based on a first communication protocol and a second communication protocol.
[0067] The first communication protocol is a Kafka interface for a pub-sub model, and can support large-scale communication processing, real-time processing, stability, support for various communication patterns, and scalability. For example, the first communication protocol is a protocol suitable for large-scale communication processing, and can process several thousand or more connections. The first communication protocol is optimized for high throughput and real-time data processing. The first communication protocol ensures stable message delivery, supports patterns such as Publish-Subscribe, Queue, and Stream, and can configure a cluster to enhance scalability.
[0068] The second communication protocol is an RSocket interface for TCP byte stream transmission, and may have asynchronous nature, efficiency, flexibility, and stability in the communication process. For example, the second communication protocol operates asynchronously and supports bidirectional streams, and may have less overhead than HTTP / 1.1, HTTP / 2, and WebSocket. In addition, the second communication protocol may support various communication patterns such as Request-Response, Request-Stream, Channel, and Fire-and-Forget, and may reconnect a connection that is broken during communication, thereby enabling continuous communication without message loss.
[0069] FIG. 4 is a flowchart illustrating a method of transmitting a command set to a control unit in a robot according to an embodiment of the present invention.
[0070] In operation 410, the communication unit (e.g., the communication unit 130 in FIG. 1) may receive an instruction set from a control server (e.g., the control server 140 in FIG. 1) based on a first communication protocol. For example, the communication unit may receive an instruction set including a movement command, an effective time of the movement command, a unique identifier of the movement command, and whether or not offline movement is possible from the control server based on a case where a network connection state between the communication unit and the control server is an online state. In particular, the communication unit may receive the instruction set based on the first communication protocol for a Kafka interface running in the background of the robot.
[0071] In operation 420, the communication unit may determine the validity of the effective time. For example, the communication unit may compare the difference between a first time point at which the movement command is received and a second time point subsequent to the first time point with the effective time of the movement command to determine whether the effective time of the movement command is valid. Here, the second time point may indicate a time point at which it is determined whether the effective time of the movement command is valid. If the difference between the first time point and the second time point exceeds the effective time of the movement command, the control unit (e.g., the control unit 160 of FIG. 1) may determine that the effective time of the movement command is not valid and terminate. Alternatively, if the difference between the first time point and the second time point is less than or equal to the effective time of the movement command, the control unit may determine that the effective time of the movement command is valid.
[0072] In operation 430, the communication unit may determine the uniqueness of the unique identifier. For example, the communication unit may compare the unique identifier of the movement instruction with an identifier contained in the robot's storage unit that corresponds to an instruction different from the movement instruction to determine whether the unique identifier of the movement instruction is unique. If the unique identifier of the movement instruction is identical to at least one of the identifiers contained in the storage unit, the control unit may determine that the unique identifier of the movement instruction is not unique and terminate.
[0073] In operation 440, the communication unit may transmit the instruction set to the control unit based on whether the effective time of the movement instruction is valid and the unique identifier of the movement instruction is unique. Thereafter, when the control unit receives the instruction set from the communication unit, the control unit may control the operation of the robot based on the movement instruction included in the instruction set.
[0074] FIG. 5 is a flowchart illustrating a method for determining a network connection state in a robot according to an embodiment of the present invention.
[0075] In operation 511, the robot (e.g., the robot 100 in FIG. 1) may further include an LTE router that communicates with a network unit (e.g., the network unit 150 in FIG. 1). The network unit can acquire a Reference Signal Received Power (RSRP) and a Reference Signal Received Quality (RSRQ) from the LTE router. For example, the network unit can acquire the RSRP and the RSRQ of the LTE router based on a case where a communication unit (e.g., the communication unit 130 in FIG. 1) receives a command set from a control server (e.g., the control server 140 in FIG. 1) and the command set is transmitted to a control unit (e.g., the control unit 160 in FIG. 1).
[0076] In operations 513 and 515, the network unit may check whether the RSRP is equal to or less than a first threshold (e.g., -100 dBM) and the RSRQ is equal to or less than a second threshold (e.g., -20 dB) different from the first threshold. However, the first and second thresholds are not limited thereto because they are variable values depending on the settings of the components.
[0077] In operation 517, the network unit can determine whether the RSRP is less than or equal to a first threshold and the RSRQ is less than or equal to a second threshold different from the first threshold.
[0078] In operation 519, the network unit can determine the network connection state between the communication unit and the control server as offline based on the case where the RSRP is less than or equal to a first threshold and the RSRQ is less than or equal to a second threshold different from the first threshold.
[0079] In operation 521, the network unit may determine the network connection state between the communication unit and the control server as an online state based on whether the RSRP exceeds a first threshold or the RSRQ exceeds a second threshold. That is, operations 517 to 521 may include operations related to a primary determination of the network connection state between the communication unit and the control server. The network unit may more quickly determine the network connection state via the RSRP and RSRQ of the LTE router.
[0080] Thereafter, if the network connection status between the communication unit and the control server is determined to be an online state, the network unit can make a secondary decision to re-determine the network connection status between the communication unit and the control server based on the setting of the first communication protocol and the setting of the second communication protocol.
[0081] In operation 523, the network unit may transmit dummy data to the control server based on the first communication protocol. Thereafter, in operation 525, the network unit may increase the count data at a predetermined unit interval based on a case where the transmission time of the dummy data (e.g., illustrated as latency in FIG. 5) exceeds a first target threshold (e.g., illustrated as threshold in operation 525 of FIG. 5). In operation 527, the network unit may determine whether the count data (e.g., illustrated as count in FIG. 5) exceeds a second target threshold (e.g., illustrated as threshold in operation 527 of FIG. 5) based on a case where the transmission time of the derby data exceeds the first target threshold. In operation 533, the network unit may re-determine the network connection state between the communication unit and the control server as an offline state based on a case where the count data exceeds the second target threshold.
[0082] In operation 529, the network unit may transmit dummy data to the control server based on the second communication protocol. Here, the dummy data transmitted based on the first communication protocol and the dummy data transmitted based on the second communication protocol may be different data from each other. For example, the network unit may transmit any dummy data to the control server at predetermined time intervals based on the second communication protocol. In operation 531, the network unit may check whether the dummy data can be transmitted. In operation 533, the network unit may re-determine the network connection state between the communication unit and the control server as an offline state based on a case where the dummy data cannot be transmitted to the control server.
[0083] In operation 535, the network unit can transmit the re-determined network connection state to the control unit. The control unit can then perform a command (or mechanism) corresponding to an avoidance move based on the re-determined network connection state being an offline state.
[0084] FIG. 6 is a flow chart illustrating a method for controlling a robot when a network connection state of the robot according to an embodiment of the present invention is an offline state.
[0085] In operation 610, the control unit (e.g., the control unit 160 of FIG. 1) may check whether the network connection status between the communication unit (e.g., the communication unit 130 of FIG. 1) and the control server (e.g., the control server 140 of FIG. 1) is an offline state. For example, the control unit may transmit an offline check request to the network unit (e.g., the network unit 150 of FIG. 1). Then, the control unit may receive the determined network status from the network unit. The control unit may check the offline state based on the received network status. Here, if the network status is an online state, the control unit may continue to monitor since the communication between the control server and the communication unit operates normally.
[0086] In operation 620, the control unit may store the collected data in the storage unit. For example, the control unit may store the collected data acquired by the robot from a target time point when the network connection state between the communication unit and the control server is determined to be an offline state in the storage unit. As will be described later with reference to FIG. 7, the control unit may request synchronization with the control server by transmitting the collected data acquired from the target time point to the communication unit from a time point when the network connection state is changed to an online state.
[0087] In operation 630 and operation 640, the control unit may skip a movement command if the robot is in a stopped state from the target time point. Then, the control unit may control the operation of the robot depending on whether offline movement is possible or not, based on the case where the movement command is skipped.
[0088] In operation 650, the control unit may check whether offline movement is possible. For example, the control unit may check whether offline movement of the robot is possible based on the offline movement information received from the control server when the network connection state between the communication unit and the control server is online.
[0089] In operation 660, the control unit may control the operation of the robot at the robot's position when the value of the offline movement possibility indicates that the robot cannot move. That is, the control unit may control the robot to wait at the robot's current position when the value of the offline movement possibility indicates that the robot cannot move.
[0090] In operation 670, if the value of the offline movement possibility indicates that the robot is movable, the control unit can control the operation of the robot so that the robot can move to a predetermined waiting location. That is, the control unit can perform an instruction (or mechanism) corresponding to the avoidance movement of the robot by performing the operation included in operation 670.
[0091] FIG. 7 is a flowchart illustrating a method for requesting synchronization from a control server when a network connection state is changed from an offline state to an online state in a robot according to an embodiment of the present invention.
[0092] In operation 710, a control unit (e.g., control unit 160 in FIG. 1) may transmit collected data acquired by the mobile robot from the first time point to the second time point to the communication unit. That is, the control unit may transmit the collected data to the communication unit to perform synchronization for network recovery between the control server and the robot.
[0093] In operation 720, the communication unit (e.g., the communication unit 130 in FIG. 1) may request synchronization between the control server and the robot by transmitting the collected data to the control server based on the received collected data from the control unit.
[0094] FIG. 8 is a diagram illustrating features of RSRP and RSRQ of an LTE router included in a robot according to an embodiment of the present invention.
[0095] Referring to FIG. 8, the first table 810 includes a feature of RSRP (Reference Signal Received Power) of the LTE router. For example, the network unit (e.g., the network unit 150 of FIG. 1) may determine that the strength of the signal for checking the network connection status is strong when the RSRP is -80 dBm or more. The network unit may determine that the strength of the signal for checking the network connection status is somewhat strong when the RSRP is -80 dBm to -90 dBm. The network unit may determine that the strength of the signal for checking the network connection status is somewhat weak when the RSRP is -90 dBm to -100 dBm. Finally, the network unit may determine that the strength of the signal for checking the network connection status is not strong when the RSRP is -100 dBm or less.
[0096] The second table 820 includes the RSRQ (Reference Signal Received Quality) characteristic of the LTE router. For example, the network unit may determine that the signal strength for checking the network connection status is strong if the RSRQ is -10 dB or more. The network unit may determine that the signal strength for checking the network connection status is somewhat strong if the RSRQ is -10 dB to -15 dB. The network unit may determine that the signal strength for checking the network connection status is somewhat weak if the RSRQ is -15 dB to -20 dB. Finally, the network unit may determine that the signal strength for checking the network connection status is not strong if the RSRQ is -20 dB or less.
[0097] Therefore, the network unit can check whether the RSRP is equal to or less than a first threshold (e.g., -100 dBM) and the RSRQ is equal to or less than a second threshold (e.g., -20 dB) different from the first threshold. The network unit can determine the network connection state between the communication unit and the control server as an offline state (i.e., determine that the signal strength is weak) based on the case where the RSRP is equal to or less than the first threshold and the RSRQ is equal to or less than the second threshold different from the first threshold.
[0098] FIG. 9 illustrates a computing system relating to a robot or a method for controlling a robot according to an embodiment of the present invention.
[0099] Referring to FIG. 9, a computing system 1000 relating to a robot or a robot control method may include at least one processor 1100, memory 1300, a user interface input device 1400, a user interface output device 1500, storage 1600, and a network interface 1700, all connected via a bus 1200.
[0100] The processor 1100 may be a central processing unit (CPU) or a semiconductor device that executes processing on 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 non-volatile storage media. For example, the memory 1300 may include a read only memory (ROM) and a random access memory (RAM).
[0101] Thus, the steps of a method or algorithm described in connection with the embodiments disclosed herein may be embodied directly in hardware, in a software module executed by the processor 1100, or in a combination of the two. The software modules may reside in a storage medium (i.e., memory 1300 and / or storage 1600) such as RAM memory, flash memory, ROM memory, EPROM memory, EEPROM memory, registers, a hard disk, a removable disk, a CD-ROM, etc.
[0102] An exemplary storage medium may be coupled to the processor 1100 such that the processor 1100 can read information from and write information to the storage medium. Alternatively, the storage medium may be integral to the processor 1100. The processor and the storage medium may reside in an application specific integrated circuit (ASIC). The ASIC may reside in a user terminal. Alternatively, the processor and the storage medium may reside as discrete components in a user terminal.
[0103] The above description is merely an illustrative example of the technical concept of the present invention, and various modifications and variations can be made by those having ordinary knowledge in the technical field to which the present invention pertains without departing from the essential characteristics of the present invention.
[0104] The embodiments described above may be implemented using hardware components, software components, and / or a combination of hardware and software components. For example, the devices, methods, and components described in the embodiments may be implemented using 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. The processing device may execute an operating system (OS) and software applications that run on the operating system. The processing device may also access, store, manipulate, process, and generate data in response to the execution of software. For ease of understanding, the processing device may be described as being one in which one is used, but those skilled in the art will appreciate that the processing device may include multiple processing elements and / or multiple types of processing elements. For example, the processing device may include multiple processors or one processor and one controller. Other processing configurations are also possible, such as parallel processors.
[0105] The software may include a computer program, code, instructions, or a combination of one or more of these, which may configure or instruct the processing device to operate as desired, either individually or collectively. The software and / or data may be permanently or temporarily embodied in some 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 instructions or data to the processing device. The software may be distributed over network-coupled computer systems and stored or executed in a distributed manner. The software and data may be stored on a computer-readable recording medium.
[0106] The method according to the embodiment may be embodied in the form of program instructions that may be executed by various computer means and may be recorded on a computer readable medium. The computer readable medium may include, alone or in combination, program instructions, data files, data structures, and the like, and the program instructions recorded on the medium may be those specifically designed and constructed for the embodiment or may be those known and available to those skilled in the art of computer software. Examples of computer readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tapes, optical media such as CD-ROMs and DVDs, magneto-optical media such as floptical disks, and hardware devices specifically configured to store and execute program instructions, such as ROM, RAM, flash memory, and the like. Examples of program instructions include not only machine language codes such as those produced by a compiler, but also high-level language codes that can be executed by a computer using an interpreter, etc.
[0107] The hardware devices described above may be configured to operate as one or more software modules to perform the operations of the embodiments, and vice versa.
[0108] Although the embodiments have been described above with reference to the drawings, those skilled in the art may apply various technical modifications and variations based thereon. For example, the described techniques may be performed in a different order than described, and / or the components of the described systems, structures, devices, circuits, etc. may be combined or combined in a different manner than described, or may be counterbalanced or replaced by other components or equivalents, and still achieve suitable results.
[0109] Therefore, other implementations, embodiments, and equivalents of the claims are intended to be within the scope of the following claims.
[0110] Therefore, the embodiments disclosed in the present invention are for illustration purposes only and are not intended to limit the technical idea of the present invention, and the scope of the technical idea of the present invention is not limited by such embodiments. The scope of protection of the present invention should be interpreted according to the following claims, and all technical ideas within the scope equivalent thereto should be interpreted as being included in the scope of the present invention.
Claims
1. A robot, a communication unit that communicates with the control server based on the first communication protocol and the second communication protocol; a network unit that determines a network connection state between the communication unit and the control server based on a setting of the first communication protocol and a setting of the second communication protocol; A control unit that controls an operation of the robot based on the network connection state determined by the network unit. robot.
2. The communication unit is receiving a command set including a movement command, an effective time of the movement command, a unique identifier of the movement command, and whether or not offline movement is possible, from the control server when a network connection state between the communication unit and the control server is online; comparing a difference between a first time point when the movement command is received and a second time point subsequent to the first time point with an effective time of the movement command to determine whether the effective time of the movement command is effective; determining whether the unique identifier of the movement command is unique by comparing the unique identifier of the movement command with an identifier that is included in a storage unit of the robot and corresponds to a command different from the movement command; The robot according to claim 1.
3. The communication unit is receiving the instruction set from the control server based on the first communication protocol; transmit the command set to the control unit based on whether the effective time of the movement command is valid and the unique identifier of the movement command is unique; The control unit is When the command set is received from the communication unit, the robot is controlled in accordance with the movement command included in the command set. The robot according to claim 2.
4. The robot comprises: Further including an LTE (Long-Term Evolution) router that communicates with the network unit, The network unit includes: The communication unit receives a command set from the control server, and acquires a Reference Signal Received Power (RSRP) and a Reference Signal Received Quality (RSRQ) of the LTE router based on the case where the command set is transmitted to the control unit; determining a network connection state between the communication unit and the control server as an offline state based on a case where the RSRP is equal to or less than a first threshold and the RSRQ is equal to or less than a second threshold different from the first threshold; The robot according to claim 1.
5. The network unit includes: Determine a network connection state between the communication unit and the control server as an online state based on whether the RSRP exceeds the first threshold or the RSRQ exceeds the second threshold; when the network connection state between the communication unit and the control server is determined to be an online state, re-determining the network connection state between the communication unit and the control server based on the setting of the first communication protocol and the setting of the second communication protocol; The robot according to claim 4.
6. The network unit includes: Transmitting arbitrary dummy data to the control server at predetermined time intervals based on the first communication protocol; Incrementing count data by a predetermined unit interval based on whether a transmission time of the dummy data exceeds a first target threshold; re-determining a network connection state between the communication unit and the control server as an offline state based on the count data exceeding a second target threshold; The robot according to claim 5.
7. The network unit includes: transmitting arbitrary dummy data to the control server at predetermined time intervals based on the second communication protocol; re-determining a network connection state between the communication unit and the control server as an offline state based on a case where the dummy data cannot be transmitted to the control server; The robot according to claim 5.
8. The control unit is storing collected data acquired by the robot from a target time point when a network connection state between the communication unit and the control server is determined to be an offline state; If the robot is in a stopped state from the target time, the movement command is skipped; and controlling an operation of the robot according to whether the offline movement is possible or not, based on a case where the movement command is skipped. The robot according to claim 2.
9. The control unit is If the value of the offline movement possibility indicates that the robot is movable, the operation of the robot is controlled so that the robot can move to a predetermined waiting place; If the value of the offline movement possibility indicates that the robot cannot move, the movement of the robot is controlled at the position of the robot. The robot according to claim 8.
10. The control unit is transmitting collected data acquired and stored by the robot to the communication unit from a first time point when a network connection state between the communication unit and the control server is determined to be an offline state to a second time point when the network connection state between the communication unit and the control server is changed from the offline state to an online state; The communication unit is transmitting the stored collected data to the control server to request synchronization between the control server and the robot; The robot according to claim 1.
11. An operation of communicating with a control server based on a first communication protocol and a second communication protocol; determining a network connection state between a communication unit and a control server based on the setting of the first communication protocol and the setting of the second communication protocol; and controlling an operation of the robot based on the network connection state determined by the network unit. How to control a robot.
12. The operation of communicating with the control server includes: receiving a command set including a movement command, an effective time of the movement command, a unique identifier of the movement command, and whether or not offline movement is possible, from the control server when a network connection state between the communication unit and the control server is online; an operation of comparing a difference between a first time point when the movement command is received and a second time point subsequent to the first time point with a valid time of the movement command to determine whether the valid time of the movement command is valid; and comparing the unique identifier of the movement command with an identifier that is included in a storage unit of the robot and corresponds to a command different from the movement command, thereby determining whether the unique identifier of the movement command is unique. The method for controlling a robot according to claim 11.
13. The act of receiving the instruction set includes: receiving the instruction set from the control server according to the first communication protocol; transmitting the command set to a control unit based on whether a valid time of the movement command is valid and a unique identifier of the movement command is unique; and controlling a movement of the robot based on the movement command included in the command set. The method for controlling a robot according to claim 12.
14. The operation of determining the network connection state includes: The communication unit receives a command set from the control server, and acquires a reference signal received power (RSRP) and a reference signal received quality (RSRQ) of an LTE router based on the command set being transmitted to a control unit; and determining a network connection state between the communication unit and the control server as an offline state based on a case where the RSRP is equal to or less than a first threshold and the RSRQ is equal to or less than a second threshold different from the first threshold. The method for controlling a robot according to claim 11.
15. determining a network connection state between the communication unit and the control server as an online state based on whether the RSRP exceeds the first threshold or the RSRQ exceeds the second threshold; When the network connection state between the communication unit and the control server is determined to be an online state, the method further includes an operation of re-determining the network connection state between the communication unit and the control server based on the setting of the first communication protocol and the setting of the second communication protocol. A method for controlling a robot according to claim 14.
16. The operation of re-determining the network connection state includes: transmitting arbitrary dummy data to the control server at predetermined time intervals based on the first communication protocol; Incrementing count data by a predetermined unit interval when the transmission time of the dummy data exceeds a first target threshold; and re-determining a network connection state between the communication unit and the control server as an offline state based on the count data exceeding a second target threshold. A method for controlling a robot according to claim 15.
17. The operation of re-determining the network connection state includes: an operation of transmitting arbitrary dummy data to the control server at predetermined time intervals based on the second communication protocol; and re-determining a network connection state between the communication unit and the control server as an offline state based on a case where the dummy data cannot be transmitted to the control server. A method for controlling a robot according to claim 15.
18. storing collected data acquired by the robot from a target time point when a network connection state between the communication unit and the control server is determined to be an offline state; skipping the movement command if the robot is in a stopped state from the target time point; and controlling an operation of the robot according to whether the offline movement is possible or not, based on a case where the movement command is skipped. The method for controlling a robot according to claim 12.
19. The operation of controlling the operation of the robot includes: If the value of the offline movement possibility indicates that the robot is movable, controlling the operation of the robot so that the robot can move to a predetermined waiting location; and if the value of the offline movement possibility indicates that the robot cannot move, controlling the movement of the robot at the position of the robot. The method for controlling a robot according to claim 18.
20. transmitting collected data acquired and stored by the robot to the communication unit from a first time point when a network connection state between the communication unit and the control server is determined to be an offline state to a second time point when the network connection state between the communication unit and the control server is changed from the offline state to an online state; and transmitting the stored collected data to the control server to request synchronization between the control server and the robot. The method for controlling a robot according to claim 11.