KR20220126588A - Virtual grid-based A-Star route search method and system - Google Patents

Virtual grid-based A-Star route search method and system Download PDF

Info

Publication number
KR20220126588A
KR20220126588A KR1020210031038A KR20210031038A KR20220126588A KR 20220126588 A KR20220126588 A KR 20220126588A KR 1020210031038 A KR1020210031038 A KR 1020210031038A KR 20210031038 A KR20210031038 A KR 20210031038A KR 20220126588 A KR20220126588 A KR 20220126588A
Authority
KR
South Korea
Prior art keywords
coordinates
search
cell
virtual grid
destination
Prior art date
Application number
KR1020210031038A
Other languages
Korean (ko)
Other versions
KR102595387B1 (en
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 동의대학교 산학협력단
Priority to KR1020210031038A priority Critical patent/KR102595387B1/en
Publication of KR20220126588A publication Critical patent/KR20220126588A/en
Application granted granted Critical
Publication of KR102595387B1 publication Critical patent/KR102595387B1/en

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course or altitude of land, water, air, or space vehicles, e.g. automatic pilot
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0212Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course or altitude of land, water, air, or space vehicles, e.g. automatic pilot
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0268Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means
    • G05D1/0274Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means using mapping information stored in a memory device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/20Drawing from basic elements, e.g. lines or circles

Abstract

An embodiment provides a virtual grid-based A-star route search system, which includes: at least one processor; and at least one memory containing one or more instructions executable by the processor. The instruction includes applying a virtual grid to a map by dividing the map into cells of a preset size, determining a virtual grid value of each of the cells determined based on a ratio of a pixel representing an obstacle and a pixel representing an obstacle within the cell, and setting a movement route by searching the movement route of a moving object by searching a search cell with a minimum cost value, wherein the minimum cost value is the sum of a first minimum cost estimation value according to movement from a start cell to which a start node belongs to a search cell and a second minimum cost estimation value according to movement from the search cell to a destination cell to which a destination node belongs. The embodiment can reduce a search space by dividing a map image.

Description

가상 그리드 기반 에이스타 경로 탐색 방법 및 이를 위한 시스템{Virtual grid-based A-Star route search method and system}{Virtual grid-based A-Star route search method and system}

본 발명은 가상 그리드 기반 에이스타 경로 탐색 방법 및 이를 위한 시스템에 관한 것이다.The present invention relates to a virtual grid-based A-Star route search method and a system therefor.

물류 자동화를 위하여 실내 물류 현장과 같이 넓고 자유도가 높은 공간에서 지정한 지점 간 자율 주행하는 물류 로봇에 대한 연구가 많이 이루어지고 있다. 물류 로봇의 이동을 제어하기 위하여 출발지와 도착지 간 빠르면서 정확한 경로 탐색이 중요하다. Zarembo와 Kodors는 경로 탐색 알고리즘 효율성 연구를 위하여 20%의 차단 노드를 가지는 서로 다른 크기의 지도에서 경로 탐색 시간과 방문한 노드 개수 비교를 통하여 성능 평가를 수행하였다. 그 결과 BFS, Dijkstra, A*, HPA* 순서로 성능이 좋은 것으로 나타났다. BFS(Breadth-First Search)는 그래프에서 동일 수준의 노드에 대한 탐색 후 한 단계 하위 계층으로 내려가 탐색하는 방법으로 일반적으로 많이 알려져 있는 방식이다. Dijkstra 알고리즘은 출발지와 도착지 간 최단 경로를 보장하는 것으로 알려져 있다. 상세하게, Dijkstra 알고리즘은 그래프 노드 간의 비용이 양의 값을 가질 때 한 노드에서 다른 노드까지의 최적 경로를 계산하는 알고리즘이다. 이 알고리즘은 너비 우선 탐색 알고리즘처럼 시작 노드로부터 이웃 노드까지의 합산된 비용 값을 점차 확장시켜 나간다. 여기서 <위치, 거리> 쌍으로 구성된 우선순위 큐(priority queue) 또는 힙(heap) 트리 구조를 활용하여 이웃 노드들을 힙에 넣고 비용에 따라 재정렬하면 계산 복잡도를 낮출 수 있다. 하지만 각 노드에서 이동 가능한 방향으로 이동한다고 가정했을 때 그때까지 방문한 노드까지의 거리를 비교하여 이동 경로를 계산하므로 최악의 경우 도착지까지 가능한 모든 노드와 모든 에지를 방문해야 한다. 현재 위치에서 도착지까지의 휴리스틱 함수를 이용하여 탐색 공간을 줄여 빠르게 준최적 경로를 찾는 A* 알고리즘은 실제 자동차 내비게이션 시스템에서 많이 사용되고 있다. A* 알고리즘은 Dijkstra 알고리즘을 확장한 알고리즘의 한 종류로, 비용을 계산할 때 현재 상태의 경로 비용 g에 추가로 휴리스틱(heuristic) 함수 비용 h를 더하여 전체 비용 f를 계산(f=g+h)하여 최소가 되는 지점을 우선적으로 탐색한다는 점이다. Zarembo와 Kodors의 연구에서는 h를 다음 수식 h= x축 거리+y축 거리처럼 맨해턴 거리를 사용하여 성능 평가를 수행하였다. 지도 이미지는 이차원 배열 형태이므로 너비와 높이가 n으로 동일하다고 가정하면 지도의 크기는 n^2로, 탐색해야 하는 지도의 크기가 n의 제곱에 비례하므로 n이 커지면 탐색 공간이 비선형적으로 급격하게 커지게 된다. 즉, A* 알고리즘 역시 사용되는 노드와 연결선이 많은 경우 탐색 공간이 커져 빠른 경로 탐색이 어렵다. 또한, 전술한 알고리즘들은 픽셀 단위로 정밀하게 탐색 경로를 설정할 수 있으나 경로 탐색의 연산 시간이 증가하고 물류 로봇과 같이 픽셀 단위의 미세한 경로 탐색보다는 연산 속도가 중요하고 허용 오차를 어느 정도 고려할 수 있는 환경에서는 적합하지 않은 문제가 있다. A* 탐색 알고리즘의 이와 같은 문제를 해결하기 위한 방법으로 A* 알고리즘과 추상화 전략을 사용하여 경로 탐색을 효과적으로 할 수 있는 HPA*가 제안되었다. 이미지를 동일한 크기의 블록으로 나누어 각 블록 내에서의 경로 탐색과 블록 간 경로 탐색을 하여 출발지에서 도착지로의 경로를 탐색한다. 탐색 공간을 줄이기 위하여 HPA*(Hierarchical Pathfinding A*)는 경로 탐색과 계층적인 그래프를 이용하는 클러스터링 알고리즘을 조합한 방법이다. HPA* 방법은 블록의 크기가 커질수록 작은 수의 노드를 가지는 그래프가 되므로 A* 알고리즘을 적용한 경로 탐색 시간이 많이 줄어든다. 하지만 블록이 커질수록 단계 그래프를 만들고 출발지와 도착지를 그래프에 연결하는 데 많은 노력이 필요하게 된다. 블록의 크기가 커질수록 전이 노드의 위치에 따라서 최종적으로 얻을 수 있는 이동 경로가 최적 경로와 편차가 많이 발생할 수 있다. 이러한 편차를 줄이기 위해서는 블록내의 전이 노드를 더 많이 만들면 되는데, 그러면 그래프가 복잡해져 경로 탐색 시간이 많이 소요되게 되는 단점이 있다. 즉, 전처리 과정과 온라인 탐색 과정의 두 단계로 경로 탐색이 이루어짐에 따른 성능 저하를 개선하고 실제 사용시 빠른 동작을 보장할 수 있는 새로운 경로 탐색 방법이 요구되고 있다. 관련하여, 대한민국공개특허공보 제10-2006-0078162호는 그리드 맵을 사용하여 최소 이동 경로로 이동하는 방법 및 장치에서는 종래의 D* 알고리즘("Optimal and fficient Path Planning for Partially-Known Environments", Anthony Stentz, "In Proceedings IEEE International onference on Robotics and Automation, 1994, 5)의 문제점을 보안하고 있다. 그러나, 제10-2006-0078162호는 어느 하나의 셀 내의 픽셀들 중장애물과 비장애물이 차지하는 비율을 고려하지 않고, 장애물이 존재하는 셀은 이동형 가전기기가 이동하지 못하는 것으로 설정됨으로써 이동형 가전기기의 경로를 줄이는데는 한계가 있다.For logistics automation, a lot of research is being done on logistics robots that autonomously drive between designated points in a wide and highly free space such as an indoor logistics site. In order to control the movement of the logistics robot, it is important to quickly and accurately search for a route between the origin and destination. Zarembo and Kodors performed performance evaluation by comparing the route search time and the number of visited nodes on maps of different sizes with 20% blocking nodes to study the efficiency of the route search algorithm. As a result, it was found that the performance was good in the order of BFS, Dijkstra, A*, and HPA*. BFS (Breadth-First Search) is a method that is generally known as a method of searching for nodes of the same level in the graph and then descending one level lower to search. The Dijkstra algorithm is known to guarantee the shortest path between origin and destination. In detail, the Dijkstra algorithm is an algorithm that calculates the optimal path from one node to another when the cost between graph nodes has a positive value. Like the breadth-first search algorithm, this algorithm gradually expands the summed cost value from the starting node to the neighboring node. Here, the computational complexity can be reduced by putting neighboring nodes in the heap and rearranging them according to cost by using a priority queue or heap tree structure composed of <location, distance> pairs. However, assuming that each node moves in a movable direction, the movement path is calculated by comparing the distances to the nodes visited so far. The A* algorithm that quickly finds a suboptimal route by reducing the search space using a heuristic function from the current location to the destination is widely used in real car navigation systems. The A* algorithm is a kind of algorithm that extends the Dijkstra algorithm. When calculating the cost, the total cost f is calculated by adding the heuristic function cost h to the current path cost g in the current state (f = g + h) The point of the minimum is searched first. In the study of Zarembo and Kodors, performance evaluation was performed using the Manhattan distance as h = x-axis distance + y-axis distance. Since the map image is in the form of a two-dimensional array, assuming that the width and height are equal to n, the size of the map is n^2, and the size of the map to be searched is proportional to the square of n. it gets bigger In other words, when there are many nodes and connecting lines used in the A* algorithm, the search space becomes large, so it is difficult to find a fast path. In addition, the above-mentioned algorithms can set the search path precisely in units of pixels, but the calculation time of path search increases, and the calculation speed is more important than the fine path search in pixels, such as logistics robots, and an environment in which tolerance can be considered to some extent There is a problem that does not fit. As a method to solve this problem of the A* search algorithm, HPA*, which can effectively find a path using the A* algorithm and an abstraction strategy, has been proposed. The image is divided into blocks of the same size, and the route from the source to the destination is searched by searching for a route within each block and route search between blocks. In order to reduce the search space, Hierarchical Pathfinding A* (HPA*) is a method that combines a path search and a clustering algorithm using a hierarchical graph. In the HPA* method, as the size of the block increases, the graph becomes a graph with a small number of nodes, so the path search time to which the A* algorithm is applied is greatly reduced. However, the larger the block, the more effort is required to create a step graph and connect the origin and destination to the graph. As the size of the block increases, the finally obtainable movement path may deviate a lot from the optimal path depending on the location of the transition node. In order to reduce this deviation, it is necessary to make more transition nodes in the block. Then, the graph becomes complicated and it takes a lot of time to find the path. That is, there is a need for a new route search method that can improve performance degradation due to route search performed in two stages, a preprocessing process and an online search process, and guarantee fast operation in actual use. In relation to this, Korean Patent Application Laid-Open No. 10-2006-0078162 discloses a method and apparatus for moving to a minimum moving path using a grid map, a conventional D* algorithm ("Optimal and fficient Path Planning for Partially-Known Environments", Anthony Stentz, "In Proceedings IEEE International onference on Robotics and Automation, 1994, 5) secures the problem. However, No. 10-2006-0078162 describes the ratio of obstacles and non-obstacles among pixels in one cell. Without taking this into account, there is a limit in reducing the path of the mobile home appliance by setting the cell in which the obstacle exists so that the mobile home appliance cannot move.

대한민국공개특허공보 제10-2006-0078162호Korean Patent Publication No. 10-2006-0078162

실내 물류 현장과 같이 넓은 장소에 자유도가 높게 이동 가능한 공간에서는 탐색 공간이 급격하게 커져 이와 같은 경로 탐색 알고리즘들을 적용해도 탐색 공간이 충분하게 감소하지 않는 종래 기술의 문제점을 해결하기 위하여 실시예는 탐색 공간을 줄이기 위하여 경로 탐색 시간은 줄이면서 정확한 경로 탐색이 가능하도록 가상 그리드 기법을 지도에 적용하여 탐색 공간을 형성한 다음, A* 알고리즘을 적용하는 방법 및 시스템을 제공한다.In order to solve the problem of the prior art in which the search space is rapidly increased in a space with a high degree of freedom in a wide place such as an indoor logistics site, and the search space is not sufficiently reduced even when such path search algorithms are applied, the embodiment is a search space A method and system are provided for forming a search space by applying the virtual grid technique to the map to enable accurate route search while reducing the route search time to reduce the route search time and then applying the A* algorithm.

실시예는, 적어도 하나의 프로세서; 및 상기 프로세서에 의해 실행 가능한 하나 이상의 명령어를 포함하는 적어도 하나의 메모리;를 포함하고, 상기 명령어는, 지도를 미리 설정된 사이즈의 셀들로 분할하여 상기 지도에 가상 그리드를 적용하고, 상기 셀내 장애물을 표시하는 픽셀과 비장애물을 표시하는 픽셀의 비율에 기초하여 결정된 상기 셀들 각각의 가상 그리드 값을 결정하고, 스타트 노드가 속한 스타트 셀에서 탐색 셀까지의 이동에 따른 제1 최소 비용 추정 값과 상기 탐색 셀에서부터 도착지 노드가 속한 도착지 셀까지의 이동에 따른 제2 최소 비용 추정 값의 합인 최소 비용 값이 최소가 되는 탐색 셀을 탐색하여 이동체의 이동 경로를 탐색하여 이동 경로를 설정하는 것을 포함하는 가상 그리드 기반 에이스타 경로 탐색 시스템을 제공할 수 있다.An embodiment includes at least one processor; and at least one memory including one or more instructions executable by the processor, wherein the instructions divide the map into cells of a preset size to apply a virtual grid to the map, and display obstacles in the cells A virtual grid value of each of the cells is determined based on a ratio of a pixel indicating a non-obstacle and a first minimum cost estimation value according to movement from a start cell to which a start node belongs to a search cell and the search cell Virtual grid-based, including setting a movement path by searching for a movement path of a moving object by searching for a search cell in which a minimum cost value that is a sum of a second minimum cost estimate value according to movement from a destination node to a destination cell to which the destination node belongs It is possible to provide an A-Star route search system.

다른 측면에서, 상기 제1 최소 비용 추정 값은 상기 가상 그리드 값인 가상 그리드 기반 에이스타 경로 탐색 시스템을 제공할 수 있다.In another aspect, the first minimum cost estimate value may provide a virtual grid-based A-Star route search system that is the virtual grid value.

다른 측면에서, 상기 스타트 노드에 대응하는 스타트 좌표와 상기 도착지 노드에 대응하는 도착지 좌표의 유효성이 충족되면 상기 최소 비용 값이 최소가 되는 탐색 셀을 탐색하여 이동체의 이동 경로를 탐색하고, 상기 유효성은 상기 스타트 좌표 및 상기 도착지 좌표가 이동할 수 있는 좌표인지에 관한 것인 가상 그리드 기반 에이스타 경로 탐색 시스템을 제공할 수 있다.In another aspect, when the validity of the start coordinates corresponding to the start node and the destination coordinates corresponding to the destination node are satisfied, the movement path of the moving object is searched by searching the search cell in which the minimum cost value is the minimum, and the validity is It is possible to provide a virtual grid-based A-Star route search system that relates to whether the start coordinates and the destination coordinates are movable coordinates.

다른 측면에서, 상기 명령어는, 상기 도착지 좌표를 중심으로 로봇의 반지름 내의 좌표들 중 적어도 하나가 장애물 좌표인지 여부를 판단하여 상기 도착지 좌표가 도달 가능 좌표인지 여부를 판단하는 것을 더 포함하고, 상기 도착지 좌표가 상기 도달 가능 좌표가 아닌 경우, 상기 도착지 좌표와 인접한 좌표로 상기 도착지 좌표를 업데이트하는 가상 그리드 기반 에이스타 경로 탐색 시스템을 제공할 수 있다.In another aspect, the command further comprises determining whether the destination coordinates are reachable coordinates by determining whether at least one of the coordinates within the radius of the robot with respect to the destination coordinates is an obstacle coordinate, When the coordinates are not the reachable coordinates, it is possible to provide a virtual grid-based A-Star route search system that updates the destination coordinates with coordinates adjacent to the destination coordinates.

다른 측면에서, 상기 스타트 셀에서 상기 탐색 셀로의 이동 가능 조건을 충족하면 상기 최소 비용 값이 최소가 되는 탐색 셀을 탐색하여 이동체의 이동 경로를 탐색하고, 상기 이동 가능 조건은 상기 탐색 셀의 가상 그리드 값이 미리 설정된 임계값 이상이 조건인 가상 그리드 기반 에이스타 경로 탐색 시스템을 제공할 수 있다.In another aspect, when the moving condition from the start cell to the search cell is satisfied, the movement path of the moving object is searched for by searching for the search cell having the minimum minimum cost value, and the moving condition is the virtual grid of the search cell. It is possible to provide a virtual grid-based A-Star route search system in which a value is greater than or equal to a preset threshold.

다른 측면에서, 상기 명령어는, 탐색 셀의 탐색 노드를 중심으로 로봇의 반지름 내의 좌표들 중 적어도 하나가 장애물 좌표인지 여부를 판단하여 상기 탐색 노드가 이동 가능 좌표인지 여부를 판단하는 것을 더 포함하고, 상기 탐색 노드가 상기 이동 가능 좌표가 아닌 경우, 상기 탐색 노드와 인접한 좌표로 상기 탐색 노드의 좌표를 업데이트하는 가상 그리드 기반 에이스타 경로 탐색 시스템을 제공할 수 있다.In another aspect, the command further comprises determining whether the search node is movable coordinates by determining whether at least one of the coordinates within the radius of the robot with respect to the search node of the search cell is an obstacle coordinate, When the search node is not the movable coordinates, a virtual grid-based A-Star path search system for updating the coordinates of the search node with coordinates adjacent to the search node may be provided.

다른 측면에서, 상기 탐색 노드가 상기 이동 가능 좌표가 아닌 경우, 상기 탐색 노드가 속한 셀 내의 좌표 들 중 상기 탐색 노드와 인접한 좌표로 상기 탐색 노드의 좌표를 업데이트하는 가상 그리드 기반 에이스타 경로 탐색 시스템을 제공할 수 있다.In another aspect, when the search node is not the movable coordinates, a virtual grid-based A-Star path search system that updates the coordinates of the search node with coordinates adjacent to the search node among the coordinates in the cell to which the search node belongs. can provide

다른 측면에서, 상기 명령어는, 상기 지도 상에 복수의 로봇이 위치하는 경우, 상기 복수의 로봇 각각의 경로 탐색에 따라 동일한 시점에 동일한 셀로 이동하는 경로 겹침이 발생하는 경우 상기 복수의 로봇들 각각의 경로 탐색에 적용되는 임계값을 조정하여 상기 복수의 로봇들 각각의 경로를 재 탐색하는 것을 더 포함하는 가상 그리드 기반 에이스타 경로 탐색 시스템을 제공할 수 있다.In another aspect, the command is, when a plurality of robots are located on the map, when a path overlap of moving to the same cell at the same time occurs according to the path search of each of the plurality of robots, each of the plurality of robots It is possible to provide a virtual grid-based A-Star path search system further comprising re-searching a path of each of the plurality of robots by adjusting a threshold value applied to path search.

다른 측면에서, 상기 가상 그리드 내의 셀의 크기는 상기 지도의 복잡도와 상기 지도의 사이즈에 기초하여 가변되는 가상 그리드 기반 에이스타 경로 탐색 방법을 제공할 수 있다.In another aspect, it is possible to provide a virtual grid-based A-Star route search method in which the size of cells in the virtual grid is variable based on the complexity of the map and the size of the map.

또 다른 측면에서, 지도 이미지에 복수의 셀로 구성된 가상 그리드를 적용하는 단계; 상기 복수의 셀 각각의 장애물을 표시하는 픽셀과 비장애물을 표시하는 픽셀의 비율에 기초하여 결정된 가상 그리드 값을 상기 복수의 셀 각각에 적용하는 가상 그리드를 초기화하는 단계; 스타트 노드와 도착지 노드의 좌표의 유효성을 판단하는 단계; 도착지 노드가 도달 가능 좌표인지 여부를 판단하는 단계; 스타트 셀에서 탐색 셀로의 이동 가능 조건을 충족하면 상기 가상 그리드 값에 기초한 최소 비용 값이 최소가 되는 탐색 셀을 탐색하여 이동체의 이동 경로를 탐색하여 이동 경로를 설정하는 단계; 및 이동 경로를 보정하는 단계;를 포함하는 가상 그리드 기반 에이스타 경로 탐색 방법을 제공할 수 있다.In another aspect, the method comprising: applying a virtual grid composed of a plurality of cells to a map image; initializing a virtual grid for applying a virtual grid value determined based on a ratio of a pixel indicating an obstacle to a pixel indicating a non-obstacle of each of the plurality of cells to each of the plurality of cells; determining the validity of the coordinates of the start node and the destination node; determining whether the destination node is reachable coordinates; setting a movement path by searching for a search cell in which a minimum cost value based on the virtual grid value is the minimum when a moving condition from the start cell to the search cell is satisfied; and correcting the moving path; may provide a virtual grid-based A-Star path search method comprising.

또 다른 측면에서, 상기 최소 비용 값은 상기 스타트 셀에서 탐색 셀까지의 이동에 따른 제1 최소 비용 추정 값과 상기 탐색 셀에서부터 상기 도착지 노드가 속한 도착지 셀까지의 이동에 따른 제2 최소 비용 추정 값의 합인 가상 그리드 기반 에이스타 경로 탐색 방법을 제공할 수 있다.In another aspect, the minimum cost value includes a first minimum cost estimate for movement from the start cell to a search cell and a second minimum cost estimate for movement from the search cell to a destination cell to which the destination node belongs. It is possible to provide a virtual grid-based A-Star route search method that is the sum of

또 다른 측면에서, 상기 이동 가능 조건은 상기 탐색 셀의 가상 그리드 값이 미리 설정된 임계값 이상이 조건인 가상 그리드 기반 에이스타 경로 탐색 방법을 제공할 수 있다.In another aspect, the movable condition may provide a virtual grid-based A-Star route search method in which the virtual grid value of the search cell is equal to or greater than a preset threshold value.

또 다른 측면에서, 상기 스타트 노드에 대응하는 스타트 좌표와 상기 도착지 노드에 대응하는 도착지 좌표의 유효성이 충족되면 상기 최소 비용 값이 최소가 되는 탐색 셀을 탐색하여 이동체의 이동 경로를 탐색하고, 상기 유효성은 상기 스타트 좌표 및 상기 도착지 좌표가 이동할 수 있는 좌표인지에 관한 것이고, 상기 도착지 좌표를 중심으로 로봇의 반지름 내의 좌표들 중 적어도 하나가 장애물 좌표인지 여부를 판단하여 상기 도착지 좌표가 상기 도달 가능 좌표인지 여부를 판단하고, 상기 도착지 좌표가 상기 도달 가능 좌표가 아닌 경우, 상기 도착지 좌표와 인접한 좌표로 상기 도착지 좌표를 업데이트하는 가상 그리드 기반 에이스타 경로 탐색 방법을 제공할 수 있다.In another aspect, when the validity of the start coordinates corresponding to the start node and the destination coordinates corresponding to the destination node are satisfied, the movement path of the moving object is searched by searching the search cell in which the minimum cost value is the minimum, and the validity relates to whether the start coordinates and the destination coordinates are movable coordinates, and determine whether at least one of the coordinates within the radius of the robot around the destination coordinates is the obstacle coordinates to determine whether the destination coordinates are the reachable coordinates It is possible to provide a virtual grid-based A-Star route search method for determining whether or not the destination coordinates are not reachable coordinates and updating the destination coordinates with coordinates adjacent to the destination coordinates.

또 다른 측면에서, 상기 지도 상에 복수의 로봇이 위치하고, 상기 복수의 로봇 각각의 경로 탐색에 따라 동일한 시점에 동일한 셀로 이동하는 경로 겹침이 발생하는 경우 상기 복수의 로봇들 각각의 경로 탐색에 적용되는 임계값을 조정하여 상기 복수의 로봇들 각각의 경로를 재 탐색하는 단계;를 더 포함하는 가상 그리드 기반 에이스타 경로 탐색 시스템을 제공할 수 있다.In another aspect, when a plurality of robots are located on the map, and a path overlap that moves to the same cell at the same time occurs according to the path search of each of the plurality of robots, it is applied to the path search of each of the plurality of robots It is possible to provide a virtual grid-based A-Star path search system further comprising; re-searching the path of each of the plurality of robots by adjusting the threshold value.

실시예는 지도 이미지를 분할함으로써 탐색 공간을 줄이고, 이를 사용하여 A* 알고리즘을 적용함으로써 성능을 향상시킬 수 있다.An embodiment can reduce the search space by segmenting the map image, and use it to improve performance by applying the A* algorithm.

또한, 실시예는 물류 자동화를 위하여 실내 물류 현장과 같이 넓고 자유도가 높은 공간에서 지정한 지점 간 자율 주행하는 물류 로봇의 경로 탐색에 효과적으로 적용될 수 있다.In addition, the embodiment can be effectively applied to the path search of a logistics robot that autonomously travels between designated points in a space with a high degree of freedom, such as an indoor logistics site, for logistics automation.

또한, 실시예는 셀 내의 중심 노드를 잇는 경로로 이동체가 이동하면서도 셀 내의 장애물을 고려하여 중심 노드의 위치를 변경 업데이트함으로써 장애물을 회피할 수 있다. 따라서, 단순히 셀 간의 이동이 아닌 현장의 상황과 로봇의 직경을 고려하여 경로를 설정함으로써 셀 설정에 따른 빠른 데이터 처리와 노드의 위치 업데이트에 따른 최적의 경로를 설정할 수 있다.Also, according to the embodiment, the obstacle can be avoided by changing and updating the position of the central node in consideration of the obstacle in the cell while the moving object moves along the path connecting the central node in the cell. Therefore, by setting the path in consideration of the field situation and the diameter of the robot, rather than simply moving between cells, it is possible to set the optimal path according to the rapid data processing according to the cell setting and the position update of the node.

도 1은 가상 그리드가 적용된 예시적인 지도 이미지를 나타낸 것이다.
도 2는 가상 그리드의 크기에 따른 탐색 공간의 크기 변화에 관한 그래프이다.
도 3은 가상 그리드의 초기화 예를 나타낸 것이다.
도 4는 가상 그리드 초기화 알고리즘을 나타낸 것이다. 도 5는 가상 그리드 기반 A* 탐색 알고리즘을 나타낸 것이다.
도 6 및 도 7은 도달 가능한 위치를 찾는 방법을 설명하기 위한 개략도이다.
도 8은 탐색 가능한 탐색 셀 내의 이웃 노드를 설명하기 위한 것이다.
도 9는 최종 경로 설정에 따른 경로 보정 전(a)과 경로 보정 후(b)를 설명하기 위한 개략도이다.
도 10은 이동 경로 상의 셀 내 최종 이동 경로를 확인하여 로봇과 장애물 사이의 충돌 여부를 확인하는 것을 설명하기 위한 것이다.
도 11은 이동 경로 상의 셀 내 최종 이동 경로를 보정하기 위하여 빈 공간을 찾는 것을 설명하기 위한 것이다.
도 12는 본 발명의 실시예에 따른 가상 그리드 기반 에이스타 경로 탐색 시스템의 개략도이다.
도 13은 본 발명의 실시예에 따른 가상 그리드 기반 에이스타 경로 탐색 방법의 흐름도이다.
도 14는 본 발명의 다른 실시예에 따른 가상 그리드 기반 에이스타 경로 탐색 방법의 흐름도이다.
도 15는 가상 그리드의 크기가 10일 때 2439×1977 크기의 지도 이미지 상에서의 최종 이동 경로를 표시하는 것을 나타낸다.
도 16은 가상 그리드의 크기에 따른 경로 탐색 시간(단위: 초)에 관한 그래프이다.
1 shows an exemplary map image to which a virtual grid is applied.
2 is a graph showing a change in the size of a search space according to the size of a virtual grid.
3 illustrates an example of initialization of a virtual grid.
4 shows a virtual grid initialization algorithm. 5 shows a virtual grid-based A* search algorithm.
6 and 7 are schematic diagrams for explaining a method of finding an reachable location.
8 is a diagram for describing a neighbor node in a searchable discovery cell.
9 is a schematic diagram for explaining a path before (a) and after (b) path correction according to the final path setting.
FIG. 10 is for explaining whether a collision between a robot and an obstacle is confirmed by checking a final movement path within a cell on the movement path.
11 is a diagram for explaining finding an empty space in order to correct a final movement path in a cell on a movement path.
12 is a schematic diagram of a virtual grid-based A-Star route search system according to an embodiment of the present invention.
13 is a flowchart of a virtual grid-based A-Star route search method according to an embodiment of the present invention.
14 is a flowchart of a virtual grid-based A-Star route search method according to another embodiment of the present invention.
15 shows the display of the final movement path on the map image of the size of 2439×1977 when the size of the virtual grid is 10. Referring to FIG.
16 is a graph of a path search time (unit: seconds) according to the size of a virtual grid.

본 발명은 다양한 변환을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 본 발명의 효과 및 특징, 그리고 그것들을 달성하는 방법은 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 다양한 형태로 구현될 수 있다. 이하의 실시예에서, 제1, 제2 등의 용어는 한정적인 의미가 아니라 하나의 구성 요소를 다른 구성 요소와 구별하는 목적으로 사용되었다. 또한, 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 또한, 포함하다 또는 가지다 등의 용어는 명세서상에 기재된 특징, 또는 구성요소가 존재함을 의미하는 것이고, 하나 이상의 다른 특징들 또는 구성요소가 부가될 가능성을 미리 배제하는 것은 아니다. 또한, 도면에서는 설명의 편의를 위하여 구성 요소들이 그 크기가 과장 또는 축소될 수 있다. 예컨대, 도면에서 나타난 각 구성의 크기 및 두께는 설명의 편의를 위해 임의로 나타내었으므로, 본 발명이 반드시 도시된 바에 한정되지 않는다.Since the present invention can apply various transformations and can have various embodiments, specific embodiments are illustrated in the drawings and described in detail in the detailed description. Effects and features of the present invention, and a method for achieving them, will become apparent with reference to the embodiments described below in detail in conjunction with the drawings. However, the present invention is not limited to the embodiments disclosed below and may be implemented in various forms. In the following embodiments, terms such as first, second, etc. are used for the purpose of distinguishing one component from another, not in a limiting sense. Also, the singular expression includes the plural expression unless the context clearly dictates otherwise. In addition, terms such as include or have means that the features or components described in the specification are present, and do not preclude the possibility that one or more other features or components will be added. In addition, in the drawings, the size of the components may be exaggerated or reduced for convenience of description. For example, since the size and thickness of each component shown in the drawings are arbitrarily indicated for convenience of description, the present invention is not necessarily limited to the illustrated bar.

이하, 첨부된 도면을 참조하여 본 발명의 실시예들을 상세히 설명하기로 하며, 도면을 참조하여 설명할 때 동일하거나 대응하는 구성 요소는 동일한 도면부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings, and when described with reference to the drawings, the same or corresponding components are given the same reference numerals, and the overlapping description thereof will be omitted. .

도 1은 가상 그리드가 적용된 예시적인 지도 이미지를 나타낸 것이다. 도 2는 가상 그리드의 크기에 따른 탐색 공간의 크기 변화에 관한 그래프이다. 도 3은 가상 그리드의 초기화 예를 나타낸 것이다. 도 4는 가상 그리드 초기화 알고리즘을 나타낸 것이다. 도 5는 가상 그리드 기반 A* 탐색 알고리즘을 나타낸 것이다. 도 6 및 도 7은 도달 가능한 위치를 찾는 방법을 설명하기 위한 개략도이다. 도 8은 탐색 가능한 탐색 셀 내의 이웃 노드를 설명하기 위한 것이다. 도 9는 최종 경로 설정에 따른 경로 보정 전(a)과 경로 보정 후(b)를 설명하기 위한 개략도이다. 그리고, 도 10은 이동 경로 상의 셀 내 최종 이동 경로를 확인하여 로봇과 장애물 사이의 충돌 여부를 확인하는 것을 설명하기 위한 것이고, 도 11은 이동 경로 상의 셀 내 최종 이동 경로를 보정하기 위하여 빈 공간을 찾는 것을 설명하기 위한 것이다. 그리고 도 12는 본 발명의 실시예에 따른 가상 그리드 기반 에이스타 경로 탐색 시스템의 개략도이고, 도 13은 본 발명의 실시예에 따른 가상 그리드 기반 에이스타 경로 탐색 방법의 흐름도이다.1 shows an exemplary map image to which a virtual grid is applied. 2 is a graph showing a change in the size of a search space according to the size of a virtual grid. 3 illustrates an example of initialization of a virtual grid. 4 shows a virtual grid initialization algorithm. 5 shows a virtual grid-based A* search algorithm. 6 and 7 are schematic diagrams for explaining a method of finding an reachable location. 8 is a diagram for describing a neighbor node in a searchable discovery cell. 9 is a schematic diagram for explaining a path before (a) and after (b) path correction according to the final path setting. And, FIG. 10 is for explaining whether a collision between the robot and an obstacle is confirmed by checking the final movement path in the cell on the movement path, and FIG. 11 is an empty space in order to correct the final movement path in the cell on the movement path. To explain what you are looking for. 12 is a schematic diagram of a virtual grid-based A-Star route search system according to an embodiment of the present invention, and FIG. 13 is a flowchart of a virtual grid-based A-Star route search method according to an embodiment of the present invention.

도 12를 참조하면, 본 발명의 실시예에 따른 가상 그리드 기반 에이스타 경로 탐색 시스템(10)은 메모리(110), 프로세서(120)를 포함할 수 있다. Referring to FIG. 12 , the virtual grid-based A-Star path search system 10 according to an embodiment of the present invention may include a memory 110 and a processor 120 .

일부 실시예에서, 가상 그리드 기반 에이스타 경로 탐색 시스템(10)은 하나 이상의 메모리와 하나 이상의 마이크로프로세서들, 디지털 신호 프로세서들 (DSP들), 주문형 집적회로들 (ASIC들), 필드 프로그램가능 게이트 어레이들 (FPGA들), 개별 로직 회로, 소프트웨어, 하드웨어, 펌웨어 또는 그것들의 임의의 조합과 같은 다양한 형태로 구성될 수 있다. 메모리는 컴퓨터 판독가능 명령들 또는 프로세서 판독가능 명령들과 같은 명령들(예를 들어, 실행가능 명령들)을 포함한다. 명령들은 하나 이상의 프로세서들 각각에 의해서와 같이 컴퓨터에 의해 실행가능한 하나 이상의 명령어들을 포함할 수도 있다. 예를 들어 하나 이상의 명령들은 하나 이상의 프로세서들로 하여금 가상 그리드를 설정하고, 경로를 탐색하여 경로를 설정하고, 설정된 경로를 수정하며 이동체인 로봇(200)을 제어하기 위한 프로세싱하는 것을 포함하는 동작들을 수행하기 위해 하나 이상의 프로세서들에 의해 실행가능 할 수도 있다.In some embodiments, the virtual grid based A-Star path finding system 10 includes one or more memory and one or more microprocessors, digital signal processors (DSPs), application specific integrated circuits (ASICs), field programmable gate arrays. may be configured in various forms, such as discrete logic circuits (FPGAs), software, hardware, firmware, or any combination thereof. The memory includes instructions (eg, executable instructions), such as computer readable instructions or processor readable instructions. The instructions may include one or more instructions executable by a computer, such as by each of one or more processors. For example, the one or more instructions cause the one or more processors to perform operations including processing for setting a virtual grid, setting a route by searching a route, modifying the set route, and controlling the robot 200 as a mobile body. may be executable by one or more processors to perform.

가상 그리드 기반 에이스타 경로 탐색 시스템(10)은 네트워크(300)를 통해 이동체인 로봇(200)과 통신할 수 있으나, 이에 제한되는 것은 아니고 네트워크(300) 상의 별도의 외부 장치가 개입될 수 있다.The virtual grid-based A-Star route search system 10 may communicate with the mobile robot 200 through the network 300 , but is not limited thereto, and a separate external device on the network 300 may intervene.

네트워크(300)는 예컨대 월드 와이드 웹(WWW)으로도 지칭되는 인터넷, 인트라넷, 및/또는 무선 네트워크, 예컨대 셀룰러 전화 네트워크, 무선 근거리 통신망(local area network; LAN) 및/또는 대도시 통신망(metropolitan area network; MAN), 및 다른 디바이스들과 무선 통신에 의해 통신할 수 있도록 한다. 무선 통신은, 선택적으로, GSM(Global System for Mobile Communications), EDGE(Enhanced Data GSM Environment), HSDPA(high-speed downlink packet access), HSUPA(high-speed uplink packet access), EV-DO(Evolution, Data-Only), HSPA, HSPA+, DC-HSPDA(Dual-Cell HSPA), LTE(long term evolution), NFC(near field communication), W-CDMA(wideband code division multiple access), CDMA(code division multiple access), TDMA(time division multiple access), 블루투스, Wi-Fi(Wireless Fidelity)(예를 들어, IEEE 802.11a, IEEE 802.11b, IEEE 802.11g 및/또는 IEEE 802.11n), VoiP(voice over Internet Protocol), Wi-MAX, 이메일용 프로토콜(예를 들어, IMAP(Internet message access protocol) 및/또는 POP(post office protocol)), 인스턴트 메시징(예를 들어, XMPP(extensible messaging and presence protocol), SIMPLE(Session Initiation Protocol for Instant Messaging and Presence Leveraging Extensions), IMPS(Instant Messaging and Presence Service)), 및/또는 SMS(Short Message Service), 또는 본 문헌의 출원일 현재 아직 개발되지 않은 통신 프로토콜들을 포함하는 임의의 다른 적합한 통신 프로토콜을 포함하지만 이로 한정되지 않는 복수의 통신 표준들, 프로토콜들 및 기술들 중 임의의 것을 사용한다.Network 300 may include, for example, the Internet, intranet, and/or wireless networks also referred to as the World Wide Web (WWW), such as cellular telephone networks, wireless local area networks (LANs), and/or metropolitan area networks. ; MAN), and other devices by wireless communication. Wireless communication is optionally, Global System for Mobile Communications (GSM), Enhanced Data GSM Environment (EDGE), high-speed downlink packet access (HSDPA), high-speed uplink packet access (HSUPA), Evolution (EV-DO), Data-Only), HSPA, HSPA+, DC-HSPDA (Dual-Cell HSPA), LTE (long term evolution), NFC (near field communication), W-CDMA (wideband code division multiple access), CDMA (code division multiple access) ), time division multiple access (TDMA), Bluetooth, Wireless Fidelity (Wi-Fi) (eg, IEEE 802.11a, IEEE 802.11b, IEEE 802.11g and/or IEEE 802.11n), voice over Internet Protocol (VoiP) , Wi-MAX, protocols for email (eg, Internet message access protocol (IMAP) and/or post office protocol (POP)), instant messaging (eg, extensible messaging and presence protocol (XMPP), SIMPLE (Session) Initiation Protocol for Instant Messaging and Presence Leveraging Extensions), Instant Messaging and Presence Service (IMPS), and/or Short Message Service (SMS), or any other suitable including communication protocols not yet developed as of the filing date of this document. A plurality of communication standards, protocols and technologies including, but not limited to, a communication protocol. Use any of these.

