Biorbd
Public Member Functions | Protected Attributes | List of all members
biorbd::muscles::Muscles Class Reference

Muscle group holder. More...

#include <Muscles.h>

Public Member Functions

 Muscles ()
 Construct muscles.
 
 Muscles (const biorbd::muscles::Muscles &other)
 Construct muscles from other muscles. More...
 
virtual ~Muscles ()
 Destroy class properly.
 
biorbd::muscles::Muscles DeepCopy () const
 Deep copy of muscles. More...
 
void DeepCopy (const biorbd::muscles::Muscles &other)
 Deep copy of muscles into another mucles. More...
 
void addMuscleGroup (const biorbd::utils::String &name, const biorbd::utils::String &originName, const biorbd::utils::String &insertionName)
 Add a muscle group to the set. More...
 
int getGroupId (const biorbd::utils::String &name) const
 Return the group ID. More...
 
const std::vector< std::shared_ptr< biorbd::muscles::Muscle > > muscles () const
 Returns all the muscles. It sorts the muscles by group. More...
 
const biorbd::muscles::Musclemuscle (unsigned int idx) const
 Returns a specific muscle sorted by muscles() More...
 
std::vector< biorbd::utils::StringmuscleNames () const
 muscleNames Return the names for all the muscle ordered by their respective group name More...
 
std::vector< biorbd::muscles::MuscleGroup > & muscleGroups ()
 Return the muscle groups. More...
 
const std::vector< biorbd::muscles::MuscleGroup > & muscleGroups () const
 Return the muscle groups. More...
 
biorbd::muscles::MuscleGroupmuscleGroup (unsigned int idx)
 Return the muscle group of specific index. More...
 
const biorbd::muscles::MuscleGroupmuscleGroup (unsigned int idx) const
 Return the muscle group of specific index. More...
 
const biorbd::muscles::MuscleGroupmuscleGroup (const biorbd::utils::String &name) const
 Return the muscle group of specific name. More...
 
void updateMuscles (const biorbd::rigidbody::GeneralizedCoordinates &Q, bool updateKin)
 Update all the muscles (positions, jacobian, etc.) More...
 
void updateMuscles (const biorbd::rigidbody::GeneralizedCoordinates &Q, const biorbd::rigidbody::GeneralizedVelocity &QDot, bool updateKin)
 Update all the muscles (positions, jacobian, etc.) More...
 
void updateMuscles (std::vector< std::vector< biorbd::utils::Vector3d >> &musclePointsInGlobal, std::vector< biorbd::utils::Matrix > &jacoPointsInGlobal)
 Update by hand all the muscles (positions, jacobian, velocity, etc.) More...
 
void updateMuscles (std::vector< std::vector< biorbd::utils::Vector3d >> &musclePointsInGlobal, std::vector< biorbd::utils::Matrix > &jacoPointsInGlobal, const biorbd::rigidbody::GeneralizedVelocity &QDot)
 Update by hand all the muscles (positions, jacobian, velocity, etc.) More...
 
biorbd::rigidbody::GeneralizedTorque muscularJointTorque (const biorbd::utils::Vector &F)
 Compute the muscular joint torque. More...
 
biorbd::rigidbody::GeneralizedTorque muscularJointTorque (const biorbd::utils::Vector &F, const biorbd::rigidbody::GeneralizedCoordinates &Q, const biorbd::rigidbody::GeneralizedVelocity &QDot)
 Compute the muscular joint torque. More...
 
biorbd::rigidbody::GeneralizedTorque muscularJointTorque (const std::vector< std::shared_ptr< biorbd::muscles::State >> &emg)
 Compute the muscular joint torque. More...
 
biorbd::rigidbody::GeneralizedTorque muscularJointTorque (const std::vector< std::shared_ptr< biorbd::muscles::State >> &emg, const biorbd::rigidbody::GeneralizedCoordinates &Q, const biorbd::rigidbody::GeneralizedVelocity &QDot)
 Compute the muscular joint torque. More...
 
biorbd::utils::Vector activationDot (const std::vector< std::shared_ptr< biorbd::muscles::State >> &states, bool areadyNormalized=true)
 Interface that returns in a vector all the activations dot. More...
 
biorbd::utils::Matrix musclesLengthJacobian ()
 Return the previously computed muscle length jacobian. More...
 
biorbd::utils::Matrix musclesLengthJacobian (const biorbd::rigidbody::GeneralizedCoordinates &Q)
 Compute and return the muscle length Jacobian. More...
 
biorbd::utils::Vector muscleForces (const std::vector< std::shared_ptr< biorbd::muscles::State >> &emg)
 Compute and return the muscle forces. More...
 
biorbd::utils::Vector muscleForces (const std::vector< std::shared_ptr< biorbd::muscles::State >> &emg, const biorbd::rigidbody::GeneralizedCoordinates &Q, const biorbd::rigidbody::GeneralizedVelocity &QDot)
 Compute and return the muscle forces. More...
 
unsigned int nbMuscleGroups () const
 Return the total number of muscle groups. More...
 
unsigned int nbMuscleTotal () const
 Return the total number of muscle. More...
 
unsigned int nbMuscles () const
 Return the total number of muscle. More...
 

Protected Attributes

std::shared_ptr< std::vector< biorbd::muscles::MuscleGroup > > m_mus
 Holder for muscle groups.
 

Detailed Description

Muscle group holder.

Definition at line 31 of file Muscles.h.

Constructor & Destructor Documentation

◆ Muscles()

biorbd::muscles::Muscles::Muscles ( const biorbd::muscles::Muscles other)

Construct muscles from other muscles.

Parameters
otherThe other muscles

Definition at line 21 of file Muscles.cpp.

Member Function Documentation

◆ activationDot()

biorbd::utils::Vector biorbd::muscles::Muscles::activationDot ( const std::vector< std::shared_ptr< biorbd::muscles::State >> &  states,
bool  areadyNormalized = true 
)

Interface that returns in a vector all the activations dot.

Parameters
statesThe state of the muscle
areadyNormalizedIf the states are already normalized
Returns
All the activations dot

Definition at line 167 of file Muscles.cpp.

◆ addMuscleGroup()

void biorbd::muscles::Muscles::addMuscleGroup ( const biorbd::utils::String name,
const biorbd::utils::String originName,
const biorbd::utils::String insertionName 
)

Add a muscle group to the set.

Parameters
nameThe name of the muscle group
originNameThe origin segment name where the origin lies
insertionNameThe insertion segment name where the origin lies

Definition at line 47 of file Muscles.cpp.

◆ DeepCopy() [1/2]

biorbd::muscles::Muscles biorbd::muscles::Muscles::DeepCopy ( ) const

Deep copy of muscles.

Returns
A deep copy of muscles

Definition at line 32 of file Muscles.cpp.

◆ DeepCopy() [2/2]

void biorbd::muscles::Muscles::DeepCopy ( const biorbd::muscles::Muscles other)

Deep copy of muscles into another mucles.

Parameters
otherThe muscles to copy

Definition at line 39 of file Muscles.cpp.

◆ getGroupId()

int biorbd::muscles::Muscles::getGroupId ( const biorbd::utils::String name) const

Return the group ID.

Parameters
nameThe name of the muscle group
Returns
The group ID (returns -1 if not found)

Definition at line 58 of file Muscles.cpp.

◆ muscle()

const biorbd::muscles::Muscle & biorbd::muscles::Muscles::muscle ( unsigned int  idx) const

Returns a specific muscle sorted by muscles()

Parameters
idxThe muscle index
Returns
The muscle

Definition at line 77 of file Muscles.cpp.

◆ muscleForces() [1/2]

biorbd::utils::Vector biorbd::muscles::Muscles::muscleForces ( const std::vector< std::shared_ptr< biorbd::muscles::State >> &  emg)

Compute and return the muscle forces.

Parameters
emgThe dynamic state
Returns
The muscle forces

Warning: This function assumes that muscles are already updated (via updateMuscles)

Definition at line 185 of file Muscles.cpp.

◆ muscleForces() [2/2]

biorbd::utils::Vector biorbd::muscles::Muscles::muscleForces ( const std::vector< std::shared_ptr< biorbd::muscles::State >> &  emg,
const biorbd::rigidbody::GeneralizedCoordinates Q,
const biorbd::rigidbody::GeneralizedVelocity QDot 
)

Compute and return the muscle forces.

