登录

  • 登录
  • 忘记密码?点击找回

注册

  • 获取手机验证码 60
  • 注册

找回密码

  • 获取手机验证码60
  • 找回
毕业论文网 > 毕业论文 > 理工学类 > 能源与动力工程 > 正文

模拟驾驶系统人机交互同步通讯设计与实现毕业论文

 2020-02-15 08:56:26  

摘 要

脑控车是一种利用人体的脑电变化来直接控制车辆的新型驾驶方法。在实现脑控这种新型驾驶方式时有一个问题是无法被忽略的,那就是人脑电波变化的规律,也就是要根据收集到的脑电信息的波动形式解析出人们想对车辆发出的控制指令,这涉及到了脑电的时序配准问题。脑电的时序问题是指在进行脑电数据收集实验过程中,脑电信号采集软件和车辆行驶信息采集软件不是同时开始数据收集,导致两种数据具有时间差。只有消除时间差,达到两种数据的同步通讯,才能科学可靠的解析脑电数据。

本文首先利用QT实现了脑电数据的读取、储存以及刷新显示;在此基础上,分析了模拟驾驶实验中同步采集的脑电数据(actiCHamp Brain Products GmbH,德国)和驾驶数据(Unity3D),通过对两种数据特点和数据采集软件的仔细分析,提出了解决时序问题方法。通过对驾驶轨迹关键点的分析,定位空间信息,车辆通过该点时向脑电数据记录软件发送标记,通过在脑电数据中寻找该标记实现两种数据时序对齐。两种实验数据的自动实时配准和多程序、多设备、多端口实时通讯有待进一步研究。

关键词:QT;时序分析;数据的存储与读取;智能驾驶

Abstract

The brain-controlled car is a new kind of driving method that uses the human brain#39;s electroencephalograph (EEG) changes to directly control the vehicle. There is a problem that cannot be ignored in the realization of this new brain control driving style, i.e. the law of changes in human brain waves. That is, the control command that the drivers want to send to the vehicle should be recognized according to the fluctuation of the EEG signals. This problem involved the timing registration of EEG signals. The timing problem of EEG meant that during the EEG data collection experiment, the EEG signal acquisition software and the vehicle travel information collection software did not start data collection at the same time, which resulted in a temporal difference between the two data. Only by eliminating the temporal difference and achieving synchronous communication of the two kinds of data can the EEG data be scientifically and reliably analyzed.

In this paper, first QT was used to realize the reading, storage and refresh display of EEG data. On this basis, the EEG data (actiCHamp Brain Products GmbH, Germany) and driving data (Unity3D) collected synchronously in the simulated driving experiment were analyzed. Through careful analysis of the characteristics and data acquisition software of these two datasets, a method to solve the timing problem was proposed. By analyzing the key points of the driving trajectory, the spatial information was located, and when the vehicle passed through the specific point, the simulated driving software sent a mark to the EEG data recording software, and then the two data timing alignments were realized by finding the mark in the EEG data. Automatic real-time registration and multi-program, multi-device, multi-port real-time communication of the two experimental data are for further study.

Key Words:QT, timing analysis, data storage and reading, intelligent driving

目录

第1章 绪论 5

1.1 研究背景 5

1.2 国内外研究现状 5

1.2.1 人机交互的发展历程 5

1.2.2 脑控车的发展历程 5

1.3 设计思路 6

第2章 QT软件的选择与界面设计 7

2.1 QT编程软件版本的选择 7

2.1.1 QT软件的介绍 7

2.1.2 QT4和QT5的区别与选择 7

2.2 Qt的安装及人机交互界面设计 8

2.2.1 QT编译器的选择 8

2.2.2 QT小窗口的编写 8

2.3 TXT文件读取程序的编写 10

2.4 本章小结 12

第3章 实验设计、数据获取及预处理 13

3.1 模拟驾驶实验设计 13

3.2脑电数据获取 13

3.3 脑电数据预处理 14

3.4 MAT文件格式转换 15

3.5 本章小结 16

第4章 脑电数据在QT中的绘制 17

4.1 绘图软件选择以及界面初步布局 17

4.1.1绘图控件QcustomPlot 17

4.1.2 显示界面的初步布局 17

4.2 槽函数编写及QcustomPlot调用 18

4.2.1 槽函数的编写 18

4.2.2 绘图控件QcustomPlot的调用 19

4.3 本章小结 22

第5章 时序的分析以及同步通讯的实现 23

5.1 时序的分析 23

5.1.1 时序分析的目的 23

5.1.2 时序问题的具体分析 23

5.2 同步通讯的实现和展望 25

5.3 本章小结 27

第6章 结论与展望 28

6.1 结论 28

6.2 展望 28

致谢 30

参考文献 31

第1章 绪论

1.1 研究背景

