一种基于线性CCD的直立小车循迹行驶设计
摘要:本设计以第八届“飞思卡尔”杯全国大学生智能车竞赛为背景,提出了一种根据线性CCD采集图像引导直立小车循迹行驶的方案。本文介绍了这一方案的基本思想,所依据的物理原理,并重点介绍在双速度控制算法下对转向及障碍问题的优化处理,并根据方案实际制作了小车。实践证明该方案是可行的,并且效果较好。
本文引用地址:http://www.amcfsurvey.com/article/248145.htm关键词:智能车;直立;速度控制;Kinetis K10;TSL1401CL
引言
以往的智能车竞赛分为光电组、摄像头组及电磁组。在本届比赛中,光电组首次尝试小车直立行走,并且首次采用线性CCD作为图像采集传感器。本文介绍以飞思卡尔Kinetis K10为主控芯片,如何使用线性CCD所采集的图像进行数据处理的过程以及基于独创的双速度控制算法,从速度控制上解决了智能车过障碍的问题。
1 设计原理
1.1 数据采集算法
检测路径参数可以使用多种传感器件,如光电管阵列、CCD图像传感器、激光扫描器等。各种检测方法都有相应优缺点,其中最常使用的方法为光电管阵列和CCD图像传感器。如何有效利用单片机内部资源进行路径参数检测,是确定检测方案的关键。
CCD传感器是一种新型光电转换器件,它能存储由光产生的信号电荷。当对它施加特定时序的脉冲时,其存储的信号电荷便可在CCD内作定向传输而实现自扫描。CCD有面阵和线阵之分,面阵是把CCD像素排成1个平面的器件;而线阵是把CCD像素排成1直线的器件。本设计中使用线性CCD作为图像传感元件。
在本设计中选用TSL1401CL线性CCD,TSL1401CL线性传感器阵列由一个128×1的光电二极管阵列、相关的电荷放大器电路和一个内部的像素数据保持器构成。该阵列由128个像素组成,其中每一个像素的光敏面积为3 524.3μm2,像素之间的间隔是8μm。该芯片操作简单,只需要一个串行输入信号和一个时钟信号即可进行数据的读取。
在CCD采集上,所采用的曝光时间自适应策略如图1所示。
从图1可看出,该曝光时间自适应策略就是一个典型的闭环控制,控制对象是线性CCD模块的曝光时间,反馈是线性CCD感应到的曝光量。调节的目标是设定曝光量。控制器的工作原理是将设定的曝光量减去实际曝光量,差值即为曝光量的偏差e,曝光量调节器用Kp乘以e再加上上次的曝光时间作为新的曝光时间进行曝光,曝光时间调整后直接影响实际反馈的曝光量,如此反复进行调节就能达到适应环境光的目的。我们的做法是取一次采集到的128个像素电压的平均值作为曝光量当量,设定的曝光量也就是设定的128像素点平均电压。
1.2 数据处理算法
在图像处理中,采用边缘检测法检测赛道。因为赛道采回图像电压值不同,白色赛道与黑色赛道边缘的交界处会出现图像的凹槽,也就是图像数值的下降沿。将CCD的128个图像点进行坐标标注,由0~127,就可以确定出两边黑线的左右值。
得到左右坐标,根据公式“中线=(左坐标+右坐标)/2”,就提取到了中线。当然还要考虑边线丢失的情况,我们采取补线的策略,如果这一时刻坐标丢失就采用上一时刻未丢失的坐标代替,这样无论在十字弯、直道、弯道还是虚线,都可以实现很好的识别与控制,适应各种不同的赛道要求。
对电机的控制上,采用传统的PID控制算法。PID控制是最早发展起来的控制策略之一。PID控制器综合了关于系统过去(I)、现在(P)和未来(D)三方面的信息,控制效果令人满意。工业控制95%以上都采用了PID结构,具有简单、鲁棒性好和可靠性高的优点。
PID算法示意图如图2所示。
其中,所采用的数字PID算法公式如下:
综上所述.在小车控制系统的闭环部分均采用了传统数字PID算法或改进型智能PID算法。
2 双速度控制算法方案设计
2.1 传统速度控制算法
由于车模的整个行驶过程是时刻变化的,在赛道构成复杂且车模运行速度很高的情况下,对于系统的响应要求很快。因此速度控制必须具有迅速、准确、响应快的特点。由PID原理知:I(积分项)的迟滞效果会让控制系统响应变慢,因此为适应直立车模高速运行下的各种不同类型赛道,放弃官方设计方案中所推荐的PI控制,而采用反应更迅速、调节速度更快的PD控制。
直立车模是双电机分别控制左右轮,并且通过左右轮的差速进行转弯。在直立车的电机控制中,PWM波的输出是由直立控制量、速度控制量与转向控制量共同组成的,即:
电机输出量=直立控制量+速度控制量+转向控制量 (1)
传统速度控制算法中控制公式为:
速度控制量=速度设定值=速度测量值=速度设定值-(左轮速度+右轮速度)/2 (2)
由上式可知,实际值为左右轮速度的平均值。得到速度控制量同时加给左右电机,即左右电机速度控制量始终相同,由此可知左右电机速度控制量始终相同。在传统速度控制算法下,转向控制量相对于速度控制量来说相当于是一种扰动量。
2.2 双速度控制算法
我们所设计双速度控制的思想如下:
左电机输出量=直立控制量+左轮速度控制量+转向控制量 (3)
右电机输出量=直立控制量+右轮速度控制量-转向控制量 (4)
因为在小车行驶过程中,小车保持直立,因此在小车直立行驶状态下,直立值为固定值,所以:
左速度控制量=没定值-左轮速度测量值 (5)
右速度控制量=设定值-右轮速度测量值 (6)
左、右轮速度值均由该轮速度控制量与转向控制量同时给定。
由此可知:
左轮速度控制量=设定值-(速度控制量测量值+转向控制量测量值)
pid控制相关文章:pid控制原理
pid控制器相关文章:pid控制器原理
电荷放大器相关文章:电荷放大器原理 网线测试仪相关文章:网线测试仪原理 激光二极管相关文章:激光二极管原理
评论