Biorbd
Public Member Functions | List of all members
biorbd::Model Class Reference

The actual musculoskeletal model that holds everything in biorbd. More...

#include <BiorbdModel.h>

Inheritance diagram for biorbd::Model:
biorbd::rigidbody::Joints biorbd::rigidbody::Markers biorbd::rigidbody::IMUs biorbd::rigidbody::RotoTransNodes biorbd::rigidbody::Contacts

Public Member Functions

 Model ()
 Construct an empty model that can be manually filled.
 
 Model (const biorbd::utils::Path &path)
 Construct a model from a bioMod file. More...
 
biorbd::utils::Path path () const
 Returns the path of .bioMod file used to load the model. If no file was used, it remains empty. More...
 
- Public Member Functions inherited from biorbd::rigidbody::Joints
 Joints ()
 Construct a joint model.
 
 Joints (const biorbd::rigidbody::Joints &other)
 Construct a joint model from another model. More...
 
virtual ~Joints ()
 Properly destroy class.
 
biorbd::rigidbody::Joints DeepCopy () const
 Deep copy of the joints. More...
 
void DeepCopy (const biorbd::rigidbody::Joints &other)
 Deep copy of the joints. More...
 
unsigned int AddSegment (const biorbd::utils::String &segmentName, const biorbd::utils::String &parentName, const biorbd::utils::String &translationSequence, const biorbd::utils::String &rotationSequence, const std::vector< biorbd::utils::Range > &QRanges, const std::vector< biorbd::utils::Range > &QDotRanges, const std::vector< biorbd::utils::Range > &QDDotRanges, const biorbd::rigidbody::SegmentCharacteristics &characteristics, const RigidBodyDynamics::Math::SpatialTransform &centreOfRotation, int forcePlates=-1)
 Add a segment to the model. More...
 
unsigned int AddSegment (const biorbd::utils::String &segmentName, const biorbd::utils::String &parentName, const biorbd::utils::String &translationSequence, const std::vector< biorbd::utils::Range > &QRanges, const std::vector< biorbd::utils::Range > &QDotRanges, const std::vector< biorbd::utils::Range > &QDDotRanges, const biorbd::rigidbody::SegmentCharacteristics &characteristics, const RigidBodyDynamics::Math::SpatialTransform &centreOfRotation, int forcePlates=-1)
 Add a segment to the model. More...
 
biorbd::utils::Vector3d getGravity () const
 Get the current gravity. More...
 
void setGravity (const biorbd::utils::Vector3d &newGravity)
 Set the gravity. More...
 
int GetBodyBiorbdId (const biorbd::utils::String &segmentName) const
 Return the biorbd body identification. More...
 
unsigned int nbGeneralizedTorque () const
 Return the number of generalized torque. More...
 
unsigned int nbSegment () const
 Return the actual number of segment. More...
 
unsigned int nbDof () const
 Return the number of degrees of freedom (DoF) More...
 
unsigned int getDofIndex (const biorbd::utils::String &SegmentName, const biorbd::utils::String &dofName)
 Return the index of a DoF in a segment. More...
 
std::vector< biorbd::utils::StringnameDof () const
 Return the names of the degree of freedom (DoF) More...
 
unsigned int nbQ () const
 Return the number of generalized coordinates (Q) More...
 
unsigned int nbQdot () const
 Return the number of generalized velocities (Qdot) More...
 
unsigned int nbQddot () const
 Return the number of generalized acceleration (Qddot) More...
 
unsigned int nbRoot () const
 Return the dof on the root. More...
 
unsigned int nbQuat () const
 Return the number of segments that are described using quaternions. More...
 
const biorbd::rigidbody::Segmentsegment (unsigned int idx) const
 Get a segment of index idx. More...
 
const biorbd::rigidbody::Segmentsegment (const biorbd::utils::String &name) const
 Get a segment of a specific name. More...
 
std::vector< RigidBodyDynamics::Math::SpatialVector > dispatchedForce (std::vector< std::vector< biorbd::utils::SpatialVector >> &spatialVector, unsigned int frame) const
 Dispatch the forces from the force plate in a vector. More...
 
std::vector< RigidBodyDynamics::Math::SpatialVector > dispatchedForce (std::vector< biorbd::utils::SpatialVector > &sv) const
 Dispatch the forces from the force plate in a spatial vector. More...
 
