PVT

The PVT block is the last one in the GNSS-SDR flow graph. Hence, it acts as a signal sink, since the stream of data flowing along the receiver ends here.

The role of a PVT block is to compute navigation solutions and deliver information in adequate formats for further processing or data representation.

Depending on the specific application or service that is exploiting the information provided by GNSS-SDR, different internal data will be required, and thus the receiver needs to provide such data in an adequate, standard formats:

  • For Geographic Information Systems, map representation and Earth browsers: KML and GeoJSON.
  • For sensor integration: NMEA-0183.
  • For post-processing applications: RINEX 2.11 and 3.02.
  • For real-time, possibly networked processing: RTCM-104 messages, v3.2.

In PVT implementations that support it, KML files are generated automatically by default, upon the computation of the first position fix.

In PVT implementations that support it, GNSS-SDR by default generates RINEX version 3.02. If 2.11 is needed, it can be requested through a commandline flag when invoking the software receiver:

   $ gnss-sdr --RINEX_version=2

In PVT implementations that support it, the TCP/IP server of RTCM messages can be enabled by setting PVT.flag_rtcm_server=true in the configuration file, and will be active during the execution of the software receiver. By default, the server will operate on port 2101 (which is the recommended port for RTCM services according to the Internet Assigned Numbers Authority, IANA), and will identify the Reference Station with ID=1234. This behaviour can be changed through the configuration file.

Important: In order to get well-formatted GeoJSON, KML and RINEX files, always terminate gnss-sdr execution by pressing key ‘q’ and then key ‘ENTER’. Those files will be automatically deleted if no position fix have been obtained during the execution of the software receiver.

Read more about standard output formats at our Interoperability page.

Implementation: GPS_L1_CA_PVT

This PVT implementation computes position fixes usign GPS L1 C/A signals and a basic, memoryless Least Squares solution. Those solutions are exported to KML and GeoJSON formats for their graphical representation.

In addition, observation and navigation RINEX files are also generated by default.

If configured, this block delivers NMEA messages in real-time through a serial port.

If configured, this block also generates RTCM messages in real-time, delivered through a TCP server.

This implementation accepts the following parameters:

Global Parameter Description Required
GNSS-SDR.SUPL_gps_ephemeris_xml Name of an XML file containing GPS ephemeris data. It defaults to ./gps_ephemeris.xml Optional
Parameter Description Required
implementation GPS_L1_CA_PVT Mandatory
flag_averaging Perfoms averaging over the internally generated results before outputting them. It defaults to false. Optional
averaging_depth If flag_averaging is set to true, size of the buffer performing a moving average. It defaults to 10. Optional
output_rate_ms Rate at which PVT solutions will be computed, in ms. The minimum is the integration time used in the tracking block. It defaults to 500 ms. Optional
display_rate_ms Rate at which PVT solutions will be displayed in the terminal, in ms. It defaults to 500 ms. Optional
nmea_dump_filename Name of the file containing the generated NMEA sentences in ASCII format. It defaults to ./nmea_pvt.nmea. Optional
flag_nmea_tty_port [true, false]: If set to true, the NMEA sentences are also sent to a serial port device. It defaults to false. Optional
nmea_dump_devname If flag_nmea_tty_port is set to true, descriptor of the serial port device. It defaults to /dev/tty1. Optional
flag_rtcm_server [true, false]: If set to true, it runs up a TCP server that is serving RTCM messages to the connected clients during the execution of the software receiver. It defaults to false. Optional
rtcm_tcp_port If flag_rtcm_server is set to true, TCP port from which the RTCM messages will be served. It defaults to 2101. Optional
rtcm_station_id Station ID reported in the generated RTCM messages. It defaults to 1234. Optional
rtcm_MT1019_rate_ms Rate at which RTCM Message Type 1019 (GPS Ephemeris data) will be generated, in ms. It defaults to 5000 ms. Optional
rtcm_MSM_rate_ms Rate at which RTCM Multiple Signal Messages GPS MSM7 (MT1077 - Full GPS observations) will be generated, in ms. It defaults to 1000 ms. Optional
flag_rtcm_tty_port [true, false]: If set to true, the generated RTCM messages are also sent to a serial port device. It defaults to false. Optional
rtcm_dump_devname If flag_rtcm_tty_port is set to true, descriptor of the serial port device. . It defaults to /dev/pts/1. Optional
dump [true, false]: If set to true, it enables the PVT internal binary data file logging. It defaults to false. Optional
dump_filename If dump is set to true, name of the file in which internal data will be stored. It defaults to ./pvt.dat. Optional

Example:

;######### PVT CONFIG ############
PVT.implementation=GPS_L1_CA_PVT
PVT.nmea_dump_filename=./gnss_sdr_pvt.nmea ; NMEA log path and filename
PVT.flag_nmea_tty_port=true ; Enable the NMEA log to a serial TTY port
PVT.nmea_dump_devname=/dev/pts/4 ; serial device descriptor for NMEA log

Implementation: Galileo_E1_PVT

This PVT implementation computes position fixes usign Galileo E1B signals and a basic, memoryless Least Squares solution. Those solutions are exported to KML and GeoJSON formats for their graphical representation.

In addition, observation and navigation RINEX files are also generated by default.

If configured, this block delivers NMEA messages in real-time through a serial port.

If configured, this block also generates RTCM messages in real-time, delivered through a TCP server.

This implementation accepts the following parameters:

Parameter Description Required
implementation Galileo_E1_PVT Mandatory
flag_averaging Perfoms averaging over the internally generated results before outputting them. It defaults to false. Optional
averaging_depth If flag_averaging is set to true, size of the buffer performing a moving average. It defaults to 10. Optional
output_rate_ms Rate at which PVT solutions will be computed, in ms. It defaults to 500 ms. Optional
display_rate_ms Rate at which PVT solutions will be displayed in the terminal, in ms. It defaults to 500 ms. Optional
nmea_dump_filename Name of the file containing the generated NMEA sentences in ASCII format. It defaults to ./nmea_pvt.nmea. Optional
flag_nmea_tty_port [true, false]: If set to true, the NMEA sentences are also sent to a serial port device. It defaults to false. Optional
nmea_dump_devname If flag_nmea_tty_port is set to true, descriptor of the serial port device. It defaults to /dev/tty1. Optional
flag_rtcm_server [true, false]: If set to true, it runs up a TCP server that is serving RTCM messages to the connected clients during the execution of the software receiver. It defaults to false. Optional
rtcm_tcp_port If flag_rtcm_server is set to true, TCP port from which the RTCM messages will be served. It defaults to 2101. Optional
rtcm_station_id Station ID reported in the generated RTCM messages. It defaults to 1234. Optional
rtcm_MT1045_rate_ms Rate at which RTCM Message Type 1045 (Galileo Ephemeris data) will be generated, in ms. It defaults to 5000 ms. Optional
rtcm_MSM_rate_ms Rate at which RTCM Multiple Signal Messages Galileo MSM7 (MT1097 - Full Galileo observations) will be generated, in ms. It defaults to 1000 ms. Optional
flag_rtcm_tty_port [true, false]: If set to true, the generated RTCM messages are also sent to a serial port device. It defaults to false. Optional
rtcm_dump_devname If flag_rtcm_tty_port is set to true, descriptor of the serial port device. . It defaults to /dev/pts/1. Optional
dump [true, false]: If set to true, it enables the PVT internal binary data file logging. It defaults to false. Optional
dump_filename If dump is set to true, name of the file in which internal data will be stored. It defaults to ./pvt.dat. Optional

Example:

;######### PVT CONFIG ############
PVT.implementation=GALILEO_E1_PVT
PVT.averaging_depth=100
PVT.flag_averaging=false
PVT.output_rate_ms=100;
PVT.display_rate_ms=500;
PVT.nmea_dump_filename=./gnss_sdr_pvt.nmea;
PVT.flag_nmea_tty_port=true;
PVT.nmea_dump_devname=/dev/pts/4
PVT.flag_rtcm_server=true;
PVT.rtcm_tcp_port=2101
PVT.rtcm_MT1045_rate_ms=5000
PVT.rtcm_MSM_rate_ms=1000

Implementation: Hybrid_PVT

