imu-mltpctive-dynamical-system.hpp
Go to the documentation of this file.
1 
13 #ifndef IMU_MULTIPLICATIVE_DYNAMICAL_SYSTEM_HPP
14 #define IMU_MULTIPLICATIVE_DYNAMICAL_SYSTEM_HPP
15 
16 #include <state-observation/api.h>
22 
23 namespace stateObservation
24 {
25 
35 class STATE_OBSERVATION_DLLAPI IMUMltpctiveDynamicalSystem : public DynamicalSystemFunctorBase,
37 {
38 public:
41 
43  virtual ~IMUMltpctiveDynamicalSystem();
44 
46  virtual Vector stateDynamics(const Vector & x, const Vector & u, TimeIndex k);
47 
49  virtual Vector measureDynamics(const Vector & x, const Vector & u, TimeIndex k);
50 
52  virtual void setProcessNoise(NoiseBase *);
54  virtual void resetProcessNoise();
56  virtual NoiseBase * getProcessNoise() const;
57 
59  virtual void setMeasurementNoise(NoiseBase *);
61  virtual void resetMeasurementNoise();
63  virtual NoiseBase * getMeasurementNoise() const;
64 
66  virtual void setSamplingPeriod(double dt);
67 
68  virtual Matrix getAMatrix(const Vector & xh);
69  virtual Matrix getCMatrix(const Vector & xp);
70 
72  virtual Index getStateSize() const;
74  virtual Index getInputSize() const;
76  virtual Index getMeasurementSize() const;
77 
78  void stateSum(const Vector & stateVector, const Vector & tangentVector, Vector & sum);
79 
80  void stateDifference(const Vector & stateVector1, const Vector & stateVector2, Vector & difference);
81 
82 protected:
83  static const Index stateSize_ = 19;
84  static const Index stateTangentSize_ = 18;
85  static const Index inputSize_ = 6;
86  static const Index measurementSize_ = 6;
89 
90  struct opt
91  {
93  Matrix3 jRR, jRv;
94 
96 
99 
101 
102  opt(int stateSize, int measurementSize) : AJacobian(stateSize, stateSize), CJacobian(measurementSize, stateSize)
103  {
104  AJacobian.setZero();
105  AJacobian.block<3, 3>(indexesTangent::pos, indexesTangent::pos).setIdentity();
106  AJacobian.block<6, 6>(indexesTangent::linVel, indexesTangent::linVel).setIdentity();
107 
108  CJacobian.setZero();
109  }
110  } opt_;
111 
113 
115 
116  double dt_;
117 
118 private:
119 public:
120  EIGEN_MAKE_ALIGNED_OPERATOR_NEW
121 };
122 } // namespace stateObservation
123 #endif // IMU_MULTIPLICATIVE_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::IMUMltpctiveDynamicalSystem::processNoise_
NoiseBase * processNoise_
Definition: imu-mltpctive-dynamical-system.hpp:114
stateObservation::StateVectorArithmetics
This class is used to customize the way the difference between measurements, the state update functio...
Definition: state-vector-arithmetics.hpp:27
stateObservation::IMUMltpctiveDynamicalSystem::opt::AJacobian
Matrix AJacobian
Definition: imu-mltpctive-dynamical-system.hpp:97
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::IMUMltpctiveDynamicalSystem::dt_
double dt_
Definition: imu-mltpctive-dynamical-system.hpp:116
stateObservation::kine::indexes
Definition: rigid-body-kinematics.hpp:319
state-vector-arithmetics.hpp
dynamical-system-functor-base.hpp
stateObservation::IMUMltpctiveDynamicalSystem::sensor_
AccelerometerGyrometer sensor_
Definition: imu-mltpctive-dynamical-system.hpp:112
stateObservation::NoiseBase
Definition: noise-base.hpp:28
stateObservation::IMUMltpctiveDynamicalSystem
The class is an implementation of the dynamical system defined by an inertial measurement unit (IMU) ...
Definition: imu-mltpctive-dynamical-system.hpp:35
stateObservation::IMUMltpctiveDynamicalSystem::indexes
kine::indexes< kine::quaternion > indexes
Definition: imu-mltpctive-dynamical-system.hpp:87
rigid-body-kinematics.hpp
Implements integrators for the kinematics, in terms or rotations and translations.
stateObservation::Matrix
Eigen::MatrixXd Matrix
Dynamic sized Matrix.
Definition: definitions.hpp:100
stateObservation::TimeIndex
long int TimeIndex
Definition: definitions.hpp:139
stateObservation::Matrix3
Eigen::Matrix3d Matrix3
3x3 Scalar Matrix
Definition: definitions.hpp:109
stateObservation::IMUMltpctiveDynamicalSystem::opt
Definition: imu-mltpctive-dynamical-system.hpp:90
stateObservation::Index
Eigen::Index Index
Definition: definitions.hpp:138
stateObservation::IMUMltpctiveDynamicalSystem::opt::deltaR
Vector3 deltaR
Definition: imu-mltpctive-dynamical-system.hpp:95
stateObservation::IMUMltpctiveDynamicalSystem::opt::opt
opt(int stateSize, int measurementSize)
Definition: imu-mltpctive-dynamical-system.hpp:102
stateObservation::IMUMltpctiveDynamicalSystem::indexesTangent
kine::indexes< kine::rotationVector > indexesTangent
Definition: imu-mltpctive-dynamical-system.hpp:88
stateObservation::Vector3
Eigen::Vector3d Vector3
3D vector
Definition: definitions.hpp:85
stateObservation::IMUMltpctiveDynamicalSystem::opt::Rt
Matrix3 Rt
Definition: imu-mltpctive-dynamical-system.hpp:100
stateObservation::IMUMltpctiveDynamicalSystem::opt::CJacobian
Matrix CJacobian
Definition: imu-mltpctive-dynamical-system.hpp:98
stateObservation
Definition: bidim-elastic-inv-pendulum-dyn-sys.hpp:20
stateObservation::IMUMltpctiveDynamicalSystem::opt::jRv
Matrix3 jRv
Definition: imu-mltpctive-dynamical-system.hpp:93
stateObservation::AccelerometerGyrometer
Implements the accelerometer-gyrometer measurements.
Definition: accelerometer-gyrometer.hpp:33