Help us understand the problem. What is going on with this article?

SpresenseのGPSがQZSSのL1Sに対応したらしいので使ってみる

Spresenseとは?

Spresenseとは、Sonyが発売した小型マイコンボードです。
https://developer.sony.com/ja/develop/spresense/

特徴は、

  • GPS機能搭載(アンテナもメインボードに搭載、複数の衛星タイプに対応)
  • ハイレゾオーディオ
  • マルチコアプロセッサで強い
  • 省電力・小型

といったところです。
開発はArduino互換と、独自の組み込みOSを使うのとの2とおりです。

とくにこの大きさで低消費電力で、簡単に扱えて
これだけ多機能なマイコンボードは少なく、色々と使えそうなボードです。
私は、今年8月のMaker Faire Tokyoで購入して、遊んでいます。

QZSSのL1Sとは

QZSSは準天頂衛星のことで、日本が打ち上げた「みちびき」シリーズのことを指します。
準天頂衛星「みちびき」は、GPSと互換の測位信号を、日本近辺でなるべく天頂に近い位置から配信することで、特に都市部などでの測位精度をあげることが大きな役割となっています。

しかし、それだけではGPSの理論精度に、より近い精度で測位が可能になるだけです。
実は準天頂衛星には、L1Sや、L6といった、GPSを補完するための信号を送る仕組みが搭載されています。

http://qzss.go.jp/overview/services/sv05_slas.html

今回注目するL1Sは、L1C/Aという通常のGPS・QZSSで使っている電波の周波数帯と同じ周波数帯で、電離層遅延の補正信号などを送信するものです。
そのため、これまでのGPS受信機と同じ無線受信機で、受信後のデータの処理さえ行ってあげれば利用することができ、既存のGPS受信機の設計の軽微な変更で利用可能になるいう利点があります。

Spresenseの最近のアップデートで、このL1S信号の処理ができるようになったということで、実際に使ってみました。

使ってみる

https://developer.sony.com/ja/develop/spresense/developer-tools/get-started-using-arduino-ide/set-up-the-arduino-ide
こちらを参考にして、まずはArduino開発環境を整えます。
Spresenseの開発キットに関しては、最新のものを利用してください。 

さて、GNSS(全球衛星測位システム、まぁつまりGPSとかのことをまとめてこういう言い方をします)のサンプルスケッチを見てみましょう。
https://github.com/sonydevworld/spresense-arduino-compatible/blob/master/Arduino15/packages/SPRESENSE/hardware/spresense/1.0.0/libraries/GNSS/examples/gnss/gnss.ino

129~130行目に利用する衛星の設定があります。みちびきのGPS互換信号とL1S信号を使うように設定しています。GPSは、デフォルトで使うようになっています。

    Gnss.select(QZ_L1CA);  // Michibiki complement
    Gnss.select(QZ_L1S);   // Michibiki augmentation(Valid only in Japan)

https://github.com/sonydevworld/spresense-arduino-compatible/blob/master/Arduino15/packages/SPRESENSE/hardware/spresense/1.0.0/libraries/GNSS/GNSS.h
また、こちらをみると、

enum SpSatelliteType {
    GPS       = (1U << 0),
    GLONASS   = (1U << 1),
    SBAS      = (1U << 2),
    QZ_L1CA   = (1U << 3),
    QZ_L1S    = (1U << 5),
    UNKNOWN   = 0,
};

とあり、GLONASSなどにも対応していることがわかります。
今回は、上記のサンプルコードを用いてGPS・QZSS・QZSS L1Sを組み合わせて測位を試してみました。

結果を見てみる

シリアルから取得した結果の地理座標部分だけをCSVにして、Google Mapsのマイマップ機能を使って地図上に表示します。

マイマップ機能で新規の地図を作成すると、CSVからのインポートができます、
GoogleDriveなどに保存したCSVファイルなどからインポートすることができます。

実際にやってみた結果が、以下のような図になります。

SpresenseGPS検証

これは、いくつかの場所で静止状態で測位を続けたときの座標群を表示していますが、
かなり大きなずれがあることがわかります。
六本木ヒルズの周辺なので、やはりビル群による電波の反射などがあり精度がでにくいのではないかと思いました。

まとめ

あまり芳しくない結果になってしまいましたが、やはりGPS的な仕組みにとって、都市部は難しいフィールドだということでしょうか。
ともあれ、ログを確認したところではちゃんとL1Sの信号も拾っていますし、設定を代えて試したところGLONASSも拾えていることがわかったので、
今後より本格的な検証をしていこうと思います。

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away