Android GNSS Analysisツールを用いた中国製スマートフォンXiaomi Mi8の2周波測位

category: gnss
tags: rtk

Xiaomi(シャオミ) Mi 8のGNSS機能

Android GNSS Analysis

米国のGPS、欧州のGalileo、中国のBeiDou(北斗)、日本のQZSなどの測位人工衛星(GNSS: Global Navigation Satellite System)から放送される電波を受信して、自らの位置を表示する受信機能を持つスマートフォンは数多くあります。

衛星電波のみにより自らの位置を測位すると、自らが止まっていても、数メートルから数十メートル程度、動いているように表示されます。このような「測位誤差」は、衛星内部時計補正値や衛星位置の情報とその放送内容との間の不一致や、天空にある電離層の電子密度濃淡に起因する電波遅延量変動により生じるといわれています。スマートフォンやカーナビゲーションは、その加速度センサやタイヤ回転センサの情報を用いて、止まっているときには止まっているように表示しているのでしょう。近年の測位衛星は、複数の周波数帯の電波を放送していますが、これはこの後者の電離層による測位誤差を受信側で軽減できるようにするためです。

測量用の高性能GNSS受信機は、この2以上の周波数の電波を同時に受信して位置を求めています。一方、ほとんどのカーナビゲーションやスマートフォンでは、L1やE1などと呼ばれている、GNSSごとの代表的なひとつの周波数のみを受信して、測位を行っています。しかし、このような用途に向け、米国のBroadcom社は比較的安価な2周波GNSS測位チップBCM47755を2017年9月に発表しました。

中国のスマートフォンメーカーXiaomiのMi 8は、このBCM47755で2周波GNSSの測位ができて、しかも積算デルタレンジ(accumulated delta range)という測位の内部情報をも取り出せるとのことがGoogleのRaw GNSS Measurementsに書かれています。

そこで、Mi 8を購入して、この記事の通りに、GNSS Logger APKをMi 8にインスートルしました。GNSS機能を確認するソフトウェアは、他にもG-RitZ LoggerGPSTestがあります。

Xiaomi Mi 8

ところで、このMi 8は、日本国内の技術基準適合制度の認証を受けていないために、日本ではそのセルラ通信機能や無線LAN機能を使用できません。しかしながら、USB-CポートへのOTG接続により、有線イーサネットには接続できました。GNSS測定データのPC読み込みに手間のかかる点は残念です。

Raw Data Measurement

大学の屋上にこのMi 8を置き、15分程度の間GNSS電波を測定しました。

Dual-frequency GNSS measurement

その測定データをパソコンに取り込んで解析しました。解析に必要なファイルは、この「Android GNSS Analysis」が自動的に取得してくれるはずですが、私の環境では失敗しました。エラーメッセージに従い手動で取得すると次のような解析グラフが表示されます。

Results of Android GNSS Analysis

解析終了後に「Make Report」ボタンを押すと、測定のまとめが表示されました。多岐にわたるレポートが出力され、測位技術好きには嬉しいです。API、Received Signal Analysis、Recever Clock Analysis、Pseudorange Analysis、C/No Explanation(サテライトプロット)、Receiver Clock Explanation、Pseudorange Explanationの項目があります。残念ながら、私のMi 8では、Received Signal Analysisの項目に次のようなメッセージがありました。

GPS(L1), mean of strongest 4 median C/No = 42.1 dBHz
Pass/fail reference threshold = 38.0 dBHz
GPS(L5), mean of corresponding L5 C/No = 38.5 dBHz
Error: mean(L5 signals) weaker than mean (L1 signals)
FAIL BECAUSE L5 WEAKER THAN L1

GLO(L1), mean of strongest 4 median C/No = 41.0 dBHz
Pass/fail reference threshold = 35.5 dBHz
PASS

GAL(E1), mean of strongest 4 median C/No = 37.1 dBHz
Pass/fail reference threshold = 38.0 dBHz
GAL(E5), mean of corresponding L5 C/No = 37.0 dBHz
Error: L1 signals -0.9 dB compared to reference
FAIL BECAUSE OF WEAK SIGNALS
Error: mean(L5 signals) weaker than mean (L1 signals)
FAIL BECAUSE L5 WEAKER THAN L1

BDS(L1), mean of strongest 4 median C/No = 34.5 dBHz
Pass/fail reference threshold = 38.0 dBHz
Error: L1 signals -3.5 dB compared to reference
FAIL BECAUSE OF WEAK SIGNALS

QZS(L1), mean of strongest 2 median C/No = 22.2 dBHz
Pass/fail reference threshold = 38.0 dBHz
QZS(L5), mean of corresponding L5 C/No = 21.1 dBHz
Error: L1 signals -15.8 dB compared to reference
FAIL BECAUSE OF WEAK SIGNALS
Error: mean(L5 signals) weaker than mean (L1 signals)
FAIL BECAUSE L5 WEAKER THAN L1

FAIL

このスマートフォンの良いところは、第2の周波数である、L5信号やE5信号を受信できることにあります。一般的な使い方をするのであれば、この第2の周波数を受信可能衛星数の増加の効果があります。

このAndroid GNSS Analysisでは、積算デルタレンジを用いて、さらに高精度測位を行おうとするものです。L1信号やE1信号だけでなく、L5信号やE5信号でも、この積算デルタレンジ情報を抽出して高精度測位ができることを期待していました。上述のC/Noのレポートは、L5信号やE5信号の受信電波強度が低いことを示しています。そのために他の解析も失敗していました。この原因は、このGNSSアンテナがL5信号やE5信号はうまくキャッチできないためであると推測しています。L1信号やE1信号を良好に受信できているからです。

今回の結論は「多周波GNSS測位の時代は近づいている」です。今回の実験はオープンスカイ(天空にほとんど障害物がない)環境で行いましたが、他の場所でも試してみたいと思います。