xrogzu / RaspberryPi_CyberCAR

基于树莓派的四驱智能小车,低压直流电池组供电,安装多种传感器系统,实现黑线循迹、超声波避障、红外遥控、网络遥控遥感、磁轨控制、计算机视觉红绿灯识别 等功能。

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

<<<<<<< HEAD ###项目题目

##基于树莓派的智能小车 SDU TaiShanCollege

###摘要

基于树莓派的四驱智能小车,低压直流电池组供电,安装多种传感器系统,实现黑线循 迹、超声波避障、红外遥控、网络遥控遥感(超视距第一视角 POV驾驶)、磁轨控制、计算 机视觉红绿灯识别 1等功能。

The four-wheel drive smart car based on Raspberry PI is powered by low-voltage DC battery pack, and a variety of sensor systems are installed. The functions that have been realized are: black line tracking, ultrasonic obstacle avoidance, infrared remote control, network remote control and remote sensing, magnetic track control, AI traffic light recognition and other functions.

搭建环境简介

主板:树莓派 4B 2GB-RAM

系统:Latest Raspberry Pi OS Full (64-bit)

####开发环境:

Windows 部分:

Visual Studio Code (64-bit) 1.78.0 Xshell7 (64-bit) version 0122

Xftp7 (64-bit) version 0119

gcc version 8.1.0

PyCharm professional 2023.3.30

CV训练服务器部分:

Miniconda conda3

Python 3.10(ubuntu22.04)

Cuda 11.8

Jupyter Lab 2023.3

传感器型号:

TCRT5000红外循迹块

HJ-IR2红外避障模块

HC-SR04 超声模组

客制化 N/S-霍尔传感器 2

OV5647 摄像头组

###具体实现

####1 总体结构搭建 、动力系统

采用亚克力板+铜柱/螺丝的双层板结构电机挂载于底层,直接驱动车轮,电池与连接排 线等位于中层,主板、传感器位于上层。

树莓派与扩展供电/驱动板上下堆叠放置,集成化程度高。供电采用一体化**供电系 统,由 7.4V锂电池组经由**供电板向树莓派、传感器、云台系统等提供 3.3V、5V、9V电 源,具备干路主开关。

四台 TT 电机由 TB6612FNG 驱动芯片驱动,相比于 L298N,此驱动芯片的稳定性与可 靠性更高、电压宽容度更好。电机驱动通过 PWM实现无极调速。

差速转向结构,技术更加成熟可靠。

####2 蜂鸣器、 LED、数码管电压指示系统

板载无源蜂鸣器,可播放音乐,可自由编写乐谱。

开机时播放大疆无人机的开机自检电调声音“DO-RE-SOL”,致敬全球领先的科技创新公司——大疆创新!

LED指示灯按“长——短—短—”循环闪烁,致敬大疆无人机的航标灯闪烁方式。

数码管电压表显示电池电压。

####3 红外循迹功能

三路 TCRT5000 循迹块,当两侧为白线时 (输出低电平,传感器信号二极管点亮), 直行;当某一侧检测到黑线时,该侧传感器输出高电平,指示灯灭,小车向该侧转向。

####4 红外避障功能

左右两侧红外 HJ-IR2 块,分别朝向左前、右前放置,能探测到约 10cm 处的等高障 碍物 3。当检测到障碍物时,传感器输 电平,指示灯亮起,小车后退,向没有障碍的一 侧转向,继续前进。

####5 超声波避障功能(含舵机)

超声波传感器能够回传发送超声波和接收到返回信号的时间点,程序根据已知的声速, 计算时间差后经过简单的运算得出距离。

程序启动后,超声波传感器开始探测前方障碍的距离,当该距离小于安距离(可以自

由设置)时,程序通过 PWM 控制舵机伺服电机转向左右分别探测两侧的距离,加以比较, 转向相对更安全的一侧,继续直行,重复上述过程。

####6 磁轨控制

这个功能的灵感来源于上海电气自动化集团研发的数字轨道智能交通系统 4(iDRT),这是一种以磁钉为虚拟轨道,代替实体钢轨道,使有轨电车在其上行驶。

数字轨道智能交通系统(iDRT),以数字化磁标签(又称磁钉)为虚拟轨 道,以胶轮电车为车辆载体,采用现代有轨电车运营控制方式,具有轨道化、数 字化、智能化等系统优势。该系统具备循迹导向、全程定位、场景前瞻、电子地图、电子道岔选择、车辆运行管理等高级自动驾驶功能,能实现以“虚拟轨道” 和 “自动驾驶”为核心特征的交通运输新模式,拥有安全、精准、高效、轻量的显著特点。

这个功能完全以此iDRT技术为蓝本,通过贴在地上的强磁片作为向小车发送指令“轨道”,N/S-霍尔传感器作为接收器,每块磁铁都有N/S两种信息,这样我们就可以通过多块 磁铁纵向组合编码,横向左右两侧传感器分别编码,向小车传递多种指令,进而实现“磁轨控制”。

####7 红外遥控

采用通用零件:音乐播放器的红外遥控器,价格低廉,通过 lirc开源库,对红外二进制 数字信号解码,传入程序中控制小车前后左右四个方向移动、以及一个紧急停止按钮。

####8 遥感:

拥有两套摄像头遥感系统,支持超视距驾驶,驾驶员无需观察小车位置,在远端即可掌握所有情况,自由驾驶小车。

树莓派的OV5647摄像头组,通过 motion 开源监控软件,创建一个监控 local server, 可用于驾驶员第一视角驾驶小车,技术成熟稳定。

小车上还有一套大疆Osmo Pocket超高清云台摄像机系统,通过无线电图传系统实时 由远端驾驶员控制,拥有三自由度物理增稳云台,同时支持云台遥感控制,影像模组最大支 持 4K60/2.7K120 录制,同时可以拍摄 165 度超广角照片,方便驾驶员观察周围环境,灵活 判断驾驶情况,扩展性强。

同时这套图传系统也用到了远端计算机视觉服务器对红绿灯的判断中,进一步介绍请看 后续的说明。

####9 计算机视觉红绿灯视觉识别系统

此部分篇幅较长,因为除了这套视觉识别系统在小车上的应用实现路径外,还介绍了详细的 模型配置部署、以及数据集训练模型的具体方法,可作为视觉图像识别模型训练的一般参考。

#####1. 深度学习环境搭建

选择了 YOLO这一成熟的技术。

由于图像识别算法的模型训练时,需要使用大量的 GPU 计算资源,因此我在使用笔记本 3060 显卡尝试后,被恐怖的模型训练时长劝退,果断选择了服务器租赁方案。 我在中科视创的 Auto-DL计算云平台租赁了一套搭载两张A40显卡的训练服务器,为了节约成本,可以在配置环境时关闭 GPU,选择无卡模式运行。为了更好的管理复杂的 Python 虚拟环境,我使用了Anaconda作为环境管理配置器。在配置环境时,显然直接pip install - r requirements.txt 这条指令在这样庞大而复杂的模型中是必然会出错的,因为 PyTorch 是 一个对版本极其敏感的库,它的版本取决于很多自变量:显卡型号、CUDA版本、系统版本、 Python 版本等等,为了确保环境安装的正确性,需要去PyTorch官网对照自己的自变量选 择对应的版本下载。其次,由于依赖的库实在太多,国内的镜像源往往不能完全满足,因此 需要反复换源直到将所有依赖获取。

当繁琐、令人崩溃的环境配置工作完成,我们应当会在终端看到一枚亲切的小火箭🚀标志,这代表着我们的 YOLO已经做好了运行的一切准备,已经被正确配置了

#####2. 数据集的制作

数据集是由很多张包含识别对象的照片构成的,每张照片都被打上了 label,也就是识 别目标物体在图片中的坐标位置信息。

我在五一放假前拍摄了上百张不同角度的红、绿灯照片,并将 label作为数据集

#####3. 模型训练

首先我综合考虑了识别精确度与性能的因素,选择了最为适合的 yolov5m 预处理型, 这种模型在精度显著提高的基础上,拥有最高的计算效率(见图 9.3.1)。

训练 200 轮后,趋于收敛,效果优异,完满足了红绿灯识别的需求(见图 9.3.2)。

#####4. 应用

受制于树莓派主板的运算能力与内存大小,该项功能暂时无法在我的树莓派中运行,下 面做了原理解释与一个 demo 拟真效果演示。

Yolo的detect.py程序可以接受系统的 webcam 推流,并且实时探测每一帧的图像,并 将探测到的结果打印到控制台、输出到指定 log 中,因此我们只需要正则匹配结果中的“RED” 和“GREEN”信息,即可实现小车对红绿灯的感应与反应。同时,在推流结束后,程序会将这 一段探测的录像保存到输出路径中。

所附视频即一个 demo 拟真效果展示。

图表 9.3.1

图表 9.3.2

RaspberryPi_CyberCAR

基于树莓派的四驱智能小车,低压直流电池组供电,安装多种传感器系统,实现黑线循迹、超声波避障、红外遥控、网络遥控遥感、磁轨控制、AI红绿灯识别 等功能。 The four-wheel drive smart car based on Raspberry PI is powered by low-voltage DC battery pack, and a variety of sensor systems are installed. The functions that have been realized are: black line tracking, ultrasonic obstacle avoidance, infrared remote control, network remote control and remote sensing, magnetic track control, AI traffic light recognition and other functions.

fb8f313a804179667c205d7232f0fea9d17d9e39

Footnotes

  1. 受制于树莓派主板的运算能力与内存大小,该项功能暂时使用 PC 运行,作拟真效果演示。

  2. 市面上霍尔传感器大多仅感应磁场强度,这里的定制传感器是购买的科技爱好者自行打板制作的南北极 传感器

  3. 理想情况实验室下,在外界光线不强时所得数据。

  4. iDRT_百度百科 (baidu.com) https://baike.baidu.com/item/iDRT/61518433?fr=aladdin =======

About

基于树莓派的四驱智能小车,低压直流电池组供电,安装多种传感器系统,实现黑线循迹、超声波避障、红外遥控、网络遥控遥感、磁轨控制、计算机视觉红绿灯识别 等功能。

License:MIT License


Languages

Language:C 95.3%Language:HTML 4.7%