基于树莓派的智能驾驶辅助系统

部署运行你感兴趣的模型镜像

基于树莓派和执行器网络的智能驾驶辅助系统

摘要

车辆在开发后的测试与认证通常在底盘测功机试验台上进行。本文提出一种基于云计算、嵌入式工具和电动执行器的智能实时驾驶辅助系统,适用于手动变速传动系统车辆的测试。针对车辆离合器驱动,采用连接至高扭矩步进电机的机械腿执行器,由运行在树莓派4上的Python代码控制,并通过智能网络连接,实现用户界面仪表板和数字化工作系统的远程控制,从而借助云计算实现数据连接。通过应用该网络结构,研究了利用免费云基础设施实现智能驾驶辅助系统的可行性,其中硬件设置在马来西亚,而控制来自德国。该原型所依赖的框架涵盖了数据处理、制造、机械学、网络、嵌入式系统和执行器等多个工程领域,可应用于在底盘测功机上测试车辆的智能驾驶辅助系统,且延迟低于1秒。

1. 引言

通常,底盘测功机用于在新开发的车辆完全组装后进行测试和认证,主要用于评估发动机和动力总成性能的不同方面[1],[2]。噪声排放、尾气排放、发动机性能、燃油消耗和电磁兼容性是试验中常见的测试参数[3]。近年来,由于经济因素、操作简便性、可靠性、可重复性,以及随着技术进步实现完全自动化的可能性,底盘测功机相较于道路测试更受研究和工业领域的青睐[4]。此外,当测试在气候室或高原模拟舱内进行时,底盘测功机还可在不同且预设的环境条件下进行瞬态试验[5]。另外,与道路测试相比,底盘测功机更容易集成多种设备,如排放测量设备、负载控制和数据采集系统[6]。

试验通常通过使用机器人装置来实现自动化,该装置可替代驾驶员[4],[7]的功能。机器人装置的任务通常包括操作制动器、控制施加到加速踏板的力以及离合器踏板的接合,并在一定程度上操纵换挡杆以进行换挡。通常在运行时,必须遵循预定义的速度曲线以及相应的换挡策略,以在底盘测功机试验台上进行自动化测试试验,其中控制工程面临的挑战在于将执行器作为车辆与驾驶员控制器闭环中的操纵变量加以考虑。驾驶员控制器需要被开发以处理构成多个叠加控制器的不同任务,这些控制器负责处理诸如起步、加速、换挡、减速和停车等程序。整个远程程序的控制可以通过实施物联网(IoT)方法来实现。这对于开发团队来说可能是有益的,使其能够访问测试设施而无需亲自到达试验台。这一点非常重要,可以实现跨国合作,而跨国合作正是推动该领域技术变革的主要驱动力。

本研究提出了一种概念框架,旨在通过云计算、传输机制、嵌入式工具和电动执行器,在测试中的手动变速传动系统车辆上实现智能实时驾驶辅助系统。该嵌入式工具作为客户端,用于从云代理获取信号,并处理这些信号以控制机械腿的运动和速度,从而实现离合器踏板的接合与分离。在亚洲进行的硬件设置试验,通过与位于欧洲的数据物联网代理交换数据来完成。

2. 方法论

2.1. 消息队列遥测传输(MQTT)消息协议

本文实现的传输机制使用了消息队列遥测传输(MQTT)消息协议,该协议允许系统通过一种称为发布-订阅的知名范式来减少发送的总数据量。对于在汽车实验室中具有受限设备、低带宽、高延迟和可靠网络(如底盘测功机)的系统而言,MQTT协议非常适用,因为它是一种非常简单且轻量级信息传输机制[8]。由于MQTT的设计旨在最小化网络带宽和设备资源需求,同时确保可靠性以及一定程度的传输保障,因此将MQTT应用于对延迟敏感且电池电量消耗较低的驾驶辅助系统被认为是理想的。

