西安文理学院飞思卡尔技术报告.docx

上传人:b****6 文档编号:14199628 上传时间:2023-06-21 格式:DOCX 页数:58 大小:773.91KB
下载 相关 举报
西安文理学院飞思卡尔技术报告.docx_第1页
第1页 / 共58页
西安文理学院飞思卡尔技术报告.docx_第2页
第2页 / 共58页
西安文理学院飞思卡尔技术报告.docx_第3页
第3页 / 共58页
西安文理学院飞思卡尔技术报告.docx_第4页
第4页 / 共58页
西安文理学院飞思卡尔技术报告.docx_第5页
第5页 / 共58页
西安文理学院飞思卡尔技术报告.docx_第6页
第6页 / 共58页
西安文理学院飞思卡尔技术报告.docx_第7页
第7页 / 共58页
西安文理学院飞思卡尔技术报告.docx_第8页
第8页 / 共58页
西安文理学院飞思卡尔技术报告.docx_第9页
第9页 / 共58页
西安文理学院飞思卡尔技术报告.docx_第10页
第10页 / 共58页
西安文理学院飞思卡尔技术报告.docx_第11页
第11页 / 共58页
西安文理学院飞思卡尔技术报告.docx_第12页
第12页 / 共58页
西安文理学院飞思卡尔技术报告.docx_第13页
第13页 / 共58页
西安文理学院飞思卡尔技术报告.docx_第14页
第14页 / 共58页
西安文理学院飞思卡尔技术报告.docx_第15页
第15页 / 共58页
西安文理学院飞思卡尔技术报告.docx_第16页
第16页 / 共58页
西安文理学院飞思卡尔技术报告.docx_第17页
第17页 / 共58页
西安文理学院飞思卡尔技术报告.docx_第18页
第18页 / 共58页
西安文理学院飞思卡尔技术报告.docx_第19页
第19页 / 共58页
西安文理学院飞思卡尔技术报告.docx_第20页
第20页 / 共58页
亲,该文档总共58页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

西安文理学院飞思卡尔技术报告.docx

《西安文理学院飞思卡尔技术报告.docx》由会员分享,可在线阅读,更多相关《西安文理学院飞思卡尔技术报告.docx(58页珍藏版)》请在冰点文库上搜索。

西安文理学院飞思卡尔技术报告.docx

西安文理学院飞思卡尔技术报告

第八届“飞思卡尔”杯全国大学生

智能汽车竞赛

技术报告

 

学校:

西安文理学院

队伍名称:

beyond

参赛队员:

刘国明

孙辉

王春军

带队教师:

卢锋

关于技术报告和研究论文使用授权的说明

本人完全了解第八届“飞思卡尔”杯全国大学生智能汽车竞赛关保留、使用技术报告和研究论文的规定,即:

参赛作品著作权归参赛者本人,比赛组委会和飞思卡尔半导体公司可以在相关主页上收录并公开参赛作品的设计方案、技术报告以及参赛模型车的视频、图像资料,并将相关内容编纂收录在组委会出版论文集中。

 

参赛队员签名:

刘国明

孙辉

王春军

带队教师签名:

卢锋

日期:

2013.8.8

 

第一章引言

1.1背景介绍

飞思卡尔杯全国大学生智能车竞赛以“立足培养,重在参与,鼓励探索,追求卓越”为指导思想,涵盖了机械、模式识别、电子、电气、传感技术、计算机、自动化控制、汽车理论等多方面知识,从一定程度上反映了当代大学生综合运用所学知识和探索创新的精神。

同时该赛事是教育部高等教育司委托(教高司函[2005]201号文),由教育部高等自动化专业教学指导分委员会主办的全国性/多学科交叉、趣味性、创新性赛事,旨在加强大学生实践与团队合作精神,促进高等教育改革。

学校积极响应教育部关于加强大学生的创新意识、合作精神和创新能力的培养的号召,成立智能车队伍参加比赛。

我们积极组队参加第八届“飞思卡尔”杯全国大学生智能车比赛,多方搜索资料。

由于今年光电组改为直立平衡车,我们大量研究和参照了去年电磁组赛车的机械结构和控制算法,但由于本届平衡组指定特定型号的线性CCD作为检测并在原有赛道要素基础上增加了障碍、坡道为我们增添了很大的挑战和创新的空间。

为满足智能车在高速与急转等恶劣情况下的动力性能和稳定性能,我们参考了上届的队伍参赛经验,经过深思熟虑对整车进行了合理的重心与电路等的布局。

本技术报告主要讲述西安文理学院beyond智能车的制作历程,包括机械和硬件的设计、改装,HCS12单片机的学习和使用,控制算法的研究与应用,车模机械参数的讨论和修改等。

1.2控制简述

我们采用鲁棒性较强的PID控制算法来作为车子的主导控制。

由Freescale半导体公司的16位单片机MC9S12XS128,线性CCD传感器和角度传感器组成智能车系统。

小车通过角度传感器采集到的信号进行处理,控制电机保持直立。

另一方面,再根据线性CCD传回的信号,控制小车两个电机的差速转向使小车沿着赛道行进。

整个智能车系统包括机械设计和软/硬件设计。

机械结构设计包括车模的简化改装,CCD传感器的安装,PCB主板的固定,测速编码器的安装,倾角传感器的安装等;车体硬件系统设计包括主板的设计,测速电路的设计,电机驱动的设计等;软件系统设计包括,软件滤波处理,中断调用处理,PID控制算法处理,各个基本模块的分析及其初始化。

在制作过程中,我们重点参考了第七届竞赛秘书处的《电磁组参考设计方案》以及上一届电磁组队伍的技术报告。

在控制方案上对其进行了多项改进。

在调试时应用单片机集成的串口通信接口配合PC上的上位机给调试带来了极大方便。

结合上位机接收的线性CCD波形,我们在参照以往摄像头组光电组的循线算法基础上设计出自己的算法,识别赛道区分十字,虚线,起跑线,障碍,并针对各种情况进行算法处理的尝试,不断完善识别和处理算法,不断提高准确性和稳定性。

1.3章节介绍

第一章是引言部分,对比赛的背景意义与系统的总体方案进行简单的叙述。

第二章是基本原理部分。

第三章是机械结构与硬件的设计部分。

第四章是算法设计部分。

第五章是开发工具、辅助调试工具的说明部分。

第六章是车模的技术参数说明。

第七章是总结部分。

 

第二章基本原理

光电组比赛要求车模在直立的状态下以两个轮子着地沿着赛道进行比赛,相比四轮着地状态,车模控制任务更为复杂。

为了能够方便找到解决问题的办法,首先将复杂的问题分解成简单的问题进行讨论。

车模运动控制任务可以分解成以下三个基本控制任务:

(1)控制车模平衡:

通过控制两个电机正反向运动保持车模直立平衡状态。

(2)通过调节车模的倾角来实现车模速度控制,实际上最后还是演变成通过控制电机的转速来实现车轮速度的控制。

(3)控制车模方向:

通过控制两个电机之间的转动差速实现车模转向控制。

车模直立和方向控制任务都是直接通过控制车模两个后轮驱动电机完成的。

假设车模电机可以虚拟地拆解成两个不同功能的驱动电机,它们同轴相连,分别控制车模的直立平衡、左右方向。

在实际控制中,是将控制车模直立和方向的控制信号叠加在一起加载电机上,只要电机处于线性状态就可以同时完成上面两个任务。

车模的速度是通过调节车模倾角来完成的。

车模不同的倾角会引起车模的加减速,从而达到对于速度的控制。

三个分解后的任务各自独立进行控制。

由于最终都是对同一个控制对象(车模的电机)进行控制,所以它们之间存在着耦合。

为了方便分析,在分析其中之一时假设其它控制对象都已经达到稳定。

比如在速度控制时,需要车模已经能够保持直立控制;在方向控制的时候,需要车模能够保持平衡和速度恒定;同样,在车模平衡控制时,也需要速度和方向控制也已经达到平稳。

