APP下载

基于残差BP 神经网络的Baxter 机器人逆运动学分析方法

2024-04-18赵杨鑫余志强潘雨欣

关键词:执行器运动学残差

赵杨鑫 ,曹 旭 ,余志强 ,潘雨欣 ,方 田 ,汪 婧 ,沈 浩

(1.安徽工业大学 电气与信息工程学院, 安徽 马鞍山 243032;2.中冶华天工程技术有限公司, 安徽 马鞍山243005)

随着科技的迅猛发展,机器人技术的应用范围日渐扩大,已渗透到工业生产、医疗救援、家政服务、地质勘探等众多领域,展现出巨大的应用潜力[1-2]。Baxter 机器人作为1 种协作型机器人,有效的运动规划对任务执行至关重要,逆运动学分析是运动规划控制中的核心问题[3]。随着各领域对智能机器人要求的不断提高,机器人面临的环境通常无法预知,非结构化环境成为主流[4],相应地对机器人逆运动学分析提出了更高的要求。常用的雅可比转置法、解析法和迭代法用于逆运动学求解时存在可能仅有唯一解,使机器人难以达到目标姿态,无法满足精准度、稳定性和实时性等方面的要求;普通反向传播(back propagation,BP)神经网络在处理非线性问题时可能面临梯度消失和训练效率低下等问题,在某些场景下难以达到理想的性能。因此,进一步开展机器人逆运动学分析方法的研究对于提高复杂多变环境下机器人的运动控制能力和应用有重要的意义。

对于机械臂逆运动学分析已引起学者们的广泛关注,国内外学者针对其求解提出了各种改进方法。Hasan 等[5]针对机械臂逆运动学求解提出1 种人工神经网络的方法,但精度偏低;Ozgoren[6]运用优化后的解析法求解逆运动学,但过程复杂、精度不高;钟献有等[7]针对求解机械臂逆运动学的奇异问题,提出1 种最小运动变换模型的求解方法,但对于自由度高的机械臂求解过程复杂;李扬等[8]提出1 种基于BP 神经网络求解逆运动学方法,解决了多解性的问题,但精度较低;Ahmed 等[9]提出1 种基于轴不变方法的逆运动学解析解,提高了机械臂末端执行器位置和姿态的精度,但没有满足实时性要求。在逆运动学问题中,存在复杂的非线性关系,残差BP 神经网络具有强大的非线性映射能力、出色的泛化能力且鲁棒性较强,可更好地捕捉这些复杂性。相对于普通BP 神经网络[10-13],残差BP 神经网络在训练深层网络时更易收敛,性能更好。鉴于此,采用残差BP 神经网络改进Baxter 机器人的逆运动学分析,以期在提高模型训练效率、减小误差的同时,保持神经网络在逆运动学建模中的表达能力,实现Baxter 机器人七自由度机械臂逆运动学高效准确的求解。

1 Baxter 机器人机械臂运动学分析

参考文献[14],建立Baxter 机器人七自由度机械臂的D-H 连杆坐标系,便于对机械臂进行正逆运动学分析;在此基础上,提出1 种基于残差BP 神经网络方法求解机械臂的关节角度;将训练好的关节角度通过话题发布,订阅到物体抓取的脚本中,运用合理的轨迹和路径规划使Baxter 机器人高效、准确地完成物体抓取任务。

Baxter 机器人七自由度的机械臂如图1 所示,机械臂的关节系统包括肩关节(S0)、肘关节(S1)、旋转关节0(E0)、旋转关节1(E1)、腕关节0(W0)、腕关节1(W1)和腕关节2(W2)。肩关节允许机械臂在水平平面上旋转,改变工作方向;肘关节使机械臂能够垂直弯曲和伸展,调整臂长;旋转关节0 允许机械臂绕自身轴线旋转;旋转关节1 使机械臂在水平平面上旋转,扩展工作范围;腕关节0 和腕关节1 分别实现水平和垂直方向的倾斜,调整手臂姿态;腕关节2 负责末端的精确旋转,用于物体定位和操作。

图1 Baxter 机器人单个机械臂的关节示意图Fig.1 A joint diagram of a single robotic arm of a Baxter robot

1.1 机械臂坐标系的建立

Baxter 机器人单个机械臂共7 个自由度,建立如图2 所示的机械臂D-H 连杆坐标系。

