【飞控】向量叉乘究竟是个什么样的旋转?

向量叉乘究竟是个什么样的旋转?

两个向量叉乘可以得到一个转轴,点乘之后可以得到一个角度。
有了一个转轴,一个角度我们可以得到一个旋转。
这是我们非常熟悉的一个思路,我们使用两个N系下的z轴叉乘,来得到一个对齐z轴的旋转。

但是这个旋转,是个什么样的旋转呢?

我们之前接触的旋转,都是坐标系旋转,这个旋转使得初始坐标系 cur,与目标坐标系tar 的 z 轴重合了。

我们把这个 z 轴重合的中间状态叫做 half,也就是说这个旋转使得,cur 坐标系和 half 坐标系重合了。

正常来说如果我们会使用下式来描述机体坐标系之间的误差。

$$C_{half}^{cur}$$

但是使用这种描述方式是有前提的,如果使用轴角表示这个旋转过程,这个旋转的转轴是属于 cur 系的,这就是就是我们常说的「机体系下的机体误差」。

同理如果我们描述地理系下的误差

$$C_{half}^{N}$$

用轴角表示的话,这个轴是属于 N 系的,我们可以称作「地理系下的地理误差」。

但是我们来看看这个叉乘后的旋转,这是两个 N 系下的 z 轴向量叉乘得到的旋转,所以他们的转轴是N系的。 但描述的是 half 与 cur 的误差。 跟我们通常说的机体误差是不一样的。

如果非要用一种方式来描述,应该是这样:

$$[C_{half}^{cur}]^N$$

叫做,可以叫做「地理系下的机体系误差」!

现在能看出这个旋转的特殊性了吗?

所以这个旋转是不能直接使用链式规则加在别的旋转上的哦。

想使用这个误差,必须把这个误差转换成「机体系下的机体误差」,或者「地理系下的地理误差」。

上次我们说了,APM就是把它转换成了,机体系下的机体误差,巧合的是PX4选择了后者。

ps:轴角的转轴经过旋转是不变的,它在两个坐标系间的坐标是一样的。

这个是 APM 或者 PX4 求解姿态误差里最具有迷惑的地方,通过今天的文章,现在大家再去看源码,应该思路更加清晰了。

ok,今天就介绍这么多,我是zing,一个有趣的飞控算法工程师,更多干货,我们下期见。
个人微信公众号【无人机干货铺】,欢迎关注

相关阅读:
[飞控]姿态误差(四)-APM如何计算姿态误差
[飞控]聊点姿态(二)-坐标系旋转