SlideShare una empresa de Scribd logo
1 de 24
Descargar para leer sin conexión
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

Más contenido relacionado

La actualidad más candente

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
 

La actualidad más candente (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
 

Similar a 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
 

Similar a 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
 

Más de 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
 

Más de 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
 

Último

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
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
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
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
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
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
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
 
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
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
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
 

Último (20)

DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
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)
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
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
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
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
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
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
 
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
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
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!
 

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