图2 Baxter 机器人的机械臂D-H 连杆坐标系Fig.2 D-H linkage coordinate system of Baxter robot

图中:机械臂偏移长度L0,L1,L2,L3,L4,L5,L6分别为270.35, 69.00, 364.35, 69.00, 374.29, 10.00,368.30 mm;机械臂对应连杆参数用an(连杆长度)、αn(连杆扭角)、dn(连杆距离)、 θn(连杆夹角)表示;n=1,2,...,7 , 表示第n个关节;D-H 参数表征机械臂运动时的状态,机械臂D-H 参数见表1。

表1 Baxter 机器人的机械臂D-H 参数Tab.1 D-H parameter of Baxter robot’s robotic arm

由表1 可知关节角度 θ与连杆夹角的关系为θ=θ1θ2θ3θ4θ5θ6θ7,关节变量代表机械臂每个关节的特定状态,故通过控制关节角度,Baxter 机器人的机械臂可实现运动和位置调整。

1.2 机械臂的运动学分析

机械臂的正运动学是根据机械臂关节变量计算机械臂末端执行器位姿和位置的过程,在机械臂控制系统中,正运动学是实现机械臂运动控制和目标位姿完成的重要部分[15-16]。基于建立的机械臂坐标系,机械臂正运动学涉及计算变换矩阵、末端执行器位置和姿态3 个步骤。Baxter 机器人的正运动学奇次变换矩阵如式(1)

其中:sθi=sinθi,cθi=cosθi,sαi=sinαi,cαi=cosαi。正逆运动学之间的关系是互逆的,正运动学提供从关节角度到末端执行器位置和姿态的映射,而逆运动学提供从末端执行器位置和姿态到关节角度的映射,如图3 所示。正运动学和逆运动学可互相补充,能够使关节空间和工作空间之间进行转换和计算。

图3 正逆运动学关系Fig.3 Forward and inverse kinematics relationship

Baxter 机器人的逆运动学问题是一个多自由度、非线性和高度耦合的问题。为解决这一挑战性的问题,文中通过采集大量机械臂末端执行器位置和欧拉角数据,引入残差BP 神经网络对逆运动学非线性方程组进行设计优化,为机器人在复杂环境中更智能、适应性更强的运动规划提供有效手段。

2 残差BP 神经网络的逆运动学分析

对于机械臂逆运动学分析,需根据机械臂位姿矩阵的平移和旋转变量,反向计算出7 个关节的关节角度。残差BP 神经网络是1 种由多层前馈神经元组成的网络模型,具有较强的非线性拟合能力、自学习能力和容错能力,适用于求解多输入多输出的非线性复杂系统[17-18],被广泛应用于解决多输入多输出的非线性复杂问题。因此,文中基于Baxter机器人的机械臂结构特征,构建残差BP 神经网络结构,预测机械臂关节角度,实现机械臂逆运动学求解。

2.1 残差BP 神经网络结构

针对Baxter 机器人的右机械臂,进行逆向运动学非线性方程组的分析,设计的残差BP 神经网络结构如图4。

图4 残差BP 神经网络结构Fig.4 Residual BP neural network structure

在该网络结构中,选取右机械臂末端位姿的平移和旋转信息作为输入向量X:

通过编码器、惯性测量单元、位置传感器和力传感器获取机械臂末端位置 [x,y,z] 和 欧拉角 [θx,θy,θz]。神经网络的输出为机械臂7 个关节角度变量,构成输出向量Y:

由图4 可知:设计的残差BP 神经网络主要由3 个长短期记忆(long short-term memory,LSTM)层、线性层1、校正的线性单元(rectified linear unitsm,ReLu)激活函数层、线性层2 组成。LSTM 是一种特殊的循环神经网络(recurrent neural network,RNN),主要是处理序列数据,用来捕捉序列中的长期依赖关系,每个时间步的输入都与前面的时间步有关,从而满足输入数据的这种序列依赖关系。LSTM 通过门控机制有效地解决了梯度消失和爆炸问题,使网络更稳定地训练。通过训练好的LSTM 残差BP 神经网络,可更快速高效地计算出各个关节的角度,从而简化逆运动学的计算。LSTM 层的输入维度为1×6,层数为3,输入数据通过LSTM 层进行序列建模后输出维度变成1×64。

LSTM 层后续的线性层和激活函数层结构参数如图5。通过线性层1(f1),对LSTM 的输出进行线性变换,将输出的特征维度从1×64 变换为64×64;再经过ReLU 激活函数层进行非线性变换,既增加了模型的非线性,也使序列信息转换为新的形式;最后经过线性层2(f2),对上一层输出进行线性变换,特征维度从64×7 变换为输出1×7 的机械臂7 个关节角度数据。

图5 线性层和激活函数层结构参数Fig.5 Structure parameter of linear layer and activation function layer

线性层1(f1)是神经网络模型的一个重要组成部分,对输入进行线性变换,用来捕捉输入数据中的特征,为后续的学习和决策提供更有用的信息。这一步是整个模型中的关键环节,有助于模型更好地理解和学习任务中的复杂关系,线性层1(f1)如式(5)。

其中:f1为输出变量;W1为权重矩阵;x为输入变量;b1为偏差向量。激活函数层(ReLU)是在神经网络中引入非线性,帮助模型更好地学习复杂的模式和特征。当输入的是正数时,直接输出该值;当输入的是负数时,输出为零。这种简单而有效的非线性转换使神经网络能够更好地适应各种复杂的任务,激活函数层(ReLU)如式(6)。

线性层(f2)通过对ReLU 函数的输出进行线性变换,进一步学习和捕捉特征间复杂关系,为最终的任务提供更丰富的表示能力,线性层(f2)如式(7)。

其中:f2为输出变量;W2为权重矩阵;b2为偏差向量。残差BP 神经网络的优化目标为均方误差损失函数,如式(8)。

其中:Lmse为损失函数;yt为真实目标值;y∧为预测目标值;n为数据集样本量。残差BP 神经网络的优化器为Adam,通过自适应地调整每个参数的学习率,可更快地收敛到较优解。在Adam 中指定的初始学习率l(learning rate)为0.001,学习率调度器的训练周期为100,通过式(9)调整每次学习率。

学习率变化曲线如图6 记录机械臂训练过程中每轮的学习率,并图形的方式表现,如图6。

图6 学习率的变化曲线Fig.6 Variation curve of learning rate

训练次数下的学习率一般分为如下3 阶段:

1) 初始阶段(early training) 初始时学习率较大,有助于模型快速收敛,模型的权重参数一般会快速调整。

2) 逐渐降低阶段(gradual decay) 随着训练的进行,学习率逐渐减小,可采用余弦退火学习率更加精细地调整权重参数,以更好地适应训练数据。

3) 稳定阶段(stable phase) 学习率趋近于0,表示模型在稳定状态下进行训练,较小的学习率有助于模型在局部最小值附近更精确地搜索。

综合来说,学习率的调度策略一般在训练早期阶段使用较大的学习率以加速模型收敛,在后期逐渐减小学习率以提高模型的稳定性和泛化能力。

使用真实输出结果更新残差BP 神经网络的权重,可获得更准确的输出值[19]。残差BP 神经网络有助于网络更好地适应复杂的非线性映射关系,且通过残差学习可加速模型的训练和收敛。这些特性使得残差BP 神经网络在处理Baxter 机器人的逆运动学问题时具有一定的优势,有利于提高求解的效率和精度,有效解决机械臂逆向运动学计算问题。

2.2 逆运动学仿真分析

为证实残差学习可提高模型的准确性,将残差BP 神经网络和普通BP 神经网络用于Baxter 机器人的逆运动学分析,通过预测Baxter 机械臂末端执行器的位置和欧拉角,实现对机械臂关节角度的控制。基于Ubuntu 18.04 操作系统,通过Rviz 软件加载Baxter 机器人模型,如图7。首先,通过Baxter 机器人右臂末端执行器采集140 组位置和欧拉角数据样本,进行逆运动学求解;其次,进行1 500 轮的训练,对比2 种方法的均方误差,比较分析残差BP 神经网络模型的性能。

图7 Rviz 中的Baxter 机器人模型Fig.7 Baxter robot model in Rviz

根据作业要求,确定机器人关节旋转角度的范围,见表2。将输入和输出的关节角度限定在合理范围内,确保机械臂的运动符合实际物理约束[20]。通过这样的限制,残差神经网络可更精确地学习和预测机械臂的关节角度,实现逆运动学的求解。

