dcsam
Factored inference for discrete-continuous smoothing and mapping
testDCSAM.cpp File Reference

Unit tests for DCSAM. More...

#include <gtest/gtest.h>
#include <gtsam/base/Testable.h>
#include <gtsam/base/debug.h>
#include <gtsam/discrete/DiscreteFactor.h>
#include <gtsam/discrete/DiscreteMarginals.h>
#include <gtsam/geometry/Pose2.h>
#include <gtsam/inference/BayesNet-inst.h>
#include <gtsam/nonlinear/GaussNewtonOptimizer.h>
#include <gtsam/nonlinear/Symbol.h>
#include <gtsam/sam/BearingRangeFactor.h>
#include <gtsam/slam/BetweenFactor.h>
#include <gtsam/slam/PriorFactor.h>
#include <iomanip>
#include "dcsam/DCContinuousFactor.h"
#include "dcsam/DCDiscreteFactor.h"
#include "dcsam/DCEMFactor.h"
#include "dcsam/DCMaxMixtureFactor.h"
#include "dcsam/DCMixtureFactor.h"
#include "dcsam/DCSAM.h"
#include "dcsam/DiscretePriorFactor.h"
#include "dcsam/SemanticBearingRangeFactor.h"
#include "dcsam/SmartDiscretePriorFactor.h"
Include dependency graph for testDCSAM.cpp:

Functions

 TEST (TestSuite, discrete_prior_factor)
 
 TEST (TestSuite, smart_discrete_prior_factor)
 
 TEST (TestSuite, dcdiscrete_mixture)
 
 TEST (TestSuite, dccontinuous_mixture)
 
 TEST (TestSuite, simple_mixture_factor)
 
 TEST (TestSuite, simple_slam_batch)
 
 TEST (TestSuite, simple_slam_incremental)
 
 TEST (TestSuite, simple_discrete_dcsam)
 
 TEST (TestSuite, simple_semantic_slam)
 
 TEST (TestSuite, dcsam_initialization)
 
 TEST (TestSuite, bearing_range_semantic_slam)
 
 TEST (TestSuite, dcMaxMixture_semantic_slam)
 
 TEST (TestSuite, simple_dcemfactor)
 
 TEST (TestSuite, factor_duplicate)
 
int main (int argc, char **argv)
 

Variables

const double tol = 1e-7
 

Detailed Description

Unit tests for DCSAM.

Author
Kevin Doherty

Copyright 2021 The Ambitious Folks of the MRG

Function Documentation

◆ main()

int main ( int  argc,
char **  argv 
)

◆ TEST() [1/14]

TEST ( TestSuite  ,
bearing_range_semantic_slam   
)

This is a basic qualitative octagonal pose graph SLAM test modified to use bearing-range measurements on a semantic landmark to verify that DCSAM works on semantic bearing-range measurement SLAM examples in the incremental setting

◆ TEST() [2/14]

TEST ( TestSuite  ,
dccontinuous_mixture   
)

◆ TEST() [3/14]

TEST ( TestSuite  ,
dcdiscrete_mixture   
)

◆ TEST() [4/14]

TEST ( TestSuite  ,
dcMaxMixture_semantic_slam   
)

This is a basic qualitative octagonal pose graph SLAM test modified to use a mixture of semantic bearing-range measurements on two semantic landmarks to verify that DCSAM works for semantic max-mixtures.

◆ TEST() [5/14]

TEST ( TestSuite  ,
dcsam_initialization   
)

This unit test verifies that DCFactors added to a DCSAM instance which depend on previously solved variables have those variables correctly initialized.

The reason we EXPECT_EQ(true, true) is because this test will abort with a failed assertion allInitialized() == true in the DCFactor if it does not pass.

Noise models for measurements and priors

Now DCSAM should have an estimate of the continuous values based on the previous solve. We'll add a new DCFactor now which depends on x0 and l1, but does not explicitly initialize them again when the new factor is added.

◆ TEST() [6/14]

TEST ( TestSuite  ,
discrete_prior_factor   
)

◆ TEST() [7/14]

TEST ( TestSuite  ,
factor_duplicate   
)

This is for testing the behavior of duplicating discrete factors

◆ TEST() [8/14]

TEST ( TestSuite  ,
simple_dcemfactor   
)

◆ TEST() [9/14]

TEST ( TestSuite  ,
simple_discrete_dcsam   
)

This test is a sanity check that DCSAM works correctly for solely discrete problems

◆ TEST() [10/14]

TEST ( TestSuite  ,
simple_mixture_factor   
)

◆ TEST() [11/14]

TEST ( TestSuite  ,
simple_semantic_slam   
)

This is a basic qualitative octagonal pose graph SLAM test with two semantic landmarks to verify that DCSAM works on standard SLAM examples in the incremental setting

◆ TEST() [12/14]

TEST ( TestSuite  ,
simple_slam_batch   
)

This is a basic (qualitative) octagonal pose graph SLAM test to verify that DCSAM works on standard SLAM examples.

◆ TEST() [13/14]

TEST ( TestSuite  ,
simple_slam_incremental   
)

This is a basic qualitative octagonal pose graph SLAM test to verify that DCSAM works on standard SLAM examples in the incremental setting

◆ TEST() [14/14]

TEST ( TestSuite  ,
smart_discrete_prior_factor   
)

Variable Documentation

◆ tol

const double tol = 1e-7