Java 使用智能手机传感器检测驾驶风格
我想使用android智能手机设备测量加速度(分别为向前和横向),以便能够分析驾驶行为/风格 我的做法如下: 1.对齐坐标系 校准(无运动/第一运动): 当汽车静止时,我会使用Java 使用智能手机传感器检测驾驶风格,java,android,android-sensors,inertial-navigation,Java,Android,Android Sensors,Inertial Navigation,我想使用android智能手机设备测量加速度(分别为向前和横向),以便能够分析驾驶行为/风格 我的做法如下: 1.对齐坐标系 校准(无运动/第一运动): 当汽车静止时,我会使用传感器计算重力的大小。键入_gravity并将其直接旋转到z轴(假设平面向下)。这样,俯仰和滚动角度应接近零,并等于汽车相对于世界的角度 在这之后,我将开始与汽车一起向前移动,使用传感器获取第一个运动指示。键入_加速计,并将该幅度直接旋转到x轴(指向前方)。这样,横摆角应等于车辆相对于世界的航向 更新方向(驾驶时): 为了
传感器计算重力的大小。键入_gravity
并将其直接旋转到z轴(假设平面向下)。这样,俯仰和滚动角度应接近零,并等于汽车相对于世界的角度
在这之后,我将开始与汽车一起向前移动,使用传感器获取第一个运动指示。键入_加速计
,并将该幅度直接旋转到x轴(指向前方)。这样,横摆角应等于车辆相对于世界的航向
更新方向(驾驶时):
为了能够在驾驶时保持坐标系对齐,我将使用传感器。键入_GRAVITY
通过
其中A_x,y,z是重力加速度
通常,偏航角将通过传感器、旋转矢量或传感器、磁场来维持。但是,不使用它们的原因是因为我也将在电动汽车中使用该应用程序。发动机产生的大量电压和电流可能会影响这些传感器值的准确性。因此,我所知道的最佳替代方案(尽管不是最佳方案)是使用GPS航向来保持偏航角
2.测量
通过应用上述所有旋转,应该可以保持智能手机和车辆坐标系之间的对齐,从而提供x轴和y轴上的纯向前和横向加速度值
问题:
- 这种方法是否适用,或者我是否遗漏了一些关键的东西
- 是否有更简单/替代的方法
听起来是个有趣的问题。我更改了标题,让人们确切地知道我想要归档的内容,并希望得到一些建议。