APP下载

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

2023-02-02滕开雯

科技与创新 2023年2期
关键词:稳压电源红绿灯树莓

滕开雯,丁 康,王 硕

(天津职业技术师范大学信息技术工程学院,天津 300222)

随着人工智能技术的不断发展,智能驾驶运用的领域也十分广泛,特别是在汽车、物流配送、共享出行、无人零售、港口码头等领域获得了日益广泛的应用[1-2]。2016年作为自动驾驶的开端,许多国内外企业纷纷投入其中。自动驾驶行业之所以能够得到各著名企业的争夺,其意义在于自动驾驶有益于社会,是人们所支持的。本项目能够改善城市交通安全,便捷管理交通行驶,为城市交通作出贡献。

本文设计并搭建基于树莓派的智能自动驾驶系统[3-4],采集道路信息并分析运用了树莓派开发板、视觉传感器以及OpenCV等软件,从而实现避障、方向控制等基本功能。

1 整体构架

树莓派硬件和OpenCV算法是此次项目研究的主要内容。

树莓派应用研究,主要是配合树莓派摄像头收集信息,包括实验场景下的跑道、路标、障碍物、行人等图片和视频。通过socket与上位机通讯,首先下位机要有完整的套接字APⅠ或者完整的TCP/ⅠP协议栈。接着,为了要确保下位机的ⅠP地址能够与路由器、上位机共同保持在一条网段,就必须把下位机的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模块以及摄像头等构成了智能自动驾驶小车的硬件部分。其中,控制板直接安装于底盘上方,2个舵机垂直叠加安装于底盘前方[5],上舵机安装于下舵机上方,而摄像头安装于上舵机上方,上舵机用于摄像头上下摇摆,下舵机用于摄像头左右摇摆,Wi-Fi模块安装于底盘后方。智能自动驾驶小车实物如图2所示。

图2 智能自动驾驶小车实物图

电源、车体驱动、主控等部分组成了智能小车的系统,各部分设计原理如下。

电源部分:电源元件为7.4 V、4 000 mAh充电锂电池和LM7805稳定器。7.4 V可充电锂电池主要负责为小车提供直流电压。该系统采用了LM7805稳压电路,这样便可以给系统输入一个直流稳压电源,以便于让系统的电源电压保持稳定。LM7805稳压电源电路原理图如图3所示。

图3 LM7805稳压电源电路原理图

由图3可知,整流、滤波、稳压、储能等功能元件搭成了LM7805稳压电源电路。通常线性电源用作串联稳压电源。电压首先通过桥式整流器电路和C1滤波电容进行整流和滤波,LM7805稳压电源电路的VⅠN和GND两端将形成不稳定的直流电压。最后,不稳定的直流电压再经过LM7805的稳压功能,并由C3进行滤波,此时便在稳压电源的输出端产生了精度高、稳定度好的直流输出电压。

驱动部分:车底盘、2个TB6612FNG芯片、4个直流电机、4个车轮为小车的驱动部分。为了实现智能小车前后行驶、左右转向的基本功能,此系统采用了H桥TB6612FNG驱动电路控制智能小车的4个车轮。TB6612FNG芯片原理图如图4所示。

图4 TB6612FNG芯片原理图

图4中,AO1、AO2、PWMA、AⅠN1、AⅠN2这5个引脚用于控制一路电机,其他三路电机类似。电机的正极连接到AO1,负极连接到AO2,PWMA、AⅠN2、AⅠN1引脚控制电机。其中PWMA接到控制板,通过改变占空比的方式调节电机的速度。

主控部分:智能小车的主控部分分为3个部分,分别为Arduino板、扩展板和树莓派。为了能够达到控制智能小车行驶、精准避障和实现车载图像能够实时传输的功能,首先需要接入摄像头和舵机,以实现对前方道路的数据收集和检测。同时,在小车行驶的过程中,从摄像头获取的实时视频信息先要传入到树莓派,再通过Wi-Fi模块传输到电脑端,这样就可以在电脑端观察到小车的实时行驶轨迹视频。

