线性CCD智能车的控制系统设计

2016-11-09 11:48张仁尊
关键词:车模倾角小车

张仁尊

山东科技大学电气与自动化工程学院,山东青岛266500

线性CCD智能车的控制系统设计

张仁尊

山东科技大学电气与自动化工程学院,山东青岛266500

该智能车控制系统由电源稳压模块、直流电机驱动模块、赛道信息识别模块、速度检测模块、倾角检测模块、OLED显示模块和串口调试模块组成。采用32位Cortex-M4内核的微处理器MK60DN512ZVLQ10作为核心控制单元,在此基础上应用相应控制程序来实现直立、方向、速度控制。通过自平衡小车动力学建模,获得小车平衡条件;利用陀螺仪和加速计获得车体的倾角和角速度;对小车倾角进行PD控制实现小车的基本直立;通过光电编码器测得小车的速度,并对速度进行PID控制;将转速控制信号与平衡控制信号叠加到后轮两电机上,实现小车的静止和直立行走;采用TSL1401线性CCD获得赛道图像信息,经过对图像的去噪处理,准确快速的提取出的赛道中心线,获得小车的方向偏差控制量;通过对方向控制量和转向角速度进行PD控制来调节左右两轮的差速实现小车的转向和自主寻迹。

线性CCD;智能车;控制系统

对于两轮平衡车,车子运行的动力都来自两个后轮,因此从控制角度来看,车模作为一个控制对象,它的控制输入量是两个电极的PWM。车模运动控制任务可以分解成以下三个基本任务:1、小车直立控制:通过控制两个电机正反转来保持平衡;2、小车速度控制:通过调节小车的倾角大小来实现车模速度控制,实际上最后还是演变成通过控制电机的转速来实现车轮速度的控制[1];3、小车方向控制:输入PWM不同进而两轮之间的速度不同来控制方向。

1 车模控制

1.1速度控制

小车运行的速度和加速度是通过控制车轮速度实现的,车轮通过小车两个后轮电机经由减速齿轮箱驱动,因此通过控制电机转速可以实现对车轮的运动控制[2]。

电机的运动控制作用,1、通过两轮加速度控制实现小车平衡稳定;2、通过两轮速度控制,实现小车恒速运行和静止也可以提高小车稳定性;3、通过两轮差速控制,可以实现小车方向控制。

我们可以通过安装编码器来测量小车的两后轮速度。控制速度之前,我们可以假设车模在直立控制下已经可以保持平衡了,那么我们只需要调整车体倾角就可以调整速度。给定车模直立控制的角度设定值,在角度控制调节下,车体将会自动维持在一个角度。车模倾角最终是跟踪重力加速度Z轴的角度。因此车模的倾角给定值与重力加速度Z轴角度相减,便可以最终决定车模的倾角。速度的给定会影响到小车往前倾的角度给定。此时小车速度控制框图如图1。

图1 车模运动速度控制简化模型Fig.1 The simple model controlling for vehicle speed

如图1所示,我们将角度闭环控制与速度闭环控制叠加在一起便可实现对速度与角度的多项控制。但是速度环的极性为“负”,原来的负反馈相当于正反馈。在直立控制下的车模速度与倾角之间的传递函数具有最小相位特性,在反馈控制下容易不稳定[3]。

在程序方面,主定时器定时1 ms即每1 ms进入一次定时中断服务子程序,通过全局变量的值来确定角度控制、速度控制与方向控制等任务片段的执行与否,速度控制周期为100 ms。每4 ms调用一次函数读取两个编码器脉冲进行求和,并清零计数器,利用4 ms的脉冲数量可以反映车模的电机的转速。车模速度采用两个电极速度的平均值。为了去除误差对该测速值适当进行了限幅,当测得速度偏离设定速度单位的25%时将误差限制在设定的25%。接下来对给定速度与测得速度做差求得速度偏差,对其进行PID运算,并且对积分制适当限幅。最终将速度控制参数赋给一全局变量,为了减少速度控制对于车模直立控制的影响,速度控制输出量的变化被函数均匀分配在25个角度控制函数周期内,这样可以保证车模的稳定性。

