Small savings of matrix-vector mult
parent
490520d6d0
commit
36bc1d3e3f
|
@ -139,14 +139,15 @@ void AHRSFactor::PreintegratedMeasurements::integrateMeasurement(
|
||||||
Vector3 AHRSFactor::PreintegratedMeasurements::predict(
|
Vector3 AHRSFactor::PreintegratedMeasurements::predict(
|
||||||
const imuBias::ConstantBias& bias, boost::optional<Matrix&> H) const {
|
const imuBias::ConstantBias& bias, boost::optional<Matrix&> H) const {
|
||||||
const Vector3 biasOmegaIncr = bias.gyroscope() - biasHat_.gyroscope();
|
const Vector3 biasOmegaIncr = bias.gyroscope() - biasHat_.gyroscope();
|
||||||
|
Vector3 delRdelBiasOmega_biasOmegaIncr = delRdelBiasOmega_ * biasOmegaIncr;
|
||||||
const Rot3 deltaRij_biascorrected = deltaRij_.retract(
|
const Rot3 deltaRij_biascorrected = deltaRij_.retract(
|
||||||
delRdelBiasOmega_ * biasOmegaIncr, Rot3::EXPMAP);
|
delRdelBiasOmega_biasOmegaIncr, Rot3::EXPMAP);
|
||||||
const Vector3 theta_biascorrected = Rot3::Logmap(deltaRij_biascorrected);
|
const Vector3 theta_biascorrected = Rot3::Logmap(deltaRij_biascorrected);
|
||||||
if (H) {
|
if (H) {
|
||||||
const Matrix3 Jrinv_theta_bc = //
|
const Matrix3 Jrinv_theta_bc = //
|
||||||
Rot3::rightJacobianExpMapSO3inverse(theta_biascorrected);
|
Rot3::rightJacobianExpMapSO3inverse(theta_biascorrected);
|
||||||
const Matrix3 Jr_JbiasOmegaIncr = //
|
const Matrix3 Jr_JbiasOmegaIncr = //
|
||||||
Rot3::rightJacobianExpMapSO3(delRdelBiasOmega_ * biasOmegaIncr);
|
Rot3::rightJacobianExpMapSO3(delRdelBiasOmega_biasOmegaIncr);
|
||||||
(*H) = Jrinv_theta_bc * Jr_JbiasOmegaIncr * delRdelBiasOmega_;
|
(*H) = Jrinv_theta_bc * Jr_JbiasOmegaIncr * delRdelBiasOmega_;
|
||||||
}
|
}
|
||||||
return theta_biascorrected;
|
return theta_biascorrected;
|
||||||
|
|
Loading…
Reference in New Issue