This is a PVT implementation that computes position fixes using all the receiver’s available signals, and performs a basic, memoryless Least Squares solution. Those solutions are exported to KML and GeoJSON formats for their graphical representation. You always can use this implementation in your configuration file, since it accepts all kind of (single- or multi-band, single- or multi-constellation) receiver configurations.

If configured, this block delivers NMEA messages in real-time through a serial port.

If configured, this block also generates RTCM messages in real-time, delivered through a TCP server.

This implementation accepts the following parameters:

Global Parameter Description Required
GNSS-SDR.SUPL_gps_ephemeris_xml Name of an XML file containing GPS ephemeris data. It defaults to ./gps_ephemeris.xml Optional
Parameter Description Required
implementation Hybrid_PVT Mandatory
flag_averaging Perfoms averaging over the internally generated results before outputting them. It defaults to false. Optional
averaging_depth If flag_averaging is set to true, size of the buffer performing a moving average. It defaults to 10. Optional
output_rate_ms Rate at which PVT solutions will be computed, in ms. It defaults to 500 ms. Optional
display_rate_ms Rate at which PVT solutions will be displayed in the terminal, in ms. It defaults to 500 ms. Optional
nmea_dump_filename Name of the file containing the generated NMEA sentences in ASCII format. It defaults to ./nmea_pvt.nmea. Optional
flag_nmea_tty_port [true, false]: If set to true, the NMEA sentences are also sent to a serial port device. It defaults to false. Optional
nmea_dump_devname If flag_nmea_tty_port is set to true, descriptor of the serial port device. It defaults to /dev/tty1. Optional
flag_rtcm_server [true, false]: If set to true, it runs up a TCP server that is serving RTCM messages to the connected clients during the execution of the software receiver. It defaults to false. Optional
rtcm_tcp_port If flag_rtcm_server is set to true, TCP port from which the RTCM messages will be served. It defaults to 2101. Optional
rtcm_station_id Station ID reported in the generated RTCM messages. It defaults to 1234. Optional
rtcm_MT1045_rate_ms Rate at which RTCM Message Type 1045 (Galileo Ephemeris data) will be generated, in ms. If set to 0, mutes this message. It defaults to 5000 ms. Optional
rtcm_MT1019_rate_ms Rate at which RTCM Message Type 1019 (GPS Ephemeris data) will be generated, in ms. If set to 0, mutes this message. It defaults to 5000 ms. Optional
rtcm_MSM_rate_ms Default rate at which RTCM Multiple Signal Messages will be generated. It defaults to 1000 ms. Optional
rtcm_MT1077_rate_ms Rate at which RTCM Multiple Signal Messages GPS MSM7 (MT1077 - Full GPS observations) will be generated, in ms. If set to 0, mutes this message. It defaults to rtcm_MSM_rate_ms. Optional
rtcm_MT1097_rate_ms Rate at which RTCM Multiple Signal Messages Galileo MSM7 (MT1097 - Full Galileo observations) will be generated, in ms. If set to 0, mutes this message. It defaults to rtcm_MSM_rate_ms. Optional
flag_rtcm_tty_port [true, false]: If set to true, the generated RTCM messages are also sent to a serial port device. It defaults to false. Optional
rtcm_dump_devname If flag_rtcm_tty_port is set to true, descriptor of the serial port device. . It defaults to /dev/pts/1. Optional
dump [true, false]: If set to true, it enables the PVT internal binary data file logging. It defaults to false. Optional
dump_filename If dump is set to true, name of the file in which internal data will be stored. It defaults to ./pvt.dat. Optional

Example:

;######### PVT CONFIG ############
PVT.implementation=Hybrid_PVT
PVT.averaging_depth=10
PVT.flag_averaging=false
PVT.output_rate_ms=100;
PVT.display_rate_ms=500;
PVT.flag_rtcm_server=true
PVT.flag_rtcm_tty_port=false
PVT.rtcm_dump_devname=/dev/pts/1
PVT.rtcm_tcp_port=2101
PVT.rtcm_MT1045_rate_ms=5000
PVT.rtcm_MT1045_rate_ms=5000
PVT.rtcm_MT1097_rate_ms=1000
PVT.rtcm_MT1077_rate_ms=1000

Updated:

Leave a Comment