Parameters
emgThe dynamic state
QThe generalized coordinates
QDotThe generalized velocities
Returns
The muscle forces

Definition at line 203 of file Muscles.cpp.

◆ muscleGroup() [1/3]

const biorbd::muscles::MuscleGroup & biorbd::muscles::Muscles::muscleGroup ( const biorbd::utils::String name) const

Return the muscle group of specific name.

Parameters
nameThe name of the muscle group to return
Returns
A muscle group

Definition at line 121 of file Muscles.cpp.

◆ muscleGroup() [2/3]

biorbd::muscles::MuscleGroup & biorbd::muscles::Muscles::muscleGroup ( unsigned int  idx)

Return the muscle group of specific index.

Parameters
idxThe index of the muscle group to return
Returns
A muscle group

Definition at line 111 of file Muscles.cpp.

◆ muscleGroup() [3/3]

const biorbd::muscles::MuscleGroup & biorbd::muscles::Muscles::muscleGroup ( unsigned int  idx) const

Return the muscle group of specific index.

Parameters
idxThe index of the muscle group to return
Returns
A muscle group

Definition at line 117 of file Muscles.cpp.

◆ muscleGroups() [1/2]

std::vector< biorbd::muscles::MuscleGroup > & biorbd::muscles::Muscles::muscleGroups ( )

Return the muscle groups.

Returns
The muscle groups

Definition at line 101 of file Muscles.cpp.

◆ muscleGroups() [2/2]

const std::vector< biorbd::muscles::MuscleGroup > & biorbd::muscles::Muscles::muscleGroups ( ) const

Return the muscle groups.

Returns
The muscle groups

Definition at line 106 of file Muscles.cpp.

◆ muscleNames()

std::vector< biorbd::utils::String > biorbd::muscles::Muscles::muscleNames ( ) const

muscleNames Return the names for all the muscle ordered by their respective group name

Returns
All the muscle names

Definition at line 90 of file Muscles.cpp.

◆ muscles()

const std::vector< std::shared_ptr< biorbd::muscles::Muscle > > biorbd::muscles::Muscles::muscles ( ) const

Returns all the muscles. It sorts the muscles by group.

Returns
All the muscle

Definition at line 66 of file Muscles.cpp.

◆ musclesLengthJacobian() [1/2]

biorbd::utils::Matrix biorbd::muscles::Muscles::musclesLengthJacobian ( )

Return the previously computed muscle length jacobian.

Returns
The muscle length jacobian

Definition at line 218 of file Muscles.cpp.

◆ musclesLengthJacobian() [2/2]

biorbd::utils::Matrix biorbd::muscles::Muscles::musclesLengthJacobian ( const biorbd::rigidbody::GeneralizedCoordinates Q)

Compute and return the muscle length Jacobian.

Parameters
QThe generalized coordinates
Returns
The muscle length Jacobian

Definition at line 233 of file Muscles.cpp.

◆ muscularJointTorque() [1/4]

biorbd::rigidbody::GeneralizedTorque biorbd::muscles::Muscles::muscularJointTorque ( const biorbd::utils::Vector F)

Compute the muscular joint torque.

Parameters
FThe force vector of all the muscles

The computation for the muscular joint torque is done from virtual power:

i.e. $-J \times F$

where $J$ is the muscle lengths jacobian and $F$ is the force vector of all the muscles

Warning: This function assumes that muscles are already updated (via updateMuscles)

Definition at line 128 of file Muscles.cpp.

◆ muscularJointTorque() [2/4]

biorbd::rigidbody::GeneralizedTorque biorbd::muscles::Muscles::muscularJointTorque ( const biorbd::utils::Vector F,
const biorbd::rigidbody::GeneralizedCoordinates Q,
const biorbd::rigidbody::GeneralizedVelocity QDot 
)

Compute the muscular joint torque.

Parameters
FThe force vector of all the muscles
QThe generalized coordinates
QDotThe generalized velocities

This function updates the muscles and then performs the computation for the muscular joint torque is done from virtual power:

i.e. $-J \times F$

where $J$ is the muscle lengths jacobian and $F$ is the force vector of all the muscles

Warning: This function assumes that muscles are already updated (via updateMuscles)

Definition at line 139 of file Muscles.cpp.

◆ muscularJointTorque() [3/4]

