상세 컨텐츠

본문 제목

GPS위성 위치정보 - NMEA (National Marine Electronics Association) - 1편

공돌이를 위한 얕은 지식

by 어리버Lee 2019. 1. 29. 12:55

본문

나는 길눈이 밝은 편이다. 그래서 어디를 가더라도 인터넷으로 지도를 한번 훑어보면 찾아가는데 별로 불편함을 느끼지 못했었다. 그런데 나이를 먹어가는 것일까? 아님 문명의 이기에 익숙해진 것일까? 

네비게이션 없이는 길을 선뜻 나서기가 어려워진다.

 

2000년대 들어 첨단기술로 여겨졌던 위성으로부터 받아오는 위치정보를 기반으로 지도와 매칭시켜서 길안내를 해주거나 과속 단속 카메라등의 위치를 알려주는 등 정보를 제공해 주는 네비게이션이란 제품이 점점 우리의 운전 생활에 없어서는 안될 필수품이 되어갔다.

 

 

 

이때만 해도 OS기반의 모니터 일체형 태블릿 제품에 전용 네비게이션 소프트웨어가 설치되고 외부에 위성으로 부터 정보를 받는 GPS수신기가 추가로 필요해서 꽤나 비싼 제품이었다.

 

그러나 요즘은 GPS안테나가 내장된 스마트 폰의 어플리케이션 프로그램으로서 이 네비게이션이 무료로 제공되고 있어서 더욱 많은 사람들이 이거 없이는 운전을 못하고 있다.

 

 

우리가 쉽게 사용하고있는 이 GPS 안테나의 원리는 꽤나 복잡하다.

 

여러개의 GPS위성으로 부터 위성통신 주파수를 통해 날아오는 각각의 위성의 시간과 위치정보를 받아서 삼각법을 이용해서 방향과 속도등을 계산해내어 필요한 정보로 사용하고 있다.

 

파고 들어갈수록 어려운 내용들이 많이 있지만 이런건 나중에 생각하고 우리는 일단 GPS모듈의 출력으로서 제품의 UART 포트를 통해 9600bps로 끊임없이 출력되는 NMEA라는 데이터를 먼저 알아야 한다.

 

이 NMEA라는 데이터는 해양 기자재들 간의 통신을 위한 전기적 인터페이스 및 데이터의 프로토콜로서 해양과 관련되는 장비들의 인터페이스 프로토콜의 표준으로 사용되고 있다

 

GPS장치에 있어서도 이 NMEA-0183 프로토콜이 국제표준으로 되어있어, 대다수의 GPS장치들이 이 NMEA-0183이라는 인터페이스를 지원하고 있다.

 

 

 

 

 

NMEA 데이터의 예 ) 

 

아래와 같은 신호가 각 항목마다 1초내지 수초마다 한번씩 text 형태로 계속 들어오게 된다.

 

 

 

 

 

 

 

 

 ,(comma) : 각각의 유효한 별개의 데이터를 구분짓는 delimiter로 사용된다.

 

 $ : 모든 항목의 첫번째로 나온다.

 

 

 

 GP : talker ID로서 GPS에서는 대게 GP를 사용한다. Radar에서는 RA가 사용된다.

 

 

 

 GGA : sentence ID로서 GGA는 'Global Positioning System Fix Data'의 약자이다.

 

 

 

위의 예로 보듯이 여러가지 항목이 있고 이에 따라 메시지 내용들이 달라진다.

 

 

 

141113.999,3730.0308,N,12655.2369,E,1,06,1.7,98.9,M,,,,0000 

  (GGA에 해당되는 내용)

 

 

: Comma가 여러 개인 경우는 형식상 있어야 할 항목인데 실 내용이 없는 경우이다.

 

 

 

 *3E : checksum, *”뒤에 16진수 두 자리로 표시한다.

 

 

$,*”를 제외하고 그 사이에 있는 각 문자에 해당하는 코드값을 exclusive-or를 한 값을 표시한다.

 

 

 

이 값이 일치하지 않은 경우는 통신에 문제가 있는 경우이므로 그 Line을 사용하면 안 된다.

 

 

 

 CR-LF : 맨 마지막에 붙는다.  sentence 82자까지 가능하다.

 

 

 

위의 예에서는 GPGGA, GPRMC, GPGSA, GPGSV의 네 항목이 사용되었는데 웬만한 GPS 수신기라면 이 정도는 default로 나온다. 

 

좀 더 고급형의 경우는 더 많은 문장의 출력 여부와 출력시간 등을 사용자가 setting할 수 있게 되어 있다.

 

 

 

또 제조사들이 각 sentence를 만드는 경우도 있는데 그 경우는 $P로 시작 한다. 심지어 NMEA 포맷이 아닌 제조사만의 binary 포맷을 같이 지원하기도 하기 때문에 NMEA 포맷으로바꾸는 방법을 GPS 구입시 확인하여야 한다.

 

 

 

 

 

1.GGA ( GlobalPositioning System Fix Data )

 

GGA데이터의 각 필드는 아래와 같이 구성되며 각 필드에 대한 간단한 설명은 아래를 참고하기 바란다.

 

 

 

 


 

 

 

 

Field Number

 

 

 

(1) Universal Time Coordinated (UTC)

 

 

 평균태양시를 기준으로 한 그리니치표준시(GMT)에서 미국 해군 천문대의 원자시계의 시간을 기준으로 협정 세계시(UTC)로 바뀐 국제표준시를 말한다. 

 