일부 실시예에서, 가상 그리드 기반 에이스타 경로 탐색 시스템(10)은 출력부(130)를 더 포함할 수 있다. 출력부(130)는 시각적, 청각적 및 물리적 표시 중 적어도 하나를 출력할 수 있는 장치가 될 수 있으나 이에 제한되는 것은 아니다.In some embodiments, the virtual grid-based A-Star route search system 10 may further include an output unit 130 . The output unit 130 may be a device capable of outputting at least one of visual, audio, and physical display, but is not limited thereto.

도 13을 참조하면, 본 발명의 실시예에 따른 가상 그리드 기반 에이스타 경로 탐색 방법은 지도 이미지에 가상 그리드를 적용하는 단계(S101), 가상 그리드를 초기화하는 단계(S103), 스타트 노드와 도착지 노드의 좌표의 유효성을 판단하는 단계(S105), 도착지 노드가 도달 가능한 위치인지 여부를 판단하는 단계(S107), 스타트 셀에서 탐색 셀로의 이동 가능 조건을 충족하면 최소 비용 값이 최소가 되는 탐색 셀을 탐색하여 이동체의 이동 경로를 탐색하여 이동 경로를 설정하는 단계(S109) 및 이동 경로를 보정하는 단계(S111)를 포함할 수 있다.13, the virtual grid-based A-Star route search method according to an embodiment of the present invention includes the steps of applying a virtual grid to a map image (S101), initializing the virtual grid (S103), a start node and a destination node. A step of determining the validity of the coordinates of (S105), a step of determining whether the destination node is an reachable location (S107), a search cell with a minimum cost value that is a minimum when the moving condition from the start cell to the search cell is satisfied It may include the steps of setting the moving path by searching for the moving path of the moving object ( S109 ) and correcting the moving path ( S111 ).

