延迟偏航,俯仰和滚转值(Delay in yaw, pitch and roll values)

2019-08-03 01:43发布

我正在开发中,我需要在X和Y轴的电话的当前度旋转的Windows Phone 7.1的应用程序。 我尝试使用运动API,并使用适当的值从偏航俯仰和滚转它提供。 但它提供的价值被延迟在这个意义上,如果我移动手机过快,旋转90度,相应的值需要一点时间来到达那里,这违背了我的目的。

我可以使用类似计算手机的即时旋转的东西,我已经做了在Android上同样的事情。

这个东西可以使用WP7上的陀螺仪来完成,但我想用加速度计,这样我可以照顾到更多的设备。

就如何实现这一目标的任何帮助将不胜感激

Answer 1:

我有与WP8运动API类似的问题。 延迟是不是唯一的问题。 看来运动API也是指南针(磁力或)各种误差非常敏感。 更糟糕的是,这些不仅影响了偏航。 运动类AHRS算法似乎对夫妇的俯仰和横滚偏航用。 其结果是,当指南针延迟或去其他方式疯狂,所以做俯仰和横滚。

我怀疑你可以不用陀螺仪做。 从理论上讲,你可以从加速度计只能得到欧拉角(偏航,俯仰和横滚),但前提是手机坐以待毙。 一个轻微的动作引起线性/心加速度会毁了你的定位计算。 我想说的任何企图这样做与手持设备,如手机,是注定要失败的。 此外,在自身运动API需要除了加速度计既罗盘和陀螺仪的硬件。

不管怎么说,没有失去一切。 我摆脱了运动类的所有共同实施了“我自己的” IMU一拉塞巴斯蒂安Madgwick的IMU算法。 该IMU / AHRS报告与这里的C代码:

http://www.x-io.co.uk/res/doc/madgwick_internal_report.pdf

C源代码可以在这里找到:

http://www.x-io.co.uk/open-source-imu-and-ahrs-algorithms/

有了适当的β增益Madgwick的IMU就像在Windows Phone的魅力。 IMU不提供偏航,只是俯仰和横滚。 而且它仅使用陀螺和加速度计的硬件。 如果您需要偏航也可以实现包括在上述两种来源的全AHRS算法。 当然,这需要指南针了。

该Madgwick算法不包括欧拉角计算(只是描述地球和传感器帧之间旋转的四元),但你会发现从Madgwick报告中的方程。

我没有与全AHRS经验(或玛格,因为Madgwick调用它)。 然而,该算法从俯仰和横滚计算解耦罗盘偏航,所以人们可以期望有理智的俯仰/滚动读数甚至有磁干扰。

请注意,坐标系是不同的。 在WP中,X =俯仰轴,Y =轧辊轴和Z =偏航轴线。 另外,在上述算法中,Y =螺距,X =轧辊和Z =偏航。 所以,你需要交换的X和Y以及反转Z加速的方向。 你需要扭转的陀螺仪速率,以及(和交换的X和Y率)。

希望这可以帮助 :)



文章来源: Delay in yaw, pitch and roll values