state-observation 1.7.0
General implementation of observers.
Loading...
Searching...
No Matches
stable-imu-fixed-contact-dynamical-system.hpp
1
11
12#ifndef StableFIXED_CONTACTS_IMU_DYNAMICS_FUNCTOR_HPP
13#define StableFIXED_CONTACTS_IMU_DYNAMICS_FUNCTOR_HPP
14
15#include <vector>
16
17#include <state-observation/api.h>
18#include <state-observation/dynamical-system/dynamical-system-functor-base.hpp>
22
23namespace stateObservation
24{
25namespace flexibilityEstimation
26{
35class STATE_OBSERVATION_DLLAPI StableIMUFixedContactDynamicalSystem
37{
38public:
41
44
45 // stabilization of the acceleration linear
46 virtual Vector3 stabilizeAccelerationLinear(Vector3, Vector3);
47
48 // stabilization of the acceleration angular
49 virtual Vector3 stabilizeAccelerationAngular(Vector3, Vector3);
50
54 TimeIndex k);
55
59 TimeIndex k);
60
63
65 virtual void resetProcessNoise();
66
69
72
74 virtual void resetMeasurementNoise();
75
78
80 virtual void setSamplingPeriod(double dt);
81
83 virtual Index getStateSize() const;
85 virtual Index getInputSize() const;
87 virtual Index getMeasurementSize() const;
88
90 virtual void setContactsNumber(unsigned);
91
93 virtual void setContactPosition(unsigned i, const Vector3 & position);
94
95protected:
97
99
100 stateObservation::NoiseBase * processNoise_;
101
102 double dt_;
103
104 Vector3Unaligned orientationVector_;
105 QuaternionUnaligned quaternion_;
106
107 Quaternion computeQuaternion_(const Vector3 & x);
108
109 static const Index stateSize_ = 18;
110 static const Index inputSize_ = 15;
111 static const Index measurementSizeBase_ = 6;
112
113 Index measurementSize_;
114
115 std::vector<Vector3, Eigen::aligned_allocator<Vector3>> contactPositions_;
116
117private:
118public:
119};
120} // namespace flexibilityEstimation
121} // namespace stateObservation
122
123#endif // FIXED-CONTACTS-IMU-DYNAMICS-FUNCTOR_HPP
Implements the accelerometer-gyrometer inertial measuremen.
Implements the accelerometer-gyrometer measurements.
This is the base class of any functor that describes the dynamics of the state and the measurement....
virtual stateObservation::NoiseBase * getProcessNoise() const
Gets the process noise.
virtual void setSamplingPeriod(double dt)
Set the period of the time discretization.
virtual stateObservation::Vector measureDynamics(const stateObservation::Vector &x, const stateObservation::Vector &u, TimeIndex k)
Description of the sensor's dynamics.
virtual stateObservation::Vector stateDynamics(const stateObservation::Vector &x, const stateObservation::Vector &u, TimeIndex k)
Description of the state dynamics.
virtual void setMeasurementNoise(stateObservation::NoiseBase *)
Sets a noise which disturbs the measurements.
virtual void setContactsNumber(unsigned)
Sets the number of contacts.
virtual stateObservation::NoiseBase * getMeasurementNoise() const
Gets a pointer on the measurement noise.
virtual void setProcessNoise(stateObservation::NoiseBase *)
Sets a noise which disturbs the state dynamics.
virtual Index getMeasurementSize() const
Gets the measurement size.
virtual void setContactPosition(unsigned i, const Vector3 &position)
Sets the position of the contact number i.
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.