WorldViz User Forum  

Go Back   WorldViz User Forum > Vizard

Reply
 
Thread Tools Rate Thread Display Modes
  #1  
Old 04-05-2015, 08:31 PM
cmeans cmeans is offline
Member
 
Join Date: Mar 2015
Posts: 2
Vizard/Kinect Gesture Reader Code

I'm a beginner to Vizard. I'm trying to write code that will recognize when the user has their right arm in a right angle. I'm using vizmat.AngleBetweenVectors() to try and get the angle between the right shoulder and the right hand. To my mind, if you hold your arm at a right angle, it will read ~90 degrees.
I'm encountering two problems:
1) As I move my arm back and forth, holding it at a right angle, the degrees change.
2) It's not reading 90 degrees.

Here is my code:
Code:
def RightArmAngle():
    RShoulder = vrpn.addTracker('Tracker0@localhost',RIGHTSHOULDER)
    RSpos = RShoulder.getPosition()
    RHand  =vrpn.addTracker('Tracker0@localhost',RIGHTHAND)
    RHpos = RHand.getPosition()
    RHvec = viz.Vector(RHand.getPosition(),normalize = True)
    RSvec = viz.Vector(RShoulder.getPosition(),normalize = True)
    RAVector=vizmat.AngleBetweenVector(RSvec,RHvec)#RAVector and RAAngle return the same value
    RAAngle = vizmat.AngleBetweenVector(RSpos,RHvec)
    
    print("r elbow:",RHvec)
    print("r shoulder:",RSvec)
    
    print("position Angle:", RAAngle, "vs RAVector",RAVector)
    print("new")
    
    
vizact.ontimer(1,RightArmAngle)
Here are some diagrams and my outputs:

Click image for larger version

Name:	raised.png
Views:	610
Size:	2.5 KB
ID:	694
Raised Arm, Turned to Side. Vector Returned: ~31
Click image for larger version

Name:	frontfacing.png
Views:	656
Size:	3.6 KB
ID:	692
Right-Angled Arm, Held in Front, Vector Returned: ~23
Click image for larger version

Name:	rightish angle.png
Views:	631
Size:	3.7 KB
ID:	693
Right-Angled Arm, Held to Side, Vector Returned: ~16

I'm confused as to how thought this would be a simple way. Should I try to make a triangle instead? Or should I just be returning one Euler value and finding the angle from that?
Reply With Quote
  #2  
Old 04-09-2015, 07:01 PM
Jeff Jeff is offline
WorldViz Team Member
 
Join Date: Aug 2008
Posts: 2,459
You would need to track three points (hand, elbow, and shoulder) in order to get two vectors and then calculate the angle between those.
Reply With Quote
Reply

Tags
angles, kinect, movement, vizard

Thread Tools
Display Modes Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
How to make my code more efficent. Queenss_RA Vizard 2 05-13-2013 10:22 AM
Using Sphinx to generate code documents nabrahamson Vizard 0 10-31-2011 08:38 AM
Suggestion: Code Browser kopper Vizard 5 05-23-2011 04:39 AM
Any ideas on linking chess 3ds file with source code? djones1010 Vizard 1 04-24-2009 10:56 PM
Trying to integrate Source Code with Vizard djones1010 Vizard 1 03-10-2009 03:58 PM


All times are GMT -7. The time now is 12:58 PM.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Copyright 2002-2018 WorldViz LLC