资讯详情

智能车竞赛技术报告 | 智能车视觉 - 天津大学 - 北洋钽星

简 介: 全国大学生智能汽车参与,鼓励探索,追求卓越为宗旨,全国大学生智能汽车竞赛。本文介绍的AI视觉智能车结合图像处理、神经网络、PID控制、机械设计等技术,满足了省赛国赛的要求,具有良好的稳定性和可扩展性。本系统以i.MX RT1064为主控芯片,配合总钻风摄像头识别赛道元素,完成循迹功能;另一方面在Open ART mini运行神经网络模型,识别动物、水果和数字,调用Open MV提供的API识别AprilTag二维码。两个MCU使用串口通信传输指令码,实现自主停车、识别等功能。我们在调试过程中使用了它IPS提高智能车的调试效率,为调参和修改代码提供方向。经过大量调试,我们逐步提高了整个系统的鲁棒性和汽车运行速度,验证和优化了方案。

学 校:天津大学?队伍名称:北洋钽星?参赛队员:区梓川??郑轶楠??周锐南??带队教师:李祺 王建荣


??随着科学技术的发展,智能控制和神经网络的应用越来越广泛,机械、电子等传统产业正在深入发展。在大学生培训过程中,掌握这些学科的基础知识更为重要。智能汽车需要综合许多学科和技术,这是的研究热点,并逐步实现产品化。

??自2006年以来,全国大学生智能汽车竞赛已成功举办了15届,旨在加强学生的实践、创新能力和培养团队精神。竞赛以以培训为基础,注重参与,鼓励探索,追求卓越为指导思想,竞赛内容设置需要能够面向本科生和教学内容,同时也能考虑到 当今科技发展的新趋势。比赛规则透明,评价客观标准,坚持公开、公平、公正的原则,保持健康、普及、可持续发展。

??在第十六届比赛中,有八个组:基本四轮组、全向行进组、双车接力组、节能信标组、电磁越野组、自行车拉力组、智能视觉组和专业基础组。智能视觉组需要完成普通四轮组的赛道任务和训练AI模型识别动物水果和数字具有很大的挑战性,因此我们选择该组作为我们的竞争组。本文主要介绍智能视觉组智能汽车的生产。

??在准备智能车竞赛的过程中,我们搜索了很多信息。根据竞赛规则的相关规定,智能车系统采用组委会提供的C型车型。同时,我们使用恩智浦半导体公司i.MX RT1064作为主控芯片,基于RT1064开发的Open ART mini系统设计模块,独立构思控制方案,包括传感器信号采集处理、电机驱动、转向舵控制和控制算法软件开发,完成智能汽车工程生产调试,提高智能汽车生产效率,我们还开发了一些先有的和自己的上位机软件,与智能汽车的主控进行通信,以帮助我们更好地完成调试。

??基于光电摄像头的轨道识别采用了许多经典的图像处理方法。识别轨道元素首先是基于人们对轨道特征的理解和把握,然后转换为代码并进行大量优化,以实现稳定的识别。这种方案可以大大提高稳定性和可重复性。在硬件机械设计中,我们根据汽车的结构特点设计并设计了3D打印云台和支撑板,配备Open ART mini同时,我们也优化了其他车身结构。在电路设计方面,我们画了三块PCB,主板电机,舵机,ART供电与自设计的支撑板完全配合,设计效果更好。

??该车在准备全国比赛测试的过程中运行稳定,识别效果好,程序坚固,易于修改和扩展。本报告将详细介绍整车的设计过程和设计理念,以及硬件电路和模具机械的设计方案,最后介绍建立软件控制系统的方法和方法。

第一章 模机械结构优化


1.1 前轮定位

??规则确定智能视觉组的选择C 模型,模型容易产生直线偏差、转弯费力、轮胎磨损快等情况,主要与轮胎安装角度有关,这里涉及一个非常重要的转向轮位置角度定位问题,称为前轮定位。主要功能是保证智能车直线运行时的稳定性,使转向更轻,减少轮胎磨损。前轮为转向轮。其安装位置由四个参数决定:主销内倾、主销后倾、前轮外倾和前轮前束,具体反映了车架上转向轮、主销和前轴的位置关系。因此,我们调整了这些参数。

1.1.1 主销内倾

??转向轮(前轮)围绕主销旋转,前轴的轴荷通过主销传递给转向轮,具有这两个特点的机械结构称为主销。

??从车的前后方向看轮胎时,主销轴向车身内侧倾斜,称为主销内倾角。主销的内倾角可以自动纠正轮胎。当汽车转向轮在外力作用下偏转时,由于主销向内倾斜,车轮和整汽车的前部将被提升到一定的高度。外力消失后,车轮将试图在重力作用下恢复到原来的中间位置。

??主销内倾角还减小了主销轴与路面交点与车轮中心平面与地面交点之间的距离,从而减小了转向时舵机上的力,使转向更轻,减少了从转向轮传输到舵机的冲击。

1.1.2 主销后倾

??主销向后倾斜,主销轴与地面垂直线夹在赛车纵向平面上 角称为主销后倾。主销向后倾斜,主销轴与地面垂直线夹在赛车纵向平面上角称为主销后倾。如图所示:

▲ 图1-1

▲ 图1-1
??前轮重心在主销轴上。由于主销向后倾斜,前轮重心不在车轮与地面的接触点上,产生离心力。主销后倾形成的离心力可以保证直线行驶的稳定性,帮助车轮自动更正。

1.1.3 前轮外倾

??前轮外倾角:前轮外倾角是指前轮安装后上端向外倾斜,因此前轮旋转平面与垂直垂直平面形成夹角,称为前轮外倾角,其主要作用是使转向轻,使车轮靠近轮毂轴承,减少外轴承和轮毂螺母的负荷,有利于安全驾驶。一般前轮外倾角为1°但对于有高速、急转向要求的车辆,前轮外倾角可减小甚至为负。鉴于速度要求,我们没有调整。

1.1.4 前轮前束

??汽车横向平面与车轮平面的交叉线与地面垂线之间的夹角称为前轮外倾角。如果前两倾角是前轮上端向外倾斜的角度,如果前两轮呈现V字形称为正倾角,呈现八字称为负倾角。前轮外倾可以抵消车轮因重力向内倾斜的趋势,减少赛车零件的磨损和负荷。前轮前束是前轮前端向内倾斜的程度。当两轮前端距离小,后端距离大时,前端距离大,后端距离小。由于前轮向外倾斜,使车轮滚动时与圆锥相似,导致两侧车轮向外滚动。然而,由于拉杆的作用,车轮不能向外滚动,车轮会向内滚动,从而增加轮胎的变形。同时,由于C车模的轮胎是空心材料,可以有效地与地面配合,同时由于S3010舵机响应速度快,使用内八字有助于车模在直道行驶过程中更适合中线。

1.2 云台设计

??为了搭载Open ART以及舵机驱动板,合理分配汽车的空间和重心,我们采用类比法,为C车模量身定制了一些轴承结构,包括底座、上底座、支撑架和摇臂。这些结构可以容纳电池,云台二自由旋转,稳定摄像头等功能。云台和电池在汽车中心前面,平衡了汽车后面的两个电机,使汽车的重心移动到几何中心。

??我们使用3D将自己的设计建模打印成成成品,部分机构建模图及整体实物图如下:

▲ 图1-2

1.3 摄像头位姿

  摄像头是小车完成赛道识别任务的基础,我们使用逐飞的总钻风灰度摄像头,镜头张角为130°,畸变相对较小,并且易于矫正。对于整个车来说,摄像头的安装影响到整个车采集信息的准确性,同时,摄像头的位姿与图像处理的算法需要进行配合,才能保证识别的稳定性。因此在摄像头安装过程中,我们在简洁,保证强度的基础上,严格控制摄像头的安装位置和增量。

1.4 编码器安装调整

  为使智能车能够平稳地沿着赛道运行,需要对车速进行精确控制,使赛车在急转弯时速度不至过快而冲出赛道。理论上,通过控制驱动电机上的平均电压即可控制智能车速度,但是如果开环控制电机转速,会受很多因素影响,例如电池电压、电机传动摩擦力、道路摩擦力和前轮转向角度等。这些因素会造成赛车运行不稳定,所以需要检测出智能车当前速度。通过速度检测,对车模速度进行闭环反馈控制,即可消除上述各种因素的影响,使得车模运行得更稳定。

  我们使用逐飞的旋转式mini编码器,两个电机各加编码器并调节合适的啮合度,安装时应注意调整好齿轮间隙,使之啮合程度适中,便于传动。齿轮传动机构对车模的驱动能力有很大的影响。齿轮传动部分安装位置的不恰当,会大大增加电机驱动轮子的负载。调整 的原则是:齿轮间的配合间隙要合适,过松容易打坏齿轮,过紧又会增加传动阻力,浪费动力;传动部分要轻松、顺畅,不能有迟滞或周期性振动的现象。判断齿轮传动是否良好的依据是,听一下电机带动轮子空转时的声音。声音刺耳响亮,说明齿轮间的配合间隙过大,传动中有撞齿现象;声音闷而且有迟滞,则说明齿轮间的配合间隙过小,电机负载变大。调整好的齿轮传动噪音很小,并且不会有碰撞类的杂音,轮子减速齿轮机构就基本上调整好了,动力传递十分流畅。

