具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
本发明实施例提供一种驾驶行为的分析方法,如图1所示,包括:
101,主处理器通过相连的传感器获取交通工具在移动过程中的速度数据,所述速度数据包括三轴加速度和三轴角速度。
在本实施例中,通过软硬件结合的嵌入式设计,实现对数据的采集、数据的算法处理、数据的建模分析及驾驶行为判断这四大基本功能,以车载驾驶行为的分析为例,其中硬件设计构成包括:如图2所所示的装置,包括主控制器、与主控制器相连并传输感应信号的传感器、与主控制器相连的OBD(On-BoardDiagnostic,车载诊断***)接口以及与主控制器相连的其他扩展模块。所述主处理器为带有I2C总线接口(I2C总线即为Inter-IntegratedCircuit总线,是一种由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其***设备)的MCU(MicrocontrollerUnit,微控制单元);所述主处理器还与OBD接插件相连,并通过所述OBD接插件连接并固定于所述交通工具的OBD接口;所述交通工具通过所述OBD接口提供12V输出电压,并由电源模块将所述OBD接口提供电源转化为所述主处理器和所述传感器的工作电压3.3V。在本实施例的方案中,主处理器可以是STM32或MT7620等带有I2C总线接口的MCU、传感器可以是集陀螺仪和加速度传感器于一体的六轴传感器,如MPU6050。该装置还可以包括用于供电以及进行信号传输的***电路。由于采用六轴传感器可以实时有效地测量出交通工具的姿态,根据交通工具姿态可以准确直观地反应出各种驾驶行为,并可以结合车联网***对车主进行人性化的提醒以改善不良驾驶习惯。又由于本实施例中的驾驶行为的分析装置的硬件核心为一个MCU和一个传感器,并且对MCU计算量要求不高,结构简单并且成本很低。
102,根据所述速度数据获取所述交通工具在移动过程中的姿态角数据。
其中,所述姿态角包括所述交通工具的航向角、翻滚角和俯仰角。
103,根据所述速度数据和所述姿态角数据建立表示运动状态的数学模型。
其中,所述数学模型至少包括:实际航向角模型和实际行驶方向的加速度模型。
104,根据所建立的数学模型,确定所述交通工具的驾驶者的驾驶行为。
其中至少包括:根据所述实际航向角模型确定所述驾驶者的急转弯行为,以及根据所述实际行驶方向的加速度模型确定所述驾驶者的急加速或急减速的驾驶行为。
在本实施例中,通过软硬件结合的嵌入式设计,实现对数据的采集、数据的算法处理、数据的建模分析及驾驶行为判断这四大基本功能,以车载驾驶行为的分析为例,其中软件设计构成包括:1、数据采集:即通过主处理器(比如STM32,即基于专为要求高性能、低成本、低功耗的嵌入式应用专门设计的ARMCortex-M内核的STM32系列产品)对传感器(比如MPU6050,即MPU-6000(6050)六轴运动处理组件)进行一定频率的原始数据采集及滤波算法处理,得到三轴加速度(Ax、Ay、Az)和三轴角速度(Gx、Gy、Gz)的数据;2、数据处理:针对三轴加速度(Ax、Ay、Az)及三轴角速度(Gx、Gy、Gz),运用IMU(Inertialmeasurementunit,一种测量物体三轴姿态角(或角速率)以及加速度的装置)姿态融合算法或者MPU6050官方提供的数字运动处理DMP算法进行融合处理,求得整车运行的姿态角数据(即航向角Yaw、翻滚角Roll、俯仰角Pitch);3、数据分析:将加速度、角速度及姿态角数据绘制成数据波形图,并根据实际车载实验建立出符合不同驾驶行为的数学模型,比如汽车的实际航向角Yaw_R模型以及汽车的实际行驶方向的加速度judgeAy模型,其中,也可以将加速度、角速度及姿态角数据上传至上位机并绘制成数据波形图,上位机可以是车载设备或是通过无线、有线网络与如图2所示的装置进行通信,且具有一定计算能力的设备,比如司机的智能手机、个人电脑、PAD等通过数据线或是无线网络与OBD设备进行通信,并最终通过OBD接口与如图2所示的装置进行数据交互;4、驾驶行为判断:根据建立的汽车实际航向模型Yaw_R及实际行驶方向上的加速度模型judgeAy,设计判断算法,至少可以列举以下几种:1、1.5秒时间内航向角的变化率判断急转弯行为(左转或右转方向亦可通过现有的方向判断方案得出,比如通过传感器采集到的加速度方向进行判定);2、加速度的值大于或小于某个阈值的时间维持在2s~3s时间段内判断急加速或急减速的驾驶行为。
在本实施例中,102的具体实现方案可以包括:
1021,通过加权滤波算法对所述速度数据进行处理得到Ax、Ay、Az、Gx、Gy、Gz,其中,所述三轴加速度表示为(Ax、Ay、Az)、所述三轴角速度表示为(Gx、Gy、Gz)。
1022,利用DMP姿态融合算法获取用于表示旋转状态的四元数(q0、q1、q2、q3),并根据所述表示旋转状态的四元数和欧拉角之间的转换算法,获取所述姿态角数据。
其中,所述表示旋转状态的四元数和欧拉角之间的转换算法包括:
俯仰角Pitch=asin(-2*q1*q3+2*q0*q2)*57.3。
翻滚角Roll=atan2(2*q2*q3+2*q0*q1,-2*q1*q1-2*q2*q2+1)*57.3。
航向角Yaw=atan2(2*(q1*q2+q0*q3),q0*q0+q1*q1-q2*q2-q3*q3)*57.3。
举例来说,为确保各硬件模块正常工作,可以按照如图3所示的软件架构图所示设计软件:
编写并加载驱动,主控单片机芯片STM32通过I2C总线读取G-sensor模块(即传感器MPU6050),加载并调试驱动程序使STM32及MPU6050能够正常通信;
读取G-sensor模块的原始数据,标记出各数据的含义——三轴加速度(Ax、Ay、Az)及三轴角速度(Gx、Gy、Gz);
通过加权滤波算法对原始数据进行处理得到相对平稳的Ax、Ay、Az、Gx、Gy、Gz;
利用DMP姿态融合算法获取用于表示旋转状态的四元数(q0、q1、q2、q3),并根据所述表示旋转状态的四元数和欧拉角之间的转换算法,获取所述姿态角数据。
在本实施例中,103的具体实现方案,可以包括:
1031,判断在指定时间内三轴加速度的变化率是否维持在匀速或静止范围内,若是则根据公式一获取基于坐标系α的所述传感器固定于所述交通工具内的摆放姿态,其中坐标系α为:x轴为平行于所述交通工具前端方向、y轴为竖直方向、z轴为水平垂直于x轴,所述公式一包括:
anglex=asin(Aax/A)
angley=asin(Aay/A)
anglez=asin(Aaz/A)
其中:A为固定值16384.0,Aax、Aay、Aaz为分别经过滤波算法处理的三轴加速度值,anglex、angley、anglez为三轴加速度值基于所述坐标系α的角度值。
例如:根据三轴加速度(Ax、Ay、Az)数据值,求出传感器车载摆放姿态。摆放姿态基于车身匀速或静止状态下计算,基于坐标系α——x轴为平行于车头方向、y轴为竖直方向、z轴为水平垂直于x轴。具体算法包括::i.判断30s时间内三轴加速度变化率是否维持在匀速或静止范围内,若维持在匀速或静止状态范围内则跳至步骤ii,否则继续判断下一个30s状态;再根据公式一求出基于α坐标系的传感器MPU6050固定于车内的摆放姿态,具体的,A为固定值16384.0(重力加速度对应的传感器读数)。
1032,根据所述摆放姿态、所述三轴加速度(Ax、Ay、Az)、所述三轴角速度(Gx、Gy、Gz)和所述姿态角数据(Yaw、Pitch、Roll)建立至少包括以下的数学模型:
以车载场景为例:三轴加速度(Ax、Ay、Az)、三轴角速度(Gx、Gy、Gz)以及车身姿态角(Yaw、Pitch、Roll)建立数学模型。据车载OBD接口位置调研,传感器摆放姿态可归纳为绕传感器x轴、z轴旋转式放置或水平于车头方向放置,分别计算三轴加速度(Aax、Aay、Aaz)与A的比值,并与数据阈值0.08比较,即判断Aax/A、Aay/A、Aaz/A是否小于0.08,哪组比较为真即可判断传感器摆放姿态绕其对应的坐标轴(x、y、z)旋转放置。
若所述OBD接口水平于所述交通工具前端放置,则judgeAy=-Ay,Yaw_R=Yaw_this–Yaw_last;
若所述OBD接口绕所述传感器的x轴旋转式的放置,则judgeAy=((Az*sin(angley))-(Ay*sin(anglez)))/(cos(angley)*sin(anglez)–sin(angley)*cos(anglez)),Yaw_R=Yaw_this–Yaw_last;
若所述OBD接口绕所述传感器的z轴旋转式的放置,则judgeAy=((Ax*sin(angley))-(Ay*sin(anglex)))/(cos(angley)*sin(anglex)+sin(angley)*cos(anglex))。
其中,若y轴与水平面的夹角在正负45度范围内,则Yaw_R=Roll_this-Roll_last,否则Yaw_R=Yaw_this–Yaw_last,采样频率为800ms/次,其中Ax、Ay、Az为经过所述加权滤波算法处理的三轴加速度值,judgeAy为平行于所述交通工具的移动方向的加速度值,Yaw_R为所述交通工具的移动方向上的角度。
在本实施例中,104的具体实现方案,可以包括:
判断频率为每1.6s判断一次,若Yaw_R在1.6s的变化角度超过40度,则判定为一次急转弯驾驶行为。
例如:判断频率设置为每1.6s判断一次,若是Yaw_R在1.6s的变化角度超过阈值40度,如图4及图5所示的急左转或急右转时的单位时间内的变化率,即判断为一次急转弯驾驶。
若judgeAy的符号位为正且维持在2s~3s内大于等于阈值3000,则判定为一次急加速驾驶。
例如:judgeAy的符号位为正,如图7所示的急加速行驶时的数据分析波形图所示,若是维持在阈值3000以上2s~3s内,即判断为一次急加速驾驶。
若judgeAy的符号位为负且维持在2s~3s内小于等于阈值-3500,则判定为一次急减速驾驶。
例如:judgeAy的符号位为负,如图6所示的急减速行驶时的数据分析波形图所示,若是维持在阈值-3500以下2s~3s内,即判断为一次急减速驾驶。
需要说明的是,本实施例中所列举的仅为几种可能的具体驾驶行为判定方法,显然也可以采用101-103所得数据以及计算方式指定其他的驾驶行为判断方法。
本发明实施例提供的驾驶行为的分析方法,通过为OBD设备设计了外接处理器和传感器作为硬件核心的驾驶行为的分析装置,并基于该硬件核心设计了根据传感器所采集数据计算得到驾驶者的驾驶行为的方案。相对于现有技术,本发明在保障实时监测和智能评估的高效性和实时性的同时,避免了对于汽车总线的改动,并且本发明可以通过OBD接插件与已有的OBD设备相连接,代替OBD设备承担驾驶行为分析的功能,从而使得不同的车型都可以通过外接本发明所提供的装置来完成驾驶行为分析,又由于本发明所提供的装置的处理器和传感器成本较低,小于重新设计总线的成本,因此本发明也达到了降低成本的目的。
本发明实施例还提供一种驾驶行为的分析装置,如图2所示的,包括:主处理器、与所述主处理器连接的OBD接插件、与所述主处理器连接的传感器。其中,所述主处理器为带有I2C总线接口的MCU。所述主处理器通过所述OBD接插件连接并固定于所述交通工具的OBD接口。所述交通工具通过所述OBD接口提供电源,并由电源模块将所述OBD接口提供电源转化为所述主处理器和所述传感器的工作电压。
所述传感器,用于获取交通工具在移动过程中的速度数据并向所述主处理器发送,所述速度数据包括三轴加速度和三轴角速度。
所述主处理器,用于根据所述速度数据获取所述交通工具在移动过程中的姿态角数据,所述姿态角包括所述交通工具的航向角、翻滚角和俯仰角。并根据所述速度数据和所述姿态角数据建立表示运动状态的数学模型,所述数学模型至少包括:实际航向角模型和实际行驶方向的加速度模型。再根据所建立的数学模型,确定所述交通工具的驾驶者的驾驶行为,其中至少包括:根据所述实际航向角模型确定所述驾驶者的急转弯行为,以及根据所述实际行驶方向的加速度模型确定所述驾驶者的急加速或急减速的驾驶行为。
其中,所述主处理器,具体用于通过加权滤波算法对所述速度数据进行处理得到Ax、Ay、Az、Gx、Gy、Gz,其中,所述三轴加速度表示为(Ax、Ay、Az)、所述三轴角速度表示为(Gx、Gy、Gz)。并利用DMP姿态融合算法获取用于表示旋转状态的四元数(q0、q1、q2、q3),并根据所述表示旋转状态的四元数和欧拉角之间的转换算法,获取所述姿态角数据。
其中,所述表示旋转状态的四元数和欧拉角之间的转换算法包括:
俯仰角Pitch=asin(-2*q1*q3+2*q0*q2)*57.3。
翻滚角Roll=atan2(2*q2*q3+2*q0*q1,-2*q1*q1-2*q2*q2+1)*57.3。
航向角Yaw=atan2(2*(q1*q2+q0*q3),q0*q0+q1*q1-q2*q2-q3*q3)*57.3。
进一步的,所述主处理器,具体还用于判断在指定时间内三轴加速度的变化率是否维持在匀速或静止范围内,若是则根据公式一获取基于坐标系α的所述传感器固定于所述交通工具内的摆放姿态,其中坐标系α为:x轴为平行于所述交通工具前端方向、y轴为竖直方向、z轴为水平垂直于x轴,所述公式一包括:
anglex=asin(Aax/A)
angley=asin(Aay/A)
anglez=asin(Aaz/A)
其中:A为固定值16384.0,Aax、Aay、Aaz为分别经过滤波算法处理的三轴加速度值,anglex、angley、anglez为三轴加速度值基于所述坐标系α的角度值。
所述主处理器,具体还用于根据所述摆放姿态、所述三轴加速度(Ax、Ay、Az)、所述三轴角速度(Gx、Gy、Gz)和所述姿态角数据(Yaw、Pitch、Roll)建立至少包括以下的数学模型:
若所述OBD接口水平于所述交通工具前端放置,则judgeAy=-Ay,Yaw_R=Yaw_this–Yaw_last;
若所述OBD接口绕所述传感器的x轴旋转式的放置,则judgeAy=((Az*sin(angley))-(Ay*sin(anglez)))/(cos(angley)*sin(anglez)–sin(angley)*cos(anglez)),Yaw_R=Yaw_this–Yaw_last;
若所述OBD接口绕所述传感器的z轴旋转式的放置,则judgeAy=((Ax*sin(angley))-(Ay*sin(anglex)))/(cos(angley)*sin(anglex)+sin(angley)*cos(anglex))。
其中,若y轴与水平面的夹角在正负45度范围内,则Yaw_R=Roll_this-Roll_last,否则Yaw_R=Yaw_this–Yaw_last,采样频率为800ms/次,其中Ax、Ay、Az为经过所述加权滤波算法处理的三轴加速度值,judgeAy为平行于所述交通工具的移动方向的加速度值,Yaw_R为所述交通工具的移动方向上的角度。
更进一步的,所述主处理器,具体还用于判断频率为每1.6s判断一次,若Yaw_R在1.6s的变化角度超过40度,则判定为一次急转弯驾驶行为。若judgeAy的符号位为正且维持在2s~3s内大于等于阈值3000,则判定为一次急加速驾驶。若judgeAy的符号位为负且维持在2s~3s内小于等于阈值-3500,则判定为一次急减速驾驶。
本发明实施例提供的驾驶行为的分析装置,通过为OBD设备设计了外接处理器和传感器作为硬件核心的驾驶行为的分析装置,并基于该硬件核心设计了根据传感器所采集数据计算得到驾驶者的驾驶行为的方案。相对于现有技术,本发明在保障实时监测和智能评估的高效性和实时性的同时,避免了对于汽车总线的改动,并且本发明可以通过OBD接插件与已有的OBD设备相连接,代替OBD设备承担驾驶行为分析的功能,从而使得不同的车型都可以通过外接本发明所提供的装置来完成驾驶行为分析,又由于本发明所提供的装置的处理器和传感器成本较低,小于重新设计总线的成本,因此本发明也达到了降低成本的目的。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于设备实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-OnlyMemory,ROM)或随机存储记忆体(RandomAccessMemory,RAM)等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。