2つのベクトルがなす​​角度、角速度、角加​速度を求めるための方​​法が分からないので​す​が、どういった計​算方​法があるでしょ​うか?

48 vues (au cours des 30 derniers jours)
幸汰 吉川
幸汰 吉川 le 26 Déc 2022
Modifié(e) : COVAO le 21 Mar 2023
今、ダーツの動作解析を行おうとしており、肩と肘、手首、親指と4箇所にマーカをつけ、それぞれの単位ベクトルx,y,zを作成しました。そこで、肘関節の屈曲/伸展角度を求め、その後、角速度と角加速度を求めたいのですがよくわかりません。どなたかわかる方がいらっしゃいましたらお願いいたします。

Réponses (1)

COVAO
COVAO le 21 Mar 2023
Modifié(e) : COVAO le 21 Mar 2023
次のステップで算出できます。
  1. 2つの3次元ベクトルvec1, vec2から角度を算出
  2. 算出した角度の時系列データから、角速度、各加速度を算出
下記は、計算例です
vec1 = [1 0 0;0 1 0;0 0 1];
vec2 = [0 1 0;0 0 1;1 0 0];
t = [0 1 2]';
angle = compute_angle(vec1, vec2)';
angle = 1×3
1.5708 1.5708 1.5708
angle_velocity = compute_velocity(t, angle);
angle_acceleration = compute_velocity(t, angle_velocity);
angle,angle_velocity,angle_acceleration
angle = 3×1
1.5708 1.5708 1.5708
angle_velocity = 3×1
0 0 0
angle_acceleration = 3×1
0 0 0
function angle = compute_angle(vec1, vec2)
% Compute the angle between the two vectors
angle=[];
for(i=1:height(vec1))
angle = [angle; subspace(vec1(i,:)',vec2(i,:)')];
end
angle = angle'
end
function velocity_data = compute_velocity(t, x)
%compute velocity
delta_t = diff(t);
velocity = diff(x) ./ delta_t;
velocity_data = [0; velocity]; % Initial velocity = 0
end
2つのベクトルがなす角度については、下記の回答例に解説があります

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!