WO2024080550A1 - 자율 탐색 방법 및 상기 방법을 수행하는 컴퓨팅 장치 - Google Patents

자율 탐색 방법 및 상기 방법을 수행하는 컴퓨팅 장치 Download PDF

Info

Publication number
WO2024080550A1
WO2024080550A1 PCT/KR2023/012892 KR2023012892W WO2024080550A1 WO 2024080550 A1 WO2024080550 A1 WO 2024080550A1 KR 2023012892 W KR2023012892 W KR 2023012892W WO 2024080550 A1 WO2024080550 A1 WO 2024080550A1
Authority
WO
WIPO (PCT)
Prior art keywords
frontier
points
boundary
spurious
point
Prior art date
Application number
PCT/KR2023/012892
Other languages
English (en)
French (fr)
Inventor
김영준
한경민
Original Assignee
이화여자대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 이화여자대학교 산학협력단 filed Critical 이화여자대학교 산학협력단
Publication of WO2024080550A1 publication Critical patent/WO2024080550A1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/136Segmentation; Edge detection involving thresholding
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1664Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/20Control system inputs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/11Region-based segmentation

Definitions

  • the present invention relates to an autonomous search method and a computing device that performs the method, and more specifically, to an autonomous search method and a mobile robot for searching a target space with an unknown environment.
  • robots perform tasks such as manipulation or movement based on autonomous judgment, and are especially used to perform various tasks on behalf of humans.
  • tasks such as manipulation or movement based on autonomous judgment
  • technologies such as mapping, localization, path planning, and obstacle avoidance and tracking are required.
  • path planning is used as an indicator to evaluate robot performance.
  • the robot's performance through route planning can be evaluated by deriving an efficient route between the starting point and destination from the map provided to the robot.
  • the derived route accounts for most of the route planning research and can be created as a short route in terms of distance between two points or a fast route in time.
  • the robot's performance through path planning can be evaluated by its exploration ability to find a new area rather than finding a path between two points.
  • the robot's navigation ability based on such path planning varies depending on information about the environment in which the robot operates, that is, the presence or absence of a map.
  • the state in which the robot has a map is called a known environment, and the state in which the robot does not have a map is called an unknown environment.
  • navigation begins after path creation is completed based on a pre-provided map, and in an unknown environment, navigation begins without a map.
  • the present invention provides an autonomous search method that discovers a new unknown area through the search of a mobile robot while maintaining accuracy for detecting the boundary area of the target space in an unknown environment.
  • the present invention applies a boundary detection algorithm (FFP), a boundary filter function, and an obstacle filter function to extract meaningful boundary areas from a plurality of boundary areas more accurately, detailing the occupancy grid map through discovery of new unknown areas.
  • FFP boundary detection algorithm
  • a boundary filter function a boundary filter function
  • an obstacle filter function to extract meaningful boundary areas from a plurality of boundary areas more accurately, detailing the occupancy grid map through discovery of new unknown areas.
  • the present invention provides an autonomous search method that determines an optimal movement path while minimizing search time by simultaneously searching a plurality of boundary points for a boundary area in parallel using a parallel path planning algorithm.
  • the present invention provides an autonomous search method that searches all boundary areas using a mobile robot while improving the application speed of the boundary detection algorithm by downsampling the occupancy grid map.
  • An autonomous search method includes generating an occupancy grid map for a target space in which an unknown area exists; extracting a plurality of frontier points for exploration of the unknown area on the occupancy grid map using a boundary detection algorithm; removing spurious points corresponding to outliers among the extracted plurality of frontier points; and determining an optimal frontier point among the frontier points from which the spurious point has been removed using a parallel path algorithm.
  • the step of extracting the plurality of frontier points includes down-sampling an occupancy grid map in which the target space is scanned based on the starting position of the mobile robot; identifying boundary cells within the down-sampled occupancy grid map by applying the boundary detection algorithm to the down-sampled occupancy grid map; and determining whether the border cell is a frontier point based on whether the border cell occupies adjacent cells.
  • the step of removing the spurious point includes calculating a cost map score indicating a probability that an obstacle exists in a surrounding patch for each of the plurality of frontier points; And it may include determining a frontier point where the calculated cost map score is greater than a preset threshold to be a spurious point and removing it.
  • Removing the spurious points includes performing boundary filtering to extract a surrounding patch for each of the plurality of frontier points; And it may include removing spurious points based on the boundary measurement value of the surrounding patch extracted through the boundary filtering.
  • the boundary measurement value for the peripheral patch may be determined using the total number of cells included in the peripheral patch and the number of unknown cells within the peripheral patch.
  • the step of determining the optimal frontier point includes simultaneously exploring movement paths corresponding to each of the frontier points from which spurious points have been removed based on the current position of the mobile robot in parallel through a parallel path algorithm; And it may include comparing the path distances of each of the movement paths simultaneously searched in parallel and determining the frontier point corresponding to the shortest path distance as the optimal frontier point.
  • movement paths corresponding to each of the plurality of frontier points are simultaneously searched in parallel in consideration of branching conditions and boundary conditions for the frontier points from which the spurious point has been removed, and the branching condition is applied to a plurality of threads. It is a starting element for executing , and the boundary condition may be an ending element for searching a movement path.
  • a computing device includes one or more processors; and a memory for loading or storing a program executed by the processor, wherein the program generates an occupancy grid map for a target space in which an unknown area exists, the occupancy grid using a boundary detection algorithm.
  • the processor downsamples an occupancy grid map in which the target space is scanned based on the starting position of the mobile robot, and applies the boundary detection algorithm to the down-sampled occupancy grid map to determine boundary cells within the down-sampled occupancy grid map.
  • a plurality of frontier points can be extracted by identifying and determining whether the border cell is a frontier point depending on whether the border cell occupies adjacent cells.
  • the processor calculates a cost map score indicating the probability that an obstacle exists in a surrounding patch for each of the plurality of frontier points, and determines a frontier point where the calculated cost map score is greater than a preset threshold as a spurious point. It can be removed.
  • the processor may perform boundary filtering to extract a surrounding patch for each of the plurality of frontier points, and remove spurious points based on a boundary measurement value for the surrounding patch extracted through the boundary filtering.
  • the boundary measurement value for the peripheral patch may be determined using the total number of cells included in the peripheral patch and the number of unknown cells within the peripheral patch.
  • the processor simultaneously searches the movement paths corresponding to each of the frontier points from which spurious points have been removed based on the current location of the mobile robot in parallel through a parallel path algorithm, and determines the path distance of each of the movement paths simultaneously searched in parallel. By comparing , the frontier point corresponding to the shortest path distance can be determined as the optimal frontier point.
  • the processor simultaneously searches for movement paths corresponding to each of the plurality of frontier points in parallel in consideration of branch conditions and boundary conditions for the frontier points from which the spurious points were removed, and the branch condition executes a plurality of threads. It is a starting element for searching, and the boundary condition may be an ending element for searching a movement path.
  • the processor explores an unknown area of the target space through a mobile robot using the optimal frontier point, and displays it on the occupancy grid map as an exploration trajectory for the unknown area of the target space explored by the mobile robot. You can.
  • the autonomous search method can discover new unknown areas through the search of a mobile robot while maintaining accuracy for detecting the boundary area of the target space in an unknown environment.
  • the autonomous search method applies the boundary filter function and obstacle filter function of the boundary detection algorithm (FFP) to more accurately extract meaningful boundary areas from a plurality of boundary areas, thereby enabling discovery of new unknown areas. Even the smallest details of the occupancy grid map can be displayed in detail.
  • FFP boundary detection algorithm
  • the autonomous search method can determine an optimal movement path while minimizing search time by simultaneously searching a plurality of boundary points related to the boundary area in parallel using a parallel path algorithm.
  • the autonomous search method can search all boundary areas through a mobile robot while improving the application speed of the boundary detection algorithm by down-sampling the occupancy grid map.
  • FIG. 1 is a diagram showing a computing device according to an embodiment of the present invention.
  • Figure 2 is a flowchart showing an autonomous search method according to an embodiment of the present invention.
  • Figure 3 shows a diagram according to an embodiment of the present invention. This is a drawing showing a small patch around an ideal frontier point.
  • Figure 4 is a diagram showing a method of extracting a plurality of frontier points using a boundary detection algorithm according to an embodiment of the present invention.
  • Figure 5 is a diagram showing a method for determining the optimal frontier point using a parallel path algorithm according to an embodiment of the present invention.
  • FIG. 6 is a diagram illustrating an operation of a mobile robot equipped with a computing device to explore a plurality of areas constituting a target space according to an embodiment of the present invention.
  • Figure 7 is a graph showing the performance of different boundary detection algorithms according to an embodiment of the present invention.
  • Figure 8 is a graph showing the performance of the parallel path algorithm according to an embodiment of the present invention.
  • FIG. 1 is a diagram showing a computing device according to an embodiment of the present invention.
  • the computing device 100 may include one or more processors 110 and a memory 120 that loads or stores a program 130 executed by the processor 110.
  • the components included in the computing device 100 of FIG. 1 are only examples, and those skilled in the art will recognize that other general-purpose components other than those shown in FIG. 1 may be included. Able to know.
  • the processor 110 controls the overall operation of each component of the computing device 100.
  • the processor 110 may be a Central Processing Unit (CPU), Micro Processor Unit (MPU), Micro Controller Unit (MCU), Graphic Processing Unit (GPU), Neural Processing Unit (NPU), Digital Signal Processor (DSP), or the present invention. It may be configured to include at least one of any type of processor well known in the art. Additionally, the processor 110 may perform operations on at least one application or program to execute methods/operations according to various embodiments of the present invention.
  • Computing device 100 may include one or more processors.
  • Memory 120 stores one or a combination of two or more of various data, instructions, and information used by components included in computing device 100 (e.g., processor 110).
  • Memory 120 may include volatile memory and/or non-volatile memory.
  • the program 130 may include one or more actions implementing methods/operations according to various embodiments of the present invention, and may be stored in the memory 120 in software form.
  • the operations correspond to instructions implemented in the program 130.
  • the program 130 operates to generate an occupancy grid map for a target space in which an unknown area exists, and extracts a plurality of frontier points for exploration of an unknown area on the occupancy grid map using a boundary detection algorithm.
  • the processor 110 can perform methods/operations according to various embodiments of the present invention by executing a plurality of operations to implement the program 130.
  • the execution screen of the program 130 may be displayed through the display 140.
  • the display 140 is represented as a separate device connected to the computing device 100, but in the case of the computing device 100 such as a terminal that the user can carry, such as a smartphone or tablet, the display 140 may be a component of the computing device 100.
  • the screen displayed on the display 140 may be before information is input into the program or may be the result of executing the program.
  • Figure 2 is a flowchart showing an autonomous search method according to an embodiment of the present invention.
  • the autonomous discovery method shown in Figure 2 is performed by a processor of the computing device.
  • the computing device can be mounted on a mobile robot moving in the target space and control the mobile robot to autonomously explore unknown areas existing in the target space.
  • the processor may generate an occupancy grid map for the target space where unknown areas exist. More specifically, the processor may collect a front image of the mobile robot by controlling the mobile robot to scan the target space based on the current location of the mobile robot that has entered the target space. The processor can use the front image of the mobile robot collected in this way to generate an occupancy grid map corresponding to the target space.
  • the processor may extract a plurality of frontier points for exploration of an unknown area on the occupancy grid map using a boundary detection algorithm. More specifically, the processor scans the entire occupancy grid map to identify and store boundary cells, revisits the stored boundary cells to identify frontier areas corresponding to unknown areas that have not yet been explored, and then creates frontier areas corresponding to the identified frontier areas. Points can be calculated.
  • the processor may remove the frontier point corresponding to the outlier among the plurality of extracted frontier points.
  • a plurality of frontier points extracted through a boundary detection algorithm are frontier points (hereinafter referred to as spurious ( Spurious points) may be included. Proceeding with the search process of a mobile robot by considering all of these spurious points may result in serious inefficiency.
  • the processor may use the boundary filter function and the obstacle filter function to remove spurious points from a plurality of frontier points extracted through the boundary detection algorithm.
  • the processor can use the obstacle filter function to determine that a frontier point surrounded by an obstacle is a spurious point and remove it. More specifically, the processor can identify small patches surrounding each of the plurality of frontier points. At this time, the size of the small patch can be determined by user definition. For example, if it is defined as 20 by 20 pixels, the processor cuts out only the pixels included in the 20 by 20 size window centered on the frontier point to create a small patch. It can be identified as:
  • the processor may calculate a cost map score indicating the probability that an obstacle exists in a small patch surrounding each of the plurality of identified frontier points.
  • the obstacle filter response may be designed to be lower as there are more obstacles around the frontier point.
  • the processor may determine a frontier point whose cost map score calculated in this way is greater than a preset threshold to be a spurious point and remove it.
  • the processor may determine and remove spurious points among the plurality of frontier points based on the boundary measurement value calculated using the boundary filter function. More specifically, the processor may perform boundary filtering to extract small patches surrounding each of a plurality of frontier points. The processor then extracts small patches through boundary filtering. Boundary measure for can be obtained as in Equation 1 below.
  • the extracted small patch means the total number of cells, is a small patch It refers to the unknown number of cells within.
  • Figure 3 shows a diagram according to an embodiment of the present invention. This is a drawing showing a small patch around an ideal frontier point.
  • the processor may determine the optimal frontier point among the frontier points from which spurious points have been removed using a parallel path algorithm. More specifically, the processor can simultaneously search movement paths corresponding to each of the frontier points from which spurious points have been removed based on the current location of the mobile robot in parallel through a parallel path algorithm. The processor may determine the frontier point corresponding to the shortest movement path among movement paths simultaneously searched through a parallel path algorithm as the optimal frontier point.
  • Figure 4 is a diagram showing a method of extracting a plurality of frontier points using a boundary detection algorithm according to an embodiment of the present invention.
  • Algorithm 1 disclosed in FIG. 4 is performed by the processor of the computing device and provides a method for extracting frontier points existing in the boundary area between the free area and the unknown area in the occupancy grid map.
  • the scan list P and front queue Q are empty.
  • the grid vector L is assigned the same size as the occupied grid map M and is initialized to the FAR value, and the frontier area list F is also initialized.
  • the processor can identify and store boundary cells on an occupancy grid map of the target space through the MARCHFRONT() function. More specifically, the MARCHFRONT() function can perform the process of finding a boundary set, and in this case, the boundary set may include a situation where UNKNOWN and OCCUPIED are facing each other, and a situation where UNKNOWN and FREE are facing each other.
  • the front queue Q set is always UNKNOWN, so the processor searches only UNKNOWN through the MARCHFRONT() function to check whether it belongs to the boundary set. That is, if the cell q included in the front queue Q is UNKOWN, but all surrounding cells are FREE or OCCUPIED, the processor can identify the cell q as a boundary cell belonging to the boundary set and store it.
  • the processor can add the seed index s to the front queue Q (line 9 of FIG. 4). If the front queue Q is empty, the processor can terminate the operation.
  • the processor checks whether the cell q ⁇ Q included in the front queue Q and the neighboring cells ( n ) of cell q are border cells (i.e., q ⁇ B) ( Figure 4 lines 14-24) can be done. For example, if all neighboring cells n of cell q are not UNKNOWN cells, the processor may determine that cell q is a border cell that exists in the border area because it is a cell indicating UNKNOWN.
  • the processor may store cell q in the scan list P (line 22 of FIG. 4).
  • the processor can identify the frontier area through the EXTRACTFRONTIERS() function. More specifically, the EXTRACTFRONTIER() function can perform the process of finding situation 1) among two boundary sets: 1) a situation where UNKNOWN and FREE are facing each other, and 2) a situation where UNKNOWN and OCCUPIED are facing each other.
  • cells included in the frontier area F are identified by adjacent borderlines, and the processor can calculate the frontier point f by clustering these borderlines and then calculating the center points of each cluster.
  • Figure 5 is a diagram showing a method for determining the optimal frontier point using a parallel path algorithm according to an embodiment of the present invention.
  • Algorithm 2 disclosed in FIG. 5 is performed by a processor of a computing device and is a diagram showing a method of determining the optimal frontier point among frontier points from which spurious points have been removed using a parallel path algorithm.
  • the processor can apply the parallel path algorithm (A*) to the frontier points from which spurious points have been removed and determine the optimal boundary point among the movable frontier points based on the current location of the mobile robot.
  • the processor can simultaneously search in parallel the movement paths corresponding to each of the frontier points from which spurious points have been removed based on the current location of the mobile robot.
  • the processor can compare the path distances of each of the movement paths simultaneously searched in parallel and determine the optimal frontier point as the frontier point with the shortest path distance.
  • the parallel path algorithm can be an efficient graph search method to find the optimal movement path from the start node to the goal node.
  • the parallel path algorithm can explore the graph by selecting a frontier point, which is the target node, given a starting node.
  • the minimum cost by the parallel path algorithm can be expressed as Equation 2 below.
  • G(n) may be a heuristic function that calculates the cost from the start node n s to the current node n
  • H(n) may be a heuristic function that estimates the cost from the current node n to the target node n g .
  • the processor can utilize branch conditions and boundary conditions to increase the accuracy of path search and minimize unnecessary search.
  • Parallel path algorithms using branch conditions and boundary conditions can take advantage of the consistency property, where the movement cost F(n) increases when opening descendant nodes toward the goal.
  • a branch condition may be a starting element for launching multiple threads.
  • the branch condition may be an element that starts multiple threads Ti and simultaneously performs A* search by calculating Fi in Equation 2.
  • a boundary condition may be an ending element for exploring a movement path. For example, while searching A*, thread Ti ⁇ Whenever Fi is encountered, Ti is terminated, can be initialized to a large value as the upper limit of all Fi values.
  • Figure 5 may show pseudocode of the parallel path algorithm (A*).
  • the parallel path algorithm of the present invention can initialize and track two lists of open nodes and closed nodes (rows 4-5 of Table 2). Afterwards, each thread can begin path search using the parallel path algorithm (A*) based on the bounded condition (Line 9). Afterwards, the present invention can terminate the thread (row 10 of Table 2) according to the conditions bound to the parallel path algorithm.
  • the parallel path algorithm of the present invention uses a boundary parameter when a thread finds a better path. can be updated (rows 15-17 of Table 2). Afterwards, the parallel path algorithm of the present invention can determine the optimal frontier point (f*) with the shortest path length. The exploration trajectory to the optimal frontier point (f*) can be used as a global plan to guide the robot.
  • FIG. 6 is a diagram illustrating an operation of a mobile robot equipped with a computing device to explore a plurality of areas constituting a target space according to an embodiment of the present invention.
  • the computing device may determine a frontier point through which a new unknown area can be explored in a boundary area extracted from a target space having an unknown environment.
  • the computing device may determine boundary cells included in the boundary area between the free area and the unknown area in the target space by applying a boundary detection algorithm based on the occupancy grid map.
  • the computing device can accelerate the speed of the border detection algorithm by downsampling the size of the occupancy grid map while maintaining the accuracy of detecting border cells included in the border area.
  • the computing device can prevent in advance setting a route to a target point that cannot be moved by analyzing the border cell included in the border area and the adjacent cells of the border cell and removing meaningless cells. Additionally, the computing device can simultaneously explore movement paths corresponding to each of a plurality of frontier points in parallel to satisfy branch conditions and boundary conditions. In other words, the computing device can efficiently parallelize the movement path by the parallel path algorithm.
  • the computing device can generate a new occupancy grid map including the exploration trajectory by displaying the exploration trajectory of the unknown area of the target space explored by the mobile robot on the occupancy grid map.
  • the computing device can construct a new map in which unknown areas have been explored by the mobile robot by synthesizing the exploration trajectory of the mobile robot on the occupancy grid map in real time.
  • the computing device can approach the frontier point (or border point) where the mobile robot will move first in the frontier areas based on the current location of the mobile robot in the target space. there is.
  • the computing device may determine an optimal frontier point among a plurality of frontier points and explore an unknown area of the target space using the determined optimal frontier point.
  • the computing device can move the position of the mobile robot to the optimal frontier point and then scan and explore the unknown area within a certain range.
  • the computing device can sequentially search for the second frontier point after the mobile robot reaches the first frontier point.
  • the computing device may reach the second frontier point, the third frontier point, etc. and then continuously explore new areas.
  • the fourth picture 640, the fifth picture 650, and the sixth picture 660 in FIG. 6 are the images of the mobile robot with respect to the first picture 610, the second picture 620, and the third picture 630, respectively. It is a drawing showing the view from the perspective.
  • the computing device can check the completed occupancy grid map through the exploration trajectory of the mobile robot.
  • Figure 7 is a graph showing the performance of different boundary detection algorithms according to an embodiment of the present invention.
  • the graph in Figure 7 is a result showing the performance of each of the edge detection algorithm (FFP) and the wavefront frontier detection (WFD) method of the autonomous search method proposed in the present invention.
  • the present invention can perform down sampling (DS) on an occupancy grid map used to search for an optimal movement path in an unknown environment.
  • the present invention can evaluate the performance of each method using the original occupancy grid map and the down-sampling occupancy grid map.
  • a computing device that performs the autonomous search method of the present invention can more accurately find potential unknown areas existing in the target space while searching a target space with an unknown environment. As the computing device is mounted on a mobile robot and explores autonomously, it can identify a very large target space, increasing up to 18M cells.
  • the X-axis may represent the size of the occupancy grid map
  • the Y-axis may represent execution time according to a logarithmic scale.
  • the boundary detection algorithm used in the autonomous search method is about 6 times faster than the wavefront detection method, and this can be further accelerated as the map size of the occupancy grid map representing the target space is reduced. there is.
  • the boundary detection algorithm applied to the double down-sampled occupancy grid map was found to be approximately 14 times faster than the boundary detection algorithm applied to the original occupancy grid map and 87 times faster than the wavefront detection method applied to the original occupancy grid map. It can be.
  • the X-axis may represent the size of the occupancy grid map, and the Y-axis may represent the number of frontier points.
  • the second graph 720 of FIG. 7 shows similar performance of the boundary detection algorithm and the wavefront detection method in terms of the number of frontier points detected in the boundary area.
  • the third graph 730 of FIG. 7 confirms that there is no particular difficulty in extracting a border area of a certain size or more even when down sampling is applied.
  • the boundary detection algorithm may mean that specifying the cluster size of the boundary region as a threshold is almost identical to the performance of applying a single downsampling.
  • information gain may indicate the size of the border area.
  • the boundary detection algorithm can search all necessary boundary points at a rough level by only considering clusters for boundary areas of reasonable size.
  • the boundary detection algorithm indicates a cluster with a cell size larger than 6, and the map resolution is set to 0.05m, which can mean an area of 0.3m.
  • 0.3m may be the size of a general home cleaning robot such as Turtlebot
  • Figure 8 is a graph showing the performance of the parallel path algorithm according to an embodiment of the present invention.
  • the graph in FIG. 8 is a graph showing the results of improvement in relative run time according to the thread plan based on the parallel path algorithm.
  • the parallel path algorithm can simultaneously search in parallel movement paths corresponding to each of a plurality of target points based on the current location of the mobile robot among boundary areas.
  • the parallel path algorithm can simultaneously search movement paths corresponding to each of a plurality of target points in parallel to satisfy branching conditions and boundary conditions for boundary areas.
  • legend 1 ( ) can represent the result of searching the movement path using a single thread without using a filter (hereinafter referred to as search 1).
  • w/o Filter expressed on the graph is an abbreviation for with-out Filter and means that no filter is used.
  • Legend 2 of the first graph 810 ( ) can represent the result of searching a movement path using a parallel path algorithm (A*) and a filter to which branch conditions and boundary conditions are not applied (hereinafter referred to as search 2).
  • search 2 w/o BB expressed on the graph is an abbreviation for with-out Branch and Bound, meaning that branch conditions and boundary conditions do not apply.
  • Legend 3 of the first graph 810 ( ) can represent the result of searching the movement path using parallel A* and filters with branching conditions and boundary conditions applied (hereinafter referred to as search 3).
  • search 3 to which the autonomous search method of the present invention is applied is about twice as fast as search 2.
  • the autonomous search method can enable search about 30 times faster than search 2 when 20 threads are running.
  • the autonomous search method is a result showing an improvement in relative runtime according to a single-thread plan based on the front grid map.
  • the method according to the present invention is written as a program that can be executed on a computer and can be implemented in various recording media such as magnetic storage media, optical read media, and digital storage media.
  • Implementations of the various techniques described herein may be implemented in digital electronic circuitry, or in computer hardware, firmware, software, or combinations thereof. Implementations may include a computer program product, i.e., an information carrier, e.g., machine-readable storage, for processing by or controlling the operation of a data processing device, e.g., a programmable processor, a computer, or a plurality of computers. It may be implemented as a computer program tangibly embodied in a device (computer-readable medium) or a radio signal.
  • Computer programs such as the computer program(s) described above, may be written in any form of programming language, including compiled or interpreted languages, and may be written as a stand-alone program or as a module, component, subroutine, or part of a computing environment. It can be deployed in any form, including as other units suitable for use.
  • the computer program may be deployed for processing on one computer or multiple computers at one site or distributed across multiple sites and interconnected by a communications network.
  • processors suitable for processing computer programs include, by way of example, both general-purpose and special-purpose microprocessors, and any one or more processors of any type of digital computer.
  • a processor will receive instructions and data from read-only memory or random access memory, or both.
  • Elements of a computer may include at least one processor that executes instructions and one or more memory devices that store instructions and data.
  • a computer may include one or more mass storage devices that store data, such as magnetic, magneto-optical disks, or optical disks, receive data from, transmit data to, or both. It can also be combined to make .
  • Information carriers suitable for embodying computer program instructions and data include, for example, semiconductor memory devices, magnetic media such as hard disks, floppy disks, and magnetic tapes, and Compact Disk Read Only Memory (CD-ROM). ), optical recording media such as DVD (Digital Video Disk), magneto-optical media such as Floptical Disk, ROM (Read Only Memory), RAM , Random Access Memory), flash memory, EPROM (Erasable Programmable ROM), and EEPROM (Electrically Erasable Programmable ROM).
  • the processor and memory may be supplemented by or included in special purpose logic circuitry.
  • computer-readable media can be any available media that can be accessed by a computer, and can include both computer storage media and transmission media.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Remote Sensing (AREA)
  • Automation & Control Theory (AREA)
  • Mechanical Engineering (AREA)
  • Robotics (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Game Theory and Decision Science (AREA)
  • Medical Informatics (AREA)
  • Electromagnetism (AREA)
  • Business, Economics & Management (AREA)

Abstract

본 발명은 미지 환경을 갖는 대상 공간을 이동 로봇이 자율로 탐색하기 위한 자율 탐색 방법에 관한 것이다. 구체적으로, 자율 탐색 방법은 경계 검출 알고리즘(FFP: Fast Front Propagation), 장애물 필터 기능(Cost-Map Filter) 및 경계 필터 기능(Grid-Map Filter)을 활용함으로써, 미지 환경을 갖는 대상 공간에 대한 탐색 범위를 최대화하며 대상 공간 내 미지 영역을 탐색하기 위한 최적의 이동 경로를 결정한다.

Description

자율 탐색 방법 및 상기 방법을 수행하는 컴퓨팅 장치
본 발명은 자율 탐색 방법 및 상기 방법을 수행하는 컴퓨팅 장치에 관한 것으로, 보다 구체적으로는 미지 환경을 갖는 대상 공간을 탐색하기 위한 자율 탐색 방법 및 이동 로봇에 관한 것이다.
일반적으로, 로봇은 자율적 판단에 의해 조작이나 이동 등의 작업을 수행하고, 특히 인간을 대신하여 여러 작업을 수행하는 데 사용된다. 최근에는 실생활에서 사용되는 로봇의 이용이 높아지는 추세이다. 이러한, 로봇이 자율 주행 작업을 수행하기 위해 지도 작성(Mapping), 위치 추정(Localization), 경로 계획(Path Planning), 장애물 회피 및 추적(Obstacle avoidance and tracking) 등의 기술이 필요하다. 이러한, 기술 중에서 경로 계획은 로봇의 성능을 평가하는 지표로 사용된다.
먼저, 경로 계획에 의한 로봇의 성능은 로봇에 제공되는 지도에서 출발지와 목적지 간의 효율적인 경로를 도출함으로써 평가될 수 있다. 이때, 도출되는 경로는 경로 계획 연구의 대부분을 차지하는 것으로 두 지점 간의 거리상 짧은 경로나 시간상 빠른 경로로 생성될 수 있다.
다음으로 경로 계획에 의한 로봇의 성능은 두 지점 간의 경로를 찾는 것이 아닌 새로운 영역을 찾아내는 탐색(Exploration) 능력에 의해 평가될 수 있다. 이러한 경로 계획에 의한 로봇의 탐색 능력은 로봇이 동작하는 환경에 대한 정보, 즉 지도의 유무에 의해 차이가 있다. 이때, 로봇에게 지도가 있는 상태를 알려진 환경(Known Environment)이라 하고, 지도가 없는 상태를 미지의 환경(Unknown Environment)이라 한다. 알려진 환경에서 탐색은 미리 제공된 지도를 기반으로 경로 생성이 완료된 이후 시작하고, 미지의 환경에서 탐색은 지도 없이 탐색을 시작한다.
본 발명은 미지 환경에서 대상 공간의 경계 영역을 감지하기 위한 정확도를 유지하면서, 이동 로봇의 탐색에 따른 새로운 미지 영역을 발견하는 자율 탐색 방법을 제공한다.
본 발명은 경계 검출 알고리즘(FFP), 경계 필터 기능 및 장애물 필터 기능을 적용하여 복수의 경계 영역 중에서 유의미한 경계 영역을 보다 정확하게 추출함으로써, 새로운 미지 영역의 발견을 통한 점유 격자 지도의 세부적인 사항까지 상세하게 표시되는 자율 탐색 방법을 제공한다.
본 발명은 병렬 경로 계획 알고리즘을 이용하여 경계 영역에 관한 복수의 경계 포인트를 병렬적으로 동시에 탐색함으로써, 탐색 시간을 최소화하면서 최적의 이동 경로를 결정하는 자율 탐색 방법을 제공한다.
본 발명은 점유 격자 지도를 다운 샘플링 함으로써, 경계 검출 알고리즘의 적용 속도를 향상시키면서 이동 로봇을 통해 모든 경계 영역을 탐색하는 자율 탐색 방법을 제공한다.
본 발명의 일실시예에 따른 자율 탐색 방법은 미지 영역이 존재하는 대상 공간에 대한 점유 격자 지도를 생성하는 단계; 경계 검출 알고리즘을 이용하여 상기 점유 격자 지도 상에서 상기 미지 영역에 대한 탐사를 위한 복수의 프론티어 포인트들을 추출하는 단계; 상기 추출된 복수의 프론티어 포인트들 중 이상치에 대응하는 스퓨리어스(Spurious) 포인트를 제거하는 단계; 및 병렬 경로 알고리즘을 이용하여 상기 스퓨리어스 포인트가 제거된 프론티어 포인트들 중 최적의 프론티어 포인트를 결정하는 단계를 포함할 수 있다.
상기 복수의 프론티어 포인트들을 추출하는 단계는 이동 로봇의 시작 위치를 기준으로 대상 공간이 스캔된 점유 격자 지도를 다운 샘플링하는 단계; 상기 다운 샘플링 된 점유 격자 지도에 상기 경계 검출 알고리즘을 적용하여 상기 다운 샘플링 된 점유 격자 지도 내 경계 셀을 식별하는 단계; 및 상기 경계 셀의 인접 셀들에 대한 점유 여부에 따라 해당 경계 셀이 프론티어 포인트 인지의 여부를 결정하는 단계를 포함할 수 있다.
상기 스퓨리어스(Spurious) 포인트를 제거하는 단계는 상기 복수의 프론티어 포인트들 각각에 대한 주변 패치에 대해 장애물이 존재할 확률을 나타내는 비용 맵 점수를 계산하는 단계; 및 상기 계산된 비용 맵 점수가 미리 설정된 임계값 보다 큰 프론티어 포인트를 스퓨리어스 포인트로 판단하여 제거하는 단계를 포함할 수 있다.
상기 스퓨리어스(Spurious) 포인트를 제거하는 단계는 상기 복수의 프론티어 포인트들 각각에 대한 주변 패치를 추출하기 위한 경계 필터링을 수행하는 단계; 및 상기 경계 필터링을 통해 추출된 주변 패치에 대한 경계 측정값에 기초하여 스퓨리어스 포인트를 제거하는 단계를 포함할 수 있다.
상기 주변 패치에 대한 경계 측정 값은 상기 주변 패치에 포함된 총 셀 수 및 상기 주변 패치 내에서 알려지지 않은 셀 수를 이용하여 결정될 수 있다.
상기 최적의 프론티어 포인트를 결정하는 단계는 이동 로봇의 현재 위치를 기준으로 스퓨리어스 포인트가 제거된 프론티어 포인트들 각각에 대응하는 이동 경로들을 병렬 경로 알고리즘을 통해 병렬로 동시에 탐색하는 단계; 및 상기 병렬로 동시에 탐색된 이동 경로들 각각의 경로 거리를 비교하여 가장 짧은 경로 거리에 대응하는 프론티어 포인트를 최적의 프론티어 포인트로 결정하는 단계를 포함할 수 있다.
상기 탐색하는 단계는 상기 스퓨리어스 포인트가 제거된 프론티어 포인트들에 대한 분기 조건 및 경계 조건을 고려하여 상기 복수의 프론티어 포인트들 각각에 대응하는 이동 경로들을 병렬로 동시에 탐색하고, 상기 분기 조건은 복수의 스레드를 실행시키기 위한 시작 요소이고, 상기 경계 조건은 이동 경로를 탐색하기 위한 종료 요소일 수 있다.
상기 최적의 프론티어 포인트를 이용하여 이동 로봇을 통해 상기 대상 공간의 미지 영역을 탐사하는 단계; 및 상기 이동 로봇에 의해 탐사된 상기 대상 공간의 미지 영역에 대한 탐사 궤적으로 상기 점유 격자 지도에 표시하는 단계를 더 포함할 수 있다.
본 발명의 일실시예에 따른 컴퓨팅 장치는 하나 이상의 프로세서; 및 상기 프로세서에 의해 실행되는 프로그램을 로드(load)하거나 저장하는 메모리를 포함하되, 상기 프로그램은 미지 영역이 존재하는 대상 공간에 대한 점유 격자 지도를 생성하는 동작, 경계 검출 알고리즘을 이용하여 상기 점유 격자 지도 상에서 상기 미지 영역에 대한 탐사를 위한 복수의 프론티어 포인트들을 추출하는 동작, 상기 추출된 복수의 프론티어 포인트들 중 이상치에 대응하는 스퓨리어스(Spurious) 포인트를 제거하는 동작 및 병렬 경로 알고리즘을 이용하여 상기 스퓨리어스 포인트가 제거된 프론티어 포인트들 중 최적의 프론티어 포인트를 결정하는 동작을 수행하도록 하는 인스트럭션들을 포함할 수 있다.
상기 프로세서는 이동 로봇의 시작 위치를 기준으로 대상 공간이 스캔된 점유 격자 지도를 다운 샘플링하고, 상기 다운 샘플링 된 점유 격자 지도에 상기 경계 검출 알고리즘을 적용하여 상기 다운 샘플링 된 점유 격자 지도 내 경계 셀을 식별하며, 상기 경계 셀의 인접 셀들에 대한 점유 여부에 따라 해당 경계 셀이 프론티어 포인트 인지의 여부를 결정함으로써 복수의 프론티어 포인트들을 추출할 수 있다.
상기 프로세서는 상기 복수의 프론티어 포인트들 각각에 대한 주변 패치에 대해 장애물이 존재할 확률을 나타내는 비용 맵 점수를 계산하고, 상기 계산된 비용 맵 점수가 미리 설정된 임계값 보다 큰 프론티어 포인트를 스퓨리어스 포인트로 판단하여 제거할 수 있다.
상기 프로세서는 상기 복수의 프론티어 포인트들 각각에 대한 주변 패치를 추출하기 위한 경계 필터링을 수행하고, 상기 경계 필터링을 통해 추출된 주변 패치에 대한 경계 측정값에 기초하여 스퓨리어스 포인트를 제거할 수 있다.
상기 주변 패치에 대한 경계 측정 값은 상기 주변 패치에 포함된 총 셀 수 및 상기 주변 패치 내에서 알려지지 않은 셀 수를 이용하여 결정될 수 있다.
상기 프로세서는 이동 로봇의 현재 위치를 기준으로 스퓨리어스 포인트가 제거된 프론티어 포인트들 각각에 대응하는 이동 경로들을 병렬 경로 알고리즘을 통해 병렬로 동시에 탐색하고, 상기 병렬로 동시에 탐색된 이동 경로들 각각의 경로 거리를 비교하여 가장 짧은 경로 거리에 대응하는 프론티어 포인트를 최적의 프론티어 포인트로 결정할 수 있다.
상기 프로세서는 상기 스퓨리어스 포인트가 제거된 프론티어 포인트들에 대한 분기 조건 및 경계 조건을 고려하여 상기 복수의 프론티어 포인트들 각각에 대응하는 이동 경로들을 병렬로 동시에 탐색하고, 상기 분기 조건은 복수의 스레드를 실행시키기 위한 시작 요소이고, 상기 경계 조건은 이동 경로를 탐색하기 위한 종료 요소일 수 있다.
상기 프로세서는 상기 최적의 프론티어 포인트를 이용하여 이동 로봇을 통해 상기 대상 공간의 미지 영역을 탐사하고, 상기 이동 로봇에 의해 탐사된 상기 대상 공간의 미지 영역에 대한 탐사 궤적으로 상기 점유 격자 지도에 표시할 수 있다.
본 발명의 실시예에 따른 자율 탐색 방법은 미지 환경에서 대상 공간의 경계 영역을 감지하기 위한 정확도를 유지하면서, 이동 로봇의 탐색에 따른 새로운 미지 영역을 발견할 수 있다.
본 발명의 실시예에 따른 자율 탐색 방법은 경계 검출 알고리즘(FFP)의 경계 필터 기능 및 장애물 필터 기능을 적용하여 복수의 경계 영역 중에서 유의미가 있는 경계 영역을 보다 정확하게 추출함으로써, 새로운 미지 영역의 발견을 통한 점유 격자 지도의 세부적인 사항까지 상세하게 표시될 수 있다.
본 발명의 실시예에 따른 자율 탐색 방법은 병렬 경로 알고리즘을 이용하여 경계 영역에 관한 복수의 경계 포인트를 병렬적으로 동시에 탐색함으로써, 탐색 시간을 최소화하면서 최적의 이동 경로를 결정할 수 있다.
본 발명의 실시예에 따른 자율 탐색 방법은 점유 격자 지도를 다운 샘플링 함으로써, 경계 검출 알고리즘의 적용 속도를 향상시키면서 이동 로봇을 통한 모든 경계 영역을 탐색할 수 있다.
도 1은 본 발명의 일실시예에 따른 컴퓨팅 장치를 나타낸 도면이다.
도 2는 본 발명의 일실시예에 따른 자율 탐색 방법을 플로우챠트로 나타낸 도면이다.
도 3은 본 발명의 일실시예에 따른
Figure PCTKR2023012892-appb-img-000001
인 이상적인 프론티어 포인트 주변의 작은 패치를 나타낸 도면이다.
도 4는 본 발명의 일실시예에 따른 경계 검출 알고리즘을 이용한 복수의 프론티어 포인트들의 추출 방법을 나타낸 도면이다.
도 5는 본 발명의 일실시예에 따른 병렬 경로 알고리즘을 최적의 프론티어 포인트를 결정하는 방법을 나타낸 도면이다.
도 6은 본 발명의 일실시예에 따른 컴퓨팅 장치를 탑재한 이동 로봇이 대상 공간을 구성하는 복수의 영역을 탐사하는 동작을 설명하기 위해 도시한 도면이다.
도 7은 본 발명의 일실시예에 따른 서로 다른 경계 검출 알고리즘에 따른 성능을 나타낸 그래프이다.
도 8은 본 발명의 일실시예에 따른 병렬 경로 알고리즘의 성능을 나타낸 그래프이다.
이하, 본 발명의 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 본 발명의 일실시예에 따른 컴퓨팅 장치를 나타낸 도면이다.
도 1에 도시된 바와 같이, 컴퓨팅 장치(100)는 하나 이상의 프로세서(110), 프로세서(110)에 의하여 수행되는 프로그램(130)을 로드(load)하거나 저장하는 메모리(120)를 포함할 수 있다. 도 1의 컴퓨팅 장치(100)에 포함된 구성 요소는 일례에 불과하고, 본 발명이 속한 기술분야의 통상의 기술자라면 도 1에 도시된 구성 요소들 외에 다른 범용적인 구성 요소들이 더 포함될 수 있음을 알 수 있다.
프로세서(110)는 컴퓨팅 장치(100)의 각 구성의 전반적인 동작을 제어한다. 프로세서(110)는 CPU(Central Processing Unit), MPU(Micro Processor Unit), MCU(Micro Controller Unit), GPU(Graphic Processing Unit), NPU(Neural Processing Unit), DSP(Digital Signal Processor) 또는 본 발명의 기술 분야에 잘 알려진 임의의 형태의 프로세서 중 적어도 하나를 포함하여 구성될 수 있다. 또한, 프로세서(110)는 본 발명의 다양한 실시예들에 따른 방법/동작을 실행하기 위한 적어도 하나의 애플리케이션 또는 프로그램에 대한 연산을 수행할 수 있다. 컴퓨팅 장치(100)는 하나 이상의 프로세서를 구비할 수 있다.
메모리(120)는 컴퓨팅 장치(100)에 포함된 구성요소(예: 프로세서(110))에 의해 사용되는 다양한 데이터, 명령 및 정보 중 하나 또는 둘 이상의 조합을 저장한다. 메모리(120)는 휘발성 메모리 및/또는 비휘발성 메모리를 포함할 수 있다.
프로그램(130)은 본 발명의 다양한 실시예들에 따른 방법/동작들이 구현된 하나 이상의 동작(action)들을 포함할 수 있으며, 메모리(120)에 소프트웨어 형태로 저장될 수 있다. 여기서, 동작은 프로그램(130)에서 실현되는 명령어에 대응한다. 예를 들어, 프로그램(130)은 미지 영역이 존재하는 대상 공간에 대한 점유 격자 지도를 생성하는 동작, 경계 검출 알고리즘을 이용하여 점유 격자 지도 상에서 미지 영역에 대한 탐사를 위한 복수의 프론티어 포인트들을 추출하는 동작, 추출된 복수의 프론티어 포인트들 중 이상치에 대응하는 스퓨리어스(Spurious) 포인트를 제거하는 동작 및 병렬 경로 알고리즘을 이용하여 스퓨리어스 포인트가 제거된 프론티어 포인트들 중 최적 프론티어 포인트로 결정하는 동작을 수행하도록 하는 인스트럭션들을 포함할 수 있다.
프로그램(130)이 메모리(120)에 로드 되면, 프로세서(110)는 프로그램(130)을 구현하기 위한 복수의 동작들을 실행시킴으로써 본 발명의 다양한 실시예들에 따른 방법/동작들을 수행할 수 있다.
프로그램(130)의 실행 화면은 디스플레이(140)을 통해 표시될 수 있다. 도 1의 경우, 디스플레이(140)는 컴퓨팅 장치(100)와 연결되는 별도의 장치로 표현되나, 스마트폰, 태블릿 등 사용자가 휴대할 수 있는 단말기와 같은 컴퓨팅 장치(100)의 경우 디스플레이(140)가 컴퓨팅 장치(100)의 구성 요소로 될 수 있다. 디스플레이(140)에 표현되는 화면은 프로그램에 정보를 입력하기 전이나 프로그램의 실행 결과일 수 있다.
도 2는 본 발명의 일실시예에 따른 자율 탐색 방법을 플로우챠트로 나타낸 도면이다.
도 2에 도시된 자율 탐색 방법은 컴퓨팅 장치의 프로세서에 의해 수행된다. 이때, 컴퓨팅 장치는 대상 공간을 이동하는 이동 로봇에 탑재되어 이동 로봇이 대상 공간에 존재하는 미지 영역을 자율적으로 탐색할 수 있도록 제어할 수 있다.
단계(210)에서, 프로세서는 미지 영역이 존재하는 대상 공간에 대한 점유 격자 지도를 생성할 수 있다. 보다 구체적으로, 프로세서는 대상 공간에 진입한 이동 로봇의 현재 위치를 기반으로 대상 공간을 스캔하도록 이동 로봇을 제어함으로써, 이동 로봇의 전면 이미지를 수집할 수 있다. 프로세서는 이와 같이 수집된 이동 로봇의 전면 이미지를 이용하여 대상 공간에 대응하는 점유 격자 지도를 생성할 수 있다.
단계(220)에서, 프로세서는 경계 검출 알고리즘을 이용하여 점유 격자 지도 상에서 미지 영역에 대한 탐사를 위한 복수의 프론티어 포인트들을 추출할 수 있다. 보다 구체적으로 프로세서는 점유 격자 지도 전체를 스캔하여 경계 셀을 식별하여 저장하고, 저장된 경계 셀을 재방문하여 아직 탐사되지 않은 미지 영역에 대응하는 프론티어 영역을 식별한 후 식별된 프론티어 영역에 대응하는 프론티어 포인트를 계산할 수 있다.
단계(230)에서, 프로세서는 추출된 복수의 프론티어 포인트들 중 이상치에 대응하는 프론티어 포인트를 제거할 수 있다. 일례로, 경계 검출 알고리즘을 통해 추출된 복수의 프론티어 포인트들은 장애물로 둘러싸인 셀 또는 레이저 센서의 스캔 오류로 인한 오감지 등으로 인해 이동 로봇이 도달할 수 없는 셀에 대응하는 프론티어 포인트(이하, 스퓨리어스(Spurious) 포인트)들이 포함될 수 있다. 이러한 스퓨리어스 포인트들을 모두 고려하여 이동 로봇의 탐색 프로세스를 진행하는 것은 심각한 비효율을 초래할 수 있다.
따라서, 프로세서는 경계 필터 기능 및 장애물 필터 기능을 이용하여 경계 검출 알고리즘을 통해 추출된 복수의 프론티어 포인트들 중 스퓨리어스 포인트들을 제거할 수 있다.
먼저, 프로세서는 장애물 필터 기능을 이용하여 장애물에 둘러싸인 프론티어 포인트를 스퓨리어스 포인트로 판단하여 제거할 수 있다. 보다 구체적으로 프로세서는 복수의 프론티어 포인트들 각각에 대한 주변의 작은 패치를 식별할 수 있다. 이때, 작은 패치의 크기는 사용자 정의에 의해 결정될 수 있으며, 일례로, 20 by 20 픽셀(pixel)로 정의된다면, 프로세는 프론티어 포인트를 중심으로 20 by 20 크기의 윈도우에 포함된 픽셀들만 잘라내어 작은 패치로 식별할 수 있다.
프로세서는 이와 같이 식별된 복수의 프론티어 포인트들 각각에 대한 주변의 작은 패치에 대해 장애물이 존재할 확률을 나타내는 비용 맵 점수를 계산할 수 있다. 이때, 장애물 필터 응답은 프론티어 포인트 주변에 장애물이 많을 수록 낮아지게 설계될 수 있다.
프로세서는 이와 같이 계산된 비용 맵 점수가 미리 설정된 임계값 보다 큰 프론티어 포인트를 스퓨리어스 포인트로 판단하여 제거할 수 있다.
다음으로 프로세서는 경계 필터 기능을 이용하여 계산된 경계 측정값에 기초하여 복수의 프론티어 포인트들 중 스퓨리어스 포인트를 판단하여 제거할 수 있다. 보다 구체적으로 프로세서는 복수의 프론티어 포인트들 각각에 대해 주변의 작은 패치를 추출하기 위한 경계 필터링을 수행할 수 있다. 이후 프로세서는 경계 필터링을 통해 추출된 작은 패치
Figure PCTKR2023012892-appb-img-000002
에 대한 경계 측정값
Figure PCTKR2023012892-appb-img-000003
를 아래의 식 1과 같이 구할 수 있다.
<식 1>
Figure PCTKR2023012892-appb-img-000004
여기서,
Figure PCTKR2023012892-appb-img-000005
는 추출된 작은 패치
Figure PCTKR2023012892-appb-img-000006
의 총 셀 수를 의미하고,
Figure PCTKR2023012892-appb-img-000007
는 작은 패치
Figure PCTKR2023012892-appb-img-000008
내에서 알려지지 않은 셀 수를 의미한다.
이때, 경계 측정값
Figure PCTKR2023012892-appb-img-000009
인 후보 점
Figure PCTKR2023012892-appb-img-000010
는 아직 탐사되지 않은 미지 영역의 경계에 있을 가능성이 높으므로, 이동 로봇이 해당 지역 방문 시 지도 정보를 발견할 확률이 증가할 수 있다. 일례로, 도 3은 본 발명의 일실시예에 따른
Figure PCTKR2023012892-appb-img-000011
인 이상적인 프론티어 포인트 주변의 작은 패치를 나타낸 도면이다.
단계(240)에서, 프로세서는 병렬 경로 알고리즘을 이용하여 스퓨리어스 포인트가 제거된 프론티어 포인트들 중 최적 프론티어 포인트로 결정할 수 있다. 보다 구체적으로 프로세서는 이동 로봇의 현재 위치를 기준으로 스퓨리어스 포인트가 제거된 프론티어 포인트들 각각에 대응하는 이동 경로들을 병렬 경로 알고리즘을 통해 병렬로 동시에 탐색할 수 있다. 프로세서는 병렬 경로 알고리즘을 통해 동시에 탐색된 이동 경로들 중 가장 짧은 이동 경로에 대응하는 프론티어 포인트를 최적 프론티어 포인트로 결정할 수 있다.
도 4는 본 발명의 일실시예에 따른 경계 검출 알고리즘을 이용한 복수의 프론티어 포인트들의 추출 방법을 나타낸 도면이다.
도 4에 개시된 Algorithm 1은 컴퓨팅 장치의 프로세서에 의해 수행되며, 점유 격자 지도에서 자유 영역과 미지 영역 사이의 경계 영역에 존재하는 프론티어 포인트를 추출하기 위한 방법을 제공한다.
먼저, 스캔 리스트 P와 프론트 큐 Q는 비어 있는 상태이다. 격자 벡터 L은 점유 격자 지도 M과 동일한 크기로 할당되어 FAR 값으로 초기화된 상태이며, 프론티어 영역 리스트 F 도 초기화된 상태이다.
프로세서는 MARCHFRONT() 함수를 통해 대상 공간에 관한 점유 격자 지도 상에서 경계 셀을 식별하여 저장할 수 있다. 보다 구체적으로 MARCHFRONT()함수는 경계(Boundary) 집합을 찾는 과정을 수행할 수 있으며, 이때의 경계 집합에는 UNKNOWN 과 OCCUPIED가 서로 맞대고 있는 상황 및 UNKNOWN과 FREE가 서로 맞대고 있는 상황이 존재할 수 있다.
경계 검출 알고리즘에서 프론트 큐 Q 집합은 항상 UNKNOWN 이므로 프로세서는 MARCHFRONT() 함수를 통해 UNKNOWN만 찾아다니면서 경계 집합에 속하는지 확인한다. 즉 프론트 큐 Q에 포함된 셀 q 는 UNKOWN인데, 주변 셀이 모두 FREE또는 OCCUPIED 인 경우, 프로세서는 해당 셀 q를 경계 집합에 속하는 경계 셀로 식별하여 저장할 수 있다.
도 4의 Algorithm 1을 참고하면, 프로세서는 시드 인덱스 s 를 프론트 큐 Q에 추가(도 4의 9행)할 수 있다. 만약, 프론트 큐 Q가 비어 있는 상태라면, 프로세서는 동작을 종료할 수 있다.
이와는 달리 프론트 큐 Q가 비어 있는 상태가 아니라면, 프로세서는 프론트 큐 Q에 포함된 셀 q∈Q 와 셀 q의 인접 셀(n)들이 경계 셀(즉, q∈B)인지 여부를 검사(도 4의 14-24행)할 수 있다. 일례로, 프로세서는 셀 q의 모든 인접 셀 n이 UNKNOWN 셀이 아닌 경우, 셀 q 가 UNKNOWN를 나타내는 셀이므로 경계 영역에 존재하는 경계 셀로 판단할 수 있다.
프로세서는 경계 셀로 판단된 셀 q가 잠재적으로 프론티어 영역에 속할 수 있으므로 셀 q를 스캔 리스트 P에 저장(도 4의 22행)할 수 있다.
프로세서는 EXTRACTFRONTIERS() 함수를 통해 프론티어 영역을 식별할 수 있다. 보다 구체적으로 EXTRACTFRONTIER() 함수는 두가지 경계 집합, 즉 1) UNKNOWN과 FREE가 맞대고 있는 상황과 2) UNKNOWN과 OCCUPIED가 맞대고 있는 상황 중 1)번 상황을 찾아내는 과정을 수행할 수 있다.
도 4의 Algorithm 1을 참고하면, 프로세서는 스캔 리스트 P에 저장되어 있는 모든 셀 p들 각각에 대해 모든 인접 셀 n이 점유되지 않은(not OCCUPIED) UNKNOWN 값을 가지는 경우, 해당 셀 p 를 프론티어 영역 F로 추가(도 4의 28-31행) 할 수 있다.
한편, 프런티어 영역 F(UNKNOWN과 FREE가 맞대고 있는)에 포함된 셀들은 서로 인접한 경계선으로 식별되며, 프로세서는 이러한 경계선들을 군집화 (clustering)한 후 각 군집들의 중심점들을 계산함으로써 프론티어 포인트 f 를 계산할 수 있다
도 5는 본 발명의 일실시예에 따른 병렬 경로 알고리즘을 최적의 프론티어 포인트를 결정하는 방법을 나타낸 도면이다.
도 5에 개시된 Algorithm 2은 컴퓨팅 장치의 프로세서에 의해 수행되며, 병렬 경로 알고리즘을 이용하여 스퓨리어스 포인트가 제거된 프론티어 포인트들 중 최적의 프론티어 포인트를 결정하는 방법을 나타낸 도면이다.
프로세서는 스퓨리어스 포인트가 제거된 프론티어 포인트들에 병렬 경로 알고리즘(A*)을 적용하여 이동 로봇의 현재 위치를 기준으로 이동 가능한 프론티어 포인트들 중 최적의 경계 포인트를 결정할 수 있다.
보다 구체적으로 프로세서는 이동 로봇의 현재 위치를 기준으로 스퓨리어스 포인트가 제거된 프론티어 포인트들 각각에 대응하는 이동 경로들을 병렬로 동시에 탐색할 수 있다. 프로세서는 이와 같이 병렬로 동시에 탐색된 이동 경로들 각각의 경로 거리를 비교하여 가장 짧은 경로 거리를 가지는 프론티어 포인트를 최적의 프론티어 포인트를 결정할 수 있다.
병렬 경로 알고리즘은 시작 노드에서 목표 노드까지 최적의 이동 경로를 찾는 효율적인 그래프 탐색 방법일 수 있다. 병렬 경로 알고리즘은 시작 노드가 주어지면 목표 노드인 프론티어 포인트를 선택하여 그래프를 탐색할 수 있다. 병렬 경로 알고리즘에 의한 최소 비용은 다음의 식 2와 같이 나타낼 수 있다.
<식 2>
Figure PCTKR2023012892-appb-img-000012
여기서, G(n)은 시작 노드 ns에서 현재 노드 n까지의 비용을 계산하고, H(n)은 현재 노드 n에서 목표 노드 ng까지의 비용을 추정하는 휴리스틱 함수일 수 있다.
이때, 프로세서는 경로 탐색의 정확도를 높이며, 불필요한 탐색을 최소화하기 위하여 분기 조건과 경계 조건을 활용할 수 있다. 분기 조건 및 경계 조건을 사용하는 병렬 경로 알고리즘은 목표를 향해 자손 노드를 열 때 이동 비용 F(n)이 증가하는 일관성 속성을 활용할 수 있다.
1) 분기 조건(Branch)은 복수의 스레드(Thread)를 실행(Launch)시키기 위한 시작 요소일 수 있다. 일례로, 분기 조건은 복수의 스레드 Ti 를 시작하여 식 2에서 Fi를 계산하여 A* 검색을 동시에 수행하는 요소일 수 있다.
2) 경계 조건(Bound)은 이동 경로를 탐색하기 위한 종료 요소일 수 있다. 일례로, A* 검색 중 스레드 Ti 가
Figure PCTKR2023012892-appb-img-000013
< Fi 를 만날 때마다 Ti는 종료되며,
Figure PCTKR2023012892-appb-img-000014
는 모든 Fi 값의 상한 값으로 큰 값으로 초기화될 수 있다.
3) 병렬 경로 알고리즘은 Ti 가 검색을 성공적으로 완료한 후, Fi <
Figure PCTKR2023012892-appb-img-000015
상태이면,
Figure PCTKR2023012892-appb-img-000016
는 Fi (
Figure PCTKR2023012892-appb-img-000017
:= Fi )로 업데이트될 수 있다.
도 5는 병렬 경로 알고리즘(A*)의 의사 코드를 나타낸 것일 수 있다. 본 발명의 병렬 경로 알고리즘은 열린 노드와 닫힌 노드의 두 목록을 초기화하고 추적(표 2의 4-5행)할 수 있다. 이후, 각 스레드는 바운딩된 조건(Line 9)을 기반으로 병렬 경로 알고리즘(A*)을 활용해 경로 검색을 시작할 수 있다. 이후, 본 발명은 병렬 경로 알고리즘에 바운딩된 조건에 따라 스레드를 종료(표 2의 10행)할 수 있다.
본 발명의 병렬 경로 알고리즘은 스레드가 더 나은 경로를 찾은 경우, 경계 매개변수
Figure PCTKR2023012892-appb-img-000018
를 업데이트(표 2의 15-17행)할 수 있다. 이후, 본 발명의 병렬 경로 알고리즘은 경로 길이가 가장 짧은 최적 프론티어 포인트(f*)를 결정할 수 있다. 최적 프론티어 포인트(f*)에 대한 탐사 궤적은 로봇을 안내하기 위한 전역 계획으로 사용될 수 있다.
도 6은 본 발명의 일실시예에 따른 컴퓨팅 장치를 탑재한 이동 로봇이 대상 공간을 구성하는 복수의 영역을 탐사하는 동작을 설명하기 위해 도시한 도면이다.
도 6을 참고하면, 컴퓨팅 장치는 미지 환경을 갖는 대상 공간에서 추출되는 경계 영역에서 새로운 미지 영역을 탐색할 수 있는 프론티어 포인트를 결정할 수 있다. 컴퓨팅 장치는 점유 격자 지도를 기반으로 경계 검출 알고리즘을 적용함으로써, 대상 공간 내 자유 영역과 미지 영역 사이의 경계 영역에 포함된 경계 셀을 결정할 수 있다. 이때, 컴퓨팅 장치는 경계 영역에 포함된 경계 셀을 감지하는 정확도를 유지하면서 점유 격자 지도의 크기를 다운 샘플링함으로써 경계 검출 알고리즘에 따른 속도를 가속화 시킬 수 있다.
또한, 컴퓨팅 장치는 경계 영역에 포함된 경계 셀과 해당 경계 셀의 인접 셀들을 분석하여 무의미한 셀을 제거함으로써, 이동이 불가능한 목표점으로의 경로 설정을 사전에 방지할 수 있다. 또한, 컴퓨팅 장치는 분기 조건 및 경계 조건을 만족하도록 복수의 프론티어 포인트들 각각에 대응하는 이동 경로들을 병렬로 동시에 탐색할 수 있습니다. 다시 말해, 컴퓨팅 장치는 병렬 경로 알고리즘에 의해 이동 경로를 효율적으로 병렬화할 수 있다.
컴퓨팅 장치는 이동 로봇에 의해 탐사된 대상 공간의 미지 영역에 대한 탐사 궤적을 점유 격자 지도에 표시함으로써, 탐사 궤적으로 포함하는 새로운 점유 격자 지도를 생성할 수 있다. 다시 말해, 컴퓨팅 장치는 점유 격자 지도에 이동 로봇의 탐사 궤적을 실시간으로 합성함으로써, 이동 로봇에 의해 미지 영역이 탐색된 새로운 맵을 구축할 수 있다.
도 6의 제1 그림(610) 내지 제6 그림(670)에 대응하는 도면들은 미지 환경에서 컴퓨팅 장치를 탑재한 이동 로봇의 자율 주행을 단계적으로 나타낸 것이다.
도 6의 제1 그림(610)을 참고하면, 컴퓨팅 장치는 대상 공간 내 이동 로봇의 현재 위치를 기반으로 프론티어 영역들에서 이동 로봇이 첫 번째로 이동할 프론티어 포인트(또는, 국경 지점)에 접근할 수 있다. 컴퓨팅 장치는 복수의 프론티어 포인트들 중에서 최적 프론티어 포인트를 결정하고, 결정된 최적 프론티어 포인트를 이용하여 대상 공간의 미지 영역을 탐사할 수 있다. 컴퓨팅 장치는 이동 로봇의 위치를 최적 프론티어 포인트로 이동시킨 후, 미지 영역을 일정 범위로 스캔하여 탐사할 수 있다.
도 6의 제2 그림(620)을 참고하면, 컴퓨팅 장치는 이동 로봇이 첫 번째 프론티어 포인트에 도달한 다음, 두 번째 프론티어 포인트를 차례로 검색할 수 있다.
도 6의 제3 그림(630)을 참고하면, 컴퓨팅 장치는 두 번째 프론티어 포인트, 세 번째 프론티어 포인트 등에 도달한 후, 연속하여 후속적으로 새로운 영역을 탐색할 수 있다.
도 6의 제4 그림(640), 제5 그림(650) 및 제6 그림(660)은 각각 제1 그림(610), 제2 그림(620) 및 제3 그림(630)에 대해 이동 로봇의 관점에서 바라본 뷰를 나타낸 도면이다.
도 6의 제7 그림(670)을 참고하면, 컴퓨팅 장치는 이동 로봇의 탐사 궤적을 통해 완성된 점유 격자 지도를 확인할 수 있다.
도 7은 본 발명의 일실시예에 따른 서로 다른 경계 검출 알고리즘에 따른 성능을 나타낸 그래프이다.
도 7의 그래프는 본 발명에서 제안하는 자율 탐색 방법의 경계 검출 알고리즘(FFP) 및 파면 감지 방법(WFD: Wavefront Frontier Detection) 각각의 성능을 나타낸 결과이다. 본 발명은 미지 환경에서 최적의 이동 경로를 탐색하기 위해 사용되는 점유 격자 지도를 다운 샘플링(DS: Down Sampling)을 수행할 수 있다. 본 발명은 각 방법에 따른 원본에 해당되는 점유 격자 지도 및 다운 샘플링이 수행된 점유 격자 지도를 활용한 성능을 평가할 수 있다.
본 발명의 자율 탐색 방법을 수행하는 컴퓨팅 장치는 미지 환경을 갖는 대상 공간을 탐색하면서 대상 공간에 존재하는 잠재적인 미지 영역을 보다 정확하게 찾아낼 수 있다. 컴퓨팅 장치는 이동 로봇에 탑재되어 자율적으로 탐색함에 따라 최대 18M 셀까지 증가하는 매우 큰 규모를 갖는 대상 공간을 파악할 수 있다.
도 7의 제1 그래프(710)에서 X축은 점유 격자 지도의 크기를 나타내며, Y축은 로그 스케일에 따른 실행 시간을 나타낼 수 있다. 도 7의 제1 그래프(710)를 참고하면, 자율 탐색 방법에서 사용되는 경계 검출 알고리즘은 파면 감지 방법보다 약 6 배 빠르며, 이는 대상 공간을 나타낸 점유 격자 지도의 맵 크기를 축소될수록 더욱 가속화될 수 있다.
또한, 이중 다운 샘플링된 점유 격자 지도에 적용된 경계 검출 알고리즘은 원본에 해당되는 점유 격자 지도에 적용된 경계 검출 알고리즘 보다 약 14 배, 원본에 해당되는 점유 격자 지도에 적용된 파면 감지 방법보다 87배 빠른 것으로 확인될 수 있다.
도 7의 제2 그래프(720)와 제3 그래프(730)에서 X축은 점유 격자 지도의 크기를 나타내며, Y축은 프론티어 포인트의 개수를 나타낼 수 있다. 도 7의 제2 그래프(720)는 경계 영역에서 탐지된 프론티어 포인트의 개수 면에서 경계 검출 알고리즘과 파면 감지 방법이 유사한 성능을 확인할 수 있다.
도 7의 제3 그래프(730)는 다운 샘플링을 가하여도, 일정크기 이상의 경계영역을 추출하는 데에 별다른 어려움이 없다는 점을 확인 할 수 있다.
IG > 6인 경우, 경계 검출 알고리즘은 경계 영역의 클러스터 크기를 임계값으로 지정하는 것이 단일 다운샘플링을 적용하는 성능과 거의 동일함을 의미할 수 있다. 여기서, 정보 이득(IG)은 경계 영역의 크기를 나타낼 수 있다. 즉, 경계 검출 알고리즘은 합리적인 크기의 경계 영역에 대한 클러스터만 고려하면 대략적인 수준에서, 필요한 모든 경계 점을 탐색할 수 있다.
여기서, IG > 6인경우, 경계 검출 알고리즘은 셀 크기가 6보다 큰 클러스터를 의미하며, 맵 해상도가 0.05m로 설정되어 0.3m의 영역을 의미할 수 있다. 이때, 0.3m는 Turtlebot과 같은 일반 가정 청소 로봇의 크기이고 IG = 12는 Fetch 로봇과 같은 창고 로봇 크기일 수 있다. 따라서, 단일 다운 샘플링된 점유 격자 지도를 사용되는 경계 검출 알고리즘은 Turtlebot 크기 로봇의 모든 경계 영역을 찾을 수 있다.
도 8은 본 발명의 일실시예에 따른 병렬 경로 알고리즘의 성능을 나타낸 그래프이다.
도 8의 그래프는 병렬 경로 알고리즘을 기반으로 스레드 계획에 따른 상대적 런타임이 개선된 결과를 도시한 그래프이다. 여기서, 병렬 경로 알고리즘은 경계 영역들 중에서 상기 이동 로봇의 현재 위치를 기준으로 복수의 목표 지점들 각각에 대응하는 이동 경로들을 병렬로 동시에 탐색할 수 있다. 병렬 경로 알고리즘은 경계 영역들에 대한 분기 조건 및 경계 조건을 만족하도록 복수의 목표 지점들 각각에 대응하는 이동 경로들을 병렬로 동시에 탐색할 수 있다.
도 8의 제1 그래프(810)를 참고하면, 범례 1(
Figure PCTKR2023012892-appb-img-000019
)은 필터를 사용하지 않은 단일 스레드를 이용해 이동 경로를 탐색한 결과(이하, 탐색 ①로 기재)를 나타낼 수 있다. 그래프 상에 표현된 w/o Filter는 with-out Filter의 약자로 필터를 사용하지 않는다는 것을 의미한다.
제1 그래프(810)의 범례 2(
Figure PCTKR2023012892-appb-img-000020
)는 분기 조건 및 경계 조건이 적용되지 않은 병렬 경로 알고리즘(A*) 및 필터를 이용해 이동 경로를 탐색한 결과(이하, 탐색 ②로 기재)를 나타낼 수 있다. 그래프 상에 표현된 w/o BB는 with-out Branch and Bound의 약자로, 분기 조건 및 경계 조건이 적용되지 않는 다는 것을 의미한다.
제1 그래프(810)의 범례 3(
Figure PCTKR2023012892-appb-img-000021
)는 분기 조건 및 경계 조건이 적용된 병렬 A* 및 필터를 이용해 이동 경로를 탐색한 결과(이하, 탐색 ③로 기재)를 나타낼 수 있다.
이에, 본 발명의 자율 탐색 방법이 적용된 탐색 ③은 탐색 ② 보다 약 2 배 빠른 것으로 확인이 가능할 수 있다. 일례로, 자율 탐색 방법은 20 개의 스레드가 작동 중일 때, 탐색 ② 보다 약 30배 빠른 탐색이 가능할 수 있다.
도 8의 제2 그래프(820)를 참고하면, 자율 탐색 방법은 전면 그리드 맵을 기반으로 단일 스레드 계획에 따른 상대적 런타임의 개선을 나타낸 결과이다.
한편, 본 발명에 따른 방법은 컴퓨터에서 실행될 수 있는 프로그램으로 작성되어 마그네틱 저장매체, 광학적 판독매체, 디지털 저장매체 등 다양한 기록 매체로도 구현될 수 있다.
본 명세서에 설명된 각종 기술들의 구현들은 디지털 전자 회로조직으로, 또는 컴퓨터 하드웨어, 펌웨어, 소프트웨어로, 또는 그들의 조합들로 구현될 수 있다. 구현들은 데이터 처리 장치, 예를 들어 프로그램가능 프로세서, 컴퓨터, 또는 다수의 컴퓨터들의 동작에 의한 처리를 위해, 또는 이 동작을 제어하기 위해, 컴퓨터 프로그램 제품, 즉 정보 캐리어, 예를 들어 기계 판독가능 저장 장치(컴퓨터 판독가능 매체) 또는 전파 신호에서 유형적으로 구체화된 컴퓨터 프로그램으로서 구현될 수 있다. 상술한 컴퓨터 프로그램(들)과 같은 컴퓨터 프로그램은 컴파일된 또는 인터프리트된 언어들을 포함하는 임의의 형태의 프로그래밍 언어로 기록될 수 있고, 독립형 프로그램으로서 또는 모듈, 구성요소, 서브루틴, 또는 컴퓨팅 환경에서의 사용에 적절한 다른 유닛으로서 포함하는 임의의 형태로 전개될 수 있다. 컴퓨터 프로그램은 하나의 사이트에서 하나의 컴퓨터 또는 다수의 컴퓨터들 상에서 처리되도록 또는 다수의 사이트들에 걸쳐 분배되고 통신 네트워크에 의해 상호 연결되도록 전개될 수 있다.
컴퓨터 프로그램의 처리에 적절한 프로세서들은 예로서, 범용 및 특수 목적 마이크로프로세서들 둘 다, 및 임의의 종류의 디지털 컴퓨터의 임의의 하나 이상의 프로세서들을 포함한다. 일반적으로, 프로세서는 판독 전용 메모리 또는 랜덤 액세스 메모리 또는 둘 다로부터 명령어들 및 데이터를 수신할 것이다. 컴퓨터의 요소들은 명령어들을 실행하는 적어도 하나의 프로세서 및 명령어들 및 데이터를 저장하는 하나 이상의 메모리 장치들을 포함할 수 있다. 일반적으로, 컴퓨터는 데이터를 저장하는 하나 이상의 대량 저장 장치들, 예를 들어 자기, 자기-광 디스크들, 또는 광 디스크들을 포함할 수 있거나, 이것들로부터 데이터를 수신하거나 이것들에 데이터를 송신하거나 또는 양쪽으로 되도록 결합될 수도 있다. 컴퓨터 프로그램 명령어들 및 데이터를 구체화하는데 적절한 정보 캐리어들은 예로서 반도체 메모리 장치들, 예를 들어, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(Magnetic Media), CD-ROM(Compact Disk Read Only Memory), DVD(Digital Video Disk)와 같은 광 기록 매체(Optical Media), 플롭티컬 디스크(Floptical Disk)와 같은 자기-광 매체(Magneto-Optical Media), 롬(ROM, Read Only Memory), 램(RAM, Random Access Memory), 플래시 메모리, EPROM(Erasable Programmable ROM), EEPROM(Electrically Erasable Programmable ROM) 등을 포함한다. 프로세서 및 메모리는 특수 목적 논리 회로조직에 의해 보충되거나, 이에 포함될 수 있다.
또한, 컴퓨터 판독가능 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용매체일 수 있고, 컴퓨터 저장매체 및 전송매체를 모두 포함할 수 있다.
본 명세서는 다수의 특정한 구현물의 세부사항들을 포함하지만, 이들은 어떠한 발명이나 청구 가능한 것의 범위에 대해서도 제한적인 것으로서 이해되어서는 안되며, 오히려 특정한 발명의 특정한 실시형태에 특유할 수 있는 특징들에 대한 설명으로서 이해되어야 한다. 개별적인 실시형태의 문맥에서 본 명세서에 기술된 특정한 특징들은 단일 실시형태에서 조합하여 구현될 수도 있다. 반대로, 단일 실시형태의 문맥에서 기술한 다양한 특징들 역시 개별적으로 혹은 어떠한 적절한 하위 조합으로도 복수의 실시형태에서 구현 가능하다. 나아가, 특징들이 특정한 조합으로 동작하고 초기에 그와 같이 청구된 바와 같이 묘사될 수 있지만, 청구된 조합으로부터의 하나 이상의 특징들은 일부 경우에 그 조합으로부터 배제될 수 있으며, 그 청구된 조합은 하위 조합이나 하위 조합의 변형물로 변경될 수 있다.
마찬가지로, 특정한 순서로 도면에서 동작들을 묘사하고 있지만, 이는 바람직한 결과를 얻기 위하여 도시된 그 특정한 순서나 순차적인 순서대로 그러한 동작들을 수행하여야 한다거나 모든 도시된 동작들이 수행되어야 하는 것으로 이해되어서는 안 된다. 특정한 경우, 멀티태스킹과 병렬 프로세싱이 유리할 수 있다. 또한, 상술한 실시형태의 다양한 장치 컴포넌트의 분리는 그러한 분리를 모든 실시형태에서 요구하는 것으로 이해되어서는 안되며, 설명한 프로그램 컴포넌트와 장치들은 일반적으로 단일의 소프트웨어 제품으로 함께 통합되거나 다중 소프트웨어 제품에 패키징 될 수 있다는 점을 이해하여야 한다.
한편, 본 명세서와 도면에 개시된 본 발명의 실시 예들은 이해를 돕기 위해 특정 예를 제시한 것에 지나지 않으며, 본 발명의 범위를 한정하고자 하는 것은 아니다. 여기에 개시된 실시 예들 이외에도 본 발명의 기술적 사상에 바탕을 둔 다른 변형 예들이 실시 가능하다는 것은, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 자명한 것이다.

