Skip to content
Snippets Groups Projects
Commit 32edf7d6 authored by Joan Solà Ortega's avatar Joan Solà Ortega
Browse files

Merge branch 'feature/solver_getters' into 'devel'

Solver getters

See merge request mobile_robotics/wolf!236
parents fd8313bc 577976ed
No related branches found
No related tags found
1 merge request!236Solver getters
Pipeline #2410 passed
...@@ -351,6 +351,26 @@ void CeresManager::updateStateBlockLocalParametrization(const StateBlockPtr& sta ...@@ -351,6 +351,26 @@ void CeresManager::updateStateBlockLocalParametrization(const StateBlockPtr& sta
addConstraint(ctr); addConstraint(ctr);
} }
bool CeresManager::hasConverged()
{
return summary_.termination_type == ceres::CONVERGENCE;
}
SizeStd CeresManager::iterations()
{
return summary_.iterations.size();
}
Scalar CeresManager::initialCost()
{
return Scalar(summary_.initial_cost);
}
Scalar CeresManager::finalCost()
{
return Scalar(summary_.final_cost);
}
ceres::CostFunctionPtr CeresManager::createCostFunction(const ConstraintBasePtr& _ctr_ptr) ceres::CostFunctionPtr CeresManager::createCostFunction(const ConstraintBasePtr& _ctr_ptr)
{ {
assert(_ctr_ptr != nullptr); assert(_ctr_ptr != nullptr);
......
...@@ -53,6 +53,14 @@ class CeresManager : public SolverManager ...@@ -53,6 +53,14 @@ class CeresManager : public SolverManager
virtual void computeCovariances(const StateBlockList& st_list) override; virtual void computeCovariances(const StateBlockList& st_list) override;
virtual bool hasConverged();
virtual SizeStd iterations();
virtual Scalar initialCost();
virtual Scalar finalCost();
ceres::Solver::Options& getSolverOptions(); ceres::Solver::Options& getSolverOptions();
void check(); void check();
......
...@@ -55,6 +55,14 @@ public: ...@@ -55,6 +55,14 @@ public:
virtual void computeCovariances(const StateBlockList& st_list) = 0; virtual void computeCovariances(const StateBlockList& st_list) = 0;
virtual bool hasConverged() = 0;
virtual SizeStd iterations() = 0;
virtual Scalar initialCost() = 0;
virtual Scalar finalCost() = 0;
virtual void update(); virtual void update();
ProblemPtr getProblemPtr(); ProblemPtr getProblemPtr();
......
...@@ -63,6 +63,14 @@ class SolverManagerWrapper : public SolverManager ...@@ -63,6 +63,14 @@ class SolverManagerWrapper : public SolverManager
virtual void computeCovariances(const CovarianceBlocksToBeComputed blocks){}; virtual void computeCovariances(const CovarianceBlocksToBeComputed blocks){};
virtual void computeCovariances(const StateBlockList& st_list){}; virtual void computeCovariances(const StateBlockList& st_list){};
// The following are dummy implementations
bool hasConverged() { return true; }
SizeStd iterations() { return 1; }
Scalar initialCost() { return Scalar(1); }
Scalar finalCost() { return Scalar(0); }
protected: protected:
virtual std::string solveImpl(const ReportVerbosity report_level){ return std::string("");}; virtual std::string solveImpl(const ReportVerbosity report_level){ return std::string("");};
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment