|
My Project 1.0
Holistic Fusion: A Generic Framework for Multimodal Sensor Fusion
|
#include <HolisticFusionHolistic.h>


Public Member Functions | |
| HolisticFusionHolistic () | |
| virtual | ~HolisticFusionHolistic ()=default |
| void | addUnaryPose3AbsoluteMeasurement (const UnaryMeasurementXDAbsolute< Eigen::Isometry3d, 6 > &R_T_R_S, const bool addToOnlineSmootherFlag=true) override |
| Unary Measurements / Absolute Measurements: In reference frame --> systematic drift. | |
| void | addUnaryPosition3AbsoluteMeasurement (UnaryMeasurementXDAbsolute< Eigen::Vector3d, 3 > &R_t_R_S) override |
| void | addUnaryHeadingAbsoluteMeasurement (const UnaryMeasurementXDAbsolute< Eigen::Matrix3d, 1 > &R_M_S) |
| void | addUnaryVelocity3AbsoluteMeasurement (UnaryMeasurementXDAbsolute< Eigen::Vector3d, 3 > &R_v_R_S) override |
| void | addUnaryVelocity3LocalMeasurement (UnaryMeasurementXD< Eigen::Vector3d, 3 > &S_v_F_S) override |
| void | addUnaryVelocity3LocalMovingFrameMeasurement (UnaryMeasurementXD< Eigen::Vector3d, 3 > &S_v_F_S, const Eigen::Isometry3d &T_I_sensorFrame, const Eigen::Vector3d &I_w_W_I) |
| void | addUnaryPosition3LandmarkMeasurement (UnaryMeasurementXDLandmark< Eigen::Vector3d, 3 > &S_t_S_L, const int landmarkCreationCounter) override |
| Landmark Measurements: No systematic drift. | |
| void | addUnaryBearing3LandmarkMeasurement (UnaryMeasurementXDLandmark< Eigen::Vector3d, 3 > &S_bearing_S_L) override |
| Public Member Functions inherited from holistic_fusion::HolisticFusion | |
| HolisticFusion () | |
| Constructor --------—. | |
| virtual | ~HolisticFusion () |
| Destructor --------—. | |
| void | setup (const std::shared_ptr< GraphConfig > graphConfigPtr, const std::shared_ptr< StaticTransforms > staticTransformsPtr) |
| bool | initYawAndPositionInWorld (const double yaw_W_frame1, const Eigen::Vector3d &W_t_W_frame2, const std::string &frame1, const std::string &frame2) |
| bool | initYawAndPosition (const UnaryMeasurementXD< Eigen::Isometry3d, 6 > &unary6DMeasurement) |
| bool | initWorldFrameToFixedFrameTransform (const Eigen::Isometry3d &T_W_F, const std::string &fixedFrame) |
| bool | optimizeSlowBatchSmoother (int maxIterations, const std::string &savePath, const bool saveCovarianceFlag) |
| std::optional< BatchOptimizationResult > | optimizeSlowBatchSmoother (int maxIterations, const bool computePoseCovarianceFlag) |
| bool | logRealTimeNavStates (const std::string &savePath) |
| bool | areYawAndPositionInited () const |
| bool | areRollAndPitchInited () const |
| bool | isGraphInited () const |
| bool | getNormalOperationFlag () const |
| bool | addCoreImuMeasurementAndGetState (const Eigen::Vector3d &linearAcc, const Eigen::Vector3d &angularVel, const double imuTimeK, std::shared_ptr< SafeIntegratedNavState > &returnPreIntegratedNavStatePtr, std::shared_ptr< SafeNavStateWithCovarianceAndBias > &returnOptimizedStateWithCovarianceAndBiasPtr, Eigen::Matrix< double, 6, 1 > &returnAddedImuMeasurements) |
| Main: IMU --------------------—. | |
| virtual void | addUnaryRollAbsoluteMeasurement (const UnaryMeasurementXDAbsolute< double, 1 > &roll_R_S)=0 |
| virtual void | addUnaryPitchAbsoluteMeasurement (const UnaryMeasurementXDAbsolute< double, 1 > &pitch_R_S)=0 |
| virtual void | addUnaryYawAbsoluteMeasurement (const UnaryMeasurementXDAbsolute< double, 1 > &yaw_R_S)=0 |
| virtual void | addBinaryPose3Measurement (const BinaryMeasurementXD< Eigen::Isometry3d, 6 > &delta)=0 |
| Binary Measurements. | |
| bool | addZeroMotionFactor (double timeKm1, double timeK, double noiseDensity) |
| bool | addZeroVelocityFactor (double timeK, double noiseDensity) |
Private Member Functions | |
| bool | hasAlignmentKeyframeForMeasurementWithoutPosition_ (const UnaryMeasurementAbsolute &measurement) const |
| Binary Measurements: Purely relative. | |
Additional Inherited Members | |
| Protected Member Functions inherited from holistic_fusion::HolisticFusion | |
| template<int DIM> | |
| bool | isCovarianceViolated_ (const Eigen::Matrix< double, DIM, 1 > &covariance, const double covarianceViolationThreshold) |
| Convenience functions. | |
| void | pretendFirstMeasurementReceived () |
| bool | checkAndPrintCovarianceViolation_ (const std::string &measurementName, const bool violatedFlag) |
| Protected Attributes inherited from holistic_fusion::HolisticFusion | |
| std::shared_ptr< GraphConfig > | graphConfigPtr_ = nullptr |
| std::shared_ptr< StaticTransforms > | staticTransformsPtr_ = nullptr |
| std::shared_ptr< GraphManager > | graphMgrPtr_ = nullptr |
| std::shared_ptr< holistic_fusion::ImuBuffer > | coreImuBufferPtr_ |
| std::mutex | optimizeGraphMutex_ |
| bool | alignedImuFlag_ = false |
| Flags / Initialization. | |
| bool | foundInitialYawAndPositionFlag_ = false |
| bool | initedGraphFlag_ = false |
| bool | validFirstMeasurementReceivedFlag_ = false |
| bool | optimizeGraphFlag_ = false |
| bool | normalOperationFlag_ = false |
| long | imuCallbackCounter_ = 0 |
| std::unordered_set< std::string > | measurementsWithViolatedCovariance_ |
Definition at line 22 of file HolisticFusionHolistic.h.
| holistic_fusion::HolisticFusionHolistic::HolisticFusionHolistic | ( | ) |
Definition at line 32 of file HolisticFusionHolistic.cpp.
|
virtualdefault |
|
overridevirtual |
Implements holistic_fusion::HolisticFusion.
Definition at line 282 of file HolisticFusionHolistic.cpp.
| void holistic_fusion::HolisticFusionHolistic::addUnaryHeadingAbsoluteMeasurement | ( | const UnaryMeasurementXDAbsolute< Eigen::Matrix3d, 1 > & | R_M_S | ) |
Definition at line 126 of file HolisticFusionHolistic.cpp.
|
overridevirtual |
Unary Measurements / Absolute Measurements: In reference frame --> systematic drift.
Implements holistic_fusion::HolisticFusion.
Definition at line 52 of file HolisticFusionHolistic.cpp.
|
overridevirtual |
Implements holistic_fusion::HolisticFusion.
Definition at line 88 of file HolisticFusionHolistic.cpp.
|
overridevirtual |
Landmark Measurements: No systematic drift.
Implements holistic_fusion::HolisticFusion.
Definition at line 244 of file HolisticFusionHolistic.cpp.
|
overridevirtual |
Implements holistic_fusion::HolisticFusion.
Definition at line 168 of file HolisticFusionHolistic.cpp.
|
overridevirtual |
Implements holistic_fusion::HolisticFusion.
Definition at line 174 of file HolisticFusionHolistic.cpp.
| void holistic_fusion::HolisticFusionHolistic::addUnaryVelocity3LocalMovingFrameMeasurement | ( | UnaryMeasurementXD< Eigen::Vector3d, 3 > & | S_v_F_S, |
| const Eigen::Isometry3d & | T_I_sensorFrame, | ||
| const Eigen::Vector3d & | I_w_W_I ) |
Definition at line 208 of file HolisticFusionHolistic.cpp.
|
private |
Binary Measurements: Purely relative.
Definition at line 37 of file HolisticFusionHolistic.cpp.