基于神经网络的踝关节康复并联机器人的逆运动学的精确求解

葛开友1,程希为2,张建法1,李锦忠1,程晓1,匡绍龙1

1. 苏州大学 机电工程学院,江苏 苏州 215000;2. 苏州市中医医院,江苏 苏州 215000

[摘 要] 为了解决目前康复领域踝关节康复并联机器人的逆运动学方面的精度与实时性要求,本文通过结合踝关节康复机器人运动学模型,利用反向传播神经网络求解了机器人逆运动学问题。首先通过机器人逆运动学方程产生神经网络训练集,神经网络经过训练集的训练学习。经过训练后神经网络能够准确地求解并联机器人的位置和姿态。其算法具有运算简单、求解效果好等特点。为进一步提高求解结果精度,采用迭代计算进行误差补偿。计算结果表明该方法迭代次数少,计算精度高且计算速度接近机器人实时控制的要求。

[关键词] 康复机器人;并联机器人;神经网络;反向传播网络;误差补偿

引言

并联机器人具有结构简单、刚度大、精度高等优点,近些年来已经引起国内外学者的广泛关注。并联机器人的位置逆解问题即给定操作器的位姿参数,求机构的各输入杆长参数,它是机器人运动控制的基础,在并联机器人研究中占有重要地位。位置逆解主要有解析法和数值解法。解析法可以获得机构的所有可能解,计算精度较高,但计算非常繁琐,不能满足唯一解的要求。数值解法[1-5]一般采用优化求解原理,计算量大,而且只能达到有限的精度。人工神经网络方法已经被用来求解并联机器人运动学逆解问题。

人工神经网络在解决非线性映射方面的问题时有强大的逼近能力,在机器人领域可用于机器人运动学及动力学模型的自动辨识、障碍回避、路径优化以及机器人控制等一系列问题,结合位置逆解模型,采用反向传播(Backward Propagation,BP)神经网络[6-13]。对于六自由度并联机器人而言,其通常有六组矢量路径计算矩阵,其中有大量正、余弦三角函数的加、减、乘、除组合计算,并且计算编程过程相当繁杂。但BP神经网络通过对大量样本的训练学习,实现机器人从工作变量空间到关节变量空间的非线性映射,从而可以避免求解位置逆解时公式推导引入的大量函数及矢量的矩阵计算。

本文基于如图1所示的踝关节康复并联机器人,通过常规的BP神经网络进行运动学逆解计算仿真。为了进一步提高常规的BP神经网络逆解求解结果精度,采用误差补偿迭代方法,以满足康复机器人精确控制的要求。

1 踝关节康复并联机器人的运动学模型

逆运动学建模[14-17]是从给定踝关节康复机器人的移动平台的位置来进行驱动单元的运动变量的求解,其用于产生神经网络的训练集,从而训练出神经网络的权重及偏置值。建模矢量计算路径如图2所示,固定基座上的固定坐标系{o}和距离移动平台上的中心点为h的动平台坐标系{o’},此坐标位于踝关节旋转中心,xyzx’、y’、z’轴彼此平行。驱动单元坐标系{o’’}为驱动单元位于底座上的安装位置,H为踝关节旋转中心相对于基座的缺省高度,ξieii=0,1,...,5)分别表示各运动关节的旋量与单位方向。

图1 踝关节康复并联机器人

图2 逆运动学矢量计算路径

为了对该并联机构进行空间位置姿态分析,为移动平台上指定点相对于基准系统{o}的位置矢量和式T用于表示并联机构的移动平台的姿态的旋转变换矩阵。

αβθ为移动平台参照底座平台坐标系的三个主轴的独立旋转角度。旋转顺序定义为:首先围绕轴x旋转α,然后围绕轴y旋转β,最后围绕轴z旋转θ。因此,移动平台坐标系{o’}的方向可以通过综合旋转变换矩阵来描述,该矩阵通过根据角度顺序地旋转底座坐标系{o}中的轴xyz而获得:

其矩阵中,qij可以由三个角度αβθ的三角函数表达式表示。

图2中表示从平台中心到同轴环中心的瞬态向量,表示同轴环的方向向量。向量矩阵b表示向量bi(=0,1,…,5),bi表示环形中心点在移动平台上的坐标系{o’}中的位置向量,r是共轴铰链的半径(标量),其也是驱动杆上端铰链轴距共轴铰链轴的距离。

