SlideShare ist ein Scribd-Unternehmen logo
1 von 24
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

Was ist angesagt?

GTC Taiwan 2017 企業端深度學習與人工智慧應用
GTC Taiwan 2017 企業端深度學習與人工智慧應用GTC Taiwan 2017 企業端深度學習與人工智慧應用
GTC Taiwan 2017 企業端深度學習與人工智慧應用NVIDIA Taiwan
 
gps tracking techniques
gps tracking techniquesgps tracking techniques
gps tracking techniquespolsaurabh
 
Devtalks Cluj - Develop geolocation solutions with Sigfox
Devtalks Cluj - Develop geolocation solutions with SigfoxDevtalks Cluj - Develop geolocation solutions with Sigfox
Devtalks Cluj - Develop geolocation solutions with SigfoxAurelien Lequertier
 
Breaking New Frontiers in Robotics and Edge Computing with AI
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
 
GTC Taiwan 2017 主題演說
GTC Taiwan 2017 主題演說GTC Taiwan 2017 主題演說
GTC Taiwan 2017 主題演說NVIDIA Taiwan
 
NVIDIA CES 2016 Press Conference
NVIDIA CES 2016 Press ConferenceNVIDIA CES 2016 Press Conference
NVIDIA CES 2016 Press ConferenceNVIDIA
 
GPU Accelerated Deep Learning for CUDNN V2
GPU Accelerated Deep Learning for CUDNN V2GPU Accelerated Deep Learning for CUDNN V2
GPU Accelerated Deep Learning for CUDNN V2NVIDIA
 
Ai Forum at Computex 2017 - Keynote Slides by Jensen Huang
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 HuangNVIDIA Taiwan
 
Talk on commercialising space data
Talk on commercialising space data Talk on commercialising space data
Talk on commercialising space data Alison B. Lowndes
 
Leading Edge Tech @ Beijing Olympic
Leading Edge Tech @ Beijing OlympicLeading Edge Tech @ Beijing Olympic
Leading Edge Tech @ Beijing Olympicgreggchen
 
How to Choose Mobile Workstation? VR Ready
How to Choose Mobile Workstation? VR ReadyHow to Choose Mobile Workstation? VR Ready
How to Choose Mobile Workstation? VR ReadyNVIDIA Taiwan
 
GTC 2017: Powering the AI Revolution
GTC 2017: Powering the AI RevolutionGTC 2017: Powering the AI Revolution
GTC 2017: Powering the AI RevolutionNVIDIA
 
GNSS and Positioning for the Future - Kai Borre
GNSS and Positioning for the Future - Kai BorreGNSS and Positioning for the Future - Kai Borre
GNSS and Positioning for the Future - Kai Borreestelconference
 
GPU Computing with Python and Anaconda: The Next Frontier
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 FrontierNVIDIA
 
NVIDIA press conference at CES 2014
NVIDIA press conference at CES 2014NVIDIA press conference at CES 2014
NVIDIA press conference at CES 2014NVIDIA
 
Gps tracking system
Gps tracking system Gps tracking system
Gps tracking system Sumit Kumar
 

Was ist angesagt? (20)

GTC Taiwan 2017 企業端深度學習與人工智慧應用
GTC Taiwan 2017 企業端深度學習與人工智慧應用GTC Taiwan 2017 企業端深度學習與人工智慧應用
GTC Taiwan 2017 企業端深度學習與人工智慧應用
 
JETSON : AI at the EDGE
JETSON : AI at the EDGEJETSON : AI at the EDGE
JETSON : AI at the EDGE
 
gps tracking techniques
gps tracking techniquesgps tracking techniques
gps tracking techniques
 
Devtalks Cluj - Develop geolocation solutions with Sigfox
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
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
 
GTC Taiwan 2017 主題演說
GTC Taiwan 2017 主題演說GTC Taiwan 2017 主題演說
GTC Taiwan 2017 主題演說
 
NVIDIA CES 2016 Press Conference
NVIDIA CES 2016 Press ConferenceNVIDIA CES 2016 Press Conference
NVIDIA CES 2016 Press Conference
 
Sigfox Euratech Workshop
Sigfox Euratech WorkshopSigfox Euratech Workshop
Sigfox Euratech Workshop
 
GPU Accelerated Deep Learning for CUDNN V2
GPU Accelerated Deep Learning for CUDNN V2GPU Accelerated Deep Learning for CUDNN V2
GPU Accelerated Deep Learning for CUDNN V2
 
