13#ifndef IMU_DYNAMICAL_SYSTEM_HPP
14#define IMU_DYNAMICAL_SYSTEM_HPP
16#include <state-observation/api.h>
17#include <state-observation/dynamical-system/dynamical-system-functor-base.hpp>
76 void updatestatesize()
84 statesize_ = stateSizeBase_;
90 static const Index gyroBias = 18;
105 static const Index stateSizeBase_ = 18;
107 static const Index inputSize_ = 6;
108 static const Index measurementSize_ = 6;
113 static constexpr double one_ = 0.9999;
117 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
Implements the accelerometer-gyrometer inertial measuremen.
Implements the accelerometer-gyrometer measurements.
virtual Index getStateSize() const
Gets the state size.
virtual NoiseBase * getMeasurementNoise() const
Gets a pointer on the measurement noise.
virtual void setMeasurementNoise(NoiseBase *)
Sets a noise which disturbs the measurements.
virtual Vector stateDynamics(const Vector &x, const Vector &u, TimeIndex k)
Description of the state dynamics.
static constexpr double one_
the factor that approximate the "one" to avoid drifting of unobservable values
virtual void resetProcessNoise()
Removes the process noise.
virtual Vector measureDynamics(const Vector &x, const Vector &u, TimeIndex k)
Description of the sensor's dynamics.
virtual void resetMeasurementNoise()
Removes the measurement noise.
virtual Index getInputSize() const
Gets the input size.
void setWithGyroBias(bool)
Set whether we use Gyro Bias.
Index statesize_
the state size may be bigger if the bias is considered
virtual NoiseBase * getProcessNoise() const
Gets the process noise.
virtual void setProcessNoise(NoiseBase *)
Sets a noise which disturbs the state dynamics.
virtual void setSamplingPeriod(double dt)
Set the period of the time discretization.
virtual ~IMUDynamicalSystem()
The virtual destructor.
virtual Index getMeasurementSize() const
Gets the measurement size.
IMUDynamicalSystem(bool withGyroBias=false)
The constructor.
Filtering of divergent component of motion (DCM) and estimation of a bias betweeen the DCM and the co...
Eigen::Quaterniond Quaternion
Quaternion.
Eigen::Vector3d Vector3
3D vector
Eigen::Matrix< double, 3, 1, Eigen::DontAlign > Vector3Unaligned
3D vector unaligned
Eigen::VectorXd Vector
Dynamic sized scalar vector.
Eigen::Quaternion< double, Eigen::DontAlign > QuaternionUnaligned
Quaternion Unaligned.
Implements integrators for the kinematics, in terms or rotations and translations.