Use built in Matrix serialization

release/4.3a0
Varun Agrawal 2020-07-09 23:11:20 -04:00
parent 23e2b29dbe
commit 904ecf4f1f
6 changed files with 18 additions and 24 deletions

View File

@ -63,11 +63,10 @@ struct GTSAM_EXPORT PreintegrationCombinedParams : PreintegrationParams {
Matrix3 biasOmegaCovariance; ///< continuous-time "Covariance" describing gyroscope bias random walk Matrix3 biasOmegaCovariance; ///< continuous-time "Covariance" describing gyroscope bias random walk
Matrix6 biasAccOmegaInt; ///< covariance of bias used for pre-integration Matrix6 biasAccOmegaInt; ///< covariance of bias used for pre-integration
/// Default constructor makes unitialized params struct. /// Default constructor makes uninitialized params struct.
/// Used for serialization. /// Used for serialization.
PreintegrationCombinedParams() PreintegrationCombinedParams()
: PreintegrationParams(), : biasAccCovariance(I_3x3),
biasAccCovariance(I_3x3),
biasOmegaCovariance(I_3x3), biasOmegaCovariance(I_3x3),
biasAccOmegaInt(I_6x6) {} biasAccOmegaInt(I_6x6) {}
@ -107,12 +106,9 @@ private:
void serialize(ARCHIVE& ar, const unsigned int /*version*/) { void serialize(ARCHIVE& ar, const unsigned int /*version*/) {
namespace bs = ::boost::serialization; namespace bs = ::boost::serialization;
ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(PreintegrationParams); ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(PreintegrationParams);
ar & bs::make_nvp("biasAccCovariance", ar & BOOST_SERIALIZATION_NVP(biasAccCovariance);
bs::make_array(biasAccCovariance.data(), biasAccCovariance.size())); ar & BOOST_SERIALIZATION_NVP(biasOmegaCovariance);
ar & bs::make_nvp("biasOmegaCovariance", ar & BOOST_SERIALIZATION_NVP(biasAccOmegaInt);
bs::make_array(biasOmegaCovariance.data(), biasOmegaCovariance.size()));
ar & bs::make_nvp("biasAccOmegaInt", bs::make_array(biasAccOmegaInt.data(),
biasAccOmegaInt.size()));
} }
public: public:
@ -242,8 +238,7 @@ public:
void serialize(ARCHIVE& ar, const unsigned int /*version*/) { void serialize(ARCHIVE& ar, const unsigned int /*version*/) {
namespace bs = ::boost::serialization; namespace bs = ::boost::serialization;
ar& BOOST_SERIALIZATION_BASE_OBJECT_NVP(PreintegrationType); ar& BOOST_SERIALIZATION_BASE_OBJECT_NVP(PreintegrationType);
ar& bs::make_nvp("preintMeasCov_", bs::make_array(preintMeasCov_.data(), ar& BOOST_SERIALIZATION_NVP(preintMeasCov_);
preintMeasCov_.size()));
} }
public: public:
@ -391,4 +386,3 @@ struct traits<CombinedImuFactor> : public Testable<CombinedImuFactor> {};
/// Add Boost serialization export for derived class /// Add Boost serialization export for derived class
BOOST_CLASS_EXPORT_GUID(gtsam::PreintegrationCombinedParams, "gtsam_PreintegrationCombinedParams"); BOOST_CLASS_EXPORT_GUID(gtsam::PreintegrationCombinedParams, "gtsam_PreintegrationCombinedParams");
// BOOST_CLASS_EXPORT_GUID(gtsam::CombinedImuFactor, "gtsam_CombinedImuFactor");

View File

@ -164,7 +164,7 @@ private:
void serialize(ARCHIVE & ar, const unsigned int /*version*/) { void serialize(ARCHIVE & ar, const unsigned int /*version*/) {
namespace bs = ::boost::serialization; namespace bs = ::boost::serialization;
ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(PreintegrationType); ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(PreintegrationType);
ar & bs::make_nvp("preintMeasCov_", bs::make_array(preintMeasCov_.data(), preintMeasCov_.size())); ar & BOOST_SERIALIZATION_NVP(preintMeasCov_);
} }
}; };

View File