Ai Forum at Computex 2017 - Keynote Slides by Jensen Huang
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
 
Talk on commercialising space data
Talk on commercialising space data Talk on commercialising space data
Talk on commercialising space data
 
Leading Edge Tech @ Beijing Olympic
Leading Edge Tech @ Beijing OlympicLeading Edge Tech @ Beijing Olympic
Leading Edge Tech @ Beijing Olympic
 
How to Choose Mobile Workstation? VR Ready
How to Choose Mobile Workstation? VR ReadyHow to Choose Mobile Workstation? VR Ready
How to Choose Mobile Workstation? VR Ready
 
GTC 2017: Powering the AI Revolution
GTC 2017: Powering the AI RevolutionGTC 2017: Powering the AI Revolution
GTC 2017: Powering the AI Revolution
 
GNSS and Positioning for the Future - Kai Borre
GNSS and Positioning for the Future - Kai BorreGNSS and Positioning for the Future - Kai Borre
GNSS and Positioning for the Future - Kai Borre
 
GPU Computing with Python and Anaconda: The Next Frontier
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
 
NVIDIA press conference at CES 2014
NVIDIA press conference at CES 2014NVIDIA press conference at CES 2014
NVIDIA press conference at CES 2014
 
SigfoxGettingStarted
SigfoxGettingStartedSigfoxGettingStarted
SigfoxGettingStarted
 
Gps tracking system
Gps tracking system Gps tracking system
Gps tracking system
 
AT3LR lunar shaastra
AT3LR lunar shaastraAT3LR lunar shaastra
AT3LR lunar shaastra
 

Ähnlich wie High Precision GPS Positioning for Spring Developers

A Graph Database That Scales - ArangoDB 3.7 Release Webinar
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
 
Laser navigation 2016 technology overview short final
Laser navigation 2016 technology overview short finalLaser navigation 2016 technology overview short final
Laser navigation 2016 technology overview short finalRoberto Navoni
 
GPS in Mobile Application
GPS in Mobile ApplicationGPS in Mobile Application
GPS in Mobile ApplicationSonnet Xavier
 
GeoServer Ecosystem 2018
GeoServer Ecosystem 2018GeoServer Ecosystem 2018
GeoServer Ecosystem 2018Jody Garnett
 
Running I/O intensive workloads on Kubernetes, by Nati Shalom
Running I/O intensive workloads on Kubernetes, by Nati ShalomRunning I/O intensive workloads on Kubernetes, by Nati Shalom
Running I/O intensive workloads on Kubernetes, by Nati ShalomCloud Native Day Tel Aviv
 
Geonuris ep introduction 3.0 english sg
Geonuris ep introduction 3.0 english sgGeonuris ep introduction 3.0 english sg
Geonuris ep introduction 3.0 english sgSTLogic
 
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...
Tim Hall [InfluxData] | InfluxDB Roadmap | InfluxDays Virtual Experience Lond...InfluxData
 
Open source based software ‘gxt’ mangosystem
Open source based software ‘gxt’ mangosystemOpen source based software ‘gxt’ mangosystem
Open source based software ‘gxt’ mangosystemHaNJiN Lee
 
Locationless data science on a modern secure edge
Locationless data science on a modern secure edgeLocationless data science on a modern secure edge
Locationless data science on a modern secure edgeJohn Archer
 
GTC 2018 で発表された自動運転最新情報
GTC 2018 で発表された自動運転最新情報GTC 2018 で発表された自動運転最新情報
GTC 2018 で発表された自動運転最新情報NVIDIA Japan
 
Cloud-native .NET-Microservices mit Kubernetes @BASTAcon
Cloud-native .NET-Microservices mit Kubernetes @BASTAconCloud-native .NET-Microservices mit Kubernetes @BASTAcon
Cloud-native .NET-Microservices mit Kubernetes @BASTAconMario-Leander Reimer
 
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 ...
Architecting peta-byte-scale analytics by scaling out Postgres on Azure with ...Citus Data
 
2020-07-07 Stargate RTK for service information
2020-07-07 Stargate RTK for service information2020-07-07 Stargate RTK for service information
2020-07-07 Stargate RTK for service informationSimon Litvinov
 
Matchinguu droidcon presentation
Matchinguu droidcon presentationMatchinguu droidcon presentation
Matchinguu droidcon presentationDroidcon Berlin
 
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...
Safer Commutes & Streaming Data | George Padavick, Ohio Department of Transpo...HostedbyConfluent
 
Devday 2017 Hands On Presentation
Devday 2017 Hands On PresentationDevday 2017 Hands On Presentation
Devday 2017 Hands On PresentationTom Luczak
 

Ähnlich wie High Precision GPS Positioning for Spring Developers (20)

A Graph Database That Scales - ArangoDB 3.7 Release Webinar
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
 
Android GNSS in Nutshell
Android GNSS in NutshellAndroid GNSS in Nutshell
Android GNSS in Nutshell
 
Laser navigation 2016 technology overview short final
Laser navigation 2016 technology overview short finalLaser navigation 2016 technology overview short final
Laser navigation 2016 technology overview short final
 
GPS in Mobile Application
GPS in Mobile ApplicationGPS in Mobile Application
GPS in Mobile Application
 
QNAP NAS for IoT
QNAP NAS for IoTQNAP NAS for IoT
QNAP NAS for IoT
 
GeoServer Ecosystem 2018
GeoServer Ecosystem 2018GeoServer Ecosystem 2018
GeoServer Ecosystem 2018
 
Running I/O intensive workloads on Kubernetes, by Nati Shalom
Running I/O intensive workloads on Kubernetes, by Nati ShalomRunning I/O intensive workloads on Kubernetes, by Nati Shalom
Running I/O intensive workloads on Kubernetes, by Nati Shalom
 
Geonuris ep introduction 3.0 english sg
Geonuris ep introduction 3.0 english sgGeonuris ep introduction 3.0 english sg
Geonuris ep introduction 3.0 english sg
 
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...
Tim Hall [InfluxData] | InfluxDB Roadmap | InfluxDays Virtual Experience Lond...
 
Open source based software ‘gxt’ mangosystem
Open source based software ‘gxt’ mangosystemOpen source based software ‘gxt’ mangosystem
Open source based software ‘gxt’ mangosystem
 
Locationless data science on a modern secure edge
Locationless data science on a modern secure edgeLocationless data science on a modern secure edge
Locationless data science on a modern secure edge
 
GTC 2018 で発表された自動運転最新情報
GTC 2018 で発表された自動運転最新情報GTC 2018 で発表された自動運転最新情報
GTC 2018 で発表された自動運転最新情報
 
Big Data and OSS at IBM
Big Data and OSS at IBMBig Data and OSS at IBM
Big Data and OSS at IBM
 
Cloud-native .NET-Microservices mit Kubernetes @BASTAcon
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 ...
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 ...
 
2020-07-07 Stargate RTK for service information
2020-07-07 Stargate RTK for service information2020-07-07 Stargate RTK for service information
2020-07-07 Stargate RTK for service information
 
Matchinguu droidcon presentation
Matchinguu droidcon presentationMatchinguu droidcon presentation
Matchinguu droidcon presentation
 
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...
Safer Commutes & Streaming Data | George Padavick, Ohio Department of Transpo...
 
Devday 2017 Hands On Presentation
Devday 2017 Hands On PresentationDevday 2017 Hands On Presentation
Devday 2017 Hands On Presentation
 
SigfoxMakersDay Total
SigfoxMakersDay TotalSigfoxMakersDay Total
SigfoxMakersDay Total
 

Mehr von Gunnar Hillert

Migrating to Angular 5 for Spring Developers
Migrating to Angular 5 for Spring DevelopersMigrating to Angular 5 for Spring Developers
Migrating to Angular 5 for Spring DevelopersGunnar Hillert
 
Ajug - The Spring Update
Ajug - The Spring UpdateAjug - The Spring Update
Ajug - The Spring UpdateGunnar Hillert
 
s2gx2015 who needs batch
s2gx2015 who needs batchs2gx2015 who needs batch
s2gx2015 who needs batchGunnar Hillert
 
Spring Batch Performance Tuning
Spring Batch Performance TuningSpring Batch Performance Tuning
Spring Batch Performance TuningGunnar Hillert
 
Creating Modular Test-Driven SPAs with Spring and AngularJS
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
 
Modular Test-driven SPAs with Spring and AngularJS
Modular Test-driven SPAs with Spring and AngularJSModular Test-driven SPAs with Spring and AngularJS
Modular Test-driven SPAs with Spring and AngularJSGunnar Hillert
 
Atlanta JUG - Integrating Spring Batch and Spring Integration
Atlanta JUG - Integrating Spring Batch and Spring IntegrationAtlanta JUG - Integrating Spring Batch and Spring Integration
Atlanta JUG - Integrating Spring Batch and Spring IntegrationGunnar Hillert
 
