PointPerfect Localized Distribution

Overview

Introduction

PointPerfect Localized correction service via MQTT (Internet) offers quick delivery of high precision accuracy by providing your device only the SPARTN corrections applicable to your location.  This feature offers several advantages over the traditional continental streams, including significantly reduced bandwidth requirements, unencrypted streams, and seamless transition between regions.  

This page describes our PointPerfect correction service with localized corrections delivered via our MQTT service.  If you wish to receive all continental corrections, see our Continental corrections page.  If you wish to use our continental corrections service with an L-Band satellite delivery, please see our L-Band Configuration page

Benefits of Localized Corrections Distribution

PointPerfect Localized offers many benefits to users, including:

PointPerfect Localized System Architecture

The correction data format used by the Localized distribution method is the same as in our high-precision Continental streams.  For the localized PointPerfect architecture, the correction data is spread across multiple nodes and delivered through individual node MQTT Topics. 

How it works

PointPerfect Localized works by dividing the coverage area into a grid of tiles. Each tile contains a set of nodes that are relevant to a user located within that tile. Unlike the continental level approach where a device subscribes to the continental level topic, in the localized approach a device subscribes to the localized node topic based on its location. This ensures that the device receives only the correction data that is relevant to its location, greatly reducing the required bandwidth.

Tiles

Each region where Localized corrections are offered is dissected into Tiles using a layout based on a pre-defined algorithm similar to a "GeoHash". The coverage area of the Tile depends on the tile level used, and the selected tile topic is based on the location of your device and tile level applied.  

Tile levels (also known as a ‘zoom level’) are L0, L1 and L2 for all regions with standard density nodes, and L3, L4 and L5 for high density nodes. 

The table below shows the average coverage area size and maximum number of nodes within each Tile.  The number of nodes available greatly improves accuracy of our corrections, so we encourage customers to migrate to the new nodes.  Note, the original Tile Levels 0-2 continue for backwards compatibility, and in the future will either use high-density network of nodes or be deprecated.  

Note how Level 0 and Level 3 have the same approximate Tile size, with a higher density of nodes with Tile Level 3.  The nodes within each tile are relevant to a user located within that tile. This may include nodes outside the tile boundaries to support users on dynamic platforms.  

The image below shows the same approximate location, comparing Tile Level 2 and Tile Level 5 and the number of nodes available for each. The green rectangle is the related Tile, and the yellow triangles represent the selected Nodes within the Tile for the user position, as well as selected nodes from neighboring tiles to improve availability at the bordering area. 

Nodes

SPARTN correction streams are generated for each of these virtual Nodes to provide a high-precision positioning solution for that location. Each node name is based on its location and provides localized SPARTN data through its corresponding localized node topic. The data transmitted through each node is optimized based on its location to only provide corrections relevant to the user greatly reducing the amount of bandwidth required. Dynamic users moving throughout the region must transition to different nodes, to continuously and seamlessly access the SPARTN correction streams. 

Delivery 

To ensure you receive relevant localized data, the device will select the localized node topic to subscribe to by using its location.  The image below is an example architecture for a service to device distribution of localized data. 

After provisioning the device, i.e. obtaining the client credentials from the Thingstream portal as explained in the Point Perfect Getting Started guide, the device will calculate the tile location

Once the tile has been calculated, the device subscribes to the node dictionary topic (‘pp/ip/{tile}/dict’) for the calculated tile and receives a list of available nodes within that Tile. The device then calculates and subscribes to the nearest node topic to receive localized corrections for its location. The size data in this tile/dictionary topic relates to the number of nodes provided in that Tile.

The topic format will be ‘pp/ip/{tile}/{node}’ with the tile and node identified as most optimal for your current location. Note, this topic does not have any leading ‘/’ characters, unlike our other distribution methods such as Continental or L-band. Please refer to the Configuration section below to see how the MQTT Log displays the node topic that your device subscribes to.

Configuration

Below is a continuation of the configuration steps from the PointPerfect Getting Started guide, using u-center and an F9 device. 

You should already have:

1.      Created a PointPerfect location thing in your Thingstream domain account,

2.      Downloaded the JSON file from your Thingstream PointPerfect location thing and

3.      Downloaded, installed, opened u-center and connected to the port of your F9P device

The final steps to receive localized corrections are to connect to the MQTT client in u-center and load the JSON configuration file.

Open the Receiver menu and select the MQTT Client item as shown in this screenshot.

Selecting the MQTT Client item will open a new dialog as shown in the image below.

After clicking 'OK,' the MQTT client will establish a connection to the broker. This allows the device to determine the nearest node topic to subscribe to so it can receive localized corrections data.

 

You can check the MQTT connection status in the u-center's status bar.

Clicking on the green connector icon will open the MQTT log, where you can monitor the messages being received and view the MQTT topic subscriptions as demonstrated below.

Python sample script: PointPerfect MQTT Client 

To evaluate the PointPerfect localized version with an MQTT Client built-in your host application, please refer to the PointPerfect MQTT Client sample python script available in the Thingstream Downloads PointPerfect section to help you get started. 

Reference Documentation

[1] ZED-F9P Integration manual, UBX-18010802
[2] u-center User guide, UBX-13005250
[3] u-blox F9 HPG 1.32 Interface description, UBX-22008968
[4] C099-F9P application board User guide, UBX- 18063024
[5] EVK-F9P-01 evaluation kit User guide, UBX-22038408  
[6] Thingstream Knowledge Base – Services Support