使用智能手机传感器进行驾驶风格检测

时间:2016-04-14 16:01:13

标签: java android android-sensors inertial-navigation

我想使用Android智能手机设备测量加速度(分别向前和横向),以便能够分析驾驶行为/风格。

我的方法如下:

1。对齐坐标系

校准(无动作/第一动作): 当汽车静止时,我会用Sensor.TYPE_GRAVITY计算重力的大小,并将其直接旋转到z轴(指向下方,假设是平坦的表面)。这样,音高滚动角度应该接近零并且等于汽车相对于世界的角度。

在此之后,我将开始直接用汽车向前移动以使用Sensor.TYPE_ACCELEROMETER获得第一个动作指示,并将此幅度直接旋转到x轴(指向前方)。这样,偏航角度应该等于车辆与世界相关的航向。

更新方向(驾驶时): 为了能够在驾驶时保持坐标系统对齐,我将使用Sensor.TYPE_GRAVITY来维持系统的滚动和俯仰

enter image description here

enter image description here

其中A_x,y,z是重力加速度。

通常,偏航角度将通过Sensor.ROTATION_VECTORSensor.MAGNETIC_FIELD维持。然而,不使用它们的原因是因为我将在电动车中使用该应用程序。由发动机产生的大量伏特和安培可能会使这些传感器值的精度受损。因此,我所知道的最佳替代方案(尽管不是最佳的)是使用GPS航向来维持偏航角。

2。获得测量

通过应用上述所有旋转,应该可以保持智能手机和车辆坐标系之间的对齐,从而在x轴和y轴上给出纯粹的前向和横向加速度值。

问题:

  • 这种做法是否适用,或者我是否错过了至关重要的内容?
  • 对此有更简单/替代方法吗?

1 个答案:

答案 0 :(得分:0)

关于寻找加速度,如果您有权访问GPS的源代码,您无法通过计算GPS的距离/时间来找到前向运动吗?

如果目标是找到驾驶行为和风格,我会想象收集一个大型数据集,然后使用k均值聚类算法对数据进行排序,然后使用lstmRNN(进行预测)可能是另一种方法。 (虽然这要求您从大型数据集中获取数据,但我不知道这是否可行,也不知道您希望在数据集中包含哪些因素。)

虽然听起来像是一个有趣的问题。