APP下载

基于飞思卡尔单片机的智能寻迹小车

2020-08-26赵必武黄佳源

绵阳师范学院学报 2020年8期
关键词:小车赛道摄像头

赵必武,黄佳源

(绵阳师范学院机电工程学院,四川绵阳 621000)

0 引言

比赛过程中的智能小车,需采用飞思卡尔单片机作为控制器,进行软硬件设计,利用摄像头对赛道进行自主识别,并按照规定路线(路线赛前未知)行驶[1],本文智能小车主要基于于小白四轮组的参赛进行研究.系统中采用CMOS摄像头作为赛道识别传感器,增加了小车对线路的视野,实现了对赛道的提前预测,加快小车的行驶速度.系统通过PWM波调整两个驱动轮电机的速度和转向,光电编码器监测电机转速,利用PID控制策略,实现了整个行驶过程中的速度及转弯控制,使其在道路上快速平稳的行驶.

1硬件系统设计

1.1 硬件系统整体设计

图1 硬件系统框图Fig.1 Block diagram of hardware system

为了让智能寻迹小车在赛道上稳定快速行驶,需要良好技术状态的硬件电路作为支撑[2].系统采用了模块化设计思路,可有效提高组装速度,同时便于赛场维护.小车采用CMOS芯片的摄像头,并配以鱼眼镜头,有效提高了摄像头的视野.车模的电路由飞思卡尔单片机最小系统、多电压稳压模块、编码器速度检测模块、双路直流电机驱动模块、舵机驱动模块、图像采集模块和程序下载调试模块等七部分组成.(图1为硬件系统框图)

1.2 核心板主控模块

MK60FN1M0VLQ15芯片组成的最小系统为系统的控制中心,主要实现小车的速度监测、赛道图像处理、舵机和驱动电机的运行控制,保证各模块的平稳运行.

1.3 电源管理模块

电源模块基本分为三大块:一是电池电压直接给电机驱动供电和转5V之后供给伺服电机的供电;二是通过升压芯片MC34063转换为12V给电机驱动IC供电:三是稳压芯片LM2937-33转换为3.3V 电压供给摄像头、单片机、编码器和液晶屏幕(图2为稳压芯片,图3为升压芯片硬件设计电路).

图2 LM2937-33稳压芯片Fig.2 LM2937-33 voltage regulator chip图3 MC34063升压芯片Fig.3 MC34063升压芯片

1.4 摄像头模块

摄像头由镜头和图像传感器构成,CCD和CMOS为主要的图像传感器,CCD和CMOS受自身物理特性的影响,存在不同的优点和缺点.根据需求我们选择用的摄像头帧率要求高,分辨率要求较低,因此要根据实际情况合理选择[3].

根据表1选用CMOS传感器,主要为MT9V034芯片摄像头.该摄像头带有硬件二值化电路,不在板上自行设计电路,使数据输出平稳有利于后续算法处理.

表1 图像传感器对照Tab.1 Comparison table of image sensor

1.5 电机驱动模块

电机驱动采用MOS管驱动,可以有效减少集成电路的发热量以及电流、功率的损耗,其具有使电源端到接地端不会有直接导通的路径的优点.栅极驱动器选择上用的是IR2104,采用半桥栅极驱动器设计的4N电极驱动电路,此设计可有效减少电枢电流脉动,栅极驱动电路使MOSFET的开关速度得到提高从而使PWM控制方式的调制频率得到提升,且具有防同臂导通等优点,通过驱动电路实现电机旋转和有效的制动,使电路工作更加稳定[4].

1.6 速度检测模块

小车的闭环控制需通过速度检测,主要通过加装编码器来实现.通过对机械特性和电路性能考量,选定龙邱的旋转编码器.速度检测电路由龙邱ECM141803-SDZ512旋转编码器组成.这是一款增量式编码器,其旋转码盘上为同心、均匀排布的缝隙,旋转光栅运动时,两组横向排布的发光元件与感光元件通过旋转光栅与固定光栅后产生具有一定相位差的脉冲信号.而单片机直接读取一定周期的脉冲数,实现速度的检测,为闭环反馈控制提供数据.