이하, 도 1 내지 도 11을 참조하여 가상 그리드 기반 에이스타 경로 탐색 방법의 각 단계를 상술한다.Hereinafter, each step of the virtual grid-based A-Star route search method will be described in detail with reference to FIGS. 1 to 11 .

- 지도 이미지에 가상 그리드를 적용하는 단계(S101)- Step of applying the virtual grid to the map image (S101)

프로세서(120)는 예시적으로 도 1에서와 같이 지도 이미지에 고정 너비와 높이를 가지는 복수의 셀로 구성된 가상 그리드를 적용할 수 있다. 가상 그리드의 크기는 변경될 수 있다.The processor 120 may apply, for example, a virtual grid composed of a plurality of cells having a fixed width and height to the map image as shown in FIG. 1 . The size of the virtual grid may be changed.

도 2를 참조하여 가상 그리드의 크기의 변경, 즉 셀의 크기의 변화에 따른 탐색 공간을 크기를 살펴보면 가상 그리드가 10 이상이 되면 탐색 공간의 크기가 급격하게 줄어들어 이동 경로 탐색에 소요되는 시간이 충분히 작을 것을 기대할 수 있다.If we look at the size of the search space according to the change in the size of the virtual grid, that is, the change in the size of the cell with reference to FIG. 2 , when the virtual grid is 10 or more, the size of the search space decreases rapidly, so that the time required to search the moving path is sufficient. can be expected to be small.