表2 关节旋转角度范围Tab.2 Joint rotation angle range

采集140 组机械臂末端位置和欧拉角(x,y,z,θx,θy,θz),选取100 组作为训练数据、20 组作为验证集数据、20 组作为预测数据。通过Python 编写程序,进行训练;在训练过程中,持续调整参数。通过对比仿真结果确定残差BP 神经网络参数:目标误差为0.006,总参数为89 607。

残差BP 神经网络与普通BP 神经网络误差训练曲线如图8。由图8 可看出:从训练开始到第1 500 轮的过程中,初始时2 种方法的均方误差较高;随着训练的进行,训练至第500 次时,均方误差均明显下降;随后残差BP 神经网络的均方误差明显低于普通BP 神经网络,至第1 500 轮次时,残差和普通BP 神经网络的均方误差分别为0.006,0.782,相差0.776。可见,与普通BP 神经网络相比,残差BP神经网络学习的精度显著提升。

图8 残差与普通BP 神经网络误差训练曲线Fig.8 Error training curves of residual and ordinary BP neural networks

均方根误差(root mean squared error,RMSE)是1 种度量模型预测值与实际观测值之间的差异指标;决定系数(R2)是用来衡量模型对观测数据变异性解释程度的1 种指标,取值范围为[0,1],越接近1,说明拟合程度越好。为量化分析残差BP 神经网络模型的性能,选取RMSE 和R2作为学习模型的评估系数,计算公式如下:

残差BP 神经网络模型验证集的RMSE 和R2的结果如表3。分析表3 的RMSE 可知:关节1,3和6 的RMSE 较低,分别为0.015 9,0.016 6,0.015 0,表明残差BP 神经网络模型对这3 个关节的预测非常准确;余下关节的RMSE 均在合理范围内,整体的模型性能较稳定。分析表3 的R2可知:所有关节的R2都非常接近1,表明残差BP 神经网络模型对验证集上的数据具有很好的拟合能力;关节3 的R2最高,达0.999 8,说明模型对该关节的拟合效果最优;关节7 的R2较低,为0.989 1,在合理范围内,模型对该关节的拟合效果较好。

表3 验证集上的预测结果Tab.3 Prediction results on the validation set

综合RMSE 和R2可得出:残差BP 神经网络模型对Baxter 机械臂关节的预测均比较出色,关节2,4 和5 的RMSE 稍高,但R2接近1;残差BP 神经网络模型训练的机械臂逆运动学在验证集上取得良好效果,能够准确预测机械臂关节位置。因此,采用残差BP 神经网络,引入残差学习机制,强调网络层之间的残差连接,可提高模型训练效率和收敛速度。

3 双臂协同实验

为验证残差BP 神经网络在Baxter 机器人双臂协同抓取放置任务中的效果,实现Baxter 机器人在家庭服务应用场景中的双臂协同操作(包括物体抓取和放置),选取红辣椒、橙子、苹果、面包4 种物体进行双臂协同抓取放置实验。实验数据通信方式如图9 所示,在ROS 中建立2 个关键节点:发布节点joint_angles_publisher,将Baxter 机械臂的7 个关节角度数据以joint_state.msg 消息类型的格式发布到ROS 话题/predicted_joint_angles 上;订阅节点joint_angles_subscriber,订阅同一话题,接收关节角度数据。

图9 关节角度话题通信Fig.9 Topic communication of joint angle

将4 种待抓取物体逐一摆放在操作台上,开启Baxter 机器人,然后启动Baxter 机器人动作服务器以及编写的launch 文件,建立关键通信节点、通过话题的方式进行数据通信,选择4 种物体分别用残差BP 神经网络和普通BP 神经网络分别进行10 次抓取实验,统计每种物体10 次抓取的成功次数,并计算成功率。基于残差BP 神经网络的Baxter 机器人双臂协同流程见图10。

图10 Baxter 机器人双臂协同流程图Fig.10 Flowchart of Baxter robot’s dual-arm collaborative process

Baxter 机器人双臂协同主要步骤如下:

1) 右机械臂进行平行夹爪的校准,采用残差BP 神经网络将位置信息进行映射和归一化的训练后得到右机械臂7 个关节角度信息,通过关节角度信息确定右机械臂的姿态;

