一种小车自动驾驶方法与流程

文档序号:18408781发布日期:2019-08-10 00:43阅读:218来源:国知局
一种小车自动驾驶方法与流程

本发明属于自动化控制技术领域,具体涉及一种小车自动驾驶方法。



背景技术:

随着深度学习于2012-2013年在计算机视觉领域成为新的最优算法,并且最终在所有感知任务上都成为最优算法,业界开始将重心偏向它,而深度学习所属的人工智能因为硬件、算法、数据三种技术的飞跃,其已经进入了几十年来发展的最好时期。利用深度学习算法可以在农业养殖、安防保险、智能制造、汽车驾驶和交通等方面有深入的应用,不仅可以提高效率解决现有难题,更能拓展出新的产业。其中自动驾驶技术就是深度学习与汽车驾驶的结合,这是国际上正在进行研发且拥有巨大潜力的项目。社会各方面对于此项技术都抱有很大的关注和期望,主要体现在以下几个方面:

1.个体需求:开车本质上是一个需要保持长久视觉分析和肌肉反应的机械重复运动,这并非人类的长处也容易使人感到厌烦,而这恰恰是机器所擅长的。

2.市场需求:自动驾驶不仅可以应用于交通出行,对于物流运输、城市规划等都将产生根本性的革新。

3.资本需求:面前已经有大量资本流入自动驾驶涉及的大数据、新型传感器、深度学习技术等,资本的流动往往是行业发展最关键的催化剂,有投入就会要求回报,投资者会竭尽全力推动自动驾驶的发展。

4.社会需求:从现阶段美国、德国、中国等国家针对自动驾驶的政策来看,社会需求强烈,国家重视度极高。



技术实现要素:

本发明的目的在于提供一种实现电动小车自动驾驶的方法。

本发明一种小车自动驾驶方法,采用的自动驾驶车包括车身、车轮、电机和控制模块。四个车轮两两一组对中支承的车身上。四个车轮由四个电机分别驱动。csi摄像头安装在车身的头端。控制模块包括树莓派系统、csi摄像头和电机驱动电路。csi摄像头拍摄照片并传输给树莓派系统。电机驱动电路通过电机驱动器在树莓派系统控制下驱动电机。

该小车自动驾驶方法具体如下:

步骤一、搭建卷积神经网络。所述的卷积神经网络包括依次排列的输入层、五个卷积层、两个无状态层和两个密集层。

步骤二、将自动驾驶车放置到工作场地上,并通过人为控制的方式驱动自动驾驶车沿目标路线行驶。自动驾驶车行驶过程中摄像头每隔预设时间段拍摄一张路径图像,组成路径图像集。并将各路径图像分为四组,与四个标签分别对应。标签分别为前进、左转、右转、停止。

若路径图像在拍摄时四个电机同步等速正转,则该路径图像归入前进标签对应的图像组;若路径图像在拍摄时位于车身左侧的两个电机的转速低于车身右侧的两个电机的转速,则该路径图像归入左转标签对应的图像组;若路径图像在拍摄时位于车身右侧的两个电机的转速低于车身左侧的两个电机的转速,则该路径图像归入右转标签对应的图像组;若路径图像在拍摄时四个电机均停转,则该路径图像归入停止标签对应的图像组。

步骤三、用路径图像集训练步骤一中建立的卷积神经网络。

步骤四、将自动驾驶车放置到工作场地的目标路径上;摄像头持续拍摄被测照片。将被测照片输入卷积神经网络;卷积神经网络对被测图像进行识别和分类,确定被测图像与前进、左转、右转、停止标签各自的匹配概率。

若被测图像与前进标签的匹配概率最高,则四个电机同步等速正转。若被测图像与左转标签的匹配概率最高,则四个电机同步正转,且车身左侧的两个电机的转速低于车身右侧的两个电机的转速;若被测图像与右转标签的匹配概率最高,则四个电机同步正转,且车身右侧的两个电机的转速低于车身左侧的两个电机的转速。若被测图像与停止标签的匹配概率最高,则四个电机均停转,此时视为已经到达终点。

进一步地,步骤一中的卷积神经网络通过keras深度学习库搭建。

进一步地,所述的输入层采用lambda层。前三个卷积层为5×5卷积层;后两个卷积层为3×3卷积层。五个卷积层最终输出的卷积核为64维的3×3矩阵。第一个无状态层采用dropout层。第二个无状态层采用flatten层。两个密集层均为全连接层。

进一步地,所述的目标路线呈环形。

进一步地,步骤二中,路径图像集内所有路径图像的分辨率均为120×160。

