基于摄像头的智能循迹小车控制算法设计
2017-09-19刘晓萌
刘晓萌
摘 要:智能循迹小车的设计包括车的机械结构设计,硬件电路设计和控制算法设计三个方面。文章采用模糊控制和PID算法进行电机和舵机的控制,完成智能循迹小车的控制算法设计。该控制算法能够使得智能循迹小车在指定赛道内完成自动行驶的功能,达到设计要求。
关键词:算法设计;智能循迹小车;行驶控制
中图分类号:TP872 文献标志码:A 文章编号:2095-2945(2017)27-0010-02
引言
随着人工智能技术的发展,智能行车软件开发已成为计算机科学领域的研究热点之一,许多的实验平台和驾驶辅助系统已经开发出来。
自动驾驶的实现需要依靠人工智能、视觉计算、雷达、监控装置和全球定位系统协同合作,让电脑可以在没有任何人类主动的操作下,自动安全地操作机动车辆。基于摄像头的智能循迹小车的设计与控制软件研发是探索自动驾驶技术的一种有效途径,它以摄像头为路况监测传感器,完成在指定道路上的不同任务。
智能循迹小车的设计与控制软件研发主要包含三个基本方面[1-3]:机械结构的设计、硬件系统的搭建、软件系统的编写。机械结构调整模仿汽车的机械结构,包括重心调整,前轮定位等。硬件电路的设计遵从可靠性,稳定性和完整性,设计出一套符合要求的硬件电路。软件设计通过道路识别算法和控制算法完成控制,同时以大量的赛道数据为基础保证了智能车的稳定性。
1 智能循迹小车的机械结构
小车的机械结构主要由电机,底盘,舵机和摄像头四个部分构成。
在智能车底板与后驱动模块之间增加垫片可以降低底盘离地的间隙,为了保证智能车在弯道行驶时不发生侧滑,底盘离地的间隙应该是越小越好,但还要考虑车模在坡道处底盘不会碰到赛道,经过实验设置底盘离地间隙为8mm。
舵机采用前置悬置方式安装,使摆臂和舵机始终处于同一个水平面,有利于转向的灵活性,缩短舵机反应时间。
智能车CMOS摄像头的安装主要考虑了三个因素[4-5]:首先,保证摄像头的位置绝对居中且正对前方;其次,在安装高度上要尽量高,获取足够多的路况信息;最后,近瞻距离智能车20CM之内,用来保证智能车不偏离赛道。远瞻在1M左右,在高速行驶的时候能够提前判断出前方赛道的类型。
2 智能循迹小车的硬件设计
系统硬件电路由K60最小系统、电源模块,驱动模块和传感器模块电路构成,各个模块都集成在一块PCB板上,相比较各个模块分离减轻了整车重量,同时保证了各个模块在同时工作时的稳定性。
智能车的控制芯片采用恩智浦公司的32位微处理器MK60FN1M,该芯片具有GPIO模块FTM占空比(PWM)模块、中断模块、A/D(模数)转换模块和串口通信(UART)模块。最小系统模块包括输入电源、复位电路、下载接口以及50MHz有源晶振,单片机最小工作电压为3.3V。
3 控制软件设计
智能循迹小车通过CMOS摄像头获取黑白的赛道图像,利用黑线提取算法提取赛道并计算赛道中心位置,通过比较智能车位置与赛道中线的偏移量的大小来控制舵机的打角,实现对智能车方向的控制。此外,在速度控制上采用不同的赛道类型对应不同的速度来确保智能车在各种赛道上的稳定性,速度控制的算法采用模糊控制法,通过采集编码器获得的脉冲值的多少计算当前速度值,用来实现速度的闭环控制。
3.1 图像矫正与黑线提取的计算
由于摄像头采集到的图像是一幅发散式的图像,会产生纵向和横向畸变,如果不进行矫正,无法保证采集到的赛道图像的正确性,会影响对赛道类型的判断,严重时还会造成智能车冲出赛道,无法完成任务。
由于摄像头的畸变是梯形畸变,先不考虑纵向的畸变,摄像头的横向畸变近似为一个梯形。梯形矫正的方法为图像最近一行为基准,假设赛道宽度为50个像素点,那么第二行也要把赛道宽度拓展成50个像素点,进行逐行矫正,这样最后得到的图像就是等宽的。
赛道中线提取算法基本思路:(1)扫描最底部三行数据,找出赛道的黑线坐标;(2)利用前一行的黑线位置判断下一行黑线的大概位置,确定一个扫描的范围,避免进行逐行扫描,节省大量时间;(3)根据扫描到的赛道宽度,判断是否符合真正赛道的宽度,消除噪声干扰。
3.2 分类赛道控制算法
(1)直道的方向控制算法。直道是所有赛道元素中最简单最容易识别的元素,也是智能车速度最快的路段。在直道中的方向控制是很好实现的,当智能车偏离赛道一个偏移量时,通过计算赛道中心的位置与预定中心位置的差值,将这个差值反馈到PID方向控制上,智能车就会慢慢的回到赛道中心位置,这样就实现了智能车在直道路段的方向控制。(2)大弯的方向控制算法。在赛道中遇到弯道需要转弯时要考虑多个因素:弯道的弯曲程度、当前的速度值和距离弯道的距离。由于舵机的转向有一定的延时,为了减小延时增大舵机的电压为最大电压。由于智能车的速度很快,舵机转过一定的角度过程中智能车已经行驶了一段距离,所以遇到弯道时要提前转弯,而且速度越快就要越提前转弯,智能车提前转弯多少由速度来决定,而转弯转多少由赛道的弯曲程度决定,賽道越弯转过的角度就越大,同时速度要控制的越低,不然会发生侧滑甚至侧翻的情况。通过大量的实验获取了丰富的数据,通过工具分析数据得到了弯曲程度、智能车速度和距离弯道距离之间的关系,通过实际的测试此关系完全满足设计要求。(3)急弯的方向控制算法。遇到急弯的处理方式和大弯的处理方式相似,需要提前减速和转弯,转弯的转向角也相应增大,急弯的方向控制更加困难,要更加注意。(4)“小S型“道的方向控制算法。“小S型”弯道是一段类似于“S”形状的来回弯道组成的,智能车通过时如果不做处理就会连续打弯,增加通过的时间。如果遇到“小S型”弯道时能从中间直线通过就好了,能大大减少通过的时间。因此找到“小S型”弯道的中心非常重要,只有找到了中心位置,智能车才能全速通过,如果找不准中心位置,那么智能车就很容易冲出赛道。具体方法是“小S型”弯道的图像通过扫描黑线的算法可以扫描到最后一行,此时赛道的中线都能计算出来,然后把赛道所有的中线进行加权平均就能得到通过“小S型”弯道的最佳路径。
4 结束语
只有出色的控制算法才能使智能车的各个部分完美配合,完成预定的任务。本文在基于摄像头的智能循迹小车结构设计与硬件电路设计的基础上,进行了控制算法的设计,为下一步整车系统的开发与调制奠定了基础。
参考文献:
[1]尹杰,杨宗帅,聂海,等.基于红外反射式智能循迹遥控小车系统设计[J].电子设计工程,2013,23:178-184.
[2]黄春平,万其明,叶林.基于51单片机的智能循迹小车的设计[J].仪表技术,2011(2):54-56.
[3]陆晓琳.基于PIC16F648的智能寻迹小车设计与实现[J].电测与仪表,2011,7:65-68.
[4]宫纪波.基于红外反射循迹小车的传感器布局研究[J].工业控制计算机,2009,8:97.
[5]陈华伟,熊慧.智能循迹小车硬件设计及路径识别算法[J].单片机与嵌入式系统应用,2010,12:26-31.endprint