基于多传感器融合的智能小车避障系统设计与实现毕业论文
2020-04-10 14:40:09
摘 要
本文首先根据多传感器融合智能小车避障系统的设计要求进行分析,确立了使用Arduino uno r3单片机作为小车的主控,以超声波传感器和红外传感器为基础的设计方案。并在进行器件的选择后对各个组成部分进行了介绍和功能的调试,在设计的过程中不断根据实际情况调试硬件系统。在模拟了实际运行中可能会遇到的障碍物情况后,针对这些情况对可行的模糊神经网络和阈值设定这两种常用的小车避障算法进行了对比分析,最终根据实际情况确定了较优的阈值设定的算法进行实装。
在小车系统搭建完成后,将小车放在在实际的环境中进行测试,发现小车避障效果良好,能够快速地识别障碍物并进行躲避。
关键词:智能小车;避障;模糊神经网络;传感器;
Abstract
This paper first analyzes the design requirements of multi-sensor fusion smart car obstacle avoidance system, and establishes the use of Arduino uno r3 microcontroller as the main control of the car, based on ultrasonic sensors and infrared sensors based design. After the selection of the device, the various components were introduced and debugged. During the design process, the hardware system was continuously debugged according to the actual situation. After simulating the obstacles that may be encountered in actual operation, the two commonly used obstacle avoidance algorithms of the feasible fuzzy neural network and threshold setting are compared and analyzed for these situations. Finally, the comparison is made based on the actual situation. The optimal threshold setting algorithm is implemented.
After the construction of the trolley system was completed, the car was placed in the actual environment for testing, and it was found that the car had a good obstacle avoidance effect, and obstacles could be quickly identified and avoided.
Keywords :smart car; obstacle avoidance; Fuzzy Neural Network; sensor
目录
第1章 绪论 1
1.1 概述 1
1.2 国内外研究现状 2
1.3 本文主要工作 2
第2章 系统原理与器件选择 3
2.1 系统原理 3
2.1.1 智能避障小车的结构与工作原理 3
2.2 器件的选择 3
2.2.1 单片机的选择 3
2.2.2 动力机构的选择。 6
2.2.3 测距传感器的选择 6
2.3 本章小结 8
第3章 智能避障小车硬件调试与搭建 9
3.1 Arduino开发环境的设置 9
3.2 小车硬件功能的调试 10
3.2.1 直流电机驱动模块的调试 10
3.2.2车辆空载速度的测定 11
3.2.3 利用pid控制电机转速 15
3.2.4 测距传感器的调试与温度补偿 16
3.2.5 实现多角度测量 17
3.2.6测量量的的显示 19
3.3 本章小结 19
第4章 小车的避障功能的设计 20
4.1 避障的基本思路 20
4.2 小车避障动作的设计 20
4.2.1小车基本动作的设计 20
4.2.2 障碍物情况分类 21
4.3避障算法的设计 21
4.3.1 阈值避障算法 21
4.3.2 神经网络避障算法 22
4.4小车避障的测试 24
4.4 本章小结 26
第5章 总结 27
致谢 28
参考文献 29
第1章 绪论
1.1 概述
伴随着科学和技术的发展,各式各样的智能设备进入到了我们的生活中,方便了我们生活中的方方面面。人们在享用着科技给生活带来的便利的同时,也在对设备的智能程度提出了更高的要求,希望身边的智能设备在代替人工这个方向上做得更多,做得更好。
科技改变生活,现代人的生活日益繁忙,很多人并不能顾及生活和工作,而智能设备的出现能很好地解决这个问题。现在比较流行的扫地机器人就是一个非常有代表性的例子。扫地这种对人来说非常简单的活动,对机器而言并不是一项非常简单的工作。由于我们居住环境往往比较复杂,需要清扫的地区不一,地面材质不一致,这些都会对扫地机器人的清扫工作造成困难。在室内清扫时,扫地机器人需要对家具,墙壁等障碍物进行识别和躲避,在躲避障碍物的同时还必须尽可能地靠近,否则还会出现清扫不干净和清扫范围过小的情况。由于扫地机器人清扫活动范围较大,活动时间较长,而且大部分时间都会工作在无人监管的情况下,需要扫地机器人有较小的能耗和较高的可靠性,还需要能够在低电量的情况下自动返回充电桩,提升扫地机器人的活动能力。
而扫地机器人的核心功能就是实现对障碍物的躲避。避障功能的实现主要是靠用红外传感器、光电传感器、超声距离传感器完成障碍物的检测,使用利用转速传感器去检测电机的转速, 利用PWM技术和PID控制动态地控制电机的转向以及转速,以此来调节扫地机器人的前进方向和行进速度,利用单片机编程技术实现对避障行进路径的规划,控制扫地机器人以较高的效率完成清扫工作。扫地机器人对障碍物的识别和路径规划能力的高低,直接影响到扫地机器人的工作质量。价格较低的扫地机器人一般采用避障方法是碰撞检测法,当扫地机器人碰撞到障碍物时,会自动转向朝着别的方向行进, 用穷举法对家居进行清扫,效率比较低。而价格较高的扫地机器人,一般都会采用主动扫描、自动建图的规划式清扫,有较高的工作效率。
如今许多科技公司都在无人驾驶的方向上进行研发,避障也是汽车无人驾驶的技术难点之一[1]。由于汽车行驶的过程往往会出现很多突发情况,会有加塞,前车急刹等容易发生交通事故的情况,自动驾驶的过程中肯定要对这些突发情况进行处理和躲避。避障在这些情况下就显得无比重要,防止了交通事故的发生,优秀的避障水平能够极大地提高自动驾驶的可靠度。很多公司的无人驾驶测试项目都出现过车祸,一部分责任在随车安全员的身上,更大一部分责任在避障功能的不完善上。要想在将来享受到无人驾驶的便利,避障功能必须做得更好。
1.2 国内外研究现状
在多传感器融合的轮式机器人的研究上,很多国内企业都有着比较完善的商业方案了。扫地机器人,拆弹机器人,物流分拣机器人等都有着比较完善的方案,都已经投入了生产和使用。
在避障算法的研究上,国内外的很多专家学者已经做了大量的研究。研究的整体思路主要是利用深度学习和神经网络去训练避障的模型,模拟人脑进行学习的过程,使得机器通过不断的学习掌握避障的技巧,不断提高避障的精度和响应速度。国内比较流行的一种避障思路是利用模糊人工神经网络,利用神经网络自主学习自主适应的特性,针对不同的障碍物环境进行学习,结合模糊控制在处理模糊信息上的优势,提高避障功能智能化程度和精度。而国外的DeepMind人工智能实验室也公布了一个新的项目,利用深度学习,强化学习的方法让3种不同形态的机器人从零开始学会了走路并自适应躲避障碍物。
由此可见结合深度学习的智能避障算法应是未来避障算法研究的主流。
1.3 本文主要工作
本文的主要工作是针对智能小车在实际行进中的避障功能而展开的,分析了小车避障系统的工作原理,以此确定了避障系统的设计方向。
在确定了设计方向后,本文会对整个避障系统的设计原理进行详细的说明,随着硬件部分的搭建分布介绍了选用的单片机,小车的结构,运动机构的设置,传感器的选择和避障功能的实现。尽可能详细地讲解了每个器件的使用方法和工作原理。
本次智能小车避障系统可以作为扫地机器人的基础进行研发,其多传感器的融合和行动的控制系统,能够很好地运用到扫地机器人的研发当中。
第2章 系统原理与器件选择
2.1 系统原理
2.1.1 智能避障小车的结构与工作原理
智能避障小车的整体结构比较简单,核心的构件为小车底盘,动力机构,传感器和单片机这4个部分。小车底盘起到了承载小车所用部件的作用,并且决定了小车的形态。本次设计中,选择了一块亚克力板作为小车的底盘。并且选择两个电机分别驱动两个轮子作为小车的动力机构,传感器主要用于障碍物的识别和测量,单片机作为智能小车的大脑,用于控制各个部件协调工作,同时对数据进行处理。
小车的工作原理如图2.1所示。
图2.1 小车工作原理图
利用测距传感器测量小车与障碍物之间的距离后,单片机根据测量的距离和避障的算法计算出对应的避障动作,随后给予电机驱动模块控制信号,控制电机运动,带动小车完成避障。
2.2 器件的选择
2.2.1 单片机的选择
在智能避障小车的设计中,单片机的选择是一个非常重要的环节。单片机作为智能小车的大脑,负责了整个智能小车系统的数据处理和控制外围设备的任务。目前主流的可供选择使用单片机主要有以下几种:
(1)51单片机系列。51单片机是指对一切兼容Intel8031指令系统的单片机,比较常用的有Atmel公司的AT89S51,AT89S52单片机。
(2)STM32系列单片机。STM32单片机系列是意法半导体集团推出的专为要求高性能、低成本、低功耗的嵌入式应用而专门设计的。
(3)AVR系列单片机。AVR系列单片机是由Atmel公司生产的高速8位单片机,具有高性能,高速度,低功耗的特点。
根据本次毕业设计的要求,需要使用的单片机既要有足够的性能,又要有足够的I/O口去连接外围的设备,还得使用方便,配置简单,而且必须经济实惠,性价比高。根据这些要求进行查询后,发现基于AVR单片机的Arduino单片机极度符合本次毕业设计的需要。Arduino单片机的电路板体积小,功耗低,开发平台几乎能在所有常见的计算机操作系统上运行。而且由于Arduino平台是开源的,可供利用的资源非常多,有大量的库文件可供选用和学习,阅读他人的库文件能够学习到很多外接设备的使用方法和调试技巧。而且由于库文件的调用和查询都非常方便,模块化程度非常高,开发简单,因此非常适合开发者使用,让开发者更加注重创意的实现,激发我们的创造力[2]。
Arduino使用的编程语言是以C语言为原型进行改编而来的,若熟悉C语言的语法的话上手Arduino的开发和使用将会非常简单。而且各种端口功能的实现都有对应的函数,很多常用的函数都已经封装好了,使用起来非常方便。
Arduino单片机有很多型号,如Arduino UNO,Arduino Nano,Arduino LilyPad,Arduino Mega 2560,Arduino Ethernet,Arduino Due,Arduino Leonardo,Arduino Yún等,每种型号都有不一样的特性,价格也有区别。为了不造成不必要的浪费,本次毕业设计采用的是Arduino单片机中性价比极高的中端产品Arduino uno r3。
Arduino uno r3是基于ATmega328的单片机板,总共有14个数字i/o端口,其中3,5,6,9,10,11这几个接口可以做PWM输出,6个模拟端口(可作为数字端口使用),一个16MHz的晶振,一个直流电源接口,一个USB接口以及一个复位键。
Arduino uno r3详细的参数如表2.1所示。
表2.1 Arduino uno r3参数
项目名称 | 参数 | 项目名称 | 参数 |
微处理器 | ATmega328P | 每路输入输出电流 | 20mA |
推荐输入电压 | 7V-12V | 3.3V引脚电流 | 50mA |
限值输入电压 | 6V-20V | 闪存存储器 | 32KB |
数字输入/输出引脚 | 14路 | SRAM | 2KB |
模拟输入引脚 | 6 | EEPROM | 1KB |
PWM数字I/O引脚 | 6 | 时钟频率 | 16MHz |
由于Arduino的硬件原理图、电路图都是开源的,因所以在选择开发板时,会有许多性能相比原厂产品更加优秀,价格更为合理的第三方产品。因此,本次毕业设计出于成本上的考虑,并不选择价格较高的意大利原厂开发板,而是选择了价格仅为原厂器件六分之一的改良版。意大利原厂开发板如图2.2所示。
图2.2 意大利原厂开发板
改良版的第三方开发版如图2.3所示。
图2.3 第三方开发板
相比于原厂器件,此改进版在保持主控不变情况下将原来的ATMEGA328P-PU换成QFP封装ATMEGA328P-AU,体积更小。替换了USB芯片,降低了成本,功能不变。将USB接口换成micro-USB接口,使用更为方便。在实际使用中,并没有发现不兼容和不稳定的问题。
2.2.2 动力机构的选择。
小车采用了两个直流减速电机分别驱动左右两轮,尾部安置了一个万向轮来支撑小车,协助小车转向,保持小车稳定。
由于Arduino uno r3单片机的的IO口输出口功率过低,根本不可能带动两个直流减速电机运行,必须采用外接的电源驱动电机。而且控制直流减速电机的利用PWM信号,但是Arduino uno r3的PWM信号的输出I/O口并不能直接驱动电机。因此需要选用额外的扩展模块对两个直流减速电机进行驱动。经过查询资料,发现L298N双H桥直流电机驱动模块非常符合设计要求,决定采用。
L298N双H桥直流电机驱动模块采用了ST公司的L298N典型双H桥直流电机驱动芯片,可以同时驱动两个直流电机或双相步进电机。此电机驱动模块的产品参数如表2.2所示。
表2.2 直流电机驱动模块产品参数
项目名称 | 参数 | 项目名称 | 参数 |
驱动端子供电范围 | 5V-35V | 驱动部分峰值电流 | 2A |
逻辑部分供电范围 | 5V-7V | 驱动部分峰值电压 | 46V |
工作温度范围 | -25-75℃ | 最大功耗 | 20W |
2.2.3 测距传感器的选择
智能避障小车实现避障功能需要系统能够识别到障碍物和定位到障碍物的位置。只有当小车能够正确识别并定位障碍物,才能对行进路线进行规划,绕开障碍物,实现自动避障的操作。
为了满足在动态的环境下对障碍物进行定位和识别,必须要满足以下的要求:
(1)占用系统资源少
(2)传感器应该要良好的动态响应。
(3)误差较小,不易受到外界环境干扰
(4)设计要考虑合理控制成本
而目前障碍物识别的主流方法有三种,分别为图像识别,红外测距识别和超声波测距识别。这三种识别方式各有各的优势,也有各自的缺点。图像识别适用性广、抗干扰能力强、障碍物识别的准确率高,但是需要单片机有较强的性能,也需要较高的技术要求,对算法的要求非常高。红外线测距识别速度快,测量距离远,精度高,但是无法准确地检测透明的物体,在室外使用的话非常容易受到太阳光照的影响。超声波测距识别测量的距离较短,精度不高,速度较红外测距传感器慢,但是调试方便,成本低,最近测量距离比较小。
在本次的智能避障小车的设计中,选用的是arduino uno r3单片机,由于其性能有限,用它进行对障碍物的图像识别时处理时间过长,不符合设计要求。而红外传感器因为比较容易受干扰,不能测量透明的物体,不适合单独使用。在本次智能避障小车的设计中,由于小车的运行速度不高,测量距离数据可以设置在小车每次执行动作的间隔中,因此对传感器的动态响应的要求不高,但对传感器测量的速度有一定的要求。而超声波测距传感器虽然使用方便,成本低,但是存在一定的测量盲区。结合设计需要,决定将超声波测距传感器和反射式红外开关结合起来一起使用,整体成本较低,测量速度较快,能够适应多种运行环境,而且超声波测距传感器的测量盲区能够让反射式红外开关进行测量,消除测量盲区对智能小车避障功能的不良影响,非常符合本次毕业设计的要求。
所选用的反射式红外开关模块如图2.4所示。
以上是毕业论文大纲或资料介绍,该课题完整毕业论文、开题报告、任务书、程序设计、图纸设计等资料请添加微信获取,微信号:bysjorg。
相关图片展示:
课题毕业论文、开题报告、任务书、外文翻译、程序设计、图纸设计等资料可联系客服协助查找。