dgl*_*ldy 6 android filtering accelerometer uiaccelerometer
我试图确定利用Android的线性加速数据的好处,而不是简单地应用Androids API参考中提供的低通滤波器,并在此其他stackoverflow问题中讨论.
我问我正试图获得一个记录线性加速的免费应用程序(以及我的其他要求(采样率,将数据写入文件等等)).我找不到一个,所以我考虑使用一个使用标准加速度计记录的应用程序然后我只是将低通滤波器应用于数据.或者,我可以编写自己的应用程序来完成我需要的工作 - 但我在Android开发方面没有太多经验,这需要一些时间.
Kal*_*leb 14
我已经对这个问题进行了一定程度的研究,我可以帮助你指明正确的方向.
正如其他人所提到的,只有部分手机实现了TYPE_LINEAR_ACCELERATION和TYPE_GRAVITY,它们通常都配备了陀螺仪.Droid Razr甚至有一个陀螺仪,但他们从不打算实现它或TYPE_LINEAR_ACCELERATION.我相信GS2已实现TYPE_LINEAR_ACCELERATION,但没有陀螺仪,所以他们必须使用磁传感器或某种低通滤波器.这可能令人沮丧.
在大多数带陀螺仪的手机上,加速度传感器和陀螺仪之间存在某种融合(可能是补偿滤波器以补偿漂移,然后是四元数或万向角以隔离重力).这些融合和过滤器可以不同的方式实现,并使用不同的硬件等......延迟和准确性会因设备而异,因此TYPE_LINEAR_ACCELERATION并不总能产生相同的结果.
如果您没有配备TYPE_LINEAR_ACCELERATION的手机,则会遇到TYPE_ACCELERATION,它无法将重力(倾斜)与线性加速度分开.
一种选择是应用低通滤波器.根据您的应用,这可能会也可能不会起作用.我写了一个免费的应用程序来帮助开发人员和其他感兴趣的人探索低通滤波器选项.
另一种选择是仅在设备静止时测量设备的倾斜度,然后在设备不静止时应用重力测量.如果设备不经常改变方向,这可能是一个很好的选择,因为它非常快速和简单.
一个出色的替代传感器融合选项是使用磁传感器而不是陀螺仪.假设磁场不受硬铁或软铁扭曲的影响,该选项几乎适用于所有设备.
我已经在开源项目Acceleration Explorer中实现了所有这些方法
| 归档时间: |
|
| 查看次数: |
4619 次 |
| 最近记录: |