void UpdateKinematicsCustom (const biorbd::rigidbody::GeneralizedCoordinates *Q=nullptr, const biorbd::rigidbody::GeneralizedVelocity *Qdot=nullptr, const biorbd::rigidbody::GeneralizedAcceleration *Qddot=nullptr)
 Update the kinematic variables such as body velocities and accelerations in the model to reflect the variables passed to this function. More...
 
std::vector< biorbd::utils::RotoTransallGlobalJCS (const biorbd::rigidbody::GeneralizedCoordinates &Q)
 Return the joint coordinate system (JCS) in global reference frame at a given Q. More...
 
std::vector< biorbd::utils::RotoTransallGlobalJCS () const
 Return the joint coordinate system (JCS) in global reference frame at a given Q. More...
 
biorbd::utils::RotoTrans globalJCS (const biorbd::rigidbody::GeneralizedCoordinates &Q, const biorbd::utils::String &name)
 Return the joint coordinate system (JCS) for the segment in global reference frame at a given Q. More...
 
biorbd::utils::RotoTrans globalJCS (const biorbd::rigidbody::GeneralizedCoordinates &Q, unsigned int idx)
 Return the joint coordinate system (JCS) for the segment idx in global reference frame at a given Q. More...
 
biorbd::utils::RotoTrans globalJCS (const biorbd::utils::String &name) const
 Return the joint coordinate system (JCS) for the segment in global reference. More...
 
biorbd::utils::RotoTrans globalJCS (unsigned int idx) const
 Return the joint coordinate system (JCS) for the segment idx in global reference. More...
 
std::vector< biorbd::utils::RotoTranslocalJCS () const
 Return all the joint coordinate system (JCS) in its parent reference frame. More...
 
biorbd::utils::RotoTrans localJCS (const biorbd::utils::String &name) const
 Return the joint coordinate system (JCS) of the segment its parent reference frame. More...
 
biorbd::utils::RotoTrans localJCS (const unsigned int idx) const
 Return the joint coordinate system (JCS) of the segment idx its parent reference frame. More...
 
biorbd::rigidbody::NodeSegment projectPoint (const biorbd::rigidbody::GeneralizedCoordinates &Q, const biorbd::utils::Vector3d &v, int segmentIdx, const biorbd::utils::String &axesToRemove, bool updateKin=true)
 Project a point on specific axis of a segment. More...
 
std::vector< biorbd::rigidbody::NodeSegmentprojectPoint (const biorbd::rigidbody::GeneralizedCoordinates &Q, const std::vector< biorbd::rigidbody::NodeSegment > &v, bool updateKin=true)
 Project multiples points on their respective segment. More...
 
biorbd::rigidbody::NodeSegment projectPoint (const biorbd::rigidbody::GeneralizedCoordinates &Q, const biorbd::rigidbody::NodeSegment &n, bool updateKin)
 Return the projected markers from a point corresponding to a marker from the model. More...
 
biorbd::utils::Matrix projectPointJacobian (const biorbd::rigidbody::GeneralizedCoordinates &Q, biorbd::rigidbody::NodeSegment p, bool updateKin)
 Return the jacobian matrix of the projected markers for a marker from the model. More...
 
biorbd::utils::Matrix projectPointJacobian (const biorbd::rigidbody::GeneralizedCoordinates &Q, const biorbd::utils::Vector3d &v, int segmentIdx, const biorbd::utils::String &axesToRemove, bool updateKin)
 Return the Jacobian matrix of a projected marker on the segment segmentIdx. More...
 
std::vector< biorbd::utils::MatrixprojectPointJacobian (const biorbd::rigidbody::GeneralizedCoordinates &Q, const std::vector< biorbd::rigidbody::NodeSegment > &v, bool updateKin)
 Return the jacobian matrix of the projected markers. More...
 
double mass () const
 Return the total mass of the model. More...
 
biorbd::utils::Vector3d CoM (const biorbd::rigidbody::GeneralizedCoordinates &Q, bool updateKin=true)
 Return the position of the center of mass. More...
 
std::vector< biorbd::rigidbody::NodeSegmentCoMbySegment (const biorbd::rigidbody::GeneralizedCoordinates &Q, bool updateKin=true)
 Return the position of the center of mass of each segment. More...
 
biorbd::utils::Matrix CoMbySegmentInMatrix (const biorbd::rigidbody::GeneralizedCoordinates &Q, bool updateKin=true)
 Return the position of the center of mass of each segment in a matrix. More...
 
