GnssMeasurement 構造体リファレンス

GnssMeasurement 構造体リファレンス

#include < gps.h >

データ フィールド

size_t size
 
GnssMeasurementFlags   フラグ
 
int16_t svid
 
GnssConstellationType   星座
 
ダブル time_offset_ns
 
GnssMeasurementState   state
 
int64_t received_sv_time_in_ns
 
int64_t received_sv_time_uncertainty_in_ns
 
ダブル c_n0_dbhz
 
ダブル pseudorange_rate_mps
 
ダブル pseudorange_rate_uncertainty_mps
 
GnssAccumulatedDeltaRangeState   accumulated_delta_range_state
 
ダブル accumulated_delta_range_m
 
ダブル accumulated_delta_range_uncertainty_m
 
float carrier_frequency_hz
 
int64_t carrier_cycles
 
ダブル carrier_phase
 
ダブル carrier_phase_uncertainty
 
GnssMultipathIndicator   multipath_indicator
 
ダブル snr_db
 

詳細な説明

GNSS 測定値を表します。未加工の情報と計算された情報が含まれます。

独立性 - この構造体で報告されるすべてのシグナル測定情報(sv_time、pseudorange_rate、multipath_indicator など)は、GNSS シグナル測定値のみに基づく必要があります。既知または推定される位置、速度、時間に基づいて、測定値を計算または報告して測定値を合成することはできません。

ファイル gps.h 1656 行の定義。

フィールドのドキュメント

double accumulated_delta_range_m

前回のチャンネル リセットからの累積デルタ範囲(メートル単位)。正の値は、SV がレシーバーから離れていることを示します。

「累積デルタ範囲」の符号と「搬送波位相」の符号の関係は、累積デルタ範囲 = -k * 搬送波位相(k は定数)という式で表されます。

「累積デルタ範囲の状態」が GPS_ADR_STATE_UNKNOWN と異なる場合は、この値を入力する必要があります。ただし、データの精度は「累積デルタ範囲の状態」が GPS_ADR_STATE_VALID の場合に限られます。

ファイル gps.h 1835 行の定義。

GnssAccumulatedDeltaRangeState accumulated_delta_range_state

累積デルタレンジの状態。ADR がリセットされたか、サイクル スリップ(ロックの喪失)が発生したかどうかを示します。

これは必須の値です。

ファイル gps.h 1821 行の定義。

double accumulated_delta_range_uncertainty_m

累積デルタ範囲の 1 シグマ不確実性(メートル単位)。「累積デルタ範囲の状態」が GPS_ADR_STATE_UNKNOWN と異なる場合は、この値を入力する必要があります。

ファイル gps.h 1841 行の定義。

double c_n0_dbhz

キャリアとノイズの比率(dB-Hz)。通常は [0, 63] の範囲です。アンテナ ポートで測定されたシグナルの C/N0 値が含まれています。

これは必須の値です。

ファイル gps.h 1778 行の定義。

int64_t carrier_cycles

衛星とレシーバー間の完全な搬送波サイクル数。基準周波数は、フィールド「carrier_frequency_hz」で指定します。この値の累積中にサイクル スリップやリセットが発生した可能性があるかどうかは、accumulated_delta_range_state フラグから推測できます。

データが利用可能な場合は、flags に GNSS_MEASUREMENT_HAS_CARRIER_CYCLES を含める必要があります。

ファイル gps.h 1861 行の定義。

float carrier_frequency_hz

コードとメッセージが変調される搬送周波数。L1 または L2 にできます。このフィールドが設定されていない場合、搬送周波数は L1 とみなされます。

データが利用可能な場合は、flags に GNSS_MEASUREMENT_HAS_CARRIER_FREQUENCY を含める必要があります。

ファイル gps.h 1850 行の定義。

carrier_phase を 2 倍にします

レシーバによって検出された RF フェーズ([0.0, 1.0] の範囲)。これは通常、完全な搬送波位相測定の小数部分です。

基準周波数は、フィールド「carrier_frequency_hz」で指定します。この値には「搬送波位相の不確実性」が含まれています。

データが利用可能な場合は、flags に GNSS_MEASUREMENT_HAS_CARRIER_PHASE を含める必要があります。

ファイル gps.h 1873 行の定義。

carrier_phase_uncertainty を 2 倍にします。

搬送波位相の 1 シグマ不確実性。データが利用可能な場合は、flags に GNSS_MEASUREMENT_HAS_CARRIER_PHASE_UNCERTAINTY を含める必要があります。

ファイル gps.h 1880 行の定義。

GnssConstellationType コンステレーション

指定された SV の衛星群を定義します。値は GNSS_CONSTELLATION_* 定数のいずれかである必要があります。

