BP神经网络算法在“摇头”避障小车中的应用

2020-05-23 03:04:40任帅男王庆辉
沈阳化工大学学报 2020年1期
关键词:隐层训练样本小车

任帅男,王庆辉

(沈阳化工大学 信息工程学院,辽宁 沈阳 110142)

在智能小车领域,避障技术是智能小车最基本也是比较关键的一项技术,涉及嵌入式、传感器、信息融合、自动控制以及人工智能等多种技术[1].近年来,随着人工智能技术的不断发展,智能控制系统得到了广泛的应用.神经网络算法是人工智能领域举足轻重的成员,其发展融合了多个学科,如心理学、计算机科学、生理学等[2],该算法可以处理难以用模型或规则描述的过程或系统,无需知道控制对象的结构及参数,具有较强的信息融合能力,并且在实际应用中便于硬件实现,很适合应用在智能小车的避障领域.现阶段一些智能小车虽实现了避障目的,但多数研究采用摄像头作为避障传感器,不仅成本较高,而且适用环境局限性较强,还有部分研究使用固定安装位置的传感器利用传统算法进行避障处理,鲁棒性较差.本研究使用神经网络算法进行深度实践,将超声波测距传感器动态采集到的数据进行融合,不仅达到了精准避障的目的,又具有结构灵活、成本低、鲁棒性强、扩展性好等优点.

1 硬件结构及采样方法

1.1 硬件结构

小车的硬件结构实物如图1所示.

图1 “摇头”避障小车硬件平台

小车主体为两轮平衡车,两轮平衡车相对于传统四轮车转向灵活,并可实现原地转向动作,不需要转向空间,在复杂环境中避障效果好,适合作为避障小车的载体.传感器选用超声波测距模块,该模块相比于摄像头具有成本低廉、性能稳定的优势,并且能够在无光环境下正常工作.传统智能避障小车传感器安装在固定位置,不但成本大大提高,而且方位固定,有测量死角,可拓展性差[3].该模块搭载在舵机上与之协同工作,能够采集各个方向角的距离信息,具有成本低、位置准确、控制灵活等优点.

1.2 采样方法

采样频率决定小车避障效果,采样频率越高,小车避障效果越好,但是会使小车运行速率降低,占用系统资源,增加运算负担,采样频率太低则会使避障效果变差,甚至导致算法失效,所以选择合适的采样频率尤为重要.

拟定仿真距离单位为毫米,如图2所示,为了便于仿真验证,小车看做匀速运行,每运行1 000 mm采样一次,采样过程中,舵机从左侧平行小车方向为第1个采样点,带超声波测距传感器旋转每30°读取一次距离数据,直到旋转到右侧平行小车方向为最后一个采样点为止,一共7个距离信息.在这里,假定超声波传感器距离采样最大值为5 000 mm.采样结束后,通过神经网络算法输出相对偏转角来矫正小车运行方向.

图2 避障小车采样方法

2 BP神经网络

BP神经网络是一种单向传播的多层前向网络,其基本结构如图3所示.BP神经网络包括输入层、隐层和输出层,上下层之间实现全连接,而每层神经元之间无连接[4].

图3 BP神经网络结构

2.1 系统输入输出的确立

以小车“摇头”时采集到的7组距离数据为神经网络的输入,如图2所示,从0°到180°记做x1、x2、x3、x4、x5、x6、x7.以相对偏转角即小车下一时刻运动方向与小车现时刻左侧平行方向的角度记做α作为神经网络的输出.最终确立系统神经网络为7输入1输出.

2.2 系统神经网络隐层节点数的确立

神经网络隐层节点数对于神经网络至关重要.节点数不能太大,也不能太少,太大将增加计算的复杂度,太少则难以训练神经网络[5].节点数的确定一般先通过经验公式生成,然后观察训练结果再进行调整.常用的经验公式为[6]

nimplicit=2ninput+1.

式中:nimplicit为隐层神经元个数;ninput为输入神经元个数.

3 数据处理及算法训练

