MCPcopy Create free account
hub / github.com/TUC-ProAut/libRSF / TEST

Function TEST

test/Test_Example_FG_Pseudorange.cpp:36–139  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

34#include "gtest/gtest.h"
35
36TEST(Example, FG_Pseudorange)
37{
38 double Time, TimeFirst = 0.0, TimeOld = 0.0;
39
40 libRSF::Vector1 StdDev, StdDevCCE;
41 StdDev << STDDEV_RANGE;
42 StdDevCCE << STDDEV_CCE;
43
44 ceres::Solver::Options SolverOptions;
45 SolverOptions.trust_region_strategy_type = ceres::TrustRegionStrategyType::DOGLEG;
46 SolverOptions.dogleg_type = ceres::DoglegType::SUBSPACE_DOGLEG;
47 SolverOptions.num_threads = std::thread::hardware_concurrency();
48 SolverOptions.minimizer_progress_to_stdout = true;
49
50 libRSF::FactorGraph SimpleGraph;
51 libRSF::SensorDataSet RangeMeasurements;
52 libRSF::StateList RangeList, ConstValList;
53 libRSF::GaussianDiagonal<1> NoiseModelRange, NoiseModelCCE;
54 NoiseModelRange.setStdDevDiagonal(StdDev);
55 NoiseModelCCE.setStdDevDiagonal(StdDevCCE);
56
57 /** construct a set of range Measurements */
58 CreateData(RangeMeasurements);
59
60 /** loop over timestamps */
61 RangeMeasurements.getTimeFirst(PSEUDORANGE_MEASUREMENT, TimeFirst);
62 Time = TimeFirst;
63 do
64 {
65 /** add position variables to graph */
66 SimpleGraph.addState(POSITION_STATE, libRSF::DataType::Point2, Time);
67
68 /** add offset variables to graph */
69 SimpleGraph.addState(OFFSET_STATE, libRSF::DataType::ClockError, Time);
70
71 RangeList.add(POSITION_STATE, Time);
72 RangeList.add(OFFSET_STATE, Time);
73
74 /** add constant value model*/
75 if (Time > TimeFirst)
76 {
77 ConstValList.add(OFFSET_STATE, TimeOld);
78 ConstValList.add(OFFSET_STATE, Time);
79 SimpleGraph.addFactor<libRSF::FactorType::ConstVal1>(ConstValList, NoiseModelCCE);
80 ConstValList.clear();
81 }
82
83 /** loop over measurements */
84 for (int nMeasurement = RangeMeasurements.countElement(PSEUDORANGE_MEASUREMENT, Time); nMeasurement > 0; nMeasurement--)
85 {
86 SimpleGraph.addFactor<libRSF::FactorType::Pseudorange2>(RangeList, RangeMeasurements.getElement(PSEUDORANGE_MEASUREMENT, Time, nMeasurement-1), NoiseModelRange);
87 }
88 RangeList.clear();
89
90 TimeOld = Time;
91 }
92 while(RangeMeasurements.getTimeNext(PSEUDORANGE_MEASUREMENT, Time, Time));
93

Callers

nothing calls this directly

Calls 15

DataClass · 0.85
MaxAbsErrorFunction · 0.85
addStateMethod · 0.80
addMethod · 0.80
countElementMethod · 0.80
getElementMethod · 0.80
getTimeNextMethod · 0.80
getNameValueStringMethod · 0.80
solveMethod · 0.80
printReportMethod · 0.80
computeCovarianceMethod · 0.80
CreateDataFunction · 0.50

Tested by

no test coverage detected