一种基于深度强化学习TD3算法的机械臂运动控制方法

文档序号:28219013发布日期:2021-12-28 23:27阅读:781来源:国知局
一种基于深度强化学习TD3算法的机械臂运动控制方法
一种基于深度强化学习td3算法的机械臂运动控制方法
技术领域
1.本发明属于机器人控制领域,具体涉及一种基于深度强化学习的机械臂运动控制方法。


背景技术:

2.传统的机械臂控制方法在已知环境、确定环境、结构化场景下可以进行快速、稳定精确的控制任务,但在未知环境、不确定环境、非结构化场景下只能依赖预设的动作形式进行作业,且不具备基本的自主操作功能。同时,现代协作机械臂多为柔性机械臂结构,非线性要素分析复杂困难,需要对关节进行精确建模。随着工业领域对机械臂的性能要求越来越高,需要机械臂完成更多的交互或者复杂动态空间的作业任务,传统的方法便不再适用。
3.近年来,强化学习方法由于其自主学习的能力,在机械臂控制系统中的应用越来越多,用于代替传统控制算法中的正(逆)运动学结算方法。其中,策略梯度(policy gradient)对于连续动作空间的处理有很好的效果,非常适合机械臂环境的使用。文献“continuous control with deep reinforcement learning”. lillicrap t p,hunt j j,pritzel a,et al.arxiv preprint arxiv:1509.02971, 2015.”提出了ddpg(deep deterministic policy gradient)算法,其解决连续状态动作空间问题,同时采用确定性策略策略使得网络收敛性更佳。然而ddpg 算法对于超参数的微调有鲁棒性不足的缺陷,并且带来了高估计的问题,对收敛速度和效果有所影响。
4.文献“addressing function approximation error in actor

criticmethods”.fujimoto s,hoof h,meger d.international conference onmachine learning.pp.1587

1596,2018”提出了结合double dqn(deppq

network)思想的td3(twin delayed ddpg)算法,其在多数环境下表现比ddpg 算法更佳优秀,但也存在收敛不稳定等问题,不能很好的控制机械臂的运动。


技术实现要素:

5.本发明的目的在于提供一种基于深度强化学习的机械臂运动控制方法。
6.实现本发明目的的技术解决方案为:一种基于深度强化学习的机械臂运动控制方法,包括如下步骤:
7.步骤(1):建立机械臂的三维仿真环境;包括初始化机械臂环境,重置机械臂环境,设定机械臂更新步骤,设定奖励函数,渲染机械臂环境,对实验进行随机种子的设置和关闭机械臂环境;
8.步骤(2):在采用添加目标动作噪声衰减的深度强化学习算法td3来对机械臂运动控制进行训练,td3使用两个独立的评论家(critic)网络,并在其基础上使用值函数剪裁以及延迟策略更新,训练得到控制策略模型;
9.步骤(3):将步骤(2)训练得到的控制策略模型重新传入,评估模型的效果。
10.进一步的,步骤(1)具体包括如下步骤:
11.步骤(11):初始化机械臂环境:设定o

xyz坐标系,规定工作空间和状态空间的上下界参数,设置相机位置,调整末端关节初始位置至平行于z轴,方向设置由欧拉角转化的四元数得到;
12.步骤(12):重置机械臂环境:用绿色的激光线标识出设定好的工作空间;导入七轴机械臂模型、地面模型、目标模型、支撑桌面模型;将所有的关节还原到初始状态,返回目标物位置;
13.步骤(13):设定机械臂更新步骤:从现有位置到更新位置的过程中,更新幅度为0.005*现有位置坐标,由更新位置、设置方向、关节阻尼计算逆运动学方程得到关节位置;同时对更新步数进行计数,为奖励函数提供参数;
14.步骤(14):设定奖励函数:
15.步骤(15):渲染机械臂环境:渲染机械臂环境中设定带图形用户界面渲染环境,以每步作为更新,逐步渲染机械臂动作;
16.步骤(16):对实验进行随机种子的设置:正常使用时选用随机化种子保证算法的性能,复现实验对比时选用相同的种子;
17.步骤(17):关闭机械臂环境和渲染器。
18.进一步的,步骤(14)设定奖励函数具体包括如下步骤:
19.步骤(141):机械臂运行超出工作区域给予

1000的惩罚;
20.步骤(142):更新步数超过最大回合步数给予

1000的惩罚;
21.步骤(143):奖励与距离有关,机械臂每运行一步给予机械臂末端到目标物位置的距离的10倍数值的惩罚,奖励大小为r=

(距离*10);
22.步骤(144):机械臂末端与目标物之间距离小于0.1视为到达目标位置,给予+1000的奖励。
23.进一步的,所述步骤(2)具体包括如下步骤:
24.步骤(21):清空经验池,规定存放数据的形式和指针;按批量大小100从经验池中取出数据,以字典存放批数据,取出时转化为张量;
25.步骤(22):初始化td3网络,参数设定包括表演家

评论家(actor

critic)网络框架,随机种子,每个epoch的步数为4000,epoch个数为2000,经验池大小为107,贝尔曼方程中的衰减因子(γ)为0.99,软更新参数ρ=polyak为0.995, actor网络学习率为1
‑3,critic网络学习率为1
‑3;在每一个回合开始时,机械臂复位到初始设定位置;
26.步骤(23):更新前积累经验,存储经验的形式为 d={obs,act,rew,obs2,done},其参数分别对应经验池、状态、动作、奖励、下个状态、是否完成回合;
27.选择动作分为下面三种情况:
28.一是在步数不足20000时,采取随即动作积累经验;
29.二是当步数在(20000,80000)区间时,采取actor

critic网络输出的动作,同时添加噪声使得相似动作有相似输出;
30.三是当步数大于80000时,减小添加的噪声以缩小动作平滑化的范围,获得更佳准确的输出;
31.步骤(24):机械臂每运行一步都对奖励进行判定,对于奖励的划分,采取步骤(14)
的形式,分为4部分;
[0032][0033]
当机械臂超出空间或者步数计数达到最大回合步数时,回合结束(done=1),当机械臂与目标物距离小于0.1时,回合结束(done=1),回合结束返回步骤(23),其他情况机械臂持续运行。
[0034]
本发明与现有技术相比,其显著优点在于:
[0035]
(1)通过加入动作探索噪声和目标网络噪声,平滑动作,有效缩短训练时间,相比现有技术训练得到的控制模型的收敛速度,有着大幅度的增强。
[0036]
(2)通过双评论家(critic)网络降低过高的估计值,从而降低误差积累,避免学习的策略失效,极大地降低了收敛失败的几率。
[0037]
(3)通过延迟更新一方面降低误差积累,从而降低方差,另一方面降低不必要更新,在长时间学习中提升算法的速度。
具体实施方式
[0038]
为了便于相关领域技术人员理解,下文结合实例对发明内容进一步阐述。
[0039]
本实例提供的基于深度强化学习的机械臂运动控制方法,其应用在7轴协作机械臂环境中进行举例说明,具体步骤如下:
[0040]
步骤1:建立机械臂的三维仿真环境,其主要模块包括初始化机械臂环境,重置机械臂环境,设定机械臂更新步骤,设定奖励函数,渲染机械臂环境,对实验进行随机种子的设置和关闭机械臂环境。
[0041]
步骤1.1:在初始化机械臂环境中,设定o

xyz坐标系,规定工作空间和状态空间的上下界参数,设置相机位置以便于观察,调整末端关节初始位置至平行于z轴,方向设置由欧拉角转化的四元数得到。
[0042]
步骤1.2:重置机械臂环境中,首先用绿色的激光线标识出设定好的工作区域,然后导入七轴机械臂模型、地面模型、目标模型、支撑桌面模型,再将所有的关节还原到初始状态,返回目标物位置。
[0043]
步骤1.3:设定机械臂更新步骤,从现有位置到更新位置的过程中,更新幅度为0.005*现有位置坐标,由更新位置、设置方向、关节阻尼计算逆运动学方程得到关节位置。同时对更新步数进行计数,为奖励函数的设计提供时间相关的参数。
[0044]
步骤1.4:设定奖励函数分为四部分:
[0045]
一是机械臂运行超出工作区域给予

1000的惩罚;
[0046]
二是更新步数超过最大回合步数(1000步)给予

1000的惩罚;
[0047]
三是奖励与距离有关,机械臂每运行一步给予机械臂末端到目标物位置的距离的10倍数值的惩罚,奖励大小为r=

