state-observation 1.7.0
Loading...
Searching...
No Matches
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
23namespace stateObservation
24{
25
35class STATE_OBSERVATION_DLLAPI IMUMltpctiveDynamicalSystem : public DynamicalSystemFunctorBase,
37{
38public:
41
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
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
82protected:
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 {
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
118private:
119public:
120 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
121};
122} // namespace stateObservation
123#endif // IMU_MULTIPLICATIVE_DYNAMICAL_SYSTEM_HPP
Implements the accelerometer-gyrometer inertial measuremen.
Implements the accelerometer-gyrometer measurements.
Definition accelerometer-gyrometer.hpp:36
This is the base class of any functor that describes the dynamics of the state and the measurement....
Definition dynamical-system-functor-base.hpp:33
The class is an implementation of the dynamical system defined by an inertial measurement unit (IMU) ...
Definition imu-mltpctive-dynamical-system.hpp:37
virtual Vector stateDynamics(const Vector &x, const Vector &u, TimeIndex k)
Description of the state dynamics.
virtual ~IMUMltpctiveDynamicalSystem()
The virtual destructor.
virtual void resetMeasurementNoise()
Removes the measurement noise.
virtual Index getStateSize() const
Gets the state size.
void stateDifference(const Vector &stateVector1, const Vector &stateVector2, Vector &difference)
virtual void setProcessNoise(NoiseBase *)
Sets a noise which disturbs the state dynamics.
virtual Index getMeasurementSize() const
Gets the measurement size.
NoiseBase * processNoise_
Definition imu-mltpctive-dynamical-system.hpp:114
kine::indexes< kine::quaternion > indexes
Definition imu-mltpctive-dynamical-system.hpp:87
virtual void resetProcessNoise()
Removes the process noise.
kine::indexes< kine::rotationVector > indexesTangent
Definition imu-mltpctive-dynamical-system.hpp:88
void stateSum(const Vector &stateVector, const Vector &tangentVector, Vector &sum)
AccelerometerGyrometer sensor_
Definition imu-mltpctive-dynamical-system.hpp:112
double dt_
Definition imu-mltpctive-dynamical-system.hpp:116
virtual Vector measureDynamics(const Vector &x, const Vector &u, TimeIndex k)
Description of the sensor's dynamics.
virtual Index getInputSize() const
Gets the input size.
virtual NoiseBase * getMeasurementNoise() const
Gets a pointer on the measurement noise.
virtual NoiseBase * getProcessNoise() const
Gets the process noise.
virtual Matrix getAMatrix(const Vector &xh)
virtual Matrix getCMatrix(const Vector &xp)
virtual void setMeasurementNoise(NoiseBase *)
Sets a noise which disturbs the measurements.
virtual void setSamplingPeriod(double dt)
Set the period of the time discretization.
Definition noise-base.hpp:29
This class is used to customize the way the difference between measurements, the state update functio...
Definition state-vector-arithmetics.hpp:28
Definition bidim-elastic-inv-pendulum-dyn-sys.hpp:21
long int TimeIndex
Definition definitions.hpp:139
Eigen::Vector3d Vector3
3D vector
Definition definitions.hpp:85
Eigen::Matrix3d Matrix3
3x3 Scalar Matrix
Definition definitions.hpp:109
Eigen::MatrixXd Matrix
Dynamic sized Matrix.
Definition definitions.hpp:100
Eigen::Index Index
Definition definitions.hpp:138
Eigen::VectorXd Vector
Dynamic sized scalar vector.
Definition definitions.hpp:76
Implements integrators for the kinematics, in terms or rotations and translations.
Definition imu-mltpctive-dynamical-system.hpp:91
Matrix3 jRR
containers for Jacobians
Definition imu-mltpctive-dynamical-system.hpp:93
Matrix AJacobian
Definition imu-mltpctive-dynamical-system.hpp:97
Matrix CJacobian
Definition imu-mltpctive-dynamical-system.hpp:98
Matrix3 Rt
Definition imu-mltpctive-dynamical-system.hpp:100
Vector3 deltaR
Definition imu-mltpctive-dynamical-system.hpp:95
opt(int stateSize, int measurementSize)
Definition imu-mltpctive-dynamical-system.hpp:102
Definition rigid-body-kinematics.hpp:320