#概要
GPSを理解したかった。
NMEAを調べてみた。
#$GPGGA
$GPGGA,m1,m2,c1,m3,c2,d1,d2,f1,f2,M,f3,M,f4,d3*cc
m1 UTC時刻 hhmmss.ss形式です
m2 緯度 ddmm.mmmm
c1 緯度の種類 北緯=N 南緯=S
m3 経度 ddmm.mmmm
c2 経度の種類 東経=E 西経=W
d1 位置の種類 0=無効 1=自律測位 2=差分補正(ディファレンシャル補正またはRTCM基地局補正)
d2 測位に利用した人工衛星の個数
f1 位置の精度(水平方向)HDOP n.nn
f2 標高(基準楕円体からの標高) n.nn
M 高さの単位 M=メートル
f3 ジオイドからの距離(ジオイド高) n.nn
M ジオイドからの距離単位 M=メートル
f4 ディファレンシャル補正値
d3 RTCMの基地局ID
cc チェックサム
#$GPGSA
$GPGSA,m1,m2,d1,d2,d3,d4,d5,d6,d7,d8,d9,d10,d11,d12,pd,hd,vd*cc
m1 モード M=2D/3Dマニュアル A=2D/3D自動
m2 モード 1=無効 2=2D 3=3D
d1~d12 衛星番号
pd PDOP
hd HDOP
vd VDOP
cc チェックサム
#$GPGSV
$GPGSV,n1,n2,n3,n4,d1,d2,sn,ssv1,ssv2,ssv3,ssv4,tsv1,tsv2,tsv3,tsv4,fsv1,fsv2,fsv3,fsv4*cc
n1 メッセージの個数
n2 メッセージ番号
n3 取得できた人工衛星の個数
n4 人工衛星のID番号(PRN)
d1 人工衛星の仰角 90度が最大値
d2 人工衛星の方位角 0~359度の範囲
sn SN比 0~99dBの範囲
ssv1 2番目の人工衛星の人工衛星のID番号(PRN)
ssv2 2番目の人工衛星の人工衛星の仰角
ssv3 2番目の人工衛星の人工衛星の方位角
ssv4 2番目の人工衛星のSN比
tsv1 3番目の人工衛星の人工衛星のID番号(PRN)
tsv2 3番目の人工衛星の人工衛星の仰角
tsv3 3番目の人工衛星の人工衛星の方位角
tsv4 3番目の人工衛星のSN比
fsv1 4番目の人工衛星の人工衛星のID番号(PRN)
fsv2 4番目の人工衛星の人工衛星の仰角
fsv3 4番目の人工衛星の人工衛星の方位角
fsv4 4番目の人工衛星のSN比
cc チェックサム
補足
n1が2の場合は $GPGSV行が2行続き n2=1,n2=2の行がある。
#$GPRMC
$GPRMC,m1,c1,m2,c2,m3,c3,f1,f2,d1,f3,c4*cc
m1 測位時刻(UTC) hhmmss.ss
c1 ステータス A:有効 V:無効
m2 緯度 ddmm.mmmmmm
c2 ステータス N:北緯 S:南緯
m3 経度 ddmm.mmmmmm
c3 ステータス W:西経 E:東経
f1 対地速度(ノット)
f2 進行方向 真北に対しての度
d1 日付 ddmmyy
f3 地磁気の偏角 度
c4 偏角の方向 W:西 E:東
cc チェックサム
#$GPVTG
$GPVTG,f1,c1,f2,c2,f3,c3,f4,c4,c5*cc
f1 真北に対する進行方向(度)
c1 T
f2 磁北に対する進行方向(度)
c2 M
f3 対地速度(ノット)
c3 N
f4 対地速度(km/h)
c4 K
c5 モード A:単独測位 D:ディファレンシャル測位 N:無効
cc チェックサム
#$GPGLL
$GPGLL,ddmm.mmmm,N,dddmm.mmmm,E,hhmmss,x,a*cc
ddmm.mmmm 緯度(度、分、1/10000分)
N N:北緯、S:南緯
dddmm.mmmm 経度(度、分、1/10000分)
E E:東経、W:西経
hhmmss 測位時刻(UTC、時、分、秒)
x 測位状態
A:単独測位中またはDGPS測位中
V:未測位
a 測位モード
N:未測位
A:単独測位中
D:DGPS測位中
cc チェックサム
#使い方
緯度経度が欲しい場合、$GPGGAか$GPRMCか$GPGLLをパース。
高さが欲しい場合、$GPGGAをパース。
衛星の仰角、方位角が欲しい場合、$GPGSVをパース。
日付が欲しい場合、$GPRMCをパース。
時間が欲しい場合、$GPGGAか$GPRMCをパース。
利用した衛星の数、$GPGGAをパース。
移動速度が欲しい場合、$GPVTGか$GPRMCをパース。
移動方向が欲しい場合、$GPVTGか$GPRMCをパース。
健康状態が欲しい場合、$GPGSAをパース。
測位モードが欲しい場合、$GPGLLをパース。
以上。