com.primesense.nite
Class Skeleton

java.lang.Object
  extended by com.primesense.nite.Skeleton

public class Skeleton
extends java.lang.Object

This is the main class for the skeleton algorithm.

The purpose of the skeleton algorithm is to analyze a user outline supplied by the User Tracker algorithm, and to locate the position of that user's joints in space (eg knees, elbows, head, etc). The orientation of the user's joints is also calculated. Where joints are not visible, the algorithm will make a best guess about the joint. For all data calculated, confidence values are also created to help an application understand if the algorithm is sure about the data, or if it is "guessing".

Nite offers two types of skeletons algorithms. One requires the user to assume a specific "calibration pose" before calibration can be attempted. The other does not require a specific pose from the user, but will require a few seconds to settle down as it learns a user's body shape. The algorithm used sometimes depends on the platform being used -- for example, the ARM version of Nite currently only offers the version that requires a calibration pose.

All skeleton joint positions are given in "real world" data coordinates, using the same conventions as OpenNI 2.0. See the online documentation for OpenNI 2.0 for more information on the coordinate systems used with the skeleton.

See Also:
SkeletonJoint, JointType, UserTracker, SkeletonState

Method Summary
 SkeletonJoint getJoint(JointType type)
          Get the state of the skeleton.
 SkeletonJoint[] getJoints()
          Get a specific joint of the skeleton.
 SkeletonState getState()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

getJoints

public SkeletonJoint[] getJoints()
Get a specific joint of the skeleton. The object returned by this function can be queried to determine position, orientation, and confidence values for the joint.

Returns:
Array of skeleton joints
See Also:
JointType

getJoint

public SkeletonJoint getJoint(JointType type)
Get the state of the skeleton. This is useful for determining whether an active skeleton exists, and whether it is calibrating. Some of the states are also error conditions that attempt to provide a hint about why the skeleton is not calibrating. This can be useful for providing feedback to a user about where they need to stand, assuming a calibration pose, etc.

Returns:
Current state of the skeleton.
See Also:
SkeletonState

getState

public SkeletonState getState()