(距离*10);
[0048]
四是机械臂末端与目标物之间距离小于0.1视为到达目标位置,给予+1000 的奖
励;
[0049]
最后返回(状态,奖励,是否完成回合,其他信息)的列表形式。
[0050]
步骤1.5:渲染机械臂环境中设定带图形用户界面渲染环境,以每步作为更新,逐步渲染机械臂动作。
[0051]
步骤1.6:对实验进行随机种子的设置,正常使用时选用随机化种子保证算法的性能,复现实验对比时选用相同的种子。
[0052]
步骤1.7:关闭环境和渲染器。
[0053]
步骤2:采用添加目标动作噪声衰减的深度强化学习算法td3来对机械臂运动控制进行训练。td3沿用double dqn之前的双值函数的思想,使用两个独立的评论家(critic)网络来防止过估计。同时为了防止高方差(variance),又在其基础上提出了值函数剪裁以及延迟策略更新用于均衡。其训练如下:
[0054]
步骤2.1:清空经验池,规定存放数据的形式和指针。按批量大小100从经验池中取出数据,以字典存放批数据,取出时转化为张量便于使用gpu进行计算加速。
[0055]
步骤2.2:初始化td3网络,参数设定包括表演家

评论家(actor

critic)网络框架,随机种子,每个epoch的步数为4000,epoch个数为2000,经验池大小为107,贝尔曼方程中的衰减因子(γ)为0.99,软更新参数ρ=polyak为0.995, actor网络学习率为1
‑3,critic网络学习率为1
‑3。在每一个回合开始时,机械臂复位到初始设定位置。
[0056]
步骤2.3:为了避免经验池开始时的数据不够,需要在正式开始动作更新前积累足够的经验。存储经验的形式为d={obs,act,rew,obs2,done},其参数分别对应经验池、状态、动作、奖励、下个状态、是否完成回合。选择动作分为下面三种情况:
[0057]
一是在步数不足20000时,采取随即动作积累经验;
[0058]
二是当步数在(20000,80000)区间时,采取actor

critic网络输出的动作,同时添加噪声使得相似动作有相似输出;
[0059]
三是当步数大于80000时,减小添加的噪声以缩小动作平滑化的范围,获得更佳准确的输出。
[0060]
步骤2.4:机械臂每运行一步都对奖励进行判定,对于奖励的划分,采取步骤1.4的形式,分为4部分。
[0061][0062]
当机械臂超出空间或者步数计数达到最大回合步数时,回合结束(done=1),当机械臂与目标物距离小于0.1时,回合结束(done=1),回合结束返回步骤2.3,其他情况机械臂持续运行。
[0063]
实施例1
[0064]
本实例中采用的td3算法逻辑如下:
[0065]
初始化actor和critic网络的参数θ
μ

[0066]
将网络参数复制到目标网络θ
μ


θ
μ

[0067]
初始化经验池d。
[0068]
在总步数区间内循环,循环次数为step
total
=4000*epoch。
[0069]
actor网络基于状态obs得到动作
[0070]
执行动作act,得到下个状态obs2、奖励rew、是否完成回合done,将 {obs,act,rew,obs2,done}存入经验池d。
[0071]
从经验池d中采样批大小为100的样本{obs,act,rew,obs2,done},作为批训练集。
[0072]
通过将对权重的梯度置零。
[0073]
计算两个critic网络的目标q值计算两个critic网络的目标q值当运行步数大于设定值时,给予更小的噪声范围,也就是
[0074]
使用均方误差计算并相加得到loss
q
,通过标准的反向梯度传播来得到critic网络参数的梯度
[0075]
采用adam优化器更新critic网络参数θ
q

[0076]
对actor网络进行延迟更新,在更新完两个critic网络后,通过将loss
μ
对权重的梯度置零。
[0077]
定义j(μ)为θ
μ
的确定性策略梯度,按照公式求出策略梯度。
[0078]
采用adam优化器更新actor网络参数θ
μ

[0079]
通过软更新来更新目标critic网络和目标actor网络。
[0080]
将训练得到的actor_critic网络模型以每五次保存的频率保存,选取最后20 次的模型重新传入环境进行评估,评估过程设定每回合最大1000步,循环50 个回合,不添加探索噪声和目标网络噪声。输出评估测试成功率和平均奖励。对于td3这类离轨(off

policy)的算法采用平均测试回合奖励作为性能的评判标准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1