让我们假设我们有一个陀螺仪完全符合全局框架($ X,Y,Z $)。

据我所知,陀螺仪数据给了我相对于陀螺仪轴的角速度($ x,y,z $)。假设我有$ \ omega_x,\ omega_y,\ omega_z $。因为我知道2个帧完全对齐,所以我执行以下操作:

$ \ theta_Z = dt * \ omega_z $

其中$ \ theta_X $是围绕$ X $的旋转角度,依此类推。

我的问题是:此更新在以下步骤中是什么样的?因为这一次我得到的测量值不再与全局框架(相对于陀螺仪框架旋转)直接相关。

谢谢!

#1 楼

您的第一步有效,因为这意味着您的框架已“对齐”,这意味着:

$$
\ theta_ {X_0} = 0 \\
\ theta_ {Y_0 } = 0 \\
\ theta_ {Z_0} = 0 \\
$$

通常(与任何积分一样!),您有一些起始角度(初始条件) ),$ \ theta _ {(X,Y,Z)_0} $,然后您从那里进行更新,例如:

$$
\ theta_ {X_N} = \ theta_ {X_ {N-1}} + \ omega_ {X_N} dT \\
\ theta_ {Y_N} = \ theta_ {Y_ {N-1}} + \ omega_ {Y_N} dT \\
\ theta_ {Z_N} = \ theta_ {Z_ {N-1}} + \ omega_ {Z_N} dT \\
$$

请注意,当您使用的初始条件是在您的示例中,$ \ theta_ {N-1} $术语消失了,仅保留您最初陈述的方程式。

评论


$ \ begingroup $
那是我的实际问题。我想像您刚刚显示的那样,但是相对于全局框架(即$ \ omega_X $),我在哪里得到角速度?因为从陀螺仪中我只会得到$ \ omega_x $(相对于陀螺仪框架),依此类推。
$ \ endgroup $
–查尔斯
2015年10月14日下午13:34

$ \ begingroup $
@charles-有关将角速度从一帧转换为另一帧的其他问题,我的回答是:只需使用常规4x4转换即可。如果您对此有任何疑问/意见,请转到其他问题并更新问题文本或在我的答案中添加评论。
$ \ endgroup $
–卡盘
15年10月14日在14:58

$ \ begingroup $
谢谢您的澄清。但问题是:假设我们有3个当前角度,并且我们想找到旋转矩阵R。我该怎么办?我想到了RPY,对吗?并且在某种情况下,为什么旋转组成按此精确顺序而不是例如PRY?再次感谢你
$ \ endgroup $
–查尔斯
2015年10月14日15:05



$ \ begingroup $
@charles-很难找到旋转矩阵$ R $,因为正如您提到的,乘法顺序很重要。这就是为什么有些人可能更喜欢使用单位四元数进行旋转的原因。 “为什么订单很重要”这个问题比评论中回答的要复杂得多,但是您可以在此处或此处阅读更多内容,但是,基本上,订单很重要,因为它改变了下一个轮换的参考点。
$ \ endgroup $
–卡盘
15年10月14日在16:01