한편, 가상 그리드의 크기가 10이라는 의미는 가상 그리드를 구성하는 복수의 셀들 각각의 크기가 10이 될 수 있다. 예시적으로, 셀의 가로 및 세로의 길이가 동일한 경우 셀의 가로 및 세로의 길이 중 어느 하나가 10이 될 수 있다. 일부 실시예에서, 셀의 가로 및 세로의 길이는 서로 다를 수 있고 셀의 가로 및 세로의 길이의 합이 10이 될 수 있다. 다양한 실시예에 따라 셀의 가로 및 세로의 길이의 곱이 10이 될 수 있다. 그리고, 단위는 m가 될 수 있으나 이에 제한되는 것은 아니다.Meanwhile, that the size of the virtual grid is 10 means that the size of each of a plurality of cells constituting the virtual grid may be 10. For example, when the horizontal and vertical lengths of the cell are the same, any one of the horizontal and vertical lengths of the cell may be 10. In some embodiments, the horizontal and vertical lengths of the cell may be different and the sum of the horizontal and vertical lengths of the cell may be 10. According to various embodiments, the product of the horizontal and vertical lengths of the cell may be 10. And, the unit may be m, but is not limited thereto.

- 가상 그리드를 초기화하는 단계(S103)- Initializing the virtual grid (S103)

가상 그리드 내의 셀들 각각의 픽셀들은 장애물을 표시하는 픽셀인 장애물 픽셀과 비장애물을 표시하는 비장애물 픽셀로 구분될 수 있다.Each pixel of the cells in the virtual grid may be divided into an obstacle pixel, which is a pixel indicating an obstacle, and a non-obstacle pixel, which is a pixel indicating a non-obstacle.

프로세서(120)는 예시적으로 도 3에와 같이 셀들 각각에 가상 그리드 값을 설정하여 가상 그리드를 초기화할 수 있다. 가상 그리드 값은 셀 내의 장애물 픽셀과 비장애물 픽셀의 비율에 기초하여 결정될 수 있다. 상세하게, 가상 그리드 값은 셀 내의 비장애물 픽셀이 차지하는 비율 값이 될 수 있다.The processor 120 may initialize the virtual grid by setting a virtual grid value in each of the cells as shown in FIG. 3 . The virtual grid value may be determined based on a ratio of obstructive and non-obstructed pixels within the cell. In detail, the virtual grid value may be a ratio value occupied by non-obstructive pixels in a cell.

가상 그리드 값은 수학식 1의 제1 최소 비용 추정 값(g)이 될 수 있다. 그리고, 제2 최소 비용 추정 값(h)은 맨해턴 거리에 따른 추정 값이 될 수 있으나, 이에 제한되는 것은 아니다.The virtual grid value may be the first minimum cost estimate value g in Equation (1). In addition, the second minimum cost estimate value h may be an estimate value according to the Manhattan distance, but is not limited thereto.

[수학식 1][Equation 1]

최소 비용 값(f) = 제1 최소 비용 추정 값(g) + 제2 최소 비용 추정 값(h)Minimum cost value (f) = first minimum cost estimate (g) + second minimum cost estimate (h)

가상 그리드의 초기화 과정을 보다 상세하게 설명하면, 프로세서(120)는 가상 그리드의 크기에 따라서 가상 그리드 개수가 변경될 수 있으므로 2차원 배열을 동적으로 할당받아 초기화할 수 있다. 가상 그리드 배열 중 로우(rows)는 주어진 값에 따라서 필요한 만큼 할당될 수 있다. 도 4에서 표시된 메모리(110) 상의 명령어에 기초한 알고리즘 상의 단계 (1)에서는 가상 그리드 값을 가지고 있는 virtual_grid 변수에 컬럼(columns)에 해당하는 메모리를 할당해 주어 가상 그리드의 값을 저장할 수 있도록 함을 알 수 있다. 단계 (2)에서는 해당 가상 그리드 내 이동 불가한 공간의 픽셀 수를 계산하여 구한 비율을 가상 그리드의 값으로 할당하는 것을 알 수 있다. 따라서, 이동 불가한 공간이 적은, 바꿔 말하면 이동 가능한 공간의 비율이 많은 탐색 셀이 경로 계산에 우선적으로 선택될 수 있다.When the virtual grid initialization process will be described in more detail, the processor 120 may dynamically allocate and initialize a two-dimensional array because the number of virtual grids may be changed according to the size of the virtual grid. Rows in the virtual grid array can be allocated as many as necessary according to a given value. In step (1) of the algorithm based on the command on the memory 110 shown in FIG. 4, memory corresponding to the column is allocated to the virtual_grid variable having the virtual grid value so that the value of the virtual grid can be stored. Able to know. In step (2), it can be seen that the ratio obtained by calculating the number of pixels in the non-movable space in the virtual grid is allocated as the value of the virtual grid. Accordingly, a search cell having a small immovable space, in other words, a large proportion of a moveable space, may be preferentially selected for path calculation.

- 스타트 노드와 도착지 노드의 좌표의 유효성을 판단하는 단계(S105)- Determining the validity of the coordinates of the start node and the destination node (S105)

프로세서(120)는 스타트 노드에 대응하는 스타트 좌표와 도착지 노드에 대응하는 도착지 좌표의 유효성을 판단할 수 있다. 상세하게, 프로세서(120)는 입력된 스타트 좌표와 도착지 좌표가 유효한 좌표인지 여부를 판단하고, 이동 가능한 위치의 좌표인지를 판단할 수 있다. 프로세서(120)는 스타트 좌표와 도착지 좌표가 유효하지 않은 좌표이거나 이동할 수 없는 위치 상의 좌표인 경우 오류 메시지를 반환하고 종료할 수 있다. 일부 실시예에서, 프로세서(120)는 출력부(130)를 통해 유효한 좌표가 아니거나 이동할 수 없는 위치 상의 좌표임을 알리는 메시지를 출력할 수 있다.The processor 120 may determine the validity of the start coordinates corresponding to the start node and the destination coordinates corresponding to the destination node. In detail, the processor 120 may determine whether the input start coordinates and destination coordinates are valid coordinates, and may determine whether the coordinates of a movable position are coordinates. The processor 120 may return an error message and end when the start coordinates and the destination coordinates are invalid coordinates or coordinates on a location that cannot be moved. In some embodiments, the processor 120 may output a message indicating that the coordinates are not valid coordinates or are coordinates on a location that cannot be moved through the output unit 130 .

프로세서(120)는 스타트 노드와 도착지 노드의 좌표가 유효한 것으로 판단하면 다음 단계의 명령어를 실행할 수 있다.When it is determined that the coordinates of the start node and the destination node are valid, the processor 120 may execute a command of the next step.

- 도착지 노드가 도달 가능한 위치인지 여부를 판단하는 단계(S107)- Determining whether the destination node is a reachable location (S107)

프로세서(120)는 도착지 좌표가 도달 가능한 위치 상의 좌표인지 여부를 판단하여, 도착지 좌표의 유효성을 추가로 판단할 수 있다.The processor 120 may further determine the validity of the destination coordinates by determining whether the destination coordinates are coordinates on an reachable location.

도 6에서 도시된 바와 같이, 도착지 좌표가 A라고 할 때 로봇의 반지름 r을 고려하면 A 지점까지 이동했을 때 벽과 같은 장애물과 충돌하게 된다. 따라서 도착했을 때 도 7에서처럼 충돌이 발생하지 않을 A' 지점으로 도착지 좌표를 변경하여 경로 계산을 해주는 것이 안전하다.As shown in FIG. 6 , when the destination coordinate is A, considering the radius r of the robot, it collides with an obstacle such as a wall when it moves to the point A. Therefore, when arriving, it is safe to calculate the route by changing the destination coordinates to the point A' where no collision will occur as in FIG. 7 .

