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 シグナル測定値のみに基づく必要があります。既知または推定される位置、速度、時間に基づいて、測定値を計算または報告して測定値を合成することはできません。
フィールドのドキュメント
double accumulated_delta_range_m |
GnssAccumulatedDeltaRangeState accumulated_delta_range_state |
double accumulated_delta_range_uncertainty_m |
double c_n0_dbhz |
int64_t carrier_cycles |
float carrier_frequency_hz |
carrier_phase を 2 倍にします |
carrier_phase_uncertainty を 2 倍にします。 |
GnssConstellationType コンステレーション |
GnssMeasurementFlags flags |
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 を報告する必要があります。
double pseudorange_rate_mps |
タイムスタンプにおける疑似距離レート(m/s)。特定の疑似距離レート値の補正には、レシーバーと衛星のクロックの周波数エラーの補正が含まれます。このフィールドが独立していることを確認します( GnssMeasurement 構造体の上部にあるコメントをご覧ください)。
「未補正」の「偽距離レート」を指定し、 GpsClock の「ドリフト」フィールドも指定する必要があります(未補正の偽距離レートを指定する場合は、上記の補正を適用しないでください)。
この値には「疑似距離レートの不確実性」が含まれています。正の「未補正」値は、SV がレシーバーから離れていることを示します。
「未補正」の「偽距離レート」の符号と、「ドップラー シフト」の符号との関係は、偽距離レート = -k * ドップラー シフト(k は定数)という式で表されます。
これは、このチャネルからの最新のシグナル測定に基づいて利用可能な最も正確な偽距離レートです。
この値は、信号が十分に強く安定している場合(35 dB-Hz 以上の GPS シミュレータからの信号など)、一般的な搬送波相 PRR 品質(1 秒あたり数 cm/秒の不確実性以下)で提供する必要があります。
double pseudorange_rate_uncertainty_mps |
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 が設定されています
int64_t received_sv_time_uncertainty_in_ns |
double snr_db |
GnssMeasurementState state |
int16_t svid |
GNSSvInfo::svid で定義されている衛星の車両 ID 番号。必須の値です。
double time_offset_ns |
測定が行われた時間のオフセット(ナノ秒単位)。参照レシーバーの時刻は GpsData::clock::time_ns で指定され、 GpsClock::type で示されている方法と同じように解釈する必要があります。
time_offset_ns の符号は、測定時間 = GpsClock::time_ns + time_offset_ns という式で表されます。
測定の個々のタイムスタンプを提供し、ナノ秒未満の精度を実現します。これは必須の値です。
この構造体のドキュメントは、次のファイルから生成されました。
- hardware/libhardware/include/hardware/ gps.h