Slightly more convenient NonlinearOptimizer constructors
parent
de2b9d6b31
commit
ff7a78b854
|
@ -90,7 +90,7 @@ public:
|
||||||
* @param params The optimization parameters
|
* @param params The optimization parameters
|
||||||
*/
|
*/
|
||||||
GaussNewtonOptimizer(const NonlinearFactorGraph& graph, const Values& values,
|
GaussNewtonOptimizer(const NonlinearFactorGraph& graph, const Values& values,
|
||||||
const GaussNewtonParams& params = GaussNewtonParams(),
|
const GaussNewtonParams& params,
|
||||||
const Ordering& ordering = Ordering()) :
|
const Ordering& ordering = Ordering()) :
|
||||||
NonlinearOptimizer(
|
NonlinearOptimizer(
|
||||||
SharedGraph(new NonlinearFactorGraph(graph)),
|
SharedGraph(new NonlinearFactorGraph(graph)),
|
||||||
|
@ -101,6 +101,25 @@ public:
|
||||||
ordering_(colamdOrdering_ ?
|
ordering_(colamdOrdering_ ?
|
||||||
graph_->orderingCOLAMD(*values_) : Ordering::shared_ptr(new Ordering(ordering))) {}
|
graph_->orderingCOLAMD(*values_) : Ordering::shared_ptr(new Ordering(ordering))) {}
|
||||||
|
|
||||||
|
/** Standard constructor, requires a nonlinear factor graph, initial
|
||||||
|
* variable assignments, and optimization parameters. For convenience this
|
||||||
|
* version takes plain objects instead of shared pointers, but internally
|
||||||
|
* copies the objects.
|
||||||
|
* @param graph The nonlinear factor graph to optimize
|
||||||
|
* @param values The initial variable assignments
|
||||||
|
* @param params The optimization parameters
|
||||||
|
*/
|
||||||
|
GaussNewtonOptimizer(const NonlinearFactorGraph& graph, const Values& values,
|
||||||
|
const Ordering& ordering = Ordering()) :
|
||||||
|
NonlinearOptimizer(
|
||||||
|
SharedGraph(new NonlinearFactorGraph(graph)),
|
||||||
|
SharedValues(new Values(values)),
|
||||||
|
SharedGNParams(new GaussNewtonParams())),
|
||||||
|
gnParams_(boost::static_pointer_cast<const GaussNewtonParams>(params_)),
|
||||||
|
colamdOrdering_(ordering.size() == 0),
|
||||||
|
ordering_(colamdOrdering_ ?
|
||||||
|
graph_->orderingCOLAMD(*values_) : Ordering::shared_ptr(new Ordering(ordering))) {}
|
||||||
|
|
||||||
/** Standard constructor, requires a nonlinear factor graph, initial
|
/** Standard constructor, requires a nonlinear factor graph, initial
|
||||||
* variable assignments, and optimization parameters.
|
* variable assignments, and optimization parameters.
|
||||||
* @param graph The nonlinear factor graph to optimize
|
* @param graph The nonlinear factor graph to optimize
|
||||||
|
|
|
@ -124,6 +124,27 @@ public:
|
||||||
dimensions_(new vector<size_t>(values_->dims(*ordering_))),
|
dimensions_(new vector<size_t>(values_->dims(*ordering_))),
|
||||||
lambda_(lmParams_->lambdaInitial) {}
|
lambda_(lmParams_->lambdaInitial) {}
|
||||||
|
|
||||||
|
/** Standard constructor, requires a nonlinear factor graph, initial
|
||||||
|
* variable assignments, and optimization parameters. For convenience this
|
||||||
|
* version takes plain objects instead of shared pointers, but internally
|
||||||
|
* copies the objects.
|
||||||
|
* @param graph The nonlinear factor graph to optimize
|
||||||
|
* @param values The initial variable assignments
|
||||||
|
* @param params The optimization parameters
|
||||||
|
*/
|
||||||
|
LevenbergMarquardtOptimizer(const NonlinearFactorGraph& graph, const Values& values,
|
||||||
|
const Ordering& ordering) :
|
||||||
|
NonlinearOptimizer(
|
||||||
|
SharedGraph(new NonlinearFactorGraph(graph)),
|
||||||
|
SharedValues(new Values(values)),
|
||||||
|
SharedLMParams(new LevenbergMarquardtParams())),
|
||||||
|
lmParams_(boost::static_pointer_cast<const LevenbergMarquardtParams>(params_)),
|
||||||
|
colamdOrdering_(ordering.size() == 0),
|
||||||
|
ordering_(colamdOrdering_ ?
|
||||||
|
graph_->orderingCOLAMD(*values_) : Ordering::shared_ptr(new Ordering(ordering))),
|
||||||
|
dimensions_(new vector<size_t>(values_->dims(*ordering_))),
|
||||||
|
lambda_(lmParams_->lambdaInitial) {}
|
||||||
|
|
||||||
/** Standard constructor, requires a nonlinear factor graph, initial
|
/** Standard constructor, requires a nonlinear factor graph, initial
|
||||||
* variable assignments, and optimization parameters.
|
* variable assignments, and optimization parameters.
|
||||||
* @param graph The nonlinear factor graph to optimize
|
* @param graph The nonlinear factor graph to optimize
|
||||||
|
|
Loading…
Reference in New Issue