BP网络在机器人运动轨迹规划中的应用潘桂彬(江南大学物联网工程学院,江苏无锡214000)摘要:机器人轨迹规划主要是通过控制机器人的手臂使之高精度的跟踪目标轨迹,而目标轨迹往往是高阶的,非线性的。BP网络能够实现输入输出的非线性映射关系,具有能够通过学习进行训练以及自适应的功能。将Matlab软件与BP神经网络工具箱相结合,运用到机器人轨迹规划中,仿真实验证明了BP网络能够解决机器人运动轨迹规划中的一些问题。关键词:机器人;轨迹规划;BP神经网络;仿真Abstract:Robottrajectoryplanningmainlybycontrollingtherobotarmsothathigh-precisiontrackingtargettrajectory,thetargettrajectoryisoftenahigh-level,non-linear.ThenonlinearrelationshipofinputandoutputcanbeachievedwithBPnetwork,whichhasfunctionoftrainingandadaptivethroughlearning.MatlabsoftwareandBPneuralnetworktoolboxappliedtorobottrajectoryplanning,simulationresultsshowthattheBPnetworkcansolvesomeproblemsinrobottrajectoryplanning.Keywords:Robot;Trajectoryplanning;BPneuralnetwork;Simulation1机器人轨迹规划机器人轨迹规划是建立在操作臂运动学和动力学的基础上,讨论在关节空间和笛卡儿空间中机器人运动的轨迹规划和轨迹生成方法。所谓轨迹是指操作臂在运动过程中的位移、速度和加速度。而轨迹规划是根据作业任务的要求,计算出预期的运动轨迹。首先对机器人的任务,运动路径和轨迹进行描述,轨迹规划器可使编程手续简化,只要求用户输入有关路径和轨迹的若干约束和简单描述,而复杂的细节问题则由规划器解决。例如,用户只需给出手部的目标位姿,让规划器确定到达该目标的路径点、持续时间、运动速度等轨迹参数。并且,在计算机内部描述所要求的轨迹,即选择习惯规定及合理的软件数据结构。最后,对内部描述的轨迹、实时计算机器人运动的位移、速度和加速度,生成运动轨迹。机器人在作业空间要完成给定的任务,其手部运动必须按一定的轨迹进行。轨迹的生成一般是先给定轨迹上的若干个点,将其经运动学反解映射到关节空间,对关节空间中的相应点建立运动方程,然后按这些运动方程对关节进行插值,从而实现作业空间的运动要求,这一过程通常称为轨迹规划。在一般情况下,似乎可以靠增加插值的结点数目来改善插值的精度,但插值多项式的次数会随着结点的个数增加而升高,可能造成插值函数的收敛性和稳定性变差,逼近的效果往往是不理想的,甚至发生龙格振荡现象。同时机器人是一个非线性,强耦合的系统,其手端的运动往往可分解成各个关节的联合运动,手端位置、速度及加速度的连续性,是通过各关节变量的连续性实现的。对于这种非线性的复杂系统来说,多项式插值法的应用往往存在一定的难度,具有一定的局限性,而这方面正是BP神经网络的特长,只要通过非线性插值节点的学习,它就能逼近任意非线性函数,它不仅能完成内点插值,也能进行外延,特别是对于多元非线性函数,基于神经网络的插值计算极具优势。轨迹规划方法一般是在机器人初始位置和目标位置之间用多项式函数来“内插”或“逼近”给定的路径,并产生一系列“控制设定点”。路径端点一般是在迪卡儿坐标中给出的。如果需要某些位置的关节坐标,则可调用运动学逆问题求解程序,进行必要的转换。在给定的两端点之间,常有多条可能的轨迹。例如,可以要求机械手沿连接端点的直线运动(直线轨迹),也可以要求它沿一条光滑的圆弧轨迹运动,在两端点处满足位置和姿态约束(关节变量插值轨迹)。而轨迹控制就是控制机器人手端沿着一定的目标轨迹运动。因此,目标轨迹的给定方法和如何控制机器人手臂使之高精度地跟踪目标轨迹的方法是轨迹控制的两个主要内容。给定目标轨迹的方式需要生成点与点之间的目标轨迹,此种目标轨迹要根据不同的情况要求生成,但是也要遵循一些共同的原则。例如,生成的目标轨迹应是实际上能实现的平滑轨迹,要保证位移、速度及加速度的连续性,保证手端轨迹、速度及加速度的连续性,是通过各关节变量的连续性实现的。设手端在点r0和rf间运动。对应的关节变量为q0和qf,它们可通过运动学逆问题算法求出。为了说明轨迹生成过程,把关节向量中的任意一个关节变量qi记为p,其初始值和终止值分别为p(0)=p0,p(tf)=pf(1)把这两时刻的速度和加速度作为边界条件,表示为.p(0)=.p0,.p0(tf)=.pf(2)..p(0)=..p0,..p(tf)=..pf(3)满足这些条件的平滑函数虽然有许多。但其中关于时间t的多项式是最简单的并且能同时满足条件(1)-(4)的多项式最低次数是5。所以设p(t)=a0+a1t+a2t2+a3t3+a4t4+a5t5(4)其中的待定系数可求出如下:a0=p0(5)a1=.p0(6)a2=12..p0(7)a3=tf321[20pf-20p0-(8.pf+12.p0)tf-(3..p0-..pf)tf2](8)a4=tf241[30p0-30pf+(14.pf+16.p0)tf-(3..p0-..pf)tf2](9)a5=tf521[12pf-12p0-(6.pf+6.p0)tf-(..p0-..pf)tf2](10)机器人运动轨迹的问题属于跟踪参考轨迹的跟踪控制问题,当我们在考虑机器人运动轨迹是线性轨迹时,用自适应方法如采用自校正调节器和采用模型参考自适应控制等方法。但当机器人运动轨迹为非线性轨迹时,自适应方法并不能很好的完成这个任务,这个时候我们可以考虑用神经网络作为机器人的控制器和机器人的辩识模型,前者组成基于神经网络的自校正调节器,后者组成基于神经网络的模型参考控制器,能够比较好地解决这个问题。2BP神经网络简介2.1BP神经网络BP神经网络是一种具有3层或3层以上的神经网络,包括输入层、中间层(隐层)和输出层。上下层之间实现全连接,而每层神经元之间无连接。当一对学习样本提供网络后,神经元的激活值从输入层经各中间层向输出层传播,在输入的传播中修正权值,最后回到输入层,这种算法称为“误差逆传播算法”,即BP算法。BP神经网络的神经元一般采用的是可微函数,所以可以实现输入和输出间的任意非线性映射,当其隐含层的神经元的个数足够多时,可以以任意精度逼近一个有有限个间断点的非线性函数。2.2BP神经网络的学习规则在这里以一个单隐层的BP网络为例,介绍其学习过程和步骤:a.初始化:给每个权值赋予(-11)之间的随机值。b.随机取一组输入和目标样本Pk=(ak1,ak2,...,akn),Tk=(sk1,sk2,...,skp)提供给网络。c.用输入样本Pk=(ak1,ak2,...,akn)、权值wij和j阈值计算中间层各单元的输入sj,然后用sj通过传递函数计算中间各单元的输出bj。sj=awiniij1-jbj=)(sjfj=1,2,...pd.用中间层的输出bj、权值vjt和阈值γ计算输出各单元的输出lt,再利用传递函数计算输出层的响应ct。lt=bvjpjjt1-tct=)(ltft=1,2,...,qe.利用目标向量Tk=(yk1,yk2,...,ykq)、实际输出ct,计算输出层的各单元误差dkt。dkt=(ykt-ct)ct(1-ct)t=1,2,...,qf.利用权值vjt、输出层的误差dkt和中间层的输出bj计算中间层各单元的误差ekj。ekj=[qttd1vjt]bj(1-bj)g.用输出层各单元的误差dkt和中间层各单元的输出bj来修正权值vjt和阈值t。vjt(N+1)=vjt(N)+dktbjt(N+1)=t(N)+dktt=1,2,...,q,j=1,2,...p,01h.利用中间层各单元的误差ekj、输入层单元的输入Pk=(ak1,ak2,...,akn)修正权值wij和阈值j。wij(N+1)=wij(N)+ekjkij(N+1)=j(N)+ekji=1,2,...,n,j=1,2,...p,01i.随机选取下一个学习样本提供给网络,返回到步骤c,直到所有的训练样本训练完毕,并且使得全局误差小于设定的值,即网络收敛。当然,经过训练过的网络还需要进行性能测试后才能应用到机器人轨迹规划中去。3BP神经网络在机器人轨迹规划方面的应用3.1Matlab软件及其BP神经网络工具箱函数为了解决数值计算与计算机仿真之间的矛盾,美国MathWorks公司推出了一套高性能的数值计算和可视化软件包Matlab。它集数值计算、图形计算、语言设计、计算机仿真等于一体,具有极高的编程效率。更具特色的是集中了许多领域专家学者的智慧,扩展了许多专业领域工具箱,如图像处理、模糊控制、神经网络等。神经网络工具箱是开发出来的许多工具箱之一,它是以神经网络理论为基础,用Matlab语言构造出典型神经网络的工具函数。Matlab中专门编制了大量有关BP神经网络的工具箱函数,为BP神经网络的应用研究提供了强有力的工具。3.2BP神经网络在机器人轨迹规划中的应用BP网络是一种有监督的前馈运行的神经网络。它由输入层、隐含层、输出层以及各层之间的节点的连接权所组成,这个学习过程的算法由信息的正向传播和误差的反向传播构成。在正向传播过程中,输入信息从输入层经隐含层逐层处理,并传向输出层,上一层神经元只影响下一层神经元的输出。如果不能在输出层得到期望的输出,则转入反向传播,运用链导数法则将连接权关于误差函数的导数延原来的连接通路返回,通过修改各层的权值使得误差函数减小。BP网络由于其很好的逼近非线性映射的能力,因而可应用与信息处理、图像识别、模型辨识、系统控制等多个方面。在这里主要考虑BP网络在函数逼近方面的作用,即研究在机器人初始位置和目标位置之间用BP网络来“逼近”给定的路径,以达到精确控制机器人运动轨迹目的。4仿真研究根据(5)-(10)式,设某单杆件旋转机器人所要实现的运动的5次多项式为:p(t)=3+2t+4t2+7t3+6t4+5t5(11)我们在Matlab下绘制出该多项式函数曲线,如图4.1。图4.1要逼近的多项式函数曲线现在我们来建立BP网络,设隐层单元的数目为10,在MATLAB下面仿真时我们选择神经单元的传递函数分别为tansig函数和purelin函数,设置BP网络的反传递函数为trainlm。在对建立好的BP网络进行训练之前,我们先看看输出结果同要逼近的多项式函数之间的误差,如图4.2。图4.2未经训练的BP网络输出与要逼近的多项式函数比较可见,未经训练过的网络输出远远不能达到轨迹控制的要求。下面我们对网络进行训练,设训练时间为50个单位时间,训练目标为误差小于0.01,我们可以得到仿真结果如图4.3。图4.3训练后的BP网络输出与要逼近的多项式函数比较从仿真结果我们可以看出,BP网络可以很好地来逼近机器人给定的路径(如图4.3,训练后的网络输出与要逼近的多项式函数基本吻合)。不仅训练后的,BP网络输出与要逼近的多项式函数输出之间的误差完全能达到要求,而且训练时间短,符合机器人轨迹控制实时性的要求。可见,应用BP网络可以很好地达到精确控制机器人运动轨迹的目的。5结论仿真实验充分证实了BP神经网络在机器人轨迹规划中的可行性和合理性。但是由于BP网络自身所存在的一些缺点,如网络收敛慢、存在局部极小值问题、网络层数和神经元数目的不确定性等,使得BP网络在许多方面需要进一步的改善,随着网络整体性能的提高,将使机器人的轨迹规划逐步向最优化方向发展。参考文献[1]雷晓强.冗余度机器人的轨迹规划与障碍物回避的实时控制[D].西安:西安理工大