3 软件设计

3.1 工作流程

首先是小车无障碍行驶分析。启动小车后,小车将会通过摄像头进行实时路况的捕捉,并将数据传入树莓派进行分析。分析中进行操作判断,若直线行驶,则无需进行电机速度转速的改变,小车可以根据规定路线和速度进行直线行驶;如需转弯,则控制转弯一侧方向的电机速度,使其略低于另一侧电机的速度,等转弯结束后恢复直线行驶,使两侧电机速度相同,这样就能使小车实现快速并精准的转弯。

其次是小车有障碍行驶分析。启动小车后,进行摄像头捕捉和树莓派分析数据。当遇到红绿灯时进行判断,若为红灯,则在规定的地方进行停止等待,直到为绿灯;反之则进行障碍物判断,若存在障碍物,则停下等待并继续进行捕捉和分析,直到障碍物消除再继续行驶。

3.2 软件设计

3.2.1 驱动控制

2块TB6612FNG芯片可以直接驱动四路直流电机。采用脉宽调制方法,随着占空比的变化产生脉宽调制信号,电机的转速取决于PWM占空比。当设备正常工作时,STBY引脚设置为高电平,ⅠN1和ⅠN2保持不变。通过调节脉宽调制引脚的输入信号,可以实现电机的单向调速。当PWM引脚设置为高电平时,如果需要调整电机的双向速度,则需要调整ⅠN1和ⅠN2的输入信号。

3.2.2 避障功能

目前来说,常用的避障方案有传统避障方案和深度学习避障方案[6-11],传统避障方案使用超声波测距,这种方法容易受到干扰,测量的距离短,且对较小的物体不敏感。此次智能小车使用的是PyTorch框架进行深度学习的避障方案,可以利用深度学习算法的优势,实现一个鲁棒性较强的避障方案,且计算速度快,能够达到实施效果。避障场景分为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 小行人模型视角图

小车捕捉图像信息后,数据分析不是很精准导致小车继续行驶。后来通过多次调试,更换了行人模型,并不断修改参数值,使得小车能够精准判断行人的存在并能做出相应的动作。行人避障测试完成后,紧接着进行红绿灯识别测试,刚开始测试的时候,小车遇到红灯不停或者只停1 s后继续行驶,笔者们认为也是因为数据采集的数量不够所导致的,因此就增加了数据数量,但测试结果还是一样。经过一段时间的测试分析,发现是红绿灯模型的原因,刚开始收集数据的时候没注意到红绿灯侧边也有灯光,把侧边的灯光也收集了,如图9所示。

图9 红绿灯侧边灯光收集视觉图

测试的时候小车识别不准,因此遇到红灯不停或者只停1 s后继续行驶的现象,于是决定重新收集红绿灯的数据,并且在收集的过程中将红绿灯偏转相应的角度,使小车摄像头所看到的图像只有红绿灯正面的灯光,经过测试,此次红绿灯的识别测试也取得了良好的效果。最后,将测试小车循迹功能所采集的数据和测试相关避障功能所采集的数据结合一起训练,得到了最终的成果。

5 结语

本文搭建了基于树莓派的智能自动驾驶系统,并完成了系统的整体调试。此系统除了能够完成相应循迹行驶的功能外,还能根据路况和红绿灯进行作出相应的判断。此系统使用树莓派能够提高计算速度,从而快速作出反应。使用深度学习的避障方法,利用深度学习算法的优势,使避障更加的灵活快速。系统具有良好的远控功能,图像实时传送清晰稳定,道路行驶精确度高,在自动驾驶领域有广泛应用的基础。

猜你喜欢

稳压电源红绿灯树莓
反激式开关稳压电源实验教学案例设计
基于树莓派的骑行智能头盔设计
并联型开关稳压电源的常见故障与维修
红绿灯前
神奇的红绿灯
直流稳压电源实验教学的创新性探索与实践
会说话的红绿灯
基于树莓派的远程家居控制系统的设计
具有负载识别功能的稳压电源设计
响应面法优化红树莓酒发酵工艺