Jointcoordinates from kinect is wrong

1 view (last 30 days)
Peter
Peter on 13 Oct 2014
Answered: Peter on 2 Nov 2014
I have started using kinect for matlab to get jointcoordinates from the skeleton. I can get 3D-matrices with frames for all the 20 joints(20 x 3 x no_of_frames matrices). I stand upright at a specific position and record two different arm positions. After that I compare the difference in x,y,z for the right hand joint(10). The distance between the two positions of the hand is about half in the matlab data compared to reality. What could be wrong? I am a beginner with kinect, maybe I have to calibrate it or something? I'm going to use the kinect for ergonomic analysis of arm movements so I want to calibrate it to be as precise as possible.
Best regards
  2 Comments
Jon Boerner
Jon Boerner on 14 Oct 2014
There are not any calibration steps for setting up the kinect, but there are a lot of options that can be set, and sometimes having them not quite right can lead to suspect results, like you are seeing.
A couple things to check:
  1. Are you plotting the results (joint tracking on top of the camera images) to make sure the joint is being tracked correctly? You probably already did this, but it is good to double-check that the kinect thinks the joint is where the joint actually is. This example shows what I mean.
  2. How far away from the kinect are you? If you are too close the kinect does not do a good job with the distances.
  3. Are the modes all right? For example, some of the options have you specify if you are sitting or standing, if you are near or far, and so on. If these are not set appropriately, the results could be off.
  4. Check that the hip location (or some other stationary location) does not move as you are moving the joint. If the stationary joints are not stationary, then the moving joints locations will obviously be wrong as well.
If these steps don't point to the issue, let me know the results and we might be able to try some other steps.
Peter
Peter on 26 Oct 2014
Thanks for the tips. I am about 2 meters from the sensor. After some more testing with better background(all white) to give better contrast to the person the result is the following. The x- and the z-position seems to be fine with good precision(maximum 1 cm error). The y-position(vertical) is always about half of reality when measuring the distance between different position of a joint.
I thought it could be the inclination angle of the kinect but in the settings the CameraElevationAngle is -5. I guess -5 means having the sensor pointing 5 degrees downwards which is what i have.

Sign in to comment.

Answers (1)

Peter
Peter on 2 Nov 2014
Thanks for the tips. I am about 2 meters from the sensor. After some more testing with better background(all white) to give better contrast to the person the result is the following. The x- and the z-position seems to be fine with good precision(maximum 1 cm error). The y-position(vertical) is always about half of reality when measuring the distance between different positions of a joint.
I thought it could be the inclination angle of the kinect but in the settings the CameraElevationAngle is -5. I guess -5 means having the sensor pointing 5 degrees downwards which is what i have.

Community Treasure Hunt

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

Start Hunting!