Biorbd
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
biorbd::rigidbody::KalmanReconsIMU Class Reference

Class Kinematic reconstruction algorithm using an Extended Kalman Filter for IMU. More...

#include <KalmanReconsIMU.h>

Inheritance diagram for biorbd::rigidbody::KalmanReconsIMU:
biorbd::rigidbody::KalmanRecons

Public Member Functions

 KalmanReconsIMU ()
 Initialize the Kalman filter and kalman reconstruction for inertial measurement units (IMU) data.
 
 KalmanReconsIMU (biorbd::Model &model, biorbd::rigidbody::KalmanParam params=biorbd::rigidbody::KalmanParam(100, 0.005, 1e-10))
 Initialize the Kalman filter and Kalman reconstruction for inertial measurement units (IMU) data. More...
 
biorbd::rigidbody::KalmanReconsIMU DeepCopy () const
 Deep copy of the Kalman reconstruction from inertial measurement units (IMU) data. More...
 
void DeepCopy (const biorbd::rigidbody::KalmanReconsIMU &other)
 Deep copy of a Kalman reconstruction from inertial measurement units (IMU) data. More...
 
virtual void reconstructFrame (biorbd::Model &model, const std::vector< biorbd::rigidbody::IMU > &IMUobs, biorbd::rigidbody::GeneralizedCoordinates *Q, biorbd::rigidbody::GeneralizedVelocity *Qdot, biorbd::rigidbody::GeneralizedAcceleration *Qddot)
 Proceed to one iteration of the Kalman filter. More...
 
virtual void reconstructFrame (biorbd::Model &model, const biorbd::utils::Vector &IMUobs, biorbd::rigidbody::GeneralizedCoordinates *Q, biorbd::rigidbody::GeneralizedVelocity *Qdot, biorbd::rigidbody::GeneralizedAcceleration *Qddot)
 Reconstruct the kinematics. More...
 
virtual void reconstructFrame ()
 This function cannot be used to reconstruct frames.
 
bool first ()
 Return if the first iteration was done. More...
 
- Public Member Functions inherited from biorbd::rigidbody::KalmanRecons
 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...
 

Protected Member Functions

virtual void initialize ()
 Initialization of the filter.
 
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 Member Functions inherited from biorbd::rigidbody::KalmanRecons
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...
 

Protected Attributes

std::shared_ptr< biorbd::utils::Matrixm_PpInitial
 Initial covariance matrix.
 
std::shared_ptr< bool > m_firstIteration
 If first iteration was done.
 
- Protected Attributes inherited from biorbd::rigidbody::KalmanRecons
std::shared_ptr< KalmanParamm_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::Vectorm_xp
 State vector.
 
std::shared_ptr< biorbd::utils::Matrixm_A
 Evolution matrix.
 
std::shared_ptr< biorbd::utils::Matrixm_Q
 Noise matrix.
 
std::shared_ptr< biorbd::utils::Matrixm_R
 Matrix of the noise on the measurements.
 
std::shared_ptr< biorbd::utils::Matrixm_Pp
 Covariance matrix.
 

Detailed Description

Class Kinematic reconstruction algorithm using an Extended Kalman Filter for IMU.

Definition at line 18 of file KalmanReconsIMU.h.

Constructor & Destructor Documentation

◆ KalmanReconsIMU()

biorbd::rigidbody::KalmanReconsIMU::KalmanReconsIMU ( biorbd::Model model,
biorbd::rigidbody::KalmanParam  params = biorbd::rigidbody::KalmanParam(100, 0.005, 1e-10) 
)

Initialize the Kalman filter and Kalman reconstruction for inertial measurement units (IMU) data.

Parameters
modelThe joint model
paramsThe Kalman filter parameters

Definition at line 23 of file KalmanReconsIMU.cpp.

Member Function Documentation

◆ DeepCopy() [1/2]

biorbd::rigidbody::KalmanReconsIMU biorbd::rigidbody::KalmanReconsIMU::DeepCopy ( ) const

Deep copy of the Kalman reconstruction from inertial measurement units (IMU) data.

Returns
Copy of the Kalman reconstruction from IMU data

Definition at line 34 of file KalmanReconsIMU.cpp.

◆ DeepCopy() [2/2]

void biorbd::rigidbody::KalmanReconsIMU::DeepCopy ( const biorbd::rigidbody::KalmanReconsIMU other)

Deep copy of a Kalman reconstruction from inertial measurement units (IMU) data.

Parameters
otherThe Kalman reconstruction to copy

Definition at line 41 of file KalmanReconsIMU.cpp.

◆ first()

bool biorbd::rigidbody::KalmanReconsIMU::first ( )

Return if the first iteration was done.

Returns
If the first iteration was done

Definition at line 68 of file KalmanReconsIMU.cpp.

◆ manageOcclusionDuringIteration()

void biorbd::rigidbody::KalmanReconsIMU::manageOcclusionDuringIteration ( biorbd::utils::Matrix InvTp,
biorbd::utils::Vector measure,
const std::vector< unsigned int > &  occlusion 
)
protectedvirtual

Manage the occlusion during the iteration.

Parameters
InvTpThe inverse of the Tp matrix
measureThe vector actual measurement to track
occlusionThe vector where occlusions occurs

Reimplemented from biorbd::rigidbody::KalmanRecons.

Definition at line 56 of file KalmanReconsIMU.cpp.

◆ reconstructFrame() [1/2]

void biorbd::rigidbody::KalmanReconsIMU::reconstructFrame ( biorbd::Model model,
const biorbd::utils::Vector IMUobs,
biorbd::rigidbody::GeneralizedCoordinates Q,
biorbd::rigidbody::GeneralizedVelocity Qdot,
biorbd::rigidbody::GeneralizedAcceleration Qddot 
)
virtual

Reconstruct the kinematics.

Parameters
modelThe joint model
IMUobsObserved inertial measurement unit (IMU) data in one large column-major vector
QThe generalized coordinates
QdotThe generalized velocities
QddotThe generalized accelerations

Definition at line 91 of file KalmanReconsIMU.cpp.

◆ reconstructFrame() [2/2]

void biorbd::rigidbody::KalmanReconsIMU::reconstructFrame ( biorbd::Model model,
const std::vector< biorbd::rigidbody::IMU > &  IMUobs,
biorbd::rigidbody::GeneralizedCoordinates Q,
biorbd::rigidbody::GeneralizedVelocity Qdot,
biorbd::rigidbody::GeneralizedAcceleration Qddot 
)
virtual

Proceed to one iteration of the Kalman filter.

Parameters
modelThe joint model
IMUobsObserved inertial measurement unit (IMU) data
QThe generalized coordinates
QdotThe generalized velocities
QddotThe generalized accelerations

Definition at line 73 of file KalmanReconsIMU.cpp.


The documentation for this class was generated from the following files: