APP下载

基于扰动观测器的机器人自适应神经网络跟踪控制研究

2019-08-21于欣波贺威薛程谦孙永坤孙长银

自动化学报 2019年7期
关键词:观测器控制算法扰动

于欣波 贺威 薛程谦 孙永坤 孙长银

在国内传统制造业发展过程中,机器人技术的应用将极大程度地带动传统装备制造业的转型升级[1].机器人的应用可以降低生产成本、提高生产效率,替代人在复杂、危险工业环境中完成任务,可以从事程序化、高强度、易疲劳的工作.除工业领域外,机器人还在军事、航天、消防救灾、家庭、社会服务和医疗中得到广泛应用[2−5].

机器人是一类典型的非线性、强耦合、时变多输入多输出系统[6−8],这种复杂系统给控制器设计带来一定的难度.因为实际情况存在多种不确定因素,机器人系统难以获取精确的动力学模型[9],通常会出现模型失配、模型完全未知等情况,此时基于模型的非线性控制策略将失效.另外,传统控制策略通常对非线性系统进行了线性假设,而这种控制设计也将一定程度影响系统稳定性和控制精度.

神经网络具有一致逼近和自适应能力,能够起到非线性补偿、参数辨识等作用[10−12],也可以作为控制器直接控制机器人系统,在机器人系统中得到广泛应用[13−16].神经网络的早期研究缺乏对机器人闭环系统稳定性分析,以梯度学习算法(Error back propagation,BP)为例,需要通过一定时间的离线训练才能将神经网络应用于机器人闭环系统中.反步法通过迭代设计与坐标变换[17],并设置虚拟镇定变量,结合自适应控制,可以应用于含不确定参数的非线性系统并通过选取合适参数调整瞬态特性[18],实现渐近稳定或一致有界[19].

本文采用径向基函数(Radial basis function,RBF)[20]作为神经网络(Neural network,NN)[21]隐含层激活函数,通过RBF神经网络估计控制器中不确定项,利用李雅普诺夫稳定性理论反推得到神经网络权重自适应律,避免离线训练,通过在线反馈系统输入输出数据,构造合适的神经网络结构,使机器人系统达到跟踪精度并满足稳定性条件,实现系统误差信号的半全局一致有界.

文献[22]提出了一种基于神经网络估计未知动态模型的自适应控制策略,并通过反向传播算法对系统静态和动态参数进行了调整.文献[23]以双臂机器人为研究平台,利用神经网络技术估计多机械臂协调控制中的不确定非线性项,以提高协调控制位置精度.文献[24]提出了一种基于神经网络的自适应阻抗控制策略,通过神经网络补偿机器人中的部分不确定项,在控制作用下使外界交互力呈现出给定的理想阻抗关系.在文献[25]中,神经网络技术被应用于补偿一种欠驱动轮式移动机器人动力学模型,解决一类自平衡移动小车的跟踪控制问题,并基于扰动观测器提出了一种鲁棒跟踪控制策略.除神经网络具有一致逼近能力外,模糊控制对任意非线性系统也具有很好的拟合效果,文献[26]利用模糊控制设计了一种含扰动观测器的外骨骼控制系统,通过实验验证了控制器有效性.大多数文献提出的控制方法在线计算量大,针对不确定性较大的机器人系统控制难度较高,并且对于考虑非参数的不确定系统控制研究较少.

扰动观测器被广泛应用于处理非线性系统中的不确定扰动[27−29],设计扰动观测器的目的是不依靠附加的力传感器来估计未知不确定扰动[30].文献[31]利用扰动观测器处理机器人系统的摩擦力补偿问题,并通过仿真得到验证.在文献[32]中,扰动观测器被用来处理非匹配不确定性带来的扰动.文献[33]设计了一种含有扰动观测器的自适应神经网络控制策略,以解决机器人系统中的时滞效应.如果在控制器设计过程中不考虑未知扰动带来的影响,将会在一定程度上影响机械臂跟踪精度.大多数研究多结合非线性系统设计扰动观测器,对于机器人系统利用反推方法设计扰动观测器并且将理论方法应用到实际机器人系统的研究较少.

近几年提出的神经网络控制方法结合传统自适应控制、反演控制能够解决含有线性参数的不确定非线性系统,但神经网络难以处理含有非参数的系统不确定性.本文与其他方法不同的创新点是:本文主要结合自适应神经网络和扰动观测器同时解决系统模型未知部分和系统未知扰动,通过RBF神经网络在线学习不确定模型并根据李雅普诺夫函数反推设计权重自适应律,证明了闭环系统误差信号半全局一致有界.本文同时将跟踪控制算法应用于仿真与实际Baxter机器人中,通过两台计算机互相配合,即一台计算神经网络未知补偿量,一台通过用户数据报协议(User datagram protocol,UDP)接收信息并产生Baxter机器人控制信号,一定程度上提升整个系统的运算和响应能力,并通过实验对比PD控制验证了所提出控制算法的有效性和优势.

以下几章将对本文所提出的控制算法进行详细介绍与分析.文章具体安排如下:第1节通过D-H(Denavit-Hartenberg)建模方法对Baxter机器人运动学进行分析,通过Lagrange-Euler方法建立机器人动力学模型;第2节考虑动力学模型已知的情况,设计一种基于模型的通用跟踪控制器和扰动观测器并对闭环系统进行稳定性分析;第3节考虑机器人模型未知的情况,提出一种基于扰动观测器的自适应神经网络全状态反馈跟踪控制策略,并通过构造李雅普诺夫函数分析机器人系统稳定性;第4节通过数值仿真验证所提出的控制算法的有效性与通用性,仿真考虑了不同关节连接方式的机器人,分别利用机器人工具箱和数值仿真验证跟踪控制算法的有效性和控制精度;第5节简述了Baxter机器人的硬件及软件结构,将控制算法应用于Baxter机器人实验平台上并与比例微分(Proportion derivative,PD)控制进行对比以验证所提出控制算法的跟踪精度.

1 运动学与动力学分析

1.1 Baxter机器人运动学分析

其中,c代表余弦运算cos,s代表正弦运算sin.di表示平移距离,αi表示扭转角,ai表示长度,θi表示关节角度.

表1 Baxter机器人D-H参数和连杆质量Table 1 D-H parameter and link mass of Baxter robot

通过Baxter机器人制造商Rethink robotics在Github网站上提供的相关信息,可以从中获取刚性连杆i的质量如表1所示,其中连杆惯性矩阵、转动惯量以及相对坐标中心位置都可以从中获得.

1.2 机器人动力学分析

通过拉格朗日动力学方程,建立机械臂n关节通用动力学模型:

机械臂逆向运动学可由下式关系表示:

以下为本文利用的相关定义、引理与性质:

2 含扰动观测器的模型控制器设计

定义xd为关节空间期望轨迹向量,定义状态误差如下式:

为设计扰动观测器我们定义一个辅助变量e3表示为:

其中,%(e2)代表非线性函数向量,同时我们定义式(9)中α1为虚拟镇定信号,e1为角度误差,e2为虚拟速度误差,其中,α1定义如下:

通过式(15)可以得到:

由以上分析设计基于模型的控制器τ0为:

下面对系统稳定性进行分析,构造如下李雅普诺夫函数V1:

将模型控制器τo代入上式可得:

3 含扰动观测器的自适应神经网络控制器设计

利用神经网络一致逼近性能,设计一种在线自适应神经网络控制器以补偿未知动力学模型参数.自适应神经网络控制器τf设计为:

式中,ψ(Z)代表RBF神经网络径向基函数,代表神经网络权重估计,其中,$∗代表神经网络实际最优权重,最优权重是为便于推导分析人为构造的,其定义如下:

式中,σi为小的正常数,Γi为正定对称矩阵.把式(25)代入式(12)可得:

同模型控制类似,我们定义辅助变量e4为:

对e4求导可得:

通过式(28)和(31)可以得出:

下面对神经网络控制器的闭环系统进行稳定性分析,构造如下李雅普诺夫函数V2:

对V2求导,并将神经网络控制器代入可得到如下式所示结果:

利用如下不等式性质:

可以得到:

式中,ρ2和C2分别为:

为使ρ2>0,控制增益需满足以下条件:

通过以上分析,我们可以证明误差e1,e2,和为半全局一致有界.

其中,D=2(V2(0)+C2/ρ2),l为神经网络节点数,ρ2和C2为正常数.

证明.在式(37)左右两端乘以eρ2t,可以得到:

由以上分析可以得出:

4 数值仿真

4.1 3旋转关节机器人仿真

本节通过Matlab机器人工具箱(Robotic toolbox)程序对具有3旋转关节的机器人进行数值仿真.如图1所示,刚性连杆1质量与长度:mt1=0.5kg,lt1=0.114m;刚性连杆2质量与长度:mt2=0.5kg,lt2=0.144m;刚性连杆3质量与长度:mt3=1kg,lt3=0.241m.初始关节角矩阵设置为[0.0714rad;1.6718rad;−1.7432rad].设置任务空间期望轨迹为:

其中,RBF参数节点数选择为28=256,镇定参数为0.02,正定增益矩阵为Γi=10I256×256.神经网络中心选择为 [−1,1]×[−1,1]×[−1,1]×[−1,1]×[−1,1]×[−1,1]×[−1,1]×[−1,1],其中控制增益K1=diag{40,40,40},K2=diag{30,30,30},扰动设置为[0.02sin(t)+0.06,0.01cos(t)+0.02,0]T,扰动观测器χ(e2)设置为[25e21,25e22,25e23]T.图2、3分别为关节空间、任务空间中3关节神经网络控制与PD控制跟踪对比图.图4为任务空间中神经网络与PD控制对比效果图,图5为神经网络控制器控制输入.由上图可知,所提出的控制算法可以保证跟踪误差收敛到较小的零域内,较PD控制而言,所提出的神经网络控制具有更好的跟踪控制效果.

4.2 2旋转关节1伸长关节机器人仿真

本节通过Matlab数值仿真对具有2旋转关节1伸长关节的机器人系统进行仿真.其中刚性连杆1质量与长度:mt1=2.0kg,lt1=0.3m;刚性连杆2质量与长度:mt2=2.0kg,lt2=0.4m;刚性连杆3质量与长度:mt3=1.0kg,lt3=0.25m.初始状态矩阵为[0.5rad;0.9rad;0.4m].设置期望跟踪轨迹为:

其中,RBF参数节点数为212,镇定参数为0.02,正定增益矩阵为Γi=10I212×212.神经网络中心选择为 [−1,1]×[−1,1]×[−1,1]×[−1,1]×[−1,1]×[−1,1]×[−1,1]×[−1,1]×[−1,1]×[−1,1]×[−1,1]×[−1,1],其中控制增益K1=diag{6,6,6},K2=diag{12,12,12}.图6,8,10分别为3关节含扰动观测器的神经网络控制与不含扰动观测器角度跟踪控制对比图,图7,9,11分别为3关节含扰动观测器的神经网络控制与不含扰动观测器速度跟踪控制对比图.真实扰动设置为[sin(t)+1,2cos(t)+0.5,2sin(t)+1]T.扰动观测器χ(e2)设置为[25e21,25e22,25e23]T.

图1 3旋转关节自由度机器人Robotic toolbox中的模型Fig.1 Model of 3 revolute joint robot in robotic toolbox

图2 NN与PD控制角度跟踪Fig.2 Joint tracking of NN and PD control

图3 NN与PD控制位置跟踪Fig.3 Position tracking of NN and PD control

图4 NN与PD轨迹跟踪效果Fig.4 NN and PD trajectory tracking performance

图5 NN控制输入Fig.5 NN control input