在人的驾驶过程中,驾驶员通过视觉和听觉对外界环境与汽车状态进行感知,对所得到的信息进行分析和判断,并通过大脑对肢体下达相对应的指令用于操纵车辆,改变汽车和环境的相对关系,并以实时场景、声响、路感、运动感信息反馈给人体感受器官,从而构成了一个完整的人-车-环境系统和闭环信息系统[1]。从人机工程的观点来分析,驾驶员驾车的过程就是人机系统的相互作用过程,其实质是人机之间信息交换的过程。人车交互实现了人与车之间的信息交互,是信息化技术的产物,也是汽车技术的重要研究方向。现代汽车承载的不再仅仅是运输功能,可以从多方面来满足我们,无论是日常驾驶,信息的获取,还是强大的娱乐功能都在慢慢改变着人们的生活方式和驾驶习惯。人车交互目前主要通过按钮、视觉和听觉这三方面来完成,有的智能人车交互采用了实时语音交流,进一步简化了人机交互的操作,提高了准确性。但是这些交互方式的实时性、方便性、准确性都还有待提高。此外,这些交互方式在一定程度上提高了驾驶员的认知负荷,可能会导致分心等,引起交通事故[2]。认知科学和脑机接口的研究为人机交互系统提供了新的手段。脑控系统省去了大脑对肢体下达命令从而操作车辆这一步骤,直接用人脑操纵车辆,能使驾驶更加快捷、安全和便利。

1.2 国内外研究现状

1.2.1 人机交互的发展历程

最开始的人机交互只是为了强调输入输出信息的精确性,而不是很关心其他人为的因素。而随着计算机技术的不断发展,人机交互的信息也从精确和单一变得人性化合多样化起来。而人机交互的交互界面也随着计算机技术的飞速发展面临着巨大的挑战,从最开始的单一图形界面交互到现在的多通道交互界面,实现从视听说多方面实现交互[3]

1.2.2 脑控车的发展历程

由南开大学段峰副教授领导研究的我国第一辆脑控车辆于2015年7月15号在试验场开跑,打开了脑控车这一新兴驾驶模式的大门。而国外近几年也在进行脑控车这一概念研究,例如俄罗斯在2017年末推出了首款脑控车,而日产最近也主打脑控车这一概念[4]。 但是在模拟驾驶实验过程中我们发现,设备采集脑电的困难、脑电在不同驾驶环境中的多变性、从脑电数据采集与处理处理到对车辆下达相对应的控制命令所需要的时间差等问题都限制了脑控车的进一步发展。本研究的主要工作就是以模拟驾驶系统和脑电系统为平台,同步采集驾驶数据和脑电数据,实现人对机的操控信息、车的行为信息及脑电信息的实时同步通讯和存储,并重点研究不同模态信息的时序及配准方法[5]

1.3 设计思路

本次毕业设计的目的是脑电数据时序分析以及同步通讯。首要工作是开展模拟驾驶实验,实现驾驶数据和脑电数据同步采集。其次是对获取的数据进行分析,分析两种数据的特征,利用时空信息进行数据匹配,解决脑电信号的时序匹配问题。

在这次毕设中,实验数据是从学姐做的模拟驾驶实验中得到的。其中脑电数据使用脑电设备采集并记录,而车辆行为学数据则是由unity3D软件记录的。而时序问题也主要是通过对这两个实验数据的分析来表现和解决的。

脑电数据的存储、读取、基本处理与分析通过QT软件实现。首先对QT进行了熟悉和练习使用。QT作为一个开源式的界面框架开发的编程软件,拥有很好的跨平台性,可以处理很多类型的数据。但其程序库复杂,安装和编程方法难度较大。我探索了这个软件的安装以及使用方法。在配置完成QT的使用环境之后,开发了简易的人机交互界面,完成脑电数据的读取、绘制和刷新。

本设计最重要的工作是进行脑电数据和驾驶数据的时序分析并进行匹配。通过分析Unity 3D输出文件中的汽车实时坐标数据,对比赛道的坐标,找出特定动作的时间点,截取相应时间点脑电数据。实际数据分析表明,该方法能有效实现两种数据的匹配。本设计为脑机接口和脑控车研究中时序匹配和数据预处理提供了思路和依据。

第2章 QT软件的选择与界面设计

2.1 QT编程软件版本的选择

2.1.1 QT软件的介绍

QT是一款用于开发可跨平台的C 图形用户界面的应用程序开发框架。QT在开发过程中只需编写一次应用程序和 UI设计,无需对源代码修改,可以实现跨平台和在不同的操作系统上的部署,在减少开发所需要的时间的同时也可以减少开发成本。此外,Qt 提供的应用程序生成块可用来生成自定义的widget 集合、随意的图形画布、不同种类的风格引擎和其他内容的用户界面。也是因为它可以在界面中集成3D 图形、播放多媒体音频或视频、优化视觉效果、加入动画过程和自定义界面主题风格,所以在众多软件中脱颖而出。良好封装机制也使得Qt具有很高的的模块化程度,可重用性较好,对于新手来说也是十分友好的[6]

