brunch

You can make anything
by writing

C.S.Lewis

by 티맵모빌리티 Dec 20. 2021

GPS 안잡히는 터널에서 티맵은 어떻게 길안내를 할까?

티맵 개발자 SSUL 2편

Chap1. 터널 내 측위 문제

1-1. 네비게이션

1-2. 음영 지역

Chap2. 터널 내 측위 개선

2-1. 목표

2-2. 개선 방법(Ideation)

2-3. 터널 내에서 사용 가능한 센서의 종류

2-4. Proof of concept (POC)

Chap 3. 압력 센서를 활용한 데이터 분석

3-1. 터널의 물리적 구조

3-2. 수집되는 데이터 정제(Ground truth)

3-3. 음영지역 측위 개선 프로세스

Chap4. 적용 결과 (영상)


Chap1. 터널 내 측위 문제


1-1. 네비게이션

네비게이션은 사용자의 안전한 주행을 위한 가이드를 해야 합니다. 안전한 안내를 위해 정확한 지점에서 정확한 방향으로 안내를 해야 하는데, 그렇게 하기 위해서는 현 위치를 정확하게 파악하는 기술이 필요합니다. 대표적인 측위 방법으로는 다음과 같은 기술이 있습니다. 


GPS: 대기권에 떠있는 인공위성의 위치를 이용하여 삼각 측량을 이용해 위치를 계산한다.

기지국 측량(Cell Tower)/WIFI/Bluetooth: 무선 신호를 이용한 삼각 측량을 이용해 위치를 계산한다.

Sensor: 센서를 활용하여 DR(Dead reckoning)을 수행해 현 위치를 예상한다.
(*DR: 위치를 알고 있는 출발점에서 현재 위치까지의 여행 거리 및 방향을 계산하여 현재의 위치를 추적하는 위치추적기술 )


1-2. 음영 지역

네비게이션은 GPS의 신호를 기반으로 동작하기 때문에 인공위성을 볼 수 없는 장소에서는 위치를 예측할 수 없습니다. 이 중 가장 문제가 되는 부분은 터널 내의 분기점입니다.  

위의 장소는 강남순환고속도로 사당/과천 진출로입니다. 터널이 끝나는 지점에 바로 분기점이 있어 미리 차선을 변경하지 않으면, 지나쳐 버리거나 급하게 차선 변경을 해야 하는 곳이죠.

 

현재는 터널 내 차량의 정확한 위치를 파악하지 못하기 때문에 터널 진입 시점에 안내를 하게 되어있으나, 터널이 길거나 운전자가 집중을 하지 않으면 직진할 가능성이 많습니다. 바로 이런 상황 때문에 음영지역 내 측위 기능이 필요합니다.


Chap2. 터널 내 측위 개선


2-1. 목표

GPS 음영지역(터널)에서 안내를 좀 더 명확히 하고 이탈 발생을 줄인다.

Cloud Sourcing을 하여 정확한 데이터 수집없이 알고리즘을 동작 할 수 있도록 설계한다.


2-2. 개선 방법(Ideation)

터널 내에서의 데이터를 수집하여 모델링 한 후 길 안내 시에 모델을 사용하여 현 위치를 파악한다.

- 터널 내에서 센서의 값을 조합하면 사용자의 정확한 위치를 파악 가능할 것으로 예측
- 센서 데이터 수집 앱을 만들어 출/퇴근시에 데이터를 수집하여 분석


2-3. 터널내에서 사용 가능한 센서의 종류

1) 조도
- 터널안에 있는 조명은 일정하게 설치되어 있고, 특별한 터널은 특별한 위치에 별도의 조명이 설치 되어 있으므로 조명의 조도에 대한 상대적 변화를 분석하여 터널의 위치를 분석


2) 진행 방향
- 자이로 센서를 활용하여 터널내의 굴곡을 확인하여 위치를 분석


3) 압력센서
- 터널 내의 압력차이를 이용하여 위치를 분석


4) Cell tower 정보
- 터널 내의 기지국 신호의 변화를 활용하여 위치를 분석


2-4. Proof of concept (POC)

1) 조도

예상 : 터널 내의 조명에 의한 조도의 변화가 일정 패턴을 보일 것으로 기대

결과

- 터널 집입시 조도가 외부에 비해 차이가 나면서, 진입/진출에 의한 변화는 확인
- 조도가 일정하지 않고 흔들리는 현상을 볼 수 있으나 명확한 패턴을 가지고 있지 않아 현 위치 확인은 어려움


남산 터널 상행(x축 시간/ y축 조도)


남산터널 하행(x축 시간/ y축 조도)


2) Cell tower 신호