根据式(1)~(5),驱动杆在固定坐标系{o}中的矢量表示:

因此,对于移动平台的给定位置和方向可以计算所需的驱动单元的运动量。

2 BP神经网络及误差补偿算法的应用仿真

BP神经网络的结构参数参见文献[6]。BP神经网络的学习过程由前向过程和误差反向传播过程组成的计算过程。神经网络训练学习的过程就是通过调节网络内部连接权重使网络误差最小化的过程。神经网络的连接权重调整过程也就是误差反向传播过程。BP神经网络是目前比较成熟且广泛应用的一种网络,它把一组训练样本的输入输出问题变为一个非线性优化问题。从映射的角度看,神经网络实现了输入模式空间到输出模式空间的非线性映射关系。由于并联机构的逆运动学解的复杂性,利用多层感知机神经网络获得移动平台位姿与驱动杆位移之间的逆向运动学解的关系。

本文采用三层感知机的神经网络,其上包括输入层I,隐藏层H,输出层O。三层感知机的神经网络的运行机理如图3神经网络的结构所示,首先通过神经网络输入层输入训练集的输入部分,并随机初如化输入层与隐藏层之间的神经元连接,也就是权重,通常用矩阵V表示输入层与隐藏层之间的连接关系,然后权重矩阵V与输入层点乘后通过激活函数进行隐藏层输出。同时随机初如化隐藏层与输出层之间的神经元连接,也就是权重,通常用矩阵W表示隐藏层与输入层之间的连接关系,然后权重矩阵W与隐藏层的输出点乘后通过激活函数进行输出层输出。其与目标值,也就是训练集的输出部分相比较,反向传播误差来调整权重矩阵V和W,经过训练后神经网络输出值收敛于目标值,训练好的神经网络的权重矩阵V和W及采用的激活函数实现输入空间到输出空间的非线性映射关系。

图3 神经网络的结构

考虑到康复机器人的动平台的位姿有6个变量,所以设神经网络的输入层神经元数目为6,康复机器人是由6个驱动杆来驱动移动平台,所以设神经网络的输出层的神经元数目为6。关于隐藏层的神经元数目,可能根据经验计算如下。

隐藏层的神经元数目等于2/3输入层神经元数目加下输出层神经元数目并且小于输入层神经元数目的两倍,所以设隐藏层神经元数目为2/3×6+6=10。选择激活函数为:

设神经网络的学习率为0.01,训练数据样本次数为1000。当神经网络的误差小于0.001作为训练停止条件。设输入的偏置为1,隐藏层的偏置为1。

由医生规划的机器人移动平台的运动轨迹,通过逆运动学方程计算机器人适当驱动杆长度,并将移动平台位姿轨迹与输出的驱动杆长度作为神经网络训练集。设以下方程式(8)指定运动平台的轨迹为医生所期望的轨迹,平台在高度为300 mm 的平面内作半径为50 mm 的圆周运动:

图4所示是根据式(8)在(0,10π)范围内计算所得的运动平台的位姿输入数据作为神经网络训练样本。图4a中有六条曲线分别表示动平台姿态(x,y,z,α,β,θ)的输入,其(x,y,z)值是根据医生规划所期望的轨迹函数式(8)计算所得的 (Px,Py,Pz,),(α,β,θ)表示踝关节姿态,其值为 (0,0,0)。其训练样本数是由每周运动采样360个输入数据集,进行5次圆周运动总其采样的输入与输出数据集作为训练神经网络的训练样本(样本数为360×5=1800),并对训练数据及训练样本进行归一化处理,运动平台进行康复的归一化处理后的期望位置,使这些数据值在(-1,1)范围中。图4b表示通过逆运动学方程式(6)计算所得的六根驱动杆长度与输入数据集一一对应的输出数据集,并归一化处理驱动杆的长度使这些数据值在(-1,1)范围中。

图4 神经网络训练样本

注:a. 输入数据集;b. 输出数据集。

从图5a中可以看到整个训练周期中神经网络的收敛情况,可见其在开始阶段收敛很快。其为了更好了解神经网络在开始阶段的收敛,如图5b所示对前8个训练周期内均方差收敛进行局部可视化。前8个训练周期内神经网络收敛均方差分别为814.299、194.469、73.227、4.977、4.345、4.338、4.330、4.323。

图6中曲线分别表示6组驱动杆的值曲线,每组驱动杆值有2条曲线,一条由多层感知机神经网络产生的驱动杆近似值曲线,另一条由逆运动学方程(6)计算的六条驱动杆的真实值曲线。图6a是神经网络经过200周期训练学习后得出的,使用多层感知机神经网络产生的6条驱动杆近似曲线与使用逆运动学方程(6)计算的6条驱动杆的真实曲线相比,有明显的曲线轮廓差异,表明训练学习周期短,其与实际误差比较大。图6b是神经网络经过500周期训练后得出的,使用多层感知机神经网络产生的6条驱动杆近似曲线与使用逆运动学方程(6)计算的6条驱动杆的真实值曲线相比,曲线轮廓已经很相似,但有明显的曲线分开,仍不够精确,但其慢慢接近实际值。图6c是神经网络经过1000周期训练后得出的,使用多层感知机神经网络产生的六条驱动杆近似曲线与使用逆运动学方程(6)计算的6条驱动杆的真实值曲线相比,曲线轮廓已完全吻合。其精度将在神经网络训练1000周期学习后,如表1和 表2的权重矩阵确定后,通过误差迭代补偿方法进一步提高精度,以满足实时性控制要求。

图5 神经网络收敛图

注:a. 整个训练周期中神经网络的收敛情况;b. 前8个训练周期内均方差收敛情况。

图6 驱动杆长度使用逆运动学方程计算的真实值和使用多层感知机神经网络的近似值

注:a. 神经网络经过200周期训练学习后得出的数据;b. 神经网络经过500周期训练后得出的数据;c. 神经网络经过1000周期训练后得出的数据。

表1显示了神经网络经过1000周期训练后的V和bv,其是第一层神经网络的权重矩阵和偏置,该矩阵的行表示动平台的位姿的6个变量的输入层I中的6个神经元及一个输入偏置值bv,该矩阵的列表示神经网络隐藏层H中的10个神经元及一个偏置值Hv

表1 多层感知机神经网络的第一层的权重矩阵V和偏置bv

I0 I1 I2 I3 I4 I5 bv H0 0.945 -0.453 0.735 0.479 0.669 0.614 0.248 H1 0.013 -6.157e-3 0.983 0.165 0.059 0.331 0.573 H2 0.803 1.106 0.374 0.296 0.443 0.474 -0.388 H3 -1.169 2.047 -0.157 0.229 0.042 7.64e-3 0.371 H4 0.048 0.786 0.166 0.766 0.179 0.433 0.321 H5 -0.413 1.529 0.028 0.121 0.251 0.35 6.863e-3 H6 1.072 -0.897 0.051 0.542 0.21 0.483 7.569e-3 H7 1.821 0.898 0.043 0.555 0.666 0.081 0.142 H8 1.502 0.993 0.167 0.748 0.477 0.571 0.308 H9 1.554 0.454 0.045 0.043 0.698 0.146 0.196 Hv 0.459 0.382 0.475 0.053 0.956 0.187 0.869

表2 多层感知机神经网络的第二层的权重矩阵W和偏置bw显示了神经网络经过1000周期训练后的W和bw,其是第二层神经网络的权重矩阵和偏置,该矩阵的行表示神经网络隐藏层H中的10个神经元及一个偏置值bw,该矩阵的列表示六个驱动单元的输出层O中的6个神经元。

踝关节康复机器人中所有驱动杆使用逆运动学方程计算的真实值和多层感知机神经网络中1000个周期之后的6根驱动杆近似长度的均方差分别为0.0016、0.0004、0.0018、0.0017、0.0015、0.0005。由此均方差值可知,通过多层感知机神经网络获得的近似值已经非常接近真实值。

最后,通过反归一化进行实际驱动杆长度的复原如图7所示。现在有神经网络训练好的权重矩阵V和W,就可以用神经网络进行逆运动学运算。

图7 基于多层感知机神经网络解出所有驱动杆的长度

表2 多层感知机神经网络的第二层的权重矩阵W和偏置bw

