基于树莓派的智能车控系统

AI助手已提取文章相关产品:

使用树莓派和图像处理的车辆控制

摘要

本文提出的工作旨在通过树莓派3开发板实现一种可行的方法,用于识别停车标志和红色交通标志,使自动驾驶车辆能够根据交通活动做出相应动作。该系统还利用超声波传感器进行距离测量,以实现车辆的速度控制,避免与前方车辆发生碰撞。树莓派相机模块用于路牌识别,超声波传感器则用于获取真实世界中的距离信息。该系统将从摄像头获取现实世界的图像,然后采用滤波和形状检测方法识别交通中的红色标志,并使用Haar级联方法判断诸如停车标志等停止词。因此,车辆能够自主采取行动,减少因驾驶员疏忽等人因错误导致的交通事故。整个系统的编程语言为Python,图像处理采用OpenCV,其效率明显优于MATLAB。此外,系统使用超声波传感器进行障碍物检测,因为相比摄像头测距所需的复杂计算,超声波传感器能够更简单、直接地提供前方障碍物的距离信息。

关键词 :树莓派3;Traffic flag检测;Obstacle识别;Python

1 引言

根据一项调查,超过90%的道路事故是由于驾驶员错误造成的。这些错误包括闯红灯、超速、不遵守交通标志(如停车标志)等。为了解决这一问题,需要设计一个系统,该系统能够自行获取交通的现实世界数据,并在驾驶员未按照交通信号做出反应时采取行动。这样可以减少人为错误,同时减少因打电话或其他娱乐设施导致的注意力分散,以及人为忽视交通信号所引起的交通问题。因此,所提出的系统可以确保车内和车外人员在前往目的地的过程中得到安全保障。设计的系统可帮助汽车获取前方车辆的距离,并相应地控制车速。通过使用超声波传感器,设计车辆在行驶过程中能够检测到任何障碍物的距离,从而有助于避免事故发生。此外,人们在驾驶时也可以进行其他工作,因为汽车本身会承担起责任,并执行必要的操作,例如控制刹车、车速和方向盘控制。

2 方法论

由于预算较低,我们为汽车使用了两轮底盘,并实现了所有能提供准确结果的技术( 示意图0 )。

2.1 交通标志和信号检测

所提出的系统的主要工作是检测停车标志等标牌和红灯信号等信号。对于红灯信号,系统将始终尝试确定红色的下限和上限范围,并在红灯信号上形成一个矩形。当运行设计车辆时出现红灯信号,系统会在红灯信号周围生成一个矩形,并向控制器输入高电平或1,以停止车辆 [1]。

为了检测停车标志,系统使用了级联分类器,该分类器通过摄像头获取现实世界中交通标牌的输入,并将其与不同尺寸的停止词的XML文件进行比较。一旦找到匹配项,系统便会生成信号,使树莓派向L293D发送控制信号,以控制底盘电机。

2.2 障碍物检测

使用超声波传感器系统,我们可以获取汽车前方物体的距离 [2]。当有物体靠近设计车辆时,超声波传感器会检测到前方行驶车辆的距离,并生成信号以停止汽车 [3]。

2.3 停车安全

停车时,由于汽车后方出现障碍物,汽车的后部部件经常受损,而通过使用超声波传感器,我们可以避免所有这些损坏。因此,通过使用超声波传感器,我们还可以节省时间和金钱,并在性能上使汽车设计更加技术上高效。

2.4 超车速度

在此项目中,利用超声波传感器和图像处理,我们可以获得超越前方车辆的准确速度。当有车辆进入我方汽车的范围内时,超声波传感器会定期检测前方车辆的距离,后部超声波传感器也会检测后方情况的距离结果,因此通过定期获取前方车辆的距离,我们可以计算出我方汽车超越前方车辆所需的最大速度。

A. 树莓派3

树莓派3是一种类似于单板计算机的小型芯片。市场上有各种型号的树莓派,例如树莓派1型B版、树莓派1型B+、树莓派2、树莓派3型B版。这些型号在内存容量和硬件特性上有所不同,例如树莓派3内置了蓝牙和无线网络模块,而之前的版本则没有这些模块。它配备有1.2 GHz 64位四核 ARMv8中央处理器和1 GB内存[4]。

B. 树莓派相机

摄像头用于拍摄连续的图像,以获取现实世界中的交通标志和信号。根据通过摄像头获取的图像,我们可以将这些图像发送到树莓派,以执行控制汽车的操作 [5]( 示意图1 )。

C. 超声波传感器

超声波传感器(hc-sr04)用于检测障碍物并避免事故[2]。它有4个引脚:vcc、gnd、trig和echo[6]。它可以提供最远4米的信息,当在我们车辆前方1米距离内有其他车辆时,我们需要停止我们的车辆。

D. 电机驱动集成电路

L293D 是一种电机驱动集成电路,可同时控制两个直流电机。输入00和11使电机停止,而逻辑01和逻辑10则分别使电机顺时针和逆时针方向旋转( 示意图2 ;表1)。

引脚2 引脚7 输出
High High Stop
Low Low Stop
Low High 顺时针
High Low 逆时针
E. Python 软件

Python 是一种高级通用编程语言,广泛应用于工业和科研领域,也用于开发通用项目[7]。其软件有多种版本,即 IDLE Python 2、Python 3;在这两种类型中,还有不同版本的 Python IDLE 可用于编写 Python 语言程序。

F. OpenCV

它代表开源计算机视觉。它拥有一个主要用于实时计算机视觉的编程函数库。它包含超过2500种优化算法,适用于计算机视觉中的经典算法以及前沿算法[8]。OpenCV基本上用于图像处理,我们用它进行人脸检测、物体检测、图像识别、轨迹跟踪以及其他功能。

3 硬件连接

底盘的两个轮子连接着两个电机。电机驱动集成电路l293d主要用于控制直流电机,一个电机驱动IC只能控制两个电机。因此,所提出的系统使用了一个l293d,足以控制这些电机。因此,电机驱动IC的输入由树莓派提供,而电机IC的输出引脚连接到底盘的电机上。

为了实现汽车的前进和后退运动,系统将以相同的速度旋转车轮;而为了向左或向右移动,系统会根据转弯点使一个车轮的速度比另一个车轮慢,即如果系统需要向左转弯,则必须降低左轮的速度,如果需要向右转弯,则必须降低右轮的速度。在所提出的系统中,电机驱动IC的输入信号由 GPIO引脚(2,3)提供,用于驱动左侧电机,而GPIO引脚(9,10)用于从 L293D驱动右侧电机。

连接框图:

4 项目阶段

4.1 阶段1:遥控车

可以设计一种能够远程控制的汽车,为此我们可以使用任何无线模块,或者设计一个网站,通过该网站发送信号来控制车辆。但在遥控汽车中,汽车本身无法自主采取任何行动,驾驶该汽车时,每个操作都需要根据现实世界数据由人员手动完成,因此这就像一个人在驾驶汽车,仅此而已。此外,由于每个人员发送的信号可能存在低或高数据的情况,需要一定的时间传输,从而产生延迟问题。同时,由于每个低电平和高电平信号都有独立的操作,每次发送新数据时如果信号发生交换,则可能因人为错误而导致错误的发生[8]。

4.2 第二阶段:自主避障

汽车采用红外传感器实现避障功能,但低成本传感器在距离测量方面存在问题,且对各种颜色的检测并不准确,因此使用效果不佳。另一种测距方法是使用摄像头,但会增加延迟时间。而所提出的系统采用超声波传感器,计算时间更短,并以距离形式提供准确结果 [8]。

5 结果

示意图3
示意图4

6 结论

本文介绍了一种实现自主机器人小车的方法,描述了不同硬件组件的工作原理。定义了识别停车标志牌和红灯信号的方法,同时也定义了检测障碍物的方法。本文中给出的所有方法和算法均已成功应用于具有两个轮子的底盘的机器人小车上。

7 未来工作

为了在未来进一步提升其性能,可以使用机器学习算法,使其能够识别各个物体。当前性能良好,但为了使其更加高效,有必要结合机器学习和其他算法来实现,从而使其能够理解更多事物。因此,未来要使其更加先进,必须让它能够自主学习类似这样的内容——
- 节点间障碍物的距离。
- 记住断路器以及如何采取行动。
- 存储每辆车辆和不同物体的数据。
- 存储每个物体的尺寸,以便在其前进路径中出现时采取未来动作。

您可能感兴趣的与本文相关内容

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值