Robot control device and its control method
The robot control device optimizes map data management and path calculation by generating a target map from unit maps and using a connected graph, addressing the challenges of large map data volumes and environmental complexity.
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-03
AI Technical Summary
Existing robot control systems face challenges in managing large volumes of map data, leading to increased computing resources and manufacturing costs, and fail to accurately reflect the actual operating environment when navigating multi-layered structures.
A robot control device that generates a target map via unit maps, determines waypoints, and creates a connected graph to optimize the robot's path, considering environmental data and real-time updates, while managing map data efficiently.
Minimizes data processing load and calculates an optimal movement route by separating large spaces into unit maps, allowing flexible operation in diverse environments and responding to real-time changes.
Smart Images

Figure 2026111477000001_ABST
Abstract
Description
[Technical Field]
[0001] The present invention relates to a robot control device and a control method thereof, and more specifically, to a technology for determining the travel path of a robot. [Background technology]
[0002] Service robots are increasingly being used in a variety of industrial and service environments, and their scope of activity is gradually expanding. As a result, the spaces in which robots operate are expanding from single-story structures to large single-story and multi-story spaces, and map management and route generation technologies to effectively cover these spaces have emerged as a crucial issue. However, as the accuracy of map data increases, the amount of data it contains also increases, and the size of the data increases proportionally. Processing such large volumes of map data requires more computing resources, which leads to increased manufacturing costs and decreased marketability of robot systems.
[0003] In particular, for robots to move across large areas or multi-layered structures, map data must be managed efficiently. For this purpose, a system that manages multiple maps separately is used. However, such a system is limited to map transitions that simply consider the interconnectedness of maps, and therefore does not adequately reflect the actual operating environment of the robot.
[0004] To solve these problems, it is necessary to develop a technology that defines the relationships between multiple maps as a weighted graph to quantitatively represent the connectivity between maps, and then infers the optimal path for robot movement based on the weighted graph. [Prior art documents] [Patent Documents]
[0005] [Patent Document 1] Japanese Patent Publication No. 2022-128579 [Overview of the project] [Problems that the invention aims to solve]
[0006] 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 and a control method thereof that reduces the data processing burden. [Means for solving the problem]
[0007] 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 generates a target map via at least one unit map based on the reception of at least one unit map, determines at least one waypoint corresponding to each of the at least one unit maps included in the target map, and generates a robot driving path based on a connected graph determined by the at least one waypoint.
[0008] The processor identifies at least one of the coordinates of obstacles included in each of the at least one unit map, the position coordinates of each of the at least one unit map, the image data of each of the at least one unit map, or any combination thereof, and can concatenate the at least one unit map based on at least one of the coordinates of obstacles, the position coordinates, the image data, or any combination thereof. The processor may generate the target map by concatenating the at least one unit map, transmitting an approval request to the user, generating the target map based on the receipt of approval from the user, and applying the error information to the at least one unit map based on the receipt of error information for the target map from the user. The processor may identify a first point relating to the robot's current position and a second point relating to the robot's target position based on the target map, apply the target map, the first point, and the second point to a path prediction model trained to predict a path to obtain a temporary path, and obtain a region of interest, which includes the area on the target map to which the robot can move, based on the target map and the temporary path. The processor may determine a target region, which is the region applied to connect the at least one unit map with respect to the region of interest, based on the size and function of the robot, and may determine predetermined points in the target region as the at least one waypoint. Based on the determination of the at least one waypoint, the processor may determine the connected graph in which each of the at least one unit maps is applied as a node and the at least one waypoint is applied as an edge between the nodes. The processor identifies a reference unit map containing the robot's target position in the at least one unit map, identifies a comparison unit map adjacent to the reference unit map by the at least one waypoint, and if it identifies that an obstacle in the reference unit map makes it impossible for the robot to move from the at least one waypoint between the comparison unit map and the reference unit map to the target position, it may delete the at least one waypoint between the comparison unit map and the reference unit map. The processor may determine the weight values of the edges included in the connected graph based on the speed of the robot, the energy consumption of the robot, the safety of the robot, the priority of each of the at least one unit map, or at least one combination thereof, and may generate the travel path based on the path score obtained by applying the connected graph with the determined weight values to a predetermined path algorithm. The processor may control the robot to move along the travel path based on the generation of the travel path, update the target map by receiving obstacle information identified by the robot during its movement, and determine the at least one waypoint again based on the updated target map. The processor may, if the at least one unit map relates to a multi-layer structure, determine a target layer from among a plurality of layers included in the multi-layer structure and generate the target map by concatenating at least one map relating to the target layer from the at least one unit map.
[0009] 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: generating a target map via at least one unit map based on the reception of at least one unit map; determining at least one waypoint corresponding to each of the at least one unit maps included in the target map; and generating a driving path for the robot based on a connected graph determined by the at least one waypoint.
[0010] The steps of generating the robot's travel path may include identifying the coordinates of obstacles contained in each of the at least one unit map, the position coordinates of each of the at least one unit map, the image data of each of the at least one unit map, or at least one combination thereof; and linking the at least one unit map based on the coordinates of obstacles, the position coordinates, the image data, or at least one combination thereof. The step of generating the robot's travel path may include the steps of linking the at least one unit map and then transmitting an approval request to the user; generating the target map based on the approval received from the user; and generating the target map by applying the error information to the at least one unit map based on the error information of the target map received from the user. The steps of generating the robot's travel path may include: identifying a first point relating to the robot's current position and a second point relating to the robot's target position based on the target map; applying the target map, the first point, and the second point to a path prediction model trained to predict a path to obtain a temporary path; and obtaining a region of interest, which includes an area on the target map where the robot can move, based on the target map and the temporary path. The step of generating the robot's travel path may include the steps of determining a target region, which is an area applied to connect the at least one unit map with respect to the region of interest, based on the size and function of the robot, and determining predetermined points in the target region as the at least one waypoint. The step of generating the robot's travel path may include, based on the determination of the at least one waypoint, determining the connected graph in which each of the at least one unit map is applied as a node and the at least one waypoint is applied as an edge between the nodes. The steps of generating the robot's travel path may include: identifying a reference unit map containing the robot's target position in the at least one unit map; identifying a comparison unit map adjacent to the reference unit map by the at least one waypoint; and, if an obstacle in the reference unit map makes it impossible for the robot to move from the at least one waypoint between the comparison unit map and the reference unit map to the target position, deleting the at least one waypoint between the comparison unit map and the reference unit map. The step of generating the robot's travel path may include: determining weight values for the edges included in the connected graph based on the robot's speed, the robot's energy consumption, the robot's safety, the priority of each of the at least one unit map, or at least one combination thereof; and generating the travel path based on a path score obtained by applying the connected graph with determined weight values to a predetermined path algorithm. The step of generating the robot's travel path may include: controlling the robot so that it moves along the travel path based on the generated travel path; updating the target map by receiving obstacle information identified by the robot while it is moving; and determining the at least one waypoint again based on the updated target map. The step of generating the robot's travel path may include, if the at least one unit map relates to a multi-layer structure, the step of determining a target layer from among a plurality of layers included in the multi-layer structure, and the step of generating the target map by linking at least one map relating to the target layer of the at least one unit map. [Effects of the Invention]
[0011] The effects of the robot control device and control method according to the present invention are as follows.
[0012] According to the present invention, at least one waypoint corresponding to each of at least one unit map included in a target map is determined, and a driving route is generated based on a connected graph, so that a large space is separated and managed by unit maps, and the data processing load can be minimized by generating an optimal route by connecting maps as needed.
[0013] Also, according to the present invention, when moving to a final destination by utilizing a connected graph, an optimal movement route can be calculated in consideration of environmental data in the map (e.g., position of obstacles, distance of the route, etc.).
[0014] In addition, various effects directly or indirectly grasped through this specification can be provided.
Brief Description of Drawings
[0015] [Figure 1] It is a diagram showing 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 diagram showing an example of a unit map. [Figure 4] It is a diagram showing an example of a target map generated from a unit map. [Figure 5] It is a diagram showing an example of an area of interest obtained from a target map. [Figure 6] It is a diagram showing an example of a target area for determining a waypoint. [Figure 7] It is a diagram showing an example of a waypoint determined from a target area. [Figure 8] It is a diagram showing an example of a connected graph determined by waypoints in a robot control device according to an embodiment of the present invention. [Figure 9] It is a diagram showing another example of a connected graph determined by waypoints in a robot control device according to an embodiment of the present invention. [Figure 10] This figure shows an example of items applied to the operation of acquiring a path score in a robot control device according to one embodiment of the present invention. [Figure 11] This is a flowchart illustrating a robot control method in a robot control device according to one embodiment of the present invention. [Figure 12] This figure shows a computing system for a robot control device or robot control method according to one embodiment of the present invention. [Modes for carrying out the invention]
[0016] Hereinafter, specific examples of embodiments 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, care will be taken to use the same reference numerals for identical components, even if they appear in other drawings. When describing embodiments of the present invention, if a specific description of a relevant known configuration or function is deemed to obscure the understanding of embodiments of the present invention, such detailed description will be omitted. In particular, various embodiments of this specification will be described with reference to the drawings. However, this should not be understood as limiting the technology described herein to specific embodiments, but rather as including various modifications, equivalents, and / or alternatives to embodiments of the present invention. In relation to the description of the drawings, similar reference numerals will 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 to distinguish a component from other components, and do not limit the nature, order, or sequence of the component. Furthermore, unless otherwise specifically defined, all terms used herein, including technical and 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 similar to those defined in commonly used dictionaries should be interpreted as having the meaning consistent with their meaning in the context of the relevant technology, and not as ideally or excessively formal unless explicitly defined herein. For example, expressions such as "first," "second," "first," or "second" used herein modify various components regardless of order and / or importance, and are used only to distinguish one component from others, and do not limit the component. For example, the first user device and the second user device may refer to different user devices, regardless of order or importance. For example, without exceeding the scope of rights described herein, the first component may be named as 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 feature in question (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 replaced with, depending on the context, 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, depending on the context, 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 for performing those operations (e.g., an embedded processor) or a generic-purpose processor (e.g., a CPU or application processor) that can perform those operations by running 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 and scientific terms, have the same meaning as they would be commonly understood by a person of ordinary skill in the art described herein. Terms used herein that are defined in general dictionaries shall be interpreted as having 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 explicitly defined herein. In some cases, terms defined herein shall not be interpreted as excluding embodiments of the present invention.
[0023] In this specification, expressions such as “A or B,” “A or / and at least one of B,” or “one or more of A or / and B” include all possible combinations of the items listed together. For example, “A or B,” “A and at least one of B,” or “at least one of A or B” refers to all 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. Furthermore, in describing the components of embodiments of the present invention, each of the phrases such as “A or B,” “A and at least one of B,” “A or B,” “A, B or C,” “A, B and C,” “A, B, or C,” and “A, B, C, or at least one of any combination thereof” includes any one of the items listed together in the applicable phrase, or all possible combinations thereof. In particular, phrases such as “A, B, C, or at least one of any combination thereof” include A or B or C or a combination thereof, such as AB or ABC.
[0024] Hereinafter, embodiments of the present invention will be specifically described with reference to Figures 1 to 12.
[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 based on a connected graph corresponding to a target map generated from a unit map.
[0028] The robot control device 100 controls the robot by generating the optimal travel path based on a unit map. The robot control device 100 optimizes the robot's travel path through efficient management and linking of map data, enabling flexible operation in diverse environments.
[0029] The robot control device 100 receives unit maps and generates a target map by concatenating the unit maps. Waypoints are determined in each unit map included in the generated target map. The robot control device 100 uses the waypoints to generate a concatenation graph. As a result, the robot control device 100 generates a travel path for the robot to move to its final destination.
[0030] The robot control device 100 identifies various environmental data such as obstacle coordinates, position coordinates, and image data within the map, and links unit maps based on this data. During this process, the robot control device 100 requests user approval and applies error correction information to modify the target map.
[0031] The robot control device 100 utilizes a path prediction model based on the robot's current position and target position to acquire a temporary path and set a region of interest. The robot control device 100 determines the area of movement possible according to the robot's size and function, and improves the accuracy of the travel path by setting specific points within the area of movement as waypoints.
[0032] After determining waypoints, the robot control device 100 uses nodes and edges in a connected graph to build relationships between unit maps and assigns weights to each edge, taking into account factors such as robot speed, energy consumption, safety, or priority. Based on the connected graph with assigned weights, the robot control device 100 calculates the optimal path for the robot via a path algorithm.
[0033] The robot control device 100 identifies obstacles in real time as the robot moves and reflects this information on the target map, continuously updating the target map. By resetting waypoints based on the updated target map, the robot control device 100 can quickly respond to environmental changes and optimize the route.
[0034] The robot control device 100 can operate flexibly even in a multilayered environment. The robot control device 100 selects a target layer from among multiple layers of the multilayered structure and generates a travel path for the multilayered structure by linking the unit maps of the target layer.
[0035] The robot control device 100 efficiently manages map data, calculates the optimal path via a linked graph, and embodies an advanced robot control system that responds to real-time environmental changes. As a result, the robot can travel stably and precisely in diverse environments.
[0036] The processor 110 executes software and controls at least one other component (e.g., hardware or software component) connected to the processor 110. The processor 110 also performs various other data processing or calculations. For example, the processor 110 stores unit maps, target maps, waypoints, or connected graphs in memory 120.
[0037] For reference, the processor 110 performs all 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 operations performed by the processor 110. Also, for the sake of explanation, this specification will primarily describe the case where the processor 110 is a single processor, but it is not limited to this. For example, the robot control device 100 may include a processor. Each processor can perform all operations related to the operation of generating a travel path.
[0038] Memory 120 temporarily and / or permanently stores various data and / or information required to perform the operation of generating the robot's travel path. For example, memory 120 stores unit maps, target maps, waypoints, connected graphs, and so on.
[0039] The communication unit 130 assists in the execution of communication between the robot control device 100 and the server 140. For example, the communication unit 130 includes one or more components that perform 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. In this case, 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). Among the operations of the robot control device 100 in this specification, the receiving operation includes the operation of receiving data (e.g., unit map) from the server 140.
[0040] Figure 2 is a flowchart illustrating a robot control method according to one embodiment of the present invention.
[0041] In this embodiment, the processor (e.g., processor 110 in Figure 1) generates a target map via at least one unit map based on having received at least one unit map in step S210.
[0042] For example, a unit map refers to map data for a specific area or region. A unit map is the result of dividing a map into multiple smaller units in order to effectively manage a large space, and includes specific coordinates, obstacle information, image data, etc.
[0043] For example, the target map refers to integrated map data generated by linking multiple unit maps. The target map provides the entire route and environmental information necessary for the robot to move to its final destination, and is generated reflecting the relationships between the unit maps.
[0044] In step S220, the processor determines at least one waypoint corresponding to each of the at least one unit maps included in the target map.
[0045] For example, a waypoint refers to a specific point that a robot must pass through on its travel path. Waypoints are used as connecting points between unit maps or as reference points where a robot changes direction or alters its target path.
[0046] In step S230, the processor generates the robot's driving path based on a connected graph determined by at least one waypoint.
[0047] For example, a connected graph refers to a graph structure that represents the relationships between multiple unit maps and waypoints as nodes and edges. In a connected graph, unit maps are applied as nodes, and waypoints are applied as edges, which are connections between nodes. Connected graphs are used to define paths that a robot can travel and to calculate the optimal path.
[0048] For example, the travel path refers to the optimal route for the robot to move from its current position to its target position, based on a connected graph. The travel path is generated considering the robot's speed, energy consumption, safety, obstacle information, etc., and is updated when environmental changes are detected while the robot is traveling.
[0049] Figure 3 shows an example of a unit map.
[0050] Figure 3 shows examples of the first unit map 310, the second unit map 320, the third unit map 330, and the fourth unit map 340. Each unit map represents a specific region.
[0051] For example, the first unit map 310 is data for a specific space and includes POIs (Points of Interest), obstacles, or the robot's initial position. Obstacle data and specific image data are identified within the first unit map and used to determine the robot's starting point or waypoint.
[0052] The second unit map 320 displays data for an adjacent region connected to the first unit map 310. The second unit map includes the coordinates of obstacles and spatial boundary information, and acts as a reference point for identifying paths that the robot can traverse. Exemplarily, the processor sets waypoints to form a path and defines the relationships between adjacent unit maps via a connected graph.
[0053] The third unit map 330 shows the area containing the final destination (Goal). The destination shown in Figure 3 (i.e., "Goal") indicates the final target position to which the robot should move. The processor uses the coordinate and position data of obstacles contained in the third unit map to identify the robot's possible paths.
[0054] The fourth unit map 340 shows other areas linked to the second unit map 320. The fourth unit map 340 includes obstacle and environmental data in space and is used as part of a linked graph.
[0055] The processor generates the robot's movement path by linking the first unit map 310, the second unit map 320, the third unit map 330, and the fourth unit map 340 shown in Figure 3. The processor identifies obstacle coordinates, position coordinates, and image data contained in each unit map. Based on the identified data, the processor sets the linking relationships between each unit map and determines waypoints. The processor calculates the optimal travel path by forming a linking graph between each unit map using the waypoints. Specifically, the processor generates a movement path from the robot's starting position to its final destination based on the target points contained in the third unit map 330.
[0056] Figure 4 shows an example of a target map generated from a unit map.
[0057] Figure 4 shows an example of a target map 410 generated by concatenating at least one unit map shown in Figure 3. In Figure 4, an example is shown in which the first unit map 310, the second unit map 320, the third unit map 330, and the fourth unit map 340 are concatenated to form a single target map 410.
[0058] The target map 410 refers to an integrated map generated by linking multiple unit maps. The target map 410 includes the linking relationships necessary for the robot to move from its current location to its final destination.
[0059] The first unit map 310 is the space containing the robot's starting point and initial position. The first unit map 310 includes obstacles and spatial boundaries and is connected to the second unit map 320 by waypoints. The second unit map 320 is the region connected to the first unit map 310 and serves as an intermediate waypoint. The third unit map 330 is the region containing the final destination (Goal) and is the space where the robot's target point is located. The robot, connected to the second unit map 320, moves to the final destination along the waypoints. The fourth unit map 340 is yet another region connected to the second unit map 320 and contains other paths that the robot can take.
[0060] The processor identifies the obstacle coordinates, position coordinates, and image data contained in each unit map. After concatenating the unit maps, the processor generates the target map 410. In this process, the processor generates the target map 410 by automatically estimating the relationships between maps based on the location and coordinate system of the obstacles using an automatic concatenation method. Exemplarily, the automatic concatenation method shows a method that automatically estimates the map concatenation relationships through an algorithm that determines the similarity of the location, coordinate system, and image data of the maps.
[0061] The processor corrects the target map for any map errors that occur after the unit maps are concatenated using a passive concatenation method. Exemplarily, the passive concatenation method refers to a method in which map errors are passively corrected by the user.
[0062] The processor concatenates at least one unit map and then transmits an approval request to the user. Based on the approval received from the user, the processor generates the target map 410. Based on the error information of the target map 410 received from the user (i.e., information for the user to correct the map error), the processor generates the target map (i.e., the error-corrected target map) by applying the error information to at least one unit map.
[0063] Figure 5 shows an example of a region of interest obtained from the target map.
[0064] Figure 5 is an illustrative diagram showing the process by which a processor according to one embodiment (e.g., processor 110 in Figure 1) determines the robot's movable area based on a target map. Figure 5 shows a target map formed by linking the first unit map 310, the second unit map 320, the third unit map 330, and the fourth unit map 340, and shows a region of interest 510 that includes the area in which the robot can move.
[0065] The region of interest 510 is calculated based on the robot's size data (footprint) and the keepout area, and is set as the area in which the robot can move without colliding with obstacles.
[0066] The position in the first unit map 310 indicates the robot's current position, and "Goal" in the third unit map 330 indicates the target position to which the robot should move. The processor identifies the robot's current position (i.e., the first point) and the target position (i.e., the second point) based on the target map. The processor generates a temporary path using a path prediction model and obtains a region of interest 510 to which the robot can move based on the temporary path. Here, the region of interest 510 represents the area to which the robot can substantially travel and serves as the basis for path optimization.
[0067] The region of interest 510 includes a safe area in which the robot can move, reflecting the coordinates of obstacles and spatial boundaries. Exemplaryly, the processor identifies a first point in relation to the robot's current position (e.g., the robot's position shown on the first unit map 310 in Figure 5) and a second point in relation to the robot's target position (e.g., the "goal" position shown on the third unit map 330 in Figure 5) based on the target map. The processor applies the target map, the first point, and the second point to a path prediction model trained to predict a path to obtain a temporary path. Based on the target map and the temporary path, the processor obtains a region of interest 510 that includes the area in the target map to which the robot can move. That is, the temporary path represents a path generated based on all the areas in the target map to which the robot can move.
[0068] Figure 6 shows an example of a target area for determining waypoints.
[0069] Figure 6 is an illustrative diagram showing the process by which a processor according to one embodiment (e.g., processor 110 in Figure 1) determines the connectivity between unit maps, taking into account the size and function of the robot based on the region of interest.
[0070] The connection region shown in Figure 6 represents the region in the target map 610 where connectivity was ultimately determined. The target region is the part of the region of interest where actual connectivity between unit maps is possible, and is determined as the region where the robot size and function are satisfied.
[0071] The processor identifies the robot's size based on the width of the traversable pathways and physical obstacles. The processor also identifies the robot's capabilities (e.g., climbing stairs, avoiding obstacles) based on whether the robot can pass through a specific environment within the target area.
[0072] Figure 7 shows an example of waypoints determined from the target area.
[0073] Figure 7 is an illustrative diagram showing the process by which a processor according to one embodiment (e.g., processor 110 in Figure 1) determines the position of a waypoint within a target region.
[0074] Waypoints are points within a target area that are set to the safest location for robot movement. While waypoints are initially set in the center of the target area, their position can be adjusted according to the administrator's intentions and environmental conditions. For example, if the robot needs to bypass an obstacle or pass through a specific location more safely, the administrator can adjust the waypoint.
[0075] The processor determines at least one waypoint at a predetermined location within the target area on the target map 710. For example, the arrows shown in Figure 7 indicate the location of the waypoint and the direction the robot should traverse.
[0076] The processor identifies a reference unit map (e.g., the third unit map in Figure 7) containing the robot's target position in at least one unit map. The processor identifies a comparison unit map adjacent to the reference unit map (e.g., the second or fourth unit map in Figure 7) by waypoints. If the processor determines that obstacles in the reference unit map make it impossible for the robot to move from the waypoint between the comparison unit map and the reference unit map to the target position (i.e., "goal" shown in Figure 7), it deletes the waypoint between the comparison unit map and the reference unit map.
[0077] Figure 8 shows an example of a linked graph determined by waypoints in a robot control device according to one embodiment of the present invention.
[0078] Figure 8 is an illustrative diagram illustrating the process of generating a connected graph 820 and an adjacency matrix 830 based on the target map 810.
[0079] The target map 810 is an integrated map formed by linking multiple unit maps (e.g., the first unit map 310, the second unit map 320, the third unit map 330, and the fourth unit map 340 in Figure 3). Waypoints are set within the target map, indicating the traversable paths between each unit map. Waypoints are important reference points that indicate the connections between unit maps and serve as intermediate points on the path that the robot should take.
[0080] The connected graph 820 is a graph structure in which each unit map is represented as a node and waypoints are represented as edges in the target map 810. For example, node 1 corresponds to the first unit map 310, node 2 to the second unit map 320, node 3 to the third unit map 330, and node 4 to the fourth unit map 340. Edges indicate the relationships between unit maps connected by waypoints and are represented as lines in the graph. For example, node 1 and node 2 are connected by waypoints, and node 2 is connected to nodes 3 and 4.
[0081] The adjacency matrix 830 is a data structure that numerically represents the connected graph 820. Each row and column of the adjacency matrix 830 represents a unit map, and the connectivity status is indicated by a number (e.g., 0 or 1). For example, "1" indicates that connectivity exists between unit maps, and "0" indicates that connectivity does not exist between unit maps. Specifically, since node 1 and node 2 are connected, "1" is displayed at the positions of "(1, 2)" and "(2, 1)", and "0" is displayed between unconnected nodes.
[0082] Figure 9 shows another example of a linked graph determined by waypoints in a robot control device according to one embodiment of the present invention.
[0083] Figure 9 is an illustrative diagram illustrating the process of generating a linked graph 920 and an adjacency matrix 930 based on the target map 910.
[0084] The target map 910 is an integrated map formed by linking multiple unit maps. Waypoints are set within the target map, indicating traversable routes between each unit map. Waypoints are important reference points that indicate the connections between unit maps and serve as intermediate points along the path the robot should take.
[0085] The linked graph 920 is a graph structure in the target map 910 where each unit map is represented as a node and waypoints are represented as edges. For example, node 1 corresponds to the unit map of the first layer, node 2 to the unit map of the second layer, and node 3 to the unit map of the third layer. Edges indicate the relationships between unit maps connected by waypoints and are represented as lines in the graph. For example, node 1 and node 2 are connected by waypoints, and node 2 is connected to node 1 and node 3.
[0086] The adjacency matrix 930 is a data structure that numerically represents the connected graph 920. Each row and column of the adjacency matrix 930 represents a unit map, and its connectivity is indicated by a number (e.g., 0 or 1). For example, "1" indicates that connectivity exists between unit maps, and "0" indicates that connectivity does not exist between unit maps.
[0087] If at least one unit map relates to a multi-layer structure, the processor determines a target layer from among the multiple layers included in the multi-layer structure. For example, the target layer is one of the first, second, or third layers. The processor generates the target map 910 by concatenating at least one map relating to the target layer from at least one unit map.
[0088] Figure 10 shows an example of items applied to the operation of acquiring a path score in a robot control device according to one embodiment of the present invention.
[0089] The processor according to this embodiment (e.g., processor 110 in Figure 1) acquires a route score and generates a travel route.
[0090] The processor determines the weights of the edges included in the connected graph based on the robot's speed, energy consumption, safety, the priority of at least one unit map, or at least one combination of these. The processor then applies the weighted connected graph to a predetermined path algorithm (e.g., Dijkstra's algorithm) and generates a travel path based on the resulting path score.
[0091] The weight of an edge is expressed by the following formula 1.
[0092]
number
[0093] Here, W represents the weighting value of the edge, and α, β, γ, and δ represent coefficients that adjust the importance of each element. time W is a time-weighted value. energy This is the energy weighting value, W safety This is the stability weighting value, and W priority This represents the priority region weighting.
[0094] For example, if the weight of an edge represents the weight of the edge connecting node 2 and node 4, the processor determines the weight of the edge based on the robot's speed between node 2 and node 4 (i.e., time weight), the robot's energy consumption (i.e., energy weight), the robot's safety (i.e., safety weight), and the priority of each node (i.e., priority region weight).
[0095] For example, if the path length between node 2 and node 4 is "11m", and node 4 has a speed limit section (i.e., "1" in binary if it exists, and "0" if it does not), the processor obtains the time weight as follows: Specifically, the processor applies "0.5" from the "Time" element of the "Path Length" item in the table shown in Figure 10 to "11m". The processor applies "2" from the "Time" element of the "Speed Limit Section" item in the table shown in Figure 10 to "1". As a result, the processor determines "7.5", which is the sum of the value obtained by applying "0.5" to "11m" and the value obtained by applying "2" to "1", as the time weight between node 2 and node 4.
[0096] Path length refers to the distance the robot must travel. Path length affects time and energy weightings, with 0.5 and 0.2 indicating the degree of influence path length has on each weighting. Map resolution refers to the precision of the map data and affects the time weighting. Higher precision requires more computation time for path generation.
[0097] Speed-restricted sections indicate specific areas where the robot's movement speed is limited. They affect time and priority, reflecting speed restriction conditions during route optimization. Security gates represent areas where time and restrictions are imposed when passing through a specific zone. They are used to adjust weightings for time and priority.
[0098] Stairs are a factor that affects safety and time when a robot moves. The load value is set considering the robot's capabilities (e.g., whether it can climb stairs) and environmental conditions. Elevators are a factor that affects time and safety; they take longer to travel, but allow the robot to move between floors safely. "-0.1" means that elevators are actually more advantageous from a safety standpoint.
[0099] Sloping sections affect the robot's energy consumption and safety. Energy consumption may be higher or the risk may increase in sloping sections. Automatic doors affect time and priority, and the time delay the robot experiences in passing through the area should be considered. Keep-out areas refer to dangerous areas that the robot should not enter. Weighting values should be adjusted based on safety, and the size of the area is a significant factor.
[0100] Dangerous terrain areas are sections where robots have difficulty navigating, affecting safety and priority. Weighting settings allow for avoidance of dangerous areas or optimization of routes. Time-specific congestion refers to the congestion level of travel routes during specific time periods. This simultaneously affects time and safety and must be considered when optimizing robot movement.
[0101] However, the edge weights are not limited to these. For example, the edge weights are determined by the following equations 2 to 4.
[0102] The time-weighted value is expressed by the following formula 2.
[0103]
number
[0104] Here, D represents the length of the path, S represents the average speed of the robot, and T factor This is the "Factor" value related to "Time" shown in Figure 10.
[0105] The energy weight is expressed by the following equation 3.
[0106]
number
[0107] Here, E consumption This refers to energy consumption considering the distance traveled and the robot's energy efficiency. factorIt is the value of "Factor" regarding "Energy" shown in FIG. 10.
[0108] The safety weight value is represented by the following Equation 4.
[0109] [Equation]
[0110] Here, S risk means a value obtained by evaluating the risk of the path in consideration of the elevation difference risk, obstacles, etc. on the path, and S factor is the value of "Factor" regarding "Safety" shown in FIG. 10.
[0111] The priority area weight value is represented by the following Equation 5.
[0112] [Equation]
[0113] Here, P means the priority information of the unit map, and P factor is the value of "Factor" regarding "Priority" shown in FIG. 10.
[0114] FIG. 11 is a flowchart for explaining a robot control method in a robot control device according to an embodiment of the present invention.
[0115] The processor according to this embodiment (e.g., the processor 110 in FIG. 1) receives a movement command of the robot and identifies the current position of the robot in step S1110. The processor identifies the initial position and the target position of the robot and acquires basic information for movement.
[0116] In step S1120, the processor generates waypoints based on the movable area on the target map. Here, the waypoints are set as reference points for connection between unit maps and determined as the safest and most efficient positions for the movement of the robot.
[0117] In step S1130, the processor generates a connected graph based on the configured waypoints. In this step, the processor applies each unit map as a node and the waypoints as edges between nodes. The connected graph defines the relationships between the unit maps and forms the structural basis for calculating the travel path.
[0118] In step S1140, the processor receives environmental data relating to the multi-map. The environmental data includes obstacle coordinates, unit map locations, image data, gradient, and weighted value determination elements (i.e., "Factors" shown in Figure 10) determined based on specific points of interest (e.g., stairs, elevators, etc.).
[0119] In step S1150, the processor determines the weighting values of the linked graph based on the received environmental data. The weighting values are set considering the robot's speed, energy consumption, safety, priority, etc., and are applied to each edge. The method for determining the weighting values is the same as the method described in Figure 10.
[0120] In step S1160, the processor applies a weighted connected graph to a path algorithm (e.g., Dijkstra or A*) to determine the robot's travel path. The generated travel path is optimized to allow the robot to move safely and efficiently from its current position to its target position.
[0121] Based on the generated travel path, the processor controls the robot to move along that path. The processor updates the target map by receiving information about obstacles identified by the robot during its movement. The processor then determines waypoints again based on the updated target map.
[0122] Figure 12 shows a computing system for a robot control device or robot control method according to one embodiment of the present invention.
[0123] Referring to Figure 12, the computing 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.
[0124] 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.
[0125] 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 a storage medium such as RAM memory, flash memory, ROM memory, EPROM memory, EEPROM memory, registers, hard disks, removable disks, or CD-ROMs (i.e., memory 1300 and / or storage 1600).
[0126] 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 the user terminal. Alternatively, the processor and storage medium may reside within the user terminal as separate components.
[0127] 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 as long as they do not deviate from the essential characteristics of the present invention.
[0128] The embodiments described above are embodied by 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 that executes and responds 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 software. For convenience of understanding, the processing device may be described as being used as a single unit, 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.
[0129] Software includes computer programs, code, instructions, or a combination 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 on a networked computing system, stored or executed in a distributed manner. Software and data are stored on computer-readable recording media.
[0130] The methods according to embodiments of the present invention are embodied in a form of program instructions that are performed 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 computer software art. Examples of computer-readable recording media include magnetic media such as hard disks, Proppy® 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 produced by a compiler, but also high-level language code executed by a computer using an interpreter or the like.
[0131] 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.
[0132] 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 combined in a different manner than described, or opposed or substituted by other components or equivalents, and the appropriate results may be achieved.
[0133] Therefore, other manifestations, other embodiments, and those equivalent to the claims also fall within the scope of the patent claims.
[0134] Accordingly, 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 shall be construed in accordance with the claims, and all technical concepts within the scope equivalent thereto shall be construed as being included within the scope of the rights of the present invention. [Explanation of Symbols]
[0135] 100 Robot Control Devices 110, 1100 processors 120, 1300 memory 122 Command word 130 Communications Department 140 servers 310, 320, 330, 340 Unit 1-4 Maps Target maps: 410, 610, 710, 810, 910 510 Areas of Interest 820, 920 Linked Graph 830, 930 Adjacency Matrix 1000 Computing 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, Based on the reception of at least one unit map, a target map is generated via the at least one unit map. Determine at least one waypoint corresponding to each of the at least one unit maps included in the aforementioned target map. A robot control device characterized by generating a robot driving path based on a connected graph determined by at least one waypoint.
2. The aforementioned processor, Identifying the coordinates of obstacles included in each of the at least one unit maps, the positional coordinates of each of the at least one unit maps, the image data of each of the at least one unit maps, or at least one combination thereof, The robot control device according to claim 1, characterized in that it connects at least one unit map based on the coordinates of the obstacle, the position coordinates, the image data, or at least one combination thereof.
3. The aforementioned processor, After linking the aforementioned at least one unit map, an approval request is transmitted to the user. Based on the approval received from the user, the target map is generated. The robot control device according to claim 2, characterized in that it generates the target map by applying the error information to at least one unit map based on receiving the error information of the target map from the user.
4. The aforementioned processor, Based on the aforementioned target map, a first point relating to the robot's current position and a second point relating to the robot's target position are identified. The target map, the first point, and the second point are applied to a route prediction model trained to predict a route to obtain a temporary route. The robot control device according to claim 1, characterized in that it acquires a region of interest that includes an area on the target map where the robot can move, based on the target map and the temporary route.
5. The aforementioned processor, Based on the size and function of the robot, a target region is determined, which is the region applied to connect the at least one unit map with respect to the region of interest. The robot control device according to claim 4, characterized in that a predetermined point in the target area is determined as at least one waypoint.
6. The robot control device according to claim 1, characterized in that the processor determines the connected graph in which each of the at least one unit map is applied as a node and the at least one waypoint is applied as an edge between the nodes, based on the determination of the at least one waypoint.
7. The aforementioned processor, The reference unit map containing the target position of the robot is identified in at least one of the unit maps. The comparison unit map adjacent to the reference unit map is identified by the at least one waypoint. The robot control device according to claim 6, characterized in that if the robot identifies that it is impossible to move from the at least one waypoint between the comparison unit map and the reference unit map to the target position due to an obstacle included in the reference unit map, the at least one waypoint between the comparison unit map and the reference unit map is deleted.
8. The aforementioned processor, The weight values of the edges included in the connected graph are determined based on the speed of the robot, the energy consumption of the robot, the safety of the robot, the priority of each of the at least one unit map, or at least one combination thereof. The robot control device according to claim 6, characterized in that it generates the travel path based on a route score obtained by applying the linked graph, on which the weighted values have been determined, to a predetermined route algorithm.
9. The aforementioned processor, Based on the generation of the aforementioned travel path, the robot is controlled to move along the aforementioned travel path. The robot updates the target map by receiving information about obstacles it has identified while moving. The robot control device according to claim 1, characterized in that it determines the at least one waypoint again based on the target map on which the update has been performed.
10. The aforementioned processor, If the at least one unit map relates to a multi-layer structure, a target layer is determined from among the multiple layers included in the multi-layer structure. The robot control device according to claim 1, characterized in that it generates the target map by concatenating at least one map relating to the target layer among the at least one unit map.
11. A control method for a robot control device equipped with a computer, A step of generating a target map via at least one unit map based on the receipt of at least one unit map, The steps include determining at least one waypoint corresponding to each of the at least one unit maps included in the target map, A robot control method characterized by comprising the step of generating a robot driving path based on a connected graph determined by at least one waypoint.
12. The step of generating the robot's travel path is: A step of identifying the coordinates of obstacles included in each of the at least one unit maps, the positional coordinates of each of the at least one unit maps, the image data of each of the at least one unit maps, or at least one combination thereof. The robot control method according to claim 11, comprising the step of linking at least one unit map based on the coordinates of the obstacle, the position coordinates, the image data, or at least one combination thereof.
13. The step of generating the robot's travel path is: After linking the aforementioned at least one unit map, the step of transmitting an approval request to the user, The steps include generating the target map based on approval received from the user, The robot control method according to claim 12, characterized in that it includes the step of generating the target map by applying the error information to at least one unit map based on receiving the error information of the target map from the user.
14. The step of generating the robot's travel path is: The steps include identifying a first point relating to the robot's current position and a second point relating to the robot's target position based on the aforementioned target map, The steps include: applying the aforementioned target map, the first point, and the second point to a route prediction model trained to predict a route to obtain a temporary route; The robot control method according to claim 11, characterized by comprising the step of acquiring a region of interest that includes an area on the target map where the robot can move, based on the target map and the temporary route.
15. The step of generating the robot's travel path is: A step of determining a target region, which is the region applied to connect the at least one unit map with respect to the region of interest, based on the size and function of the robot; The robot control method according to claim 14, characterized by comprising the step of determining a predetermined point in the target area as at least one waypoint.
16. The robot control method according to claim 11, characterized in that the step of generating the robot's travel path includes the step of determining the connected graph in which each of the at least one unit map is applied as a node and the at least one waypoint is applied as an edge between the nodes, based on the determination of the at least one waypoint.
17. The step of generating the robot's travel path is: The steps include identifying a reference unit map containing the target position of the robot in at least one of the unit maps, A step of identifying a comparative unit map adjacent to the reference unit map using at least one waypoint, The robot control method according to claim 16, characterized in that if the robot identifies that it is impossible to move from the at least one waypoint between the comparison unit map and the reference unit map to the target position due to an obstacle included in the reference unit map, the robot deletes the at least one waypoint between the comparison unit map and the reference unit map.
18. The step of generating the robot's travel path is: A step of determining the weighting value of the edges included in the connected graph based on the speed of the robot, the energy consumption of the robot, the safety of the robot, the priority of each of the at least one unit map, or at least one combination thereof. The robot control method according to claim 16, comprising the step of applying the linked graph, on which the weighted values have been determined, to a predetermined path algorithm to generate the travel path based on the obtained path score.
19. The step of generating the robot's travel path is: A step of controlling the robot so that it moves along the travel path based on the generation of the travel path, The robot updates the target map by receiving information about obstacles it has identified while moving. The robot control method according to claim 11, characterized by comprising the step of determining the at least one waypoint again based on the target map on which the update has been performed.
20. The step of generating the robot's travel path is: If the at least one unit map relates to a multi-layer structure, the steps include determining a target layer from among the multiple layers included in the multi-layer structure, The robot control method according to claim 11, comprising the step of generating the target map by linking at least one map relating to the target layer among the at least one unit map.