biorbd::utils::Vector3d CoMbySegment (const biorbd::rigidbody::GeneralizedCoordinates &Q, const unsigned int idx, bool updateKin=true)
 Return the position of the center of mass of segment idx. More...
 
biorbd::utils::Vector3d CoMdot (const biorbd::rigidbody::GeneralizedCoordinates &Q, const biorbd::rigidbody::GeneralizedVelocity &Qdot)
 Return the velocity of the center of mass. More...
 
biorbd::utils::Vector3d CoMddot (const biorbd::rigidbody::GeneralizedCoordinates &Q, const biorbd::rigidbody::GeneralizedVelocity &Qdot, const biorbd::rigidbody::GeneralizedAcceleration &Qddot)
 Return the acceleration of the center of mass. More...
 
std::vector< biorbd::utils::Vector3dCoMdotBySegment (const biorbd::rigidbody::GeneralizedCoordinates &Q, const biorbd::rigidbody::GeneralizedVelocity &Qdot, bool updateKin=true)
 Return the velocity of the center of mass of each segment. More...
 
biorbd::utils::Vector3d CoMdotBySegment (const biorbd::rigidbody::GeneralizedCoordinates &Q, const biorbd::rigidbody::GeneralizedVelocity &Qdot, const unsigned int idx, bool updateKin=true)
 Return the velocity of the center of mass of segment idx. More...
 
std::vector< biorbd::utils::Vector3dCoMddotBySegment (const biorbd::rigidbody::GeneralizedCoordinates &Q, const biorbd::rigidbody::GeneralizedVelocity &Qdot, const biorbd::rigidbody::GeneralizedAcceleration &Qddot, bool updateKin=true)
 Return the acceleration of the center of mass of each segment. More...
 
biorbd::utils::Vector3d CoMddotBySegment (const biorbd::rigidbody::GeneralizedCoordinates &Q, const biorbd::rigidbody::GeneralizedVelocity &Qdot, const biorbd::rigidbody::GeneralizedAcceleration &Qddot, const unsigned int idx, bool updateKin=true)
 Return the acceleration of the center of mass of segment idx. More...
 
biorbd::utils::Matrix CoMJacobian (const biorbd::rigidbody::GeneralizedCoordinates &Q)
 Return the jacobian matrix of the center of mass. More...
 
std::vector< std::vector< biorbd::utils::Vector3d > > meshPoints (const biorbd::rigidbody::GeneralizedCoordinates &Q, bool updateKin=true)
 Return the vertices of the mesh for all segments in global reference frame. More...
 
std::vector< biorbd::utils::Vector3dmeshPoints (const biorbd::rigidbody::GeneralizedCoordinates &Q, unsigned int idx, bool updateKin=true)
 Return the vertices of the mesh for the segment idx. More...
 
std::vector< biorbd::utils::MatrixmeshPointsInMatrix (const biorbd::rigidbody::GeneralizedCoordinates &Q, bool updateKin=true)
 Return all the vertices of the mesh points in a matrix. More...
 
std::vector< std::vector< MeshFace > > meshFaces () const
 Return the mesh faces for all the segments. More...
 
const std::vector< biorbd::rigidbody::MeshFace > & meshFaces (unsigned int idx) const
 Return the mesh faces for segment idx. More...
 
std::vector< biorbd::rigidbody::Meshmesh () const
 Return the segment mesh. More...
 
const biorbd::rigidbody::Meshmesh (unsigned int idx) const
 Return the segment mesh for segment idx. More...
 
biorbd::utils::Vector3d angularMomentum (const biorbd::rigidbody::GeneralizedCoordinates &Q, const biorbd::rigidbody::GeneralizedVelocity &Qdot, bool updateKin=true)
 Calculate the angular momentum of the center of mass. More...
 
biorbd::utils::Matrix massMatrix (const biorbd::rigidbody::GeneralizedCoordinates &Q, bool updateKin=true)
 Get the mass matrix at a given position Q. More...
 
biorbd::utils::Vector3d CalcAngularMomentum (const biorbd::rigidbody::GeneralizedCoordinates &Q, const biorbd::rigidbody::GeneralizedVelocity &Qdot, bool updateKin)
 Calculate the angular momentum of the center of mass. More...
 
biorbd::utils::Vector3d CalcAngularMomentum (const biorbd::rigidbody::GeneralizedCoordinates &Q, const biorbd::rigidbody::GeneralizedVelocity &Qdot, const biorbd::rigidbody::GeneralizedAcceleration &Qddot, bool updateKin)
 Calculate the angular momentum of the center of mass. More...
 
