8 #ifndef INERTIALMEASUREMENTSIM_H 9 #define INERTIALMEASUREMENTSIM_H 11 #include <Eigen/Dense> 12 #include <Eigen/Geometry> 23 double accBiasProcessNoiseAutoCorrelation,
double gyroBiasProcessNoiseAutoCorrelation);
25 void setBias(
const Eigen::Vector3d & accBias,
const Eigen::Vector3d & gyroBias,
26 double accBiasProcessNoiseAutoCorrelation,
27 double gyroBiasProcessNoiseAutoCorrelation);
28 void setBias(
double accBiasVariance,
double gyroBiasVariance,
29 double accBiasProcessNoiseAutoCorrelation,
30 double gyroBiasProcessNoiseAutoCorrelation);
32 void setBias(
double accBiasVariance,
double gyroBiasVariance);
34 void setNoiseVariance(
double accMeasNoiseVariance,
double gyroMeasNoiseVariance);
38 void getMeasurement(Eigen::Vector3d & accOutput, Eigen::Vector3d & gyroOutput,
39 const Eigen::Vector3d specificForce,
const Eigen::Vector3d angularVelocity);
64 Eigen::Vector3d
accBias_ = Eigen::Vector3d::Zero();
65 Eigen::Vector3d
gyroBias_ = Eigen::Vector3d::Zero();
70 Eigen::Quaterniond
imuOrient_ = Eigen::Quaterniond::Identity();
74 #endif // INERTIALMEASUREMENTSIM_H std::default_random_engine randomNumberGenerator_
Eigen::Vector3d gyroBias_
inertialMeasurementSim(double accMeasNoiseVariance, double gyroMeasNoiseVariance, double accBiasProcessNoiseAutoCorrelation, double gyroBiasProcessNoiseAutoCorrelation)
Construct a new IMU Sim object.
void setOrientation(const Eigen::Quaterniond &imuOrient)
Set IMU orientation with regard to body-frame.
void proceedBiasDynamics(double dt_secs)
Proceed accelerometer and gyroscope bias dynamics.
double gyroMeasNoiseVariance_
Inertial measurement unit (IMU) simulator class.
double gyroBiasProcessNoiseAutoCorrelation_
void setBias(const Eigen::Vector3d &accBias, const Eigen::Vector3d &gyroBias, double accBiasProcessNoiseAutoCorrelation, double gyroBiasProcessNoiseAutoCorrelation)
Set bias properties.
double accBiasProcessNoiseAutoCorrelation_
std::normal_distribution< double > standardNormalDistribution_
void setNoiseVariance(double accMeasNoiseVariance, double gyroMeasNoiseVariance)
Set additive noise variances.
Eigen::Quaterniond imuOrient_
double accMeasNoiseVariance_
void getMeasurement(Eigen::Vector3d &accOutput, Eigen::Vector3d &gyroOutput, const Eigen::Vector3d specificForce, const Eigen::Vector3d angularVelocity)
Get IMU measurement.