收藏 分销(赏)

直立式光电智能车的设计与实现-毕业论文.doc

上传人:胜**** 文档编号:2083233 上传时间:2024-05-15 格式:DOC 页数:38 大小:2.49MB 下载积分:10 金币
下载 相关 举报
直立式光电智能车的设计与实现-毕业论文.doc_第1页
第1页 / 共38页
直立式光电智能车的设计与实现-毕业论文.doc_第2页
第2页 / 共38页


点击查看更多>>
资源描述
本 科 毕 业 设 计(论文) 题 目:直立式光电智能车的设计与实现 2015年 6月14日 中国石油大学(华东)本科毕业设计(论文) 直立式光电智能车的设计与实现 摘 要 本文以飞思卡尔杯智能车竞赛为背景,完成了直立式光电智能车的机械和硬件结构设计,并研究了不同赛道的图像处理算法。智能车以MKL26Z256VLL4单片机为控制核心,采用TSL1401线性CCD采集图像,并对二值化图像进行了低通滤波,通过边沿检测算法识别赛道的黑白边沿,求出中心偏差后作为转角的控制量。为方便调试,在智能车上还设计了OLED液晶显示和蓝牙通讯模块,通过无线通信实现上位机实时图像显示、参数曲线显示和在线调整功能。实验证明小车可以准确识别赛道,并能保持平稳快速运行。 关键词:图像处理;线性CCD;边沿检测;控制周期 The design and implementation of upright photoelectric smart car Abstract According to the requirement of photoelectricity group of Freescale smart car competition, the mechanical structure and hardware of the smart car was completed to improve stability and the image processing algorithms was designed. Based on the microprocessor MKL26Z256VLL4 and TSL1401 Linear CCD, the smart car could successfully identify the black line by edge detection algorithms after low-pass filtering of image. Then the track center line could be obtained and direction control value could be calculated. The smart car was also equipped with OLED and Bluetooth communication module used to transfer images and state data to computers. The parameters of running car could also be changed with software we designed. It made the debugging process more effective. Tests showed that the smart car could identify different tracks and run quickly and stably. Keywords:Image processing; Linear CCD; edge detection;Control period 目 录 第1章 引言 1 1.1 智能车大赛概况 1 1.2 光电组智能车 1 1.2.1 光电组智能车的路径检测原理 1 1.2.2 光电平衡组智能车的优缺点 1 1.3 系统整体构想 2 第2章 系统硬件电路设计 3 2.1 硬件电路整体架构设计 3 2.2 系统主板电路设计[] 3 2.3 系统电源电路设计 4 2.4 电机驱动电路设计 4 2.5 线性CCD原理介绍 5 2.6 蜂鸣器电路设计 6 2.7 电源地的划分 6 2.8 硬件电路部分总结 7 第3章 车模机械布局架构与结构调整 8 3.1 机械部分总体概述 8 3.2 线性CCD布局与安装 8 3.3 电池、电路板等部分的固定 9 3.4 3D模型设计 10 3.5 角度传感器安装 11 第4章 软件系统设计 12 4.1 开发工具 12 4.2 软件控制的总体思路 12 4.3 主程序设计 13 4.3.1 主程序结构 15 4.4 上位机设计 16 4.4.1串口调试工具 16 4.4.2 上位机 16 4.5 角度控制 17 4.5.1 互补滤波 17 4.5.2 角度闭环控制 19 4.6 速度控制 19 4.7 方向控制 20 4.7.1图像二值化 20 4.7.2 图像滤波 21 4.7.3 赛道元素识别 22 4.7.4 电机差动控制 26 4.8 软件部分总结 27 第5章 智能车调试实验 28 5.1 硬件部分调试 28 5.1.1 电源模块调试 28 5.1.2 电机驱动模块调试 28 5.2 软件部分调试 28 5.2.1 静态参数调试 28 5.2.2 动态参数调试 29 5.3 小结 30 第6章 总结与展望 31 6.1 总结 31 6.2 展望 31 致 谢 32 参考文献 33 第1章 引言 第1章 引言 1.1 智能车大赛概况 全国大学生“飞思卡尔”杯智能汽车竞赛起源于韩国,目前在国内已经发展到第十届。随着前九届大赛的成功举办,也陆续培养出一大批工程开发人才。竞赛秘书处每次大约在第一年的11月份左右提出比赛规则,分区赛比赛在第二年的7月份左右。在分区赛当中成绩优秀的队伍可以获得8月份总决赛的参赛资格。参赛选手需要历经超过半年的调试才能完成一辆优秀的模型车,极大地锻炼了选手的耐心。 参加智能汽车竞赛的参赛选手,须使用竞赛秘书处指定的车模,使用飞思卡尔半导体公司的微处理器作为核心处理器控制器,参赛选手需要在车模上增加传感器来识别路径,设计电机驱动电路,编写调试下位机与上位机软件,最终实现一个可以运行的汽车模型,完成时间最短者为优胜。该竞赛的涉及内容广泛,涵盖了模式识别、控制、机械等学科的知识,增强了学生的动手能力和团队协作意识。 1.2 光电组智能车 1.2.1 光电组智能车的路径检测原理 光电智能车是基于光的漫反射原理来检测路径的。光线照到白色赛道反射回来的光线强,而黑色赛道反射回来的光线弱(如图1-1所示),通过反射回来的光线强弱来识别赛道情况。 (a) (b) 图1-1 光线射到不同背景的反射情况 (a)光线射到黑色背景情况;(b)光线射到白色背景情况 1.2.2 光电平衡组智能车的优缺点 光电平衡组智能车优点:生产成本较低、电路简单、信号处理速度快、响应快速、功耗较低等。 光电平衡组智能车缺点: 前瞻容易受到车模角度变化影响,在车模高速运行时表现明显; 车模两轮直立行走,速度控制建立在车模直立基础上,速度控制周期相对较长,响应缓慢; 车模中心较高,高速过弯时容易翻车; 得到的图像只是一条直线上的信息,空间分辨率低,数据量少; 加速度计和陀螺仪噪声对角度滤波算法容易产生影响。 1.3 系统整体构想 模型车以加速度计和陀螺仪作为角度融合传感器,以6ms为周期控制车模直立,以两个高精度编码器作为测速传感器,以60ms为周期控制车模速度,以线性CCD作为道路信息传感器,以12ms为周期获取、处理赛道信息并控制左右电机差速,在保持车模直立以及速度稳定的基础上进行转向控制,以使平衡车始终行驶在赛道中央。 单片机综合考虑各种赛道信息,进行小车实际位置的计算。在单片机软件的编写上,需要使平衡车在赛道上运行时尽可能保持车模角度稳定,速度稳定。对角度控制采用了比例微分[[] 胡寿松. 自动控制原理[M].北京:科学出版社,2007:30-150. ]控制,对于速度控制采用了积分限幅比例积分控制算法,转向控制采用比例微分控制算法,配合不完全微分[[] 郑伟鸿,郑顺杰,陈观淡.厦门大学至致远队技术报告[R].2013:31-32. ]以及防偏差跳变。 32 第2章 系统硬件电路设计 第2章 系统硬件电路设计 2.1 硬件电路整体架构设计 3.3V 5V MKL26Z256VLL4 5V 3.3V 电 源 管 理 模 块 加速度计、陀螺仪传感器模块 双线性CCD 3.3V 测速模块 液晶、蓝牙 直流电机 电机驱动模块 7.2V 图2-1 系统框图 系统整体结构(如图2-1所示)。 2.2 系统主板电路设计[[] 韩国栋,月飞,娄建安. Altium Designer Winter 09电路设计入门与提高[M].北京:化学工业出版社,2010:1-100. ] 主板电路主要有电源接口、单片机最小系统板插座,线性CCD插口,AD端口,陀螺仪、加速度计、液晶蓝牙插口,电机驱动接口,编码器接口等(如图2-2所示)。 图2-2 系统主板电路设计 2.3 系统电源电路设计 稳定的系统首先需要电源稳定,系统中有三路电源,8.0V,5V,3.3V。8.0V电池电压直接接到电机驱动模块,5V为测速编码器、线性CCD供电,3.3V给单片机、陀螺仪、加速度计、液晶、蓝牙、蜂鸣器供电。 采用了一片TPS7350[[] 王明顺,沈谋全. Power Design of Intelligent Vehicle Based on TPS7350[J].东北大学信息科学与工程学院.2006,(24):1-5. ]为两个线性CCD供电,TPS7350为微功耗低压差线性稳压芯片。 使用一片低压降串联稳压芯片LM2940将电源电压8.0V稳到5.0V,作为两片电源芯片TPS7333的输入电压,避免TPS7333的前后压差太大。同时LM2940还要为两个编码器供电。 用一片TPS7333单独为单片机最小系统供电,另一片TPS7333为陀螺仪、加速度计、液晶、蓝牙、蜂鸣器供电。 系统电源原理图如图2-3所示。 (a) (b) (c) (d) 图2-3 系统电源原理图 (a)TPS7350 5V稳压;(b)LM2940 5V稳压;(c)TPS7333 3.3V稳压;(d)TPS7333 3.3V稳压 2.4 电机驱动电路设计 我们使用驱动芯片BTN7971搭建H桥来控制电机正反转,硬件电路简单,控制调试方便。 光电平衡组智能车有两个直流电机,所以我们采用4片BTN7971,每两片控制一个电机(如图2-5所示),用四路PWM控制电机正反转。BTN7971的内阻比较小,驱动电流可达七十安,运行过程中发热量较少,符合智能车比赛要求。 图2-4 电机驱动模块原理图 2.5 线性CCD原理介绍 TSL1401线性CCD是本次比赛官方指定传感器,它由128 个光电二极管的线性阵列组成。照射在光电二极管上的光的能量产生光电流,相关像素点上的有源积分电路对这些光电流进行积分。在积分期间,积分器的输出通过一个模拟开关连接到采样电容。在每个像素中积累的电荷量与光强度和积分时间成正比。积分器的输出和复位由一个128 位的移位寄存器和复位逻辑控制。 图2-5 线性CCD驱动时序图 对于线性CCD模拟信号的采集,我们采取的方法是用单片机两个普通IO端口PTE20、PTE21驱动两个CCD的两个SI和两个CLK引脚,采用两路AD端口PTE16、PTE17分别连接线性CCD的模拟输出AO口,既节省了单片机端口资源,在进行模拟信号采集时也会节约时间。 2.6 蜂鸣器电路设计 蜂鸣器的作用在于验证单片机程序是否运行到指定的位置,对于软件调试起到非常重要的作用。 采用贴片式SS8050三极管作为驱动三极管,具有体积小、重量轻、电流大等优点。电路图如图2-6所示。 图2-6 蜂鸣器电路原理图 2.7 电源地的划分 我们还对电路中的地进行了划分[[] 张强,刘运发,张文斌.中国石油大学(华东)石大摄像头一队技术报告[R].2014:13-14. ],分为驱动地(PGND)、模拟地(AGND)和数字地(GND)。在电路中驱动地和模拟地通过磁珠相连,数字地和模拟地通过零欧姆电阻相连,既保证电位的相等,又能使彼此的干扰降到最小。具体电路如下图所示。 图2-7 电源地的划分 2.8 硬件电路部分总结 硬件电路部分,我们在前人的基础上做了一些尝试,也出现了若干问题。 尝试在通往驱动的电源上串联一个470uf的电感,因为电感阻碍电流的变化使得平衡车在扰动下站不起来站得很软,最后把电感剪掉,用焊锡将焊盘连接到一起解决了问题。 为了防止焊接过程中发生短路,将PCB敷铜密度规则设置为线宽的两倍,没有注意到铜被分割了,导致LM2940的地没有和其它地连接在一起。 调试过程中因为粗心大意导致PCB短路,造成一个编码器的地与PCB断开并烧坏了一个编码器,最后只能通过铁丝将地线连接在一起。 各个电子元器件的布局,杜邦线插针和插排的位置也非常重要,关系到板子的简洁和机械结构重心的合理性,插线横跨位置尽量少。 第3章 车模机械布局架构与结构调整 第3章 车模机械布局架构与结构调整 3.1 机械部分总体概述 平衡组智能车要求重心尽量放低,行驶过程中转动惯量要小,车模的平衡角度取决于各个部件的安装位置和重量,必须保证结构稳定牢固。好的机械结构是车模进一步提速的基础,对于平衡组小车来说尤其重要。我们对车模机械的调整都是为了使车模重量减轻,重心降低,齿轮咬合既不宽松也不紧密,小车行驶顺滑流畅。 3.2 线性CCD布局与安装 图3-1 线性CCD支架立杆位置示意图 图3-1是车模CCD支架立杆与地面的数学几何图。讨论立杆与地面夹角的变化对车模前瞻的影响,对、两个变量进行定量分析,得出关于、的函数。 由正弦定理式(3-1)和式(3-2) (3-1) (3-2) 联立(3-1)和(3-2)得式(3-3) (3-3) 对式(3-3)对关于求偏导得式(3-4) (3-4) 由式(3-4)可得:当时,最小,此时小于90度。由此可知,线性CCD采集行与CCD立杆间的夹角为90 度,且立杆前倾时,平衡车行进过程中车身的晃动对图像稳定性的影响最小。 根据今年的新规则,平衡组小车需要爬过坡度不超过15度,高度不限的的对称坡道和不对称坡道,由于线性CCD采集信息局限,这时可能会造成小车看得很远致使视野变花,造成小车冲出跑道,所以我们采取两个线性CCD竖直摆放,用下面的CCD进行坡道辅助识别,效果明显。 采用PVC支架将线性CCD紧紧固定在直径5mm长约35mm的碳素杆上。为保证碳素杆不会在小车运行过程中摇晃,我们使用三个短碳素杆和热熔胶,采用三脚架结构将竖直碳素杆牢牢固定在车身上。最终确定CCD安装位置如图3-2所示。 图3-2 CCD安装位置 3.3 电池、电路板等部分的固定 电池和电路板是车模上重量较大的物体,它的安装位置决定了小车的平衡角度,转动惯量大小,进而影响小车在运行过程中的流畅程度和极限速度。我们将电池和电路板安装在小车前方,两者紧紧贴合,保证重心尽可能的低。电池使用厚度3mm的PVC支架托在车模前方,安装稳固。 mini编码器安装在车模车身上方,轮轴上方,使用塑料支架和螺丝固定在车身上,并保证齿轮咬合恰到好处。 图3-3 电路板编码器电池安装位置 3.4 3D模型设计 小车的直立要求机械结构绝对合理稳定,结合我们小车的特点,我们用Solidworks为小车量身设计了电池固定带、编码器支架、CCD固定支架,用学院3D打印机制作出来。模型设计如图3-4所示。 (a) (b) (c) 图3-4 3D模型 (a) 电池固定带;(b)编码器支架;(c) CCD固定支架; 3.5 角度传感器安装 加速度计安装在车模上,车模运行震动对它的影响比较大,所以我们将加速度计安装在车模底部中间,尽量减少车模震动对它的影响。 图3-5 加速度计安装位置 为保证陀螺仪的水平安装以及测量精度,我们沿着车模固有的水平轮廓线将陀螺仪传感器安装在车模上方中间。 图3-6 陀螺仪安装位置 第4章 软件系统设计 第4章 软件系统设计 4.1 开发工具 我们使用的开发环境是IAR Embedded Workbench,IAR Systems是全球领先的嵌入式系统开发工具和服务的供应商。IAR Embedded Workbench是一套完整的集成开发工具集合,包括从代码编辑器、工程建立到C/C++编译器、连接器和调试器的各类开发工具。功能强大,支持在线调试,可以应用到多种处理器。 图4-1 IAR软件界面 4.2 软件控制的总体思路 平衡车的软件控制首先要求保持车模直立不倒,然后加入速度控制和方向控制,它们对角度控制的影响要要尽可能的小。 下面首先介绍单片机的中断时序设计和信号采集设计,进而分别介绍控制所用算法。 4.3 主程序设计 直立控制 电机输出 系统初始化 开始 参数定义 开中断 速度控制 路径分析 方向控制 (a) 时间片段1: 读入加速度计数值 时间片段2: 读入上下陀螺仪数值 角度互补滤波 角度控制 电机输出 时间片段3: 进行10次计数每次平滑输出控制量 第10次计数:读入编码器脉冲数值速度控制 时间片段4: 进行2次计数每次平滑输出控制量 第1次计数:线性CCD图像处理 第2次计数:读入转向陀螺仪数值方向控制 1.5ms中断进入 1.5ms中断退出 (b) 楔形障碍 直角 双边沿赛道 单引导线 路径分析 方向控制 双边沿赛道对应参数及算法 直角对应 参数及算法 单引导线对应 参数及算法 楔形障碍对应 参数及算法 返回偏差值 (c) 200ns中断进入 时间片段1: SI置1 时间片段2: CLK置1 时间片段3: SI置0 时间片段4-259: 偶数次: AD1采集 AD2采集 CLK反转 奇数次:不做动作 时间片段260: CLK置0 计数清零 200ns中断退出 (d) 图4-2 主程序结构示意图 (a) 主程序流程图;(b)PIT0中断处理;(c)路径分析方向控制;(d)PIT1中断处理; 4.3.1 主程序结构 平衡车的平稳直立和恒速运行需要严格的控制周期,将所有程序都放在了定时器中断里面,保证直立,速度,方向之间的相互影响尽可能的小。陀螺仪和加速度计数据的读入均通过单片机I2C总线进行,使用示波器实际测量陀螺仪和加速度计采集时间,测得分别耗费时间1.2ms左右,为了保证采样的快速性和在中断时间内采样完成,将定时器PIT0中断配置为1.5ms,在定时器PIT0里面完成的任务有: 第一个1.5ms采集加速度计加速度信号; 第二个1.5ms采集陀螺仪角速度信号,进行角度融合,角度控制,电机输出; 第三个1.5ms进行方向控制,方向控制量2次平滑输出; 第四个1.5ms进行速度控制,速度控制量10次平滑输出。 在调试过程中发现,线性CCD采集的图像存在不稳定跳动。经过分析,原因是线性CCD采样放在主循环里面,一次时序完成需要耗费4.5ms左右,在这期间会被定时器0中断打断2-3次,影响CCD若干点采样的曝光时间。所以配置了第二路定时器PIT1,由于MKL26只有PIT0和PIT1两个定时器通道,两个定时器共用一个中断号,两个中断任务写在一个函数里面,并且写在前面的标志位对应的任务优先级要高。在PIT0中每6ms开一次PIT1定时器中断,当再次进入PIT服务函数时会进入PIT1中断,定时器1中断时间为200ns,模拟线性CCD输入端SI、CLK采样时序电平,采样电平同时对两路CCD提供驱动信号,在260次PIT1中断完成后,实现了对两路CCD数据的采集,此时关闭PIT1中断[[] 姚成文,苏晨光,顾竟潇.天津大学光电平衡组SpeedTime技术报告[R].2013:29-37. ]。 4.4 上位机设计 4.4.1串口调试工具 利用蓝牙模块可以将车模的角度、车速和偏差等数据无线发送到上位机,供在线调试和数据离线分析,加快调试进程。 图4-3 蓝牙模块 4.4.2 上位机 直立车有较多的参数需要调试整定,设计了一个基于C# winform[[] Karli Watson, Jacob Vibe Hammer, Jon D.Reid, Morgan Skinner, Daniel Kemper, Christian Nagel, 齐立波,黄俊伟,黄静.C#入门经典(第6版)[M].北京:清华大学出版社,2012:10-100. ]环境下的上位机,对小车参数进行在线传送和参数观测,下位机中则根据既定的协议配置串口接收中断。 图4-4 上位机面板 利用上位机软件的数据保存功能对智能车的速度,角度,图像等进行保存,采用matlab对数据进行绘图显示,方便离线分析。 4.5 角度控制 4.5.1 互补滤波 平衡车需要通过车身角度来维持车身平衡,角度的测量对平衡车极其关键,常用的用来测量角度的传感器有加速度计和陀螺仪。加速度计的特点是动态响应较慢,由于机械振动原因,加速度计测量信号会在实际值附近出现大波动,在高频段信号不可用。陀螺仪的特点是响应快,积分后可测倾角,不过由于零漂和温漂,会出现积分漂移[[] Nagel D J. MEMS:Micro technology[J].IEEE Circuits & Device, 2001:17(2):14-25. ],在低频段信号不好。通过低通滤波抑制加速度计高频噪声,通过高通滤波抑制陀螺仪低频噪声,这就是互补滤波。图4-5是互补滤波器的图形表达。 角度 角速度 低通滤波器 数值积分 高通滤波器 Y X 加速度计 陀螺仪 图4-5 互补滤波器 互补滤波将陀螺仪和加速度计的优点融合起来,得到在高频和低频都比较好的信号。互补滤波相比较卡尔曼滤波[[] Kalman, R.E. A New Approach to Linear Filtering and Prediction Problems. Transaction of the ASME-Journal of Basic Engineering[D]. 1960, 20(10):4-8. ]的优点是不需要对噪声精确建模,实现简单。互补滤波的程序实现如式(4-1)。 angle = Q*(angle + gyro * dt) + R*(x_acc) (4-1) 其中angle是滤波后的角度,Q可以理解为陀螺仪占的比重,gyro是陀螺仪测得的角速度,dt是采样时间,R为加速度计占得比重,R与Q的和为1,R>0,Q>0,x_acc是加速度计测得的倾角。本系统采样时间为dt=0.006s。 在小车开机后还没有开始运动时,因为此时加速度计测得的角度扰动比运动过程中因为电机、车模震动带来的扰动要小得多,所以在电机还没有开始转动之前让加速度计占得比重大一些,让滤波后角度快速跟踪加速度计的输出。经过调试取Q=0.5,R=0.5,如图4-6所示,滤波后角度能够及时跟踪加速度计输出。 图4-6 平衡车开机静止初期加速度计和滤波后角度对比图 在小车运动过程中,合适的加速度计比例可以滤除加速度计的波动影响,同时也能有效抑制陀螺仪的漂移,这个比例值比小车静止时的比例值要小。经过调试取Q=0.995,R=0.005。滤波效果不错,如图4-7所示。 图4-7 平衡车运动过程中加速度计和滤波后角度对比图 4.5.2 角度闭环控制 角度采取PD控制,保持小车在静止和运行过程中的角度恒定,PD参数调整好之后,小车的角度控制平滑,整体上小车站得比较硬,没有大的突变。 4.6 速度控制 通过控制电机转速可以控制车轮速度,实现车模运行速度控制。 在平衡组的速度控制中,最终是通过角度控制改变车模速度,简单形容则为前倾加速、后倾减速。程序中的速度环实际上是对小车角度控制的扰动,我们进行PI控制的目的是使该扰动在小车运行过程中保持稳定快速,这和普通速度控制有些类似。但所不同的是,由于小车速度控制是对角度控制的扰动,为使此扰动不至于变化太大影响车模稳定直立,需要设置速度控制周期比角度控制周期长,但是速度周期过长又会使速度调节缓慢。参考官方方案[[10] 第七届全国大学生飞思卡尔杯智能汽车竞赛电磁组直立行车参考设计方案(版本2.0)[R].竞赛秘书处,2012:1-108. ]的100ms,调试初期我们采用了120ms,后来缩短到96ms,再后来缩短到60ms,通过不断调节角度PD参数使小车在运行过程中保持稳定。 综合考虑扰动和响应快慢,速度控制周期设为角度控制周期的10倍,即60ms。 小车在运行过程中要使速度尽快到达设定值并保持速度稳定,以减少对小车角度的干扰。对于小车速度,速度调节采用PI控制,对速度积分项进行限幅,最终速度控制量输出也要进行限幅。 4.7 方向控制 通过线性CCD返回的图像信息,运用路径识别算法得到车模的中心偏离赛道中心的偏差,通过控制算法与电机差动控制结合实现方向控制。线性CCD路径识别算法主要涉及两部分,一是图像的二值化和滤波处理,二是各种赛道的识别,最后得出小车转向的偏差。 4.7.1图像二值化 由于线性CCD是模拟传感器,其传感器信号为电压值,电压值的大小反映的是传感器所看到环境的亮暗程度。一方面,传感器本身的信号稳定性极其重要,它是识别的基础;另一方面,对信号在各种环境下进行处理,通过软件程序使其能够分辨白色和黑色,增强其环境适应性极其重要。采取固定阈值二值化,仅限于在光线特别理想均匀的地方。对于智能车比赛场地,光线往往不是最理想状态,有亮的地方也有比较暗的地方,在这种情况下采取固定阈值二值化很容易发生误判。 经过不断实验和数据观察,我们最后采取动态阈值二值化。具体步骤是首先开机取环境基准阈值,对每行的最大值和最小值取平均,连续10次后,求得环境基准阈值THRES。车模开始运行后对每行求取最大值和最小值,比较最大值和最小值的比值,如果最大值比最小值的1.6倍要小并且最大值小于环境基准阈值THRES,则认为是全蓝;其他情况如果最大值比最小值的1.6倍要小,则认为是灰度值差别不大的全白,采取上一次的动态阈值对此行进行二值化,如果最大值比最小值的1.6倍大,则该行的阈值是最大值和最小值的平均值。用阈值对每行数据进行二值化,如果数据大于阈值,则将数组Pixel[i]=255,否则Pixel[i]=0。二值化流程如图4-8所示。 YES YES 开机 求取每行最大值max、最小值min max<1.6*min max<THRES 全蓝,不进行二值化 最大值与最小值差别比较小,采取上一次阈值二值化 NO NO 最大值与最小值差别大,用0.5*(max+min)作为阈值进行二值化 取10次每行的最大值、最小值的均值作平均为基准阈值THRES 图4-8 二值化流程 4.7.2 图像滤波 车模在运行过程中CCD得到的数据具有噪声,本文主要考虑了两种滤波方法,高斯滤波和低通滤波。高斯滤波也是低通滤波,用在图像二值化以前;低通滤波也就是去除高频噪声,如两个黑点中间夹一个白点,用在二值化之后。 高斯滤波是一种线性平滑滤波,用于消除高斯噪声,广泛应用于图像处理的减噪过程。高斯滤波就是对整幅图像进行加权平均的过程,每一个像素点的值,都由其本身和邻域内的其他像素值经过加权平均后得到。 高斯滤波的具体操作是:用一个模板扫描图像中的每一个像素,用模板确定的邻域内像素的加权平均灰度值去替代模板中心像素点的值。 由于线性CCD为一维数据,我们实验采取大小为3×1的模板,采取中间点权重0.8,两边点权重0.1,计算公式如式(4-2)。 (4-2) 其中,为图像中点的灰度值,为该点经过高斯滤波后的值。 采取matlab对原图像数据进行仿真,效果图如图4-9所示。 图 4-9 原始图像灰度值与高斯滤波后图像灰度值 低通滤波器,在灰度连续变化的图像中是比较有效的,二值化后的图像将是成片的白色或者成片的黑色。如果两个相同颜色像素点之间出现一个不一样颜色的像素点,比如说一片暗区中突然出现了一个白点,这种情况被认为是一种噪声。利用低通滤波器可以减少图像噪声。具体实现代码如下 for(i=0;i<=125;i++) if(Pixel[i]!=Pixel[i+1]&&Pixel[i+2]!=Pixel[i+1])Pixel[i+1]=Pixel[i]; 最终我们只采用了低通滤波来滤掉小车运行过程中的图像干扰,效果满足智能车运行要求。 4.7.3 赛道元素识别 赛道元素的识别是建立在赛道具有连续性的基础上实现的。图4-10是一些典型赛道的原始图像和二值化后图像。 (a) (b) 图 4-10 双线元素 (a) 直道和全白;(b)右转弯和左转弯; 赛道识别流程如图4-11所示。 NO 开始 是否为全蓝 是否Bluestart=1 从上一次中心PixelCenter寻找边沿 返回上一次偏差 Bluestart=1; YES NO YES NO PixelCenter>=64 YES 寻找右边沿 是否找到 寻找左边沿 Bluestart=0; 返回偏差 NO 返回上一次偏差 是否为障碍 YES 是否为直角 NO NO 是否为左拐直角 右拐保持 NO 是否寻找到双边沿 YES YES 左拐保持 NO YES 是否为单引导线 YES 返回偏差 NO YES 图 4-11 赛道识别流程 第十届智能车比赛加入了直角元素,在数学上它属于连续但不可导的,不同于之前的连续又可导的双边线赛道,因此直角元素需要特殊识别一下。我们的识别方法首先判别直角元素前面是直道,之后如果是左边(右边)全白,触发可能会是左(右)拐直角条件,然后如果连续6-7次左(右)全白即认为是左(右)拐直角,左(右)拐直角标志置位,左(右)转向保持,直到双边沿寻到为止才清左(右)拐直角标志。 因为平衡车在运行过程中角度会发生变化,导致视角的不同,看相同宽度的东西像素值所对应的宽度差别比较大。因此根据绝对宽度判别楔形障碍容易发生漏判或者误判。我们根据相对宽度为主,绝对宽度为辅的方法判别楔形障碍:观察当小车看到楔形障碍时的图像特征,如果障碍在赛道左侧,障碍侧有一段小白,右边相邻的是障碍的黑色,右边相邻的是赛道的白色。它们的宽度满足W1>20,W1<60,W2>10,W1>2*W2,W3>3,W3<W2,其中W1是白块的长度,W2是障碍的宽度,W3是小白块的宽度。 图 4-12 楔形障碍 第十届新加入的单引导线背景有多种方式,其中最典型的是单引导线铺在普通双线赛道中间和铺在白色白板上。对于铺在普通双线赛道中间的单引导线,识别之后需要往左往右扫一下左右黑边沿是否同时存在,然后沿着最后的左右边沿求出的赛道偏差运行。对于铺在白色白板上的单引导线,因为这个白色背景是在两个双边沿赛道的衔接处,所以当小车在白色背景上运行时,需要保证小车做好衔接工作,不能跑出去。因此标志位置1之后清零的标志是双边沿已经寻到,并且宽度合适。 图 4-13 单引导线 4.7.4 电机差动控制 利用计算方向所得偏差经过比例微分算法分别与车模速度控制信号进行加和减,形成左右轮差动控制电压,使得车模左右轮运行角速度不一致进而控制车模方向。 通过简单的比例控制可以初步实现方向控制。通过左右电机速度差驱动车模转向消除车模偏差是一个积分过程,因此车模差动控制不需要进行积分控制。由于车模本身安装有电池等比较重的物体,具有很大的转动惯量,为了抑制车模在拐弯过程中出现过冲摆动现象,引入陀螺仪的水平转向角速度加入微分作用,使车模不会发生摆动,转弯流畅。 为了减少小车方向控制对角度控制的影响,方向控制周期设为角度控制周期的2倍,即12ms。 在调试过程中出现了若干问题,其一是小车在过直角元素和十字弯道里面容易滑行,速度减慢不流畅,分析原因是因为两种赛道元素的偏差突变比较严重,导致小车转向不连续,进而影响角度和速度控制,所以需要软件处理一下,将赛道的连续性考虑进去,防止偏差跳变。 4.8 软件部分总结 软件的调试就是一次一次想算法,不断实验、改进和排除错误的过程。调试过程中需要根据经验来判断哪里存在问题。CCD信号采集需要稳定的周期,不能被其它中断打断;同时调试过程中需要串口发送CCD数据,如果发送与CCD采集是顺序关系,会改变CCD曝光时间,就是此时所得到的数据不是小车真正运行时看到的图像。控制参数的调整也非常重要,它们是平衡车直立稳定的基础。小车角度设定值要是小车保持静止时的角度,大了会造成小车超速,小了会造成小车加速缓慢。小车运行过程中不能站得太软否则角度会波动较大,速度积分限幅非常重要,太小小车不能达到设定速度,太大则容易造成波动。小车转向需要用到水平陀螺仪角速度,需要确定小车的水平轴具体是什么。调试初期我们用的是小车的陀螺仪Y轴作为转向轴,经过实测才发现水平转向轴是Z轴。 第5章 智能车调试试验 第5章 智能车调试实验 5.1 硬件部分调试 5.1.1 电源模块调试 使用8.0V电池通电后,TPS7333输出3.3V左右,TPS7350、LM2940输出电压均为5V左右。实测系统各路电源稳定,保证了系统其他模块的正常运行。 5.1.2 电机驱动模块调试 使用单片机的四路PWM波( TPM0_CH0、TPM0_CH1、TPM0_CH2和TPM0_CH3),初始化TPM精度为5000,即寄存器大小为5000时,PWM占空比为100%,调试过程中要保证寄存器赋值不能超过精度,否则会使单片机死机。四路PWM频率均为10KHz。其中TPM0_CH0和TPM0_CH1控制左侧电机正反转和转速,TPM0_CH2和TPM0_CH3控制右侧电机正反转和转速。测试左侧电机,先设置TPM0_CH0占空比为零
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 学术论文 > 毕业论文/毕业设计

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服