KR20210007406A - 최단 경로를 산출하는 방법, 컴퓨터로 판독 가능한 저장매체 및 시스템 - Google Patents

최단 경로를 산출하는 방법, 컴퓨터로 판독 가능한 저장매체 및 시스템 Download PDF

Info

Publication number
KR20210007406A
KR20210007406A KR1020190083822A KR20190083822A KR20210007406A KR 20210007406 A KR20210007406 A KR 20210007406A KR 1020190083822 A KR1020190083822 A KR 1020190083822A KR 20190083822 A KR20190083822 A KR 20190083822A KR 20210007406 A KR20210007406 A KR 20210007406A
Authority
KR
South Korea
Prior art keywords
meshes
path
point
shortest path
shortest
Prior art date
Application number
KR1020190083822A
Other languages
English (en)
Other versions
KR102265622B1 (ko
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 KR1020190083822A priority Critical patent/KR102265622B1/ko
Publication of KR20210007406A publication Critical patent/KR20210007406A/ko
Application granted granted Critical
Publication of KR102265622B1 publication Critical patent/KR102265622B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/26Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
    • G01C21/34Route searching; Route guidance
    • G01C21/3446Details of route searching algorithms, e.g. Dijkstra, A*, arc-flags, using precalculated routes
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/20Instruments for performing navigational calculations
    • G01C21/206Instruments for performing navigational calculations specially adapted for indoor navigation
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/26Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
    • G01C21/34Route searching; Route guidance
    • G01C21/3453Special cost functions, i.e. other than distance or default speed limit of road segments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/20Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts

Landscapes

  • Engineering & Computer Science (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Architecture (AREA)
  • Algebra (AREA)
  • Computational Mathematics (AREA)
  • Computer Graphics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Computer Hardware Design (AREA)
  • Pure & Applied Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Navigation (AREA)

Abstract

2차원 또는 3차원 공간 내에서 출발점에서 도착점까지 이동하기 위한 최적 경로를 산출하는 방법이 개시된다.
일 실시예에 따른 최단 경로를 산출하는 방법은 상기 공간을 모델링한 공간 데이터를 획득하는 단계; 상기 공간 데이터 내에서, 이동 가능한 공간을 복수개의 메시들로 분할하는 단계; 상기 출발점 및 상기 도착점에 기초하여, 상기 분할된 복수개의 메시들 중에서 최단거리로 이동하기 위한 메시들을 선택하는 단계; 상기 선택된 메시들의 모서리 상의 포인트를 연결하여 최단 경로를 산출하는 단계; 및 산출된 최단 경로를 후처리하여 도출된 경로를 최적 경로로 선택하는 단계를 포함한다.
상기 후처리는 상기 공간 데이터에 기초하여, 상기 최단 경로가 상기 모델링한 공간 데이터 내의 장애물과 인접하는 경우 상기 모서리 상의 포인트들의 위치를 변경하는 것일 수 있다.

Description

최단 경로를 산출하는 방법, 컴퓨터로 판독 가능한 저장매체 및 시스템 {METHOD, COMPUTER READABLE STORAGE MEDIUM AND SYSTEM FOR CALCULATING SHORTEST PATH}
2차원 또는 3차원 공간 내에서 최단 경로를 산출하기 위한 방법, 컴퓨터로 판독 가능한 저장매체 및 시스템이 개시된다. 더 상세하게는 최단 경로를 실시간으로 제안하기 위한 최단 경로를 산출하기 위한 방법, 컴퓨터로 판독 가능한 저장매체 및 시스템이 개시된다.
실내 및 실외에서 동작하는 모빌리티들의 주행을 안내하기 위해, 주변 장애물들을 인식할 수 있는 센싱 기술이 개발되고 있으며, 길을 안내할 수 있는 알고리즘들이 다양한 형태로 상용화 되고 있다. 또한, 모빌리티들의 종류가 보다 다양해짐에 따라, 실외 뿐 아니라 실내 공간 내에서도 동작할 수 있는 휠체어, 실내용 자동차, 청소차 등 다양한 모빌리티들이 이용되고 있다.
실내 공간에서의 사용자에게 최적의 길을 제공하기 위해서는 실내 공간에서 다양한 장애물들에 방해되지 않고, 효율적으로 도착지점까지 갈 수 있는 길을 안내할 수 있어야 한다. 또한, 사용자의 위치가 실시간으로 변화함에 따라, 사용자에게 실시간으로 도착 지점까지의 최적의 길을 신속하게 안내할 수 있는 알고리즘이 요구된다.
상술한 기술적 과제를 해결하기 위해 본 발명은 최단 경로로 이동할 수 있는 방법을 실시간으로 제안하는 것을 목적으로 한다.
또한, 본 발명의 최적 경로 산출 방법을 이용하여 길을 알지 못하는 상태에서 보다 효율적으로 출발 지점에서부터 도착 지점으로 이동하는 방법을 실시간으로 계산하여 제안하는 것을 목적으로 한다.
일 실시예에 따른 2차원 또는 3차원 공간 내에서 출발점에서 도착점까지 이동하기 위한 최적의 경로를 산출하는 방법은, 상기 공간을 모델링한 공간 데이터를 획득하는 단계; 상기 공간 데이터 내에서, 이동 가능한 공간을 복수개의 메시들로 분할하는 단계; 상기 출발점 및 상기 도착점에 기초하여, 상기 분할된 복수개의 메시들 중에서 최단거리로 이동하기 위한 메시들을 선택하는 단계; 상기 선택된 메시들의 모서리 상의 포인트를 연결하여 최단 경로를 산출하는 단계; 및 산출된 이동 경로를 후처리하여 도출된 경로를 최적 경로로 선택하는 단계를 포함할 수 있다. 상기 후처리는 상기 공간 데이터에 기초하여, 상기 최단 경로가 상기 모델링한 공간 데이터 내의 장애물과 인접하는 경우 상기 모서리 상의 포인트들의 위치를 변경하는 것일 수 있다.
일 실시예에 따른 최단 경로는 실내의 이동 경로를 나타낸 것이고, 상기 선택된 메시들의 모서리 상의 포인트를 연결하여 최단 경로를 산출하는 단계는 상기 선택된 메시들의 모서리 상의 포인트를 연결하는 최단 직선거리를 찾는 단계를 포함할 수 있다.
일 실시예에 따른 선택된 메시들의 모서리 상의 포인트를 연결하여 최단 경로를 산출하는 단계는 상기 선택된 메시들에 대하여 퍼널 (funnel) 알고리즘을 적용하는 단계를 포함할 수 있다.
산출된 이동 경로를 후처리에 의해 수정하여 도출된 경로를 최종 경로로 선택하는 단계는 상기 모서리 상의 포인트들 중 상기 장애물과 인접하는 모서리 상의 제1 포인트에 대하여, 상기 제1 포인트에 인접하여 위치한 두 포인트의 외적을 구하는 단계; 및 상기 제1 포인트에 상기 외적을 더한 값을 구하는 단계를 포함할 수 있다.
상기 제1 포인트의 값에 상기 외적 값을 더한 값을 구하는 단계는, 상기 제1 포인트에 상기 외적에 k (k는 유리수)를 곱한 것을 더한 값을 구하는 단계를 포함할 수 있다.
상기 k 값은 실내에서 이동하는 퍼스널 모빌리티의 크기를 고려하여 결정되는 값일 수 있다.
상기 출발점 및 상기 도착점에 기초하여, 상기 분할된 복수개의 메시들 중에서 최단거리로 이동하기 위한 메시들을 선택하는 단계는 상기 선택된 복수개의 메시들은 상기 출발점으로부터 시작하여 방향을 선택할 때 상기 도착점과 가까워지는 방향에 따라 메시들을 선택하는 단계를 포함할 수 있다.
상기 복수개의 메시들로 분할하는 단계는 상기 복수개의 메시들의 노드와 에지를 나타내는 정보를 저장하는 단계를 포함할 수 있다.
일 실시예에 따르면, 하나 이상의 컴퓨터들에 의해 실행될 때 상기 하나 이상의 컴퓨터들로 하여금 상기 방법의 동작들을 수행하게 하는 명령어들을 저장하는 하나 이상의 컴퓨터로 판독 가능한 저장 매체가 제공될 수 있다.
일 실시예에 따르면, 하나 이상의 컴퓨터들 및 상기 하나 이상의 컴퓨터들에 의해 실행될 때 상기 하나 이상의 컴퓨터들로 하여금 상기 방법의 동작들을 수행하게 하는 명령어들을 저장하는 하나 이상의 컴퓨터로 판독 가능한 저장 매체들을 포함하는 시스템이 제공될 수 있다.
일 실시예에 따르면, 최단 경로로 이동할 수 있는 방법을 실시간으로 제안할 수 있게 된다.
일 실시예에 따르면, 최적 경로 산출 방법을 이용하여 길을 알지 못하는 상태에서 보다 효율적으로 출발 지점에서부터 도착 지점으로 이동하는 방법을 실시간으로 계산할 수 있게 된다.
도 1은 일 실시예에 따른 최적 경로를 찾는 방법을 개략적으로 설명하는 도면이다.
도 2는 일 실시예에 따라 최적 경로를 찾는 방법을 적용할 공간을 메시로 분할한 것을 나타내는 도면이다.
도 3은 일 실시예에 따라 출발점부터 도착점까지의 최단 경로로 이동하기 위한 메시를 선택하는 방법을 설명하는 순서도이다.
도 4는 일 실시예에 따라 최단 경로로 이동하기 위해 선택된 메시를 나타내는 도면이다.
도 5는 일 실시예에 따라 선택된 메시를 통과하는 최단 경로를 선택하는 방법을 나타내는 도면이다.
도 6은 일 실시예에 따라 선택된 메시를 통과하는 다른 최단 경로를 선택하는 방법을 나타내는 도면이다.
도 7a 및 도 7b 는 일 실시예에 따라 메시를 통과하는 최단 경로를 후처리에 의해 수정하는 방법을 나타내는 도면이다.
도 7c는 일 실시예에 따라 sharing point 가 여러 개인 경우, 최단 경로가 후처리에 의해 수정된 것을 나타내는 도면이다.
도 8은 일 실시예에 따라 메시를 통과하는 경로를 수정하여 결정된 최종 경로를 나타내는 도면이다.
도 9는 일 실시예에 따른 최단 경로를 산출하는 방법을 나타내는 순서도이다.
이하, 첨부된 도면들에 기재된 내용들을 참조하여 본 발명에 따른 예시적 실시예를 상세하게 설명한다. 또한, 첨부된 도면들에 기재된 내용들을 참조하여 본 발명의 실시예에 따른 전자 장치를 구성하고 사용하는 방법을 상세히 설명한다. 각 도면에서 제시된 동일한 참조번호 또는 부호는 실질적으로 동일한 기능을 수행하는 부품 또는 구성요소를 나타낸다.
제1, 제2 등과 같이 서수를 포함하는 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 구성 요소들은 용어들에 의해 한정되지는 않는다. 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 항목들의 조합 또는 복수의 관련된 항목들 중의 어느 하나의 항목을 포함한다.
본 명세서에서 사용한 용어는 실시예를 설명하기 위해 사용된 것으로, 본 발명을 제한 및/또는 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원서에서, 포함하다 또는 가지다 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
명세서 전체에서, 어떤 부분이 다른 부분과 연결되어 있다고 할 때, 이는 직접적으로 연결되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 전기적으로 연결되어 있는 경우도 포함한다. 또한 어떤 부분이 어떤 구성요소를 포함한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다. 또한, 명세서에 기재된 "...부", "모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다.
도 1은 일 실시예에 따른 최적 경로를 찾는 방법을 개략적으로 설명하는 도면이다.
2차원 또는 3차원 공간 내에서 출발점에서 도착점까지 이동하기 위한 최단 경로를 산출하기 위한 다양한 방법들이 존재한다. 도 1을 참조하여 일 실시에 따라, 실시간으로 최적 경로로 이동하기 위한 경로를 안내할 수 있는 방법을 개략적으로 설명한다.
일 실시예에 따르면, 2차원 3차원 공간을 모델링한 공간 데이터를 획득할 수 있다(110).
획득한 공간 데이터 내에서, 이동 가능한 공간을 복수개의 메시들로 분할할 수 있다(120). 복수개의 메시들은 삼각형 형태일 수 있다. 분할된 복수개의 메시들 중에서 최단거리로 이동하기 위한 경로 상에 존재하는 메시들을 선택할 수 있다(130). 선택된 메시들의 모서리 상의 포인트를 연결하여 최단 경로를 산출할 수 있다(140). 산출된 이동 경로를 후처리에 의해 수정하여 도출된 경로를 최적 경로로 선택할 수 있다(150).
이하에서는 각각의 과정에 대해서 보다 상세히 살펴보도록 한다.
도 2는 일 실시예에 따라 최적 경로를 찾는 방법을 적용할 공간을 메시로 분할한 것을 나타내는 도면이다.
길찾기 알고리즘을 적용할 공간(201)은 2차원 또는 3차원 공간일 수 있다. 공간(201)을 메시로 분할하는 것은 공지된 알고리즘을 사용할 수 있다. 메시는 삼각형 형태로 구성될 수 있고, 복수개의 메시들은 2차원 또는 3차원 공간상에서 연결되어 있다.
메시는 공간(201) 상에서 이동이 가능한 부분에 생성될 수 있다. 메시로 분할된 공간은 도 2에 나타나는 바와 같이 그래프 상에 표현될 수 있다. 메시의 삼각형의 꼭지점을 나타내는 노드, 모서리를 나타내는 엣지에 대한 그래프 상의 좌표 정보가 저장될 수 있다.
도 3은 일 실시예에 따라 출발점부터 도착점까지의 최단 경로로 이동하기 위한 메시를 선택하는 방법을 설명하는 순서도이다.
일 실시예에 따라 공간을 분할하여 생성된 복수개의 메시들 중에서 최단 경로로 이동하기 위한 경로 상에 존재하는 메시들을 선택할 수 있다.
먼저, 단계 S301에서 시작점인 시작 노드 s 로부터 출발한다.
단계 S303에서, 시작 노드 s를 open으로 설정하고, s에 대한 f(s)를 계산한다. 이 때, 평가 함수 f(n)을 이용할 수 있고, 평가 함수는 현재 노드에서 목표 노드까지 가는 최단 경로의 비용을 의미할 수 있다.
단계 S305에서, open 노드들 중 f(n) 이 가장 작은 노드를 선택할 수 있다.
단계 S307에서 open 노드가 없다면 종료할 수 있다.
단계 S309에서 open 노드 n이 있고, n이 목표 노드면 단계 S311에서 n을 closed 로 설정하고 알고리즘을 종료할 수 있다.
단계 S309에서 n이 목표 노드가 아니면, 단계 S313에서 n을 closed 로 설정할 수 있다.
단계 S315에서 모든 n의 이웃 노드 k 에 대하여 단계 S317 내지 단계 S321을 반복할 수 있다.
단계 S317에서 k 가 closed 가 아니면 단계 S321에서 k를 open으로 설정할 수 있다.
단계 S317에서 k 가 closed 이면, 단계 S319에서 현재 f(k)가 closed 로 설정되었을 때의 f(k) 보다 작다면, 단계 S321에서 k를 open으로 설정할 수 있다.
단계 S305로 돌아가서 각 단계를 반복할 수 있다.
도 4는 일 실시예에 따라 최단 경로로 이동하기 위해 선택된 메시를 나타내는 도면이다.
최단 경로로 이동하기 위해 메시들을 선택하기 위한 방법으로는 dijkstra(다익스트라) algorithm 및 A* algorithm 등 다양한 방법이 존재한다.
Dijkstra algorithm 은 주어진 시작 지점에서 출구를 향하는 최단 경로를 찾아내는 알고리즘이며, 최단 경로인 것이 확인 될 때 까지 가능한 모든 경로를 탐색하게 된다. A* algorithm 은 출발위치로부터 목표지점으로 가기 위한 방향을 선택할 때, 목표지점과 가까워지는 방향을 우선으로 탐색한다. 따라서, 실시간으로 최단 경로를 찾기 위해서 A* algorithm 이 사용될 수 있다.
도 4에 도시된 바에 따라 선택된 메시들(401) 내에서 최단 거리로 이동하기 위한 경로(403)는 여러가지 방식에 의해 산출될 수 있다. 이하 도 5내지 8에서는 선택된 메시들(401) 내에서 최단 거리로 이동하기 위한 경로(이하 최단 경로라 함)를 산출하는 방법에 대해 살펴 본다.
도 5는 일 실시예에 따라 선택된 메시를 통과하는 최단 경로를 선택하는 방법을 나타내는 도면이다.
도 5의 510을 참고하면, 선택된 메시들 내에서 출발점(501) 에서 도착점(503)까지 경로에 있는 각 메시의 엣지 상의 중간점(505)을 통과하는 경로를 최단 경로로 선택할 수 있다. 도 5의 520에서와 같이 건물 내부 공간에서의 이동 경로를 가정하면, 모든 엣지의 중간점을 통과해야 하므로 최단 경로(507)를 택하는 경우, 이동시 불필요한 회전이 발생할 수 있다.
도 6은 일 실시예에 따라 선택된 메시를 통과하는 다른 최단 경로를 선택하는 방법을 나타내는 도면이다.
도 6의 610을 참고하면, 선택된 메시들 내에서 출발점(601) 에서 도착점(603)까지 경로에 있는 최단 직선거리가 되는 지점(605)을 통과하는 경로를 최단 경로로 선택할 수 있다.
610에 도시된 최단 경로는 선택된 메시들에 대하여 퍼널 (funnel) 알고리즘을 적용하여 획득될 수 있다.
퍼널 알고리즘은 예를 들어, 출발지부터 시작해서 가장 좁은 퍼널(funnel) 구조를 찾고, 만약, 가장 좁은 구조를 찾은 경우, 새로운 시작점으로 다른 가장 좁은 퍼널 구조를 찾는 것을 반복하는 것일 수 있다.
한편 610에 도시된 것과 같은 방식에 따르는 경우, 건물 내부 공간에서 획득한 최단 경로(620)는, 장애물과 접하는 점(607)을 지나게 되어 이동하는 물체가 벽에 부딪히는 문제가 생길 수 있다. 따라서, 최적 경로로 선택된 경로를 후처리에 의해 보정하는 과정이 필요하다.
도 7a 및 도 7b 는 일 실시예에 따라 메시를 통과하는 최단 경로를 후처리에 의해 수정하는 방법을 나타내는 도면이다.
도 7a를 참고하여 보면, 701이 출발점, 703이 도착점이고, 705가 최단 경로를 지나는 한 점일 수 있다. 이는 도 6에 도시된 방법을 통하여 계산된 경로일 수 있다.
최단 경로를 지나는 점 705는 Sharing point 라고 칭할 수 있고, 공간 내 장애물과 접하는 점일 수 있다. 이 경우, 이동하는 물체가 장애물에 부딪히지 않게 하기 위해 sharing point(705)를 공간 내 장애물로부터 떨어진 지점(707)으로 보정해주는 것이 필요하다.
도 7b을 참고하여 보면, A1(711)이 출발점, A3(713)이 도착점이고, A2(715)가 산출된 최단 경로를 지나는 한 점일 경우, A2(715)를 새로운 지점(717)으로 보정하기 위한 후처리 방법을 도시한다.
벡터 V1(721)는 A1(711)과 A2(715)의 차, 벡터 V2(723)는 A3(713)과 A2(715)의 차를 나타낼 수 있다. 벡터 V1과 벡터 V2의 내적을 구하면, 벡터 Ei(725)가 될 수 있다.
벡터 V1(721)와 벡터 V2(723) 의 방향만을 나타내는 단위 벡터를 계산하기 위해서는 계산식 731을 이용할 수 있고, 벡터 V1(721)와 벡터 V2(723)의 내적의 방향을 구하기 위해서는 계산식 733 및 계산식 735를 이용할 수 있다.
후처리에 의해 보정되는 지점을 구하는 계산식 737을 참고하면, 벡터 V1(721)와 벡터 V2(723)의 내적의 방향을 나타내는 벡터 uE 에 k를 곱한 것에 A2(715)를 나타내는 벡터를 더하면, 새로운 지점(717)을 나타내는 벡터가 구해짐을 알 수 있다. k는 이동하는 물체의 크기에 따라 정해지는 값일 수 있다. 예를 들어, 이동하는 물체가 실내에서 동작하는 퍼스널 모빌리티인 경우, 퍼스널 모빌리티의 크기, 또는 너비 등에 비례하여 결정될 수 있다.
도 7c는 일 실시예에 따라 sharing point 가 여러 개인 경우, 최단 경로가 후처리에 의해 수정된 것을 나타내는 도면이다.
sharing point 가 sharing point 1, sharing point 2, sharing point 3로 복수개인 경우에도 마찬가지로, 도 7b의 방법을 적용하여 공간 내 장애물로부터 떨어진 지점(707)으로 보정해주는 것이 필요하다. Sharing point를 기준으로 전후의 포인트들에 대한 벡터의 내적을 구하고, 도 7b의 계산식 737을 적용하여 보정된 지점들(741, 743, 745)을 구할 수 있다.
도 8은 일 실시예에 따라 메시를 통과하는 경로를 수정하여 결정된 최종 경로를 나타내는 도면이다.
시작점(801)과 도착점(803)을 잇는 경로(805)가 후처리 과정을 거친 후, 새로운 경로(807)로 수정된 것을 알 수 있다. 이동하는 물체가 실내에서 동작하는 퍼스널 모빌리티인 경우, 퍼스널 모빌리티의 크기, 또는 너비 등이 고려되어, 퍼스널 모빌리티가 장애물에 부딪히지 않는 정도로 경로가 수정될 수 있다.
도 9는 일 실시예에 따른 최단 경로를 산출하는 방법을 나타내는 순서도이다.
단계 S910에서, 공간을 모델링한 공간 데이터를 획득할 수 있다(S910).
단계 S920에서, 공간 데이터 내에서, 이동 가능한 공간을 복수개의 메시들로 분할할 수 있다 (S920).
단계 S930에서, 출발점 및 도착점에 기초하여, 분할된 복수개의 메시들 중에서 최단거리로 이동하기 위해 통과해야하는 메시들을 선택할 수 있다 (S930).
단계 S940에서, 선택된 메시들의 모서리 상의 포인트를 연결하여 최단 경로를 산출할 수 있다 (S940).
단계 S950에서, 산출된 최단 경로를 후처리하여 도출된 경로를 최종 경로로 선택할 수 있다(S950).
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 어플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 또는 클라우드 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체는 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.

Claims (10)

  1. 2차원 또는 3차원 공간 내에서 출발점에서 도착점까지 이동하기 위한 최적의 경로를 산출하는 방법에 있어서,
    상기 공간을 모델링한 공간 데이터를 획득하는 단계;
    상기 공간 데이터 내에서, 이동 가능한 공간을 복수개의 메시들로 분할하는 단계;
    상기 출발점 및 상기 도착점에 기초하여, 상기 분할된 복수개의 메시들 중에서 최단거리로 이동하기 위한 메시들을 선택하는 단계;
    상기 선택된 메시들의 모서리 상의 포인트를 연결하여 최단 경로를 산출하는 단계; 및
    산출된 이동 경로를 후처리하여 도출된 경로를 최적 경로로 선택하는 단계를 포함하고,
    상기 후처리는 상기 공간 데이터에 기초하여, 상기 최단 경로가 상기 모델링한 공간 데이터 내의 장애물과 인접하는 경우 상기 모서리 상의 포인트들의 위치를 변경하는 것인, 최적 경로 산출 방법.
  2. 제1항에 있어서,
    상기 최단 경로는 실내의 이동 경로를 나타낸 것이고,
    상기 선택된 메시들의 모서리 상의 포인트를 연결하여 최단 경로를 산출하는 단계는
    상기 선택된 메시들의 모서리 상의 포인트를 연결하는 최단 직선거리를 찾는 단계를 포함하는, 최적 경로 산출 방법.
  3. 제1항에 있어서, 상기 선택된 메시들의 모서리 상의 포인트를 연결하여 최단 경로를 산출하는 단계는
    상기 선택된 메시들에 대하여 퍼널 (funnel) 알고리즘을 적용하는 단계를 포함하는, 최적 경로 산출 방법.
  4. 제1항에 있어서, 산출된 이동 경로를 후처리에 의해 수정하여 도출된 경로를 최종 경로로 선택하는 단계는
    상기 모서리 상의 포인트들 중 상기 장애물과 인접하는 모서리 상의 제1 포인트에 대하여, 상기 제1 포인트에 인접하여 위치한 두 포인트의 외적을 구하는 단계; 및
    상기 제1 포인트에 상기 외적을 더한 값을 구하는 단계를 포함하는, 최적 경로 산출 방법.
  5. 제4항에 있어서, 상기 제1 포인트의 값에 상기 외적 값을 더한 값을 구하는 단계는,
    상기 제1 포인트에 상기 외적에 k (k는 유리수)를 곱한 것을 더한 값을 구하는 단계를 포함하는, 최적 경로 산출 방법.
  6. 제5항에 있어서,
    상기 k 값은 실내에서 이동하는 퍼스널 모빌리티의 크기를 고려하여 결정되는 값인, 최적 경로 산출 방법.
  7. 제1항에 있어서, 상기 출발점 및 상기 도착점에 기초하여, 상기 분할된 복수개의 메시들 중에서 최단거리로 이동하기 위한 메시들을 선택하는 단계는
    상기 선택된 복수개의 메시들은 상기 출발점으로부터 시작하여 방향을 선택할 때 상기 도착점과 가까워지는 방향에 따라 메시들을 선택하는 단계를 포함하는, 최적 경로 산출 방법.
  8. 제1항에 있어서, 상기 복수개의 메시들로 분할하는 단계는
    상기 복수개의 메시들의 노드와 에지를 나타내는 정보를 저장하는 단계를 포함하는, 최적 경로 산출 방법.
  9. 하나 이상의 컴퓨터들에 의해 실행될 때 상기 하나 이상의 컴퓨터들로 하여금 제 1 항 내지 제 8 항 중 어느 한 항의 각각의 방법의 동작들을 수행하게 하는 명령어들을 저장하는 하나 이상의 컴퓨터로 판독 가능한 저장 매체.
  10. 하나 이상의 컴퓨터들 및 상기 하나 이상의 컴퓨터들에 의해 실행될 때 상기 하나 이상의 컴퓨터들로 하여금 제 1 항 내지 제 8 항 중 어느 한 항의 각각의 방법의 동작들을 수행하게 하는 명령어들을 저장하는 하나 이상의 컴퓨터로 판독 가능한 저장 매체들을 포함하는 시스템.
KR1020190083822A 2019-07-11 2019-07-11 최단 경로를 산출하는 방법, 컴퓨터로 판독 가능한 저장매체 및 시스템 KR102265622B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190083822A KR102265622B1 (ko) 2019-07-11 2019-07-11 최단 경로를 산출하는 방법, 컴퓨터로 판독 가능한 저장매체 및 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190083822A KR102265622B1 (ko) 2019-07-11 2019-07-11 최단 경로를 산출하는 방법, 컴퓨터로 판독 가능한 저장매체 및 시스템

Publications (2)

Publication Number Publication Date
KR20210007406A true KR20210007406A (ko) 2021-01-20
KR102265622B1 KR102265622B1 (ko) 2021-06-15

Family

ID=74305162

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190083822A KR102265622B1 (ko) 2019-07-11 2019-07-11 최단 경로를 산출하는 방법, 컴퓨터로 판독 가능한 저장매체 및 시스템

Country Status (1)

Country Link
KR (1) KR102265622B1 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113658342A (zh) * 2021-07-20 2021-11-16 杭州易现先进科技有限公司 Ar导航路径生成的方法、系统、电子装置和存储介质
CN113720342A (zh) * 2021-08-05 2021-11-30 杭州易现先进科技有限公司 导航路径规划方法和装置
CN114358397A (zh) * 2021-12-17 2022-04-15 北京京能建设集团有限公司 一种施工现场物资倒运路径的确定方法
CN114595612A (zh) * 2022-03-16 2022-06-07 上海核工程研究设计院有限公司 基于实体单元积分路径的受力构件的配筋计算方法及系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070098363A (ko) * 2006-03-31 2007-10-05 (주)엔브이엘소프트 3차원 맵에서의 향상된 캐릭터 이동 경로 설정 방법
KR20180024058A (ko) * 2016-08-25 2018-03-08 주식회사 모디엠 실내 공간, 해양 및 항공과 같은 공간상에서 적용되는 내비게이션의 이동 경로 탐색 및 그 표시 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070098363A (ko) * 2006-03-31 2007-10-05 (주)엔브이엘소프트 3차원 맵에서의 향상된 캐릭터 이동 경로 설정 방법
KR20180024058A (ko) * 2016-08-25 2018-03-08 주식회사 모디엠 실내 공간, 해양 및 항공과 같은 공간상에서 적용되는 내비게이션의 이동 경로 탐색 및 그 표시 방법

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113658342A (zh) * 2021-07-20 2021-11-16 杭州易现先进科技有限公司 Ar导航路径生成的方法、系统、电子装置和存储介质
CN113720342A (zh) * 2021-08-05 2021-11-30 杭州易现先进科技有限公司 导航路径规划方法和装置
CN113720342B (zh) * 2021-08-05 2024-03-26 杭州易现先进科技有限公司 导航路径规划方法和装置
CN114358397A (zh) * 2021-12-17 2022-04-15 北京京能建设集团有限公司 一种施工现场物资倒运路径的确定方法
CN114595612A (zh) * 2022-03-16 2022-06-07 上海核工程研究设计院有限公司 基于实体单元积分路径的受力构件的配筋计算方法及系统
CN114595612B (zh) * 2022-03-16 2024-05-10 上海核工程研究设计院股份有限公司 基于实体单元积分路径的受力构件的配筋计算方法及系统

Also Published As

Publication number Publication date
KR102265622B1 (ko) 2021-06-15

Similar Documents

Publication Publication Date Title
KR102265622B1 (ko) 최단 경로를 산출하는 방법, 컴퓨터로 판독 가능한 저장매체 및 시스템
Rösmann et al. Integrated online trajectory planning and optimization in distinctive topologies
US11161246B2 (en) Robot path planning method and apparatus and robot using the same
KR102009105B1 (ko) 실시간 가상 장면의 충돌체 사이의 충돌을 검출하기 위한 방법 및 단말과 저장 매체
Bhattacharya et al. Topological constraints in search-based robot path planning
CN108645411B (zh) 基于粒子群算法的机器人路径规划方法、装置及终端设备
Zhou et al. Timed automata approach for motion planning using metric interval temporal logic
US11080878B2 (en) Method and apparatus for detecting 3D object from 2D image
CN109432777B (zh) 路径生成方法及装置、电子设备、存储介质
Dyvak et al. Algorithms of parallel calculations in task of tolerance ellipsoidal estimation of interval model parameters
Adhikary et al. Mutual visibility by asynchronous robots on infinite grid
Williams et al. Redirected walking in static and dynamic scenes using visibility polygons
KR101490055B1 (ko) 이동 로봇의 위치와 지도를 추정하는 방법 및 이를 수행하는 장치들
Caro et al. A branch and prune algorithm for the computation of generalized aspects of parallel robots
CN113190006B (zh) 一种机器人路径规划方法、装置及存储介质
US20210150094A1 (en) Generating designs for multi-family housing projects using rigid body simulations
KR101688302B1 (ko) 모션 플래닝 장치 및 방법
US11631028B2 (en) Method of updating policy for controlling action of robot and electronic device performing the method
Tran et al. Global path planning for autonomous robots using modified visibility-graph
JP7152978B2 (ja) 自律移動装置の経路生成方法、並びに経路生成プログラム
Wu et al. Path planning and replanning for mobile robot navigation on 3D terrain: An approach based on geodesic
WO2020157990A1 (ja) 経路計画装置、経路計画方法、及びコンピュータ読み取り可能な記録媒体
CN113885531A (zh) 用于移动机器人的方法、移动机器人、电路、介质和程序
Shojaeipour et al. Motion planning for mobile robot navigation using combine quad-tree decomposition and voronoi diagrams
JP6608768B2 (ja) 分解搬出計画生成装置および分解搬出計画生成方法

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