std::vector< biorbd::utils::Vector3dCalcSegmentsAngularMomentum (const biorbd::rigidbody::GeneralizedCoordinates &Q, const biorbd::rigidbody::GeneralizedVelocity &Qdot, bool updateKin)
 Calculate the segment center of mass angular momentum. More...
 
std::vector< biorbd::utils::Vector3dCalcSegmentsAngularMomentum (const biorbd::rigidbody::GeneralizedCoordinates &Q, const biorbd::rigidbody::GeneralizedVelocity &Qdot, const biorbd::rigidbody::GeneralizedAcceleration &Qddot, bool updateKin)
 Calculate the segment center of mass angular momentum. More...
 
void CalcMatRotJacobian (const biorbd::rigidbody::GeneralizedCoordinates &Q, unsigned int segmentIdx, const RigidBodyDynamics::Math::Matrix3d &rotation, RigidBodyDynamics::Math::MatrixNd &G, bool updateKin)
 Calculate the jacobian matrix of a rotation matrix. More...
 
biorbd::rigidbody::GeneralizedVelocity computeQdot (const biorbd::rigidbody::GeneralizedCoordinates &Q, const biorbd::rigidbody::GeneralizedCoordinates &QDot, const double k_stab=1)
 Return the derivate of Q in function of Qdot (if not Quaternion, Qdot is directly returned) More...
 
biorbd::rigidbody::GeneralizedTorque InverseDynamics (const biorbd::rigidbody::GeneralizedCoordinates &Q, const biorbd::rigidbody::GeneralizedVelocity &QDot, const biorbd::rigidbody::GeneralizedAcceleration &QDDot, std::vector< biorbd::utils::SpatialVector > *f_ext=nullptr)
 Interface for the inverse dynamics of RBDL. More...
 
biorbd::rigidbody::GeneralizedAcceleration ForwardDynamics (const biorbd::rigidbody::GeneralizedCoordinates &Q, const biorbd::rigidbody::GeneralizedVelocity &QDot, const biorbd::rigidbody::GeneralizedTorque &Tau, std::vector< biorbd::utils::SpatialVector > *f_ext=nullptr)
 Interface for the forward dynamics of RBDL. More...
 
biorbd::rigidbody::GeneralizedAcceleration ForwardDynamicsConstraintsDirect (const biorbd::rigidbody::GeneralizedCoordinates &Q, const biorbd::rigidbody::GeneralizedVelocity &QDot, const biorbd::rigidbody::GeneralizedTorque &Tau, biorbd::rigidbody::Contacts &CS, std::vector< biorbd::utils::SpatialVector > *f_ext=nullptr)
 Interface for the forward dynamics with contact of RBDL. More...
 
biorbd::utils::Vector ContactForcesFromForwardDynamicsConstraintsDirect (const biorbd::rigidbody::GeneralizedCoordinates &Q, const biorbd::rigidbody::GeneralizedVelocity &QDot, const biorbd::rigidbody::GeneralizedTorque &Tau, std::vector< biorbd::utils::SpatialVector > *f_ext=nullptr)
 Interface for contacts of the forward dynamics with contact of RBDL. More...
 
biorbd::rigidbody::GeneralizedAcceleration ForwardDynamicsConstraintsDirect (const biorbd::rigidbody::GeneralizedCoordinates &Q, const biorbd::rigidbody::GeneralizedVelocity &QDot, const biorbd::rigidbody::GeneralizedTorque &Tau, std::vector< biorbd::utils::SpatialVector > *f_ext=nullptr)
 Interface for the forward dynamics with contact of RBDL. More...
 
biorbd::rigidbody::GeneralizedVelocity ComputeConstraintImpulsesDirect (const biorbd::rigidbody::GeneralizedCoordinates &Q, const biorbd::rigidbody::GeneralizedVelocity &QDotPre)
 Compute the QDot post from an impact. More...
 
void checkGeneralizedDimensions (const biorbd::rigidbody::GeneralizedCoordinates *Q=nullptr, const biorbd::rigidbody::GeneralizedVelocity *Qdot=nullptr, const biorbd::rigidbody::GeneralizedAcceleration *Qddot=nullptr, const biorbd::rigidbody::GeneralizedTorque *torque=nullptr)
 Check for the Generalized coordinates, velocities, acceleration and torque dimensions. More...
 