速度的调整本质上是通过小车车模的角度来实现的。比例控制P参数决定抑制速度误差的能力,但是只有比例控制小车速度容易出现震荡现象。通过积分控制可以消除这个震荡现象。而且由于小车的速度的控制对角度的控制来说是干扰,如果速度控制的参数调整的过大,就会削弱小车角度的控制作用。为防止小车行驶过程中由不稳定造成的速度剧烈变化,我们对PI参数在一定范围内动态处理,当出现卡顿和侧滑漂移时,产生的速度大误差会被线性下降的PI参数适当抵消,使小车不会在速度控制上产生巨大阶跃输出,此方法可以一定程度抑制了小车的弯道漂移和抬轮现象。

1.2方向控制

给左右轮电机输入PWM,使两轮速度不同进而能实现车模的方向控制。车模的前进速度是两轮速度之和的一半,转向速度与差速成正比[4]。因此,两轮电压之和决定了平衡车前进速度,两轮电压之差决定了平衡车转向速度。不难发现平衡车的前进状态与两轮电机电压之差无关,转向状态与左右电机电压之和的一半无关。车模调试环境是铺有黑色引导线的任意方向的跑道,包含直道、直角弯、障碍、坡道等元素。跑道两边贴有两道宽度约为2.5 cm的黑线,通过CCD采集赛道的整幅图像信息,对图像信息进行滤波去噪,二值化处理。根据两黑线的位置计算出车体偏移赛道中心线的位置,并得到方向偏差控制量。根据两编码器测得的速度之差,可得到车体的转向角速度。对方向控制量和车体转动角速度进行PD控制可得到转向控制信号。根据相应的转向控制信号调节左右两个轮子的差速来实现转弯和寻迹。方向控制结构图如图2。

图2 方向控制系统结构框图Fig.2 The framework of systemic structure to control direction

只要给出小车的初始位置和方位角,根据上述关系便可推算出小车的后轴中点任何时刻的位置和位姿。但由于实际中车模的齿轮咬合不紧、机械结构间隙、CCD前瞻不同、双轮打滑和编码器采样时间长短等因素,小车系统的里程计模型并不能完全准确地反映其位姿变化。由此可知,小车系统的里程计模型只是起到预测车体的下一步位姿,为车体前后时刻的特征匹配提供启发信息的作用。在程序方面,对于双电机直立车模,转向靠电机控制车轮差速进行转向,差速的控制量由识别出的路径偏移量通过计算给出,转向控制采用PDD控制。

2 图像处理与赛道识别

2.1图像获取

赛道信息复杂,对光源传感器做出了要求,使用CCD进行赛道识别时结合了传统的跳变沿算法和二值化算法。对于我们的模型车,CCD在赛道上可能的状态有:在普通的赛道处、在起点处、在十字路口处、小S弯处、路障处、直角处以及单引导线处。由于传感器的改变以及规则的变更,使得今年对于赛道识别的工作量变得更加复杂,难度大大增加,情况也显得错综复杂,矛盾点层出不穷。

我们的小车仅采用一路CCD对赛道信息进行识别,一个CCD包含128个像素点,但这128个点并不是所有的点都能够被准确获取灰度值,我们选择采用左右各舍弃10个像素点,分别把左右各55个像素点记为Left 10~64和Right 64~118,利用剩余的像素点来对赛道信息进行采集。这些像素点中每个点的灰度值理论上都有0到255这28种状态,为后期图像处理提供了依据。

图1 原始图像(无赛道背景)Fig.1 The original image(No track background)

图2 二值化后的图像(路障元素)Fig.2 The image after binarization(Barricades elements)

对采集到的图像进行二值化处理,检测到白线是输出200,黑线输出0。检测方法采用从中间向两边扫描。

2.2坡道的识别

坡道我们采用CCD返回来的边线信息进行判断识别,坡道一显著特征是直道赛道变宽,单仅凭这一特点容易产生误判,如:车子倾角变大时会带来宽度的变宽;直道接弯道处也会出现变宽,但此时依然可能显示小车在直道上,与真实坡道不同的是此时赛道左右线是同时增大或减小。综上以上因素,我们在确保左右线同时向两边扩散的前提下判断赛道宽度是否明显超出此时车身角度应对应的宽度。此方案极大地减小了误判并能准确测出,缺点是不利于临场变动前瞻。

