Lokasi ngalangkungan proxy:   [ UP ]  
[Ngawartoskeun bug]   [Panyetelan cookie]                
Skip to content

Gnc#617

Merged
lucacarlone merged 45 commits into
developfrom
gnc
Jan 4, 2021
Merged

Gnc#617
lucacarlone merged 45 commits into
developfrom
gnc

Conversation

@lucacarlone

@lucacarlone lucacarlone commented Nov 28, 2020

Copy link
Copy Markdown
Contributor

Added Graduated Non-Convexity (GNC) as a nonlinear optimizer in GTSAM. This is an implementation of the GNC paper (https://arxiv.org/pdf/1909.08605.pdf), but it uses iterative solvers in the inner loop instead of non-minimal global solvers.

Outstanding tasks:

  • reintroduce “using BaseOptimizer = BaseOptimizerParameters::OptimizerType;” to let the user choose the iterative solver for the inner loop.
  • move GncOptimizer and its params to a proper class/file when ready.
  • populate the TLS option (now the code only implements GM = Geman McClure).
  • double-check that the 0.5 in front of the factors in gtsam does not require a modification to the weight update rule.

@lucacarlone lucacarlone added the wip This is still a work in progress label Nov 28, 2020

@dellaert dellaert left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I left some comments. What is the main templating issue you wanted me to look at ?

Comment thread tests/testGncOptimizer.cpp Outdated
Comment thread tests/testGncOptimizer.cpp Outdated
Comment thread tests/testGncOptimizer.cpp Outdated
Comment thread tests/testGncOptimizer.cpp Outdated
Comment thread gtsam/nonlinear/GncOptimizer.h Outdated
Comment thread gtsam/nonlinear/GncOptimizer.h Outdated
@lucacarlone

Copy link
Copy Markdown
Contributor Author

@jingnanshi @dellaert @pantonante : I fixed the outstanding issue with optimizerType. I also added a couple of unit tests (and comments) to make sure the inlier threshold is set correctly. @jingnanshi : the only thing I'm not convinced about is the stopping condition for TLS - please check my comment. Besides that, this PR is ready for review!

Comment thread gtsam/nonlinear/GncOptimizer.h Outdated
Comment thread gtsam/nonlinear/GncOptimizer.h Outdated
lcarlone and others added 2 commits December 23, 2020 22:08
- handled degenerate case in mu initialization
- set TLS as default
- added more unit tests

@dellaert dellaert left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Awesome! First round, will look again after comments resolved :-)

Comment thread gtsam/nonlinear/GaussNewtonOptimizer.h Outdated
Comment thread gtsam/nonlinear/LevenbergMarquardtParams.h Outdated
Comment thread tests/testGncOptimizer.cpp
Comment thread tests/testGncOptimizer.cpp Outdated
Comment thread gtsam/nonlinear/GncOptimizer.h Outdated
Comment thread gtsam/nonlinear/GncOptimizer.h Outdated
Comment thread gtsam/nonlinear/GncOptimizer.h Outdated
Comment thread gtsam/nonlinear/GncOptimizer.h Outdated
Comment thread gtsam/nonlinear/GncOptimizer.h Outdated
Comment thread gtsam/nonlinear/GncOptimizer.h Outdated

@dellaert dellaert left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Very cool!
Just a few more code nits, feel free to merge after addressed ;-)

Now we need to apply it to Shonan and compare with robust rotation averaging, right @jingwuOUO :-) ?

Comment thread gtsam/nonlinear/GncOptimizer.h
Comment thread gtsam/nonlinear/GncOptimizer.h Outdated
Comment thread gtsam/nonlinear/GncOptimizer.h
Comment thread gtsam/nonlinear/GncOptimizer.h Outdated
Comment thread gtsam/nonlinear/GncOptimizer.h Outdated
Comment thread gtsam/nonlinear/GncParams.h
@lucacarlone

Copy link
Copy Markdown
Contributor Author

all set! I'll merge after @pantonante and @jingnanshi approve!

@jingnanshi jingnanshi left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

wip This is still a work in progress

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants