[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

KR102695353B1 - Method for robot path finding - Google Patents

Method for robot path finding Download PDF

Info

Publication number
KR102695353B1
KR102695353B1 KR1020220059094A KR20220059094A KR102695353B1 KR 102695353 B1 KR102695353 B1 KR 102695353B1 KR 1020220059094 A KR1020220059094 A KR 1020220059094A KR 20220059094 A KR20220059094 A KR 20220059094A KR 102695353 B1 KR102695353 B1 KR 102695353B1
Authority
KR
South Korea
Prior art keywords
path
robot
robots
specific
time
Prior art date
Application number
KR1020220059094A
Other languages
Korean (ko)
Other versions
KR20230159125A (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 KR1020220059094A priority Critical patent/KR102695353B1/en
Publication of KR20230159125A publication Critical patent/KR20230159125A/en
Application granted granted Critical
Publication of KR102695353B1 publication Critical patent/KR102695353B1/en

Links

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1664Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1679Programme controls characterised by the tasks executed
    • B25J9/1682Dual arm manipulator; Coordination of several manipulators
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/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, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0287Control of position or course in two dimensions specially adapted to land vehicles involving a plurality of land vehicles, e.g. fleet or convoy travelling

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
  • Manipulator (AREA)

Abstract

본 개시의 실시 예에 있어서, 복수개의 로봇 각각이 특정지점을 통과하여 목표위치로 이동하는 가상의 경로를 탐색하는 단계, 상기 복수개의 로봇 중 특정로봇에 대한 경로를 삭제하고, 상기 특정로봇이 현재위치에서 상기 목표위치로 이동하는 경로를 재탐색하는 단계, 상기 재탐색된 경로를 이용하여 상기 특정로봇에 대한 경로를 업데이트 하는 단계 및 업데이트된 경로를 이용하여 상기 복수개의 로봇의 경로를 결정하는 단계를 포함하는 경로탐색 방법을 개시한다.In an embodiment of the present disclosure, a path search method is disclosed, including a step of searching a virtual path through which each of a plurality of robots passes through a specific point and moves to a target location, a step of deleting a path for a specific robot among the plurality of robots and re-searching a path for the specific robot to move from a current location to the target location, a step of updating the path for the specific robot using the re-searched path, and a step of determining the path of the plurality of robots using the updated path.

Description

로봇 경로 탐색 방법{METHOD FOR ROBOT PATH FINDING}{METHOD FOR ROBOT PATH FINDING}

본 개시는 복수개의 로봇의 경로 탐색 방법에 관한 것이다. 더욱 구체적으로 로컬서치(Local Search) 또는 시뮬레이티드 어닐링(Simulated Annealing)을 이용한 경로 탐색 방법에 관한 것이다.The present disclosure relates to a path search method for a plurality of robots. More specifically, it relates to a path search method using local search or simulated annealing.

최근 로봇의 자동화 및 무인화를 위한 기술이 개발되면서 로봇의 자동 경로탐색 기술 또한 발전하고 있다. 설정된 일정 경로를 반복적으로 주행하는 기술부터 로봇의 위치 인식에 관한 개발이 이루어 졌으며, 최근에는 로봇의 위치 인식에 관한 개발 뿐만 아니라 경로탐색 및 이동에 관한 개발도 활발하게 이루어지고 있다. 이러한 기술개발에 따라 실제 지능형 물류센터에서 로봇이 활용되고 있으며, 일반 음식점에서 서빙 로봇이 등장하는 등 기술의 실제 적용에 대한 관심이 높아지고 있다.Recently, as technology for robot automation and unmanned operation is being developed, robot automatic path search technology is also being developed. Developments have been made from technology for repeatedly driving a set path to robot location recognition, and recently, in addition to developments for robot location recognition, developments for path search and movement are also being actively made. As a result of this technology development, robots are being utilized in actual intelligent logistics centers, and interest in the actual application of technology is increasing, such as the appearance of serving robots in general restaurants.

한편, 이러한 관심에 따라 로봇 경로 탐색에 대한 다양한 챌린지 또한 존재하며, 임의의 기하학적 구조물이 배치된 상황에서 최적화된 경로를 찾고자 하는 챌린지가 끊임없이 개최되고 있다.Meanwhile, in response to this interest, various challenges for robot path finding also exist, and challenges are constantly being held to find an optimized path in a situation where arbitrary geometric structures are placed.

본 개시는 임의의 구조물이 배치된 환경에서 로봇의 출발지점에서 목표지점까지 최적의 로봇의 경로를 도출하기 위함이다.The present disclosure is intended to derive an optimal robot path from a starting point to a target point in an environment in which arbitrary structures are placed.

본 개시는 복수개의 로봇 각각이 특정지점을 통과하여 목표위치로 이동하는 가상의 경로를 탐색하는 단계, 상기 복수개의 로봇 중 특정로봇에 대한 경로를 삭제하고, 상기 특정로봇이 현재위치에서 상기 목표위치로 이동하는 경로를 재탐색하는 단계, 상기 재탐색된 경로를 이용하여 상기 특정로봇에 대한 경로를 업데이트 하는 단계 및 업데이트된 경로를 이용하여 상기 복수개의 로봇의 경로를 결정하는 단계를 포함하는 경로탐색 방법을 개시한다.The present disclosure discloses a path search method including a step of searching a virtual path through which each of a plurality of robots passes through a specific point and moves to a target location, a step of deleting a path for a specific robot among the plurality of robots and re-searching a path for the specific robot to move from a current location to the target location, a step of updating the path for the specific robot using the re-searched path, and a step of determining the path of the plurality of robots using the updated path.

또한, 상기 로봇의 경로 탐색 방법은 2차원 좌표 그리드상에서 이루어질 수 있다.Additionally, the path search method of the robot can be performed on a two-dimensional coordinate grid.

또한, 상기 특정지점은, 상기 복수개의 로봇 각각의 현재위치 및 목표위치를 포함하는 바운딩 박스 외부의 중간지점을 포함할 수 있다.Additionally, the specific point may include an intermediate point outside a bounding box that includes the current location and target location of each of the plurality of robots.

또한, 상기 복수개의 로봇 각각이 특정지점을 통과하여 상기 목표위치로 이동하는 가상의 경로를 탐색하는 단계는, (1) 상기 로봇이 적어도 하나 이상의 이동가능한 방향을 결정하고 상기 이동가능한 방향으로 이동하는 단계, (2) 상기 (1)을 상기 특정지점에 도달할 때 까지 반복하여, 적어도 하나 이상의 제1 경로를 도출하는 단계, (3) 상기 로봇이 상기 특정지점에 도달하면, 상기 (1)을 목표위치에 도달할 때 까지 반복하여, 적어도 하나 이상의 제2 경로를 도출하는 단계 및 (4) 상기 로봇이 상기 목표위치에 도달한 경우, 상기 제1 경로 및 상기 제2 경로의 합 중 최소가 되는 경로를 상기 로봇의 경로로 결정하는 단계를 포함할 수 있다. In addition, the step of searching a virtual path along which each of the plurality of robots passes through a specific point and moves to the target position may include (1) a step of determining at least one movable direction of the robot and moving in the movable direction, (2) a step of deriving at least one first path by repeating (1) until the robot reaches the specific point, (3) a step of deriving at least one second path by repeating (1) until the robot reaches the target position, and (4) a step of determining, when the robot reaches the target position, a path that is the minimum of the sum of the first path and the second path as the path of the robot.

또한, 상기 특정로봇이 현재위치에서 상기 목표위치로 이동하는 경로를 재탐색하는 단계는 상기 로봇이 적어도 하나 이상의 이동가능한 방향을 결정하고 상기 이동가능한 방향으로 이동하는 단계, 상기 이동가능한 방향으로 이동하는 단계를 반복하여, 상기 목표위치에 도달할 때까지 적어도 하나 이상의 경로를 도출하는 단계 및 상기 로봇이 상기 목표위치에 도달한 경우, 도출된 경로 중 길이가 최소가 되는 경로를 상기 로봇의 경로로 결정하는 단계를 포함할 수 있다.In addition, the step of re-searching the path for the specific robot to move from the current location to the target location may include the step of determining at least one movable direction for the robot and moving in the movable direction, the step of deriving at least one path until the target location is reached by repeating the step of moving in the movable direction, and the step of determining, when the robot reaches the target location, the path with the minimum length among the derived paths as the path of the robot.

또한, 상기 이동가능한 방향은 2차원 그리드 상의 상,하,좌,우 및 제자리를 포함할 수 있다.Additionally, the movable direction may include up, down, left, right, and in place on a two-dimensional grid.

또한, 상기 복수개의 로봇 각각이 특정지점을 통과하여 상기 목표위치로 이동하는 가상의 경로를 탐색하는 단계는, 상기 복수개의 로봇 각각의 경로탐색 순서를 결정하는 단계를 포함하고, 상기 순서는 상기 복수개의 로봇 각각의 현재위치로부터, 상기 복수개의 로봇 각각의 현재위치 및 목표위치를 포함하는 바운딩 박스 외부의 임의의 지점의 경로거리에 기초하여 결정될 수 있다. In addition, the step of searching a virtual path for each of the plurality of robots to pass through a specific point and move to the target location includes the step of determining a path search order for each of the plurality of robots, and the order can be determined based on a path distance from a current location of each of the plurality of robots to an arbitrary point outside a bounding box that includes the current location and target location of each of the plurality of robots.

또한, 상기 복수개의 로봇 중 특정로봇에 대한 경로를 삭제하고, 상기 특정로봇이 현재위치에서 상기 목표위치로 이동하는 경로를 재탐색하는 단계는, 상기 특정로봇의 가상의 경로 중 제1 시간 및 제2 시간 사이의 경로를 삭제하는 단계,상기 제1 시간 및 제2 시간 사이의 제3 시간에서 상기 특정로봇이 위치할 수 있는 후보위치를 추출하는 단계 및 상기 특정로봇의 제1 시간 위치에서 상기 후보위치까지 경로와 상기 후보위치에서 제2 시간 위치까지의 경로의 최단거리를 탐색하는 단계를 포함할 수 있다.In addition, the step of deleting a path for a specific robot among the plurality of robots and re-searching a path for the specific robot to move from a current location to the target location may include the step of deleting a path between a first time and a second time among virtual paths of the specific robot, the step of extracting a candidate location at which the specific robot may be located at a third time between the first time and the second time, and the step of searching for a shortest distance between a path from the first time location of the specific robot to the candidate location and a path from the candidate location to the second time location.

또한, 상기 복수개의 로봇 각각에 대한 업데이트된 경로를 이용하여 상기 복수개의 로봇의 경로를 결정하는 단계는, 상기 복수개의 로봇 각각의 경로 길이의 합 또는 경로 탐색시간이 최소인 경우를 최종경로로 선택할 수 있다.In addition, the step of determining the path of the plurality of robots using the updated path for each of the plurality of robots may select the path with the minimum sum of the path lengths of each of the plurality of robots or the path search time as the final path.

또한, 컴퓨터 판독가능 매체에 저장된 컴퓨터 프로그램으로서, 상기 컴퓨터 프로그램은 하나 이상의 프로세서로 하여금 로봇의 경로탐색을 수행하게 하기 위한 명령들을 포함하며, 상기 명령들은 복수개의 로봇 각각이 특정지점을 통과하여 목표위치로 이동하는 가상의 경로를 탐색하는 단계, 상기 복수개의 로봇 중 특정로봇에 대한 경로를 삭제하고, 상기 특정로봇이 현재위치에서 상기 목표위치로 이동하는 경로를 재탐색하는 단계, 상기 재탐색된 경로를 이용하여 상기 특정로봇에 대한 경로를 업데이트 하는 단계 및 상기 복수개의 로봇 각각에 대한 업데이트된 경로를 이용하여 상기 복수개의 로봇의 경로를 결정하는 단계를 실행시키기 위하여 컴퓨터 판독가능 매체에 저장된 컴퓨터 프로그램을 포함할 수 있다.In addition, as a computer program stored in a computer-readable medium, the computer program includes commands for causing one or more processors to perform path search for a robot, and the commands may include a computer program stored in a computer-readable medium to execute the steps of: searching for a virtual path through which each of a plurality of robots passes through a specific point and moves to a target location; deleting a path for a specific robot among the plurality of robots and re-searching a path through which the specific robot moves from a current location to the target location; updating the path for the specific robot using the re-searched path; and determining the paths of the multiple robots using the updated paths for each of the multiple robots.

상기 컴퓨터 프로그램은 앞서 설명한 방법을 포함하는 프로그램으로 구현될 수 있다.The above computer program can be implemented as a program including the method described above.

본 발명의 다양한 실시 예에 따르면, 임의의 구조물이 배치된 환경에서 로봇의 출발지점에서 목표지점까지 최적화된 경로를 도출함으로써 모든 로봇이 충돌없이 이동가능하다.According to various embodiments of the present invention, by deriving an optimized path from a starting point to a target point in an environment where arbitrary structures are arranged, all robots can move without collision.

도 1은 본 발명의 일 실시 예에 따른 로봇의 경로탐색 방법을 나타낸다.
도 2는 본 발명의 일 실시 예에 따른 데이터 구조를 나타낸다.
도 3은 본 발명의 일 실시 예에 따른 순서도를 나타낸다.
도 4는 본 발명의 일 실시 예에 따른 경로 삽입 및 삭제 방법을 나타낸다.
도 5는 본 발명의 일 실시 예에 따른 로봇 순서 결정 방법을 나타낸다.
도 6는 본 발명의 일 실시 예에 따른 경로 최적화 방법을 나타낸다.
Figure 1 illustrates a path search method of a robot according to one embodiment of the present invention.
Figure 2 illustrates a data structure according to one embodiment of the present invention.
Figure 3 shows a flowchart according to one embodiment of the present invention.
FIG. 4 illustrates a path insertion and deletion method according to one embodiment of the present invention.
Figure 5 illustrates a robot order determination method according to one embodiment of the present invention.
Figure 6 illustrates a path optimization method according to one embodiment of the present invention.

이하, 첨부된 도면을 참조하여 본 명세서에 개시된 실시 예를 상세히 설명하되, 도면 부호에 관계없이 동일하거나 유사한 구성요소는 동일한 참조 번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 이하의 설명에서 사용되는 구성요소에 대한 접미사 '모듈' 및 '부'는 명세서 작성의 용이함만이 고려되어 부여되거나 혼용되는 것으로서, 그 자체로 서로 구별되는 의미 또는 역할을 갖는 것은 아니다. 또한, 본 명세서에 개시된 실시 예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 명세서에 개시된 실시 예의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 첨부된 도면은 본 명세서에 개시된 실시 예를 쉽게 이해할 수 있도록 하기 위한 것일 뿐, 첨부된 도면에 의해 본 명세서에 개시된 기술적 사상이 제한되지 않으며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.Hereinafter, embodiments disclosed in this specification will be described in detail with reference to the attached drawings. Regardless of the drawing symbols, identical or similar components will be given the same reference numerals and redundant descriptions thereof will be omitted. The suffixes 'module' and 'part' used for components in the following description are assigned or used interchangeably only for the convenience of writing the specification, and do not have distinct meanings or roles in themselves. In addition, when describing embodiments disclosed in this specification, if it is determined that a specific description of a related known technology may obscure the gist of the embodiments disclosed in this specification, the detailed description thereof will be omitted. In addition, the attached drawings are only intended to facilitate easy understanding of the embodiments disclosed in this specification, and the technical ideas disclosed in this specification are not limited by the attached drawings, and should be understood to include all modifications, equivalents, and substitutes included in the spirit and technical scope of the present invention.

제1, 제2 등과 같이 서수를 포함하는 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되지는 않는다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.Terms that include ordinal numbers, such as first, second, etc., may be used to describe various components, but the components are not limited by the terms. The terms are used only to distinguish one component from another.

어떤 구성요소가 다른 구성요소에 '연결되어' 있다거나 '접속되어' 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 '직접 연결되어' 있다거나 '직접 접속되어' 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.When it is said that a component is 'connected' or 'connected' to another component, it should be understood that it may be directly connected or connected to that other component, but that there may be other components in between. On the other hand, when it is said that a component is 'directly connected' or 'directly connected' to another component, it should be understood that there are no other components in between.

본 개시의 각 구성부들은 서로 다른 특징적인 기능들을 나타내기 위해 독립적으로 도시한 것으로, 각 구성부들이 분리된 하드웨어나 하나의 소프트웨어 구성단위로 이루어짐을 의미하지 않는다. 즉, 각 구성부는 설명의 편의상 각각의 구성부로 나열하여 포함한 것으로 각 구성부 중 적어도 두 개의 구성부가 합쳐져 하나의 구성부로 이루어지거나, 하나의 구성부가 복수개의 구성부로 나뉘어져 기능을 수행할 수 있고 이러한 각 구성부의 통합된 실시예 및 분리된 실시예도 본 발명의 본질에서 벗어나지 않는 한 본 발명의 권리범위에 포함된다.Each component of the present disclosure is independently illustrated to indicate different characteristic functions, and does not mean that each component is formed as a separate hardware or software configuration unit. That is, each component is listed and included as a separate component for convenience of explanation, and at least two components among each component may be combined to form a single component, or one component may be divided into multiple components to perform a function, and such integrated and separated embodiments of each component are also included in the scope of the present invention as long as they do not deviate from the essence of the present invention.

또한, 일부의 구성 요소는 본 발명에서 본질적인 기능을 수행하는 필수적인 구성 요소는 아니고 단지 성능을 향상시키기 위한 선택적 구성 요소일 수 있다. 본 발명은 단지 성능 향상을 위해 사용되는 구성 요소를 제외한 본 발명의 본질을 구현하는데 필수적인 구성부만을 포함하여 구현될 수 있고, 단지 성능 향상을 위해 사용되는 선택적 구성 요소를 제외한 필수 구성 요소만을 포함한 구조도 본 발명의 권리범위에 포함된다.In addition, some components may not be essential components that perform essential functions in the present invention, but may be optional components that are merely used to improve performance. The present invention may be implemented by including only essential components for implementing the essence of the present invention, excluding components that are merely used to improve performance, and a structure that includes only essential components, excluding optional components that are merely used to improve performance, is also included in the scope of the present invention.

본 개시는 로봇의 경로 탐색 방법에 대한 것이며, 구체적인 본 개시의 경로 탐색 조건으로 2차원 좌표 그리드 상의 시작지점에서 목표지점까지 각각의 그리드에서 로봇 간 또는 로봇과 장애물간의 충돌 없이 이동할 수 있는 경로탐색 방법을 개시하고자 한다.The present disclosure relates to a path search method for a robot, and as a specific path search condition of the present disclosure, a path search method is disclosed that enables movement from a start point on a two-dimensional coordinate grid to a target point without collision between robots or between a robot and an obstacle in each grid.

본 발명의 실시 예에 따른 상기 경로탐색 방법을 이용하여 성능을 측정한 결과 복수의 로봇 중 마지막에 도착하는 로봇의 시간을 단축하거나 또는 복수개의 로봇 각각의 경로 합을 최소화하는 로봇의 경로를 도출하였다.As a result of measuring performance using the path search method according to an embodiment of the present invention, a path of the robots was derived that shortens the time of the robot arriving last among a plurality of robots or minimizes the sum of the paths of each of the plurality of robots.

이하 도 1에서 본 개시의 경로탐색 방법을 설명한다.The path search method of the present disclosure is described in FIG. 1 below.

도 1은 본 발명의 일 실시 예에 따른 로봇의 경로탐색 방법을 나타낸다. 그리고 도 2는 본 개시의 실시 에에 따른 경로 탐색 방법에서 데이터 구조를 나타낸 도면이다.FIG. 1 illustrates a path search method of a robot according to an embodiment of the present invention. FIG. 2 is a diagram illustrating a data structure in a path search method according to an embodiment of the present disclosure.

도 1을 참고하면, 2차원 그리드 상에 존재하는 복수개의 로봇이 있으며 각 Referring to Figure 1, there are multiple robots existing on a two-dimensional grid, and each

모델링된 N 로봇 세트에 포함된 로봇 각각은 시작위치 s1 내지 sN에서 목표위치 d1 내지 dN으로 이동하여야 한다.(도 1은 N=3 일 경우를 예시로 도시하였다.)Each robot included in the modeled N robot set must move from a start position s1 to sN to a target position d1 to dN. (Figure 1 illustrates the case where N = 3 as an example.)

예를 들어, 복수개의 로봇 중 제1 로봇은 현재위치 s1에서 목표위치 d1으로 이동하고, 제2 로봇은 현재위치 s2에서 목표위치 d2로 이동하고, 제3 로봇은 현재위치 s3에서 목표위치 d3으로 이동하여야 한다. 2차원 그리드 상에는 장애물(201)도 존재할 수 있다.For example, among multiple robots, the first robot must move from the current position s1 to the target position d1, the second robot must move from the current position s2 to the target position d2, and the third robot must move from the current position s3 to the target position d3. An obstacle (201) may also exist on the two-dimensional grid.

본 개시의 실시 예에 따르면, 임의의 시간 t에서, N 로봇 세트에 포함된 로봇 각각의 위치를 pi(t)로 표시하는 경우 로봇의 위치 좌표는 pi(t) = (xi(t), yi(t))로 표현될 수 있으며, 시간 t 에서 로봇은 동일한 위치에 머물거나 4개의 인접한 사각형 중 하나로 이동하므로 pi(t + 1) - pi(t) ∈ {(0, 0), (1, 0), (0,-1), (0, 1) , (1, 0)}로 표현될 수 있다. 이는 도 2에서 즉, 복수개의 로봇 각각은 2차원 그리드 상에서 시간의 흐름에 따라 제자리에 위치하거나, 상,하,좌,우 방향으로 이동할 수 있다.According to an embodiment of the present disclosure, if the position of each robot included in a set of N robots is denoted as pi(t) at any time t, the position coordinates of the robots can be expressed as pi(t) = (xi(t), yi(t)), and since the robots at time t either stay at the same position or move to one of the four adjacent squares, it can be expressed as pi(t + 1) - pi(t) ∈ {(0, 0), (1, 0), (0,-1), (0, 1) , (1, 0)}. That is, in FIG. 2, each of the plurality of robots can stay in place or move in the up, down, left, and right directions over time on a two-dimensional grid.

도 2를 참고하면, 데이터 그리드(20) 상에 WxWxW 크기의 공간좌표가 존재하며, 데이터 그리드(20)는 위치(x,y) 및 시간(t)의 흐름에 따라 경로를 저장할 수 있다. Referring to Fig. 2, a spatial coordinate of size WxWxW exists on the data grid (20), and the data grid (20) can store a path according to the flow of position (x, y) and time (t).

예를 들어, 도 2는 두개의 로봇이 특정시간 t(i)(21)에서 t(i+1)(22)로 이동한 뒤에 t(i+1)에 머무르는 경우를 나타낸다. 도 2를 참고하면, t(i)에서 제1 로봇은 y좌표 양의 방향으로 1만큼 이동하여 t(i+1)일 때 위치에 도달하게 되므로 '4'의 값으로 매핑되고, 다른 로봇은 x좌표 양의 방향으로 1만큼 이동하므로 t(i+1)일 때 위치에 도달하게 되므로 '1'으로 매핑될 수 있다.For example, Fig. 2 shows a case where two robots move from a specific time t(i)(21) to t(i+1)(22) and then stay at t(i+1). Referring to Fig. 2, at t(i), the first robot moves 1 in the positive y-coordinate direction and reaches the position at t(i+1), so it is mapped to the value of '4', and the other robot moves 1 in the positive x-coordinate direction and reaches the position at t(i+1), so it can be mapped to '1'.

그리고 해당 경로 데이터는 시간(t)의 흐름에 따라 저장될 수 있다. 이후 임의의 로봇의 경로를 '삽입' 또는 '삭제'하는 경우, 상기 임의의 로봇의 데이터구조 상에 업데이트 될 수 있다.And the corresponding path data can be stored according to the flow of time (t). Afterwards, when the path of any robot is 'inserted' or 'deleted', it can be updated on the data structure of said arbitrary robot.

이하, 앞서 설명한 이동 방식을 통한 로봇의 경로 탐색 방법을 구체적으로 설명하도록 한다.Below, we will specifically explain the path search method of the robot using the movement method described above.

도 3은 본 개시의 실시 예에 따른 로봇의 경로 탐색 방법을 나타낸 순서도이다.FIG. 3 is a flowchart illustrating a path search method of a robot according to an embodiment of the present disclosure.

도 3을 참고하면, 본 발명의 일 실시 예에 따른 복수개의 로봇의 경로탐색 방법에 있어서, 복수개의 로봇 각각이 특정지점을 통과하여 목표위치로 이동하는 가상의 경로를 탐색하는 단계를 포함할 수 있다(S201).Referring to FIG. 3, in a method for searching for a path of a plurality of robots according to an embodiment of the present invention, a step of searching for a virtual path in which each of the plurality of robots passes through a specific point and moves to a target location may be included (S201).

복수개의 로봇 각각은 서로 다른 위치에 존재하며, 로봇 각각의 위치는 현재위치(s1,s2,s3)로 정의될 수 있다. 복수개의 로봇 각각은 2차원 그리드 상의 서로 다른 목표위치(d1,d2,d3)를 향해 이동하게 되며, 2차원 그리드 상에서 시간의 흐름에 따라 이동할 수 있다.Each of the multiple robots exists at a different location, and the location of each robot can be defined as the current location (s1, s2, s3). Each of the multiple robots moves toward a different target location (d1, d2, d3) on a two-dimensional grid, and can move over time on the two-dimensional grid.

상기 시간의 흐름에 따라 이동한 좌표는 도 2에 나타난 바와 같이 데이터 구조에 저장됨으로써 경로가 생성될 수 있다.The coordinates that have moved over the above time flow can be stored in a data structure as shown in Fig. 2, thereby generating a path.

구체적으로 본 개시의 실시 예에 따른 로봇의 경로탐색 방법은 복수개의 로봇 각각이 특정지점을 통과하여 목표위치로 이동할 수 있다.Specifically, a path search method of a robot according to an embodiment of the present disclosure allows each of a plurality of robots to pass through a specific point and move to a target location.

도 1을 참조하면, 복수개의 로봇 각각이 미리 정해진 바운더리(B, 10) 외부의 특정지점(102)을 통과하여 목표위치로 경로를 탐색할 수 있다. Referring to Fig. 1, each of a plurality of robots can search a path to a target location by passing through a specific point (102) outside a pre-determined boundary (B, 10).

이는 곧바로 시작위치(sN)에서 목표위치(dN)으로 이동할 경우, 복수개의 로봇 각각이 경로를 방해하는 경우가 발생하며, 복수개의 로봇 및 장애물간의 경로 방해가 발생할 수 있기 때문이다.This is because when moving directly from the starting position (sN) to the target position (dN), there are cases where multiple robots each interfere with the path, and path interference may occur between multiple robots and obstacles.

이때, 특정지점(102)은 상기 복수개의 로봇 각각의 현재위치 및 목표위치를 포함하는 바운딩 박스 외부의 중간지점을 포함할 수 있다. At this time, the specific point (102) may include an intermediate point outside a bounding box including the current location and target location of each of the plurality of robots.

더욱 구체적으로 복수개의 로봇 각각은 서로 다른 중간지점을 거쳐 목표위치로 이동할 수 있으며 중간지점은 로봇의 경로를 탐색하는 2차원 그리드 상에서 현재위치에서 중간지점까지의 거리 및 중간지점에서 목표지점까지의 거리의 합이 최소가 되는 지점일 수 있다.More specifically, each of the plurality of robots can move to a target location via different intermediate points, and the intermediate points can be points on a two-dimensional grid that searches the paths of the robots where the sum of the distances from the current location to the intermediate point and the distances from the intermediate point to the target point is minimized.

본 개시의 실시 예에 따른 경로 탐색 방법은 상기 데이터 구조에 경로를 '삽입' 또는 '삭제'함으로써 이루어 질 수 있다.A path search method according to an embodiment of the present disclosure can be achieved by 'inserting' or 'deleting' a path in the data structure.

이때, '삽입'은 'Insertion'에 해당하고, 2차원 그리드 상에 존재하는 복수개의 로봇 각각의 현재위치에서 목표지점까지 로봇이 이동가능한 모든 지점을 표시하여 최단거리를 찾는 방법을 의미할 수 있다.At this time, 'insertion' corresponds to 'Insertion', and can mean a method of finding the shortest distance by displaying all points that the robot can move from the current location of each of multiple robots existing on a two-dimensional grid to the target point.

예를 들어, '삽입'은 (1) 로봇이 적어도 하나 이상의 이동가능한 방향을 결정하고 상기 이동가능한 방향으로 이동하는 단계 및 (2) 상기 로봇이 적어도 하나 이상의 이동가능한 방향을 결정하고 상기 이동가능한 방향으로 이동하는 동작을 상기 특정지점에 도달할 때 까지 반복 수행하여, 경로를 도출하는 단계를 포함할 수 있다.For example, 'insertion' may include (1) a step of determining at least one movable direction of the robot and moving in the movable direction, and (2) a step of deriving a path by repeatedly performing the operation of determining at least one movable direction of the robot and moving in the movable direction until the robot reaches the specific point.

또한 '삭제'는 'deletion'에 해당하고, '삽입'과정을 통하여 생성된2차원 그리드 상에 존재하는 복수개의 로봇 각각의 경로를 데이터 구조에서 삭제하는 방법을 의미할 수 있다.In addition, 'delete' corresponds to 'deletion' and can mean a method of deleting the paths of each of multiple robots existing on a two-dimensional grid created through the 'insert' process from the data structure.

예를 들어, 도 4를 참조하면, 로봇은 현재위치(31)에서 목표위치(33)까지이동하고자 한다. 설명의 편의를 위하여, 로봇의 이동 경로를 상하좌우 '4','3','2','1' 로 각각 나타내고 현재위치를 유지하는 경우를 '5'로 나타내었다. 이때, t1의 시간에서 로봇이 이동가능한 모든지점을 나타내는 t2와 같다. t2에 나타난 위치(14,12,13)는 t1의 시간에 존재하는 로봇이 이동가능한 후보지를 나타내는 것이다. 또한 t3에 나타난 위치는 t2의 시간에 존재하는 로봇이 이동 가능한 후보지를 나타낸 것이다.For example, referring to Fig. 4, the robot wants to move from the current location (31) to the target location (33). For convenience of explanation, the movement path of the robot is represented as '4', '3', '2', and '1' in the up, down, left, and right directions, respectively, and the case of maintaining the current location is represented as '5'. At this time, it is the same as t2, which represents all points to which the robot can move at time t1. The locations (14, 12, 13) shown at t2 represent candidate locations to which the robot existing at time t1 can move. In addition, the location shown at t3 represents candidate locations to which the robot existing at time t2 can move.

상기 로봇은 삽입(Insertion)을 통하여 목표지점(33)에 도달한 뒤에, backward로 시작지점(31)까지 돌아가면서 해당 위치에 남는 방향정보를 저장할 수 있다. 예를 들어 상기 방향정보는 t1 내지 t3의 시간의 흐름에 따라 '4-1-5'일 수 있다.The above robot can store the remaining direction information at the corresponding location after reaching the target point (33) through insertion and returning backward to the starting point (31). For example, the direction information can be '4-1-5' according to the time flow from t1 to t3.

즉, 삽입(Insertion)으로 최종적으로 데이터 그리드(Grid)에 저장되는 방향은 현재 위치에서 다음 위치로 도달하는 방향을 나타낼 수 있다.t1 시간에서는 북쪽으로 움직여서 t2 시간 위치에 도달하기 때문에 t1에는 4가 저장될 수 있다. t3 시간에서는 이미 목표지점에 도달했기 때문에 다음 위치는 제자리가 됩니다. 따라서 5가 저장될 수 있다.That is, the direction that is ultimately stored in the data grid through insertion can represent the direction from the current location to the next location. At time t1, it moves north and reaches the location at time t2, so 4 can be stored at t1. At time t3, it has already reached the target point, so the next location will be the same. Therefore, 5 can be stored.

위와 같이, 본 개시의 실시예에 따르면 로봇의 경로탐색 방법은 로봇이 이동가능한 모든 지점을 표시하고 난 이후, 표시된 모든 지점에서 다음지점으로 이동가능한 모든 지점을 표시할 수 있다. 상기 과정을 반복하여 로봇이 현재위치에서 목표위치로 도달한 경우, 해당 경로 중 최단 경로를 데이터 구조에 저장할 수 있다.As described above, according to the embodiment of the present disclosure, the path search method of the robot can display all points to which the robot can move, and then display all points to which the robot can move from all the displayed points to the next point. If the robot reaches the target position from the current position by repeating the above process, the shortest path among the paths can be stored in the data structure.

본 개시의 실시 예에 따른, 상기 복수개의 로봇 각각이 특정지점을 통과하여 상기 목표위치로 이동하는 가상의 경로를 탐색하는 단계는, (1) 상기 로봇이 적어도 하나 이상의 이동가능한 방향을 결정하고 상기 이동가능한 방향으로 이동하는 단계, (2) 상기 (1)을 상기 특정지점에 도달할 때 까지 반복하여, 적어도 하나 이상의 제1 경로를 도출하는 단계, (3) 상기 로봇이 상기 특정지점에 도달하면, 상기 (1)을 목표위치에 도달할 때 까지 반복하여, 적어도 하나 이상의 제2 경로를 도출하는 단계 및 (4) 상기 로봇이 상기 목표위치에 도달한 경우, 상기 제1 경로 및 상기 제2 경로의 합 중 최소가 되는 경로를 상기 로봇의 경로로 결정하는 단계를 포함할 수 있다. In an embodiment of the present disclosure, the step of searching a virtual path along which each of the plurality of robots passes through a specific point and moves to the target position may include: (1) the step of determining at least one movable direction of the robot and moving in the movable direction, (2) the step of deriving at least one first path by repeating (1) until the robot reaches the specific point, (3) the step of deriving at least one second path by repeating (1) until the robot reaches the target position, and (4) the step of determining, when the robot reaches the target position, a path that is the minimum of the sum of the first path and the second path as the path of the robot.

즉, 복수개의 로봇 각각의 현재위치에서 중간지점까지 삽입(Insertion)을 수행하여 제1 경로를 도출하고, 중간지점에서 목표위치까지 삽입(Insertion)을 수행하여 제2 경로를 도출하여, 상기 제1 경로 및 제2 경로의 합이 최소가 되는 것을 가상의 경로로 결정할 수 있다.That is, a first path can be derived by performing insertion from the current position of each of multiple robots to an intermediate point, and a second path can be derived by performing insertion from the intermediate point to a target position, so that the virtual path that minimizes the sum of the first path and the second path can be determined.

한편, 상기 제1 경로 및 제1 경로를 도출하는 과정에서 복수개의 로봇 각각이 시간의 흐름에 따라 동시에 이동하여야 하는데, 이때, 특정 로봇이 다른 로봇에 의해 이동가능한 경로가 차단될 수 있으므로 적절한 순서로 로봇을 이동해야 하는 필요성이 존재하였다.Meanwhile, in the process of deriving the first path and the first path, each of a plurality of robots must move simultaneously over time. At this time, since the path that a specific robot can move may be blocked by another robot, there was a need to move the robots in an appropriate order.

본 개시의 실시 예에 따르면, 상기 복수개의 로봇 각각이 특정지점을 통과하여 상기 목표위치로 이동하는 가상의 경로를 탐색하는 단계는, 상기 복수개의 로봇 각각의 경로탐색 순서를 결정하는 단계를 포함하고, 상기 순서는 상기 복수개의 로봇 각각의 현재위치로부터, 상기 복수개의 로봇 각각의 현재위치 및 목표위치를 포함하는 바운딩 박스 외부의 임의의 지점의 경로거리에 기초하여 결정되는 경로 탐색 방법을 포함할 수 있다.According to an embodiment of the present disclosure, the step of searching a virtual path along which each of the plurality of robots passes through a specific point and moves to the target position may include a step of determining a path search order of each of the plurality of robots, and the order may include a path search method in which the path distance is determined based on a path distance from a current position of each of the plurality of robots to an arbitrary point outside a bounding box including the current position and the target position of each of the plurality of robots.

구체적으로, 본 발명은 로봇의 지오데식 거리(geodesic distance)를 이용하여 복수개의 로봇의 이동 순서를 결정하고, 상기 순서대로 '삽입'을 수행할 수 있다. 상기 과정을 통하여 현재위치(si)에서 중간지점(mi)까지의 실행 가능한 경로가 항상 있음을 보장할 수 있다.Specifically, the present invention can determine the movement order of multiple robots by using the geodesic distance of the robots, and perform 'insertion' in the said order. Through the said process, it can be guaranteed that there is always a feasible path from the current location (si) to the intermediate point (mi).

그리고 도 5를 참고하면, 바운딩 박스 외부의 임의의 지점(o,51)에서 목표 지점(di)까지의 지오데식 거리에 기초하여 로봇의 이동순서를 결정하고 상기 순서대로 '삽입'을 수행할 수 있다. 이를 통해 복수개의 로봇 각각의 실행가능한 경로 솔루션을 찾을 수 있다.And referring to Fig. 5, the movement order of the robots can be determined based on the geodesic distance from an arbitrary point (o,51) outside the bounding box to the target point (di), and 'insertion' can be performed in the above order. Through this, a feasible path solution for each of multiple robots can be found.

이하 가상의 경로를 최적화하는 방법을 설명한다.Below we describe how to optimize a virtual path.

다시 도 3을 참고하면, 본 개시의 실시 예에 따른 경로탐색 방법은, 상기 복수개의 로봇 중 특정로봇에 대한 경로를 삭제(Deletion)하고, 상기 특정로봇이 현재위치에서 상기 목표위치로 이동하는 경로를 재탐색하는 단계를 포함할 수 있다(S203).Referring again to FIG. 3, the path search method according to an embodiment of the present disclosure may include a step of deleting a path for a specific robot among the plurality of robots and re-searching a path for the specific robot to move from the current location to the target location (S203).

앞서 설명한 바와 같이, 본 개시의 실시 예에 따른 경로 탐색 방법은 상기 데이터 구조에 경로를 '삽입' 또는 '삭제'함으로써 이루어 질 수 있다.As described above, the path search method according to an embodiment of the present disclosure can be accomplished by 'inserting' or 'deleting' a path into the data structure.

구체적으로 복수개의 로봇 각각이 특정지점을 통과하여 목표위치로 이동하는 가상의 경로를 탐색하고 난 이후, 로봇의 최적 경로를 도출하기 위하여 아래의 과정이 수행될 수 있다.Specifically, after each of a plurality of robots searches for a virtual path through a specific point and moves to a target location, the following process can be performed to derive an optimal path for the robots.

본 개시의 실시 예에 따르면, 복수개의 로봇 각각이 특정지점을 통과하여 상기 목표위치로 이동하는 가상의 경로를 탐색하는 단계는, 상기 로봇이 특정시간에 적어도 하나 이상의 이동가능한 방향을 결정하고 상기 이동가능한 방향으로 이동하는 단계, 상기 이동가능한 방향을 결정하고 이동하는 단계를 반복하여, 상기 목표위치에 도달할 때까지 적어도 하나 이상의 경로를 도출하는 단계 및 상기 로봇이 상기 목표위치에 도달한 경우, 도출된 경로 중 길이가 최소가 되는 경로를 상기 로봇의 경로로 결정하는 단계를 포함할 수 있다.According to an embodiment of the present disclosure, the step of searching a virtual path along which each of a plurality of robots passes through a specific point and moves to the target location may include the step of determining at least one movable direction for the robot at a specific time and moving in the movable direction, the step of deriving at least one path by repeating the steps of determining the movable direction and moving until the target location is reached, and the step of determining a path with a minimum length among the derived paths as the path of the robot when the robot reaches the target location.

또한, 상기 복수개의 로봇 각각의 이동가능한 방향은 2차원 그리드 상의 상,하,좌,우 및 제자리를 포함할 수 있다.Additionally, the movable direction of each of the plurality of robots may include up, down, left, right, and in place on a two-dimensional grid.

이때, 로봇이 이동가능한 방향은 로봇과 로봇, 로봇과 장애물간의 경로방해가 없는 경우를 의미할 수 있다.At this time, the direction in which the robot can move may mean a case in which there is no path obstruction between robots or between robots and obstacles.

상기 과정은 복수개의 로봇 각각에 대하여 '삽입' 및 '삭제'가 반복되는 로컬 서치(Local Search)에 해당하며 경로 축약(tighten) 과정일 수 있다.The above process corresponds to a local search in which ‘insertion’ and ‘deletion’ are repeated for each of multiple robots, and may be a path tightening process.

본 개시의 실시 예에 따른 경로축약(tighten)과정은 복수개의 로봇 각각의 시작 위치에서 목표위치까지 이미 경로가 구해진 이후 수행될 수 있으며, 복수개의 로봇 각각이 현재 위치에서 미리 정해진 목표위치까지 도달할 때까지 반복적으로 수행될 수 있다.The path tightening process according to an embodiment of the present disclosure may be performed after a path has already been obtained from a start position of each of a plurality of robots to a target position, and may be repeatedly performed until each of the plurality of robots reaches a predetermined target position from its current position.

상기 과정은 복수개의 로봇 각각 반복적으로 수행될 수 있으며 이를 통해 최적화된 경로를 도출할 수 있다. 로봇이 더 이상 중간 지점을 통과할 필요가 없으므로 솔루션의 품질이 향상될 수 있다.The above process can be repeated for each of multiple robots to derive an optimized path. The quality of the solution can be improved because the robots no longer need to pass through intermediate points.

한편, 로컬서치를 사용하는 경우 더 이상 경로가 업데이트 되지 않는 로컬미니멈이 발생하는 경우가 존재하였으며, 이에 따라 시뮬레이티드 어닐링을 통하여 로컬 검색의 한계를 극복하고자 하였다.Meanwhile, when using local search, there were cases where a local minimum occurred where the path was no longer updated, and accordingly, we attempted to overcome the limitations of local search through simulated annealing.

본 개시의 실시 예에 따르면, 상기 복수개의 로봇 중 특정로봇에 대한 경로를 삭제하고, 상기 특정로봇이 현재위치에서 상기 목표위치로 이동하는 경로를 재탐색하는 단계는, 상기 특정로봇의 가상의 경로 중 제1 시간 및 제2 시간 사이의 경로를 삭제하는 단계, 상기 제1 시간 및 제2 시간 사이의 제3 시간에서 상기 특정로봇이 위치할 수 있는 후보위치를 추출하는 단계 및 상기 특정로봇의 제1 시간 위치에서 상기 후보위치까지 경로와 상기 후보위치에서 제2 시간 위치까지의 경로의 최단거리를 탐색하는 단계를 포함할 수 있다. According to an embodiment of the present disclosure, the step of deleting a path for a specific robot among the plurality of robots and re-searching a path for the specific robot to move from a current location to the target location may include the step of deleting a path between a first time and a second time among virtual paths of the specific robot, the step of extracting a candidate location at which the specific robot may be located at a third time between the first time and the second time, and the step of searching for a shortest distance between a path from the first time location of the specific robot to the candidate location and a path from the candidate location to the second time location.

상기 단계는 경로 스트레치(stretch) 단계일 수 있다. 상기 경로 스트레치를 통하여 경로를 의도적으로 늘려줌으로써 경로 축약에서 로컬 미니멈에 갇히는 문제를 해결할 수 있다. The above step may be a path stretching step. By intentionally lengthening the path through the above path stretching, the problem of being trapped in a local minimum in path contraction can be solved.

도 6은 본 개시의 실시 예에 따른 시뮬레이티드 어닐링에 기초한 경로 탐색 과정을 예시로 나타낸 것이다. FIG. 6 illustrates an example of a path search process based on simulated annealing according to an embodiment of the present disclosure.

구체적으로 본 개시의 실시 예에 따르면, 상기 언급한 로컬 미니멈에서 빠져나오기 위해서 시뮬레이티드 어닐링 방법에서는 의도적으로 최적화되지 않은 경로(worse solution)를 생성하고, 이를 확률적으로 반영(accept)할 수 있다.Specifically, according to an embodiment of the present disclosure, in order to escape from the above-mentioned local minimum, the simulated annealing method can intentionally generate a non-optimal path (worse solution) and probabilistically reflect it (accept it).

이때, 경로 스트레치(stretch)를 이용하여 최적화되지 않은 경로(worse solution)을 생성할 수 있다At this time, a path stretch can be used to generate a non-optimized path (worse solution).

도 6을 참고하면, 경로축약과 경로 스트레치 두 가지를 각각 (61)에서 적용했을 때 어떤 경로가 도출되는지 설명하기 위한 예시를 나타낸다. 즉 데이터 구조상에 저장된 가상의 생성된 경로(61)에서 경로축약(tighten)을 사용하면 지금보다 더 좋은 최적화된 경로(62)를 도출할 수 있으며, 경로 스트레치(stretch)를 사용하여 의도적으로 최적화되지 않은 경로(64)를 도출 할 수 있다. Referring to Fig. 6, an example is shown to explain which path is derived when path tightening and path stretching are applied respectively to (61). That is, if path tightening is used in a virtual generated path (61) stored in a data structure, a better optimized path (62) can be derived than the current one, and if path stretching is used, a path (64) that is intentionally not optimized can be derived.

구체적으로 경로 스트레치를 통하여 경로를 의도적으로 최적화되지 않은 경로(64)를 도출하는 과정을 설명한다.Specifically, the process of deriving a path (64) that is intentionally not optimized through path stretching is described.

도 6의 63은 경로 스트레치 과정을 나타낸 것이다. 본 개시의 실시 예에 따른 경로탐색 방법은 제1 시간(t1)와 제2 시간(t2) 사이의 특정 로봇 i의 경로를 삭제할 수 있다. pi(tm)은 t1과 t2 사이에서 무작위로 선택된 특정 시간에서 존재할 수 있는 로봇 i의 위치에 해당할 수 있다. 로봇 i는 pi(t1)에서 도달할 수 있고 pi(t2)에서 도달할 수 있는 데이터구조(G)의 모든 후보위치(x, y, tm)을 계산할 수 있다.63 of Fig. 6 illustrates a path stretching process. The path search method according to an embodiment of the present disclosure can delete the path of a specific robot i between a first time (t1) and a second time (t2). pi(tm) may correspond to a position of robot i that may exist at a specific time randomly selected between t1 and t2. Robot i can calculate all candidate positions (x, y, tm) of the data structure (G) that can be reached from pi(t1) and can be reached from pi(t2).

즉, 상기 경로 탐색 방법은 pi(tm)은 pi(t1)에서 도달할 수 있고 pi(t2)에서 도달할 수 있는 데이터구조(G)의 모든 후보위치(x, y, tm) 중 어느 하나를 이용하여, pi(t1)에서 도달할 수 있고 pi(t2)에서 도달할 수 있는 데이터구조(G)의 모든 후보위치(x, y, tm)를 계산할 수 있다.That is, the above path search method can calculate all candidate locations (x, y, tm) of the data structure (G) that can be reached from pi(t1) and can be reached from pi(t2) by using any one of all candidate locations (x, y, tm) of the data structure (G) that can be reached from pi(t1) and can be reached from pi(t2).

본 개시의 실시 예에 따라 상기 후보위치 중 하나를 무작위로 추출할 수 있다. 이후, 동일한 방식으로 '삽입'을 통하여 계산된 최단 경로를 통해 pi(tm)을 pi(t1) 및 pi(t2)에 연결하는 방식을 통하여 최단경로를 도출할 수 있다.According to an embodiment of the present disclosure, one of the candidate locations can be randomly extracted. After that, the shortest path can be derived by connecting pi(tm) to pi(t1) and pi(t2) through the shortest path calculated through 'insertion' in the same manner.

상기 예시는 복수개의 로봇 중 특정 로봇 i를 예시로 설명한 것이며, 상기 최단경로 도출 방법은 복수개의 로봇 각각에 적용될 수 있을 것이다. The above example illustrates a specific robot i among multiple robots, and the above method for deriving the shortest path can be applied to each of the multiple robots.

또한 상기 과정은 시뮬레이티드 어닐링(Simulated Annealing)일 수 있다.Additionally, the above process may be a simulated annealing.

즉, 시뮬레이티드 어닐링은 상기 로컬 탐색에 따른 과적합 상태가 발생하는 것을 방지하기 위하여 의도적으로 최적의 경로가 아닌 로봇의 경로를 반영하는 모델을 의미할 수 있다.That is, simulated annealing may mean a model that intentionally reflects a robot's path that is not an optimal path in order to prevent overfitting from occurring due to the local search.

구체적으로 최적의 경로가 아닌 로봇의 경로를 반영하는 비율(accept 비율)을 설정할 수 있다. Specifically, you can set a rate (accept rate) that reflects the robot's path rather than the optimal path.

본 개시의 실시예에 따른 최적화 경로 탐색 방법 여러 번 반복하여 수행될 수 있다. 이때, 시뮬레이티드 어닐링이 여러 번 수행될 때 마다 최적의 경로가 아닌 로봇의 경로를 반영하는 비율은 이전 과정보다 작은 값을 가질 수 있다. 이를 통하여 오차 범위를 줄여나갈 수 있다. The method for searching for an optimized path according to an embodiment of the present disclosure may be performed repeatedly multiple times. At this time, each time the simulated annealing is performed multiple times, the ratio reflecting the path of the robot that is not the optimal path may have a smaller value than the previous process. Through this, the error range can be reduced.

상기 방법을 통하여 로봇이 더 이상 중간 지점을 통과할 필요가 없으므로 솔루션의 품질이 향상될 수 있을 것이다.The above method may improve the quality of the solution since the robot no longer needs to pass through intermediate points.

다시 도 3을 설명한다. Let's explain Figure 3 again.

본 개시의 실시 예에 따른 경로탐색 방법은, 상기 재탐색된 경로를 이용하여 상기 특정로봇에 대한 경로를 업데이트 하는 단계(S205) 및 업데이트된 경로를 이용하여 상기 복수개의 로봇의 경로를 결정하는 단계(S207)를 포함할 수 있다. A path search method according to an embodiment of the present disclosure may include a step (S205) of updating a path for the specific robot using the re-searched path and a step (S207) of determining paths for the plurality of robots using the updated path.

구체적으로 S203을 통하여 재탐색된 경로를 도 2의 데이터 구조에 업데이트 할 수 있다. 또한, 상기 복수개의 로봇 각각에 대한 업데이트된 경로를 이용하여 상기 복수개의 로봇의 경로를 결정하는 단계는, 상기 복수개의 로봇 각각의 경로 길이의 합 또는 경로 탐색시간이 최소인 경우를 최종경로로 선택할 수 있다.Specifically, the re-searched path through S203 can be updated in the data structure of Fig. 2. In addition, the step of determining the path of the plurality of robots using the updated path for each of the plurality of robots can select the path with the minimum sum of the path lengths of each of the plurality of robots or the path search time as the final path.

본 개시의 기술 분야에서 통상의 지식을 가진 자는 여기에 개시된 실시예들과 관련하여 설명된 다양한 예시적인 논리 블록들, 모듈들, 프로세서들, 수단들, 회로들 및 알고리즘 단계들이 전자 하드웨어, (편의를 위해, 여기에서 소프트웨어로 지칭되는) 다양한 형태들의 프로그램 또는 설계 코드 또는 이들 모두의 결합에 의해 구현될 수 있다는 것을 이해할 것이다.Those skilled in the art will appreciate that the various illustrative logical blocks, modules, processors, means, circuits, and algorithm steps described in connection with the embodiments disclosed herein may be implemented as electronic hardware, various forms of programs or design code (for convenience, referred to herein as software), or a combination of both.

전술한 본 발명은, 프로그램이 기록된 매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 매체는, 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 매체의 예로는, HDD(Hard Disk Drive), SSD(Solid State Disk), SDD(Silicon Disk Drive), ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장 장치 등이 있다.The above-described present invention can be implemented as a computer-readable code on a medium in which a program is recorded. The computer-readable medium includes all kinds of recording devices that store data that can be read by a computer system. Examples of the computer-readable medium include a hard disk drive (HDD), a solid state disk (SSD), a silicon disk drive (SDD), a ROM, a RAM, a CD-ROM, a magnetic tape, a floppy disk, an optical data storage device, etc.

Claims (13)

복수개의 로봇 각각이 상기 복수개의 로봇 각각의 현재위치 및 목표위치를 포함하는 바운딩 박스 외부의 중간지점을 포함하는 특정지점을 통과하여 목표위치로 이동하는 가상의 경로를 탐색하는 단계;
상기 복수개의 로봇 중 제1 시간과 제2 시간 사이에서 무작위로 선택된 특정 시간에서 존재할 수 있는 로봇인 특정로봇에 대한 상기 가상의 경로를 삭제하고, 상기 특정로봇이 현재위치에서 상기 목표위치로 이동하는 경로를 재탐색하는 단계;
상기 재탐색된 경로를 이용하여 상기 특정로봇에 대한 경로를 업데이트 하는 단계 및
업데이트된 경로를 이용하여 상기 복수개의 로봇의 경로를 결정하는 단계를 포함하는,
경로탐색 방법.
A step of searching for a virtual path in which each of a plurality of robots moves to a target position by passing through a specific point including an intermediate point outside a bounding box including the current position and target position of each of the plurality of robots;
A step of deleting the virtual path for a specific robot, which is a robot that can exist at a specific time randomly selected between a first time and a second time among the plurality of robots, and re-searching the path for the specific robot to move from the current location to the target location;
A step of updating the path for the specific robot using the above re-searched path, and
comprising a step of determining the path of said plurality of robots using the updated path;
Path finding method.
제 1항에 있어서,
상기 로봇의 경로 탐색 방법은 2차원 좌표 그리드상에서 이루어지는,
경로탐색 방법.
In paragraph 1,
The above robot's path search method is performed on a two-dimensional coordinate grid.
Path finding method.
삭제delete 제 1항에 있어서,
상기 복수개의 로봇 각각이 특정지점을 통과하여 상기 목표위치로 이동하는 가상의 경로를 탐색하는 단계는,
(1) 상기 로봇이 적어도 하나 이상의 이동가능한 방향을 결정하고 상기 이동가능한 방향으로 이동하는 단계;
(2) 상기 (1)을 상기 특정지점에 도달할 때 까지 반복하여, 적어도 하나 이상의 제1 경로를 도출하는 단계;
(3) 상기 로봇이 상기 특정지점에 도달하면, 상기 (1)을 목표위치에 도달할 때 까지 반복하여, 적어도 하나 이상의 제2 경로를 도출하는 단계 및
(4) 상기 로봇이 상기 목표위치에 도달한 경우, 상기 제1 경로 및 상기 제2 경로의 합 중 최소가 되는 경로를 상기 로봇의 경로로 결정하는 단계를 포함하는,
경로 탐색 방법.
In paragraph 1,
The step of searching for a virtual path through which each of the above multiple robots passes a specific point and moves to the target location is as follows:
(1) a step in which the robot determines at least one movable direction and moves in the movable direction;
(2) a step of deriving at least one first path by repeating the above (1) until reaching the specific point;
(3) When the robot reaches the specific point, the step of repeating (1) until reaching the target position to derive at least one second path; and
(4) a step of determining, when the robot reaches the target position, the path that is the minimum of the sum of the first path and the second path as the path of the robot;
How to find a path.
제 1항에 있어서,
상기 특정로봇이 현재위치에서 상기 목표위치로 이동하는 경로를 재탐색하는 단계는
(1) 상기 로봇이 적어도 하나 이상의 이동가능한 방향을 결정하고 상기 이동가능한 방향으로 이동하는 단계;
(2) 상기 (1)을 반복하여, 상기 목표위치에 도달할 때까지 적어도 하나 이상의 경로를 도출하는 단계 및
(3) 상기 로봇이 상기 목표위치에 도달한 경우, 도출된 경로 중 길이가 최소가 되는 경로를 상기 로봇의 경로로 결정하는 단계를 포함하는,
경로 탐색 방법.
In paragraph 1,
The step of re-searching the path for the above specific robot to move from the current location to the target location is
(1) a step in which the robot determines at least one movable direction and moves in the movable direction;
(2) a step of deriving at least one path by repeating the above (1) until reaching the target location; and
(3) a step of determining a path with the minimum length among the derived paths as the path of the robot when the robot reaches the target position;
How to find a path.
제 4항 또는 제5항에 있어서,
상기 이동가능한 방향은 2차원 그리드 상의 상,하,좌,우 및 제자리를 포함하는,
경로 탐색 방법.
In paragraph 4 or 5,
The above movable directions include up, down, left, right and in place on a two-dimensional grid.
How to find a path.
제 1항에 있어서,
상기 복수개의 로봇 각각이 특정지점을 통과하여 상기 목표위치로 이동하는 가상의 경로를 탐색하는 단계는,
상기 복수개의 로봇 각각의 경로탐색 순서를 결정하는 단계를 포함하고,
상기 순서는 상기 복수개의 로봇 각각의 현재위치로부터, 상기 복수개의 로봇 각각의 현재위치 및 목표위치를 포함하는 바운딩 박스 외부의 임의의 지점의 경로거리에 기초하여 결정되는,
경로 탐색 방법.
In paragraph 1,
The step of searching for a virtual path through which each of the above multiple robots passes a specific point and moves to the target location is as follows:
Comprising a step of determining the path search order of each of the plurality of robots,
The above order is determined based on the path distance from the current position of each of the plurality of robots to an arbitrary point outside the bounding box that includes the current position and target position of each of the plurality of robots.
How to find a path.
제 1항에 있어서,
상기 복수개의 로봇 중 특정로봇에 대한 상기 가상의 경로를 삭제하고, 상기 특정로봇이 현재위치에서 상기 목표위치로 이동하는 경로를 재탐색하는 단계는,
상기 특정로봇의 가상의 경로 중 제1 시간 및 제2 시간 사이의 가상의 경로를 삭제하는 단계;
상기 제1 시간 및 제2 시간 사이의 제3 시간에서 상기 특정로봇이 위치할 수 있는 후보위치를 추출하는 단계 및
상기 특정로봇의 제1 시간 위치에서 상기 후보위치까지 경로와 상기 후보위치에서 제2 시간 위치까지의 경로의 최단거리를 탐색하는 단계를 포함하는,
경로 탐색 방법.
In paragraph 1,
The step of deleting the virtual path for a specific robot among the above multiple robots and re-searching the path for the specific robot to move from the current location to the target location is as follows.
A step of deleting a virtual path between a first time and a second time among the virtual paths of the specific robot;
A step of extracting a candidate location where the specific robot can be located at a third time between the first time and the second time, and
A step of searching for the shortest distance of a path from the first time position of the specific robot to the candidate position and a path from the candidate position to the second time position,
How to find a path.
제 1항에 있어서,
상기 복수개의 로봇 각각에 대한 업데이트된 경로를 이용하여 상기 복수개의 로봇의 경로를 결정하는 단계는,
상기 복수개의 로봇 각각의 경로 길이의 합 또는 경로 탐색시간이 최소인 경우를 최종경로로 선택하는,
경로 탐색 방법.
In paragraph 1,
The step of determining the path of the plurality of robots using the updated path for each of the plurality of robots is:
The final path is selected when the sum of the path lengths of each of the above multiple robots or the path search time is minimum.
How to find a path.
컴퓨터 판독가능 매체에 저장된 컴퓨터 프로그램으로서, 상기 컴퓨터 프로그램은 하나 이상의 프로세서로 하여금 로봇의 경로탐색을 수행하게 하기 위한 명령들을 포함하며, 상기 명령들은
복수개의 로봇 각각이 상기 복수개의 로봇 각각의 현재위치 및 목표위치를 포함하는 바운딩 박스 외부의 중간지점을 포함하는 특정지점을 통과하여 목표위치로 이동하는 가상의 경로를 탐색하는 단계;
상기 복수개의 로봇 중 제1 시간과 제2 시간 사이에서 무작위로 선택된 특정 시간에서 존재할 수 있는 로봇인 특정로봇에 대한 상기 가상의 경로를 삭제하고, 상기 특정로봇이 현재위치에서 상기 목표위치로 이동하는 경로를 재탐색하는 단계;
상기 재탐색된 경로를 이용하여 상기 특정로봇에 대한 경로를 업데이트 하는 단계 및
상기 복수개의 로봇 각각에 대한 업데이트된 경로를 이용하여 상기 복수개의 로봇의 경로를 결정하는 단계를 실행시키기 위하여 컴퓨터 판독가능 매체에 저장된 컴퓨터 프로그램.
A computer program stored in a computer-readable medium, wherein the computer program includes instructions for causing one or more processors to perform path finding of a robot, the instructions comprising:
A step of searching for a virtual path in which each of a plurality of robots moves to a target position by passing through a specific point including an intermediate point outside a bounding box including the current position and target position of each of the plurality of robots;
A step of deleting the virtual path for a specific robot, which is a robot that can exist at a specific time randomly selected between a first time and a second time among the plurality of robots, and re-searching the path for the specific robot to move from the current location to the target location;
A step of updating the path for the specific robot using the above re-searched path, and
A computer program stored in a computer-readable medium for executing a step of determining a path of said plurality of robots using the updated path for each of said plurality of robots.
제 10항에 있어서,
상기 복수개의 로봇 각각이 특정지점을 통과하여 상기 목표위치로 이동하는 가상의 경로를 탐색하는 단계는,
(1) 상기 로봇이 적어도 하나 이상의 이동가능한 방향을 결정하고 상기 이동가능한 방향으로 이동하는 단계;
(2) 상기 (1)을 상기 특정지점에 도달할 때 까지 반복하여, 적어도 하나 이상의 제1 경로를 도출하는 단계;
(3) 상기 로봇이 상기 특정지점에 도달하면, 상기 (1)을 목표위치에 도달할 때 까지 반복하여, 적어도 하나 이상의 제2 경로를 도출하는 단계 및
(4) 상기 로봇이 상기 목표위치에 도달한 경우, 상기 제1 경로 및 상기 제2 경로의 합 중 최소가 되는 경로를 상기 로봇의 경로로 결정하는 단계를 포함하는,
컴퓨터 판독가능 매체에 저장된 컴퓨터 프로그램.
In Article 10,
The step of searching for a virtual path through which each of the above multiple robots passes a specific point and moves to the target location is as follows:
(1) a step in which the robot determines at least one movable direction and moves in the movable direction;
(2) a step of deriving at least one first path by repeating the above (1) until reaching the specific point;
(3) When the robot reaches the specific point, the step of repeating (1) until reaching the target position to derive at least one second path; and
(4) a step of determining, when the robot reaches the target position, the path that is the minimum of the sum of the first path and the second path as the path of the robot;
A computer program stored on a computer-readable medium.
제 10항에 있어서,
상기 특정로봇이 현재위치에서 상기 목표위치로 이동하는 경로를 재탐색하는 단계는
(1) 상기 로봇이 적어도 하나 이상의 이동가능한 방향을 결정하고 상기 이동가능한 방향으로 이동하는 단계;
(2) 상기 (1)을 반복하여, 상기 목표위치에 도달할 때까지 적어도 하나 이상의 경로를 도출하는 단계 및
(3) 상기 로봇이 상기 목표위치에 도달한 경우, 도출된 경로 중 길이가 최소가 되는 경로를 상기 로봇의 경로로 결정하는 단계를 포함하는,
컴퓨터 판독가능 매체에 저장된 컴퓨터 프로그램.
In Article 10,
The step of re-searching the path for the above specific robot to move from the current location to the target location is
(1) a step in which the robot determines at least one movable direction and moves in the movable direction;
(2) a step of deriving at least one path by repeating the above (1) until reaching the target location; and
(3) a step of determining a path with the minimum length among the derived paths as the path of the robot when the robot reaches the target position;
A computer program stored on a computer-readable medium.
제 10항에 있어서,
상기 복수개의 로봇 중 특정로봇에 대한 상기 가상의 경로를 삭제하고, 상기 특정로봇이 현재위치에서 상기 목표위치로 이동하는 경로를 재탐색하는 단계는,
상기 특정로봇의 가상의 경로 중 제1 시간 및 제2 시간의 경로를 삭제하는 단계;
상기 제1 시간 및 제2 시간 사이의 제3 시간에서 상기 특정로봇이 위치할 수 있는 후보위치를 추출하는 단계 및
상기 특정로봇의 제1 시간 위치에서 상기 후보위치까지 경로와 상기 후보위치에서 제2 시간 위치까지의 경로의 최단거리를 탐색하는 단계를 포함하는,
컴퓨터 판독가능 매체에 저장된 컴퓨터 프로그램.
In Article 10,
The step of deleting the virtual path for a specific robot among the above multiple robots and re-searching the path for the specific robot to move from the current location to the target location is as follows.
A step of deleting the first and second time paths among the virtual paths of the specific robot;
A step of extracting a candidate location where the specific robot can be located at a third time between the first time and the second time, and
A step of searching for the shortest distance of a path from the first time position of the specific robot to the candidate position and a path from the candidate position to the second time position,
A computer program stored on a computer-readable medium.
KR1020220059094A 2022-05-13 2022-05-13 Method for robot path finding KR102695353B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020220059094A KR102695353B1 (en) 2022-05-13 2022-05-13 Method for robot path finding

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220059094A KR102695353B1 (en) 2022-05-13 2022-05-13 Method for robot path finding

Publications (2)

Publication Number Publication Date
KR20230159125A KR20230159125A (en) 2023-11-21
KR102695353B1 true KR102695353B1 (en) 2024-08-13

Family

ID=88982182

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220059094A KR102695353B1 (en) 2022-05-13 2022-05-13 Method for robot path finding

Country Status (1)

Country Link
KR (1) KR102695353B1 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200338733A1 (en) * 2019-04-24 2020-10-29 X Development Llc Robot motion planning

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101105325B1 (en) * 2009-09-08 2012-01-16 부산대학교 산학협력단 Method for Path-planning for Actual Robots
WO2019194628A1 (en) * 2018-04-06 2019-10-10 엘지전자 주식회사 Mobile robot and control method for same

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200338733A1 (en) * 2019-04-24 2020-10-29 X Development Llc Robot motion planning

Also Published As

Publication number Publication date
KR20230159125A (en) 2023-11-21

Similar Documents

Publication Publication Date Title
CN111536964B (en) Robot positioning method and device, and storage medium
CN114236552B (en) Repositioning method and repositioning system based on laser radar
CN109059924B (en) Accompanying robot incremental path planning method and system based on A-x algorithm
Lu et al. Layered costmaps for context-sensitive navigation
CN109163722B (en) Humanoid robot path planning method and device
CN110943796B (en) Timestamp alignment method, timestamp alignment device, storage medium and equipment
KR20140055134A (en) Apparatus and method for planning path of robot, and the recording media storing the program for performing the said method
CN106371445A (en) Unmanned vehicle planning control method based on topology map
KR101949609B1 (en) Method and system for updating occupancy map based on super ray
CN112123343B (en) Point cloud matching method, point cloud matching equipment and storage medium
US10331819B2 (en) System, method and readable recording medium of controlling virtual model
CN114061586B (en) Method and product for generating navigation path of electronic device
US9910878B2 (en) Methods for processing within-distance queries
US20200209876A1 (en) Positioning method and apparatus with the same
CN113390417A (en) Robot and navigation method, device and computer readable storage medium thereof
JPWO2020105189A1 (en) Route planning device, route planning method, and program
KR102695353B1 (en) Method for robot path finding
US7266799B2 (en) Steiner tree handling device, Steiner tree handling method, and Steiner tree handling program
Korb et al. Exploring unstructured environment with frontier trees
JP2024502523A (en) Location method and apparatus, computer equipment, and computer readable storage medium
JP2009059028A (en) Contact analysis device, contact analysis program and recording medium recorded with contact analysis program
CN117928589A (en) Vehicle path planning method, device, equipment and storage medium
CN109799817B (en) Unmanned ship global path planning method based on light reflection characteristics
CN116402006A (en) Method for constructing complete optimal Steiner tree lookup table based on edge movement
KR20240050015A (en) Autonomous exploration method and computing apparatus for performing the method

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