Finding Joint Angle from Motion Capture

36 ビュー (過去 30 日間)
Mary
Mary 2012 年 12 月 12 日
コメント済み: Suranjita Ganguly 2020 年 6 月 23 日
Hi!
I'm working right now with data from a motion capture device, essentially picking up data for three markers placed on the head neck and shoulder in an x y z plane.
My difficulty trying to develop a code to calculate the joint angles between these three markers. I am able to animate the three coordinates to play as an animation, but I'm more interested in the calculation of the angles between these points changing over time.
Any ideas on how to go about this?
Thanks

採用された回答

Roger Stafford
Roger Stafford 2012 年 12 月 12 日
At any time, let H = [x,y,z], N = [x,y,z], S = [x,y,z] be coordinate vectors of the head, neck, and shoulder markers at that time. Then the three respective inner angles within the triangle HNS then are:
h = atan2(norm(cross(N-H,S-H)),dot(N-H,S-H));
n = atan2(norm(cross(S-N,H-N)),dot(S-N,H-N));
s = atan2(norm(cross(H-S,N-S)),dot(H-S,N-S));
(The sum of these should always be pi to within round-off accuracy.)
Roger Stafford
  6 件のコメント
Mousumi Nag
Mousumi Nag 2017 年 1 月 24 日
Can I get back the S,N,H from the angle .In other words, How can I get the vector points where angle is given
Suranjita Ganguly
Suranjita Ganguly 2020 年 6 月 23 日
The sum of the angles should be Pi (approx), because the three angles are forming a triangle, and sum of all internal angles in a triangle is 180 degrees i.e. pi

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeBiomechanics についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by