27 #ifndef G2O_SOLVER_LEVENBERG_H 28 #define G2O_SOLVER_LEVENBERG_H double currentLambda() const
return the currently used damping factor
Property< double > * _userLambdaInit
double userLambdaInit()
return the lambda set by the user, if < 0 the SparseOptimizer will compute the initial lambda ...
double _goodStepLowerScale
lower bound for lambda decrease if a good LM step
double _goodStepUpperScale
upper bound for lambda decrease if a good LM step
double computeScale() const
int _levenbergIterations
the numer of levenberg iterations performed to accept the last step
Implementation of the Levenberg Algorithm.
int maxTrialsAfterFailure() const
get the number of inner iterations for Levenberg-Marquardt
Base for solvers operating on the approximated Hessian, e.g., Gauss-Newton, Levenberg.
double computeLambdaInit() const
virtual ~OptimizationAlgorithmLevenberg()
Solver * solver()
return the underlying solver used to solve the linear system
OptimizationAlgorithmLevenberg(Solver *solver)
Generic interface for a sparse solver operating on a graph which solves one iteration of the lineariz...
virtual void printVerbose(std::ostream &os) const
Property< int > * _maxTrialsAfterFailure
void setUserLambdaInit(double lambda)
specify the initial lambda used for the first iteraion, if not given the SparseOptimizer tries to com...
int levenbergIteration()
return the number of levenberg iterations performed in the last round
void setMaxTrialsAfterFailure(int max_trials)
the number of internal iteration if an update step increases chi^2 within Levenberg-Marquardt ...
virtual SolverResult solve(int iteration, bool online=false)