基于摄像头导航的智能车系统

时间:2022-10-02 09:34:08

基于摄像头导航的智能车系统

【摘 要】 本文设计并研制了一种基于摄像头导航的智能车系统。与采用特殊标志的循迹导航方式不同,本系统采取普通摄像头来采集外部信号,通过辨别设置在道路两旁不同颜色的路标,实现智能车的自动行驶功能。研制的智能车系统可以实现左转,右转,入库等动作。本文详细的介绍了该智能车系统的硬件结构以及软件算法思想。

【关键词】 智能车系统 摄像头 导航 颜色识别

随着时代的发展,人们对车辆的安全性能日益重视,车辆的无人驾驶引起了广泛关注。而实际上,无人驾驶汽车就是一种移动机器人,最早的研究动力是基于军事需求,人们为了减少战争中的伤亡以及寻找代替战士在危害场合执行任务。它主要利用车载传感器来感知车辆周围环境,并根据感知所获得的道路、车辆位置和障碍物信息,控制车辆的转向和速度,从而使车辆能够安全、可靠地在道路上行驶。[1]

无人驾驶汽车在先进制造业、自动化仓储、现代物流场、太空探索等领域有广阔的应用前景。另外,自动导航车还可用于探险、危险品处理、导盲等。有资料表明,在现代制造系统中,各种物流的传输时间占整个生产过程的80%-90%,物料传输与存储费用占整个零部件加工费用的30%-40%,可见,物流传输设备的自动化水平对整个制造系统的性能将有重要影响。[2]

而在无人驾驶技术研究中,导航系统是其重要的研究内容。在导航系统的研究中,光电导航又是其中一个非常重要的研究方向。本文设计并研制了一套基于普通摄像头导航的智能车系统,系统的给出了硬件结构以及软件算法,同时在现实中,运用实验车进行了验证。

1 智能车系统设计原理

1.1 总体设计方案及功能要求

为紧密结合实际生活,所设计智能车应可以完成包括左转、右转、直行和倒车等动作,同时可以进入指定位置的停车位。

所设计的智能车系统应具有优良的机械性能,同时还应该拥有良好的环境识别能力和较强的容错性,并能保持较快的速度运行。

因此智能车系统总设计方案包括以下两部分:(1)智能车控制器的硬件电路设计,根据设计要求,调整和改进智能车模的机械结构,使得机械性能和电子控制达到完美的统一,最大限度的发挥小车的性能;(2)结合良好的软件算法设计,使小车能够自适应多种可能出现的条件,智能选取合理的控制模式,做到转向准确、稳定,能够安全通过设定的道路。方案以稳定性为首要前提,保证了智能车的可靠运行;以简洁紧凑为出发点,减轻系统负载,提高了智能车的灵活性,最终实现智能车安全快速运行。

将智能车系统分解为Tiny6410ARM开发板系统,12C5A32S2单片机系统,动力系统,导航系统,反馈系统五大系统,系统结构如图1所示。

1.2 硬件设计方案

1.2.1 智能车平台

该智能车系统选用的智能车车模是市面上常见的遥控车,但只保留了其中的底盘部分以及转向和驱动部分。车模具体参数如表1所示。

为防止智能车在运行过程中由于车身颠簸而导致摄像头等部件的相对移动,在车头部位通过一平板安装摄像头,并将所有的电源部件、单片机系统、ARM开发板都放在了车身上部的平台上,以方便后期的调试。

智能车采用四轮驱动以及双轮差分驱动相结合。因此在转弯过程中,通过控制减速电机的转速,实现不同轮间的差速,从而完成车体的转向动作。

1.2.2 12C5A32S2单片机系统

12C5A32S2单片机系统将12C5A32S2单片机控制,驱动电路以及通信集于一体, 同时该系统也可以通过1602液晶屏接口实时查看通信数据和小车运行状态。在12C5A32S2单片机系统上还设计了232电平转换电路,通过该电路,实现电脑与单片机进行通信,将驱动程序上传和下载到单片机中。

