Body tracking not accurate on Orbbec Astra?

Hello all.

I’ve been working for the past year with the Orbbec Astra and in my job I have to compute angles from certain joints. I came a across a problem where I believe that the body tracking is not working properly and wanted to know if anyone has had this problem.

The angle I’m trying to calculate the angle from the elbow to the hand when you do an internal rotation movement (you can kinda see from the image but basically its where you have your arm down, lift your forearm 90º up and then move your hand towards your chest).

In the image that I show, on the left side, my hand makes a 90º angle with the forearm (my hand is perpendicular to where I’m facing) and the skeleton produced by the SDK is not representing the movement right. It is at about 70º-60º at most.
The thing is, if I do the same movement but rotate to the other side, external rotation, the joints are well captured. My guess is that the hand goes in front of some other joints in the body and that may be messing with the algorithm.

It is imperative for me to have the right angles with the best precision I can so I wanted to know if any of you ever came across with something like this.

I believe something similar happens if you put your hand on a wall. The sensor loses the ability to distinguish your hand from the background, and the tracked position becomes less reliable. I think its because the depth of the wall is so similar to the depth of the hand, and the difference between the 2 drops below the accuracy of the camera.

In other words, the accuracy of the depth sensor is unable to distinguish your hand from your belly when your hand is ON your belly.

Also, I’m pretty sure that there are constraints on the skeletal nodes so that they stay in-line. This keeps the “center spine” node under the “neck” (and above the hips). So, it’s location is NOT where your belly button is. And, this is evident in your screenshot.

Hum I see, I imagined the problem would be something like this but I was hoping there would be a solution for this. Thanks for the reply!