Finding Joint Angle from Motion Capture
    21 views (last 30 days)
  
       Show older comments
    
    Mary
 on 12 Dec 2012
  
    
    
    
    
    Commented: Suranjita Ganguly
 on 23 Jun 2020
            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
0 Comments
Accepted Answer
  Roger Stafford
      
      
 on 12 Dec 2012
        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 Comments
  Mousumi Nag
 on 24 Jan 2017
				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
 on 23 Jun 2020
				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
More Answers (0)
See Also
Categories
				Find more on Biomechanics 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!



