[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