过山车:根据惯性数据确定主体位置?

信息处理 即时的 时间序列 位置
2022-02-06 18:39:29

我有来自反复乘坐过山车的人类受试者手机的惯性数据(加速度计、陀螺仪、磁力计)。

  • 骑行有时间变化(例如,有时从 A 到 B 需要 300 毫秒的时间)
  • 手机可能有不同的初始方向
  • 手机留在受试者的口袋里,但有点挤

使用这些数据,我想

  1. 学习“平均”过山车
    • 作为时间序列
    • 作为一系列重大的过山车事件
  2. 在新的旅程中,实时可靠地确定主题在路径上的位置,以便我们可以将音乐与他们的体验对齐 \m/
  3. 奖励:过山车路径的 3D 模型

我该怎么做呢?

我猜:

    • 低通滤波器数据以消除推挤/噪声
    • 使受试者口袋中不同的初始方向正常化的东西
    • 通过某种通量的峰值标记重要的过山车事件

    • 某种动态时间扭曲?

    • 某种期望最大化?
    • 通过将游乐设施分成训练/测试集来测试准确性
  1. ?
1个回答

骑行有时间变化(例如,有时从 A 到 B 需要 300 毫秒的时间)

在骑行的某些部分(例如上坡),推车由电机驱动。在这些部分中,加速度应该相当稳定。任何时间变化,如果不是归因于不同的采集时间,可能是由于空气动力学因素。对于给定的骑行,这可能是空气温度(影响密度)、手推车中的乘客数量(身体部位干扰空气流动)和风向。过山车的平均速度为 82 mph (~ 132kmh的“位置误差” 根据骑行的实际长度,这可能可以忽略不计。132000m3600000ms0.03666m/ms300ms×0.03666m/ms=11m

除此之外,您的采样频率也会有些抖动,因为手机的操作系统不能保证它会以绝对严格的频率进行采样。

手机可能有不同的初始方向

没关系,如果您从后续测量中减去第一次测量,那么您将获得相对指示而不是绝对指示。例如,假设您的轴承的前几次测量结果是[270, 265, 260, 255, . . .]该系列[0, -5, -10, -15, . . .]表示相对转动。

手机留在受试者的口袋里,但有点挤

同样,与表征骑行转折点的 G 力相比,手机在某人口袋中的碰撞可能可以忽略不计。将手机紧紧地塞在前袋中是一回事,将其固定在夹克的拉链口袋中(在骑行过程中可能会晃动)是另一回事。

学习“平均”过山车

  • 作为时间序列
  • 作为一系列重大的过山车事件

“平均”过山车骑行是给定骑行的所有可用记录的平均值,每个传感器。那里没有什么可以“学习”的,您拥有的记录越多,您的平均值就越接近骑行中的“平均”体验,因为您在骑行中的每个时间实例都会获得许多不同的加速/旋转/轴承样本。

一旦你对什么是“重大过山车事件”有了明确的定义,就很容易提取出一系列“重大过山车事件”。

例如,“重大过山车事件”可能是急剧下降或急转弯。这两者的特点是推车上物体的总加速度变化速度很快。因此,您可以从 3D 加速度计得出总加速度为然后应用一些“事件阈值在您的上。由此产生的指标函数(一些)指向一些“重大过山车事件”。在上面,是加速度计测量的单个组件。显然,也可以组合多个传感器来提取“Atotal(n)=x(n)2+y(n)2+z(n)2TeAtotal(n)Zn=aTnTex,y,z

在新的旅程中,实时可靠地确定主题在路径上的位置,以便我们可以将音乐与他们的体验对齐 \m/

奖励:过山车路径的 3D 模型

您将无法从加速度中提取过山车路径的准确 3D 模型,因为无法将手机的传感器准确集成到适当的 6 自由度惯性导航系统中如果您想要一个过山车路径的精确模型,只需记录 GPS 坐标,您就可以在零时间内以 3D 形式获得骑行的形状,并且只需最少的数据处理。

一旦生成了“平均轨迹”信号,跟踪用户在给定行程中的位置就变得微不足道了。有了这个,在骑行中跟踪用户被翻译为“给定用户的几个点的“过去历史”,他们可能沿着这个特定的一维曲线在哪里?”。

因此,鉴于“随机”电话的信号预计会以大致给定的方式(骑行的形状)变化,您所要做的就是检查它们的位置。您可以通过在“位置”上建立一个卡尔曼滤波器来监控当前的总加速度和转弯率。Kalman 将不断猜测它应该在曲线上的位置,并使用它从传感器接收到的实际信号来纠正这个猜测。您也可以使用粒子过滤器来实现相同的效果,可以说需要更少的处理。

显然,然后您可以在一维曲线上设置标记来触发您的音乐重播。

希望这可以帮助。