Biorbd
include
Muscles
Muscle.h
1
#ifndef BIORBD_MUSCLES_H
2
#define BIORBD_MUSCLES_H
3
4
#include "biorbdConfig.h"
5
#include "Muscles/Compound.h"
6
#include "Utils/Scalar.h"
7
8
namespace
biorbd {
9
namespace
utils {
10
class
Matrix;
11
class
Vector3d;
12
}
13
14
namespace
muscles {
15
class
Geometry;
16
class
Characteristics;
17
class
State;
18
22
class
BIORBD_API
Muscle
:
public
biorbd::muscles::Compound
23
{
24
public
:
28
Muscle
();
29
36
Muscle
(
37
const
biorbd::utils::String
& name,
38
const
biorbd::muscles::Geometry
& position,
39
const
biorbd::muscles::Characteristics
& characteristics);
40
48
Muscle
(
49
const
biorbd::utils::String
& name,
50
const
biorbd::muscles::Geometry
& position,
51
const
biorbd::muscles::Characteristics
& characteristics,
52
const
biorbd::muscles::State
& emg);
53
61
Muscle
(
62
const
biorbd::utils::String
& name,
63
const
biorbd::muscles::Geometry
& position,
64
const
biorbd::muscles::Characteristics
& characteristics,
65
const
biorbd::muscles::PathModifiers
& pathModifiers);
66
75
Muscle
(
76
const
biorbd::utils::String
& name,
77
const
biorbd::muscles::Geometry
& position,
78
const
biorbd::muscles::Characteristics
& characteristics,
79
const
biorbd::muscles::PathModifiers
& pathModifiers,
80
const
biorbd::muscles::State
& emg);
81
86
Muscle
(
87
const
biorbd::muscles::Muscle
& other);
88
93
Muscle
(
94
const
std::shared_ptr<biorbd::muscles::Muscle> other);
95
99
virtual
~
Muscle
();
100
105
void
DeepCopy(
106
const
biorbd::muscles::Muscle
& other);
107
108
// Get and set
109
117
const
biorbd::utils::Scalar& length(
118
biorbd::rigidbody::Joints
& model,
119
const
biorbd::rigidbody::GeneralizedCoordinates
& Q,
120
int
updateKin = 2);
121
129
const
biorbd::utils::Scalar& musculoTendonLength(
130
biorbd::rigidbody::Joints
& model,
131
const
biorbd::rigidbody::GeneralizedCoordinates
& Q,
132
int
updateKin = 2);
133
142
const
biorbd::utils::Scalar& velocity(
143
biorbd::rigidbody::Joints
& model,
144
const
biorbd::rigidbody::GeneralizedCoordinates
& Q,
145
const
biorbd::rigidbody::GeneralizedVelocity
& Qdot,
146
bool
updateKin =
true
);
147
154
void
updateOrientations(
155
biorbd::rigidbody::Joints
&model,
156
const
biorbd::rigidbody::GeneralizedCoordinates
&Q,
157
int
updateKin = 2);
158
166
void
updateOrientations(
167
biorbd::rigidbody::Joints
&model,
168
const
biorbd::rigidbody::GeneralizedCoordinates
&Q,
169
const
biorbd::rigidbody::GeneralizedVelocity
&Qdot,
170
int
updateKin = 2);
171
177
void
updateOrientations(
178
std::vector<biorbd::utils::Vector3d>& musclePointsInGlobal,
179
biorbd::utils::Matrix
& jacoPointsInGlobal);
180
187
void
updateOrientations(
188
std::vector<biorbd::utils::Vector3d>& musclePointsInGlobal,
189
biorbd::utils::Matrix
& jacoPointsInGlobal,
190
const
biorbd::rigidbody::GeneralizedVelocity
&Qdot);
191
196
void
setPosition(
197
const
biorbd::muscles::Geometry
&positions);
198
203
const
biorbd::muscles::Geometry
& position()
const
;
204
209
void
setCharacteristics(
210
const
biorbd::muscles::Characteristics
&characteristics);
211
216
const
biorbd::muscles::Characteristics
& characteristics()
const
;
217
224
const
std::vector<biorbd::utils::Vector3d>& musclesPointsInGlobal(
225
biorbd::rigidbody::Joints
&model,
226
const
biorbd::rigidbody::GeneralizedCoordinates
&Q);
227
232
const
std::vector<biorbd::utils::Vector3d>& musclesPointsInGlobal()
const
;
233
238
void
setForceIsoMax(
239
const
biorbd::utils::Scalar& forceMax);
240
245
void
setState(
246
const
biorbd::muscles::State
&emg);
247
252
const
biorbd::muscles::State
& state()
const
;
253
258
biorbd::muscles::State
& state();
259
266
const
biorbd::utils::Scalar& activationDot(
267
const
biorbd::muscles::State
& state,
268
bool
alreadyNormalized =
false
)
const
;
269
protected
:
274
virtual
void
computeForce(
275
const
biorbd::muscles::State
&emg);
276
282
virtual
biorbd::utils::Scalar
getForceFromActivation
(
const
biorbd::muscles::State
&emg) = 0;
283
284
std::shared_ptr<biorbd::muscles::Geometry>
m_position
;
285
std::shared_ptr<biorbd::muscles::Characteristics>
m_characteristics
;
286
std::shared_ptr<biorbd::muscles::State>
m_state
;
287
288
};
289
290
}}
291
292
#endif // BIORBD_MUSCLES_H
biorbd::muscles::Muscle::m_state
std::shared_ptr< biorbd::muscles::State > m_state
The dynamic state.
Definition:
Muscle.h:286
biorbd::muscles::Compound
Class compound is a very generic definition of what a muscle is. It should be the base class of every...
Definition:
Compound.h:30
biorbd::muscles::State
EMG holder to interact with the muscle.
Definition:
State.h:16
biorbd::muscles::Muscle::m_position
std::shared_ptr< biorbd::muscles::Geometry > m_position
The position of all the nodes of the muscle (0 being the origin and last being insertion.
Definition:
Muscle.h:284
biorbd::muscles::Muscle::getForceFromActivation
virtual biorbd::utils::Scalar getForceFromActivation(const biorbd::muscles::State &emg)=0
Function allowing modification of the way the multiplication is done in computeForce(EMG)
biorbd::rigidbody::GeneralizedCoordinates
Class GeneralizedCoordinates.
Definition:
GeneralizedCoordinates.h:15
biorbd::muscles::Geometry
Class Geometry of the muscle.
Definition:
Geometry.h:30
biorbd::rigidbody::Joints
This is the core of the musculoskeletal model in biorbd.
Definition:
Joints.h:40
biorbd::muscles::PathModifiers
Holder of all the path modifiers of a muscle.
Definition:
PathModifiers.h:18
biorbd::utils::Matrix
A wrapper for the Eigen::MatrixXd.
Definition:
Matrix.h:21
biorbd::muscles::Muscle::m_characteristics
std::shared_ptr< biorbd::muscles::Characteristics > m_characteristics
The muscle characteristics.
Definition:
Muscle.h:285
biorbd::utils::String
Wrapper around the std::string class with augmented functionality.
Definition:
String.h:17
biorbd::muscles::Characteristics
Class Holds that muscle characteristics.
Definition:
Characteristics.h:17
biorbd::rigidbody::GeneralizedVelocity
Class GeneralizedVelocity.
Definition:
GeneralizedVelocity.h:15
biorbd::muscles::Muscle
Base class of all muscle.
Definition:
Muscle.h:23
Generated by
1.8.18