另外该系统还拥有RS232接口以实现ARM系统与单片机系统的数据传递。单片机系统的控制面板结构如图2所示,系统资源和IO口地址分配如表2所示。

图2中各部分的功能为:(1)1602液晶模块:用来显示小车的实时速度;(2)ISP串口:可以采用USB转TTL的形式,下载单片机程序,或者与其它TTL通信设计进行连接;(3)小车电源接口:为系统板工作提供电压;(4)RS232接口:实现ARM系统与单片机系统的数据传递;(5)左侧电机及右侧电机接口:为智能车的直流减速电机接口,采用系统板上的驱动芯片输出;(6)B1电源输出接口:用于扩展功能使用,此接口为小车电源的经过开关的直接输出接口。

1.2.3 Tiny 6410 ARM开发板系统

搭载Android 2.3.4系统,使用USB摄像头获取图像数据,使用串口通信对单片机发送数据控制电机工作。

1.2.4 USB摄像头

参数: 320*240,原始数据格式为RGB565。

1.2.5 电源部分

为保证智能车有足够强的续航能力,方案改进了原遥控车的电源模块,电源模块的参数如表3所示。

由于Tiny 6410 ARM开发板系统所用电源要求为直流5V,而一节18650型号的锂电池电压为7.4V,因此对两节18650型锂电池采取降压处理,即将7.4V的电源降压至5V。

1.3 软件设计方案

1.3.1 图像获得及预处理

由摄像头采集图像,通过USB接口获得原始RAW格式的RGB565数据。将RGB565通过移位转化为3 byte的RGB数据存储于数组中。

在Android 2.3.4系统下,即使程序没有进行任何运算,每秒也只能达到8帧左右速度。而当带有320*240的,将近十万的运算规模时,处理速度只能达到每两秒一帧。因此为了提高CPU对数据的处理能力,将获取的图像数据进行缩减,将原大小为320*240的图像缩减为64*48的大小进行处理。[3]实验表明,在此分辨率下,还是可以清晰地辨识出道路的边界与标识,完全可以满足要求。

RGB模型是基于人类视觉的三原色,红(R)、绿(G)、蓝(B)理论建立的色彩空间,即认为用红、绿、蓝3种颜色的光作适当混合,可以引起电磁光谱上所有颜色的感知。由于这三色分量高度相关,且是一种不均匀的颜色空间,即两种颜色之间的知觉差异(色差)不能表示为该颜色空间中两点间的距离,所以,它主要是作为一种面向硬件设备(如彩色监视器、彩色摄像机等)的色彩空间模型,并不利于对图像中色块的识别与判定。对此,的解决方案是将每个图像的RGB值换算为HSV值(Hue, Saturation, Value)。HSV色彩空间中,色调(H)和饱和度(S)与人类对颜色的感受方式紧密相连,故而通过对颜色的色调,饱和度的区间来判定像素点的颜色。[4]

转换H公式如下:

(1)

(2)

(3)

(4)

(5)

转换S公式如下:

(6)

(7)

转换V公式如下:

(8)

上面的式子中,max=max(R,G,B),min=min(R,G,B);R,G,B分别代表颜色中红色(Red),绿色(Green),蓝色(Blue)的颜色强度,而H,S,V分别代表色相(Hue),饱和度(Saturation),亮度(Value)。[5]

1.3.2 颜色识别

HSV是相对直观的颜色模型,它把颜色分为三个参量:

色相(Hue),具体表示在色相环上的一种纯色,如红、黄等;饱和度(Saturation),具体表示纯色在颜色中的百分比,越高色彩越纯,低则逐渐变灰,取0-100%的数值,当S=1时,表示颜色最纯;亮度(Value),表示颜色的亮度,取0-100%,当V=0时,表示黑色。[4]

在实际的测试环境中,地面是木地板且带有缝隙与花纹,处理时发现其饱和度在正常光照下较低,基本在0.15以下,而红色边界的饱和度较高,于是采用了饱和度较高的颜色来做标示,以此较好地完成与背景的区分。

同时,将H值划分到不同空间,用以完成对赛道边界、不同标示的区分。

