基于CMOS摄像头的智能车控制系统设计及实现

2013-10-15 06:10李旭东廖中浩
吉林大学学报(信息科学版) 2013年4期
关键词:黑线舵机像素点

李旭东, 廖中浩, 孟 娇

(1. 吉林大学 通信工程学院, 长春 130022; 2. 吉林省农业机械研究院 生产力促进中心, 长春 130021)

0 引 言

智能车系统是智能汽车的迷你版本, 二者在信息提取及处理、 控制系统构成和控制方案整定方面有诸多相似之处, 可以说智能车系统是智能汽车良好的实验平台。摄像头传感器在对道路信息的提取和处理方面具有较大优势, 故基于摄像头的智能车控制系统研究将推动智能汽车的发展。智能汽车对减少交通事故、 提升自动化技术和增加驾乘舒适性等方面有积极作用。在研究智能汽车过程中, 同时涵盖了传感器、 模式识别、 自动控制和信息融合等多项技术, 这势必促进相关产业的发展, 在一定程度上反映了一个国家自动化研究的水平。当前, 多数智能车设计采用识别单边黑色引导线的算法, 虽然实现较为容易, 但由于赛道信息量较少易引起误识别问题。笔者设计的智能车采用飞思卡尔公司的MC9S12XS128单片机作为控制器, 由电池管理、 赛道采集、 驱动模块、 转向模块和速度测量等单元配合构成硬件系统, 可用CMOS(Complementary Metal Oxide Semiconductor)传感器对两边具有黑色引导线的白色道路进行识别。通过改进赛道识别算法获取前方道路信息, 并采用动态控制策略[1]控制智能车的行驶方向及速度, 使智能车在多种类型路径下都能较快地行驶。

1 智能车硬件系统设计

1.1 硬件总体框架概述

图1 硬件系统框图

智能车硬件系统以MC9S12XSl28为主控制器, 使用PWM(Pulse Width Modulation)模块控制舵机转角和电机转速, 用脉冲累加器采集车速信号。同时整合速度测量模块、 电池管理模块、 赛道信息采集模块和直流电机驱动模块等[2](见图1)。

1.2 速度测量模块

智能车行驶时需进行闭环速度控制, 以便消除各种因素干扰, 使车辆能平稳沿着跑道运行。速度传感器采用500线的瑞普ZSP3004型光电编码器、 5 V直流供电, 用铝片将其固定在车辆后轮附近。光电编码器通过后轮轴上的齿轮与电机齿轮啮合, 把光电编码器的信号输出连接到芯片的PT7引脚上, 并将该引脚配置成脉冲累加器。通过每5 ms对脉冲累加器的值进行读取计算, 可获得较准确的车辆速度。

1.3 电池管理模块

笔者采用7.2 V电池为智能车系统供电。其中单片机模块及其外围电路、 CMOS摄像头和测速模块均需要5 V直流工作电压。由于LM2940芯片具有输出压降小、 转换效率高和过流保护功能等特点, 采用该芯片配合滤波电容构成简易5 V稳压电路。该电路可为单片机、 摄像头、 编码器和外围电路供电。为提高车辆的响应速度, 保证动力充沛, 采用电池直接供电方法对舵机和驱动电机供电。

1.4 赛道信息采集模块

CMOS摄像头集成度高, 成像质量较好, 使用方便, 应用广泛。笔者选用型号为OV7620的单板数字摄像头作为赛道信息采集模块核心部分, 配合信号转换电路构成整个模块, 采用VGA(Video Graphics Array)黑白320×240模式, 只需5 V电压即可正常工作。经过计算和调试得知, 每场采集数据点数为120×30个, 如不采用分频电路, 而直接用单片机内部计数器计数采样点, 可在保证像素点数量充足的前提下, 充分利用单片机存储空间。

1.5 直流电机驱动模块

以三极管或MOS(Metal Oxide Semiconductor)管为主控芯片搭建的普通H桥驱动电路, 其构成复杂, 控制繁琐, 发热量大, 且无过热保护功能, 容易失效。为满足智能车快速响应和频繁加减速要求, 以半桥驱动芯片BTS7960B为主体, 配合隔离芯片74HC08组成电机驱动模块, 所以, 可在提供智能车动力的同时防止电流倒灌入单片机。BTS7960B芯片瞬时驱动电流接近45 A, 内阻很小、 功耗较低, 在发热过大时有自动关闭的保护功能。通过该芯片将供电电压调制成频率固定、 宽度可变的PWM电压输出, 从而改变平均电压, 进而控制直流电机的转速[3]。实验证明, 一个电动机用两片BTS7960B形成全桥驱动电路效果良好, 可以满足电机驱动的需求。

