/Enabling-Robust-State-Estimation-through-Measurement-Error-Covariance-Adaptation

Software release for "Enabling Robust State Estimation through Measurement Error Covariance Adaptation"

Primary LanguageShellMIT LicenseMIT

Enabling Robust State Estimation through Measurement Error Covariance Adaptation

Overview

This repository contains the software release for "Enabling Robust State Estimation through Measurement Error Covariance Adaptation". The objective of the software release is described through the associated abstract. To see an incrmental extension of the approach implemented in the repo, see https://github.com/wvu-navLab/ICE

Accurate platform localization is an integral component of most robotic systems. As these robotic systems become more ubiquitous, it is necessary to develop robust state estimation algorithms that are able to withstand novel and non-cooperative environments. When dealing with novel and non-cooperative environments, little is known a priori about the measurement error uncertainty, thus, there is a requirement that the uncertainty models of the localization algorithm be adaptive. Within this paper, we propose one such technique that enables robust state estimation through the iterative adaptation of the measurement uncertainty model. The adaptation of the measurement uncertainty model is granted through non-parametric clustering of the residuals, which enables the characterization of the measurement uncertainty via a Gaussian mixture model. The provided Gaussian mixture model can be utilized within any non-linear least squares optimization algorithm by approximately characterizing each observation with the sufficient statistics of the assigned cluster (i.e., each observation's uncertainty model is updated based upon the assignment provided by the non-parametric clustering algorithm). The proposed algorithm is verified on several collected GNSS data sets, where it is shown that the proposed technique exhibits some advantages other robust estimation techniques when confronted with degraded data quality.



This software benefits from several open-source software packages.




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

@article{ watson2019enabling,
        title={Enabling Robust State Estimation through Measurement Error Covariance Adaptation},
        author={Watson, Ryan M and Gross, Jason N and Taylor, Clark N and Leishman, Robert C},
        journal={IEEE Transactions on Aerospace and Electronic Systems},
        year={2019}
       }


How to Install

1) Requirements/Recommendations

Required

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

2) Clone repository to local machine

git clone https://github.com/wvu-navLab/Enabling-Robust-State-Estimation-through-Measurement-Error-Covariance-Adaptation.git

3) Build

cd Enabling-Robust-State-Estimation-through-Measurement-Error-Covariance-Adaptation
./build.sh

4) Test

cd examples
chmod +x run_all.sh
./run_all.sh

This will write all of the generated results to the test directory (../test). To duplicate the plots generated within the paper run the following command. (Note: this assumes that you have a matlab alias set. See this link for instructions. ).

chmod +x plot_all.sh
./plot_all.sh

This will write all of the generated figures to the test/plots directory.