Robot Arm Task Imitation System Based on RNN
-
摘要:
为了简化机械臂复杂的运动规划问题,且使机械臂具有适应新任务的泛化能力,研究并实现了一种基于循环神经网络(recurrent neural network,RNN)的机械臂任务模仿系统.首先,由示教者进行原始任务示教并采集示教数据;其次,通过构建RNN对原始示教数据进行训练,得到机械臂对示教任务模仿的控制策略;然后,当任务发生变化时,观察新任务的运动并采集运动信息;最后,通过基于RNN的控制策略对新任务运动信息进行泛化输出,得到机械臂模仿新任务的控制信息,进而完成模仿.物理对象实验结果表明,系统具有简单高效的策略获取能力以及良好的泛化能力,使机械臂不仅能够模仿原始示教任务,而且可以通过泛化实现对新任务的模仿.
-
关键词:
- 控制策略 /
- 机械臂 /
- 运动规划 /
- 循环神经网络(RNN) /
- 泛化
Abstract:To simplify the complex motion planning problem of robot arm and make the robot arm have the generalization ability to adapt to the new task, a robot arm task imitation system based on recurrent neural network(RNN) was researched and implemented in this paper. First, the original task was taught by the teacher, and the teaching data was collected. Second, by constructing RNN to train the original teaching data, the control strategy of the robot arm imitation was obtained. Then, when the task changes, the movement of the new task was observed and the movement information was collected. Finally, the motion information was generalized via the robot arm control strategy based on RNN, and the control information of robot arm of imitating the new task was obtained, completing the imitation. Experimental results show that the method can obtain strategy simply and efficiently and has preferable generalization ability, which make the robot arm not only can imitate the original task, but also can imitate the new task when the task changes.
-
Keywords:
- control strategy /
- robot arm /
- motion planning /
- recurrent neural network (RNN) /
- generalization
-
机械臂是机器人领域最为典型的一种机械结构,其在工业、民用、教育等领域有着十分广泛的应用.机械臂可以代替人类运动从而完成在危险环境下的工作任务,同时也能将人从繁重的劳动中解放出来,极大地提高生产的效率.为了提高机械臂的性能,使机械臂有更好的适应能力,智能化已成为机械臂的研究热点[1].合理的运动规划是研究的目的,其难点在于如何能够高效地求解机械臂运动学逆解.传统的运动规划一般是建立在机械臂的运动学基础上进行的,通过对期望轨迹进行逆运算得到逆解,但是其运算较为复杂,通过传统运动规划方法获取控制策略的方式已渐显不足.
模仿是一种最直接有效的学习方式[2-3],人类可以通过观看其他人的行为进行学习并模仿,同时可以快速获取新的行为[4].对于机械臂而言,任何使机械臂模仿人类运动的方法都能显著地加速学习过程[5].模仿分为目的层面的模仿和轨迹层面的模仿,而机械臂对行为的模仿更偏重于轨迹层面的模仿,其可以通过示教进行学习,获得机械臂的运动控制策略[6-7].常见的策略获取方法有高斯混合模型等,但是这些方法一般只能实现示教再现,即只能完成对原始示教行为的模仿,并不能提高机械臂的适应能力.通过模仿使机械臂获取运动的技术难点在于,示教再现的方式只能应用于当前任务,而当任务发生变化时,需要通过泛化使机械臂可以适应新的任务.
文献[8]使用传统的几何法对机械臂运动学进行求解,虽可在仿真环境下实现机械臂对规划轨迹的模仿,但是其求解过程复杂.文献[9]使用BP神经网络对机器人运动学进行了求解,可以实现从工作空间到机器人关节空间的复杂非线性映射关系,避免求解时的公式推导和编程计算等繁杂的过程.文献[10]利用神经网络逼近机器人逆运动学的输入与输出,并利用改进的蚁群算法学习神经网络,虽可得到控制策略,但是其没有进行泛化研究.文献[11]利用一种基于动态模糊神经网络的方法对机器人逆运动学进行求解,在一定程度上提高了求解的效率,但是其轨迹模仿只停留在仿真层面,并没有进行物理实现.
循环神经网络(recurrent neural network,RNN)是一种在隐含层内部加入了定向循环结构的神经网络,其特殊的结构能够较好地处理基于时间序列数据的问题,通过表征输入数据的分布式表示,展现出较强的学习数据集的本质特征的能力,实现复杂函数的逼近,更好地刻画出数据的丰富内在信息,具有较强的泛化能力,目前已经在智能机器人、自然语言处理、计算机视觉等领域内得到了广泛的应用.
为简化机械臂的复杂的运动规划问题,且使机械臂有适应新任务的泛化能力,本文将RNN引入模仿学习中,研究并实现了一种基于RNN的机械臂任务模仿系统.首先,由示教者进行任务示教并采集得到原始示教数据;其次,通过RNN对原始示教数据进行训练,得到机械臂对示教任务模仿的控制策略;然后,当任务发生变化时,采集新任务的运动信息;最后,通过基于RNN的控制策略对新任务运动信息进行泛化得到机械臂模仿新任务的控制信息,进而实现泛化任务的模仿.物理实验结果表明,该方法具有简单高效的策略获取能力以及良好的泛化能力,使机械臂不仅能够模仿原始任务,而且可以通过泛化实现对新任务的模仿.
1. 基于RNN的机械臂任务模仿系统
为使机械臂实现对原始示教任务的模仿以及通过泛化实现对新任务的模仿,设计整个系统的流程如图 1所示.
1.1 原始示教数据的获取
首先由示教者进行原始任务示教,并采集示教数据信息,得到原始示教数据集.定义集合S=(sxt, syt, szt)为采集得到的原始示教任务运动轨迹信息数据集,其中下标x、y、z代表运动轨迹信息在空间中的方向,t代表时间;定义集合A=(ait)为机械臂关节角度信息数据集,其中i∈[0, k],代表机械臂关节;定义集合D=(S, A)为示教数据集.
1.2 基于RNN的机械臂模仿的生成
通过RNN网络对示教数据集进行训练,生成控制策略,将机械臂的运动和示教任务运动联系起来.
RNN由输入层、隐含层以及输出层组成,如图 2所示.
$$ {o_t} = g(\mathit{\boldsymbol{V}}{s_t}) $$ (1) 式中:st是网络在t时刻隐含层的值;ot是t时刻网络的输出值;V是输出层的权值向量;g是激活函数.
$$ {s_t} = f(\mathit{\boldsymbol{U}}{x_t} + \mathit{\boldsymbol{W}}{s_{t-1}}) $$ (2) 式中:xt是t时刻的输入值;st-1是t-1时刻隐含层的值;U是输入层的权值向量;W是隐含层的权值向量;f是激活函数.
将式(2)代入式(1),得到输出值ot为
$$ \begin{array}{l} {o_t} = g(\mathit{\boldsymbol{V}}{s_t}) = \mathit{\boldsymbol{V}}f(\mathit{\boldsymbol{U}}{x_t} + \mathit{\boldsymbol{W}}{s_t}) = \\ \mathit{\boldsymbol{V}}f(\mathit{\boldsymbol{U}}{x_t} + \mathit{\boldsymbol{W}}f(\mathit{\boldsymbol{U}}{x_{t-1}} + \mathit{\boldsymbol{W}}{s_{t-2}})) \end{array} $$ (3) 由此可以看出,输出值ot是受历次输入xt、xt-1的影响的.这种特性决定了RNN适合处理时序数据,通过对具有时序特点的已有历史数据进行学习,可以得到时序数据间复杂的映射关系.
RNN通过随时间的反向传播(backpropagation through time, BPTT)算法进行学习,学习的目的是为了获取U、V、W这3个权值向量.首先得到各个权值向量的变化量之后,通过梯度下降来更新W、V、U这3个参数,训练结束后得到原始示教任务轨迹信息与关节角度信息之间的非线性映射关系,即机械臂对任务进行模仿的策略.
1.3 泛化任务的观察以及模仿实现
通过基于RNN的控制策略的输出可以得到机械臂模仿示教任务的关节角度信息,从而可以直接实现示教任务的模仿.如果任务发生变化,也可以通过策略对新任务运动轨迹信息的泛化输出实现对新任务的模仿.
1.3.1 泛化任务的观察
当任务发生变化时,需要重新观察泛化任务运动并采集其运动信息,以使机械臂可以规划其自身与泛化任务相似的运动.
1.3.2 泛化任务的模仿实现
在观察得到泛化任务的运动轨迹信息之后,将其作为基于RNN的控制策略的输入,通过策略的泛化输出,得到机械臂对泛化任务模仿的关节角度信息,进而完成对泛化任务的模仿实现.
2. 物理实验平台的构建
为实现基于RNN的机械臂对任务的模仿,设计使用7bot作为任务模仿的物理对象进行模仿实现.
2.1 7bot机械臂
7bot机械臂是一款多自由度全金属机械臂,采用Arduino Due作为控制器,并使用数字舵机进行驱动,具有快速响应、高精度的特点,同时其开放了底层协议,可用于进行二次开发,图 3是7bot机械臂实物图.
7bot机械臂采用的数字舵机为四线制,分别为电源正极线、电源负极线、信号线和反馈线,如图 4所示.其中电源正极线和电源负极线负责给舵机供电;信号线负责接收由控制器输出的控制信号,以驱动舵机按照指令转动;反馈线负责读取机械臂运动时的关节角度信息.
示教者在手把手做出任务示教时,机械臂末端和示教任务运动的空间位置重合,所以可以通过采集机械臂末端在参考坐标系下的运动信息来间接获取示教任务运动的轨迹信息.首先设定7bot机械臂坐标系,如图 5所示.
设计7bot机械臂,以旋转底座的中心为坐标原点,其左右方向为x轴,前后方向为y轴,上下方向为z轴.在得到关节角度信息A后,可以通过正向运动学计算得到任务运动的轨迹信息S,并得到示教数据集D.
2.2 7bot机械臂的工作过程
7bot机械臂的工作过程如图 6所示.
图 6中,Arduino IDE为Arduino的开发环境,Processing IDE为Processing的开发环境.首先,在Arduino IDE中编写接收命令,并烧录到控制器中;然后,在Processing IDE中编写控制命令,通过串口通信将数据发送给控制器,控制器接收到指令后,输出控制信号,驱动机械臂运动.
3. 实验设计与分析
3.1 示教任务的模仿
3.1.1 示教数据的获取
设计原始示教任务为拖动方形物体做二维曲线运动. 7bot机械臂通电后具有3种模式:无力模式、正常模式和保护模式,设置7bot机械臂为无力模式进行手把手示教,如图 7所示.
示教时通过上位机与下位机的串口通信,实时读取舵机转动角度得到机械臂关节角度数据集S(单位:(°)),同时通过正向运动学关系计算出机械臂末端移动物体时的位置信息数据集A(单位:mm),并将数据保存下来.示教结束后,得到示教数据集D.
3.1.2 基于RNN的控制策略的生成
示教运动是二维曲线的简单运动,且机械臂的运动涉及3个关节,所以构建的RNN网络的输入为示教运动轨迹信息(sxt, syt),输出为机械臂的关节角度信息(a0t, a1t, a2t),网络结构采用2-10-3结构.网络构建后开始训练,进行策略生成,训练过程如图 8所示.
网络训练的迭代次数为14,策略生成的速度较快;网络在第8次迭代训练时的均方误差(mean square error, MSE)为0.052 5,策略生成的精度较高.训练结束后,得到基于RNN的控制策略,如图 9所示.
图 9中蓝点、绿点和红点代表原始示教数据,蓝色、绿色和红色曲线为生成的策略的输出.从图 9可以看出,经过策略重构的示教数据能够很好地拟合原始示教数据.
3.1.3 示教任务的模仿实现
在得到控制策略后,直接进行策略输出,得到机械臂对示教运动模仿的关节角度信息,如图 10所示.
策略生成的数据与原始数据之间的误差如图 11所示.从图中可以看到误差较小,在上位机Processing IDE中,将策略输出的角度信息通过串口发送给机械臂控制器,控制器输出控制信号,指导机械臂对示教运动做出模仿,如图 12所示.
机械臂可以对原始示教运动做出模仿,且行为与原始示教运动一致.
3.1.4 复杂任务的模仿研究
为验证系统对复杂任务模仿的有效性,设计复杂任务为拖动方形物体按照“8”字形运动,如图 13所示.
示教结束后得到示教数据集D.重新构建RNN结构为2-10-3结构并开始训练,进行策略生成,训练过程如图 14所示.
网络训练的迭代次数为18,策略生成的速度较快;网络在第12次迭代训练时的MSE为0.140 4,策略生成的精度较高.训练结束后,得到控制策略,如图 15所示.
图 15和图 9中各量的表示相同.在上位机中将数据发送给控制器,指导机械臂对复杂任务做出模仿,如图 16所示.
机械臂可以对复杂任务做出模仿,且行为与复杂任务运动一致.
3.2 泛化任务的模仿研究
3.2.1 采集泛化任务运动信息
当任务发生变化时,需要重新“观察”新任务的运动,并采集其运动信息.以原始示教任务的终点为泛化任务的起点,采集3组任务的运动信息,原始示教任务与泛化任务在二维平面内的运动范围如表 1所示.
表 1 任务的运动范围Table 1. Range of task motion任务组别 运动范围/mm 原始示教任务 (58, 136)~(-104, 275) 新任务1 (-104, 275)~(-134, 260) 新任务2 (-134, 260)~(-154, 255) 新任务3 (-154, 255)~(-174, 251) 考虑到机械臂模仿的现实意义,需要将新任务轨迹与原始示教轨迹连接起来,以使机械臂每次都从起点开始运动.
3.2.2 泛化任务的模仿
对3组泛化任务分别进行实验.定义机械臂对泛化任务模仿时所到达的终点位置与期望位置之间的距离为d,以d为考核标准:当d<10 mm时,认为机械臂能够实现对泛化任务的模仿.
实验1 将新任务1的轨迹信息作为策略的输入,通过策略的泛化输出,得到机械臂模仿的关节角度信息,在上位机中将关节角度数据发送给控制器,控制器能够指导机械臂做出对任务1的模仿,如图 17所示.
机械臂对泛化任务1模仿的终点位置与期望位置的距离d为5.83 mm, 通过物理实验结果可以得出,当泛化任务运动范围在原始示教任务运动范围外的22.9%以内时,系统可以实现对泛化任务的模仿.
泛化任务1的运动数据与原始示教数据接近,通过RNN对原始示教数据学习得到的策略可以表征示教的运动规律,而且策略对于和示教数据同一分布的数据,具有一定的推广能力,所以可以通过策略的泛化输出得到较为准确的关节角度信息,使机械臂可以实现对泛化任务1的模仿.
实验2 通过策略对新任务2的轨迹信息泛化输出,得到关节角度信息,指导机械臂做出对任务2的模仿,如图 18所示.
机械臂对泛化任务2模仿的距离d=9.84 mm, 通过物理实验结果可以得出,当泛化任务运动范围在原始示教任务运动范围外的22.9%~36.8%时,系统可以实现对泛化任务的模仿.
实验3 通过策略对新任务3的轨迹信息泛化输出,得到关节角度信息,指导机械臂做出对任务3的模仿,如图 19所示.
机械臂对泛化任务3模仿的距离d=17.46 mm, 通过物理实验结果可以得出,当泛化任务运动范围在原始示教任务运动范围外的36.8%以上时,机械臂模仿任务所到达的终点位置与期望位置的距离较大,不能实现对任务的模仿.
对3组物理实验结果进行分析可以得出:通过一次示教学习得到的策略的泛化能力有限,对于训练数据范围内的数据,策略有较好的泛化效果,对于训练数据范围外的数据,策略的泛化效果会随着距离的增大逐渐降低.通过学习得到的策略表现是训练样本的规律,泛化数据与训练数据距离越远,两者的同一分布性会越差,导致策略对泛化数据的可及能力逐渐降低.考虑2个极端情况:其一,泛化数据在训练样本区间内,策略的泛化输出值会较为精确;其二,泛化数据距离训练数据无穷远,策略泛化失败.网络的结构和通过对样本学习得到的策略是影响结果的因素,但在本文所涉及的系统中,最主要的因素是数据,单次示教得到的数据不能表征整个运动空间中的规律,只能表征和数据同一分布的运动空间中的规律,所以当泛化任务的运动与示教运动的距离越远,两者之间的关联性就越小,通过学习得到的规律就不能推广到更远的运动空间中.
3.3 与BP神经网络的对比实验研究
3.3.1 基于BP的原始示教任务模仿
首先根据训练数据格式构建BP神经网络为2-10-3结构,输入为示教运动轨迹信息(sxt, syt),输出为机械臂关节角度信息(a0t, a1t, a2t),然后开始训练,进行策略生成,训练过程如图 20所示.
网络训练的迭代次数为25,策略生成的速度较快;网络在第19次迭代训练时的MSE为0.068 3,策略生成的精度较高.训练结束后得到基于BP神经网络的控制策略.
RNN与BP在原始示教运动模仿实验中的对比结果如表 2所示.
表 2 RNN与BP进行原始示教任务模仿的对比Table 2. Comparison between RNN and BP for the imitation of original task项目 RNN BP 训练迭代次数 14 25 MSE 0.052 5 0.068 3 对原始示教任务的模仿中,在训练迭代次数与策略获取精度方面,RNN都优于BP神经网络.
3.3.2 基于BP的泛化任务模仿
RNN与BP在泛化任务运动模仿实验中的对比结果如表 3所示.
表 3 RNN与BP进行泛化任务模仿距离的对比Table 3. Comparison of distance between RNN and BP for the imitation of generalization task任务 RNN BP 1 5.83 8.94 2 9.84 15.65 3 17.46 19.69 在对3组泛化任务的模仿实验中,基于RNN的机械臂对泛化任务进行模仿实现的距离都小于BP,结合RNN与BP在原始示教任务模仿实验中的对比结果可得,基于RNN的机械臂任务模仿系统可以有效地完成任务模仿.
4. 结论与展望
1) 实验结果表明,基于RNN的机械臂任务模仿系统不仅可以模仿原始示教任务与复杂任务,也可以在一定范围内通过泛化模仿新的任务.
2) 通过手把手示教的方式可以方便地进行任务示教以及采集实验数据,为机械臂任务模仿策略的获取提供支持.
3) 系统对泛化任务的模仿受到一定条件的约束:当泛化任务运动范围在原始示教任务运动范围外的22.9%以内时,基于RNN的机械臂任务模仿系统可以实现对泛化任务的模仿;当泛化任务运动范围在原始示教任务运动范围外的22.9%~36.8%时,泛化误差增大,模仿效果一般;当泛化任务运动范围在原始示教任务运动范围外的36.8%以上时,泛化误差较大,系统无法完成模仿.
4) 本文设计系统的不足之处在于,通过单次示教得到的数据量较小,通过学习得到的策略不能表征整个运动空间的规律,对泛化任务的可及能力有限.下一步的工作是通过多次示教构建示教轨迹库,丰富示教数据,并通过学习方法从示教轨迹库中进行学习,使学习得到的策略对任务具有更好的推广能力.
-
表 1 任务的运动范围
Table 1 Range of task motion
任务组别 运动范围/mm 原始示教任务 (58, 136)~(-104, 275) 新任务1 (-104, 275)~(-134, 260) 新任务2 (-134, 260)~(-154, 255) 新任务3 (-154, 255)~(-174, 251) 表 2 RNN与BP进行原始示教任务模仿的对比
Table 2 Comparison between RNN and BP for the imitation of original task
项目 RNN BP 训练迭代次数 14 25 MSE 0.052 5 0.068 3 表 3 RNN与BP进行泛化任务模仿距离的对比
Table 3 Comparison of distance between RNN and BP for the imitation of generalization task
任务 RNN BP 1 5.83 8.94 2 9.84 15.65 3 17.46 19.69 -
[1] SCHAAL S, ATKESON C. Learning control in robotics[J]. IEEE Robotics & Automation Magazine, 2010, 17(2):20-29. http://d.old.wanfangdata.com.cn/OAPaper/oai_arXiv.org_1211.1690
[2] RILEY M, UDE A, WADE K, et al. Enabling real-time full-body imitation: a natural way of transferring human movement to humanoids[C]//Proceedings 2003 IEEE International Conference on Robotics and Automation Piscataway: IEEE, 2003: 2368-2374.
[3] OTT C, LEE D, NAKAMURA Y. Motion capture based human motion recognition and imitation by direct marker control[C]//IEEE-Ras International Conference on Humanoid Robots. Piscataway: IEEE, 2008: 399-405.
[4] HERZOG D, UDE A, KRUGER V. Motion imitation and recognition using parametric hidden Markov models[C]//IEEE-Ras International Conference on Humanoid Robots. Piscataway: IEEE, 2008: 339-346.
[5] SCHAAL S. Is imitation learning the route to humanoid robots?[J]. Trends in Cognitive Sciences, 1999, 3(6):233-242. doi: 10.1016/S1364-6613(99)01327-3
[6] RATLIFF N D, SILVER D, BAGNELL J A. Learning to search:functional gradient techniques for imitation learning[J]. Auton Robot, 2009, 27(1):25-53. doi: 10.1007/s10514-009-9121-3
[7] ARGALL B D, CHERNOVA S, VELOSO M, et al. A survey of robot learning from demonstration[J]. Robotics and Autonomous Systems, 2009, 57:469-483. doi: 10.1016/j.robot.2008.10.024
[8] 陈鹏, 刘璐, 余飞, 等.一种仿人机械臂的运动学逆解的几何求解方法[J].机器人, 2012, 34(2):85-90. http://d.old.wanfangdata.com.cn/Periodical/jqr201202012 CHEN P, LIU L, YU F, et al. A geometrical method for inverse kinematics of a kind of humanoid manipulator[J]. Robot, 2012, 34(2):85-90. (in Chinese) http://d.old.wanfangdata.com.cn/Periodical/jqr201202012
[9] 陈学生, 陈在礼, 谢涛.基于神经网络的机器人操作手IKP精确求解[J].机器人. 2002, 24(2):130-133. doi: 10.3321/j.issn:1002-0446.2002.02.008 CHEN X S, CHEN Z L, XIE T. An accurate solution to the inverse kinematic problem of a robot manipulator based on the neural network[J]. Robot, 2002, 24(2):130-133. (in Chinese) doi: 10.3321/j.issn:1002-0446.2002.02.008
[10] 梅红, 王勇, 赵荣齐.基于蚁群神经网络算法的机器人逆解[J].山东大学学报(工学版), 2008, 38(5):72-76. http://d.old.wanfangdata.com.cn/Periodical/sdgydxxb200805015 MEI H, WANG Y, ZHAO R Q. Study on inverse kinematics of a robot based on an ant colony-neural network algorithm[J]. Journal of Shandong University (Engineering Science Edition), 2008, 38(5):72-76. (in Chinese) http://d.old.wanfangdata.com.cn/Periodical/sdgydxxb200805015
[11] 韩兴国, 殷鸣, 刘晓刚, 等. 6R机器人逆运动学求解与运动轨迹仿真[J].四川大学学报(工程科学版), 2015, 47(6):185-190. http://d.old.wanfangdata.com.cn/Periodical/scdxxb-gckx201506026 HAN X G, YIN M, LIU X G, et al. Solution of inverse kinematics and movement trajectory simulation for 6R robot[J]. Journal of Sichuan University (Engineering Science Edition), 2015, 47(6):185-190. (in Chinese) http://d.old.wanfangdata.com.cn/Periodical/scdxxb-gckx201506026