智能驾驶汽车方向盘数据监测系统的一体化设计毕业论文
2020-04-05 11:00:44
摘 要
汽车驾驶员行为差错是汽车行驶过程中普遍存在的一种现象,也是众多交通事故的起因之一。驾驶员的生理状况和道路的行驶状况会共同作用于驾驶行为。国内外许多研究人员通过对驾驶员生理、心理特征和驾驶信号的采集,利用回归方程等数学工具来寻找这些因素间的相关性。但对驾驶行为产生影响的相关因素非常多,这也就意味着使用常规方法对驾驶员的驾驶状态做出精确判断,难度非常大;此外,大部分的被研究对象,如生理、心理、行为习惯等对驾驶行为的影响及其潜在的逻辑因果关系尚不明了,给建立的数学模型带来很大缺陷,进而给驾驶行为监测系统的设计带来了巨大阻碍。目前人工智能领域研究较为前沿的模糊神经网络可以很好地处理黑箱效应,即不需要知晓“黑箱”中的逻辑原理而得出正确的结论,有望作为判断算法解决上述问题。针对驾驶员的驾驶行为特点,以方向盘转向角、转向角速度及转动方向为切入点,可建立驾驶行为与汽车状态的直接联系,实现对驾驶行为的有效监测。
本文基于上述思路设计实现了一套一体化方向盘数据采集及驾驶行为监测系统,由安装于方向盘上采集转角、转速度和转动方向信号的数据模块,以及相配套的判断算法和模拟仿真驾驶系统构成。系统硬件部分为数据采集与存储模块,利用Arduino开发板和光电编码器实现对方向盘信号的采集、转换和传输储存,对驾驶动作进行较为精确的采集和初步运算。软件部分利用模拟仿真驾驶和数据采集模块采集驾驶数据,通过模糊C聚类算法进行分类,根据分类的结果进行统计,能较为精确地判断驾驶员的不同动作,如小角度平缓转动和大角度急速转动。然后利用模糊神经网络学习,使计算机能对不同的驾驶状态进行判断,看当下的驾驶行为是否处于易出现驾驶差错的状态。本文利用Unity 3D平台搭建的模拟驾驶软件能较为逼真地还原驾驶员对汽车的操控,使收集到的数据较接近真实驾驶。
关键词:模糊神经网络 智能驾驶 危险驾驶行为 模糊C聚类 方向盘 Arduino Unity3D
Abstract
Car driver behavioral error is a common phenomenon in the process of car driving, and it is also one of the causes of many traffic accidents. The physiological condition of the driver and the driving condition of the road can act together on the driving behavior. Many researchers at home and abroad through the collection of physiological, psychological characteristics and driving signals, the use of regression equations and other mathematical tools to find the correlation between these factors. However, as many research institutes have demonstrated, there are so many correlation factors that influence the driver's behavior. This means that the driver's driving status is accurately judged. If the conventional method is used, it will be difficult. Very big. The reason is that most of the subjects under study, such as physiological, psychological, and behavioral habits, are likely to have potential logical precedence. This will bring great deficiencies to the established mathematical model, and then to the design of the monitoring system. A huge obstacle has come. However, this paper proposes to use the fuzzy neural network which is currently researched in the field of artificial intelligence as a judgment algorithm to solve the above problems. The reason is that the algorithm can handle the black box effect very well, that is, it does not need to know the logic principle in the "black box" to come to the correct conclusion. The driver's driving data is a very ideal input parameter, which is a direct logical connection between the driver's all unknown subjective factors and the vehicle control, and it is also the most objective analysis data for driving accidents.
Based on the above ideas, this paper designs a data module that is installed on the steering wheel to collect the signals of rotation angle, rotation speed and rotation direction, as well as matching judgment algorithms and simulation driving system to form a complete set of driver monitoring system. The module mainly uses Arduino development board and photoelectric encoder to achieve the steering wheel signal acquisition, conversion and transmission and storage. Using driving simulation and module to collect driving data, and then classification by fuzzy C clustering algorithm, statistics based on the classification results, to determine whether the driving behavior is in a state of prone to driving errors.
The system is mainly divided into two parts: hardware and software. The hardware part can carry out more accurate collection and preliminary calculation of the driver's driving action, and the software algorithm can more accurately judge the driver's different actions, such as gentle rotation of small angle and rapid rotation of large angle. After learning with fuzzy neural network, different driving states can be judged. However, software that makes real-time judgments on vehicles also needs to translate and package the algorithm code in C language.
For a smart car's assisted driving system, a precise and efficient algorithm is the core of the entire system and the basis for ensuring the security of its escort. The development of artificial intelligence has never stopped, and the research on the fuzzy neural network algorithm will accumulate experience in all areas of mechanical automation and lay the foundation for the development of artificial intelligence.
Key words: Fuzzy Neural Network Intelligent driving Dangerous driving behavior fuzzy c-means algorithm steering wheel Arduino Unity3D
目 录
第一章 绪论 9
1.1 课题的目的和意义 9
1.2 设计思路 10
第二章 硬件选择和调试 12
2.1 Arduino开发板和各组件 12
2.2 Arduino开发板与计算机的串口调试 13
2.3 Arduino 与光电编码器的连接和调试 14
第三章 Arduino数据处理程序设计 15
3.1 光电码盘原理和数据采集 15
3.2 角速度采集程序和串口通讯 16
3.3 驾驶数据记录仪SD卡模块的安装 17
第四章 模拟驾驶的平台搭建 20
4.1 模拟驾驶设计思路 20
4.1.1 模拟驾驶系统的意义 20
4.1.2 开发工具Unity 3D 21
4.2 驾驶场景的构思 21
4.2.1 模拟驾驶道路的设计 21
4.2.2 车辆的动力学设计 23
4.3 模拟驾驶系统的搭建 26
4.3.1 驾驶场景的布局和搭建 26
4.3.2 操作方式的优化 27
4.3.2 驾驶员视角的优化 29
第五章 数据处理和结果分析 33
5.1 模式识别相关理论 33
5.1.1 模式识别与模糊聚类分析 33
5.1.2 FCM算法原理和样本中心选取 35
5.1.3 聚类数目的选择 36
5.2 智能学习系统的设计思路与仿真 39
5.2.1 模糊神经网络算法及基本原理 39
5.2.2 模糊神经网络算法的搭建思路 40
5.3 模糊神经网络工具箱仿真数据和分析 41
5.3.1 数据归一化和聚类仿真 41
5.3.2 模糊神经网络仿真过程 47
5.4 实际驾驶数据的分析 51
5.4.1 数据样本的采集 51
5.4.2 模糊C聚类的参数选择 55
5.4.3 模糊聚类结果统计和处理 57
5.4.4 生理行为与检测数据分析 59
结论 61
致谢 64
中外文献参考 65
附录 69
附录.A Arduino 方向盘数据采集代码: 69
附录.B1 模糊C聚类样本分类: 73
附录 B3 子函数计算距离 75
附录.B4 子函数初始化模糊矩阵 76
附录.B5 子函数逐步聚类 76
第一章 绪论
1.1 课题的目的和意义
近些年来,随着科技的进步和人工智能的概念逐步进入公众的视野,现代社会中的人们对于利用计算机完善现实生活中的方方面面给予了非常高的期待。而汽车工业作为前沿科技和普通大众日常生活的结合的重要领域,一直都是高新技术应用的最前沿。而对于汽车辅助驾驶系统来说,除了优化行驶性能和驾驶难易度外,对于如何保护乘客和驾驶员人生安全的研究也是至关重要的。
经济的发展促进世界汽车保有量的上升,而与此同时也带来大量道路交通安全事故,其中不乏恶性交通安全事件[2]。根据美国国家高速公路安全局的统计,2016年醉酒驾驶死亡人数为10497,而由于驾驶员分心导致的死亡事故则为3450起。科技进步地伟大之处在于改善了人们的生活,但更多的应该在于挽救无辜的生命。但这些血的教训不应该是驾驶员危险驾驶行为监测和预警系统开发的唯一理由,即使没有这些骇人的悲剧,我们也应该不断发现和解决处于汽车这款科技中的潜在危险,这是一种对于社会的责任也是公众给予我们科技开发人员的信任。
许多的文献重点基于研究驾驶员的疲劳驾驶状态,并利用线性回归对驾驶员的生理信号和驾驶动作的数据进行匹配以验证其相关性。但考虑到疲劳是导致危险驾驶行为出现的原因但并不是唯一的原因,对于将疲劳驾驶状态的生理学特征和危险驾驶状态进行匹配时会出现较大的误差,也会让监测系统模糊判断准则,增加驾驶员发生事故的风险。如当驾驶员玩手机或者接听电话时,仅通过识别眼睛闭合度的系统便无法给予正确的预警,因为驾驶员精神抖擞却心不在焉时并不属于疲劳的状态。我们需要深入研究危险驾驶行为发生的心理学和行为上的共性,而不仅仅是疲劳的状态引起地行为特征。为保证正常行驶, 驾驶员要随时调整方向盘来控制汽车以抵御外力的影响。研究汽车方向盘转角的变化特性, 对研究驾驶行为、开发汽车行驶监视仪器等都有积极的意义[8]。本文所使用的驾驶员方向盘操作的行为监测方法为非接触式监测,测量的过程不会对驾驶员的正常驾驶行为进行干扰,而且其不受外界自然环境的影响[4]。
1.2 设计思路
本文拟设计一套一体化方向盘数据采集及驾驶行为监测系统,由安装于方向盘上采集转角、转速度和转动方向信号的数据模块,以及相配套的判断算法和模拟仿真驾驶系统构成。
系统硬件部分为数据采集与存储模块,利用Arduino开发板和光电编码器实现对方向盘信号的采集、转换和传输储存,对驾驶动作进行较为精确的采集和初步运算。设计思路如图1.1所示。
Arduino作为当下流行的单片机开发板具有强大的运算能力和精确的信号控制能力,以及较小的体积,众多优点使其广泛应用于无人机控制系统、3D打印设备的主控制器甚至是人造卫星等各种尖端控制项目中。旋转编码器是利用设置在转轴随轴旋转的光栅板上明暗相间的光栅对信号的阻通而实现转动角度和脉冲信号的转换。
Arduino底层封装的单片机可以简化大部分的繁琐工作而使实现控制更加高效。在理解了Arduino 开发板的原理和控制策略后,便可以对实现对相应设备信号的采集和输送。其设计方案可见装配图,将光电编码器与方向盘用联轴器串联,固定于驾驶台上。Arduino开发板和备用SD卡数据储存模块可嵌入于仪表盘后方并将Arduino串口于车载ECU(Electronic Control Unit)相连接以实现后期危险驾驶行为判断算法的运行。
系统软件部分利用模拟仿真驾驶和数据采集模块采集驾驶数据,通过模糊C聚类算法和模糊神经网络方法对不同的驾驶状态进行分类,并且判断驾驶行为是否处于易出现驾驶差错的状态。其设计思路如图1.2所示。
图1.1 硬件设计思路
图1.2 软件设计思路
第二章 硬件选择和调试
2.1 Arduino开发板和各组件
本文中主要使用Arduino作为开发平台。这是一款来自于欧洲工程师们的杰作。其创始人团队包括意大利高科技设计学校的老师Massimo Banzi、西班牙的芯片工程师David Cuartielles。出于创造物美价廉的电路板,Massimo Banzi与David Cuartielles于2005年开始着手制作Arduino微控制器的原型,并吸收了Banzi的学生David Mellis作为编程语言设计师。花了几天的时间便完成了电路板的制作,包括编程语言的编写。
硬件调试对象主要为两个,Arduino与光电编码器,需要调试配合的硬件连接有三个,分别为Arduino与电脑、光电编码器与Arduino和SD卡模块与Arduino。此处利用手提电脑模拟车载电脑与Arduino控制板实现串口通信。模块设备所选用的Arduino开发板型号为Mega2560,光电编码器为欧姆龙和Arduino 的SD卡模块。让光电编码器的脉冲信号由引脚输入开发板,开发板随即对信号进行处理,具体的处理方式和代码将在下文详细叙述。最后分别通过串口通信和ICSP接口将信号传输给电脑和SD卡模块进行储存。各部分零件如下图2.1到图2.3所示。
图2. 1 光电编码器
图2. 2 SD卡模块
图2. 3Arduino开发板
2.2 Arduino开发板与计算机的串口调试
Arduino mega2560与计算机的串口通信实验可利用Blink程序进行验证。将Arduino串口通信的接线与电脑USB接口相连接。在工具选项中选择相连接的USB串口,以开启连接串口通讯。利用Arduino开发软件中的实例程序Blink程序就可以实现开发板上LED灯间隔一秒的闪烁现象。
通过串口供给开发板提供电源,同时利用代码控制LED灯处的引脚每个一秒间歇输入一个高电平和一个低电平,高电平触发灯亮,低电平关闭灯,最终实现闪烁动作,也验证其连接的可靠性。
2.3 Arduino 与光电编码器的连接和调试
光电编码器拥有三个信号触发引脚分别记为A、B、Z相,以及三个电源供给引脚其中包括电源正极和两个地线。其功能是通过A、B相判断编码器是正转还是反转,Z相为零位相用于发出信号。因为原始厂家提供的设备电线处于未处理状态,需要利用电烙铁分别对A、B、Z的三个引脚进行烫锡,焊接上排针以实现与Arduino开发板引脚的连接。
以上是毕业论文大纲或资料介绍,该课题完整毕业论文、开题报告、任务书、程序设计、图纸设计等资料请添加微信获取,微信号:bysjorg。
相关图片展示: