diff --git a/gtsam/nonlinear/LevenbergMarquardtOptimizer.cpp b/gtsam/nonlinear/LevenbergMarquardtOptimizer.cpp index e5a503b10..650db75d7 100644 --- a/gtsam/nonlinear/LevenbergMarquardtOptimizer.cpp +++ b/gtsam/nonlinear/LevenbergMarquardtOptimizer.cpp @@ -100,6 +100,9 @@ void LevenbergMarquardtOptimizer::iterate() { GaussianFactorGraph::shared_ptr linear = linearize(); double modelFidelity = 0.0; + //Set two parameters as Ceres, will move out later + double min_diagonal_ = 1e-6; + double max_diagonal_ = 1e32; // Keep increasing lambda until we make make progress while (true) { @@ -124,9 +127,9 @@ void LevenbergMarquardtOptimizer::iterate() { //Replace the identity matrix with diagonal of Hessian if (params_.diagonalDamping) { A.diagonal() = hessianDiagonal.at(key_value.key); - for (int aa=0; aa