第三章 智能车机械结构设计
3.1车模信息
??根据第十六届智能车竞赛规则对智能视觉组的要求,使用 C车模完成任
??务,细则中对车模尺寸没有加以限制,我们在车模重心稳定的情况下,安装
??了各个传感器及其他器件。
3.2各大传感器的安装
3. 2.1编码器的安装
??编码器直接安装在车模两个车轮附近自带的孔位上,通过齿轮之间的传动,测量当前车轮转速。
3.2.3摄像头的安装
??我们车模的寻迹任务主要通过 MT9V034数字摄像头实时采集赛道图像信息完成,摄像头的安装必须要稳定且合理。我们使用一根粗碳素杆用于安装摄像头,由于在车模运行时可能会出现抖动的情况,且摄像头的安装位置比较高,会导致粗碳素杆的晃动,影响所采集的图像质量。因此我们再使用两个细碳素杆辅助固定。
2
??在车模运行时,遇到 AprilTag二维码或者三岔路口的数字标靶需要停车对标靶中的图像进行识别,标靶的位置有三种情况,分别是车模正前方、左侧与右侧。我们只采用一个 OpenARTmini进行图像识别,因此我们安装了一个舵机云台进行 OpenARTmini摄像头的转向。
3.4 PCB板的安装
??我们使用到的 PCB板主要有三个,主板、驱动、还有运放,在布局是,由于考虑到重心问题,在安装时把 PCB板尽量靠中心平衡位置,以此来改变车的重心问题,从而使得小车的重心尽量靠中心,有利于小车打角,也不会给转向轮上加太多的重量,造成一种阻力状态。
4.2电源管理模块
??硬件电路的电源由 7.2V的蓄电池提供,而由于电路中不同模块的工作电压和电流容量各不相同,所以需要将电池电压转换成各个模块所需电压。
??主控板采用了外设与 MCU分开供电的方案,MCU由单独一片 SY8205FCC供电。因此,在电池电压以及 5V供电正常的情况下,外设用电的变化不对最小系统的供电产生影响,保证了其电源的稳定可靠。SY8205FCC稳压电路如图 4-2所示
4.2.1 5V稳压电路
??SY8205FCC稳压电路如图 4.2.1所示。
4.2.3 12V升压电路
??驱动电路中需要为 HIP4082提供 12V供电电压。
第五章 控制软件系统设计
??我们制作的智能车系统采用 MT9V034数字摄像头进行赛道元素的识别,使用电磁传感器辅助部分任务的控制,对采集到的图像与电磁传感器数据进行处理便是整个转向控制系统的核心内容,需要足够健壮的算法让车模能够按照规则要求运行不同的元素。在智能车的转向控制与速度控制上,我们使用传统的PID控制算法,在舵机转向上采用 PD算法进行控制,电机速度采用 PI算法进行控制。经过不断的调试,达到了比较理想的运行效果。
5.1赛道边界提取及处理
5. 1.1原始图像的特征
??摄像头的镜头选用 130度无畸变镜头,在保证足够的广角下,同时采集到的图像不会发生畸变,程序上可以减少图像去畸变的运行时间。在保证图像信息完整的情况下,我们选择尽可能的缩小图像的尺寸,以减小图像处理的时间。经过粗略调试后,采集的图像尺寸我们设置为 120*80,即宽 180个像素,高 80个像素,此时的图像比较完整,且足以用于路径的规划与赛道元素识别,原始图像如图 5.1~5.6所示。
5.1.2图像二值化
??我们将 MT90V34数字摄像头采集到灰度图像,通过大津法进行图像的动态二值化处理。当白天光线较强时,我们采取调节摄像头的曝光以适应当前环境的光线影响,图像二值化的稳定是提取赛道特征的决定性因素。
5.1.3赛道识别及处理方法
??在本届比赛当中,主要赛道类型为圆环、三岔路口、十字路口以及车库,对于智能视觉组而言还会出现 AprilTag码,它对于图像的边界提取有一定的影响,此处也需要进行特殊处理。我们所处理的是灰度图二值化后的图像,并没有对图像进行逆透视变换,没有逆透视变换的图像找某些元素的特征相对来说会比较困难,以三岔路口与斜入十字为例,对比效果如图 5.7~5.10所示。但直接处理原始图像也是有方法可寻的,下面介绍一下我们的大致方案。
??5.2赛道元素识别赛道元素的辨识是保证车模按照规定路线正常运行的前提,对于一些特殊元素不仅需要正确识别,还要保证车模在高速运行时车模的转向控制稳定。因此赛道元素正确识别的情况下,对车模路径的优化也是必不可少的。总之,图像处理在整个运行过程中属于核心要素。
5.2.1圆环处理
??圆环的识别,相对其他元素特征比较明显,几乎不会出现误判的情况。摄像头处理圆环时,其前瞻与电磁传感器相比会长很多,可以提前预判到圆环的出现,当入环偏慢时,速度上可以做相应的决策。对于图像而言,圆环的特征为一侧是长直道,另一侧是一段圆弧。圆弧侧的边界特征便是会先出现一段丢线,随后才是一段圆弧,这个特征在其他元素上几乎是不会出现的,图像处理结果如图 5.13与图 5.14所示。
5.2.3十字路口
??在车模运行速度不高时,十字路口可以选择不进行处理,直接使用各行中点的加权平均即可比较稳定的驶过。但是在高速运行时,可能因为某些情况导致车模转向有点偏离轨道,使得图像中点不稳定,使车模冲出赛道,因此需要对十字路口路段进行补线的操作。正入十字路口时图像特征比较明显,左右边界都存在连续的丢线情况,找到相应的拐点进行连接即可,如图 5.17所示。处理起来相对困难的是斜入十字,此时的图像与三岔路口的边界信息相似度比较高,会出现误判的情况,因此我们需要引起其他条件进行约束,我们采取的是计算顶部边界的外凸的两条边的斜率,如图 5.18所示,根据橙线与蓝线两者的斜率情况可以将三岔路口与斜入十字所区分,三岔路口时这两条线可以参考图
??5.16。
??在智能视觉组竞赛中,赛道中心会出现 AprilTag二维码,与遇到二维码时车模需要停车,根据二维码标签所表示的数字,赛道左侧或右侧,会放置含有水果或者动物的标靶,根据图片的内容不做出相应动作。我们所使用的机器学习模块处理图像的帧率比较低,如果通过其来识别二维码,车模很可能无法及时刹车,冲出规定的二维码前后 50cm的范围。故我们采用 MT9V034摄像头提前预判赛道当中的二维码,尽早的做出减速以及刹车的动作。识别方案是利用顶部边界的跳变特征来进行处理的,由于远处的光线影响,二维码图像可能会偏白,在图像全局二值化后,二维码特征并不是很明显,我们采取对中线上的图像进行区域二值化处理,效果如图 5.19~5.21所示。
5.2.5车库
??在车模运行完成两周之后需要回到车库当中,车库处含有相间分布的黑胶带以及强磁铁,采用干簧管入库的方案,在车模高速行驶时需要急刹车与倒车,处理起来相当麻烦,相对来说也比较影响成绩,而且还对寻迹有一定的影响。因此我们通过图像的特征来进行入库操作。车库的识别我们并没有采取提前预判的思想,而是通过对近处的图像进行处理,当出现车库的特征时,直接控制舵机转向入库。车库特征的识别方案是先找到车库侧的边界跳变,然后再逐行扫描图像信息,分析图像的黑白跳变次数。
5.3电磁数据处理
5.3.1数据归一化
??为了车模能够使用不同的信 源与赛道场地,需要对电磁传感器采集到的数据进行归一化处理,即将其转化为 0~1之间的数值。其处理方法是记录下来电磁传感器在赛道上采集的最大值与最小值,将采集到的值与最小值比上最大值与最小值的差,将此结果作为赛道信息。
5.3.2电磁方向算法
??当车模在赛道的正中心时,两个位置对称的电磁传感器采集到的数据近乎相同,当车模有偏移赛道时,两颗电磁传感器采集到的值会有所不同,此时距离电磁线较近的电感线圈感应的电动势偏大,另一端偏小。根据这个偏差我们可以将车模的位置进行回调,可以采用传统的差比和算法,将其结果作为偏离赛道的程度,即两个电磁传感器的差值比上它们的和值,但这种差比和的处理方法得到的偏差结果并不是线性的,如图 5.22所示。故在传统的差比和上进行一定的改进,差值部分为先将两个电磁数据开平方再做差,和还是两个电感数据之和,这样是效果会有一定优化,如图 5.23所示。图 5.22与图 5.23的数据为将车模从赛道中心的左侧移动到右侧的实时采集数据,经过处理后的结果,由于人工移动时存在一定误差曲线并没有完全对称,图中横坐标对应着车模与赛道中心的偏移情况,纵坐标为差比和的结果。
??在实际工程中,应用最为广泛的调节器控制规律为比例、积分、微分控制,简称 PID控制,又称 PID调节。
??PID控制器问世至今以其结构简单、稳定性好、工作可靠、调整方便而成为工业控制的主要技术之一。
??当被控对象的结构和参数不能完全掌握,或得不到精确的数学模型时,控制理论的其它技术难以采用时,系统控制器的结构和参数必须依靠经验和现场调试来确定,这时应用 PID控制技术最为方便。即当我们不完全了解一个系统和被控对象,或不能通过有效的测量手段来获得系统参数时,最适合用 PID控制技术。
??PID控制,实际中也有 PI和 PD控制。PID控制器就是根据系统的误差,利用比例、积分、微分计算出控制量进行控制的。其中我们智能车控制系统中舵机转向的方向环采用是 PD算法控制,电机的速度环使用是 PI算法。
5.4.2舵机转向的 PD控制算法
??在舵机系统的闭环控制中,我们采用的是位置式的 PD控制算法,所以我们需要获取车模在赛道上的偏差,这个偏差通过实际的调试,可以将每一行的左右边界取平均值作为当前行的中点位置,然后对每一行的中点值进行权重的分配,前一段图像的权值大,靠近车模处的权重小,这样得到的偏差值可以使车模在高速行驶下有一个很好的转向性能。
??在初期低速调试时,只采用一组 PD参数可以让车模稳定行驶在赛道上,但随着速度的上升,只通过固定的 P值运行时会出现直道振荡太多或者过弯转向不及时的问题,因此我们采用动态 P值算法。
??图 5.25动态 Kp曲线当 P值整定好时,随着速度的提升,在过弯之后的直道可能会出现抖动的情况,此时逐渐将 D值调大,提高动态响应的能力,调至满意的效果。经过不
??断的调试,最终我们确定了一组比较理想的参数。
5.4.3电机速度的 PI控制算法
??在速度环的控制上,闭环控制是非常有必要的,开环容易受外界的各种环境因素所影响,如摩擦力、电池电压等。同时由于 C车模采用的是双电机提供动力,电机的差速在一定程度上可以提供差速辅助转向的效果,对于车模的转向有一定的帮助。我们的电机速度控制思想方法是在直道上加速行驶,过弯时减速同时引入差速,电机的差速采用位置式 PD算法,输入量为当前的赛道偏差。
??在电机速度环上我们采用的是增量式 PI算法,调试过程中先整定 I值,当电机的响应速度达到我们想要是结果时,再逐渐整定 P值。经过不断调试,最终确定好了一组在车模寻迹时所使用的参数。
??在智能视觉组的竞赛中,由于会出现三岔路口的数字标靶与 AprilTag二维码,这两处都需要车模急停。当采用之前寻迹时的 PI参数时,我们发现车模需很长的一段距离才能将车模停下来,导致视觉任务无法完成。因此对于电机的速度 PI控制,我们采用分段的形式进行处理,当需要急刹车时,电机 PI控制使用另一组参数控制。
??5.5图像识别部分本届比赛图像识别任务分别为动物、水果、数字、AprilTag码并根据识别的结果进行相应的动作。
5.5.1 AprilTag二维码识别
??因为车模速度过快再加上 OpenMV RT模块处理图像的帧率比较低,如果通过 OpenMV RT模块来提前刹车,车模很可能无法及时刹车,冲出规定的二维码前后 50cm的范围。故我们先采用 MT9V034摄像头提前预判赛道当中是否出现二维码,提前做出减速以及刹车的动作。然后减速慢行并利用 OpenMV RT识别地上的的 AprilTag码,识别程序是利用 Open MV库函数中的image.find_apriltags。
5.5.2数字识别识别
??在数字识别时我们最开始时采取逐飞的教程,但是我们在测试过程中发现模型对图像的环境非常苛刻,需要合适的曝光准确率才能上去。后面我们采用经典模型 Lenet-5。Lenet-5是一种用于手写体字符识别的非常高效的卷积神经 络。当年美国大多数银行就是用它来识别支票上面的手写数字的,它是早期卷积神经 络中最有代表性的实验系统之一。
??我们用的数据集是一个非常有名的手写体数字识别数据集——MNIST。但是MNIST里面的图片是黑白的,于是我们在采集图像的时候使用平均自适应阈值滤波,将图像转为黑白(滤波图像如图 4所示)。将图像转为黑白带来非常多优势。首先二值化之后图像只剩下黑白,在找框时识别速度更快并且不会出现误判。其次图像为黑白模型需要处理的信息变少,模型的大小也相应减小许多(数字识别模型结构如图 5所示),OpenART的识别速度也变快了不少。而且最重要的时用的成熟的模型,模型准确率也有保障。准确率如图 6所示。
5.5.5模型的选择
??VGG19为 ILSVRC 2014年第二名,它探索了卷积 络深度和性能,准确率之间的关系。通过反复堆叠 3×3卷积和 2×2的池化,得到了最大 19层的深度。 VGG19模型大概 508M,错误率降低到 7.3%。VGG模型不复杂,只有 3×3这一种卷积核,卷积层基本就是卷积-relu-池化的结构,没有使用 LRN。在测试过程中使用的是VGG11模型大小下降了许多,虽然在电脑上识别正确率比较高,但是部署在单片机上时因为模型大直接卡死。
??ResNet由微软提出,并夺得了 2015年 ILSVRC大赛的冠军。它以 152层的 络深度,将错误率降低到只有 3.57%,远远低于 5.1%的人眼识别错误率。它同样利用全局平均池化来代替全连接层,使得 152层 络的模型不至于太大。 络中使用了 1×1 3×3 5×5 7×7等不同尺寸的卷积核,从而提高卷积的多样性。ResNetV1_152模型大小为 214M。在测试过程是使用的是 ResNet32模型,它相对 VGG11来说小了许多,但是这两种模型设计之初都是追求准确率,对模型的大小以及参数量都没有进行优化。所以这两种模型再怎么进行量化裁减在部署到单片机是还是避免不来运行变慢。
??MobileNe是 2017年 Google发布的 络架构,正如其名,它是一种模型体积较小、可训练参数及计算量较少并适用于移动设备的卷积神经 络。旨在充分利用有限的计算资源,最大化模型的准确性,以满足有限资源下的各种应用案例,是部署至边缘侧常用的模型之一。MobileNe是专注于移动端或者嵌入式设备中的轻量级 CNN 络,所以他在性能与大小方面都比较符合我们的需求。我们根据需求对 MobileNe进行裁减。首先将输入层改成 64643,然后将全连接层替换成全局平均池化。这样大大的减少里计算量,让模型变得更小了,准确度也有一定的保证。
第六章 开发平台介绍
6.1开发工具
6.1.1 Keil5
??程序的开发是 keil5下进行的,包括源程序的编写、编译、链接和下载。Keil公司是一家业界领先的微控制器(MCU)软件开发工具的独立供应商。Keil公司由两家私人公司联合运营,分别是德国慕尼黑的 Keil Elektronik GmbH和美国德克萨斯的 Keil SoftwareInc。Keil公司制造和销售种类广泛的开发工具,包括 ANSI C编译器、宏汇编程序、调试器、连接器、库管理器、固件和实时操作系统核心(real-timekernel)。有超过 10万名微控制器开发人员在使用这种得到业界认可的解决方案。其 Keil编译器自 1988年引入市场以来成为事实上的行业标准,并支持超过 500种 8051变种。
6.1.3 OpenMV IDE
??由于采用屏幕观察图像数据的方式调试,有时候并不是非常直观,而且屏幕的显示内容有限需要同时显示大量数据与图像时,会出现屏幕空间不足的问题。因此我们采用 VS2017的 C++开发作为辅助的图像调试工具。
??在调试图像处理算法时,有时会经常需要通过重新下载程序的方式来调整图像处理部分的参数,这样调试起来非常不够便利,屏幕所显示的图像也比较小,不如电脑看的直观。因此我们在 VS2017的 C++环境下搭建了一套 PC端调试图像的工具,基于 OpenCV与 CVUI库制作了一套调试界面,在 C++的环境下编写图像处理算法,这样可以避免重新给 MCU下载程序的不便。在 PC端调试完之后,直接移植到我们的 MCU主控当中。调试的过程图像可以是静态的也可以是动态的,我们可以将 MCU所采集到的图像信息发送至电脑上保存,通过调试工具将图片逐一张的切换,如果需要动态实时的采集当前的图像并处理,我们可以调用 C语言
6.2.2串口调试助手
??在调试的过程中,我们经常需要查看当前车模在赛道上运行的实时数据,我们还用了 VOFA+上位机辅助调试软件,将小车的实时数据反馈给上位机,并将数据绘制成图形并显示各个变量的实时变化,同时我们还能通过 VOFA+中的各类控件对车模的参数进行调整,对车模的调试非常便利。这也对排除程序的错误、优化控制策略以及参数整定有极大的帮助。

