Changes between Version 39 and Version 40 of expansion/gw16143
- Timestamp:
- 05/20/2025 07:17:07 PM (2 months ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
expansion/gw16143
v39 v40 41 41 * [https://www.u-blox.com/sites/default/files/ZED-F9P_DataSheet_%28UBX-17051259%29.pdf ZED-F9P Data Sheet] 42 42 * [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 44 44 * [https://developer.thingstream.io/guides/location-services/pointperfect-service-description] 45 45 === Version & Firmware … … 111 111 Therefore 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. 112 112 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.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 Flex service) may not be supported by GPSD, so pygnssutils in lieu of gpsd is an out-of-the-box solution. 114 114 115 115 … … 118 118 Networked 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]. 119 119 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.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 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. 121 121 122 122 There 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. … … 159 159 160 160 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 !PointPerfectsection below.161 Note: 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. 162 162 163 163 The 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. … … 228 228 8. 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. 229 229 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 232 U-blox also provides a GNSS augmentation service called !PointPerfect Flex. It features the following: 233 233 234 234 * 3-6 cm¹ accuracy and convergence within seconds … … 243 243 > Contact Gateworks Sales Department {{{sales@gateworks.com}}} to get a free 1-month access code! 244 244 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 !PointPerfecthas 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 247 The 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. 248 248 249 249 The 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. 250 250 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). 252 252 253 253 [[Image(https://trac.gateworks.com/raw-attachment/wiki/expansion/gw16143/gw_gps_earth.png,width=800)]] 254 254 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.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 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. 256 256 257 257 [[Image(point.jpg, width=500)]] … … 328 328 [[Image(ubloxkit.png, width=600)]] 329 329 330 This kit is focused providing a demo of the U-blox !PointPerfect software to enable <2cm accuracy using the GW16143 Zed-F9P card.330 This kit is focused providing a demo of the U-blox !PointPerfect Flex software to enable <2cm accuracy using the GW16143 Zed-F9P card. 331 331 332 332 Requirements: … … 386 386 387 387 === 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]388 If 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] 389 389 390 390 === Step 4 - Using Point Perfect Service for Precision Location 391 391 392 U-blox also provides a GNSS augmentation service called !PointPerfect . It features the following:392 U-blox also provides a GNSS augmentation service called !PointPerfect Flex. It features the following: 393 393 394 394 * 3-6 cm¹ accuracy and convergence within seconds … … 399 399 * Pre-integrated with u-blox F9 and D9 high precision GNSS modules 400 400 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 !PointPerfecthas 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.401 The 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 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 Flex poses itself as a great solution given it's scalability, security, reliability, and simple integration. 408 408 409 409 '''Gateworks Scripts''' 410 410 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.411 Gateworks 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. 412 412 413 413 Using an ethernet, wireless or cellular internet connection, download the dev kit scripts to from the Gateworks github on the single board computer command line: … … 431 431 Then run ./start_gps.py 432 432 433 This will aggregate the basic GPS data with the !PointPerfect data to provide greater accuracy.433 This will aggregate the basic GPS data with the !PointPerfect Flex data to provide greater accuracy. 434 434 435 435 By default uses 'cgps' to present data from the u-blox module … … 460 460 }}} 461 461 462 More information about !PointPerfect is shown on this page under the [#pointperfect PointPerfectsection]462 More information about !PointPerfect Flex is shown on this page under the [#PointPerfect Flex PointPerfect Flex section] 463 463 464 464 … … 481 481 ┌───────────────────────┐ │ │ │ Visualizer │ 482 482 │ │ │ │ ┌─────────────────┐ │ OPTIONAL standard │ 483 │ PointPerfect │ └─────────────────────┘ │ │ ───► │ Linux GNSS Client │483 │ PointPerfect Flex │ └─────────────────────┘ │ │ ───► │ Linux GNSS Client │ 484 484 │ < 2cm GNSS fix │ ▲ │ Socat │ │ │ 485 485 │ ├───────┘ │ │ │ └───────────────────┘ … … 501 501 502 502 ==== 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.503 A common evaluation usecase is: Running "cgps" in the foreground to monitor GPS data, along with !PointPerfect Flex GNSS corrections. 504 505 To 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. 506 506 507 507 ==== Option 2: ublox u-center