道路自动识别的智能车设计

2014-02-24 08:31苗培梓杨有为王德宇姜尔赤
科技视界 2014年11期
关键词:中心点舵机控制算法

苗培梓 杨有为 王德宇 邓 伟 姜尔赤

(1.东北石油大学 电子科学学院,黑龙江 大庆 163318;2.大庆油田有限责任公司第二采油厂 工程技术大队,黑龙江 大庆163414)

0 引言

随着全球信息和科技革命的兴起,智能化和信息化广泛应用于我们的生产生活当中,而对智能汽车的需求和发展,亦受到众多国家的重视和支持。 近年来,智能车己经成为世界车辆工程领域研究的热点和汽车工业增长的新动力,很多发达国家都将其纳入到各自重点发展的智能交通系统当中。 我国的智能汽车产业目前处于起步阶段,较发达国家的发展水平还很落后,因此,对智能车的研究有助于我们智能汽车工业的发展和进步。

本智能车硬件平台采用MC9S12XS128 微处理器作为系统处理控制器,主要控制转向舵机和驱动电机,调试平台采用Code Warrior 软件。 智能车的制作主要涉及单片机控制电路的设计、摄像头图像信号的采集及其处理、控制算法和控制策略优化等方面。

1 智能车系统设计

本智能车系统以 MC9S12XS128 单片机为核心控制单元,采用数字摄像头作为识别道路的传感器, 通过光电编码器检测模型车的速度,使用增量式PID 闭环控制算法,通过 PWM 波调节驱动电机的转速和转向舵机的角度。我们力求系统的简单高效,在满足智能车性能的要求下, 使硬件结构最简单。

1.1 MC9S12XS128 单片机简介

MC9S12XS128 是16位单片机, 由16 位中央处理单元、128KB 程序Flash、8KB RAM、8KB 数据Flash 组成片内存储器。

1.2 摄像头的选择

摄像头根据所传达的信号, 可分为 CCD 摄像头和 CMOS 摄像头。CCD 摄像头又称为模拟摄像头,其采集到的视频信号是模拟信号,需要经过A/D 模块进行数模转换成数字值后再进行处理和使用。 CCD 模拟摄像头采集动态图像效果比较好,采集到的图像信息比较清晰且稳定性好,对比度也相对较高。但需要12V 的工作电压,对整个系统运行来说过于耗电。

CMOS 摄像头又称为数字摄像头,其内部集成了A/D 模块,直接输出数字值可以将采集到的视频信号直接转换成数字信号。 CMOS 数字摄像头硬件电路相对简单,工作电压低,体积小,功耗也小,但图像稳定性不好,在动态图像的显示中不如CCD 摄像头清晰。而在本智能车设计中,由于CMOS 摄像头已经能满足设计的性能要求,在考虑效率和功耗的基础上,选用CMOS 摄像头系列的OV7620。

1.3 主板电路

主板上装有组成本系统的主要电路,包括如下部件:摄像头接口、舵机接口、电机驱动电路、编码器接口、拨码开关接口、电源接口、单片机最小系统板插座等。 主板电路图如图1 所示:

图1 主板电路图

图2 主板电路原理图

1.4 主板电路原理图

智能车主板电路主要有五个模块:控制处理芯片、舵机驱动模块、电机驱动模块、图像采集模块、速度采集模块和电源模块。主板电路原理图如图2 所示:

其中,MC9S12XS128 单片机是系统的核心部分,它负责处理道路图像数据、行驶速度等反馈信息,通过控制算法得出的控制量来对舵机与驱动电机进行控制。舵机模块和驱动模块分别用于实现车模的转向和驱动;图像采集模块由摄像头和电平转换电路组成,其功能是获取前方路径的图像数据;速度采集模块由光电编码器提供,通过检测脉冲累积数来求得车模的速度值;电源模块主要用于为系统其他各个模块提供所需要的电源。此外还有串口通信,拨码开关等小模块,功能是辅助调试和方便参数微调。

2 软件开发

当系统的硬件部分都设计定型后,建立在其上的软件系统便直接决定了系统的后续使用性能和智能化程度。软件系统的基本设计思路就是能采集稳定图像且分析处理去噪,然后通过核心芯片的控制系统,做出判断并发出指令,根据实际路况和周围环境,有效地控制电机驱动和舵机转向。 软件开发主要涉及图像采集、路径识别、舵机控制和电机控制等。

2.1 智能车主程序设计思路

智能车软件系统的开发, 其实就是能控制智能车在道路上稳定、安全、快速地跑完全程,也就是在众多设计思路中,求解一个最优解的问题,就是在最短的时间内跑完整个包含复杂环境的赛道;采取最优的控制算法完成对赛道的识别并作出合理的执行措施;并能够很好地去除噪点且保证智能车运行稳定。

2.2 控制算法

经过反复调试和测算,在采集图像完整、道路信息正确的情况下,我们采用经典的PID 算法对智能车进行闭环控制。 假定单位反馈e(t)代表理想输入与实际输出的误差,这个误差信号被送到控制器,控制器处理算出误差信号的积分值和微分值,并将它们与原误差信号进行线性组合,得到输出量U(t)进而控制PWM 模块,通过PWM 模块对舵机和电机进行有效控制。PID 控制器由比例单元P、积分单元I 和微分单元D 组成,其反馈输入e(t)与输出U(t)的关系为:

U(t)=Kp[e(t)+1/Ti∫e(t)dt+Td*de(t)/dt]

式中积分的上下限分别是0 和t,其中Kp 为比例系数;Ti 为积分时间常数;Td 为微分时间常数。本软件设计采用增量式PID 算法,PID控制算法是工程实际中应用最为广泛的调节器控制规律,其规律和特性已众所熟知,此处就不再赘述。

2.3 中心线的确定

灰度值是指黑白图像中点的颜色深度, 范围值从0 到255 变化,白色为255,黑色为0。 我们采用的数字摄像头OV7620 反馈的图像信息就是黑白图像,根据实际环境的变化,即光线明暗会随着时间和路况的不同而发生变化,我们采用动态阈值的处理办法,对道路黑白图像进行二值化处理并去噪,就会得到我们需要的图像。 处理后的图像通过液晶屏显示出来,如图3 所示:

图3 道路实况二值化

道路的二值化处理结果的反馈信息, 就是摄像头的扫描结果,实际上也就是由行和列组成的一系列的数值。智能车的行驶需要一条系统自动识别处理得到的行车线, 其实就是沿着道路的中性线行驶,根据道路图像的二值化处理结果,需要计算出道路的中心线。 我们采取隔行隔列处理图像的办法,实际处理了50 行74 列,假定遇到弯道等复杂路况时,我们只处理30 行。摄像头采集的黑白图像离车身最近的一行是第50 行。我们设定智能车的起步线为第50 行的第37 列,即为道路的中间点,以此为基准,当摄像头扫描第49 行时,以50 行的中心点作为本行的基准点向两边扫描,以此类推;当一幅图像扫描结束,我们记录这幅图像最后一行的中心点, 作为下一幅图像第50 行的中心点,然后再以此为中心点向两侧扫描。如此执行中心线提取的任务,会增加图像信息的准确性,以上一行的中心点作为本行处理扫描的基准点,由于两行数据的实际距离不大,故两行的中心点数值偏差不会太大,即使是急弯道的相邻两行的中心点数值相差也不会很大,如若数值差别较大,那么就可以认定为是噪点,直接设置此点数据无效。 此外,这样的处理方式还会大大节省单片机的运算处理时间,提到处理效率。有了稳定且可靠的中心线,智能车就可以沿着中心线行驶了,我们的设计目的也就达到了。

[1]卓晴,黄开胜,邵贝贝.学做智能车[M].北京:北京航空航天大学出版社,2007.

猜你喜欢
中心点舵机控制算法
Scratch 3.9更新了什么?
如何设置造型中心点?
含齿隙弹载舵机的全局反步模糊自适应控制
基于dsPIC单片机的飞艇舵机控制实现
基于ARM+FPGA的模块化同步控制算法研究
基于高速同步485总线通信的多通道舵机控制器设计
汉字艺术结构解析(二)中心点处笔画应紧奏
一种优化的基于ARM Cortex-M3电池组均衡控制算法应用
基于云模型的舵机同步控制
一种非圆旋转工件支撑装置控制算法