我想找到iphone加速的主要方向。我想我可以使用加速度计来做到这一点,但是,如下图所示,加速度计轴由设备方向定义。
我认为如果我使用陀螺仪来校正偏航,旋转,旋转,那么我可以获得更准确的读数,而不必在移动过程中将手机保持在相同方向。
但是这仍然没有告诉我iphone的主要方向是什么。为此,我还必须使用磁力计。
有人能告诉我如何使用三个传感器读数来找到加速的基本方向吗?我甚至不知道从哪里开始。我甚至不知道手机是否也以相同的时间进行这些测量。
答案 0 :(得分:1)
将磁力计矢量与“向下”向量的交叉乘积给出一个水平磁东/西向量;从那时起,第二个交叉产品获得磁北/南向量。这很容易。
更难的问题是有效地跟踪“向下”向量。如果您随着时间的推移集成加速度计,您可以过滤掉手持移动设备的运动,以获得持久的重力方向。或者,如果你的设备没有同时旋转,你可以......
这就是速率陀螺仪的用武之地:陀螺仪可以让您补偿手持设备的动态旋转,因此您可以实时跟踪您的重力。执行此操作的经典方法称为Kalman filter,它可以整合(字面和比喻)多个数据源,以评估系统中最可能的状态。
卡尔曼滤波器需要物理系统和观察它的传感器的数学模型;这些模型中的每一个都必须准确且“足够线性”,以使卡尔曼滤波器正常工作。碰巧,iphone /加速度计/陀螺仪系统实际上是足够线性的。
卡尔曼滤波器使用微积分和线性代数,所以如果你自己滚动,你需要一定数量的数学。
另外,实际上,您应该了解物理传感器通常具有需要补偿的偏移 - 特别是,您需要注意这种惯性导航系统中的速率陀螺偏移,或者您的跟踪器永远不会稳定下来。这意味着您需要将速率陀螺仪偏移量添加到卡尔曼状态向量和系统模型中。