Giter Site home page Giter Site logo

garrettseepersad / virtual-network-dgnss-project Goto Github PK

View Code? Open in Web Editor NEW

This project forked from azurehappen/virtual-network-dgnss-project

2.0 0.0 0.0 85.94 MB

A virtual network Differential GNSS server-client project using Precise Point Positioning (PPP). Global coverage. Without the needs for physical base station construction. An open-source virtual base station (VBS) approach.

License: GNU General Public License v3.0

C++ 92.48% MATLAB 4.72% TeX 2.37% CMake 0.41% Batchfile 0.01%

virtual-network-dgnss-project's Introduction

Virtual-Network-DGNSS-Project

This project is the software implementation for a publicly available, open-source, client/server VN-DGNSS implementation with global coverage. The server receives real-time information in SSR format and provides each client with virtual base station RTCM OSR formatted messages applicable to their local vicinity for BeiDou B1, GALILEO E1, and GPS L1. This approach eliminates the need for the client to have physical access to a local reference station.

keywords: PPP, Differential GNSS, Lane-level positioning, Virtual Base Station

Contact: [email protected]

Copyright (c) 2020 UC Regents

I. Paper

Currently available at https://arxiv.org/abs/2110.14763

(under journal review)

II. Server Setup

System Requirement

Ubuntu 18.04

Attention: The executable file provided here was compiled from X86 Linux. If you are using ARM or other architecture, you should compile this project before using it.

Setup

Compiling packages are needed: gcc, g++, cmake. If not, do "sudo apt install xxx".

  1. Install packages (If you use Ubuntu 20. LTS, do 'sudo add-apt-repository ppa:rock-core/qt4' first)
sudo apt update
sudo apt install libcurl4-openssl-dev libqtwebkit4 libqt4-svg
sudo apt-get install zlib1g-dev
sudo ldconfig
  1. Compile VN-DGNSS server Go to Virtual-Network-DGNSS-Project/VN_DGNSS_Server, then
mkdir build
cd build/
cmake ..
make

Run VN-DGNSS server: Set the IP address and port

./server (IP) (Port)

If you would like to connect it to external network. You may use 'ifconfig' to find your internal IP address. in your router 'port forwarding' setup, forward your internal IP address&port to external port.

  1. Install BKG Ntrip Client
    Download the BKG software version at 'https://igs.bkg.bund.de/root_ftp/NTRIP/software/'. For example: In a new terminal,
sudo apt-get install libcanberra-gtk-module
wget https://igs.bkg.bund.de/root_ftp/NTRIP/software/bnc-2.12.17-ubuntu-64bit-shared.zip

Unzip the folder

unzip bnc-2.12.17-ubuntu-shared.zip  

Move to ./bnc-2.12.17-ubuntu-shared/ directory and run BNC.

cd bnc-2.12.17-ubuntu-shared  
./bnc-2.12.17-ubuntu-shared  
  1. BNC software setup
  • setup the local IP port. Port number 6699 for the Broadcast Corrections and 3536 for RINEX Ephemeris. Please select the 'version 3' in the RINEX Ephemeris tab page. If you would like to change the port numbers, the port numbers configured in the server are also need to be changed.
  • setup the stream: click Add Stream -> Caster
  • The recommended NTRIP Caster: Caster host (products.igs-ip.net), Caster port (2101), Ntrip Version (2)
  • Fill in "User" and "Password". (You may need an account for SSR stream usage. Please check http://www.igs-ip.net/home for registration.)
  • Click Get table
  • Click an navigation message stream (Defaul: BCEP00BKG0) then click select.
  • Click an SSR message stream (Defaul: SSR00CNE0) then click select.
  • Run (click Start) the BNC software.

III. Client Setup

The excutable file "VN_DGNSS_Client" for Linux (generated from Ubuntu 18.04) is located at VN_DGNSS_Client/bin. The excutable file "VN_DGNSS_Client.exe" for Windows (generated from Windows 10) is located at VN_DGNSS_Client/app.

Please check 'VN_DGNSS_Client/README' for details.

IV. System Architecture

Server-client

PPP model usage:

  • Satellite orbit and clock corrections: SSR orbit and clock products
  • Satellite hardware bias correction: CAS GIPP Observable-specific Code Biases (OSB) product
  • Ionosphere correction model: SSR VTEC using Spherical Harmonic expansion
  • Troposphere correction model: IGGtrop_SH

V. Experimental results

For detailed descriptions and conclusions, please check Sec. VI in the VN-DGNSS paper.

Screen Shot 2021-09-02 at 11 53 19 PM

Stationary platform results

stationary_all

Moving platform results

  • With single-band antenna moving_SF_err

  • With dual-band antenna moving_DF_err

VI. Code Implementation Contributor

VII. Implementation Notes

  1. The BKG data stream will provide both I/NAV and F/NAV for Galileo. In terms of IGS SSR standard, this VN-DGNSS server will only support I/NAV ephemeris.
  2. The RTCM message function originally referred from RTKLIB but modified to our specific purpose.
  3. No Cycle-Slip function needed since VN-DGNSS only generates the GNSS code measurements.
  4. Note: In terms of RINEX 3.04. BDS System Time week has a roll-over after 8191. Galileo System Time (GST) week has a roll-over after 4095. currently this code doesn't consider thie roll-over since it valid to after many years. GAL week = GST week + 1024 + n*4096 (n: number of GST roll-overs).

VIII. Acknowledge

The ideas reported herein originated during a project supported by SiriusXM. The client-server implementation project was supported by Caltrans under agreement number 65A0767. IGGtrop_SH model data and origianl MATLAB functions are provided by the author of IGGtrop Dr. Wei Li, [email protected]. Some portions of the VN-DGNSS (e.g., RTCM message generator) are modifications of open-source functions in RTKLIB (https://github.com/tomojitakasu/RTKLIB). Functions of Spherical Harmonic expansion ionosphere correction model are modifications of functions in BNC (https://igs.bkg.bund.de/ntrip/download).

virtual-network-dgnss-project's People

Contributors

azurehappen avatar jaffarrell avatar

Stargazers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.