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
For a complete list of available options, run the command provided below.
./gnssExamples/l2Example -h