- Public Member Functions inherited from biorbd::rigidbody::Markers
 Markers ()
 Construct a marker set.
 
 Markers (const biorbd::rigidbody::Markers &other)
 Construct markers from another marker set. More...
 
virtual ~Markers ()
 Destroy class properly.
 
biorbd::rigidbody::Markers DeepCopy () const
 Deep copy of the markers. More...
 
void DeepCopy (const biorbd::rigidbody::Markers &other)
 Deep copy of the markers. More...
 
void addMarker (const biorbd::rigidbody::NodeSegment &pos, const biorbd::utils::String &name, const biorbd::utils::String &parentName, bool technical, bool anatomical, const biorbd::utils::String &axesToRemove, int id=-1)
 Add a marker to the set. More...
 
const biorbd::rigidbody::NodeSegmentmarker (unsigned int idx) const
 Return the marker of index idx. More...
 
std::vector< biorbd::rigidbody::NodeSegmentmarker (const biorbd::utils::String &name) const
 Return the markers on a segment. More...
 
std::vector< biorbd::utils::StringmarkerNames () const
 Return the names of all the markers. More...
 
std::vector< biorbd::utils::StringtechnicalMarkerNames () const
 Return the names of all the technical markers. More...
 
std::vector< biorbd::utils::StringanatomicalMarkerNames () const
 Return the names of all the anatomical markers. More...
 
biorbd::rigidbody::NodeSegment marker (const biorbd::rigidbody::GeneralizedCoordinates &Q, const biorbd::rigidbody::NodeSegment &node, bool removeAxis=true, bool updateKin=true)
 Compute and return the position of a marker at given Q in the global reference frame. More...
 
biorbd::rigidbody::NodeSegment marker (const biorbd::rigidbody::GeneralizedCoordinates &Q, unsigned int idx, bool removeAxis=true, bool updateKin=true)
 Compute and return the position of the marker of index idx at given Q in the global reference frame. More...
 
biorbd::rigidbody::NodeSegment marker (unsigned int idx, bool removeAxis)
 Return a marker of index idx in the marker set. More...
 
std::vector< biorbd::rigidbody::NodeSegmentmarkers (const biorbd::rigidbody::GeneralizedCoordinates &Q, bool removeAxis=true, bool updateKin=true)
 Return all the markers at a given Q in the global reference frame. More...
 
std::vector< biorbd::rigidbody::NodeSegmentmarkers (bool removeAxis=true)
 Return all the markers in their respective parent reference frame. More...
 
biorbd::rigidbody::NodeSegment markerVelocity (const biorbd::rigidbody::GeneralizedCoordinates &Q, const biorbd::rigidbody::GeneralizedVelocity &Qdot, unsigned int idx, bool removeAxis=true, bool updateKin=true)
 Return the velocity of a marker. More...
 
std::vector< biorbd::rigidbody::NodeSegmentmarkersVelocity (const biorbd::rigidbody::GeneralizedCoordinates &Q, const biorbd::rigidbody::GeneralizedVelocity &Qdot, bool removeAxis=true, bool updateKin=true)
 Return the velocity of all the markers. More...
 
std::vector< biorbd::rigidbody::NodeSegmenttechnicalMarkers (const biorbd::rigidbody::GeneralizedCoordinates &Q, bool removeAxis=true, bool updateKin=true)
 Return all the technical markers at a given Q in the global reference frame. More...
 
std::vector< biorbd::rigidbody::NodeSegmenttechnicalMarkers (bool removeAxis=true)
 Return the technical markers in their respective parent reference frame. More...
 
std::vector< biorbd::rigidbody::NodeSegmentanatomicalMarkers (const biorbd::rigidbody::GeneralizedCoordinates &Q, bool removeAxis=true, bool updateKin=true)
 Return all the anatomical markers at a given Q in the global reference frame. More...
 
std::vector< biorbd::rigidbody::NodeSegmentanatomicalMarkers (bool removeAxis=true)
 Return the anatomical markers in their respective parent reference frame. More...
 
std::vector< biorbd::rigidbody::NodeSegmentsegmentMarkers (const biorbd::rigidbody::GeneralizedCoordinates &Q, unsigned int idx, bool removeAxis=true, bool updateKin=true)
 Return all the markers of the segment idx at a given Q in the global reference frame. More...
 
unsigned int nbMarkers () const
 Return the number of markers. More...
 
unsigned int nbMarkers (unsigned int idxSegment) const
 Return the number of markers on the segment idxSegment. More...
 
unsigned int nbTechnicalMarkers ()
 Return the number of technical markers. More...
 
