Skip to content

VehicleGnss (UORB message) ​

Selected GNSS solution.

Published by the sensors module for every sample of the selected receiver, usable or not, with the selection state and the check result for that sample. Heading is on vehicle_gnss_heading.

TOPICS: vehicle_gnss

Fields ​

명칭형식Unit [Frame]Range/Enum설명
timestampuint64usTime since system start
timestamp_sampleuint64usMeasurement time, delay corrected. Use this rather than receiver.timestamp_sample, which holds the same value
receiverSensorGnssThe selected receiver's sensor_gnss sample with the corrected timestamp_sample
antenna_offsetfloat32[3]m [FRD]Antenna position of the selected receiver
selected_instanceuint8sensor_gnss instance of the selected receiver
selection_countuint8Increments when the selected receiver changes
usableboolSample may be used: the receiver has passed its checks for long enough
failed_checksuint16CHECKBitmask of the enabled checks that failed

Enums ​

CHECK ​

Used in field(s): failed_checks

명칭형식Value설명
CHECK_NSATSuint161Too few satellites
CHECK_PDOPuint162Position dilution of precision too high
CHECK_EPHuint164Horizontal position accuracy too low
CHECK_EPVuint168Vertical position accuracy too low
CHECK_SACCuint1616Speed accuracy too low
CHECK_HDRIFTuint1632Horizontal position drift at rest too high
CHECK_VDRIFTuint1664Vertical position drift at rest too high
CHECK_HSPEEDuint16128Horizontal speed at rest too high
CHECK_VSPEEDuint16256Vertical speed at rest too high
CHECK_SPOOFEDuint16512Receiver reports spoofing
CHECK_FIXuint161024Fix type too low
CHECK_JAMMEDuint162048Receiver reports jamming

Source Message ​

Source file (GitHub)

Details

Click here to see original file

c
# Selected GNSS solution
#
# Published by the sensors module for every sample of the selected receiver, usable or not, with the selection state and the check result for that sample.
# Heading is on vehicle_gnss_heading.

uint64 timestamp        # [us] Time since system start
uint64 timestamp_sample # [us] Measurement time, delay corrected. Use this rather than receiver.timestamp_sample, which holds the same value

SensorGnss receiver # The selected receiver's sensor_gnss sample with the corrected timestamp_sample

float32[3] antenna_offset # [m] [@frame FRD] Antenna position of the selected receiver

# Selection state
uint8 selected_instance # [-] sensor_gnss instance of the selected receiver
uint8 selection_count   # [-] Increments when the selected receiver changes

# Check result for this sample
bool usable                 # Sample may be used: the receiver has passed its checks for long enough
uint16 failed_checks        # [@enum CHECK] Bitmask of the enabled checks that failed
uint16 CHECK_NSATS   = 1    # Too few satellites
uint16 CHECK_PDOP    = 2    # Position dilution of precision too high
uint16 CHECK_EPH     = 4    # Horizontal position accuracy too low
uint16 CHECK_EPV     = 8    # Vertical position accuracy too low
uint16 CHECK_SACC    = 16   # Speed accuracy too low
uint16 CHECK_HDRIFT  = 32   # Horizontal position drift at rest too high
uint16 CHECK_VDRIFT  = 64   # Vertical position drift at rest too high
uint16 CHECK_HSPEED  = 128  # Horizontal speed at rest too high
uint16 CHECK_VSPEED  = 256  # Vertical speed at rest too high
uint16 CHECK_SPOOFED = 512  # Receiver reports spoofing
uint16 CHECK_FIX     = 1024 # Fix type too low
uint16 CHECK_JAMMED  = 2048 # Receiver reports jamming