도 7에 도시된 바와 같이, 프로세서(120)는 도착지 좌표를 중심으로 로봇의 반경 r에 해당 영역 상의 픽셀들 중에서 적어도 하나의 장애물 좌표를 탐색할 수 있다. 일부 실시예에서, 프로세서(120)는 도착지 좌표를 중심으로 로봇의 반경 r에 해당 영역 상의 픽셀들의 픽셀 계조 값에 기초하여 장애물 좌표인지 비장애물 좌표인지 여부를 판별할 수 있다. 프로세서(120)는 도착지 좌표를 중심으로 로봇의 반경 r에 해당 영역 상의 픽셀들 중에서 적어도 하나의 장애물 좌표가 존재함을 확인하면, 도착지 좌표를 픽셀 단위로 이동시키면서 도착지 좌표를 업데이트할 수 있다. 그리고, 프로세서(120)는 업데이트된 도착지 좌표를 중심으로 로봇의 반경 r에 해당 영역 상의 픽셀들 중에서 적어도 하나의 장애물 좌표를 탐색하는 전술한 방식을 반복 적용할 수 있다. 그리고, 프로세서(120)는 로봇의 반경 r에 해당 영역 상의 픽셀들이 모두 비장애물 좌표에 해당할 때까지 도착지 좌표를 업데이트하여 최종 도착지 좌표를 설정할 수 있다.As shown in FIG. 7 , the processor 120 may search for coordinates of at least one obstacle among pixels on a corresponding area at a radius r of the robot based on the coordinates of the destination. In some embodiments, the processor 120 may determine whether the coordinates are obstacles or non-obstacles based on pixel grayscale values of pixels on a corresponding area in a radius r of the robot based on the destination coordinates. The processor 120 may update the destination coordinates while moving the destination coordinates in units of pixels when it is confirmed that at least one obstacle coordinate among pixels on the corresponding area exists in the radius r of the robot based on the destination coordinates. In addition, the processor 120 may repeatedly apply the above-described method of searching for coordinates of at least one obstacle among pixels on a corresponding area to a radius r of the robot based on the updated destination coordinates. In addition, the processor 120 may set the final destination coordinates by updating the destination coordinates until all pixels on the corresponding area correspond to non-obstacle coordinates in the radius r of the robot.

일부 실시예에서, 프로세서(120)는 장애물 좌표와 이격되는 방향으로 도착지 좌표를 이동시킴으로써 도착지 좌표를 업데이트할 수 있다.In some embodiments, the processor 120 may update the destination coordinates by moving the destination coordinates in a direction spaced apart from the obstacle coordinates.

일부 실시예에서, 프로세서(120)는 도착지 좌표를 중심으로 8 방향에 대하여 ①∼⑧번 순서(도 7)로 한 픽셀씩 이동하면서 로봇 반경 안의 공간에 충돌이 없는 지점의 좌표를 탐색할 수 있다.In some embodiments, the processor 120 may search for the coordinates of a point where there is no collision in space within the radius of the robot while moving one pixel at a time in the order of ① to ⑧ (FIG. 7) with respect to 8 directions around the destination coordinates. .

일부 실시예에서, 도착지 좌표를 중심으로 8방향으로 한 픽셀씩 이동할 때 도착지 좌표를 포함한 도착지 셀에 무관하여 도착지 좌표를 이동시킬 수 있다. 즉, 도착지 좌표를 업데이트할 때는 도착지 셀을 고려하지 않고 도착지 좌표를 중심으로 8 방향에 대하여 한 픽셀씩 이동하면서 로봇 반경 안의 공간에 충돌이 없는 지점의 좌표를 탐색할 수 있다. 또한, 도착지 좌표는 도착지 셀의 중심 노드에 대응하는 중심 좌표가 아닐 수 있다.In some embodiments, when moving one pixel in eight directions around the destination coordinates, the destination coordinates may be moved regardless of the destination cell including the destination coordinates. That is, when updating the destination coordinates, it is possible to search for the coordinates of a point where there is no collision in the space within the radius of the robot while moving one pixel in 8 directions around the destination coordinate without considering the destination cell. Also, the destination coordinates may not be center coordinates corresponding to the center node of the destination cell.

일부 실시예에서, 프로세서(120)는 최종 도착지 좌표가 설정되면 설정된 최종 도착지 좌표를 출력부(130)를 통해 표시할 수 있다.In some embodiments, when the final destination coordinates are set, the processor 120 may display the set final destination coordinates through the output unit 130 .

한편, 이동체인 로봇의 반지름 r을 정의하였으나 이는 로봇의 형상이 원형인 경우로 한정한 것이다. 다만, 이에 제한되는 것은 아니고 로봇의 형태를 고려하여 특정 노드 상에서 로봇이 제자리 회전할 때 로봇의 회전에 따라 그려지는 최대 원의 반지름을 로봇의 반지름 r로 정의할 수도 있다. 따라서, 실시예를 설명함에 있어서 로봇의 반지름 r은 로봇 자체의 반지름을 의미하는 것이 아닐 수 있음을 유의해야 한다.On the other hand, the radius r of the mobile robot is defined, but this is limited to the case where the shape of the robot is circular. However, the present invention is not limited thereto, and when the robot rotates in place on a specific node in consideration of the shape of the robot, the radius of the maximum circle drawn according to the rotation of the robot may be defined as the radius r of the robot. Therefore, in describing the embodiment, it should be noted that the radius r of the robot may not mean the radius of the robot itself.

- 스타트 셀에서 탐색 셀로의 이동 가능 조건을 충족하면 최소 비용 값(f)이 최소가 되는 탐색 셀을 탐색하여 이동체의 이동 경로를 탐색하여 이동 경로를 설정하는 단계(S109)- When the moving condition from the start cell to the search cell is satisfied, the search cell in which the minimum cost value (f) becomes the minimum is searched and the movement path of the moving object is searched and the movement path is set (S109)

프로세서(120)는 스타트 노드가 속한 스타트 셀에서 탐색 셀까지의 이동에 따른 제1 최소 비용 추정 값(g)과 탐색 셀에서부터 도착지 노드가 속한 도착지 셀까지의 이동에 따른 제2 최소 비용 추정 값(h)의 값의 합인 최소 비용 값(h)이 최소가 되는 탐색 셀을 탐색하여 이동체의 이동 경로를 탐색하여 이동 경로를 설정할 수 있다.The processor 120 calculates a first minimum cost estimate (g) according to the movement from the start cell to which the start node belongs to the search cell and a second minimum cost estimate value (g) according to the movement from the search cell to the destination cell to which the destination node belongs. The moving path may be set by searching for a moving path of the moving object by searching for a search cell in which the minimum cost value (h), which is the sum of the values of h), is the minimum.

또한, 프로세서(120)는 이동 경로를 탐색할 때 탐색 셀로의 이동 가능 조건의 충족 여부를 판단할 수 있다.Also, the processor 120 may determine whether a condition for enabling movement to a search cell is satisfied when searching for a movement path.

상세하게, 프로세서(120)는 도 5의 단계 (4)에서와 같이 원래 지도에서의 출발지와 도착지에 대응하는 가상 그리드 출발지와 가상 그리드 도착지를 계산할 수 있다. 그리고, 프로세서(120)는 도 5의 단계 (5)에서와 같이 현재 방문 중인 가상 그리드 내의 탐색 셀 중 계산이 완료된 탐색 셀에 대한 정보를 가지는 vgClosedList를 초기화할 수 있다. 그리고, 프로세서(120)는 도 5의 단계 (6)에서와 같이 현재 방문 중인 가상 그리드 내의 탐색 셀 중 계산이 완료되지 않은 탐색 셀에 대한 정보를 가지는 openList를 우선순위 큐를 사용하여 초기화할 수 있다. 우선순위 큐를 사용하여 각 가상 그리드에 대한 정렬을 내부적으로 할 수 있어 A* 탐색 시 빠른 연산이 가능하다. 프로세서(120)는 도 5의 단계 (7)에서와 같이 스타트 노드(vg_src)를 openList에 넣어 A* 탐색을 시작할 수 있도록 한다. 그리고, 프로세서(120)는 도 5의 단계 (8) 이하에서와 같이 openList에 있는 탐색 셀중 수학식 1에 따른 최소 비용 값(h) 값이 가장 적은 탐색 셀을 선택하여 최종 도착지 좌표에 대응하는 도착지 노드에 도달했는지 여부를 확인하고 그렇지 않으면 선택된 탐색 셀 주변에 대한 탐색을 할 수 있도록 openList에 추가할 수 있다. 좀 더 구체적으로 설명하자면, 프로세서(120)는 도 5의 단계 (9)에서와 같이 우선순위 큐 openList에 들어 있는 탐색 셀 중 제일 위에 있는 탐색 셀, 즉 가장 f 값이 적은 탐색 셀 p를 가져오고 단계 (10)에서 탐색 셀 p에 대한 vgClosedList 값을 방문한 것으로 설정한다.In detail, the processor 120 may calculate a virtual grid origin and a virtual grid destination corresponding to the origin and destination in the original map as in step (4) of FIG. 5 . Then, as in step (5) of FIG. 5 , the processor 120 may initialize vgClosedList having information on a search cell whose calculation has been completed among search cells in the currently visited virtual grid. Then, as in step (6) of FIG. 5 , the processor 120 may initialize an openList having information on a search cell for which calculation is not completed among search cells in the currently visited virtual grid using a priority queue. . Sorting for each virtual grid can be done internally using a priority queue, enabling fast computation when searching for A*. The processor 120 puts the start node (vg_src) into the openList as in step (7) of FIG. 5 to start the A* search. Then, the processor 120 selects a search cell having the smallest minimum cost value (h) according to Equation 1 from among the search cells in the openList as in step (8) of FIG. 5 and below, and selects the destination corresponding to the final destination coordinates. You can add it to the openList to check whether a node has been reached and if not, to do a search around the selected search cell. More specifically, as in step (9) of FIG. 5 , the processor 120 brings the search cell p at the top of the search cells included in the priority queue openList, that is, the search cell p with the smallest f value, and Set the vgClosedList value for the search cell p as visited in step (10).

단계 (11) 이하 for 문에서는 p의 이웃 노드에 대한 탐색을 하는 부분이다.In step (11) below, in the for statement, it is a part of searching for the neighboring node of p.

프로세서(120)는 도 8에서 도시된 바와 같이 8방향의 탐색 셀 내의 이웃 노드에 대하여 이동 가능 여부를 탐색하기 위하여 openList에 추가하고 경로 탐색을 한다. 프로세서(120)는 단계(12)에서와 같이 지도 이미지 내에 있는 좌표 값인지 확인하여 유효한 가상 그리드내의 탐색 셀인지 여부를 판단한다. 프로세서(120)는 단계 (13)처럼 이웃한 가상 그리드가 vg_dest이면 도착지를 포함하는 가상 그리드 내의 도착지 셀임을 의미하므로 경로를 찾았다고 알려주고 계산을 종료한다. 또한, 프로세서(120)는 단계 (14)에서와 같이 이웃한 탐색 셀이 이미 방문했는지 여부와 이동 가능한지 여부를 확인할 수 있다. 이웃한 탐색 셀이 이미 방문했는지 여부는 vgClosedList를 확인하여 알 수 있다. 프로세서(120)는 이웃한 탐색 셀이 이동 가능한지 여부는 가상 그리드 값이 설정한 임계값(80∼100)과 비교하여 임계값 이상면 이동 가능하다고 판단할 수 있다. 여기서의 임계값은 80 내지 100이 될 수 있으나 이에 제한되는 것은 아니고 지도의 복잡도와 가상 그리드의 크기에 따라 달라질 수 있다. 한편, 가상 그리드 값이 임계값보다 작다는 것은 이동 불가한 픽셀의 비율이 임계값보다 커서 이동할 만한 공간이 부족함을 의미한다. 프로세서(120)는 단계 (14)에서처럼 이웃한 가상 그리드가 아직 방문하지 않았고 임계값보다 적어 이동 가능한 공간이 충분하다면 new_g와 new_h를 계산하여 new_f 값을 계산할 수 있다. 이때 프로세서(120)는 단계 (15)에서처럼 이웃 노드가 아직 방문하지 않았거나 새로 계산한 new_f 값이 이웃 노드의 가상 그리드 값보다 적다면 openList에 추가해서 계속 경로 탐색하는데 사용할 수 있다. 이웃 노드의 가상 그리드 값이 무한대가 아니라 그보다 적은 값이 있다는 것은 이미 다른 경로를 통하여 이동 경로 계산에 사용되었음을 의미하며, 이전에 있던 f 값보다 새로 계산한 new_f 값이 적다는 것은 새로 계산한 이동 경로가 더 짧은 경로임을 의미한다. 따라서 이 경로를 따라서 다음 이동 경로를 계산하여 도착지에 도달할 수 있도록 openList에 추가하는 것이다.As shown in FIG. 8 , the processor 120 adds to the openList and searches for a path in order to search whether a neighbor node within a search cell in 8 directions can move. The processor 120 determines whether the search cell is a valid virtual grid by checking whether the coordinate value is in the map image as in step 12 . If the neighboring virtual grid is vg_dest as in step (13), the processor 120 informs that a path has been found and terminates the calculation because it means that it is a destination cell in the virtual grid including the destination. In addition, the processor 120 may check whether a neighboring search cell has already been visited and whether it is movable as in step 14 . Whether a neighboring search cell has already been visited can be known by checking vgClosedList. The processor 120 may determine whether a neighboring search cell is movable if the virtual grid value is greater than or equal to a threshold value 80 to 100 set. Here, the threshold value may be 80 to 100, but is not limited thereto, and may vary depending on the complexity of the map and the size of the virtual grid. On the other hand, when the virtual grid value is smaller than the threshold value, the ratio of non-movable pixels is greater than the threshold value, meaning that there is insufficient space to move. The processor 120 may calculate new_f by calculating new_g and new_h if the neighboring virtual grid has not yet been visited and the movable space is less than the threshold value as in step 14 . At this time, as in step (15), if the neighboring node has not yet visited or the newly calculated new_f value is less than the virtual grid value of the neighboring node, the processor 120 may add it to the openList and use it to continue searching for a path. If the virtual grid value of the neighboring node is not infinite, but has a value less than that value, it means that it has already been used to calculate the movement path through another path. means that is a shorter path. Therefore, it is to calculate the next moving path along this path and add it to the openList so that it can reach the destination.

