Giter VIP home page Giter VIP logo

gnc-and-adapt's Introduction

sparklab

Outlier robust estimation

This repository contains the MATLAB implementation of GNC (Graduated Non-Convexity) and ADAPT (Adaptive Trimming) described in the following papers:

  • Antonante, P., Tzoumas, V., Yang, H., & Carlone, L. (2020). "Outlier-Robust Estimation: Hardness, General-Purpose Algorithms, Experiments, and Guarantees."
@techreport{Antonante20tr-outlierRobustEstimation,
  title = {Outlier-Robust Estimation:
  	Hardness, General-Purpose Algorithms, Experiments, and Guarantees},
  author = {Antonante, P. and Tzoumas, V. and Yang, H. and Carlone, L.},
  hidenote = {in preparation},
  year = {2020}
}
  • Yang, H., Antonante, P., Tzoumas, V., & Carlone, L. (2020). "Graduated Non-Convexity for Robust Spatial Perception: From Non-Minimal Solvers to Global Outlier Rejection". IEEE Robotics and Automation Letters (RA-L), 5(2), 1127–1134.
@article{Yang20ral-GNC,
  author = {Yang, H. and Antonante, P. and Tzoumas, V. and Carlone, L.},
  fullauthor = {Heng Yang, Pasquale Antonante, Vasileios Tzoumas, Luca Carlone},
  title = {Graduated Non-Convexity for Robust Spatial Perception: From Non-Minimal Solvers to Global Outlier Rejection},
  volume = {5},
  number = {2},
  pages = {1127--1134},
  pdf = {https://arxiv.org/pdf/1909.08605.pdf},
  journal = {{IEEE} Robotics and Automation Letters ({RA-L})},
  year = {2020}
}
  • Tzoumas, V., Antonante, P., & Carlone, L. (2019). Outlier-Robust Spatial Perception: Hardness, General-Purpose Algorithms, and Guarantees. IEEE/RSJ Intl. Conf. on Intelligent Robots and Systems (IROS).
@inproceedings{Tzoumas19iros-outliers,
  author = {Tzoumas, V. and Antonante, P. and Carlone, L.},
  title = {Outlier-Robust Spatial Perception: Hardness, General-Purpose Algorithms, and Guarantees},
  hidenote = {Extended arxiv version: 1903.11683, \linkToPdf{https://arxiv.org/pdf/1903.11683.pdf}},
  pdf = {https://arxiv.org/pdf/1903.11683.pdf},
  booktitle = {IEEE/RSJ Intl. Conf. on Intelligent Robots and Systems (IROS)},
  year = {2019}
}

Quick-start

Open matlab and run

setup

This will add all the folders to the path. I suggest to run the script every time you open MATLAB (to prevent path pollution) but you can run savepath to save the changes.

Now explore and run the example.m.

GNC (Graduated Non-Convexity) Example

All algorithms provide similar interfaces, let's use GNC as example to solve a linear regression problem. First let's generate a random problem with 100 measurements, 80% of them being outliers:

problem = linearRegressionProblem(100, 0.8);

Suppose suppose our inlier threshold (epsilon) is set using the chi2 distribution

epsilon = chi2inv(0.99, problem.dof)*problem.MeasurementNoiseStd^2

We can run GNC simply running

[inliers, info] = gnc(problem, @leastSquareNorm2, 'NoiseBound', epsilon);

where @leastSquareNorm2 is the function handle of the non-minimal solver. The GNC function will return the estimated set of inliers together with other diagnostic information.

Acknowledgments

This work was partially funded by:

  • ARL DCIST CRA W911NF-17-2-0181
  • ONR RAIDER N00014-18-1-2828
  • Lincoln Laboratory’s “Resilient Perception in Degraded Environments” program.
  • Mathworks

License

BSD License

gnc-and-adapt's People

Contributors

pantonante avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

gnc-and-adapt's Issues

where is the C++ code?

In the experiment section of the paper said that all techniques are implemented in C++ including ADAPT, GNC-GM. So where is it?

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.