由上图可知,所提出的带扰动观测器的控制算法可以保证跟踪误差收敛到较小的零域内,较不加扰动观测器控制而言,所提出的带扰动观测器神经网络控制器具有更好的跟踪控制效果.图12为扰动观测器与真实扰动误差对比图,图13为控制输入对比图,图14为神经网络估计权值与权值估计误差图,图15为神经网络逼近函数与被逼近函数.由图12、14和15可知,扰动观测器观测误差和神经网络估计误差都将收敛到较小的零域内.

图6 关节1含扰动观测器和不加扰动观测器角度跟踪控制Fig.6 Joint 1 angle tracking control with and without disturbance observer

图7 关节1含扰动观测器和不加扰动观测器速度跟踪控制Fig.7 Joint 1 velocity tracking control with and without disturbance observer

图8 关节2含扰动观测器和不加扰动观测器角度跟踪控制Fig.8 Joint 2 angle tracking control with and without disturbance observer

图9 关节2含扰动观测器和不加扰动观测器速度跟踪控制Fig.9 Joint 2 velocity tracking control with and without disturbance observer

图10 关节3含扰动观测器和不加扰动观测器角度跟踪控制Fig.10 Joint 3 angle tracking control with and without disturbance observer

图11 关节3含扰动观测器和不加扰动观测器速度跟踪控制Fig.11 Joint 3 velocity tracking control with and without disturbance observer

图12 扰动与扰动观测误差Fig.12 Disturbance and disturbance observer error

图13 控制输入Fig.13 Control input

图14 NN权值估计与误差Fig.14 Weight estimation and error of NN

图15 逼近函数与被逼近函数Fig.15 Approximation and approximated function

5 基于Baxter机器人的跟踪实验验证

本文基于Baxter机器人对自适应神经网络跟踪控制策略进行实验验证.Baxter机器人是美国Rethink robotics公司研发的一款双臂机器人[36],其单机械臂是一种具有七自由度的冗余柔性关节机械臂[37].Baxter机械臂存在的摩擦力等未知扰动也会影响到机器人的控制精度.因此,对于Baxter机器人需要提高其定位精度以完成精确的跟踪任务[38].图16为Baxter机器人结构示意图.通过移动底座支撑机器人本体,机器人手臂采用旋转关节连接刚性连杆,关节处采用弹性制动器连接,即通过电机、减速器串联弹簧带动负载,在人机协作或外部冲击下起到保护人或机器人本体的作用.柔性关节还可通过霍尔效应检测角度偏差,由于弹簧具有固定刚度,通过胡克定律可检测关节处力矩,即在Baxter关节处都具有力矩传感器.手臂前后端通过26W 和63W 伺服电机驱动,通过14bit编码器实现关节角度的读取.Baxter机器人为基于ROS(Robot operating system)操作系统的开源机器人,通过Linux平台运行,用户可通过网络与机器人内部计算机互联读取信息或发送指令,或通过SSH(Secure shell)远程控制在内部计算机运行相关程序.利用Baxter相关的SDK(Software development kit),通过ROS的API(Application programming interface)可以实现对Baxter机器人的信息读取与实时控制.Baxter中的SDK可以提供相关函数接口与重要工具:如Gazebo仿真器及Moveit移动软件包等.Baxter机器人在力矩控制模式下,还需设置补偿力矩以抵消机械臂重力和肩关节支撑弹簧形变带来的影响.

