Electronic device and its manufacturing method
The electronic device and control method enhance robot navigation by dividing maps into cells and adjusting paths based on cost and distance, addressing the challenge of moving to changing target positions and obstacles, ensuring accurate and user-intent-aligned movement.
Patent Information
- Application Number
- JP2024094153
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-02-14
- Filing Date
- 2024-06-11
- Publication Date
- 2025-08-26
AI Technical Summary
Existing robot navigation systems struggle to accurately move to a target object when its position changes, as they rely on predefined points without real-time adjustments for obstacles and dynamic object positions.
An electronic device and control method that divide a semantic map and cost map into cells, determining a target cell based on cell cost, distance to the object, and obstacle presence, using sensors to adjust the path in real-time.
Enables accurate robot movement to a target object by accounting for dynamic obstacles and changing positions, ensuring the path aligns with user intent and environmental conditions.
Smart Images

Figure 2025124568000001_ABST
Abstract
Description
[Technical Field]
[0001] The present invention relates to an electronic device and a control method thereof, and more particularly to a technology for enabling a robot to move to a target object more accurately when a command to move to the target object is received. [Background technology]
[0002] Recently, one of the methods for robots to interact with users in more diverse ways is technology that searches for a target object and moves to the target object. However, in the case of robot movement, the input value for the destination point may be the target object, but the final target position to which the robot should move must be calculated as a point and transmitted to the robot. Furthermore, if the position of the object or object to be reached changes, the final target position must be calculated by reflecting the position of the target object changed in real time, rather than a predefined point, to accurately estimate the final target position.
[0003] To solve these problems, it is necessary to develop technology that can identify a target object, set the surrounding area of the target object, determine a single destination point based on the distance between the robot and the target object, and re-determine the destination based on obstacles identified during movement. [Prior art documents] [Patent documents]
[0004] [Patent Document 1] Japanese Patent Application Publication No. 2022-128579 Summary of the Invention [Problem to be solved by the invention]
[0005] The present invention has been made in view of the above-mentioned conventional problems, and an object of the present invention is to provide an electronic device and a control method thereof for allowing a robot to move to a target object more accurately. [Means for solving the problem]
[0006] An embodiment of the present invention provides an electronic device and a control method thereof that divides a submap obtained based on a semantic map and a cost map into a plurality of cells in which a robot can be positioned, and determines a target cell as a destination based on the cost of the cell and the distance between the object and the robot, so that a movement command from a user to a target object can be executed in accordance with the user's intention.
[0007] In addition, an embodiment of the present invention provides an electronic device and a control method thereof that can identify obstacles located within a predetermined distance from the robot's position by generating a map-based local cost map through a sensor included in the robot from the point of controlling the robot to move to the center position of a target cell, and redetermine the target cell according to the position of the obstacle.
[0008] According to one aspect of the present invention, an electronic device includes a memory storing computer-executable instructions and at least one processor that accesses the memory and executes the instructions. The at least one processor, based on identifying a movement command for moving a robot to a target object from command data, acquires a sub-map from a semantic map including candidate areas in which the robot can be positioned in accordance with the movement command, among areas identified as a predetermined distance from the position of the target object, and divides the candidate areas into a plurality of cells based on a footprint of the robot acquired by applying a size of the robot to the sub-map. The electronic device determines a target cell, which is a destination of the movement command, from the plurality of cells based on at least one of a first input related to a cost of each of the plurality of cells, a second input related to a distance between each of the plurality of cells and the target object, a third input related to a distance between each of the plurality of cells and the robot, or any combination thereof.
[0009] In one embodiment, the at least one processor recognizes the target object from the movement command, applies the target object to the semantic map to obtain the position of the target object represented in the semantic map, identifies obstacles included in the semantic map based on a map-based global cost map generated via a LiDAR sensor, and determines an area excluding the identified obstacles in the semantic map as the candidate area. In one embodiment, the at least one processor transitions the size of the robot into the coordinate system of the submap to obtain the footprint indicating the size of the robot in the submap, and divides the candidate area into the plurality of cells in which the robot can be located based on the size of the footprint. In one embodiment, the at least one processor receives a group of weights for determining the target cell, identifies a first weight, a second weight, and a third weight from the group of weights, and determines the target cell based on at least one of the first weight applied to the first input, the second weight applied to the second input, the third weight applied to the third input, or any combination thereof. In one embodiment, the at least one processor applies the sub-map to a map-based global cost map generated via a lidar sensor to obtain a cost for each of the plurality of cells, determines a first sub-input for a temporary cell among the plurality of cells based on a comparison of the cost of the temporary cell with a preset cost, determines a second sub-input for the temporary cell included in the second input based on a first distance, which is a straight-line distance between a center position of the temporary cell and a position of the target object, determines a third sub-input for the temporary cell included in the third input based on a second distance, which is a path distance regarding a path along which the robot moves to the center position of the temporary cell, and determines a movement cost for the temporary cell based on at least one of the first sub-input, the second sub-input, the third sub-input, or any combination thereof. In one embodiment, the at least one processor identifies the position of the target object and the position of the robot in the semantic map, determines the straight-line distance between the center position of the arbitrary cell and the position of the target object as the first distance, applies the center position of the arbitrary cell and the position of the robot to a path generation model trained to calculate a path to obtain a path for the robot to move to the center position of the arbitrary cell, and determines the length of the path obtained from the path generation model as the second distance. In one embodiment, the at least one processor determines the cell with the lowest moving cost from among the plurality of cells as the target cell based on determining the moving costs of all cells included in the plurality of cells. In one embodiment, the at least one processor controls the robot to move to a center position of the target cell based on the determination of the target cell. In one embodiment, the at least one processor acquires a map-based local cost map generated via a sensor included in the robot from the time the robot is controlled to move to the center position of the target cell, and identifies obstacles present in an area identified as a predetermined distance from the position of the robot based on the local cost map. In one embodiment, the at least one processor determines, based on identifying the obstacle from the local cost map, whether the obstacle is included in the path the robot will take to move to the center position of the target cell, and, based on the fact that the obstacle is included in the robot's path, redetermines a target cell, which is the destination of the movement command, from among the plurality of cells based on the robot's position.
[0010] In order to achieve the above object, according to one aspect of the present invention, a control method of an electronic device including at least one processor includes the steps of: acquiring a sub-map from a semantic map, based on identifying a movement command for moving a robot to a target object from command data, including candidate areas in which the robot can be positioned in response to the movement command, from areas identified as a predetermined distance from the position of the target object; dividing the candidate areas into a plurality of cells based on a footprint of the robot acquired by applying the size of the robot to the sub-map; and determining a target cell, which is a destination of the movement command, from the plurality of cells based on at least one of a first input related to a cost of each of the plurality of cells, a second input related to a distance between each of the plurality of cells and the target object, a third input related to a distance between each of the plurality of cells and the robot, or any combination thereof.
[0011] In one embodiment, the acquiring of the sub-map includes recognizing the target object from the movement command; applying the target object to the semantic map to acquire the position of the target object represented in the semantic map; identifying obstacles included in the semantic map based on a map-based global cost map generated using a LiDAR sensor; and determining an area excluding the identified obstacles in the semantic map as the candidate area. In one embodiment, the step of dividing the candidate area into a plurality of cells includes the steps of: transitioning the size of the robot to a coordinate system of the submap to obtain the footprint indicating the size of the robot in the submap; and dividing the candidate area into the plurality of cells in which the robot can be located based on the size of the footprint. In one embodiment, determining the target cell includes receiving a group of weights for determining the target cell; identifying a first weight, a second weight, and a third weight from the group of weights; and determining the target cell based on at least one of the first weight applied to the first input, the second weight applied to the second input, the third weight applied to the third input, or any combination thereof. In one embodiment, determining the target cell includes: applying the sub-map to a map-based global cost map generated via a LIDAR sensor to obtain a cost of each of the plurality of cells; determining a first sub-input of a temporary cell included in the first input based on a comparison of the cost of the temporary cell among the plurality of cells with a preset cost; determining a second sub-input of the temporary cell included in the second input based on a first distance, which is a straight-line distance between a center position of the temporary cell and a position of the target object; determining a third sub-input of the temporary cell included in the third input based on a second distance, which is a path distance regarding a path along which the robot moves to the center position of the temporary cell; and determining a movement cost of the temporary cell based on at least one of the first sub-input, the second sub-input, the third sub-input, or any combination thereof. In one embodiment, determining the movement cost of the arbitrary cell includes identifying the position of the target object and the position of the robot in the semantic map; determining the straight-line distance between the center position of the arbitrary cell and the position of the target object as the first distance; applying the center position of the arbitrary cell and the position of the robot to a path generation model trained to calculate a path to obtain a path for the robot to move to the center position of the arbitrary cell; and determining the length of the path obtained from the path generation model as the second distance. In one embodiment, the step of determining the target cell includes a step of determining a cell with the lowest moving cost from among the plurality of cells as the target cell based on the determined moving costs of all cells included in the plurality of cells. In one embodiment, the control method further includes controlling the robot so that the robot moves to a center position of the target cell based on the determination of the target cell. In one embodiment, the step of controlling the robot includes the steps of: acquiring a map-based local cost map generated via a sensor included in the robot from the point in time when the robot is controlled to move to a center position of the target cell; and identifying obstacles present in an area identified as a predetermined distance from the position of the robot based on the local cost map. In one embodiment, the step of controlling the robot includes a step of determining, based on identifying the obstacle from the local cost map, whether the obstacle is included in a path along which the robot will move to the center position of the target cell, and a step of re-determining a target cell, which is the destination of the movement command, from among the plurality of cells based on the position of the robot, based on the fact that the obstacle is included in the path of the robot. [Effects of the Invention]
[0012] The effects of the electronic device and the control method thereof according to the present invention will be described.
[0013] According to the present invention, a submap obtained based on a semantic map and a cost map is divided into a plurality of cells in which a robot can be positioned, and a target cell, which is a destination, is determined based on the cost of the cell and the distance between the object and the robot, thereby achieving the effect of determining a target cell so that a movement command from a user to a target object can be executed in accordance with the user's intention.
[0014] In addition, according to the present invention, a map-based local cost map is generated through a sensor included in the robot from the point at which the robot is controlled to move to the center position of a target cell, thereby identifying obstacles located within an area within a predetermined distance based on the position of the robot and redetermining the target cell according to the position of the obstacle.
[0015] In addition, various other effects are provided that can be grasped directly or indirectly through this specification. [Brief explanation of the drawings]
[0016] [Figure 1] 1 illustrates an electronic device according to an embodiment of the present invention. [Figure 2] 4 is a flowchart illustrating a control method according to an embodiment of the present invention. [Figure 3] FIG. 10 is a diagram illustrating a movement path of a robot generated by controlling the robot in an electronic device according to an embodiment of the present invention. [Figure 4] FIG. 2 illustrates a method for obtaining a sub-map in an electronic device according to an embodiment of the present invention. [Figure 5a] FIG. 10 illustrates a method for dividing a candidate region included in a sub-map into multiple cells in an electronic device according to an embodiment of the present invention. [Figure 5b] 10A and 10B illustrate a method for determining a target cell from among candidate areas included in a sub-map in an electronic device according to an embodiment of the present invention. [Figure 6] 1 is a flowchart illustrating a method for controlling a robot in an electronic device according to an embodiment of the present invention. [Figure 7] 1 is a flowchart illustrating a method for determining a target cell in an electronic device according to an embodiment of the present invention. [Figure 8] FIG. 2 illustrates a navigation stack in an electronic device according to one embodiment of the present invention. [Figure 9]FIG. 1 illustrates a computer system for an electronic device or control method according to an embodiment of the present invention. DETAILED DESCRIPTION OF THE INVENTION
[0017] Hereinafter, specific examples of embodiments of the present invention will be described in detail with reference to the drawings.
[0018] In describing the drawings, the same or similar reference numerals are used for the same or similar components. When assigning reference numerals to components in each drawing, care should be taken to assign the same numerals to the same components as much as possible, even if they appear in different drawings. Furthermore, when describing embodiments of the present invention, if a detailed description of related known structures or functions is deemed to interfere with understanding of the embodiments of the present invention, such detailed description will be omitted. In particular, while various embodiments of the present invention will be described with reference to the drawings, this is not intended to limit the technology described herein to specific embodiments, but should be understood to include various modifications, equivalents, and / or alternatives of the embodiments of the present invention. In describing the drawings, similar reference numerals are used for similar components.
[0019] When describing components of embodiments of the present invention, terms such as "first," "second," "A," "B," "(a)," and "(b)" are used. These terms are intended to distinguish a component from other components and do not limit the nature, order, or sequence of the components. Furthermore, unless otherwise defined, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by a person of ordinary skill in the art to which the present invention pertains. Terms defined in commonly used dictionaries should be interpreted as meanings consistent with the meanings they have in the context of the relevant art, and should not be interpreted as idealized or overly formal unless expressly defined herein. For example, terms such as "first," "second," "primary," or "secondary" used herein are used to modify various components without regard to order and / or importance, and to distinguish one component from another, but do not limit the components. For example, a first user device and a second user device refer to different user devices, regardless of order or importance. For example, a first component may be named a second component, and similarly, the second component may be named in place of the first component, without departing from the scope of the invention as described herein.
[0020] In this specification, the terms "have," "can have," "include," or "can include" indicate the presence of a given feature (e.g., a value, a function, an operation, or a component such as a part) and do not exclude the presence of additional features.
[0021] When a component (e.g., a first component) is referred to as being "operatively or communicatively coupled with" or "connected to" another component (e.g., a second component), it should be understood that the component is directly coupled to the other component or is coupled through another component (e.g., a third component). On the other hand, when a component (e.g., a first component) is referred to as being "directly coupled with" or "directly connected to" another component (e.g., a second component), it should be understood that there is no other component (e.g., a third component) between the component and the other component.
[0022] As used herein, the expression "configured to" may be used in place of, for example, "suitable for," "having the capacity to," "designed to," "adapted to," "made to," or "capable of," depending on the context.
[0023] The term "configured to" does not necessarily mean "specifically designed to" hardware. Instead, in certain contexts, the phrase "device configured to" means that the device is "capable of" performing, in conjunction with other devices or components. For example, the phrase "a processor configured to perform A, B, and C" refers to either a dedicated processor (e.g., an embedded processor) for performing the operations, or a general-purpose processor (e.g., a CPU or application processor) that can perform the operations by executing one or more software programs stored in a memory device. Terms used herein are used solely to describe particular embodiments and are not intended to limit the scope of other embodiments. The singular includes the plural unless the context clearly dictates otherwise. Terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art described herein. Among the terms used in this specification, terms defined in a general dictionary shall be interpreted to have the same or similar meaning as the meaning they have in the context of the related art, and shall not be interpreted to have an ideal or excessively formal meaning unless expressly defined in this specification. In some cases, even terms defined in this specification shall not be interpreted to exclude embodiments of the present invention.
[0024] As used herein, 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" refer to (1) including at least one A, (2) including at least one B, or (3) including both at least one A and at least one B. Furthermore, when describing components of embodiments of the present invention, phrases such as "A or B," "at least one of A and B," "at least one of A or B," "A, B, or C," "at least one of A, B, or C," and "at least one of A, B, C, or any combination thereof" each include any one of the items listed together with that phrase, or all possible combinations thereof. In particular, a phrase such as "at least one of A, B, C, or any combination thereof" includes A or B or C or combinations thereof such as AB or ABC.
[0025] Hereinafter, an embodiment of the present invention will be described in detail with reference to FIGS.
[0026] FIG. 1 is a diagram illustrating an electronic device according to an embodiment of the present invention.
[0027] The electronic device 100 according to this embodiment includes a processor 110 and a memory 120 containing instructions 122 .
[0028] The electronic device 100 is an apparatus that determines a destination of a robot in response to a movement command and determines a movement path of the robot. For example, the electronic device 100 receives command data. The electronic device 100 identifies a movement command for moving the robot from the command data. When the electronic device 100 identifies the movement command, it identifies the location of a target object from a semantic map. When the electronic device 100 identifies the location of the target object, it determines the destination of the robot based on the semantic map and a cost map. When the electronic device 100 determines the destination of the robot, it controls the robot so that the robot moves to the destination. A detailed description of how the electronic device 100 determines the destination of the robot will be provided below with reference to FIGS. 4 to 6.
[0029] The semantic map represents a map expressing semantic information of a space in which a robot can navigate. For example, the semantic information includes at least one of the meaning of an object, the comprehension of a scene, environmental information, or any combination thereof. In particular, the semantic map includes not only geometric information of the space but also semantic information of the object. Based on the semantic map, the electronic device 100 performs an operation of identifying the location of a target object and an operation of acquiring a sub-map including candidate areas in which the robot can be located, including the target object.
[0030] A cost map indicates a map containing the probability that an object may exist at a specific location based on data acquired by a robot through a sensor. Specifically, a cost map is obtained by applying a filter to a map and includes a feature map containing features of the terrain or map around the location where the robot is located. For example, the probabilities of a cost map are expressed as a grid of a predetermined shape. The probabilities are expressed between 0 and 255, but are not limited thereto. Cost maps include a local cost map and a global cost map. A local cost map indicates a map generated through a robot's sensors. A global cost map indicates a map generated based on data such as predefined map information. The electronic device uses the global cost map to determine the robot's destination. Then, the electronic device uses the local cost map to identify obstacles around the robot. A detailed description of cost maps will be provided below with reference to FIGS. 5a and 5b.
[0031] The processor 110 executes software to control at least one other component (e.g., a hardware or software component) coupled to the processor 110. The processor 110 also performs various other data processing or calculation operations. For example, the processor 110 stores instruction data, a semantic map, a cost map, and the like in the memory 120.
[0032] For reference, the processor 110 performs all operations performed by the electronic device 100. Therefore, for convenience of explanation, the operations performed by the electronic device 100 will be mainly described as operations performed by the processor 110 in this specification. Also, for convenience of explanation, the processor 110 will mainly be described as one processor in this specification, but is not limited thereto. For example, the electronic device 100 includes at least one or more processors. Each of the at least one or more processors performs all operations related to the operations performed by the electronic device 100.
[0033] The memory 120 temporarily and / or permanently stores various data and / or information required to perform operations that determine the robot's destination, such as instruction data, a semantic map, and a cost map.
[0034] The electronic device 100 further includes a communication unit (not shown). The communication unit supports communication between the electronic device 100 and a user terminal. For example, the communication unit includes one or more components that enable communication between the electronic device 100 and the user terminal. For example, the communication unit includes a short-range wireless communication unit, a microphone, etc. Here, short-range communication technologies include wireless LAN (Wi-Fi), Bluetooth®, ZigBee®, Wi-Fi Direct (WFD), ultra-wideband (UWB), infrared data association (IrDA), Bluetooth® Low Energy (BLE), and near field communication (NFC), but are not limited thereto.
[0035] FIG. 2 is a flowchart illustrating a control method according to one embodiment of the present invention.
[0036] In step 210, an electronic device (e.g., electronic device 100 of FIG. 1) according to this embodiment acquires a sub-map including candidate areas in which a robot can be positioned in response to a movement command. For example, the electronic device identifies a movement command for moving the robot to a target object from command data. Based on the identification of the movement command, the electronic device acquires a sub-map including candidate areas in which the robot can be positioned in response to the movement command from the semantic map, among areas identified as a predetermined distance from the position of the target object. That is, the sub-map includes a drivable area in which the robot can move because there are no obstacles near the target object. That is, the sub-map includes an area in which the robot can be positioned or move within a space in which the target object is located. Therefore, for convenience of explanation, the drivable area, drivable area, and candidate area will be described herein as referring to the same area.
[0037] In step 220, the electronic device divides the candidate area into a plurality of cells. For example, the electronic device applies the size of the robot to the sub-map to obtain a footprint of the robot. The electronic device divides the candidate area into a plurality of cells based on the footprint. The electronic device determines at least one cell of the plurality of cells as a destination of the robot. Here, the electronic device obtains the footprint of the robot based on a comparison between the actual size of the robot and the actual size of the actual space of the sub-map.
[0038] The electronic device determines a target cell, which is a destination of the movement command, from among the plurality of cells in step 230. For example, the electronic device determines the target cell from among the plurality of cells based on at least one of a first input related to the cost of each of the plurality of cells, a second input related to the distance between each of the plurality of cells and the target object, a third input related to the distance between each of the plurality of cells and the robot, or any combination thereof. Here, the target cell includes an area where the robot can reach.
[0039] The first input includes a value related to the cost of each of the plurality of cells. For example, the value related to the cost indicates a value obtained by comparing the cost with a predetermined threshold value. The cost of a cell is obtained from a global cost map. Therefore, the value related to the cost of a cell indicates a result of comparing the probability represented in the global cost map with the predetermined probability. For example, if the cost of a cell is 250 or more, the first input (e.g., the value related to the cost of the cell) of the cell is −5. That is, if the cost of a cell is less than 250, the first input of the cell is 0. This example is provided for convenience of explanation and may be changed according to other embodiments.
[0040] The second input includes a value related to the distance between each of the plurality of cells and the target object. For example, the value related to the distance for the second input indicates a value obtained by comparing the distance between the cell and the target object with a predetermined threshold value. For example, if the distance between the cell and the target object is less than 1 meter, the second input (e.g., value related to the distance) for the cell is 10. That is, if the distance between the cell and the target object is greater than or equal to 1 meter and less than 3 meters, the second input for the cell is 5. This example is provided for ease of explanation and may be modified in other embodiments.
[0041] The third input includes a value related to the distance between each of the plurality of cells and the robot. For example, the value related to the distance for the third input indicates a value based on the distance between the cell and the robot and a comparison result with a preset threshold value. For example, if the distance between the cell and the robot is less than 1 meter, the third input (e.g., value related to the distance) of the cell is 5. That is, if the distance between the cell and the robot is greater than 1 meter and less than 3 meters, the second input of the cell is 3. This example is provided for convenience of explanation and may be changed according to other embodiments.
[0042] The electronic device determines a target cell using the first to third inputs in an operation described below with reference to FIGS. 5a and 5b. This will be described in detail below with reference to FIGS. 5a and 5b. However, the method by which the electronic device determines a target cell is not limited thereto. For example, the electronic device applies the first to third inputs and the submap to an optimal cost calculation model trained to calculate a reachable region, and determines a target cell from among a plurality of cells included in the submap. A detailed description of the optimal cost calculation model will be provided below with reference to FIG. 2.
[0043] Regarding the optimal cost calculation model, the electronic device trains the optimal cost calculation model. Illustratively, the optimal cost calculation model includes a neural network. The neural network includes multiple layers, each of which includes multiple nodes. The nodes have node values determined based on an activation function. Nodes in any layer are connected to nodes (e.g., other nodes) in other layers via links (e.g., connection edges) having connection weights. The node values of the nodes are propagated to other nodes via the links. In the inference operation of a neural network, node values are propagated forward from the previous layer to the next layer.
[0044] For example, the forward propagation operation in the optimal cost calculation model refers to an operation of propagating a node value based on input data from the input layer to the output layer of the optimal cost calculation model. That is, after a node is connected to the node via a connecting line, the node value of the node is propagated (e.g., forward propagated) to a node (e.g., a next node) in the layer. For example, a node receives a value weighted by a connection weight value from a previous node (e.g., multiple nodes) connected via a connecting line.
[0045] The node value of a node is determined by applying an activation function to a weighted sum (e.g., weighted sum) of values received from previous nodes. The neural network parameters illustratively include the connection weights described above. The neural network parameters are updated so that the objective function value (described below) is changed in a targeted direction (e.g., a direction in which loss is minimized).
[0046] The trained optimal cost calculation model refers to a model trained through machine learning, and is a trained machine learning model that outputs a training output (e.g., a target cell) from training inputs (e.g., the first input to the third input, and the submap).
[0047] The machine learning model (e.g., the trained optimal cost calculation model) is generated through machine learning, such as a learning algorithm including, but not limited to, supervised learning, unsupervised learning, semi-supervised learning, or reinforcement learning.
[0048] The machine learning model includes multiple artificial neural network layers. Specifically, the trained optimal cost calculation model includes a shared layer including at least one convolution operation and multiple classifier layers (e.g., task-specific layers) connected to the shared layer. The artificial neural network may be at least one combination of a deep neural network (DNN), a convolutional neural network (CNN), a U-Net for Image Segmentation (U-Net), a recurrent neural network (RNN), a restricted Boltzmann machine (RBM), a deep belief network (DBN), a bidirectional recurrent deep neural network (BRDNN), a deep Q-network, or a combination thereof, but is not limited to the above examples.
[0049] In the case of supervised learning, the machine learning model is trained based on training data including pairs of training inputs and training outputs mapped to the training inputs. For example, the machine learning model is trained to output training outputs from the training inputs. During training, the machine learning model generates temporary outputs in response to the training inputs and is trained to minimize the loss between the temporary outputs and the training outputs (e.g., training targets). During the training process, the parameters of the machine learning model (e.g., connection weights between nodes / layers in a neural network) are updated based on the loss. Such training may be performed, for example, on the electronic device on which the machine learning model is executed, or via a separate server. The machine learning model after training (e.g., a trained optimal cost calculation model) is stored in a memory (e.g., memory 120 in FIG. 1).
[0050] FIG. 3 is a diagram showing a movement path of a robot generated by controlling the robot in an electronic device according to an embodiment of the present invention.
[0051] An electronic device (e.g., electronic device 100 of FIG. 1) according to this embodiment controls a robot 310 so that the robot 310 moves to a target object 320. For reference, in FIG. 3, for convenience of explanation, the robot 310 and the target object 320 are illustrated as footprints of an actual robot and an actual target object, respectively, in the semantic map 300.
[0052] The electronic device determines a destination of the robot 310 to move the robot 310 to the target object 320. For example, the destination of the robot 310 is different from the position of the target object 320. The electronic device acquires a sub-map in an area identified as a predetermined distance from the position of the target object 320. For reference, FIG. 3 shows the space where the target object 320 is located as a sub-map. The electronic device determines one of the positions on the sub-map as the destination of the robot 310. In this regard, the electronic device receives the target object as an input in response to a movement command, and outputs one point in the space where the target object is located as the destination of the robot 310.
[0053] When the electronic device determines the destination of the robot 310, the electronic device determines the movement path 330 used in the operation that determined the destination of the robot 310 as the movement path of the robot 310 according to the movement command. For example, the movement path 330 is based on the distance used in the operation of obtaining the third input described above in FIG.
[0054] The electronic device does not need to receive coordinates from a user or an external device to move the robot 310. For example, the electronic device determines the destination of the robot 310 by simply receiving the target object 320 and moves the robot 310 to the determined destination. Specifically, the electronic device determines the destination of the robot 310 based on a semantic map and a cost map (more specifically, a global cost map). After determining the destination of the robot 310, the electronic device moves the robot 310. During the movement of the robot 310, the electronic device identifies obstacles around the robot 310. In this case, the electronic device redetermines the destination of the robot 310 based on the semantic map and a cost map (more specifically, a local cost map). A detailed description of the destination redetermining will be provided below with reference to FIG. 6.
[0055] FIG. 4 illustrates a method for obtaining a sub-map in an electronic device according to one embodiment of the present invention.
[0056] An electronic device according to this embodiment (e.g., the electronic device 100 in FIG. 1) obtains the location of a target object represented by the semantic map 400. For example, the electronic device applies the target object to the semantic map 400. The electronic device recognizes the target object from a movement command.
[0057] The electronic device identifies obstacles included in the semantic map 400 based on a map-based global cost map 410 generated via a LiDAR sensor. Referring to FIG. 4, the global cost map 410 includes probabilities that obstacles included in the semantic map 400 may be located. The electronic device combines the semantic map 400 and the global cost map 410 to obtain a submap 420. That is, the submap 420 is a map obtained from the semantic map 400 and is obtained by combining the semantic map 400 and the global cost map 410.
[0058] The electronic device determines an area excluding obstacles identified in the semantic map 400 as a candidate area 430. That is, the candidate area 430 includes an area where the robot can be positioned in response to a movement command among areas identified as a predetermined distance based on the position of the target object, and also includes an area excluding obstacles identified in the semantic map 400.
[0059] The electronic device determines a region within a preset distance near the target object as the candidate region 430. For example, if the preset distance is 5 m, the electronic device determines a region within 5 m of a space or region that is spatially separated by a wall or the like and that includes the target object as the candidate region 430. By determining the candidate region 430, the electronic device increases the accuracy of the operation of determining the destination of the robot.
[0060] FIG. 5a is a diagram illustrating a method for dividing a candidate region included in a sub-map into a plurality of cells in an electronic device according to an embodiment of the present invention.
[0061] The electronic device according to this embodiment (e.g., the electronic device 100 in FIG. 1) transfers the size of the robot to the coordinate system of the submap 500a and obtains a footprint 510a indicating the size of the robot in the submap 500a. Based on the size of the footprint 510a, the electronic device divides the candidate area 520a into a plurality of cells in which the robot can be located.
[0062] The electronic device divides the candidate area 520a into a plurality of cells based on the submap 500a and the robot's footprint 510a. Each of the plurality of cells corresponds to an area that the actual robot can occupy in the space of the actual submap 500a. For example, if the robot's footprint 510a is in the form of a polygon, the electronic device divides the candidate area 520a into cells of the same shape as the polygon shape of the footprint 510a. Referring to FIG. 5a, the electronic device obtains the rectangular footprint 510a by converting the size of the robot into the coordinate system of the submap 500a.
[0063] The electronic device divides the candidate area 520a into 15 cells based on the size of the rectangular footprint 510a. The electronic device determines at least one of the 15 cells as the robot's destination. A detailed description of a method for determining the robot's destination (i.e., target cell) from among the plurality of cells will be described in detail below with reference to FIG. 5b. Furthermore, the number of the plurality of cells and the robot's footprint 510a are as shown in FIG. 5a for convenience of explanation only and are not limited thereto.
[0064] FIG. 5b illustrates a method for determining a target cell from among candidate areas included in a sub-map in an electronic device according to an embodiment of the present invention.
[0065] The electronic device according to this embodiment (eg, the electronic device 100 of FIG. 1) determines a target cell from among the candidate areas included in the submap.
[0066] The electronic device applies the sub-map to a map-based global cost map generated via the lidar sensor to obtain the cost of each of the plurality of cells. For example, if the plurality of cells includes 15 cells as shown in FIG. 5b, the electronic device applies the sub-map to the global cost map to obtain the cost of cells 1 to 15.
[0067] The electronic device determines a first sub-input of any cell 520b included in the first input based on a comparison of the cost of the any cell 520b among the plurality of cells with a preset cost. For example, the cost of the any cell 520b is obtained from a global cost map. The first input includes a first sub-input for each of the plurality of cells. The first sub-input includes a value determined based on a comparison of the cost of the cell with the preset cost. Illustratively, if the cost of the any cell 520b is 250 or greater, the first sub-input of the any cell 520b (e.g., the value included in the first input) is −5.
[0068] The electronic device determines a second sub-input of any cell 520b included in the second input based on a first distance, which is the linear distance between the center position of any cell 520b and the target object 530b. The second input includes a second sub-input for each of a plurality of cells. The second sub-input includes a value determined based on a comparison between the first distance of the cell (e.g., the linear distance between the center position of the cell and the target object 530b) and a preset distance. For example, if the distance between the cell and the target object 530b is less than 1 meter, the second sub-input of the cell (e.g., a value related to the distance) is 10. However, the first distance is not limited thereto. For example, the first distance may include the shortest distance between the center position of any cell 520b and the target object 530b.
[0069] The electronic device determines a third sub-input of any cell 520b included in the third input based on a second distance, which is a path distance of the path along which the robot 510b moves to the center position of any cell 520b. The third input includes a third sub-input for each of a plurality of cells. The third sub-input includes a value determined based on a comparison between the second distance of the cell (e.g., the path distance of the path along which the robot 510b moves to the center position of any cell 520b) and a preset distance. Illustratively, if the distance between the cell and the robot 510b is less than 1 meter, the third sub-input of the cell (e.g., a value related to the distance) is 5.
[0070] To obtain the first distance and the second distance, the electronic device performs the following operations. For example, the electronic device identifies the position of the target object 530b and the position of the robot 510b in the semantic map. The electronic device determines the straight-line distance between the center position of any cell 520b and the position of the target object 530b as the first distance. The electronic device applies the center position of any cell 520b and the position of the robot 510b to a path generation model trained to calculate a path, thereby obtaining a path for the robot 510b to move to the center position of the any cell 520b. Then, the electronic device determines the length of the path obtained from the path generation model as the second distance. The path generation model obtains or outputs a path from inputs such as at least two positions or points using a path generation algorithm such as the A* algorithm or the Dijkstra algorithm. However, the path generation algorithm is not limited thereto and includes all types of algorithms related to path generation.
[0071] The electronic device determines a movement cost of any cell 520b based on at least one of the first sub-input, the second sub-input, the third sub-input, or any combination thereof. Specifically, the electronic device determines a movement cost of any cell 520b based on all of the first sub-input to the third sub-input. Exemplarily, the electronic device determines a value obtained by adding up the first sub-input, the second sub-input, and the third sub-input as the movement cost of any cell 520b. For reference, the movement cost of any cell 520b is different from the cost of any cell 520b obtained from the global cost map.
[0072] The electronic device determines a cell with the lowest moving cost from among the plurality of cells as a target cell based on the determination of the moving costs of all cells included in the plurality of cells. However, the method of determining the target cell is not limited thereto. For example, the electronic device may determine a cell with the highest moving cost from among the plurality of cells as a target cell. That is, the method of determining the target cell differs depending on the method of calculating or determining the moving costs of each of the plurality of cells.
[0073] The electronic device receives a group of weights for determining a target cell. Exemplarily, the electronic device identifies a first weight, a second weight, and a third weight from the group of weights. The electronic device determines the target cell based on at least one of a value obtained by applying the first weight to a first input (more specifically, a first sub-input of any cell 520b), a value obtained by applying the second weight to a second input (more specifically, a second sub-input of any cell 520b), a value obtained by applying the third weight to a third input (more specifically, a third sub-input of any cell 520b), or any combination thereof. Exemplarily, the electronic device determines a value obtained by summing the value obtained by applying the first weight to the first input, the value obtained by applying the second weight to the second input, and the value obtained by applying the third weight to the third input as a moving cost of the cell. The electronic device then determines the target cell by comparing the moving costs of the cells whose moving costs have been determined by summing the weights. Thereafter, based on the target cell being determined, the electronic device controls the robot 510b so that the robot 510b moves to the center position of the target cell.
[0074] FIG. 6 is a flowchart illustrating a method for controlling a robot in an electronic device according to an embodiment of the present invention.
[0075] The electronic device according to this embodiment receives an object movement command in step 601. For example, the electronic device receives a movement command to move a robot to a target object as command data.
[0076] The electronic device receives the semantic map and the global cost map in step 603. For example, the electronic device receives the semantic map and the global cost map to move the robot to a target object, more specifically, to determine a destination of the robot, based on receiving command data.
[0077] The electronic device calculates or obtains a drivable area in step 605. For example, the electronic device calculates or obtains, as the drivable area, a sub-map including candidate areas in which the robot can be positioned in response to a movement command, among areas identified as a predetermined distance based on the position of the target object. The detailed description related to this is the same as that described above with reference to FIG. 3.
[0078] The electronic device acquires footprint data of the robot in step 607. For example, the electronic device applies the size of the robot to the sub-map to acquire the footprint of the robot.
[0079] The electronic device calculates or obtains the reachable region in step 609. For example, the electronic device calculates or obtains the reachable region by dividing the candidate region into multiple cells based on the footprint of the robot. Then, the electronic device outputs array data (e.g., multiple cells) represented by the reachable region in step 611.
[0080] The electronic device calculates or obtains an optimal cost in steps 613 to 617. For example, the optimal cost indicates the cost of moving through the cells. The electronic device determines the cost of moving through each of the cells based on the travel data (e.g., the robot's position and distance data) and the semantic map. The detailed description of this is the same as that described above with reference to FIGS. 5a and 5b.
[0081] In steps 619 and 621, the electronic device controls the robot to move to a final destination. For example, the final destination includes a target cell. Based on the determination of the movement costs of all cells included in the plurality of cells, the electronic device determines a cell with the lowest movement cost from among the plurality of cells as the target cell. Based on the determination of the target cell, the electronic device controls the robot to move to the center position of the target cell (i.e., the final destination).
[0082] The electronic device acquires a real-time sensor data-based local cost map in step 623. For example, the electronic device acquires a map-based local cost map generated via sensors included in the robot from the time when the electronic device controls the robot to move to the center position of the target cell.
[0083] The electronic device identifies obstacles present in an area identified as a predetermined distance from the robot's position based on the local cost map. If an obstacle is identified, the electronic device determines that the obstacle is present in an area not represented in the global cost map or that the target object has been moved. Based on the obstacle identified from the local cost map, the electronic device determines whether the obstacle is included in a path along which the robot will move to the center position of a target cell. If the obstacle is included in the robot's path (i.e., a movement path related to a second distance between the robot and the target cell), the electronic device re-determines a target cell, which is the destination of the movement command, from among a plurality of cells based on the robot's position.
[0084] Based on the determination of whether the robot is located at the final destination in step 625, the electronic device determines whether the robot has arrived in step 627. That is, if the robot is located at the final destination, the electronic device determines that the robot has arrived at the target object. Here, if the robot has not arrived, the electronic device repeats the above steps from step 601.
[0085] FIG. 7 is a flowchart illustrating a method for determining a target cell in an electronic device according to an embodiment of the present invention.
[0086] An electronic device according to this embodiment (for example, the electronic device 100 in FIG. 1) acquires sensor data in step 701. The electronic device acquires a semantic map based on the acquired sensor data.
[0087] The electronic device sets a target object by recognizing a context from the semantic map in steps 703 and 705. For example, the electronic device determines semantic information including at least one of the meaning of the object, the comprehension of the scene, environmental information, or any combination thereof by recognizing the context. The electronic device sets the target object in the semantic map based on identifying a movement command that causes the robot to move to the target object.
[0088] The electronic device estimates the final position of the robot in step 707. For example, the final position of the robot includes a point or area where the robot should be located in response to the movement command. Then, in steps 709 to 715, the electronic device determines the destination of the robot in response to the movement command and determines the movement path of the robot. For reference, the description of steps 709 to 715 is the same as the operations described in FIGS. 3 to 6, and therefore will not be described in FIG. 7.
[0089] In step 717, the electronic device controls the robot so that the robot moves to the center position of the target cell (i.e., the destination, which is the final position of the robot) based on the determination of the target cell.
[0090] FIG. 8 illustrates a navigation stack in an electronic device according to one embodiment of the present invention.
[0091] The electronic device 800 according to this embodiment includes a processor 810 and a memory 820. The electronic device 800 stores a navigation stack in the memory 820. For example, the navigation stack indicates a technology stack for a robot to move. Specifically, the navigation stack includes semantic SLAM (Simultaneous Localization and Mapping) and LiDAR SLAM. The electronic device acquires a semantic map from the semantic SLAM and a cost map from the LiDAR SLAM.
[0092] The processor 810 of the electronic device 800 determines a drivable area and a reachable area. Exemplarily, the drivable area includes an area in which the robot can move because there are no obstacles near the target object. The reachable area includes an area in which the robot can be positioned within the drivable area. Specifically, the processor 810 determines the drivable area based on a semantic map and a cost map. The processor 810 determines the reachable area based on the result of calculating the drivable area.
[0093] The electronic device 800 provides a method for moving a robot to a position suitable for the user's intention when receiving a command from the user to search for or move a target object. The electronic device 800 also provides a method for calculating a route to a destination by reflecting environmental information that can change in real time, without manually inputting information about the destination.
[0094] FIG. 9 is a diagram illustrating a computer system relating to an electronic device or control method according to an embodiment of the present invention.
[0095] Referring to FIG. 9, a computer system 1000 relating to an electronic device or control method includes at least one processor 1100, memory 1300, a user interface input device 1400, a user interface output device 1500, storage 1600, and a network interface 1700, all connected via a bus 1200.
[0096] The processor 1100 is a central processing unit (CPU) or a semiconductor device that executes processing based on instructions stored in the memory 1300 and / or the storage 1600. The memory 1300 and the storage 1600 include various types of volatile or non-volatile storage media. For example, the memory 1300 includes a read only memory (ROM) and a random access memory (RAM).
[0097] Thus, the steps of a method or algorithm described in connection with the embodiments disclosed herein may be embodied directly in hardware executed by processor 1100, in a software module, or in a combination of the two. The software module may reside in a storage medium (i.e., memory 1300 and / or storage 1600) such as RAM memory, flash memory, ROM memory, EPROM memory, EEPROM memory, registers, a hard disk, a removable disk, or a CD-ROM.
[0098] An exemplary storage medium is coupled to processor 1100 such that processor 1100 reads information from, and writes information to, the storage medium. Alternatively, the storage medium may be integral to processor 1100. The processor and the storage medium may reside in an application specific integrated circuit (ASIC). The ASIC may reside in a user terminal. Alternatively, the processor and the storage medium may reside as discrete components in a user terminal.
[0099] The above description is merely an illustrative example of the technical concept of the present invention, and various modifications and variations are possible by those skilled in the art without departing from the essential characteristics of the present invention.
[0100] The above-described embodiments may be implemented using hardware components, software components, and / or a combination of hardware and software components. For example, the devices, methods, and components described herein may be implemented using a general-purpose computer or a special-purpose computer, such as a processor, controller, arithmetic logic unit (ALU), digital signal processor, microcomputer, field programmable gate array (FPGA), programmable logic unit (PLU), microprocessor, or other device capable of executing and responding to instructions. The processing device executes an operating system (OS) and software applications executed on the operating system. The processing device also accesses, stores, manipulates, processes, and generates data in response to the execution of the software. For ease of understanding, a single processing device may be described. However, those skilled in the art will recognize that a processing device may include multiple processing elements and / or multiple types of processing elements. For example, a processing device may include multiple processors or one processor and one controller. Other processing configurations are also possible, such as parallel processors. Software includes computer programs, code, instructions, or a combination of one or more of these, that configure or instruct a processing device, either individually or collectively, to operate in a desired manner. The software and / or data may be permanently or temporarily embodied in some type of machine, component, physical device, virtual equipment, computer storage medium or device, or transmitted signal wave to be interpreted by or provide instructions or data to a processing device.The software may be distributed over network-coupled computer systems and stored and executed in a distributed manner. The software and data may be stored on computer-readable recording media.
[0101] The method according to the present invention may be embodied in the form of program instructions executed by various computer means and recorded on a computer-readable recording medium. The computer-readable recording medium may include, alone or in combination, program instructions, data files, data structures, etc. The program instructions recorded on the recording medium may be specially designed and constructed for the present invention, or may be well known and available to those skilled in the art of computer software. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tape, optical media such as CD-ROMs and DVDs, magneto-optical media such as floptical disks, and hardware devices specially configured to store and execute program instructions, such as ROM, RAM, and flash memory. Examples of program instructions include not only machine language code, such as that produced by a compiler, but also high-level language code executed by a computer using an interpreter, etc.
[0102] The hardware devices described above may be configured to operate as one or more software modules to perform the operations of the present invention, and vice versa.
[0103] Although the present embodiment has been described above with reference to limited drawings, those skilled in the art may apply various technical modifications and variations thereto. For example, suitable results may be achieved even if the described techniques are performed in a different order than described, and / or the components of the described systems, structures, devices, circuits, etc. are combined or combined in a different manner than described, or are replaced or substituted by other components or equivalents.
[0104] Accordingly, other implementations, other embodiments, and equivalents of the claims are within the scope of the claims.
[0105] Therefore, the embodiments of the present invention are intended to illustrate, not limit, the technical idea of the present invention, and the scope of the technical idea of the present invention is not limited by such embodiments. The scope of protection of the present invention should be interpreted by the claims, and all technical ideas within the equivalent range should be interpreted as being included in the scope of the present invention. [Explanation of symbols]
[0106] 100, 800 electronic equipment 110, 810, and 1100 processors 120, 820, 1300 memory 122 Imperative 300, 400 Semantic Map 310 Robot 320, 530b target object 330 Travel Route 410 Global Cost Map 420, 500a submaps 430, 520a candidate regions 510a footprint 510b Robot 520b cell 1000 Computer Systems 1200 Bus 1400 User Interface Input Device 1500 User interface output device 1600 Storage 1700 network interface
Claims
1. a memory storing computer-executable instructions; and at least one processor that accesses the memory and executes the instructions; The at least one processor acquiring, from a semantic map, a sub-map including candidate areas in which the robot can be positioned in response to the movement command, among areas identified as a predetermined distance from the position of the target object, based on identifying a movement command for moving the robot to a target object from the command data; Dividing the candidate area into a plurality of cells based on a footprint of the robot obtained by applying the size of the robot to the sub-map; determining a target cell, which is a destination of the movement command, from among the plurality of cells based on at least one of a first input related to a cost of each of the plurality of cells, a second input related to a distance between each of the plurality of cells and the target object, a third input related to a distance between each of the plurality of cells and the robot, or any combination thereof.
2. The at least one processor Recognizing the target object from the movement command; applying the target object to the semantic map to obtain a position of the target object represented by the semantic map; Identifying obstacles included in the semantic map based on a map-based global cost map generated through a LiDAR sensor; The electronic device according to claim 1 , wherein an area excluding the identified obstacle in the semantic map is determined as the candidate area.
3. The at least one processor Transitioning the size of the robot to a coordinate system of the sub-map to obtain the footprint indicating the size of the robot in the sub-map; The electronic device according to claim 1 , wherein the candidate area is divided into the plurality of cells in which the robot can be located based on the size of the footprint.
4. The at least one processor receiving a group of weights for determining the target cell; identifying a first weight, a second weight, and a third weight from the group of weights; 2. The electronic device of claim 1, wherein the target cell is determined based on at least one of a value obtained by applying the first weighted value to the first input, a value obtained by applying the second weighted value to the second input, a value obtained by applying the third weighted value to the third input, or any combination thereof.
5. The at least one processor applying the sub-map to a map-based global cost map generated via a lidar sensor to obtain a cost for each of the plurality of cells; determining a first sub-input of a temporary cell included in the first input based on a comparison between a cost of the temporary cell among the plurality of cells and a preset cost; determining a second sub-input of the given cell included in the second input based on a first distance, which is a straight-line distance between a center position of the given cell and a position of the target object; determining a third sub-input of the arbitrary cell included in the third input based on a second distance, which is a path distance regarding a path along which the robot moves to a center position of the arbitrary cell; The electronic device of claim 1 , wherein the movement cost of the any cell is determined based on at least one of the first sub-input, the second sub-input, the third sub-input, or any combination thereof.
6. The at least one processor Identifying the location of the target object and the location of the robot in the semantic map; A straight-line distance between a center position of the arbitrary cell and a position of the target object is determined as the first distance; Applying the center position of the arbitrary cell and the position of the robot to a path generation model trained to calculate a path to obtain a path for the robot to move to the center position of the arbitrary cell; The electronic device according to claim 5 , wherein the length of the path obtained from the path generation model is determined as the second distance.
7. The electronic device according to claim 5, wherein the at least one processor determines a cell among the plurality of cells with the lowest moving cost as the target cell based on the determined moving costs of all cells included in the plurality of cells.
8. The electronic device according to claim 1 , wherein the at least one processor controls the robot so that the robot moves to a center position of the target cell based on the determination of the target cell.
9. The at least one processor A map-based local cost map is acquired from a point in time when the robot is controlled to move to a center position of the target cell through a sensor included in the robot; The electronic device according to claim 8, wherein obstacles present in an area identified as a predetermined distance from the position of the robot are identified based on the local cost map.
10. The at least one processor Based on the identification of the obstacle from the local cost map, it is determined whether the obstacle is included in a path along which the robot moves to a center position of the target cell; The electronic device according to claim 9, wherein a target cell, which is the destination of the movement command, is re-determined from among the plurality of cells based on the position of the robot, based on the fact that the obstacle is included in the path of the robot.
11. 1. A method for controlling an electronic device including at least one processor, comprising: acquiring, from a semantic map, a sub-map including candidate areas in which the robot can be positioned in response to the movement command, among areas identified as a predetermined distance from the position of the target object, based on identifying a movement command for moving the robot to a target object from the command data; Dividing the candidate area into a plurality of cells based on a footprint of the robot obtained by applying the size of the robot to the sub-map; determining a target cell, which is a destination of the movement command, from among the plurality of cells based on at least one of a first input related to a cost of each of the plurality of cells, a second input related to a distance between each of the plurality of cells and the target object, a third input related to a distance between each of the plurality of cells and the robot, or any combination thereof.
12. The step of obtaining the submap comprises: recognizing the target object from the movement command; applying the target object to the semantic map to obtain a position of the target object represented in the semantic map; Identifying obstacles included in the semantic map based on a map-based global cost map generated via a LiDAR sensor; and determining, as the candidate area, an area excluding the identified obstacle in the semantic map.
13. The step of dividing the candidate region into a plurality of cells includes: obtaining the footprint representing the size of the robot on the sub-map by transitioning the size of the robot to the coordinate system of the sub-map; and dividing the candidate area into the plurality of cells in which the robot can be positioned based on the size of the footprint.
14. The step of determining a target cell comprises: receiving a weight group for determining the target cell; identifying a first weight, a second weight, and a third weight from the group of weights; determining the target cell based on at least one of a value obtained by applying the first weight to the first input, a value obtained by applying the second weight to the second input, a value obtained by applying the third weight to the third input, or any combination thereof.
15. The step of determining a target cell comprises: applying the sub-map to a map-based global cost map generated via a lidar sensor to obtain a cost for each of the plurality of cells; determining a first sub-input of a temporary cell included in the first input based on a comparison between a cost of the temporary cell among the plurality of cells and a predetermined cost; determining a second sub-input of the given cell included in the second input based on a first distance, which is a straight-line distance between a center position of the given cell and a position of the target object; determining a third sub-input of the given cell included in the third input based on a second distance, which is a path distance regarding a path along which the robot moves to a center position of the given cell; and determining a movement cost of the any cell based on at least one of the first sub-input, the second sub-input, the third sub-input, or any combination thereof.
16. The step of determining the movement cost of the arbitrary cell includes: identifying a location of the target object and a location of the robot in the semantic map; determining a straight-line distance between a center position of the arbitrary cell and a position of the target object as the first distance; applying the center position of the arbitrary cell and the position of the robot to a path generation model trained to calculate a path to obtain a path for the robot to move to the center position of the arbitrary cell; and determining the length of the path obtained from the path generation model as the second distance.
17. 16. The control method of claim 15, wherein the step of determining the target cell includes a step of determining a cell with the lowest moving cost from among the plurality of cells as the target cell based on the determined moving costs of all cells included in the plurality of cells.
18. The control method according to claim 11, further comprising the step of controlling the robot so that the robot moves to a center position of the target cell based on the determination of the target cell.
19. The step of controlling the robot includes: acquiring a map-based local cost map generated through a sensor included in the robot from a point in time when the robot is controlled to move to a center position of the target cell; and identifying an obstacle present in an area identified as a predetermined distance from the position of the robot based on the local cost map.
20. The step of controlling the robot includes: determining whether the obstacle is included in a path along which the robot moves to a center position of the target cell based on the identification of the obstacle from the local cost map; and re-determining a target cell, which is a destination of the movement command, from among the plurality of cells based on the position of the robot based on the fact that the obstacle is included in the path of the robot.
Citation Information
Patent Citations
Position estimation device, robot system including the same, and position estimation method thereof
JP2022128579A