Claims (16)

  1. 미지 영역이 존재하는 대상 공간에 대한 점유 격자 지도를 생성하는 단계;
    경계 검출 알고리즘을 이용하여 상기 점유 격자 지도 상에서 상기 미지 영역에 대한 탐사를 위한 복수의 프론티어 포인트들을 추출하는 단계;
    상기 추출된 복수의 프론티어 포인트들 중 이상치에 대응하는 스퓨리어스(Spurious) 포인트를 제거하는 단계; 및
    병렬 경로 알고리즘을 이용하여 상기 스퓨리어스 포인트가 제거된 프론티어 포인트들 중 최적의 프론티어 포인트를 결정하는 단계
    를 포함하는 자율 탐색 방법.
  2. 제1항에 있어서,
    상기 복수의 프론티어 포인트들을 추출하는 단계는,
    이동 로봇의 시작 위치를 기준으로 대상 공간이 스캔된 점유 격자 지도를 다운 샘플링하는 단계;
    상기 다운 샘플링 된 점유 격자 지도에 상기 경계 검출 알고리즘을 적용하여 상기 다운 샘플링 된 점유 격자 지도 내 경계 셀을 식별하는 단계; 및
    상기 경계 셀의 인접 셀들에 대한 점유 여부에 따라 해당 경계 셀이 프론티어 포인트 인지의 여부를 결정하는 단계
    를 포함하는 자율 탐색 방법.
  3. 제1항에 있어서,
    상기 스퓨리어스(Spurious) 포인트를 제거하는 단계는,
    상기 복수의 프론티어 포인트들 각각에 대한 주변 패치에 대해 장애물이 존재할 확률을 나타내는 비용 맵 점수를 계산하는 단계; 및
    상기 계산된 비용 맵 점수가 미리 설정된 임계값 보다 큰 프론티어 포인트를 스퓨리어스 포인트로 판단하여 제거하는 단계
    를 포함하는 자율 탐색 방법.
  4. 제1항에 있어서,
    상기 스퓨리어스(Spurious) 포인트를 제거하는 단계는,
    상기 복수의 프론티어 포인트들 각각에 대한 주변 패치를 추출하기 위한 경계 필터링을 수행하는 단계; 및
    상기 경계 필터링을 통해 추출된 주변 패치에 대한 경계 측정값에 기초하여 스퓨리어스 포인트를 제거하는 단계
    를 포함하는 자율 탐색 방법.
  5. 제4항에 있어서,
    상기 주변 패치에 대한 경계 측정 값은,
    상기 주변 패치에 포함된 총 셀 수 및 상기 주변 패치 내에서 알려지지 않은 셀 수를 이용하여 결정되는 자율 탐색 방법.
  6. 제1항에 있어서,
    상기 최적의 프론티어 포인트를 결정하는 단계는,
    이동 로봇의 현재 위치를 기준으로 스퓨리어스 포인트가 제거된 프론티어 포인트들 각각에 대응하는 이동 경로들을 병렬 경로 알고리즘을 통해 병렬로 동시에 탐색하는 단계; 및
    상기 병렬로 동시에 탐색된 이동 경로들 각각의 경로 거리를 비교하여 가장 짧은 경로 거리에 대응하는 프론티어 포인트를 최적의 프론티어 포인트로 결정하는 단계
    를 포함하는 자율 탐색 방법.
  7. 제6항에 있어서,
    상기 탐색하는 단계는,
    상기 스퓨리어스 포인트가 제거된 프론티어 포인트들에 대한 분기 조건 및 경계 조건을 고려하여 상기 복수의 프론티어 포인트들 각각에 대응하는 이동 경로들을 병렬로 동시에 탐색하고,
    상기 분기 조건은,
    복수의 스레드를 실행시키기 위한 시작 요소이고,
    상기 경계 조건은,
    이동 경로를 탐색하기 위한 종료 요소인
    자율 탐색 방법.
  8. 제1항에 있어서,
    상기 최적의 프론티어 포인트를 이용하여 이동 로봇을 통해 상기 대상 공간의 미지 영역을 탐사하는 단계; 및
    상기 이동 로봇에 의해 탐사된 상기 대상 공간의 미지 영역에 대한 탐사 궤적으로 상기 점유 격자 지도에 표시하는 단계
    를 더 포함하는 자율 탐색 방법.
  9. 컴퓨팅 장치에 있어서,
    하나 이상의 프로세서; 및
    상기 프로세서에 의해 실행되는 프로그램을 로드(load)하거나 저장하는 메모리를 포함하되,
    상기 프로그램은,
    미지 영역이 존재하는 대상 공간에 대한 점유 격자 지도를 생성하는 동작, 경계 검출 알고리즘을 이용하여 상기 점유 격자 지도 상에서 상기 미지 영역에 대한 탐사를 위한 복수의 프론티어 포인트들을 추출하는 동작, 상기 추출된 복수의 프론티어 포인트들 중 이상치에 대응하는 스퓨리어스(Spurious) 포인트를 제거하는 동작 및 병렬 경로 알고리즘을 이용하여 상기 스퓨리어스 포인트가 제거된 프론티어 포인트들 중 최적의 프론티어 포인트를 결정하는 동작을 수행하도록 하는 인스트럭션들을 포함하는 컴퓨팅 장치.
  10. 제9항에 있어서,
    상기 프로세서는,
    이동 로봇의 시작 위치를 기준으로 대상 공간이 스캔된 점유 격자 지도를 다운 샘플링하고, 상기 다운 샘플링 된 점유 격자 지도에 상기 경계 검출 알고리즘을 적용하여 상기 다운 샘플링 된 점유 격자 지도 내 경계 셀을 식별하며, 상기 경계 셀의 인접 셀들에 대한 점유 여부에 따라 해당 경계 셀이 프론티어 포인트 인지의 여부를 결정함으로써 복수의 프론티어 포인트들을 추출하는 컴퓨팅 장치
  11. 제9항에 있어서,
    상기 프로세서는,
    상기 복수의 프론티어 포인트들 각각에 대한 주변 패치에 대해 장애물이 존재할 확률을 나타내는 비용 맵 점수를 계산하고, 상기 계산된 비용 맵 점수가 미리 설정된 임계값 보다 큰 프론티어 포인트를 스퓨리어스 포인트로 판단하여 제거하는 컴퓨팅 장치.
  12. 제9항에 있어서,
    상기 프로세서는,
    상기 복수의 프론티어 포인트들 각각에 대한 주변 패치를 추출하기 위한 경계 필터링을 수행하고, 상기 경계 필터링을 통해 추출된 주변 패치에 대한 경계 측정값에 기초하여 스퓨리어스 포인트를 제거하는 컴퓨팅 장치.
  13. 제12항에 있어서,
    상기 주변 패치에 대한 경계 측정 값은,
    상기 주변 패치에 포함된 총 셀 수 및 상기 주변 패치 내에서 알려지지 않은 셀 수를 이용하여 결정되는 컴퓨팅 장치.
  14. 제9항에 있어서,
    상기 프로세서는,
    이동 로봇의 현재 위치를 기준으로 스퓨리어스 포인트가 제거된 프론티어 포인트들 각각에 대응하는 이동 경로들을 병렬 경로 알고리즘을 통해 병렬로 동시에 탐색하고, 상기 병렬로 동시에 탐색된 이동 경로들 각각의 경로 거리를 비교하여 가장 짧은 경로 거리에 대응하는 프론티어 포인트를 최적의 프론티어 포인트로 결정하는 컴퓨팅 장치.
  15. 제14항에 있어서,
    상기 프로세서는,
    상기 스퓨리어스 포인트가 제거된 프론티어 포인트들에 대한 분기 조건 및 경계 조건을 고려하여 상기 복수의 프론티어 포인트들 각각에 대응하는 이동 경로들을 병렬로 동시에 탐색하고,
    상기 분기 조건은 복수의 스레드를 실행시키기 위한 시작 요소이고, 상기 경계 조건은 이동 경로를 탐색하기 위한 종료 요소인 컴퓨팅 장치.
  16. 제9항에 있어서,
    상기 프로세서는,
    상기 최적의 프론티어 포인트를 이용하여 이동 로봇을 통해 상기 대상 공간의 미지 영역을 탐사하고, 상기 이동 로봇에 의해 탐사된 상기 대상 공간의 미지 영역에 대한 탐사 궤적으로 상기 점유 격자 지도에 표시하는 컴퓨팅 장치.
