空间坐标乘旋转矩阵_坐标变换(4)—旋转矩阵

1. 群

群(Group)是一种集合加上一种运算的代数结构。我们把集合记作

,运算记作

, 那么群可以记作

。群要求这个运算满足以下几个条件:封闭性:

.

结合律:

.

幺元:

逆:

2. special orthogonal group

定义参考坐标系(fix frame)为

,定义body frame为

在fixed frame

下经过一定的旋转,对应的旋转矩阵为

坐标系

的三个坐标轴,即基,

,同时

,满足以下条件,单位向量

2. 正交

,即

上面两个性质可以写成矩阵的形势,

此外,坐标系

的三个坐标轴还需要遵守右手坐标系,例如

,其中

表示叉乘。 在线性代数上有如下的一个公式,当我们知道一个

矩阵

的三列为

时,我们可以求得矩阵的行列式值为,

所以,我们可以得到,

至此,我们推导出了旋转矩阵满足的两个条件。在数学上,将满足上述两个条件的

的矩阵统称为special orthogonal group

,即3维的特殊正交群,容易验证

符合群的封结幺逆的性质,此外对于任意的3维列向量

具有相同的长度(2范数)。

3. 旋转矩阵的使用描述一个坐标系

改变向量或者坐标系的参考坐标系

旋转一个坐标系或者向量

3.1 描述坐标系

在第一种情况下,旋转矩阵的三列分别对应坐标系的三个坐标轴,即基,

考虑以上三个坐标系,其对应的描述为,

而空间中的同一点

,在三个坐标系中的描述分别为,

3.2 改变参考坐标系

假设旋转矩阵

,描述了

相对于

的旋转,

描述了

相对于

的旋转,则

相对于

的旋转,

向量

坐标系的向量为

,则在

坐标系下

为,

3.3 旋转一个坐标系或者向量

在坐标系

下旋转一个向量

(同一坐标系下),会产生另外一个向量

而对一个坐标系乘以一个旋转矩阵,则有不同的意义,分为左乘和右乘,下面分别介绍,其中参考坐标系为

,body frame为

轴转90度生成

表示

下的描述,而

仅表示某一旋转矩阵(绕着

转30度),下面借助matlab来进行可视化,

3.3.1 左乘

R_sb = rotz(90)

R = rotx(30)

R_1 = R * R_sb

tranimate(R_1)

R_sb =

0 -1 0

1 0 0

0 0 1

R =

1.0000 0 0

0 0.8660 -0.5000

0 0.5000 0.8660

R_1 =

0 -1.0000 0

0.8660 0 -0.5000

0.5000 0 0.8660

最终结果,

由上面两图可以看到,

左乘

,是顺着原来

中的

轴旋转了30度。因此左乘,

是在

坐标系下的描述。

3.3.2 右乘

R_sb = rotz(90)

R = rotx(30)

R_1 = R_sb * R

tranimate(R_1)

R_sb =

0 -1 0

1 0 0

0 0 1

R =

1.0000 0 0

0 0.8660 -0.5000

0 0.5000 0.8660

R_1 =

0 -0.8660 0.5000

1.0000 0 0

0 0.5000 0.8660

最终结果,

由上面两图可以看到,

右乘

,是顺着

中的

轴旋转了30度。右乘,

是在

坐标系下描述。 其实关于左乘和右乘,在前面的文章中介绍过旋转矩阵的列向量是

中的描述,右乘相当于,

此时,矩阵的乘积的每一列都是

所对应基的线性组合,所以

此时的意义肯定是在

坐标系下描述。 同理,前面文章提到过,旋转矩阵的行向量是

中的描述,此时

是参考坐标系,

此时,矩阵的乘积的每一行都是

所对应基的线性组合,所以

此时的意义肯定是在

坐标系下描述。

你可能感兴趣的:(空间坐标乘旋转矩阵)