# RobustGNSS
**Repository Path**: ieuxmz/RobustGNSS
## Basic Information
- **Project Name**: RobustGNSS
- **Description**: Robust GNSS Processing With Factor Graphs
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 1
- **Forks**: 0
- **Created**: 2020-08-06
- **Last Updated**: 2022-05-09
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 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](https://bitbucket.org/gtborg/gtsam), which has been updated for GNSS signal processing. To enable RINEX file reading and GNSS observation modeling, the [GPSTk](http://www.gpstk.org/bin/view/Documentation/WebHome) library is utilized. A detailed description of the modification can be found in ["Robust Navigation In GNSS Degraded Environment Using Graph Optimization"](https://www.researchgate.net/profile/Ryan_Watson7/publication/320084321_Robust_Navigation_in_GNSS_Degraded_Environment_Using_Graph_Optimization/links/59cd10ef0f7e9b6e147906ec/Robust-Navigation-in-GNSS-Degraded-Environment-Using-Graph-Optimization.pdf). 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"](https://www.researchgate.net/publication/324454778_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](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](https://software.intel.com/en-us/mkl)
### 2) Clone repository to local machine
* RobustGNSS --> ```` git clone https://github.com/wvu-navLab/RobustGNSS.git ````
### 3) Build
````bash
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
````