第七章 智能车基本参数
7.1基本参数
- 总体重量:2.3Kg
- 长:385mm
- 宽:200mm
- 高:320mm
7.2电路参数
- 电路功耗:17W
- 电容总容量:1600uF
7.3传感器种类以及个数
- 加速度和陀螺仪传感器:1个
- 编码器:2个
- 电磁传感器:5个
- MT9V034数字摄像头:1个
- OpenARTmini摄像头:1个
- OpenMVRT摄像头:1个
7.4除了车模原有的驱动电机、舵机之外伺服电机个数
??我们没有使用除了车模原有的驱动电机、舵机之外伺服电机。
7.5赛道信息检测精度、频率
- 赛道信息检测精度:2mm
- 频率:5ms
第八章 总结
??在这份 告中,包含了我们组半年多时间以来的调试思路与方法,以及硬件、机械与软件等方面的设计。在本次智能车竞赛当中,自竞赛规则发布以来,我们组在此期间不断研究,深思熟虑与反复测试后,才最终确定了一套完整的方案。
??一个完整的智能车是软件与硬件的结合,目标是在最短时间稳定高效的完成比赛。从车模的搭建、车模的整体机械结构设计,到硬件电路的设计、PCB板的制作和设计,再到舵机的控制算法、双电机的差速控制算法、采用摄像头作为传感器、图像识别等。总之,从电路的设计到车模的搭建,从到程序的编写到实际的调试,我们遇到了很多困惑和难题,也增强了许多技能和能力。每一步我们都查阅了大量的资料作为参考。在这个过程中,大家学到了很多,积累了很多,能够一步一步走下来,靠的是整个团队的协作和团结。大家学到了很多,提高了很多。无论如何,这段一起做车经历终将让我们回忆铭记。
参考文献
[1]邵贝贝 .嵌入式实时操作系统 [LC/OS-Ⅱ(第 2版)[M].北京.清华大学出版 . 2
[2]邵贝贝 .单片机嵌入式应用的在线开发方法 [M].北京.清华大学出版 . 2004
[3]王晓明 .电动机的单片机控制 [M].北京 .北京航空航天大学出版 . 2002
[4]臧杰,阎岩 .汽车构造 [M].北京 .机械工业出版 . 2005
[5]安鹏,马伟. S12单片机模块应用及程序调试 [J].电子产品世界 . 2006.第 211期. 162-163
[6]童诗白,华成英.模拟电子技术基础 [M].北京 .高等教育出版 . 2000
● 相关图表链接:
- 图 3.1车模安装的两个编码器
- 图 3.2车模安装的陀螺仪
- 图 3.3车模安装的摄像头
- 图 3.4车模电磁传感器的安装
- 图 3.5舵机云台的安装
- 图 3.6轮胎处理后
- 图 3.7 PCB安装
- 图 4.1 SY8205FCC
- 图 4.2 AS1015
- 图 4.3 MC34063
- 图 4.4 H桥电机驱动电路
- 表
- 图 4.5 OPA2350运放电路
- 图 5.29数据增强参数
- 图 6.1 keil5开发工具
- 图 6.2 PyCharm开发工具
- 图 6.3 OpenMV IDE开发工具
- 图 6.5 VOFA+串口调试助手
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!