My Project 1.0
Holistic Fusion: A Generic Framework for Multimodal Sensor Fusion
Loading...
Searching...
No Matches
holistic_fusion::HolisticFusionHolistic Class Reference

#include <HolisticFusionHolistic.h>

Inheritance diagram for holistic_fusion::HolisticFusionHolistic:
Collaboration diagram for holistic_fusion::HolisticFusionHolistic:

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_

Detailed Description

Definition at line 22 of file HolisticFusionHolistic.h.

Constructor & Destructor Documentation

◆ HolisticFusionHolistic()

holistic_fusion::HolisticFusionHolistic::HolisticFusionHolistic ( )

Definition at line 32 of file HolisticFusionHolistic.cpp.

◆ ~HolisticFusionHolistic()

virtual holistic_fusion::HolisticFusionHolistic::~HolisticFusionHolistic ( )
virtualdefault

Member Function Documentation

◆ addUnaryBearing3LandmarkMeasurement()

void holistic_fusion::HolisticFusionHolistic::addUnaryBearing3LandmarkMeasurement ( UnaryMeasurementXDLandmark< Eigen::Vector3d, 3 > & S_bearing_S_L)
overridevirtual

Implements holistic_fusion::HolisticFusion.

Definition at line 282 of file HolisticFusionHolistic.cpp.

◆ addUnaryHeadingAbsoluteMeasurement()

void holistic_fusion::HolisticFusionHolistic::addUnaryHeadingAbsoluteMeasurement ( const UnaryMeasurementXDAbsolute< Eigen::Matrix3d, 1 > & R_M_S)

Definition at line 126 of file HolisticFusionHolistic.cpp.

◆ addUnaryPose3AbsoluteMeasurement()

void holistic_fusion::HolisticFusionHolistic::addUnaryPose3AbsoluteMeasurement ( const UnaryMeasurementXDAbsolute< Eigen::Isometry3d, 6 > & R_T_R_S,
const bool addToOnlineSmootherFlag = true )
overridevirtual

Unary Measurements / Absolute Measurements: In reference frame --> systematic drift.

Implements holistic_fusion::HolisticFusion.

Definition at line 52 of file HolisticFusionHolistic.cpp.

◆ addUnaryPosition3AbsoluteMeasurement()

void holistic_fusion::HolisticFusionHolistic::addUnaryPosition3AbsoluteMeasurement ( UnaryMeasurementXDAbsolute< Eigen::Vector3d, 3 > & R_t_R_S)
overridevirtual

Implements holistic_fusion::HolisticFusion.

Definition at line 88 of file HolisticFusionHolistic.cpp.

◆ addUnaryPosition3LandmarkMeasurement()

void holistic_fusion::HolisticFusionHolistic::addUnaryPosition3LandmarkMeasurement ( UnaryMeasurementXDLandmark< Eigen::Vector3d, 3 > & S_t_S_L,
const int landmarkCreationCounter )
overridevirtual

Landmark Measurements: No systematic drift.

Implements holistic_fusion::HolisticFusion.

Definition at line 244 of file HolisticFusionHolistic.cpp.

◆ addUnaryVelocity3AbsoluteMeasurement()

void holistic_fusion::HolisticFusionHolistic::addUnaryVelocity3AbsoluteMeasurement ( UnaryMeasurementXDAbsolute< Eigen::Vector3d, 3 > & R_v_R_S)
overridevirtual

Implements holistic_fusion::HolisticFusion.

Definition at line 168 of file HolisticFusionHolistic.cpp.

◆ addUnaryVelocity3LocalMeasurement()

void holistic_fusion::HolisticFusionHolistic::addUnaryVelocity3LocalMeasurement ( UnaryMeasurementXD< Eigen::Vector3d, 3 > & S_v_F_S)
overridevirtual

Implements holistic_fusion::HolisticFusion.

Definition at line 174 of file HolisticFusionHolistic.cpp.

◆ addUnaryVelocity3LocalMovingFrameMeasurement()

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.

◆ hasAlignmentKeyframeForMeasurementWithoutPosition_()

bool holistic_fusion::HolisticFusionHolistic::hasAlignmentKeyframeForMeasurementWithoutPosition_ ( const UnaryMeasurementAbsolute & measurement) const
private

Binary Measurements: Purely relative.

Definition at line 37 of file HolisticFusionHolistic.cpp.


The documentation for this class was generated from the following files: