Add prior and sanitize printing
parent
be5d30c57a
commit
c60d257e80
|
@ -29,18 +29,16 @@ int main(int argc, char *argv[]) {
|
|||
cout << "Loading data..." << endl;
|
||||
|
||||
string datasetFile = findExampleDataFile("w10000");
|
||||
std::pair<NonlinearFactorGraph::shared_ptr, Values::shared_ptr> data =
|
||||
load2D(datasetFile);
|
||||
|
||||
NonlinearFactorGraph graph = *data.first;
|
||||
Values initial = *data.second;
|
||||
auto [graph, initial] = load2D(datasetFile);
|
||||
graph->addPrior(0, initial->at<Pose2>(0), noiseModel::Unit::Create(3));
|
||||
|
||||
cout << "Optimizing..." << endl;
|
||||
|
||||
gttic_(Create_optimizer);
|
||||
LevenbergMarquardtOptimizer optimizer(graph, initial);
|
||||
LevenbergMarquardtOptimizer optimizer(*graph, *initial);
|
||||
gttoc_(Create_optimizer);
|
||||
tictoc_print_();
|
||||
tictoc_reset_();
|
||||
double lastError = optimizer.error();
|
||||
do {
|
||||
gttic_(Iterate_optimizer);
|
||||
|
@ -53,19 +51,19 @@ int main(int argc, char *argv[]) {
|
|||
} while(!checkConvergence(optimizer.params().relativeErrorTol,
|
||||
optimizer.params().absoluteErrorTol, optimizer.params().errorTol,
|
||||
lastError, optimizer.error(), optimizer.params().verbosity));
|
||||
tictoc_reset_();
|
||||
|
||||
// Compute marginals
|
||||
Marginals marginals(graph, optimizer.values());
|
||||
int i=0;
|
||||
for(Key key: initial.keys()) {
|
||||
gttic_(ConstructMarginals);
|
||||
Marginals marginals(*graph, optimizer.values());
|
||||
gttoc_(ConstructMarginals);
|
||||
for(Key key: initial->keys()) {
|
||||
gttic_(marginalInformation);
|
||||
Matrix info = marginals.marginalInformation(key);
|
||||
gttoc_(marginalInformation);
|
||||
tictoc_finishedIteration_();
|
||||
if(i % 1000 == 0)
|
||||
tictoc_print_();
|
||||
++i;
|
||||
}
|
||||
tictoc_print_();
|
||||
|
||||
} catch(std::exception& e) {
|
||||
cout << e.what() << endl;
|
||||
|
|
Loading…
Reference in New Issue