KR102595387B1 - 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
KR102595387B1
KR102595387B1 KR1020210031038A KR20210031038A KR102595387B1 KR 102595387 B1 KR102595387 B1 KR 102595387B1 KR 1020210031038 A KR1020210031038 A KR 1020210031038A KR 20210031038 A KR20210031038 A KR 20210031038A KR 102595387 B1 KR102595387 B1 KR 102595387B1
Authority
KR
South Korea
Prior art keywords
search
cell
coordinates
virtual grid
destination
Prior art date
Application number
KR1020210031038A
Other languages
Korean (ko)
Other versions
KR20220126588A (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

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

실시예는, 적어도 하나의 프로세서; 및 상기 프로세서에 의해 실행 가능한 하나 이상의 명령어를 포함하는 적어도 하나의 메모리;를 포함하고, 상기 명령어는, 지도를 미리 설정된 사이즈의 셀들로 분할하여 상기 지도에 가상 그리드를 적용하고, 상기 셀내 장애물을 표시하는 픽셀과 비장애물을 표시하는 픽셀의 비율에 기초하여 결정된 상기 셀들 각각의 가상 그리드 값을 결정하고, 스타트 노드가 속한 스타트 셀에서 탐색 셀까지의 이동에 따른 제1 최소 비용 추정 값과 상기 탐색 셀에서부터 도착지 노드가 속한 도착지 셀까지의 이동에 따른 제2 최소 비용 추정 값의 합인 최소 비용 값이 최소가 되는 탐색 셀을 탐색하여 이동체의 이동 경로를 탐색하여 이동 경로를 설정하는 것을 포함하는 가상 그리드 기반 에이스타 경로 탐색 시스템을 제공할 수 있다.Embodiments include 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, apply a virtual grid to the map, and display obstacles within the cells. Determine a virtual grid value for each of the cells determined based on the ratio of pixels indicating obstacles and pixels indicating non-obstacles, and determine a first minimum cost estimate value according to movement from the start cell to which the start node belongs to the search cell and the search cell. Based on a virtual grid that includes setting a movement path by searching the movement path of the moving object by searching for the search cell where the minimum cost value, which is the sum of the second minimum cost estimate values according to movement from the destination cell to which the destination node belongs, is the minimum. AStar route search system can be provided.

Description

가상 그리드 기반 에이스타 경로 탐색 방법 및 이를 위한 시스템{Virtual grid-based A-Star route search method and system}Virtual grid-based A-Star route search method and system therefor {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 system for the same.

물류 자동화를 위하여 실내 물류 현장과 같이 넓고 자유도가 높은 공간에서 지정한 지점 간 자율 주행하는 물류 로봇에 대한 연구가 많이 이루어지고 있다. 물류 로봇의 이동을 제어하기 위하여 출발지와 도착지 간 빠르면서 정확한 경로 탐색이 중요하다. 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, much research is being conducted on logistics robots that autonomously drive between designated points in a wide, high-degree of freedom space such as an indoor logistics site. In order to control the movement of logistics robots, it is important to quickly and accurately navigate the route between the departure point and destination. To study the efficiency of the route search algorithm, Zarembo and Kodors performed performance evaluation by comparing route search time and number of visited nodes on maps of different sizes with 20% blocking nodes. As a result, the performance was found to be good in the order of BFS, Dijkstra, A*, and HPA*. BFS (Breadth-First Search) is a commonly known method of searching for nodes at the same level in a graph and then going down one level to the lower layer. Dijkstra's algorithm is known to guarantee the shortest path between the origin and destination. In detail, Dijkstra's algorithm is an algorithm that calculates the optimal path from one node to another node 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 neighboring nodes. Here, computational complexity can be reduced by using a priority queue or heap tree structure composed of <position, distance> pairs to put neighboring nodes in the heap and reorder them according to cost. However, assuming that each node moves in a possible direction, the movement path is calculated by comparing the distance to the nodes visited so far, so in the worst case, all possible nodes and all edges must be visited until the destination. The A* algorithm, which 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 actual car navigation systems. The A* algorithm is a type 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 state path cost g (f=g+h). The point is to search for the minimum point first. In the study by Zarembo and Kodors, performance evaluation was performed using the Manhattan distance as h in the following formula: 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 the same as n, the size of the map is n^2. Since the size of the map to be searched is proportional to the square of n, as n increases, the search space becomes non-linear and sharp. It becomes bigger. In other words, if there are many nodes and connection lines used in the A* algorithm, the search space becomes large, making it difficult to find a fast path. In addition, the above-mentioned algorithms can set the search path precisely on a pixel-by-pixel basis, but the calculation time for path search increases, and in an environment where calculation speed is more important than fine path search on a pixel-by-pixel basis, such as a logistics robot, and tolerance can be considered to some extent. There is an issue where it is not suitable. As a way to solve this problem of the A* search algorithm, HPA* was proposed, which can effectively perform path search using the A* algorithm and abstraction strategy. Divide the image into blocks of the same size and search the path from the origin to the destination by searching the path within each block and between blocks. To reduce the search space, HPA* (Hierarchical Pathfinding A*) is a method that combines path search and a clustering algorithm using a hierarchical graph. The HPA* method becomes a graph with a smaller number of nodes as the block size increases, so the path search time using the A* algorithm is greatly reduced. However, as the block grows, 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 final movement path obtained may deviate significantly from the optimal path depending on the location of the transition node. To reduce this deviation, you can create more transition nodes within the block, but this has the disadvantage of complicating the graph and requiring a lot of path search time. In other words, there is a need for a new route search method that can improve performance degradation caused by route search in two stages, a preprocessing process and an online search process, and ensure fast operation in actual use. In relation to this, Korean Patent Publication No. 10-2006-0078162 discloses that in a method and device for moving on a minimum movement path using a grid map, the 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) solves the problem. However, No. 10-2006-0078162 specifies the ratio of obstacles and non-obstacles among the pixels in one cell. Cells where obstacles are not taken into account are set as such that mobile home appliances cannot move, so there is a limit to reducing the path of mobile home appliances.

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

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

실시예는, 적어도 하나의 프로세서; 및 상기 프로세서에 의해 실행 가능한 하나 이상의 명령어를 포함하는 적어도 하나의 메모리;를 포함하고, 상기 명령어는, 지도를 미리 설정된 사이즈의 셀들로 분할하여 상기 지도에 가상 그리드를 적용하고, 상기 셀내 장애물을 표시하는 픽셀과 비장애물을 표시하는 픽셀의 비율에 기초하여 결정된 상기 셀들 각각의 가상 그리드 값을 결정하고, 스타트 노드가 속한 스타트 셀에서 탐색 셀까지의 이동에 따른 제1 최소 비용 추정 값과 상기 탐색 셀에서부터 도착지 노드가 속한 도착지 셀까지의 이동에 따른 제2 최소 비용 추정 값의 합인 최소 비용 값이 최소가 되는 탐색 셀을 탐색하여 이동체의 이동 경로를 탐색하여 이동 경로를 설정하는 것을 포함하는 가상 그리드 기반 에이스타 경로 탐색 시스템을 제공할 수 있다.Embodiments include 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, apply a virtual grid to the map, and display obstacles within the cells. Determine a virtual grid value for each of the cells determined based on the ratio of pixels indicating obstacles and pixels indicating non-obstacles, and determine a first minimum cost estimate value according to movement from the start cell to which the start node belongs to the search cell and the search cell. Based on a virtual grid that includes setting a movement path by searching the movement path of the moving object by searching for the search cell where the minimum cost value, which is the sum of the second minimum cost estimate values according to movement from the destination cell to which the destination node belongs, is the minimum. AStar route search system can be provided.

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

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

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

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

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

다른 측면에서, 상기 탐색 노드가 상기 이동 가능 좌표가 아닌 경우, 상기 탐색 노드가 속한 셀 내의 좌표 들 중 상기 탐색 노드와 인접한 좌표로 상기 탐색 노드의 좌표를 업데이트하는 가상 그리드 기반 에이스타 경로 탐색 시스템을 제공할 수 있다.In another aspect, if the search node is not at the movable coordinate, 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 be provided.

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

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

또 다른 측면에서, 지도 이미지에 복수의 셀로 구성된 가상 그리드를 적용하는 단계; 상기 복수의 셀 각각의 장애물을 표시하는 픽셀과 비장애물을 표시하는 픽셀의 비율에 기초하여 결정된 가상 그리드 값을 상기 복수의 셀 각각에 적용하는 가상 그리드를 초기화하는 단계; 스타트 노드와 도착지 노드의 좌표의 유효성을 판단하는 단계; 도착지 노드가 도달 가능 좌표인지 여부를 판단하는 단계; 스타트 셀에서 탐색 셀로의 이동 가능 조건을 충족하면 상기 가상 그리드 값에 기초한 최소 비용 값이 최소가 되는 탐색 셀을 탐색하여 이동체의 이동 경로를 탐색하여 이동 경로를 설정하는 단계; 및 이동 경로를 보정하는 단계;를 포함하는 가상 그리드 기반 에이스타 경로 탐색 방법을 제공할 수 있다.In another aspect, applying a virtual grid consisting of a plurality of cells to a map image; Initializing a virtual grid by applying a virtual grid value determined based on a ratio of pixels representing obstacles to pixels representing non-obstacles in 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 has reachable coordinates; If the conditions for movement from the start cell to the search cell are met, searching for the search cell with the lowest minimum cost based on the virtual grid value and searching for the movement path of the moving object to set the movement path; A virtual grid-based A-Star path search method including a step of correcting the movement path may be provided.

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

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

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

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

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

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

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

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

본 발명은 다양한 변환을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 본 발명의 효과 및 특징, 그리고 그것들을 달성하는 방법은 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 다양한 형태로 구현될 수 있다. 이하의 실시예에서, 제1, 제2 등의 용어는 한정적인 의미가 아니라 하나의 구성 요소를 다른 구성 요소와 구별하는 목적으로 사용되었다. 또한, 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 또한, 포함하다 또는 가지다 등의 용어는 명세서상에 기재된 특징, 또는 구성요소가 존재함을 의미하는 것이고, 하나 이상의 다른 특징들 또는 구성요소가 부가될 가능성을 미리 배제하는 것은 아니다. 또한, 도면에서는 설명의 편의를 위하여 구성 요소들이 그 크기가 과장 또는 축소될 수 있다. 예컨대, 도면에서 나타난 각 구성의 크기 및 두께는 설명의 편의를 위해 임의로 나타내었으므로, 본 발명이 반드시 도시된 바에 한정되지 않는다.Since the present invention can be modified in various ways and can have various embodiments, specific embodiments will be illustrated in the drawings and described in detail in the detailed description. The effects and features of the present invention and methods for achieving them will become clear by referring to the embodiments described in detail below along 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 and second are used not in a limiting sense but for the purpose of distinguishing one component from another component. Additionally, singular expressions include plural expressions unless the context clearly dictates otherwise. Additionally, terms such as include or have mean that the features or components described in the specification exist, and do not preclude the possibility of adding one or more other features or components. Additionally, in the drawings, the sizes of components may be exaggerated or reduced for convenience of explanation. For example, the size and thickness of each component shown in the drawings are shown arbitrarily for convenience of explanation, so the present invention is not necessarily limited to what is shown.

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

도 1은 가상 그리드가 적용된 예시적인 지도 이미지를 나타낸 것이다. 도 2는 가상 그리드의 크기에 따른 탐색 공간의 크기 변화에 관한 그래프이다. 도 3은 가상 그리드의 초기화 예를 나타낸 것이다. 도 4는 가상 그리드 초기화 알고리즘을 나타낸 것이다. 도 5는 가상 그리드 기반 A* 탐색 알고리즘을 나타낸 것이다. 도 6 및 도 7은 도달 가능한 위치를 찾는 방법을 설명하기 위한 개략도이다. 도 8은 탐색 가능한 탐색 셀 내의 이웃 노드를 설명하기 위한 것이다. 도 9는 최종 경로 설정에 따른 경로 보정 전(a)과 경로 보정 후(b)를 설명하기 위한 개략도이다. 그리고, 도 10은 이동 경로 상의 셀 내 최종 이동 경로를 확인하여 로봇과 장애물 사이의 충돌 여부를 확인하는 것을 설명하기 위한 것이고, 도 11은 이동 경로 상의 셀 내 최종 이동 경로를 보정하기 위하여 빈 공간을 찾는 것을 설명하기 위한 것이다. 그리고 도 12는 본 발명의 실시예에 따른 가상 그리드 기반 에이스타 경로 탐색 시스템의 개략도이고, 도 13은 본 발명의 실시예에 따른 가상 그리드 기반 에이스타 경로 탐색 방법의 흐름도이다.Figure 1 shows an example map image with a virtual grid applied. Figure 2 is a graph showing the change in size of the search space according to the size of the virtual grid. Figure 3 shows an example of initialization of a virtual grid. Figure 4 shows the virtual grid initialization algorithm. Figure 5 shows the virtual grid-based A* search algorithm. Figures 6 and 7 are schematic diagrams for explaining a method of finding a reachable location. Figure 8 is for explaining neighboring nodes within a searchable search cell. Figure 9 is a schematic diagram for explaining before (a) and after (b) path correction according to the final path setting. In addition, Figure 10 is to explain checking whether there is a collision between the robot and an obstacle by checking the final movement path within the cell on the movement path, and Figure 11 shows an empty space to correct the final movement path within the cell on the movement path. It's meant to explain what you're looking for. And FIG. 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 route 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 AStar path finding system 10 includes one or more memory and one or more microprocessors, digital signal processors (DSPs), application specific integrated circuits (ASICs), and a field programmable gate array. It can be composed of various forms such as FPGAs, individual logic circuits, software, hardware, firmware, or any combination thereof. Memory includes instructions (eg, executable instructions), such as computer-readable instructions or processor-readable instructions. Instructions may include one or more instructions executable by a computer, such as by each of one or more processors. For example, one or more instructions cause one or more processors to perform operations including processing to set a virtual grid, search for a route, set a route, modify the set route, and control the mobile robot 200. It may be executable by one or more processors for execution.

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

네트워크(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, an intranet, and/or a wireless network, also referred to as the World Wide Web (WWW), such as a cellular telephone network, a wireless local area network (LAN), and/or a metropolitan area network. ; MAN), and enables communication with other devices by wireless communication. Wireless communications may optionally include Global System for Mobile Communications (GSM), Enhanced Data GSM Environment (EDGE), high-speed downlink packet access (HSDPA), high-speed uplink packet access (HSUPA), 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) ), time division multiple access (TDMA), Bluetooth, Wireless Fidelity (Wi-Fi) (e.g., IEEE 802.11a, IEEE 802.11b, IEEE 802.11g, and/or IEEE 802.11n), voice over Internet Protocol (VoiP) , Wi-MAX, protocols for email (e.g., Internet message access protocol (IMAP) and/or post office protocol (POP)), instant messaging (e.g., extensible messaging and presence protocol (XMPP), Session Initiation Protocol for Instant Messaging and Presence Leveraging Extensions (IMPS), Instant Messaging and Presence Service (IMPS), and/or Short Message Service (SMS), or any other suitable communication protocols, including communication protocols not yet developed as of the filing date of this document. Utilizes any of a plurality of communication standards, protocols and technologies, including but not limited to communication protocols.

일부 실시예에서, 가상 그리드 기반 에이스타 경로 탐색 시스템(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, auditory, and physical indications, but is not limited thereto.

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

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

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

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

도 2를 참조하여 가상 그리드의 크기의 변경, 즉 셀의 크기의 변화에 따른 탐색 공간을 크기를 살펴보면 가상 그리드가 10 이상이 되면 탐색 공간의 크기가 급격하게 줄어들어 이동 경로 탐색에 소요되는 시간이 충분히 작을 것을 기대할 수 있다.Referring to Figure 2, 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, when the virtual grid becomes more than 10, the size of the search space decreases rapidly, so the time required to search the movement path is sufficient. You can expect it to be small.

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

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

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

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

가상 그리드 값은 수학식 1의 제1 최소 비용 추정 값(g)이 될 수 있다. 그리고, 제2 최소 비용 추정 값(h)은 맨해턴 거리에 따른 추정 값이 될 수 있으나, 이에 제한되는 것은 아니다.The virtual grid value may be the first minimum cost estimate value (g) in Equation 1. And, 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)에서는 해당 가상 그리드 내 이동 불가한 공간의 픽셀 수를 계산하여 구한 비율을 가상 그리드의 값으로 할당하는 것을 알 수 있다. 따라서, 이동 불가한 공간이 적은, 바꿔 말하면 이동 가능한 공간의 비율이 많은 탐색 셀이 경로 계산에 우선적으로 선택될 수 있다.To describe the virtual grid initialization process in more detail, the processor 120 can dynamically allocate and initialize a two-dimensional array because the number of virtual grids may change depending on the size of the virtual grid. Rows in the virtual grid array can be allocated as needed according to given values. In step (1) of the algorithm based on the command on the memory 110 shown in FIG. 4, the memory corresponding to the columns is allocated to the virtual_grid variable holding the virtual grid value, so that the value of the virtual grid can be stored. Able to know. In step (2), the number of pixels in the non-movable space within the corresponding virtual grid is calculated and the obtained ratio is assigned as the value of the virtual grid. Accordingly, a search cell with a small amount of unmovable space, in other words, a large proportion of moveable space, may be preferentially selected for route calculation.

- 스타트 노드와 도착지 노드의 좌표의 유효성을 판단하는 단계(S105)- A step of determining the validity of the coordinates of the start node and 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 determine whether they are coordinates of a location that can be moved. If the start coordinate and destination coordinate are invalid coordinates or coordinates in a location that cannot be moved, the processor 120 may return an error message and terminate. In some embodiments, the processor 120 may output a message through the output unit 130 indicating that the coordinates are not valid or are in a location that cannot be moved.

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

- 도착지 노드가 도달 가능한 위치인지 여부를 판단하는 단계(S107)- A step of 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 in a reachable location.

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

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

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

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

일부 실시예에서, 도착지 좌표를 중심으로 8방향으로 한 픽셀씩 이동할 때 도착지 좌표를 포함한 도착지 셀에 무관하여 도착지 좌표를 이동시킬 수 있다. 즉, 도착지 좌표를 업데이트할 때는 도착지 셀을 고려하지 않고 도착지 좌표를 중심으로 8 방향에 대하여 한 픽셀씩 이동하면서 로봇 반경 안의 공간에 충돌이 없는 지점의 좌표를 탐색할 수 있다. 또한, 도착지 좌표는 도착지 셀의 중심 노드에 대응하는 중심 좌표가 아닐 수 있다.In some embodiments, when moving one pixel in eight directions around the destination coordinate, the destination coordinate may be moved regardless of the destination cell containing the destination coordinate. In other words, when updating the destination coordinates, you can search for the coordinates of a point without collision in the space within the robot radius by moving one pixel in each of the eight directions around the destination coordinates without considering the destination cell. Additionally, the destination coordinates may not be the 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은 로봇 자체의 반지름을 의미하는 것이 아닐 수 있음을 유의해야 한다.Meanwhile, the radius r of the mobile robot was defined, but this was limited to cases where the shape of the robot was circular. However, it is not limited to this, and considering the shape of the robot, when the robot rotates in place on a specific node, 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 conditions for movement from the start cell to the search cell are met, the search cell with the minimum cost value (f) is searched for and the movement path of the moving object is searched to set the movement path (S109)

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

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

상세하게, 프로세서(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 the virtual grid starting point and virtual grid destination corresponding to the starting point and destination in the original map as in step (4) of FIG. 5. And, as in step (5) of FIG. 5, the processor 120 may initialize vgClosedList, which has information about search cells for which calculation has been completed among search cells in the virtual grid currently being visited. And, as in step (6) of FIG. 5, the processor 120 can initialize openList, which has information about search cells for which calculation has not been completed among search cells in the virtual grid currently being visited, using a priority queue. . Sorting of each virtual grid can be done internally using a priority queue, enabling fast computation during A* search. The processor 120 inserts the start node (vg_src) into openList as in step (7) of FIG. 5 to start A* search. Then, the processor 120 selects the search cell with the lowest minimum cost value (h) according to Equation 1 among the search cells in the openList, as shown in step (8) below of FIG. 5, and selects the search cell corresponding to the final destination coordinates. You can add it to an openList to check whether a node has been reached and, if not, to do a search around the selected search cell. To be more specific, the processor 120 retrieves the top search cell among the search cells in the priority queue openList, that is, the search cell p with the lowest f value, as in step (9) of FIG. 5, and In step (10), the vgClosedList value for the navigation cell p is set as visited.

단계 (11) 이하 for 문에서는 p의 이웃 노드에 대한 탐색을 하는 부분이다.The for statement below in step (11) is the part that searches for the neighboring nodes 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 a neighboring node within an 8-way search cell to the openList and performs a path search to find out whether it can be moved. As in step 12, the processor 120 determines whether it is a search cell in a valid virtual grid by checking whether the coordinate value is within the map image. As in step (13), if the neighboring virtual grid is vg_dest, the processor 120 informs that it has found the path because it means that it is a destination cell in the virtual grid including the destination, and ends the calculation. Additionally, the processor 120 may check whether the neighboring search cell has already been visited and whether it can be moved, as in step (14). You can check whether a neighboring search cell has already been visited by checking vgClosedList. The processor 120 may compare the virtual grid value with a set threshold value (80 to 100) to determine whether the neighboring search cell can move, and determine that the neighboring search cell can move if it is greater than the threshold value. The threshold here 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. Meanwhile, if the virtual grid value is less than the threshold, it means that the ratio of pixels that cannot be moved is larger than the threshold, so there is not enough space to move. The processor 120 may calculate the new_f value by calculating new_g and new_h if the neighboring virtual grid has not yet been visited and is less than the threshold, so there is enough space to move, as in step (14). At this time, as in step (15), if the neighboring node has not been visited yet or the newly calculated new_f value is less than the virtual grid value of the neighboring node, the processor 120 can add it to the openList and use it to continue searching the path. If the virtual grid value of the neighboring node is not infinite but has a value less than that, it means that it has already been used to calculate the movement path through another path, and if the newly calculated new_f value is less than the previous f value, it means that it is a newly calculated movement path. This means that is a shorter path. Therefore, the next movement path is calculated along this route and added to the openList to reach the destination.

- 이동 경로를 보정하는 단계(S111)- Step to correct 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, a virtual grid list forming a path from the origin to the destination can be obtained. However, the virtual grid is not in pixel units but is a mixture of movable and non-movable spaces, so as shown in Figure 11, the actual robot must find a place where it can move and correct its movement path.

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

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

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

[보정된 이동 경로][Corrected movement path]

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

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

도 14는 본 발명의 다른 실시예에 따른 가상 그리드 기반 에이스타 경로 탐색 방법의 흐름도이다.Figure 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, after completing the search and correction of the movement paths for robots on the map, movement paths of a plurality of robots overlap at the same time. It may further include a step of determining whether to do so (S113) and a step of re-searching the path by adjusting the threshold if movement path 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 search the movement paths of each robot and set the movement path. Additionally, the processor 120 may calculate estimated arrival time information for each cell according to the departure time and movement of each robot. Additionally, the processor 120 can analyze whether any of the robots pass through the same cell at the same time, that is, their movement paths overlap. If there are robots (first and second robots) whose movement paths overlap, the processor 120 may modify the movement paths of these robots. As an example, the processor 120 may set each threshold to a different value when searching the movement paths of the first and second robots whose movement paths overlap. Additionally, when the radius of the first robot is larger than the radius of the second robot, the first threshold value applied when searching the path of the first robot can be set to be larger than the second threshold value applied when searching the path of the second robot. In some embodiments, the processor 120 may increase or decrease the difference between the first and second thresholds based on the degree of proximity of the start node and/or destination node of the first robot and the second robot. For example, if the start node and/or destination node of the first robot and the second robot are closer to each other than a preset value, the difference between the first and second thresholds may be increased. That is, the embodiment can re-search the paths of robots passing through the same cell at the same time and adjust the threshold upon re-search. In addition, the possibility of overlapping paths of robots at the same time can be minimized by re-searching the path by adjusting the difference between the first and second thresholds based on the radius of the robots, the proximity of their origin and destination, and the degree of overlap of the paths. You can.

도 15는 가상 그리드의 크기가 10일 때 2439×1977 크기의 지도 이미지 상에서의 최종 이동 경로를 표시하는 것을 나타내고, 도 16은 가상 그리드의 크기에 따른 경로 탐색 시간(단위: 초)에 관한 그래프이다.Figure 15 shows the final movement path displayed on a map image of 2439 .

실시예의 성능을 평가함에 있어서, 가상 그리드 기반 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) A* route search between origin and destination must be supported. 2) Path search considering the robot radius must be supported. 3) Inflation for the map is calculated in addition to the robot radius. 4) If the departure or destination is a place where movement is not possible, route calculation cannot be performed. 5) If the starting point is an impossible place considering the robot radius, route calculation cannot be performed. 6) If the destination is a place that can be moved, but cannot be reached considering the robot radius, the route is calculated only to the nearest place that can be moved. 7) The map file format supports png or jpeg. 8) Map files must be provided in a format usable by the program. 9) The movable area in the map file must have a value of (255, 255, 255) for 24-bit images or 255 for 8-bit images. 10) Possible error cause types are source coordinate error, destination coordinate error, and route creation impossible. 11) It must be possible to add or delete temporary obstacles. 12) You can request path creation, temporary obstacle registration, and deletion through an external device. 13) Depending on the request, a response must be sent according to the established protocol. 14) Requests for route creation must be received on the designated port number (e.g., 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초 정도의 경로 탐색 시간이 소요되는 것과 비교해 보면 본 발명의 실시예에 따른 가상 그리드 기반의 경로 탐색 시스템의 성능이 우수함을 쉽게 알 수 있다.Referring to FIGS. 15 and 16, FIG. 15 shows a route created as a result of applying a virtual grid-based route search algorithm by setting the virtual grid size to 10 and then setting the origin (src) and destination (dst). Figure 16 shows the average time required for path search by executing the path in Figure 15 five times while changing the virtual grid size from 5 to 30. As shown in Figure 2, as the virtual grid size changes, the search space rapidly decreases around 10, and the path search time also decreases rapidly starting from the virtual grid size of 10. Compared to the route search time of about 52 seconds when applying the existing A* algorithm to the same origin and destination, it is easy to see that the performance of the virtual grid-based route search system according to the embodiment of the present invention is excellent. there is.

실시예는 물류 자동화를 위하여 실내 물류 현장과 같이 넓고 자유도가 높은 공간에서 지정한 지점 간 자율 주행하는 물류 로봇 기술에 적용될 수 있으나 이에 제한되는 것은 아니다.The embodiment may be applied to logistics robot technology that autonomously travels between designated points in a wide, 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* 알고리즘과 비교해 봤을 때 충분한 성능 향상이 있음을 알 수 있다.Dijkstra's algorithm, which is an algorithm for route search between origin and destination, guarantees the shortest route between two points, but takes a lot of calculation time. The A* algorithm is widely used to find a sub-optimal route in a short time by reducing the search space using a heuristic function from the current location to the destination, but the A* algorithm is used for indoor logistics sites that have a high degree of freedom of movement and use pixel-based map images. Even if applied, the calculation time is not fast enough. However, the embodiment can reduce the search space by segmenting the map image using a virtual grid technique and improve performance by applying the A* algorithm using this. In addition, as a result of the performance evaluation, we were able to find an appropriate virtual grid size that can find a search path between two distant points within 1 second, and it can be seen that there is sufficient performance improvement when 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 can be implemented in the form of program instructions that can be executed through various computer components and recorded on a computer-readable recording medium. The computer-readable recording medium may include program instructions, data files, data structures, etc., singly or in combination. Program instructions recorded on the computer-readable recording medium may be specially designed and configured for the present invention, or may be known and usable by those skilled in the computer software field. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tapes, optical recording media such as CD-ROMs and DVDs, and magneto-optical media such as floptical disks. medium), and hardware devices specifically configured to store and execute program instructions, such as ROM, RAM, flash memory, etc. Examples of program instructions include not only machine language code such as that created by a compiler, but also high-level language code that can be executed by a computer using an interpreter or the like. A hardware device can be converted into one or more software modules to perform processing according to the invention and vice versa.

본 발명에서 설명하는 특정 실행들은 일 실시 예들로서, 어떠한 방법으로도 본 발명의 범위를 한정하는 것은 아니다. 명세서의 간결함을 위하여, 종래 전자적인 구성들, 제어 시스템들, 소프트웨어, 상기 시스템들의 다른 기능적인 측면들의 기재는 생략될 수 있다. 또한, 도면에 도시된 구성 요소들 간의 선들의 연결 또는 연결 부재들은 기능적인 연결 및/또는 물리적 또는 회로적 연결들을 예시적으로 나타낸 것으로서, 실제 장치에서는 대체 가능하거나 추가의 다양한 기능적인 연결, 물리적인 연결, 또는 회로 연결들로서 나타내어질 수 있다. 또한, “필수적인”, “중요하게” 등과 같이 구체적인 언급이 없다면 본 발명의 적용을 위하여 반드시 필요한 구성 요소가 아닐 수 있다.The specific implementations described in the present invention are examples and do not limit the scope of the present invention in any way. For the sake of 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 connection members of lines between components shown in the drawings exemplify functional connections and/or physical or circuit connections, and in actual devices, various functional connections or physical connections may be replaced or added. Can be represented as connections, or circuit connections. Additionally, if there is no specific mention such as “essential,” “important,” etc., 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 preferred embodiments of the present invention, those skilled in the art or those skilled in the art will understand the spirit of the present invention as described in the patent claims to be described later. It will be understood that the present invention can be modified and changed in various ways without departing from the technical scope. Therefore, the technical scope of the present invention should not be limited to what is described in the detailed description of the specification, but should be defined by the scope of the patent claims.

Claims (14)

적어도 하나의 프로세서; 및
상기 프로세서에 의해 실행 가능한 하나 이상의 명령어를 포함하는 적어도 하나의 메모리;를 포함하고,
상기 명령어는,
지도를 미리 설정된 사이즈의 셀들로 분할하여 상기 지도에 가상 그리드를 적용하고,
상기 셀내 장애물을 표시하는 픽셀과 비장애물을 표시하는 픽셀의 비율에 기초하여 결정된 상기 셀들 각각의 가상 그리드 값을 결정하고,
스타트 노드가 속한 스타트 셀에서 탐색 셀까지의 이동에 따른 제1 최소 비용 추정 값과 상기 탐색 셀에서부터 도착지 노드가 속한 도착지 셀까지의 이동에 따른 제2 최소 비용 추정 값의 합인 최소 비용 값이 최소가 되는 탐색 셀을 탐색하여 이동체의 이동 경로를 탐색하여 이동 경로를 설정하는 것을 포함하고,
상기 제1 최소 비용 추정 값은 상기 가상 그리드 값이고,
상기 스타트 셀에서 상기 탐색 셀로의 이동 가능 조건을 충족하면 상기 최소 비용 값이 최소가 되는 탐색 셀을 탐색하여 이동체의 이동 경로를 탐색하고,
상기 이동 가능 조건은 상기 탐색 셀의 가상 그리드 값이 미리 설정된 임계값 이상이 조건인
가상 그리드 기반 에이스타 경로 탐색 시스템.
at least one processor; and
At least one memory including one or more instructions executable by the processor,
The command is:
Divide the map into cells of a preset size and apply a virtual grid to the map,
Determine a virtual grid value for each of the cells determined based on the ratio of pixels indicating obstacles and pixels indicating non-obstacles within the cell,
The minimum cost value, which is the sum of the first minimum cost estimate value for movement from the start cell to which the start node belongs to the search cell and the second minimum cost estimate value for movement from the search cell to the destination cell to which the destination node belongs, is the minimum. It includes setting the movement path by searching the movement path of the moving object by searching the navigation cell,
the first minimum cost estimate is the virtual grid value,
If the conditions for movement from the start cell to the search cell are met, the movement path of the moving object is searched by searching for the search cell with the minimum cost value,
The movement possibility condition is that the virtual grid value of the search cell is greater than or equal to a preset threshold.
Virtual grid-based A-Star route navigation system.
삭제delete 제1 항에 있어서,
상기 스타트 노드에 대응하는 스타트 좌표와 상기 도착지 노드에 대응하는 도착지 좌표의 유효성이 충족되면 상기 최소 비용 값이 최소가 되는 탐색 셀을 탐색하여 이동체의 이동 경로를 탐색하고,
상기 유효성은 상기 스타트 좌표 및 상기 도착지 좌표가 이동할 수 있는 좌표인지에 관한 것인
가상 그리드 기반 에이스타 경로 탐색 시스템.
According to claim 1,
When the validity of the start coordinate corresponding to the start node and the destination coordinate corresponding to the destination node are satisfied, the movement path of the moving object is searched by searching for a search cell with the minimum cost value,
The validity relates to whether the start coordinate and the destination coordinate are coordinates that can be moved.
Virtual grid-based A-Star route navigation system.
제3 항에 있어서,
상기 명령어는,
상기 도착지 좌표를 중심으로 로봇의 반지름 내의 좌표들 중 적어도 하나가 장애물 좌표인지 여부를 판단하여 상기 도착지 좌표가 도달 가능 좌표인지 여부를 판단하는 것을 더 포함하고,
상기 도착지 좌표가 상기 도달 가능 좌표가 아닌 경우, 상기 도착지 좌표와 인접한 좌표로 상기 도착지 좌표를 업데이트하는
가상 그리드 기반 에이스타 경로 탐색 시스템.
According to clause 3,
The command is:
It further includes determining whether the destination coordinate is a reachable coordinate by determining whether at least one of the coordinates within the radius of the robot centered on the destination coordinate is an obstacle coordinate,
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.
삭제delete 제1 항에 있어서,
상기 명령어는,
탐색 셀의 탐색 노드를 중심으로 로봇의 반지름 내의 좌표들 중 적어도 하나가 장애물 좌표인지 여부를 판단하여 상기 탐색 노드가 이동 가능 좌표인지 여부를 판단하는 것을 더 포함하고,
상기 탐색 노드가 상기 이동 가능 좌표가 아닌 경우, 상기 탐색 노드와 인접한 좌표로 상기 탐색 노드의 좌표를 업데이트하는
가상 그리드 기반 에이스타 경로 탐색 시스템.
According to claim 1,
The command is:
It further includes determining whether the search node is a movable coordinate by determining whether at least one of the coordinates within the radius of the robot centered on the search node of the search cell is an obstacle coordinate,
If the search node is not in the moveable coordinates, updating the coordinates of the search node with coordinates adjacent to the search node
Virtual grid-based A-Star route navigation system.
제6 항에 있어서,
상기 탐색 노드가 상기 이동 가능 좌표가 아닌 경우, 상기 탐색 노드가 속한 셀 내의 좌표 들 중 상기 탐색 노드와 인접한 좌표로 상기 탐색 노드의 좌표를 업데이트하는
가상 그리드 기반 에이스타 경로 탐색 시스템.
According to clause 6,
If the search node is not in 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 항에 있어서,
상기 명령어는,
상기 지도 상에 복수의 로봇이 위치하는 경우, 상기 복수의 로봇 각각의 경로 탐색에 따라 동일한 시점에 동일한 셀로 이동하는 경로 겹침이 발생하는 경우 상기 복수의 로봇 각각의 경로 탐색에 적용되는 임계값을 조정하여 상기 복수의 로봇 각각의 경로를 재 탐색하는 것을 더 포함하는
가상 그리드 기반 에이스타 경로 탐색 시스템.
According to clause 7,
The command is:
When a plurality of robots are located on the map, and when paths that overlap to move to the same cell at the same time occur according to the path exploration of each of the plurality of robots, the threshold applied to the path search of each of the plurality of robots is adjusted. Further comprising re-searching the path of each of the plurality of robots.
Virtual grid-based A-Star route navigation system.
제1 항에 있어서,
상기 가상 그리드 내의 셀의 크기는 상기 지도의 복잡도와 상기 지도의 사이즈에 기초하여 가변되는
가상 그리드 기반 에이스타 경로 탐색 시스템.
According to claim 1,
The size of the cells 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.
지도 이미지에 복수의 셀로 구성된 가상 그리드를 적용하는 단계;
상기 복수의 셀 각각의 장애물을 표시하는 픽셀과 비장애물을 표시하는 픽셀의 비율에 기초하여 결정된 가상 그리드 값을 상기 복수의 셀 각각에 적용하는 가상 그리드를 초기화하는 단계;
스타트 노드와 도착지 노드의 좌표의 유효성을 판단하는 단계;
도착지 노드가 도달 가능 좌표인지 여부를 판단하는 단계;
스타트 셀에서 탐색 셀로의 이동 가능 조건을 충족하면 상기 가상 그리드 값에 기초한 최소 비용 값이 최소가 되는 탐색 셀을 탐색하여 이동체의 이동 경로를 탐색하여 이동 경로를 설정하는 단계; 및
이동 경로를 보정하는 단계;를 포함하고,
상기 최소 비용 값은 상기 스타트 셀에서 탐색 셀까지의 이동에 따른 제1 최소 비용 추정 값과 상기 탐색 셀에서부터 상기 도착지 노드가 속한 도착지 셀까지의 이동에 따른 제2 최소 비용 추정 값의 합인
상기 제1 최소 비용 추정 값은 상기 가상 그리드 값이고,
상기 스타트 셀에서 상기 탐색 셀로의 이동 가능 조건을 충족하면 상기 최소 비용 값이 최소가 되는 탐색 셀을 탐색하여 이동체의 이동 경로를 탐색하고,
상기 이동 가능 조건은 상기 탐색 셀의 가상 그리드 값이 미리 설정된 임계값 이상이 조건인
가상 그리드 기반 에이스타 경로 탐색 방법.
Applying a virtual grid composed of a plurality of cells to the map image;
Initializing a virtual grid by applying a virtual grid value determined based on a ratio of pixels representing obstacles to pixels representing non-obstacles in 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 has reachable coordinates;
If the conditions for movement from the start cell to the search cell are met, searching for the search cell with the lowest minimum cost based on the virtual grid value and searching for the movement path of the moving object to set the movement path; and
Comprising: correcting the movement path;
The minimum cost value is the sum of the first minimum cost estimate value for movement from the start cell to the search cell and the second minimum cost estimate value for movement from the search cell to the destination cell to which the destination node belongs.
the first minimum cost estimate is the virtual grid value,
If the conditions for movement from the start cell to the search cell are met, the movement path of the moving object is searched by searching for the search cell with the minimum cost value,
The movement possibility condition is that the virtual grid value of the search cell is greater than or equal to a preset threshold.
Virtual grid-based A-Star route search method.
삭제delete 삭제delete 제10 항에 있어서,
상기 스타트 노드에 대응하는 스타트 좌표와 상기 도착지 노드에 대응하는 도착지 좌표의 유효성이 충족되면 상기 최소 비용 값이 최소가 되는 탐색 셀을 탐색하여 이동체의 이동 경로를 탐색하고,
상기 유효성은 상기 스타트 좌표 및 상기 도착지 좌표가 이동할 수 있는 좌표인지에 관한 것이고,
상기 도착지 좌표를 중심으로 로봇의 반지름 내의 좌표들 중 적어도 하나가 장애물 좌표인지 여부를 판단하여 상기 도착지 좌표가 상기 도달 가능 좌표인지 여부를 판단하고,
상기 도착지 좌표가 상기 도달 가능 좌표가 아닌 경우, 상기 도착지 좌표와 인접한 좌표로 상기 도착지 좌표를 업데이트하는
가상 그리드 기반 에이스타 경로 탐색 방법.
According to claim 10,
When the validity of the start coordinate corresponding to the start node and the destination coordinate corresponding to the destination node are satisfied, the movement path of the moving object is searched by searching for a search cell with the minimum cost value,
The validity relates to whether the start coordinate and the destination coordinate are coordinates that can be moved,
Determine whether at least one of the coordinates within the radius of the robot centered on the destination coordinate is an obstacle coordinate, and determine whether the destination coordinate is the reachable coordinate;
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 search method.
제13 항에 있어서,
상기 지도 상에 복수의 로봇이 위치하고, 상기 복수의 로봇 각각의 경로 탐색에 따라 동일한 시점에 동일한 셀로 이동하는 경로 겹침이 발생하는 경우 상기 복수의 로봇들 각각의 경로 탐색에 적용되는 임계값을 조정하여 상기 복수의 로봇들 각각의 경로를 재 탐색하는 단계;를 더 포함하는
가상 그리드 기반 에이스타 경로 탐색 방법.
According to claim 13,
When a plurality of robots are located on the map, and paths that overlap the same cell at the same time occur according to the path exploration of each of the plurality of robots, the threshold applied to the path exploration of each of the plurality of robots is adjusted. Further comprising: re-searching the path of each of the plurality of robots
Virtual grid-based A-Star route search 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 KR20220126588A (en) 2022-09-16
KR102595387B1 true 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 (2)

* 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
KR101179075B1 (en) * 2012-02-28 2012-09-03 국방과학연구소 Path planning method for autonomous robot and path planning system thereof

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100745975B1 (en) 2004-12-30 2007-08-06 삼성전자주식회사 Method and apparatus for moving minimum movement cost path using grid map
US20170329347A1 (en) * 2016-05-11 2017-11-16 Brain Corporation Systems and methods for training a robot to autonomously travel a route

Patent Citations (2)

* 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
KR101179075B1 (en) * 2012-02-28 2012-09-03 국방과학연구소 Path planning method for autonomous robot and path planning system thereof

Also Published As

Publication number Publication date
KR20220126588A (en) 2022-09-16

Similar Documents

Publication Publication Date Title
CN111504325B (en) Global path planning method based on weighted A-algorithm of enlarged search neighborhood
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
CN108444490B (en) Robot path planning method based on depth fusion of visible view and A-x algorithm
WO2018090769A1 (en) Route identification method and system
CN113485369A (en) Indoor mobile robot path planning and path optimization method for improving A-x algorithm
CN112985408B (en) Path planning optimization method and system
CN114440916B (en) Navigation method, device, equipment and storage medium
JP2021519461A (en) Methods, devices and systems for determining reachable paths between two nodes
CN107276896B (en) Method for searching shortest path between two points by improving Dijkstra algorithm
CN107357295B (en) Path searching method and chip based on grid map and robot
CN112033413A (en) Improved A-algorithm combined with environmental information
CN110967028A (en) Navigation map construction method and device, robot and storage medium
WO2023125512A1 (en) Navigation path planning method and apparatus, and storage medium
JP2019500691A (en) Action plan of fast search randomized feedback subject
CN109341698B (en) Path selection method and device for mobile robot
CN115167474A (en) Mobile robot path planning optimization method
KR101688302B1 (en) Motion planning apparatus and method
KR102595387B1 (en) Virtual grid-based A-Star route search method and system
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
CN113375686A (en) Path planning method and device and intelligent conveying system
CN116878527A (en) Hybrid path planning method and device based on improved adaptive window algorithm

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