Android フレームワークでは、複数の Android デバイスで未加工の GNSS 測定値にアクセスできます。
ツールは GitHub の GPS 測定ツール リポジトリから入手できます。これには、GnssLogger の予備バージョンのソースコードと、Linux、Windows、macOS 用のデスクトップ GNSS Analysis アプリの実行可能ファイルが含まれています。インストールとユーザー マニュアルをご覧ください。
Google スマートフォン デシメーター チャレンジ
Google、ナビ研究所衛星部門、Kaggle は、ION GNSS+ で第 3 回スマートフォン デシメーター チャレンジを開催します。この大会は 2023 年 9 月 12 日から 2024 年 5 月 23 日まで開催されます。未加工の GNSS 測定値、センサーデータ、正確なグラウンド トゥルースを含む 150 以上の新しいトレースが一般公開されます。コンテストにはどなたでもご参加いただけます。ION GNSS+ 2024 で行われる「スマートフォン デシメーター チャレンジ」というタイトルのセッションに、概要を提出することをおすすめします。
ルールや規制などについて詳しくは、Kaggle のコンテストのページをご覧ください。このページは 2023 年 9 月 12 日午後 3 時 30 分(MDT)から公開されます。
生の GNSS 測定値をサポートする Android デバイス
Android 10(API レベル 29)以降を搭載しているデバイスでは、未加工の GNSS 測定のサポートが必須です。Android 9(API レベル 28)以前では、2016 年以降のハードウェアを搭載したすべての Android デバイスでは、未加工の GNSS 測定値のサポートが必須です。現在、既存の Android スマートフォンの 90% 以上が、未加工の測定値を持っています。
未加工の GNSS 測定フィールドの一部のサポートはオプションであり、使用する GNSS チップセットによって異なる場合があります。これらのフィールドの例を以下に示します。
- 疑似距離と疑似距離レート
- ナビゲーション メッセージ。
- 自動ゲイン コントローラ(AGC)の値。
- 累積デルタレンジ(ADR)またはキャリア位相。
以下の表に、Android 搭載デバイスの例と、未加工の GNSS 測定値のサポートレベルを示します。
モデル | Android バージョン | AGC | ADR(搬送波位相) | L5 | 測位システム |
---|---|---|---|---|---|
Google Pixel 4/5/6/7 | 12 | ○ | はい | はい | GPS GLO GAL BDS QZS |
Xiaomi Mi 9 | 9 | ○ | いいえ | はい | GPS GLO GAL BDS QZS |
Xiaomi Mi 8 | 8.1 | × | はい | はい | GPS GLO GAL BDS QZS |
Huawei P30 Pro | 9 | × | はい | はい | GPS GLO GAL BDS |
Huawei Mate 20 | 9 | × | はい | はい | GPS GLO GAL BDS |
OnePlus 7 Pro | 9 | ○ | いいえ | はい | GPS GLO GAL |
OnePlus 7 | 9 | ○ | いいえ | はい | GPS GLO GAL |
Samsung Galaxy S20/S21 Ultra(Exynos)* | 12 | ○ | はい | はい | GPS GLO GAL BDS QZS |
Samsung Galaxy S9(Exynos)* | 8.0 | × | はい | いいえ | GPS GLO GAL QZS |
Samsung Galaxy S9+ | 8.0 | いいえ | いいえ | いいえ | GPS GLO GAL |
* Samsung Galaxy Exynos バージョンは近年 ADR を提供しています。Samsung Snapdragon バージョンでは ADR はまだ提供されていません。
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 ロガーによって収集された GPS/GNSS の生の測定値を読み取り、それらを使用して GNSS レシーバーの動作を分析します(図 1 を参照)。
Linux、Windows、macOS のシステム用のアプリをダウンロードできます。
GNSS Analysis アプリは MATLAB をベースとしていますが、MATLAB で実行する必要はありません。アプリは、MATLAB ランタイムのコピーをインストールする実行可能ファイルにコンパイルされます。
GNSS Analysis コントロール パネル
図 2 の GNSS Analysis コントロール パネルでは、次のようなアプリ機能を管理できます。
- 表示する衛星の選択
- 測定誤差の計算に使用する基準位置、速度、時間(PVT)を制御する。
- 分析レポートの生成
- 開始時刻と終了時刻の間におけるデータ ウィンドウの定義
)
GNSS Analysis インタラクティブ プロット
GNSS Analysis アプリでは、図 3 に示すように、高周波(RF)、クロック、測定の列で編成されたインタラクティブなプロットが表示されます。
)
RF 列には次のデータが表示されます。
- 各コンステレーションについて、最も強い電波を持つ 4 つの衛星。
- 各衛星の、搬送波対雑音密度比(C/No)の時間プロット。
- 衛星位置のスカイプロット。
クロック列には次のデータが表示されます。
- 疑似距離。
レシーバ クロックのオフセット周波数。次のいずれかの基準位置を使用して計算されます。
- 自動計算された平均位置。
- ユーザーが入力した緯度、経度、高度。
- 信頼できる参照 PVT を含む米国海洋電子協会(NMEA)ファイル。
レシーバがプライマリ オシレータのデューティ サイクルをリセットする時刻を保持するスタンバイ クロックのオフセット。
測定値列には次のデータが表示されます。
- 未加工の疑似距離から得られる重み付き最小二乗位置の結果。重み付けは、各測定値でレポートされる不確実性を使用して行われます。これは、raw Measurement API 仕様の一部です。
- 測定ごとの各擬似距離の誤差。
測定ごとの各擬似距離レートの誤差。
GNSS Analysis テストレポート
GNSS Analysis では、図 4 に示すように、API 実装、受信信号、クロック動作、測定精度を評価するテストレポートを生成できます。各ケースについて、アプリは既知のベンチマークに対して測定されたパフォーマンスに基づいて、レシーバーがテストの合格または不合格を報告します。テストレポートは、デバイス メーカーが新しいデバイスの設計と実装を繰り返す際に活用できます。テストレポートを生成するには、[Make Report] をクリックします。
[比較] タブでは、図 5 に示すように、複数の GNSS ログファイルからの C/No を並べて比較できます。これは、複数のデバイスの RF パフォーマンスを比較する際に役立ちます。
ソースコードに興味がある場合は、GPS Measurement Tool Project では、GPS コンステレーション信号を使用して次の操作を実行できるオープンソースの MATLAB サンプルを提供しています。
- GNSS Logger サンプルアプリで取得したデータの読み込み。
- 疑似距離の計算と可視化。
- 位置と速度の重み付き最小二乗法による計算。
- 搬送波位相の表示と分析。
GNSS Analysis アプリ v4.6.0.1 リリースノート
GNSS Analysis アプリ バージョン 4.6.0.1 には、以下の更新が含まれています。
- Matlab R2022a で GnssAnalysisTool を構築し、次の新機能にアクセスできるようにしました。
- ステータス ウィンドウの自動スクロール: 最新のステータス メッセージが常に表示されます。
- コンステレーションによる C/N0 の比較、および L1 と L5 の比較の表を追加。
- 疑似距離率の残差プロットを追加しました。
- 基準 PVT の固定または移動の個別のタブが削除され、選択されている基準 PVT のタイプがわかりやすくなりました。
- 「レポートを作成」の結果を HTML からステータス ウィンドウに移動しました。
- ミッション プランナーのタブを削除しました。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 Analysis ツールを使用したことがある場合は、簡単なアンケートに回答してフィードバックをお寄せください。その他の質問やサポート リクエストについては、デベロッパー サポート リソースをご覧ください。
よくある質問への回答は、GNSS 分析ツールに関するよくある質問で確認できます。