Robot control device and its control method
The robot control device optimizes one-way navigation by determining target regions and adjusting speed and direction based on entry scores and obstacle density, addressing the limitations of existing technologies in navigating narrow spaces and dynamic environments.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- HYUNDAI MOTOR CO LTD
- Filing Date
- 2025-05-29
- Publication Date
- 2026-07-01
AI Technical Summary
Existing robot control technologies lack the ability to efficiently and safely navigate narrow spaces or environments requiring one-way autonomous running, failing to account for user-specific requirements and dynamic obstacles.
A robot control device and method that determines a target region based on entry scores, utilizing map data, direction vectors, and obstacle density to optimize the robot's path, adjusting speed and direction dynamically to ensure safe and efficient one-way travel.
Enables efficient, safe, and reliable one-way autonomous navigation in diverse environments by dynamically adjusting the robot's path based on real-time data, avoiding obstacles and ensuring compliance with user-defined directions.
Smart Images

Figure 2026109499000001_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to a robot control device and a control method thereof, and more particularly to a technology for controlling a robot based on running data of the robot in a one-way running area.
Background Art
[0002] Technologies related to the autonomous running of robots have been continuously developed to help robots run in various environments. In particular, there are technologies that utilize map data to set paths along which robots can run and efficiently manage the running direction and path. In the prior art, map data of robots has been utilized for specific purposes such as improving accuracy and cleaning, but there is a lack of data utilization schemes necessary to implement one-way autonomous running in narrow spaces or specialized running functions that reflect user requirements.
[0003] For example, existing map generation technologies cannot support efficient and safe running in space-constrained situations. There is no function to reflect the running direction information of the robot in the map data and provide an optimized path. The prior art focuses on specific purposes (e.g., cleaning, etc.) and cannot provide diverse and reliable running services that reflect user requirements.
[0004] As the environments in which robots are utilized become increasingly complex and diverse, there is a need for technologies that can operate efficiently in environments where narrow spaces or one-way autonomous running are required. Exemplarily, in narrow corridors or roads where only one-way running is possible, it is difficult for robots to perform efficient running in the existing manner. Also, there is a need for technical solutions that can provide a reliable running function in a specific environment according to user requirements.
[0005] To solve such problems, it is necessary to develop a technology that provides an optimal one-way autonomous running function by utilizing data generated while the robot is running and sensing data.
Prior Art Documents
[0006] [Patent Document 1] Japanese Patent Publication No. 2022-128579 [Overview of the project] [Problems that the invention aims to solve]
[0007] The present invention has been made in view of the above-mentioned conventional problems, and the object of the present invention is to provide a robot control device having a one-way travel function and a control method thereof. [Means for solving the problem]
[0008] A robot control device according to one aspect of the present invention, made to achieve the above objective, comprises a memory storing computer-executable instructions, and a processor that accesses the memory and executes the instructions, wherein the processor determines a target region to which the robot can move in a predetermined direction on a map including a region of interest to which the robot can move, determines the robot's driving path based on a comparison of an entry score determined at the time the robot needs to move to the target region with a predetermined reference score, and performs control of the robot based on the driving path.
[0009] The processor determines the target area on the map via the coordinate information based on the coordinate information received from the server, receives a direction vector from the server indicating the movement of the robot in the target area based on the predetermined direction and the coordinate information, receives a reference score from the server based on the reception of the direction vector, and the target area may include a polygonal region formed based on the coordinate information. The processor receives from the server a reference speed which is an acceptable speed for the robot in the target area and a predetermined overall path relating to the robot's movement in the area of interest, and can determine a path vector predicted by the robot's movement in the target area from the overall path. The processor can determine subpaths, which are the robot's movement paths within the target area, based on the overall path and the target area; obtain at least one unit path by dividing the subpaths into predetermined lengths; determine the unit vectors for each of the at least one unit path; and determine the path vector by summing each of the at least one unit vectors. The processor may determine a path included in the target area from among the overall paths as the subpath, determine a first point which is the entry point of the subpath in the target area and a second point which is the exit point of the subpath, and determine the path vector via the direction vector of the first point and the direction vector of the second point based on the predetermined length being the same as the length of the subpath. The processor may determine a first score based on the similarity between the path vector and the direction vector, a second score indicating the density of the target region based on the size of the target region and the objects contained within the target region, and a third score based on the reference speed and predicted speed information expected when the robot passes through the target region. The processor may, when the object is identified as a dynamic obstacle in the target area, determine the obstruction area occupied by the object in the target area and determine the second score based on the ratio of the obstruction area to the reference area, which is the area of the target area. The processor may determine the entry score based on the first score, the second score, and the third score, and determine the entire route as the travel route based on the fact that the entry score is less than the reference score. The processor may obtain a first weight, a second weight, and a third weight from a path prediction model trained to output weights to be applied to the entry score, apply the first weight to the first score, apply the second weight to the second score, apply the third weight to the third score, and determine the entry score based on the first score, the second score, and the third score to which the weights have been applied. The processor may determine the target area as an area where the robot cannot move based on whether the entry score is equal to or greater than the reference score, and may re-determine the robot's travel path based on the area obtained by excluding the target area from the area of interest.
[0010] A control method for a robot control device equipped with a computer according to one aspect of the present invention, made to achieve the above objective, comprises the steps of: determining a target region to which the robot can move in a predetermined direction on a map including a region of interest to which the robot can move; determining the driving path of the robot based on a comparison of an entry score determined at the time when the robot needs to move to the target region with a predetermined reference score; and performing control of the robot based on the driving path.
[0011] The steps for controlling the robot include: determining the target area on the map via the coordinate information based on the coordinate information received from the server; receiving a direction vector from the server that requires the robot to move in the target area based on the predetermined direction and the coordinate information; and receiving a reference score from the server based on the reception of the direction vector, wherein the target area may include a polygonal region formed based on the coordinate information. The steps of controlling the robot may include receiving from the server a reference speed which is an acceptable speed for the robot in the target area and a predetermined overall path relating to the robot's movement in the area of interest, and determining a path vector predicted by the robot's movement in the target area from the overall path. The steps for controlling the robot may include: determining a subpath which is the robot's movement path in the target area based on the overall path and the target area; obtaining at least one unit path by dividing the subpath into predetermined lengths; determining each unit vector of the at least one unit path; and determining the path vector by summing each of the at least one unit vectors. The steps for performing the control of the robot may include: determining a path included in the target area from among the total paths as the subpath; determining a first point which is the entry point of the subpath in the target area and a second point which is the exit point of the subpath; and determining the path vector via the direction vector of the first point and the direction vector of the second point, based on the predetermined length being the same as the length of the subpath. The steps for controlling the robot may include: determining a first score based on the similarity between the path vector and the direction vector; determining a second score indicating the density of the target area based on the size of the target area and the objects contained within the target area; and determining a third score based on the reference speed and predicted speed information expected when the robot passes through the target area. The steps of controlling the robot may include, when the object is identified as a dynamic obstacle in the target area, determining the obstacle area occupied by the object in the target area, and determining the second score based on the ratio of the obstacle area to the reference area, which is the area of the target area. The steps of controlling the robot may include determining the entry score based on the first score, the second score, and the third score, and determining the entire route as the travel route based on the fact that the entry score is less than the reference score. The steps of performing the control of the robot may include: obtaining a first weight, a second weight, and a third weight from a path prediction model that has been trained to output weights to be applied to the entry score; applying the first weight to the first score; applying the second weight to the second score; applying the third weight to the third score; and determining the entry score based on the first score, the second score, and the third score to which the weights have been applied. The steps of controlling the robot may include determining the target area as an area where the robot cannot move, based on the fact that the entry score is equal to or greater than the reference score, and redetermining the robot's travel path based on the area obtained by excluding the target area from the area of interest. [Effects of the Invention]
[0012] The effects of the robot control device and control method according to the present invention will be described.
[0013] According to the present invention, by determining a target area and determining a running route of a robot based on a comparison between an entry score and a reference score, it is possible to overcome the limitations of the passive route setting method and achieve the effects of being efficient, safe, and highly reliable in various environments.
[0014] In addition, various effects directly or indirectly understood through this specification are provided.
Brief Description of the Drawings
[0015] [Figure 1] It is a block diagram of a robot control device according to an embodiment of the present invention. [Figure 2] It is a flowchart for explaining a robot control method according to an embodiment of the present invention. [Figure 3] It is a block diagram of a configuration included in a processor in a robot control device according to an embodiment of the present invention. [Figure 4] It is a diagram showing an example of a target area. [Figure 5] It is a diagram for explaining a method of setting a running route of a robot in a robot control device according to an embodiment of the present invention. [Figure 6] It is a diagram showing an example of a path vector and a direction vector in a robot control device according to an embodiment of the present invention. [Figure 7] It is a flowchart for explaining a robot control method in a robot control device according to an embodiment of the present invention. [Figure 8] It is a diagram showing a computer system related to a robot control device or a robot control method according to an embodiment of the present invention.
Modes for Carrying Out the Invention
[0016] Hereinafter, specific examples of modes for carrying out the present invention will be described in detail with reference to the drawings.
[0017] When assigning reference numerals to components in each drawing, it should be noted that, whenever possible, identical components should have the same reference numeral, even if they appear in other drawings. Furthermore, when describing embodiments of the present invention, if a specific description of a related known configuration or function is deemed to obscure the understanding of the embodiments of the present invention, such detailed description will be omitted. In particular, various embodiments of this specification are described with reference to the drawings. However, this should not be understood as an attempt to limit the technology described herein to any particular embodiment, but rather as including various modifications, equivalents, and / or alternatives to embodiments of the present invention. With regard to the description of the drawings, similar reference numerals should be used for similar components.
[0018] In describing the components of embodiments of the present invention, terms such as First, Second, A, B, (a), (b), etc., are used. Such terms are used solely to distinguish a component from other components, and do not limit the nature, order, or sequence of the component in question. Furthermore, unless otherwise defined, all terms used herein, including technical or scientific terms, have the same meaning as those generally understood by a person of ordinary skill in the art to which the present invention pertains. Terms as defined in commonly used dictionaries should be interpreted as having the meaning consistent with their meaning in the context of the relevant art, and should not be interpreted as ideal or overly formal unless explicitly defined herein. For example, expressions such as "First," "Second," "First," or "Second" used herein can modify a variety of components regardless of order and / or importance, and are used solely to distinguish one component from others, without limiting the component in question. For example, the First User Equipment and the Second User Equipment refer to different user equipment, regardless of order or importance. For example, without exceeding the scope of rights described herein, the first component may be named the second component, and similarly, the second component may be named in place of the first component.
[0019] In this specification, expressions such as “having,” “may have,” “include,” or “may include” indicate the existence of the relevant feature (e.g., numerical values, functions, operations, or components such as parts), and do not exclude the existence of additional features.
[0020] When it is said that one component (e.g., component 1) is "operally or communicatively coupled with / to" or "connected to" another component (e.g., component 2), it must be understood that component 1 is directly coupled to the other component or connected via another component (e.g., component 3). On the other hand, when it is said that one component (e.g., component 1) is "directly coupled" or "directly connected" to another component (e.g., component 2), it must be understood that there is no other component (e.g., component 3) between component 1 and component 2.
[0021] As used herein, the expression "configured to" can be used, depending on the context, as equivalent to, for example, "suitable for," "having the capacity to," "designed to," "adapted to," "made to," or "capable of."
[0022] The term "configured (or set up) to..." does not necessarily mean only when the hardware is "specifically designed to." Instead, in some contexts, the expression "device configured to..." means that the device "can..." together with other devices or components. For example, the phrase "processor configured (or set up) to perform A, B, and C" means a dedicated processor (e.g., an embedded processor) for performing the operations in question, or a generic-purpose processor (e.g., a CPU or application processor) that performs the operations in question by executing one or more software programs stored in a memory device. The terms used herein are used solely to describe specific embodiments and are not intended to limit the scope of other embodiments. Singular expressions include plural expressions unless the context clearly indicates otherwise. Terms used herein, including technical or scientific terms, have the same meanings as those generally understood by a person of ordinary skill in the art described herein. Terms used herein that are defined in general dictionaries shall be interpreted to have the same or similar meaning as they have in the context of the relevant technology, and shall not be interpreted in an ideal or overly formal sense unless expressly defined herein. Where applicable, terms defined herein shall not be interpreted in a way that excludes embodiments of the invention.
[0023] In this specification, expressions such as “A or B,” “at least one of A and / or B,” or “one or more of A and / or B” 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” all refer to cases where (1) at least one A is included, (2) at least one B is included, or (3) at least one A and at least one B are included. Also, when describing the components of embodiments of the present invention, each of the 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, and C,” “at least one of A, B, or C,” and “at least one of A, B, C, or any combination thereof” includes any one of the items listed together in the applicable phrase, or any possible combination thereof. In particular, phrases such as "at least one of A, B, C, or any combination thereof" include A, B, C, or combinations thereof such as AB or ABC.
[0024] Embodiments of the present invention will be specifically described below with reference to Figures 1 to 8.
[0025] Figure 1 is a block diagram of a robot control device according to one embodiment of the present invention.
[0026] The robot control device 100 according to this embodiment includes a processor 110, a memory 120 containing instruction words 122, and a communication unit 130.
[0027] The robot control device 100 is a device that determines the robot's travel path.
[0028] The robot control device 100 performs path determination based on map data and score data in order to set and control the robot's autonomous travel path. The robot control device 100 identifies the region of interest and the target region in the map data and sets a path so that the robot moves in a specific direction. The robot control device 100 compares the entry score and the reference score when the robot enters the target region and dynamically determines the robot's travel path.
[0029] The robot control device 100 receives coordinate information and direction vectors of the target area from the server, sets sub-paths in the global path based on this information, and generates a path vector by dividing the unit path. The robot control device 100 also calculates a score based on the similarity between the path vector and the direction vector, the density of obstacles in the target area, and the reference speed and predicted speed. The robot control device 100 determines whether the robot can move or sets an alternative path based on an entry score obtained by applying weighted values to each score.
[0030] The robot control device 100 calculates the density by calculating the ratio of the obstruction area to the reference area, especially when dynamic obstacles exist within the target area. Through this, the robot control device 100 enables intelligent travel path generation and control based on environmental data and real-time information, supporting stable and efficient robot operation in diverse environments.
[0031] The processor 110 executes software to control at least one other component (e.g., hardware or software component) connected to the processor 110. The processor 110 also performs a variety of other data processing or calculations. For example, the processor 110 stores regions of interest, target regions, entry scores, reference scores, etc., in the memory 120.
[0032] For reference, the processor 110 performs all the operations performed by the robot control device 100. Therefore, for the sake of explanation, this specification will primarily describe the operations performed by the robot control device 100 as being the operations performed by the processor 110. Also, for the sake of explanation, this specification will primarily describe the processor 110 as a single processor, but will not be limited to this. For example, the robot control device 100 may include a processor. Each processor can perform all operations related to robot control operations.
[0033] Memory 120 temporarily and / or permanently stores various data and / or information required to perform robot control operations. For example, memory 120 stores regions of interest, target regions, entry scores, reference scores, and so on.
[0034] The communication unit 130 assists in performing communication between the robot control device 100 and the server 140. For example, the communication unit 130 includes one or more components that enable communication between the robot control device 100 and the server 140. For example, the communication unit 130 includes a short-range wireless communication unit, a microphone, etc. Here, short-range communication technologies include, but are not limited to, wireless LAN (Wi-Fi), Bluetooth®, Zigbee®, WFD (Wi-Fi Direct), UWB (ultra-wideband), infrared communication (IrDA: Infrared Data Association), BLE (Bluetooth® Low Energy), and NFC (Near Field Communication).
[0035] Figure 2 is a flowchart illustrating a robot control method according to one embodiment of the present invention.
[0036] In step S210, the processor according to this embodiment (e.g., processor 110 in Figure 1) determines a target area in which the robot can move in a predetermined direction, using a map that includes a region of interest to which the robot can move.
[0037] For example, a region of interest refers to a specific portion of the overall map in which a robot can move, and is the area selected for the robot to analyze or utilize data related to its mobility. The region of interest is the area that contains environmental data to support the robot's movement and operation, and provides the range that serves as the initial baseline for evaluating mobility on the map or setting a path.
[0038] The target region refers to a specific area within the region of interest where the robot can move in only one direction. The target region is an area where the robot must set its travel path or determine its travel direction according to a predetermined direction, and is defined to improve the robot's travel efficiency and safety. The target region is defined in polygonal form and is realized based on additional travel data such as direction vectors and velocity information.
[0039] In step S220, the processor determines the robot's driving path based on a comparison between the entry score, which is determined when the robot needs to move into the target area, and a predetermined reference score.
[0040] The point at which movement to the target area is required refers to the point at which the robot needs to perform a specific task or move along a specific path. The aforementioned point is defined as the point at which the robot must approach the target area from its current position or begin unidirectional movement. The aforementioned point is dynamically determined by the robot's movement status, environmental conditions, and work requirements.
[0041] The entry score is a quantitative index calculated to evaluate whether a robot is suitable for entering a target area. The entry score is calculated based on various factors such as the robot's movement path, speed, obstacle density, and similarity to the direction of travel within the target area, and is used to determine the possibility of safe and efficient entry into the target area.
[0042] The baseline score is a critical value used to determine whether the robot can enter the target area, and represents a pre-set quantitative index. The baseline score is set to reflect the robot's locomotion stability and environmental requirements, and by comparing it with the entry score, the robot can determine whether or not it is possible to enter the target area.
[0043] The travel path refers to the route the robot must take, encompassing the overall movement plan, including approach to the target area and movement before and after entering the target area. The travel path is dynamically set based on a comparison between the entry score and the reference score, and is designed to ensure the robot reaches its destination safely and efficiently.
[0044] In step S230, the processor performs control of the robot based on the travel path.
[0045] The processor controls the robot's speed based on its travel path. For example, if the robot detects a dynamic obstacle in the target area or must pass through an area with a high density of obstacles, it dynamically reduces the robot's speed by comparing the reference speed with the expected speed. Conversely, the processor increases the robot's speed in areas with low density or areas without obstacles on the path, optimizing the overall work time.
[0046] The processor dynamically controls the robot's direction of movement based on the travel path and direction vectors set within the target area. In particular, in areas where unidirectional movement is required, the processor adjusts the steering angle so that the robot moves along a path similar to the direction vector, preventing unnecessary changes of direction within the target area. Through this, the processor reduces the risk of the robot deviating from its path or colliding with an object when the robot moves in narrow corridors or complex environments.
[0047] The processor generates avoidance paths in real time and corrects the robot's path when it detects dynamic or static obstacles on its travel route. For example, the processor analyzes the area of obstacles and the density of obstacles within the target area and readjusts sub-paths based on this analysis. Through this, the robot can move safely while avoiding obstacles and maintaining the unidirectional characteristics of the target area.
[0048] The processor compares the entry score with a baseline score and, if it determines that the robot cannot enter the target area, it dynamically calculates a new travel path. In this process, the processor explores other target areas within the area of interest and generates new sub-paths to control the robot's movement. Path replanning helps the robot achieve its goals without interruption in the event of environmental changes or the occurrence of unexpected obstacles.
[0049] The processor controls the robot to perform specific tasks (e.g., carrying objects, cleaning, data collection) as it moves along its designated path. For example, the processor precisely determines the task location when the robot reaches a target area and adjusts its speed, direction, stopping points, etc., to perform the pre-configured task.
[0050] Figure 3 is a block diagram of the components included in the processor of a robot control device according to one embodiment of the present invention.
[0051] Figure 3 is a block diagram showing the main configuration and operation flow of a processor 110 according to one embodiment of the present invention. The processor 110 performs the functions of generating, collecting, processing, and determining the data necessary in the process of setting and controlling the robot's travel path based on map data that includes areas where one-way and / or one-way traffic is required.
[0052] The data generator 310 generates area data that requires one-way movement. For example, the data generator 310 identifies a target area based on the area of interest in the map data and extracts and generates area data that the robot can move in only one direction. The data generator 310 transmits the initial data necessary for determining the robot's travel path to the data collector 320.
[0053] The data collector 320 collects various data related to the robot's movement. For example, the data collector 320 includes a whole-area path acquirer and an environmental data acquirer. Specifically, the data collector 320 acquires the entire path the robot can travel (i.e., the whole-area path) and collects basic data to set the robot's optimal direction of movement. The data collector 320 collects environmental data acquired by the robot through sensors and other data sources while it is moving. The collected environmental data includes the location of obstacles, density information within the area, speed information, etc. The data collector 320 transmits the whole-area path and environmental data to the data processor 330.
[0054] The data processor 330 processes the collected data to determine the robot's ability to enter the area. For example, the data processor 330 includes a path similarity determiner, a density determiner, and a speed calculator. Specifically, the data processor 330 calculates the similarity between the directionality of the entire path and the unidirectional travel direction vectors (i.e., direction vectors) of the target area. Through this, the data processor 330 determines whether the robot's travel direction is similar to a set direction in the target area. The data processor 330 determines the density by comparing the area of obstacles in the target area with a reference area. The data processor 330 evaluates the speed difference by comparing the reference speed in the target area with the robot's expected travel speed. The data processor 330 generates quantitative data such as path similarity, density, and speed and transmits it to the area passage determination unit 340.
[0055] The area passage determination unit 340 determines whether the robot can pass through the target area based on the processed data. The area passage determination unit 340 calculates an entry score using a mathematical formula based on the processed data (i.e., path similarity, density, and speed). The formula will be described in detail in Figure 7 below. The area passage determination unit 340 compares the calculated entry score with a predetermined reference score to determine whether the robot can enter the target area.
[0056] The region passage determination unit 340 re-determines the robot's travel path if the entry score is equal to or greater than the reference score. For example, based on the entry score being equal to or greater than the reference score, the region passage determination unit 340 determines the target region as a region where the robot cannot move. The region passage determination unit 340 then re-determines the robot's travel path based on the region of interest excluding the target region. An explanation of regions where the robot cannot move will be given later in Figure 5 below.
[0057] The area passage determination unit 340 sets the robot's travel path as the full-area path if the entry score is less than the reference score. A detailed explanation of this will be given later in Figure 7 below.
[0058] Figure 4 shows an example of a target area.
[0059] Figure 4 shows the structure of the region of interest and the target region, as well as information about the respective regions. The overall map shown in Figure 4 is defined as the region of interest to which the robot can move, and the region of interest includes the first target region 410 and the second target region 420.
[0060] The region of interest is set within a specific area of the overall map where the robot can move, in order to determine the robot's travel path and whether or not it is possible to travel there. The region of interest is generated based on information received from a server (e.g., server 140 in Figure 1). The target area refers to a specific area within the region of interest where the robot must travel in one direction.
[0061] For example, the first target region 410 has the structure shown in Figure 4 and is a region where the robot must move while rotating in one direction. For example, the second target region 420 is a region composed of straight lines and is set up so that the robot moves in only one direction.
[0062] The target region includes a polygonal region formed based on coordinate information. Specifically, the information of the target region includes coordinate information and direction vectors.
[0063] Coordinate information refers to the coordinate information for each vertex (Point) of the polygon that forms the boundary of the target area. The processor generates the precise position and shape of the target area through this coordinate information. Direction vectors are vectors generated in the target area relative to the current map coordinate system. Direction vectors indicate the direction in which the robot can travel within that area.
[0064] For example, the first target area 410 includes a directional vector that the robot must rotate to travel, and the second target area 420 includes a directional vector for linear movement. Each target area includes a reference score. The reference score is a value pre-calculated (or determined) by the server and is used to evaluate whether the robot can enter the target area.
[0065] Figure 5 is a diagram illustrating a method for setting the travel path of a robot in a robot control device according to one embodiment of the present invention.
[0066] Figure 5 shows the process by which a processor according to one embodiment of the present invention (e.g., processor 110 in Figure 1) determines that it is impossible for the robot to enter the target area, sets the target area as a no-entry area (i.e., Keepout), and re-determines a new travel path.
[0067] The processor calculates an entry score for the target area and determines that the area is inaccessible by comparing the entry score with a predetermined baseline score. For example, the processor determines that the area is inaccessible if the entry score is greater than or equal to the baseline score. Illustratively, the entry score is calculated to be greater than the baseline score if the area has a high density of obstacles or low directional vector and path similarity.
[0068] The processor sets areas that it determines are inaccessible as no-go zones. For example, a no-go zone is an area within the target region that is set so that the robot cannot enter, an area that is not considered when re-determining the robot's travel path, and is the entire target region. The target region is visually divided by the region of interest.
[0069] The processor generates a new travel path based on the remaining area after excluding the target area designated as a no-entry zone from the region of interest. The new travel path is calculated to ensure the robot reaches its destination safely and efficiently, providing an optimized path while avoiding obstacles. For example, if an existing path is determined to be impassable, the robot will move via a single path that bypasses the target area.
[0070] Figure 6 shows an example of a path vector and direction vector in a robot control device according to one embodiment of the present invention.
[0071] Figure 6 shows the process by which a processor according to one embodiment of the present invention (e.g., processor 110 in Figure 1) sets up subpaths within the target region 630 and determines the path vector.
[0072] The processor sets the movement path of the robot 620 within the target area 630 and determines the path vector based on this. Based on the overall path and the target area 630, the processor determines the subpaths that the robot 620 must travel within the target area 630.
[0073] The processor receives from the server (e.g., server 140 in Figure 1) a reference speed, which is an acceptable speed for the robot 620 in the target region 630, and a predetermined overall path for the robot 620's movement in the region of interest 610.
[0074] Subpaths are set based on the shape and direction vectors of the target area 630 (e.g., arrows within the target area 630 in Figure 6) and calculated to ensure that the robot 620 can travel efficiently and safely.
[0075] The processor determines a path vector predicted by the movement of the robot 620 in the target area 630 from the overall path. Specifically, the processor determines subpaths, which are the movement paths of the robot 620 in the target area 630, based on the overall path and the target area 630. The processor obtains at least one unit path by dividing the subpath into predetermined lengths. The processor determines the unit vector for each of the at least one unit path and determines the path vector by summing each of the at least one unit vector.
[0076] The processor divides the subpaths into predetermined lengths to obtain several unit paths. The processor adjusts the length of the unit paths based on the speed of the robot 620. For example, the processor sets the length of the unit paths to 0.5m in slow-speed sections and to 1m in typical-speed sections.
[0077] The processor obtains a unit vector between the start and end points of each unit path. The unit vector represents the direction of the subpath and the movement trajectory of the robot 620. The path vector is explained by the following equation 1.
[0078]
number
[0079] Here, TIFF2026109499000003.tif6145 represents a path vector, and N represents the number of unit vectors. TIFF2026109499000004.tif8145 represents a unit vector.
[0080] The processor determines the paths included in the target region from among the total number of paths as subpaths, and determines the first point, which is the entry point of the subpath, and the second point, which is the exit point of the subpath, within the target region. Based on the predetermined length being the same as the length of the subpath, the processor determines the path vector using the direction vector of the first point and the direction vector of the second point. That is, based on the predetermined length being the same as the length of the subpath, the processor determines the subpath vector (e.g., a vector based on the direction vector of the first point and the direction vector of the second point) as the path vector without generating a unit vector.
[0081] Figure 7 is a flowchart illustrating a robot control method in a robot control device according to one embodiment of the present invention.
[0082] Figure 7 is a flowchart showing how a processor according to one embodiment of the present invention (e.g., processor 110 in Figure 1) determines the robot's travel path. The processor analyzes information about the target area to determine whether the robot can enter it and, if necessary, re-determines the travel path.
[0083] In step S705, the processor determines the target area within the region of interest where the robot can move in one direction. The target area is defined based on map data and direction vectors.
[0084] Based on receiving coordinate information for the target area from the server, the processor determines the target area on the map (or region of interest) via the coordinate information. Based on the predetermined direction and coordinate information, the processor receives a direction vector from the server indicating the direction the robot should move in the target area. Based on receiving the direction vector, the processor receives a reference score from the server.
[0085] In step S710, the processor determines whether the target area overlaps with the overall path. The processor then confirms whether the target area is related to the robot's movement path and proceeds with the subsequent actions.
[0086] In step S715, the processor determines whether the target area satisfies the conditions for the robot to pass through the path. If the robot does not pass through the target area, the processor determines the entire area as the travel path.
[0087] In step S720, the processor determines a first score based on the similarity between the path vector and the direction vector. The processor calculates the similarity between the direction vector of the target region and the vector based on the robot's predicted movement within the target region (i.e., the path vector). The similarity is information that quantitatively evaluates how well the robot's travel path matches the unidirectional characteristics of the target region.
[0088] The first score is explained by the following formula 2.
[0089]
number
[0090] Here, cos(θ) represents the first score, TIFF2026109499000006.tif8128 represents a direction vector. TIFF2026109499000007.tif8128 represents a path vector.
[0091] In step S725, the processor determines a second score indicating the density of the target area based on the size of the target area and the objects contained within it. The density is determined by comparing the area of the obstacles with the reference area and is a key factor in evaluating the possibility of entering the target area. If an object is identified as a dynamic obstacle in the target area, the processor determines the obstruction area occupied by the object in the target area and determines a second score based on the ratio of the obstruction area to the reference area, which is the area of the target area.
[0092] The second score is explained by formula 3 below.
[0093]
number
[0094] Here, ρ represents the second score, N obstracles This refers to the area of obstruction, A region This refers to the standard area.
[0095] A dynamic obstacle refers to an object that moves within the target area. It is an element that obstructs the robot's path and has the characteristic of changing position over time. The obstacle area refers to the area occupied by dynamic obstacles within the target area. The reference area refers to the total area of the target area. The reference area is calculated based on the coordinates of each vertex of the target area, which is defined as a polygonal shape, and is used to determine the density of the target area through its ratio to the obstacle area.
[0096] In step S730, the processor determines a third score based on the reference speed (or limit speed) and the predicted speed information expected when the robot passes through the target area. This is used to evaluate whether the robot can maintain a safe and efficient speed when passing through the target area.
[0097] In step S735, the processor calculates an entry score. For example, the processor calculates the entry score based on factors such as path similarity (i.e., the first score), density (i.e., the second score), and velocity ratio (i.e., the third score). The entry score serves as a criterion for determining whether the robot can enter the target area.
[0098] The entry score is explained by the following formula 4.
[0099]
number
[0100] Here, α represents the first weighting, β represents the second weighting, and γ represents the third weighting. TIFF2026109499000010.tif15163 means the third score, v robot This refers to the robot's predicted speed information, v reference This refers to the standard speed.
[0101] The processor obtains the first, second, and third weights from a path prediction model that has been trained to output weights to be applied to the entry score.
[0102] For example, a processor trains a path prediction model. This path prediction model includes a neural network. The neural network contains multiple layers, each containing multiple nodes. Each node has a node value determined based on an activation function. Nodes in any layer are connected to nodes in other layers (e.g., other nodes) via links (e.g., connection edges) that have connection weights. Node values are propagated from one node to another via these links. In the inference operation of a neural network, node values are propagated forward from the previous layer to the next layer.
[0103] For example, the forward propagation operation in a path prediction model is a method that moves from the input layer to the output layer of the path prediction model, and represents an operation that propagates node values based on the input data. That is, the node value of a node is propagated (e.g., forward propagated) to the node of the layer (e.g., the next node) after it has been connected via nodes and connecting lines. For example, a node receives a weighted value from the previous node (e.g., multiple nodes) connected via connecting lines, which is weighted by the connection weight value.
[0104] The node value of a node is determined based on the sum of weighted values received from the previous node (e.g., weighted sum) and the application of an activation function. The neural network parameters include the linked weights described above as an example. The neural network parameters are updated so that the objective function value, described later, changes in the targeted direction (e.g., the direction in which the loss is minimized).
[0105] A trained path prediction model is a model trained through machine learning, which takes training inputs (e.g., environmental data) and outputs training values (e.g., first weight, second weight, and third weight). Machine learning models (e.g., trained path prediction models) are generated through machine learning. Learning algorithms include, but are not limited to, supervised learning, unsupervised learning, semi-supervised learning, or reinforcement learning.
[0106] The machine learning model includes multiple artificial neural network layers. Specifically, the learned path prediction model includes a shared layer containing at least one convolution operation, and multiple classifier layers (e.g., task-specific layers) linked to the shared layer. The artificial neural network is, but is not limited to, at least one of the following: deep neural network (DNN), convolutional neural network (CNN), U-net (U-Net for Image Segmentation), recurrent neural network (RNN), restricted Boltzmann machine (RBM), deep belief network (DBN), bidirectional recurrent deep neural network (BRDNN), deep Q-networks, or a combination thereof.
[0107] In step S740, the processor determines whether the entry score exceeds the reference score. For example, in step S745, the processor determines the entire route as the driving route based on the fact that the entry score is less than the reference score.
[0108] In step S750, the processor performs the application of Keepout to the target area. A detailed explanation of this is the same as that described in Figure 5.
[0109] In step S755, the processor re-determines the travel path. For example, the processor re-determines a new travel path considering the region of interest, excluding the restricted area.
[0110] Figure 8 shows a computer system for a robot control device or robot control method according to one embodiment of the present invention.
[0111] Referring to Figure 8, the computer system 1000 for a robot control device or robot control method includes at least one processor 1100, memory 1300, user interface input device 1400, user interface output device 1500, storage 1600, and network interface 1700, all connected via a bus 1200.
[0112] The processor 1100 is a semiconductor device that performs processing on instruction words stored in the central processing unit (CPU), memory 1300, and / or storage 1600. The memory 1300 and storage 1600 include various types of volatile or non-volatile storage media. For example, the memory 1300 includes ROM (read-only memory) 1310 and RAM (random access memory) 1320.
[0113] Accordingly, each step of the method or algorithm described in relation to the embodiments disclosed herein is directly embodied by hardware, software modules, or a combination thereof, executed by the processor 1100. The software modules reside in storage media such as RAM memory, flash memory, ROM memory, EPROM memory, EEPROM memory, registers, hard disks, removable disks, and CD-ROMs (i.e., memory 1300 and / or storage 1600).
[0114] An exemplary storage medium is coupled to the processor 1100, which reads information from and writes information to the storage medium. Alternatively, the storage medium may be integrated with the processor 1100. The processor and storage medium may reside within an ASIC. The ASIC may reside within a user terminal. Alternatively, the processor and storage medium may reside within a user terminal as separate components.
[0115] The above description is merely illustrative of the technical concept of the present invention, and a person with ordinary skill in the art to which the present invention belongs can make various modifications and alterations without departing from the essential characteristics of the present invention.
[0116] The embodiments described above are embodied in hardware components, software components, and / or combinations of hardware components and software components. For example, the apparatus, methods, and components described in the embodiments of the present invention are embodied using a general-purpose computer or a special-purpose computer, such as a processor, controller, ALU (arithmetic logic unit), digital signal processor, microcomputer, FPGA (field programmable gate array), PLU (programmable logic unit), microprocessor, or other device capable of executing and responding to instructions. The processing device executes an operating system (OS) and software applications performed on the OS. The processing device also accesses, stores, manipulates, processes, and generates data in response to the execution of the software. For convenience of understanding, the processing device may sometimes be described as being one, but a person with ordinary skill in the art will see 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. Furthermore, other processing configurations, such as parallel processors, are also possible.
[0117] Software comprises computer programs, code, instructions, or a combination of one or more of these, which configure a processing unit to operate as desired, or which independently or collectively instruct the processing unit. Software and / or data are permanently or temporarily embodied in a type of machine, component, physical device, virtual device, computer storage medium or device, or transmitted signal wave, in order to be interpreted by a processing unit or to provide instructions or data to a processing unit. Software is distributed, stored or executed in a distributed manner on a network of connected computer systems. Software and data are stored on computer-readable recording media.
[0118] The methods according to embodiments of the present invention are embodied in the form of program instructions that are executed via various computer means and recorded on a computer-readable recording medium. The computer-readable recording medium includes program instructions, data files, data structures, etc., individually or in combination, and the program instructions recorded on the recording medium are either specifically designed and configured for embodiments of the present invention or are publicly known and usable by 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, and flash memory. Examples of program instructions include not only machine code generated by compilers, but also high-level language code executed by computers using interpreters, etc.
[0119] The hardware devices described above are configured to operate as one or more software modules to perform the operations of the embodiments of the present invention, or vice versa.
[0120] As described above, embodiments of the present invention have been explained with limited drawings, but a person with ordinary skill in the art can apply a variety of technical modifications and variations therefrom. For example, the described techniques may be performed in a different order than described, and / or the described components such as systems, structures, devices, circuits may be combined or assembled in a different manner than described, or replaced or substituted with other components or equivalents, and still the appropriate results may be achieved.
[0121] Therefore, other manifestations, other embodiments, and those equivalent to the claims also fall within the scope of the patent claims.
[0122] Therefore, the embodiments disclosed herein are for illustrative purposes only, and not to limit the technical concept of the present invention, and such embodiments do not limit the scope of the technical concept of the present invention. The scope of protection of the present invention should be interpreted in accordance with the claims, and all technical concepts within an equivalent scope thereto should be interpreted as being included within the scope of the present invention. [Explanation of Symbols]
[0123] 100 Robot Control Devices 110, 1100 processors 120, 1300 memory 122 Imperative 130 Communications Department 140 servers 310 Data Generators 320 data acquisition devices 330 Data Processing Machines 340 Area passing judger 410, 420 First and Second Target Areas 610 Areas of Interest 620 robots 630 Target Area 1000 Computer Systems 1200 bus 1310 ROM 1320 RAM 1400 User Interface Input Device 1500 User Interface Output Device 1600 storage 1700 Network Interfaces
Claims
1. Memory containing computer-executable instructions, The system includes a processor that accesses the memory and executes the instruction word, The aforementioned processor, The robot determines a target region in which it can move in a predetermined direction, using a map that includes a region of interest to which it can move. The robot's driving path is determined based on a comparison between an entry score determined at the time the robot needs to move into the target area and a predetermined reference score. A robot control device characterized by performing control of the robot based on the aforementioned travel path.
2. The aforementioned processor, Based on the reception of coordinate information of the target area from the server, the target area on the map is determined via the coordinate information. Based on the predetermined direction and coordinate information, the server receives a direction vector indicating the movement of the robot in the target area. Based on the reception of the direction vector, the reference score is received from the server. The robot control device according to claim 1, characterized in that the target region includes a polygonal region formed based on the coordinate information.
3. The aforementioned processor, The server receives a reference speed, which is an acceptable speed for the robot in the target area, and a predetermined overall path for the robot's movement in the area of interest. The robot control device according to claim 2, characterized in that it determines a path vector predicted by the movement of the robot in the target area from the overall path.
4. The aforementioned processor, Based on the overall route and the target area, a sub-path, which is the robot's movement path within the target area, is determined. By dividing the aforementioned subpath into predetermined lengths, at least one unit path is obtained. Determine the unit vectors of each of the at least one unit paths, The robot control device according to claim 3, characterized in that the path vector is determined by summing each of the at least one unit vectors.
5. The aforementioned processor, From the aforementioned total routes, the routes included in the target area are determined to be the sub-routes. Determine the first point which is the entry point of the subpath in the target area and the second point which is the exit point of the subpath. The robot control device according to claim 4, characterized in that the path vector is determined via the direction vector of the first point and the direction vector of the second point based on the fact that the predetermined length is the same as the length of the subpath.
6. The aforementioned processor, A first score is determined based on the similarity between the path vector and the direction vector. A second score indicating the density of the target region is determined based on the size of the target region and the objects contained within the target region. The robot control device according to claim 3, characterized in that it determines a third score based on the reference speed and predicted speed information expected when the robot passes through the target area.
7. The aforementioned processor, If the object is identified as a dynamic obstacle in the target area, the obstacle area occupied by the object in the target area is determined. The robot control device according to claim 6, characterized in that the second score is determined based on the ratio of the reference area, which is the area of the target region, to the obstruction area.
8. The aforementioned processor, The entry score is determined based on the first score, the second score, and the third score. The robot control device according to claim 6, characterized in that the entire route is determined as the travel route based on the fact that the entry score is less than the reference score.
9. The aforementioned processor, The first, second, and third weights are obtained from a path prediction model trained to output weights to be applied to the aforementioned entry score. Apply the first weighting value to the first score, Apply the second weighting value to the second score, Apply the third weighted value to the third score, The robot control device according to claim 8, characterized in that it determines the entry score based on the first score, the second score, and the third score to which weighted values have been applied.
10. The aforementioned processor, Based on the fact that the entry score is equal to or greater than the reference score, the target area is determined to be an area where the robot cannot move. The robot control device according to claim 8, characterized in that it re-determines the robot's travel path based on the region obtained by excluding the target region from the region of interest.
11. A control method for a robot control device equipped with a computer, The steps include: determining a target region in which the robot can move in a predetermined direction using a map that includes a region of interest to which the robot can move; The steps include: determining the robot's driving path based on a comparison between an entry score determined at the point when the robot needs to move into the target area and a predetermined reference score; A robot control method characterized by comprising the step of performing control of the robot based on the aforementioned travel path.
12. The step of performing the control of the robot is: A step of determining the target area on the map via the coordinate information based on receiving the coordinate information of the target area from the server, The steps include receiving a direction vector from the server that indicates the direction in which the robot is to move in the target area based on the predetermined direction and the coordinate information, The step includes receiving the reference score from the server based on the reception of the direction vector, The robot control method according to claim 11, characterized in that the target region includes a polygon region formed based on the coordinate information.
13. The step of performing the control of the robot is: The steps include receiving from the server a reference speed which is an acceptable speed for the robot in the target area and a predetermined overall path for the robot's movement in the area of interest, The robot control method according to claim 12, further comprising the step of determining a path vector predicted by the movement of the robot in the target area from the overall path.
14. The step of performing the control of the robot is: A step of determining a subpath which is the movement path of the robot in the target area based on the overall path and the target area, The steps include obtaining at least one unit path by dividing the aforementioned subpath into predetermined lengths, The steps include determining each unit vector of the at least one unit path, The robot control method according to claim 13, further comprising the step of determining the path vector by summing each of the at least one unit vectors.
15. The step of performing the control of the robot is: The step of determining the route included in the target area from among the overall routes as the sub-route, A step of determining a first point which is the entry point of the subpath in the target area and a second point which is the exit point of the subpath, The robot control method according to claim 14, comprising the step of determining the path vector via the direction vector of the first point and the direction vector of the second point, based on the fact that the predetermined length is the same as the length of the subpath.
16. The step of performing the control of the robot is: A step of determining a first score based on the similarity between the path vector and the direction vector, A step of determining a second score indicating the density of the target region based on the size of the target region and the objects contained within the target region, The robot control method according to claim 13, further comprising the step of determining a third score based on the reference speed and predicted speed information expected when the robot passes through the target area.
17. The step of performing the control of the robot is: If the object is identified as a dynamic obstacle in the target area, the steps include determining the obstacle area occupied by the object in the target area, The robot control method according to claim 16, further comprising the step of determining the second score based on the ratio of the area of the target region, which is a reference area, to the area of the obstruction.
18. The step of performing the control of the robot is: A step of determining the entry score based on the first score, the second score, and the third score, The robot control method according to claim 16, characterized by comprising the step of determining the entire route as the travel route based on the fact that the entry score is less than the reference score.
19. The step of performing the control of the robot is: The steps include obtaining a first weight, a second weight, and a third weight from a path prediction model trained to output weights to be applied to the aforementioned entry score, The step of applying the first weighted value to the first score, The step of applying the second weighting value to the second score, The step of applying the third weighted value to the third score, The robot control method according to claim 18, further comprising the step of determining the entry score based on the first score, the second score, and the third score to which weighted values have been applied.
20. The step of performing the control of the robot is: The steps include determining the target area as an area where the robot cannot move, based on whether the entry score is equal to or greater than the reference score, The robot control method according to claim 18, further comprising the step of redetermining the robot's travel path based on the region obtained by excluding the target region from the region of interest.