基于树莓派的智能自动驾驶系统设计

文章编号:2095-6835(2023)02-0019-04药品压片机
基于树莓派的智能自动驾驶系统设计与实现*
滕开雯,丁康,王硕
(天津职业技术师范大学信息技术工程学院,天津300222)
摘要:随着社会发展,智能自动驾驶技术引起了人们更广泛的重视。为实现智能小车的自动驾驶和避让行人功能,设计并开发了基于树莓派的智能自动驾驶小车。通过电机驱动模块实现对4个直流电机的控制,从而实现对智能小车的操作行驶;利用Wi-Fi连接可以实现电脑远控操作,通过摄像头采集图像数据信息,同时利用基于深度学习的相关技术实现自动识别前方路况的功能;利用OpenCV图像处理模块将前方路况处理的画面实时传送到树莓派控制板,使其发出相应指令。经实验测试,该智能小车具有良好的自动驾驶和避让行人的功能,图像实时传送清晰稳定,道路行驶精确度高,在自动驾驶领域具备广泛应用的研究基础。
关键词:树莓派;智能小车;OpenCV;自动驾驶
中图分类号:TP391文献标志码:A DOI:10.15913/jki.kjycx.2023.02.005
随着人工智能技术的不断发展,智能驾驶运用的领域也十分广泛,特别是在汽车、物流配送、共享出行、无人零售、港口码头等领域获得了日益广泛的应用[1-2]。2016年作为自动驾驶的开端,许多国内外企业纷纷投入其中。自动驾驶行业之所以能够得到各著名企业的争夺,其意义在于自动驾驶有益于社会,是人们所支持的。本项目能够改善城市交通安全,便捷管理交通行驶,为城市交通作出贡献。
本文设计并搭建基于树莓派的智能自动驾驶系统[3-4],采集道路信息并分析运用了树莓派开发板、视觉传感器以及OpenCV等软件,从而实现避障、方向控制等基本功能。
1整体构架
树莓派硬件和OpenCV算法是此次项目研究的主要内容。
树莓派应用研究,主要是配合树莓派摄像头收集信息,包括实验场景下的跑道、路标、障碍物、行人等图片和视频。通过socket与上位机通讯,首先下位机要有完整的套接字API或者完整的TCP/IP协议栈。接着,为了要确保下位机的IP地址能够与路由器、上位机共同保持在一条网段,就必须把下位机的Wi-Fi 和上位机联入同一网络路由器下。TCP需要指定一个主机(比如下位机)使用listen监听端口,然后另一台设备(比如上位机)使用connect去建立连接,connect 成功后两边就可以通过send和recv来收发信息了。通讯完成后关闭套接字以释放连接。纸币清分机
OpenCV算法研究,主要是处理输入的图像,在CV中选择适当调用灰度、选择感兴趣区域的方法。采用神经网络算法,在OpenCV ML库中调用多层感知器模型(MLP),对输入图像进行分类和识别。此外,小车使用了Arduino、电机驱动器、Wi-Fi等模块硬件。为了使电脑能够发送相关指令控制智能小车做出相关的动作,此次项目利用Wi-Fi连接起智能小车和电脑,这样便可以通过Wi-Fi发送相关指令。系统的整体框架如图1所示。
图1系统整体框架图
2硬件设计
车架、4个车轮(2个前轮,2个后轮)、4个直流电机、Arduino控制板、树莓派板、2个舵机、Wi-Fi 模块以及摄像头等构成了智能自动驾驶小车的硬件部
——————————————————————————
*[基金项目]国家级大学生创新创业训练计划项目资助(编号:202110066017)
Wi-Fi
分。其中,控制板直接安装于底盘上方,2个舵机垂直叠加安装于底盘前方[5],上舵机安装于下舵机
上方,而摄像头安装于上舵机上方,上舵机用于摄像头上下摇摆,下舵机用于摄像头左右摇摆,Wi-Fi模块安装于底盘后方。智能自动驾驶小车实物如图2所示。
图2智能自动驾驶小车实物图
电源、车体驱动、主控等部分组成了智能小车的系统,各部分设计原理如下。
电源部分:电源元件为7.4V、4000mAh充电锂电池和LM7805稳定器。7.4V可充电锂电池主要负责为小车提供直流电压。该系统采用了LM7805稳压电路,这样便可以给系统输入一个直流稳压电源,以便于让系统的电源电压保持稳定。LM7805稳压电源电路原理图如图3所示。
图3LM7805稳压电源电路原理图
由图3可知,整流、滤波、稳压、储能等功能元件搭成了LM7805稳压电源电路。通常线性电源用作串联稳压电源。电压首先通过桥式整流器电路和C1滤波电容进行整流和滤波,LM7805稳压电源电路的VIN和GND两端将形成不稳定的直流电压。最后,不稳定的直流电压再经过LM7805的稳压功能,并由C3进行滤波,此时便在稳压电源的输出端产生了精度高、稳定度好的直流输出电压。
驱动部分:车底盘、2个TB6612FNG芯片、4个直流电机、4个车轮为小车的驱动部分。为了实现智能小车前后行驶、左右转向的基本功能,此系统采用了H桥TB6612FNG驱动电路控制智能小车的4个车
轮。TB6612FNG芯片原理图如图4
所示。
牧一征图4TB6612FNG芯片原理图
图4中,AO1、AO2、PWMA、AIN1、AIN2这5个引脚用于控制一路电机,其他三路电机类似。电机的正极连接到AO1,负极连接到AO2,PWMA、AIN2、AIN1引脚控制电机。其中PWMA接到控制板,通过改变占空比的方式调节电机的速度。
主控部分:智能小车的主控部分分为3个部分,分别为Arduino板、扩展板和树莓派。为了能够达到控
制智能小车行驶、精准避障和实现车载图像能够实时传输的功能,首先需要接入摄像头和舵机,以实现对前方道路的数据收集和检测。同时,在小车行驶的过程中,从摄像头获取的实时视频信息先要传入到树莓派,再通过Wi-Fi模块传输到电脑端,这样就可以在电脑端观察到小车的实时行驶轨迹视频。
3软件设计
3.1工作流程
首先是小车无障碍行驶分析。启动小车后,小车将会通过摄像头进行实时路况的捕捉,并将数据传入树莓派进行分析。分析中进行操作判断,若直线行驶,则无需进行电机速度转速的改变,小车可以根据规定路线和速度进行直线行驶;如需转弯,则控制转弯一侧方向的电机速度,使其略低于另一侧电机的速度,等转弯结束后恢复直线行驶,使两侧电机速度相同,这样就能使小车实现快速并精准的转弯。
其次是小车有障碍行驶分析。启动小车后,进行摄像头捕捉和树莓派分析数据。当遇到红绿灯时进行判断,若为红灯,则在规定的地方进行停止等待,直到为绿灯;反之则进行障碍物判断,若存在障碍物,则停下等待并继续进行捕捉和分析,直到障碍物消除再继续行驶。
3.2软件设计
3.2.1驱动控制
2块TB6612FNG芯片可以直接驱动四路直流电机。采用脉宽调制方法,随着占空比的变化产生脉宽
Wi-Fi天线
滤波
整流稳压储能
+5V
调制信号,电机的转速取决于PWM 占空比。当设备正常工作时,STBY 引脚设置为高电平,IN1和IN2保持不变。通过调节脉宽调制引脚的输入信号,可以实现电机的单向调速。当PWM 引脚设置为高电平时,如果需要调整电机的双向速度,则需要调整IN1和IN2的输入信号。3.2.2
避障功能
目前来说,常用的避障方案有传统避障方案和深度学习避障方案[6-11],传统避障方案使用超声波测距,这种方法容易受到干扰,测量的距离短,且对较小的物体不敏感。此次智能小车使用的是PyTorc
h 框架进行深度学习的避障方案,可以利用深度学习算法的优势,实现一个鲁棒性较强的避障方案,且计算速度快,能够达到实施效果。避障场景分为3部分:当遇到红灯时,智能小车将会在合适的位置停下;当遇到行人时,智能小车也会停车;当遇到行人同时也遇到绿灯时,智能小车会停车。小车停车的视角如图5
所示。
图5小车停车的视角
小车在运行的过程中,摄像头将前方画面实时传输到树莓派中,树莓派将画面图像看成一个大坐标系,分别有x 值和y 值,由于不同的画面对应着不同的y 值,因此y 值会不断在变化,通过计算,当小车需要停车的时候,y 的值大于0.5,其余时刻y 值均小于0.5。因此,通过代码控制电机,使y 值大于0.5时,行驶速度为0,即小车相应停下,否则就继续行驶,行驶速度取值0.0~1.0。4数据采集及系统调试4.1数据采集
将小车放在给定的跑道里,把小车的摄像头打开,通过终端里面可以观察到摄像头捕捉的图像中间有
1个圆圈,如图6所示。当在移动小车收集数据时,将圆圈放到小车所需沿着行走的路线上,通过手柄控制对每一张图片进行保存。为了使小车在转弯处能够精准地进行转弯,就要在转弯处重复收集数据。如果小车遇到需要停止的位置,则需改变圆圈的位置,需要将手柄上推,让圆圈离开图像,从而使小车能够在后续训练中能正确做出相应动作。
图6数据收集视角
4.2系统调试
调试的过程是漫长的,每个项目的实现都少不了一步一步的调试。在小车的调试过程中,首先测试了小车按照轨迹行驶功能[12-15],在测试过程中,小车虽然能够按照既定路线行驶,但是在转弯处走的并不精准,甚至偏离跑道,如图7
所示。
图7
小车偏离跑道图
经过分析,笔者们认为是数据采集数量不足所导致的,因此就在转弯处多收集了数据,最后测试结果符合了要求。随后进行避障功能的测试,在进行第一次的行人避障的测试中,行人个体较小,如图8
所示。
图8小行人模型视角图
小车捕捉图像信息后,数据分析不是很精准导致小车继续行驶。后来通过多次调试,更换了行人模型,并不断修改参数值,使得小车能够精准判断行人的存
y
1 63
x
在并能做出相应的动作。行人避障测试完成后,紧接着进行红绿灯识别测试,刚开始测试的时候,小车遇到红灯不停或者只停1s后继续行驶,笔者们认为也是因为数据采集的数量不够所导致的,因此就增加了数据数量,但测试结果还是一样。经过一段时间的测试分析,发现是红绿灯模型的原因,刚开始收集数据的时候没注意到红绿灯侧边也有灯光,把侧边的灯光也收集了,如图9
所示。
图9红绿灯侧边灯光收集视觉图
测试的时候小车识别不准,因此遇到红灯不停或者只停1s后继续行驶的现象,于是决定重新收集红绿灯的数据,并且在收集的过程中将红绿灯偏转相应的角度,使小车摄像头所看到的图像只有红绿灯正面的灯光,经过测试,此次红绿灯的识别测试也取得了良好的效果。最后,将测试小车循迹功能所采集的数据和测试相关避障功能所采集的数据结合一起训练,得到了最终的成果。
5结语
本文搭建了基于树莓派的智能自动驾驶系统,并完成了系统的整体调试。此系统除了能够完成相应循迹行驶的功能外,还能根据路况和红绿灯进行作出相应的判断。此系统使用树莓派能够提高计算速度,从而快速作出反应。使用深度学习的避障方法,利用深度学习算法的优势,使避障更加的灵活快速。系统具有良好的远控功能,图像实时传送清晰稳定,道路行驶精确度高,在自动驾驶领域有广泛应用的基础。
智能防盗窗参考文献:
铍铜[1]徐有春,王荣本,李兵,等.世界智能车辆近况综述[J].汽车工程,2001(5):289-295.
[2]屈宝鹏,张喜凤,卜文锐.基于ATMEGA328的视频监控智能车的设计与实现[J].现代电子技术,
2015,38(19):160-162.
[3]纪欣然.基于Arduino开发环境的智能寻光小车设计[J].现代电子技术,2012,35(15):161-163.[4]崔才豪,张玉华,杨树财.利用Arduino控制板的光引导运动小车设计[J].自动化仪表,2011,
32(9):5-7.
[5]蔡睿妍.基于Arduino的舵机控制系统设计[J].
电脑知识与技术,2012,8(15):3719-3721.[6]戈惠梅,徐晓慧,顾志华,等.基于Arduino的智能小车避障系统的设计[J].现代电子技术,2014,
37(11):118-120.
[7]赵津,朱三超.基于Arduino单片机的智能避障小车设计[J].自动化与仪表,2013,28(5):1-4.[8]卞云松.基于Arduino单片机的避障小车机器人[J].
自动化技术与应用,2014,33(1):16-19.[9]周志华.机器学习[M].北京:清华大学出版社,2016.
[10]唐进民.深度学习之PyTorch实战计算机视觉[M].
北京:电子工业出版社,2018.
[11]孙志军,许阳明,薛磊,等.深度学习研究综述[J].计算机应用研究,2012,29(8):2806-2810.[12]高峰,陈雄,陈婉秋.基于树莓派B+微处理器的视频检测跟踪系统[J].电视技术,2015,39(19):
105-108.
[13]吴平.基于摄像头的智能车路线识别系统设计[D].上海:复旦大学,2013.
[14]吴沫,安向京,贺汉根.基于视觉的车道跑偏检测方法研究及其仿真[J].中国图象图形学报,
2007,12(1):110-115.
[15]艾宁,谭启寅,马文军,等.智能车运动状态实时监测系统的设计及实现[J].电子产品世界,
2007(8):156-157.
————————
作者简介:滕开雯(2000—),男,广西钦州人,在读本科生,研究方向为计算机科学与技术。丁康(2001—),男,湖南衡阳人,在读本科生,研究方向为计算机科学与技术。王硕(1999—),男,河南南阳人,在读本科生,研究方向为计算机科学与技术。
(编辑:张超)

本文发布于:2024-09-21 02:40:52,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/1/269487.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:小车   智能   行驶   进行   避障
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议