2 系统软件设计

图4 程序流程图Fig.4 Program flow chart

2.1 软件整体设计

软件程序决定了硬件调节下能否达到速度上限,合理的软件设计保证小车快速运行.本文的智能小车采用CMOS传感器MT9V034芯片的摄像头,整个程序的设计核心在道路类型识别,图像采集与处理.要实现小车对道路的“前瞻性”,实现更快速的入弯过弯,我们使用PID控制算法,将理论计算与实际调试情况相结合,在转向调控和速度调控过程中适当对PID参数进行修改.具体流程为:初始化过后,进行参数设定,开始图像采集并进行速度检测反馈,再进行图像处理,实现自动控制,通过起始线来判定是否达完成比赛(图4为程序流程图).

2.2 赛道边线提取

小车沿赛道快速正确行驶须实现最优的边线获取,消除其它赛道的干扰影响.摄像头远处视角容易虚化,故采集距小车最近的行,有效减少旁边赛道的影响.找边线时从近向远开始找,近处行的边线作为远处的基准,赛道的边线是不容易突变的,因此用近处行的边线取值范围对远处行的值划定一个范围.我们采用的方法为“比较法”,从最近没有干扰的行开始初始寻找,图像的中间依次向两边寻找白到黑的值的突变,并记录入数组,然后继续寻找,当初始寻找成功,在继续寻找其他内容,主要为识别道路中的一些“特例”如十字路口、S型道路和U型弯道[5].

因为摄像头角度的问题,我们需要采用逆透视变换的思路来对存在梯形形变的图片做出处理,这将有利于后续的程序处理.首先对实地赛道进行测量,基于旋转矩阵模型利用MATLAB仿真赛道信息,在线上调试(图5和图6为摄像头采集到几种典型赛道图像).

图5 普通弯道图像Fig.5 General curve image图6 普通直道图像Fig.6 Normal straight line image

在复杂赛道中要进行特殊的赛道分析处理,当赛道的左右边界都存在时直接求和平均出中心值.当只存在一边时,根据图像修正值确定中心值.当两边都无黑线时,可认为在十字交叉处按直行值处理.因为图像的数据量过大,全部扫描较为浪费时间,因此只扫描了所用的近处的8~10行左右的信息,以提高执行效率[6].

在实际调试过程中还发现在对于校正后的图像数据拟合的中心线,返校正到原来图像中会出现多个中心点的情况,主要多出现在较远视野中,因此我们增加视野前部图像的权重,因中心点对权重的影响较大,调节不好小车容易冲出赛道.为解决相关问题,采用利用数学方法求中心线折点,对折点下的中心点做特殊处理,减少小车失控的情况.

比赛前的赛道是未知的,因此我们对智能小车在不同道路及不同环境的情况做了程序的微调.摄像头受光线强度影响黑白阈值会有改变,在不同的光线强度下,小车程序中设置对比度加减键,及时修正对比度值,使小车在不同的光线强度下依旧能正常行驶.在竞赛中还易出现对停车线等的赛道特殊元素产生误判使小车冲出赛道,因此我们设计了不同的方案来针对特殊元素,在十字路口中使用上文的“比较法”,在S弯中使用拟合中线规划最短路径,避免小车因转弯而降速,通过不同的方案对赛道元素进行判别,从而缩短完成时间.在极端环境如太阳暴晒赛道等情况下,我们将舍弃PID调速,采用开环跑的策略,保证智能小车完成竞赛的任务要求.

2.3 数字PID控制算法

图7 PID调节原理框图FIg.7 Block diagram of PID adjustment principle

PID 控制技术结构成熟,使用便捷,是最早被应用于实践的控制技术,经典PID控制算法主要应用于工业,反馈理论的闭环控制主要应用于自动控制方面,在当今比较流行.输出的控制量由比例、积分、微分共同作用合成,PID控制器是实现被控对象在控制量作用下输出,接近目标的输出值过程的装置[7].