@ -120,11 +120,11 @@ private:
namespace bs = ::boost::serialization; namespace bs = ::boost::serialization;
ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(PreintegrationBase); ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(PreintegrationBase);
ar & BOOST_SERIALIZATION_NVP(deltaXij_); ar & BOOST_SERIALIZATION_NVP(deltaXij_);
ar & bs::make_nvp("delRdelBiasOmega_", bs::make_array(delRdelBiasOmega_.data(), delRdelBiasOmega_.size())); ar & BOOST_SERIALIZATION_NVP(delRdelBiasOmega_);
ar & bs::make_nvp("delPdelBiasAcc_", bs::make_array(delPdelBiasAcc_.data(), delPdelBiasAcc_.size())); ar & BOOST_SERIALIZATION_NVP(delPdelBiasAcc_);
ar & bs::make_nvp("delPdelBiasOmega_", bs::make_array(delPdelBiasOmega_.data(), delPdelBiasOmega_.size())); ar & BOOST_SERIALIZATION_NVP(delPdelBiasOmega_);
ar & bs::make_nvp("delVdelBiasAcc_", bs::make_array(delVdelBiasAcc_.data(), delVdelBiasAcc_.size())); ar & BOOST_SERIALIZATION_NVP(delVdelBiasAcc_);
ar & bs::make_nvp("delVdelBiasOmega_", bs::make_array(delVdelBiasOmega_.data(), delVdelBiasOmega_.size())); ar & BOOST_SERIALIZATION_NVP(delVdelBiasOmega_);
} }
}; };

View File

@ -61,7 +61,7 @@ struct GTSAM_EXPORT PreintegratedRotationParams {
template<class ARCHIVE> template<class ARCHIVE>
void serialize(ARCHIVE & ar, const unsigned int /*version*/) { void serialize(ARCHIVE & ar, const unsigned int /*version*/) {
namespace bs = ::boost::serialization; namespace bs = ::boost::serialization;
ar & bs::make_nvp("gyroscopeCovariance", bs::make_array(gyroscopeCovariance.data(), gyroscopeCovariance.size())); ar & BOOST_SERIALIZATION_NVP(gyroscopeCovariance);
ar & BOOST_SERIALIZATION_NVP(omegaCoriolis); ar & BOOST_SERIALIZATION_NVP(omegaCoriolis);
ar & BOOST_SERIALIZATION_NVP(body_P_sensor); ar & BOOST_SERIALIZATION_NVP(body_P_sensor);
} }

View File

@ -76,8 +76,8 @@ protected:
void serialize(ARCHIVE & ar, const unsigned int /*version*/) { void serialize(ARCHIVE & ar, const unsigned int /*version*/) {
namespace bs = ::boost::serialization; namespace bs = ::boost::serialization;
ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(PreintegratedRotationParams); ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(PreintegratedRotationParams);
ar & bs::make_nvp("accelerometerCovariance", bs::make_array(accelerometerCovariance.data(), accelerometerCovariance.size())); ar & BOOST_SERIALIZATION_NVP(accelerometerCovariance);
ar & bs::make_nvp("integrationCovariance", bs::make_array(integrationCovariance.data(), integrationCovariance.size())); ar & BOOST_SERIALIZATION_NVP(integrationCovariance);
ar & BOOST_SERIALIZATION_NVP(use2ndOrderCoriolis); ar & BOOST_SERIALIZATION_NVP(use2ndOrderCoriolis);
ar & BOOST_SERIALIZATION_NVP(n_gravity); ar & BOOST_SERIALIZATION_NVP(n_gravity);
} }

View File

@ -133,9 +133,9 @@ private:
void serialize(ARCHIVE & ar, const unsigned int /*version*/) { void serialize(ARCHIVE & ar, const unsigned int /*version*/) {
namespace bs = ::boost::serialization; namespace bs = ::boost::serialization;
ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(PreintegrationBase); ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(PreintegrationBase);
ar & bs::make_nvp("preintegrated_", bs::make_array(preintegrated_.data(), preintegrated_.size())); ar & BOOST_SERIALIZATION_NVP(preintegrated_);
ar & bs::make_nvp("preintegrated_H_biasAcc_", bs::make_array(preintegrated_H_biasAcc_.data(), preintegrated_H_biasAcc_.size())); ar & BOOST_SERIALIZATION_NVP(preintegrated_H_biasAcc_);
ar & bs::make_nvp("preintegrated_H_biasOmega_", bs::make_array(preintegrated_H_biasOmega_.data(), preintegrated_H_biasOmega_.size())); ar & BOOST_SERIALIZATION_NVP(preintegrated_H_biasOmega_);
} }
public: public: