24 #ifndef OPTIMIZER_HPP_ 25 #define OPTIMIZER_HPP_ 27 #include "mrob/matrix_base.hpp" 62 enum optimMethod{NEWTON_RAPHSON=0, LEVENBERG_MARQUARDT_SPHER, LEVENBERG_MARQUARDT_ELLIP};
63 Optimizer(matData_t solutionTolerance = 1e-4, matData_t lambda = 1e-5);
73 uint_t
solve(
optimMethod method, uint_t max_iters = 1e2,
double lambda = 1e-5);
142 matData_t solutionTolerance_;
144 MatX1 gradient_, dx_;
154 OptimizerDense(matData_t solutionTolerance = 1e-4, matData_t lambda = 1e-5);
Definition: optimizer.hpp:151
virtual void update_state()=0
virtual void update_state_from_bookkeep()=0
optimMethod
Definition: optimizer.hpp:62
virtual void calculate_gradient_hessian()=0
uint_t solve(optimMethod method, uint_t max_iters=1e2, double lambda=1e-5)
Definition: optimizer.cpp:42
Definition: optimizer.hpp:53
virtual uint_t optimize_newton_raphson_one_iteration(bool useLambda=false)=0
uint_t optimize_newton_raphson()
Definition: optimizer.cpp:85
Definition: optimizer.hpp:163
Special Euclidean (group) in 3d Is the group representing rotations and translations, that is, rigid body transformations. SE3 = {T = [R t] | R SO3 , t Re^3 } [0 1] Associated to the groups of RBT, there is the Lie algebra se3 representing the same transformation in the tangent space around the identity. Particularly, xi =[w , v] Re^6, where w Re^3 represents the rotation and v the translation. We will preserve this order in this class.
Definition: matrix_base.hpp:36
virtual matData_t calculate_model_fidelity(matData_t diff_error)=0
virtual void bookkeep_state()=0
uint_t optimize_levenberg_marquardt()
Definition: optimizer.cpp:104
virtual matData_t calculate_error()=0