공개데이터 도로구간 정보를 활용한 무인지상차량의 전역경로 생성 방법

A Method for Creating Global Routes for Unmanned Ground Vehicles Using Open Data Road Section Data

Article information

J. KIMS Technol. 2023;26(1):31-43
Publication date (electronic) : 2023 February 05
doi : https://doi.org/10.9766/KIMST.2023.26.1.031
1) Department of Mechatronics Engineering Engineering, Chungnam National University, Korea
2) Unmanned System Team, Hyundai Rotem Co., Ltd., Korea
윤승재1),2), 원문철1),
1) 충남대학교 메카트로닉스공학과
2) 현대로템㈜ 무인체계팀
Corresponding author, E-mail: nt1109@empal.com
Received 2022 October 31; Revised 2023 January 30; Accepted 2023 January 31.

Trans Abstract

In this paper, we propose a method for generating a global path for an unmanned vehicle using public data of road section information. First, the method of analyzing road section information of the Ministry of Land, Infrastructure and Transport is presented. Second, we propose a method of preprocessing the acquired road section information and processing it into meaningful data that can be used for global routes. Third, we present a method for generating a global path using the preprocessed road section information. The proposed method has proven its effectiveness through actual autonomous driving experiments of unmanned ground vehicles.

1. 서 론

무인지상차량의 자율주행 고도화를 위해서는 상용화된 네비게이션 시스템[1]과 같이 출발점에서 목표점까지의 경로 계획이 필요하다. 상용 자동차의 경우 도로정보와 실시간 교통정보를 기반으로 최적화된 경로가 제공되어 이를 유인 또는 무인 운전을 통해 주행하게 된다. 군사용 차량의 경우 포장 도로 외에도 산악과 같은 도로정보가 부족한 비포장 환경을 주행해야 하는 경우가 많으나, 현재 두 환경을 모두 주행할 수 있는 경로계획 시스템이 미비한 상태이다. 기존 전역경로 생성 시스템[2]의 경우 야지/험지에 대한 도로정보 뿐만 아니라 개활지 및 주행 불가한 영역에 정보가 부재하기 때문이다. 이를 해결하기 위해 본 논문에서는 지속적으로 업데이트 되는 공개데이터 도로정보 획득 및 분석 방법과 함께 특수 환경의 도로정보를 융합하여 활용하는 방법을 제안한다.

2장과 3장에서는 공개데이터 도로구간 정보 획득과 가공 방법을 다룬다. 4장에서는 도로구간 정보를 활용한 전역경로 생성 방법을 제시하고, 실제 자율주행 차량에 적용하여 제안한 방법의 타당성을 증명한다.

2. 공개데이터 기반 도로구간 정보 획득

본 논문에서 Shape은 N개의 포인트로 이루어진 선 또는 다각형 형태의 하나의 도로구간을 의미한다. 지도상 가시화는 WGS84 좌표계를 사용하였으며, 그 외 모든 데이터 처리는 중부원점(127°E, 38°N)의 기준을 가지는 TM 좌표계[3]를 사용하였다.

2.1 국토교통부 공개데이터 도로구간 파일

공공데이터 포털 사이트에는 도로와 관련된 다수의데이터[4] 들이 존재하며, 본 논문에서는 국토교통부의 도로구간 파일을 활용하였다. http://data.nsdi.go.kr에서 제공하는 해당 자료는 저작물 이용허락 표시제도에 의해 저작자 표시, 비영리 이용, 변경 금지의 의무를 가진다. 위 사이트에 게재된 도로구간 정보는 지속적으로 갱신되고 있으며, 본 논문은 2022년 6월 29일에 업로드 된 데이터를 사용하였다.

도로구간 파일은 Ddf, Shp, Shx, Prj로 구성되어 있으며, 확장자별 주요 데이터는 Table 1과 같다.

Road section file configuration

2.2 도로구간 데이터 획득

Fig. 1은 도로구간 데이터 획득 흐름도 이다.

Fig. 1.

Road section data acquisition flow

Prj 파일에는 “PROJECTION” 정보와 “false_easting” 및 “false_northing”에 정보가 포함되어 있다. Shx 파일은 (100 + 도로 개수 × 8) Byte 크기로 존재 하며, 100바이트 오프셋 이후 각 도로에 대한 영역정보와 도로 ID가 8바이트 단위로 반복되어 적재되어 있다. Shp 파일에는 각 도로별로 32바이트 오프셋 이후에 각 4바이트로 구성된 파트 번호와 도로 구성 포인트 수, 그리고 16바이트로 구성된 TM 좌표의 포인트가 도로 구성 포인트 수만큼 반복되어 적재되어 있다.

Table 2는 서울시와 서울시 이외 시/도에 대한 공공데이터 도로정보의 Prj파일 내용이다. 서울시를 제외한 나머지 도시들은 false_easting과 false_northing이 각각 200000.0과 500000.0인 TM 좌표계를 기반으로 하고, 단위는 meter라고 명시되어 있다. 그러나 서울의 경우 해당 정보가 명확히 기재되어 있지 않다.

Prj file of seoul and non-seoul