- 이동 경로를 보정하는 단계(S111)- Correcting the movement path (S111)

가상 그리드의 이동 불가한 공간 비율을 이용하여 A* 탐색 알고리즘을 수행한 결과 출발지에서 도착지로의 경로를 형성하는 가상 그리드 리스트를 구할 수 있다. 하지만 가상 그리드는 픽셀 단위가 아니라 이동 가능한 공간과 이동 불가 공간이 섞여 있어 도 11에서와 같이 실제 로봇이 이동 가능한 장소를 찾아서 이동 경로를 보정해 주어야 한다.As a result of performing the A* search algorithm using the non-movable space ratio of the virtual grid, it is possible to obtain a list of virtual grids that form a route from the origin to the destination. However, the virtual grid is not a pixel unit, but a mixture of a movable space and a non-movable space, so as shown in FIG. 11 , it is necessary to find a place where the robot can move and correct the movement path.

프로세서(120)는 도 9의(a) 및 도 10에서와 같이 이동 경로 상의 셀 내 중심 노드에 대응하는 중심 좌표를 기준으로 로봇 반경 r 안에 픽셀들 중에서 장애물 픽셀의 존재 여부를 판단함으로써 로봇의 이동에 따른 장애물 충돌 여부를 판단할 수 있다. 충돌이 가능하다고 판단되면, 프로세서(120)는 도 11에서와 같이 셀 내의 중심 좌표를 기준으로 ①∼⑧번 순서의 8방향으로 한 픽셀씩 이동하면서 충돌이 발생하지 않는 공간을 찾을 수 있다. 이때 셀을 넘어서 로봇 이동 경로가 만들어지면 안되므로 프로세서(120)는 해당 셀의 중심 좌표를 기준으로 최대 sizew/2-r 까지의 영역에 대해서만 검색할 수 있고, 이 경우, sizew = sizeH이라고 가정할 수 있다. 그러나 이에 제한되는 것은 아니다.The processor 120 moves the robot by determining whether there is an obstacle pixel among the pixels within the robot radius r based on the center coordinates corresponding to the center node in the cell on the movement path as shown in FIGS. 9A and 10 . It is possible to determine whether an obstacle collides according to the If it is determined that a collision is possible, the processor 120 may move one pixel at a time in 8 directions in the order ① to ⑧ based on the center coordinates in the cell as shown in FIG. 11 to find a space in which the collision does not occur. At this time, since the robot movement path should not be created beyond the cell, the processor 120 can only search for an area up to sizew/2-r based on the center coordinate of the cell, and in this case, it can be assumed that sizew = sizeH have. However, the present invention is not limited thereto.

로봇은 이동 경로 상의 셀들의 중심 노드 또는 업데이트되어 수정된 셀내 좌표를 따라 이동할 수 있다. 그리고, 이러한 셀들의 수정된 좌표는 해당 셀의 범위를 벗어나지 않는다. 그러나, 로봇의 도착 지점인 도착지 좌표의 경우에는 업데이트되어 도착지 좌표가 수정된 경우 수정된 도착지 좌표는 도착지 셀의 범위를 벗어나 설정될 수도 있다. 따라서, 로봇이 이동 경로를 이동할 때는 업데이트된 좌표들이 자신이 속한 셀 범위 내의 좌표가 되므로 최적의 이동 경로를 유지하도록 한다. 그리고, 도착지 좌표의 경우는 로봇의 최종 도착지이므로 도착지 좌표를 도착지 셀의 범위 내로 국한시키지 않고 주변의 장애물을 고려하여 최적의 위치로 로봇이 도착할 수 있도록 한다.The robot can move along a center node of cells on a movement path or an updated and modified coordinate within a cell. And, the modified coordinates of these cells do not deviate from the range of the corresponding cell. However, in the case of the destination coordinates that are the arrival points of the robot, when the destination coordinates are updated and the destination coordinates are modified, the modified destination coordinates may be set outside the range of the destination cell. Therefore, when the robot moves the movement path, the updated coordinates become coordinates within the cell range to which it belongs, so that the optimal movement path is maintained. In addition, since the destination coordinate is the final destination of the robot, the destination coordinate is not limited within the range of the destination cell, and the robot can arrive at an optimal location in consideration of surrounding obstacles.

프로세서(120)는 스타트 노드, 이동 경로 상의 탐색 셀의 중심 노드들 및 도착지 노드를 잇는 경로를 보정하기 위하여 이동 경로 상의 셀 내의 중심 좌표를 업데이트하여 위치를 변경함으로써 최종적 다음과 같이 이동 경로를 보정할 수 있다.In order to correct the path connecting the start node, the center nodes of the search cell on the moving path, and the destination node, the processor 120 updates the center coordinates in the cell on the moving path and changes the location to finally correct the moving path as follows. can

[보정된 이동 경로][Corrected travel route]

스타트 노드 -> 이동 경로 상의 탐색 셀의 중심 좌표의 업데이트된 좌표들 -> 도착지 노드(또는 업데이트된 도착지 노드)를 잇는 경로The path connecting the start node -> updated coordinates of the center coordinates of the search cell on the moving path -> the destination node (or the updated destination node)

한편, 일부 실시예에서 가상 그리드 기반 A* 경로 탐색 시스템(10)은 최종 이동 경로가 설정되면 로봇(200)을 제어하여 로봇(200)이 최종 이동 경로를 따라 이동하도록 할 수 있다. 그리고, 이동 경로 상에서의 갑자기 생성된 일시적 또는 비일시적 장애물이 확인되면 전술한 바와 같은 탐색 알고리즘에 따라 이동 경로를 부분적으로 수정하여 이동을 진행할 수 있다. 그리고, 여기서의 갑자기 생성된 장애물에 대한 감지는 예시적으로 로봇(200)에 설치된 감지 센서를 통해 센싱될 수 있으나 이에 제한되는 것은 아니다.Meanwhile, in some embodiments, when the final movement path is set, the virtual grid-based A* path search system 10 may control the robot 200 so that the robot 200 moves along the final movement path. In addition, when a temporary or non-temporary obstacle suddenly generated on the moving path is identified, the moving path may be partially modified according to the above-described search algorithm to proceed with movement. In addition, the detection of the obstacle suddenly generated here may be sensed through a detection sensor installed in the robot 200 for example, but is not limited thereto.

도 14는 본 발명의 다른 실시예에 따른 가상 그리드 기반 에이스타 경로 탐색 방법의 흐름도이다.14 is a flowchart of a virtual grid-based A-Star route search method according to another embodiment of the present invention.

도 14를 참조하면, 본 발명의 다른 실시예에 따른 가상 그리드 기반 에이스타 경로 탐색 방법은 지도 상의 로봇들에 대한 이동 경로를 탐색 및 보정 완료 후, 복수의 로봇의 동일 시점에 이동 경로 겹침이 발생하는지 여부를 판단하는 단계(S113) 및 이동 경로 겹침이 발생하는 경우 임계값을 조정하여 경로를 재탐색하는 단계(S115)를 더 포함할 수 있다.Referring to FIG. 14 , in the virtual grid-based A-Star path search method according to another embodiment of the present invention, the movement path overlap occurs at the same point in time of the plurality of robots after completing the search and correction of the movement paths for the robots on the map. The method may further include the step of determining whether or not (S113) and the step of re-searching the route by adjusting the threshold value when the movement route overlap occurs (S115).

상세하게, 동일한 지도 상에 서로 다른 로봇이 복수개 위치하는 경우 가상 그리드 기반 A* 경로 탐색 시스템(10)의 프로세서(120)는 로봇들 각각의 이동 경로를 탐색하여 이동 경로를 설정할 수 있다. 또한, 프로세서(120)는 로봇들 각각의 출발 시간 및 이동에 따라 각 셀별로 추정된 도착 시간 정보를 계산할 수 있다. 그리고, 프로세서(120)는 로봇들 중 동일한 시점에 동일한 셀을 경유하는, 즉 이동 경로가 겹치는 경우가 있는지를 분석할 수 있다. 프로세서(120)는 이동 경로가 겹치는 로봇들(제1 및 제2 로봇)이 존재하는 경우 이들 로봇의 이동 경로를 수정할 수 있다. 예시적으로, 프로세서(120)는 이동 경로가 겹치는 제1 및 제2 로봇 각각의 이동 경로를 탐색할 때 이들 각각의 임계값을 서로 다른 값으로 설정할 수 있다. 또한, 제1 로봇의 반경이 제2 로봇의 반경보다 큰 경우 제1 로봇의 경로 탐색시 적용되는 제1 임계값을 제2 로봇의 경로 탐색시 적용되는 제2 임계값보다 크게 설정할 수 있다. 일부 실시예에서, 프로세서(120)는 제1 로봇과 제2 로봇의 스타트 노드 및/또는 도착지 노드의 인접 정도에 기초하여 제1 및 제2 임계값의 차이를 증감시킬 수 있다. 예시적으로, 1 로봇과 제2 로봇의 스타트 노드 및/또는 도착지 노드가 기 설정치 이상으로 인접한 경우 제1 및 제2 임계값의 차이를 증가시킬 수 있다. 즉, 실시예는 동일한 시점에 동일 셀을 경유하는 로봇들의 경로를 재 탐색하고, 재 탐색시 임계값을 조정할 수 있다. 또한, 로봇들의 반경과 이들의 출발지와 도착지의 인접 여부 및 경로의 겹침 정도에 기초하여 제1 및 제2 임계값의 차이를 조정하여 경로를 재 탐색함으로써 동일한 시점에 로봇들의 경로 겹침는 가능성을 최소화할 수 있다.In detail, when a plurality of different robots are located on the same map, the processor 120 of the virtual grid-based A* path search system 10 may set a movement path by searching for a movement path of each of the robots. In addition, the processor 120 may calculate arrival time information estimated for each cell according to the departure time and movement of each robot. In addition, the processor 120 may analyze whether there is a case in which the robot passes through the same cell at the same time, ie, movement paths overlap. When there are robots (first and second robots) having overlapping movement paths, the processor 120 may modify the movement paths of these robots. Exemplarily, the processor 120 may set the respective threshold values to different values when searching the movement paths of the first and second robots overlapping the movement paths. In addition, when the radius of the first robot is greater than the radius of the second robot, a first threshold value applied when the first robot searches for a path may be set to be larger than a second threshold value applied when the second robot searches for a path. In some embodiments, the processor 120 may increase or decrease the difference between the first and second thresholds based on the degree of proximity between the start node and/or the destination node of the first robot and the second robot. For example, when the start node and/or the destination node of the first robot and the second robot are adjacent to each other by more than a preset value, the difference between the first and second threshold values may be increased. That is, in the embodiment, the path of robots passing through the same cell at the same time can be re-searched, and the threshold value can be adjusted when re-searching. In addition, by adjusting the difference between the first and second threshold values based on the radius of the robots, the proximity of their origin and destination, and the degree of overlap of the paths, the possibility of overlapping paths of the robots at the same time can be minimized by re-searching the paths. can

도 15는 가상 그리드의 크기가 10일 때 2439×1977 크기의 지도 이미지 상에서의 최종 이동 경로를 표시하는 것을 나타내고, 도 16은 가상 그리드의 크기에 따른 경로 탐색 시간(단위: 초)에 관한 그래프이다.15 is a graph showing the final movement path on a map image of 2439×1977 size when the size of the virtual grid is 10, and FIG. 16 is a graph regarding the route search time (unit: seconds) according to the size of the virtual grid. .

실시예의 성능을 평가함에 있어서, 가상 그리드 기반 A* 경로 탐색 시스템의 조건을 아래와 같이 설정하였다.In evaluating the performance of the embodiment, the conditions of the virtual grid-based A* path search system were set as follows.

