facebookresearch/fairmotion

using get_transform(key, local=True) get empty local transformation matrix

edentliang opened this issue · 1 comments

Hi, when I used motion.positions(local=True), the result of the local transformation matrix is all zeros except the root position. And I get the correct result of the global transformation matrix. Any hints about this problem?

Thank you

Hi @edentliang , I was out of office, sorry for the delay in my response.

Most motion capture files have a fixed link lengths and a time series of changing local joint angles specified in consecutive frames. When you query motion.positions(local=True), what you're getting is the translation component of the transformation matrix in a local frame of reference i.e., relative to parent joint. This is the translation of the child joint from the parent joint in addition to the translation specified in the skeleton (hierarchy) information, specifically link lengths. Since links have fixed length, there is zero translation in addition to the skeleton link lengths, which is why you see all zeros.

When you query motion.positions(local=False), you get the absolute positions of the joints from a global frame of reference. What was the information you were attempting to obtain from the motion data?

I hope this makes sense. Please let me know if you have questions.