이에 본 논문에서는 서울시 도로구간 정보에 서울시 이외 지역과 동일한 좌표계 기준 및 단위를 임의 적용하였다. 그 결과 서울시와 인접한 인천, 경기, 강원 경계 구역에서 도로가 자연스럽게 연결되는 것을 확인 할 수 있었다. Fig. 2는 인천시(좌)의 10939440번 도로구간 정보와 서울시(우)의 7636282번 도로구간 정보를 보여준다.

Fig. 2.

Seoul-gyeonggi border road section data

Table 3은 서울시 도로구간 정보에 대한 Shx, Shp, Dbf 파일 데이터의 앞쪽 일부 구간을 보여준다. Shx 파일 24바이트 부분에서 보여주는 것과 같이 서울시에는 총 67468개의 도로구간 정보가 식별되어 있다. Dbf파일은 RN_CD / ROAD_BT / ROAD_LT / WDR_RD_CD 키를 통해 도로 ID / 폭 / 길이 / 광역 도로 코드를 제공한다. 서울시 첫 번째 도로구간은 도로 ID 50, 도록 폭 2.0미터, 도로 길이 20.9미터로 확인되었다.

Example of seoul road section file

전국 17개 시도의 Prj, Shp, Shx, Dbf 파일을 읽어 1~7557개의 포인트로 이루어진 총 867088개의 Shape 을 획득하였으며, Fig. 3은 해당 전국 도로구간 데이터를 가시화한 결과이다.

Fig. 3.

Acquired road section data

3. 기본 도로정보 가공

Fig. 4는 획득된 도로구간 정보 전처리 및 야지/험지 등과 같은 특수 환경 Shape 추가를 거쳐 가공된 도로정보를 생성하는 과정을 보여준다.

Fig. 4.

Road section data processing flow

3.1 Shape 전처리

Shape 전처리는 중복포인트 제거, 단일 포인트 제거, 분할, 포인트 재정렬, 중복 표기 구간 제거, 지그재그 포인트 제거, 재귀 포인트 연결, Shape간 연결 지점에 대한 포인트 생성 등의 과정이 수행된다. 전처리를 거친 도로구간 정보는 DB 형태로 저장되어, 전역 경로 계획에 사용 될 수 있도록 한다.

3.1.1 중복 및 단일 포인트 제거

하나의 Shape 내에 인접한 포인트가 연속적으로 존재 할 경우, 해당 중복 포인트들을 제거한다. 이는 시스템 메모리 사용량을 감소시킬 수 있으며, 도로기반 전역경로 생성 시 불필요한 연산을 줄여 속도 향상을 기대할 수 있기 때문이다. Fig. 5는 중복 포인트를 제거 흐름을 나타낸다. Shape을 이루는 포인트들 간 거리가 0.01미터 이하 일 경우 중복 포인트로 판정하였다. 이때 Shape 중간 번호를 기준하여 앞쪽에서는 검사지점의 뒷 포인트를, 뒷 부분에서는 검사지점의 앞 포인트를 제거함으로서 Shape 첫점과 마지막 점은 변동 되지 않도록 하였다.

Fig. 5.

Duplicate point removal flow

Fig. 6은 위 방법을 통해 33095번 도로구간에 대한 중복 포인트 제거 결과를 보여준다. 좌측 그림과 같이 0번과 1번 포인트가 동일한 좌표를 가지고 있었으며, 규칙에 따라 1번 포인트를 제거되어 우측 그림과 같이 중복된 포인트가 없는 Shape이 만들어진다.

Fig. 6.

Example of removing duplicate points

전역경로에 사용될 Shape은 최소 2점 이상으로 이루어져야 한다. 단일 포인트로 구성된 Shape은 포인트 간의 방향성이 존재하지 않아 Shape간의 연결 정보를 생성 할 수 없기 때문이다. 단순 반복문을 통해 구성 포인트 수가 1개 이하인 Shape을 제거 한다.

3.1.2 Shape 구성 포인트 재정렬

간혹 Shape을 이루는 포인트가 연속적이지 않고, 일 부 영역이 뒤죽박죽으로 섞여 있는 도로구간이 있기 에 포인트 재정렬 과정[5]이 반드시 필요하다. 구성 포 인트를 섞어서 만들 수 있는 모든 경우의 수 (N! 개) 를 검사하는 것도 방법 일 수 있다. 하지만 재정렬이 불필요한 Shape도 모든 경우의 수를 검사하는 것은 매우 비효율적이다. 본 논문에서는 연속 구간의 포인 트들을 다른 구간으로 옮겼을 때, 경로 거리가 감소하 는지를 검사하여 최적 포인트 연결을 만드는 알고리 즘을 사용하였다. N개의 포인트로 구성된 Shape에서 이동 재배치 가능한 경우의 수는 k=2Nk(k1) 이하 이므로 상대적으로 빠른 속도로 정렬이 가능하다. 예 를 들어 4개의 포인트(PN = 4)로 구성된 Shape이 있 다고 가정한다. 이때 단일 포인트의 위치 이동은 12가 지(PN*(PN-1)), 연속된 두 포인트의 위치 이동은 6가 지((PN-1)*(PN-2)), 연속된 세 포인트의 위치 이동은 2 가지((PN-2)*(PN-3))의 방법이 가능하여 총 20개의 경 우의 수가 존재하고, 이중 일부는 중복된 경우의 수에 해당된다. (N!) 과 k=2Nk(k1) 연산 횟수는 포인트 개 수 N이 커질수록 기하급수적 차이를 가진다.

