Changes between Version 39 and Version 40 of expansion/gw16143


Ignore:
Timestamp:
05/20/2025 07:17:07 PM (2 months ago)
Author:
Ryan Erbstoesser
Comment:

change name from point perfect to point perfect flex

Legend:

Unmodified
Added
Removed
Modified
  • expansion/gw16143

    v39 v40  
    4141* [https://www.u-blox.com/sites/default/files/ZED-F9P_DataSheet_%28UBX-17051259%29.pdf ZED-F9P Data Sheet]
    4242* [https://www.u-blox.com/en/docs/UBX-18010802 ZED-F9P Integration Manual]
    43 * ZED F9P companion GNSS correction service, !PointPerfect
     43* ZED F9P companion GNSS correction service, !PointPerfect Flex
    4444 * [https://developer.thingstream.io/guides/location-services/pointperfect-service-description]
    4545=== Version & Firmware
     
    111111Therefore all of the following examples can be done on a running target board, or otherwise on a development machine with the GW16143 in a USB carrier. Code can then be cross compiled and delivered to units via whatever preferred method.
    112112
    113 Most of the following examples require [https://gpsd.gitlab.io/gpsd/ GPSD] version {{{3.21}}} or greater. Some newer NTRIP protocols such as SPARTN (which is used by the !PointPerfect service) may not be supported by GPSD, so pygnssutils in lieu of gpsd is an out-of-the-box solution.
     113Most of the following examples require [https://gpsd.gitlab.io/gpsd/ GPSD] version {{{3.21}}} or greater. Some newer NTRIP protocols such as SPARTN (which is used by the !PointPerfect Flex service) may not be supported by GPSD, so pygnssutils in lieu of gpsd is an out-of-the-box solution.
    114114
    115115
     
    118118Networked Transport of RTCM via Internet Protocol, or [https://en.wikipedia.org/wiki/Networked_Transport_of_RTCM_via_Internet_Protocol NTRIP], is the protocol that allows us to transmit RTK data between the differential gps basestation which has a fixed known position to any number of GPS clients that can use the RTK correction data. The NTRIP standard is designed and published by [https://www.rtcm.org/ RTCM]. You can read more about the NTRIP protocol [https://igs.bkg.bund.de/root_ftp/NTRIP/documentation/NtripDocumentation.pdf here].
    119119
    120 Acquiring RTK correction data for high precision GPS with the GW16143 can be done either by pointing to a preexisting source such as u-blox !PointPerfect, the ones posted to [http://www.rtk2go.com/ rtk2go], or setting up a source, server, and caster yourself. Keep in mind that RTK correction data effectiveness is diminished over larger distances. For more specifics, see this great [https://www.researchgate.net/publication/241755023_Exploring_GNSS_RTK_performance_benefits_with_GPS_and_virtual_galileo_measurements publication] of RTK experimental findings by Yanming Feng and Jinling Wang.
     120Acquiring RTK correction data for high precision GPS with the GW16143 can be done either by pointing to a preexisting source such as u-blox !PointPerfect Flex, the ones posted to [http://www.rtk2go.com/ rtk2go], or setting up a source, server, and caster yourself. Keep in mind that RTK correction data effectiveness is diminished over larger distances. For more specifics, see this great [https://www.researchgate.net/publication/241755023_Exploring_GNSS_RTK_performance_benefits_with_GPS_and_virtual_galileo_measurements publication] of RTK experimental findings by Yanming Feng and Jinling Wang.
    121121
    122122There are a number of open source NTRIP utilities to use for setting up a differential GPS system. Some options and the required configuration steps of the GW16143 are described in the following sections.
     
    159159
    160160
    161 Note: For !PointPerfect/SPARTN NTRIP clients, gpsd/rtklib is not known to support SPARTN at this time; we recommend PyGNSSUtils at the time being for parsing the NTRIP data and having an abstraction layer between the end application and /dev/ttyACM0. Examples of getting <2cm accuracy from SPARTN data are in the !PointPerfect section below.
     161Note: For !PointPerfect Flex/SPARTN NTRIP clients, gpsd/rtklib is not known to support SPARTN at this time; we recommend PyGNSSUtils at the time being for parsing the NTRIP data and having an abstraction layer between the end application and /dev/ttyACM0. Examples of getting <2cm accuracy from SPARTN data are in the !PointPerfect Flex section below.
    162162
    163163The firmware that is loaded by default on the GW16143 will allow for an instance of {{{gpsd}}} to feed it RTK data and improve it's fix accuracy. However if you've fiddled with the configuration, or otherwise would like to make sure you're working with defaulted firmware, you can reset the device's configuration registers with {{{ubxtool}}}. Once again keep in mind you may need to run the polling operations of {{{ubxtool}}} more than once depending on asynchronous factors.
     
    2282288. All of the executable binary APs for Windows are included in the package as well as whole source programs of the library and the APs.
    229229
    230 [=#pointperfect]
    231 == Third Party RTK Solution: !PointPerfect
    232 U-blox also provides a GNSS augmentation service called !PointPerfect. It features the following:
     230[=#PointPerfect Flex]
     231== Third Party RTK Solution: !PointPerfect Flex
     232U-blox also provides a GNSS augmentation service called !PointPerfect Flex. It features the following:
    233233
    234234 * 3-6 cm¹ accuracy and convergence within seconds
     
    243243> Contact Gateworks Sales Department {{{sales@gateworks.com}}} to get a free 1-month access code!
    244244
    245 !PointPerfect can get extremely accurate positioning data extremely quickly with relatively low bandwidth (kilobytes / minute). Combined with the [https://www.gateworks.com/products/mini-pcie-expansion-cards/gw16132-mini-pcie-expansion-card/ GW16132] for LTE/Bluetooth, differential fixes can be easily received in hard-to-reach locations.
    246 
    247 The easiest way to use !PointPerfect with the ZED-F9P is through [https://github.com/semuconsulting/pygnssutils pygnssutils]. Our examples also leverage the GW16132 for cellular connectivity and were able to get very precise data in a moving vehicle, even with relatively low reception, though !PointPerfect has various delivery methods (NTRIP, MQTT, L-Band). For this example, the script works without too much configuration since Linux configures cellular modems to make connections work seamlessly.
     245!PointPerfect Flex can get extremely accurate positioning data extremely quickly with relatively low bandwidth (kilobytes / minute). Combined with the [https://www.gateworks.com/products/mini-pcie-expansion-cards/gw16132-mini-pcie-expansion-card/ GW16132] for LTE/Bluetooth, differential fixes can be easily received in hard-to-reach locations.
     246
     247The easiest way to use !PointPerfect Flex with the ZED-F9P is through [https://github.com/semuconsulting/pygnssutils pygnssutils]. Our examples also leverage the GW16132 for cellular connectivity and were able to get very precise data in a moving vehicle, even with relatively low reception, though !PointPerfect Flex has various delivery methods (NTRIP, MQTT, L-Band). For this example, the script works without too much configuration since Linux configures cellular modems to make connections work seamlessly.
    248248
    249249The bare-minimum python program for a NTRIP client with pygnssutils can be found on their [https://github.com/semuconsulting/pygnssutils/blob/main/examples/rtk_example.py git repo]. The data collected was output to a file containing location data over time, and then converted to KML format to be imported into Google Earth.
    250250
    251 !PointPerfect uses SPARTN in lieu of RTCM3.x data as it is claimed to be data-saving relative to other NTRIP protocol formats. After around an hour of using the NTRIP service there was only around 500kB of data usage while simultaneously getting centimeter-level accuracy in a moving vehicle (at 1 sample/second location data).
     251!PointPerfect Flex uses SPARTN in lieu of RTCM3.x data as it is claimed to be data-saving relative to other NTRIP protocol formats. After around an hour of using the NTRIP service there was only around 500kB of data usage while simultaneously getting centimeter-level accuracy in a moving vehicle (at 1 sample/second location data).
    252252
    253253[[Image(https://trac.gateworks.com/raw-attachment/wiki/expansion/gw16143/gw_gps_earth.png,width=800)]]
    254254
    255 Free-to-use rtk base stations (such as rtk2go.com) or your own base station can be used to get NTRIP corrections for high accuracy without a subscription, but !PointPerfect poses itself as a great solution given it's scalability, security, reliability, and simple integration. If you want to evaluate it for yourself, contact {{{sales@gateworks.com}}} for a 1 month free access code.
     255Free-to-use rtk base stations (such as rtk2go.com) or your own base station can be used to get NTRIP corrections for high accuracy without a subscription, but !PointPerfect Flex poses itself as a great solution given it's scalability, security, reliability, and simple integration. If you want to evaluate it for yourself, contact {{{sales@gateworks.com}}} for a 1 month free access code.
    256256
    257257[[Image(point.jpg, width=500)]]
     
    328328[[Image(ubloxkit.png, width=600)]]
    329329
    330 This kit is focused providing a demo of the U-blox !PointPerfect software to enable <2cm accuracy using the GW16143 Zed-F9P card.
     330This kit is focused providing a demo of the U-blox !PointPerfect Flex software to enable <2cm accuracy using the GW16143 Zed-F9P card.
    331331
    332332Requirements:
     
    386386
    387387=== Step 3 - Cellular Connection
    388 If desired, use the included GW16132 cellular modem to obtain an internet connection to get the !PointPerfect data with the guide here: [wiki:expansion/gw16126]
     388If desired, use the included GW16132 cellular modem to obtain an internet connection to get the !PointPerfect Flex data with the guide here: [wiki:expansion/gw16126]
    389389
    390390=== Step 4 - Using Point Perfect Service for Precision Location
    391391
    392 U-blox also provides a GNSS augmentation service called !PointPerfect. It features the following:
     392U-blox also provides a GNSS augmentation service called !PointPerfect Flex. It features the following:
    393393
    394394 * 3-6 cm¹ accuracy and convergence within seconds
     
    399399 * Pre-integrated with u-blox F9 and D9 high precision GNSS modules
    400400
    401 The easiest way to use !PointPerfect with the ZED-F9P is through [https://github.com/semuconsulting/pygnssutils pygnssutils]. Our examples also leverage the GW16132 for cellular connectivity and were able to get very precise data in a moving vehicle, even with relatively low reception, though !PointPerfect has various delivery methods (NTRIP, MQTT, L-Band). For this example, the script works without too much configuration since Linux configures cellular modems to make connections work seamlessly.
    402 
    403 !PointPerfect can get extremely accurate positioning data extremely quickly with relatively low bandwidth (kilobytes / minute). Combined with the [https://www.gateworks.com/products/mini-pcie-expansion-cards/gw16132-mini-pcie-expansion-card/ GW16132] for LTE/Bluetooth, differential fixes can be easily received in hard-to-reach locations.
    404 
    405 !PointPerfect uses SPARTN in lieu of RTCM3.x data as it is claimed to be data-saving relative to other NTRIP protocol formats. After around an hour of using the NTRIP service there was only around 500kB of data usage while simultaneously getting centimeter-level accuracy in a moving vehicle (at 1 sample/second location data).
    406 
    407 Free-to-use rtk base stations (such as rtk2go.com) or your own base station can be used to get NTRIP corrections for high accuracy without a subscription, but !PointPerfect poses itself as a great solution given it's scalability, security, reliability, and simple integration.
     401The easiest way to use !PointPerfect Flex with the ZED-F9P is through [https://github.com/semuconsulting/pygnssutils pygnssutils]. Our examples also leverage the GW16132 for cellular connectivity and were able to get very precise data in a moving vehicle, even with relatively low reception, though !PointPerfect Flex has various delivery methods (NTRIP, MQTT, L-Band). For this example, the script works without too much configuration since Linux configures cellular modems to make connections work seamlessly.
     402
     403!PointPerfect Flex can get extremely accurate positioning data extremely quickly with relatively low bandwidth (kilobytes / minute). Combined with the [https://www.gateworks.com/products/mini-pcie-expansion-cards/gw16132-mini-pcie-expansion-card/ GW16132] for LTE/Bluetooth, differential fixes can be easily received in hard-to-reach locations.
     404
     405!PointPerfect Flex uses SPARTN in lieu of RTCM3.x data as it is claimed to be data-saving relative to other NTRIP protocol formats. After around an hour of using the NTRIP service there was only around 500kB of data usage while simultaneously getting centimeter-level accuracy in a moving vehicle (at 1 sample/second location data).
     406
     407Free-to-use rtk base stations (such as rtk2go.com) or your own base station can be used to get NTRIP corrections for high accuracy without a subscription, but !PointPerfect Flex poses itself as a great solution given it's scalability, security, reliability, and simple integration.
    408408
    409409'''Gateworks Scripts'''
    410410
    411 Gateworks has created some scripts to provide an example of the !PointPerfect system in use. These can be used as a reference for demo purposes and adjusted as needed.
     411Gateworks has created some scripts to provide an example of the !PointPerfect Flex system in use. These can be used as a reference for demo purposes and adjusted as needed.
    412412
    413413Using an ethernet, wireless or cellular internet connection, download the dev kit scripts to from the Gateworks github on the single board computer command line:
     
    431431Then run ./start_gps.py
    432432
    433 This will aggregate the basic GPS data with the !PointPerfect data to provide greater accuracy.
     433This will aggregate the basic GPS data with the !PointPerfect Flex data to provide greater accuracy.
    434434
    435435By default uses 'cgps' to present data from the u-blox module
     
    460460}}}
    461461
    462 More information about !PointPerfect is shown on this page under the [#pointperfect PointPerfect section]
     462More information about !PointPerfect Flex is shown on this page under the [#PointPerfect Flex PointPerfect Flex section]
    463463
    464464
     
    481481┌───────────────────────┐    │                     │                             │    Visualizer     │
    482482│                       │    │                     │    ┌─────────────────┐      │ OPTIONAL standard │
    483 │     PointPerfect      │    └─────────────────────┘    │                 │ ───► │ Linux GNSS Client │
     483│     PointPerfect Flex      │    └─────────────────────┘    │                 │ ───► │ Linux GNSS Client │
    484484│    < 2cm GNSS fix     │       ▲                       │      Socat      │      │                   │
    485485│                       ├───────┘               │       │                 │      └───────────────────┘
     
    501501
    502502==== Option 1: CGPS
    503 A common evaluation usecase is: Running "cgps" in the foreground to monitor GPS data, along with !PointPerfect GNSS corrections.
    504 
    505 To do this, you would edit the credentials in the secret settings file as per the !PointPerfect site, set run_pygnssutils_in_foreground to false, and set the foreground process to "cgps". To use cgps with the script, you also must enable the gpsd bridge. The default settings will be OK in most instances.
     503A common evaluation usecase is: Running "cgps" in the foreground to monitor GPS data, along with !PointPerfect Flex GNSS corrections.
     504
     505To do this, you would edit the credentials in the secret settings file as per the !PointPerfect Flex site, set run_pygnssutils_in_foreground to false, and set the foreground process to "cgps". To use cgps with the script, you also must enable the gpsd bridge. The default settings will be OK in most instances.
    506506
    507507==== Option 2: ublox u-center