磁场,旋转矩阵全局坐标(Magnetic Fields, Rotation Matrix And g

2019-07-22 09:02发布

我认为,我读过所有关于此主题的职位,但我仍然无法理解的几件事情:

Q1:要获得全球COORDS我需要乘以反转旋转矩阵和磁场矢量磁场矢量,为什么我需要反转旋转矩阵?

Q2:让说我有一个装置,我可以基于沿着使用getOrientation(...)方法的Z轴的旋转计算方位角。 我可以使用旋转矩阵或一些其他方法来计算方位角到磁北,无论在手机的态度? 所以,如果我将旋转手机我和磁北之间的角度将保持不变?

Q3:当我用翻转的旋转矩阵相乘的磁矢量(第四栏是零)我得到x非常接近于零。 我知道,这是确定的其他职位,但我不能明白为什么?

Q4:从理论上讲,可以说,我有距离彼此1米两个设备,是有可能使仅基于磁场的两个设备的空间位置(在全球COORDS)

提前致谢。

PS我已经阅读这些帖子: 获得在全球坐标磁场值 , 我怎样才能得到磁场矢量,独立于设备的旋转?

转换磁场X,Y,从装置Z的值到全局参考帧

Answer 1:

如果你读过我的回答转换磁场X,Y,Z值从设备到全球参照系你还是不明白。

A1。 你乘与磁场矢量的设备坐标旋转矩阵坐标系,以获得磁场矢量在世界坐标系的坐标。

我要强调:上面说的旋转矩阵,而不是反转旋转矩阵。

通过调用获得旋转矩阵 getRotationMatrix是基矩阵的从装置的基础上向世界基础的变化。 被给予与在装置坐标系统正坐标任何向量v,在世界坐标的坐标相同的向量v的系统可以通过乘法,并在设备系统中的坐标的旋转矩阵的坐标而得到。

反相旋转矩阵是基矩阵的从世界的基础上向设备基础的变化。 因此,当你multitply该矩阵具有坐标,它被解释为乘以在世界的矢量的坐标的矩阵的坐标系,以获得相同的载体的在设备中的坐标系的坐标。 因此,如果与磁场矢量的坐标乘以反相旋转矩阵作为由磁传感器返回。 然后坐标被解释为在世界坐标系中的矢量的坐标,因此并不代表磁场矢量和得到的产物是未在世界上磁场矢量的坐标坐标系。 实际上它是一个载体在设备中的坐标系的坐标。

A2。 getOrientation是有意义仅当设备是平坦的 。 对我来说,它只是一堆的角度计算的。 我看看我尝试做几何 ,然后使用旋转矩阵计算出我想要的东西。 例如,为了计算在后摄像机所指的方向,我把它看作-z的方向(矢量正交的屏幕相反)。 因此找到这个方向,我投影-z世界东北平面 ,并计算该投影矢量北轴之间的角度。 现在,如果你觉得这种方式,则设备的旋转不会改变-z的方向,因此投影矢量是相同的,你旋转设备。 如果你使用getOrientation那么你必须precall remapCoordinateSystem(inR, AXIS_X, AXIS_Z, outR)getOrientation给你正确结果

A3。getRotationMatrix假定地磁参数完全是在北天上的飞机躺在向量的坐标。 那么任何趴在这个平面向量必须有x坐标等于0。 这仅仅是基本的线性代数。

A4。 答案是不。 为了得到你要表达相对于固定坐标系这些载体的空间位置 。 在装置这些载体的唯一坐标系,也没有办法,你可以找到一个固定的基础上 ,让你来计算这个固定的基础基础矩阵的从设备基础的变化。 在我上面的需要链接中规定的2个条件得到满足计算基础的变化。



Answer 2:

A1。 旋转矩阵告诉你的手机在世界坐标位置。 如果您想在矢量磁从您的手机坐标转换为世界坐标,你必须乘逆。

A2。 不太明白的问题,不好意思。

A3。 x坐标是磁力这是对应于从所述磁极或类似的东西的北极的偏差的横向分量。 它应该是相当小的,如Z坐标,也就是垂直分量相同。

A4。 在理论上,这可能工作,但就在你的Android设备有传感器的精度,这种做法好像不是很可行。



文章来源: Magnetic Fields, Rotation Matrix And global coordinates