用于发送数据的设备可以在特定主题上发布数据,而对这些信息感兴趣的设备或服务则可以订阅相关主题。在这两类实体之间还存在另一个称为代理服务器的实体,负责将消息更新传递给订阅者。如图1所示,该框架由多个组件构成:作为发布者的GUI浏览器Cayenne、作为订阅者的本地监控器和树莓派,以及位于云中的HiveMQ作为代理服务器。树莓派作为MQTT客户端,其通信协议采用Python编程语言编写。实现了Python MQTT客户端类,提供了发布消息和订阅主题所需的函数。代码中使用了paho mqtt客户端类中的方法,如connect、disconnect、subscribe、unsubscribe和publish。

本项目中使用的树莓派4需要订阅通信协议中创建的主题,以便发送和接收数据,即目标速度、离合器位置,并回传车载诊断系统(OBD)数据,如实际速度和每分钟转数(RPM)。树莓派操控的MQTT信号将用于控制一个步进电机,该步进电机通过图2所示的电路连接至离合器踏板。

示意图0

示意图1

2.2. 机械腿

机械腿机构由高扭矩步进电机驱动。本项目采用步进电机型号Nema 34,以克服将离合器踏板推至最高点所需的扭矩τ。当离合器踏板在不同角度被踩下时,扭矩的测量与计算结果列于表1中。Fm 为踩下离合器踏板至最大位置时测得的垂直于离合器踏板的测量力,而Fx 和Fy 是将力分解后的两个力的分量矢量。杠杆角度和推杆长度是连杆机构的几何参数,通过运动学将步进电机的力传递至离合器踏板,模拟人类驾驶员的步态。

踏板角度 (°) Fx (N) Fy (N) 杠杆角度 (°) 推杆长度 (mm) Fm (N) τ(Nm)
30 129.90 75.00 60 175 173 30.28
40 114.90 96.42 50 136 175 26.52
45 106.06 106.06 45 124 212 26.29
60 75.00 129.90 30 101 300 30.30

2.3. 实时监控

所开发的驾驶辅助系统通过基于Web的图形用户界面(GUI)Cayenne实现。通过拖放功能生成的仪表板包含用于离合器位置控制的滑块和用于车速的仪表,如图3所示。

示意图2

为了使底盘测功机配备驾驶辅助系统,应制造如图4所示的平台,以容纳所有子系统,即包含树莓派4和电子元件的电子外壳、由110伏直流电驱动并配有10:1传动比齿轮箱的电机机构(步进电机)以及连杆机构(推杆和踏板夹具)。该硬件平台被组装起来,以便在手动变速传动系统车辆上实现系统的改装能力,而无需进行可能损坏汽车物理结构的重大改装。

示意图3

表2提供了测试车辆(Perodua Myvi 1.3升手动挡汽车)的规格。该车参考质量为955公斤,最大质量为1,015公斤。总排量为1298立方厘米,额定最大功率和扭矩输出分别为69千瓦 @6000转/分钟和121牛·米@3200转/分钟。

车型 Perodua Myvi,5速手动变速箱,前轮驱动
生产年份 2017年(标准汽油95辛烷值)
参考/最大质量 955 / 1,015公斤
发动机类型 1.3升 1NR-VE
额定最大功率 69千瓦(93马力)
额定最大扭矩 121牛·米
气缸数 直列四缸

2.4. 案例研究

实验在马来西亚彭亨州北根的UMP汽车卓越中心(AEC)进行了实验,该底盘测功机已通过欧洲标准认证。测试车辆固定在一台17.8英寸滚筒野马测功机上。本研究为概念性研究,车辆在无驾驶循环条件的情况下进行驾驶,因为本研究的目的仅仅是考察安装在被测车辆上的驾驶辅助系统在底盘测功机上的功能表现。图5展示了在野马底盘测功机试验台上的实验设置。实验试验中聘请持证驾驶员执行切换和加速操作。实验过程中记录了MQTT客户端与MQTT代理之间通信协议的延迟情况。

示意图4

3. 结果与讨论

实验结果在两个子章节中呈现,分别是(1)通信协议框架的功能和(2)驾驶辅助系统在底盘测功机试验台上进行驾驶循环测试的可靠性。

通过分析MQTT在代理端的订阅者节点的延迟性能,对MQTT的性能进行了评估,以突出所提出通信协议的效率。结果如表3所示。

