KR101947646B1 - 도로 정보 처리 방법 및 시뮬레이션 방법 - Google Patents
도로 정보 처리 방법 및 시뮬레이션 방법 Download PDFInfo
- Publication number
- KR101947646B1 KR101947646B1 KR1020160146796A KR20160146796A KR101947646B1 KR 101947646 B1 KR101947646 B1 KR 101947646B1 KR 1020160146796 A KR1020160146796 A KR 1020160146796A KR 20160146796 A KR20160146796 A KR 20160146796A KR 101947646 B1 KR101947646 B1 KR 101947646B1
- Authority
- KR
- South Korea
- Prior art keywords
- road
- information
- point
- object information
- points
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09B—EDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
- G09B9/00—Simulators for teaching or training purposes
- G09B9/003—Simulators for teaching or training purposes for military purposes and tactics
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/29—Geographical information databases
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09B—EDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
- G09B29/00—Maps; Plans; Charts; Diagrams, e.g. route diagram
- G09B29/003—Maps
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09B—EDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
- G09B29/00—Maps; Plans; Charts; Diagrams, e.g. route diagram
- G09B29/10—Map spot or coordinate position indicators; Map reading aids
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09B—EDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
- G09B9/00—Simulators for teaching or training purposes
- G09B9/006—Simulators for teaching or training purposes for locating or ranging of objects
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Educational Administration (AREA)
- Educational Technology (AREA)
- Business, Economics & Management (AREA)
- Mathematical Physics (AREA)
- Databases & Information Systems (AREA)
- Remote Sensing (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Navigation (AREA)
Abstract
본 명세서는 도로 정보 처리 방법 및 시뮬레이션 방법에 관한 것으로, 보다 구체적으로는 SAF(Semi-Automated Forces)를 사용한 가상 전투 시뮬레이션 시스템에서 도로상의 교차로 지점 정보를 기반으로 도로 정보를 처리하고, 교차로 지점 정보를 기준으로 경로를 탐색도로 정보 처리 방법 및 시뮬레이션 방법에 관한 것이다.
Description
본 명세서는 도로 정보 처리 방법 및 시뮬레이션 방법에 관한 것으로, 보다 구체적으로는 SAF(Semi-Automated Forces)를 사용한 가상 전투 시뮬레이션 시스템의 도로 정보 처리 방법 및 시뮬레이션 방법에 관한 것이다.
본 발명의 배경이 되는 기술은 Semi-Automated Forces(이하, SAF)를 사용한 대규모 전투 시뮬레이션 시스템에 관한 것이다.
SAF를 사용한 전투 모의 시스템에서 각각의 개체(전차, 장갑차, 트럭, 병사)들의 효율적인 경로 탐색 알고리즘은 필수적이다. SAF 개체의 경로 탐색 알고리즘은 기존의 전투 모의 시스템에서 시나리오에 이동 경로를 자세히 명시하는데 필요한 시간을 크게 단축시키며, 동적으로 변화하는 상황에서 모의 중에 적절한 경로를 탐색하여 이동할 수 있도록 지원한다.
대규모 전투의 시뮬레이션은 수많은 SAF 개체를 필요로 한다. 모의 시스템에서 시뮬레이션에 사용되는 개체들이 많아질수록, 개체들이 동시에 이동을 수행하는 경우가 빈번해진다. 이에 따라 SAF 개체는 사용자가 작성한 시나리오 또는 모의 중 직접 명령 등으로 제공되는 대략적인 이동 경로로부터 상세한 이동 경로를 결정해야 한다. 이와 같이 경로를 결정하는 알고리즘을 경로 탐색(Path Finding)이라고 하며, 대표적인 알고리즘으로는 A* 알고리즘[S. Russell & P. Norvig S, 2003]이 있다. A* 알고리즘은 기본적으로 트리(Tree)를 구성하면서 최적의 경로를 찾는 알고리즘으로 다음과 같이 동작한다. 최초 위치를 의미하는 루트(Root) 노드에서 다음 단계에서 가능한 위치들을 각각의 노드로 확장 하고 확장된 노드(즉, 위치)로 이동하기 위한 비용(g(n))과 그 위치에서 목적지까지 이동하는데 필요한 비용(h(n))의 합(f(n))이 가장 작은 노드를 다음 노드로 선택한다. 그 다음 단계에서는 앞서 선택된 노드로부터 이동 가능한 위치들을 각 노드로 확장하고 위와 마찬가지로 각 노드의 비용을 계산한 후, 현재 모든 말단 노드(Leaf Node)의 비용 중 가장 작은 비용을 가지고 있는 노드를 선택하여 확장, 비용 계산, 선택이라는 과정을 반복적으로 수행하여 목적지를 의미하는 노드가 생성되면, 루트 노드부터 목적지 노드까지의 일련의 노드들을 경로로 택하는 탐색 알고리즘이다. 이 알고리즘은 주어진 문제에서 노드들(즉, 다음 후보위치)을 어떻게 정의하느냐에 따라서 그 성능이 크게 좌우된다.
하지만, 대규모 전투가 모의되는 광범위한 영역에서는 특정 시간(t)의 위치에서 다음 시간(t + 1)의 위치로 이동하는 경로를 선택함에 있어서 가능한 후보지가 무수히 많다. 또한, 단순히 사방 또는 팔방으로 후보지를 단순화하여 제한하더라도 그 대규모 모의에서 사용되는 전장 환경이 방대하기 때문에 탐색 공간(Search Space)이 기하급수적으로 증가할 수밖에 없다. 또한 이러한 제한은 SAF 개체가 이동할 수 있는 자유도를 떨어뜨리는 단점이 있다.
기존의 게임에서는 경로 탐색 속도를 향상시키기 위해 맵이라는 제한된 환경에서 네비게이션 메쉬(Navigation Mesh)[Arkin, Ronald C. 1986]를 사용하여 게임 캐릭터의 경로 탐색 속도를 향상시켰다. 기존의 내비게이션 메쉬를 사용한 방법에서는 지형을 구성하는 폴리곤에 이동가능 여부의 속성을 추가한다. 그리고 이들을 A* 알고리즘의 노드로 사용한다. 즉, 시작 위치가 주어지면, 그 위치를 포함하고 있는 폴리곤이 루트 노드가 되고 이 폴리곤 주변의 다른 폴리곤들이 다음 단계의 노드가 된다. 그리고 A*알고리즘의 절차에 따라 주변의 폴리곤들로 노드를 확장하면서 비용을 계산하고 최소 비용을 가지는 경로를 탐색한다. 이와 같은 방법에서는 지형을 구성하는 폴리곤의 크기와 인접해 있는 다른 폴리곤들의 개수가 탐색 공간과 시간을 크게 좌우한다. 예를 들어, 가로와 세로가 1m이 정사각형의 폴리곤으로 구성된 격자 모양의 지형을 가정하고, 모든 폴리곤이 이동 가능하고 1Km2에서 전투 모의를 수행한다고 가정하면, 1,000,000개의 폴리곤의 존재한다. 이 경우, A*알고리즘은 시작 위치를 포함한 폴리곤에서 주변의 인접한 네 개의 폴리곤으로 점차 노드를 확장시키면서 경로를 탐색함으로써, 최악의 경우 엄청난 수(대략 41000000개)의 노드가 확장될 수 있다. 또한, 내비게이션 메쉬를 사용하면, 폴리곤을 기본적인 이동 경로로 설정함으로써 SAF 개체의 이동 자유도가 크게 제약된다. 또한, 도로 이동을 수행하기 위해서는 도로의 정보를 지형 폴리곤에 추가해주어야 한다.
결과적으로, 네비게이션 메쉬를 사용한 경로 탐색 방법은 지형을 구성하는 폴리곤에 이동 가능하다는 속성을 사전에 설정해놓고 A*와 같은 알고리즘을 사용할 때 각 폴리곤을 탐색 노드로 사용함으로써 탐색 공간을 줄일 수 있지만, 이 방법은 네비게이션 메쉬를 만들기 위해 많은 비용을 필요로 할 뿐만 아니라 개체가 이동할 수 있는 경로를 폴리곤 단위로 결정하기 때문에 SAF 개체의 이동 자유도가 제약되는 한계가 있었다.
따라서, 본 명세서는 종래기술의 한계를 개선하는 것을 과제로 하여, 시뮬레이션 개체의 자유도가 확보되면서 최적의 경로 탐색이 이루어질 수 있도록 도로 정보를 처리하는 가상 전투 시뮬레이션 시스템의 도로 정보 처리 방법을 제공하고자 한다.
또한, 시뮬레이션 개체의 자유도가 확보되면서 최적의 경로 탐색이 이루어질 수 있도록 도로 정보를 처리하고, 처리된 결과를 근거로 개체의 이동 경로를 탐색할 수 있는 가상 전투 시뮬레이션의 시뮬레이션 방법을 제공하고자 한다.
상술한 바와 같은 과제를 해결하기 위한 본 명세서에 개시된 도로 정보 처리 방법 및 시뮬레이션 방법은, 도로상의 교차로 지점 정보를 기반으로 도로 정보를 처리하고, 교차로 지점 정보를 기준으로 경로를 탐색하는 것을 특징으로 한다.
상술한 바와 같은 기술적 특징을 해결 수단으로 하는 본 명세서에 개시된 도로 정보 처리 방법은, 도로의 지형 정보에 대한 맵 데이터로부터 도로 객체 정보를 로딩하는 단계, 상기 도로 객체 정보에 포함된 도로 지점 정보를 근거로 상기 도로상에 존재하는 하나 이상의 교차로 후보 지점을 추출하는 단계, 상기 교차로 후보 지점을 근거로 상기 도로 객체 정보를 통합 및 분할하는 단계 및 상기 도로 객체 정보를 통합 및 분할한 결과에 따라 도로 정보를 생성하는 단계를 포함한다.
일 실시 예에서, 상기 도로 객체 정보는, 상기 도로상에 존재하는 복수의 도로 각각에 대한 정보를 포함할 수 있다.
일 실시 예에서, 상기 하나 이상의 교차로 후보 지점을 추출하는 단계는, 상기 복수의 도로 각각의 도로 지점 정보를 비교하여, 위치가 같은 둘 이상의 도로 지점을 상기 교차로 후보 지점으로 추출할 수 있다.
일 실시 예에서, 상기 도로 객체 정보를 통합 및 분할하는 단계는, 상기 교차로 후보 지점의 인접 지점을 근거로 상기 교차로 후보 지점을 포함하는 도로의 통합 및 분할 여부를 판단하여, 상기 도로 객체 정보를 통합 및 분할할 수 있다.
일 실시 예에서, 상기 도로 객체 정보를 통합 및 분할하는 단계는, 상기 교차로 후보 지점 중 인접 지점의 수가 2개 이하인 후보 지점이 있는 경우, 해당 후보 지점을 포함하는 두 개의 도로를 동일한 도로로 판단하여, 해당 도로의 도로 객체 정보를 통합할 수 있다.
일 실시 예에서, 상기 도로 객체 정보를 통합 및 분할하는 단계는, 상기 교차로 후보 지점 중 인접 지점의 수가 3개 이상인 후보 지점이 있는 경우, 해당 후보 지점을 포함하는 세 개 이상의 도로를 다른 도로로 판단하여, 해당 도로의 도로 객체 정보를 분할할 수 있다.
또한, 상술한 바와 같은 기술적 특징을 해결 수단으로 하는 본 명세서에 개시된 시뮬레이션 방법은, 도로의 지형 정보에 대한 맵 데이터를 근거로 도로 정보를 생성하는 단계, 상기 생성된 도로 정보를 근거로 시뮬레이션 대상에 해당하는 가상 개체의 이동 경로를 탐색하는 단계 및 상기 탐색된 이동 경로에 따라 상기 가상 개체의 시뮬레이션을 수행하는 단계를 포함하고, 상기 도로 정보를 생성하는 단계는, 도로의 지형 정보에 대한 맵 데이터로부터 도로 객체 정보를 로딩하는 단계, 상기 도로 객체 정보에 포함된 도로 지점 정보를 근거로 상기 도로상에 존재하는 하나 이상의 교차로 후보 지점을 추출하는 단계, 상기 교차로 후보 지점을 근거로 상기 도로 객체 정보를 통합 및 분할하는 단계 및 상기 도로 객체 정보를 통합 및 분할한 결과에 따라 도로 정보를 생성하는 단계를 포함한다.
일 실시 예에서, 상기 도로 객체 정보는, 상기 도로상에 존재하는 복수의 도로 각각에 대한 정보를 포함할 수 있다.
일 실시 예에서, 상기 하나 이상의 교차로 후보 지점을 추출하는 단계는, 상기 복수의 도로 각각의 도로 지점 정보를 비교하여, 위치가 같은 둘 이상의 도로 지점을 상기 교차로 후보 지점으로 추출할 수 있다.
일 실시 예에서, 상기 도로 객체 정보를 통합 및 분할하는 단계는, 상기 교차로 후보 지점의 인접 지점을 근거로 상기 교차로 후보 지점을 포함하는 도로의 통합 및 분할 여부를 판단하여, 상기 도로 객체 정보를 통합 및 분할할 수 있다.
일 실시 예에서, 상기 도로 객체 정보를 통합 및 분할하는 단계는, 상기 교차로 후보 지점 중 인접 지점의 수가 2개 이하인 후보 지점이 있는 경우, 해당 후보 지점을 포함하는 두 개의 도로를 동일한 도로로 판단하여, 해당 도로의 도로 객체 정보를 통합할 수 있다.
일 실시 예에서, 상기 도로 객체 정보를 통합 및 분할하는 단계는, 상기 교차로 후보 지점 중 인접 지점의 수가 3개 이상인 후보 지점이 있는 경우, 해당 후보 지점을 포함하는 세 개 이상의 도로를 다른 도로로 판단하여, 해당 도로의 도로 객체 정보를 분할할 수 있다.
일 실시 예에서, 상기 이동 경로를 탐색하는 단계는, 기설정된 알고리즘에 따라 상기 이동 경로를 탐색할 수 있다.
일 실시 예에서, 상기 기설정된 알고리즘은, A* 알고리즘일 수 있다.
본 명세서에 개시된 도로 정보 처리 방법 및 시뮬레이션 방법은, 도로상의 교차로 지점 정보를 기반으로 도로 정보를 처리하고, 교차로 지점 정보를 기준으로 경로를 탐색함으로써, 시뮬레이션 개체의 이동 자유도가 확보되는 효율적인 이동 경로 탐색이 이루어질 수 있는 효과가 있다.
또한, 본 명세서에 개시된 도로 정보 처리 방법 및 시뮬레이션 방법은, 도로상의 교차로 지점 정보를 기반으로 도로 정보를 처리하고, 교차로 지점 정보를 기준으로 경로를 탐색함으로써, 대규모 전투 시뮬레이션을 위한 시나리오 작성에서 개체의 경로 설정에 필요한 시간을 감소시키는 편의를 제공할 수 있고, 또한 SAF 개체를 사용한 시뮬레이션에서 동시 다발적으로 호출되는 도로 경로 탐색을 지원하기 위해 요구되는 메모리 용량 및 응답시간을 향상시킬 수 있는 효과가 있다.
도 1은 본 명세서에 개시된 도로 정보 처리 방법의 순서를 나타낸 순서도.
도 2는 본 명세서에 개시된 도로 정보 처리 방법의 실시 예에 따른 맵 데이터의 도로의 지형 정보 예시를 나타낸 예시도.
도 3은 본 명세서에 개시된 도로 정보 처리 방법의 실시 예에 따른 교차로 후보 지점 추출 예시를 나타낸 예시도.
도 4는 본 명세서에 개시된 도로 정보 처리 방법의 실시 예에 따른 도로 통합 예시를 나타낸 예시도.
도 5는 본 명세서에 개시된 도로 정보 처리 방법의 실시 예에 따른 도로 분할 예시를 나타낸 예시도.
도 6은 본 명세서에 개시된 시뮬레이션 방법의 순서를 나타낸 순서도.
도 7은 본 명세서에 개시된 도로 정보 처리 방법 및 시뮬레이션 방법의 실시 예에 따른 도로 정보 처리 및 경로 탐색 시스템 구조 개념을 나타낸 개념도.
도 8은 본 명세서에 개시된 도로 정보 처리 방법 및 시뮬레이션 방법의 실시 예에 따른 도로 정보 파일의 도로 정보 구조를 나타낸 구조도.
도 9는 본 명세서에 개시된 도로 정보 처리 방법 및 시뮬레이션 방법의 실시 예에 따른 도로상 지점 정보 파일의 지점 정보 구조를 나타낸 구조도.
도 10은 본 명세서에 개시된 도로 정보 처리 방법 및 시뮬레이션 방법의 실시 예에 따른 도로 및 도로상 지점 정보의 클래스 다이어그램을 나타낸 예시도.
도 11(A 내지 D)은 본 명세서에 개시된 시뮬레이션 방법 및 시뮬레이션 방법의 실시 예에 따른 경로 탐색의 예시를 나타낸 예시도(1 내지 4).
도 2는 본 명세서에 개시된 도로 정보 처리 방법의 실시 예에 따른 맵 데이터의 도로의 지형 정보 예시를 나타낸 예시도.
도 3은 본 명세서에 개시된 도로 정보 처리 방법의 실시 예에 따른 교차로 후보 지점 추출 예시를 나타낸 예시도.
도 4는 본 명세서에 개시된 도로 정보 처리 방법의 실시 예에 따른 도로 통합 예시를 나타낸 예시도.
도 5는 본 명세서에 개시된 도로 정보 처리 방법의 실시 예에 따른 도로 분할 예시를 나타낸 예시도.
도 6은 본 명세서에 개시된 시뮬레이션 방법의 순서를 나타낸 순서도.
도 7은 본 명세서에 개시된 도로 정보 처리 방법 및 시뮬레이션 방법의 실시 예에 따른 도로 정보 처리 및 경로 탐색 시스템 구조 개념을 나타낸 개념도.
도 8은 본 명세서에 개시된 도로 정보 처리 방법 및 시뮬레이션 방법의 실시 예에 따른 도로 정보 파일의 도로 정보 구조를 나타낸 구조도.
도 9는 본 명세서에 개시된 도로 정보 처리 방법 및 시뮬레이션 방법의 실시 예에 따른 도로상 지점 정보 파일의 지점 정보 구조를 나타낸 구조도.
도 10은 본 명세서에 개시된 도로 정보 처리 방법 및 시뮬레이션 방법의 실시 예에 따른 도로 및 도로상 지점 정보의 클래스 다이어그램을 나타낸 예시도.
도 11(A 내지 D)은 본 명세서에 개시된 시뮬레이션 방법 및 시뮬레이션 방법의 실시 예에 따른 경로 탐색의 예시를 나타낸 예시도(1 내지 4).
본 명세서에 개시된 도로 정보 처리 방법 및 시뮬레이션 방법은, 가상 전투 시뮬레이션 시스템, 가상 전투 시뮬레이션을 수행하는 장치 등에 적용될 수 있다. 그러나 본 명세서에 개시된 기술은 이에 한정되지 않고, 본 발명의 기술적 사상이 적용될 수 있는 모든 모의 주행 장치, 모의 주행 시스템, 모의 주행 방법 및 이들의 도로 정보 처리 방법 등에도 적용될 수 있다. 특히, 대규모 가상 전투 환경을 시뮬레이션하는 장치, 시스템, 방법 및 이를 비롯한 시뮬레이션 기술 분야에 유용하게 적용되어 실시될 수 있다.
본 명세서에서 사용되는 기술적 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 명세서에 개시된 기술의 사상을 한정하려는 의도가 아님을 유의해야 한다. 또한, 본 명세서에서 사용되는 기술적 용어는 본 명세서에서 특별히 다른 의미로 정의되지 않는 한, 본 명세서에 개시된 기술이 속하는 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 의미로 해석되어야 하며, 과도하게 포괄적인 의미로 해석되거나, 과도하게 축소된 의미로 해석되지 않아야 한다. 또한, 본 명세서에서 사용되는 기술적인 용어가 본 명세서에 개시된 기술의 사상을 정확하게 표현하지 못하는 잘못된 기술적 용어일 때에는, 당업자가 올바르게 이해할 수 있는 기술적 용어로 대체되어 이해되어야 할 것이다. 또한, 본 명세서에서 사용되는 일반적인 용어는 사전에 정의되어 있는 바에 따라, 또는 전후 문맥상에 따라 해석되어야 하며, 과도하게 축소된 의미로 해석되지 않아야 한다.
또한, 본 명세서에서 사용되는 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "구성된다" 또는 "포함한다" 등의 용어는 명세서 상에 기재된 여러 구성 요소들, 또는 여러 단계들을 반드시 모두 포함하는 것으로 해석되지 않아야 하며, 그 중 일부 구성 요소들 또는 일부 단계들은 포함되지 않을 수도 있고, 또는 추가적인 구성 요소 또는 단계들을 더 포함할 수 있는 것으로 해석되어야 한다.
이하, 첨부된 도면을 참조하여 본 명세서에 개시된 실시 예들을 상세히 설명하되, 도면 부호에 관계없이 동일하거나 유사한 구성 요소는 동일한 참조 번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다.
또한, 본 명세서에 개시된 기술을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 명세서에 개시된 기술의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 첨부된 도면은 본 명세서에 개시된 기술의 사상을 쉽게 이해할 수 있도록 하기 위한 것일 뿐, 첨부된 도면에 의해 그 기술의 사상이 제한되는 것으로 해석되어서는 아니 됨을 유의해야 한다.
이하, 도 1 내지 도 6을 참조하여 본 명세서에 개시된 도로 정보 처리 방법 및 시뮬레이션 방법을 설명한다.
도 1은 본 명세서에 개시된 도로 정보 처리 방법의 순서를 나타낸 순서도이다.
도 2는 본 명세서에 개시된 도로 정보 처리 방법의 실시 예에 따른 맵 데이터의 도로의 지형 정보 예시를 나타낸 예시도이다.
도 3은 본 명세서에 개시된 도로 정보 처리 방법의 실시 예에 따른 교차로 후보 지점 추출 예시를 나타낸 예시도이다.
도 4는 본 명세서에 개시된 도로 정보 처리 방법의 실시 예에 따른 도로 통합 예시를 나타낸 예시도이다.
도 5는 본 명세서에 개시된 도로 정보 처리 방법의 실시 예에 따른 도로 분할 예시를 나타낸 예시도이다.
도 6은 본 명세서에 개시된 시뮬레이션 방법의 순서를 나타낸 순서도이다.
먼저, 본 명세서에 개시된 도로 정보 처리 방법(이하, 처리 방법이라 칭한다)을 설명한다.
본 명세서에 개시된 처리 방법은, 가상 전투 시뮬레이션을 수행하는 시스템, 장치, 또는 이를 비롯한 시뮬레이션 모듈에서, 시뮬레이션 환경상의 도로 정보를 처리하는 장치, 또는 모듈에 적용되는 처리 방법일 수 있다.
상기 처리 방법은, 시뮬레이션 환경상의 도로 정보를 처리하는 장치, 또는 모듈의 도로 정보 처리 프로그램, 애플리케이션, 소프트웨어 또는 이를 비롯한 알고리즘 로직의 형태로 실시될 수 있다.
상기 처리 방법은, 가상 전투 시뮬레이션을 수행하는 시스템, 장치, 또는 이를 비롯한 시뮬레이션 모듈에서, 시뮬레이션 환경상의 도로 정보를 처리하는 장치, 또는 모듈의 도로 정보에 대한 데이터 처리 방법일 수 있다.
상기 처리 방법은, 도 1에 도시된 바와 같이, 도로의 지형 정보에 대한 맵 데이터로부터 도로 객체 정보를 로딩하는 단계(S10), 상기 도로 객체 정보에 포함된 도로 지점 정보를 근거로 상기 도로상에 존재하는 하나 이상의 교차로 후보 지점을 추출하는 단계(S20), 상기 교차로 후보 지점을 근거로 상기 도로 객체 정보를 통합 및 분할하는 단계(S30) 및 상기 도로 객체 정보를 통합 및 분할한 결과에 따라 도로 정보를 생성하는 단계(S40)를 포함한다.
상기 멥 데이터는, 시뮬레이션 환경상의 도로의 지형 정보가 벡터 맵 형태로 저장된 데이터를 의미할 수 있다.
상기 멥 데이터에 저장된 도로의 지형 정보는 개념적으로 도 2에 도시된 바와 같다. 도 2의 좌측 그림은 도로의 지형 정보가 표현되어 있는 벡터 맵을 나타내고, 우측 그림은 지도 제작자가 임의로 도로를 쪼개어 폴리라인의 형태로 입력한 각 폴리라인을 나타낸다. 여기에서 각 점은 폴리라인을 구성하는 점들을 나타낸다. 이와 같은 멥 데이터에는 교차로 정보가 명시적으로 들어나 있지 않으며, 우측 도형의 두 라인(100과 101)이 보여주는 바와 같이 하나의 도로라도 제작자에 의해 임의적으로 하나 이상의 폴리라인들로 작성될 수 있다.
상기 로딩하는 단계(S10)는, 상기 도로의 지형 정보가 벡터 맵 형태로 저장된 상기 멥 데이터로부터 도로 정보 생성의 근거가 되는 도로 객체 정보를 로딩할 수 있다.
상기 도로 객체 정보는, 상기 도로상에 존재하는 복수의 도로 각각에 대한 정보를 포함할 수 있다.
상기 도로 객체 정보는, 상기 복수의 도로 각각에 대한 지점 정보, 상기 복수의 도로 각각의 식별 정보, 벡터 맵 상에서의 상기 복수의 도로 각각의 지점의 좌표 값 및 상기 복수의 도로 각각의 좌표 값에 대응하는 각각의 식별 코드 중 어느 하나 이상의 정보를 포함할 수 있다.
상기 추출하는 단계(S20)는, 상기 멥 데이터로부터 로딩한 상기 도로 객체 정보에 포함된 도로 지점 정보를 근거로 상기 도로상에 존재하는 하나 이상의 교차로 후보 지점을 추출할 수 있다.
상기 추출하는 단계(S20)는, 상기 복수의 도로 각각의 도로 지점 정보를 비교하여, 위치가 같은 둘 이상의 도로 지점을 상기 교차로 후보 지점으로 추출할 수 있다.
상기 추출하는 단계(S20)는, 상기 도로 객체 정보에 포함된 상기 복수의 도로 각각의 도로 지점 정보 또는 상기 복수의 도로 각각의 좌표 값을 비교하여, 위치가 같은 둘 이상의 도로 지점을 둘 이상의 도로가 연결된 교차로 후보 지점인 것으로 판단하여, 해당 지점을 상기 교차로 후보 지점으로 추출할 수 있다.
예를 들면, 도 3에 도시된 바와 같이, 좌측 그림에서 위치 좌표가 같은 둘 이상의 지점들을 우측 그림과 같이 교차로 후보 지점(600, 601, 602, 603)으로 추출하게 될 수 있다.
상기 교차로 후보 지점을 근거로 상기 도로 객체 정보를 통합 및 분할하는 단계(S30)는, 상기 교차로 후보 지점의 인접 지점을 근거로 상기 교차로 후보 지점을 포함하는 도로의 통합 및 분할 여부를 판단하여, 상기 도로 객체 정보를 통합 및 분할할 수 있다.
상기 교차로 후보 지점을 근거로 상기 도로 객체 정보를 통합 및 분할하는 단계(S30)는, 상기 추출하는 단계(S20)에서 추출한 상기 교차로 후보 지점을 근거로 상기 복수의 도로의 통합 및 분할 여부를 판단하여, 판단 결과에 따라 상기 도로 객체 정보를 통합 및 분할할 수 있다.
상기 도로 객체 정보를 통합 및 분할하는 단계(S30)는, 상기 교차로 후보 지점 중 인접 지점의 수가 2개 이하인 후보 지점이 있는 경우, 해당 후보 지점을 포함하는 두 개의 도로를 동일한 도로로 판단하여, 해당 도로의 도로 객체 정보를 통합할 수 있다.
예를 들면, 도 4에 도시된 바와 같이, 좌측 그림에서 상기 교차로 후보 지점 중 인접하는 지점의 수가 2개인 이하인 후보 지점에 대해, 우측 그림과 같이 해당 후보 지점(701, 703)을 포함하는 두 개의 도로(701: 700, 702, 703: 702, 704)를 동일한 도로로 판단하여, 해당 후보 지점(701, 703)을 교차로 후보 지점에서 제외하고, 해당 도로(700-702, 702-704)의 도로 객체 정보를 통합하게 될 수 있다.
상기 도로 객체 정보를 통합 및 분할하는 단계(S30)는, 상기 교차로 후보 지점 중 인접 지점의 수가 3개 이상인 후보 지점이 있는 경우, 해당 후보 지점을 포함하는 세 개 이상의 도로를 다른 도로로 판단하여, 해당 도로의 도로 객체 정보를 분할할 수 있다.
예를 들면, 도 5에 도시된 바와 같이, 좌측 그림에서 인접 지점의 수가 3개 이상인 교차로 후보 지점(800, 801)에 대해, 우측 그림과 같이 해당 후보 지점(800, 801)을 포함하는 세 개 이상의 도로(800: Road 1, Road 2, Road 3, 801: Road 1, Road 2, Road 3, Road 4)를 각각 다른 도로로 판단하여, 해당 후보 지점(800, 801)을 교차로 지점으로 판단하고, 해당 도로(Road 1-Road 2-Road 3, Road 1-Road 2-Road 3-Road 4)의 도로 객체 정보를 분할하게 될 수 있다.
상기 생성하는 단계(S40)는, 상기 도로 객체 정보를 통합 및 분할한 결과에 따라 상기 도로 정보를 생성할 수 있다.
상기 도로 정보는, 상기 멥 데이터로부터 로딩한 원시 도로 객체 정보에 상기 교차로 후보 지점을 추출한 결과가 반영된 도로 정보 데이터일 수 있다.
즉, 상기 생성하는 단계(S40)는, 상기 멥 데이터로부터 로딩한 상기 도로 객체 정보를 통합 및 분할한 결과에 따라 상기 도로 정보를 생성함으로써, 상기 교차로 후보 지점 추출 결과 및 이를 기반으로 상기 도로를 통합 및 분할한 결과가 반영된 도로 정보를 생성하게 될 수 있다.
이하, 본 명세서에 개시된 시뮬레이션 방법을 설명하되, 앞서 설명한 상기 처리 방법의 설명과 중복되는 내용은 생략한다.
본 명세서에 개시된 시뮬레이션 방법은, 가상 전투 시뮬레이션을 수행하는 시스템, 장치, 또는 이를 비롯한 시뮬레이션 모듈에 적용되는 시뮬레이션 방법일 수 있다.
상기 시뮬레이션 방법은, 시뮬레이션 환경상의 도로 정보를 처리하는 장치, 또는 모듈의 시뮬레이션 프로그램, 애플리케이션, 소프트웨어 또는 이를 비롯한 알고리즘 로직의 형태로 실시될 수 있다.
상기 시뮬레이션 방법은, 가상 전투 시뮬레이션을 수행하는 시스템, 장치, 또는 이를 비롯한 시뮬레이션 모듈에서, 시뮬레이션 대상에 해당하는 가상 개체의 이동 경로를 탐색하여 시뮬레이션을 수행하는 시뮬레이션 방법일 수 있다.
상기 시뮬레이션 방법은, 도 6에 도시된 바와 같이, 도로의 지형 정보에 대한 맵 데이터를 근거로 도로 정보를 생성하는 단계(S100), 상기 생성된 도로 정보를 근거로 시뮬레이션 대상에 해당하는 가상 개체의 이동 경로를 탐색하는 단계(S200) 및 상기 탐색된 이동 경로에 따라 상기 가상 개체의 시뮬레이션을 수행하는 단계(S300)를 포함한다.
여기서, 상기 도로 정보를 생성하는 단계(S100)는, 도 1에 도시된 바와 같이, 도로의 지형 정보에 대한 맵 데이터로부터 도로 객체 정보를 로딩하는 단계(S10), 상기 도로 객체 정보에 포함된 도로 지점 정보를 근거로 상기 도로상에 존재하는 하나 이상의 교차로 후보 지점을 추출하는 단계(S20), 상기 교차로 후보 지점을 근거로 상기 도로 객체 정보를 통합 및 분할하는 단계(S30) 및 상기 도로 객체 정보를 통합 및 분할한 결과에 따라 도로 정보를 생성하는 단계(S40)를 포함한다.
즉, 상기 생성하는 단계(S100)는, 앞서 설명한 상기 처리 방법의 단계를 포함한다.
상기 생성하는 단계(S100)는, 상기 맵 데이터로부터 로딩한 상기 도로 객체 정보를 근거로 상기 도로상에 존재하는 하나 이상의 교차로 후보 지점을 추출하고, 상기 교차로 후보 지점을 근거로 상기 도로 객체 정보를 통합 및 분할한 결과에 따라 상기 도로 정보를 생성하여, 상기 교차로 후보 지점 추출 결과 및 이를 기반으로 상기 도로를 통합 및 분할한 결과가 반영된 도로 정보를 생성할 수 있다.
상기 탐색하는 단계(S200)는, 상기 교차로 후보 지점을 기반으로 상기 도로를 통합 및 분할한 결과가 반영된 상기 도로 정보를 근거로 시뮬레이션 대상에 해당하는 가상 개체의 이동 경로를 탐색할 수 있다.
상기 탐색하는 단계(S200)는, 상기 도로 정보를 근거로 상기 가상 개체의 이동 경로를 탐색하되, 기설정된 알고리즘에 따라 상기 가상 개체의 이동 경로를 탐색할 수 있다.
상기 기설정된 알고리즘은, 트리(Tree)를 구성하면서 최적의 경로를 찾는 알고리즘으로, 바람직하게는 A*알고리즘일 수 있다.
상기 A* 알고리즘은, 최초 위치를 의미하는 루트(Root) 노드에서 다음 단계에서 가능한 위치들을 각각의 노드로 확장하고, 확장된 노드(즉, 위치)로 이동하기 위한 비용(g(n))과 그 위치에서 목적지까지 이동하는데 필요한 비용(h(n))의 합(f(n))이 가장 작은 노드를 다음 노드로 선택하고, 그 다음 단계에서는 앞서 선택된 노드로부터 이동 가능한 위치들을 각 노드로 확장하고 위와 마찬가지로 각 노드의 비용을 계산한 후, 현재 모든 말단 노드(Leaf Node)의 비용 중 가장 작은 비용을 가지고 있는 노드를 선택하여 확장, 비용 계산, 선택이라는 과정을 반복적으로 수행하여 목적지를 의미하는 노드가 생성되면, 루트 노드부터 목적지 노드까지의 일련의 노드들을 경로로 택하는 탐색 알고리즘일 수 있다.
상기 탐색하는 단계(S200)는, 하나 이상의 상기 가상 개체 각각에 대해 상기 이동 경로를 탐색할 수 있다.
상기 수행하는 단계(S300)는, 상기 탐색하는 단계(S200)에서 탐색된 상기 가상 개체의 이동 경로에 따라, 해당하는 상기 가상 개체의 시뮬레이션을 수행할 수 있다.
이하, 도 7 내지 도 11을 추가로 참조하여, 상기 처리 방법 및 이를 포함하는 상기 시뮬레이션 방법이 SAF(Semi-Automated Forces)를 개체를 사용하는 가상 전투 시뮬레이션 시스템(이하, 시스템이라 칭한다)에 적용되는 구체적인 실시 예를 설명한다.
도 7은 본 명세서에 개시된 도로 정보 처리 방법 및 시뮬레이션 방법의 실시 예에 따른 도로 정보 처리 및 경로 탐색 시스템 구조 개념을 나타낸 개념도이다.
도 8은 본 명세서에 개시된 도로 정보 처리 방법 및 시뮬레이션 방법의 실시 예에 따른 도로 정보 파일의 도로 정보 구조를 나타낸 구조도이다.
도 9는 본 명세서에 개시된 도로 정보 처리 방법 및 시뮬레이션 방법의 실시 예에 따른 도로상 지점 정보 파일의 지점 정보 구조를 나타낸 구조도이다.
도 10은 본 명세서에 개시된 도로 정보 처리 방법 및 시뮬레이션 방법의 실시 예에 따른 도로 및 도로상 지점 정보의 클래스 다이어그램을 나타낸 예시도이다.
도 11(A 내지 D)은 본 명세서에 개시된 시뮬레이션 방법 및 시뮬레이션 방법의 실시 예에 따른 경로 탐색의 예시를 나타낸 예시도(1 내지 4)이다.
상기 처리 방법은, 가상 전투 시뮬레이션을 수행하는 시스템, 장치, 또는 이를 비롯한 시뮬레이션 모듈에서, 시뮬레이션 환경상의 도로 정보를 처리하는 도로 정보 전처리기(이하, 전처리기라 칭한다)에 적용될 수 있고, 상기 시뮬레이션 방법은, 상기 전처리기를 포함하여 가상 전투 시뮬레이션을 수행하는 시스템, 장치, 또는 이를 비롯한 시뮬레이션 모듈에 적용될 수 있다.
즉, 상기 처리 방법은, 상기 전처리기의 도로 정보 처리 방법일 수 있고, 상기 시뮬레이션 방법은, 상기 전처리기를 통해 도로 정보를 처리하고, 이를 통해 가상 전투 시뮬레이션을 수행하는 시뮬레이션 방법일 수 있다.
상기 시스템은, 시뮬레이션 환경상의 도로 정보를 처리하고, 처리 결과에 따라 시뮬레이션 대상에 해당하는 가상 개체의 이동 경로를 탐색하여, 탐색 결과에 따라 상기 가상 개체의 시뮬레이션을 수행하는 시스템, 장치, 또는 이를 비롯한 시뮬레이션 모듈의 시뮬레이션 수행 시스템을 의미한다.
상기 시스템은, SAF 개체가 모의하는 병사나 전차, 장갑차, 트럭이 모의 중에 도로 이동을 수행할 때, 효율적으로 경로를 탐색하기 위해 상기 전처리기를 통해 벡터 맵 파일(맵 데이터)에 있는 도로 정보를 도로 정보 파일과 도로상 지점 정보 파일로 사전에 처리해 놓는다. 일반적으로 벡터 맵의 도로 정보는 폴리라인(polyline)의 형태로 표현된다. 각 폴리라인은 하나의 도로(예, 1번 국도)에 대한 완전한 정보를 포함하지 않고, 벡터 맵 정보의 저작자에 의해 임의로 나누어진 조각난 도로의 정보를 담고 있다.
상기 시스템에서 상기 전처리기는, 기존의 벡터 맵이 가지고 있지 않은 여러 도로가 만나는 교차로들을 찾는다. 그리고, 탐색 알고리즘은 이 교차로들을 기반으로 도로상의 이동 경로를 효율적으로 탐색한다. 도로상의 이동 경로를 탐색하는 과정에서 상기 시스템은, 기본적으로 인공지능 분야에서 최적의 경로를 찾기 위해 널리 사용되고 있는 A* 알고리즘을 기반으로 한다. 특히, 상기 시스템은 전처리 과정에서 생성되는 교차로를 A* 알고리즘의 노드로 사용하는 것을 특징으로 한다. 또한, 이동 시작 시 도로에 진입하고 도로에서 사용자가 지정한 목적지로 이동하기 위한 경로를 결정하기 위해, 상기 시스템에서 사용하는 A* 알고리즘은 경로 탐색 시작 시 개체의 위치와 목적지, 벡터 맵이 제공하는 도로상의 점들을 추가 노드로 사용하여 도로 이동 경로를 결정하는 것을 특징으로 한다.
상기 시스템의 구성은, 도 7에 도시된 바와 같을 수 있다. 도 7에서 원본 벡터 맵 파일(100)(맵 데이터)은, 도로의 지형 정보가 저장되어 있는 지형DB의 벡터 맵 파일을 의미한다. 상기 전처리기(101)는 상기 원본 백터 맵 파일(100)에 있는 도로의 지형 정보에서 도로를 통합 및 분할하는 기능을 통해, 교차로 정보가 포함된 도로 정보 파일(102)과 도로상 지점 정보 파일(103)을 생성한다. 상기 도로 정보 파일(102)은 도로의 식별코드와 이 도로에 속하는 도로 위에 있는 지점(이하 도로상 지점)들의 식별코드 목록에 대한 정보를 포함한다. 상기 도로상 지점 정보 파일(103)은 상기 벡터 맵 파일(100)에서 폴리라인(Polyline)을 구성하는 점들로 도로 위에 있는 각 점에 대한 좌표 값과 이 점의 식별코드, 그리고 이 점이 속하는 도로(들)의 식별코드 목록을 포함한다. 도로상의 점에서 이동 가능한 다른 점들이 세 개 이상이면, 그 점은 교차로가 된다.
시뮬레이션 모의 시 도로상의 이동 경로를 탐색하는 과정은, 기설정된 알고리즘을 기반으로 경로를 탐색하되, 바람직하게는 A* 알고리즘(105)을 기반으로 한다. 전처리 과정에서 생성되는 교차로 정보를 상기 A* 알고리즘(105)의 주요 확장 노드로 사용한다. 또한, 이동 시작 시 도로에 진입하고 도로에서 사용자가 지정한 목적지로 이동하기 위한 경로를 결정하기 위해, 경로 탐색 시작 시 개체의 위치와 목적지, 벡터 맵이 제공하는 도로상의 점들을 상기 A* 알고리즘에 추가 노드로 사용한다.
다음은 시뮬레이션 모의 시 SAF 개체의 이동 행위 모델(104)과 A* 알고리즘(105) 사이의 과정을 설명한다. 먼저 모의가 시작되면, 상기 이동 행위 모델(104)은 사전에 생성/준비된 상기 도로 정보 파일(102)과 상기 도로상 지점 정보 파일(103)을 로딩하여 메모리상에 경로탐색 데이터를 로딩한다. 그리고 시뮬레이션 진행 중에 이동을 위해 경로를 탐색할 필요가 있을 때, 상기 A* 알고리즘에 경로 탐색을 요청(106)함으로써 경로 탐색을 시작한다. 경로 탐색 요청시 A* 알고리즘은 상기 이동 행위 모델(104)의 두 callback 함수를 사용하여, 탐색 공간을 확장하고(107), 탐색 공간의 노드가 나타내는 위치로 이동하기 위한 비용을 계산한다(108). 여기서, 상기 callback 함수를 사용하는 이유는 노드의 확장과 이동 비용의 산정이 상기 이동 행위 모델(104)에 따라 다르게 적용될 수 있기 때문이다. 예를 들어, 비교적 이동의 자유도가 높은 병사의 이동 비용 계산 방식과 이동의 자유도가 제약되는 차량의 이동 계산 방식은 다를 수 있기 때문이다. 이는, 모델 개발자에 의해 결정되는 요소로, 상기 시스템에서는 확장성을 위해 상기 이동 행위 모델(104)과 상기 A*알고리즘(105) 사이에 이와 같은 인터페이스(경로탐색 요청 및 상기 두 개의 callback 함수)를 정의한다.
상기 시스템의 실시 예의 상세한 설명을 위해 교차로가 포함된 도로 정보를 저장하기 위한 파일과 데이터의 구조를 명확히 설명한다. 그리고 구현 시스템이 이 두 종류의 파일을 생성하고, SAF 개체가 도로 경로를 탐색하는 과정을 설명한다.
도 8은 상기 전처리기(101)가 전처리 과정에서 생성하는 상기 도로 정보 파일(102)에 저장되는 하나의 도로를 나타내는 정보의 구조도이다. 상기 도로 정보 파일(102)의 구조는 먼저 도로 식별코드(300)가 기록되고 다음으로 도로에 포함되는 총 도로상 지점 개수(301)가 기록된다. 그리고 이어서 도로상 지점 식별코드(302)가 총 도로상지점 개수(301) 만큼 위치한다. 이것은 하나의 폴리라인으로 표현되는 도로를 의미한다. 이러한 레코드(300, 301, 302)는 도로의 개수만큼 반복적으로 상기 도로 정보 파일(102)에 저장된다.
도 9는 상기 전처리기(101)가 전처리 과정에서 생성하는 상기 도로상 지점 정보 파일(103)에 저장되는 도로상의 지점 정보의 구조이다. 도로상의 지점은 식별코드(400)를 가진다. 이 식별코드는 상기 도로 정보 파일(102)에 저장된 도로 정보에서 도로상 지점 식별코드(302)에 의해 참조된다. 도로상의 지점은 공간상의 위치 정보(401)를 가진다. 여기에서 Vector3는 8bytes double형으로 3D공간의 (x, y, z) 좌표 값의 구조체이다. 도로상의 지점은 인접한 다른 도로상의 지점에 대한 식별코드를 가지고 있다. 여기에서 ‘인접’이라 함은 물리적으로 도로로 연결되어 있음을 의미한다. 이를 위해, 도로상의 지점이 인접해 있는 다른 지점의 수(402)가 기록된다. 그리고 이 개수만큼 인접한 다른 지점의 식별코드(403)들이 기록된다. 또한 도로상의 지점은 자신이 속한 도로의 식별코드 정보를 가지고 있다. 이것은 자신이 속한 도로의 개수(404)를 먼저 저장하고 각 도로의 식별코드(405)를 이어서 저장한다.
도 10은 상기 전처리기(101)가 도로 정보를 처리하고, 상기 이동 행위 모델(104)이 상기 도로 정보 파일(102)과 상기 도로상 지점 정보 파일(103)로부터 메모리에 로딩하는 도로 정보를 위한 클래스 다이어그램이다. 도로상의 지점(RoadPointBase)(500)은 본 발명에서 사용하는 모든 도로상의 지점을 나타내는 추상클래스로 지점 정보가 공통적으로 가져야 하는 식별코드(501)와 좌표(502), 인접 지점들에 대한 정보(즉, 인접 지점의 개수와 인접 지점의 식별코드들)(503)를 속성으로 가진다. 인접 지점들의 식별코드는 인접한 다른 지점을 참조한다. 상기 시스템에서는 도로상의 지점을 교차로(504)와 일반 지점(506)으로 구분한다. 이들은 모두 RoadPointBase 클래스를 상속받는다. 따라서 이들은 RoadPointBase의 속성에 추가적으로 다른 속성을 가지도록 정의된다. 교차로(Crossroad) 클래스는 이러한 추가 속성으로 그것이 속한 도로의 식별코드들(505)을 속성으로 갖는다. 일반 지점(RoadPoint) 클래스는 하나의 도로에만 속하기 때문에 하나의 도로의 식별코드(507)를 추가 속성으로 갖는다. 도로상의 지점이 속한 도로의 식별코드는 그 지점이 속한 도로를 참조한다. 도로(Road)(508)는 식별코드(509)와 이 도로상의 지점 목록(510)을 속성으로 갖는다. 도로상의 지점 목록에 있는 지점의 식별코드는 도로상의 지점을 참조한다.
[도로의 지형 정보에 대한 맵 데이터를 근거로 도로 정보를 생성하는 단계(
S100
)]
상기 전처리기(101)가 벡터 맵의 도로 정보를 처리하는 과정은 다음과 같다.
1) 도로 정보 로딩(=> 도로의 지형 정보에 대한 맵 데이터로부터 도로 객체 정보를 로딩하는 단계(S10))
지형DB의 벡터 맵 파일에서 도로 폴리라인 정보로부터 Road와 RoadPoint 클래스의 객체를 생성한다.
2) 교차로 후보 생성(=> 상기 도로 객체 정보에 포함된 도로 지점 정보를 근거로 상기 도로상에 존재하는 하나 이상의 교차로 후보 지점을 추출하는 단계(S20))
1)에서 로딩된 RoadPoint 객체들의 위치 정보를 비교해서 서로 위치가 같으면, Crossroad 객체를 생성하고, 위치가 같은 두 RoadPoint 객체들을 사용하여 위치와 인접 지점 값, 속해있는 도로 식별코드를 설정한다. 도 3은 도 2에 도시된 바와 같은 벡터 맵 정보로부터 이 과정에서 선택되는 교차로 후보들(600, 601, 602, 603)을 보여준다.
3) 도로 통합(=> 상기 교차로 후보 지점을 근거로 상기 도로 객체 정보를 통합 및 분할하는 단계(S30))
생성된 교차로 후보들(즉, Crossroad 객체들) 중에서 인접 지점의 수가 2이하이면, 이 위치를 포함하고 있는 두 개의 Road 객체들을 통합한다. 도 4는 도 3에서 선택된 교차로 후보 정보를 사용하여 도로를 통합하는 예이다. 도 3의 두 교차로 후보들(602과 603)은 인접 지점의 수가 2개로 동일한 로드에 속하는 것으로 간주해야 한다. 따라서, 벡터 맵으로부터 생성한 Road 객체들 중 세 개의 객체들(700과 702, 704)이 하나의 도로로 통합하고, 여기에 사용된 교차로 후보들(701과 703)은 후보에서 제외된다.
4) 도로 분할(=> 상기 교차로 후보 지점을 근거로 상기 도로 객체 정보를 통합 및 분할하는 단계(S30))
생성된 교차로 후보들 객체 중에서 인접 지점의 수가 3개 이상이면, 이 Crossroad를 끝점으로 Road를 분할한다. 도 5는 교차로 후보 정보를 사용한 도로 분할 과정이다. 이 과정은 도로 탐색 알고리즘을 단순화하기 위해 교차로를 중심으로 도로를 나누는 과정이다. 3)의 과정을 거쳐서 남아 있는 교차로 후보들은 실질적인 교차로가 된다. 도 5의 좌측의 두 교차로들(800과 801)이 이에 해당한다. 도 2에 도시된 지형DB의 벡터 맵 정보에 있는 폴리라인들의 예시와 달리, 실제 데이터는 도 5의 상단 그림에서 보여주는 예시와 같이 도로 중간에 있는 점일 수 있다. 이 때, 이 교차로의 두 개의 이웃 교차로 또는 도로 끝점은 동일 도로에 연결되어 있고 하나의 이웃 교차로는 다른 도로에 연결되어 있게 된다. 또한, 도 5의 하단과 같이 다른 케이스를 만들어 낼 수 있다. 이는 도로 경로 탐색 시, 교차로로부터 노드를 확장하는 과정을 복잡하게 한다. 본 발명에서는 이를 단순화하기 위해 도 5의 우측 그림과 같이 교차로를 기준으로 도로를 분할한다.
5) 도로 정보 저장/생성(=> 상기 도로 객체 정보를 통합 및 분할한 결과에 따라 도로 정보를 생성하는 단계(S40))
상기 과정을 거쳐 생성된 Road 객체와 RoadPoint 객체, Crossroad 객체들이 도 8과 9에 설명된 형식에 맞추어 상기 도로 정보 파일(102)과 상기 도로상 지점 정보파일(103)에 저장된다.
[상기 생성된 도로 정보를 근거로 시뮬레이션 대상에 해당하는 가상 개체의 이동 경로를 탐색하는 단계(S200)]
이 과정을 거쳐 상기 도로 정보 파일(102)과 상기 도로상 지점 정보 파일(103)이 생성되면, 전투 모의 시에 SAF 개체가 이를 로딩하여 도로 이동시 경로 탐색을 수행한다. 이때 상기 이동 행위 모델(104)이 상기 A*알고리즘(105)을 사용하여 경로를 탐색하는 과정은 다음과 같다.
0) 초기 조건은 도 11A와 같이 주어질 수 있다. 도 10A에서 삼각형 모양의 Start는 SAF 개체의 현재 위치를, X자로 표시된 End는 목적지를 의미한다. 지도상의 빨간색 원들은 전처리과정에서 획득된 교차로를 나타낸다. 도 11A에서 교차로가 아닌 도로상의 지점은 도면의 단순화를 위해 생략한다.
1) 상기 이동행위모델(104)은 자신의 현재 위치와 목적지로부터 도로상에 시작 지점과 목적 지점을 찾는다. 즉, 현재 위치와 목적지에 가장 가까운 두 RoadPoint 객체를 찾는 것을 의미한다. 도 11B는 이 과정을 통해 검색된 도로상의 시작 지점(Start on road)과 목적 지점(End on road)을 보여준다.
2) 도로상의 시작 지점과 목적 지점을 가지고 상기 A* 알고리즘(105)을 수행한다. 이때 상기 A*알고리즘(105)의 루트 노드는 시작 지점이 되고, 목적지까지 노드를 확장하면 A* 알고리즘이 종료된다. 시작 지점에서 확장되는 노드는 시작 지점을 포함하고 있는 도로(Road 개체)의 양 끝점이 된다. 그리고 상단의 끝점으로 이동했을 때, 목적지점까지 이동하는데 요구되는 비용이 하단의 끝점으로 이동했을 때보다 적다면, 이 상단 끝점에서 인접한 좌우의 교차로로 노드를 확장한다. 노드 확장과 비용 계산은 각각 도 7에서 설명된 노드 확장 요청 callback(107)과 평가 함수 callback(108)의 인터페이스를 통해 수행된다. 이와 같은 방법으로 노드를 확장하면서, 목적 지점에 도착하면, A* 알고리즘이 종료되고 시작 지점부터 목적 지점까지의 경로를 획득한다. 도 11C는 도 11B의 시작 지점과 목적 지점을 가지고 시작한 A*알고리즘의 결과를 보여준다.
3) 상기 이동 행위 모델(104)에서 현재 위치(Start)와 최종 목적지(End)를 경로에 추가한다. 도 11D는 이 과정을 통해 획득된 도로 경로 탐색 결과를 보여준다. 여기에 이동 경로의 정확도를 향상시키기 위해, 상기 A* 알고리즘(105)을 통해 검색된 교차로와 교차로를 연결하는 도로상 지점들을 Road와 RoadPoint 개체로부터 검색하여 이를 교차로 사이의 이동 경로에 추가 도로를 따라 이동할 수 있는 최종 획득한다.
[상기
탐색된
이동 경로에 따라 상기 가상 개체의 시뮬레이션을 수행하는 단계(
S300
)]
상술한 바와 같은 과정으로 이동 경로를 탐색하여, 탐색된 이동 경로에 따라 시뮬레이션을 수행한다.
상술한 바와 같은 상기 시스템의 시뮬레이션 과정을 요약하면, 모의 전 단계(=>도로 정보 처리 방법)와 모의 시 SAF 개체가 경로 탐색을 수행(=>시뮬레이션 방법)하는 모의 단계로 구분되어, 모의 전 단계에서는 지형DB의 벡터 맵에 포함된 도로 정보를 가공하여 효율적인 도로 경로 탐색을 지원하는 포맷의 도로정보파일과 도로상지점정보파일을 생성한다. 전투 모의가 시작되면, SAF 개체의 이동행위모델은 상기 두 파일을 읽어 그 정보를 메모리에 로딩하여 경로 탐색을 준비한다. SAF 개체가 이동을 시작할 때, SAF 개체의 이동행위모델은 A*알고리즘에 경로 탐색 기능을 호출한다. A*알고리즘은 경로 탐색 기능을 요청한 이동행위모델이 제공하는 두 개의 callback 함수를 사용하여 탐색 공간을 확장하고, 탐색 공간의 각 노드들의 비용을 계산한다.
상술한 바와 같은 상기 시스템의 실시 예에 의하면, 본 명세서에 개시된 처리 방법 및 시뮬레이션 방법은, 도로상의 교차로 지점 정보를 기반으로 도로 정보를 처리하고, 교차로 지점 정보를 기준으로 경로를 탐색함으로써, SAF 개체가 도로 이동을 수행함에 있어서 광범위한 영역에서 효율적인 경로 탐색 방법과 시스템을 제공하게 되어, 대규모 전투 모의를 위한 시나리오 작성에서 개체의 경로 설정에 필요한 시간을 감소시키는 편의를 제공할 수 있고, 또한 SAF 개체를 사용한 대규모 전투 모의에서 동시 다발적으로 호출되는 도로 경로 탐색을 지원하기 위해 요구되는 메모리 용량 및 응답시간을 향상시킬 수 있는 효과가 있다.
이상에서 설명한 본 발명의 바람직한 실시 예들은 기술적 과제를 해결하기 위해 개시된 것으로, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자(당업자)라면 본 발명의 사상 및 범위 안에서 다양한 수정, 변경, 부가 등이 가능할 것이며, 이러한 수정 등은 이하의 특허청구범위에 속하는 것으로 보아야 할 것이다.
100: 원본 벡터 맵 파일(맵 데이터)
101: 도로 정보 전처리기
102: 도로 정보 파일
103: 도로상 지점 정보 파일
104: SAF 개체 이동 행위 모델
105: A*알고리즘
101: 도로 정보 전처리기
102: 도로 정보 파일
103: 도로상 지점 정보 파일
104: SAF 개체 이동 행위 모델
105: A*알고리즘
Claims (11)
- 도로의 지형 정보에 대한 맵 데이터로부터 도로 객체 정보를 로딩하는 단계;
상기 도로 객체 정보에 포함된 도로 지점 정보를 근거로 상기 도로상에 존재하는 하나 이상의 교차로 후보 지점을 추출하는 단계;
상기 교차로 후보 지점을 근거로 상기 도로 객체 정보를 통합 및 분할하는 단계; 및
상기 도로 객체 정보를 통합 및 분할한 결과에 따라 도로 정보를 생성하는 단계;를 포함하고,
상기 도로 객체 정보를 통합 및 분할하는 단계는,
상기 교차로 후보 지점의 인접 지점을 근거로 상기 교차로 후보 지점을 포함하는 도로의 통합 및 분할 여부를 판단하여, 상기 도로 객체 정보를 통합 및 분할하되,
상기 교차로 후보 지점 중 인접 지점의 수가 2개 이하인 후보 지점이 있는 경우,
해당 후보 지점을 포함하는 두 개의 도로를 동일한 도로로 판단하여, 해당 도로의 도로 객체 정보를 통합하는 것을 특징으로 하는 도로 정보 처리 방법. - 제1항에 있어서,
상기 도로 객체 정보는,
상기 도로상에 존재하는 복수의 도로 각각에 대한 정보를 포함하는 것을 특징으로 하는 도로 정보 처리 방법. - 제2항에 있어서,
상기 하나 이상의 교차로 후보 지점을 추출하는 단계는,
상기 복수의 도로 각각의 도로 지점 정보를 비교하여, 위치가 같은 둘 이상의 도로 지점을 상기 교차로 후보 지점으로 추출하는 것을 특징으로 하는 도로 정보 처리 방법. - 삭제
- 삭제
- 제1항에 있어서,
상기 도로 객체 정보를 통합 및 분할하는 단계는,
상기 교차로 후보 지점 중 인접 지점의 수가 3개 이상인 후보 지점이 있는 경우,
해당 후보 지점을 포함하는 세 개 이상의 도로를 다른 도로로 판단하여, 해당 도로의 도로 객체 정보를 분할하는 것을 특징으로 하는 도로 정보 처리 방법. - 도로의 지형 정보에 대한 맵 데이터를 근거로 도로 정보를 생성하는 도로 정보 생성 단계;
상기 도로 정보를 근거로 시뮬레이션 대상에 해당하는 가상 개체의 이동 경로를 탐색하는 단계; 및
상기 이동 경로에 따라 상기 가상 개체의 시뮬레이션을 수행하는 단계;를 포함하되,
상기 도로 정보 생성 단계는,
상기 맵 데이터로부터 도로 객체 정보를 로딩하는 단계;
상기 도로 객체 정보에 포함된 도로 지점 정보를 근거로 상기 도로상에 존재하는 하나 이상의 교차로 후보 지점을 추출하는 단계;
상기 교차로 후보 지점을 근거로 상기 도로 객체 정보를 통합 및 분할하는 단계; 및
상기 도로 객체 정보를 통합 및 분할한 결과에 따라 상기 도로 정보를 생성하는 단계;를 포함하고,
상기 도로 객체 정보를 통합 및 분할하는 단계는,
상기 교차로 후보 지점의 인접 지점을 근거로 상기 교차로 후보 지점을 포함하는 도로의 통합 및 분할 여부를 판단하여, 상기 도로 객체 정보를 통합 및 분할하되,
상기 교차로 후보 지점 중 인접 지점의 수가 2개 이하인 후보 지점이 있는 경우,
해당 후보 지점을 포함하는 두 개의 도로를 동일한 도로로 판단하여, 해당 도로의 도로 객체 정보를 통합하는 것을 특징으로 하는 시뮬레이션 방법. - 제7항에 있어서,
상기 이동 경로를 탐색하는 단계는,
기설정된 알고리즘에 따라 상기 이동 경로를 탐색하되,
상기 기설정된 알고리즘은,
A* 알고리즘인 것을 특징으로 하는 시뮬레이션 방법. - 제7항에 있어서,
상기 도로 객체 정보는,
상기 도로상에 존재하는 복수의 도로 각각에 대한 정보를 포함하는 것을 특징으로 하는 시뮬레이션 방법. - 제9항에 있어서,
상기 하나 이상의 교차로 후보 지점을 추출하는 단계는,
상기 복수의 도로 각각의 도로 지점 정보를 비교하여, 위치가 같은 둘 이상의 도로 지점을 상기 교차로 후보 지점으로 추출하는 것을 특징으로 하는 시뮬레이션 방법. - 제7항에 있어서,
상기 도로 객체 정보를 통합 및 분할하는 단계는,
상기 교차로 후보 지점 중 인접 지점의 수가 3개 이상인 후보 지점이 있는 경우,
해당 후보 지점을 포함하는 세 개 이상의 도로를 다른 도로로 판단하여, 해당 도로의 도로 객체 정보를 분할하는 것을 특징으로 하는 시뮬레이션 방법.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160146796A KR101947646B1 (ko) | 2016-11-04 | 2016-11-04 | 도로 정보 처리 방법 및 시뮬레이션 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160146796A KR101947646B1 (ko) | 2016-11-04 | 2016-11-04 | 도로 정보 처리 방법 및 시뮬레이션 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20180050074A KR20180050074A (ko) | 2018-05-14 |
KR101947646B1 true KR101947646B1 (ko) | 2019-02-13 |
Family
ID=62188076
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020160146796A KR101947646B1 (ko) | 2016-11-04 | 2016-11-04 | 도로 정보 처리 방법 및 시뮬레이션 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101947646B1 (ko) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102204861B1 (ko) * | 2020-07-22 | 2021-01-19 | 주식회사 네비웍스 | 시나리오 리모델링장치 및 그 동작 방법 |
CN113946867B (zh) * | 2021-10-21 | 2024-05-31 | 福建工程学院 | 基于空间影响力的位置隐私保护方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100988709B1 (ko) * | 2008-06-03 | 2010-10-18 | 주식회사 포스코아이씨티 | 교통흐름 시뮬레이션 시스템 |
JP5152306B2 (ja) * | 2010-11-24 | 2013-02-27 | 株式会社デンソー | 道路推定装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3210609B2 (ja) * | 1997-06-20 | 2001-09-17 | 松下電器産業株式会社 | 到達可能範囲表示装置 |
KR100485867B1 (ko) * | 2002-11-13 | 2005-04-28 | 에스케이 주식회사 | 차량의 경로 탐색 시스템 및 그 방법 |
KR100793874B1 (ko) * | 2005-11-07 | 2008-01-15 | 현대자동차주식회사 | 텔레매틱스 경로 안내 시스템 및 방법 |
-
2016
- 2016-11-04 KR KR1020160146796A patent/KR101947646B1/ko active IP Right Grant
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100988709B1 (ko) * | 2008-06-03 | 2010-10-18 | 주식회사 포스코아이씨티 | 교통흐름 시뮬레이션 시스템 |
JP5152306B2 (ja) * | 2010-11-24 | 2013-02-27 | 株式会社デンソー | 道路推定装置 |
Also Published As
Publication number | Publication date |
---|---|
KR20180050074A (ko) | 2018-05-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108763287B (zh) | 大规模可通行区域驾驶地图的构建方法及其无人驾驶应用方法 | |
US8935096B2 (en) | Apparatus for fast path search by learning heuristic function and method thereof | |
CN102016503B (zh) | 基于道路信息显示三维地图的系统及方法 | |
JP2010160591A (ja) | 空間データ管理装置、空間データ管理方法、および、空間データ管理プログラム | |
CN109737965B (zh) | 一种三维虚拟场景下的导航路径最优选择的方法 | |
CN111539112B (zh) | 一种用于自动驾驶车快速查找交通对象的场景建模方法 | |
KR101947646B1 (ko) | 도로 정보 처리 방법 및 시뮬레이션 방법 | |
WO2022161368A1 (zh) | 空间二元组的确定方法、装置、计算机设备和存储介质 | |
US10824775B2 (en) | Simulation method and device for determining collision between objects | |
CN116127802B (zh) | 3d视景展示cae仿真结果的方法、装置及系统 | |
KR20150132177A (ko) | 드로잉 데이터 생성 장치 및 드로잉 장치 | |
CN111047682A (zh) | 一种三维车道模型生成方法及系统 | |
Tienaah et al. | Contextual douglas-peucker simplification | |
CN113761647A (zh) | 一种无人集群系统的仿真方法及系统 | |
JP6253053B2 (ja) | データ探索装置、データ探索装置の制御方法およびデータ探索装置の制御プログラム | |
JP2017156251A (ja) | 地形変化点抽出システム、及び地形変化点抽出方法 | |
US11238649B2 (en) | Method and system for hybrid modeling using geometric facets | |
CN116246069B (zh) | 自适应地形点云滤波的方法、装置、智能终端及存储介质 | |
CN115920401A (zh) | 寻路方法、装置、电子设备及可读存储介质 | |
CN115957505A (zh) | 游戏中的寻路方法、装置、计算机设备及可读存储介质 | |
CN113656979B (zh) | 路网数据生成方法、装置、电子设备及存储介质 | |
CN105677843A (zh) | 一种自动获取宗地四至属性的方法 | |
KR101314054B1 (ko) | 절토 사면 시뮬레이션을 위한 페트리 넷 모델링 방법 | |
KR102202874B1 (ko) | 도보 네트워크 및 측위 db 확장 방법 및 시스템 | |
CN113128122A (zh) | 基于bim的市政公路检测方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E902 | Notification of reason for refusal | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |