智能车竞赛技术报告 | 智能车视觉 - 中国地质大学(武汉) - 2021 地大乘风队
Posted 卓晴
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了智能车竞赛技术报告 | 智能车视觉 - 中国地质大学(武汉) - 2021 地大乘风队相关的知识,希望对你有一定的参考价值。
简 介: 本文讨论了基于MIMXRT1064单片机智能车系统的设计,对其机械结构、电路原理、赛道识别、图像识别以及方向、速度控制策略等内容进行了介绍。本设计车模选选择了竞赛指定提供的 C车模,并依据车速快且稳的要求,对原车模的机械结构进行了改装和调整;传感器采用数字摄像头总钻风,以适应智能车在不同光线下的高分辨率;智能车将摄像头检测到的赛道信息发送给单片机,单片机采用赛道识别算法,控制电机及舵机执行相应任务。系统选用编码器检测智能车的实时速度,以经典的PID算法控制智能车的速度和方向完成赛道任务;使用Open ART,在其硬件上编写并运行神经网络完成图像的识别,并将信息发送至单片机,控制智能车运行及激光亮灭,完成识别任务。同时,为了更好地监测小车行驶过程中的状态,系统在调试过程中使用了ZigBee无线模块、多功能调试助手等调试工具,及时对系统的硬件和软件进行了调整。
\\
队伍名称:2021地大乘风队
参赛队员:汤柏辉、李业敏、舒俊
带队教师:赵 娟、吴涛
第一章 引言
全国大学生智能汽车竞赛是以“立足培养、重在参与、鼓励 探索、追求卓越”为宗旨,鼓励创新的一项科技竞赛活动。竞赛要求在规定的汽车模型平台上,恩智浦半导体公司、英飞凌公司等的微控制器作为核心控制模块,通过增加道路传感器、电机驱动模块以及编写相应控制程序,制作完成一个能够自主识别道路的模型汽车。
此项竟赛设计的知识面广学科交错例如、模式识别、传感技术、电子、电气、计算机、机械等多学科,其中又主要包括,模型的建立、机械结构的制作与调整、PID控制,反馈的建立,传感器检测、图像处理等各专业知识。几个月来的经历,培养了我们电路设计、软件编程、系统调试等多方面的能力,锻炼了我们知识融合、实践动手的能力,最重要的是锻炼了我们的心志。这些对我们今后的学习、生活以及工作都有着重要的实际意义。
第二章 智能车系统总体设计
2.1系统框图及系统介绍
智能车以MIMXRT1064微控制器为控制单元;通过总钻风摄像头MT9V034获取赛道灰度图像,对图像进行识别,判断赛道信息和小车所处位置;舵机通过连杆机构控制前面两轮转向,使用位置式PID算法控制舵机转角;编码器检测智能车的实时速度,使用增量式PID控制算法调节后面两轮电机的转速,实现了对车运动方向和运动速度的闭环控制。通过优化算法和整定参数,提高智能车的行驶稳定性和速度。图像识别时,通过OpenART获取图像,经过基于硬件平台的神经网络运算,判断图像的所属类别并完成对应任务。另外,通过LCD显示图像及状态信息,使用无线数传将图像发送至电脑上位机,以辅助调试。
▲ 图2.1 整体方案
2.2车模改进
根据本赛对车速快而稳的要求,本系统的整体布局做了以下几个方面的改进:
(1) 电池放在车子后面,有利于重心分布和增加后轮的摩擦力。
(2) 舵机竖直放置,加长舵机臂,方便控制,减少反应时间。
(3) 用轻便坚固的碳纤杆作为摄像头杆的材料。
(4) 摄像头安于车体的中前部,减少摄像头的盲区的同时可以看得更远。
(5) 降低底盘高度,提高稳定性。
第三章 机械结构设计
本系统所采用C车模。下面从前轮定位、舵机安装、后轮驱动与差速调节、传感器安装与选用、车模加固及重心降低,车轮固定等方面对C1车模的改造进行介绍。
3.1 前轮定位的调整
车辆在高速过弯时,转向舵机的负载会因为车轮转向角度增大而增大。为了尽可能降低转向舵机负载对前轮的安装角度,本系统对前轮定位进行了调整,使车辆直线行驶更稳定,转向更轻便,转向后能自动回正,减少轮胎和转向系零件的磨损。前轮是转向轮,它的安装位置由主销内倾、主销后倾、前轮外倾和前轮前束等 4个参数决定,反映了转向轮、主销和前轴等三者在车架上的位置关系。
经过一段时间的调试,我们发现车子由于机械损耗会出现转向沉重、发抖、跑偏、不正、不归位或轮胎单边磨损、偏磨等不正常磨损现象,这时就需要对前轮进行重新定位。前轮定位做得好才能保障汽车直线行驶的稳定性,转向轻便和减少轮胎的磨损。因此需对赛车的前轮转向模块进行测试实验,联合转向舵机的获取标定数据,并结合相应的转向理论进行调整。
在实际调试中,我们发现适当增大内倾角的确可以增大转弯时车轮和使车转向更灵活,减小因摩擦不够而引起的转向不足的情况。由此可见,对前轮定位是必要的。
3.1.1 主销后倾
主销后倾是指前轮主销在车模的纵向平面内(小车的侧面有一个向后的倾角γ,即主销轴线与地面垂直线在车模在纵向平面的夹角,称为“主销后倾角”。采用主销后倾,车模在车轮偏转后会产生一回正力矩,纠正车轮偏转。可通过增减黄色垫片数量来改变,我们采用的主销后倾角大概为 3 度。
▲ 图3.1主销后倾示意图
3.1.2主销内倾
前轮主销在车模的横向平面内向内倾斜一个β角,即主销轴线与地面垂直线在车模的横向断面内的夹角,称为“主销内倾角”(见图 3.3)。 主销内倾角β也有使车轮自动回正的作用。当转向轮在外力作用下发生偏转时,由于主销内倾的原因,车轮连同整个车模的前部将会被抬高;外力消失后,车轮在重力作用下恢复到中间位置。另外主销内倾还会使主销线延长线与赛道的 交点到车轮中心平面的距离减小,同时转向时赛道作用在转向轮上的阻力矩也会减小,从而减小转向阻力,使转向轻便,灵敏。
轮胎调整为倾斜以后直线行走的时候是轮胎内侧着地,而当过弯的时候,由于惯性车体会要向弯道外侧倾斜,而这时候的外侧轮胎如果倾斜角度事先调整得当则正好可以胎面着地,从而使车辆在弯道获得最佳抓地力。而如果事先把轮胎装成是完全垂直于地面的话,尽管直线行驶的时候轮胎是胎面着地,而到弯道就会变成轮胎外侧着地了,那样将大大减小轮胎与地面的有效接触面积,从而导致弯道时抓地力大幅降低。主销内倾角不可过大,否则在直道和弯道时均使用轮胎内侧,导致轮胎严重磨损,抓地力极低。
由于赛道一般会设有连续弯道,车模需在高速下连续转弯,因此本系统将车模主销内倾调为8°左右。
▲ 图3.2主销内倾示意图
3.1.3前轮前束
前束是转向灵敏度与稳定性的权衡。前束不可以无限度增大,太大了的话,直道行驶时车轮与地面发生的就不是滚动摩擦,而是滑动摩擦,轮胎磨损将急剧增大,且会导致阻力加大,降低直道速度。过度减小,会导致稳定性降低,车辆
抖动,难以操控。为了增加车子的转向性能以及满足阿克曼转弯原理,本系统将车子的前束调教为大概5°左右。
▲ 图3.3车轮前束示意图
3.2前轮转向能力与舵机的安装
对于舵机的安装,我们对舵机摆杆的一系列参数分析计算得出的较精确高效的工作参数,并通过多组实验得出符合智能车在高速情况下稳定运行。 舵机摆杆是将舵机的旋转运动转换成横摆运动的一种机构。在智能车比赛里,通过它将舵机转矩传递到连接轮子上面的横拉杆,实现轮子的左右转动,从而实现转向。转向在智能车比赛中是至关重要,而摆杆的设计直接关系到智能车转向灵敏度。
通过公式可以得出:拉杆作用力越大,反应越灵敏,转向速度越快;转矩一定时,摆杆越长,作用力就越小,所以摆杆又不能太长。经过实验,本设计选择舵机摆杆的长度在30mm比较合适。同时最终的转向机构还应该尽量满足符合阿克曼转向理论,依据阿克曼转向几何设计的车辆,沿着弯道转弯时,利用四连杆的相等曲柄使内侧轮的转向角比外侧轮大大约2~4°,使四个轮子路径的圆心大致上交会于后轴的延长线上瞬时转向中心,这样可以使车辆在过弯时转向轮处于纯滚动状态,减少过弯时的阻力,减小轮胎的磨损。
▲ 图3.4舵机转向原理
▲ 图3.5舵机安装效果
3.2.1解决左右不对称问题的方案
在调试的过程中,本小车曾在很长的一段时间内,车体在行进过程中处于左右不对称的情况。也就是说,在左转弯,右转弯的时候,同样的前瞻和PID参数,总是一个切弯,一个不切弯,严重影响到车速及其稳定性。经过不断的摸索,最终发现主要原因在于车模底盘的细微形变。因此本系统将转向机构的内外倾角与车模底盘进行了一定的调节,同时又精确的调节舵机连杆的距离,做到多处高度对称,最终解决了这个问题。
3.2.2舵机频率与舵机摆臂的限制关系
为了增快舵机的响应速度,前期我们的舵机频率一直设定在100Hz。在调车的中后期,车速提高到一定程度时我们发现,在某些急弯舵机本应该打死却没有打死,导致一直跑出赛道。在排除了软件的原因后,经过多次试验,最终发现是舵机频率太高导致扭力减小,和摆臂的长度不匹配,急弯无法摆动摆臂。在试验了减小舵机频率和减小摆臂长度两种方案后,最终决采用50Hz控制舵机,保持摆臂的长度,解决了急弯舵机打不死的问题。
3.3编码器的安装
速度传感器一般可以选择对射式光栅或光电编码器。对射式光栅的重量轻,阻力小精度也高,然而光栅暴露在外界容易受到外界光线或粉尘等的影响,导致计数不准确;而光电编码器就不存在此类问题。所以最后本系统选择了编码器,该编码器线数512线,可以达到很高的精度。在安装编码器的时候要保证有合适的齿轮咬合。
此种咬合完美的原则是:两个传动齿轮轴保持平行,齿轮间的配合间隙要合适,过松容易打坏齿轮,过紧又会增加传动阻力;传动部分要轻松、顺畅,容易转动。判断齿轮传动是否调整好的一个依据是,听一下电机带动后轮空转时的声音。声音刺耳响亮,说明齿轮间的配合间隙过大,传动中有撞齿现象;声音闷而且有迟滞,则说明齿轮间的配合间隙过小,咬合过紧,或者两齿轮轴不平行,电机负载加大。调整好的齿轮传动噪音小,并且不会有碰撞类的杂音。根据编码器的机械参数,本设计采用合适的编码器支架来使编码器与电机适当地咬合在一起。
▲ 图3.6编码器安装
3.4摄像头的选择安装及固定
为了降低整车重心,需要严格控制总钻风像头的安装位置和重量。我们采用轻巧的铝合金夹持组件并用碳纤维管作为安装总钻风的主桅,这样可以获得最大的刚度质量比,整套装置具有很高的定位精度和刚度,使摄像头便于拆卸和维修,具有赛场快速保障能力。
3.5车模的加固以及车模重心的降低
在符合官方规定的前提下,采样硬连接,使用连接件连接车身和摄像头两个部分以获得理想的效果,使车模重心降到最低,又不至于坡道处刮到赛道。用502粘合轮胎与轮箍的外接触处,以防止转向时出现轮胎和轮毂脱离而失去抓地力的情况。电池的位置也在查阅资料和实践后得出的,以四六比例配重的位置,以达到前后轮转向能力的一致性,得到最好的控制效果。车子前端加防撞保护,增强车子防撞能力。车模固定如图所示:
第四章 硬件电路系统设计与实现
本系统的硬件设计力求在保证车体稳定工作的基础上,使其更高效、简洁。
4.1总体方案选择
本次竞赛车模采用12.6V航母锂电池供电,经过电池保护板后为主控和驱动供电。主控上集成了多路5V,3.3V,6V稳压电路,为核心板,外设以及舵机供电,激光发射为OPENART自带的PWM接口驱动;驱动模块采用12V供电,经降压处理后为隔离芯片供电。整个系统的电路框图如下所示。
▲ 图4.1系统整体电路图
4.2各部分电路
主控设计:主板上设置了核心板插座,编码器接口,舵机接口,PWM信号输出接口,OPENMOVIE信号接口,OLED插座,无线调参模块接口,陀螺仪接口,云台控制接口,按键,拨码开关等外设。原理图如下:
▲ 图4.2核心板引脚配置
▲ 图4.3主板外设接口
舵机稳压电源模块为TPS565201芯片进行稳压处理,此芯片完全可以满足舵机电流需求,避免了由于电流不足导致舵机打角缓慢打角不充分的问题。原理图如图4.4所示。
▲ 图4.4舵机电源模块
5V稳压模块采用TPS565201芯片进行稳压处理,其为RT1064以及其它需5V电压外设供电,同时为3.3V降压输入。原理图如图4.5所示。
▲ 图4.5 5V稳压模块
3.3V稳压模块由AMS1117-3.3V芯片进行稳压处理,本主控我们采用两个AMS1117-3.3V芯片给OPENMOVIE和其它外设供电,确保了摄像头不会因为电源问题造成图像采集缺失等问题。其电源输入是经过TPS565201进行降压后再输入的,避免了压差过大导致芯片工作不稳定的情况,同时TPS565201过大电流足够支持相关外设的电流需求。原理图如图4.6所示。
▲ 图4.6 3.3V稳压模块
为在调试过程中调试方便,我们在主控板上添加了3个LED灯以及5个按键,原理图如图4.7所示。
▲ 图4.7按键及LED灯
电机驱动设计:
电机驱动采用半桥驱动方案。来自CPU的PWM信号经过缓冲器芯片后输入半桥驱动芯片,该芯片采用12V电压控制的MOS开启,从而控制电机转动。下面为各部分详细分析:
缓冲芯片与电流检测芯片所需3.3V电压为ASM1117-3.3V提供。MOS的12V开启电压为电源提供,原理图如下:
▲ 图4.8隔离芯片及3.3V稳压模块
▲ 图4.9电流检测模块
PWM信号经缓冲器后输入半桥驱动芯片IR2302。其具有极快的动态相应速度,还具有电源欠压保护和关断逻辑。半桥驱动电路图如下:
▲ 图4.10左驱动电路
▲ 图4.11右驱动电路
4.3 小结
硬件电路基本要求是稳定能用,在这个基础上再从原理图的绘制到 PCB 的布局布线寻找各个能提高性能的细节。另外电路板的形状大小要和车模机械结构相适配,保证电路稳定的同时也要保证良好的机械结构。
第五章 软件系统设计与实现
高效稳定的软件是智能车平稳快速移动的基础。本系统使用总钻风摄像头来获取赛道信息,使用OpenART来获取图像信息,图像采集处理就成了整个软件的核心内容。而MCU处理速度有限,如何高效提取所需的图像信息和利用所剩不多的计算资源来完成车体速度和方向的控制就成了我们研究的核心内容。经过不断的尝试和改进,本设计采用了几种巧妙而行之有效的方案,充分利用了MCU的有效时间和计算资源。在智能车的速度和方向控制方面,本系统使用了鲁棒性很好的经典PID 控制算法,配合使用理论计算和实际参数补偿的办法,使智能车达到了稳定快速的移动效果。
5.1方向控制
方向控制模块用舵机来实现。在图像处理之后,计算道路的实际中心与图像中心的差值,即车的位置偏差。偏差可以反应车的当前相对位置,用PD算法对车的位置偏差进行调控,实现转向控制。PD算法是基于偏差的控制,通过对偏差进行比例P、微分D运算,能有效提高舵机的响应速度,减小稳态误差,提高动态性能,对改善舵机的滞后特性具有极佳效果。在对PD控制进行参数整定时,研究发现采用动态P参数即该参数是关于偏差值的二次函数,可以实现忽略小偏差的同时对大偏差做出迅速响应,达到在弯道曲率大的位置车能够快速响应,在道路曲率小的地方快速平滑稳定的效果。PD算法的结构框图如图5.1所示。
▲ 图5.1 PD算法结构框图
5.2速度控制
5.2.1 PID控制算法介绍
在工程实际中,应用最为广泛的调节器控制规律为比例、积分、微分控制,简称PID控制,又称PID调节。PID控制器问世至今已有近70年历史,它以其结构简单、稳定性好、工作可靠、调整方便而成为工业控制的主要技术之一。当被控对象的结构和参数不能完全掌握,或得不到精确的数学模型时,控制理论的其它技术难以采用时,系统控制器的结构和参数必须依靠经验和现场调试来确定,这时应用PID控制技术最为方便。即当我们不完全了解一个系统和被控对象,或不能通过有效的测量手段来获得系统参数时,最适合用PID控制技术。PID控制,实际中也有PI和PD控制。
PID控制器是一种线性控制器,它根据给定值与实际输出值构成控制偏差。将偏差的比例§、积分(I)和微分(D)通过线性组合构成控制量,对被控对象进行控制,故称PID控制器。
▲ 图5.2 PID控制器原理框图
在计算机控制系统中,使用的是数字PID控制器,控制规律为:
e
(
k
)
=
r
(
k
)
−
c
(
k
)
e\\left( k \\right) = r\\left( k \\right) - c\\left( k \\right)
e(k)=r(k)−c(k)
u
(
k
)
=
K
p
{
e
(
k
)
+
T
T
I
∑
j
=
0
k
e
(
j
)
+
T
D
T
[
e
(
k
)
−
e
(
k
−
1
)
]
}
u\\left( k \\right) = K_p \\left\\{ {e\\left( k \\right) + {T \\over {T_I }}\\sum\\limits_{j = 0}^k {e\\left( j \\right) + {{T_D } \\over T}\\left[ {e\\left( k \\right) - e\\left( {k - 1} \\right)} \\right]} } \\right\\}
u(k)=Kp{e(k)+TITj=0∑ke(j)+TTD[e(k)−e(k−1)]}
式中:
k——采样序号,k = 0,1,2…; r(k)——第k次给定值;
c(k)——第k次实际输出值; u(k)—— 第k次输出控制量;
e(k)—— 第k次偏差; e(k-1)—— 第k-1次偏差;
KP——比例系数; TI——积分时间常数;
TD——微分时间常数; T——采样周期。
简单说来,PID控制器各校正环节的作用如下:
- 比例环节:及时成比例地反映控制系统的偏差信号,偏差一旦产生,控制器立即产生控制作用,以减少偏差。
- 积分环节:主要用于消除静差,提高系统的无差度。积分作用的强弱取决于积分时间常数,越大,积分作用越弱,反之则越强。
- 微分环节:能反映偏差信号的变化趋势(变化速率),并能在该偏差信号变得太大之前,在系统中引入一个有效的早期修正信号,从而加快系统的动作速度,减小调节时间。
数字PID控制算法通常分为位置式PID控制算法和增量式PID控制算法。
5.2.2位置式PID
位置式PID中,由于计算机输出的u (k) 直接去控制执行机构(如阀门),u(k)的值和执行机构的位置(如阀门开度)是一一对应的,所以通常称公式(4.5)为位置式PID控制算法。
位置式PID控制算法的缺点是:由于全量输出,所以每次输出均与过去的状态有关,计算时要对过去e(k)进行累加,计算机工作量大;而且因为计算机输出的u(k)对应的是执行机构的实际位置,如计算机出现故障,u(k)的大幅度变化,会引起执行机构位置的大幅度变化,这种情况往往是生产实践中不允许的,在某些场合,还可能造成严重的生产事故。因而产生了增量式PID 控制的控制算法,所谓增量式PID 是指数字控制器的输出只是控制量的增量△u(k)。
5.2.3增量式PID
当执行机构需要的是控制量的增量(例如:驱动步进电机)时,可由上式推导出提供增量的PID控制算式。对上述表达式做运算,可得:
u ( k − 1 ) = K p [ e ( k − 1 ) + T T I ∑ j = 0 k − 1 e ( j ) + T D T [ e ( k − 1 ) − e ( k − 2 ) ] ] u\\left( {k - 1} \\right) = K_p \\left[ {e\\left( {k - 1} \\right) + {T \\over {T_I }}\\sum\\limits_{j = 0}^{k - 1} {e\\left( j \\right)} + {{T_D } \\over T}\\left[ {e\\left( {k - 1} \\right) - e\\left( {k - 2} \\right)} \\right]} \\right] u(k−1)=Kp[e(k−1)+TITj=0∑k−1e(j)+TTD[e(k−1)−e(k−2)]]
Δ u ( k ) = K P { [ e ( k ) − e ( k − 1 ) ] + T T I e ( k ) + T D T [ e ( k ) − 2 e ( k − 1 ) + e ( k − 2 ) ] } \\Delta u\\left( k \\right) = K_P \\left\\{ {\\left[ {e\\left( k \\right) - e\\left( {k - 1} \\right)} \\right] + {T \\over {T_I }}e\\left( k \\right) + {{T_D } \\over T}\\left[ {e\\left( k \\right) - 2e\\left( {k - 1} \\right) + e\\left( {k - 2} \\right)} \\right]} \\right\\} Δu(k)=KP{[e(k)−e(k−1)]+TITe(k)+TTD[e智能车竞赛技术报告 | 智能车视觉 - 中国海洋大学 - The Waves
智能车竞赛技术报告 | 智能车视觉 - 中国矿业大学 - 会飞的车
智能车竞赛技术报告 | 智能车视觉 - 温州大学- 春华秋实
智能车竞赛技术报告 | 智能车视觉 - 首都师范大学 - 首师智能视觉