High Precision GPS Positioning for Spring Developers

Gunnar Hillert
Gunnar HillertSoftware Developer at Hillert, Inc.
High-Precision GPS Positioning
for Spring Developers
@GHILLERTGUNNAR HILLERT
About ME
▸ Independent Software Developer
▸ Java Champion
▸ DevNexus Co-Founder
▸ OSS Committer
▸ Spring Integration, XD, Data Flow,
Java Marine API
▸ Plant Collector
2Hillert Inc.
Contents
▸ Fundamentals
▸ Hardware
▸ Processing of positioning data
▸ Visualization
▸ 2 Demos
3Hillert Inc.
Why High Precision GPS?
▸ Autonomous vehicles
▸ Robotics
▸ Precision farming
▸ Drone operation
▸ Infrastructure, Biodiversity etc.
4Hillert Inc.
Global Navigation Satellite System (GNSS) refers to a
constellation of satellites providing signals from space that
transmit positioning and timing data to GNSS receivers. The
receivers then use this data to determine location.
European Global Navigation Satellite Systems Agency
GNSS Defined
5Hillert Inc.
▸ GPS (USA)
▸ GLONASS (Russia)
▸ BeiDou (China)
▸ Galileo (EU)
▸ Satellite-based augmentation systems, e.g. QZSS (Japan), EGNOS (EU)
GNSS Systems
6Hillert Inc.
Dual Frequency GNSS
▸ L1+L5 (GPS), E1+E5a (Galileo)
▸ “Dual-frequency GNSS on Android devices” by Sean Barbeau
▸ US Device support in 2020 is still spotty
▸ Check phone support with the OSS app GPSTest (Android)
▸ My own experience: better but not amazing (OnePlus 8 Pro)
7Hillert Inc.
GNSS Accuracy Compared
OnePlus One
OnePlus 8 Pro
U-Blox
8Hillert Inc.
We Can Do Better With Correction Data
▸ Incorporating correction data is key!
▸ Real Time Kinematic (RTK) positioning
▸ Rover + Base Station
▸ Base station should see the same errors (10-40km)
▸ Other correction services exist, e.g. PPP-RTK, PPP
▸ Relative Accuracy versus Absolute Accuracy
9Hillert Inc.
How To Consume Correction Data?
▸ NTRIP == RTK over the internet
▸ Eliminates the need for base station
▸ Networked Transport of RTCM via Internet Protocol
▸ RTCM == Radio Technical Commission for Maritime
▸ Manually post-process receiver data
▸ Continuously Operating Reference Stations (CORS)
▸ E.g. using RTKLIB
10Hillert Inc.
▸ Base Station + Rover
▸ Relatively Low Cost
▸ u-blox ZED-F9P module
▸ Bluetooth + Serial
▸
My Setup Base Station Rover
11Hillert Inc.
Android
▸ Lefebure NTRIP Client
▸ Connect to external GNSS device via Bluetooth
▸ Enable Mock Locations in Android
▸ Under Developer Options
▸ "Fix type” RTK provides highest accuracy
12Hillert Inc.
Hillert Inc.
What About IoS?
▸ Very limited support
▸ Cannot override GPS
▸ Need custom app integration
▸ Processing of NMEA data via WIFI
13
Hillert Inc.
▸ NMEA 0183
▸ National Marine Electronics Association
▸ Proprietary “Standard”
▸ Text based
▸ Numerous sentence (message) types
▸ Why GPSes suck, and what to do about it
▸ Alternative: Proprietary Binary Formats
How to Process GNSS Data? $GNRMC,024429.00,A,1939.4742123,N,15556.999
$GNVTG,,T,,M,0.027,N,0.050,K,A*3D
$GNGGA,024429.00,1939.4742123,N,15556.99941
$GNGSA,A,3,01,07,03,11,22,,,,,,,,2.13,1.02,
$GNGSA,A,3,81,68,78,,,,,,,,,,2.13,1.02,1.87
$GNGSA,A,3,02,,,,,,,,,,,,2.13,1.02,1.87,3*0
$GNGSA,A,3,,,,,,,,,,,,,2.13,1.02,1.87,4*09
$GPGSV,2,1,05,01,58,154,45,03,49,030,33,07,
$GPGSV,2,2,05,22,46,064,32,1*50
$GPGSV,2,1,05,01,58,154,41,03,49,030,32,07,
$GPGSV,2,2,05,22,46,064,,6*56
$GLGSV,3,1,10,66,19,040,21,67,34,344,29,68,
$GLGSV,3,2,10,77,36,112,,78,15,167,34,81,41
$GLGSV,3,3,10,83,17,326,,88,02,169,29,1*74
$GLGSV,3,1,10,66,19,040,14,67,34,344,26,68,
$GLGSV,3,2,10,77,36,112,20,78,15,167,38,81,
$GLGSV,3,3,10,83,17,326,,88,02,169,33,3*7D
$GAGSV,2,1,07,02,22,138,40,05,02,059,,07,12
$GAGSV,2,2,07,15,,,35,18,29,218,38,25,18,08
$GAGSV,2,1,06,02,22,138,30,05,02,059,,07,12
$GAGSV,2,2,06,18,29,218,30,25,18,085,,2*79
$GBGSV,1,1,00,*47
$GBGSV,1,1,00,*47
$GNGLL,1939.4742123,N,15556.9994168,W,02442
$PUBX,00,024429.00,1939.4742123,N,15556.999
$PUBX,03,22,1,U,154,58,45,064,3,U,030,49,33
14
💩
Libraries for Processing GNSS Data
▸ Gpsd
▸ Daemon for Unix-like systems
▸ Defines JSON-based request/response protocol
▸ Java Marine API - https://github.com/ktuukkan/marine-api
“If the GPSD project ever
needs a slogan, it will be
'Hide the ugliness!’”
Source: gpsd
15Hillert Inc.
Connecting to External GPS Receivers
▸ Typically Bluetooth or USB
▸ nrjavaserial
▸ Under active development, fork of RXTX
▸ Bluecove (JSR-82, Java APIs for Bluetooth)
▸ Side note - Non-serial USB
▸ usb4java - JSR 80 compliant (OLD!)
16Hillert Inc.
DEMO
GNSS NMEA
17
Hillert Inc.
Application
▸ Spring Boot
▸ nrjavaserial (USB), Bluecove (Bluetooth)
▸ Spring Integration
▸ Enterprise Integration Pattern (EIP)
▸ Micrometer
18
NMEA Input Channel
Header Enricher
GS
Service Activator Service Activator
GSA
Service Activator
GGA
Service Activator
GS Aggregator
GS GGAGSA
NMEA Senten e ran or er
Senten e Channel
Header a ue o ter
Hillert Inc.
Micrometer + Prometheus + Grafana
▸ A fun way to create a UI (Dashboard)
▸ Micrometer - application metrics facade
▸ Hibernate for Metrics (Prometheus, Humio, Wavefront etc.)
▸ Simple to use in Spring Boot apps
▸ Prometheus - time series database / monitoring system
▸ Grafana - Monitoring + Dashboarding
19
Hillert Inc.
QGIS
▸ Geographic Information System
▸ “Painting” with GNSS Coordinates
▸ The OSS “IDE” for GIS People
▸ https://github.com/qgis/QGIS
20
Hillert Inc.
Field Surveys With Mergin and Input
▸ Create Forms and Data Collection Model in QGIS
▸ Run Input on your mobile device
▸ Automatic synchronization using Mergin
▸ Android and IoS support
▸ Alternative option QField
▸ Advice: Take pictures with Open Camera (OSS)
21
DEMO
PLANTS
22
Hillert Inc.
Demo
23
CSV
univocity
GeoJSON
Hillert Inc.
Thank YOU!
▸ Follow me @ghillert or connect via LinkedIn
▸ Additional information + Hardware Parts List
▸ https://www.hillert.com/
▸ Source Code
▸ https://github.com/ghillert/s1-2020-plants-demo
▸ https://github.com/ghillert/gnss-nmea-demo
24
1 of 24