images/BZ_44_236_2785_2247_2828.pngO0 0.059 -0.515 0.907 -1.044 -0.472 -0.12 0.368 0.771 0.856 0.825 -0.984 O1 -0.038 -0.174 -6.428e-3 -0.824 0.222 -0.437 0.369 0.896 0.594 0.723 -0.508 O2 0.177 -0.061 0.578 0.517 2.908e-3 0.099 -0.169 0.253 -0.167 -0.471 -0.2 O3 0.162 0.521 -0.087 -0.638 8.119e-4 0.233 0.878 -0.668 -0.32 -0.428 0.248 O4 1.071 0.565 -0.348 -1.174 -0.583 -0.896 0.699 -0.469 -0.321 0.103 0.407 O5 0.649 0.053 -0.32 -1.281 -0.243 -0.998 0.985 0.698 0.204 0.36 -0.207

为了得到满意的精度,采用迭代计算进行误差补偿。误差补偿算法流程如图8所示。

其中,Pnew是对Ti进行逆解运算所得的位姿向量。Ti+1为以Pnew 为输入经网络逆解运算所得关节向量;误差Err=Ti+1-Ti;偏差?P=Pnew-Pin。误差补偿是采用Pin=?P作为下一循环的网络输入。采用图8误差补偿算法之后逆解计算的精度得到大幅提高,且只需很少几次迭代。利用上述算法对10个测试数据进行了验证计算。计算结果误差如表3所示,经过3次迭代以后,最大误差仅为0.836 µm,已能满足机器人控制精度要求。在奔腾双核T4200的个人计算机上测试,3次迭代运算时间约为2.3 ms,也已接近机器人实时控制的要求。

图8 误差补偿算法流程图

表3 误差补偿算法后的误差(µm)与运算时间(ms)

images/BZ_44_1284_1249_2244_1298.png11.549 1.269 0.623 0.152 0.089 2 1.748 1.275 0.618 0.563 0.097 3 1.433 1.133 0.574 0.268 0.087 4 1.923 1.701 0.416 0.227 0.053 5 1.127 1.191 0.402 0.268 0.161 6 1.732 1.164 0.488 0.205 0.157 7 1.159 1.0411 0.836 0.322 0.114 8 1.053 1.001 0.543 0.206 0.079 9 1.713 1.334 0.542 0.321 0.784 10 1.043 1.206 0.793 0.216 0.032运算时间 0.9321 1.7152 2.3098 3.4981 3.9872?

3 结论

本文通过运用BP神经网络结合康复并联机器人运动学模型的进行神经网络的训练与仿真模拟。从仿真结果可知,神经网络通过利用运动学模型的逆解结果训练学习,可以实现从工作变量空间到机器人关节变量空间的复杂非线性映射关系,避免了求解时公式推导和编程计算等繁杂的过程。其求解计算简单,实用性好,其在进行运动学逆解有很好的性能表现,其训练周期在1000左右时已经达到很高的精度了,其收敛速度及精度完全可接受的。但可以发现神经网络具有很多神经元,具有很大的权重矩阵,需要较长的神经网络训练时间。但发现当医生规划好康复机器人的训练路径,进行神经网络训练后的权重矩阵也就固定下来,并且精度也稳定在要求的范围内。因此运用神经网络进行机器人逆运动学计算驱动杆长度以满足踝关节运动期望的轨迹是有效的。进一步运用误差补偿算法提高神经网络求运动学模型的逆解精度及实时性。从仿真结果可知,在一定控制精度下能满足机器人实时控制的要求。例外,BP神经网络对信息的处理及推理的过程具有并行的特点,因此基于神经网络的运动学求解是极具发展前途的方法。它结合误差补偿算法可以达到更高的求解速度与精度,从根本上能解决康复机器人的实时求解要求。

[参考文献]

[1] 黄真,孔令富,方跃法.并联机器人机构学理论及控制[M].北京:机械工业出版社,1997,36-64.

[2] 文福安,梁崇高,廖启征.并联机器人机构位置正解[J].中国机械工程,1999,10(9):1011-1013.

[3] 胡明,郭成,蔡光起,等.一种三自由度并联机器人机构运动学计算[J].东北大学学报(自然科学版),1998,19(4):411-414.

