Squashing "Z" Error and Building a More Resilient GPS Network

Squashing "Z" Error and Building a More Resilient GPS Network

When we announced Zephr’s work on improving the accuracy of GPS we focused on how our approach improved horizontal accuracy (X,Y). We live in a 3D world and vertical error (Z) is arguably the least reliable mobile device location measurement. Not all use cases require a vertical measurement, but when I spent an extra 20 minutes at the Richmond airport because my rideshare was on the wrong level I was reminded it still matters. We also ran into “Z” error issues when we were doing our Pixel8earth/Snap work using GPS coordinates to generate 3D models from camera phone photos and videos. The “Z” measurements were so poor we used the Google Elevation API to roughly anchor the mobile devices to the ground. 

As the team has been working diligently with pilot partners to make the Zephr system more resilient to a wide variety of scenarios and use cases, we wanted to deep dive into improving vertical accuracy. Vertical positioning for GNSS uses the same satellite measurements and trilateration technique to determine a user’s position. This begs the question why do vertical measurements tend to be more error prone than horizontal measurements?

Challenges in Vertical Positioning Accuracy

There are several factors that drive vertical positioning error being typically worse than horizontal positioning:

  1. Satellite Geometry: The configuration of satellites in the sky usually provides better coverage and geometry for determining horizontal position than vertical. Satellites tend to be distributed around the horizon, with fewer satellites directly overhead. This geometric distribution inherently gives better precision in the horizontal plane.
  2. Atmospheric Effects: The Earth’s atmosphere can distort the signals from satellites. While both horizontal and vertical measurements are affected, the impact on vertical accuracy is more pronounced because the variability in atmospheric conditions (like the ionosphere and troposphere delays) has a more significant effect on the angle of the received signals, which influences vertical measurements more.
  3. Multipath Errors: These occur when satellite signals reflect off surfaces (e.g., buildings, ground) before reaching the receiver. Since vertical signals are more likely to be reflected off horizontal surfaces, this can introduce more errors into vertical positioning.
  4. Earth’s Shape and Gravity Variations: The calculation of altitude is also influenced by the Earth’s shape (it’s an oblate spheroid, not a perfect sphere) and variations in gravity. GNSS systems typically reference an ellipsoidal model of the Earth rather than mean sea level, leading to differences between the ellipsoidal height and the actual height above sea level. This can introduce discrepancies in vertical measurements.

Classically to mitigate these challenges and improve vertical accuracy, some GNSS receivers use additional techniques like barometric altimeters (which measure altitude based on atmospheric pressure). Dedicated GNSS receivers can use correction services. Since Zephr is using other mobile devices to generate a correction service we wanted to see if this approach worked well to also improve the vertical “Z” error for a consumer mobile device. 

Field Testing

In order to create consistency we returned to our favorite test area at the Monarch football field to have a flat area to best detect deviation in altitude caused purely by GPS/GNSS. We set up a similar test protocol using a set of fixed smartphones and a roving smartphone running Zephr and second dual band smart phone as a GPS reference. The Zephr set up is just using L1 and GPS+Galileo, while the GPS phone is using L1+L5, sensor fusion and GPS+Galileo+GLONASS+BeiDou. The roving phone was mounted to a Sparkfun RTK receiver to provide ground truth. The Sparkfun unit was also used to provide ground truth locations for each of the static phones. For this test we added a lap around the track in addition to walking the hash lines of the football field. The table below summarize the result with geodetic error and total error, which includes the Z axis vertical error.

Article content
Summary Statistics

We can also plot a 2D view of the data on top of aerial imagery to see how Zephr and GPS track to the ground truth. Ground truth is in yellow, Zephr is in blue and GPS is in red.

Article content
Monarch Test Traces vs. Ground Truth

While we love high quality aerial it does not make for the best visualization to show off the difference in Z axis vertical accuracy. To give a better view of the results Winnie, from the team, built a great Deck.gl viewer to visualize vertical accuracy differences in our testing.

Article content
3D Plots of Total Error GPS vs. Zephr

These plots and results are all powered by our testing dashboard that allows the team to quickly visualize and tabulate field testing results. It also makes it easy for the modeling team to rapidly see the results of new tuning and algorithmic changes to the ensemble solver. 