DevNexus 2013 - Introduction to WebSockets
DevNexus 2013 - Introduction to WebSocketsDevNexus 2013 - Introduction to WebSockets
DevNexus 2013 - Introduction to WebSocketsGunnar Hillert
 
Introduction to WebSockets
Introduction to WebSocketsIntroduction to WebSockets
Introduction to WebSocketsGunnar Hillert
 
S2GX 2012 - Spring Projects Infrastructure
S2GX 2012 - Spring Projects InfrastructureS2GX 2012 - Spring Projects Infrastructure
S2GX 2012 - Spring Projects InfrastructureGunnar Hillert
 
S2GX 2012 - What's New in Spring Integration
S2GX 2012 - What's New in Spring IntegrationS2GX 2012 - What's New in Spring Integration
S2GX 2012 - What's New in Spring IntegrationGunnar Hillert
 
S2GX 2012 - Introduction to Spring Integration and Spring Batch
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 BatchGunnar Hillert
 
Spring Projects Infrastructure
Spring Projects InfrastructureSpring Projects Infrastructure
Spring Projects InfrastructureGunnar Hillert
 
Cloud Foundry for Spring Developers
Cloud Foundry for Spring DevelopersCloud Foundry for Spring Developers
Cloud Foundry for Spring DevelopersGunnar Hillert
 
jRecruiter - The AJUG Job Posting Service
jRecruiter - The AJUG Job Posting ServicejRecruiter - The AJUG Job Posting Service
jRecruiter - The AJUG Job Posting ServiceGunnar Hillert
 

Mehr von Gunnar Hillert (16)

Migrating to Angular 5 for Spring Developers
Migrating to Angular 5 for Spring DevelopersMigrating to Angular 5 for Spring Developers
Migrating to Angular 5 for Spring Developers
 
The Spring Update
The Spring UpdateThe Spring Update
The Spring Update
 
Ajug - The Spring Update
Ajug - The Spring UpdateAjug - The Spring Update
Ajug - The Spring Update
 
s2gx2015 who needs batch
s2gx2015 who needs batchs2gx2015 who needs batch
s2gx2015 who needs batch
 
Spring Batch Performance Tuning
Spring Batch Performance TuningSpring Batch Performance Tuning
Spring Batch Performance Tuning
 
Creating Modular Test-Driven SPAs with Spring and AngularJS
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
 
Modular Test-driven SPAs with Spring and AngularJS
Modular Test-driven SPAs with Spring and AngularJSModular Test-driven SPAs with Spring and AngularJS
Modular Test-driven SPAs with Spring and AngularJS
 
Atlanta JUG - Integrating Spring Batch and Spring Integration
Atlanta JUG - Integrating Spring Batch and Spring IntegrationAtlanta JUG - Integrating Spring Batch and Spring Integration
Atlanta JUG - Integrating Spring Batch and Spring Integration
 
DevNexus 2013 - Introduction to WebSockets
DevNexus 2013 - Introduction to WebSocketsDevNexus 2013 - Introduction to WebSockets
DevNexus 2013 - Introduction to WebSockets
 
Introduction to WebSockets
Introduction to WebSocketsIntroduction to WebSockets
Introduction to WebSockets
 
S2GX 2012 - Spring Projects Infrastructure
S2GX 2012 - Spring Projects InfrastructureS2GX 2012 - Spring Projects Infrastructure
S2GX 2012 - Spring Projects Infrastructure
 
S2GX 2012 - What's New in Spring Integration
S2GX 2012 - What's New in Spring IntegrationS2GX 2012 - What's New in Spring Integration
S2GX 2012 - What's New in Spring Integration
 
S2GX 2012 - Introduction to Spring Integration and Spring Batch
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
 
Spring Projects Infrastructure
Spring Projects InfrastructureSpring Projects Infrastructure
Spring Projects Infrastructure
 
Cloud Foundry for Spring Developers
Cloud Foundry for Spring DevelopersCloud Foundry for Spring Developers
Cloud Foundry for Spring Developers
 
jRecruiter - The AJUG Job Posting Service
jRecruiter - The AJUG Job Posting ServicejRecruiter - The AJUG Job Posting Service
jRecruiter - The AJUG Job Posting Service
 

Kürzlich hochgeladen

How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rick Flair
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 

Kürzlich hochgeladen (20)

How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 

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