本节通过Baxter机器人实现机器人轨迹跟踪实验.图17为Baxter机器人实验平台.计算机A通过Windows MATLAB simulink模块计算神经网络未知补偿量并通过UDP传输至另一台用于接收机器人状态信号并提供控制信号的计算机B中.计算机B利用Ubuntu 14.04 LTS平台下的Baxter RSDK(Robot operating system SDK)实现对Baxter机器人的编程与控制.其中RBF神经网络参数节点数为73,镇定参数为0.02,正定增益矩阵Γi=500I.协方差为0.75,其中控制增益K1=diag{17.7,20,15.7,22,20.3,12.6,15},K2=diag{2.1,2.2,1.2,2,5.1,10.1,4.5}.利用Moveit软件令Baxter机器人单臂移动一段距离,通过实时位置反馈信息,记录下移动过程中各关节轨迹.之后通过设计控制器令关节跟踪这条期望轨迹,并将所提出的控制方法与PD控制对比轨迹跟踪效果.表2所示为Baxter机器人PD控制参数.图18∼24分别为Baxter机器人S0,S1,E0,E1,W0,W1,W2关节含扰动观测器的神经网络与PD控制角度跟踪效果对比图.图25为Baxter机器人七关节神经网络控制输入.由图18∼24通过与PD控制对比可以得出,所提出的控制算法与PD控制相比具有更好的跟踪控制效果.

图16 Baxter机器人系统结构:1.肩S0关节;2.肩S1关节;3.肘E0关节;4.肘E1关节;5.腕W0关节;6.腕W1关节;7.腕W2关节;8.声纳传感器;9.面部摄像头;10.显示屏;11.末端摄像头;12.末端抓手;13.操作旋钮;14.柔性关节;15.肩关节支撑弹簧;16.吸盘Fig.16 The system structure of Baxter robot:1.shoulder joint S0;2.shoulder jointS1;3.elbow jointE0;4.elbow jointE1;5.wrist jointW0;6.wrist jointW1;7.wrist jointW2;8.sonar sensor;9.facial camera;10.screen;11.end-effector camera;12.gripper;13.operating knob;14.flexible joint;15.S1shoulder support spring;16.sucker

图17 Baxter机器人实验平台Fig.17 Experimental platform of Baxter robot

表2 Baxter机器人PD控制参数Table 2 PD control parameter of Baxter robot

图18 NN与PD控制S0关节角度跟踪Fig.18 S0 joint tracking of NN and PD control

图19 NN与PD控制S1关节角度跟踪Fig.19 S1 joint tracking of NN and PD control

图20 NN与PD控制E0关节角度跟踪Fig.20 E0 joint tracking of NN and PD control

图21 NN与PD控制E1关节角度跟踪Fig.21 E1 joint tracking of NN and PD control

图22 NN与PD控制W0关节角度跟踪Fig.22 W0 joint tracking of NN and PD control

图23 NN与PID控制W1关节角度跟踪Fig.23 W1 joint tracking of NN and PID control

图24 NN与PD控制W2关节角度跟踪Fig.24 W2 joint tracking of NN and PD control

图25 Baxter机器人NN控制输入Fig.25 NN control input to Baxter robot

6 结论

本文提出了一种基于扰动观测器的自适应神经网络跟踪控制策略,以解决机器人动力学模型未知问题并提升系统鲁棒性.针对模型已知的情况,通过研究机器人运动学和动力学模型,提出了刚体机械臂通用模型跟踪控制策略;针对动力学模型未知情况下,设计了基于全状态反馈的自适应RBF神经网络跟踪控制器,并通过设计扰动观测器补偿系统中的未知扰动.通过选择合适的增益参数可以将跟踪误差收敛到零域,并利用李雅普诺夫理论证明所提出的控制策略能使闭环系统误差信号半全局一致有界.最后通过对比仿真证明所提出算法的有效性并且将控制算法在Baxter机器人平台上进行验证.

猜你喜欢

观测器控制算法扰动
带扰动块的细长旋成体背部绕流数值模拟
基于滑模观测器的PMSM无位置传感器控制策略
基于非线性干扰观测器的航天器相对姿轨耦合控制
结合向量化和FFT技术的模型扰动引力快速计算
基于扰动观测器的AUVs固定时间编队控制
一种改进的基于SINS/GNSS的水平重力扰动测量方法
基于ARM+FPGA的模块化同步控制算法研究
高精度位置跟踪自适应增益调度滑模控制算法
基于滑模观测器的机翼颤振主动抑制设计
基于干扰观测器的船舶系统航向Backstepping 控制