fixed unit test
parent
4aec076568
commit
c05eaa0d22
|
@ -129,7 +129,7 @@ void LevenbergMarquardtOptimizer::iterate() {
|
||||||
A.diagonal() = hessianDiagonal.at(key_value.key);
|
A.diagonal() = hessianDiagonal.at(key_value.key);
|
||||||
for (size_t aa=0; aa<dim; aa++)
|
for (size_t aa=0; aa<dim; aa++)
|
||||||
{
|
{
|
||||||
A(aa,aa)=sqrt(std::min(std::max(A(aa,aa), min_diagonal_), max_diagonal_));
|
A(aa,aa)= sqrt(std::min(std::max(A(aa,aa), min_diagonal_), max_diagonal_));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Vector b = Vector::Zero(dim);
|
Vector b = Vector::Zero(dim);
|
||||||
|
|
|
@ -256,13 +256,14 @@ TEST(NonlinearOptimizer, MoreOptimization) {
|
||||||
EXPECT(assert_equal(expected, DoglegOptimizer(fg, init).optimize()));
|
EXPECT(assert_equal(expected, DoglegOptimizer(fg, init).optimize()));
|
||||||
|
|
||||||
// Try LM with diagonal damping
|
// Try LM with diagonal damping
|
||||||
|
Values initBetter;
|
||||||
|
initBetter.insert(0, Pose2(3,4,0));
|
||||||
|
initBetter.insert(1, Pose2(10,2,M_PI/3));
|
||||||
|
initBetter.insert(2, Pose2(11,7,M_PI/2));
|
||||||
|
|
||||||
LevenbergMarquardtParams params;
|
LevenbergMarquardtParams params;
|
||||||
params.verbosityLM = gtsam::LevenbergMarquardtParams::DAMPED;
|
|
||||||
params.verbosity = gtsam::NonlinearOptimizerParams::ERROR;
|
|
||||||
params.setDiagonalDamping(true);
|
params.setDiagonalDamping(true);
|
||||||
params.setRelativeErrorTol(1e-9);
|
LevenbergMarquardtOptimizer optimizer(fg, initBetter, params);
|
||||||
params.setAbsoluteErrorTol(1e-9);
|
|
||||||
LevenbergMarquardtOptimizer optimizer(fg, init, params);
|
|
||||||
EXPECT(assert_equal(expected, optimizer.optimize()));
|
EXPECT(assert_equal(expected, optimizer.optimize()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue