brunch

You can make anything
by writing

C.S.Lewis

by 티맵모빌리티 Feb 13. 2023

포켓몬고와 티맵은 내 위치를 어떻게 잡을까?

18편 - 위치 기반 서비스의 이해 및 측위 방법

티맵과 같은 내비게이션 서비스, 포켓몬고와 같은 게임, 그리고 코로나 시대에 중요한 역할을 했던 ‘코로나 동선 안심이 앱’ 등 우리 주변에는 위치 파악을 기반으로 제공되는 서비스가 참 많죠.


위치 기반 서비스는 GPS와 같은 기술의 발달로 사용자의 위치를 더욱 정확하게 파악해왔고, 이를 통해 다양한 정보와 서비스를 제공함으로써 삶을 더욱 윤택하게 만들고 있습니다. 그래서 오늘은 위치 기반 서비스의 개념과 GPS가 동작하는 기술에 대해 이야기 해보려고 합니다. 


Location Based Service (LBS)란?


모바일 장치 또는 지형 데이터를 사용하여 정보, 엔터테인먼트, 보안을 제공하는 서비스를 말한다. 다음과 같이 활용할 수 있다.

게임
출처: 아주경제(https://www.ajunews.com/view/20160727092601188)

포켓몬고

플레이어가 현실 세계 환경 내에서 이동한 위치에 기반하여, 플레이어의 아바타도 게임 속의 지도 안에서 움직인다. 각각의 포켓몬 종들은 세계의 다양한 지역에 살고 있다. 예를 들어 물 타입의 포켓몬은 주로 물 근처에서 발견된다. 플레이어가 포켓몬과 마주쳤을 때, 포켓몬을 AR 모드, 또는 기본 배경과 함께 볼 수 있다. AR 모드는 플레이어의 모바일 기기에 내장된 카메라를 이용해 포켓몬이 마치 실제 세상에 있는 것처럼 볼 수 있다. 또 AR 모드와 관계없이 출현하는 포켓몬의 사진을 찍을 수 있다. (내용출처: https://ko.wikipedia.org/wiki/포켓몬_GO )


내비게이션 

내비게이션(티맵)

목적지까지 길안내를 위해 GPS를 수신하여, 사용자에게 안전한 운행을 할 수 있도록 도움을 주는 앱이다. 2001년부터 ‘네이트 드라이브’라는 이름으로 서비스를 시작했다.


택시 
출처: 서울신문(https://www.seoul.co.kr/news/newsView.php?id=20211124500202)

택시(UT)

승객과 기사의 위치를 확인하여 가까운 택시를 빠르게 탈 수 있도록 연결하여 준다.


코로나 선별 진료소 정보앱 
출처: 파이낸셜뉴스(https://www.fnnews.com/news/202107121447395675)

현 위치 부근의 코로나 선별 진료소의 위치와 혼잡도 정보를 알려준다.


코로나 동선 안심이 
출처: 인천광역시(https://www.incheon.go.kr/covid19/CVD040005/2070034)

코로나19 확진자와의 접촉 가능성과 접촉 횟수, 접촉 시간을 알려주는 기능으로 수신한 GPS를 통해 자신의 동선이 겹치는지 확인한다.


위치 측위 방법

위와 같은 기능을 구현을 하려면 사용자의 위치를 확인해야 하는데, 이에 대한 방법을 알아본다.


Cell Tower Locations


● 장점

• WiFi positioning 보다 빠른 속도: 1초 이내

● 단점

• 정확도: GPS >> WiFi > Cell Tower

• Data Network 사용

● 정확도

• 00m~2km

● 3G/LTE/5G 등의 상황에 따라 변동

● 5G 기지국이 더 촘촘하게 구성되어 정확도가 높음

• LTE: 3 ~ 6.5 Km

• 5G: 1.6 ~ 5 Km


WiFi Positioning


● 장점

• Fast enough: 2~5 seconds

- 2 Ghz band: 1~2s

- 5 Ghz band: 5s

• 실내, 지하 공간에서도 위치 수신이 가능

● 단점

• 정확도: 특정 환경에서는 정확도가 GPS보다 높으나 일반적으로 낮음.

• Data Network 사용

• WIFI 맵 구축의 어려움

• Outliers: Access Point 위치 변동 가능

● Privacy: WiFi Positioning

• Android 

- getMacAddress() 은 항상 가짜 MAC 주소를 반환 “02:00:00:00:00:00”

- WiFi 와 Bluetooth 모두 적용

• Apple

- WiFi scanning APIs 사용 불가능

- WiFi scanning app을 AppStore에서 삭제

- iOS 단말의 MAC 주소 요청 시: fake MAC address “02:00:00:00:00:00” 반환

- 연결된 Access Points MAC 요청 시: fake MAC address “02:00:00:00:00:00” 반환

- 사용자의 명시적 허락을 받지 않은 위치 획득을 제한


GPS


GNSS(global navigation satellite system)의 한 종류이나 일반적으로 위성을 위성 항법 시스템으로 통용이 된다. 

출처: 한겨레(https://www.hani.co.kr/arti/science/science_general/805767.html)


GNSS의 종류 (출처: https://en.wikipedia.org/wiki/Satellite_navigation )

• GPS(Global Positioning System): 미국, 32개

• GLONASS(Global Navigation Satellite System): 러시아, 24개

• BeiDou: 중국, 48개

• Galileo: 유럽, 26개


GPS의 원리

• 삼변측량 (Trilateration) 

삼각측량과 마찬가지로 삼각형 기하학을 사용하여 물체의 상대 위치를 구하는 방법이다. 하나의 변의 길이와, 양 끝의 두 각을 이용하는 삼각측량과는 달리 삼변측량은 목표의 위치를 알기 위해서 두 개 이상의 기준점과, 물체와 각 기준점과의 거리를 이용한다. 삼변측량만으로 2차원 면에서의 상대위치를 정확하고 유일하게 결정하기 위해서는 최소한 3개의 기준점이 필요하다.

(내용 출처: https://ko.wikipedia.org/wiki/삼변측량 )

(출처: https://www.researchgate.net/figure/Trilateration-based-GPS-position-with-no-errors-in-satellites-signals_fig2_282359540 )


GPS의 위치 계산 

(출처: https://ko.wikipedia.org/wiki/GPS )


• 의사거리(Pseudo Range)를 계산

GPS는 위성에서 송신한 신호의 시간을 이용하여 거리를 계산하게 되어있는데, 이 거리는 여러 가지 요인으로 인해 실제 거리가 아니다. 거리에 영향을 주는 요소는 다음과 같다.

- 위성 궤도 오차: ± 2.5 미터

- 위성 시간 오차: ± 2 미터

- 대류권 지연: ± 0.5 미터 

- Multipath: 반사되어 수신되는 신호: ± 1 미터 


• 최소 4개의 GPS 위성이 필요

이론상 3개이나 오차를 보정하고자 보통 네 개 이상의 위성을 이용해 위치를 결정


GPS Modulation

•  L1 =1.575 GHz

•  L2 = 1.227 GHz

- 군사용

•  L5 = 1.176 GHz

- L1에 비해 장애물을 잘 통과

신호 데이터

• Bit-rate: 50 bps

• Modulated with 1.023 MHz (CDMA)

• 전체 데이터 패킷은 길이가 30초이며 6초 길이의 프레임 5개를 포함

듀얼밴드 지원(https://itigic.com/ko/how-dual-band-gps-works-and-what-are-its-advantages) : L1과 L5를 수신하여 오차를 보정해 최고 30cm의 오차 

출처: ITIGIC(https://itigic.com/ko/how-dual-band-gps-works-and-what-are-its-advantages/)


GPS Packet

(출처: https://techlog.gurucat.net/260 ) 

출처: Wikipedia (https://en.wikipedia.org/wiki/GPS_signals)

● Message 형식

• 1 프레임은 5개의 서브 프레임으로 구성

• 1 프레임당 6초 소요

● TTFF(Time to first fix): GPS 신호 수신을 시작한 이후 위치를 파악하는 데 걸리는 시간

• Ephemeris(천문력, 2 ~ 3 frame)ㅇ

- 위성의 위치를 알기 위한 정보. 위성의 상태, 시간

• Almanac(책력, 4~5 frame)

- 특정 시간 GPS 위성의 궤도 정보

- 15,000 bits (12.5분 소요, 15000 bits / (60 seconds * 50 bit * 2 frame / 5 frame))


● Factory Start: 15분, 전체 Almanac 전체, Ephemeris 데이터 전체 수신

● Cold Start: 30초 ~ 1분 30초. 최소 3개 위성의 Ephemeris 데이터 수신

● Warm Start: 10~ 40초. 1~2개의 위성에서 Ephemeris를 수신

● Hot Start: 3 ~ 20초. 새로운 데이터 없이 위치 파악

● AGPS: 약 6초. Almanac, Ephemeris 데이터를 모바일 네트워크를 사용하여 다운로드


GPS NMEA 

(출처: https://gpsd.gitlab.io/gpsd/NMEA.html  ) 


● NMEA(National Marine Electronics Association)

• GPS chipset에서 serial port로 출력하기 위한 규격

• 시간, 위치, 방위 등의 정보 

출처:Sparkfun(https://www.sparkfun.com/datasheets/GPS/NMEA%20Reference%20Manual-Rev2.1-Dec07.pdf)


● GGA

• 시간, 경위도, active 위성수, 정확도


$GPGGA,114455.532,3735.0079,N,12701.6446,E,1,03,7.9,48.8,M,19.6,M,0.0,0000*48 


출처:Sparkfun (https://www.sparkfun.com/datasheets/GPS/NMEA%20Reference%20Manual-Rev2.1-Dec07.pdf)


● GSA

• Active 위성 정보


$GPGSA,A,2,19,25,15,,,,,,,,,,21.5,7.9,20.0*32 


출처: Sparkfun (https://www.sparkfun.com/datasheets/GPS/NMEA%20Reference%20Manual-Rev2.1-Dec07.pdf)

● GSV

• 현 위치에서 보이는 위성의 정보

- 위성 ID, 고도각, 방향각, 전파강도

• GSA에서 전달한 위성수만큼 데이터 전달 1개의 메세지당 4개의 위성 데이터


$GPGSV,3,1,10,03,86,244,00,19,51,218,38,16,51,057,00,07,40,048,00*77 


출처: Sparkfun (https://www.sparkfun.com/datasheets/GPS/NMEA%20Reference%20Manual-Rev2.1-Dec07.pdf)


출처: https://community.esri.com/t5/arcgis-maps-sdks-native-blog/positions-of-gps-satellites-in-3d/ba-p/1070293 


$GPGSV,3,2,10,13,34,279,00,23,33,236,00,15,29,076,40,25,25,143,38*71

$GPGSV,3,3,10,21,18,051,,27,12,315,*77

● RMC

• 최소 정보를 가진다. 시간/상태/경위도/속도/진행방향/날짜

$GPRMC,114455.532,A,3735.0079,N,12701.6446,E,0.000000,121.61,110706,,*0A  

출처: Sparkfun (https://www.sparkfun.com/datasheets/GPS/NMEA%20Reference%20Manual-Rev2.1-Dec07.pdf)



마치며

오늘은 위치 기반 서비스와 이를 제공하기 위한 필수 요소인 ‘측위’에 대하여 알아보았습니다. 특히나 이 글에서는 위치 기반 서비스 및 위치 결정 방법과 GPS의 동작 원리에 대해서 자세히 설명했는데요. 기초적인 GPS 동작과 한계를 이해함으로써, 더욱 새롭고 혁신적인 위치 기반 서비스를 제공할 수 있는 기반이 될 것으로 기대합니다. 감사합니다. 


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