基于CMOS图像传感器的路线辨别和方向控制外文翻译资料
2022-09-07 14:47:47
英语原文共 4 页,剩余内容已隐藏,支付完成后下载完整资料
基于CMOS图像传感器的路线辨别和方向控制
的智能车
1. 引言
第二届飞思卡尔杯全国大学生智能汽车比赛[1]的规则可以总结如下:跑道由很多带有黑色跟踪线的白板连接;参加比赛的选手的智能车沿着黑色轨迹走;每辆车跑两圈,在这个比赛中两圈的所花最短时间将是这辆车的最后得分,显然时间最短的团队就会获奖。按照规定,我们应该确保小车可以区分黑色跟踪线和白板,从而使智能车运行稳定。通常有两种路径识别的方法:一个是使用红外二极管作为传感器,另一个是使用CCD / CMOS图像传感器[2]。本文使用CMOS图像传感器作为路径识别传感器的原因如下:(1)由于红外二极管传感器覆盖范围远小于一个CMOS图像传感器覆盖,所以我们能做的就是用几个二极管传感器,但用于智能汽车的红外二极管传感器的最大数量是16;(2)CMOS图像传感器的工作电压(3.3V)小于CCD(12V)或16个红外二极管。显然,使用CMOS图像传感器不仅可以减少电力消耗,还扩展智能汽车的可见范围,也能使小车预测前进的道路。本文提出一种识别跑道和控制智能车行驶方向的系统性解决方案。
2. CMOS相机
目前市场上有几种CMOS图像传感器。相比与其他CMOS图像传感器,对于设计智能小车CMOS相机,从成本,性能和功耗的角度来说,由Omni Vision技术公司生产的OV6130 CMOS图像传感器[3]是我们的最佳选择。OV6130是有1/4英寸CMOS成像设备,包含大约101376像素(352times;288)的黑白传感器。这个传感器包括一个356times;292分辨率的图像组,一个模拟信号处理器,双8位A/D转换器,模拟视频多路复用器、数字数据格式化程序,视频端口,SCCB界面,寄存器,和包括时间模块、曝光控制、黑平控制和白平衡的数字控制器。通过装配实验电路我们测试了OV6130输出端口时序(VSYNC, FODD, HERF)。图1显示了实验时间图。
(a)
(b)
参考OV6130数据表,这些时间图与数据表中给出的匹配的相当好,因此我们制作了基于OV6130 CMOS相机实验电路。为了检查相机捕捉到的图像是否清晰和对比度是否高,同时也确认相机的可捕捉范围,我们设计一个用于捕获的图像并显示在电脑屏幕上的VB程序。这个项目基于三个硬件设备:CMOS摄像头,MCU或单片机和电脑。图2给出了这三种设备如何协同工作。
图2
图3比较了原始图像里的蛇形弯道和CMOS摄像头捕捉到并由VB程序显示在屏幕上的图像。可以看出,捕获的图像很清晰和很高的对比度,这为以后讨论路径识别奠定了基础。
(a) (b)
图3
3. 路线识别
智能车路径识别旨在通过将CMOS摄像头捕捉到的图片中的黑线提取出来从而帮助智能车识别前面的道路,事实上,这种方法适用在下列情况下:直线,弯道和蛇形弯。通过反复测试,我们决定分析整幅图像中的10行来预测智能车前面的道路条件。图4说明了如何通过10行像素来分析图像。
具体算法介绍如下:
步骤1:对黑色像素坐标系每一行进行分析。如图4所示,对线(L0, L1, hellip;, L8, L9)进行分析,白色的点(P0, P1, hellip;, P8, P9)对应的是每一行的黑色像素点。原点O和P9重合,这意味着L9线上没有黑色像素点。假设P(x)和P(y)为P点的x坐标和y坐标,相应的,P(x)和P(y)等于0。
这一步的关键是找到每一行的黑色像素点。在这里,通过以下数据显示所有在一条线上的像素点的灰度值为例,我们介绍一种新方法:
195 210 207 215 208 228 236 243 238 234 238 235 231 233 230 235 230 222 196 207 204 208 209 129 160 65 17 15 19 18 79 151 172 153 173 150 147 159 141 153 147 154 137 139 156 136 141 9 141 133 138 4 127 110 112 104
假设P是这条线的黑色像素,G(i)代表一个像素,i是它在这条线的位置,V(i)的灰度值是G(i),j是在这条线上从左到右第一个黑色像素点出现的位置。P(x)和P(y)的初始值为0,j 一开始的值也是 0。
对于在这一行从左到右的每个像素,把它的灰度值与与黑色值B比较,在这里我们设置B的值为30,G(i)是一个在条件是V(i)小于B的黑色像素点。在上面那一行中,以粗体下划线,灰度值是17,15,16,18的像素点组成赛道的黑色跟踪线,粗体和斜体,灰度值是9,4的像素点是无效或存在干扰的像素点。如果V(i)小于B,设置j等于i。然后V(j 1)和V(j 2)分别与B比较,结果有两个可能:①如果V(j 1)和V(j 2)小于B,从G(j 3)到这条线结束检查每个像素点的灰度值。如果白色像素的灰度值的总数大于B且超过或等于3,则设置P 等于G(j 1)。否则到步骤(3);②如果不是,从G(j 3)开始重复这种方式。
在这条线上如果没有黑色像素点,则设置P(x)和P(y)为0。
步骤2:计算10黑色像素点的平均坐标。正如在在图4中显示的,M是平均点,M(x)和M(y)表示如下:
(1)
步骤3:根据图像中M点的位置,我们可以决定智能车应该在哪个方向行驶(前、左或右)。在图4中,智能车很明显应该右转。
第四步:计算汽车应该以多少角度转弯。进一步的描述如图5所示,车应该右转的角度为alpha;,F是两个前轮的中心点,M是前面提到的平均点(见图4),D和L1分别是CMOS相机可见范围的宽度和高度,L2是可见范围和前轮之间的距离,L3前轮直径的一半,L2 L3就是可见范围和前轮轴之间的距离。参考图5,很容易计算角alpha;。
4. 方向控制
智能车的方向控制的核心模块是转向装置,它的输入信号是PWM(脉冲宽度调制)脉冲,会输出相应的角弧度。本文利用MC9S12DG128单片机的PWM输出端口[4]作为转向装置的输入信号,通过输入给定的离散脉冲的宽度,我们测试的输入和输出之间的关系。由下面的公式表达:
Y = y0 kX (2)
其中X是输出角的正切值,Y是输入脉冲的宽度,y0是输出角度为0时的对应的值,k是斜率。通过使用这种线性关系,我们可以仅仅通过输入目标角度操控智能小车,因此转向装置输入信号的脉冲宽度可以很容易计算。然而,这种方法并不适用于下列情形:弯道和蛇形弯道。因此,我们应用在自动化和控制技术领域很受欢迎的PID[5](比例、积分、微分)控制器。PID的核心理论是对输入差分进行比例,积分和微分操作,然后三个结果相加作为最终的输出值。在实践中,对我们来说可以根据控制对象的特性和要求非常灵活的使用这种控制。我们可以选择一个或两个甚至所有的PID模块,例如,我们可以使用比例和积分模块组成PI控制器。
至于智能小车,没有必要考虑已经走过的轨道,所以我们只使用比例和微分模块作为PD调节器,之前已经介绍过P调节器(见公式(2)),下面的公式介绍了D调节器:
D _out = kd times; (enew minus; eold ) (3)
其中enew ,eold 是这次和上次不同角度下计算的偏差值(这里的偏差值是指转向装置应该转的角度),t是CMOS摄像头的扫描周期,kd从0.5到1.5的微分系数,D_out是D调节器的输出。
5. 结论
这项工作的挑战是对于识别黑色路线和控制智能车的方向的一个系统性的解决方案。无论是在扫描范围上还是在电力消耗上CMOS相机的性能明显优于红外二极管,它的高清晰度和对比度对进一步识别和控制也很重要。通过反复测试,证明了智能小车上的PD调节器无论在弯道还是蛇形弯道上都适用,智能小车的稳定性也得到了提升。
智能车中的非线性前馈PID控制
1.引言
智能汽车是一个基于知觉环境基础、决策控制,自动运行的集成系统。系统涉及到模式识别、传感器技术、自动化、汽车电子、计算机、机械和许多其他学科,是一个典型的高科技复合物,具有重要的军事和民用价值。传统上,作为最早开发的控制策略之一,PID控制以其算法简单、鲁棒性和高可靠性而广泛应用于工业过程控制,特别是应用于在能够建立精确的数学模型的确定性控制系统。但智能汽车容易受到外部干扰,传统的线性PID系统不能满足高性能汽车的要求,很难获得好的结果[1]。
随着非线性PID控制器的发展,由于它的特征参数可以调整以应对控制系统,控制器本身的优越性,非线性PID控制器是可以改善智能车控制性能的新方法[2-4]。
但是智能车系统本身是一个惯性时间延迟系统,简单的采用一个通用的非线性PID控制器不能让控制系统的调节时间和速度响应达到令人满意的结果。基于非线性PID和前馈控制的分析,我们在智能汽车系统中采用了非线性PID结合前馈控制。对比模拟实验和实际应用表明,非线性PID前馈控制不仅具有高适应性和鲁棒性,而且还因为使用前馈控制缩短了调节时间和加快了反应速度。
2. 非线性PID控制结构分析
2.1 传统PID控制的缺点
传统的PID控制器的原理是利用参考输入量,偏差值以及微分和积分系数的线性组合从而生成控制信号:
(1)
其中e(t)=r(t)minus;y(t)。这种纯线性形式在相对简单实用的过程中是非常有效的。然而,它对较大的或非线性对象中参数变化范围的控制不是很有效,原因如下[3][4]:最重要的是,r(t)作为参考输入,通常不是光滑的或连续的,而y(t)作为系统输出,必须光滑。由于y(t)作为直接输出,并没有考虑到控制对象的惯性效应,这很容易导致在实际应用中的过度振动。此外,参考输入r(t)通常是非微分信号,这使得它很难获得偏差值的微分信号,即使获得了信号,因为强烈的噪声导致效果并不好。
最后,传统PID中的“线性组合”造成了高速度和超调量参数之间的冲突[2]。在实际应用程序中,我们希望三个参数可以调整以应对系统的响应过程。在最初的阶段,例如,一个更大的 KP可以提高系统的响应速度,但随着e(t)的减少,我们希望KP可以相应地减少,从而降低超调量。当e(t)lt;0和de(t)/dt gt;0时,我们希望KP将逐渐增加,以通过逐渐增加的反向效应来减少超调量。当e(t)lt;0和de(t)/dt lt; 0时,我们希望KP会逐渐减少,所以,当系统回到平衡状态时没有很大超调量。然而这一点线性PID是不可能的。
智能车系统中,道路的类型是未知的,这涉及很多可能性:直线,S曲线,小S曲线,环线,等等。为了确保汽车不出赛道比赛并能最快完成的前提下,智能控制系统必须具有很强的适应性,这就需要控制系统参数根据相应状况变化。然而,如果只使用线性PID控制器,PID调节参数将是一个恒定值。它将在保证速度和稳定性的情况下很难满足控制器的系统需求。同时,在实际控制的智能汽车的过程中,我们发现通过PID线性微分信号的方法直接得到微分de(t)/dt的偏差值——这种不连续和无关值偶尔出现在运行的过程中。因此这种方法有一些缺陷,这使得我们有必要找到一个新的控制方法来满足系统的控制需求[5]。
2.2 非线性PID控制原则
线性组合是造成超调量和高速度之间的矛盾的原因。在非线性控制,为了解决这一矛盾,有必要摆脱数学模型的约束。文献[3]提出了一个非线性模块,其函数公式(2)所示:
(2)
(3)
f(e, alpha;, delta;)是一个具有更大范围的非线性特征函数. e是误差信号,delta;的大小决定了函数f(e, alpha;, delta;)的线性范围,alpha;决定了非线性函数的形状。因此,我们可以得到非线性PID的特定形式的控制规律[6-8]:
(4)
其中f()是偏差反馈速度,KP是偏差值增益,KI是偏差值积分增益,KD是偏差值微分增益。当参考输入量r(t)和控制量y(t)作为系统的输入,控制器提供了控制量u(t),其中包含6个参数:alpha;0, delta;0, alpha;1, delta;1, alpha;2, delta;2。至于比例环节,当误差很小时,我们使用大增益。相反,我们使用小增益。为了满足需求,fP(eP, alpha;0, delta;0)在公式(4)中使用0lt;alpha;0lt;1。delta;0 应该适当地小,所以我们使用0.4。至于积分环节,为了避免积分饱和的情况下,在公式(4)中fI(eI, alpha;1, delta;1)里我们可以使用-1lt;alpha;1lt;0。delta;1 是和积分参数相关的步骤。经过仿真比较,我们使用0
剩余内容已隐藏,支付完成后下载完整资料
资料编号:[146622],资料为PDF文档或Word文档,PDF文档可免费转换为Word