android 方向传感器的奇怪行为 [英] Strange behavior with android orientation sensor

查看:26
本文介绍了android 方向传感器的奇怪行为的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

我也遇到了类似于所谓的万向节锁定的现象.唯一的区别是我在将传感器值应用于 3D 旋转之前就遇到了这个问题.当我尝试通过仅围绕俯仰"轴旋转设备来更改俯仰"值时,偏航"值也会根据俯仰的旋转而变化.在我看来这完全不合理.

有人可以帮我吗??我被这个问题困了一个月.

解决方案

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

我在我的运动传感应用程序中使用旋转矩阵代替欧拉角.对于旋转矩阵的介绍,我推荐:

方向余弦矩阵 IMU:理论

旋转矩阵很有魅力.

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

[此答案复制自此处.]>

Currently, I'm trying to rotate 3D Cube using orientation sensor values, using getRotation() method. Some unexpected behaviors are observed when the android device is rotated above some bounds. For instance, if I make the device 'stand up', the value of the 'roll' just becomes crazy.

Also I'm experiencing the phenomenon similar to so-called gimbal-lock. The only difference is I'm experiencing the very problem even before applying the sensor values to the 3D rotation. When I try to change the 'pitch' value by rotating the device around only 'pitch' axis, the 'yaw' value also changes according to the rotation of the pitch. It seems completely unreasonable to me.

Could somebody help me?? I'm stuck in this problem for a month.

解决方案

This is a common problem with yaw, pitch and roll. You cannot get rid of it as long as you are using yaw, pitch and roll (Euler angles). This video explains why.

I use rotation matrices instead of Euler angles in my motion sensing application. For an introduction to rotation matrices I recommend:

Direction Cosine Matrix IMU: Theory

Rotation matrices work like a charm.

Quaternions are also very popular and said to be the most stable.

[This answer was copied from here.]

这篇关于android 方向传感器的奇怪行为的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