Recommended

PAS planet accuracy simpler by
PAS planet accuracy simplerPAS planet accuracy simpler
PAS planet accuracy simplerXiaohua Wen
121 views26 slides
VR Base Camp: Scaling the Next Major Platform by
VR Base Camp: Scaling the Next Major PlatformVR Base Camp: Scaling the Next Major Platform
VR Base Camp: Scaling the Next Major PlatformNVIDIA
3K views20 slides
GTC Taiwan 2017 如何在充滿未知的巨量數據時代中建構一個數據中心 by
GTC Taiwan 2017 如何在充滿未知的巨量數據時代中建構一個數據中心GTC Taiwan 2017 如何在充滿未知的巨量數據時代中建構一個數據中心
GTC Taiwan 2017 如何在充滿未知的巨量數據時代中建構一個數據中心NVIDIA Taiwan
541 views34 slides
Latest HPC News from NVIDIA by
Latest HPC News from NVIDIALatest HPC News from NVIDIA
Latest HPC News from NVIDIAinside-BigData.com
820 views24 slides
Visual Computing: The Road Ahead, NVIDIA CEO Jen-Hsun Huang at CES 2015 by
Visual Computing: The Road Ahead, NVIDIA CEO Jen-Hsun Huang at CES 2015 Visual Computing: The Road Ahead, NVIDIA CEO Jen-Hsun Huang at CES 2015
Visual Computing: The Road Ahead, NVIDIA CEO Jen-Hsun Huang at CES 2015 NVIDIA
22.6K views47 slides