unsigned int nbTechnicalMarkers (unsigned int idxSegment)
 Return the number of technical markers on the segment idxSegment. More...
 
unsigned int nbAnatomicalMarkers ()
 Return the number of anatomical markers. More...
 
std::vector< biorbd::utils::MatrixmarkersJacobian (const biorbd::rigidbody::GeneralizedCoordinates &Q, bool removeAxis=true, bool updateKin=true)
 Return the jacobian of the markers. More...
 
std::vector< biorbd::utils::MatrixtechnicalMarkersJacobian (const biorbd::rigidbody::GeneralizedCoordinates &Q, bool removeAxis=true, bool updateKin=true)
 Return the jacobian of the technical markers. More...
 
biorbd::utils::Matrix markersJacobian (const biorbd::rigidbody::GeneralizedCoordinates &Q, const biorbd::utils::String &parentName, const biorbd::rigidbody::NodeSegment &p, bool updateKin)
 Return the jacobian of a chosen marker. More...
 
bool inverseKinematics (const std::vector< biorbd::rigidbody::NodeSegment > &markers, const biorbd::rigidbody::GeneralizedCoordinates &Qinit, biorbd::rigidbody::GeneralizedCoordinates &Q, bool removeAxes=true)
 Performs an inverse kinematics. More...
 
- Public Member Functions inherited from biorbd::rigidbody::IMUs
 IMUs ()
 Construct inertial measurement units set.
 
 IMUs (const biorbd::rigidbody::IMUs &other)
 Construct inertial measurement units set from another set. More...
 
virtual ~IMUs ()
 Destroy the class properly.
 
biorbd::rigidbody::IMUs DeepCopy () const
 Deep copy of the inertial measurement units data. More...
 
void DeepCopy (const biorbd::rigidbody::IMUs &other)
 Deep copy the inertial measurement units data. More...
 
void addIMU (bool technical=true, bool anatomical=true)
 Add a new inertial measurement unit to the set. More...
 
void addIMU (const biorbd::utils::RotoTransNode &RotoTrans, bool technical=true, bool anatomical=true)
 Add a new inertial measurement unit to the set. More...
 
unsigned int nbIMUs () const
 Return the number of inertial measurement units (IMU) in the set. More...
 
std::vector< biorbd::utils::StringIMUsNames ()
 Return the names of the inertial measurement units (IMU) More...
 
std::vector< biorbd::utils::StringtechnicalIMUsNames ()
 Return the names of the technical inertial measurement units (IMU) More...
 
std::vector< biorbd::utils::StringanatomicalIMUsNames ()
 Return the names of the anatomical inertial measurement units (IMU) More...
 
const std::vector< biorbd::rigidbody::IMU > & IMU () const
 Return all the IMU in the local reference of the segment. More...
 
std::vector< biorbd::rigidbody::IMUIMU (const biorbd::utils::String &segmentName)
 Return all the inertial measurement units (IMU) of a segment. More...
 
const biorbd::rigidbody::IMUIMU (unsigned int idx)
 Return the inertial measurement unit (IMU) of a specified index. More...
 
std::vector< biorbd::rigidbody::IMUIMU (const biorbd::rigidbody::GeneralizedCoordinates &Q, bool updateKin=true)
 Compute and return all the inertial measurement units (IMU) at the position given by Q. More...
 
biorbd::rigidbody::IMU IMU (const biorbd::rigidbody::GeneralizedCoordinates &Q, unsigned int idx, bool updateKin=true)
 Compute and return one inertial meausrement unit (IMU) at the position given by Q. More...
 
std::vector< biorbd::rigidbody::IMUsegmentIMU (const biorbd::rigidbody::GeneralizedCoordinates &Q, unsigned int idx, bool updateKin=true)
 Return all the inertial measurement units (IMU) on a specified segment. More...
 
unsigned int nbTechIMUs ()
 Return the number of technical inertial measurement units (IMU) More...
 
unsigned int nbAnatIMUs ()
 Return the number of anatomical inertial measurement units (IMU) More...
 
std::vector< biorbd::rigidbody::IMUtechnicalIMU (const biorbd::rigidbody::GeneralizedCoordinates &Q, bool updateKin=true)
 Return all the technical inertial measurement units (IMU) More...
 
std::vector< biorbd::rigidbody::IMUtechnicalIMU ()
 Return all the technical inertial measurement units (IMU) in their respective segment local reference frame. More...
 