当通过各种传感器得到的输出和目标输出进行对比产生偏差,将这个偏差通过P、I、D的作用来实现对控制器的调节,所以对比例、积分、微分的参数调节至关重要,如图7,y(t)为实际输出,r(t)为给定输入,u(t)为广义被控对象,e(t)为偏差值,e(t)= r(t)- y(t)(图7为PID控制器框图).

智能小车采用整点化来减少单片机的运算量.PID控制器算法在经过整点化后不会对单片机的运算造成负担,其整点化思路为使用int32_t来运算.整点化运算在PID这种无除法算法中造成的运算误差是比较小的,智能小车传感器输入值与PID控制器输出值都为整数值,小数主要为K(p),K(i),K(d)这三个参数.这三个参数的整点化思路为:初始化参数将其放大10n,迭代计算是除以10n,n为保留参数小数位数.

2.3.1 速度调整控制 为实现对不同种类的赛道的有效识别,使智能车高速行驶.优秀的弯道处理可有效减少时间,入弯是弯道的重中之重,通过观测发现长直道后的大于90度的急弯,影响弯道速度较大.当设置直道速度过高时,所需设置的弯道速度差值就需提高,减速值也要升高.当小车进入弯道出弯时需加速行驶,当系统判定出弯道时,相较于小车全部出弯时在加速,对比小车出弯瞬时加速到直道速度的值,可以明显缩短总体完成时间.保持在弯道中的稳定低速行驶和在直道内以最短时间加速度到速度限定值,这几个因素共同决定了速度调整控制.

2.3.2 位置式PID控制算法 PID控制调节应用于自动寻线智能小车需要一些优化,对于经典PID算法一般都是应用于惰性系统,如温度控制系统这种变化较慢,控制周期较长的系统,而对于智能小车这样复杂的非线性系统较为不利,为了提高其竞速表现,通过删除I来提高PID控制系统的响应速度,因此我们使用位置式PID控制算法.我们控制舵机要求反应迅速,有快速精确的打角,利用MATLAB构造函数模型,独立变量为图像的平均偏差选择控制,通过观察调试发现I值设置为0只保留PD两个参数便可达到一个稳定的控制效果,即便存在少量静态误差,也不影响结果.经过后期长时间调试发现小车在出弯后会在直道上出现摇摆,这就需要对PD参数结合实际进行调整,因此我们采用算法值固定,而不采用动态算法,虽然较为保守但可以保证小车的稳定性.PD参数设置需要联合调试两项相互影响,决定了最后的行驶结果,D项与偏差变化率相关联,影响舵机打角的预判,当P的调试确定后,D项的变化同样会影响其行径过程的稳定性[8].在调试下,U型弯、S型弯等多种道路元素均可适用这种算法,但对于一些比较特殊道路的元素还是会有左右摇摆的情况.为减少完成时间,保证稳定,我们引入偏差加权平均算法来处理特殊道路元素.

3 结束语

本文就软件设计、硬件电路设计两部分详细介绍了四川省大学生智能汽车竞赛小白四轮组的智能小车的设计方案和器件选择,形成自身的创新,首次参赛就取得不错的成绩.通过在四川省大学生智能汽车大赛中汲取的经验,利用多种思路调试使多模块紧密配合.在机械调整方面,选择合适的小车重心,摄像头的安装设计卡扣方便其反复调试拆装,使小车重心降低过弯更稳定快速,选择合适芯片,PCB布线格局合理优化,使其适合车模的形状,让各模块合理有序的工作.在程序软件设计方面,我们通过不同思路的对比,选择最合适的程序设计进行图像处理,速度控制等,使小车高速的完成既定任务.

猜你喜欢

小车赛道摄像头
浙江首试公路非现场执法新型摄像头
自制冰墩墩不能滑出“法律赛道”
科创引领,抢跑新赛道
摄像头连接器可提供360°视角图像
大车拉小车
自制小车来比赛
征服蒙特卡洛赛道
刘老师想开小车
两轮自平衡小车的设计与实现
无人驾驶,先上赛道如何?