Biorbd
|
Class Kinematic reconstruction algorithm using an Extended Kalman Filter. More...
#include <KalmanRecons.h>
Public Member Functions | |
KalmanRecons () | |
Kalman reconstruction. | |
KalmanRecons (biorbd::Model &model, unsigned int nbMeasure, KalmanParam params=KalmanParam()) | |
Kalman reconstruction. More... | |
virtual | ~KalmanRecons () |
Destroy class properly. | |
void | DeepCopy (const biorbd::rigidbody::KalmanRecons &other) |
Deep copy of Kalman reconstruction. More... | |
void | getState (biorbd::rigidbody::GeneralizedCoordinates *Q=nullptr, biorbd::rigidbody::GeneralizedVelocity *Qdot=nullptr, biorbd::rigidbody::GeneralizedAcceleration *Qddot=nullptr) |
Get the state (Q, Qdot, Qddot) More... | |
void | setInitState (const biorbd::rigidbody::GeneralizedCoordinates *Q=nullptr, const biorbd::rigidbody::GeneralizedVelocity *Qdot=nullptr, const biorbd::rigidbody::GeneralizedAcceleration *Qddot=nullptr) |
Set the initial guess of the reconstruction. More... | |
virtual void | reconstructFrame ()=0 |
Proceed to one iteration of the Kalman filter. | |
Protected Member Functions | |
virtual void | initialize () |
Initialization of the filter. | |
biorbd::utils::Matrix | evolutionMatrix (const unsigned int m, unsigned int n, double Te) |
Create the evolution matrix. More... | |
biorbd::utils::Matrix | processNoiseMatrix (const unsigned int nbQ, double Te) |
Process the noise matrix. More... | |
biorbd::utils::Matrix | measurementNoiseMatrix (const unsigned int nbT, double val) |
Matrix of the noise on the measurements. More... | |
biorbd::utils::Matrix | initCovariance (const unsigned int nbQ, double val) |
Returns a initialized covianriance matrix. More... | |
biorbd::rigidbody::GeneralizedCoordinates | initState (const unsigned int nbQ) |
Initialize the states. More... | |
void | iteration (biorbd::utils::Vector measure, const biorbd::utils::Vector &projectedMeasure, const biorbd::utils::Matrix &Hessian, const std::vector< unsigned int > &occlusion=std::vector< unsigned int >()) |
Compute an iteration of the Kalman filter. More... | |
virtual void | manageOcclusionDuringIteration (biorbd::utils::Matrix &InvTp, biorbd::utils::Vector &measure, const std::vector< unsigned int > &occlusion) |
Manage the occlusion during the iteration. More... | |
Protected Attributes | |
std::shared_ptr< KalmanParam > | m_params |
The parameters of the Kalman filter. | |
std::shared_ptr< double > | m_Te |
Inherent parameter to the frequency. | |
std::shared_ptr< unsigned int > | m_nbDof |
Number of states. | |
std::shared_ptr< unsigned int > | m_nMeasure |
Number of measurements. | |
std::shared_ptr< biorbd::utils::Vector > | m_xp |
State vector. | |
std::shared_ptr< biorbd::utils::Matrix > | m_A |
Evolution matrix. | |
std::shared_ptr< biorbd::utils::Matrix > | m_Q |
Noise matrix. | |
std::shared_ptr< biorbd::utils::Matrix > | m_R |
Matrix of the noise on the measurements. | |
std::shared_ptr< biorbd::utils::Matrix > | m_Pp |
Covariance matrix. | |
Class Kinematic reconstruction algorithm using an Extended Kalman Filter.
Definition at line 62 of file KalmanRecons.h.
biorbd::rigidbody::KalmanRecons::KalmanRecons | ( | biorbd::Model & | model, |
unsigned int | nbMeasure, | ||
KalmanParam | params = KalmanParam() |
||
) |
Kalman reconstruction.
model | The joint model |
nbMeasure | The number of measurements |
params | The Kalman filter parameters |
Definition at line 25 of file KalmanRecons.cpp.
void biorbd::rigidbody::KalmanRecons::DeepCopy | ( | const biorbd::rigidbody::KalmanRecons & | other | ) |
Deep copy of Kalman reconstruction.
other | The Kalman reconstruction to copy |
Definition at line 46 of file KalmanRecons.cpp.
|
protected |
Create the evolution matrix.
m | The number of degrees of freedom |
n | The order of the Taylor development |
Te | Is equal to ![]() |
Definition at line 106 of file KalmanRecons.cpp.
void biorbd::rigidbody::KalmanRecons::getState | ( | biorbd::rigidbody::GeneralizedCoordinates * | Q = nullptr , |
biorbd::rigidbody::GeneralizedVelocity * | Qdot = nullptr , |
||
biorbd::rigidbody::GeneralizedAcceleration * | Qddot = nullptr |
||
) |
Get the state (Q, Qdot, Qddot)
Q | The generalized coordinates |
Qdot | The generalized velocities |
Qddot | The generalized accelerations |
Definition at line 90 of file KalmanRecons.cpp.
|
protected |
Returns a initialized covianriance matrix.
nbQ | The number of degrees-of-freedom |
val | The initial value to fill the matrix with |
Definition at line 208 of file KalmanRecons.cpp.
|
protected |
Initialize the states.
nbQ | The number of degrees-of-freedom |
Definition at line 188 of file KalmanRecons.cpp.
|
protected |
Compute an iteration of the Kalman filter.
measure | The vector actual measurement to track |
projectedMeasure | The projected measurement from the update step of the filter |
Hessian | The hessian matrix |
occlusion | The vector where occlusionsoccurs |
Definition at line 59 of file KalmanRecons.cpp.
|
protectedvirtual |
Manage the occlusion during the iteration.
InvTp | The inverse of the Tp matrix |
measure | The vector actual measurement to track |
occlusion | The vector where occlusions occurs |
Reimplemented in biorbd::rigidbody::KalmanReconsMarkers, and biorbd::rigidbody::KalmanReconsIMU.
Definition at line 79 of file KalmanRecons.cpp.
|
protected |
Matrix of the noise on the measurements.
nbT | The number of measurements |
val | The noise level |
Definition at line 179 of file KalmanRecons.cpp.
|
protected |
Process the noise matrix.
nbQ | The number of degrees-of-freedom |
Te | Is equal to ![]() |
Definition at line 130 of file KalmanRecons.cpp.
void biorbd::rigidbody::KalmanRecons::setInitState | ( | const biorbd::rigidbody::GeneralizedCoordinates * | Q = nullptr , |
const biorbd::rigidbody::GeneralizedVelocity * | Qdot = nullptr , |
||
const biorbd::rigidbody::GeneralizedAcceleration * | Qddot = nullptr |
||
) |
Set the initial guess of the reconstruction.
Q | The generalized coordinates |
Qdot | The generalized velocities |
Qddot | The generalized accelerations |
Definition at line 193 of file KalmanRecons.cpp.