More Related Content

What's hot

GTC Taiwan 2017 企業端深度學習與人工智慧應用 by
GTC Taiwan 2017 企業端深度學習與人工智慧應用GTC Taiwan 2017 企業端深度學習與人工智慧應用
GTC Taiwan 2017 企業端深度學習與人工智慧應用NVIDIA Taiwan
479 views15 slides
JETSON : AI at the EDGE by
JETSON : AI at the EDGEJETSON : AI at the EDGE
JETSON : AI at the EDGESkolkovo Robotics Center
2.5K views29 slides
gps tracking techniques by
gps tracking techniquesgps tracking techniques
gps tracking techniquespolsaurabh
1.2K views27 slides
Devtalks Cluj - Develop geolocation solutions with Sigfox by
Devtalks Cluj - Develop geolocation solutions with SigfoxDevtalks Cluj - Develop geolocation solutions with Sigfox
Devtalks Cluj - Develop geolocation solutions with SigfoxAurelien Lequertier
295 views27 slides
Breaking New Frontiers in Robotics and Edge Computing with AI by
Breaking New Frontiers in Robotics and Edge Computing with AIBreaking New Frontiers in Robotics and Edge Computing with AI
Breaking New Frontiers in Robotics and Edge Computing with AIDustin Franklin
1.3K views26 slides
GTC Taiwan 2017 主題演說 by
GTC Taiwan 2017 主題演說GTC Taiwan 2017 主題演說
GTC Taiwan 2017 主題演說NVIDIA Taiwan
2.8K views53 slides

What's hot(20)

GTC Taiwan 2017 企業端深度學習與人工智慧應用 by NVIDIA Taiwan
GTC Taiwan 2017 企業端深度學習與人工智慧應用GTC Taiwan 2017 企業端深度學習與人工智慧應用
GTC Taiwan 2017 企業端深度學習與人工智慧應用
NVIDIA Taiwan479 views
gps tracking techniques by polsaurabh
gps tracking techniquesgps tracking techniques
gps tracking techniques
polsaurabh1.2K views
Devtalks Cluj - Develop geolocation solutions with Sigfox by Aurelien Lequertier
Devtalks Cluj - Develop geolocation solutions with SigfoxDevtalks Cluj - Develop geolocation solutions with Sigfox
Devtalks Cluj - Develop geolocation solutions with Sigfox
Breaking New Frontiers in Robotics and Edge Computing with AI by Dustin Franklin
Breaking New Frontiers in Robotics and Edge Computing with AIBreaking New Frontiers in Robotics and Edge Computing with AI
Breaking New Frontiers in Robotics and Edge Computing with AI
Dustin Franklin1.3K views
GTC Taiwan 2017 主題演說 by NVIDIA Taiwan
GTC Taiwan 2017 主題演說GTC Taiwan 2017 主題演說
GTC Taiwan 2017 主題演說
NVIDIA Taiwan2.8K views
NVIDIA CES 2016 Press Conference by NVIDIA
NVIDIA CES 2016 Press ConferenceNVIDIA CES 2016 Press Conference
NVIDIA CES 2016 Press Conference
NVIDIA16.6K views
GPU Accelerated Deep Learning for CUDNN V2 by NVIDIA
GPU Accelerated Deep Learning for CUDNN V2GPU Accelerated Deep Learning for CUDNN V2
GPU Accelerated Deep Learning for CUDNN V2
NVIDIA4.9K views
Ai Forum at Computex 2017 - Keynote Slides by Jensen Huang by NVIDIA Taiwan
Ai Forum at Computex 2017 - Keynote Slides by Jensen HuangAi Forum at Computex 2017 - Keynote Slides by Jensen Huang
Ai Forum at Computex 2017 - Keynote Slides by Jensen Huang
NVIDIA Taiwan1.3K views
Leading Edge Tech @ Beijing Olympic by greggchen
Leading Edge Tech @ Beijing OlympicLeading Edge Tech @ Beijing Olympic
Leading Edge Tech @ Beijing Olympic
greggchen392 views
How to Choose Mobile Workstation? VR Ready by NVIDIA Taiwan
How to Choose Mobile Workstation? VR ReadyHow to Choose Mobile Workstation? VR Ready
How to Choose Mobile Workstation? VR Ready
NVIDIA Taiwan652 views
GTC 2017: Powering the AI Revolution by NVIDIA
GTC 2017: Powering the AI RevolutionGTC 2017: Powering the AI Revolution
GTC 2017: Powering the AI Revolution
NVIDIA2.3K views
GNSS and Positioning for the Future - Kai Borre by estelconference
GNSS and Positioning for the Future - Kai BorreGNSS and Positioning for the Future - Kai Borre
GNSS and Positioning for the Future - Kai Borre
estelconference2K views
GPU Computing with Python and Anaconda: The Next Frontier by NVIDIA
GPU Computing with Python and Anaconda: The Next FrontierGPU Computing with Python and Anaconda: The Next Frontier
GPU Computing with Python and Anaconda: The Next Frontier
NVIDIA3.2K views
NVIDIA press conference at CES 2014 by NVIDIA
NVIDIA press conference at CES 2014NVIDIA press conference at CES 2014
NVIDIA press conference at CES 2014
NVIDIA2.3K views
Gps tracking system by Sumit Kumar
Gps tracking system Gps tracking system
Gps tracking system
Sumit Kumar39K views