2 智能车软件系统设计

2.1 软件运行流程

智能车软件设计主要由两方面组成: 1) 对摄像头采集的图像进行识别, 并去除图像中因光线引起的噪点, 准确提取行驶路径中的黑色引导线; 2) 根据摄像头采集处理得到的跑道信息和车速检测模块获取的车速信息, 结合控制算法输出舵机的角度控制量和电机的速度控制量, 从而使智能车能沿黑色引导线快速行驶。其软件流程如图2所示。

图2 软件流程图

2.2 赛道信息提取及识别

1) 赛道采集。摄像头将采集的像素点转换成连续的电压信号, 并通过视频信号端输出, 电压信号的大小反映了对应像素点的灰度值。扫描一行后, 视频信号端会输出一个行同步脉冲, 以表示扫描换行。然后, 跳过相邻行开始扫描下一行, 如此循环直到该场的视频信号扫描结束。输出端会输出一段场消隐区, 该区中包括场同步脉冲, 表示新一场图像的到来。摄像头每秒扫描25幅图像, 每幅又分奇、 偶两场, 即每秒扫描50场图像。经实测, S12单片机经过超频80 MHz以后, 每场图像采集30行数据、 每行采到120个像素点为宜。通过程序控制, 这些行数据在距离车辆前方10~130 cm的范围内均匀分布, 每行像素点在赛道边缘采集较密集, 而在赛道中间分布较稀疏。在此状态下, 有足够的数据用于赛道识别, 使单片机资源得到充分利用, 做到数据采集数量和处理速度的平衡。

2) 除噪及引导线识别。在引导黑线提取识别前, 先做图像除噪处理。噪点一般是一个或两个孤立噪点, 表示黑线信息的像素点因距摄像头距离不同, 数量也不尽相同。在距离车辆前方40 cm内约有12个像素点, 稍远处为9个像素点, 距离车辆前方80~100 cm范围大约有4个像素点。笔者采用软件除噪, 通过借鉴九宫格除噪法, 对采集的像素点做除噪处理。当该像素点周围8个方向的像素点都是同一性质(黑色点)时, 该像素点与其周围的8个像素点的性质相同, 否则是另一性质的像素点(白色点)[4]。

引导线识别是把摄像头所拍摄图像反映赛道信息的部分提取出来。这是一个图像分割的过程。图像分割是计算机进行图像处理与分析的重要环节, 是基本的计算机视觉技术。分割图像的基本依据有两个: 连续性和相似性。笔者主要以黑线线宽的连续性、 黑线轨迹的连续性和黑线内侧白板的宽度作为识别标准, 分别判定两侧的黑色引导线。对经过除噪处理的像素点阵, 先搜索最底部的两个有效行, 判断是否存在有效的黑色像素点, 如果有, 则根据前两行黑线中心和黑线宽度确定下一行的搜索范围和黑线宽度范围, 然后对全场图像进行判断。30行处理完后, 找出一行有多个中心值的点, 让其与上一行黑线中心值或下一行黑线中心值作差, 并取绝对值。绝对值最小的点即为要找的中心值, 从而找到一条黑线。再对另一侧图像做相同处理, 得到两条黑线的位置[5,6]。

3) 识别路径信息及赛道策略。提取引导线后, 开始对赛道进行识别。在两条黑色引导线的确定位置取出像素点, 采用三点法计算赛道曲率, 采样并计算的像素点距离智能车前轮位置分别约为15 cm、 60 cm和105 cm。根据计算的赛道前方曲率, 将赛道划分为: 直道、 大S弯道、 小S弯道和弯道。4种赛道分别对应不同的赛道策略, 在直线赛道, 车辆会高速通过且舵机限位处理非常严格, 否则会造成车辆严重晃动。小S弯道需找到赛道中点并加速沿赛道中心位置冲过, 若在这里产生误识别, 前轮连续打角会产生较大行驶阻力, 甚至导致车辆冲出赛道。为在大S弯道条件下更好地进行路线选择, 实现赛车“切弯”效果[7], 笔者对转向 PID(Proportional Integral Differential)参数设定进行了修正, 在以前 PID输出的基础上加上受斜率控制的参量, 控制器的输出量在原先设定的PID参数基础上, 将输出量乘以赛道斜率的2次系数, 实现了大S弯道过弯路径优化。在处理弯道时, 根据转弯半径的不同采用不同策略, 在车辆处于急弯时, 先将车速降到一个安全区间并给舵机较大打角, 以保证安全通过。

理论上讲, 三点法计算的曲率能较正确地反映实际赛道的弯曲情况。但因该算法仅与路径中3个点的位置有关, 故得出的曲率是摄像头所看到的路径整体曲率。该特点给赛车带来一个好处: 即赛车在小S型弯道时可直线冲过。因为算法中对路径进行了滤波, 滤除了中间部分的弯曲, 使路径变直[8,9]。同时, 在车运行过程中经常会出现半幅图像有黑线或整幅图像都没有黑线的情况。如果出现这两种情况, 需将车的舵机保持上一次的转角, 直到正常图像恢复到视野。

2.3 车辆速度控制

PID控制是工程实际中应用最广泛的调节器控制方法, 其结构简单, 可靠性高, 参数整定方便, 控制效果良好, 应用十分广泛。单位反馈PID 控制的结构图如图3所示。

图3 PID控制器结构

单位反馈E代表理想输出与实际输出的误差, 这个误差信号被送到控制器, 控制器算出误差信号的积分值和微分值, 并将它们与原误差信号进行线性组合, 得到输出量U。U被送到执行机构, 得到输出C, 这样就获得了新的输出信号。这个新的输出信号被再次送到感应器与期望的输出值R比较, 用来发现新的误差信号, 重复进行这个过程。设计中PID控制主要的功能是, 在闭环系统中, 利用即时速度的反馈, 使智能车实时速度尽快接近目标速度, 以改善智能车的加减速性能、 增强响应能力, 适应各种赛道情况。为满足电机的快速响应和稳定输出要求, 同时经实验比对, 采用增量式PI(Proportional Integral)算法加模糊控制指令的组合, 增量式PI算法表达式: Δu(k)=Kp(e(k)-e(k-1))+Kie(k)。其中Kp为比例系数,Ki为积分常数,e(k)为此刻采样值与给定值的偏差。当目标速度和设定速度的差大于设定值时, 采用模糊控制, 使输出达到最大或反向最大, 使现实速度尽快接近目标速度。当接近目标速度时, 采用PI算法[10], 使其尽快稳定在目标速度上, 从而达到设计目标。

2.4 车体横向控制

由于已经获得了赛道中心线的位置, 所以计算偏航距离的问题是选取中心线的位置, 并以计算对应的偏航距离作为当前的偏航距离。该方案中控制程序运行周期约为35 ms, 如果智能车平均运行速度为2.5 m/s, 则在下一次控制参数输出前, 智能车大约前进8 cm, 智能车所处赛道环境将会改变较大。所以智能车方向控制只是半实时控制, 这是所有使用摄像头作为主要寻线传感器的车辆不可避免的问题[11,12]。因为算法的滞后性, 智能车在算法处理过程中需要将自身位置适当前移。当参数调整合适时, 智能车可在入弯处提前转弯, 使赛车沿弯道内侧行驶, 实现赛道过弯路线优化。经实验得知, 最终选取距车前10 cm左右的一行数据作为参考量, 根据此行偏移量作为车辆相对于赛道的偏航距离进行车体横向控制, 以达到行驶路径优化效果[13]。

2.5 舵机控制

对前轮的控制, 由于舵机和被控对象的惯性相对较小, 可由执行机构准确执行, 进行开环控制。为做到快速响应, 舵机选用适应性PD(Proportional Differential)控制[14], 即控制参数根据不同的弯道曲率而变化, 弯道曲率越大, 相应比例控制参数会有所增加而微分控制参数保持, 所以使舵机具有较快的响应速度和较好的平稳特性。

3 结 语

经过实际测试的结果证明, 该智能小车能在具有双边黑色引导线的白色底面跑道上以较快的速度平稳前行, 工作稳定可靠; 通过对路径信息的采集、 识别和处理后, 可准确识别路径信息, 赛道识别策略和电机控制策略均有显著效果, 路径选择策略和速度控制效果良好, 达到了预期设计目标。

参考文献:

[1]王子辉, 叶云岳. 基于CMOS传感器的智能循迹小车图像识别技术研究 [J]. 传感技术学报, 2009(4): 484-488.

WANG Zi-hui, YE Yun-yue. Based on CMOS Sensor Intelligent Tracking Car Image Recognition Technology Research [J]. Sensing Technology Journal, 2009(4): 484-488.

[2]KASZUBIAK J, TORNOW M, KUHN R W, et al. Real-Time Vehicle and Lane Detection with Embedded Hardware [C]∥Proceedings of the IEEE Intelligent Vehicles Symposium. Las Vegas, USA: IEEE Press, 2005: 619-624.

[3]刘鸣, 张翰林, 隆昌宇. 基于CMOS传感器的智能车赛道自动寻迹系统 [J]. 光机电信息, 2010, 27(10): 59-62.

LIU Ming, ZHANG Han-lin, LONG Chang-yu. Based on CMOS Sensor Intelligent Car Track Automatic Tracing System [J]. OME Information, 2010, 27(10): 59-62.

[4]BROGGI A, BERTOZZI M, FASCIOLI A. ARGO and the Mille Migliain Automatico Tour [J]. Proceedings of IEEE Intelligent System, 1999, 14(1): 55-64.

[5]刘富强, 田敏, 振程. 智能汽车中基于视觉的道路检测与跟踪算法 [J]. 同济大学学报: 自然科学版, 2007, 35(11): 1535-1541.

LIU Fu-qiang, TIAN Min, ZHEN Cheng. Intelligent Vehicle Based on Visual Road Detection and Tracking Algorithm [J]. Journal of Tongji University: JCR Science Edition, 2007, 35(11): 1535-1541.

[6]黄娴, 张曦煌, 陆冬磊. 基于摄像头的智能车路径识别系统的设计 [J]. 电脑知识与技术, 2010, 28(6): 8083-8085.

HUANG Xian, ZHANG Xi-huang, LU Dong-lei. Based on the Camera Intelligent Vehicle Path Recognition System Design [J]. Computer Knowledge and Technology, 2010, 28(6): 8083-8085.

[7]刘九维, 陈锋, 邢岚. 数字式CMOS摄像头在智能车中的应用 [J]. 单片机与嵌入式系统应用, 2010(7): 42-44.

LIU Jiu-wei, CHEN Feng, XING Lan. Digital CMOS Camera in the Application of Intelligent Vehicle [J]. Single-Chip Microcomputer and Embedded System Application, 2010(7): 42-44.

[8]张云洲, 师恩义, 吴成东. 基于CCD的智能车导航系统研究 [J]. 东北大学学报: 自然科学版, 2009, 30(2): 162-165.

ZHANG Yun-zhou, SHI En-yi, WU Cheng-dong. Based on CCD Intelligent Vehicle Navigation System Research [J]. Journal of Northeastern University: JCR Science Edition, 2009, 30(2): 162-165.

[9]MINGUEZ J, MONTANO L. Sensor Based Robot Motion Generation in Unknown, Dynamic and Troublesome Scenarios [J]. Robotics and Autonomous Systems, 2005, 52(4): 290-311.

[10]GONZALEV-GALVANE E J, CRUZ-RAMIREZ S R, SEELINGER M J, et al. An Efficient Multi-Camera, Multi-Target Scheme for the Three-Dimensional Control of Robots Using Uncalibrated Vision [J]. Robotics and Computer Integrated Manufacturing, 2003, 19(5): 387-400.

[11]WILKINSON M H F. Optimizing Edge Detectors for Robust Automatic Threshold Selection, Coping with Edge Curvature and Noise [J]. Graphical Models and Image Processing, 1998, 60(5): 385-401.

[12]RICBARD L, MAGIN. Fractional Calculus in Bioengineering [J]. Critical Reviews in Biomedical Engineering, 2004, 32(1): 191-193.

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

ZHUO Qing, HUANG Kai-sheng, SHAO Bei-bei. Learning How to do Intelligent Car [M]. Beijing: Beihang University Press, 2007.

[14]WASIK Z, SAFFIOTTI A. A Fuzzy Behavior-Based Control System for Manipulation [C]∥IEEE International Conference on Intelligent Robots and Systems. New York, USA: IEEE, 2002: 1596-1601.

猜你喜欢
黑线舵机像素点
基于局部相似性的特征匹配筛选算法
黑线
含齿隙弹载舵机的全局反步模糊自适应控制
基于5×5邻域像素点相关性的划痕修复算法
基于dsPIC单片机的飞艇舵机控制实现
基于canvas的前端数据加密
虾背黑线真的特别“脏”吗
基于逐像素点深度卷积网络分割模型的上皮和间质组织分割
基于高速同步485总线通信的多通道舵机控制器设计
这也算海鲜