1) 출발지와 도착지 간 A* 경로 탐색을 지원해야 한다. 2) 로봇 반지름을 고려한 경로 탐색을 지원해야 한다. 3) 지도에 대한 inflation은 로봇 반지름에 더하여 계산하도록 한다. 4) 출발지나 도착지가 이동 불가한 곳이면 경로 계산을 할 수 없다. 5) 출발지가 로봇 반지름 고려했을 때 있을 수 없는 곳이면 경로 계산을 할 수 없다. 6) 도착지가 이동 가능한 곳이지만 로봇 반지름을 고려했을 때 갈 수 없는 곳이면 이동 가능한 가장 가까운 곳까지만 경로 계산을 한다. 7) 지도 파일의 형식은 png 또는 jpeg을 지원한다. 8) 지도 파일은 프로그램에서 사용 가능한 형태로 제공되어야 한다. 9) 지도 파일에서 이동 가능한 영역은 24비트 이미지의 경우 (255, 255, 255) 또는 8비트 이미지의 경우 255 값을 가져야 한다. 10) 가능한 오류 원인 유형은 출발지 좌표 오류, 도착지 좌표 오류, 경로 생성 불가이다. 11) 임시 장애물을 추가 또는 삭제할 수 있어야 한다. 12) 외부 장치를 통해 경로 생성, 임시 장애물 등록 및 삭제를 요청할 수 있다. 13) 요청에 따라서 응답을 정해진 프로토콜에 따라서 송신해 주어야 한다. 14) 경로 생성에 대한 요청은 지정된 포트 번호(예, 9600)로 수신해야 한다. 15) 사용 가능한 패킷 유형은 PathRequest, ObstacleRegisterRequest, ObstacleDeleteRequest이다1) It should support A* route search between origin and destination. 2) It should support path search considering the radius of the robot. 3) Inflation on the map should be calculated in addition to the radius of the robot. 4) If the origin or destination is a place that cannot be moved, it is not possible to calculate the route. 5) If the starting point is a place that cannot be located considering the radius of the robot, path calculation cannot be performed. 6) If the destination is a place that can be moved but cannot be reached considering the radius of the robot, the route is calculated only to the nearest place that can be moved. 7) The format of the map file supports png or jpeg. 8) The map file must be provided in a form usable by the program. 9) The movable area in the map file must have a value of (255, 255, 255) for a 24-bit image or 255 for an 8-bit image. 10) Possible error cause types are origin coordinate error, destination coordinate error, and route creation impossible. 11) It should be possible to add or remove temporary obstacles. 12) You can request route creation, temporary obstacle registration and deletion through an external device. 13) In response to a request, a response must be transmitted according to a set protocol. 14) The request to create a route should be received on the designated port number (eg, 9600). 15) Available packet types are PathRequest, ObstacleRegisterRequest, and ObstacleDeleteRequest.

도 15 및 도 16을 참조하면, 도 15는 가상 그리드 크기를 10으로 설정한 후, 출발지(src)와 도착지(dst)를 설정하여 가상 그리드 기반 경로 탐색 알고리즘을 적용한 결과 생성된 경로를 보여준다. 도 16은 가상 그리드 크기를 5~30까지 변화시켜 가면서 도 15의 경로에 대하여 5회씩 실행하여 경로 탐색에 소요된 시간을 평균 낸 것이다. 도 2에서 나타난 것처럼 가상 그리드 크기가 변화하면서 10 근처에서 급격하게 탐색 공간이 작아졌던 것처럼 경로 탐색 시간 역시 가상 그리드 크기 10부터 급격하게 감소하는 것을 알 수 있다. 동일한 출발지와 도착지에 대하여 기존의 A* 알고리즘을 적용할 경우 52초 정도의 경로 탐색 시간이 소요되는 것과 비교해 보면 본 발명의 실시예에 따른 가상 그리드 기반의 경로 탐색 시스템의 성능이 우수함을 쉽게 알 수 있다.15 and 16 , FIG. 15 shows a route generated as a result of applying a virtual grid-based route search algorithm by setting a virtual grid size to 10 and then setting a source src and destination dst. FIG. 16 shows the average of the time taken for path search by executing the path of FIG. 15 five times while varying the virtual grid size from 5 to 30. Referring to FIG. As shown in FIG. 2 , it can be seen that the path search time also abruptly decreases from the virtual grid size of 10 as the search space abruptly decreases near 10 as the virtual grid size changes. It can be easily seen that the performance of the virtual grid-based route search system according to the embodiment of the present invention is excellent when compared with the route search time of about 52 seconds when the existing A* algorithm is applied to the same origin and destination. have.

실시예는 물류 자동화를 위하여 실내 물류 현장과 같이 넓고 자유도가 높은 공간에서 지정한 지점 간 자율 주행하는 물류 로봇 기술에 적용될 수 있으나 이에 제한되는 것은 아니다.The embodiment may be applied to a logistics robot technology that autonomously travels between designated points in a wide and high degree of freedom space such as an indoor logistics site for logistics automation, but is not limited thereto.

출발지와 도착지 간 경로 탐색을 위한 알고리즘으로 Dijkstra 알고리즘은 두 지점 간 최단 경로를 보장하지만, 계산 시간이 많이 소요된다. 현재 위치에서 도착지까지의 휴리스틱 함수를 이용하여 탐색공간을 줄임으로써 빠른 시간에 준최적 경로를 찾는 A* 알고리즘이 많이 사용되지만, 이동 자유도가 높고 픽셀 기반 지도 이미지를 사용하는 실내 물류 현장은 A* 알고리즘을 적용해도 계산 시간이 충분하게 빠르지 않다. 그러나, 실시예는 가상 그리드 기법을 사용하여 지도 이미지를 분할함으로써 탐색 공간을 줄이고, 이를 사용하여 A* 알고리즘을 적용함으로써 성능을 향상시킬 수 있다. 또한, 성능 평가 결과 1초 이내에 먼 거리에 있는 두 지점 간 탐색 경로를 찾을 수 있는 적절한 가상 그리드 크기를 찾을 수 있었으며, 기존의 A* 알고리즘과 비교해 봤을 때 충분한 성능 향상이 있음을 알 수 있다.As an algorithm for finding a route between a source and destination, the Dijkstra algorithm guarantees the shortest route between two points, but it takes a lot of computation time. The A* algorithm that finds a suboptimal route in a short time by reducing the search space using a heuristic function from the current location to the destination is widely used, but the A* algorithm for indoor logistics sites that has a high degree of freedom of movement and uses pixel-based map images , the computation time is not fast enough. However, the embodiment can reduce the search space by segmenting the map image using the virtual grid technique, and use it to improve performance by applying the A* algorithm. In addition, as a result of the performance evaluation, it was possible to find an appropriate virtual grid size to find a search path between two distant points within 1 second, and it can be seen that there is a sufficient performance improvement compared to the existing A* algorithm.

이상 설명된 본 발명에 따른 실시예는 다양한 컴퓨터 구성요소를 통하여 실행될 수 있는 프로그램 명령어의 형태로 구현되어 컴퓨터 판독 가능한 기록 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능한 기록 매체는 프로그램 명령어, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 컴퓨터 판독 가능한 기록 매체에 기록되는 프로그램 명령어는 본 발명을 위하여 특별히 설계되고 구성된 것이거나 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수 있다. 컴퓨터 판독 가능한 기록 매체의 예에는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM 및 DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical medium), 및 ROM, RAM, 플래시 메모리 등과 같은, 프로그램 명령어를 저장하고 실행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령어의 예에는, 컴파일러에 의하여 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용하여 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함된다. 하드웨어 장치는 본 발명에 따른 처리를 수행하기 위하여 하나 이상의 소프트웨어 모듈로 변경될 수 있으며, 그 역도 마찬가지이다.The embodiments according to the present invention described above may be implemented in the form of program instructions that can be executed through various computer components and recorded in a computer-readable recording medium. The computer-readable recording medium may include program instructions, data files, data structures, etc. alone or in combination. The program instructions recorded on the computer-readable recording medium may be specially designed and configured for the present invention, or may be known and used by those skilled in the art of computer software. Examples of the computer-readable recording medium include hard disks, magnetic media such as floppy disks and magnetic tapes, optical recording media such as CD-ROMs and DVDs, and magneto-optical media such as floppy disks. medium), and hardware devices specially configured to store and execute program instructions, such as ROM, RAM, flash memory, and the like. Examples of program instructions include not only machine language codes such as those generated by a compiler, but also high-level language codes that can be executed by a computer using an interpreter or the like. A hardware device may be converted into one or more software modules to perform processing in accordance with the present invention, and vice versa.

본 발명에서 설명하는 특정 실행들은 일 실시 예들로서, 어떠한 방법으로도 본 발명의 범위를 한정하는 것은 아니다. 명세서의 간결함을 위하여, 종래 전자적인 구성들, 제어 시스템들, 소프트웨어, 상기 시스템들의 다른 기능적인 측면들의 기재는 생략될 수 있다. 또한, 도면에 도시된 구성 요소들 간의 선들의 연결 또는 연결 부재들은 기능적인 연결 및/또는 물리적 또는 회로적 연결들을 예시적으로 나타낸 것으로서, 실제 장치에서는 대체 가능하거나 추가의 다양한 기능적인 연결, 물리적인 연결, 또는 회로 연결들로서 나타내어질 수 있다. 또한, “필수적인”, “중요하게” 등과 같이 구체적인 언급이 없다면 본 발명의 적용을 위하여 반드시 필요한 구성 요소가 아닐 수 있다.The specific implementations described in the present invention are only examples, and do not limit the scope of the present invention in any way. For brevity of the specification, descriptions of conventional electronic components, control systems, software, and other functional aspects of the systems may be omitted. In addition, the connections or connecting members of the lines between the components shown in the drawings exemplify functional connections and/or physical or circuit connections, and in an actual device, various functional connections, physical connections that are replaceable or additional may be referred to as connections, or circuit connections. In addition, unless there is a specific reference such as “essential” or “importantly”, it may not be a necessary component for the application of the present invention.

또한 설명한 본 발명의 상세한 설명에서는 본 발명의 바람직한 실시 예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자 또는 해당 기술분야에 통상의 지식을 갖는 자라면 후술할 특허청구범위에 기재된 본 발명의 사상 및 기술 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다. 따라서, 본 발명의 기술적 범위는 명세서의 상세한 설명에 기재된 내용으로 한정되는 것이 아니라 특허청구범위에 의해 정하여져야만 할 것이다.In addition, although the detailed description of the present invention has been described with reference to a preferred embodiment of the present invention, those skilled in the art or those having ordinary knowledge in the art will appreciate the spirit of the present invention described in the claims to be described later. And it will be understood that various modifications and variations of the present invention can be made without departing from the technical scope. Accordingly, the technical scope of the present invention should not be limited to the contents described in the detailed description of the specification, but should be defined by the claims.

Claims (14)