1.5 车模重心调整

  鉴于赛道的摩擦力和复杂性以及车模的机械结构和强度,我们提出在尽可能不伤害赛道并且确保过掉障碍的情况下最大限度降低整车重心,因为车子重心高低和位置对车子行驶、转弯有很大影响。因此我们设计整体布局时尽可能平衡车模前后质量,降低重心,合理使用配重块。最终测得车模水平方向的重心位于车辆中部,提高了运行过程中的稳定性。  

第二章 件电路设计


  了提高电路板的模块化水平,减小修改成本,提高稳定性,我们将硬件电路分为三部分:主板、舵机驱动板、ART供电板。其中主板给主控RT1064供电,获取各个传感器(如摄像头、编码器、ICM陀螺仪等等)的信息,包含H桥电路驱动电机,同时驱动转向舵机;舵机驱动板负责驱动二自由度云台的舵机;ART供电板负责给Open ART和激光模块供电。其中主板和ART供电板上留出了通信接口,可用于两个MCU的通信。

2.1 主板设计

  主板的功能是给主控RT1064供电、获取传感器信息、输出驱动,其电路模块也可以从这几个方面介绍。

  首先是电源模块,电池电压在7.4V左右,我们增加一些旁路电容,同时通过电阻分压将其幅值限制在3.3V以内,通过RT1064管脚的ADC来监控电压,也就能监控电池电量。

  给各类期间供电所需的电压不同,如MOS管需要12V电压加快其开启速度,而单片机最高只支持5V供电,舵机电压为6.5V,因此我们对电源采取了先升压后降压的处理方式,电路原理图如下:

  主板连接了摄像头、编码器、ICM姿态传感器等传感器,其供电和信号传输参考了逐飞的例程,相对比较简单。同时主板还有显示模块IPS屏,配合波轮和旋钮可以刷新显示、调整参数,提高了调车效率。IPS屏幕电路原理图如下:

  主板上还有电机驱动模块,通过H桥电路输出PWM,控制两个电机正反运动。我们选用半桥驱动芯片IR2104S和N通道增强型MOSFET芯片SE3082G构成全桥电路,单个电机的H桥原理图如下:

  为了贴合C车模的外形,我们将主板PCB设计成贴合车模底盘的形状,一方面更加美观,另一方面也方便定位安装,最终成果如下图:

2.2 舵机驱动板设计

  OpenART需要一到两个舵机作云台。我们用三个tps5430电路得到5V和6V分别给OpenART和两个舵机供电,留出足够的信号接口。另外,使用软件“临摹贴”和AD的“圆弧(任意角度)”功能,使得电路板和舵机安装版完全贴合,美观且便于安装。

2.3 ART供电板

  ART供电板负责给Open ART mini供电,传递PWM信号驱动云台舵机,同时驱动激光进行打靶。因此该电路板只有激光驱动电路,由一个三极管和几个电阻构成,原理图如下,其余引脚只需按照使用情况留出接口即可。

 

第三章 件架构——赛道识别部分


  件架构部分分为两章,因为智能视觉组需要在完成四轮的基础上实现AI识别,因此使用RT1064获取总钻风的图像,利用传统图像处理中的特征提取实现赛道元素的识别;而在AI视觉部分则需借助神经网络,同时与主控RT1064通信完成任务,将在下一章详细介绍。

3.1程序主体结构

  图像处理的主程序集合了众多传感与输出部分,其中最重要的信息来源是摄像头,图片数据通过CSI中断传入RT1064,使用大津法进行二值化后,识别赛道边沿并判断是否存在特殊的赛道元素。不同的元素对应不同的处理策略,通过轨迹计算确定舵机打角和电机速度值。