ファイル gps.h 1673 行の定義。

このデータ構造内のフィールドの有効性を示すフラグのセット。

ファイル gps.h 1661 行 の定義。

GnssMultipathIndicator multipath_indicator

イベントの「マルチパス」状態を示す列挙型。

マルチパス インジケーターは、歪んだ相関ピークとして現れる重複するシグナルの存在を報告することを目的としています。

  • 相関ピークの形状が歪んでいる場合は、マルチパスが GNSS_MULTIPATH_INDICATOR_PRESENT であることを報告します。
  • 歪んだ相関ピークの形状がない場合は、GNSS_MULTIPATH_INDICATOR_NOT_PRESENT を報告します。
  • 電波が弱すぎてこの情報を判別できない場合は、GNSS_MULTIPATH_INDICATOR_UNKNOWN を報告します。

例: 標準化された重複マルチパス パフォーマンス テスト(3GPP TS 34.171)を行う場合、マルチパス インジケーターは、トラッキングされ、マルチパスを含むシグナルに対して GNSS_MULTIPATH_INDICATOR_PRESENT を報告し、トラッキングされ、マルチパスを含まないシグナルに対して GNSS_MULTIPATH_INDICATOR_NOT_PRESENT を報告する必要があります。

ファイル gps.h 1901 行の定義。

double pseudorange_rate_mps

タイムスタンプにおける疑似距離レート(m/s)。特定の疑似距離レート値の補正には、レシーバーと衛星のクロックの周波数エラーの補正が含まれます。このフィールドが独立していることを確認します( GnssMeasurement 構造体の上部にあるコメントをご覧ください)。

「未補正」の「偽距離レート」を指定し、 GpsClock の「ドリフト」フィールドも指定する必要があります(未補正の偽距離レートを指定する場合は、上記の補正を適用しないでください)。

この値には「疑似距離レートの不確実性」が含まれています。正の「未補正」値は、SV がレシーバーから離れていることを示します。

「未補正」の「偽距離レート」の符号と、「ドップラー シフト」の符号との関係は、偽距離レート = -k * ドップラー シフト(k は定数)という式で表されます。

これは、このチャネルからの最新のシグナル測定に基づいて利用可能な最も正確な偽距離レートです。

この値は、信号が十分に強く安定している場合(35 dB-Hz 以上の GPS シミュレータからの信号など)、一般的な搬送波相 PRR 品質(1 秒あたり数 cm/秒の不確実性以下)で提供する必要があります。

ファイル gps.h 1805 行の定義。

double pseudorange_rate_uncertainty_mps

pseudorange_rate_mps の 1 シグマ不確実性。不確実性は絶対値(片側)で表されます。

これは必須の値です。

ファイル gps.h 1813 行の定義。

int64_t received_sv_time_in_ns

測定時の受信 GNSS 曜日(ナノ秒単位)。このフィールドが独立していることを確認します( GnssMeasurement 構造体の上部にあるコメントをご覧ください)。

GPS と QZSS の場合、これは測定時の GPS 曜日(ナノ秒単位)です。この値は、現在の GPS 週の開始を基準としています。

衛星ごとに達成可能な最高の同期状態が考慮されているため、このフィールドの有効な範囲は次のとおりです。検索中: [ 0 ] : GNSS_MEASUREMENT_STATE_UNKNOWN C/A コードロック: [ 0 1ms ] : GNSS_MEASUREMENT_STATE_CODE_LOCK が設定されますビット同期: [ 0 20ms ] : GNSS_MEASUREMENT_STATE_BIT_SYNC が設定されますサブフレーム同期: [ 0 6s ] : GNSS_MEASUREMENT_STATE_SUBFRAME_SYNC が設定されます TOW デコード済み: [ 0 1 週間 ] : GNSS_MEASUREMENT_STATE_TOW_DECODED が設定されます

注: 整数ミリ秒に曖昧さがある場合は、それに応じて「state」フィールドに GNSS_MEASUREMENT_STATE_MSEC_AMBIGUOUS を設定する必要があります。

この値は、「state」が GNSS_MEASUREMENT_STATE_UNKNOWN 以外の場合に入力する必要があります。

Glonass の場合、これは測定時のナノ秒単位の Glonass 時刻です。

衛星ごとに達成可能な最高の同期状態を前提として、このフィールドの有効な範囲は次のとおりです。検索中: [ 0 ] : GNSS_MEASUREMENT_STATE_UNKNOWN C/A コードロック: [ 0 1ms ] : GNSS_MEASUREMENT_STATE_CODE_LOCK が設定されます。シンボル同期: [ 0 10ms ] : GNSS_MEASUREMENT_STATE_SYMBOL_SYNC が設定されます。ビット同期: [ 0 20ms ] : GNSS_MEASUREMENT_STATE_BIT_SYNC が設定されます。文字列同期: [ 0 2s ] : GNSS_MEASUREMENT_STATE_GLO_STRING_SYNC が設定されます。時刻: [ 0 1day ] : GNSS_MEASUREMENT_STATE_GLO_TOD_DECODED が設定されます。

