Updated examples to use the new Marginals interface
parent
516e1610a1
commit
ff3edc6823
|
|
@ -36,8 +36,7 @@
|
|||
// implementations for structures - needed if self-contained, and these should be included last
|
||||
#include <gtsam/nonlinear/NonlinearFactorGraph.h>
|
||||
#include <gtsam/nonlinear/LevenbergMarquardtOptimizer.h>
|
||||
#include <gtsam/linear/GaussianSequentialSolver.h>
|
||||
#include <gtsam/linear/GaussianMultifrontalSolver.h>
|
||||
#include <gtsam/nonlinear/Marginals.h>
|
||||
|
||||
using namespace std;
|
||||
using namespace gtsam;
|
||||
|
|
@ -125,15 +124,13 @@ int main(int argc, char** argv) {
|
|||
Values resultMultifrontal = optimizer.optimize();
|
||||
resultMultifrontal.print("final result (solved with a multifrontal solver)");
|
||||
|
||||
const Ordering& ordering = *optimizer.params().ordering;
|
||||
GaussianMultifrontalSolver linearSolver(*graph.linearize(resultMultifrontal, ordering));
|
||||
|
||||
// Print marginals covariances for all variables
|
||||
print(linearSolver.marginalCovariance(ordering[x1]), "x1 covariance");
|
||||
print(linearSolver.marginalCovariance(ordering[x2]), "x2 covariance");
|
||||
print(linearSolver.marginalCovariance(ordering[x3]), "x3 covariance");
|
||||
print(linearSolver.marginalCovariance(ordering[l1]), "l1 covariance");
|
||||
print(linearSolver.marginalCovariance(ordering[l2]), "l2 covariance");
|
||||
Marginals marginals(graph, resultMultifrontal, Marginals::CHOLESKY);
|
||||
print(marginals.marginalCovariance(x1), "x1 covariance");
|
||||
print(marginals.marginalCovariance(x2), "x2 covariance");
|
||||
print(marginals.marginalCovariance(x3), "x3 covariance");
|
||||
print(marginals.marginalCovariance(l1), "l1 covariance");
|
||||
print(marginals.marginalCovariance(l2), "l2 covariance");
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -23,6 +23,7 @@
|
|||
// pull in the Pose2 SLAM domain with all typedefs and helper functions defined
|
||||
#include <gtsam/slam/pose2SLAM.h>
|
||||
#include <gtsam/nonlinear/LevenbergMarquardtOptimizer.h>
|
||||
#include <gtsam/nonlinear/Marginals.h>
|
||||
|
||||
#include <gtsam/base/Vector.h>
|
||||
#include <gtsam/base/Matrix.h>
|
||||
|
|
@ -74,12 +75,13 @@ int main(int argc, char** argv) {
|
|||
pose2SLAM::Values result = optimizer.optimize();
|
||||
result.print("final result");
|
||||
|
||||
// /* Get covariances */
|
||||
// Matrix covariance1 = optimizer_result.marginalCovariance(PoseKey(1));
|
||||
// Matrix covariance2 = optimizer_result.marginalCovariance(PoseKey(2));
|
||||
//
|
||||
// print(covariance1, "Covariance1");
|
||||
// print(covariance2, "Covariance2");
|
||||
/* Get covariances */
|
||||
Marginals marginals(graph, result, Marginals::CHOLESKY);
|
||||
Matrix covariance1 = marginals.marginalCovariance(PoseKey(1));
|
||||
Matrix covariance2 = marginals.marginalCovariance(PoseKey(2));
|
||||
|
||||
print(covariance1, "Covariance1");
|
||||
print(covariance2, "Covariance2");
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue