基于极大化好奇心的子目标树机械臂避障路径规划方法
未命名
10-21
阅读:74
评论:0
1.本发明属于基于强化学习的路径规划技术领域,具体涉及一种基于极大化好奇心的子目标树机械臂避障路径规划方法。
背景技术:
2.路径规划是机械臂运动控制的一个基本问题。传统的路径规划方法通常适用于结构化环境。然而,在实际操作中,机械臂的工作环境可能是多种多样的,生成无障碍的路径更加困难。近年来,基于强化学习的路径规划为解决这一问题提供了另一种途径。它使机械臂能够在非结构化工作环境中自主学习和规划最优路径。
3.由于奖励稀疏,强化学习在处理这类任务时效率非常低。为提高效率,目前一些研究人员提出了一种结合分层强化学习和规划的方法,将避障任务分解为搜索树上子任务的根到叶路径,其中高级任务调用低级任务。但这种方法存在如下缺陷:其面对不同的环境难以评估每一个子目标的成本和价值,往往存在多个相同成本的子目标,这对于强化学习来说是难以判断的。
技术实现要素:
4.针对现有技术存在的上述问题,本发明提出一种基于极大化好奇心的子目标树机械臂避障路径规划方法,其能在复杂环境更高效地生成无障碍路径,提高了规划效率。
5.本发明采取如下技术方案:
6.基于极大化好奇心的子目标树机械臂避障路径规划方法,其按如下步骤:
7.步骤1:创建和注册强化学习环境;
8.步骤2:构造子目标树的规划策略的奖励函数;
9.步骤3:定义好奇心的评估方法,评估子目标的好奇心大小;
10.步骤4:设计好奇心平衡模块;
11.步骤5:设置参数;
12.步骤6:在仿真环境中训练策略;
13.步骤7:保存训练好的参数文件;
14.步骤8:导入参数、调用模型、递归预测子目标生成子目标序列;
15.步骤9:按照子目标序列依次进行规划,完成路径的规划。
16.优选的,步骤1:创建和注册强化学习环境。重写openai的gym接口,包括reset、step、render等方法,以便在仿真环境中接入强化学习,本发明优选实施例选择的强化学习方法是td3,并基于pybullet搭建仿真环境。
17.优选的,步骤2:设计构造子目标树的规划策略的奖励函数。奖励函数考虑范围包括当前目标是否是合法子目标,是否碰到障碍物,是否超出边界,是否是最后一个子目标,记为r
te
。
18.优选的,步骤2中,所述子目标是控制机械臂关节到达的目标关节角度,根据子目
标奖励函数来确定子目标;对于每一个子目标sm,通过评估sm当前处于的位置g
reach
与起始位置g
begin
和目标位置g
end
之间的欧式距离和来判断子目标是否合法,d
gap
表示子目标与起始位置的欧式距离之差,当d
gap
<0.05且不发生碰撞,则子目标合法;
[0019][0020][0021][0022][0023]gmidle
=(g
begin
+g
end
)/2
[0024][0025]
t
free
表示自由工作空间,t
col
表示发生碰撞,表示起始位置g
begin
和目标位置g
end
之间的欧式距离,g
midle
表示子目标的起始位置的直线连线中点,子目标距离g
midle
的距离越小,则表示子目标越优,表示中点g
midle
与目标位置g
end
之间的欧式距离;
[0026][0027]
当子目标距离目标的距离小于d
min
时给予奖励100,d
min
设置为0.1。
[0028]
优选的,步骤3:定义好奇心的评估方法,使用icm评估子目标的好奇心大小。当前时刻观察状态s
t
与智能体选择的动作a
t
输入到icm的前向模型用于预测下一观察状态的特征向量预测值与实际值φ(s
t+1
)作差作为好奇心奖励信号r
ti
,η表示比例因子,η设置为0.5。
[0029]
计算如下:
[0030][0031]
优选的,步骤4:设计好奇心平衡模块,规划策略π
p
在给定观察状态s情况下预测子目标sm,策略的学习目标是最大化选择的动作的好奇心并选择可行的动作以到达合适的子目标。智能体在时间t获得的奖励有好奇心奖励为r
ti
和子目标奖励为r
te
,总的奖励:
[0032]rt
=r
te
+r
ti
[0033]
在每个更新步骤中,icm和策略同时使用从经验重播缓冲区中采样的相同状态动作对进行训练。为了不扰乱样本空间,好奇心奖励只在更新策略时使用,存放在经验重播缓冲区的状态动作对的奖励值只有与环境交互的子目标奖励。
[0034]
策略π
p
使用td3算法进行训练,用参数为θ
p
的深度神经网络表示策略π
p
(s
t
;θ
p
),输入智能体在时间t的观察状态s
t
,策略π
p
根据s
t
选择相应的动作a
t
~π
p
(s
t
;θ
p
),并执行动作,
优化参数θ
p
以得到最大化期望的奖励和:
[0035][0036]
但这样的话也加剧了强化学习的探索与利用之间的矛盾。所以需要设计一个超参数β
t
≥0来实现在训练时间步长第t个epoch时探索与利用之间的权衡。总的奖励改写为:
[0037]rt
=r
te
+β
trti
[0038]
β
t
的设置如下:
[0039][0040]
β0=max(r
te
)
[0041]
其中,t
curios
和t
end
分别表示引入好奇心机制的起始时间和结束时间,ρ表示好奇心的衰减率。
[0042]
优选的,步骤4中,好奇心平衡模块的输出一个超参数β
t
≥0,用来实现在训练时间步长第t个epoch时探索与利用之间的权衡;其中,t
end
设置为β
t
小于0.01的时刻,ρ设置为1.0
×
10-5
,β0设置为子目标奖励能达到的最大值;当训练过程逐渐深入,好奇心奖励r
ti
将收敛为0,让策略最终指向回原有任务;
[0043]
t
curios
时刻计算如下,x[n]表示第t个epoch的前100epoch的测试奖励序列,y[n]是长度为20的全1序列,z[n]是长度为100的全1序列;
[0044][0045]
这个公式的目的是对x
t
[n]进行平滑处理,即用x中每个元素周围的20个元素的平均值来代替该元素。从第100epoch开始计算之后每隔50epoch计算一次对求方差,如果方差小于0.5则判断该时刻收敛,记为t
curios
。
[0046]
优选的,步骤5:参数设置,具体包括icm的前向模型,后向模型参数设置,以及td3方法的相关参数设置。
[0047]
优选的,步骤6:在仿真环境中训练策略π
p
,首先是输入初始环境状态s和目标g,递归的应用基于子目标树的路径规划策略π
p
在s和g之间通过预测动作a
t
来插入子目标sm,控制机械臂执行动作a
t
来与环境交互以获取衡量这个子目标好坏的奖励r
te
并到达新的观察状态s
t+1
,将观察状态转移过程(s
t
,a
t
,s
t+1
,r
te
)存入经验缓存池中。然后,从经验缓存池中随机采样小批量样本(s
t
,a
t
,s
t+1
,r
te
)来更新策略。好奇心平衡模块根据r
te
来计算β
t
以平衡好奇心信号r
ti
的尺度。当β
t
大于0时,通过icm产生的好奇心信号被加权为β
trti
。当β
t
等于0时,则不赋予子目标好奇心奖励而直接使用td3更新策略。需注意的是,即使子目标增加了额外的好奇心奖励,但策略的更新仍然是基于子目标树策略的奖励信号r
te
为主导,策略的目标则转变为寻找极大化好奇心的合法子目标。为达到这一目的,td3策略更新为最大化奖励的期望
[0048]
优选的,步骤6中,在仿真环境中训练策略π
p
时,观察值s
t
包括机械臂的关节角度、
关节坐标、障碍物的大小及位置、目标的位置;输入到策略π
p
中,策略π
p
输出动作a
τ
即机械臂的6个关节角度变化量,调用step函数执行a
τ
,到达新状态,计算环境奖励r
te
,并将状态动作变换对(s
t
,a
t
,s
t+1
,r
te
)保存到经验缓存池;
[0049]
调用icm计算好奇心奖励r
ti
并更新其前向网络θf和后向网络θi;前向模型的优化目标为最小化如下的损失函数:
[0050][0051]
反向模型的输入为观测状态s
t
和s
t+1
经过特征提取模块得到的特征向量φ(s
t
)和φ(s
t+1
),输出为在s
t
和s
t+1
之间的预测动作定义为:
[0052][0053]
反向模型的优化目标为最小化其预测误差:
[0054][0055]
好奇心奖励与环境奖励相加作为最终奖励,即r
t
=r
te
+β
trti
,将其用于规划策略π
p
的更新。
[0056]
优选的,步骤7:训练结束后将最后的参数θ
p
保存为.pth文件,方便后续的导出和调用。
[0057]
优选的,步骤8:调用训练好的模型执行规划,先导入保存好的强化学习模型的参数文件.pth。
[0058]
优选的,规划是一个递归过程,输入是观察值s
t
,输出一个表示机械臂的变化角度的动作a
t
,在pybullet仿真环境中控制机械臂执行这个动作,机械臂到达子目标,保存子目标,并得到新的观察,将新观察重新输入到模型中继续预测下一个子目标。确保每两个子目标之间的距离都小于0.1则递归完成,如果保存子目标个数大于20则视为规划失败,结束递归,最后得到子目标序列。
[0059]
优选的,步骤9:调用ompl库按照子目标序列依次进行规划,最终完成整条路径的规划。
[0060]
与现有技术相比,本发明具体如下有益效果:
[0061]
(1)本发明针对子目标设计了更加密集的奖励函数,此技术可以加速策略的收敛速度。
[0062]
(2)本发明融合了好奇心机制,为子目标提供了额外的评价指标,这将促使发现更多具有挑战性和多样性的子目标,加深了智能体对于环境的理解。
[0063]
(3)本发明设计了好奇心平衡模块,使得智能体可以通过完成从易到难再到易的课程学习,从而适应环境的变化。
附图说明
[0064]
图1为优选实施例基于极大化好奇心的子目标树机械臂避障路径规划方法流程图;
[0065]
图2为子目标树结构示意图;
[0066]
图3为基于极大化好奇心的子目标树机械臂避障路径规划示意图;
[0067]
图4为基于极大化好奇心的子目标树结构框图;
[0068]
图5为icm的网络结构图;
[0069]
图6为本发明在翻越一堵墙到达目标实例中的仿真示意图;
[0070]
图7为本发明在避开空间中5个随机障碍物到达目标实例中的仿真示意图。
具体实施方式
[0071]
下面结合附图,对本发明的具体实施例进行详细阐述。
[0072]
如图1所示,本实施例基于极大化好奇心的子目标树机械臂避障路径规划方法,具体包括以下步骤:
[0073]
步骤1:创建和注册强化学习环境。重写openai的gym接口,包括reset、step、render等方法,以便在仿真环境中接入强化学习,本实施例选择td3方法。基于pybullet实现仿真环境,导入jaka zu5 6轴协作机械臂的urdf文件,根据不同的任务设置障碍物的碰撞信息。如图6、7所示,其中梨型为目标位置,长方体和球体则是障碍物,细线包围的空间则是机械臂的工作范围。图6需要机械臂翻越一堵墙到达目标位置,图7则是要避开工作空间中随机大小,随机位置的5个障碍物到达目标位置。
[0074]
步骤2:定义构造子目标树的规划策略的奖励函数,奖励考虑范围包括是否是合法子目标,是否碰到障碍物,是否超出边界,是否是最后一个子目标,子目标树结构如图2所示。对于每一个子目标sm,通过评估sm当前处于的位置g
reach
与起始位置g
begin
和目标位置g
end
之间的欧式距离和来判断子目标是否合法,d
gap
表示子目标与起始位置的欧式距离之差,当d
gap
<0.05且不发生碰撞,则子目标合法。
[0075][0076][0077][0078][0079]gmidle
=(g
begin
+g
end
)/2
[0080][0081]
t
free
表示自由工作空间,t
col
表示发生碰撞,表示起始位置g
begin
和目标位置g
end
之间的欧式距离,g
midle
表示子目标的起始位置的直线连线中点,子目标距离g
midle
的距离越小,则表示子目标越优,表示中点g
midle
与目标位置g
end
之间的欧式距离。
[0082]
[0083]
当子目标距离目标的距离小于d
min
时给予奖励100,d
min
设置为0.1。
[0084]
步骤3:定义好奇心的评估方法,对于好奇心的评估方法,本发明选用可以兼容其他的好奇心机制,如rnd、re3等方法。在本发明优选实施例中,使用的是icm方法。icm由三个模块组成(如图5所示),分别是特征提取模块、前向模型以及后向模型。输入当前时刻的观察状态s
t
和下一时刻的观察状态s
t+1
,通过特征提取模块提取得到特征向量φ(s
t
)和φ(s
t+1
),一同输入到反向模型中,用于优化特征提取模块参数。当前时刻观察状态s
t
与智能体选择的动作a
t
输入前向模型用于预测下一观察状态的特征向量预测值与实际值φ(s
t+1
)作差作为好奇心奖励信号r
ti
,η表示比例因子,η设置为0.5。计算式如下:
[0085][0086]
步骤4:定义好奇心平衡模块,策略π
p
在给定观察状态s情况下预测子目标sm,策略的学习目标是最大化选择的动作的好奇心并选择可行的动作以到达合适的子目标。智能体在时间t获得的奖励有好奇心奖励为r
ti
和子目标奖励为r
te
,总的奖励:
[0087]rt
=r
te
+r
ti
[0088]
在每个更新步骤中,icm和策略同时使用从经验重播缓冲区中采样的相同状态动作对进行训练。为了不扰乱样本空间,好奇心奖励只在更新策略时使用,存放在经验重播缓冲区的状态动作对的奖励值只有与环境交互的子目标奖励。
[0089]
策略π
p
使用td3算法进行训练,用参数为θ
p
的深度神经网络表示策略π
p
(s
t
;θ
p
),输入智能体在时间t的观察状态s
t
,策略π
p
根据s
t
选择相应的动作a
t
~π
p
(s
t
;θ
p
),并执行动作,优化参数θ
p
以得到最大化期望的奖励和:
[0090][0091]
但这样也加剧了强化学习的探索与利用之间的矛盾。所以需要设计一个超参数β
t
≥0来实现在训练时间步长第t个epoch时探索与利用之间的权衡。总的奖励改写为:
[0092]rt
=r
te
+β
trti
[0093]
β
t
的设置如下:
[0094][0095]
β0=max(r
te
)
[0096]
其中,t
curios
表示从这一时刻开始引入好奇心,t
end
表示好奇心已经衰减到足够小,无法再影响到网络的更新了,屏蔽掉好奇心,提高训练效率,回归原有任务。所以,t
end
设置为β
t
小于0.01的时刻。在好奇心的作用区间,即t大于t
curios
且小于t
end
,β
t
使用指数衰减的方法,以鼓励智能体在训练过程中关注新奇的状态和动作,其中,ρ是衰减率,设置为1.0
×
10-5
,β0表示好奇心奖励能达到的最大值。当训练过程逐渐深入,好奇心奖励r
ti
将收敛为0,让策略最终指向回原有任务。
[0097]
t
curios
时刻策略刚开始收敛,当平均回报在训练过程中趋于稳定,并且不再有显著的变化或波动,可以认为算法已经收敛。具体来说,可以计算连续若干个训练轮次(或时间步骤)的平均回报,然后观察这些平均回报值之间的差异。当这些差异小到一定程度,且在之后的训练中保持稳定,可以认为算法已经收敛。所以收敛时刻的计算如下:
[0098]
x[n]表示第t个epoch的前100epoch的测试奖励序列,y[n]是长度为20的全1序列,z[n]是长度为100的全1序列。
[0099][0100]
这个公式的目的是对x
t
[n]进行平滑处理,即用x中每个元素周围的20个元素的平均值来代替该元素。从第100epoch开始计算之后每隔50epoch计算一次对求方差,如果方差小于0.5则判断该时刻收敛,从该时刻起开始引入好奇心机制。
[0101]
步骤5:参数设置,icm前向网络,后向网络参数设置:
[0102]
表1 icm的前向网络,后向网络参数设置
[0103][0104]
td3算法参数设置如下:
[0105]
表2 td3算法的相关参数设置
[0106][0107]
步骤6:在仿真环境中训练策略π
p
,如何训练的结构如图4所示,下面是具体过程:
[0108]
6-1、初始化策略π
p
的神经网络参数θ
p
,初始化经验缓存池,初始化前向网络和反向网络参数θf,θi,训练次数epoch初始化为0。
[0109]
6-2、随机初始化仿真环境,包括初始化机械臂的关节角度、障碍物的大小、位置,以及目标位置。
[0110]
6-3、使用pybullet的内置函数获取环境信息,包括机械臂的关节角度、关节坐标、障碍物的大小、位置、目标的位置。输入到策略π
p
中,策略π
p
输出动作a
t
(机械臂的6个关节角度变化量),调用step函数执行a
t
,到达新状态,计算环境奖励r
te
,并将状态动作变换对(s
t
,at
,s
t+1
,r
te
)保存到经验缓存池。
[0111]
6-4、判断此轮训练是否结束,如果未结束重复步骤6-3。结束条件为重复步骤6-3超过20次或碰到障碍物,又或是到达最终子目标。
[0112]
6-5、从经验缓存池中随机小批量采样长度为256的样本(s
t
,a
t
,s
t+1
,r
te
),根据r
te
计算β
t
,如果β
t
大于0.01,则调用icm计算好奇心奖励r
ti
,否则跳过6-5执行6-6。计算损失,并更新前向网络θf和后向网络θi。
[0113]
前向模型的优化目标为最小化如下的损失函数:
[0114][0115]
反向模型的输入为观测状态s
t
和s
t+1
经过特征提取模块得到的特征向量φ(s
t
)和φ(s
t+1
),输出为在s
t
和s
t+1
之间的预测动作将其定义为:
[0116][0117]
反向模型的优化目标为最小化其预测误差:
[0118][0119]
其中反向模型的预测误差既用来训练反向模型,也用训练特征提取模块。
[0120]
6-6、将好奇心奖励与环境奖励相加作为最终奖励,r
t
=r
te
+β
trti
。
[0121]
6-7、根据上面随机小批量采样256长度的样本(s
t
,a
t
,s
t+1
,r
t
)计算损失,更新神经网络参数θ
p
。td3的确定性策略描述状态和动作之间的关系如下:π:s
→
a。每一集都从初始状态s0的采样开始,智能体根据每个时间步t的状态s
t
采取行动a
t
,完成操作之后会得到奖励r
t
=(s
t
,a
t
),是未来回报的折扣和,γ∈[0,1]表示环境的折扣因子。智能体的目的是最大化其期望e[r
t
∣s
t
,a
t
],最优策略可以定义为任意策略π
*
,使得对于每个s∈s,a∈a,任意策略π,都存在q
*
是最优策略的q函数,并且满足bellman方程:
[0122][0123]
6-8、使用上述更新得到的神经网络参数θ
p
在随机生成的10个测试任务中进行测试,计算成功率并保存,记为x[n]。
[0124]
6-9、如果epoch小于2000,则重复步骤6-2到步骤6-8,重复50次epoch加1,不断迭代更新神经网络参数θ
p
。如果epoch等于2000,则结束训练。
[0125]
步骤7:训练结束后,将最后的参数θ
p
保存为.pth文件,方便后续的导出和调用;
[0126]
步骤8:调用训练好的模型执行规划,先导入保存好的强化学习模型的参数文件.pth。规划是一个递归过程,输入是观察值s
t
,输出一个表示机械臂的变化角度的动作a
t
,在pybullet仿真环境中控制机械臂执行这个动作,机械臂到达子目标,保存子目标,并得到新的观察,将新观察重新输入到模型中继续预测下一个子目标。确保相邻两个子目标之间的欧式距离都小于0.1则递归完成,如果保存子目标个数大于20则视为规划失败,结束递归,最后得到子目标序列;
[0127]
递归示意图如图3所示,首先在起始点s和目标g之间预测第一个子目标s
m1
,再在s
m1
与g之间预测下一个子目标s
m2
,直到在s
m2
与g之间预测的子目标s
m3
与s
m2
和g的距离都小于0.1,返回预测s
m1
与s
m2
之间的子目标s
m4
,然后同理,s
m4
也满足与附近子目标距离小于0.1,返回。继续预测s与s
m1
之间的子目标,同理,预测完s
m5
之后所有子目标之间的距离都小于0.1,结束。按照的顺序s->s
m5->s
m1->s
m4->s
m2->s
m3->g完成子目标规划即可完成整条路径的规划。
[0128]
步骤9:调用ompl库按照子目标序列依次进行规划,最终完成整条路径的规划。首先导入jaka zu5 6轴协作机械臂的urdf文件,配置ompl的相关参数,规划时间限制为5秒,规划步数限制为20,规划器选择bit*;然后创建规划器和状态空间,状态空间即机械臂的6个关节角度,创建空间信息,使用pybullet的check_body_pairs函数检测机械臂是否与空间中物体发生碰撞;最后按照子目标序列的顺序依次将对应状态的机械臂关节角度输入到规划器中,执行规划,规划成功则返回机械臂关节角度的变化序列,反之则返回规划失败。
[0129]
综上,本发明提出了一种基于极大化好奇心的子目标树机械臂避障路径规划方法,包括如下步骤:步骤1,创建和注册强化学习环境,以便在仿真环境中接入强化学习。强化学习方法优选td3,根据避障任务的不同,需要基于pybullet搭建其对应的仿真环境;步骤2,设计构造子目标树的规划策略的奖励函数;步骤3,定义好奇心的评估方法,优选使用icm评估子目标的好奇心大小,鼓励规划策略将子目标往极大化好奇心方向进行拓展;步骤4,设计好奇心平衡模块,以平衡强化学习的探索与利用;步骤5,设置相关参数,包括icm的前向模型,后向模型参数,以及td3方法的相关参数;步骤6,在仿真环境中训练规划策略;步骤7,训练结束后,保存参数文件;步骤8,导入参数文件,调用模型,递归预测子目标生成子目标序列;步骤9,调用ompl库按照子目标序列依次进行规划。
[0130]
上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
技术特征:
1.基于极大化好奇心的子目标树机械臂避障路径规划方法,其特征在于,按如下步骤:步骤1:创建和注册强化学习环境;步骤2:构造子目标树的规划策略的奖励函数;步骤3:定义好奇心的评估方法,评估子目标的好奇心大小;步骤4:设计好奇心平衡模块;步骤5:设置参数;步骤6:在仿真环境中训练策略;步骤7:保存训练好的参数文件;步骤8:导入参数、调用模型、递归预测子目标生成子目标序列;步骤9:按照子目标序列依次进行规划,完成路径的规划。2.根据权利要求1所述的基于极大化好奇心的子目标树机械臂避障路径规划方法,其特征在于:步骤2中,奖励函数考虑范围包括当前目标是否为合法子目标,是否碰到障碍物,是否超出边界,是否为最后一个子目标,奖励记为r
te
。3.根据权利要求1或2所述的基于极大化好奇心的子目标树机械臂避障路径规划方法,其特征在于:步骤2中,所述子目标是控制机械臂关节到达的目标关节角度,根据子目标奖励函数来确定子目标;对于每一个子目标s
m
,通过评估s
m
当前处于的位置g
reach
与起始位置g
begin
和目标位置g
end
之间的欧式距离和来判断子目标是否合法,d
gap
表示子目标与起始位置的欧式距离之差,当d
gap
<0.05且不发生碰撞,则子目标合法;<0.05且不发生碰撞,则子目标合法;<0.05且不发生碰撞,则子目标合法;<0.05且不发生碰撞,则子目标合法;g
midle
=(g
begin
+g
end
)/2t
free
表示自由工作空间,t
col
表示发生碰撞,表示起始位置g
begin
和目标位置g
end
之间的欧式距离,g
midle
表示子目标的起始位置的直线连线中点,子目标距离g
midle
的距离越小,则表示子目标越优,表示中点g
midle
与目标位置g
end
之间的欧式距离;当子目标距离目标的距离小于d
min
时给予奖励100,d
min
设置为0.1。4.根据权利要求3所述的基于极大化好奇心的子目标树机械臂避障路径规划方法,其
特征在于:步骤3中,当前时刻观察状态s
t
与智能体选择的动作a
t
输入到icm的前向模型用于预测下一观察状态的特征向量预测值与实际值φ(s
t+1
)的差值作为好奇心奖励信号r
ti
,η表示比例因子,η设置为0.5;计算式如下:5.根据权利要求4所述的基于极大化好奇心的子目标树机械臂避障路径规划方法,其特征在于:步骤4中,规划策略π
p
在给定观察状态s情况下预测子目标s
m
,策略的学习目标是最大化选择的动作的好奇心并选择可行的动作以到达合适的子目标;智能体在时间t获得的奖励有好奇心奖励为r
ti
和子目标奖励为r
te
,总的奖励:r
t
=r
te
+r
ti
在每个更新步骤中,icm和策略同时使用从经验重播缓冲区中采样的相同状态动作对进行训练;策略π
p
使用td3算法进行训练,用参数为θ
p
的深度神经网络表示策略π
p
(s
t
;θ
p
),输入智能体在时间t的观察状态s
t
,策略π
p
根据s
t
选择相应的动作a
t
~π
p
(s
t
;θ
p
),并执行动作,优化参数θ
p
以得到最大化期望的奖励和:设计一个超参数β
t
≥0来实现在训练时间步长第t个epoch时探索与利用之间的权衡;总的奖励改写为:r
t
=r
te
+β
t
r
ti
β
t
的设置如下:β0=max(r
te
)其中,t
curios
和t
end
分别表示引入好奇心机制的起始时间和结束时间,ρ表示好奇心的衰减率。6.根据权利要求5所述的基于极大化好奇心的子目标树机械臂避障路径规划方法,其特征在于:步骤4中,好奇心平衡模块的输出一个超参数β
t
≥0,用来实现在训练时间步长第t个epoch时探索与利用之间的权衡;其中,t
end
设置为β
t
小于0.01的时刻,ρ设置为1.0
×
10-5
,β0设置为子目标奖励能达到的最大值;当训练过程逐渐深入,好奇心奖励r
ti
将收敛为0,让策略最终指向回原有任务;t
curios
时刻计算如下,x[n]表示第t个epoch的前100epoch的测试奖励序列,y[n]是长度为20的全1序列,z[n]是长度为100的全1序列;从第100epoch开始计算之后每隔50epoch计算一次对求方差,
如果方差小于0.5则判断该时刻收敛,记为t
curios
。7.根据权利要求6所述的基于极大化好奇心的子目标树机械臂避障路径规划方法,其特征在于:步骤6中,在仿真环境中训练策略π
p
,首先输入初始环境状态s和目标g,递归的应用基于子目标树的路径规划策略π
p
在s和g之间通过预测动作a
t
来插入子目标s
m
,控制机械臂执行动作a
t
来与环境交互以获取衡量这个子目标好坏的奖励r
te
并到达新的观察状态s
t+1
,将观察状态转移过程(s
t
,a
t
,s
t+1
,r
te
)存入经验缓存池中;从经验缓存池中随机采样小批量样本(s
t
,a
t
,s
t+1
,r
te
)来更新策略;好奇心平衡模块根据r
te
来计算β
t
以平衡好奇心信号r
ti
的尺度;当β
t
大于0时,通过icm产生的好奇心信号被加权为β
t
r
ti
;当β
t
等于0时,则不赋予子目标好奇心奖励而直接使用td3更新策略;td3策略更新为最大化奖励的期望8.根据权利要求7所述的基于极大化好奇心的子目标树机械臂避障路径规划方法,其特征在于:步骤6中,在仿真环境中训练策略π
p
时,观察值s
t
包括机械臂的关节角度、关节坐标、障碍物的大小及位置、目标的位置;输入到策略π
p
中,策略π
p
输出动作a
τ
即机械臂的6个关节角度变化量,调用step函数执行a
τ
,到达新状态,计算环境奖励r
te
,并将状态动作变换对(s
t
,a
t
,s
t+1
,r
te
)保存到经验缓存池;调用icm计算好奇心奖励r
ti
并更新其前向网络θ
f
和后向网络θ
i
;前向模型的优化目标为最小化如下的损失函数:反向模型的输入为观测状态s
t
和s
t+1
经过特征提取模块得到的特征向量φ(s
t
)和φ(s
t+1
),输出为在s
t
和s
t+1
之间的预测动作定义为:反向模型的优化目标为最小化其预测误差:好奇心奖励与环境奖励相加作为最终奖励,即r
t
=r
te
+β
t
r
ti
,将其用于规划策略π
p
的更新。9.根据权利要求8所述的基于极大化好奇心的子目标树机械臂避障路径规划方法,其特征在于:步骤8中,调用训练好的模型执行规划,先导入保存好的强化学习模型的参数文件.pth。10.根据权利要求9所述的基于极大化好奇心的子目标树机械臂避障路径规划方法,其特征在于:步骤8中,规划是一个递归过程,递归过程具体如下:输入是观察值s
t
,输出一个表示机械臂的变化角度的动作a
t
,在pybullet仿真环境中控制机械臂执行这个动作,机械臂到达子目标,保存子目标,并得到新的观察,将新观察重新输入到模型中继续预测下一个子目标;确保相邻两个子目标之间的欧式距离都小于0.1则递归完成,如果保存子目标个数大于20则视为规划失败,结束递归,最后得到子目标序列。
技术总结
本发明公开了一种基于极大化好奇心的子目标树机械臂避障路径规划方法,按如下步骤:步骤1:创建和注册强化学习环境;步骤2:构造子目标树的规划策略的奖励函数;步骤3:定义好奇心的评估方法,评估子目标的好奇心大小;步骤4:设计好奇心平衡模块;步骤5:设置参数;步骤6:在仿真环境中训练策略;步骤7:保存训练好的参数文件;步骤8:导入参数、调用模型、递归预测子目标生成子目标序列;步骤9:按照子目标序列依次进行规划,完成路径的规划。本发明能在复杂环境更高效地生成无障碍路径,提高了规划效率。率。率。
技术研发人员:郭春生 马磊 应娜 杨萌 陈华华
受保护的技术使用者:杭州电子科技大学
技术研发日:2023.07.25
技术公布日:2023/10/19
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
航空商城 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/
上一篇:一种贴退刀机构及分切机的制作方法 下一篇:一种节能降碳型火炬排放控制装置的制作方法