Beidou の場合、これは、測定時のナノ秒単位の Beidou の曜日です。

衛星ごとに達成可能な最高の同期状態を前提として、このフィールドの有効な範囲は次のとおりです。検索中: [ 0 ] : GNSS_MEASUREMENT_STATE_UNKNOWN C/A コードロック: [ 0 1ms ] : GNSS_MEASUREMENT_STATE_CODE_LOCK が設定されますビット同期(D2): [ 0 2ms ] : GNSS_MEASUREMENT_STATE_BDS_D2_BIT_SYNC が設定されますビット同期(D1): [ 0 20ms ] : GNSS_MEASUREMENT_STATE_BIT_SYNC が設定されますサブフレーム(D2): [ 0 0.6 秒 ] : GNSS_MEASUREMENT_STATE_BDS_D2_SUBFRAME_SYNC が設定されますサブフレーム(D1): [ 0 6 秒 ] : GNSS_MEASUREMENT_STATE_SUBFRAME_SYNC が設定されます週の曜日: [ 0 1 週間 ] : GNSS_MEASUREMENT_STATE_TOW_DECODED が設定されます

Galileo の場合、これは、測定時刻のナノ秒単位の Galileo 曜日です。

E1BC コードロック : [ 0 4ms ] : GNSS_MEASUREMENT_STATE_GAL_E1BC_CODE_LOCK が設定されています。E1C 2 番目のコードロック: [ 0 100ms ] : GNSS_MEASUREMENT_STATE_GAL_E1C_2ND_CODE_LOCK が設定されています。

E1B ページ : [ 0 2s ] : GNSS_MEASUREMENT_STATE_GAL_E1B_PAGE_SYNC が設定されています。曜日: [ 0 1week ] : GNSS_MEASUREMENT_STATE_TOW_DECODED が設定されています。

SBAS の場合、これは測定時刻のナノ秒単位の SBAS 受信時刻です。

衛星ごとに達成可能な最高の同期状態が考慮されているため、このフィールドの有効な範囲は次のとおりです。検索中: [ 0 ] : GNSS_MEASUREMENT_STATE_UNKNOWN C/A コードロック: [ 0 1ms ] : GNSS_MEASUREMENT_STATE_CODE_LOCK が設定されています シンボル同期: [ 0 2ms ] : GNSS_MEASUREMENT_STATE_SYMBOL_SYNC が設定されています メッセージ: [ 0 1s ] : GNSS_MEASUREMENT_STATE_SBAS_SYNC が設定されています

ファイル gps.h 1763 行の定義。

int64_t received_sv_time_uncertainty_in_ns

受信した GPS 曜日の 1 シグマ不確実性(ナノ秒単位)。

この値は、「state」が GPS_MEASUREMENT_STATE_UNKNOWN 以外の場合に入力する必要があります。

ファイル gps.h 1770 行の定義。

size_t size

sizeof(GpsMeasurement) に設定

ファイル gps.h 1658 行 の定義。

double snr_db

コレレータ出力の信号対雑音比(dB)。データが利用可能な場合は、flags に GNSS_MEASUREMENT_HAS_SNR を含める必要があります。これは、「観測されたノイズフロアからの相関ピークの高さ」と「ノイズ RMS」の電力比です。

ファイル gps.h 1,909 行 の定義。

衛星ごとの同期ステータス。関連付けられたサテライトの現在の同期状態を表します。同期状態に基づいて、[received GPS tow] フィールドを適切に解釈する必要があります。

これは必須の値です。

ファイル gps.h 1694 行の定義。

int16_t svid

GNSSvInfo::svid で定義されている衛星の車両 ID 番号。必須の値です。

ファイル gps.h 1667 行の定義。

double time_offset_ns

測定が行われた時間のオフセット(ナノ秒単位)。参照レシーバーの時刻は GpsData::clock::time_ns で指定され、 GpsClock::type で示されている方法と同じように解釈する必要があります。

time_offset_ns の符号は、測定時間 = GpsClock::time_ns + time_offset_ns という式で表されます。

測定の個々のタイムスタンプを提供し、ナノ秒未満の精度を実現します。これは必須の値です。

ファイル gps.h 1686 行の定義。


この構造体のドキュメントは、次のファイルから生成されました。
  • hardware/libhardware/include/hardware/ gps.h