郝丽英,宋起超
(1.黑龙江工程学院 学术理论研究部,黑龙江 哈尔滨 150050;2.黑龙江工程学院 电气与信息工程学院,黑龙江 哈尔滨 150050)
基于神经网络的移动机器人预瞄轨迹跟踪控制算法研究
郝丽英1,宋起超2
(1.黑龙江工程学院 学术理论研究部,黑龙江 哈尔滨 150050;2.黑龙江工程学院 电气与信息工程学院,黑龙江 哈尔滨 150050)
轨迹跟踪控制是移动机器人运动控制中很复杂的问题。针对该问题,设计一种基于神经网络的预瞄轨迹跟踪控制算法。为了保证机器人具有较好的轨迹跟踪性能,借鉴驾驶车辆的预瞄模型,即控制驱动轮输出转矩,使得机器人在预瞄时间内到达预瞄位置。建立移动机器人动力学方程,搭建移动机器人动力学simulink模型,通过仿真获取在移动机器人不同状态下的实验数据。采用BP神经网络对实验数据进行训练,对驱动轮的驱动扭矩进行控制。最后通过仿真实验对该轨迹跟踪控制算法的有效性进行验证。
移动机器人;轨迹跟踪;神经网络;预瞄轨迹
轨迹跟踪控制是移动机器人运动控制中很复杂的问题[1]。移动机器人的轨迹跟踪是指移动机器人跟踪事先规划好的一条以时间为函数的曲线轨迹[2]。近年来,国内外对移动机器人的轨迹跟踪问题进行了大量的研究,并提出了很多基于运动学模型的轨迹跟踪控制算法,包括神经网络控制、神经模糊控制等[3]。但是这些基于运动学模型的控制算法没有考虑到移动机器人的动力学问题。这些轨迹跟踪算法从车轮的转速出发,通过控制驱动轮按照预期的转速来实现机器人的轨迹跟踪问题。然而在实际问题中,移动机器人在运动过程中,由于惯性、摩擦等因素的存在,机器人动力学的影响,使得机器人并不能按照预期的轨迹运动[4]。为了提高控制算法的鲁棒性,设计一种具有很强的鲁棒性的控制算法具有很大的意义。
移动机器人采用后轮驱动,前轮为万向轮,其转向方式为差速转向。机器人之所以能够在地面上自由地运动是因为牵引力的存在。将机器人驱动轮上的牵引力分为纵向分力和横向分力,如图1所示。纵向分力与车轮的驱动扭矩成正比,该驱动扭矩来自驱动电机。在这两个力的作用下,机器人会向前或向后运动。在加速或减速的同时,机器人需要较大的驱动扭矩。如果纵向分力超过了动摩擦力,机器人会发生纵向滑动。当机器人改变运动方向时产生的离心力,会形成横向牵引力[5-7]。
图1 移动机器人
移动机器人的运动通过驱动轮的转速或者驱动扭矩进行控制。与wr分别表示左右两侧驱动轮角速度,u表示移动机器人纵向速度,v表示移动机器人横向速度,r表示移动机器人横摆角速度。移动机器人的运动学模型为
(1)
(2)
(3)
ul=Rwl,
(4)
ur=Rwr.
(5)
式中:ul和ur分别表示左右两侧驱动轮纵向速度,b表示驱动轮中心到几何中心线的距离,d表示驱动轮到质心的距离,R表示驱动轮半径。
在移动机器人坐标系中,航向角在世界坐标系中的描述为
(6)
(7)
考虑到移动机器人在平面运动中,具有3个自由度。建立基于牛顿方程的移动机器人动力学方程为
(8)
(9)
(10)
(11)
(12)
式中:m为机器人的质量;Px,Py分别表示作用于机器人质心处的外力;Iz表示机器人相对于Z轴的转动惯量;Ie表示机器人轮子以及传动装置的转动惯量;τL,τR分别表示机器人左右两侧驱动轮的驱动扭矩。
将式(1)~(8)带入到式(9)~(13)中,得到移动机器人动力学方程
(13)
式中:Ωu=mR2+2Ie,Ωr=2b2Ie+R2(md2+Iz),τu=τL+τR,τr=τL-τR。
在以上分析基础上,搭建移动机器人动力学模型如图2所示。
图2 移动机器人动力学模型
2.1BP神经网络模型
人工神经网络(Artificial Neural Networks)是简化模拟生物神经系统的组织结构、处理方式和系统功能的一类人工智能系统,在模式识别、信号处理和机器人及非线性控制等领域有着广泛的应用[8-9]。BP前向神经网络模型的特点是信号前向传递,误差反向传播算法。
神经网络模型如图3所示,由多个神经元按照一定的拓扑结构连接起来,其输出可描述为
(14)
式中:Ni,Nh分别表示输入层、隐含层神经元的个数;vij,wij分别表示隐含层和输出层之间的权值。BP神经网络激励函数常选用sigmod函数,表示为
(15)
根据网络输出和期望输出,可以计算网络预测误差
ek=Yk-Ok.
(16)
根据网络预测的误差更新网络连接权值
i=1,2,…,n;j=1,2,…,l.
(17)
wjk=wjk+ηHjek,
j=1,2,…,l;k=1,2,…,m.
(18)
根据网络预测的误差更新网络节点阈值
i=1,2,…,n;j=1,2,…,l.
(19)
bk=bk+ek,k=1,2,…,m.
(20)
图3 BP神经网络拓扑
2.2 移动机器人预瞄轨迹控制模型
移动机器人的预瞄轨迹跟踪是指移动机器人跟踪事先规划好的一条以时间为函数的曲线轨迹,控制机器人按照预瞄轨迹曲线轨迹运动。从模仿驾驶员驾车的角度出发,预瞄轨迹跟踪的控制目标是使机器人的运动尽可能和预期的轨道相一致,即在当前机器人行驶状态下,控制驱动轮输出扭矩,使得机器人在一定时间内到达预期位置。在此基础上,设计基于神经网络的机器人预瞄轨迹跟踪控制,如图4所示。
图4 基于神经网络的机器人预瞄轨迹跟踪控制
定义预瞄轨迹方程为
(21)
式中,x,y为预瞄轨迹的坐标值,是关于时间t的函数。
定义预瞄轨迹相对于机器人当前位置的相对距离el和相对角度eφ,则有
(22)
(23)
式中:X,Y为当前机器人的坐标值;φ为当前机器人的航向角。
根据预期轨迹以及机器人当前运动状态,通过式(22)、式(23)计算出预瞄位置相对于机器人的位置信息,包括相对距离el及相对角度eφ。神经网络控制器的输入量为预瞄位置相对距离和角度,以及机器人当前运动状态信息,包括当前运动速度u以及横摆角速度r。神经网络的输出量为机器人左右两侧驱动轮转矩τL以及τR。
为了验证所设计控制器的性能,利用Matlab/Simulink对所设计的控制算法进行仿真实验。仿真时使用的移动机器人参数如表1所示,仿真实验采用的预瞄时间为1 s。
表1 机器人参数值
3.1 神经网络模型训练
在进行神经网络模型训练之前,首先要获取实验数据。利用Matlab/Simulink所搭建的移动机器人动力学模型,随机给定两侧驱动轮输入扭矩,得到1 s后机器人所到达的相对位置。为了得到足够多的有效实验数据,将控制量每过1 s进行随机变化,得到相对应的机器人状态参数。部分仿真数据如图5、图6所示。从图中可以看出,大量的随机仿真实验能够涵盖机器人在不同的状态下、不同的驱动轮转矩下预瞄时间内的运动状态。
通过多次仿真,得到1 000组实验数据。在得到实验数据的基础上,搭建神经网络控制模型。利用基于梯度下降法的BP神经网络对实验数据进行训练。神经网络采用三层结构,输入层神经元个数为3,隐含层神经元个数为15,输出层神经元个数为2。
图6 移动机器人仿真实验部分数据
3.2 神经网络仿真控制实验
为了验证所设计的基于神经网络预瞄控制器算法能够保证机器人按照预期的轨迹运动,将训练好的神经网络对机器人进行仿真实验。设计预瞄路径为
机器人初始位置为[x,y,φ]=[0,0,0],初始预瞄点为[0.5,0,0],初始状态参数[l,θ,u,r]=[0.5,0,0,0]。图7所示为机器人在控制算法下的预瞄路径和时间轨迹。从图中可以看出,在机器人行驶阶段,运动轨迹与期望轨迹较为接近,基本能够按照预瞄轨迹运动。左右两侧驱动轮转矩如图8所示,在机器人起步阶段,两侧驱动轮转矩变化比较大,起步之后的阶段,两侧驱动轮转矩变化较为平稳。
图7 移动机器人轨迹跟踪
图8 神经网络模型输出转矩
本文设计了一种基于神经网络的移动机器人预瞄轨迹跟踪控制算法。经过仿真验证,在该控制算法下,移动机器人在起步阶段两侧驱动轮转矩有所波动,而过了起步阶段后,移动机器人能够较为稳定地按照预期路线运动。
[1] 罗三定, 刘薇. 四轮移动机器人智能预瞄轨迹跟踪控制[J]. 计算机工程与应用, 2009,45(23):203-205.
[2] 张燕. 基于神经网络的移动机器人轨迹跟踪控制[D]. 秦皇岛:燕山大学, 2010.
[3] KIM D H, OH J H. Tracking control of a two-wheeled mobile robot using input-output linearization[J].Control Eng. Pract. 7 (1999) 369-373.
[4] 邓本再, 王江银, 张中景. 一种基于预瞄控制的Robocup足球机器人带球轨迹跟踪方法[J]. 计算技术与自动化, 2011,30(2):53-55.
[5] 任慧荣. 类车移动机器人轨迹跟踪控制方法研究[D]. 天津:天津大学, 2008.
[6] 李琳辉, 连静, 王蒙蒙,等. 基于滑转补偿的月球车轨迹跟踪控制算法[J]. 电机与控制学报, 2014, 18(1):105-111.
[7] HOANG N B, KANG H J. Neural network-based adaptive tracking control of mobile robots in the presence of wheel slip and external disturbance force[J]. Neurocomputing, 2015, 188:12-22.
[8] 王小川. MATLAB神经网络43个案例分析[M]. 北京:北京航空航天大学出版社, 2013.
[9] 史峰. MATLAB智能算法30个案例分析[M]. 北京:北京航空航天大学出版社, 2011.
[责任编辑:刘文霞]
A study of control algorithm of pre-trajectory tracking for mobile robot based on neural network
HAO Liying1,SONG Qichao2
(1.Academic Research Department,Heilongjiang Institute of Technology, Harbin 150050, China;2.College of Electrical and Information Engineering, Heilongjiang Institute of Technology, Harbin 150050, China)
It is complicated for mobile robot to control the trajectory tracking. Thus a control algorithm of pre-trajectory tracking based on neural network is designed. A pre-trajectory driving model which means to control the driving wheel output torque, is set up in order to make the robot reach the pre-trajectory position in the pre-trajectory time. The kinetic equations as well as the simulink models are established for mobile robot. Simulation is done on the robot to obtain the in-kind experimental data. BP neural network is applied to training the data and controling the diving wheel torque. Finally the validity of this algorithm is tested through the simulation experiments.
mobile robot; trajectory tracking; neural network; pre-trajectory
TP242
A
1671-4679(2017)05-0037-05
2017-04-07
2015年哈尔滨市应用技术研究与开发项目优秀学科带头人A类(2015RAXXJ036)
郝丽英(1973-),女,副编审,研究方向:计算机控制.
10.19352/j.cnki.issn1671-4679.2017.05.008