, 세계 표준시이므로 우리나라에서는 읽혀지는 시간에 9시간을 더해 주어야 한다.

 

 

 

날짜까지 알려면 GPRMC에서 처리하면 된다. 그리고 각 sentence 마다 시간이 조금씩 차이가 나는데 이는 각 sentence가 생성되는 시점이 차이가 나기 때문이다.

 

 

 

(2) Latitude -경도 & (4) Longitude -위도

 

 

 경도의 경우 앞자리 세자가 도에 해당하며, 위도의 경우는 앞 두 자가 해당된다. 그 뒤의 숫자는 분을 나타내며 초는 분으로 환산되어있다. 도분초로환산하려면 소수점 밑에 숫자에 60을 곱해야 한다.

 

 

ex) 0.5589 * 60 = 33.534

 

 

 

(3) N or S (North or South) & (5) E or W (East or West)

 

 

 동경과 서경, 북위와 남위를 나타낸다. 우리나라에서는 N,E밖에 볼 수 없다.

 

 

 

(6) GPS Quality Indicator

 

 

 위치가 결정되었느냐를 가리키는 값으로, 0,1,2가 있다.

 (1번이나 그 이후의 숫자는 믿을 수 있음)

 

 

 

0 - fix not available : 계산된 위치를 믿을 수 없음을 나타냄. 

 처음 켰을 경우나 위성신호가 잘 수신되지 않는 지역에서 흔히 볼 수 있다.

 

 

1 - GPS fix

 

 

2 - Differential GPS fix

 

 

 

(7) Number of satellites in view, 00  12

 

 

 현재 수신되는 위성의 개수

 

 

 

(8) Horizontal Dilution of precision

 

 

 수평(2차원) 측위정도 DOP를 나타냄

 

 

 

(9) Antenna Altitude above/below mean-sea-level (geoid)

 

 

: 평균해수면(MSL:Mean Sea Level)을 기준으로 한 고도이다. 보통우리가 생각하는 높이와 일치하며, 보통 GPS는 수평오차보다 수직오차가 크다. 위성은 우리 위에 존재하기때문에 높이 값은 신뢰할 수 없다.

 

 

 

(10) Units of antenna altitude, meters

 

 

 

(11) Geoidal separation, the difference between the WGS-84 earth ellipsoid and mean-sea-level (geoid), "-" means mean-sea-level below ellipsoid

 

 

: MSL Geoid의 고도차이다. 물론 마이너스 값이나올 수 있다. 보통 GPS수신기에는 NULL 처리가 되 있다. (GPS에서 나오는 모든 경위도 좌표는 WGS-84 타원체를 기준으로 하고 있다)

 

 

 

(12) Units of geoidal separation, meters & (13) Age of differentialGPS data, time in seconds since last SC104 type 1 or 9 update, null field whenDGPS is not used

 

 

: 고도의 단위이다. M이라는 것은 Meter단위이다.

 

 

 

(14) Differential reference station ID, 0000-1023

 

 

 

 

 

2.RMC (RecommendedMinimum Navigation Information)

 

 

말 뜻 그대로 navigation에 일반적으로 필요한 데이터 항목을 다 가지고 있다.

 

 

 

일단 GPGGA는 모두 지원 하므로 가장 중요한 위치는 가져올 수 있다

GPGGA에서 지원을 안 하지만 흔히 많이 쓰는 것이 속도와 방향 날짜등이다. (GPGGA에서는 시간만 나온다) 가령 속도와 방향은 GPVTG에서 가져 올 수 있으며 날짜는 GPZDA에서 가져 올 수 있다

(최근에 나온 GPS 들은 모두 RMC를 지원한다)

 

 

 

 

 

 

 

 

 

 

Field Number

 

 

 

(1) UTC Time & (9) Date, ddmmyy

 

 

 같이 연상하여 완전한 날짜와 시간을 얻을 수 있다. 역시 9시간을 더해야 한다.

 

 

 

(2) Status, V = Navigation receiver warning

 

 

: GGA 8번항목인 Position Fix와 비슷함. 간편하게 A V로 표시한다. V일 경우는 위치정보를 신뢰할 수 없는 경우이다.

 

 

 

(3) Latitude-경도 & (5) Longitude-위도 (4) Nor S & (6) E or W : GGA와 동일

 

 

 

(7) Speed over ground, knots

 

 

 속도를 표시하는 것으로, 해양용이라 역시 Knots단위로 되어있다. GPVTG에서는 Km/h도 지원한다. Km/h로 바꾸려면 1.852를 곱하면 된다.

 

 

 

(8) Track made good, degrees true

 

 

: 진행 방향이다. 진북을 중심으로 시계방향으로 0~359까지의각도가 주어진다. 여기서 말하는 진북은 WGS-84 타원체를중심으로 한 것이다.

 

 

 

(10) Magnetic Variation, degrees

 

 

 

 

: 자북과 8번에서 말한 진북과의 차이를 각도로 표시한 것. 가령나침반으로 정밀하게 측정할 때 유용할 것이다. 그러나 대부분의GPS에서는대개 NULL로 채워져 있다.

 

이상 GPS의 NMEA데이터 중 먼저 GGA와 RMC에 대한 설명을 간단히 기술한다. 

2편에서는 남은 부분들에 대해서 살펴보겠다.

 

 

See You soon~~

반응형

관련글 더보기