적어도 하나의 프로세서; 및
상기 프로세서에 의해 실행 가능한 하나 이상의 명령어를 포함하는 적어도 하나의 메모리;를 포함하고,
상기 명령어는,
지도를 미리 설정된 사이즈의 셀들로 분할하여 상기 지도에 가상 그리드를 적용하고,
상기 셀내 장애물을 표시하는 픽셀과 비장애물을 표시하는 픽셀의 비율에 기초하여 결정된 상기 셀들 각각의 가상 그리드 값을 결정하고,
스타트 노드가 속한 스타트 셀에서 탐색 셀까지의 이동에 따른 제1 최소 비용 추정 값과 상기 탐색 셀에서부터 도착지 노드가 속한 도착지 셀까지의 이동에 따른 제2 최소 비용 추정 값의 합인 최소 비용 값이 최소가 되는 탐색 셀을 탐색하여 이동체의 이동 경로를 탐색하여 이동 경로를 설정하는 것을 포함하는
가상 그리드 기반 에이스타 경로 탐색 시스템.
at least one processor; and
at least one memory including one or more instructions executable by the processor;
The command is
applying a virtual grid to the map by dividing the map into cells of a preset size;
determining a virtual grid value of each of the cells determined based on a ratio of a pixel indicating an obstacle in the cell and a pixel indicating a non-obstacle;
The minimum cost value that is the sum of the first minimum cost estimate according to movement from the start cell to which the start node belongs to the search cell and the second minimum cost estimate according to the movement from the search cell to the destination cell to which the destination node belongs is the minimum which includes setting the movement path by navigating the search cell to
Virtual grid-based A-Star route navigation system.
제1 항에 있어서,
상기 제1 최소 비용 추정 값은 상기 가상 그리드 값인
가상 그리드 기반 에이스타 경로 탐색 시스템.
The method of claim 1,
wherein the first minimum cost estimate is the virtual grid value.
Virtual grid-based A-Star route navigation system.
제2 항에 있어서,
상기 스타트 노드에 대응하는 스타트 좌표와 상기 도착지 노드에 대응하는 도착지 좌표의 유효성이 충족되면 상기 최소 비용 값이 최소가 되는 탐색 셀을 탐색하여 이동체의 이동 경로를 탐색하고,
상기 유효성은 상기 스타트 좌표 및 상기 도착지 좌표가 이동할 수 있는 좌표인지에 관한 것인
가상 그리드 기반 에이스타 경로 탐색 시스템.
3. The method of claim 2,
When the validity of the start coordinates corresponding to the start node and the destination coordinates corresponding to the destination node are satisfied, the search cell in which the minimum cost value is the minimum is searched to search the movement path of the moving object;
The validity relates to whether the start coordinates and the destination coordinates are movable coordinates
Virtual grid-based A-Star route navigation system.
제3 항에 있어서,
상기 명령어는,
상기 도착지 좌표를 중심으로 로봇의 반지름 내의 좌표들 중 적어도 하나가 장애물 좌표인지 여부를 판단하여 상기 도착지 좌표가 도달 가능 좌표인지 여부를 판단하는 것을 더 포함하고,
상기 도착지 좌표가 상기 도달 가능 좌표가 아닌 경우, 상기 도착지 좌표와 인접한 좌표로 상기 도착지 좌표를 업데이트하는
가상 그리드 기반 에이스타 경로 탐색 시스템.
4. The method of claim 3,
The command is
Further comprising determining whether the destination coordinates are reachable coordinates by determining whether at least one of the coordinates within the radius of the robot is the obstacle coordinates around the destination coordinates,
If the destination coordinates are not the reachable coordinates, updating the destination coordinates with coordinates adjacent to the destination coordinates
Virtual grid-based A-Star route navigation system.
제3 항에 있어서,
상기 스타트 셀에서 상기 탐색 셀로의 이동 가능 조건을 충족하면 상기 최소 비용 값이 최소가 되는 탐색 셀을 탐색하여 이동체의 이동 경로를 탐색하고,
상기 이동 가능 조건은 상기 탐색 셀의 가상 그리드 값이 미리 설정된 임계값 이상이 조건인
가상 그리드 기반 에이스타 경로 탐색 시스템.
4. The method of claim 3,
If the moving condition from the start cell to the search cell is satisfied, the search cell having the minimum cost value is searched to search the movement path of the moving object,
The movable condition is a condition in which the virtual grid value of the search cell is equal to or greater than a preset threshold.
Virtual grid-based A-Star route navigation system.
제5 항에 있어서,
상기 명령어는,
탐색 셀의 탐색 노드를 중심으로 로봇의 반지름 내의 좌표들 중 적어도 하나가 장애물 좌표인지 여부를 판단하여 상기 탐색 노드가 이동 가능 좌표인지 여부를 판단하는 것을 더 포함하고,
상기 탐색 노드가 상기 이동 가능 좌표가 아닌 경우, 상기 탐색 노드와 인접한 좌표로 상기 탐색 노드의 좌표를 업데이트하는
가상 그리드 기반 에이스타 경로 탐색 시스템.
6. The method of claim 5,
The command is
Further comprising determining whether the search node is movable coordinates by determining whether at least one of the coordinates within the radius of the robot with respect to the search node of the search cell is an obstacle coordinate,
If the search node is not the movable coordinates, updating the coordinates of the search node with coordinates adjacent to the search node
Virtual grid-based A-Star route navigation system.
제6 항에 있어서,
상기 탐색 노드가 상기 이동 가능 좌표가 아닌 경우, 상기 탐색 노드가 속한 셀 내의 좌표 들 중 상기 탐색 노드와 인접한 좌표로 상기 탐색 노드의 좌표를 업데이트하는
가상 그리드 기반 에이스타 경로 탐색 시스템.
7. The method of claim 6,
If the search node is not the movable coordinates, updating the coordinates of the search node with coordinates adjacent to the search node among the coordinates in the cell to which the search node belongs
Virtual grid-based A-Star route navigation system.
제7 항에 있어서,
상기 명령어는,
상기 지도 상에 복수의 로봇이 위치하는 경우, 상기 복수의 로봇 각각의 경로 탐색에 따라 동일한 시점에 동일한 셀로 이동하는 경로 겹침이 발생하는 경우 상기 복수의 로봇들 각각의 경로 탐색에 적용되는 임계값을 조정하여 상기 복수의 로봇들 각각의 경로를 재 탐색하는 것을 더 포함하는
가상 그리드 기반 에이스타 경로 탐색 시스템.
8. The method of claim 7,
The command is
When a plurality of robots are located on the map, when a path overlap that moves to the same cell at the same time occurs according to the path search of each of the plurality of robots, the threshold value applied to the path search of each of the plurality of robots Adjusting and further comprising re-searching the path of each of the plurality of robots
Virtual grid-based A-Star route navigation system.
제1 항에 있어서,
상기 가상 그리드 내의 셀의 크기는 상기 지도의 복잡도와 상기 지도의 사이즈에 기초하여 가변되는
가상 그리드 기반 에이스타 경로 탐색 시스템.
The method of claim 1,
The size of the cell in the virtual grid is variable based on the complexity of the map and the size of the map.
Virtual grid-based A-Star route navigation system.
지도 이미지에 복수의 셀로 구성된 가상 그리드를 적용하는 단계;
상기 복수의 셀 각각의 장애물을 표시하는 픽셀과 비장애물을 표시하는 픽셀의 비율에 기초하여 결정된 가상 그리드 값을 상기 복수의 셀 각각에 적용하는 가상 그리드를 초기화하는 단계;
스타트 노드와 도착지 노드의 좌표의 유효성을 판단하는 단계;
도착지 노드가 도달 가능 좌표인지 여부를 판단하는 단계;
스타트 셀에서 탐색 셀로의 이동 가능 조건을 충족하면 상기 가상 그리드 값에 기초한 최소 비용 값이 최소가 되는 탐색 셀을 탐색하여 이동체의 이동 경로를 탐색하여 이동 경로를 설정하는 단계; 및
이동 경로를 보정하는 단계;를 포함하는
가상 그리드 기반 에이스타 경로 탐색 방법.
applying a virtual grid composed of a plurality of cells to the map image;
initializing a virtual grid for applying a virtual grid value determined based on a ratio of a pixel indicating an obstacle to a pixel indicating a non-obstacle of each of the plurality of cells to each of the plurality of cells;
determining the validity of the coordinates of the start node and the destination node;
determining whether the destination node is reachable coordinates;
setting a movement path by searching for a search cell in which a minimum cost value based on the virtual grid value is the minimum when a moving condition from the start cell to the search cell is satisfied; and
Compensating the movement path; including
A virtual grid-based A-Star route navigation method.
제10 항에 있어서,
상기 최소 비용 값은 상기 스타트 셀에서 탐색 셀까지의 이동에 따른 제1 최소 비용 추정 값과 상기 탐색 셀에서부터 상기 도착지 노드가 속한 도착지 셀까지의 이동에 따른 제2 최소 비용 추정 값의 합인
가상 그리드 기반 에이스타 경로 탐색 방법.
11. The method of claim 10,
The minimum cost value is the sum of a first minimum cost estimate for movement from the start cell to a search cell and a second minimum cost estimate for movement from the search cell to a destination cell to which the destination node belongs.
A virtual grid-based A-Star route navigation method.
제11 항에 있어서,
상기 이동 가능 조건은 상기 탐색 셀의 가상 그리드 값이 미리 설정된 임계값 이상이 조건인
가상 그리드 기반 에이스타 경로 탐색 방법.
12. The method of claim 11,
The movable condition is a condition in which the virtual grid value of the search cell is equal to or greater than a preset threshold.
A virtual grid-based A-Star route navigation method.
제12 항에 있어서,
상기 스타트 노드에 대응하는 스타트 좌표와 상기 도착지 노드에 대응하는 도착지 좌표의 유효성이 충족되면 상기 최소 비용 값이 최소가 되는 탐색 셀을 탐색하여 이동체의 이동 경로를 탐색하고,
상기 유효성은 상기 스타트 좌표 및 상기 도착지 좌표가 이동할 수 있는 좌표인지에 관한 것이고,
상기 도착지 좌표를 중심으로 로봇의 반지름 내의 좌표들 중 적어도 하나가 장애물 좌표인지 여부를 판단하여 상기 도착지 좌표가 상기 도달 가능 좌표인지 여부를 판단하고,
상기 도착지 좌표가 상기 도달 가능 좌표가 아닌 경우, 상기 도착지 좌표와 인접한 좌표로 상기 도착지 좌표를 업데이트하는
가상 그리드 기반 에이스타 경로 탐색 방법.
13. The method of claim 12,
When the validity of the start coordinates corresponding to the start node and the destination coordinates corresponding to the destination node are satisfied, the search cell in which the minimum cost value is the minimum is searched to search the movement path of the moving object;
The validity relates to whether the start coordinates and the destination coordinates are movable coordinates,
Determining whether the destination coordinates are the reachable coordinates by determining whether at least one of the coordinates within the radius of the robot is the obstacle coordinates around the destination coordinates,
If the destination coordinates are not the reachable coordinates, updating the destination coordinates with coordinates adjacent to the destination coordinates
A virtual grid-based A-Star route navigation method.
제13 항에 있어서,
상기 지도 상에 복수의 로봇이 위치하고, 상기 복수의 로봇 각각의 경로 탐색에 따라 동일한 시점에 동일한 셀로 이동하는 경로 겹침이 발생하는 경우 상기 복수의 로봇들 각각의 경로 탐색에 적용되는 임계값을 조정하여 상기 복수의 로봇들 각각의 경로를 재 탐색하는 단계;를 더 포함하는
가상 그리드 기반 에이스타 경로 탐색 방법.
14. The method of claim 13,
When a plurality of robots are located on the map, and when a path overlap that moves to the same cell at the same time occurs according to the path search of each of the plurality of robots, the threshold value applied to the path search of each of the plurality of robots is adjusted. Re-searching the path of each of the plurality of robots; further comprising
A virtual grid-based A-Star route navigation method.
KR1020210031038A 2021-03-09 2021-03-09 Virtual grid-based A-Star route search method and system KR102595387B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210031038A KR102595387B1 (en) 2021-03-09 2021-03-09 Virtual grid-based A-Star route search method and system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210031038A KR102595387B1 (en) 2021-03-09 2021-03-09 Virtual grid-based A-Star route search method and system

Publications (2)

Publication Number Publication Date
KR20220126588A true KR20220126588A (en) 2022-09-16
KR102595387B1 KR102595387B1 (en) 2023-10-27

Family

ID=83445284

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210031038A KR102595387B1 (en) 2021-03-09 2021-03-09 Virtual grid-based A-Star route search method and system

Country Status (1)

Country Link
KR (1) KR102595387B1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005205028A (en) * 2004-01-23 2005-08-04 Sharp Corp Self-propelled vacuum cleaner
KR20060078162A (en) 2004-12-30 2006-07-05 삼성전자주식회사 Method and apparatus for moving minimum movement cost path using grid map
KR101179075B1 (en) * 2012-02-28 2012-09-03 국방과학연구소 Path planning method for autonomous robot and path planning system thereof
KR20190029524A (en) * 2016-05-11 2019-03-20 브레인 코퍼레이션 System and method for training a robot to autonomously traverse a path

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005205028A (en) * 2004-01-23 2005-08-04 Sharp Corp Self-propelled vacuum cleaner
KR20060078162A (en) 2004-12-30 2006-07-05 삼성전자주식회사 Method and apparatus for moving minimum movement cost path using grid map
KR101179075B1 (en) * 2012-02-28 2012-09-03 국방과학연구소 Path planning method for autonomous robot and path planning system thereof
KR20190029524A (en) * 2016-05-11 2019-03-20 브레인 코퍼레이션 System and method for training a robot to autonomously traverse a path

Also Published As

Publication number Publication date
KR102595387B1 (en) 2023-10-27

Similar Documents

Publication Publication Date Title
CN110006430B (en) Optimization method of track planning algorithm
KR102036716B1 (en) Path planning method for visiting multiple mission points and apparatus therefor
KR101901958B1 (en) Apparatus for fast path search by learning heuristic function and method thereof
CN113359718B (en) Method and equipment for fusing global path planning and local path planning of mobile robot
CN112229419B (en) Dynamic path planning navigation method and system
CN112985408B (en) Path planning optimization method and system
KR20130065126A (en) Apparatus and method for generating path of mobile robot or grond vehicle
CN113485369A (en) Indoor mobile robot path planning and path optimization method for improving A-x algorithm
CN114440916B (en) Navigation method, device, equipment and storage medium
CN110162029A (en) A kind of motion control method and device, robot based on planning path
CN107276896B (en) Method for searching shortest path between two points by improving Dijkstra algorithm
WO2018090769A1 (en) Route identification method and system
JP2019500691A (en) Action plan of fast search randomized feedback subject
CN115167474A (en) Mobile robot path planning optimization method
KR101688302B1 (en) Motion planning apparatus and method
CN111895999A (en) Path planning method based on structured data
CN113485379A (en) Mobile robot path planning method for improving A-Star algorithm
CN114705196A (en) Self-adaptive heuristic global path planning method and system for robot
KR102595387B1 (en) Virtual grid-based A-Star route search method and system
JP2021077286A (en) Robot control model learning method, robot control model learning apparatus, robot control model learning program, robot control method, robot control apparatus, robot control program, and robot
CN116878527A (en) Hybrid path planning method and device based on improved adaptive window algorithm
CN107449426B (en) Navigation logic method and indoor AR navigation system thereof
US20230273621A1 (en) Information processing apparatus, information processing method, and program
CN113739798B (en) Path planning method and device
CN112197763B (en) Map construction method, device, equipment and storage medium

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant