Joint Angle Calculation Methods and Standards

Hello,

I have some questions regarding the calculation of joint angles on the body model using the camera SDK.

Firstly, when calculating the angles of the joints, is a predictive algorithm used for these calculations, or are mathematical operations applied? I want to understand the logic behind the angle calculation process. I need biomechanical joint angles for my work, and I need to ground the angle calculation for a study I will conduct using your system. Furthermore, are angles calculated based on joint points or by placing a plane/coordinate system on the joints?

Our results significantly differ from those obtained through other methods when we employ our own algorithm. What do you believe might account for these discrepancies? So, to be able to find differences, we are trying to understand how the angles are being calculated in your system.

I’ve noticed various standards for angle calculations between joints. Which standard do we follow in this context? Another question concerns the reference point used when calculating joint angles. Is the anatomical neutral position considered as the zero angle, or do we use another reference point?

If you could provide any guidance or explanation on the above-mentioned topics, I would greatly appreciate it. Thank you in advance for your assistance.

Hello @chklthepsps, welcome to the forums!

Let’s go in order:

Firstly, when calculating the angles of the joints, is a predictive algorithm used for these calculations, or are mathematical operations applied?

We fit our skeleton models over the raw skeleton data, also using our depth, and the output is one angle per joint.

Furthermore, are angles calculated based on joint points or by placing a plane/coordinate system on the joints?

I’m not sure I understand, but the angles of each child keypoint are the necessary rotations in its parent’s reference frame. The reference frame is in the coordinate system set in the InitParameters.

Our results significantly differ from those obtained through other methods when we employ our own algorithm. What do you believe might account for these discrepancies?

It depends on what’s better or not, but the main thing could be that our method takes a lot of parameters into account compared to others.

I’ve noticed various standards for angle calculations between joints. Which standard do we follow in this context?

If you mean the reference frame, it’s the one of the parent, in the coordinate system from InitParameters.

Is the anatomical neutral position considered as the zero angle, or do we use another reference point?

All angles at zero should give you the T-Pose.

I hope this helps!