3.2赛道元素的识别

  赛道元素有圆环、十字路口、三岔路和坡道,其中三岔路还需要两次进入不同的支路,这要求对岔路入口进行准确的识别和选择。我们的图像处理算法首先提取了赛道的边沿,通过对左右边沿的判断以及特征点的判断,就可以知道是否有赛道元素以及位置。

  前方遇到圆环时,小车会判断入环点,当该点在图像上的坐标值低于设定值时,小车就会进入入环程序,进入圆环后会按照普通路径行驶,并开始判断是否能够出环,接近出环会看到路径前方有一条直线,即可判断应当出环,这样保证不会绕着圆环“打转”。   三岔路的识别是依靠岔路处的两个分叉角,前方的分叉角与普通的直线赛道差别较大,通过边沿的信息可以直接判断出来。由于分叉角是120°,是全对称的,因此第二次识别到三岔路就是出三岔路。

  车辆行驶十字的过程分为初入十字,处于十字中心处,出十字等多过程。十字元素类型分为中间十字,斜入十字等多类型。十字的处理:识别十字(屏蔽三岔路)判断十字类型判断十字过程。

3.3控制算法

  速度选用闭环控制方式。通过闭环反馈使系统的精确度提高,响应时间缩短,控制稳定性高。而开环控制没有反馈环节,稳定性、精确度不高。为了达到好的速度控制效果,速度控制要选用闭环控制方式。

3.3.1 PID算法总览

  在模拟控制系统中,数字PID控制器是最普遍的控制方法。系统由控制器和被控对象组成。PID控制主要有三部分组成:比例、积分、微分。比例控制是一种最简单的控制方式。其控制器的输出与输入误差信号成比例关系。偏差一旦产生,调节器立即产生控制作用使被控量朝着减小偏差的方向变化,控制作用的强弱取决于KP。当仅有比例控制时系统输出存在稳态误差。为了消除稳态误差,引入积分控制。积分项对误差取决于时间的积分,随着时间的增加,积分项增大。这样,即便误差很小,积分项也会随着时间的增加而加大,它推动控制器的输出增大使稳态误差进一步减小,直到等于零。为了预测误差变化的趋势,引入微分的控制器,这样就能够提前使抑制误差的控制作用等于零,甚至为负值,从而避免了被控量的严重超调。

3.3.2方向(舵机)PD控制

  舵机需要在转向时需要准确且快速的形成反应,实现小车的循迹行驶,因此使用PD控制,比例控制可以快速反应,微分控制可以预先控制,通过这两类控制可以减小突变,提高控制的稳定性和快速性。

3.3.3速度(电机)PID控制

  电机的速度控制使用PID控制算法。调节PID参数时,给定一个PWM值,使用上位机监控编码器读取到的速度,从而确定响应速度、超调量和稳态误差,匿名上位机输出波形,据此调整比例、积分、微分三个参数。响应速度慢则增大比例值,超调量过大则提高微分量,实现预先调节,存在稳态误差则增大积分量。

 

第四章 件架构——AI视觉部分


4.1 训练环境介绍

  AI视觉需要使用深度学习支撑,我们进行了许多尝试,包括使用caffe进行深度学习模型训练,并在Open MV RT上加载运行。但是该MCU搭载模型的能力较弱,堆栈容易溢出。因此我们最终选择逐飞开发的Open ART mini加载TensorFlow(Keras)平台训练的模型进行识别任务。

4.2 神经网络模型

  神经网络识别的效果和模型的体量取决于神经网络模型,当前深度学习技术发展已经取得了大量成果,并且网络模型也在向轻量化发展,更多的嵌入式设备也能运行神经网络进行识别,智能车比赛引入AI视觉也是基于这样的考虑。

  我们在前期学习了大量的神经网络基础知识和网络模型,如LeNet、VGG19、CNN、Yolo等等,这些模型经历了诸多演变和发展,结构的灵活性较强,我们可以根据自己的需要进行调整。

  卷积神经网络(CNN)模型由卷积、池化、全连接等。由于卷积运算可以极大地降低数据维度,例如一张高清无码的彩图,其像素非常多,可能一张图像就高达三百万个像素,如果直接进行回归或拟合,计算量非常巨大,并且泛化能力很弱。而卷积会对这些信息做一些简化和模糊处理,通过将图像与卷积核进行卷积运算,得到的输出会比输入小。比如 66的图片与33的滤波器卷积会得到4*4的输出,即把输入削减,从而减少参数数量、降低网络的计算量,同时也有助于防止过拟合,提高网络的鲁棒性。   全连接神经网络主要由前向传播与反向传播构成,其原理如下,是将二维的图像信息转化为向量,从而可以输出。

  由于疫情原因,规则发生了变化,需要不间断地识别动物、水果、数字、二维码四种元素,我们认为对每个类型训练单独的模型将会影响识别速度,另外找到紫色边框后对框内图片进行识别的方案在速度和稳定性方面都有许多不足。于是我们将动物水果和数字图片一起作为训练集,训练了一个21分类模型。

  数据集方面,我们为逐飞的官方数据集添加紫色边框,将带有边框的图片随机地添加到网络获取的开源数据集的图片中,并通过对图片做HSV增强、添加高斯模糊、加入随机噪点等方式构建了体量足够大的数据集(80000到120000张图片)。采用这样的数据集进行训练是为了使模型可以不用识别紫色边框直接运行,且面对不同的背景仍能正确识别。训练数据一共分为21类,包括10类数字和10类动物水果和负样本(无添加图片和添加了二维码的图片)。

  经过多种尝试,我们最终采用了如下图所示的模型结构。

  总共有22层卷积,在主要卷积层之下添加最大池化层(MaxPooling)和SpatialDropout层减小网络的参数量。中间穿插注意力转移模块(采用1*1卷积核对输入进行卷积,将结果与原输入层相乘后输出),以消除目标图片位置对识别的影响。另外,为了在不使体积增大太多同时避免梯度爆炸的情况下尽量加深模型深度,我们在模型中共加入了六个残差模块。最终得到的模型在精度、体积等方面都达到了预期的要求。