3.1 仿真训练环境

BP神经网络是通过学习样本的输入对各个链接神经元的权值进行修正,通过不断的误差逆传播修正使网络对输入模式响应的正确率不断上升,所以提供一组正确合理的训练样本尤为重要.如图4所示,模拟了一个训练环境,小车运动轨迹是根据经验人为绘制,通过该运行轨迹小车能够由起点无碰撞的到达终点.

以该经验运行轨迹通过2.2节所介绍的采样方式统计出来的数据为训练样本,如表1所示.

图4 避障小车训练环境及经验轨迹

表1 避障小车训练样本

3.2 数据归一化

为避免不同数量级的数据互相影响,神经网络训练样本数据需要进行归一化处理,本系统采用Matlab中的mapminmax函数对数据进行归一化处理,数据存储在矩阵input和output中.

3.3 构建BP神经网络

Matlab中有神经网络工具箱可供使用,工作区输入nntool调出神经网络工具箱,将训练样本导入工具箱,新建神经网络,选择BP神经网络,Trainbfg函数作为训练函数,Learngdm作为学习函数,性能函数为MSE,层数为3层,分别构建隐层为5个节点、18个节点以及30个节点的神经网络,之后分别导入训练样本进行训练,训练结果如图5、图6和图7所示.通过这3种典型的节点数训练结果对比,5个隐层节点的神经网络经过32个训练周期才完成训练,训练周期较长,最佳验证性能在第26周期,均方误差为0.051 009°;30个隐层节点的神经网络经过15个训练周期完成训练,最佳验证性能在第9训练周期,均方误差较大,达到了0.252 38°;18个隐层节点的神经网络仅用7个周期就完成了神经网络的训练,并且最佳验证性能在第1个训练周期,均方误差较小,为0.017 327°,效果最佳.选择合适的隐层节点对系统的训练结果有很大影响,不能太多,也不能太少,此系统中选择18个隐层节点的训练结果作为小车的神经网络算法.

图5 5个隐层节点训练结果

图6 18个隐层节点训练结果

图7 30个隐层节点训练结果

4 系统仿真验证

为验证算法的可行性,模拟了如图8所示的仿真环境,其中不仅变换了障碍物的位置和距离,在小车运行途中还随机加入了不同形状的障碍物来模拟非结构化环境,将小车所处环境下传感器采集到的距离数据输入到训练好的神经网络中进行分析,得到小车的模拟运行轨迹.由图8可以看出:小车可以从起点无碰撞的安全到达终点,并且选择的路线较为合理,对障碍物的识别能力较高.

图8 避障小车在陌生环境下的运行轨迹

5 结 论

本文以两轮平衡小车为主体,通过单超声波传感器配合舵机协同工作,使数据采集更加灵活多变.训练样本简单易得.利用BP神经网络算法进行数据融合,仿真验证了算法的可行性.此外,本文只列举了一种采样方法,在实际应用中可改变采样方式比如增加采样频率,增加采样角度个数都可以适应更复杂的非结构化环境,同时只需要改变神经网络的输入量和隐层节点数便可以完成对小车的算法升级.

猜你喜欢
隐层训练样本小车
大车拉小车
快乐语文(2020年36期)2021-01-14 01:10:32
自制小车来比赛
科学大众(2020年17期)2020-10-27 02:49:02
人工智能
基于RDPSO结构优化的三隐层BP神经网络水质预测模型及应用
人民珠江(2019年4期)2019-04-20 02:32:00
刘老师想开小车
文苑(2018年22期)2018-11-19 02:54:18
两轮自平衡小车的设计与实现
电子制作(2018年8期)2018-06-26 06:43:02
宽带光谱成像系统最优训练样本选择方法研究
融合原始样本和虚拟样本的人脸识别算法
电视技术(2016年9期)2016-10-17 09:13:41
基于稀疏重构的机载雷达训练样本挑选方法
基于近似结构风险的ELM隐层节点数优化
计算机工程(2014年9期)2014-06-06 10:46:47