Fuzzy Logic Based Event Detection

现有的驾驶员程序分析机制通常基于多个输入数据和基于固定阈值的事件检测。例如,如果车辆的瞬时速度大于120公里/小时[6],就会触发超速事件,这在高速公路的场景中是不现实的,在高速公路中,由于道路类型不同,速度限制可能会有所不同。像Greenroad[6]这样的商业应用也依赖GPS和智能手机传感器数据来检测事件。在这个应用程序中,分数被简单地计算为事件率,即应用程序计算的每单位距离上的事件数。在本例中,所有类型的事件都具有相同的评分相关性,并简单地合并到一个全局事件计数器中。

在SenseFleet中,本文同时考虑GPS和运动传感器的输入数据。

accelerometer

设备的加速度输出$a(t)=[a_x(t),a_y(t),a_z(t)]$,单位$m/s^2$,
则加速度矢量大小的描述如下:
$$
|a(t)| = \quart(a_x(t)^2+a_y(t)^2+a_z(t)^2) \tag{1}
$$
本文试图通过独立考虑每个加速度轴来推断汽车的纵向和横向运动。为此,我们将加速度矢量平移到地球坐标系,以便与飞行器的轨迹相一致。然而,即使这些信号被过滤(使用卡尔曼滤波器),它也不可能清楚地从这个输出分解车辆的纵向和横向运动。然后我们决定计算加速度矢量的大小来减轻这个问题。需要注意的是,这个数值对于坐标系统(例如,设备,地球)来说是不变的,当司机在使用应用程序而车辆停止时,允许设备旋转或操作。

最终 jerk(j)被计算为加速度大小的时间导数
$$
j(t) = \fran{d|a(t)|}{dt} \tag{2}
$$

在计算了jerk后,为了测量车辆的方向变化(偏航率)direction variation (yaw rate) ,本文使用该设备的磁性和重力传感器来计算方向矢量。这个矢量包括偏航(yaw)、俯仰(pitch)和横摇(roll),它们描述了绕不同轴的旋转。

本文考虑yaw rate,y测量车辆绕垂直于地球表面的轴旋转时的转向。

运动传感器(如加速度计、磁传感器、重力传感器)的一个主要限制是噪声暴露量大,主要是电磁干扰和设备振动[19]。因此,在提出的机制中,我们融合运动传感器数据和GPS数据,以准确检测驾驶事件。特别是基于gps的度量,我们考虑了速度变化($\delta S$)和方位变化($\delta B$)GPS数据以1 Hz的采样率获得,其速度变化以两个连续采样的差值计算

$$
\delta S = S(t) - S(t-1) \tag{3}
$$

同样,方位变化量(即与北方的相对角度变化量,以。/s测量)的计算方法如公式4所示。

$$
\delta B = B(t) - B(t-1) \tag{4}
$$

不同的输入变量在不同的采样率下得到。在运动传感器的情况下,采样率在20到50赫兹之间变化,这取决于设备硬件和操作系统版本。为了缓解这些影响,我们实现了一个传感器融合层来同步运动传感器和GPS样本,以执行基于不同时间序列的事件检测。假设GPS样本以1hz的固定频率接收,我们在最后一秒内存储j和y样本。然后,对每个GPS定位固定的,我们计算$\delta S$和$\delta B$,平均yaw rate($\mu (y)$),和jerk标准差($\theta (j)$)。为了进一步减轻驾驶过程中设备振动的影响,我们考虑了jerk标准差而不是原始jerk或加速度。经过几次试验,我们观察到在加速、刹车或转向事件中,jerk标准差比总加速度或平均jerk表现出更明显的变化。

为了检测驱动事件,我们建立了一个模糊系统[20],该系统由输入数据的一个模糊化阶段($[\theta (j),\mu (y),\delta S,\delta B]$)和一套模糊规则的应用组成。每个规则评估输入变量的不同可能的模糊值的组合和某一类型事件的输出(例如,硬加速,硬刹车,粗暴的转向,超速)

针对不同类型的机动,通过分析受控场景的输入变量值,手动推导出规则。对于输入变量的模糊化过程,我们考虑梯形隶属函数。对于输出变量,我们为每种不同类型的事件考虑一个单独的crisp值,从而允许重心去模糊化过程单独检测事件。各变量的模糊集如表1所示。对于模糊系统实现,我们使用jFuzzyLogic[21],这是一种用于Java的开源模糊逻辑实现。然而,如下所述,这些集合的极限是在校准过程后动态建立的。模糊规则指示要触发的事件的特定条件。

举例来说,为了检测硬加速,系统考虑以下规则:

(未完)…