[飞控]倾转分离(补充)-等效旋转矢量(轴角)与旋转矩阵

倾转分离(补充)-等效旋转矢量(轴角)与旋转矩阵

同事问了我一个非常有意思的问题

我在文章[飞控]姿态误差(四)-APM如何计算姿态误差

为什么 一个轴角描述的是 初始到目标的旋转 但是转换成四元数 就变成了描述 目标到初始的旋转?

问的好,毕竟是我写的,虽然我全都不记得了,没关系我们一起回顾一下。

为了避免我们对概念的混淆,我们先重新回顾一下,在这么多旋转描述方法中,我们需要的是什么?

我们需要的是坐标变换!

准确的说是我们需要一个可以把向量V 在a系下的坐标 转换到 向量V在b系下的坐标。

举个栗子

即我们本质上需要一个能描述空间中同一个向量,在不同坐标系中的坐标的转换。

如果使用旋转矩阵来表示这个过程,就是我们通常所说的

向量v 在a系下的坐标 通过a到b的坐标旋转矩阵得到向量v 在b 系下的坐标。

同样用四元数来描述也可以。

向量v 在a系下的坐标 通过a到b的坐标旋转四元数得到向量v 在b 系下的坐标。

一定要记住这些过程只有一个目的就是使空间中的同一个向量的在不同坐标系里的坐标改变,转换坐标,本质上是同一个向量在不同坐标系里的投影。

到这里都没有任何问题。

但是空间中转换坐标除了投影到不同坐标系,还有一种形式可以做到,旋转这个向量。

这个过程根本就不涉及什么坐标系a,坐标系b,直接一个向量A,绕原点,逆时针旋转45度,同样坐标发生了变化。

这个过程是不是很眼熟,跟我们说的轴角(等效旋转矢量),绕转轴u转动phi角度。

这个时候是不是发现原来轴角描述的这旋转,跟旋转矩阵和四元数是有区别的!

最明显的区别就是这个旋转只有一个坐标系,那轴角和其他旋转怎么联系在一起从而互相转化呢?

很简单,轴角不是绕着轴转一个角度吗?那我直接让a坐标系的坐标轴绕着转轴u旋转phi角之后不就得到了一个新的坐标系b吗?这不就有两个坐标系了吗,呼应上了。

我先说结论: a系 绕u转动phi角 得到b系 这个转动对应的(向量)坐标变换矩阵是cb->a

那么之前的问题我们也就有答案了,在倾转分离中,轴角描述的是当前z轴绕转轴u转动phi角度后得到期望z轴。即当前姿态坐标系 绕u转动phi角 得到期望姿态坐标系 这个过程对应的旋转是 C期望->当前。(即原文中说的“轴角描述的是 初始->目标 的旋转 转成四元素描述的是 目标->初始 的旋转”)

其实很容易理解,大家从图里可以直观的看到向量旋转与坐标系旋转的区别。

下面是数学解释:

一个坐标系转换成令一个坐标系在线性代数里叫做基变换。

i,j,k代表当前坐标系的坐标轴方向的单位向量,点乘描述的是两个单位向量之间的余弦值,在二维用余弦值求投影,三维也一样,上式表示的就是两个两直角坐标系之间的基变换公式。

把上式整理一下可以得到:

这里i,j,k组成的是3x3的矩阵,P可以把坐标系i 变成坐标系b 所以P是坐标系i到坐标系b 的坐标系变换矩阵也叫基变换矩阵。(坐标系变换矩阵!所以如果想用它来转换坐标系,必须是坐标系*坐标系变换矩阵)

如果空间中有向量V在i系和b系下的坐标如图:

用坐标表示法,则有:

使用P矩阵把i坐标系转换到b

可得

P可以把向量V 在b系下的坐标 变换到 i系下的坐标 ,所以可以写成$\boldsymbol{C}_{b}^{i}=\boldsymbol{P}$ ,所以P是向量v 从b到向量i系的坐标变换矩阵。 同时这个P也是可以把坐标系i转到坐标系b的坐标系变换矩阵,(坐标系旋转矩阵的使用方式是操作坐标系,即坐标系右乘P矩阵进行转换,不要混淆。)

总结:

i系 绕u转动phi角 得到b系 这个转动对应的坐标变换矩阵是cb->i

一个轴角描述 初始->目标 的旋转 转换成旋转矩阵或者四元数则对应的是 目标->初始 的旋转。

坐标变换矩阵的对象是坐标使用方式是 矩阵坐标 ,坐标系变换矩阵是针对坐标系使用的,使用方式坐标系 矩阵。

参考资料:《捷联惯导算法与 组合导航原理讲义》严恭敏

电子书可以在严老师的qq群里下载 ,468195931

zinghd wechat
期待您的关注
您的赞赏是最大的支持