关于传感器,我有一个非常基本的问题:
磁性传感器是返回手机初始方位的读数w.r.t,还是返回世界坐标?
那加速计呢?它们是返回之前读数的w.r.t值,还是每个值都是相对于世界坐标系的独立加速度?
我知道陀螺仪会返回相对于手机初始方向的读数。那么,如何将陀螺仪的偏航、俯仰和滚转读数转换为智能手机磁性传感器的方位、俯仰和滚转读数(我使用的是HTC hero)
谢谢!
发布于 2011-03-05 00:05:31
安卓传感器(最高可达FroYo)为应用程序提供“原始”数据。
只涉及最少的“烹调”(即加工)。
accel和compass设备分别提供绝对accel和磁性数据。
陀螺仪提供相对角速度。
陀螺仪不提供任何特定状态/位置的相对数据wrt。
你需要理解的是,陀螺数据是角速度。
角速度很简单,就是手机旋转的速度(每秒度数)。
所以一旦你保持它不动,陀螺仪就会说(0,0,0) &
当你旋转时,你会得到它旋转的速度。
这会一直持续下去,直到你再次按住它不动
当陀螺读数再次变为(0,0,0)时。
从理论上讲,陀螺仪可以用来“校准”罗盘。
但要做到这一点,您需要进行大量的实验。
理想的摆弄地方应该是传感器-HAL。
注意:您需要打开所有传感器的硬件,即使
仅需要指南针数据。因为你将会交叉引用
陀螺/加速度计数据。这将意味着更大的功耗&
电池续航时间极短。所有连续开启的传感器都可以
在4-5小时内耗尽标准Android手机的电量。
你可以阅读更多的。
发布于 2012-06-03 19:57:56
如前所述,陀螺仪测量角速度。返回的第三个值(values2)是相对于z轴的角速度。您可以将该值与磁力计的初始值一起使用来计算当前航向:θ(i+1)=θ(I)+Wgyro*ΔT
您可以从“方向”测量(值)中获得初始航向方向。此测量仅取决于磁力计。(你可以把磁铁或第二部手机放在智能手机附近,看着输出变得疯狂)
“方向”的第二个和第三个值取决于加速度计的读数。由于加速度计测量重力,因此可以根据Y轴和X轴上的加速度计读数来计算俯仰和侧滚角度。
希望这能有所帮助
Ariel
https://stackoverflow.com/questions/4360548
复制相似问题