ETC.../GIS

GPS 수신 데이터

izen8 2013. 8. 1. 09:29
반응형

 

 

 

GPS 로 구한 두 지점의 (위도, 경도) 정보 및 속도 구하기

 


 

 

 

 

GPS 개발 모듈

Code Project] Add GPS support to your desktop
[url]http://www.codeproject.com/system/gps_support.asp?target=gps

 

 

GPS 수신 데이터 형식



GPS가 수신하는 데이터는 다음과 같다. 
사용자가 수신된 데이터중 일부를 추출해서 자료로 사용을 할 수 가 있다. ( 파싱을 통해 )
NMEA 라고 주로 불리는 NMEA 0183은 시간, 위치, 방위 등의 정보를 전송하기 위한 규격이다. 
NMEA 0183은 미국의 The National Marine Electronics Association에서 정의해 놓았다. 
이 데이터들은 주로 gyrocompass, GPS, 나침반, 관성항법장치(INS)에 사용된다. NMEA 0183은 ASCII와 직렬 방식의 통신을 사용한다.


○ Application Layer에서의 Sentence의 특징은 다음과 같다.


- '$'로 시작한다.
- Sentence의 종류는 GP로 시작한다.
- 데이터의 구분은 ','로 한다.
- '*'로 끝난다.
- '$'와 '*'사이의 모든 데이터를 exclusive or 연산을 하여 체크섬을 만들어 추가한다.
- <CR><LF>를 붙인다.


○ GPGGA


GPGGA Global Positioning System Fix Data라고 한다. 여기에서 주로 알 수 있는 것은 시간, 위도, 경도, 고도 등이다.


$GPGGA,114455.532,3735.0079,N,12701.6446,E,1,03,7.9,48.8,M,19.6,M,0.0,0000*48
- 114455.532는 시간으로서 Zulu time (그리니치 표준시) 기준으로 11시 44분 55.532초를 뜻한다.


- 3735.0079는 위도로서 37도 35.0079분을 뜻한다. 도(degree) 단위로 환산시, 대략 37.5도가 된다.
- 뒤의 N은 북위를 뜻한다. 적도 남쪽에 있다면 S가 된다.
- 12701.6446은 경도로서 127도 1.6446분을 뜻한다. 도(degree) 단위로 환산시, 대략 127.도가 된다.
- 뒤의 E는 동경을 뜻한다. W가 되면 서경이 된다.
- '1'은 Fix의 종류를 뜻한다. 이 자리의 숫자에 따른 뜻은 다음과 같다.
- 0 : Invalid 잘못된 데이터. 주로 위성이 안잡힐 경우.
- 1 : GPS에서 제공하는 기본 위성을 가지고만 계산할 경우.
- 2 : DGPS를 이용하여 보정하여 계산할 경우


- DGPS를 이용할 경우 더욱 정확한 측정이 가능해 진다. DGPS는 지구의 지표의 위치가 명확히 알려진 곳에 기지국을 설치하거나 
또 다른 위성(NAVSTAR GPS위성이 아닌 타 위성)이 GPS송출 신호를 내보내어 보정하도록 하는 방법이다. 
보통 15M정도의 오차를 가지는 GPS가 DGPS로 보정할 경우 5M로 오차가 줄어들게 된다.


- '03'은 계산에 사용한 위성을 개수를 나타낸다. 위치를 알기 위해서 최소3개 이상의 신 호를 받아야 한다.
- '7.9'는 horizontal dilution of Precision으로 2차원적 오차결정(수평방향)을 뜻한다.
- '48.8M'는 해수면 기준 고도이다.
- '19.6M'는 WGS-84에서 정해놓은 타원체로서 모델링한 지구와 구체로서 모델링된 지구의 고도차이를 뜻한다.
- '0.0'과 '0000'은 DGPS 사용시 마지막으로 update한 시간과 DGPS 기지국의 ID이다.
- '48'은 Check Sum이다.


○ GPGSV


GPGSV GPS Satellites in View는 현재 GPS Module이 수신할 수 있는 모든 위성의 정보이다. 모든 위성을 계산에 사용하지는 않는다.


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


$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


- '3'은 앞으로 나올 GPGSV가 총 몇개의 Sentence일지 알려준다. 여기에서는 총 3개의 Sentence이다.
- '1'은 GPGSV Sentence중 몇 번째의 Sentence인지 알려준다. 여기에서는 1번째 Sentence이다.
- '10'은 현재 수신할 수 있는 모든 위성의 개수를 나타낸다.
- '03,86,244,00'는
- 3번 위성이고,
- 현재 자신의 위치에서 86도 (degree) elevation
- 244도 (degree)의 Azimuth
- 신호대잡음비 (SNR)은 0 이다.
- ‘77'은 Checksum이다.


최대 4개의 위성이 하나의 Sentence에 들어갈 수 있다.


○ GPRMC


GPRMC Recommended Minimmum data는 추천되는 최소한의 데이터들이다.


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


- 114455.532는 시간으로서 Zulu time (그리니치 표준시) 기준으로 11시 44분 55.532초를 뜻한다.
- A는 GPS 신호의 신뢰성을 뜻한다. (A = 신뢰할 수 있음, V = 신뢰할 수 없음)
- 3735.0079는 위도로서 37도 35.0079분을 뜻한다. 도(degree) 단위로 환산시, 대략 37.5도가 된다.
- 뒤의 N은 북위를 뜻한다. 적도 남쪽에 있다면 S가 된다.
- 12701.6446은 경도로서 127도 1.6446분을 뜻한다. 도(degree) 단위로 환산시, 대략 127.도가 된다.
- 뒤의 E는 동경을 뜻한다. W가 되면 서경이 된다.
- '0.000000'은 Speed over ground로서 knots 단위의 속도계이다. 비행기에서는 KIAS라는 속도 단위를 사용하고, 배에서는 Knots를 사용한다. 
KIAS는 Knots indicator air speed의 약자이다. km/h로 변환시 대략 1.8을 곱한다.
- '121.61'은 Track Angle in degree true로서, 진행 방향을 정북을 0도부터 359도 까지 표현한 것이다. 121.61은 대략 동남쪽이다.
- '110706'은 Date를 뜻한다. 여기에서는 11th, July, 2006이며 2006년 7월 11일이다.
- ' '는 Megnetic Variation으로서 나침반이다. 예시의 GPS Module은 나침반이 내장되어 있지 않다
- '*0A'는 체크섬이다.


GPS 데이터 수신 주기


수신주기는 모듈에 따라서 다르게 나타나는데 보통 1s 미만으로 표기를 하고 있다. 수신주기에 따라 전력 소모를 제어 할 수 있다. 
일반적으로 데이터를 1초 미만 으로 수신을 해서 네비게이션 지도에 표시되는 시간은 ‘위치연산을 통한 지도에 표시하는 시간‘ 에 따라 달라진다. 

 

 

반응형