2.3十字弯的处理

在十字的时候,会出现连续全白,在传感器稳定前提下,能出现全白也只有在十字交叉处出现,相比保持上次误差值我们最终采用给定固定误差64。

2.4直角弯的处理

当检测到直角前面的黑带后,并且右线标志位为1,左线标志位为0或者左线标志位为1,右线标志位为0,则直角的标志位自动加1。根据小车当前的速度值给变量赋一个确定的值,如果直角的标志位大于等于该值,即可认为是遇到了直角。判断出直角后,给一个固定误差,直到看到左右线且中线在64附近,同时配合转向陀螺仪的90度积分,使其在图像混乱情况下不会出现太大误判。小车即可平稳的通过直角。

3 系统总体硬件组成与设计

设计小车控制系统的电路,首先需要分析系统的输入、输出信号,然后选择合适的单片机,逐步设计各个电路子模块,最后形成完整的控制电路。为了实现车模直立循迹行走,需要利用单片机以下资源:(1)AD转换接口(4路)陀螺仪:两路,一路用于检测小车倾斜角速度,一路用于检测小车方向转动角速度。加速度计:一路,测量加速度Z轴输出的角度。线性CCD:一路,用于路况图像采集;(2)PWM接口(4路)控制左右两个电极双方向运行。由于采用单极性PWM驱动,需要四路PWM接口;(3)定时器接口(3路)一路定时产生1 ms的任务片段,两路路采用l ptmr低功耗定时器和FTM高级定时器的计数功能对编码器产生的脉冲进行计数进一步计算出小车运行速度;(4)通讯接口(备用)UART:一路,小车与上位机进行数据交换;(5)IO接口4路输出:驱动oled屏幕,进而显示对小车的监控数据(如车速、赛道信息等)。4路输入:连接拨码开关用于调节小车的运行参数、速度。

本课题采用飞思卡尔Kinetis系列的32位处理器MK60DN512ZVLQ10作为核心的控制处理器进行设计。系统的硬件部分主要由基于Kinetis系列微处理器的控制模块、稳压模块、角度传感器模块、电机驱动模块、测速模块、赛道信息采集模块、人机交互模块等模块组成。系统的主控芯片是MK60DN512ZVLQ10,由它的最小系统控制各个模块,使得各个模块之间的能够协调工作。通过单片机的内部AD采集各个传感器的信号,有控制器进行滤波和信号处理,对车身姿态和当前的赛道环境进行识别,最后通过一定的控制算法将控制量的输出通过PWM的形式送给后轮两个电机,以完成系统的所有任务。系统硬件组成整体框图如图3所示

图3 系统硬件组成整体框图Fig.3 The integral framework of hardware systems

3.1稳压电源模块

稳定的电源对于一个控制系统来说至关重要,关系到系统能否正常工作,因此在设计智能车系统时为各个模块配置了合适、稳定的电源并且在电路设计上尽量避免不同电源和相同电源不同模块之间的干扰,保证了整个系统的稳定运行。智能车系统的总的电源供应来自7.2 V大容量镍镉电池,摄像头以及大多数芯片均为5 V供电,单片机最小系统需要3.3 V低压[5]。

3.1.15 V稳压电路5 V电源模块用于为传感器模块、液晶显示模块和摄像头等模块供电。经过比较,由于在电机驱动时电池压降较大为提高系统稳定性,必须使用低压差稳压芯片。为此我们选用了低压差线性稳压芯片AMS1117-5.0为5 V工作的芯片供电。它们的纹波电压小,能对负载的变化迅速做出反应,适合为各个模块供电。

3.1.23.3 V稳压电路K60最小系统为3.3 V供电。因为单片机是整个系统的核心,因此其电源的稳定性尤为重要,固这里先用AMS1117-5.0产生5 V,再将该5 V输入AMS1117-3.3产生3.3 V电源。该电源芯片最大输出电流为1 A,低压差,纹波小,并内部集成过流和过热保护功能,精度为1%,满足系统要求这样既可以有效抑制电源纹波,又可以减小1117-3.3的功耗,保证其工作的稳定性。

图4 稳压模块原理图Fig.4 The principle diagram of the voltage regulator module

3.2赛道信息采集模块

利用TSL1401线性CCD模块对比赛赛道信息进行采集并反馈给中央处理单元,由中央处理元对采集数据进行处理。其接线原理图如图5所示。

图5 线性CCD接线原理图Fig.5 The principle of linear CCD

4 结语

本文以两轮自平衡小车为研究对象,实现了两轮小车的速度、转向控制及自主寻迹。深入研究了两轮驱动小车的定位模型及多传感器融合算法。对传感器数据融合、多输入单输出PID控制器等展开了研究。关键技术为:小车倾角和角速度的滤波、图像获取、去噪赛道准确提取、路形式的识别及小车转向的控制,角度闭环和速度闭环的相互协调等。硬件是基础,我们首先把相关的硬件电路做稳定。拿到小车第一步是设计其机械结构,之后在进行电路板PCB的设计,经过测试,电路板能够稳定运行,电机的驱动能力较强。这些稳定运行的模块,需要我们相关经验的积累和前期做好知识的储备。

其次,软件是灵魂,在硬件支托下,需要设计核心的算法,好的算法是取胜的关键,只有正确的算法才能让小车顺利按照预期设想跑起来。方向控制和速度控制是算法的核心,首先保证转向的灵活性,之后考虑速度的稳定问题,这几个模块都要求对PID控制算法有充分的了解。

[1]陈业伟,刘海刚,项华珍,等.两轮自平衡小车控制系统的设计[J].微型机与应用,2014,33(11):19-21,25

[2]赵继强,陈建国,林荣群.智能直立循迹小车的控制方案[J].中国科技信息,2013(20):51-52

[3]方雁峰.双轮直立机器人行走关键技术研究[D].杭州:浙江工业大学,2014

[4]丁磊.基于16位单片机MC9S12XS128的两轮自平衡智能车的系统研究与开发[D].西安:长安大学,2013

[5]于丰华,雷宇桥,胡玉杰,等.基于OV7620循迹的智能车算法研究[J].微型机与应用,2013,32(17):69-71,76

Design forthe ControlSystem of IntelligentVehicle with LinearCCD

ZHANG Ren-zun
College of Electrical Engineering and Automation/Shandong University of Science and Technology,Qingdao 266500,China

The system is mainly composed of a power supply module,DC motor drive module,road information identification module,speed detection module,tilt angle detection module,OLED display module and debugging module etc. This design used microprocessor MK60DN512ZVLQ10 with 32 bit Cortex-M4 kernel as the core control unit to perform the control for upright,direction,and speed with corresponding programs.Specifically,balanced conditions were gotten through the design of dynamic modeling;angle and velocity were gotten by Gyroscope and Accelerometer;the basic upright was realized by way of PD controlling angel;speed was monitored by the Photo Electric Encoder and controlled by PID;stationary and upright movement performed by the overlay of rotating and balancing signals on two motors of rear wheels;the track image formation was obtained by TSL1401 linear CCD and eliminated noise to extract the track center line quickly and accurately so as to obtain the direction deviation control;steering and autonomous tracing were implemented by the direction control and steering angular velocity controlled with PD to adjust the differentials of left and right wheels.

Linear CCD;intelligent vehicle;control system

TP242.6

A

1000-2324(2016)05-0731-05

2016-09-04

2016-09-08

张仁尊(1995-),男,本科,研究方向:电气自动化.E-mail:546324532@qq.com

猜你喜欢
车模倾角小车
地球轴倾角的改斜归正
激光倾角仪在CT引导下经皮肺穿刺活检中的应用
车轮外倾角和前束角匹配研究
系列长篇科幻故事,《月球少年》之八:地球轴倾角的改邪归正
大车拉小车
潮玩车模精准吸引“Z世代”
自制小车来比赛
刘老师想开小车
两轮自平衡小车的设计与实现
车展,没有车模看什么