距加速度计的距离

时间:2016-06-24 17:53:46

标签: android accelerometer motion

是否可以根据加速度计读数计算距离数据?假设我按下按钮并移动手机,是否可以计算出手机的移动距离?我的想法是使用计时器和加速度计,然后以某种方式计算距离。 任何提示?

1 个答案:

答案 0 :(得分:0)

在以下回复中,参考时间单位(秒)'以及距离(米)' m'

嵌入式设备加速度计数据(加速度 - ' [单位ms ^ -2])是位置的二阶时差(差分)。

假设您有N个位置数据点' x' [零级,单位m],位移是差x(i)减x(j)[单位m]随时间(t)周期(t = j)减去(t = i);将该位移除以其时间段给出速度' v' [第一顺序,单位ms ^ -1]; ' v'以这种方式导出的速度数据点,通过原始N个数' x'之间的减法关系,失去一个自由度,数量仅为[N-1]。数据点。

现在,如果你重复使用' x'但是用衍生的' v替换它,那么你得到[第二顺序]' a'加速。出于同样的原因,你会以[N-2]个数字结束' a'数据通过另一个自由度的损失通过原始N-1个数的' v'之间的减法关系。数据点。

现在你的是相反的问题:从' a'开始加速数据导出' x'通过顺序整合'恢复' v'并重复使用' a'使用' v'而是恢复一个综合的'。你是怎么做到的?

明确整合。当您按下“开始”时按钮最初开始(b)您必须为加速度计的初始加速度读数(a)建立时间(t)和速度(v)的初始条件,并结束另一个事件(可能是另一个按下按钮)的积分表示在各自时间段内变化速度累积的结束(e)。积分(求和)告诉你速度如何在(b)和(e)之间演变。当然,您可以通过初始“开始”按钮按下和最终“结束”按钮之间的传感器事件提供的有限(小)步骤来执行此操作。

再次以相反的顺序重复前面的步骤但替换加速度' a'积分结果速度' v'完成双重整合结果' x'。

要实现这一目标,您可以将初始(b)和结束(e)种子数据添加到集成流中以获得速度,然后添加到位置。

因此,简短的回答是:为了从加速中推导出位置,您需要构建应用程序应遵守的配置开始和结束点数据。通常一个人使用0 = x = v = t,假设这对应于您的初始按钮按下。此后,你正在整合"加速度与力量成正比,并且"速度与动量成比例"和"动量与位移成比例",所有三个共享的比例质量系数(m)在你的运动练习中都可以剔除,而不需要进一步参考' m'并假设是统一(1)。

现在对于实际部分:我最近尝试过从距离测量转换 - >加速进入逆向加速 - >距离,使用智能手机平台加速度计3D阵列。

迄今为止的预后并不好: 在智能手机上使用四核1.2GHz CPU(制造规格):OS Android OS,v4.4.4(KitKat);芯片组Qualcomm MSM8916 Snapdragon 410; CPU四核1.2 GHz Cortex-A53; GPU Adreno 306,

我每秒只获得13.97个3D加速度计读取周期,包括推送时间和从传感器事件到UI资源的传感器数据的最小处理器任务.R显示为文本。

你需要发现(在这种情况下)如何将一个核心专用于实时处理。相比之下,十年前我用谦逊的8位Motorlola 68HC11做了更好的工作,占用程序指令数量的100倍。

也许其他人知道如何将Android 1.2Ghz多核专用于(近)实时占空比。默认的14Hz事件周期不能起到太大作用,时钟计时器在传感器事件之间有一个可怕的标准差,使得关键的集成有问题...

MKhomo