Similar to High Precision GPS Positioning for Spring Developers

A Graph Database That Scales - ArangoDB 3.7 Release Webinar by
A Graph Database That Scales - ArangoDB 3.7 Release WebinarA Graph Database That Scales - ArangoDB 3.7 Release Webinar
A Graph Database That Scales - ArangoDB 3.7 Release WebinarArangoDB Database
217 views33 slides
Android GNSS in Nutshell by
Android GNSS in NutshellAndroid GNSS in Nutshell
Android GNSS in NutshellLukasz Kosma Bonenberg
720 views28 slides
Laser navigation 2016 technology overview short final by
Laser navigation 2016 technology overview short finalLaser navigation 2016 technology overview short final
Laser navigation 2016 technology overview short finalRoberto Navoni
702 views21 slides
GPS in Mobile Application by
GPS in Mobile ApplicationGPS in Mobile Application
GPS in Mobile ApplicationSonnet Xavier
104 views46 slides
QNAP NAS for IoT by
QNAP NAS for IoTQNAP NAS for IoT
QNAP NAS for IoTAnderson Cheng
13.2K views38 slides
GeoServer Ecosystem 2018 by
GeoServer Ecosystem 2018GeoServer Ecosystem 2018
GeoServer Ecosystem 2018Jody Garnett
7.5K views35 slides

Similar to High Precision GPS Positioning for Spring Developers(20)

A Graph Database That Scales - ArangoDB 3.7 Release Webinar by ArangoDB Database
A Graph Database That Scales - ArangoDB 3.7 Release WebinarA Graph Database That Scales - ArangoDB 3.7 Release Webinar
A Graph Database That Scales - ArangoDB 3.7 Release Webinar
ArangoDB Database217 views
Laser navigation 2016 technology overview short final by Roberto Navoni
Laser navigation 2016 technology overview short finalLaser navigation 2016 technology overview short final
Laser navigation 2016 technology overview short final
Roberto Navoni702 views
GPS in Mobile Application by Sonnet Xavier
GPS in Mobile ApplicationGPS in Mobile Application
GPS in Mobile Application
Sonnet Xavier104 views
GeoServer Ecosystem 2018 by Jody Garnett
GeoServer Ecosystem 2018GeoServer Ecosystem 2018
GeoServer Ecosystem 2018
Jody Garnett7.5K views
Geonuris ep introduction 3.0 english sg by STLogic
Geonuris ep introduction 3.0 english sgGeonuris ep introduction 3.0 english sg
Geonuris ep introduction 3.0 english sg
STLogic544 views
Tim Hall [InfluxData] | InfluxDB Roadmap | InfluxDays Virtual Experience Lond... by InfluxData
Tim Hall [InfluxData] | InfluxDB Roadmap | InfluxDays Virtual Experience Lond...Tim Hall [InfluxData] | InfluxDB Roadmap | InfluxDays Virtual Experience Lond...
Tim Hall [InfluxData] | InfluxDB Roadmap | InfluxDays Virtual Experience Lond...
InfluxData230 views
Open source based software ‘gxt’ mangosystem by HaNJiN Lee
Open source based software ‘gxt’ mangosystemOpen source based software ‘gxt’ mangosystem
Open source based software ‘gxt’ mangosystem
HaNJiN Lee1.6K views
Locationless data science on a modern secure edge by John Archer
Locationless data science on a modern secure edgeLocationless data science on a modern secure edge
Locationless data science on a modern secure edge
John Archer231 views
GTC 2018 で発表された自動運転最新情報 by NVIDIA Japan
GTC 2018 で発表された自動運転最新情報GTC 2018 で発表された自動運転最新情報
GTC 2018 で発表された自動運転最新情報
NVIDIA Japan5.3K views
Cloud-native .NET-Microservices mit Kubernetes @BASTAcon by Mario-Leander Reimer
Cloud-native .NET-Microservices mit Kubernetes @BASTAconCloud-native .NET-Microservices mit Kubernetes @BASTAcon
Cloud-native .NET-Microservices mit Kubernetes @BASTAcon
Architecting peta-byte-scale analytics by scaling out Postgres on Azure with ... by Citus Data
Architecting peta-byte-scale analytics by scaling out Postgres on Azure with ...Architecting peta-byte-scale analytics by scaling out Postgres on Azure with ...
Architecting peta-byte-scale analytics by scaling out Postgres on Azure with ...
Citus Data599 views
2020-07-07 Stargate RTK for service information by Simon Litvinov
2020-07-07 Stargate RTK for service information2020-07-07 Stargate RTK for service information
2020-07-07 Stargate RTK for service information
Simon Litvinov17 views
Matchinguu droidcon presentation by Droidcon Berlin
Matchinguu droidcon presentationMatchinguu droidcon presentation
Matchinguu droidcon presentation
Droidcon Berlin2.1K views
Safer Commutes & Streaming Data | George Padavick, Ohio Department of Transpo... by HostedbyConfluent
Safer Commutes & Streaming Data | George Padavick, Ohio Department of Transpo...Safer Commutes & Streaming Data | George Padavick, Ohio Department of Transpo...
Safer Commutes & Streaming Data | George Padavick, Ohio Department of Transpo...
HostedbyConfluent464 views
Devday 2017 Hands On Presentation by Tom Luczak
Devday 2017 Hands On PresentationDevday 2017 Hands On Presentation
Devday 2017 Hands On Presentation
Tom Luczak223 views

