Page 1 of 1

Rotation Matrix notaion

Posted: Sat Oct 14, 2023 2:57 am
by amitmisra652
Hi,
I've been studying the notation used in Simbody, and I've encountered confusion regarding the transform notation. X_BG is "the transform from frame B to frame G."
Vec3 v_B = ~X_GB.R()*v_G;
Vec3 v_B = X_BG*v_G ;

It seems to suggest that X_BG is a transform from frame B to frame G. Yet, in the calculation, it appears to transform from frame G to frame B.
Could you please provide clarity on this notation and its application? I'm trying to understand the underlying logic and consistency in the notation.

Thank you for your time and assistance.

Re: Rotation Matrix notaion

Posted: Sat Oct 14, 2023 4:11 pm
by sherm
Hi, Amit. Good question!

Terminology for transforms and rotation matrices is tricky, because they serve as both "verb" and "noun" depending on your point of view. As a verb, we have v_B=R_BG * v_G, mapping G to B (as long as you multiply from the left!). The notation ensures you get that correct because you can match the frame letters, BB GG. As a noun, R_BG is the columns of the G frame expressed in the B frame, which you could think of as mapping from B to G. IMO it is better to avoid such ambiguous terminology and stick to disambiguating with unambiguous notation.

For a complete discussion of this notation (we call it "monogram notation") see the documentation Paul Mitiguy and I wrote for Drake, which uses the same notation as we developed for Simbody and OpenSim.

Regards,
Sherm

Re: Rotation Matrix notaion

Posted: Sat Oct 14, 2023 10:08 pm
by amitmisra652
Hi Michael,

Thanks for explanation .