• Stars
    star
    131
  • Rank 275,867 (Top 6 %)
  • Language
    C++
  • License
    MIT License
  • Created over 7 years ago
  • Updated about 5 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Robust GNSS Processing With Factor Graphs

RobustGNSS


Please see https://github.com/wvu-navLab/ICE for an updated implementation of the robust estimators presented in this repo as well as a new robust estimators titled Incremental Covariance Estmation (ICE).


This repository contains a modified version of GTSAM, which has been updated for GNSS signal processing. To enable RINEX file reading and GNSS observation modeling, the GPSTk library is utilized. A detailed description of the modification can be found in "Robust Navigation In GNSS Degraded Environment Using Graph Optimization". This software has been cleared for public release by the USAF Case # 88ABW-2017-3893

For information on incorporating carrier-phase observations, please see "Evaluation of Kinematic Precise Point Positioning Convergence with an Incremental Graph Optimizer". The software released with this paper can be found here: https://github.com/wvu-navLab/PPP-BayesTree.



If you utilize this software for an academic purpose, please consider using the following citation:

@article{watson2018robust,
        title={Robust navigation in GNSS degraded environment using graph optimization},
        author={Watson, Ryan M and Gross, Jason N},
        journal={arXiv preprint arXiv:1806.08899},
        year={2018}
}


## How to Install

1) Requirements/Recommendations

Required

  • Boost --> sudo apt-get install libboost-all-dev
  • CMake --> sudo apt-get install cmake

Recommended

  • Intel TBB --> sudo apt-get install libtbb-dev
  • Intel MKL

2) Clone repository to local machine

  • RobustGNSS --> git clone https://github.com/wvu-navLab/RobustGNSS.git

3) Build

cd RobustGNSS/gtsam; 
mkdir build;  
cd build;
cmake ..
make

4) Test

Contained within the RobustGNSS/gtsam/gnssExamples directory are several examples. As an initial test, let's run the non-robust optimization script. First, move into the GTSAM build directory.

cd RobustGNSS/gtsam/build 

Next, the RINEX file saved in the RobustGNSS/gtsam/gnssData directory must be converted to a format readable by GTSAM. ( It should be noted that GTSAM only looks for data files in the RobustGNSS/gtsam/gnssData directory, so all new data files must be stored there. )

./gnssExamples/rnx2Gtsam --obs dec12.16o --sp3 dec12.sp3 > ../gnssData/dec12.gtsam 

Now, we can run the optimization script over the newly generated data file.

./gnssExamples/l2Example -i dec12.gtsam --dir test1 --writeENU  

Finally, we can look at the ground trace of the solution,

cd test1;
gnuplot 
plot 'enu.sol' using 2:3 with points

fg error

For a complete list of available options, run the command provided below.

./gnssExamples/l2Example -h