More from Gunnar Hillert

Migrating to Angular 5 for Spring Developers by
Migrating to Angular 5 for Spring DevelopersMigrating to Angular 5 for Spring Developers
Migrating to Angular 5 for Spring DevelopersGunnar Hillert
469 views26 slides
The Spring Update by
The Spring UpdateThe Spring Update
The Spring UpdateGunnar Hillert
1.5K views51 slides
Ajug - The Spring Update by
Ajug - The Spring UpdateAjug - The Spring Update
Ajug - The Spring UpdateGunnar Hillert
620 views51 slides
s2gx2015 who needs batch by
s2gx2015 who needs batchs2gx2015 who needs batch
s2gx2015 who needs batchGunnar Hillert
703 views88 slides
Spring Batch Performance Tuning by
Spring Batch Performance TuningSpring Batch Performance Tuning
Spring Batch Performance TuningGunnar Hillert
12.3K views50 slides
Creating Modular Test-Driven SPAs with Spring and AngularJS by
Creating Modular Test-Driven SPAs with Spring and AngularJSCreating Modular Test-Driven SPAs with Spring and AngularJS
Creating Modular Test-Driven SPAs with Spring and AngularJSGunnar Hillert
10K views58 slides

More from Gunnar Hillert(16)

Migrating to Angular 5 for Spring Developers by Gunnar Hillert
Migrating to Angular 5 for Spring DevelopersMigrating to Angular 5 for Spring Developers
Migrating to Angular 5 for Spring Developers
Gunnar Hillert469 views
Spring Batch Performance Tuning by Gunnar Hillert
Spring Batch Performance TuningSpring Batch Performance Tuning
Spring Batch Performance Tuning
Gunnar Hillert12.3K views
Creating Modular Test-Driven SPAs with Spring and AngularJS by Gunnar Hillert
Creating Modular Test-Driven SPAs with Spring and AngularJSCreating Modular Test-Driven SPAs with Spring and AngularJS
Creating Modular Test-Driven SPAs with Spring and AngularJS
Gunnar Hillert10K views
Modular Test-driven SPAs with Spring and AngularJS by Gunnar Hillert
Modular Test-driven SPAs with Spring and AngularJSModular Test-driven SPAs with Spring and AngularJS
Modular Test-driven SPAs with Spring and AngularJS
Gunnar Hillert3.8K views
Atlanta JUG - Integrating Spring Batch and Spring Integration by Gunnar Hillert
Atlanta JUG - Integrating Spring Batch and Spring IntegrationAtlanta JUG - Integrating Spring Batch and Spring Integration
Atlanta JUG - Integrating Spring Batch and Spring Integration
Gunnar Hillert17.5K views
DevNexus 2013 - Introduction to WebSockets by Gunnar Hillert
DevNexus 2013 - Introduction to WebSocketsDevNexus 2013 - Introduction to WebSockets
DevNexus 2013 - Introduction to WebSockets
Gunnar Hillert2.8K views
Introduction to WebSockets by Gunnar Hillert
Introduction to WebSocketsIntroduction to WebSockets
Introduction to WebSockets
Gunnar Hillert8.8K views
S2GX 2012 - Spring Projects Infrastructure by Gunnar Hillert
S2GX 2012 - Spring Projects InfrastructureS2GX 2012 - Spring Projects Infrastructure
S2GX 2012 - Spring Projects Infrastructure
Gunnar Hillert930 views
S2GX 2012 - What's New in Spring Integration by Gunnar Hillert
S2GX 2012 - What's New in Spring IntegrationS2GX 2012 - What's New in Spring Integration
S2GX 2012 - What's New in Spring Integration
Gunnar Hillert841 views
S2GX 2012 - Introduction to Spring Integration and Spring Batch by Gunnar Hillert
S2GX 2012 - Introduction to Spring Integration and Spring BatchS2GX 2012 - Introduction to Spring Integration and Spring Batch
S2GX 2012 - Introduction to Spring Integration and Spring Batch
Gunnar Hillert8.3K views
Spring Projects Infrastructure by Gunnar Hillert
Spring Projects InfrastructureSpring Projects Infrastructure
Spring Projects Infrastructure
Gunnar Hillert1.2K views
Cloud Foundry for Spring Developers by Gunnar Hillert
Cloud Foundry for Spring DevelopersCloud Foundry for Spring Developers
Cloud Foundry for Spring Developers
Gunnar Hillert2.6K views
jRecruiter - The AJUG Job Posting Service by Gunnar Hillert
jRecruiter - The AJUG Job Posting ServicejRecruiter - The AJUG Job Posting Service
jRecruiter - The AJUG Job Posting Service
Gunnar Hillert1.2K views