[4] Dasgupta B,Mruthyunjaya TS.The Stewart plat2form manipulator: a review[J].Mechanism Machine Theory,2000,35(1):15-40.

[5] Gosselin CM.Parallel computational algorithms for the kinematics and dynamics of planar and spatial parallel manipulators[J].J Dynamic Systems Measur Control,1996,118(1):22-28.

[6] 张际先,宓霞.神经网络及其在工程中的应用[M].北京:机械工业出版社,1996.

[7] Bevilacqua V,Dotoli M,Foglia MM,et al.Artificial neural networks for feedback control of a human elbow hydraulic prosthesis[J].Neurocomputing,2014,137:3-11.

[8] 谢志江,李星君,李诚,等.位移补偿BP神经网络的3-PPR并联机构的正解研究[J].计算机集成制造系统,2015,21(7):1804-1809.

[9] 韩霄,李虹,李瑞琴.基于BP法的3-RRP并联机构位置正解研究[J].组合机床与自动化加工技术,2015,(2):94-96.

[10] 孙志娟,赵京,戴京涛.采用KPCA-BP神经网络的并联机构全局综合性能评价方法研究[J].现代制造工程,2014,(11):18-24.

[11] 解本铭,孙伟.基于BP神经网络5-P4R并联机构位置正解研究[J].机床与液压,2016,44(17):33-35.

[12] 王罡,毛志伟,罗玉峰,等.基于神经网络的并联机构方位特征集自动分析算法[J].机械传动,2018,42(7):44-48.

[13] 刘晓飞,姚建涛,赵永生.基于模型的冗余驱动并联机构神经网络同步协调控制[J].农业机械学报,2018,49(2):367-375.

[14] Wang J,Gosselin CM.Kinematic analysis and design of kinematically redundant parallel mechanisms[J].J Mech Des,2004,126(1),109-118.

[15] Li Y,Xu Q.Kinematic analysis of a new 3-DOF translational parallel manipulator[A].International Design Engineering Technical Conferences and Computers and Information in Engineering Conference[C].Long Beach:ASME,2005,24-28.

[16] Li Y,Xu Q.Kinematic design of a novel 3-DOF compliant parallel manipulator for nanomanipulation[A].International Conference on Advanced Intelligent Mechatronics[C].Monterey:IEEE,2005,24-28.

[17] Liu G,Gao J,Yue H,et al.Design and kinematics analysis of parallel robots for ankle rehabilitation[A].International Conference on Intelligent Robots and Systems[C].Beijing:IEEE,2006,253-258.

Exact Solution of Inverse Kinematics of Ankle Rehabilitation Parallel Robot Based on Neural Network

GE Kaiyou1, CHENG Xiwei2, ZHANG Jianfa1, LI Jinzhong1, CHENG Xiao1, KUANG Shaolong1
1. School of Mechanical and Electrical Engineering, Soochow University, Suzhou Jiangsu 215000, China;2. Suzhou Hospital of Traditional Chinese Medicine, Suzhou Jiangsu 215000, China

Abstract: In order to solve the precision and real-time requirements of the inverse kinematics of the ankle joint rehabilitation parallel robot in the field of rehabilitation, this paper combined the kinematics model of ankle joint rehabilitation robot and used the backward propagation neural network to solve the inverse kinematics of the robot. Firstly, the neural network training set was generated by the inverse kinematics equation of the robot, and the neural network was trained and learned by the training set. After training, the neural network could accurately solve the position and attitude of the parallel robot. The algorithm was simple and effective. In order to further improve the accuracy of the results, iterative calculation was used to compensate the errors. The results showed that the method had few iterations, high accuracy and close to the real-time control of robot.

Key words: rehabilitation robot; parallel robot; neural network; backward propagation network; error compensation

收稿日期:2019-08-26

基金项目:国家自然科学基金项目(61375090;U1613224;U1713218)。

通信作者:匡绍龙,副教授,主要研究方向为医疗机器人与医学装备。

通信作者邮箱:slkuang@suda.edu.cn

[中图分类号] R318

[文献标识码] A

doi:10.3969/j.issn.1674-1633.2020.03.009

[文章编号] 1674-1633(2020)03-0033-04