Why we premultiply and post multiply

1.3k Views Asked by At

Take a look at the following picture.

enter image description here

$R_{sb} \in SO(3)$ is the rotation matrix that represents the orientation of frame $\{b\}$ relative to frame $\{s\}$. Let's say we need to rotate $\{b\}$ by $\phi$ about a particular unit axis $\hat{\omega}$ (i.e. $R=\text{Rot}(\hat{\omega},\phi$)). If the rotation axis is expressed in frame $\{s\}$ (i.e. $\hat{\omega}_s=\hat{\omega}$), The rotation matrix is induced as follows: $$ R_{sb'} = RR_{sb}, \quad \quad \text{premultiplying} $$ where $b'$ is a new frame $\{b'\}$ after the rotation (i.e. frame $\{b\}$ ended up in frame $\{b'\}$). Now let's go back to the above picture and perform the rotation so that the rotation axis is expressed in frame $\{b\}$ (i.e. $\hat{\omega}_b=\hat{\omega}$). The rotation matrix is induced as follows: $$ R_{sb''} = R_{sb}R, \quad \quad \text{postmultiplying} $$ where $b''$ is a new frame $\{b''\}$ after the rotation (i.e. frame $\{b\}$ ended up in frame $\{b''\}$). Since matrix multiplication is not commutative, frame $\{b'\}$ and frame $\{b''\}$ have different orientation. In majority of robot textbooks I'm reading, this fact is repeated without lucid explanation. While it is easy to memorize it, I have no deep understanding why this is so. Any suggestions?

1

There are 1 best solutions below

0
On

Matrix $R_{sb}$ relates vectors in both frames $s$ and $b$, as follows,

$ X_s = R_{sb} X_b $

when you rotate the vector $X_s$ about an axis expressed in frame $s$, then

the image of $X_s$ is

$X'_s = R X_s = R R_{sb} X_b $

Hence, $R_{sb'} = R R_{sb} $

Now if you rotate the vector $X_b$ about the an axis expressed in frame $b$ then

$X'_s = R_{sb} X'_b = R_{sb} \left (R X_b \right) = R_{sb} R X_b $

Hence, $R_{sb''} = R_{sb} R $