Professional Documents
Culture Documents
Muscoloskeletal geometry
1. Modeling the Paths of Muscolotendinous Actuators
2. Obstacle Set Method
Straigth-line method
(Jensen and Davy, 1975)
Centroid-line method
(Jensen and Davy, 1975)
easy to implement
X useless results when a muscle
wraps around a bone or
another muscle
Straigth-line method
(Jensen and Davy, 1975)
Centroid-line method
(Jensen and Davy, 1975)
easy to implement
X useless results when a muscle
wraps around a bone or
another muscle
Obstacle-Set Method
(Garner and Pandy, 2000)
This method idealizes each musculotendinous
actuator as a frictionless elastic band that can slide
freely over the bones and other actuators as the
configuration of the joint changes.
The musculotendinous path is defined by a series of
straight-line and curved-line segments joined together
by via points, which may or may not be fixed
relative to the bones
Methods Comparison
Fig.1
Obstacle-Set Method
The locations of the attachment sites
of the muscle and the locations and
orientations of the obstacles were
chosen to reproduce the centroid
paths of each portion of the modeled
muscle.
Because the path of a muscle is not
improperly constrained by contact
with neighboring muscles and bones,
the obstacle-set method produces:
accurate estimates of muscle
moment arms
smooth moment armjoint angle
curves, as illustrated in Fig.1
MT
am),
m
0a 1,
(1)
Given values of FMT, lMT, vMT, and am at one instant in time, Eq. (1) can be integrated
numerically to find musculotendon force at the next instant.
1. Ricostruzione Mesh 3D
close all
clear all
clc
A=[0,0,0;0,0,0;0,0,0];
tol=10^(-14);
a0=[1;1;1]
b0=[1;2;1]
c0=[0;2;3]
a1=[2.612372436;0.387627564;1.5]
b1=[2.862372436;1.137627564;2.11237243
6]
c1=[3.337117307;0.337117307;3.724744872]
% a0=[1;1;7]
% b0=[4;7;1]
% c0=[7;10;10]
% a1=[7;1;7]
% b1=[3;9;6]
% c1=[10;10;13]
d=([a1-a0,b1-b0,c1-c0])'
u=inv(d)*[1;1;1]
uu=u/(sqrt((u(1))^2+(u(2))^2+(u(3))^2)
u_emi=[0,-uu(3),uu(2);uu(3),0,-uu(1);uu(2),uu(1),0]
h1=u_emi*(a0-b0)
h2=u_emi*(a1-b1)
c=(((h1)')*h2)/((norm(h1))*(norm(h2)))
theta=acos(c)
A=[(uu(1)^2)*(1-c)+c,
(uu(1)*uu(2))*(1-c)-uu(3)*sin(theta),
(uu(1)*uu(3))*(1-c)+uu(2)*sin(theta);
(uu(1)*uu(2))*(1c)+uu(3)*sin(theta),
(uu(2)^2)*(1-c)+c,(uu(2)*uu(3))*(1-c)
uu(1)*sin(theta);
(uu(1)*uu(3))*(1-c)-uu(2)*sin(theta),
(uu(2)*uu(3))*(1-c)+uu(1)*sin(theta),
(uu(3)^2)*(1-c)+c]
close all
clear all
clc
% x1=0.02236068
% y1=0.01118034
% z1=0.10
% x2=0.00928477
% y2=0.02321192
% z2=0.15
% t1=atan(y1/x1)
% t2=atan(y2/x2)
% c=((z1-z2)/(t1-t2))
% k=z1-((z1-z2)/(t1-t2))*t1
% x1=-0.01345541
% y1=0.02107017
% z1=0.16494454
% x2=0.02491081
% y2=0.0021099
% z2=0.11129092
% t1=atan(y1/x1)
% t2=atan(y2/x2)
% c=((z1-z2)/(t1-t2))
% k=z1-((z1-z2)/(t1-t2))*t1
% x1=1.94448291*10^(-3)
% y1=14.87343223*10^(-3)
% z1=66.39059567*10^(-3)
% x2=-14.02379309*10^(-3)
% y2=-5.32289651*10^(-3)
% z2=64.55098222*10^(-3)
x2= 14.02379309*(10^(-3))
y2= -5.32289651*(10^(-3))
z2= 63.44430452*(10^(-3))
x1= 1.94448292*(10^(-3))
y1= 14.87343223*(10^(-3))
z1= 76.86365141*(10^(-3))
t1=atan(y1/x1)
t2=atan(y2/x2)
c=((z1-z2)/(t1-t2))
k=z1-((z1-z2)/(t1-t2))*t1
close all
clear all
clc
a=1;
b=-1;
c=2;
d=-3;
theta = 0:0.1:pi/2;
plot3(cos(theta),sin(theta),(a*cos(theta)+b*sin(theta)+d)/c)
view(135,30)
grid on
box on
f = @(theta) sqrt(sin(theta).^2 +
cos(theta).^2 + ((a*sin(theta)+b*cos(theta))/(c)).^2);
len1 = integral(f,0,pi/2)
hold on
x1=1
y1=0
z1=1
x2=0
y2=1
z2=2
t1=atan(y1/x1)
t2=atan(y2/x2)
c=((z1-z2)/(t1-t2))
k=z1-((z1-z2)/(t1-t2))*t1
r = 1;
t = t1:0.01:t2;
x = r*cos(t);
y = r*sin(t);
z = c*t+k;
figure(1)
plot3(x, y, z);
grid on
xlabel('x'); ylabel('y');
title('Circula helix');
f = @(t) sqrt((sin(t)).^2 +
(cos(t)).^2 + (c).^2);
len2 = integral(f,t1,t2)
len1
len2
diff1=(abs(len1-len2))/(len2)
diff=diff1*100
5. Soluzione proposta