Android フレームワークは、複数の Android デバイスで未加工の GNSS 測定値にアクセスできるようにします。
これらのツールは、GitHub の GPS 測定ツール リポジトリにあります。このリポジトリには、GnssLogger の予備バージョンのソースコードと、Linux、Windows、macOS 用のデスクトップ GNSS 分析アプリの実行可能ファイルが含まれています。設置およびユーザー マニュアル
Google スマートフォン デシメートル チャレンジ
Google、Institute of Navigation の Satellite Division、Kaggle は、ION GNSS+ で第 3 回 Smartphone Decimeter Challenge を共催します。このコンペティションは 2023 年 9 月 12 日に開始され、2024 年 5 月 23 日に終了します。生の GNSS 測定値、センサーデータ、正確なグラウンド トゥルースを含む 150 以上の新しいトレースが一般公開されます。このコンペティションにはどなたでも参加できます。参加者は、ION GNSS+ 2024 で開催される「Smartphone Decimeter Challenge」というタイトルのセッションに、要約を提出することをおすすめします。
ルールや規則などの詳細については、Kaggle のコンテスト ページをご覧ください。このページは、2023 年 9 月 12 日午後 3 時 30 分(山岳部夏時間)に公開されます。
生の GNSS 測定値をサポートする Android デバイス
Android 10(API レベル 29)以降を搭載しているデバイスでは、GNSS の未加工測定値のサポートが必須です。Android 9(API レベル 28)以前では、2016 年以降のハードウェアを搭載したすべての Android デバイスで、GNSS の未加工測定値のサポートが必須です。現在、既存の Android スマートフォンの 90% 以上に未加工の測定値があります。
一部の未加工 GNSS 測定フィールドのサポートはオプションであり、使用する GNSS チップセットによって異なる場合があります。これらのフィールドの例を次に示します。
- 疑似距離と疑似距離レート
- ナビゲーション メッセージ。
- 自動ゲイン コントローラ(AGC)の値。
- 累積デルタ範囲(ADR)または搬送波位相。
- マルチ周波数サポート
Google Pixel、Motorola、Samsung、Xiaomi、OnePlus などの主要なスマートフォン メーカーのフラッグシップ スマートフォンのほとんどは、すでに L1 周波数と L5 周波数に対応しています。Google Pixel のフラッグシップ スマートフォンや、Qualcomm Snapdragon チップセットを使用していない主要なスマートフォン メーカーのフラッグシップ スマートフォンでは、未加工の測定値の一部として ADR(搬送波位相)が提供されます。
さまざまな Android デバイスの GNSS 機能に関するコミュニティ提供のデータベースについては、「Android デバイスの GNSS 機能のクラウドソーシング」の記事をご覧ください。
Android デバイスが提供する未加工の測定フィールドの定義について詳しくは、全地球航法衛星システムをご覧ください。
相手先ブランド製品製造企業(OEM)、デベロッパー、研究者は、このページで説明するツールを、GNSS を利用したアプリを開発するためだけでなく、新しいスマートフォンの設計の検証、機能のテスト、新しいアルゴリズムの開発、GNSS システムの実装に対する改善の評価にも利用できます。
SUPL クライアントのサンプルコード
Suplclient は、supl.google.com にアクセスしてリアルタイムのエフェメリスを取得するサンプルコードです。SuplTester クラスは、SUPL Client Project の使い方の例になります。SuplTester は、SUPL TCP 接続仕様をセットアップし、指定の緯度と経度で LPP SUPL リクエストを送信して、SUPL サーバーからのレスポンスを出力します。
アンテナ キャリブレーション情報
Android 11(API レベル 30)以降では、GnssAntennaInfo クラスを使用して、位相中心オフセット(PCO)座標、位相中心変動(PCV)補正、信号ゲイン補正などのアンテナ特性にアクセスできます。これらの補正を未加工の測定値に適用して、精度を向上させることができます。
GnssAntennaInfo を使用する場合は、次のシステム動作に注意してください。ユーザーのプライバシーを強化するように設計されています。
- この API で提供される特性は、個々のデバイスではなく、デバイスモデルに固有のものです。
生の測定値のロギング
Android Studio を使用して、未加工の GNSS 測定値やその他の位置情報を取得し、ファイルに記録するアプリを構築できます。このようなアプリのソースコードの例については、GPS 測定ツールをご覧ください。
Google GNSSLogger は、この機能を使用して開発されたサンプルアプリです。サンプルアプリで GNSS 出力を取得するには、デバイスが生の GNSS 測定をサポートしている必要があります。
GNSS Logger を使用して GNSS ログをキャプチャしたら、ログファイルをデバイスからパソコンにコピーして、さらに分析できます。GNSS Logger 内から、ファイルをメールで自分に送信したり、Google ドライブに保存したりできます。または、デバイスのファイル管理アプリを使用してファイルを保存することも、デバイスとの間でファイルをコピーするで説明されているように Android Debug Bridge(ADB)を使用することもできます。
生の測定値の分析
GNSS Analysis アプリは、GNSS Logger によって収集された GPS/GNSS の未加工の測定値を読み取り、それらを使用して GNSS レシーバーの動作を分析します(図 1 を参照)。
このアプリは、Linux、Windows、macOS システム用にダウンロードできます。

