【问题标题】:Find the orientation of the phone with pitch correction通过音高校正找到手机的方向
【发布时间】:2014-07-16 18:52:32
【问题描述】:

我需要制作一个应用程序来查找手机的方向。 我想测试的一些用例是

  • 手机在阅读位置(平放)使用了多少时间
  • 有多少时间用于拨打电话(垂直)。
  • 它有多少时间放在口袋里。

我认为我应该能够从方向传感器获得所有这些信息。 我需要在这里提一下,我最近开始了 Andriod 开发,所以我希望该解决方案假设来自传感器的原始数据,以便以后可以在 Matlab 中进行处理。事实上,一位同事正在帮助我进行安卓开发。

我使用了标准的方法。方法:1

if (SensorManager.getRotationMatrix(rotationMatrix, null, accelerationValues, geoMagnetValues)) {

            SensorManager.getOrientation(rotationMatrix, orientation);

滚动和方位角在 -pi 到 pi 的范围内都可以,但正如 Android Compass that can Compensate for Tilt and Pitch 中指出的那样,间距在 -pi/2 到 pi/2 的范围内,我在处理这个问题时遇到了问题。所以我在Android Compass that can Compensate for Tilt and Pitch 碰到了代码。 我刚刚使用它没有屏幕旋转调整。 我有几个疑问。 Android Compass that can Compensate for Tilt and Pitch 中定义的音高与我通过方法得到的不同:1 因为当我向右倾斜手机时,音高值会发生变化,而它不应该改变。实际上,它对应于方法 1 的滚动值。但是,当我通过Android Compass that can Compensate for Tilt and Pitch 中的方法将手机向左转时,会给出滚动值,但符号不同。 方位角没问题。 最后 m_pitch_axis_radians 我完全无法理解。我知道我在解释这个不同的坐标系时遇到了一些问题,但如果我能得到关于 Method :1 中的俯仰、滚动和方位角如何与Android Compass that can Compensate for Tilt and Pitch 中的方法相关的提示,我将不胜感激

【问题讨论】:

    标签: android android-orientation


    【解决方案1】:

    如果您想到一架飞机,俯仰是飞机机头高于或低于水平线的角度。所以看下图,取决于你是纵向还是横向,取决于“鼻子”是长边还是短边。因此,根据设备的方向(即纵向与横向),俯仰和滚动的定义可以切换。

    关于 m_pitch_axis_radians,Android Compass that can Compensate for Tilt and Pitch 中的代码使用的是由方位角、俯仰角和俯仰轴定义的坐标系,而不是标准的方位角、俯仰角和滚动角。我建议你学习相应的数学文章What's the best 3D angular co-ordinate system for working with smartphone apps

    【讨论】:

    • 感谢@Stochasticly 指出这一点。我将尝试查看stackoverflow.com/questions/16317599/… 中的代码是否真的涵盖了我在开头提到的用例。有任何预先的想法或链接到涵盖我提到的用例的任何其他线程?
    • 要计算出阅读位置、打电话和口袋里的位置,我认为你需要收集大量关于设备方向的数据,然后设计一个聪明的算法来区分不同的情况。不容易。祝你好运。
    • 我快速完成了您定义的坐标系的数学运算。我现在将尝试代码来确定三个输出方位角、俯仰和俯仰轴是否可以帮助我涵盖用例。您能否指出这三个输出的范围以供确认。例如,使用传统方法,方位角和滚动在 [-pi,+pi] 的范围内,而俯仰在 [-pi/2, pi/2] 的范围内。在这个新的坐标系中如何。同样在俯仰轴上,它是否是表示角度的输出。如果是这样,为什么名称中包含轴。
    • @RajaKashif 有一阵子没看这个了,但是凭记忆,俯仰轴是发生俯仰旋转的轴。
    猜你喜欢
    • 2022-08-17
    • 2012-04-28
    • 1970-01-01
    • 1970-01-01
    • 2018-09-09
    • 2010-11-30
    • 1970-01-01
    • 2016-07-14
    • 2012-11-13
    相关资源
    最近更新 更多