ARTIV_OSM_FORMATTER [PART 1]

artiv_osm_formatter의 모든것

Featured image

현재 연구팀에서 사용하고 있는 HD map information publisher(ARTIV_SHUTTLE_NAVI)는 주행유도선을 구성하는 node에 도로 시설물(과속방지턱, 정지선, 횡단보도 등)정보를 사전에 담아놓은 뒤, node 데이터를 제공하는 형태이다.

image1

그런데 국토지리정보원에서 제공하는 고정밀지도는 node 간격이 균일하지 않고, node 사이가 매우 멀리 떨어져있는 경우도 많다.
따라서 원본 map의 node를 이용하여 node기반 도로 정보 전달 프로그램을 구성하는 것은 무리가 있다.

그래서 사전에 node간 거리를 거의 일정하게 조정해주고, 촘촘하게 만들어주는 작업이 필요하여 python으로 osm을 열고 수정하여 저장하는 툴을 개발하였다.

송주호 연구원이 만들어준 OSMHandler를 이용하여 기존 osm data를 불러들이고, haversine 공식으로 node간 거리를 계산하여 설정한 node간 거리(현재 사용중인 것은 1m)에 가장 가깝게 만들어 주는 툴이다.

사전에 한 번만 실행시키면 이후에는 실행시킬일이 없는 과정이기도 하고, 급박하게 개발하느라 소요시간은 크게 고려하지 않은 채 개발하였다. 그런데 이번에 global path planning을 개발하면서, 자율주행차량이 주행할 수 있는 범위를 늘리기 위해 지도 데이터의 범위를 확대시키니 osm 파일을 수정하는 데 소요되는 시간이 지나치게 길어졌다.

Let’s Use Pyroutelib3!글의 TODO list에 ‘차선변경이 가능한 구간의 경우 차선 변경을 위한 새로운 way를 형성’할 필요가 있다고 적어두었다. 이 기능을 artiv_osm_formatter에 추가하는 것이 좋다고 생각하였고, 개발 이전에 기존 작동 범위에 대한 최적화가 필요하다는 생각이 들어 대폭 수정하였다.

수정된 내용

1. numpy 도입

2. 발생할 수 있는 오류 수정

3. Input, Output 파일명 지정가능

별로 한게 없어보이지만, numpy를 적용하는 데에 꽤 많은 시간이 걸렸다…

수정 결과

image2

툴이 실행되는데 걸리는 시간을 측정해보았다.
실행시간이 대폭 감소되었음을 확인할 수 있다.

기존 툴의 경우 5분 이상 걸렸던 작업을 수정한 툴을 이용하면 1분 13초만에 마무리할 수 있다.

BEFORE & AFTER

image3

노란색 부분이 node인데, 한눈에 봐도 많아졌음을 확인할 수 있다.

image4

확대해서 보면 위와 같다.