这三个任务中保持车模平衡是关键。

由于车模同时受到三种控制的影响,从车模平衡控制的角度来看,其它两个控制就成为它的干扰。

因此对车模速度、方向的控制应该尽量保持平滑,以减少对于平衡控制的干扰。

以速度调节为例,需要通过改变车模平衡控制中车模倾角设定值,从而改变车模实际倾斜角度。

为了避免影响车模平衡控制,这个车模倾角的改变需要非常缓慢的进行。

这一点将会在后面速度控制中进行详细讨论。

2.1车模平衡控制

世界上还没有任何一个天才杂技演员可以蒙着眼睛使得木棒在自己指尖上直立,因为没有了眼睛观察进行负反馈,当木棒在人的指尖上直立时,眼睛观察到木棒的倾斜角度和倾斜趋势(角速度),相应的通过人脑做出反应,使手掌移动以抵消木棒的倾斜角度和趋势,从而保持木棒的直立。

这就形成了反馈机制。

其反馈机制如图2.1所示。

图2.1人保持木棒直立的反馈机制

车模平衡控制也是通过负反馈来实现的,与上面保持木棒直立比较则相对简单。

因为车模有两个轮子着地,车体只会在轮子滚动的方向上发生倾斜。

控制轮子转动,抵消在一个维度上倾斜的趋势便可以保持车体平衡了。

如图2.2所示。

图2.2通过车轮运动保持车模平衡

下面对倒立车模进行简单数学建模,然后建立速度的比例微分负反馈控制,根据基本控制理论讨论车模通过闭环控制保持稳定的条件。

假设倒立车模简化成高度为L,质量为m的简单倒立摆,它放置在可以左右移动的车轮上。

假设外力干扰引起车模产生角加速度x(t)。

沿着垂直于车模地盘方向进行受力分析,可以得到车模倾角与车轮运动加速度a(t)以及外力干扰加速度x(t)之间的运动方程。

如图2.3所示。

图2.3车模运动方程

对应车模静止时,系统输入输出的传递函数为:

,此时系统具有两个极点

一个极点位于S平面的右半平面,因此车模不稳定。

车模引入比例、微分反馈之后的系统如下图所示:

系统传递函数为:

此时两个系统极点位于:

系统稳定需要两个极点位于S平面的左半平面。

要满足这一点,需要k1>g,k2>0。

由此可以得出结论,当k1>g,k2>0时,直立车模可以稳定。

在角度反馈控制中,与角度成比例的控制量称为比例控制;与角速度成比例的控制量称为微分控制(角速度是角度的微分)。

因此上面系数分别称为比例和微分控制参数。

其中微分参数相当于阻尼力,可以有效抑制车模震荡。

通过微分抑制控制震荡的思想在后面的速度和方向控制中也同样适用。

总结控制车模直立稳定的条件如下:

(1)能够精确测量车模倾角θ的大小和角速度θ'的大小;

(2)可以控制车轮的加速度。

电机的运动控制有三个作用:

(1)通过电机加速度控制实现车模平衡稳定。

(2)通过电机速度控制,实现车模恒速运行和静止。

(3)通过电机差速控制,可以实现车模方向控制。

2.1.1车模角度和角速度测量

车模倾角以及倾角速度的测量成为控制车模直立的关键。

测量车模倾角和倾角速度可以通过安装在车模上的加速度传感器和陀螺仪实现。

由于陀螺仪输出的是车模的角速度,不会受到车体运动的影响,因此该信号中噪声很小。

车模的角度又是通过对角速度积分而得,这可进一步平滑信号,从而使得角度信号更加稳定。

因此车模控制所需要的角度和角速度可以使用陀螺仪所得到的信号。

由于从陀螺仪角速度获得角度信息,需要经过积分运算。

如果角速度信号存在微小的偏差和漂移,经过积分运算之后,变化形成积累误差。

这个误差会随着时间延长逐步增加,最终导致电路饱和,无法形成正确的角度信号,如图2.3所示。

图2.3角速度积分漂移现象

消除累积误差:

通过加速度传感器获得的角度信息对此进行校正。

通过对比积分所得到的角度与重力加速度所得到的角度,使用它们之间的偏差改变陀螺仪的输出,从而积分的角度逐步跟踪到加速度传感器所得到的角度。

如图2.4所示。

图2.4通过重力加速度来矫正陀螺仪的角度漂移

利用加速度计所获得的角度信息θg与陀螺仪积分后的角度θ进行比较,将比较的误差信号经过比例1/Tg放大之后与陀螺仪输出的角速度信号叠加之后再进行积分。

对于加速度计给定的角度θg,经过比例、积分环节之后产生的角度θ必然最终等于θg。

为了避免输出角度θ跟踪时间过长,可以采取以下两个方面的措施:

(1)仔细调整陀螺仪的放大电路,使得它的零点偏置尽量接近于设定值,并且稳定。

(2)在控制电路和程序运行的开始,尽量保持车模处于直立状态,这样一开始就使得输出角度θ与θg相等。

此后,加速度计的输出只是消除积分的偏移,输出角度不会出现很大的偏差。

如下车模角度控制方案框图:

图2.5角度控制框图

2.2车模速度控制

对于直立车模速度的控制相对于普通车模的速度控制则比较复杂。

由于在速度控制过程中需要始终保持车模的平衡,因此车模速度控制不能够直接通过改变电机转速来实现。

要实现对车模速度的控制,必须测量车模的实时速度,改变车模的倾角,以及如何根据速度误差控制车模倾角。

安装在电机输出轴上的光电编码器来测量得到车模的车轮速度。

通过给定车模直立控制的设定值,在角度控制调节下,车模将会自动维持在一个角度。

在车模直立控制下,为了能够有一个往前的倾斜角度,车轮需要往后运动,这样会引起车轮速度下降(因为车轮往负方向运动了)。

由于负反馈,使得车模往前倾角需要更大。

如此循环,车模很快就会倾倒。

原本利用负反馈进行速度控制反而成了“正”反馈。

如图2.3所示。

图2.3车模倾角控制速度中的正反馈

车模的速度控制本质上是通过调节车模的倾角实现的,由于车模是一个非最小相位系统,因此该反馈控制如果比例和速度过大,很容易形成正反馈,使得车模失控,造成系统的不稳定性。

因此速度的调节过程需要非常缓慢和平滑。

2.3车模方向控制

实现车模方向控制是保证车模沿着竞赛道路比赛的关键。

通过检测道路两边黑线确定中心线偏差与电机差动控制实现方向控制,从而进一步保证车模在赛道上。

将在下面分别进行介绍。

(1)道路中心线的偏差确定

确定道路中心线简单的方法可以通过安装在车模上前方的线性CCD检测赛道两边黑线位置通过算法实现道路中心与车模中心偏差的确定。

(2)电机差动控制

利用道路中心与车模中心偏差检测信号分别与车模速度控制信号进行加和减,形成左右轮差动控制电压,使得车模左右轮运行速度不一致进而控制车模方向。

如图2.4所示。

图2.4通过电机驱动差动电压控制车模方向

 

第三章机械机构及硬件电路的设计与实现

本章节主要对车模的设计制作及硬件电路进行介绍,软件控制算法进行系统的介绍。

3.1车模机械结构的安装

车模的机械部分是整辆小车的基础,它代表着硬件架构的稳定性,影响小车行驶的性能,其重要性为小车的所有方面之最。

一旦对其进行改动将会影响以后的设计,所以一开始一个良好的机械架构将会节省很多不必要的麻烦。

因此,车模的机械性能是我们最优先所考虑的问题。

为使小车能更稳定的上跑道,必须使小车的重心降得更低,这样使小车在转弯时不会出现甩尾,今年的车模是两轮着地,小车的质量主要是来自电池,所以将电池放的越低越好。

小车的整体效果图如图3.1所示。

图3.1小车整体效果图

3.1.1线性CCD传感器

CCD传感器安放原则:

前瞻远,质量轻,宽度大。

我们选择碳纤维管作为传感器的固定支架。

碳纤维管质量轻,硬度高。

CCD感器的安放图如图3.2所示:

图3.2CCD传感器安放图

3.1.2角度传感器和陀螺仪的安放

车模在运行过程中会有强烈的晃动,如果安放太高将会对角度传感器和陀螺仪产生很大的偏差,所以我们选择将其安放在车模的中心偏上位置,这样振动小,敏感度也较高。

安装位置如图3.3所示。

图3.3角度和陀螺仪的安放图

3.1.3PCB板的安放

为使车模重心尽量低且具有向前的倾角,我们将PCB板安放在小车背面且尽量低,安放图如图3.4所示。

图3.4PCB板安放图

3.1.4速度传感器的安装

测速模块采用欧姆龙增量式光电编码器,增量式编码器安装于车的最后部分,安装时必须保证齿轮的充分啮合既不能太紧也不能太松,如图3.5所示:

图3.5编码器的安装图

3.2硬件电路的设计与实现

硬件上要做到稳定可靠,简洁高效。

本章节将对小车各模块的硬件电路进行详细的介绍。

整个智能车控制系统是由三部分组成的:

S12X为核心的最小系统板、电源模块、电机驱动电路板。

我们使用的是官方提供的S12X核心板模块,这里就不对它进行详细的介绍,为了使小车更简洁轻巧,我们在主板上为最小系统板预留好了插槽,将其他所有模块都做到主板上。

其原理图见附件1。

3.2.1电源稳压电路

图3.6稳压电路原理图

把电压为7.2V的电池经LM2940稳压后完成如下功能:

经过稳压芯片LM2940稳压后,输出5V电压为单片机以及角度传感器和光电编码器供电。

3.2.2电机驱动电路

我们采用BTS7960芯片作为电机驱动芯片。

BTS7960最大电流为43A,具有集成度高、外接电路少、内阻小等特点,因此,我们采用4片BTS7960芯片组成全桥驱动电路进行驱动。

BTS7960驱动电路图如图3.7所示。

图3.7电机驱动原理图

3.2.3测速方案选择

速度采集是闭环控制系统中必不可少的环节。

为了使得车模能够平稳地沿着赛道运行,车速要与转向配合,以保证车模在各种道路上性能稳定。

所以要实时检测当前车模速度,并根据车模在赛道上所处的情况来调整速度。

车速检测可用光电码盘、编码器、透射式光电检测和霍尔传感器检测等。

在实际运用中我们对这几种方式进行了比较发现编码器的精确度更高,因此最后我们采用了编码器对电极进行测速。

由于我们所用的芯片只有一路脉冲累加器,而需要两路测速,为此我们另一路采用CD4520累加计数并用IO读取的方法,每5毫秒采集一次并累加,控制周期为100毫秒最后以两路速度的平均值作为速度控制的输入量。

第四章软件算法的设计与实现

4.1MC9S12XS128片资源简介

MC9S12XS128微控制单元作为MC9S12系列的16位单片机,由标准片上外围设备组成,包括16位中央处理器、128KB的Flash存储器、8KB的RAM、2KB的EEPROM、两个异步串行通信接口、两个串行外围接口、一组8通道的输入捕捉或输出捕捉的增强型捕捉定时器、两组8通道10路模数转换器、一组8通道脉宽调制模块、一个字节数据链路控制器、29路独立的数字I/O接口、20路带中断和唤醒功能的数字I/O接口、5个增强型CAN总线接口。

同时,单片机内的锁相环电路可使能耗和性能适应具体操作的需要。

MC9S12XS128片内资源表如图4.1所示。

图4.1MC9S12XS128片内资源

在整个系统设计中,用到了5个单片机基本功能模块:

时钟模块、PWM输出模块、ECT模块、串口通信模块以及普通IO模块。

根据系统实际需求,对各个模块进行了初始化配置,通过对相应数据寄存器或状态寄存器的读写,实现相应的功能。

4.2软件功能与框架

软件的主要功能包括有:

(1)各传感器信号的采集、处理;

(2)电机PWM输出;

(3)车模运行控制:

直立控制、速度控制、方向控制;

(4)车模运行流程控制:

程序初始化、车模启动与结束、车模状态监控;

(5)车模信息显示与参数设定:

状态显示、上位机监控、参数设定等。

图4.2主程序框架

程序上电运行后,便进行单片机的初始化。

初始化的工作包括有两部分,一部分是对于单片机各个应用到的模块进行初始化。

这部分的代码由CodeWarrior集成环境的ProcessorExpert工具生成。

第二部分是应用程序初始化,是对于车模控制程序中应用到的变量值进行初始化。

经初始化;通过系统参数的手动调节,使系统能够按照准确的设想方式运行;然后通过线性CCD采集数据和角度传感器及陀螺仪对车模与地面的角度及角速度角度的感知,经过相应处理得出当前赛道路径和车模的信息;同时,电机测速模块测得车模当前的运行速度,反馈给系统;最后,经路径控制系统综合当前赛道路径信息和车模速度值作出相应的处理,来控制电机的运行。

初始化完成后,首先进入车模直立检测子程序。

该程序通过读取加速度计的数值判断车模是否处于直立状态。

如果一旦处于直立状态则启动车模直立控制、方向控制以及速度控制。

车模的直立控制、速度控制以及方向控制都是在中断程序中完成。

通过全局标志变量确定是否进行这些闭环控制。

中断程序框图如图4.2所示。

图4.3中断服务程序

图4.2中,使用定时器,产生一毫秒的周期中断。

中断服务程序的任务被均匀分配在0-4的中断片段中。

因此每个中断片段中的任务执行的周期为5毫秒,频率为200Hz。

将任务分配到不同的中断片段中,一方面防止这些任务累积执行时间超过1毫秒,扰乱一毫秒中断的时序,同时也考虑到这些任务之间的时间先后顺序。

这些任务包括:

(1)电机测速脉冲计数器读取与清除。

累积电机转动角度。

累积电机速度,为后面车模速度控制提供平均数;

(2)启动AD转换。

进行10次模拟量采集,然后计算各个通道的模拟量的平均值。

这个过程是对于模拟信号进行低通滤波。

(3)车模直立控制过程。

包括车模角度计算、直立控制计算、电机PWM输出等

(4)车模速度控制:

在这个时间片段中,又进行0-19计数。

在其中第0片段中,进行速度PID调节。

因此,速度调节的周期为100毫秒。

也就是每秒钟调节10次。

(5)车模方向控制:

根据前面CCD读取的道路灰度数值,根据跳变沿确定赛道边界通过转换计算车模中心与道路中心偏差数值。

然后计算电机差模控制电压数值。

4.3赛道识别与处理

4.3.1传感器简介

大赛规定参加光电平衡组的车模可以使用光电传感器、指定型号的线性CCD传感器进行道路检测,禁止使用激光传感器。

光电平衡组若采用线性CCD,需使用TexasAdvancedOptoelectronicSolution公司的TSL1401系列的线性CCD。

TSL1401线性CCD传感器包含128个线性排列的光电二极管。

每个光电二极管都有各自的积分电路,以下我们将此电路统称为像素。

每个像素所采集的图像灰度值与它所感知的光强和积分时间成正比。

如图4.4所示。

使用者需要在SI持续高电平20ns后产生第1个CLK信号,并在每个CLK信号的下降沿时采集AO引脚的输出的电压值。

在采集了128个像素后,还必须生成第129个CLK以结束本次采集。

在第129个CLK之后到下一个SI信号之间的时间就是下次采集的曝光时间(这里说的曝光时间是忽略了第19到129个CLK之间的时间)

图4.4

4.3.2传感器的安装与调整

使CCD中心尽量放在车模中心线上,考虑到对稳定性及前瞻的影响我们将CCD用碳杆加高并使车模行驶时支架与地面垂直。

在车模的调试过程中需要不断调整前瞻以适应不同的速度。

合理的前瞻加上好的参数就可以是车模行驶路径优化。

前瞻确定以后就要进行调焦,所谓调焦就是调节镜头在镜头座上的进出。

一般来说线性CCD模块的焦距是固定的,因此要想得到清晰的图像就需要通过调节镜头的进出来解决。

如果镜头拧的位置合适,则会得到得到清晰的图像,CCD输出的数据在波形上会表现的比较尖锐从而更容易找到黑线;如果镜头拧的不合适,则会得到模糊的图像,CCD输出的数据在波形上会显得比较平滑就会可能不识别或者误判。

4.3.3赛道信息的采集与处理

首先采用连续曝光法对CCD进行曝光并且根据亮度自适应曝光时间,同时将曝光时间限制在一个合理的范围内以使采集的灰度值更加合理且黑白分明。

连续曝光法是利用单片机的周期定时器来控制SI信号的间隔,即曝光时间。

该法通过设置单片机PIT的中断周期时间来获取不同的曝光时间,并在PIT中断函数内进行AO的数据采集。

对于CCD的选择,我们认为CCD的镜头选择要选择合理,我选用的是蓝宙的CCD,它有几种类型的镜头,一种是超轻聚焦镜头,这种镜头优点是前瞻足够远,我们试了,轻易就能达1米前瞻,但是有个问题是,它在分辨黑白区域时,不好很明显区别。

还有几种镜头属于大光圈的镜头:

45度,60度,81度。

我们尝试过45度大光圈镜头,效果比较好,黑白分辨也很清晰,我们用了近两个月这种镜头。

后来无意中尝试了一下81度的镜头,发现效果比45度的还好,它的波形很稳定,黑白也很容易区分,视角够大,所以不容易丢线。

所以到目前为止,我们一直选用81度的广角镜头。

选好了镜头,接下来是我们的CCD算法的介绍:

因为线性CCD提取黑线有点类似于摄像头组的面阵CCD。

通过一段时间的思考以及借鉴前人的算法。

我们最终采用了寻找跳变沿的方式提取黑线,图4.5是我们通过上位机传回来的道路信息图片:

图4.5

从图上看出,灰度大约170的属于跑道的白色区域。

灰度大约是60的属于跑道的黑色边沿及跑道外的背景,我们可以明显地看出跑道白色部分与黑色部分的灰度差值很大。

正因为如此,我们通过从中间向两边遍历的方式,找出连续3个点出现灰度相差大于某个阈值的边界,如果符合条件,那么就认为此处出现了黑线。

上图体现的是车身在直道的情况,很容易处理,那么在转急弯的时候就会出现以下情况:

图4.6

图4.7

图4.6为左边丢线情况,图4.7为右边丢线情况。

基于上图所说的丢线情况,我们采用了补线的思想,以路宽哪边丢线补哪边。

如果出现两边丢线,有可能是采集不到,或者是处在十字路段,可以分情况处理,如果图像是全白,肯定是十字部分,那么就直走。

如果全丢线后,判断上次的方向有值,那么就沿用上次的值,这样就排除了在弯道突然两边丢线而冲出去的可能。

这种方法还对虚线处理有很大作用。

因为总决赛有障碍,为了我们的车能更稳地通过障碍,我们决定运用看到障碍提前减速,前提是,先要判断出障碍。

因为大赛规定障碍时全黑的,所以我们通过检测道路的灰度来识别:

图4.8

图4.8是CCD检测到障碍时的图像,很明显,灰度很低,基本成一条直线,我们通过取点和求平均值结合的方式,判断出全为低电平,如果出现符合上述两种情况,就认为是障碍,然后我们通过迅速改变零偏,改变车子的角度,车子就很快减下速来。

过完障碍,又恢复原来的角度,车子正常往前跑。

第五章开发及调试工具

5.1开发工具

Codewarrior是Metrowerks公司开发的软件集成开发环境(简称IDE)。

飞思卡尔所有系列的微控制器都可以在codewarriorIDE下进行软件开发。

开发人员可以在不同的操作系统下使用codewarriorIDE

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高等教育 > 理学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2