Fig. 7의 상단 그림은 초기 상태로서 Shape 길이가 12.25이다. 초기 상태에서 a~b 구간을 포인트 d 뒤로 옮길 경우 중단 그림과 같은 결과를 얻게 되며, 해당 Shape 길이는 10.64로 줄어들게 된다. 하단 그림은 중단 그림 상태에서 f를 포인트 b의 뒷부분으로 옮긴 것으로 Shape 길이가 8.81이 되고, 더 이상 길이가 감소하지 않게 되어 재정렬 함수가 종료된다.

Fig. 7.

Example of reordering shape points

Fig. 8은 24526576번 도로구간 Shape 포인트의 재정렬 결과를 보여준다. Fig. 8.의 상단 그림은 순서가 뒤섞여 있는 원본 상태를, 하단 그림은 해당 도로구간 포인트를 재정렬하여 연속적인 포인트로 만든 결과를 보여준다. 간단한 로직만으로 Shape 포인트가 빠르게 정렬됨을 확인할 수 있었다.

Fig. 8.

Example of shape point realignment result

3.1.3 도로구간 포인트 분할

도로구간 Shape은 최소 2개에서 최대 7557개의 포인트로 구성되어 있다. 도로구간 연결정보 생성 시 (N!) 횟수의 연산이 수행되는데, 이는 많은 연산 시간이 소요된다. 이에 본 논문에서는 500개 이상의 포인트로 구성된 Shape의 경우 약 200개 단위로 분리하여 새로운 Shape으로 할당하였다. Fig. 9의 상단 그림은 24526576번 도로구간을 보여주며, 하단 그림들은 해당 도로구간을 4개의 Shape으로 분할한 결과를 보여준다.

Fig. 9.

Example of shape split result

3.1.4 중복 표현된 도로구간 정보 처리

일부 도로구간에는 Shape 포인트가 중복 표현된 곳이 존재한다. 이는 불필요한 도로구간 연결정보가 생성되어, 최적화된 경로 탐색을 방해하는 요소가 된다. Fig. 10 상단과 하단 좌측 그림은 중복 표현된 도로구간을 보여준다. Fig. 10 하단 우측 그림은 해당 도로구간 Shape을 정렬하고 단순화 시킨 결과를 보여준다. 불필요한 도로구간 Shape 정렬의 경우 알고리즘을 이용한 자동화가 어려운 측면이 있어, 본 논문에서는 GUI를 통해 수동적으로 문제를 해결하였다.

Fig. 10.

Example of simplifying redundant road sections

3.1.5 지그재그 형태의 Shape 구간 제거

Fig. 11의 좌측 그림은 도로 ID 9727668번 원본 Shape을 보여준다. 도로구간 정보 생성에 사용된 GPS 정보 오류로 추정되며, 해당 정보를 그대로 사용할 경우 자율주행 시 지그재그로 주행 될 가능성이 있다. 본 논문에서는 Shape을 이루는 포인트를 4개 이상 단위로 검사하여 각 포인트간 각도 차이가 90도 이상 연속적으로 발생 될 경우, 해당 구간을 제거하는 방법을 사용하였다. Fig. 11의 우측 그림은 위 방법을 통한 지그재그 구간 제거 결과를 보여준다.

Fig. 11.

Example of zigzag removal result

3.1.6 재귀 연결 Shape의 연결 교점 추가

Shape의 시작 또는 끝 지점이 해당 Shape으로 다시 연결될 경우 해당 지점은 Shape과 떨어져 있는 것처럼 표현되어 있다. 이는 경로 탐색 시 불필요한 우회 경로를 생성하게 되므로 재귀 연결될 수 있도록 조치가 필요하다. 본 논문에서는 Shape 시작 또는 끝 지점이 해당 Shape 안쪽 포인트에 대한 수직 법선 교점과 가까울 경우, Shape 포인트를 추가하는 방법을 사용하였다. 예를 들어 Fig. 12에서 7번 포인트는 2-3번 포인트 라인과 직교 법선 포인트 P1이 생성되며, 거리 d1이 임계치 T(본 논문에서는 1미터를 사용) 이하로서 P1지점에 8번 포인트를 생성하게 된다.

Fig. 12.

Example of adding recursion junction

Fig. 13은 위와 같은 원리를 통해 추가된 Shape 포인트의 예를 보여준다. 상단 그림의 노란 점선 부분을 확대한 것이 하단 좌측 그림이며, 교점을 추가한 결과가 하단 우측 그림이다.

Fig. 13.

Result of adding recursion junction

3.1.7 Shape 간의 연결 교점 추가

