27 #ifndef G2O_SOLVER_LEVENBERG_H 28 #define G2O_SOLVER_LEVENBERG_H double computeLambdaInit() const
Property< double > * _userLambdaInit
double userLambdaInit()
return the lambda set by the user, if < 0 the SparseOptimizer will compute the initial lambda ...
double computeScale() const
double _goodStepLowerScale
lower bound for lambda decrease if a good LM step
double _goodStepUpperScale
upper bound for lambda decrease if a good LM step
int _levenbergIterations
the numer of levenberg iterations performed to accept the last step
virtual void printVerbose(std::ostream &os) const
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.
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...
Property< int > * _maxTrialsAfterFailure
double currentLambda() const
return the currently used damping factor
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)