进一步地,所述的电机驱动电路包括电机驱动器。电机驱动器的型号为tb6612fng。电机驱动器的3、4、9及10引脚均接电阻r1的一端。电阻r1的另一端接地。电机驱动器的13、14、24引脚均接电容c1、电容c2及电容c3的一端。电容c1、电容c2及电容c3的另一端均接外部电压。电机驱动器的15及23引脚连接在一起,作为电机驱动电路的转速控制端;电机驱动器的17及21引脚连接在一起,作为电机驱动电路的第一转向控制端;电机驱动器的16及22引脚连接在一起,作为电机驱动电路的第二转向控制端;电机驱动器的1、5引脚作为电机驱动电路的第一电机控制接口。电机驱动器的8、12引脚作为电机驱动电路的第二电机控制接口。

所述的电机驱动电路共有两个。其中一个电机驱动电路的第一电机控制接口、第二电机控制接口与位于同一侧的两个电机的接口分别连接。另一个电机驱动电路的第一电机控制接口、第二电机控制接口与位于另一侧的两个电机的接口分别连接。

进一步地,所述树莓派系统的型号为bcm2837。树莓派系统的6、9、14、20、25、30、34及39引脚均接地,2及4引脚均接外部电压。树莓派系统的第一i/o口、第二i/o口、第三i/o口与其中一个电机驱动电路的转速控制端、第一转向控制端、第二转向控制端分别连接。树莓派系统的第四i/o口、第五i/o口、第六i/o口与另一个电机驱动电路的转速控制端、第一转向控制端、第二转向控制端分别连接。

进一步地,所述的自动驾驶车还包括电池。所述的电池采用锂离子电池,其为控制模块和电机供电。

进一步地,所述csi摄像头的1至15引脚与csi接口的15个接线端分别连接。csi接口插接在树莓派系统的摄像头接口上。

进一步地,所述的树莓派系统与上位机通过无线网络通信。

本发明具有的有益效果是:

1、本发明能够在不铺设物理寻迹条的情况下,实现小车的自动沿轨迹行进,进而能够大大降低agv小车自动导航等应用场景的轨道铺设成本。

2、本发明能够同时存储多个路径数据集,从而能够使得小车能够在多条轨迹中自由切换,克服了常规的沿轨迹自动驾驶小车只能沿固定轨迹的缺陷。

附图说明

图1为本发明的系统框图;

图2为本发明中电机驱动电路的电路原理图;

图3为本发明中树莓派系统的电路连接图;

图4为本发明中卷积神经网络的系统框图。

具体实施方式

以下结合附图对本发明作进一步说明。

如图1所示,一种小车自动驾驶方法,采用的自动驾驶车包括车身、车轮、电机、电池2和控制模块。四个车轮两两一组对中支承的车身上。四个车轮由四个电机分别驱动。电池2采用锂离子电池,其为控制模块和电机供电。csi摄像头5固定在车身的头端。控制模块包括树莓派系统3、csi摄像头5和电机驱动电路4。树莓派系统3与上位机1通过无线网络通信。csi摄像头5拍摄照片并传输给树莓派系统3。电机驱动电路4通过电机驱动器u1在树莓派系统3控制下驱动电机。

如图2所示,电机驱动电路4包括电机驱动器u1。电机驱动器u1的型号为tb6612fng。电机驱动器u1的3、4、9及10引脚均接电阻r1的一端。电阻r1的另一端接地。电机驱动器u1的13、14、24引脚均接电容c1、电容c2及电容c3的一端。电容c1、电容c2及电容c3的另一端均接外部电压vcc(5v电压)。电机驱动器u1的15及23引脚连接在一起,作为电机驱动电路4的转速控制端;电机驱动器u1的17及21引脚连接在一起,作为电机驱动电路4的第一转向控制端;电机驱动器u1的16及22引脚连接在一起,作为电机驱动电路4的第二转向控制端;电机驱动器u1的1、5引脚作为电机驱动电路4的第一电机控制接口。电机驱动器u1的8、12引脚作为电机驱动电路4的第二电机控制接口。

电机驱动电路4共有两个。其中一个电机驱动电路4的第一电机控制接口、第二电机控制接口与位于同一侧的两个电机的接口分别连接。另一个电机驱动电路4的第一电机控制接口、第二电机控制接口与位于另一侧的两个电机的接口分别连接。同一电机驱动电路4连接的两个电机在图2中分别标为m1、m2。其中一个电机驱动电路4的转速控制端、第一转向控制端、第二转向控制端分别标为pwm、in1、in2。另一个电机驱动电路4的转速控制端、第一转向控制端、第二转向控制端分别标为pwm'、in1'、in2'。