Shape간의 연결 지점에 포인트가 없는 경우가 많다. 이는 비정상적인 우회 경로 생성 또는 경로탐색 실패를 발생 시킬 수 있다. 따라서 본 논문에서는 검사 Shape의 포인트 사이 라인위에 다른 Shape의 시작 또는 끝 포인트가 존재 하고, 해당 포인트가 Shape 포인트에 부재 할 경우 해당 포인트를 검사 Shape에 끼워넣어지도록 하였다. Fig. 14 좌측 그림의 빨간색 Shape 은 24709492번 도로 이며, 28-29번 포인트 사이에 타 Shape이 연결되어 있지만 해당 교점 위치에 포인트가 존재하지 않는다. Shape 간의 연결 교점 추가 결과 Fig. 14 우측 그림과 같이 해당 교점에 포인트가 추가되어 도로구간 전역경로계획가 교점 좌표를 지날 수 있게 되었다.

Fig. 14.

Add connecting vertices between shapes

3.2 도로구간 연결 정보 작성

도로구간 전역경로 생성을 위해 Shape 간의 연결 정보 생성이 필요하다. Fig. 15는 도로구간 간의 연결정보를 생성하는 흐름을 나타낸다.

Fig. 15.

Road connection creation flow chart

Fig. 15에서 검사 Shape와 타 Shape간에 교점 또는 인접 포인트가 있는 경우 해당 포인트에 대한 Shape 간 연결 정보가 추가된다. 이는 (N!) 횟수의 매우 많은 연산이 소요되므로, 각 Shape간 바운딩 박스 겹침이 있고 WC 연결 규칙을 만족하는 경우에만 처리되도록 하여 소요시간을 크게 낮출 수 있도록 한다.

도로정보에 포함된 WC(Wide Code)는 1부터 6까지 사용된다. 1~3의 값은 공개 데이터에 포함된 정보이며, 4~6은 본 저자가 추가한 도로 정보이다. WC 1번은 고속도로, 2번은 자동차 전용 도로 및 대로, 3번은 좁은 국도, 4번은 1~3에 포함되지 않은 포장 도로, 5번은 농로 및 산길과 같은 비포장도로, 6~7번은 허용 /금지구역에 주로 할당 되어있다. 이에 6번을 제외한 1~5번 WC 연결 유효성 규칙을 Table 4와 같이 정의 하였다. O는 모든 Shape 포인트 간 연결 가능, X는 연결 불가능, △는 Shape의 시작 또는 끝 지점의 경우에만 연결 가능을 의미한다. 예를 들어 WC3의 끝 지점은 WC2번과 연결 가능하며, WC1의 중간점은 WC2의 중간점과 연결 불가능하다. 결과적으로 WC1 아래쪽 지하도를 통해 지나는 WC3는 해당 교점 위치에서 서로 연결되지 않는다.

Wide code connection rules

도로구간 연결정보 작성은 많은 연산을 필요로 한다. 사용된 HW는 I7-9750H CPU와 16G DDR4 램이 장착되어 있으며, SW는 CPU의 12개 쓰레드 모두를 사용하는 병렬처리 구조로 작성 하였다. 도로구간 연결 정보 작성 시 CPU 점유율과 메모리 사용량은 각각 6 %와 6.3G에서 100 %와 17.4.G로 증가 하였다. 총 880133개의 Shape에 대하여 도로구간 연결정보 작성에 4205초가 소요 되었다.

링크 리스트 등의 자료구조를 사용할 경우 메모리 관리가 편리하나 속도가 느린 측면이 있기에 본 논문에서는 각 Shape 별로 최대 연결 포인트를 최대 64개 까지 기록 할 수 있는 고정 배열을 사용하였다. 이에 64개 이상의 연결 정보를 가지는 Shape을 다수의 Shape으로 분할하고, 해당 Shape 들에 대하여 연결 정보를 다시 생성될 수 있도록 하였다. Fig. 16 상단 그림은 88개의 포인트를 가지는 도로 번호 3948528 Shape이며, 하단 그림은 Shape을 두 개로 분리한 결과이다. 1~41번만 남겨진 Shape은 연결이 23개로 감소되었으며, 기존 41~88번 포인트는 48개의 포인트와 48개의 연결을 가지는 새로운 Shape으로 할당되었다.

Fig. 16.

Shape segmentation result

3.3 사용자 Shape 추가

전국 주요 도로가 잘 표현되어 있으나 사유지 내 도로, 농로, 비밀을 요하는 국가 주요 지역에 대하여는 도로 구간 정보가 존재하지 않는다. Fig. 17은 충청남도 공주시 소재 농경지와 대전시 유성구 산업단지에 대한 도로구간 정보 부재의 예를 보여준다.

Fig. 17.

Example without road section data