1.3.3 道路边界定位

以纵向为X轴,横向为Y轴,左上角的像素为原点建立坐标系。

自上而下,从左向右扫描整张图像,当遇到连续红色像素点时取点,得到边界的上的一连串点位之后,通过回归方程求出较为贴切的边界所在的直线方程。

通过直线的方程计算车身目前是否与边界平行,与边界距离,是否需要调整姿态等问题。

具体实践中,通过求解直线与Y轴交点,从而确定是否需要调成姿态和在道路中的位置。

1.3.4 标识寻找与定位

系统标示为长条状色块,贴在道路边界线外侧。从而得出边界线方程后将该直线向外侧平移,并在这条直线上寻找连续的H、S值符合要求的连续像素点,就能得到标示的大致位置,通过多次平移和取点,得到相对可靠的标示位置,返回标示上沿与边界交点的X、Y值。

智能车通过获取路标指示,自动确定路标在系统存储的图像中的位置,可以判定小车在道路中的位置,从而做好转向/直行的准备。

1.3.5 入库判定

方案设定模拟车库大小为智能车长宽的1.5倍,采取普通的纸箱制作。

由于入库后,智能车不再能看见边界,因此当摄像头返回的图像中不再能找到边界时,则显示到达车库,进行鸣笛和闪灯操作。[6]

2 智能车系统的实际调试

由于不同场地小车行驶数据不同,同时不同地点的光线会影响图像质量,所以小车实际运行时需要针对不同环境,设计多种运行方案,以适应实际环境的要求。

在测试过程中发现,摄像头处理帧数较少,在行驶近标示时可能会因为移动中图像失真和拍摄时机不恰当导致识别误差,所以实际行进中采取不断变速办法:

在转弯前一段时间小车以较低速度行驶,以获取较佳的标示图像数据,在拐弯和其它直行时,采用较高的速度,以获得良好的时间优势,同时不同速度时微调采用不同的时间参数。

经反复调试,所研制的智能车实现了全部预期目标,行进中的最大速度可达到21cm/s,在一分钟之内在完成五个转弯动作后顺利进入车库。

图3为研制的智能车在室内体育场运动时的照片。

3 智能车系统的可拓展性

由于时间关系,虽然研制的智能导航车成功实现了基本的功能,但仍存在需要改进和拓展的方面:(1)模糊控制对很难建立数学模型的系统有很大优势,而本设计只是用一种比较简单的模糊控制方法来控制智能车,考虑到实际情况,进一步改进控制算法很有必要;(2)在12C5A32S2单片机控制板中,还有较多的IO口处于闲置状态,因此方案所设计的智能车的可拓展性很强。

例如,可以在车上装个小型 wifi装置,将数据传回至PC端,从而达到云计算的效果;也可以安装GPS导航系统,实现在实际道路中的行驶。

4 结语

经过反复测试,完成了智能车系统的制作。由于安装了摄像头,智能车可以通过它判断周围环境,使得智能车转向准确稳定,能够完成90度的左转,右转,并且能够完成停车动作。该智能车在满足设计要求的前提下,还具有良好的环境识别能力和稳定性,并能以较快速度行驶,最大速度达到21cm/s。

参考文献:

[1]乔维高,徐学进.无人驾驶汽车的发展现状及方向[J].上海汽车,2007(7):40-43.

[2]武星.视觉导航的轮式移动机器人运动控制技术研究[D].南京:南京航空航天大学,2010.

[3]田勇,丁学君.数字图像压缩技术的研究及进展[J].装备制造技术,2007(4):72-75.

[4]肖治民,林坤辉,周昌乐等.基于HSV颜色空间的视频镜头检测[J].厦门大学学报(自然科学版),2008,47(05):665-668.

[5]刘鹏宇.基于内容的图像特征提取算法的研究[D].吉林:吉林大学,2004.

[6]付菊芳.四轮汽车的自动停车系统研究[D].西安:西安建筑科技大学,2009.

上一篇:生态城市规划和建设相关问题的思考 下一篇:浅论时间因素在协同过滤推荐系统中的作用