Recently uploaded

The Research Portal of Catalonia: Growing more (information) & more (services) by
The Research Portal of Catalonia: Growing more (information) & more (services)The Research Portal of Catalonia: Growing more (information) & more (services)
The Research Portal of Catalonia: Growing more (information) & more (services)CSUC - Consorci de Serveis Universitaris de Catalunya
80 views25 slides
TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f... by
TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f...TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f...
TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f...TrustArc
11 views29 slides
Automating a World-Class Technology Conference; Behind the Scenes of CiscoLive by
Automating a World-Class Technology Conference; Behind the Scenes of CiscoLiveAutomating a World-Class Technology Conference; Behind the Scenes of CiscoLive
Automating a World-Class Technology Conference; Behind the Scenes of CiscoLiveNetwork Automation Forum
34 views35 slides
Case Study Copenhagen Energy and Business Central.pdf by
Case Study Copenhagen Energy and Business Central.pdfCase Study Copenhagen Energy and Business Central.pdf
Case Study Copenhagen Energy and Business Central.pdfAitana
16 views3 slides
Igniting Next Level Productivity with AI-Infused Data Integration Workflows by
Igniting Next Level Productivity with AI-Infused Data Integration Workflows Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration Workflows Safe Software
280 views86 slides
Piloting & Scaling Successfully With Microsoft Viva by
Piloting & Scaling Successfully With Microsoft VivaPiloting & Scaling Successfully With Microsoft Viva
Piloting & Scaling Successfully With Microsoft VivaRichard Harbridge
12 views160 slides

Recently uploaded(20)

TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f... by TrustArc
TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f...TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f...
TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f...
TrustArc11 views
Automating a World-Class Technology Conference; Behind the Scenes of CiscoLive by Network Automation Forum
Automating a World-Class Technology Conference; Behind the Scenes of CiscoLiveAutomating a World-Class Technology Conference; Behind the Scenes of CiscoLive
Automating a World-Class Technology Conference; Behind the Scenes of CiscoLive
Case Study Copenhagen Energy and Business Central.pdf by Aitana
Case Study Copenhagen Energy and Business Central.pdfCase Study Copenhagen Energy and Business Central.pdf
Case Study Copenhagen Energy and Business Central.pdf
Aitana16 views
Igniting Next Level Productivity with AI-Infused Data Integration Workflows by Safe Software
Igniting Next Level Productivity with AI-Infused Data Integration Workflows Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Safe Software280 views
Piloting & Scaling Successfully With Microsoft Viva by Richard Harbridge
Piloting & Scaling Successfully With Microsoft VivaPiloting & Scaling Successfully With Microsoft Viva
Piloting & Scaling Successfully With Microsoft Viva
ESPC 2023 - Protect and Govern your Sensitive Data with Microsoft Purview in ... by Jasper Oosterveld
ESPC 2023 - Protect and Govern your Sensitive Data with Microsoft Purview in ...ESPC 2023 - Protect and Govern your Sensitive Data with Microsoft Purview in ...
ESPC 2023 - Protect and Govern your Sensitive Data with Microsoft Purview in ...
Voice Logger - Telephony Integration Solution at Aegis by Nirmal Sharma
Voice Logger - Telephony Integration Solution at AegisVoice Logger - Telephony Integration Solution at Aegis
Voice Logger - Telephony Integration Solution at Aegis
Nirmal Sharma39 views
iSAQB Software Architecture Gathering 2023: How Process Orchestration Increas... by Bernd Ruecker
iSAQB Software Architecture Gathering 2023: How Process Orchestration Increas...iSAQB Software Architecture Gathering 2023: How Process Orchestration Increas...
iSAQB Software Architecture Gathering 2023: How Process Orchestration Increas...
Bernd Ruecker40 views
PharoJS - Zürich Smalltalk Group Meetup November 2023 by Noury Bouraqadi
PharoJS - Zürich Smalltalk Group Meetup November 2023PharoJS - Zürich Smalltalk Group Meetup November 2023
PharoJS - Zürich Smalltalk Group Meetup November 2023
Noury Bouraqadi132 views
Business Analyst Series 2023 - Week 3 Session 5 by DianaGray10
Business Analyst Series 2023 -  Week 3 Session 5Business Analyst Series 2023 -  Week 3 Session 5
Business Analyst Series 2023 - Week 3 Session 5
DianaGray10300 views