완성도 높은 전역경로 생성 결과를 얻기 위해서는 도로구간 부재 구역에 대한 데이터 추가가 필요하다. 본 논문에서는 GUI상에서 사용자가 도로구간 정보를 입력 하는 방법과 항법의 이동 궤적을 이용한 반자동적 추가 방법을 사용하였다. Fig. 18의 상단/하단 그림은 각각 현대자동차그룹 의왕연구소 내 도로와 경기도 연천군의 모 훈련장 인근 산악 지역에 대한 도로 구간 정보 추가 결과를 보여준다. 전국의 모든 도로구간 부재 구역 데이터 추가는 많은 시간과 비용이 소모될 것으로 예상된다. 본 저자는 과거에 자체 제작한 도로구간 정보를 해당 도로구간 정보에 통합하여 활용 하였으며, 관심 지역의 데이터를 우선적으로 추가 하고 있다.

Fig. 18.

Result of adding road data

4. 전역경로 생성

도로구간 정보를 이용한 전역경로 생성에는 Dijkstra / A* / Bellan-Ford / Floyd-Warsh 등의 최단 경로 탐색, RRT / MPC / PSO / Genetic 등을 활용한 최적 경로탐색, 심층 신경망 등등 매우 다양한 방법이 사용될 수 있다. 본 논문에서는 3장을 통해 만들어진 도로구간 정보를 이용한 최단/최적 전역경로 생성이 이루어질 수 있도록 A* 알고리즘을[6] 적용하고 최적화하여 실제 무인자율차량에서 활용 가능함을 입증한다.

Table 5는 경로 탐색에 사용된 자료구조를 보여준다. 배열 형태인 OpenClosePoint는 A* 알고리즘의 OpenList 와 CloseList를 통합한 개념으로서, 데이터 관리 용이성 향상 및 빠른 처리속도를 유도한다. 비용 G는 부모 Shape 포인트의 G에서 현재 Shape의 포인트까지의 이동거리, H는 목표 위치까지의 L2 Norm 이다. A* 경로탐색 시 Shape 내 분기 지점만 Open 시키며, 단위 경로 결과 합산 시 각 Shape 지점 사이의 포인트가 포함 될 수 있도록 한다.

Data structure for path explore

Fig. 19는 전역경로를 생성하는 흐름이다. InPt 첫 번째 포인트는 차량의 위치이며, InPt 마지막 포인트는 최종 도달 목표 위치이다. PN이 2개를 초과 할 때, 첫 번째와 마지막 포인트 사이의 점들은 경유지점을 의미한다. PN-1횟수에 걸쳐 단위구간 A* 경로를 생성되고, 최종적으로는 단위구간 A* 경로 결과를 결합하여 최종 전역경로가 생성된다. Fig. 19 빨간색 점선 안쪽 영역이 단위구간에 대한 A* 경로 탐색이다. A* 알고리즘은 시작/종료위치가 필요하므로 단위구간에 해당하는 입력 경로점 TM좌표에 가장 인접한 법선 라인의 Shape 포인트를 시작/종료 지점으로 선정한다. 이후 시작 위치 Shape 포인트를 최초 OpenPoint에 추가하고, 종료 지점이 Close될 때 까지 Open/Close를 반복한다.

Fig. 19.

A* based global path creation flow

Shape 포인트 확장 시 OpenList에 존재 하지 않는 포인트는 OpenList에 추가하고, OpenList에 존재 하지만 비용 F가 감소되는 경우에는 부모와 비용을 변경해야 최적화된 경로 탐색이 보장된다. 예를 들어 Fig. 20에서 시작과 종료 위치가 각각 1번과 5번 포인트일 때, OpenList의 부모와 비용 변경 가능 유/무에 따른 결과를 각각 좌/우측 그림을 통해 보여준다. 좌/우측 모두 4번 포인트가 부모 3번에 의해 처음 Open되고 4비용이 4.8로 계산되었다. 하지만 좌측의 경우 4번 포인트의 비용이 고정되어 4.8의 비용을 가지는 1-3-4-5경로가 생성된 반면, 우측의 경우 4번 포인트의 부모가 3번에서 2번으로 교체되며 비용이 4.8에서 4.0으로 감소되는 1-2-4-5 경로가 생성된다.

Fig. 20.

Compare parent and cost update results

이와 같은 흐름에 따라 도로구간 정보를 활용한 전역경로를 생성하였다. Fig. 21의 상단 그림은 인천국제공항 주차장에서 시작하여 용산구 이태원로에 있는 전쟁기념관 부근까지의 경로를 탐색한 결과이다. 두 지점간의 거리는 약 45 km 가량 떨어져 있으며 총 811개의 경로점이 생성되었다. 연산에 소요된 시간은 약 6.56초, 생성된 Open 및 Close 포인트는 각각 1249개 와 4812개이다. Fig. 21의 하단 그림은 대전시 유성구 충남대학교 정문에서부터 세종 정부청사 입구까지의 경로를 탐색한 결과이다. 두 지점간의 거리는 약 18 km 가량 떨어져 있으며 총 1056개의 경로점이 생성되었다. 연산에 소요된 시간은 약 3.95초, 생성된 Open 및 Close 포인트는 각각 498개와 2397개이다.

Fig. 21.

Example of global path creation result

