Why are orientations of head and feet (0,0,0,0)?


  • I'm upgrading my system from Kinect 1 to Kinect 2. I used the function getJointOrientations() to get the orientation data and found that the orientation of head and feet are (0,0,0,0). I read this and know that the orientation of a joint is the rotation of its parent bone.

    In Kinect v2 sdk, we can get 25 joints and 24 bones. So I think every joint except the spine base should be a child joint of some bone, thus every joint except the spine base should contain a valid orientation data. For example, consider the bone (left ankle, left foot), I think left foot is the child joint and it should store the rotation of the bone (left ankle, left foot). But from Kinect v2 sdk, the orientation of head and feet are (0,0,0,0). I don't quite understand. Can anyone help explain this?

    BTW, in Kinect v1 sdk the orientation data (both the absolute orientation and the hierarchical orientation) of head and feet are not (0,0,0,0), but in Kinect v2 sdk they are. Why are they different?

    Thanks in advance!

    Wednesday, December 23, 2015 5:44 AM

All replies

  • hi i met the same problem with you, the missing orientations are head, footleft, footright, handtipleft, handtipright, thumbleft and thumbright, are they?

    i saw some people said :

    The parent bone of the joint Head is itself "Head" hence 0,0,0,0
    The parent bone of the joint SpineShoulder is the "neck"
    The parent bone of the joint ShoulderLeft is the "Left clavicle"
    The parent bone of the joint ElbowLeft is the "Left upper arm"
    The parent bone of the joint WristLeft is the "ForearmLeft"
    The parent bone of the joint HandLeft is the "Hand Bones Left"

    so maybe these several parts are the parent bone of joint themselves, and the orientations are all 0 then.

     by the way are you chinese

    Friday, July 15, 2016 12:00 PM
  • Leaf joints have no orientation data, which is why foot joints and head have no orientation data.

    Unfortunately I don't remember if the neck joint gives good results. I'd check that out.

    Also there's a high definition face tracking module (Microsoft.Kinect.Face) where you might find something worthwhile.

    PS: The Foot joint is a child to Ankle joint,alright. It's the way riggers(people who create skeletons and animation controls for 3d meshes) deal with feet. Usually you don't need more than one or two joints in the foot for animations. So when they have very simple animations regarding the feet, they include the ankle and another joint , in order to create the bone. That joint at the end is usually called FootJoint or FootTipJoint by riggers. You can see the logic of it if you take a look at the hand joints in Kinect's tracking where you have a wrist, a hand and a hand tip joint. Hand tracking need extra data for the built in lasso etc gestures that the SDK provides, therefore you get a hand and a hand tip joint for that extra bone.

    JointType Enumeration plus skeleton diagram

    Saturday, July 16, 2016 7:48 PM