Specifications
103
length, pennation angle, tendon elasticity, and stiffness of passive tissues into account. Please refer to the
reference manual
for concise information about the available muscle models:
1. AnyMuscleModel - assuming constant strength of the muscle
2. AnyMuscleModel3E - a three element model taking serial and parallel elastic elements into account
along with fiber length and contraction velocity
3. AnyMuscleModel2ELin - a bilinear model taking length and contraction velocity into account.
The muscle models can be linked to different types of muscles:
1. AnyViaPointMuscle - a muscle that passes through any number of nodes on segments on its way
from origin to insertion
2. AnyShortestPathMuscle - a muscle that can wrap over geometries such as cylinders and ellipsoids
and even CAD-defined surfaces. Please beware that this muscle type is very computationally
demanding and requires careful adjustment.
3. AnyGeneralMuscle - a more standard actuator-type muscle that can be attached to a kinematic
measure.
Please refer to the reference manual
for more information, or proceed to the basics of muscle modeling in
Lesson 1
.
Lesson 1: The basics of muscle definition
The key to understanding muscles in the AnyBody Modeling System is to realize that they mechanically
consist of two separate computational models:
1. The kinematic model, which determines the muscle's path from origin to insertion depending on the
posture of the body. This also entails finding the length and contraction velocity of the muscle.
2. The strength model which determines the muscle's strength and possible its passive elastic force
depending on the kinematic state of the muscle.
This would be a sad excuse for a tutorial if we did not have an example to work on. So lt us quickly
construct a very simple example that will enable us to examine the properties of muscles. Here's an
extremely simple one-degree-of-freedom model (right-click and save to disk)
:
// This is a very simple model for demonstration of muscle modeling
Main = {
AnyFolder MyModel = {
// Global Reference Frame
AnyFixedRefFrame GlobalRef = {
AnyDrawRefFrame drw = {
RGB = {1,0,0};
};
}; // Global reference frame
// Define one simple segment
AnySeg Arm = {
r0 = {0.500000, 0.000000, 0.000000};
Mass = 1.000000;
Jii = {0.100000, 1.000000, 1.000000}*0.1;
AnyRefNode Jnt = {
sRel = {-0.5, 0.0, 0};
};
AnyDrawSeg drw = {};
};
// Attach the segment to ground by a revolute joint