예상 : 터널 내에서 수신되는 기지국 전파를 이용하여 현 위치 파악

결과

- PCI(Physical Cell Id), TAC(Cell Id)는 다음과 같이 순서대로 수신되는 것을 확인


[남산터널 기준 PCI 값 순서]
293
348
436
179
7

[남산터널 기준 TAC 값]
12557
12289
12298


- 아래의 기지국 설치 지도를 확인하였을 때 기지국 간의 간격이 200~500m로 상당히 많이 떨어져 있어 단순히 기지국의 값을 절대 위치로 변경하는 것은 불가능 

- 기지국 별 신호 강도를 이용하면 패턴이 조금 비슷해 보이긴 하나, 모바일 기기 모델에 따라 신호 강도가 다르게 수신되어 단순히 하나의 모델로 모든 기기를 커버하기가 어려움


남산 터널 상행(x축 시간/ y축 기지국 신호강도) 


3) 진행 각도 분석

예상 : 터널 내에서 계속 변화되는 각도를 기반으로 현 위치 파악

결과

- 하행에서는 linear하게 변화가 되어 지점을 확인 가능
- 상행에서는 각도의 변경이 없이 하나의 변곡점만 생겨 지점을 명확히 찾을 수가 없어 사용 불가능


하행 

상행

 

4) 기압

예상 : 터널 내의 고도차이에 의한 압력의 변화가 일정 패턴을 보일 것으로 기대

결과

- 압력 값이 측정할 때마다 큰 차이를 보임

- 절대값으로는 큰 차이를 보이나 전반적인 패턴을 확인하였을 때, 같은 터널에서 동일한 패턴을 보임 (남산  터널의 경우 양쪽 끝이 높고 중간이 낮은 값을 보이는 패턴을 보임)

남산 터널 상행(x축 시간/ y축 압력값)

절대값 범위: 1020.7 ~ 2020
절대값 범위: 1012.8 ~ 1012.24
절대값 범위: 1018.8 ~ 1018.09

Chap3. 압력 센서를 활용한 데이터 분석


3-1. 터널의 물리적 구조

터널 설계

- 터널을 수평으로 설계 시 배수 문제 발생하므로 터널은 경사를 가지도록 설계됨
- 예를 들어, 인제양양터널은 강원도 내륙에서 동해 쪽으로 1.95도씩 서서히 내려가도록 설계되었고, 이 때문에 인제군 쪽 터널 시작 부분과 양양군 쪽 터널 끝 부분의 고도 차이가 약 200m 가량 차이 남.


높이의 차이는 압력의 차이를 가지게 됨

수집되는 데이터 정제(Ground truth)

가장 큰 문제는 터널에 실제 주행을 하여 데이터 수집을 하지 않고서는 정확한 정답 셋을 확보 할 수 없음

- 전국 터널의 갯수는 약 2700개, 실제 데이터 수집을 하기는 불가능


수집 되는 데이터를 활용하여 가상의 GT 데이터를 생성

■ 거리 값 생성

- 터널의 진입 속도/진출 속도를 이용하여 파란색의 단순 평균속도를 생성 계산(파랑색)
- 터널 통과시간과 길이를 이용하여 터널 내의 평균속도를 구해 이를 이용하여 2차함수를 계산(주황색)
- 파랑색과 주황색의 데이터를 활용하여 가상의 터널 통과 속도를 생성(회색)


■ 고도 값 생성
- 정확한 고도 값을 알기 위해서는 온도와 해수면 기압을 알아야 함

- p : 현재 압력
- p0 : 해발 고도 압력 
- 절대 고도가 필요 없고, 상대 고도 값만 알면 모델링이 가능하여 p0는 터널 진입 시의 압력, p는 현재 압력을 적용하여 고도 값을 계산


Preprocessing 이후 데이터

- 기존에 없던 거리, 고도 값을 확인 가능


모델 생성 후 성능 분석을 하여 다음과 같은 결과를 확인 가능


3-3. 음영지역 측위 개선 프로세스
(위의 프로세스는 티맵에서 클라우드 소싱을 기반으로 하는 프로세스를 나타냄)

Chap4. 적용 결과


www.youtube.com/embed/E1IRISv0UsQ?wmode=opaque 


위의 영상을 보면 상단과 하단의 주행이 다르게 동작하는 것을 확인 할 수 있습니다. 


상단은 기존 티맵으로 정해진 속도로 가상 주행을 하며, 하단은 신규 로직을 적용해 속도가 계속 변하면서 이에 따른 주행으로 실제 주행과 거의 비슷하게 출구에서 빠져나오는 것을 확인 할 수 있습니다. 


브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari