2023年7月26日发(作者:)
第1章 绪论
1.1 课题背景
目前,在企业生产技术不断提高、对自动化技术要求不断加深的环境下,智能车辆以及在智能车辆基础上开发出来的产品已成为自动化物流运输、柔性生产组织等系统的关键设备。世界上许多国家都在积极进行智能车辆的研究和开发设计。智能车辆也叫无人车辆,是一个集环境感知、规划决策和多等级辅助驾驶等功能于一体的综合系统。它具有道路障碍自动识别、自动报警、自动制动、自动保持安全距离、车速和巡航控制等功能。智能车辆的主要特点是在复杂的道路情况下,能自动地操纵和驾驶车辆绕开障碍物并沿着预定的道路(轨迹)行进。智能车辆在原有车辆系统的基础上增加了一些智能化技术设备:
1) 计算机处理系统,主要完成对来自摄像机所获取的图像的预处理、增强、分
析、识别等工作。
2) 摄像机,用来获得道路图像信息。
3) 传感器设备,车速传感器用来获得当前车速,障碍物传感器用来获得前方、侧
方、后方障碍物等信息。
智能车辆作为移动机器人的一个重要分支正得到越来越多的关注。
1.2 国内外发展现状及趋势
智能化作为现代社会的新产物,是以后的发展方向,他可以按照预先设定的模式在一个特定的环境里自动的运作,无需人为管理,便可以完成预期所要达到的或是更高的目标。同遥控小车不同,遥控小车需要人为控制转向、启停和进退,比较先进的遥控车还能控制其速度,而智能小车,则可以通过计算机编程来实现其对行驶方向、启停以及速度的控制,无需人工干预,是一个集环境感知、规划决策,自动行驶等功能于一体的综合系统,它集中地运用了计算机、传感、信息、通信、导航、人工智能及自动控制等技术,是典型的高新技术综合体。
国外智能车辆的研究历史较长。它的发展历程大体可以分成三个阶段:
第一阶段 20世纪50年代是智能车辆研究的初始阶段。1954年美国Barrett
Electronics 公司研究开发了世界上第一台自主引导车系统AGVS(Automated
Guided Vehicle System)。
第二阶段 从80年代中后期开始,世界主要发达国家对智能车辆开展了卓有 成效的研究。在欧洲,普罗米修斯项目开始在这个领域的探索。在美洲,美国成立了国家自动高速公路系统联盟(NAHSC)。在亚洲,日本成立了高速公路先进巡航/辅助驾驶研究会。
第三阶段 从90年代开始,智能车辆进入了深入、系统、大规模研究阶段。最为突出的是,美国卡内基.梅隆大学(Carnegie Mellon University)机器人研究所一共完成了Navlab系列的10台自主车(Navlab1—Navlab10)的研究,取得了显著的成就。
而我国开展智能车辆技术方面的研究起步较晚,开始于20世纪80年代。而且大多数研究处在于针对某个单项技术研究的阶段。虽然我国在智能车辆技术方面的研究总体上落后于发达国家,并且存在一定得技术差距,但是我们也取得了一系列的成果,主要有:
1) 中国第一汽车集团公司和国防科技大学机电工程与自动化学院与2003年研制成
功我国第一辆自主驾驶轿车。
2) 南京理工大学、北京理工大学、浙江大学、国防科技大学、清华大学等多所院
校联合研制了7B.8军用室外自主车,该车装有彩色摄像机、激光雷达、陀螺惯导定位等传感器。
可以预计,我国飞速发展的经济实力将为智能车辆的研究提供一个更加广阔的前景。因此,对智能小车进行深入细致的研究,不但能加深课堂上学到的理论知识,更能将理论转化为实际运用,为将来打下坚实的基础。
1.3 课题研究的目的及意义
图像识别技术是信息时代的一门重要的技术,其产生目的是为了让计算机代替人类去处理大量的物理信息。随着计算机技术的发展,人类对图像识别技术的认识越来越深刻。图像识别技术的过程分为信息的获取、预处理、特征抽取和选择、分类器设计和分类决策。图像处理技术的应用广泛,人类的生活将无法离开图像识别技术,研究图像识别技术具有重大意义。
通过毕业设计,我们将所学的基础课,专业课等方面的知识进行一次全面的复习。能够培养我们综合运用所学知识解决实际工程技术问题的能力,培养我们设计计算、编写设计文件、使用规范手册和应用计算机的能力,培养我们独立思考,解决问题以及小组合作的能力,培养我们调查研究、查阅技术文献、编写相关文档的能力。通过毕业设计,我们将学习如何将平时所学知识运用到实际中, 能够更好地将课本知识和实际结合起来。
第2章 系统硬件设计
2.1 系统设计方案概述
图2.1 系统整体框图
基于图像识别自主寻迹智能小车的系统总体结构如图2.1所示。系统由电源组件、检测组件、主控组件、输出组件共 4 个部分构成。电源组件采用电池供电,经过电压转换芯片转换之后,每个模块得到所需要的电压。检测组件由摄像头模块和测速模块组成, 主控组件采用 ARM 芯片作为控制核心,输出组件由电机控制模块和显示模块组成,显示模块包含图像实时显示和速度实时显示。
2.2 主控模块电路
STM32最小系统如图2.2所示。最小系统由 CPU、电源模块、时钟模块、复位模块、BOOT 启动模块、下载模块组成。STM32F103ZET6 是一款 32 位的 ARM 芯片,其电源模块采用 SPX1117 电压转换芯片和相关电路得到系统所需电压,时钟模块采用 8 MHz 和 32.768 kHz 的晶振分别作为芯片的备用时钟源和 RTC 时钟源。复位模块包括上电复位和按键复位电路。BOOT 启动模块的作用是设置启动模式,通过 BOOT0 和 BOOT1 设置:当 BOOT0 为 0 时,CPU 执行片上 FLASH 代码; 当 BOOT0 为 1、BOOT1为 0 时,系统的模式为串口下载模式;当 BOOT0 与 BOOT1 均为 1 时,CPU 执行 SRAM 内部 的代码,下载模块采用 JTAG 下载。
图2.2 STM32最小系统
2.3 电源模块电路
由于各电路模块所需电压不同,本设计需多种电源供电。STM32F103主控芯片采用3.3V供电,电机驱动采用5V与12V,红外收发检测电路采用5V与3.3V,液晶显示与触角传感电路均采用3.3V供电。外部电源采用12V的直流电压,因此根据设计要求,本设计进行了电源转换设计。
采用KA7805芯片实现12V到5V的转换。KA7805的作用是输入大于5V的直流电压,输出5V的直流电压,且管脚较少,易于连接和实现,稳定性高,本设计采用LM1117-3.3芯片将5V转换为3.3V,具体电路设计如图2.3
所示。
图2.3 电源模块电路
2.4 图像采集模块电路
图像采集模块电路如图 2.4所示。该模块采用 CMOS 图像传感器
OV7725 。图像采集原理如下:首先,OV7725 捕捉到原始信号后,将其输入到模拟处理器中,处理后分成 G 和 RB 两路输入到 A/D 转换器,经 A/D 转换器处理后转换成数字信号,然后输入到 FIFO,单片机从 FIFO 读取、处理数据并采集图像。FIFO 存储摄像头采集到的图像数据,其存储空间为 3 M。
摄像头采集完一幅图像后,将帧中断信号输入到 CPU, CPU 收到帧中断信号后,将 WEN 和 HREF引脚电平拉高,使图像数据存入 FIFO。当 CPU 再次收到帧中断信号, 表明图像数据已存入 FIFO,此时关闭帧中断,将 WEN 电平拉低, 避免图像数据再次写入 FIFO。
图2.4 图像采集模块电路
2.5 速度检测模块电路
小车的行驶速度常用检测方法包括霍尔传感器测速、光电编码器测速以及光电传感器测速。由于霍尔传感器体积相对较大,且光电编码器驱动齿轮靠近电机,容易受磁场干扰,而光电传感器结构简单,测速精度高、反应快,因此,本设计采用光电传感器测速。光电测速模块如图2.5所示。速度检测原理如下:当小车行驶时,车轮会带动光电码盘转动。当码盘中没有障碍物时,红外管发出的红外信号经红外接收管接收后输出电压比较值,再经LM393N 比较后, 输出开关量。码盘上一共有 20 格没有障碍物,所以用码盘周长除以 20 就得到 1 个脉冲来临车子行走的距离 S,同时打开定时器和计数器,定时 T,得到脉冲计数 n,到时间后就将时间清零重新计数,得到小车的速度:
V = S × n/T。
图2.5 速度检测模块电路
2.6 电机控制模块电路
电机控制包括电机的驱动和电机的调速 2 部分,本设计采用 L293D 控制
4 台直流电机。将每台直流电机的一端接地,另一端接到 L239D 的输出端。将
L293D 的输入端接一个 I/O 口,在第 1 脚和第 9 脚都使能的状态下,只需要控制 I/O 口的电平状态即可控制电机。电机驱动模块如图2.6所示。
由于小车要在不同的赛道上行驶,为防止其冲出赛道,需要在不同的赛道上采用 不同的安全速度。对于直流电机的速度调节,本设计中综合采用 PWM 控制、PID 控制和棒
棒控制技术。PWM 用于控制不同路径小车安全行驶的速度,PID 调速用来维持同一路段的速度,棒棒控制用于路径切换时的调速。
1)PWM 控制。计数器在时钟的驱动下计数,当计数器的值加到和输出比较寄存器的值相等时, I/O 口的电平翻转后接着计数。当计满后,计数器清零,重新开始计数。
2) PID 控制。PID 控制就是用比例(P)、积分(I)、微分(D)通过线性组合进行控制。比例系数越大,调节速度就越快。如果比例的作用太大, 会使得系统的稳定性降低。使用积分调节会使得系统动态响应变慢,因此积分环节常以 PI 或者
PID 组合形式出现。微分环节能够反映系统偏差的变化率,预测偏差的动态变化,但是它的引入容易引起震荡, 因此它一般是以 PD 或者 PID 组合的形式出现。
3) 棒棒控制。棒棒控制是一种极限控制,其作用就是使得小车速度瞬间达到最大或者最小值保证小车完成路径切换动作。
图2.6 电机控制模块电路
小车运动状态通过电机A和B的不同方向转动来实现,电机有正转、反转和停止三种状态,每个电机由一对I/O口进行控制。表2.1是I/O端口状态与电机制动对照表。
L293D芯片采用5V(VSS)与7V(VS)直压供电,ENA和ENB分别用STM32F103主控芯片的TIM3_CH3和PB1/ADC_IN9/TIM3_CH4控制,产生PWM1和PWM2两路PWM 波输出,IN1-IN4分别用PE3-PE6实现I/O输出控制电机转动方向。
表2.1 I/O端口状态与电机制动对照表
电机A
停止
正转
反转
-
IN1
0
1
0
1
IN2 电机B
0
0
1
1
停止
正转
反转
-
IN3
0
1
0
1
IN4
0
0
1
1
2.7 OLED液晶屏显示模块
模块由一片 OLED 玻璃屏幕和一个驱动 PCB 板组成。模块分辨率是 128x64,内置了升压电路(OLED 点亮显示 814V 的高电压)和复位电路,所以只要 35V
电源输入电压即可。采用 I2C 总线通过,电路连接简洁。 0.96 英寸的大小与 1
元硬币差不多。小体积带来小的功耗,只要 3mA 左右的电流就能让它显示内容。原理:可以把 OLED 屏上的像素点理解成 LED 灯,小小玻璃片上嵌入了 8192( 128x64)个 LED,对应的 LED 点亮或熄灭,则形成图案和文字,OLED 与传统 LCD 屏的差异不大。但这款屏没有内部字库,不论是英文还是汉字,都要事先取模并导出数据表,可以把文字的显示理解成小像素的图片,一个汉字的像素是 16x16,一个英文或数字的像素是 8x16。OLED集成模块如图2.7所示。
图2.7 OLED液晶显示屏
第3章 系统软件设计
3.1 IAR开发环境简介
IAR Systems是全球领先的嵌入式系统开发工具和服务的供应商,提供的产品和服务涉及到嵌入式系统的设计、开发和测试的每一个阶段,包括:带有C/C++编译器和调试器的集成开发环境(IDE)、实时操作系统和中间件、开发套件、硬件仿真器以及状态机建模工具。IAR软件是嵌入式设计软件产品中优质的开发工具。它最著名的产品是C编译器IAR Embedded Workbench,支持众多知名半导体公司的微处理器。许多全球著名的公司都在使用IAR SYSTEMS提供的开发工具,用以开发他们的前沿产品,从消费电子、工业控制、汽车应用、医疗、航空航天到手机应用系统。
IAR Embedded Workbench for ARM 是IAR Systems公司为ARM微处理器开发的一个集成开发环境。比较其他的ARM开发环境,IAR EWARM具有入门容易、使用方便和代码紧凑等特点。IAR EWARM中包含一个全软件的模拟程序(simulator),用户不需要任何硬件支持就可以模拟各种ARM内核、外部设备甚至中断的软件运行环境,从中可以了解和评估IAR EWARM的功能和使用用法。IAR
EWARM包含项目管理器、编辑器、编译连接工具和支持RTOS的调试工具,在该环境下可以使用C/C++和汇编语言方便地开发嵌入式应用程序。IAR EWARM界面如图3.1所示。
图3.1
IAR EWARM界面
3.2 主程序设计
小车在行驶过程中,摄像头进行图像采集。对采集的图像进行图像除噪,并提取行黑线中心位置,分析前方路径信息。针对不同的路径信息采取不同的方式控制电机的速度和方向。
整个小车控制系统的程序设计采用模块化的编程思想,整个主程序的流程图如图3.2所示。在系统初始化以后,首先进行不同路径行驶速度的设定,然后摄像头进行道路信息采集,将其传送给 CPU 进行路径判断,CPU 路径判断处理后采用PID 控制或者棒棒控制同时控制相应电机转动,这样,小车就能够顺利地沿着路径行驶。小车在行驶的过程中有 2 种状态,一种是沿着同一路径行驶,另一种是路径切换。对于这 2 种状态,分别采用不同的控制方法: 当沿着同一路径行驶时,采用 PID 控制,目的是保证小车在同一路径上时能以稳定的速度行驶;当进行路径切换时,采用棒棒控制,因为小车经过不同的弯道时有不同的安全速度,采用棒棒控制能够保证小车在不同的路径切换时速度能瞬间达到弯道适合的速度值。
图3.2 主程序流程图
3.3 图像采集处理子程序
3.3.1 图像采集设计
首先开启行中断和场中断,摄像头逐行扫描像素点 Dot_cnt,当一行像素
240 个点扫描完毕后,进入行中断,行数 Row_cnt 加 1。接着扫描下一行,当第 320 行扫描完毕后,进入场中断,一幅图像采集完毕。关闭所有中断,将
Dot_cnt 和 Row_cnt 清零,循环执行上述过程,即可连续地进行图像采集。图像采集流程如图3.3所示。
图3.3 图像采集流程
3.3.2图像除噪设计
图像除噪是为滤除噪声,减少噪声的影响,便于准确提取路径信息,本设计中考虑到实时性要求,采用中值滤波进行图像除噪。其实现思想是在整幅图像中选取一个大小合适的像素窗口,接着对窗口中像素点的灰度值进行排序,取最中间的点作为窗口中心点的新灰度值,移动窗口,循环执行上述过程。具体实现方法如图3.4所示。
图3.4 图像除噪流程
3.3.3 黑线中心提设计
在图像进行除噪后,就可以对黑线中心进行提取。目前常用的黑线中心提取方法是重心提取算法。小车行驶的路径由白色背景和黑色胶带组成,两者间灰度值相差很大,所以,可以通过一个阈值来区分黑点和白点。每一行从左至右判断每一个像素点的灰度值是否大于(或小于)该阈值,从而确定此处是否为黑线上的点。图像灰度阈值一般取 128 左右为宜。针对图像矩阵数据中的每一行, 从左至右依次比较各个像素点和阈值的灰度值的大小,当某一个像素点的灰度值大于或者等于阈值,则判定该点对应的是白色;反之,则判定该点属于黑色路径区域。在图像的每一行得出每个黑点的位置坐标,然后将各黑点位置坐标相加再除以黑点数量就可以得到图像每行的黑点重心位置。黑线中心提取流程如图3.5所示。
图3.5 黑线中心提取流程
图3.5黑线中心提流程图
3.3.4 路径识别设计
本文应用了路径识别中常用的曲率计算法。得到黑线中心后, 在每幅图像取固定的 2行上的点 A、B,如图3.6(a), A、B 一般为整幅图像的 1/3 和 2/3行处的点 。连接 2 点, 做出 2 点连线的垂直平分线,垂直平分线与整幅图像第 2/3 行的交点为 C, 求出△ABC外接圆的半径 R,R 的倒数为路径的曲率
ρ。实现方法如图3.5(b)所示。
在实验过程中小车行驶的轨迹由直道、弯道和 S 路径组成。在 S 路径, 曲率 ρ = 0 是小车的方向的转折点。小车在走 S 线时既需要进行左转,又需要进行右转,此时就不能简单地按照 ρ 的大小控制小车的方向和速度。如果 ρ
不等于 0 时小车左转,那么判断小车右转。
的条件就是经过 1 次 ρ = 0 之后, 再得到一个不等于 0 的 ρ 值。
(a) (b)
图3.5 路径识别流程
3.3 循迹子程序
图3.6 循迹子流程
当循迹模式键按下时,小车进入循迹模式,其流程图如图3.6。将小车置于黑迹上,进入循迹模式,主控芯片控制红外探测器使能,此时左右红外探测器均未检测到出界,小车开始向前行走,此后根据左右探测器的检测信号对小车的运动状态进行相应调整,使小车按设定的轨迹行走,实现简单的循迹功能。
第4章 系统样机及测试
4.1 系统样机
本设计的系统样机如图4.1所示。
图4.1系统样机
4.2 测试
经测试, 本设计中研究的摄像头循迹小车实现了自主循迹功能, 摄像头采集到的图像比较清晰, 能够实时更新显示路径和车速, 直线行驶速度大小可达 25
cm/s,在不同路径下小车表现了较好的鲁棒性。在小车沿着黑线行驶的测试过程中, 通过设置 PWM 跳变值(定时器计数值等于跳变值时电平翻转)来控制占空比, 程序中自动重装载寄存器的值为 1 000, 即计满 1 000 重新计数。测试结果如表 1 所示。
表4.1给出了当小车左转,ρ = 0.01时,左右两边跳变值大小、左右电机转 速、小车运行效果数据记录。由表4.1可知,当左电机跳变值小于等于600,跳变值之差为200 左右时,小车能完成循迹;但是当电机速度较大达到 650,无论右电机的速度为多少,
小车都不能完成循迹。其原因在于,受调速性能限制,小车在循迹时行驶速度较小。其他弯道和曲率的分析与此类似。
表4.1 ρ = 0.01时数据记录
左电机
跳变值
550
550
550
600
600
600
650
650
650
右电机
跳变值
700
750
800
750
800
850
800
850
900
左电机转速
/(cm·s
-1)
10
10
10
15
15
15
20
20
20
右电机转速
/(cm·s
-1)
25
30
35
25
35
40
35
40
45
小车能
否循迹
否
能
否
否
能
否
否
否
否
第5章 总结
本文根据设计内容和要求,制定了设计方案,并逐步完成了硬件和软件部分的设计。整个系统以STM32为主控芯片,实现对小车简单运动的控制,其中硬件部分包括STM32F103核心电路及外围的一些电路,主要包括电源模块电路、图像采集模块电路、速度检测模块电路、电机控制模块电路、OLED液晶屏显示模块电路,完成各部分电路设计并使用Altium Designer画出电路设计原理图;软件部分在STM32集成开发环境IAR EWARM 5.3下编写各模块程序,主要包括图像采 集子程序、循迹子程序,并通过主控制程序将各模块融合一起。整个设计将硬件与软件相结合,实现对小车的控制,使小车能够做出前进、后退、左转、右转等动作,并通过液晶显示器实时显示小车的运动参数,通过传感检测电路实现简单的避障和循迹功能。论文基本完成了硬件和软件的设计,并使之符合设计要求。
本设计与实际应用相结合,利用高性能的STM32F103芯片,经过摄像头所采集的头像进行处理后来检测路面、障碍物等周围环境,通过高可靠性的软件设计,来实现小型电动车的智能控制,具有很强的现实意义。随着智能控制技术与传感检测技术的飞速发展,作为智能机器人雏形的智能小车在探测、考古、娱乐各领域得到广泛应用,尤其在足球机器人研究方面有很好的发展前景。在智能机器人发展如火如荼之期,智能小车控制系统的研制为其提供了更有利的研制手段和方法,将有助于推动智能机器人的发展。由于初次接触STM32F10x系列芯片,对其先进的中断响应系统未能很好掌握,传感信号的接收选择了一般I/O口,不过基于STM32F103的高性能,其反应速度还是可以满足设计要求,但要充分利用芯片资源及更好的实时控制在这部分还有待改进;另外,对于小车转弯过程的车速未做区别对待,在本次设计中将PWM波占空比控制在1/2以下,使小车不会因速度过高而导致转弯过程中其方向不易控制。总的来说,设计方案是比较完善的,基本上达到了设计要求。
发布者:admin,转转请注明出处:http://www.yc00.com/xiaochengxu/1690332087a333915.html
评论列表(0条)