[OSGeoJapan-discuss] GNSSレシーバのNMEA-0183フォーマット出力について

Hiroshi Miura(@osmf) miurahr @ osmf.jp
2014年 8月 22日 (金) 00:46:34 PDT


こんにちは。三浦です。


としさん、丹羽さん、
ご教授ありがとうございます。


On 2014年08月21日 20:59, Makoto Niwa wrote:
> 三浦さん
> こんばんは、丹羽と申します
>
> SBASのNMEA出力の衛星番号のマッピングに-87を始めたのはGarminです。
> NMEAの衛星番号の桁数が2桁と制限されているためにこのような対応をしたようです。
> 多くのGPSメーカーがこれを真似しました。これはNMEA ver.4.0になりました。

Ver4.0の経緯について、よくわかったように思います。

http://www.nmea.org/Assets/0183_advancements_nmea_oct_1_2010%20%282%29.pdf

こういうプレゼン資料があって、NMEA-0183 V4.00が2008年11月に
発行されていて、Ver4.10が2011年に発行予定というように出ています。

そして、V4.10では、Galileoのサポートが入って、GNSーGNSS Fix Dataいうセンテンスで、
GNSS System IDフィールドで(1=GP,2=GL,3=GA,4=??)のような拡張がされたりするようです。


Version 4.10 cancels and replaces NMEA 0183 V 4.00, published in November 2008
http://www.nmea.org/content/nmea_standards/nmea_0183_v_410.asp

ということですので、今後はこれに準拠していけばいいのだろうとは思うのですが、
どうなんでしょう??

現在、コンシューマ向けや、安価に入手可能なレシーバで、Androidタブレット等に
接続して、マッピングに使えそうなものでは、どんな出力をはくんでしょうね。

>
> みちびき(1)のPRN番号は193ですので、これも3桁でオーバーフローしてしまいます。
> ただ、193-87としてもまだ3桁なのでこれも各メーカーでの対応となりました。
>
> また、ご指摘のようにガリレオは北斗などどんどんGNSSが増えていくため、
> とても2桁では対応できないというのが現状です。
>

はい一方で、上記のように、随分前に規格の方は整備されているようなので、
なにかが追いついていない、という事でしょうか。


On 2014年08月21日 22:16, Toshihisa Tanaka wrote:
> としです.
>
>> 三浦%OpenStreetMap Japanなです
> ...
>> マルチGNSS時代のGPS/GNSSの情報処理にあたって、
>> 各衛星やチャネル等を識別するときに、何を拠り所に
>> すればいいのでしょう?
> GPS モジュールは,NMEA で来てもチップによりけりではあります.
>
> で,NMEA センテンスの前2文字は Talker ID と言って,
> センサーの出力元を示します.
>
> なので,QZGSV の場合は,QZ (て何...) が出している衛星情報と見て,
> GPGSV の場合は,GP(GPS) が出している衛星情報と,意図的に分けて
> パースすると良いかなと思います.
>
> http://www.catb.org/gpsd/NMEA.html
>
> それにしても,"QZ" と言う Talker ID で喋ってくるのはちょっと驚きではあります.
> と言うか "QZ" は多分に規格にはないはずなので,"QZ" は個別に扱う
> (あくまで Nexus7(2012)のBCMチップ固有)と見たほうが良いかなと思います.

どうようの話なのですが、BEIDOUに対応した製品のなかには
http://szparts.com/?mode=f3

例えば、
BDGSA, BDGSVセンテンスを出してくるものも有るようです。
しかも、NMEA衛星IDは、RPN -200のシフトする とか。



いろいろサーベイしたところ、いろんな種類のセンテンスに対応する必要が有りそうな
ことが分かりました。

https://github.com/miurahr/bluegnss4osm/blob/cleanup_gps_and_nmea_status/src/org/da_cha/android/bluegnss/util/nmea/NmeaState.java#L54

こちらのソース中コメントに有りますような、雑多なシーケンスでセンテンスをパースするように
取り組んでいます。が、なにがただしいか、わからないですね

> うーん.Nexus7 は QZSS 未対応だと思っていましたが,こういう形だったのですね...
>

はい、そのようです。又、Androidの内部の作り上も、課題があるようです。

https://thenewcircle.com/s/post/1188/Android-Services-Black-Magic-at-AnDevCon3.pdf

こちらの図表の10ページに
AndroidにおけるLocaitonの扱いの、Androidシステム内部構造が
示されています。

Android のAPIでは、LocationManagerが返してくるGpsStatusクラスは、
その名の通り、GPSにのみ対応できるクラスになっていて、GNSSの
識別子を持っていないようなのです。
又、RPNがtalker idに関わらず一意であるような
あつかい内部構造のようです


まあ、そういう訳で、いま作っているアプリでは、
GnssStatus、GnssSatelliteというクラスを
自前で定義して、使うようにしています。

https://github.com/miurahr/bluegnss4osm/blob/master/src/org/da_cha/android/bluegnss/GnssStatus.java
https://github.com/miurahr/bluegnss4osm/blob/master/src/org/da_cha/android/bluegnss/GnssSatellite.java




三浦


More information about the OSGeoJapan-discuss mailing list