A*를 통해 생성된 전역경로는 도로구간의 중앙선 위를 지난다. 이에 도로구간 정보에 포함된 도로 폭 정보를 이용하여 중앙선에서부터의 이격거리를 적용할 필요가 있다. 본 논문에서는 도로 폭이 4미터 이상인 도로구간에서 도로 폭의 0.25배를 이격 시켜 주행 전역경로로 수정하였다. 이는 좁은 도로에서는 도로 중앙을 주행하고, 넓은 도로에서는 도로 중앙에서 1미터 이상 우측으로 이격되어 주행 될 수 있도록 유도하기 위함이다. 대략적인 대한민국의 도로 폭은 Table 6과 같다. 도로구간의 도로폭 정보를 이용해 차선 개수를 유추하면 주행하고자 하는 차선을 대략적으로 지정 할 수 있을 것이다.

Approximate road width in south korea

Fig. 22의 좌측 그림은 이격거리 적용 전, 우측 그림은 이격거리 적용 후의 결과를 나타낸다. 분홍색 라인은 운용자가 입력한 경로점, 연두색 라인은 최종 전역경로이다. 해당 도로구간의 도로 폭 정보는 5~7미터로 이격거리 1.25미터~1.75미터가 적용 되었다.

Fig. 22.

Applying the offset distance of the path

도로구간 기반 전역경로 생성 방법만으로는 학교 운동장과 같은 개활지 영역에 대한 주행이 불가능 하다. 개활지를 나타내는 정보가 없어 해당 영역 내의 자유로운 경로가 생성 되지 않기 때문이다. 이에 허용 구역과 금지구역 개념을 적용하여 도로구간 정보를 보완할 수 있도록 하였다. Fig. 23 좌측은 허용구역(개활지)과 금지구역에 대한 정보를 저장한 xml 파일의 일부 내용이다. xml 파일의 허용/금지 구역은 각각의 구역번호 별로 구성 포인트 수, 각 포인트의 TM 좌표로 구성되어 있다. Fig. 23 우측은 실제 전역경로 SW 에서 해당 xml 파일을 읽고 가시화한 것이다.

Fig. 23.

Examples of allowed/restricted area data

운용자 경로점이 허용 구역 내에 존재 할 경우, 해당 포인트를 허용 구역으로 진입된 Shape의 포인트와 연결함으로서 전역경로 탐색에 사용될 수 있도록 처리한다. 또한 하나의 허용 구역 내에서 연속적으로 존재하는 운용자 경로점은 별도 처리 없이 바로 전역경로에 추가될 수 있도록 한다. 금지구역에 포함된 도로구간 정보는 사용 불가 처리를 통해 경로탐색이 이루어지지 않게 처리된다. 이때, 허용 구역의 무게중심점에서 허용 구역 내에 존재하는 모든 직선화 가능 포인트들에 연결 정보를 작성하는 것이 좋다. 이는 허용 구역 밖의 운용자 경로점에 대해서도 허용 구역을 통과하는 전역경로를 생성시키기 위함이다.

Fig. 24는 홍익대학교 화성캠퍼스 운동장에서의 허용구역 적용 유/무에 따른 전역경로 생성 결과를 각각 하단/상단 그림으로 나타낸 것이다. 하늘색 영역이 허용구역을 의미하며, 분홍색 라인이 운용자 경로점, 연두색 라인이 전역경로 생성 결과이다. 허용 구역 밖의 도로구간에서는 도로구간 정보를 이용하여 경로가 생성되며, 허용 구역 내에서는 운용자가 입력한 경로점이 전역경로에 사용 될 수 있게 되었다.

Fig. 24.

Comparison of allow area data application results

제안한 방법의 유효성을 검증하기 위해 필드 시험을 수행하였다. 사용된 차량 플랫폼은 현대로템에서 자체 제작한 HR-Sherpa 초기모델 이며, 일반 상용차량이 아니기 때문에 번호판이 존재 하지 않아 공도는 주행 할 수 없었다. 해당 차량 플랫폼의 제원은 Table 7과 같다.

Vehicle specifications used in the experiment

실험은 두 가지 노면에서 진행하였다. 첫 번째로 Fig. 25 좌측과 같은 왕복 2차선의 아스팔트 노면이다. 해당 도로의 너비는 5.5미터이며 도로 측면에 폭 2~3미터의 인도가 존재한다. 두 번째로 Fig. 25 우측과 같은 포장되지 않은 흙/자갈 재질의 노면이다. 해당 비포장도로는 너비 3~6미터이며 양쪽에는 수풀, 낭떠러지, 배수로 등이 존재한다.

Fig. 25.

Autonomous driving test environment

Fig. 26의 상단/하단 그림은 각각 첫 번째 실험과 두 번째 실험의 입/출력 경로를 보여준다. 분홍색은 운용자가 입력한 자율주행 시작~종료점, 연두색은 도로구간 정보를 이용하여 생성된 전역경로를 의미한다. 생성된 전역경로의 길이는 포장도로 364미터, 비포장도로 431미터 이다.

Fig. 26.

Experiment input/output path

