为啥将android磁场传感器值转换为地球坐标系时X坐标值如此接近零?
Posted
技术标签:
【中文标题】为啥将android磁场传感器值转换为地球坐标系时X坐标值如此接近零?【英文标题】:Why is the X coordinate value so close to zero when android magnetic field sensor values are converted to Earth coordinate system?为什么将android磁场传感器值转换为地球坐标系时X坐标值如此接近零? 【发布时间】:2016-05-20 23:21:06 【问题描述】:我正在开发一个从磁场传感器读取数据的 android 应用。 我按照here 和here 的指示将传感器数据转换为地球坐标系。
转换后的数据看起来不错。但是,X 值始终接近于零。下面的第一张图片显示了原始数据,第二张图片显示了转换后的数据。请注意,第一个图中的所有轴值都发生了变化。在第二幅图中,只有 Y 轴和 Z 轴发生变化,X 始终接近于零。有谁知道为什么会这样?
谢谢!
【问题讨论】:
【参考方案1】:数据正确,world coordinate
中的x
值应该接近0
。这是因为假设magnetic field sensor vector
位于世界North-Sky
平面上,因此x-coordinate
(东坐标)应该为零。
在第一张图中,x 因设备基础的变化而变化。考虑一个固定的向量,但坐标代表这个向量的变化。因此2个不同的坐标可能代表同一个向量。
【讨论】:
非常感谢您的帮助!如here 所述,地球磁场由 3 轴矢量(北-天-东)表示。所以奇怪的是,android 磁场传感器位于 2D(北天)平面并忽略了东坐标。你知道为什么这个传感器是这样实现的吗?是硬件限制吗? 是的,但是在任何固定的 x 处,矢量都位于北天平面上。我对硬件了解不多,但我认为磁传感器的作用是测量这个矢量,所以这个假设对我来说是明智的。以上是关于为啥将android磁场传感器值转换为地球坐标系时X坐标值如此接近零?的主要内容,如果未能解决你的问题,请参考以下文章