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

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

Answers (1)

covao
covao on 21 Mar 2023
Edited: covao on 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つのベクトルがなす角度については、下記の回答例に解説があります

Categories

Find more on MATLAB in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!