Fig. 27 운용통제장치의 운용 SW에서 운용자 경로점을 차량플랫폼으로 송신하면, 전역경로계획 SW에서 도로구간 정보를 활용해 전역경로가 생성된다. 다중 플랫폼 전역경로계획 여부 및 운용 개념에 따라 전역경로계획 SW를 운용통제장치에 위치시켜도 무방하다. 계획된 전역경로 결과는 Fig. 27과 같이 지역경로계획 SW의 구동 제어명령 생성에 활용[7,8] 된다. 지역경로 계획은 WC에 따라 1~3구역에 해당할 경우 차선 및 교통상황 인식결과를 활용하여 구동제어 명령이 생성되며, 4~6구역에 해당할 경우 주행가능 영역 및 장애물 인식결과를 활용하여 구동제어 명령을 생성한다. 지역경로계획 알고리즘은 본 논문 주제 범위 밖이므로 상세한 설명은 생략한다.

Fig. 27.

Autonomous driving system configuration

Fig. 28.의 좌/우 그림의 빨간색 라인은 각각 첫 번째와 두 번째 실험에서 생성된 전역경로를 추종하는 자율주행 궤적이다. 전역경로계획 결과와 자율주행 궤적이 매우 유사한 궤적을 보여주고 있으며, 이는 전역경로계획 결과와 실제 도로 사이에 큰 차이가 없음을 의미한다.

Fig. 28.

Autonomous driving result trajectory

5. 결 론

본 논문에서 무인지상차량의 자율주행을 위하여 공개데이터 기반 도로구간 전역경로 생성 방법을 제안하였다. 국토교통부 국가공간정보포털에 공개된 전국 17개 시/도의 도로구간 정보를 가공하고, 개활지 및 야지/험지와 같은 특수 환경에 대한 정보를 융합하여 무인지상차량의 자율주행을 위한 전역경로를 생성하였다. 제안한 방법은 실제 운용되는 SW로 구현되어 현대로템에서 제작한 HR-Sherpa 플랫폼에 적용하였으며, 도로환경과 야지/험지 및 개활지 환경에서의 자율주행 시험을 통해 제안된 방법의 타당성을 보였다.

후 기

향후, 지속적으로 업데이트 되고 있는 국토교통부 도로정보와 함께 도로명 주소, 도로안내 표지, 터널, 도로 위험 등 다양한 데이터와 기술[9]들를 활용한 연구를 진행 할 계획이다. 예를 들어 국토교통부 도로정보는 Shape간의 연결정보나 방향성 등이 존재하지 않기 때문에 일방통행로를 역주행 시키거나, 고속도로 진/출입로를 역방향으로 진입하게 만드는 등의 결과를 생성한다. 이는 공공데이터 포털에서 제공하는 일방통행도로 정보 활용과 함께 도로구간 연결 방향성 부여를 통해 보완이 가능할 것이다.

또한 ITS, C-ITS등[10]을 비롯하여 실시간 교통정보 등을 반영한 전역경로 생성을 통해 좀 더 효과적인 전역경로 생성이 가능하도록 개선할 계획이다.

마지막으로 일부 특이 상황에서 본 논문에서 제안한 전역경로탐색 방법이 정상적으로 이루어지지 않을 수 있음을 알린다. 예를들어 Shape간의 상호 연결이 없는 섬-섬(제주도-울릉도 등) 또는 섬-내륙 등의 경로를 탐색할 경우 A* 알고리즘 특성상 초기 Open 위치부터 확장 가능한 모든 Shape 포인트가 Close 될 때까지 상당한 시간을 소모하고 경로탐색 실패가 반환된다. 이 또한 향후 연구를 통해 물리적으로 불가능한 전역경로생성 요청을 사전에 인지되도록 개선중이다.

References

[1]. . Choi J. Y.. Autonomous Driving Technology Trend Using Navigation Map Data. The Journal of The Korean Institute of Communication Sciences 38(12):29–34. 2021;
[2]. . Hong S. W., Son W. I., Park K. H., Kwun S. T., Choi I. S., Cho S. W.. Design of Preprocessing Algorithm for HD-Map-based Global Path Generation. The Journal of The Korea Institute of Intelligent Transport Systems 21(1):273–286. 2022;
[3]. . Bae S. J., Choi C. W., Kang I. J.. The Digital Road Map Using World Geodetic System-84 Coordinates System. Journal of the Korean Society of Surveying, Geodesy, Photogrammetry and Cartography 15(2):269–275. 1997;
[4]. . Kim B. S., Jeong D. W., Oh S. H., Ahn J. W., Hong S. K.. Design and Implementation of Data Model for Detailed 3D Road Data. Journal of Korean Society for Geospatial Information Science 27(5):13–23. 2019;
[5]. . Won S. Y., Jeon Y. J., Jeong H. W., Kwon C. O.. A Comparison of Korea Standard HD Map for Actual Driving Support of Autonomous Vehicles and Analysis of Application Layers. The Korean Association of Geographic Information Studies 23(3):132–145. 2020;
[6]. . Chunyu J., Luo Q., Yan X.. Path Planning Using an Improved A-Star Algorithm. 2020 11th International Conference on Prognostics and System Health Management 2020.
[7]. . Jo K. J., Choi P. G., Lyu Y. J.. Design of Unmanned Driving System for Electric Vehicle Using Navigation System. Journal of Institute of Control, Robotics and Systems 290–291. 2013.
[8]. . Seong K. B., Min K. W., Choi J. D.. Autonomous Vehicle Technology Trends and Core Technologies. KICS Information & Communication Magazin, Open Lecture Series 35(1):3–13. 2018;
[9]. . Roh C. G.. Configuration and Evaluation of Local Dynamic Map Platform for Connected Automated Driving in Urban Roads. Journal of Korean Society of Transportation 38(1):42–57. 2020;
[10]. . Kang K. P.. Evolution of Autonomous Driving System and Smart Road Infrastructure Technology. International Journal of Highway Engineering 18(3):30–34. 2016;