PCT/KR2023/012892 2022-10-11 2023-08-30 자율 탐색 방법 및 상기 방법을 수행하는 컴퓨팅 장치 WO2024080550A1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020220129661A KR20240050015A (ko) 2022-10-11 2022-10-11 자율 탐색 방법 및 상기 방법을 수행하는 컴퓨팅 장치
KR10-2022-0129661 2022-10-11

Publications (1)

Publication Number Publication Date
WO2024080550A1 true WO2024080550A1 (ko) 2024-04-18

Family

ID=90669563

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2023/012892 WO2024080550A1 (ko) 2022-10-11 2023-08-30 자율 탐색 방법 및 상기 방법을 수행하는 컴퓨팅 장치

Country Status (2)

Country Link
KR (1) KR20240050015A (ko)
WO (1) WO2024080550A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN118189975A (zh) * 2024-05-15 2024-06-14 之江实验室 面向复杂场景的地面无人平台自主导航方法和装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004201240A (ja) * 2002-12-20 2004-07-15 Fujitsu Ltd 境界検出方法、プログラム、及び画像処理装置
KR100611328B1 (ko) * 2005-06-30 2006-08-11 고려대학교 산학협력단 세선화 기반 위상지도의 작성방법 및 그 장치, 이동로봇의탐사를 통한 세선화 기반 위상지도 작성방법 및 그 장치

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004201240A (ja) * 2002-12-20 2004-07-15 Fujitsu Ltd 境界検出方法、プログラム、及び画像処理装置
KR100611328B1 (ko) * 2005-06-30 2006-08-11 고려대학교 산학협력단 세선화 기반 위상지도의 작성방법 및 그 장치, 이동로봇의탐사를 통한 세선화 기반 위상지도 작성방법 및 그 장치

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
ALEX FUKUNAGA: "A Survey of Parallel A", ARXIV.ORG, CORNELL UNIVERSITY LIBRARY, ARXIV.ORG, ITHACA, 16 August 2017 (2017-08-16), Ithaca, XP093159400, Retrieved from the Internet <URL:https://arxiv.org/pdf/1708.05296> DOI: 10.48550/arxiv.1708.05296 *
MATAN KEIDAR: "Efficient frontier detection for robot exploration", THE INTERNATIONAL JOURNAL OF ROBOTICS RESEARCH, SAGE, vol. 33, no. 2, 1 February 2014 (2014-02-01), Sage, pages 215 - 236, XP093159399, ISSN: 0278-3649, DOI: 10.1177/0278364913494911 *
YOUNG-KWAN KWON: "A Path Generation Method for a Autonomous Mobile Robot based on a Virtual Elastic Force", JOURNAL OF THE KOREA INSTITUTE OF ELECTRONIC COMMUNICATION SCIENCES, vol. 8, no. 1, 21 January 2013 (2013-01-21), pages 149 - 157, XP093159403 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN118189975A (zh) * 2024-05-15 2024-06-14 之江实验室 面向复杂场景的地面无人平台自主导航方法和装置

Also Published As

Publication number Publication date
KR20240050015A (ko) 2024-04-18

Similar Documents

Publication Publication Date Title
WO2024080550A1 (ko) 자율 탐색 방법 및 상기 방법을 수행하는 컴퓨팅 장치
WO2021230457A1 (en) Learning method and learning device for training an object detection network by using attention maps and testing method and testing device using the same
CN109163722B (zh) 一种仿人机器人路径规划方法及装置
WO2016108327A1 (ko) 차량검출방법, 차량검출을 위한 데이터베이스의 구조, 및 차량검출을 위한 데이터베이스 구축방법
WO2021235682A1 (en) Method and device for performing behavior prediction by using explainable self-focused attention
WO2021075772A1 (ko) 복수 영역 검출을 이용한 객체 탐지 방법 및 그 장치
EP3633551A1 (en) Obstacle distribution simulation method, device and terminal based on a probability graph
US5978520A (en) Method of recognizing image data and apparatus therefor
CN109977253B (zh) 一种基于语义和内容的快速图像检索方法及装置
EP3620962A1 (en) Method, device and terminal for simulating a distribution of obstacles
WO2019245320A1 (ko) 이미지 센서와 복수의 지자기 센서를 융합하여 위치 보정하는 이동 로봇 장치 및 제어 방법
WO2020197126A1 (ko) 빅셀그리드맵을 이용한 이동체의 자세 추정 방법, 이를 구현하기 위한 프로그램이 저장된 기록매체 및 이를 구현하기 위해 매체에 저장된 컴퓨터프로그램
CN112837241A (zh) 建图重影去除方法、设备及存储介质
WO2016159613A1 (ko) 영상 합성을 위한 객체 추적 방법 및 시스템
WO2022139327A1 (en) Method and apparatus for detecting unsupported utterances in natural language understanding
CN113848947B (zh) 路径规划方法、装置、计算机设备及存储介质
WO2020256517A2 (ko) 전방위 화상정보 기반의 자동위상 매핑 처리 방법 및 그 시스템
WO2020101424A1 (ko) 지상 로봇의 움직임을 고려한 강인한 레이저 스캐너 매칭 방법 및 그 장치
WO2021141381A1 (ko) 고배율 촬상을 위한 최적 촬상경로 연산 방법
WO2022234985A1 (ko) 가상 부정 엣지 기반 유방향 네트워크 임베딩 방법 및 시스템
WO2023136495A1 (ko) 시각적 측위방법, 이를 이용하는 제어서버 및 건물
WO2023121157A1 (ko) 자율이동장치의 최적 주행 경로를 결정하기 위한 방법 및 이를 수행하는 컴퓨팅 시스템
WO2024101537A1 (ko) 그래프 핵심 구조를 보존하는 노드 중요도 기반 그래프 증강을 위한 방법과 컴퓨터 장치
WO2024085285A1 (ko) 컨텍스트 맵을 활용한 로봇 기반 최적 실내 배송경로 탐색 방법
WO2023068542A1 (ko) 모바일 로봇의 전역 위치인식을 위한 방법 및 컴퓨팅 장치

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 23877480

Country of ref document: EP

Kind code of ref document: A1