図 1. GNSS Logger は、GNSS Analysis で使用できる測定値を収集します。
GNSS Analysis アプリは MATLAB 上に構築されていますが、実行するために MATLAB をインストールする必要はありません。アプリは、MATLAB ランタイムのコピーをインストールする実行可能ファイルにコンパイルされます。
GNSS Analysis コントロール パネル
図 2 に示す GNSS Analysis コントロール パネルでは、次のようなアプリ機能を管理できます。
- 表示する衛星の選択
- 測定誤差の計算に使用される基準位置、速度、時間(PVT)を制御します。
- 分析レポートの生成
- 開始時刻と終了時刻の間におけるデータ ウィンドウの定義
)
図 2. GNSS Analysis コントロール パネル
GNSS Analysis インタラクティブ プロット
GNSS Analysis アプリは、図 3 に示すように、無線周波数(RF)、クロック、測定値の列に整理されたインタラクティブなプロットを提供します。
)
図 3. インタラクティブなプロットを表示する GNSS Analysis アプリ。
RF 列には次のデータが表示されます。
- 各コンステレーションについて、最も強い電波を持つ 4 つの衛星。
- 各衛星の、搬送波対雑音密度比(C/No)の時間プロット。
- 衛星位置のスカイプロット。
クロック列には次のデータが表示されます。
- 疑似距離。
受信機クロックのオフセット周波数。次のいずれかの基準位置を使用して計算されます。
- 自動計算された平均位置。
- ユーザーが入力した緯度、経度、高度。
- 真の基準 PVT を含む National Marine Electronics Association(NMEA)ファイル。
受信機がプライマリ発振器のデューティ サイクルをリセットしたときに時間を維持するスタンバイ クロックのオフセット。
測定値列には次のデータが表示されます。
- 未加工の疑似距離から得られた、重み付き最小二乗法の位置の結果。重み付けは、各測定の報告された不確実性を使用して行われます。これは、未加工 Measurement API 仕様の一部です。
- 測定ごとの各擬似距離の誤差。
測定ごとの各擬似距離レートの誤差。
GNSS Analysis テストレポート
GNSS Analysis では、図 4 に示すように、API の実装、受信信号、クロック動作、測定精度を評価するテストレポートを生成できます。各ケースについて、アプリは、既知のベンチマークに対して測定されたパフォーマンスに基づいて、レシーバーがテストに合格したか不合格だったかを報告します。テストレポートは、デバイス メーカーが新しいデバイスの設計と実装を繰り返す際に役立ちます。テストレポートを生成するには、[Make Report] をクリックします。

図 4. GNSS Analysis テストレポート
[Compare] タブでは、図 5 に示すように、複数の GNSS ログファイルの C/No を並べて比較できます。これは、複数のデバイスの RF 性能を比較する場合に便利です。

図 5. 複数のログファイルの C/No データを並べて比較
ソースコードに興味がある場合は、GPS 測定ツール プロジェクトには、GPS コンステレーション信号を使用して次の操作を行うために使用できるオープンソースの MATLAB の例が用意されています。
- GNSS Logger サンプルアプリで取得したデータの読み込み。
- 疑似距離の計算と可視化。
- 位置と速度の重み付き最小二乗法による計算。
- 搬送波位相の表示と分析。
GNSS Analysis アプリ v4.6.0.1 リリースノート
GNSS Analysis アプリ バージョン 4.6.0.1 には、以下の更新が含まれています。
- Matlab R2022a で GnssAnalysisTool をビルドし、以下の新機能を利用できるようにしました。
- ステータス ウィンドウが自動スクロールされ、最新のステータス メッセージが常に表示されます。
- コンステレーション別、および L1 と L5 の比較による C/N0 比較の表を追加しました。
- 疑似距離率の残差プロットを追加しました。
- 参照 PVT の静止または移動のタブを削除し、どのタイプの参照 PVT が選択されているかを確認しやすくしました。
- 「レポートを作成」の結果を HTML からステータス ウィンドウに移動しました。
- [Mission Planner] タブを削除しました。gnssmissionplanning.com/ または www.gnssplanning.com/ を使用してください。
- RINEX 観測ファイルの解析に関連する修正。
- BKG が機能していない場合に、GPS と GLO の NASA CDDIS エフェメリス ソースにフォールバックします。
- igs.bkg.bund.de から igs-ftp.bkg.bund.de に移動
- GAL、QZSS、BDS の天体暦のダウンロードに失敗しても、分析を終了しないでください。
- チップセットが BaseBandCNo をサポートしていない場合でも、アンテナ CNo 分析を作成する
フィードバックを送信
Google では、Android における GNSS のサポートの改善を図っています。Android での GNSS サポートに関する問題については、GNSS Issue Tracker を使用してお知らせください。その際には、あらかじめよくある質問に同じ問題が掲載されていないかご確認ください。
GNSS 分析ツールをご利用になった場合は、簡単なアンケートに回答してフィードバックをお寄せください。その他の質問やサポートのリクエストについては、デベロッパー サポート リソースをご覧ください。
よくある質問とその回答については、GNSS Analysis Tools のよくある質問をご覧ください。