Article information Continued

Table 1.

Road section file configuration

확장자 형태 파일 내 정보
Prj Text 좌표계, 기준위치 등의 정보
Shx Binary 최소 바운딩 박스, 도로 ID
Shp Binary 구성 포인트 수, Point 좌표 집합
Dbf ACSII 길이, 폭, 광역 도로 식별자(1~3)

Fig. 1.

Road section data acquisition flow

Table. 2.

Prj file of seoul and non-seoul

지역 크기 파일 내 정보
서울 외지역 592 Byte PROJCS[“ITRF_2000_TM_Korea_Cen tral_Belt”, GEOGCS[“GCS_ITRF_2000”, DATUM[“D_ITRF_2000”, SPHE ROID[“GRS_1980”, 6378137.0, 298.257222101], TOWGS84[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]], PRIMEM[“Green wich”, 0.0], UNIT[“degree”, 0.017453292519943295], AXIS[“Longitude”, EAST], AXIS[“Latitude”, NORTH]], PROJECTION[“Transverse_Mercator ”], PARAMETER[“central_meridian”, 127.0], PARAMETER[“latitude_of_ori gin”, 38.0], PARAMETER[“scale_fact or”, 1.0], PARAMETER[“false_eastin g”, 200000.0], PARAMETER[“false_ northing”, 500000.0], …
서울 145 Byte GEOGCS[“GCS_WGS_1984”, DATU M[“D_WGS_1984”, SPHEROID[“WG S_1984”, 6378137.0,298.257223563]], PRIMEM[“Greenwich”, 0.0], UNIT [“Degree”, 0.0174532925199433]]

Fig. 2.

Seoul-gyeonggi border road section data

Table 3.

Example of seoul road section file

파일 파일 내 정보 예시

Fig. 3.

Acquired road section data

Fig. 4.

Road section data processing flow

Fig. 5.

Duplicate point removal flow

Fig. 6.

Example of removing duplicate points

Fig. 7.

Example of reordering shape points

Fig. 8.

Example of shape point realignment result

Fig. 9.

Example of shape split result

Fig. 10.

Example of simplifying redundant road sections

Fig. 11.

Example of zigzag removal result

Fig. 12.

Example of adding recursion junction

Fig. 13.

Result of adding recursion junction

Fig. 14.

Add connecting vertices between shapes

Fig. 15.

Road connection creation flow chart

Table 4.

Wide code connection rules

WC1 WC2 WC3 WC4 WC5
WC1 O X X X
WC2 O X X
WC3 X O O O
WC4 X X O O O
WC5 X X O O O

Fig. 16.

Shape segmentation result

Fig. 17.

Example without road section data

Fig. 18.

Result of adding road data

Table 5.

Data structure for path explore

데이터 필드 자료형
OpenClosePoint [ ] 부모 Shape int
부모 Shape 포인트 int
자식 Shape int
자식 Shape 포인트 int
비용 F (=G+H) doube
비용 G doube
비용 H doube
Close 여부 bool

Fig. 19.

A* based global path creation flow

Fig. 20.

Compare parent and cost update results

Fig. 21.

Example of global path creation result

Table. 6.

Approximate road width in south korea

도로 구분 설계속도 차로 폭 중앙분리대
지방 지역 고속도로 100~120 3.5~3.6 3.0
주 간선도로 60~80 3.25~3.5 1.5~2.0
보조 간선도로 50~70 3.0~3.25
집산도로 50~60 3.0
국지도로 45~50 3.0
도시 지역 도시고속도로 80~100 3.5 2.0
주 간선도로 80 3.25~3.5 1.0~2.0
보조 간선도로 60 3.0~3.25
집산도로 50 3.0
국지도로 40 3.0

Fig. 22.

Applying the offset distance of the path

Fig. 23.

Examples of allowed/restricted area data

Fig. 24.

Comparison of allow area data application results

Table 7.

Vehicle specifications used in the experiment

구분 제원
무게 약 1,800 kg
크기(L/W/H) 약 2.7 × 1.7 × 0.9 meter
속도 포장 30 kph, 비포장 10 kph
주행시스템 6×6 전기모터, 에어리스 타이어
자율주행 센서 카메라, 라이다, 레이더
형상

Fig. 25.

Autonomous driving test environment

Fig. 26.

Experiment input/output path

Fig. 27.

Autonomous driving system configuration

Fig. 28.

Autonomous driving result trajectory