如图3所示,树莓派系统的型号为bcm2837。树莓派系统的6、9、14、20、25、30、34及39引脚均接地,2及4引脚均接外部电压。树莓派系统的第一i/o口(36引脚)、第二i/o口(38引脚)、第三i/o口(40引脚)与其中一个电机驱动电路4的转速控制端pwm、第一转向控制端in1、第二转向控制端in2分别连接。树莓派系统的第四i/o口(33引脚)、第五i/o口(35引脚)、第六i/o口(37引脚)与另一个电机驱动电路4的转速控制端pwm'、第一转向控制端in1'、第二转向控制端in2'分别连接。csi摄像头5的1至15引脚与csi接口(插接件)的15个接线端分别连接。csi接口插接在树莓派系统3的摄像头接口上。

该小车自动驾驶方法具体如下:

步骤一、keras深度学习库搭建卷积神经网络。

本发明的神经网络是一种基于顺序的结构的简化算法,此算法应用于小车,可以有很好的稳定性和鲁棒性。算法结构图如图所示。

如图4所示,卷积神经网络包括依次排列的输入层、五个卷积层、两个无状态层和两个密集层。输入层采用lambda层。lambda层中,彩色图像数据张量每个元素的形状为(120,160,3),且取值区间在[0,255],为了防止较大的梯度更新,导致网络无法收敛,对每个输入元素进行归一化处理使其范围在[-0.5,0.5],使其适配同类型的网络结构,并且加速模型在gpu上的训练。

前三个卷积层为5×5卷积层(其卷积窗口为2×2);后两个卷积层为3×3卷积层。五个卷积层最终输出的卷积核为64维的3×3矩阵。第一个无状态层采用dropout层,其在训练过程中每次更新参数时随机断开50%的输入神经元连接,防止模型开始学习仅仅和训练数据相关的模式,这种模型对于验证数据来说是错误的。第二个无状态层采用flatten层,其用来将输入“压平”,即最终输入一维数据,用在从卷积层到全连接层的过渡。两个密集层均为全连接层,对张量进行elu(dot(input,kernel)+bias)运算,即将输入和该层的权重张量进行点积,然后加上偏置向量,这两层用来对卷积层提取到的特征进行训练并最终输出转向控制信号。elu是激活函数,它获取该层的输出并且将其作为输入送到下一层。由于简单的线性运算使每一层的假设空间非常有限,多个线性层堆叠实现的仍是线性运算,用激活函数引入非线性特性,就可以丰富假设空间充分利用多层表示的优势。第二个密集层能够输出4个元素的张量,表示图片分到这4个标签下的概率分别是多少,且概率总和为1。

步骤二、将自动驾驶车放置到工作场地上,并通过人为控制的方式驱动自动驾驶车沿目标路线行驶多次。目标路线呈环形(即起点和终点为同一个点)。自动驾驶车行驶过程中摄像头每隔t时间拍摄一张路径图像。将所有路径图像的分辨率均调整为120×160,并组成路径图像集。并将各路径图像分为四组,与四个标签分别对应。标签分别为前进、左转、右转、停止。

若路径图像在拍摄时四个电机同步等速正转,则该路径图像归入前进标签对应的图像组;若路径图像在拍摄时位于车身左侧的两个电机的转速低于车身右侧的两个电机的转速,则该路径图像归入左转标签对应的图像组;若路径图像在拍摄时位于车身右侧的两个电机的转速低于车身左侧的两个电机的转速,则该路径图像归入右转标签对应的图像组;若路径图像在拍摄时四个电机均停转,则该路径图像归入停止标签对应的图像组(该图像为目标路线)。

进而通过设定标签的方式使路径图像和行驶方向形成对应关系,每一对参数都是训练学习模型所需要的示例。

步骤三、用路径图像集训练卷积神经网络。

步骤四、将自动驾驶车放置到工作场地的目标路径上;摄像头持续拍摄被测照片。将被测照片输入卷积神经网络;卷积神经网络对被测图像进行识别和分类,确定被测图像与前进、左转、右转、停止标签各自的匹配概率。

若被测图像与前进标签的匹配概率最高,则四个电机同步等速正转。若被测图像与左转标签的匹配概率最高,则四个电机同步正转,且车身左侧的两个电机的转速低于车身右侧的两个电机的转速;若被测图像与右转标签的匹配概率最高,则四个电机同步正转,且车身右侧的两个电机的转速低于车身左侧的两个电机的转速。若被测图像与停止标签的匹配概率最高,则四个电机均停转,此时视为已经到达终点。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1