diff --git a/sm/csm/structprior/Optimizer.cpp b/sm/csm/structprior/Optimizer.cpp index fa9838a4faaaf02da5af6985b4efd07dc34a14bc..3310b20e801598e66f737327655ebbb940bd2632 100644 --- a/sm/csm/structprior/Optimizer.cpp +++ b/sm/csm/structprior/Optimizer.cpp @@ -49,7 +49,7 @@ std::vector<double> Optimizer::OptimizeAlphas() measurements_likelihood.ComputeAlphaLikelihoods(x,alpha0_vector,covs_vector); double err_k; - x = NewtonStep(x,err_k); + x = NewtonStep(x,lambda,err_k); /*int size = measurements_likelihood.grad.size(); double gradient[size]; @@ -127,7 +127,7 @@ std::vector<double> Optimizer::OptimizeRanges() }*/ -std::vector<double> Optimizer::NewtonStep(std::vector<double> xv, double &err ) +std::vector<double> Optimizer::NewtonStep(std::vector<double> xv,double lambda_parameter,double &err ) { std::vector<double> x_return; x_return = xv; @@ -135,7 +135,7 @@ std::vector<double> Optimizer::NewtonStep(std::vector<double> xv, double &err ) double gradient[size]; for (int i=0;i<size;i++) { - gradient[i] = constraint_manager.grad[i] + lambda*measurements_likelihood.grad[i]; + gradient[i] = constraint_manager.grad[i] + lambda_parameter*measurements_likelihood.grad[i]; } int size_h = measurements_likelihood.hess.size(); @@ -146,7 +146,7 @@ std::vector<double> Optimizer::NewtonStep(std::vector<double> xv, double &err ) for(int i=0;i<size_h;i++) for(int j=0;j<size_h;j++) { - hessian[ne] = constraint_manager.hess[i][j] + lambda*measurements_likelihood.hess[i][j]; + hessian[ne] = constraint_manager.hess[i][j] + lambda_parameter*measurements_likelihood.hess[i][j]; ne++; } diff --git a/sm/csm/structprior/Optimizer.h b/sm/csm/structprior/Optimizer.h index fcaa649bec713cbe432c588198ef920f86c786e6..8145b37097a0af3732329d334e72ed8e0209ffad 100644 --- a/sm/csm/structprior/Optimizer.h +++ b/sm/csm/structprior/Optimizer.h @@ -21,7 +21,7 @@ public: std::vector<double> OptimizeRanges(); //std::vector<Pose> OptimizePoses(); - std::vector<double> NewtonStep(std::vector<double> xv, double &err); + std::vector<double> NewtonStep(std::vector<double> xv, double lambda_parameter, double &err); }; #endif