imu-dynamical-system.hpp
Go to the documentation of this file.
1 
13 #ifndef IMU_DYNAMICAL_SYSTEM_HPP
14 #define IMU_DYNAMICAL_SYSTEM_HPP
15 
16 #include <state-observation/api.h>
21 
22 namespace stateObservation
23 {
24 
34 class STATE_OBSERVATION_DLLAPI IMUDynamicalSystem : public DynamicalSystemFunctorBase
35 {
36 public:
38  IMUDynamicalSystem(bool withGyroBias = false);
39 
41  virtual ~IMUDynamicalSystem();
42 
44  virtual Vector stateDynamics(const Vector & x, const Vector & u, TimeIndex k);
45 
47  virtual Vector measureDynamics(const Vector & x, const Vector & u, TimeIndex k);
48 
50  virtual void setProcessNoise(NoiseBase *);
52  virtual void resetProcessNoise();
54  virtual NoiseBase * getProcessNoise() const;
55 
57  virtual void setMeasurementNoise(NoiseBase *);
59  virtual void resetMeasurementNoise();
61  virtual NoiseBase * getMeasurementNoise() const;
62 
64  virtual void setSamplingPeriod(double dt);
65 
67  virtual Index getStateSize() const;
69  virtual Index getInputSize() const;
71  virtual Index getMeasurementSize() const;
72 
74  void setWithGyroBias(bool);
75 
77  {
78  if(withGyroBias_)
79  {
80  statesize_ = stateSizeBase_ + 3;
81  }
82  else
83  {
84  statesize_ = stateSizeBase_;
85  }
86  }
87 
88  struct indexes : public kine::indexes<kine::rotationVector>
89  {
90  static const Index gyroBias = 18;
91  };
92 
93 protected:
95 
97 
98  double dt_;
99 
102 
103  Quaternion computeQuaternion_(const Vector3 & x);
104 
105  static const Index stateSizeBase_ = 18;
107  static const Index inputSize_ = 6;
108  static const Index measurementSize_ = 6;
109 
111 
113  static constexpr double one_ = 0.9999;
114 
115 private:
116 public:
117  EIGEN_MAKE_ALIGNED_OPERATOR_NEW
118 };
119 } // namespace stateObservation
120 #endif // IMU-DYNAMICAL-SYSTEM_HPP
stateObservation::Vector
Eigen::VectorXd Vector
Dynamic sized scalar vector.
Definition: definitions.hpp:76
accelerometer-gyrometer.hpp
Implements the accelerometer-gyrometer inertial measuremen.
stateObservation::IMUDynamicalSystem::orientationVector_
Vector3Unaligned orientationVector_
Definition: imu-dynamical-system.hpp:100
stateObservation::DynamicalSystemFunctorBase
This is the base class of any functor that describes the dynamics of the state and the measurement....
Definition: dynamical-system-functor-base.hpp:32
noise-base.hpp
stateObservation::kine::indexes
Definition: rigid-body-kinematics.hpp:319
dynamical-system-functor-base.hpp
stateObservation::IMUDynamicalSystem::indexes
Definition: imu-dynamical-system.hpp:88
stateObservation::NoiseBase
Definition: noise-base.hpp:28
stateObservation::IMUDynamicalSystem::quaternion_
QuaternionUnaligned quaternion_
Definition: imu-dynamical-system.hpp:101
stateObservation::IMUDynamicalSystem::withGyroBias_
bool withGyroBias_
Definition: imu-dynamical-system.hpp:110
stateObservation::IMUDynamicalSystem::dt_
double dt_
Definition: imu-dynamical-system.hpp:98
rigid-body-kinematics.hpp
Implements integrators for the kinematics, in terms or rotations and translations.
stateObservation::IMUDynamicalSystem::sensor_
AccelerometerGyrometer sensor_
Definition: imu-dynamical-system.hpp:94
stateObservation::IMUDynamicalSystem::processNoise_
NoiseBase * processNoise_
Definition: imu-dynamical-system.hpp:96
stateObservation::TimeIndex
long int TimeIndex
Definition: definitions.hpp:139
stateObservation::Index
Eigen::Index Index
Definition: definitions.hpp:138
stateObservation::QuaternionUnaligned
Eigen::Quaternion< double, Eigen::DontAlign > QuaternionUnaligned
Quaternion Unaligned.
Definition: definitions.hpp:130
stateObservation::Vector3Unaligned
Eigen::Matrix< double, 3, 1, Eigen::DontAlign > Vector3Unaligned
3D vector unaligned
Definition: definitions.hpp:88
stateObservation::IMUDynamicalSystem::statesize_
Index statesize_
the state size may be bigger if the bias is considered
Definition: imu-dynamical-system.hpp:106
stateObservation::Vector3
Eigen::Vector3d Vector3
3D vector
Definition: definitions.hpp:85
stateObservation::Quaternion
Eigen::Quaterniond Quaternion
Quaternion.
Definition: definitions.hpp:127
stateObservation
Definition: bidim-elastic-inv-pendulum-dyn-sys.hpp:20
stateObservation::IMUDynamicalSystem
The class is an implementation of the dynamical system defined by an inertial measurement unit (IMU) ...
Definition: imu-dynamical-system.hpp:34
stateObservation::AccelerometerGyrometer
Implements the accelerometer-gyrometer measurements.
Definition: accelerometer-gyrometer.hpp:33
stateObservation::IMUDynamicalSystem::updatestatesize
void updatestatesize()
Definition: imu-dynamical-system.hpp:76