biorbd::rigidbody::GeneralizedTorque biorbd::muscles::Muscles::muscularJointTorque ( const std::vector< std::shared_ptr< biorbd::muscles::State >> &  emg)

Compute the muscular joint torque.

Parameters
emgThe dynamic state to compute the force vector

This functions converts muscle activations into muscle forces and then performs the computation for the muscular joint torque is done from virtual power:

i.e. $-J \times F$

where $J$ is the muscle lengths jacobian and $F$ is the force vector of all the muscles

Warning: This function assumes that muscles are already updated (via updateMuscles)

Definition at line 152 of file Muscles.cpp.

◆ muscularJointTorque() [4/4]

biorbd::rigidbody::GeneralizedTorque biorbd::muscles::Muscles::muscularJointTorque ( const std::vector< std::shared_ptr< biorbd::muscles::State >> &  emg,
const biorbd::rigidbody::GeneralizedCoordinates Q,
const biorbd::rigidbody::GeneralizedVelocity QDot 
)

Compute the muscular joint torque.

Parameters
emgThe dynamic state to compute the force vector
QThe generalized coordinates (not needed if updateKin is false)
QDotThe generalized velocities (not needed if updateKin is false)

The computation for the muscular joint torque is done from virtual power:

i.e. $-J \times F$

where $J$ is the muscle lengths jacobian and $F$ is the force vector of all the muscles

Definition at line 159 of file Muscles.cpp.

◆ nbMuscleGroups()

unsigned int biorbd::muscles::Muscles::nbMuscleGroups ( ) const

Return the total number of muscle groups.

Returns
The total number of muscle groups

Definition at line 214 of file Muscles.cpp.

◆ nbMuscles()

unsigned int biorbd::muscles::Muscles::nbMuscles ( ) const

Return the total number of muscle.

Returns
The total number of muscles

Definition at line 246 of file Muscles.cpp.

◆ nbMuscleTotal()

unsigned int biorbd::muscles::Muscles::nbMuscleTotal ( ) const

Return the total number of muscle.

Returns
The total number of muscles

Definition at line 242 of file Muscles.cpp.

◆ updateMuscles() [1/4]

void biorbd::muscles::Muscles::updateMuscles ( const biorbd::rigidbody::GeneralizedCoordinates Q,
bool  updateKin 
)

Update all the muscles (positions, jacobian, etc.)

Parameters
QThe generalized coordinates
updateKinUpdate kinematics (0: don't update, 1:only muscles, [2: both kinematics and muscles])

Definition at line 277 of file Muscles.cpp.

◆ updateMuscles() [2/4]

void biorbd::muscles::Muscles::updateMuscles ( const biorbd::rigidbody::GeneralizedCoordinates Q,
const biorbd::rigidbody::GeneralizedVelocity QDot,
bool  updateKin 
)

Update all the muscles (positions, jacobian, etc.)

Parameters
QThe generalized coordinates
QDotThe generalized velocities
updateKinUpdate kinematics (0: don't update, 1:only muscles, [2: both kinematics and muscles])

Definition at line 254 of file Muscles.cpp.

◆ updateMuscles() [3/4]

void biorbd::muscles::Muscles::updateMuscles ( std::vector< std::vector< biorbd::utils::Vector3d >> &  musclePointsInGlobal,
std::vector< biorbd::utils::Matrix > &  jacoPointsInGlobal 
)

Update by hand all the muscles (positions, jacobian, velocity, etc.)

Parameters
musclePointsInGlobalThe muscle points in global reference frame
jacoPointsInGlobalThe jacobian points in global reference frame

Definition at line 312 of file Muscles.cpp.

◆ updateMuscles() [4/4]

void biorbd::muscles::Muscles::updateMuscles ( std::vector< std::vector< biorbd::utils::Vector3d >> &  musclePointsInGlobal,
std::vector< biorbd::utils::Matrix > &  jacoPointsInGlobal,
const biorbd::rigidbody::GeneralizedVelocity QDot 
)

Update by hand all the muscles (positions, jacobian, velocity, etc.)

Parameters
musclePointsInGlobalThe muscle points in global reference frame
jacoPointsInGlobalThe jacobian points in global reference frame
QDotThe generalized velocities

Definition at line 300 of file Muscles.cpp.


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