4.3 加载模型与成效

  由于Open ART无法直接加载h5类型的模型,因此需要对模型进行量化。我们选择将模型量化为TFlite格式。首先将模型转化为TFlite格式,然后读取模型的权重,结合少量的训练集数据将模型进行量化,由float32转为int8格式,最终模型的体积能够缩小至原来的1/10左右。

  最终在Open ART上进行识别实验,两分钟内随机播放数据集中的图片,能够做到识别结果全部正确。

4.4 省赛任务实现方案

  省赛要求识别出不同的图片针对图片做出动作。我们采取的方案是不断运行训练好的模型对相机获取的图片进行识别,并返回结果;当结果为负类别时运行Open ART官方的二维码识别程序识别二维码,同样返回相应的结果。根据识别结果,通过串口向主控发送特定的标志位,并退出识别模式。当主控控制小车完成相应动作后,由主控发送标志位,Open ART在接收到标志位后重新开始识别。

  另外,为了确保不会对同一张图片重复动作,在识别中加入了条件判断,当本次识别结果与上次一致时则不向主控发送标志位。

 

第五章 试方法与工具


5.1 匿名上位机波形显示

  为了提高调试效率,能够在上位机实时获取速度、加速度、识别结果等信息,我们使用“匿名上位机”软件,自定义通信协议,将数据传输到上位机进行显示,如下图是显示在转弯过程中两个后轮的速度值。

5.2 IAR在线调试

  调试过程中,尤其在识别赛道元素时,通过修改程序而后观察现象的方式难以看出问题,少数的标志位数量不足以支撑问题的分析。IAR提供了单片机的在线调试功能,通过单步Debug并观察变量的值,减小了程序运行的粒度,能够观察到单片机内部的变量和程序运行情况,这能够确保程序逻辑的正确性和完备性。

 

第六章 模技术参数说明


  目 参数

  • 车模长(mm) 294mm
  • 车模宽(mm) 183mm
  • 车模高(mm) 342mm
  • 摄像头镜头高度 305mm
  • 车模轮距(毫米) 2mm
  • 传感器种类及个数 摄像头*1:总钻风
  • OpenMV*1:OpenART
  • 陀螺仪*1:ICM
  • 编码器*2:1024线
  • 新增加伺服电机个数 0个
  • 处理器型号及个数 RT10642(OpenART1)

 

第七章 结与展望


  学生智能汽车比赛在大学生各类学科竞赛中算的上是战线拉的非常长的了,经过大半年的准备,在调车中也发现了不少问题和困难,然后再一步一步解决改进,尝试过不同方案,比赛中看见其他优秀的方案,看见别人的优点和自己的不足,进行改正调整解决各种问题。

  一个队伍中的三个人各自分工不同,但不代表我们不需要关注了解其他人的工作,软件和硬件是一个相互依存的关系,硬件是软件赖以工作的物质基础,软件的正常工作是硬件发挥作用的唯一途径,所以程序员了解硬件则能更好的发现程序上问题和对硬件的需求有哪些,帮助硬件负责人更好的工作。例如摄像头的算法离不开对摄像头内参外参的标定,良好的硬件电路可以简化许多软件算法等等。

  智能车比赛结束了,无论成绩如何,通过这次比赛我们遇到了许多困难,但我们仍需不忘初心,砥砺前行。


  • 图1-1
  • 图1-2

标签: 智能电容器实物

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台