实体 设备 位置
发布者 Cayenne 德国卡尔斯鲁厄
订阅者 树莓派4 马来西亚彭亨州北根
代理服务器 HiveMQ BW Cloud

延迟:765 毫秒

实验结果表明,使用Python语言编写的MQTT通信协议能够执行油门踏板按压程序,并实现低于1秒的延迟,这与Mukherjee、Dey和De[9]发布的结果相似,他们在增强型MQTT-SN(传感器网络)情况下获得了平均消息传输性能提升30%,在增强型MQTT情况下获得了17%的性能提升,延迟为15.5毫秒。Cayenne Web服务器仪表板上显示的数据还表明,可以实时准确地获取与速度曲线、速度、油门踏板、离合器位置相关的可靠信息。

在测试车辆内改装驾驶辅助系统的试验结果得出了推杆的位置和行程距离,如图6所示。硬件平台的固定装置基于有限元分析进行设计,用于研究当在推杆末端(连接脚踏板)施加轴向力时,以及硬件在与驾驶员座椅现有固定位置对齐的硬件框架不同位置上固定时,平台的变形情况。实验表明,若推杆在待机状态下的位置为0°,则中点为6°,终点为52°。而在推杆推动过程中,其行程距离在待机状态、中点和终点分别为0 mm、105.2 mm和210.4 mm。

示意图5 离合器完全接合时的结束位置。)

4. 结论

本文提出了一种概念框架,旨在通过MQTT通信协议、Python、树莓派4以及与带齿轮的步进电机相连的推杆,实现针对配备手动变速传动系统的车辆在底盘测功机测试中的离合踏板控制智能实时驾驶辅助系统。结果表明,位于不同大洲(即亚洲和欧洲)的MQTT客户端之间采用MQTT通信协议通信时存在高延迟(< 1秒)。该系统可通过车辆驾驶员座椅现有的固定装置进行改装,从而轻松应用于手动变速传动系统的车辆排放研究或发动机性能评估。未来,可通过增加加速踏板的电动系统,实现被测车辆在底盘测功机上的完全物联网驾驶辅助系统。此外,还可对硬件、软件及车载诊断系统(OBD)实现实时MQTT应用,以验证该系统的效率。

您可能感兴趣的与本文相关的镜像

Stable-Diffusion-3.5

Stable-Diffusion-3.5

图片生成
Stable-Diffusion

Stable Diffusion 3.5 (SD 3.5) 是由 Stability AI 推出的新一代文本到图像生成模型,相比 3.0 版本,它提升了图像质量、运行速度和硬件效率

