1 #ifndef IMUMODEL_IMUMODEL_HPP__ 2 #define IMUMODEL_IMUMODEL_HPP__ 4 #include <base/Eigen.hpp> 5 #include <base/samples/IMUSensors.hpp> 6 #include <boost/random.hpp> 50 Dacc( base::Matrix3d::Zero() ),
51 Dgyro( base::Matrix3d::Zero() ),
52 accrw( base::Vector3d::Zero() ),
53 accrrw( base::Vector3d::Zero() ),
54 accbias( base::Vector3d::Zero() ),
55 abeta( base::Vector3d::Zero() ),
56 gyrorw( base::Vector3d::Zero() ),
57 gyrorrw( base::Vector3d::Zero() ),
58 gyrobias( base::Vector3d::Zero() ),
59 gbeta( base::Vector3d::Zero() )
66 static const int NUMAXIS = 3;
71 void addNoise( base::samples::IMUSensors &imu_sample );
76 base::Vector3d getGyroError()
const;
105 Eigen::Matrix <double,NUMAXIS,1> acc,
gyros;
110 double GetNormalDistri(
double mean,
double sigma);
118 base::Transform3d orientationError;
130 config.
gyrobias = base::Vector3d::UnitZ() * bias;
131 config.gyrorw = base::Vector3d::UnitZ() * rw;
132 config.gyrorrw = base::Vector3d::UnitZ() * rrw;
141 orientationError = base::Transform3d::Identity();
148 orientationError = Eigen::AngleAxisd( error.z(), Eigen::Vector3d::UnitZ() ) *
154 return orientationError;
Configuration()
Definition: ImuError.hpp:47
Eigen::Matrix< double, NUMAXIS, NUMAXIS > Dgyro
Definition: ImuError.hpp:106
base::Vector2d xay
Definition: ImuError.hpp:82
Definition: ImuError.hpp:63
base::Matrix2d Agx
Definition: ImuError.hpp:97
base::Vector3d accrw
Definition: ImuError.hpp:25
base::Matrix2d Aaz
Definition: ImuError.hpp:89
void setZGyroProperties(double bias, double rw, double rrw)
Definition: ImuError.hpp:127
base::Vector2d xgz
Definition: ImuError.hpp:95
base::Vector2d Ggz
Definition: ImuError.hpp:102
void step()
Definition: ImuError.hpp:144
base::Transform3d getErrorTransform()
Definition: ImuError.hpp:152
base::Vector2d Gaz
Definition: ImuError.hpp:90
base::Matrix3d Dacc
Definition: ImuError.hpp:20
Definition: ImuError.hpp:116
base::Vector3d accrrw
Definition: ImuError.hpp:27
base::Vector3d getGyroError() const
Definition: ImuError.cpp:142
base::Vector3d gyrorw
Definition: ImuError.hpp:36
Definition: ImuError.hpp:8
base::Vector3d abeta
Definition: ImuError.hpp:33
base::Vector2d Hg
Definition: ImuError.hpp:103
base::Vector2d xaz
Definition: ImuError.hpp:83
boost::mt19937 RandomGenerator
Definition: ImuError.hpp:108
void step()
Definition: ImuError.cpp:103
base::Vector3d gyrobias
Definition: ImuError.hpp:40
base::Vector3d gyrorrw
Definition: ImuError.hpp:38
base::Matrix2d Agz
Definition: ImuError.hpp:101
double dt
Definition: ImuError.hpp:17
Eigen::Matrix< double, NUMAXIS, 1 > gyros
Definition: ImuError.hpp:105
base::Vector2d xax
Definition: ImuError.hpp:81
base::Matrix2d Agy
Definition: ImuError.hpp:99
void init()
Definition: ImuError.cpp:5
int seed
Definition: ImuError.hpp:15
base::Matrix2d Aay
Definition: ImuError.hpp:87
base::Vector2d Ha
Definition: ImuError.hpp:91
base::Vector3d accbias
Definition: ImuError.hpp:29
AhrsError()
Definition: ImuError.hpp:122
RandomGenerator rng
Definition: ImuError.hpp:109
base::Matrix3d Dgyro
Definition: ImuError.hpp:22
const Configuration & getConfiguration() const
Definition: ImuError.cpp:177
base::Matrix2d Aax
Definition: ImuError.hpp:85
Definition: ImuError.hpp:11
base::Vector2d Ggx
Definition: ImuError.hpp:98
Configuration config
Definition: ImuError.hpp:79
base::Vector2d Ggy
Definition: ImuError.hpp:100
base::Vector2d Gax
Definition: ImuError.hpp:86
base::Vector3d gbeta
Definition: ImuError.hpp:44
void reset()
Definition: ImuError.cpp:85
base::Vector2d xgy
Definition: ImuError.hpp:94
void reset(int seed=-1)
Definition: ImuError.hpp:136
base::Vector2d Gay
Definition: ImuError.hpp:88
base::Vector2d xgx
Definition: ImuError.hpp:93