2.1.2 QT4和QT5的区别与选择

本次毕业设计主要涉及人机交互界面的编辑其绘图功能的使用。正式工作开始之前,对主要的QT版本进行了对比分析和选择。目前QT主要分为4.0版本和5.0版本,这两个版本之间的差别很大,并且二者之间的数据和程序都是不通用的。Qt5.0版本在Qt4.0版本的模块上进行了重构,最明显的是改动就是对Qt Gui模块的修改,在Qt5.0中,Qt Gui不再包含有关界面的所有类, 不再是一个大而全的图形界面库,而是为各种图形用户界面组件提供一般的处理,包括窗口系统集成、事件处理、OpenGL和OpenGL ES的集成、2D绘图、基本图像、字体和文本等内容。而且所有的图形界面程序需要的QApplication以及最重要的基类QWidget已经不在Qt Gui模块中,而是被重新组合到了一个新的模块Qt Widgets中。而且Qt5.0将以前的Qt Gui模块中的图形部件类移动到了Qt Widgets模块中,将打印相关类移动到了Qt PrintSupport模块中。Qt 5.0还移除了Qt OpengGL模块,将OpenGL相关类移动到了Qt Gui模块中。Qt4。0中需要使用第三方库才能解析JSON,而Qt5.0则直接内置对JSON的支持[7]。所以为了更好的入门QT软件,我选择了QT5.0进行相对应的编程操作,具体选择的是QT5.9.6的版本。由于Qt使用的语言为c ,所以还进行了C语言的学习和练习。

2.2 Qt的安装及人机交互界面设计

2.2.1 QT编译器的选择

QT主要有两种类型的编译器:MSVC类编译器和MinGW类编译器。在使用MSVC类编译器的时候需要额外在电脑上安装Microsoft Visual Studio,再根据Microsoft Visual Studio的版本来选择编译器,安装十分麻烦。而MinGW类编译器由于其开源性,在下载QT相应安装包时就一起下载了它的所有集成文件,不需要再下载额外的软件和进行相对应的配置,可以直接进行代码的编写。所以,在本次毕业设计中我选择了MinGW类编译器。

2.2.2 QT小窗口的编写

先从最一个简单的登录小窗口开始编辑人机交互界面,需要使用的代码量较少。界面的运行流程如图2.1所示。首先需要在后台建立账号密码数据库。在点击登录按钮以后程序会自动进行账号密码的验证,与后台账号密码进行对比,实现验证。如果验证成功就会弹出登录成功的小窗口,反之则弹出提示登录失败的小窗口。实现点击登录按钮后对账号密码进行验证的槽函数代码为:

login = new QPushButton(tr('登录'));

QGridLayout *mainLayout = new QGridLayout(this);

mainLayout-gt;addWidget(userNameLabel,0,0);

mainLayout-gt;addWidget(passWordLabel,1,0);

mainLayout-gt;addWidget(userNameLineEdit,0,1);

mainLayout-gt;addWidget(passWordLineEdit,1,1);

QHBoxLayout *hBoxLayout = new QHBoxLayout;

mainLayout-gt;addLayout(hBoxLayout,2,0,1,2);

hBoxLayout-gt;addStretch();

hBoxLayout-gt;addWidget(login);

connect(login,SIGNAL(clicked()),this,SLOT(slotLogin())); connect(passWordLineEdit,SIGNAL(returnPressed()),this,SLOT(slotLogin()));

在完成了登录按钮的槽函数编辑以后,还要做的就是将正确的账号密码保存进去并在点击登录按钮以后自动验证输入的账号密码的正确性,实现这个功能的代码为:

qDebug() lt;lt; '输入用户名:' lt;lt; userNameLineEdit-gt;text();

qDebug() lt;lt; '输入密码' lt;lt; passWordLineEdit-gt;text();

if (userNameLineEdit-gt;text().operator ==('user') amp;amp;

passWordLineEdit-gt;text().operator ==('1234567890'))

{

qDebug() lt;lt; '登陆成功!';

QMessageBox::information(this,tr('登录提示'),tr('登陆成功'));

}

else

{

qDebug() lt;lt; '用户名或密码错误!';

QMessageBox::information(this,tr('登录提示'),tr('用户名或密码错误!'));

图2.1运行流程图

以上是毕业论文大纲或资料介绍,该课题完整毕业论文、开题报告、任务书、程序设计、图纸设计等资料请添加微信获取,微信号:bysjorg。

相关图片展示:

C:\Users\Administrator\AppData\Roaming\Tencent\Users\1729583073\QQ\WinTemp\RichOle\`~)$VWU9{%RMB`HQHJC86}F.png

您需要先支付 80元 才能查看全部内容!立即支付

企业微信

Copyright © 2010-2022 毕业论文网 站点地图