### 3.1 疲劳驾驶检测系统的实现方式概述 基于树莓派的疲劳驾驶检测系统通常采用嵌入式硬件平台,结合摄像头模块、图像处理算法以及传感器数据进行综合判断。树莓派作为主控单元,可以运行轻量级的图像识别模型,例如基于OpenCV的人脸检测与眼部状态识别,或使用TensorFlow Lite等模型进行深度学习推理。该系统可以通过USB摄像头或树莓派官方摄像头模块采集驾驶员面部图像,并结合红外传感器、陀螺仪等硬件进行多模态融合判断[^1]。 基于机器视觉的疲劳驾驶检测系统则更侧重于纯视觉算法,通常部署在性能更强的计算平台,如PC、嵌入式GPU设备(如NVIDIA Jetson)或云端服务器。这类系统通常采用更复杂的深度学习模型,如YOLO、ResNet、MobileNet等,能够实现更高的识别精度和更丰富的功能,例如面部关键点检测、头部姿态估计、打哈欠检测等。此外,这类系统还可以结合多摄像头输入(如车内监控和前方道路监控)进行行为分析[^2]。 ### 3.2 系统实现方式对比 | 项目 | 基于树莓派的系统 | 基于机器视觉的系统 | |------|------------------|--------------------| | 硬件平台 | 树莓派(Raspberry Pi 3/4、Compute Module) | PC、嵌入式GPU设备、云端服务器 | | 图像处理能力 | 中等,适合轻量级模型(如OpenCV、TensorFlow Lite) | 高,支持复杂模型(如YOLOv5、ResNet) | | 实时性 | 一般,受限于CPU性能 | 高,尤其在GPU加速下表现优异 | | 成本 | 低,适合嵌入式部署 | 高,尤其在使用GPU设备时 | | 可扩展性 | 中等,受限于硬件接口与性能 | 高,可扩展多摄像头、多传感器 | | 能耗 | 低,适合车载低功耗场景 | 高,尤其在GPU设备上 | | 安装与部署 | 易于集成到车载系统中 | 通常用于实验室或高性能场景 | ### 3.3 基于树莓派的系统实现方法 树莓派平台适合构建低成本、低功耗的边缘计算系统。以下是其典型实现步骤: 1. **硬件配置**:使用树莓派4B + Raspberry Pi Camera Module V2,搭配红外LED补光灯以增强夜间识别能力。 2. **环境搭建**:安装Raspberry Pi OS系统,配置OpenCV、TensorFlow Lite、dlib等库。 3. **图像采集与预处理**:使用OpenCV捕获视频流,进行灰度化、直方图均衡化、人脸检测等预处理。 4. **特征提取与判断逻辑**: - 使用dlib进行面部关键点检测,识别眼部区域。 - 计算眼睛纵横比(EAR)判断闭眼状态。 - 结合头部姿态估计判断低头或打哈欠行为。 5. **报警机制**:通过蜂鸣器或语音模块发出警报,同时可通过MQTT协议将数据上传至服务器进行远程监控。 ```python import cv2 import dlib # 初始化dlib人脸检测器和关键点预测器 detector = dlib.get_frontal_face_detector() predictor = dlib.shape_predictor("shape_predictor_68_face_landmarks.dat") # 计算眼睛纵横比 def eye_aspect_ratio(eye): A = cv2.norm(eye[1], eye[5]) B = cv2.norm(eye[2], eye[4]) C = cv2.norm(eye[0], eye[3]) ear = (A + B) / (2.0 * C) return ear cap = cv2.VideoCapture(0) while True: ret, frame = cap.read() gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) faces = detector(gray) for face in faces: shape = predictor(gray, face) # 提取眼部关键点 left_eye = [shape.part(i) for i in range(36, 42)] right_eye = [shape.part(i) for i in range(42, 48)] # 计算EAR left_ear = eye_aspect_ratio(left_eye) right_ear = eye_aspect_ratio(right_eye) ear = (left_ear + right_ear) / 2.0 if ear < 0.25: print("Warning: Eyes Closed!") ``` ### 3.4 基于机器视觉的系统实现方法 此类系统通常部署在高性能计算平台上,使用深度学习框架进行训练与推理。以下是其实现流程: 1. **数据采集**:使用多个摄像头采集驾驶员面部图像,结合真实驾驶场景数据集(如SEWA、AFLW、300W等)。 2. **模型训练**:使用PyTorch或TensorFlow训练多任务模型,联合预测眼部闭合、头部姿态、表情变化等。 3. **模型优化与部署**:将训练好的模型转换为ONNX格式或TensorRT模型,部署在嵌入式GPU设备上。 4. **多模态融合**:结合IMU传感器数据、方向盘操作频率等,提升判断准确率。 5. **实时反馈与报警**:通过车载显示屏或语音提示进行预警,并记录驾驶行为数据用于后续分析。 ```python import torch import torchvision.transforms as transforms from PIL import Image # 加载预训练模型 model = torch.load('fatigue_model.pth') model.eval() # 图像预处理 transform = transforms.Compose([ transforms.Resize((224, 224)), transforms.ToTensor(), transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]) ]) # 推理函数 def predict_fatigue(image_path): image = Image.open(image_path) input_tensor = transform(image).unsqueeze(0) with torch.no_grad(): output = model(input_tensor) return output.argmax().item() ``` ### 3.5 总结 基于树莓派的疲劳驾驶检测系统适合低成本、低功耗、易于部署的场景,尤其适用于车载嵌入式系统;而基于机器视觉的系统则更适合对精度和实时性要求更高的专业场景,如智能驾驶辅助系统(ADAS)。两者可以结合使用,例如在树莓派上运行轻量级模型进行初步判断,再通过边缘计算节点将关键帧上传至高性能平台进行深度分析,从而实现更全面的疲劳状态监控[^3]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值