std::vector< biorbd::rigidbody::IMUanatomicalIMU (const biorbd::rigidbody::GeneralizedCoordinates &Q, bool updateKin=true)
 Return all the anatomical inertial measurement units (IMU) More...
 
std::vector< biorbd::rigidbody::IMUanatomicalIMU ()
 Return all the anatomical inertial measurement units (IMU) in their respective segment local reference frame. More...
 
std::vector< biorbd::utils::MatrixIMUJacobian (const biorbd::rigidbody::GeneralizedCoordinates &Q, bool updateKin=true)
 Return the jacobian of the inertial measurement units (IMU) More...
 
std::vector< biorbd::utils::MatrixTechnicalIMUJacobian (const biorbd::rigidbody::GeneralizedCoordinates &Q, bool updateKin=true)
 Return the jacobian of the technical inertial measurement units (IMU) More...
 
- Public Member Functions inherited from biorbd::rigidbody::RotoTransNodes
 RotoTransNodes ()
 Construct RT set.
 
 RotoTransNodes (const biorbd::rigidbody::RotoTransNodes &other)
 Construct RTs set from another set. More...
 
virtual ~RotoTransNodes ()
 Destroy the class properly.
 
biorbd::rigidbody::RotoTransNodes DeepCopy () const
 Deep copy of the RTs data. More...
 
void DeepCopy (const biorbd::rigidbody::RotoTransNodes &other)
 Deep copy the RTs data. More...
 
void addRT ()
 Add a new RT to the set.
 
void addRT (const biorbd::utils::RotoTransNode &RotoTrans)
 Add a new RT to the set. More...
 
unsigned int nbRTs () const
 Return the number of RTs in the set. More...
 
std::vector< biorbd::utils::StringRTsNames ()
 Return the names of the RTs. More...
 
const std::vector< biorbd::utils::RotoTransNode > & RTs () const
 Return all the RTs in the local reference of the segment. More...
 
std::vector< biorbd::utils::RotoTransNodeRTs (const biorbd::utils::String &segmentName)
 Return all the RTs of a segment. More...
 
const biorbd::utils::RotoTransNodeRT (unsigned int idx)
 Return the RTs of a specified index. More...
 
std::vector< biorbd::utils::RotoTransNodeRTs (const biorbd::rigidbody::GeneralizedCoordinates &Q, bool updateKin=true)
 Compute and return all the RTs at the position given by Q. More...
 
biorbd::utils::RotoTransNode RT (const biorbd::rigidbody::GeneralizedCoordinates &Q, unsigned int idx, bool updateKin=true)
 Compute and return the RT of index idx at the position given by Q. More...
 
std::vector< biorbd::utils::RotoTransNodesegmentRTs (const biorbd::rigidbody::GeneralizedCoordinates &Q, unsigned int idx, bool updateKin=true)
 Return all the RTs on a specified segment. More...
 
std::vector< biorbd::utils::MatrixRTsJacobian (const biorbd::rigidbody::GeneralizedCoordinates &Q, bool updateKin=true)
 Return the jacobian of the RTs. More...
 
- Public Member Functions inherited from biorbd::rigidbody::Contacts
 Contacts ()
 Construct contacts.
 
biorbd::rigidbody::Contacts DeepCopy () const
 Deep copy of contacts. More...
 
void DeepCopy (const biorbd::rigidbody::Contacts &other)
 Deep copy of contacts. More...
 
unsigned int AddConstraint (unsigned int body_id, const biorbd::utils::Vector3d &body_point, const biorbd::utils::Vector3d &world_normal, const biorbd::utils::String &name, double acc=0)
 Add a constraint to the constraint set. More...
 
unsigned int AddConstraint (unsigned int body_id, const biorbd::utils::Vector3d &body_point, const biorbd::utils::String &axis, const biorbd::utils::String &name, double acc=0)
 Add a constraint to the constraint set. More...
 
unsigned int AddLoopConstraint (unsigned int body_id_predecessor, unsigned int body_id_successor, const biorbd::utils::RotoTrans &X_predecessor, const biorbd::utils::RotoTrans &X_successor, const biorbd::utils::SpatialVector &axis, const biorbd::utils::String &name, bool enableStabilization=false, double stabilizationParam=0.1)
 Add a loop constraint to the constraint set. More...
 
virtual ~Contacts ()
 Destroy the class properly.
 
ContactsgetConstraints ()
 Get constraints. More...
 
bool hasContacts () const
 Check if there are contacts. More...
 
unsigned int nbContacts () const
 Return the number of contacts. More...
 
std::vector< biorbd::utils::StringcontactNames ()
 Return the name of the all contacts. More...
 
biorbd::utils::String contactName (unsigned int i)
 Return the name of the contact of a specified axis. More...
 
std::vector< biorbd::utils::Vector3dconstraintsInGlobal (const biorbd::rigidbody::GeneralizedCoordinates &Q, bool updateKin)
 Return the contraints position in the global reference. More...
 
biorbd::utils::Vector getForce () const
 Return the force acting on the contraint. More...
 

Additional Inherited Members

- Protected Member Functions inherited from biorbd::rigidbody::Joints
RigidBodyDynamics::Math::SpatialTransform CalcBodyWorldTransformation (const biorbd::rigidbody::GeneralizedCoordinates &Q, const unsigned int segmentIdx, bool updateKin=true)
 Calculate the joint coordinate system (JCS) in global reference frame of a specified segment. More...
 
RigidBodyDynamics::Math::SpatialTransform CalcBodyWorldTransformation (const unsigned int segmentIdx) const
 Calculate the joint coordinate system (JCS) in global of a specified segment. More...
 
std::vector< biorbd::utils::Vector3dmeshPoints (const std::vector< biorbd::utils::RotoTrans > &RT, unsigned int idx) const
 Return the mesh vertices of segment idx. More...
 
- Protected Member Functions inherited from biorbd::rigidbody::Markers
std::vector< biorbd::utils::MatrixmarkersJacobian (const biorbd::rigidbody::GeneralizedCoordinates &Q, bool removeAxis, bool updateKin, bool lookForTechnical)
 Compute the jacobian of the markers. More...
 
- Protected Member Functions inherited from biorbd::rigidbody::IMUs
std::vector< biorbd::utils::MatrixIMUJacobian (const biorbd::rigidbody::GeneralizedCoordinates &Q, bool updateKin, bool lookForTechnical)
 Compute and return the jacobian of all the inertial measurement units (IMU) More...
 
- Protected Attributes inherited from biorbd::rigidbody::Joints
std::shared_ptr< std::vector< biorbd::rigidbody::Segment > > m_segments
 All the articulations.
 
std::shared_ptr< unsigned int > m_nbRoot
 The number of DoF on the root segment.
 
std::shared_ptr< unsigned int > m_nbDof
 The total number of degrees of freedom

 
std::shared_ptr< unsigned int > m_nbQ
 The total number of Q.
 
std::shared_ptr< unsigned int > m_nbQdot
 The total number of Qdot.
 
std::shared_ptr< unsigned int > m_nbQddot
 The total number of Qddot.
 
std::shared_ptr< unsigned int > m_nRotAQuat
 The number of segments per quaternion.
 
std::shared_ptr< bool > m_isKinematicsComputed
 If the kinematics are computed.
 
std::shared_ptr< double > m_totalMass
 Mass of all the bodies combined.
 
- Protected Attributes inherited from biorbd::rigidbody::Markers
std::shared_ptr< std::vector< biorbd::rigidbody::NodeSegment > > m_marks
 The markers.
 
- Protected Attributes inherited from biorbd::rigidbody::IMUs
std::shared_ptr< std::vector< biorbd::rigidbody::IMU > > m_IMUs
 All the inertial Measurement Units.
 
- Protected Attributes inherited from biorbd::rigidbody::RotoTransNodes
std::shared_ptr< std::vector< biorbd::utils::RotoTransNode > > m_RTs
 All the RTs.
 
- Protected Attributes inherited from biorbd::rigidbody::Contacts
std::shared_ptr< unsigned int > m_nbreConstraint
 Number of constraints.
 
std::shared_ptr< bool > m_isBinded
 If the model is ready.
 

Detailed Description

The actual musculoskeletal model that holds everything in biorbd.

Definition at line 66 of file BiorbdModel.h.

Constructor & Destructor Documentation

◆ Model()

biorbd::Model::Model ( const biorbd::utils::Path path)

Construct a model from a bioMod file.

Parameters
pathThe path of the file

Definition at line 21 of file BiorbdModel.cpp.

Member Function Documentation

◆ path()

biorbd::utils::Path biorbd::Model::path ( ) const

Returns the path of .bioMod file used to load the model. If no file was used, it remains empty.

Returns
The path of .bioMod file used to load the model

Definition at line 28 of file BiorbdModel.cpp.


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