2) 右机械臂的平行夹爪移动到目标物体的抓取位置,一旦右机械臂的平行夹爪到达抓取位置,夹爪关闭,完成抓取动作;

3) 右机械臂移动到物体的待放置位置,同时左机械臂的末端执行器移动到物体的放置位置;

4) 右机械臂以5 cm 的垂直距离向下移动,打开平行夹爪,将物体放置在指定的托盘中,从而完成双臂协同抓取放置实验。

Baxter 机器人双臂协同抓取实验结果统计如表4。由表4 可看出:对于红辣椒、橙子、苹果、面包4 种物体,10 次实验中,基于普通BP 神经网络的机器人抓取成功次数分别为6,7,7,6,平均成功率为65.0%;基于残差BP 神经网络的机器人抓取成功次数分别为9,8,9,9,平均成功率为87.5%,相较于普通BP 神经网络提高22.5%。

表4 抓取实验统计结果Tab.4 Capture experimental statistical results

实验过程中Baxter 机器人在Rviz 中末端执行器的运动轨迹如图11,不同目标物体对应的抓取场景如图12。图11 中,蓝色曲线表示机械臂末端轨迹;从起始位姿开始,右机械臂通过获得训练好的关节角度,以话题的方式发布数据使右机械臂移动到相应位置;抓取到目标物体后,移动到待放置位置;然后左机械臂(含托盘,见图12)移动到待放置位置下方,右机械臂向正下方靠近打开夹爪,目标物体放置托盘上,完成双臂协同操作。

图11 Baxter 机器人的机械臂末端实际轨迹Fig.11 Actual trajectory of the robotic arm end of Baxter robot

图12 Baxter 机器人的机械臂实物抓取Fig.12 Physical grabbing of Baxter robotic arm

综上可看出:通过残差BP 神经网络对Baxter七自由度机械臂逆运动学进行建模,将位置和欧拉角拟合成Baxter 机器人右臂的7 个关节角度,模型在处理逆运动学问题上具有较强的表达能力和泛化能力;将训练好的关节角度以话题的形式发布订阅,采用残差BP 神经网络计算单点的时间约8.1 ms,远小于机械臂运动规划的控制周期,实现了实时性的要求;残差BP 神经网络在1 500 次训练轮数下的均方误差为0.006,相较于普通BP 神经网络减小0.077,残差学习的引入对模型的误差减小起到积极作用;在物体抓取放置实验中,残差BP 神经网络的抓取成功率为87.5%,相较于普通BP 神经网络提高了22.5%,由此表明,利用残差BP 神经网络拟合机械臂逆运动学模型的方法在机械臂轨迹跟踪任务中具有良好的精度和稳定性。

4 结论

为提高Baxter 七自由度机械臂的运动精度和鲁棒性,提出一种基于残差BP 神经网络逆运动学分析方法。通过采集大量机械臂末端执行器位置和欧拉角数据,并利用残差BP 神经网络对Baxter 机械臂进行逆运动学分析,建立机械臂工作空间到关节空间的映射关系,选择合适的神经网络模型激励函数、隐藏层神经元数量、神经网络层数以及学习速率等关键参数构建残差BP 神经网络模型,通过残差学习加速模型的训练和收敛,提高模型的性能和精准度。逆运动学仿真分析和双臂协同实验成功验证了残差BP 神经网络的优越性,利用残差BP 神经网络拟合机械臂逆运动学模型的方法在机械臂轨迹跟踪任务中具有良好的精度和稳定性。未来的研究可探索更多神经网络模型和算法,以进一步提高机械臂的运动精准度和鲁棒性,推动机械臂在实际工作中的应用。

猜你喜欢

执行器运动学残差
基于双向GRU与残差拟合的车辆跟驰建模
基于残差学习的自适应无人机目标跟踪算法
基于MATLAB的6R机器人逆运动学求解分析
基于递归残差网络的图像超分辨率重建
双级执行器系统的离散滑模控制
基于D-H法的5-DOF串并联机床运动学分析
飞机装配预连接紧固件自动化安装末端执行器设计
考虑执行器饱和的改进无模型自适应控制
一类具有执行器饱和的非线性系统抗饱和方法研究
基于运动学原理的LBI解模糊算法