30 #ifndef __UUV_IMU_ROS_PLUGIN_HH__ 31 #define __UUV_IMU_ROS_PLUGIN_HH__ 33 #include <gazebo/gazebo.hh> 36 #include <sensor_msgs/Imu.h> 37 #include "SensorImu.pb.h" 40 #define K_DEFAULT_ADIS_GYROSCOPE_NOISE_DENSITY 2.0 * 35.0 / 3600.0 / 180.0 * M_PI 41 #define K_DEFAULT_ADIS_GYROSCOPE_RANDOM_WALK 2.0 * 4.0 / 3600.0 / 180.0 * M_PI 42 #define K_DEFAULT_ADIS_GYROSCOPE_BIAS_CORRELATION_TIME 1.0e+3 43 #define K_DEFAULT_ADIS_GYROSCOPE_TURN_ON_BIAS_SIGMA 0.5 / 180.0 * M_PI 44 #define K_DEFAULT_ADIS_ACCELEROMETER_NOISE_DENSITY 2.0 * 2.0e-3 45 #define K_DEFAULT_ADIS_ACCELEROMETER_RANDOM_WALK 2.0 * 3.0e-3 46 #define K_DEFAULT_ADIS_ACCELEROMETER_BIAS_CORRELATION_TIME 300.0 47 #define K_DEFAULT_ADIS_ACCELEROMETER_TURN_ON_BIAS_SIGMA 20.0e-3 * 9.8 48 #define K_DEFAULT_ORIENTATION_NOISE 0.5 85 : gyroscopeNoiseDensity(
89 gyroscopeBiasCorrelationTime(
91 gyroscopeTurnOnBiasSigma(
93 accelerometerNoiseDensity(
95 accelerometerRandomWalk(
97 accelerometerBiasCorrelationTime(
99 accelerometerTurnOnBiasSigma(
115 public:
virtual void Load(physics::ModelPtr _model, sdf::ElementPtr _sdf);
118 protected:
virtual bool OnUpdate(
const common::UpdateInfo& _info);
121 protected:
void AddNoise(ignition::math::Vector3d& _linAcc,
122 ignition::math::Vector3d& _angVel,
123 ignition::math::Quaterniond& _orientation,
158 #endif // __UUV_IMU_ROS_PLUGIN_HH__ IMUParameters()
Constructor.
IMUParameters imuParameters
IMU model parameters.
#define K_DEFAULT_ADIS_ACCELEROMETER_RANDOM_WALK
double orientationNoise
Standard deviation of orientation noise per axis [rad].
double accelerometerNoiseDensity
Accelerometer noise density (two-sided spectrum) [m/s^2/sqrt(Hz)].
double gyroscopeBiasCorrelationTime
Gyroscope bias correlation time constant [s].
ignition::math::Vector3d gravityWorld
Gravity vector wrt. reference frame.
#define K_DEFAULT_ADIS_ACCELEROMETER_NOISE_DENSITY
double accelerometerTurnOnBiasSigma
Accelerometer turn on bias standard deviation [m/s^2].
#define K_DEFAULT_ADIS_ACCELEROMETER_TURN_ON_BIAS_SIGMA
double gyroscopeNoiseDensity
Gyroscope noise density (two-sided spectrum) [rad/s/sqrt(Hz)].
IMUParameters stores all IMU model parameters. A description of these parameters can be found here: h...
#define K_DEFAULT_ADIS_GYROSCOPE_NOISE_DENSITY
#define K_DEFAULT_ADIS_GYROSCOPE_BIAS_CORRELATION_TIME
#define K_DEFAULT_ADIS_GYROSCOPE_RANDOM_WALK
ignition::math::Quaterniond measOrientation
(Simulation) time when the last sensor measurement was generated.
double gyroscopeTurnOnBiasSigma
Gyroscope turn on bias standard deviation [rad/s].
ignition::math::Vector3d gyroscopeBias
Current (drifting) gyroscope bias.
ignition::math::Vector3d measLinearAcc
Last measurement of linear acceleration..
double gyroscopeRandomWalk
Gyroscope bias random walk [rad/s/s/sqrt(Hz)].
ignition::math::Vector3d measAngularVel
Last measurement of angular velocity.
#define K_DEFAULT_ADIS_ACCELEROMETER_BIAS_CORRELATION_TIME
ignition::math::Vector3d gyroscopeTurnOnBias
Constant turn-on gyroscope bias.
#define K_DEFAULT_ORIENTATION_NOISE
#define K_DEFAULT_ADIS_GYROSCOPE_TURN_ON_BIAS_SIGMA
ignition::math::Vector3d accelerometerTurnOnBias
Constant turn-on accelerometer bias.
double accelerometerRandomWalk
Accelerometer bias random walk. [m/s^2/s/sqrt(Hz)].
ignition::math::Vector3d accelerometerBias
Current (drifting) accelerometer bias.
sensor_msgs::Imu imuROSMessage
ROS IMU message.
double accelerometerBiasCorrelationTime
Accelerometer bias correlation time constant [s].