Added non-default const. for AHRS pre-int. and params
parent
ec04369c88
commit
38e43ce0af
|
@ -55,6 +55,28 @@ class GTSAM_EXPORT PreintegratedAhrsMeasurements : public PreintegratedRotation
|
||||||
resetIntegration();
|
resetIntegration();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Non-Default constructor, initialize with measurements
|
||||||
|
* @param p: Parameters for AHRS pre-integration
|
||||||
|
* @param bias_hat: Current estimate of acceleration and rotation rate biases
|
||||||
|
* @param deltaTij: Delta time in pre-integration
|
||||||
|
* @param deltaRij: Delta rotation in pre-integration
|
||||||
|
* @param delRdelBiasOmega: Jacobian of rotation wrt. to gyro bias
|
||||||
|
* @param preint_meas_cov: Pre-integration covariance
|
||||||
|
*/
|
||||||
|
PreintegratedAhrsMeasurements(
|
||||||
|
const boost::shared_ptr<Params>& p,
|
||||||
|
const Vector3& bias_hat,
|
||||||
|
double deltaTij,
|
||||||
|
const Rot3& deltaRij,
|
||||||
|
const Matrix3& delRdelBiasOmega,
|
||||||
|
const Matrix3& preint_meas_cov) :
|
||||||
|
biasHat_(bias_hat),
|
||||||
|
PreintegratedRotation(p, deltaTij, deltaRij, delRdelBiasOmega),
|
||||||
|
preintMeasCov_(preint_meas_cov) {
|
||||||
|
p_->gyroscopeCovariance = p->getGyroscopeCovariance();
|
||||||
|
}
|
||||||
|
|
||||||
const Params& p() const { return *boost::static_pointer_cast<const Params>(p_);}
|
const Params& p() const { return *boost::static_pointer_cast<const Params>(p_);}
|
||||||
const Vector3& biasHat() const { return biasHat_; }
|
const Vector3& biasHat() const { return biasHat_; }
|
||||||
const Matrix3& preintMeasCov() const { return preintMeasCov_; }
|
const Matrix3& preintMeasCov() const { return preintMeasCov_; }
|
||||||
|
|
|
@ -35,6 +35,13 @@ struct GTSAM_EXPORT PreintegratedRotationParams {
|
||||||
|
|
||||||
PreintegratedRotationParams() : gyroscopeCovariance(I_3x3) {}
|
PreintegratedRotationParams() : gyroscopeCovariance(I_3x3) {}
|
||||||
|
|
||||||
|
PreintegratedRotationParams(Matrix3 gyroscope_covariance,
|
||||||
|
boost::optional<Vector3> omega_coriolis)
|
||||||
|
: gyroscopeCovariance(gyroscope_covariance) {
|
||||||
|
if (omega_coriolis)
|
||||||
|
omegaCoriolis.reset(omega_coriolis.get());
|
||||||
|
}
|
||||||
|
|
||||||
virtual ~PreintegratedRotationParams() {}
|
virtual ~PreintegratedRotationParams() {}
|
||||||
|
|
||||||
virtual void print(const std::string& s) const;
|
virtual void print(const std::string& s) const;
|
||||||
|
|
|
@ -119,6 +119,35 @@ TEST( AHRSFactor, PreintegratedMeasurements ) {
|
||||||
DOUBLES_EQUAL(expectedDeltaT2, actual2.deltaTij(), 1e-6);
|
DOUBLES_EQUAL(expectedDeltaT2, actual2.deltaTij(), 1e-6);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//******************************************************************************
|
||||||
|
TEST( AHRSFactor, PreintegratedAhrsMeasurementsConstructor ) {
|
||||||
|
// Linearization point
|
||||||
|
Matrix3 gyroscopeCovariance = Matrix3::Ones()*0.4;
|
||||||
|
Vector3 omegaCoriolis(0.1, 0.5, 0.9);
|
||||||
|
PreintegratedRotationParams params(gyroscopeCovariance, omegaCoriolis);
|
||||||
|
Vector3 bias(1.0,2.0,3.0); ///< Current estimate of angular rate bias
|
||||||
|
Rot3 deltaRij(Rot3::RzRyRx(M_PI / 12.0, M_PI / 6.0, M_PI / 4.0));
|
||||||
|
double deltaTij = 0.02;
|
||||||
|
Matrix3 delRdelBiasOmega = Matrix3::Ones()*0.5;
|
||||||
|
Matrix3 preintMeasCov = Matrix3::Ones()*0.2;
|
||||||
|
gtsam::PreintegratedAhrsMeasurements test_pim(
|
||||||
|
boost::make_shared<gtsam::PreintegratedRotationParams>(params),
|
||||||
|
bias,
|
||||||
|
deltaTij,
|
||||||
|
deltaRij,
|
||||||
|
delRdelBiasOmega,
|
||||||
|
preintMeasCov);
|
||||||
|
EXPECT(assert_equal(gyroscopeCovariance,
|
||||||
|
test_pim.p().getGyroscopeCovariance(), 1e-6));
|
||||||
|
EXPECT(assert_equal(omegaCoriolis,
|
||||||
|
test_pim.p().getOmegaCoriolis().get(), 1e-6));
|
||||||
|
EXPECT(assert_equal(bias, test_pim.biasHat(), 1e-6));
|
||||||
|
DOUBLES_EQUAL(deltaTij, test_pim.deltaTij(), 1e-6);
|
||||||
|
EXPECT(assert_equal(deltaRij, Rot3(test_pim.deltaRij()), 1e-6));
|
||||||
|
EXPECT(assert_equal(delRdelBiasOmega, test_pim.delRdelBiasOmega(), 1e-6));
|
||||||
|
EXPECT(assert_equal(preintMeasCov, test_pim.preintMeasCov(), 1e-6));
|
||||||
|
}
|
||||||
|
|
||||||
/* ************************************************************************* */
|
/* ************************************************************************* */
|
||||||
TEST(AHRSFactor, Error) {
|
TEST(AHRSFactor, Error) {
|
||||||
// Linearization point
|
// Linearization point
|
||||||
|
|
Loading…
Reference in New Issue