摄像头循迹智能平衡小车
摄像头循迹智能平衡小车
付国栋,胡健军,王杰
(哈尔滨工程大学自动化学院 哈尔滨 黑龙江 150001)
摘要: 摄像头循迹智能平衡小车是使用MK60DN512ZVLQ10微处理器和CCD 摄像头配合来实现在跑道上的自动循迹,识别黑白线,直道和弯道的加减速行驶。小车是机械系统与硬件系统配合软件系统实现运行的复杂整体,硬件系统有电源管理模块,最小控制系统模块,图像采集识别处理模块,陀螺仪加速度计角度测量模块,电机驱动模块,编码器测速模块;软件系统包括小车的直立平衡控制,速度与方向的PID 控制,角度测量的卡尔曼互补滤波算法,信息(赛道图像,车轮转速)采集程序;机械系统方面,各模块的安装,优化改进也是摄像头循迹智能平衡小车平稳运行的关键部分。
关键词:MK60DN512ZVLQ10微处理器,图像采集识别处理,PID 控制,卡尔曼互补滤波
Smart balanced car of tracking by camera
FU Guodong, HU Jian jun, WANG Jie
(College of Automation, Harbin Engineering University , Harbin, Heilongjiang 150001) Abstract: Smart balanced car of tracking by camera realizes automatic track in runway, recognizes black and white line, acceleration and deceleration of speed by using microprocessor MK60DN512ZVLQ10 and CCD camera. Smart car is a complex system concluding mechanical system, hardware system and software system; the hardware system has power module, minimum control system, the module of gathering, recognizing and processing image, the module of measuring angle by gyroscope and accelerometer, the module of driving motor, the module of measuring speed by encoder; the software system is composed of upright and balanced control’s procedure, speed and direction’s PID control’s procedure, kalmen complementary filtering algorithms, and procedure of gathering information like the runway’s image and the wheel’s speed. And every module’s installation, optimizing and improvement in mechanical system is also a key part that makes smart car move stably.
Key words: Microprocessor MK60DN512ZVLQ10, gathering, Recognizing and processing of image, PID control, Kalmen complementary filtering
1. 引言
全国大学生“飞思卡尔”杯智能汽车竞赛是以“立足培养、重在参与、鼓励探索、追求卓越”为宗旨,鼓励创新的一项科技竞赛活动赛。智能汽车竞赛的赛道路面为宽度不小于45cm 的白色面板,赛道两侧边沿有宽为25mm 的连续黑线作为引导线。参赛队员的目标是模型汽车需要按照规则以最短时间完成单圈赛道。本文结合我们小组参与“飞思卡尔”智能车的竞赛经历,讲述了摄像头循迹的智能平衡小车系统整体设计,制作及实现的整个过程,旨在探索实现小车平稳运行的更加合理稳定的机械结构,硬件电路和算法程序。
2. 总体设计
MK60DN256ZVLL10微处理器通过采集CCD 摄像头的硬件二值化信号,获得小车赛道边缘信息;通过采集陀螺仪加速度计姿态传感器的信号,经过互补滤波后,实时获得小车的倾角;通过光电编码器脉冲计数后,获得小车速度数据。通过微处理器对赛道图像的处理,对小车速度和方向的PID 控制,最后输出PWM 波控制直流电机,实现小车的平衡,转向,速度控制和智能循迹。在调试过程中,通过无线传输模块和上位机,获得小车倾角等状态数据。
3. 机械结构
智能小车的控制是在合理的机械结构基础上实现的,良好的机械结构才能保证小车系统的稳定性和适应性,对平衡小车,机械要求更高。因此在设计小车硬件,软件系统之前,应对小车的整体结构有清晰的认识,分析结构特点,结合数学模型改善小车的结构。
3.1车模的调整
1) 车轮啮合调整。齿轮传动部分安装位置不恰当,会增大电机的驱动负载,影响小车的速度。调整原则:两传动齿轮的轴间保持平行,齿轮间的配合间隙要合适,过松容易打坏齿轮,过紧则增大电机的阻力,因此合适的啮合度至关重要,实际测试在70%左右。
2)在赛道中设置有坡道,因此摄像头的安装位置不能过低,过低会造成信息采集的丢失。安装位置过高,在弯度比较大的赛道,会使小车受的离心力比较大,容易冲出赛道。调整方法:改变小车的倾角,在45度左右,降低小车的重心,增大小车过弯道时的稳定性。同时我们采用碳纤板固定在小车的底板上,增大了小车的刚性,使摄像头的安装位置在小车运动过程中不会与小车底板产生相对位移,增加了图像采集信息的准确性。
3.2陀螺仪加速度计的安装
陀螺仪使用ENC-01,加速度计使用MMA7361,它们是表贴的元件,固定在同一块电路板上。将这块带有陀螺仪加速度计的电路板固定在整个小车的质心位置,可以最大程度减小车模运行时前后振动对小车倾角测量的影响。安装角度传感器电路板上应保持陀螺仪水平安装。因为在小车在弯道运行时,同时存在转动和平动,陀螺仪安装位置不是水平,转动就会在陀螺仪的Z 轴方向产生分量,影响小车的运行速度。
图1 陀螺仪加速度计的安装
3.3电池的安装
由于是两轮平衡小车,对小车的运行稳定性和转向的灵活性都提出了更高的要求,因此我们尽可能地降低小车的重心,将电池安装在小车的底部。
图2 电池的安装
3.4摄像头支架的安装
为了最大程度减小摄像头支架安装对小车整体平衡的影响,选用了质地坚硬且重量小的碳素杆作为支架,同时用两个小的碳素杆作为支撑,增加系统的稳定性,以减小车模震动对摄像头的影响。
图3 摄像头支架的安装
3.5编码器的安装
采用增量式编码器实现对驱动电机转速的检测,通过齿轮传动的方式使编码器测速齿轮与电机轴上的齿轮啮合,来获得小车的运行速度。
图4 编码器的安装
4. 硬件电路
4.1 K60为核心的最小系统板
单片机系统板使用K60单片机为了减小空间,将单片机最小系统板直接接到主板电路上。
图5 K60芯片引脚分配
4.2. 电源稳压电路
本系统中电源稳压电路有4路,由锂电池提供的7.2V 电压,LM2576-5稳压电路为直流电机供电,另一路5V 为测速电路和部分芯片供电,两路5V 分开为防止电机驱动电路对图像信号处理电路的影响;3.3V 稳压电路为最小系统板,陀螺仪加速度传感器电路供电;B0512 12V 升压电路为CCD 摄像头供电。
图6 电源稳压电路
4.3视频同步分离电路
我们的智能车使用黑白CCD 摄像头对赛道信息进行采集。摄像头视频信号中除了包含图像信号之外,还有场同步信号、场消隐信号、行同步信号、行消隐信号等等。因为,要对频率信号进行处理,就必须通过视频同步分离电路准确地把握各种信号间的逻辑关系。我们使用 LM1881 芯片对视频信号进行同步分离,得到场同步信号与行同步信号。
图7 视频同步分离电路
4.4片外AD 电路
K60 单片机自身具有A/D转换功能,但是受到时钟总线频率的限制,其转换速度很慢。因此,我们使用TLC5510芯片作为片外A/D,K60单片机通过IO 口进行图像数据采集,它提供最大20Msps 的采样频率。使用片外A/D后,受到IO 口读取数据的限制,每行图像可以采集到120个有效点,使图像的行分辨率提高了一倍。
图8 片外AD 电路
4.5电机驱动电路
对于电机驱动电路,可有多种选择,像专用电机驱动芯片MC33886、LM298、BTS7960、BTS7971等,在运动过程中需要用H
桥的全桥电路才能及时刹车,减速入弯,我们采用芯片
BTS7971构成H 桥来驱动电机。下图展示的是一路PWM 波控制电机一个电机一个方向转动的驱动电路,通过改变PWM 波的占空比和相位来分别控制两轮的正反方向转动。
图9 电机驱动电路
4.6陀螺仪加速度计传感器接口电路
陀螺仪ENC-03,加速度计MMA7361,均是集成在一块电路板上的,因此我们只需设计它们的接口电路。
图10 陀螺仪加速度计接口电路
4.7键盘拨码电路
由于不同赛道与车轮之间的摩擦力差别较大,因此需要根据实际情况调整参数。另外,不同速度下的参数也需要外部输入。因此我们专门设计了一个液晶调试模块,配合按键便可以对软件参数进行灵活修改.
图11 键盘拨码电路
4.8测速电路
图12 测速电路
4.9摄像头
我们对CCD 摄像头和CMOS 摄像头进行了对比。CMOS 摄像头动态图像差,智能车在高速行驶时,图像模糊,不利于黑线的提取。CCD 摄像头虽然工作电压为12V ,且相对功率大,但图像对比度高,动态特性好,因此我们选取了CCD 摄像头。
5. 软件系统设计
5.1 图像处理
5.1.1图像采集
为了提高分辨率,采用片外采AD 电路TLC5510电路采集数据,每行可采集230点,这样我们即使将摄像头前瞻提高到1.7m 也能精确地提取到黑色引导线,在兼顾道路信息和处理时间的前提下,提取45行进行处理,将摄像头提取到的数据存于二维数组data[i][j]。
5.1.2黑线提取
黑线提取实际上是一种图像分割技术。图像分割指图像分成各具特性的区域并提取出感兴趣目标的过程,是一种基本的计算机视觉技术。只有在图像分割的基础上才能对目标进行特征提取和参数测量,使得更高层的图像分析和理解成为可能。由摄像头得到的图像实际上是一幅灰度图像,可以将图像分为几个区域,区域内部的灰度具有灰度相似性,而在区域边界上一般具有灰度不连续性,因此灰度图像分割一般可分为利用区域内灰度相似性的基于区域的方法和利用区域间灰度不连续性的基于边界的方法,分别称为阈值法和边界法。
阈值法是一种最常用的方法,基本思想是利用阈值来区分不同目标的灰度值,从而提取目标。对于摄像头而言,黑线部分灰度值小,白板灰度值大,设阈值为limit ,若满足data[i][j]
边界法基于边界的分割方法是利用不同区域间象素灰度不连续的特点检测出区域间的边缘,从而实现图像分割。对于摄像头提取到的黑线而言,利用白板与黑线灰度值的差异来提取黑线,这一方法的优点是抗干扰性强,光线强度在一定范围内变化,对黑线提取基本上没有任何影响,但是算法相对较复杂 。
结合上述两种方法的优点,我们采用动态阈值的方法来提取黑线。
图13 跑道黑线提取流程图
5.2控制算法
5.2.1直立控制
通过控制车轮转动,抵消小车在一个维度上倾斜的趋势便可以保持车体平衡. 由此可以知道车模的平衡需要一下两点:
(1)能够精确测量车模倾角θ的大小和角速度' θ的大小;
(2)可以控制车轮的加速度
图14 小车直立控制示意图
因此我们采用陀螺仪加ENC-03, 加速度计MMA7361两种传感器配合使用,分别测量小车的倾角和角加速度。陀螺仪测得值存在温漂,加速度计的动态值不可靠,因此我们采用互补滤波算法,使两者结合测量小车的倾角。但如果陀螺仪的采样值不好,或者AD
转换参考电
压不稳导致陀螺仪静态参考值发生变化,互补滤波没有对其进行修正,最终使得实际速度与预定速度存在偏差,因此最终我们采用卡尔曼滤波先对陀螺仪的静态值进行修正,然后采用互补滤波测得小车倾角。
图15 陀螺仪角速度计测量角度框图
5.2.2速度与方向的PID 控制
PID控制器(比例-积分-微分控制器),由比例单元P 、积分单元I 和微分单元D 组成,通过Kp ,K 和Kd 三个参数的设定来控制系统PID ,控制器主要适用于基本线性和动态特性不随时间变化的系统。
图16 PID控制框图
1)速度控制采用的PI 。速度控制的效果不仅取决于PI 参数,关键在于直立部分的的调整,如果直立方面PD 都较大,即车调节的很“硬”,那么在速度调节时将会容易些,但是过硬会导致车的抗干扰能力变弱,小车容易失控。若直立方面PD 调的较小,即车调节的很“软”,则小车的抗干扰能力很强,但速度控制时,响应速度变慢。其次,速度控制会影响直立,所以每次的输出可以经行限制幅度等处理,使车更平稳,同时速度环在积分项中,可以分离出来采取与限制削弱法,于此同时为了使车起跑超调量小些,预设速度方面采用了逐步加的形式。
2)方向控制。用偏差分别与车模速度控制信号进行加和减,形成左右轮差动控制电压, 使得车模左右车轮运行角速度不一致进而控制车模方向。
图17 小车速度方向控制原理图
通过左右电机速度差驱动车模转向消除车模距离道路中心的偏差。通过调整车模的方向,再加上车前行运动,可以逐步消除车模距离中心线的距离差。这个过程是一个积分过程,因此车模差动控制一般只需要进行简单的比例控制就可以完成车模方向控制。但是由于车模本身安装有电池等比较重的物体,具有很大的转动惯量,在调整过程中会出现车模转向过冲现象,如果不加以抑制,会使得车模冲出赛道。根据前面角度和速度控制的经验,为了消除车模方向制中的过冲,需要增加微分控制。微分控制就是根据车模方向的变化率对电机差动控制量进行修正的控制方式,因此需要增加车模的转动速度检测传感器。
6. 小车整体调试
6.1开发环境
程序开发通过IAR Embedded Workbench IDE进行,Embedded Workbench
for ARM 是IAR Systems 公司为ARM 微处理器开发的一个集成开发环境(下面简称 IAR EWARM) 。比较其他的ARM 开发环境,IAR EWARM 具有入门容易、用方便和代码紧凑等特点。EWARM 中包含一个全软件的模拟程序(simulator)。用户不需要任何硬件支持就可以模拟各种 ARM 内核、外部设备甚至中断的软件运行环境。从中可以了解和评估 IAR EWARM 的功能和使用方法。
6.2上位机调试
在调节小车平衡的过程中,我们通过Labview 编写的上位机程序和串口调试助手来获得小车的状态参数。
7. 结论
应用MK60DN256ZVLL10微处理器配合各模块最终实现了摄像头智能循迹平衡小车的运行,在实际调试的过程中,经过对机械结构的不断改进,最终得到一种合理的机械结构;在电源管理模块中,主控芯片和测量角度的传感器的分别供电,减少了外部因素对主控芯片的干扰;在软件程序方面,互补滤波结合卡尔曼滤波算法,修正了陀螺仪的静态值,减弱了温漂,AD 电压不稳对角度测量的影响,因此精度更高芯片的开发也是我们智能小车性能提高的关键因素;小车速度方向PID 控制的灵活运用。摄像头循迹智能平衡小车设计实现的整个过程提高综合实践能力,使我们具有了一定的系统认识。
参考文献
[1] 楚现知,吴吉祥,李锦忠. 基于 LabVIEW 的监控界面设计与单片机的串行通信[J]. 工业控制计算机,2005 年 18 卷第 7 期
[2]卓晴,黄开胜,邵贝贝. 学做智能车——挑战“飞思卡尔”杯北京:北京航空航天大学 出版社,2007
[3]邵贝贝.单片机嵌入式应用的在线开发方法[M].北京.清华大学出版社.2004
[4]汪艺宝,林峰,史俊祎. 浙江大学浙大七队技术报告.
[5] 林川,曹旭雷,曹存凯. 郑州轻工业学院 东方集成3队技术报告.
[6]卓晴, 王琎, 王磊. 基于面阵 CCD 的赛道参数检测方法.
,2006(4):141-143 电子产品世界