High Precision GPS Positioning for Spring Developers

  • 1. High-Precision GPS Positioning for Spring Developers @GHILLERTGUNNAR HILLERT
  • 2. About ME ▸ Independent Software Developer ▸ Java Champion ▸ DevNexus Co-Founder ▸ OSS Committer ▸ Spring Integration, XD, Data Flow, Java Marine API ▸ Plant Collector 2Hillert Inc.
  • 3. Contents ▸ Fundamentals ▸ Hardware ▸ Processing of positioning data ▸ Visualization ▸ 2 Demos 3Hillert Inc.
  • 4. Why High Precision GPS? ▸ Autonomous vehicles ▸ Robotics ▸ Precision farming ▸ Drone operation ▸ Infrastructure, Biodiversity etc. 4Hillert Inc.
  • 5. Global Navigation Satellite System (GNSS) refers to a constellation of satellites providing signals from space that transmit positioning and timing data to GNSS receivers. The receivers then use this data to determine location. European Global Navigation Satellite Systems Agency GNSS Defined 5Hillert Inc.
  • 6. ▸ GPS (USA) ▸ GLONASS (Russia) ▸ BeiDou (China) ▸ Galileo (EU) ▸ Satellite-based augmentation systems, e.g. QZSS (Japan), EGNOS (EU) GNSS Systems 6Hillert Inc.
  • 7. Dual Frequency GNSS ▸ L1+L5 (GPS), E1+E5a (Galileo) ▸ “Dual-frequency GNSS on Android devices” by Sean Barbeau ▸ US Device support in 2020 is still spotty ▸ Check phone support with the OSS app GPSTest (Android) ▸ My own experience: better but not amazing (OnePlus 8 Pro) 7Hillert Inc.
  • 8. GNSS Accuracy Compared OnePlus One OnePlus 8 Pro U-Blox 8Hillert Inc.
  • 9. We Can Do Better With Correction Data ▸ Incorporating correction data is key! ▸ Real Time Kinematic (RTK) positioning ▸ Rover + Base Station ▸ Base station should see the same errors (10-40km) ▸ Other correction services exist, e.g. PPP-RTK, PPP ▸ Relative Accuracy versus Absolute Accuracy 9Hillert Inc.
  • 10. How To Consume Correction Data? ▸ NTRIP == RTK over the internet ▸ Eliminates the need for base station ▸ Networked Transport of RTCM via Internet Protocol ▸ RTCM == Radio Technical Commission for Maritime ▸ Manually post-process receiver data ▸ Continuously Operating Reference Stations (CORS) ▸ E.g. using RTKLIB 10Hillert Inc.
  • 11. ▸ Base Station + Rover ▸ Relatively Low Cost ▸ u-blox ZED-F9P module ▸ Bluetooth + Serial ▸ My Setup Base Station Rover 11Hillert Inc.
  • 12. Android ▸ Lefebure NTRIP Client ▸ Connect to external GNSS device via Bluetooth ▸ Enable Mock Locations in Android ▸ Under Developer Options ▸ "Fix type” RTK provides highest accuracy 12Hillert Inc.
  • 13. Hillert Inc. What About IoS? ▸ Very limited support ▸ Cannot override GPS ▸ Need custom app integration ▸ Processing of NMEA data via WIFI 13
  • 14. Hillert Inc. ▸ NMEA 0183 ▸ National Marine Electronics Association ▸ Proprietary “Standard” ▸ Text based ▸ Numerous sentence (message) types ▸ Why GPSes suck, and what to do about it ▸ Alternative: Proprietary Binary Formats How to Process GNSS Data? $GNRMC,024429.00,A,1939.4742123,N,15556.999 $GNVTG,,T,,M,0.027,N,0.050,K,A*3D $GNGGA,024429.00,1939.4742123,N,15556.99941 $GNGSA,A,3,01,07,03,11,22,,,,,,,,2.13,1.02, $GNGSA,A,3,81,68,78,,,,,,,,,,2.13,1.02,1.87 $GNGSA,A,3,02,,,,,,,,,,,,2.13,1.02,1.87,3*0 $GNGSA,A,3,,,,,,,,,,,,,2.13,1.02,1.87,4*09 $GPGSV,2,1,05,01,58,154,45,03,49,030,33,07, $GPGSV,2,2,05,22,46,064,32,1*50 $GPGSV,2,1,05,01,58,154,41,03,49,030,32,07, $GPGSV,2,2,05,22,46,064,,6*56 $GLGSV,3,1,10,66,19,040,21,67,34,344,29,68, $GLGSV,3,2,10,77,36,112,,78,15,167,34,81,41 $GLGSV,3,3,10,83,17,326,,88,02,169,29,1*74 $GLGSV,3,1,10,66,19,040,14,67,34,344,26,68, $GLGSV,3,2,10,77,36,112,20,78,15,167,38,81, $GLGSV,3,3,10,83,17,326,,88,02,169,33,3*7D $GAGSV,2,1,07,02,22,138,40,05,02,059,,07,12 $GAGSV,2,2,07,15,,,35,18,29,218,38,25,18,08 $GAGSV,2,1,06,02,22,138,30,05,02,059,,07,12 $GAGSV,2,2,06,18,29,218,30,25,18,085,,2*79 $GBGSV,1,1,00,*47 $GBGSV,1,1,00,*47 $GNGLL,1939.4742123,N,15556.9994168,W,02442 $PUBX,00,024429.00,1939.4742123,N,15556.999 $PUBX,03,22,1,U,154,58,45,064,3,U,030,49,33 14 💩
  • 15. Libraries for Processing GNSS Data ▸ Gpsd ▸ Daemon for Unix-like systems ▸ Defines JSON-based request/response protocol ▸ Java Marine API - https://github.com/ktuukkan/marine-api “If the GPSD project ever needs a slogan, it will be 'Hide the ugliness!’” Source: gpsd 15Hillert Inc.
  • 16. Connecting to External GPS Receivers ▸ Typically Bluetooth or USB ▸ nrjavaserial ▸ Under active development, fork of RXTX ▸ Bluecove (JSR-82, Java APIs for Bluetooth) ▸ Side note - Non-serial USB ▸ usb4java - JSR 80 compliant (OLD!) 16Hillert Inc.
  • 18. Hillert Inc. Application ▸ Spring Boot ▸ nrjavaserial (USB), Bluecove (Bluetooth) ▸ Spring Integration ▸ Enterprise Integration Pattern (EIP) ▸ Micrometer 18 NMEA Input Channel Header Enricher GS Service Activator Service Activator GSA Service Activator GGA Service Activator GS Aggregator GS GGAGSA NMEA Senten e ran or er Senten e Channel Header a ue o ter
  • 19. Hillert Inc. Micrometer + Prometheus + Grafana ▸ A fun way to create a UI (Dashboard) ▸ Micrometer - application metrics facade ▸ Hibernate for Metrics (Prometheus, Humio, Wavefront etc.) ▸ Simple to use in Spring Boot apps ▸ Prometheus - time series database / monitoring system ▸ Grafana - Monitoring + Dashboarding 19
  • 20. Hillert Inc. QGIS ▸ Geographic Information System ▸ “Painting” with GNSS Coordinates ▸ The OSS “IDE” for GIS People ▸ https://github.com/qgis/QGIS 20
  • 21. Hillert Inc. Field Surveys With Mergin and Input ▸ Create Forms and Data Collection Model in QGIS ▸ Run Input on your mobile device ▸ Automatic synchronization using Mergin ▸ Android and IoS support ▸ Alternative option QField ▸ Advice: Take pictures with Open Camera (OSS) 21
  • 24. Hillert Inc. Thank YOU! ▸ Follow me @ghillert or connect via LinkedIn ▸ Additional information + Hardware Parts List ▸ https://www.hillert.com/ ▸ Source Code ▸ https://github.com/ghillert/s1-2020-plants-demo ▸ https://github.com/ghillert/gnss-nmea-demo 24