我想使用Android智能手机设备测量加速度(分别向前和横向),以便能够分析驾驶行为/风格。
我的方法如下:
校准(无动作/第一动作):
当汽车静止时,我会用Sensor.TYPE_GRAVITY
计算重力的大小,并将其直接旋转到z轴(指向下方,假设是平坦的表面)。这样,音高和滚动角度应该接近零并且等于汽车相对于世界的角度。
在此之后,我将开始直接用汽车向前移动以使用Sensor.TYPE_ACCELEROMETER
获得第一个动作指示,并将此幅度直接旋转到x轴(指向前方)。这样,偏航角度应该等于车辆与世界相关的航向。
更新方向(驾驶时):
为了能够在驾驶时保持坐标系统对齐,我将使用Sensor.TYPE_GRAVITY
来维持系统的滚动和俯仰
其中A_x,y,z是重力加速度。
通常,偏航角度将通过Sensor.ROTATION_VECTOR
或Sensor.MAGNETIC_FIELD
维持。然而,不使用它们的原因是因为我将在电动车中使用该应用程序。由发动机产生的大量伏特和安培可能会使这些传感器值的精度受损。因此,我所知道的最佳替代方案(尽管不是最佳的)是使用GPS航向来维持偏航角。
通过应用上述所有旋转,应该可以保持智能手机和车辆坐标系之间的对齐,从而在x轴和y轴上给出纯粹的前向和横向加速度值。
答案 0 :(得分:0)
关于寻找加速度,如果您有权访问GPS的源代码,您无法通过计算GPS的距离/时间来找到前向运动吗?
如果目标是找到驾驶行为和风格,我会想象收集一个大型数据集,然后使用k均值聚类算法对数据进行排序,然后使用lstmRNN(进行预测)可能是另一种方法。 (虽然这要求您从大型数据集中获取数据,但我不知道这是否可行,也不知道您希望在数据集中包含哪些因素。)
虽然听起来像是一个有趣的问题。