APP下载

基于树莓派的车道保持小车系统设计

2020-09-10朱永强石炳明

内燃机与配件 2020年2期
关键词:树莓派摄像头

朱永强 石炳明

摘要:车道保持是基于各种传感器,当车辆接近识别到的标记线而且可能脱离行驶车道时,发出警报或者进行控制的系统,在无人驾驶过程中,是非常重要的环节。本文基于树莓派3B+,利用摄像头设计搭建了智能小车,用Python语言编写了车道保持算法。实验表明,该小车系统可以完成在规定赛道内保持车道行驶,具有较好的响应。

关键词:摄像头;树莓派;车道保持;Python

0  引言

随着无人驾驶技术的成熟,车道保持系统也发挥着越来越重要的作用。车道保持系统可以使车辆维持在正确既定的道路上,保证驾驶的安全性[1]。树莓派是一款基于Debim Linux系统的嵌入式计算机,具有体积小,集成化程度高,扩展性强,易于上手的优点[2],非常适合作为智能小车的主控板实现智能控制的功能。本文基于树莓派3B+,完成小车在规定赛道内的自动车道保持行驶。

1  硬件搭建

小车系统主要包括底盘系统,控制系统,摄像头,电源。其中底盘系统包括4个轮子,4个电机以及底盘支架;控制系统包括主控板树莓派3B+以及双路直流电机驱动板模块L298N;电源包括移动电源和四节干电池组成的6V电源。如图1所示。

其中摄像头获取赛道信息,通过USB接口将信息传输到树莓派里,树莓派里已经编写烧录好的程序会根据收到的当前赛道信息,计算得出小车的转向参数,并将信号传输给直流电机驱动板模块L298N,L298N根据模块的输入输出规则,控制电机的转动。

本文实验电机驱动采用PWM值驱动,PWM值在[0,100]范围内,PWM值越接近100,电机转速越快。而该电机驱动模块L298N是双路驱动模块,所以只能驱动两个电机。在本文实验中,将同侧的两个电机串联在一起,接收同一个信号。当L298N输出的两路信号相同,则小车实现向前直线行驶或向后直线行驶;当L298N输出的两路信号不同,则小车左右轮转速不同从而实现差速转向功能。小车具体转向角的大小由左右轮差速大小决定。

2  算法介绍

本文使用Python语言基于OpenCV模块编写车道保持算法。算法流程如图2所示。

该算法中,对摄像头获取的图像单取第240行像素,即把摄像头当作线阵摄像头使用,在经过灰度化和二值化处理后,第400行像素只有白色点和黑色点,像素值分别为255和0。本实验赛道是在白色地面上铺上黑色賽道线,所以当检测到像素值0时,即检测到了赛道。对于双车道线来说,会有四次黑白像素值的跳变,四次跳变位置的中点即赛道的中点。小车摄像投的拍摄像素是640*480,所以图像的中点位置即320,当摄像头安装在小车正中央时,小车的位置即为320。则赛道的中点位置与320的偏差,即小车与赛道中点的偏差。

当偏差过大时,说明小车可能即将脱离赛道,此时小车停止;当偏差较小时,为保持小车行驶的稳定性,使小车继续直线行驶;当偏差在一定范围内时,小车需要转向,基于偏差越大,转向角越大的经验,偏差值与ΔPWM之间近似存在线性关系。由于本实验中,小车转向的偏差值范围为[100,320],ΔPWM的范围为[30,100],所以有如下关系:

为防止转弯时左右轮转速变化较大,本文选择的PWM差值分配方法是让一个轮子速度不变,另一个轮子加上PWM差值[3]。当小车左转时,右轮加上ΔPWM;当小车右转时,左轮加上ΔPWM。

3  实验验证

为了验证算法的有效性,本文进行了小车在封闭双车道线的实物实验。在实验过程中,通过调试选取的像素值的行数与小车摄像头的俯仰角,最后完成了小车的车道保持功能。最终选取的像素为第400行像素,通过调试分析,选取较远的像素会导致小车响应超前,造成提前转弯;选取过近的像素会导致小策划震荡剧烈。选取一段视频,利用Tracker软件和Matlab绘制轨迹如图3所示。

参考文献:

[1]张海林,罗禹贡,江青云,李克强.基于电动助力转向的车道保持系统[J].汽车工程,2013,35(06):526531,525.

[2]石子昊,夏佳宁.基于树莓派和Python的智能家居控制系统的设计[J].计算机产品与流通,2019(12):120.

[3]刘汉忠,俞鹏,谢秦韬.基于CCD的循迹机器人小车模糊控制方法研究与实现[J].现代电子技术,2019,42(09):95-97,102.

猜你喜欢

树莓派摄像头
智能安全防盗探测小车
一种电脑专用摄像头
基于嵌入式技术的农村医疗系统设计
无法开启摄像头的解决方案
购买摄像头的经验
找出摄像头花屏的“罪魁祸首”