为了账号安全,请及时绑定邮箱和手机立即绑定

Android方向传感器的奇怪行为

/ 猿问

Android方向传感器的奇怪行为

缥缈止盈 2019-08-19 16:57:55

Android方向传感器的奇怪行为

目前,我正在尝试使用方向传感器值使用getRotation()方法旋转3D立方体。当Android设备旋转到某些边界以上时,会观察到一些意外行为。例如,如果我让设备'站起来','roll'的价值就变得疯狂了。

此外,我正在经历类似于所谓的万向节锁定的现象。唯一的区别是,即使在将传感器值应用于3D旋转之前,我也遇到了这个问题。当我尝试通过仅围绕“俯仰”轴旋转设备来改变“俯仰”值时,“偏航”值也会根据俯仰的旋转而改变。这对我来说似乎完全不合理。

有人能帮帮我吗?我在这个问题上坚持了一个月。


查看完整描述

3 回答

?
牧羊人nacy

这是偏航,俯仰和滚转的常见问题。只要你使用偏航,俯仰和滚动(欧拉角),你就无法摆脱它。该视频解释了原因。

我在运动传感应用中使用旋转矩阵而不是欧拉角。有关旋转矩阵的介绍,我建议:

方向余弦矩阵IMU:理论

旋转矩阵就像一个魅力。

四元数也很受欢迎,据说是最稳定的。


查看完整回答
反对 回复 2019-08-19
?
慕工程0101907

使用四元数来计算YPR对解决任何问题都没有太大作用。万向节锁定的问题(接近+/- 90的音高可以驱动偏航和滚动 - 实际上是在北极的偏航 - 在下面的四元数中的微小变化/噪声下变得疯狂)。

但是,如果使用“偏航俯仰”和“滚动”值来执行3D对象的旋转,则不应在云台锁定位置附近出现任何奇怪的行为。只是在偏航和滚动中产生了一种暧昧,偏航和滚动的大变化并不意味着实际的方向变得疯狂 - 只是方向对90°附近的偏航滚动的大变化不敏感。

但是,请注意,HTML5的手机和浏览器无法正确实现Android的偏航,俯仰和滚动。这是一个很好的博客供参考:

http://www.sensorplatforms.com/understanding-orientation-conventions-mobile-platforms/


查看完整回答
反对 回复 2019-08-19
?
慕的地6264312

好吧,如果你在电话上运行。

四元数是最好的,你应该使用它

对于旋转矩阵和欧拉角,您可以轻松地遇到称为万向节锁的术语。它经常发生在用户暴力行为中。

万向节锁定是三维万向节机构中的一个自由度的损失,当三个万向节中的两个的轴被驱动成平行配置时,“锁定”系统以简并的方式旋转 - 维度空间。

旋转矩阵和欧拉角适用于慢速移动机器人动作。

有关四元数连接和转换为新系统的详细信息,请参阅wiki链接

https://en.wikipedia.org/wiki/Quaternion


查看完整回答
反对 回复 2019-08-19

添加回答

回复

举报

0/150
提交
取消
意见反馈 邀请有奖 帮助中心 APP下载
官方微信