Urban-ish Testing

While the Monarch football field is a great open sky test bed it doesn’t reflect a lot of real world scenarios. To this end Scotty on our team set out to do a series of tests on the University of Colorado’s Boulder campus. There are a good number of large buildings and mini urban-esque canyons. While we haven’t yet tuned the model for multipath rejection we were curious how the “open sky” model performed in a more challenging environment. The results from the summary statistics were encouraging:

Article content
Summary Statistics

When we plot out the Zephr results vs. GPS the variance in results shows up well. Ground truth is in yellow, Zephr is in blue and GPS is in red.

Article content
CU Boulder Test Traces vs. Ground Truth

We do see some drift in the Zephr solution in the far left of the plot. When these results are rendered in 3D this area of deviation is more pronounced.

Article content
3D Plots of Total Error GPS vs. Zephr

These spikes in the solution are correlated with a drop in carrier phase measurements. We are working on bridging these drops using the code signal and Doppler, which looks promising. In addition, these results are without sensor fusion leveraging the IMU on the smartphones. That is another work stream the team is working hard on to remove these accuracy outliers. The combination of the two techniques should show a marked improvement in the accuracy and stability of the results. Overall it is very encouraging to see 5x–8x improvements in the total error of GPS by using Zephr’s approach. An additional upside to this performance is it doesn’t require any new hardware or terrestrial infrastructure to be in place — just a simple SDK integration. We are excited to be close to having our real time client out for testing. Stay tuned for updates on it and other testing the team is working on.

Ryan Baumann

Product & Solutions | AI, Platforms, Location | Google, Mapbox, Instabase

1y

Fantastic progress and some real world testing! Excited to try the early access SDK when it's in beta

Like
Reply
Ivan Revva

Humanitarian missions for the military

1y

Sean, it is interesting

Like
Reply

Absolutely fascinated by the focus on vertical "Z" axis precision in GPS technology! Reminds me of what Aristotle said - excellence is not an act, but a habit. Fine-tuning accuracy is pivotal for innovation. Cheers to breaking new ground in GPS resilience! 🌍✨ #Innovation #Excellence

Edward Miller

Advanced Projects at Joby Aviation

1y

Excellent article! Deck.gl looks great. Thanks!

Todd Simon

Founder, Geospatial Alpha

1y

Good stuff Sean Gorman

To view or add a comment, sign in

More articles by Sean Gorman

  • The Secret to Context Engineering for Spatial AI is Accuracy Transfer

    Creating a compelling Spatial AI demo is a pretty manageable task given the quality of LLMs available today. The next…

    10 Comments
  • A Quick Analysis of Spoofing in Haifa Israel

    One of the great things about the Android raw GNSS measurements API is the ability to collect data with any of the…

    22 Comments
  • How Spatially Aware Can an LLM Be?

    We’ve been on a fun side quest to see how we can link Zephr’s sensor based localization engine with an LLM. The two…

    8 Comments
  • Maps in a Screenless Future

    In the ever evolving tech bubble there is growing drumbeat that “voice” is the AI interface and we are moving toward a…

    4 Comments
  • Scaling POI Relocalization with Mapillary

    The Next Challenge In our last post we took a swing at relocalizing POIs in Overture using our Zehpr pose app to…

    9 Comments
  • Get Your POI Out of My Parking Lot

    The open sourcing of massive “Point of Interest” (POI) datasets from Overture and Foursquare has been a massive boon. A…

    16 Comments
  • Converting the World of Coordinates to Language: When Maps Disappear

    35 years ago we added turn by turn navigation to cars. 12 years ago Google Maps added the same to the iPhone.

    10 Comments
  • The Building Blocks for Vector AR

    As we've been testing out our AR capabilities, using just the GPS and IMU, I've started to wonder what data we'd need…

    8 Comments
  • Location Enabling AI without Computer Vision

    The Question In our previous work at Pixel8earth and Snap we spent a lot of time trying to drive down the cost of city…

    12 Comments
  • Hickam AFB GPS Accuracy Testing

    While were out at Hickam AFB for the NSIN - National Security Innovation Network Propel event we had a chance to run an…

    4 Comments

Others also viewed

Explore topics