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