CN116079737A - 基于分层强化学习的机械臂复杂操作技能学习方法及*** - Google Patents
基于分层强化学习的机械臂复杂操作技能学习方法及*** Download PDFInfo
- Publication number
- CN116079737A CN116079737A CN202310153474.9A CN202310153474A CN116079737A CN 116079737 A CN116079737 A CN 116079737A CN 202310153474 A CN202310153474 A CN 202310153474A CN 116079737 A CN116079737 A CN 116079737A
- Authority
- CN
- China
- Prior art keywords
- subtask
- state
- network
- task
- value
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 57
- 230000002787 reinforcement Effects 0.000 title claims abstract description 27
- 238000012549 training Methods 0.000 claims abstract description 78
- 230000006870 function Effects 0.000 claims description 54
- 230000009471 action Effects 0.000 claims description 35
- 230000008569 process Effects 0.000 claims description 20
- 238000009826 distribution Methods 0.000 claims description 18
- 230000007704 transition Effects 0.000 claims description 18
- 238000003860 storage Methods 0.000 claims description 12
- 238000004422 calculation algorithm Methods 0.000 claims description 10
- 238000004590 computer program Methods 0.000 claims description 10
- 239000011159 matrix material Substances 0.000 claims description 9
- 210000002569 neuron Anatomy 0.000 claims description 9
- 238000013528 artificial neural network Methods 0.000 claims description 6
- 238000012216 screening Methods 0.000 claims description 6
- 230000004913 activation Effects 0.000 claims description 4
- 238000010606 normalization Methods 0.000 claims description 4
- 238000005070 sampling Methods 0.000 claims description 4
- 238000004364 calculation method Methods 0.000 claims description 3
- 230000001419 dependent effect Effects 0.000 claims description 3
- 230000006872 improvement Effects 0.000 claims description 3
- 238000005259 measurement Methods 0.000 claims description 3
- 239000003814 drug Substances 0.000 description 28
- 238000004088 simulation Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 8
- 238000013461 design Methods 0.000 description 7
- 238000009304 pastoral farming Methods 0.000 description 7
- 230000036544 posture Effects 0.000 description 7
- 230000015654 memory Effects 0.000 description 6
- 238000012545 processing Methods 0.000 description 4
- 238000000354 decomposition reaction Methods 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000002474 experimental method Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- ORILYTVJVMAKLC-UHFFFAOYSA-N Adamantane Natural products C1C(C2)CC3CC1CC2C3 ORILYTVJVMAKLC-UHFFFAOYSA-N 0.000 description 1
- 238000000342 Monte Carlo simulation Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000008188 pellet Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1628—Programme controls characterised by the control loop
- B25J9/163—Programme controls characterised by the control loop learning, adaptive, model based, rule based expert control
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1612—Programme controls characterised by the hand, wrist, grip control
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1656—Programme controls characterised by programming, planning systems for manipulators
- B25J9/1661—Programme controls characterised by programming, planning systems for manipulators characterised by task planning, object-oriented languages
Landscapes
- Engineering & Computer Science (AREA)
- Robotics (AREA)
- Mechanical Engineering (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Orthopedic Medicine & Surgery (AREA)
- Feedback Control In General (AREA)
Abstract
本发明公开了一种基于分层强化学习的机械臂复杂操作技能学习方法及***,方法包括:获取复杂任务数据,将复杂任务分解为多个子任务;确定每个子任务的RL参数;根据每个子任务的RL参数,构建底层训练网络结构,训练每个子任务,得到子任务最优策略集合;当有新的复杂任务执行时,根据所有子任务的RL参数确定新任务的RL参数;根据新任务的RL参数和子任务最优策略集合,构建上层训练网络结构,训练得到子任务选择策略;根据子任务选择策略,通过子任务重构得到新任务的最优策略,实现新任务的再现与泛化。
Description
技术领域
本发明属于机械臂任务规划技术领域,涉及一种基于分层强化学习的机械臂复杂操作技能学习方法及***。
背景技术
目前,国内外研究者就基于WiFi的基于分层强化学习的机械臂复杂操作技能学习方法提出了诸多方案,
随着机器人技术的不断发展和完善,机器人开始出现在家庭生活中。在复杂、动态、非结构化的家庭环境中,机器人的操作任务都是一些较复杂、多步骤的任务,为此可以将家庭日常中复杂操作任务看作是由多个简单基本任务按照一定执行顺序组合而成的,即一个复杂任务可以分解为多个简单的子任务。
强化学习(RL)是一种智能体与环境交互并产生反馈的一种学习方式,其与深度学习的结合使得强化学习能够快速适应具有高维、连续状态以及动作空间的机器人操作技能学习问题,并且拥有强大的自主探索和学习能力,广泛地用于机械臂技能学习领域。但面对家庭环境中复杂的操作任务,庞大的状态空间、稀疏的奖励函数都让传统的强化学习算法难以学得有用的策略。
发明内容
目的:为了克服现有技术中存在的不足,本发明提供一种基于分层强化学习的机械臂复杂操作技能学习方法及***。
本发明将复杂任务分解为多个简单的子任务,通过设计每个子任务的RL参数,经过底层训练得到每个子任务最优策略;当新的复杂任务执行时,根据其分解得到的子任务的RL参数,设计新任务的RL参数,经过上层训练得到子任务选择策略,再通过子任务的重构选择相应的策略,实现新任务的再现与泛化。
技术方案:为解决上述技术问题,本发明采用的技术方案为:
第一方面,本发明提供一种基于分层强化学习的机械臂复杂操作技能学习方法,包括:
步骤S1、获取复杂任务数据,将复杂任务分解为多个子任务;
步骤S2、确定每个子任务的RL参数;
步骤S3、根据每个子任务的RL参数,构建底层训练网络结构,训练每个子任务,得到子任务最优策略集合;
步骤S4、当有新的复杂任务执行时,根据步骤S2得到的所有子任务的RL参数确定新任务的RL参数;
步骤S5、根据新任务的RL参数和子任务最优策略集合,构建上层训练网络结构,训练得到子任务选择策略;
步骤S6、根据子任务选择策略,通过子任务重构得到新任务的最优策略,实现新任务的再现与泛化。
在一些实施例中,步骤S1、获取复杂任务数据,将复杂任务分解为多个子任务,包括:
S11、从一个贝塔beta过程中定义一组关于全局共享隐状态集的权重B|B0~BP(c,B0),并通过进行隐式定义,其中B0为基测度,ωk为原子的质量,为克罗内克(Kronecker delta)函数,c表示浓度参数,θk={Ak,∑k}表示特征位置,Ak表示滞后矩阵,∑k为Ak的协方差;
S12、采用由B参数化的伯努利过程BeP(B),为每个时间序列i生成一个全局共享的隐状态Xi,其中Xi为Xi~BeP(B),i=1,2,...,N,N为时间序列的总数,并通过Xi构造一个特征向量fi;
在一些实施例中,步骤S2、确定每个子任务的RL参数,包括:
第i个子任务的RL参数定义为一个五元组Mi=<Si,Ai,Pi,Ri,γ>;其中Si为状态空间,状态空间的维数至少为7维,其中第一维是机械臂夹持器,第2-4维是机械臂末端的位置,第5-7维是机械臂末端的姿态,其他通过不同的任务增加状态和状态空间;Ai为动作空间,动作空间的维数通常是7维,前六维表示机械臂末端的位置和姿态的移动方向,第7维表示末端夹持器的闭合程度;Pi表示状态转移概率;Ri表示奖励函数,每个子任务都包含两种奖励函数:基础奖励和结果奖励,基础奖励表示机械臂在探索过程中得到的实时奖励,结果奖励则是根据一个回合的结果给予的成功奖励或者失败惩罚;γ表示奖励衰减值。
在一些实施例中,步骤S3、根据每个子任务的RL参数,构建底层训练网络结构,训练每个子任务,得到子任务最优策略集合,包括:
子任务RL训练模块采用SAC算法构建底层训练网络结构,底层训练网络结构包括Actor网络和Critic网络;
Actor网络包含一个策略网络θ,用来更新策略πθ,策略网络输入当前时刻状态、输出当前时刻动作以及动作分布的熵值,网络结构为五层全连接神经网络,包含一个输入层、三个包含128个神经元的隐含层和一个包含2个神经元的输出层;输出层为每个动作维度生成均值和标准差,从经验池中采样后,采用tanh激活函数将动作归一化到[-1,1]的范围内;
Critic网络包含两个网络,分别为主值网络和目标值网络,主值网络用来输出当前状态的价值,目标值网络用来输出下一状态的价值,主值网络和目标值网络又包含了两个结构相同的Q网络Net1和Net2,网络结构均为五层全连接神经网络,包含一个输入层、三个包含128个神经元的隐含层以及一个输出层;SAC算法利用两个Q网络减少策略改进中的偏差,选取两个Q函数中的较小值作为均方误差计算的输入值,能够显著加快训练速度。
在一些实施例中,步骤S3还包括:
S32、从回放经验池D中采样当前时刻的状态st,动作at,奖励r,下一时刻的状态st+1;
S33、将步骤S32得到的当前时刻的状态st,动作at,奖励r,下一时刻的状态st+1送入策略网络,输出下一时刻的策略πθ(st+1)和熵log(πθ(at|st))至目标值网络,同时对进行策略网络参数θ更新,更新方式如下:
α←θ-λπJπ(θ)
其中λπ表示策略网络的更新参数,Jπ(θ)表示策略网络的目标函数,
α表示策略熵的正则化系数;E表示期望值;Qφ(st,at)表示主值网络输出的Q值;
S34、将步骤S32得到的当前时刻的状态st,动作at,奖励r输出至主值网络,通过主值网络中的两个Q网络Net1和Net2来计算估计Q值Qt(φ1)、Qt(φ2);
S35、将步骤S33得到的下一时刻的策略πθ(st+1)和熵log(πθ(at|st))通过目标值网络中的两个Q网络Net1和Net2来计算目标Q值 输出两个目标Q值中的较小值目标值网络参数通过主值网络参数进行软更新,更新方式如下:
主值网络的参数更新方式如下:
在一些实施例中,步骤S4、当有新的复杂任务执行时,根据步骤S2得到的所有子任务的RL参数确定新任务的RL参数,包括:
新任务的RL参数定义为一个五元组 其中l表示子任务的个数,表示新任务的状态空间,表示向量级联运行算符,表示为子任务所占权重,表示每个子目标对新任务的影响和度量,且 表示为所有子目标的级联,子目标是一种属性,它代替作为每个子任务RL参数的状态元素,子目标包括两种,第一种表示从新任务中产生的第二种表示用户指定的子目标
权重和子目标表示的等效动作不再是随机产生,而是新任务根据状态信息确定性生成的;
在新任务的RL参数中,状态空间被定义为所有子任务状态空间的联合空间,即所有子任务状态空间的并联;动作空间被定义为子任务权重Wl和子目标的级联;转移概率被定义为在当前状态sl和等效动作条件下转移到下一时刻状态s′l的概率,表示为奖励函数表示为在当前状态s=sl和等效动作条件下,奖励定义为其中Π(w)表示子任务的分布簇,Rmeta(s,a)表示子任务的奖励函数,新任务的奖励函数只包含每个子任务的结果奖励,即完成相应子任务后的成功奖励和未完成相应子任务的失败奖励,新任务执行子任务最优策略的顺序由奖励函数的顺序决定,并且完成子任务的数量越多,给予的成功奖励越高;γ表示奖励衰减值。
在一些实施例中,步骤S5、根据新任务的RL参数和子任务最优策略集合,构建上层训练网络结构,训练得到子任务选择策略,包括:
S51、新任务根据相应子任务的状态空间,筛选出相应的状态空间;
新任务的状态空间通过筛选出相应子任务的状态s1,s2,…,sl,其中每个子任务的前7维状态空间是每个子策略共用的,表示机械臂的夹持器和末端位姿,从第8维开始,新任务通过每个子任务所需的状态,筛选出相应的状态,分配给每个子策略对应的状态空间;
S52、新任务根据需要的子任务,产生相应的子目标,并与对应的子任务的状态组成子任务新状态;
在一些实施例中,步骤S6、根据子任务选择策略,通过子任务重构得到新任务的最优策略,包括:
第二方面,本发明提供了一种基于分层强化学习的机械臂复杂操作技能学习***,包括处理器及存储介质;
所述存储介质用于存储指令;
所述处理器用于根据所述指令进行操作以执行根据第一方面所述方法的步骤。
第三方面,本发明提供了一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现第一方面所述方法的步骤。
第四方面,本发明提供了一种计算设备,包括,
一个或多个处理器、一个或多个存储器以及一个或多个程序,其中一个或多个程序存储在所述一个或多个存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序包括用于执行第一方面所述的方法中的任一方法的指令。
有益效果:本发明提供的基于分层强化学习的机械臂复杂操作技能学习方法及***,具有以下优点:与现有的技术相比,通过将一个复杂操作任务分解成多个简单的子任务,使得机械臂可以通过底层训练学到子任务最优策略,再通过上层子任务重构的方式学习整体复杂任务。这不仅解决了传统强化学习直接训练复杂操作任务的困难,大大减少了复杂任务的学习时间,同时该方法具有很高的灵活性和可重用性,能够学习不同的复杂操作任务。
附图说明
图1描绘了本发明实施例的一种基于分层强化学习的机械臂复杂操作技能学习***的总体框图。
图2描绘了打开柜门抓取药瓶整个复杂操作任务的仿真环境。
图3描绘了4个子任务的仿真训练环境。
图4描绘了4个子任务的仿真训练结果。
图5描绘了新任务的仿真训练结果。
图6描绘了新任务训练完成后,进行单次实验的过程中每个子任务的权重变化。
具体实施方式
下面结合附图和实施例对本发明作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。
在本发明的描述中,若干的含义是一个以上,多个的含义是两个以上,大于、小于、超过等理解为不包括本数,以上、以下、以内等理解为包括本数。如果有描述到第一、第二只是用于区分技术特征为目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量或者隐含指明所指示的技术特征的先后关系。
本发明的描述中,参考术语“一个实施例”、“一些实施例”、“示意性实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
实施例1
一种基于分层强化学习的机械臂复杂操作技能学习方法,包括:
步骤S1、获取复杂任务数据,将复杂任务分解为多个子任务;
步骤S2、确定每个子任务的RL参数;
步骤S3、根据每个子任务的RL参数,构建底层训练网络结构,训练每个子任务,得到子任务最优策略集合;
步骤S4、当有新的复杂任务执行时,根据步骤S2得到的所有子任务的RL参数确定新任务的RL参数;
步骤S5、根据新任务的RL参数和子任务最优策略集合,构建上层训练网络结构,训练得到子任务选择策略;
步骤S6、根据子任务选择策略,通过子任务重构得到新任务的最优策略。
在一些实施例中,步骤S1、获取复杂任务数据,将复杂任务分解为多个子任务,包括:
S11、从一个beta过程中定义一组关于全局共享隐状态集的权重B|B0~BP(c,B0),并通过进行隐式定义,其中B0为基测度,ωk为原子的质量,为克罗内克(Kronecker delta)函数,c表示浓度参数,θk={Ak,∑k}表示特征位置,Ak表示滞后矩阵,∑k为Ak的协方差;
S12、采用由B参数化的伯努利过程BeP(B),为每个时间序列i生成一个全局共享的隐状态Xi,其中Xi为Xi~BeP(B),i=1,2,...,N,N为时间序列的总数,并通过Xi构造一个特征向量fi;
在一些实施例中,步骤S2、确定每个子任务的RL参数,包括:
第i个子任务的RL参数定义为一个五元组Mi=<Si,Ai,Pi,Ri,γ>;其中Si为状态空间,状态空间的维数至少为7维,其中第一维是机械臂夹持器,第2-4维是机械臂末端的位置,第5-7维是机械臂末端的姿态,其他通过不同的任务增加状态和状态空间;Ai为动作空间,动作空间的维数通常是7维,前六维表示机械臂末端的位置和姿态的移动方向,第7维表示末端夹持器的闭合程度;Pi表示状态转移概率;Ri表示奖励函数,每个子任务都包含两种奖励函数:基础奖励和结果奖励,基础奖励表示机械臂在探索过程中得到的实时奖励,结果奖励则是根据一个回合的结果给予的成功奖励或者失败惩罚;γ表示奖励衰减值。
在一些实施例中,步骤S3、根据每个子任务的RL参数,构建底层训练网络结构,训练每个子任务,得到子任务最优策略集合,包括:
子任务RL训练模块采用SAC算法构建底层训练网络结构,底层训练网络结构包括Actor网络和Critic网络;
Actor网络包含一个策略网络θ,用来更新策略πθ,策略网络输入当前时刻状态、输出当前时刻动作以及动作分布的熵值,网络结构为五层全连接神经网络,包含一个输入层、三个包含128个神经元的隐含层和一个包含2个神经元的输出层;输出层为每个动作维度生成均值和标准差,从经验池中采样后,采用tanh激活函数将动作归一化到[-1,1]的范围内;
Critic网络包含两个网络,分别为主值网络和目标值网络,主值网络用来输出当前状态的价值,目标值网络用来输出下一状态的价值,主值网络和目标值网络又包含了两个结构相同的Q网络Net1和Net2,网络结构均为五层全连接神经网络,包含一个输入层、三个包含128个神经元的隐含层以及一个输出层;SAC算法利用两个Q网络减少策略改进中的偏差,选取两个Q函数中的较小值作为均方误差计算的输入值,能够显著加快训练速度。
在一些实施例中,步骤S3还包括:
S32、从回放经验池D中采样当前时刻的状态st,动作at,奖励r,下一时刻的状态st+1;
S33、将步骤S32得到的当前时刻的状态st,动作at,奖励r,下一时刻的状态st+1送入策略网络,输出下一时刻的策略πθ(st+1)和熵log(πθ(at|st))至目标值网络,同时对进行策略网络参数θ更新,更新方式如下:
α←θ-λπJπ(θ)
其中λπ表示策略网络的更新参数,Jπ(θ)表示策略网络的目标函数,
α表示策略熵的正则化系数;E表示期望值;Qφ(st,at)表示主值网络输出的Q值;
S34、将步骤S32得到的当前时刻的状态st,动作at,奖励r输出至主值网络,通过主值网络中的两个Q网络Net1和Net2来计算估计Q值Qt(φ1)、Qt(φ2);
S35、将步骤S33得到的下一时刻的策略πθ(st+1)和熵log(πθ(at|st))通过目标值网络中的两个Q网络Net1和Net2来计算目标Q值 输出两个目标Q值中的较小值目标值网络参数通过主值网络参数进行软更新,更新方式如下:
主值网络的参数更新方式如下:
在一些实施例中,步骤S4、当有新的复杂任务执行时,根据步骤S2得到的所有子任务的RL参数确定新任务的RL参数,包括:
新任务的RL参数定义为一个五元组 其中l表示子任务的个数,表示新任务的状态空间,表示向量级联运行算符,表示为子任务所占权重,表示每个子目标对新任务的影响和度量,且 表示为所有子目标的级联,子目标是一种属性,它代替作为每个子任务RL参数的状态元素,子目标包括两种,第一种表示从新任务中产生的第二种表示用户指定的子目标
权重和子目标表示的等效动作不再是随机产生,而是新任务根据状态信息确定性生成的;
在新任务的RL参数中,状态空间被定义为所有子任务状态空间的联合空间,即所有子任务状态空间的并联;动作空间被定义为子任务权重Wl和子目标的级联;转移概率被定义为在当前状态sl和等效动作条件下转移到下一时刻状态s′l的概率,表示为奖励函数表示为在当前状态s=sl和等效动作条件下,奖励定义为其中Π(w)表示子任务的分布簇,Rmeta(s,a)表示子任务的奖励函数,新任务的奖励函数只包含每个子任务的结果奖励,即完成相应子任务后的成功奖励和未完成相应子任务的失败奖励,新任务执行子任务最优策略的顺序由奖励函数的顺序决定,并且完成子任务的数量越多,给予的成功奖励越高;γ表示奖励衰减值。
在一些实施例中,步骤S5、根据新任务的RL参数和子任务最优策略集合,构建上层训练网络结构,训练得到子任务选择策略,包括:
S51、新任务根据相应子任务的状态空间,筛选出相应的状态空间;
新任务的状态空间通过筛选出相应子任务的状态s1,s2,…,sl,其中每个子任务的前7维状态空间是每个子策略共用的,表示机械臂的夹持器和末端位姿,从第8维开始,新任务通过每个子任务所需的状态,筛选出相应的状态,分配给每个子策略对应的状态空间;
S52、新任务根据需要的子任务,产生相应的子目标,并与对应的子任务的状态组成子任务新状态;
在一些实施例中,步骤S6、根据子任务选择策略,通过子任务重构得到新任务的最优策略,包括:
具体应用实施例:本实施例提出一种家庭环境下基于分层强化学习的机械臂复杂操作技能学习***,其总体框图如图1所示。本发明的具体实例为家庭生活中常见的打开柜门放置药瓶的复杂任务,采用的机械臂为Kinova Jaco,图2为机械臂复杂任务仿真环境,整体任务完成的标准为柜门拉开且药瓶放置在柜中。主要实验方案为:首先通过复杂任务分解模块将该复杂任务分解为数个子任务,包括靠近柜门、打开柜门、靠近药瓶、抓取药瓶、放置药瓶等操作过程,为了减少算法的训练重复度和复杂度,将靠近柜门和靠近药瓶合并为一个训练子任务——到达(reaching)。最终复杂操作任务被分成4个子任务:到达(reaching)、抓取药瓶(grasping)、放置药瓶(releasing)、拉开柜门(openDoor);接着建立复杂任务和每个子任务的仿真训练环境,经子任务的RL设计模块设计每个子任务的RL参数,通过子任务的RL训练模块得到子任务最优策略集合;然后根据所有子任务的RL参数经新任务RL设计模块设计新任务的RL参数;最后新任务的RL参数与子任务最优策略集合经新任务RL训练模块得到子任务选择策略,子任务选择策略经子任务重构模块选择相应的子任务进行重构,实现新任务的再现与泛化。
图3为每个子任务的仿真环境。图3(a)为reaching子任务的仿真环境,虚拟方块为到达点位姿,reaching任务的成功标准为机械臂末端以指定姿态到达点位置;图3(b)为grasping子任务的仿真环境,其中圆柱为药瓶,训练过程中在平台区域随机生成,grasping任务的成功标准为抓取药瓶并抬起药瓶;图3(c)为releasing子任务的仿真环境,训练开始时,机械臂抓着药瓶,虚拟小球为放置药瓶的位置,releasing任务的成功标准为药瓶到达小球位置且夹持器状态为松开。图3(d)为openDoor子任务的仿真环境,训练开始时,机械臂在门把手处,openDoor任务的成功标准为机械臂拉开柜门一定角度。
图4为四个子任务的仿真训练结果,可以看出每个子任务都学习到了最优策略,reaching、grasping、releasing任务都在250万时间步左右收敛,openDoor任务由于比前三个任务复杂,在350万时间步左右收敛。
图5为新任务的仿真训练结果,由于新任务比子任务更复杂,机械臂在650万时间步时才得到成功的策略,在800万时间步左右收敛。
图6为新任务训练完成后,进行单次实验的过程中底层每个子任务的权重变化,从图中可以看出在进行复杂操作任务时机械臂每一时间步的运行状态。
具体地,包括以下步骤:
S1、根据拉开柜门放置药瓶的实验任务的演示数据,通过贝塔过程自回归隐马尔可夫模型将其分解为4个子任务。
S11、建立贝塔过程自回归隐马尔可夫模型,设置模型参数,其中贝塔过程超参数原子质量m为6,浓度参数c为1,隐马尔可夫模型的超参数γ为1,κ为10,转移分布设置为矩阵正规-逆威沙特分布,其中分布参数先验均值M0=0,自由度v0=13,尺度矩阵S0设置为单位矩阵,初始隐状态最大数目设置为25。
S12、采用马尔可夫蒙特卡洛方法进行1000次迭代采样训练10次,得到分解后的最终结果。
S13、去除没有物理意义的小段,得到靠近柜门、打开柜门、靠近药瓶、抓取药瓶、放置药瓶5段具有物理意义的段落。为了减少算法的训练重复度和复杂度,将靠近柜门和靠近药瓶合并为一个训练子任务——到达(reaching)。最终复杂操作任务被分成4个子任务:到达(reaching)、抓取药瓶(grasping)、放置药瓶(releasing)、拉开柜门(openDoor)。
S2、根据步骤S1分割的4个子任务,设计每个子任务的RL参数。
在此步骤中,对于第i个子任务,其RL参数定义的五元组为Mi=<Si,Ai,Pi,Ri,γ>。其中主要定义状态空间、动作空间和奖励函数,所有任务的γ均为0.99。
具体地,对于reaching子任务,其状态空间为12维,包括机械臂末端位姿6维,到达点位姿6维;对于grasping子任务,其状态空间为10维,包括机械臂末端位姿6维,夹持器开合角度1维,药瓶位置3维;对于releasing子任务,其状态空间为13维,包括机械臂末端位姿6维,夹持器开合角度1维,药瓶位置3维,药瓶放置点位置3维;对于openDoor子任务,其状态空间维16维,包括机械臂末端位姿6维,夹持器开合角度1维,门把手位置3维,门把手目标位姿6维。
进一步地,对于除了reaching任务外的所有子任务动作空间以及整体复杂任务,动作空间都是7维,其中前六维表示机械臂末端的位置和姿态的移动方向,第七维表示末端夹持器的闭合程度,由于三个夹持器的开合程度一样,为了减少动作空间的维数,只采用单个数据表示。而对于reaching任务,由于训练过程中手指固定,因此动作空间为六维。
结果奖励设置为:
其中nepisode表示总共经过的幕数。
在此步骤中,reaching任务的奖励函数为:
类似地,设计其余子任务的奖励函数。
S3、设置SAC的网络参数,训练所有子任务,得到子任务最优策略集合。
在SAC算法的网络结构中,每个网络层之间的激活函数采用Relu函数,经验池大小buffer_size设置为50000,每次训练从经验池中采样样本数量batch_size设为256,学习率learning_rate为7×10-5,折扣因子gamma为0.99,所训练的时间步n_timesteps设置为500万,Actor网络和Critic网络均采用Adam优化器进行优化。
S4、根据子任务的RL参数,设计新任务的RL参数。
在此步骤中,新任务的RL参数的五元组定义为新任务的状态空间为所有子任务的并集,包括机械臂末端位姿6维,夹持器开合角度1维,药瓶位置3维,门把手位置3维,药瓶放置点位置3维,到达点位姿6维,门把手位姿6维,共28维。为了减少状态空间的维数,门把手的位置和到达点位置、放置点位置和门把手目标位置可以共用状态空间,因此最后新任务定义的状态空间维19维,状态空间索引设置为[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18];新任务的动作空间设置为7维,和子任务一致;新任务的奖励函数只设置结果奖励,具体的奖励函数设计为:完成openDoor任务给予20奖励,完成grasping任务给予30奖励,完成releasing任务后给予160奖励,即最终奖励。
S5、根据步骤S4设计的新任务的RL参数和步骤S3得到的子任务最优策略集合,构建上层训练网络结构,训练得到子任务选择策略。
S51、新任务根据相应子任务的状态空间,筛选出相应的状态空间。
在此步骤中,对于reaching任务,其观测状态总共有12维,观测空间的索引设置为[1,2,3,4,5,6,7,8,9,10,11,12],分别是机械臂末端位置3维[1,2,3]、机械臂末端姿态3维[4,5,6]、到达点位置3维[7,8,9]、到达点姿态3维[10,11,12]。
类似地,对于grasping任务,其观测状态总共有10维,观测空间的索引设置为[0,1,2,3,4,5,6,7,8,9],分别是夹持器开合角度1维[0]、机械臂末端位置3维[1,2,3]、机械臂末端姿态3维[4,5,6]、药瓶位置3维[7,8,9]。
类似地,对于releasing任务,其观测状态总共有13维,观测空间的索引设置为[0,1,2,3,4,5,6,7,8,9,13,14,15],分别是夹持器开合角度1维[0]、机械臂末端位置3维[1,2,3]、机械臂末端姿态3维[4,5,6]、药瓶位置3维[7,8,9]、药瓶放置目标位置3维[13,14,15]。
类似地,对于openDoor任务,其观测状态总共有16维,观测空间的索引设置为[0,1,2,3,4,5,6,7,8,9,13,14,15,16,17,18],分别是夹持器开合角度1维[0]、机械臂末端位置3维[1,2,3]、机械臂末端姿态3维[4,5,6]、门把手位置3维[7,8,9]、门把手目标位置3维[13,14,15]、门把手目标姿态3维[16,17,18]。
S52、新任务根据需要的子任务,产生相应的子目标,并与对应的子任务的状态组成子任务新状态。
在此步骤中,新任务并不是单纯地由这4个子任务组合而成的,执行过程中会处于一些特殊的状态,如在抓取药瓶放置药瓶的过程中,机械臂抓取完药瓶后需要到达放置物体的起始点,这也是一个类似reaching的过程,但此时机械臂已经完成了grasping,而reaching的状态空间中并没有表示物***置的状态,此时新任务在训练过程中生成一个子目标其状态空间为3维,表示物体的位置。与reaching任务的状态sreach组合成子任务新状态。
S53、设置高层的训练网络参数,训练得到子任务选择策略。
高层的训练网络结构与底层训练网络相同,每次训练从经验池中采样样本数量batch_size设为128,所训练的时间步n_timesteps设置为1000万,其他参数设置相同。
S6、根据步骤S53中训练得到的子任务选择策略,通过子任务重构得到新任务的最优策略,实现新任务的再现与泛化。
在此步骤中,根据reaching、grasping、releasing、openDoor四个子任务的状态生成权重w1,w2,w3,w4,通过子任务选择策略的重构得到新任务的最优策略其中表示第i个子任务的选择策略,Z(s,gm)表示归一化函数,Π为求积运算,实现新任务的再现与泛化。
实施例2
第二方面,基于实施例1,本实施例提供了一种基于分层强化学习的机械臂复杂操作技能学习***,包括处理器及存储介质;
所述存储介质用于存储指令;
所述处理器用于根据所述指令进行操作以执行根据实施例1所述方法的步骤。
在一些实施例中,一种基于分层强化学习的机械臂复杂操作技能学习***,包括:Kinova Jaco机械臂、复杂任务分解模块、子任务RL设计模块、子任务RL训练模块、新任务RL设计模块、新任务RL训练模块、子任务重构模块;
其中复杂任务分解模块将复杂任务分解成多个子任务,并通过子任务RL设计模块设计出每个子任务的RL参数;
然后根据每个子任务的RL参数,通过子任务RL训练模块训练出每个子任务的最优策略,组成子任务最优策略集合;
当新的复杂任务执行时,根据每个子任务的RL参数通过新任务RL设计模块设计新任务的RL参数,再通过新任务RL训练模块得到子任务选择策略;
最后子任务选择策略经子任务重构模块选择相应的子任务进行重构,实现新任务的再现与泛化。
实施例3
第三方面,基于实施例1,本实施例提供了一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现实施例1所述方法的步骤。
实施例4
第四方面,基于实施例1,本发明提供了一种计算设备,包括,
一个或多个处理器、一个或多个存储器以及一个或多个程序,其中一个或多个程序存储在所述一个或多个存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序包括用于执行实现实施例1所述的方法中的任一方法的指令。
本领域内的技术人员应明白,本申请的实施例可提供为方法、***、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅是本发明的优选实施方式,应当指出:对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种基于分层强化学习的机械臂复杂操作技能学习方法,其特征在于,包括:
步骤S1、获取复杂任务数据,将复杂任务分解为多个子任务;
步骤S2、确定每个子任务的RL参数;
步骤S3、根据每个子任务的RL参数,构建底层训练网络结构,训练每个子任务,得到子任务最优策略集合;
步骤S4、当有新的复杂任务执行时,根据步骤S2得到的所有子任务的RL参数确定新任务的RL参数;
步骤S5、根据新任务的RL参数和子任务最优策略集合,构建上层训练网络结构,训练得到子任务选择策略;
步骤S6、根据子任务选择策略,通过子任务重构得到新任务的最优策略,实现新任务的再现与泛化。
2.根据权利要求1所述的基于分层强化学习的机械臂复杂操作技能学习方法,其特征在于,步骤S1、获取复杂任务数据,将复杂任务分解为多个子任务,包括:
S11、从一个贝塔过程中定义一组关于全局共享隐状态集的权重B|B0~BP(c,B0),并通过进行隐式定义,其中B0为基测度,ωk为原子的质量,为克罗内克函数,c表示浓度参数,θk={Ak,∑k}表示特征位置,Ak表示滞后矩阵,∑k为Ak的协方差;
S12、采用由B参数化的伯努利过程BeP(B),为每个时间序列i生成一个全局共享的隐状态Xi,其中Xi为Xi~BeP(B),i=1,2,...,N,N为时间序列的总数,并通过Xi构造一个特征向量fi;
3.根据权利要求1所述的基于分层强化学习的机械臂复杂操作技能学习方法,其特征在于,步骤S2、确定每个子任务的RL参数,包括:
第i个子任务的RL参数定义为一个五元组Mi=<Si,Ai,Pi,Ri,γ>;其中Si为状态空间,状态空间的维数至少为7维,其中第一维是机械臂夹持器,第2-4维是机械臂末端的位置,第5-7维是机械臂末端的姿态,其他通过不同的任务增加状态和状态空间;Ai为动作空间,动作空间的维数通常是7维,前六维表示机械臂末端的位置和姿态的移动方向,第7维表示末端夹持器的闭合程度;Pi表示状态转移概率;Ri表示奖励函数,每个子任务都包含两种奖励函数:基础奖励和结果奖励,基础奖励表示机械臂在探索过程中得到的实时奖励,结果奖励则是根据一个回合的结果给予的成功奖励或者失败惩罚;γ表示奖励衰减值。
4.根据权利要求1所述的基于分层强化学习的机械臂复杂操作技能学习方法,其特征在于,步骤S3、根据每个子任务的RL参数,构建底层训练网络结构,训练每个子任务,得到子任务最优策略集合,包括:
子任务RL训练模块采用SAC算法构建底层训练网络结构,底层训练网络结构包括Actor网络和Critic网络;
Actor网络包含一个策略网络θ,用来更新策略πθ,策略网络输入当前时刻状态、输出当前时刻动作以及动作分布的熵值,网络结构为五层全连接神经网络,包含一个输入层、三个包含128个神经元的隐含层和一个包含2个神经元的输出层;输出层为每个动作维度生成均值和标准差,从经验池中采样后,采用tanh激活函数将动作归一化到[-1,1]的范围内;
Critic网络包含两个网络,分别为主值网络和目标值网络,主值网络用来输出当前状态的价值,目标值网络用来输出下一状态的价值,主值网络和目标值网络又包含了两个结构相同的Q网络Net1和Net2,网络结构均为五层全连接神经网络,包含一个输入层、三个包含128个神经元的隐含层以及一个输出层;SAC算法利用两个Q网络减少策略改进中的偏差,选取两个Q函数中的较小值作为均方误差计算的输入值,能够显著加快训练速度。
5.根据权利要求4所述的基于分层强化学习的机械臂复杂操作技能学习方法,其特征在于,步骤S3还包括:
S32、从回放经验池D中采样当前时刻的状态st,动作at,奖励r,下一时刻的状态st+1;
S33、将步骤S32得到的当前时刻的状态st,动作at,奖励r,下一时刻的状态st+1送入策略网络,输出下一时刻的策略πθ(st+1)和熵log(πθ(at|st))至目标值网络,同时对进行策略网络参数θ更新,更新方式如下:
θ←θ-λπJπ(θ)
其中λπ表示策略网络的更新参数,Jπ(θ)表示策略网络的目标函数,
α表示策略熵的正则化系数;E表示期望值;Qφ(st,at)表示主值网络输出的Q值;
S34、将步骤S32得到的当前时刻的状态st,动作at,奖励r输出至主值网络,通过主值网络中的两个Q网络Net1和Net2来计算估计Q值Qt(φ1)、Qt(φ2);
S35、将步骤S33得到的下一时刻的策略πθ(st+1)和熵log(πθ(at|st))通过目标值网络中的两个Q网络Net1和Net2来计算目标Q值 输出两个目标Q值中的较小值目标值网络参数通过主值网络参数进行软更新,更新方式如下:
主值网络的参数更新方式如下:
6.根据权利要求1所述的基于分层强化学习的机械臂复杂操作技能学习方法,其特征在于,步骤S4、当有新的复杂任务执行时,根据步骤S2得到的所有子任务的RL参数确定新任务的RL参数,包括:
新任务的RL参数定义为一个五元组 其中l表示子任务的个数,表示新任务的状态空间,表示向量级联运行算符,表示为子任务所占权重,表示每个子目标对新任务的影响和度量,且 表示为所有子目标的级联,子目标是一种属性,它代替作为每个子任务RL参数的状态元素,子目标包括两种,第一种表示从新任务中产生的第二种表示用户指定的子目标
权重和子目标表示的等效动作不再是随机产生,而是新任务根据状态信息确定性生成的;
7.根据权利要求1所述的基于分层强化学习的机械臂复杂操作技能学习方法,其特征在于,步骤S5、根据新任务的RL参数和子任务最优策略集合,构建上层训练网络结构,训练得到子任务选择策略,包括:
S51、新任务根据相应子任务的状态空间,筛选出相应的状态空间;
新任务的状态空间通过筛选出相应子任务的状态s1,s2,…,sl,其中每个子任务的前7维状态空间是每个子策略共用的,表示机械臂的夹持器和末端位姿,从第8维开始,新任务通过每个子任务所需的状态,筛选出相应的状态,分配给每个子策略对应的状态空间;
S52、新任务根据需要的子任务,产生相应的子目标,并与对应的子任务的状态组成子任务新状态;
9.一种基于分层强化学习的机械臂复杂操作技能学习***,其特征在于,包括处理器及存储介质;
所述存储介质用于存储指令;
所述处理器用于根据所述指令进行操作以执行根据权利要求1至8任一项所述方法的步骤。
10.一种存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至8任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310153474.9A CN116079737A (zh) | 2023-02-23 | 2023-02-23 | 基于分层强化学习的机械臂复杂操作技能学习方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310153474.9A CN116079737A (zh) | 2023-02-23 | 2023-02-23 | 基于分层强化学习的机械臂复杂操作技能学习方法及*** |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116079737A true CN116079737A (zh) | 2023-05-09 |
Family
ID=86206394
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310153474.9A Pending CN116079737A (zh) | 2023-02-23 | 2023-02-23 | 基于分层强化学习的机械臂复杂操作技能学习方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116079737A (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111144580A (zh) * | 2019-12-31 | 2020-05-12 | 中国电子科技集团公司信息科学研究院 | 一种基于模仿学习的层级强化学习训练方法和装置 |
CN112102405A (zh) * | 2020-08-26 | 2020-12-18 | 东南大学 | 基于深度强化学习的机器人搅动-抓取组合方法 |
JP2021091079A (ja) * | 2019-12-10 | 2021-06-17 | 富士フイルム株式会社 | ロボットの制御装置、制御方法、及びプログラム |
CN113727306A (zh) * | 2021-08-16 | 2021-11-30 | 南京大学 | 一种基于深度强化学习的解耦c-v2x网络切片方法 |
CN114083539A (zh) * | 2021-11-30 | 2022-02-25 | 哈尔滨工业大学 | 一种基于多智能体强化学习的机械臂抗干扰运动规划方法 |
US20220375210A1 (en) * | 2021-05-12 | 2022-11-24 | Robert Bosch Gmbh | Method for controlling a robotic device |
-
2023
- 2023-02-23 CN CN202310153474.9A patent/CN116079737A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2021091079A (ja) * | 2019-12-10 | 2021-06-17 | 富士フイルム株式会社 | ロボットの制御装置、制御方法、及びプログラム |
CN111144580A (zh) * | 2019-12-31 | 2020-05-12 | 中国电子科技集团公司信息科学研究院 | 一种基于模仿学习的层级强化学习训练方法和装置 |
CN112102405A (zh) * | 2020-08-26 | 2020-12-18 | 东南大学 | 基于深度强化学习的机器人搅动-抓取组合方法 |
US20220375210A1 (en) * | 2021-05-12 | 2022-11-24 | Robert Bosch Gmbh | Method for controlling a robotic device |
CN113727306A (zh) * | 2021-08-16 | 2021-11-30 | 南京大学 | 一种基于深度强化学习的解耦c-v2x网络切片方法 |
CN114083539A (zh) * | 2021-11-30 | 2022-02-25 | 哈尔滨工业大学 | 一种基于多智能体强化学习的机械臂抗干扰运动规划方法 |
Non-Patent Citations (1)
Title |
---|
刘元归: "基于行为树和强化学习的服务机械臂操作技能学习方法研究", 中国优秀硕士学位论文全文数据库信息科技辑, pages 11 - 37 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Yang et al. | Hierarchical reinforcement learning with universal policies for multistep robotic manipulation | |
Alet et al. | Modular meta-learning | |
US10766137B1 (en) | Artificial intelligence system for modeling and evaluating robotic success at task performance | |
CN112231489B (zh) | 防疫机器人知识学习与迁移方法和*** | |
CN114603564B (zh) | 机械臂导航避障方法、***、计算机设备及存储介质 | |
Perez et al. | Learning visual reasoning without strong priors | |
Ren et al. | Leveraging language for accelerated learning of tool manipulation | |
Nishide et al. | Tool–body assimilation of humanoid robot using a neurodynamical system | |
Valarezo Anazco et al. | Natural object manipulation using anthropomorphic robotic hand through deep reinforcement learning and deep grasping probability network | |
Koralewski et al. | Self-specialization of general robot plans based on experience | |
Yamada et al. | Representation learning of logic words by an RNN: from word sequences to robot actions | |
Kim et al. | Learning reachable manifold and inverse mapping for a redundant robot manipulator | |
Ray et al. | Neural network applications in naval architecture and marine engineering | |
CN116079737A (zh) | 基于分层强化学习的机械臂复杂操作技能学习方法及*** | |
Huang et al. | Value-Informed Skill Chaining for Policy Learning of Long-Horizon Tasks with Surgical Robot | |
Ilboudo et al. | Adaptive t-momentum-based optimization for unknown ratio of outliers in amateur data in imitation learning | |
Zeng et al. | AHEGC: Adaptive Hindsight Experience Replay With Goal-Amended Curiosity Module for Robot Control | |
CN117733841A (zh) | 基于生成对抗模仿学习的机械臂复杂操作技能学习方法及*** | |
CN112766513A (zh) | 一种记忆协同的知识追踪方法及*** | |
Ramírez et al. | Human behavior learning in joint space using dynamic time warping and neural networks | |
Xiong et al. | Primitives generation policy learning without catastrophic forgetting for robotic manipulation | |
Chen et al. | Distributed continuous control with meta learning on robotic arms | |
Laezza | Robot Learning for Manipulation of Deformable Linear Objects | |
Katz | A Cognitive Robotic Imitation Learning System Based On Cause-Effect Reasoning | |
Fahlman | Parallel processing in artificial intelligence |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20230509 |
|
RJ01 | Rejection of invention patent application after publication |