1.本公开涉及机械臂、自动控制领域,具体而言,涉及一种基于逆强化学习的可变阻抗控制系统、控制方法、电子设备以及存储介质。
背景技术:2.机器人系统越来越多地使用在各种非结构化环境中,例如医院、工厂、房屋等,在这样的环境中,机器人需要执行复杂的操作任务,根据不同任务阶段和环境约束调整阻抗,同时以安全稳定的方式与未知环境进行交互。为保证安全的物理交互,建立质量-弹簧-阻尼接触动力学的阻抗控制已广泛应用于这些机器人系统。此外,许多复杂的操作任务需要机器人根据任务阶段改变阻抗,灵活性和鲁棒性已成为开发用于物理交互的手术机器人控制器的重要指标之一。然而,传统的阻抗控制方案不了解实际的手术场景,包括机械臂上复杂的物理交互,导致精度损失,在实践中,完成此类任务需要实现变阻抗技能。
3.现有基于学习的方法来获得可变阻抗技能方法主要有以下几类:
4.第一类是基于示教学习的方式。人类专家通过触觉接口和手持阻抗控制接口控制机器人,阻抗控制接口基于线性弹簧复位电位计,该电位计将按钮位置映射到机器人臂刚度。这种设置允许人类专家根据给定的任务要求调整机器人的柔顺性,将演示的运动和刚度轨迹使用动态运动原语进行编码,并使用局部权重回归进行学习。如果所展示的轨迹具有高方差,则阻抗应该低,而如果所展示的轨迹具有低方差,则阻抗应该高。这种策略可以为许多操纵任务提供非常好的解决方案。优点是不需要单独演示阻抗。然而,在一些交互任务中,例如在凹槽中滑动任务,低轨迹可变性不一定对应于高阻抗。
5.第二类是基于具有可变阻抗动作空间的深度强化学习方式。当使用强化学习来控制机器人运动时,一个重要的挑战是策略的参数化选择。通常使用高斯混合回归从一组遵循示教学习范例的运动演示中提取具有相关非线性特征的参数,最终的参数化采用非线性时不变动态系统的形式,使用这个时不变的动态系统作为pi2策略搜索算法的一个变体的参数化策略,最后用pi2策略搜索算法来表示时不变运动。然而,这种方法有一定的缺陷,首先这种方法比较理想化,它假设除了探测噪声之外,系统中没有噪声,这意味着在采样轨迹期间遇到的扰动对学习具有负面影响,并且不能被考虑来改进策略。其次,它最初被设计成从一个特定的初始状态学习轨迹,使用它从多个初始状态学习轨迹会增加所需展开的次数。尽管许多逆强化学习算法采用熵正则化来防止简单地模仿专家策略,但以前大多数工作没有关注动作空间选择对先验知识的影响。
6.尽管已经提出了许多基于深度强化学习和示教学习的方法来获得接触丰富操作任务的可变阻抗技能,但这些技能通常是基于特定任务的,并且可能对任务设置的变化敏感,当任务发生变化时,通过示教学习方法获得的特定任务阻抗技能可能会失效。此外,设计合适的奖励函数对强化学习来说具有挑战性,因此,它们的技能可转移性是受限的。
7.因此,需要一种或多种方法解决上述问题。
8.需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理
解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
技术实现要素:9.本公开的目的在于提供一种基于逆强化学习的可变阻抗控制系统、控制方法、电子设备以及存储介质,进而至少在一定程度上克服由于相关技术的限制和缺陷而导致的一个或者多个问题。
10.根据本公开的一个方面,提供一种基于逆强化学习的可变阻抗控制系统,所述系统包括可变阻抗控制器、阻抗增益控制器,其中:
11.所述可变阻抗控制器用于基于获取到的目标刚度和阻尼系数,根据第一反馈力与期望轨迹,生成用于修正轨迹的机械臂末端期望位置增量;
12.所述阻抗增益控制器用于根据所述机械臂末端期望位置增量生成用于控制机械臂运动的第二反馈力,基于所述第二反馈力完成机械臂控制。
13.优选地,所述可变阻抗控制系统还包括逆强化学习算法模块和可变阻抗控制策略模块,其中:
14.所述逆强化学习算法模块用于基于专家策略和奖励函数,使用鉴别器区分运动轨迹和专家轨迹并计算损失函数,通过最小化损失函数更新鉴别器,并通过最大化奖励函数更新可变阻抗控制策略;
15.所述可变阻抗控制策略模块用于基于已有可变阻抗控制策略,根据机械臂末端位置及所述第二反馈力计算目标刚度和阻尼系数,并将所述目标刚度和阻尼系数发送至所述可变阻抗控制器。
16.优选地,所述可变阻抗控制器基于二阶阻抗模型
[0017][0018]
生成用于修正轨迹的机械臂末端期望位置增量为:
[0019][0020]
其中,md(t)、bd(t)、kd(t)分别为阻抗模型中时变的目标惯性矩阵、目标阻尼矩阵与目标刚度矩阵,x分别为机器人末端在笛卡尔空间实际的加速度、速度和位置,xd分别为机器人末端的期望加速度、速度和位置,fd和f分别为机器人末端与环境之间的期望接触力与实际接触力,e(n)为接触力误差,t为控制周期,w1,w2,w3均为中间变量;
[0021]
w1=4md(t)+2bd(t)t+kd(t)t2[0022]
w2=-8md(t)+2kd(t)t2[0023]
w3=4md(t)-2bd(t)t+kd(t)t2。
[0024]
优选地,所述阻抗增益控制器基于笛卡尔空间中机器人的动力学模型:
[0025][0026]
及动力学方程:
[0027]
[0028]
生成阻抗控制律的前馈项为:
[0029][0030]
第二反馈力为:
[0031][0032]
其中,m(x)为质量惯性矩阵,为科氏力矩阵,为重力向量,和x分别为相对于末端执行器笛卡尔加速度、速度和位置,j 为雅可比矩阵,τ、f
ext
分别为关节空间电机扭矩输入和外力;md、bd、kd为期望的质量、阻尼和刚度矩阵;e和为跟踪位置误差和跟踪速度误差。
[0033]
优选地,所述可变阻抗控制策略模块根据笛卡尔空间位置跟踪误差:
[0034][0035]
生成根据机械臂接近目标位置距离的可变阻抗控制策略为:
[0036][0037]
其中,e1、e2分别为0.4m和0.2m两个增益变化点。
[0038]
优选地,所述逆强化学习算法模块用于基于专家策略和奖励函数
[0039][0040]
其中,d
i,t
分别是第t时刻、第i个混合轨迹点与期望点的距离,d
i,t+1
分别是第t+1时刻、第i个混合轨迹点与期望点的距离,γ为比例系数;
[0041]
使用鉴别器区分运动轨迹和专家轨迹并计算损失函数
[0042][0043]
其中,r
θ
(o,a)为需要学习的奖励函数,π(a|o)为在当前策略π下观察值为o时采取行动a的概率;
[0044]
通过最小化损失函数更新鉴别器,并通过最大化奖励函数更新可变阻抗控制策略。
[0045]
优选地,所述逆强化学习算法模块中的比例系数取值范围为0-1。
[0046]
在本公开的一个方面,提供一种基于逆强化学习的可变阻抗控制方法,所述方法包括:
[0047]
初始化目标刚度和阻尼系数作为机械臂控制参数,获取所述机械臂的末端位置及第一反馈力,可变阻抗控制器基于所述目标刚度、阻尼系数,根据所述机械臂的末端位置、第一反馈力及期望轨迹生成用于修正轨迹的机械臂末端期望位置增量;
[0048]
阻抗增益控制器根据所述机械臂末端期望位置增量生成用于控制机械臂运动的第二反馈力,基于所述第二反馈力完成机械臂控制。
[0049]
优选地,所述方法还包括:
[0050]
逆强化学习算法模块基于逆强化学习算法中的专家策略和奖励函数,使用鉴别器区分运动轨迹和专家轨迹并计算损失函数,通过最小化损失函数更新鉴别器,并通过最大化奖励函数更新可变阻抗控制策略;
[0051]
可变阻抗控制策略模块基于所述逆强化学习算法模块发送的可变阻抗控制策略,根据机械臂末端位置及所述第二反馈力计算目标刚度和阻尼系数,并将所述目标刚度和阻尼系数发送至所述可变阻抗控制器。
[0052]
优选地,所述逆强化学习算法模块中的逆强化学习算法包括:
[0053]
收集所述专家轨迹中专家在机械臂末端执行器上施加力和扭矩使得机械臂末端完成所期望的轨迹,并设计奖励函数r(o,a);
[0054]
用随机权重初始化为第一阻抗增益策略;
[0055]
收集所述第一阻抗增益策略下的第一轨迹;
[0056]
基于所述第一轨迹使用逆强化学习算法探索得到第二阻抗增益策略;
[0057]
根据所述第二阻抗增益策略收集第二轨迹;
[0058]
基于鉴别器区分第二轨迹和专家轨迹并计算损失函数,通过最小化损失函数更新鉴别器并重复所述逆强化学习算法,基于奖励函数判定生成最优可变阻抗控制策略。
[0059]
在本公开的一个方面,提供一种电子设备,包括:
[0060]
处理器;以及
[0061]
存储器,所述存储器上存储有计算机可读指令,所述计算机可读指令被所述处理器执行时实现根据上述任意一项所述的方法。
[0062]
在本公开的一个方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现根据上述任意一项所述的方法。
[0063]
本公开的示例性实施例中的一种基于逆强化学习的可变阻抗控制系统、控制方法、电子设备以及存储介质。其中,该系统包括:可变阻抗控制器、阻抗增益控制器、可变阻抗控制策略模块和逆强化学习算法模块。本公开通过引入可变阻抗增益动作空间,在任务设置中提高奖励函数传递性能,实现可变阻抗技能的泛化表示,并可实现机械臂的分层阻抗控制,完成较为复杂的物理交互,在动态环境中保证机械臂运动的精度,从而提升机械臂控制的安全性。
[0064]
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
[0065]
通过参照附图来详细描述其示例实施例,本公开的上述和其它特征及优点将变得更加明显。
[0066]
图1示出了根据本公开一示例性实施例的一种基于逆强化学习的可变阻抗控制系统的系统框图;
[0067]
图2示出了根据本公开一示例性实施例的一种基于逆强化学习的可变阻抗控制系统的控制器设计方案示意图;
[0068]
图3示出了根据本公开一示例性实施例的一种基于逆强化学习的可变阻抗控制系统的逆强化学习算法流程图;
[0069]
图4示出了根据本公开一示例性实施例的一种基于逆强化学习的可变阻抗控制方法的流程图;
[0070]
图5示意性示出了根据本公开一示例性实施例的电子设备的框图;以及
[0071]
图6示意性示出了根据本公开一示例性实施例的计算机可读存储介质的示意图。
具体实施方式
[0072]
现在将参考附图更全面地描述示例实施例。然而,示例实施例能够以多种形式实施,且不应被理解为限于在此阐述的实施例;相反,提供这些实施例使得本公开将全面和完整,并将示例实施例的构思全面地传达给本领域的技术人员。在图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。
[0073]
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本公开的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而没有所述特定细节中的一个或更多,或者可以采用其它的方法、组元、材料、装置、步骤等。在其它情况下,不详细示出或描述公知结构、方法、装置、实现、材料或者操作以避免模糊本公开的各方面。
[0074]
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个软件硬化的模块中实现这些功能实体或功能实体的一部分,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
[0075]
在本示例实施例中,首先提供了一种基于逆强化学习的可变阻抗控制系统;参考图1中所示,该一种基于逆强化学习的可变阻抗控制系统包括可变阻抗控制器、阻抗增益控制器,其中:
[0076]
所述可变阻抗控制器用于基于获取到的目标刚度和阻尼系数,根据第一反馈力与期望轨迹,生成用于修正轨迹的机械臂末端期望位置增量;
[0077]
所述阻抗增益控制器用于根据所述机械臂末端期望位置增量生成用于控制机械臂运动的第二反馈力,基于所述第二反馈力完成机械臂控制。
[0078]
本公开的示例性实施例中的一种基于逆强化学习的可变阻抗控制系统、控制方法、电子设备以及存储介质。其中,该系统包括:可变阻抗控制器、阻抗增益控制器、可变阻抗控制策略模块和逆强化学习算法模块。本公开通过引入可变阻抗增益动作空间,在任务设置中提高奖励函数传递性能,实现可变阻抗技能的泛化表示,并可实现机械臂的分层阻抗控制,完成较为复杂的物理交互,在动态环境中保证机械臂运动的精度,从而提升机械臂控制的安全性。
[0079]
下面,将对本示例实施例中的一种基于逆强化学习的可变阻抗控制系统进行进一步的说明。
[0080]
在本示例的实施例中,基于逆强化学习的方法来从示教中恢复可变阻抗策略和奖励函数,通过使用强化学习算法为不同的任务设置生成新的可变阻抗策略以最大化奖励函数,探索奖励函数的不同动作空间,以实现可变阻抗技能的泛化表示。该方法主要包括以下三个部分:
[0081]
在本示例的实施例中,笛卡尔空间阻抗控制设计部分
[0082]
考虑笛卡尔空间中机器人的动力学模型:
[0083][0084]
其中m(x)是质量惯性矩阵,表示科氏力矩阵,是重力向量,和x分别是相对于末端执行器笛卡尔加速度、速度和位置,j 是雅可比矩阵,τ、f
ext
分别表示关节空间电机扭矩输入和外力。在阻抗控制定律下,机器人将表现为一个质量-弹簧-阻尼系统,它遵循动力学方程:
[0085][0086]
其中md、bd、kd是所需的质量、阻尼和刚度矩阵。通过求解(1)、(2) 并设置md=m(x),阻抗控制律可写为:
[0087]
τ=j
tf[0088][0089]
该阻抗控制律可以进一步分为两部分:前馈项f
ff
以消除非线性机器人动力学和反馈项f
fb
跟踪所需轨迹:
[0090][0091][0092]
其中e和是跟踪误差和跟踪速度。刚度矩阵kd和阻尼矩阵bd也称为阻抗增益矩阵,因为它们将跟踪误差和速度映射到反馈力f
fb
。
[0093]
在本示例的实施例中,通过对抗性逆强化学习学习可变阻抗技能部分,图1描述了控制器设计方案。在该方法中,机器人和环境的观测值是跟踪误差e和跟踪速度所采取的策略接受观察并输出阻抗增益k、b 或反馈力f
fb
,具体取决于动作空间设计。然后阻抗增益控制器通过公式(3) 计算控制输入并控制机器人,使用对抗性逆强化学习来学习专家策略和奖励函数,训练过程在算法中有详细说明。
[0094]
在本发明中,采用逆强化学习算法来学习专家策略和奖励函数,在这种对抗性训练环境中,将生成器轨迹和专家轨迹分开的鉴别器定义为:
[0095][0096]
其中r
θ
(o,a)是需要学习的奖励函数,而π(a|o)是在当前策略下观察为o时采取行动a的概率。更新鉴别器以最小化损失:
[0097][0098]
发生器是可变阻抗策略。在训练期间,更新策略以最大化轨迹奖励,由奖励函数评估,采用一种基于策略梯度的强化学习方法置信域策略优化算法(trpo)进行策略更新。由于环境动态未知,应用强化学习在不同的任务设置中重新优化新策略,以测试学习奖励函
数的性能。在强化学习训练过程中,策略更新与逆强化学习方法相同,但具有固定的学习奖励函数。算法训练的详细过程如下:
[0099][0100][0101]
在本示例的实施例中,方法应用部分;该方法在投入使用时,专家数据由真实机器人的人类专家收集,然后将学习到的策略转移到真实机器人进行性能评估。
[0102]
1.任务设置。真实世界的实验装置由主机和目标计算机、f/t传感器和机器人组成。在主机pc上编写了笛卡尔可变阻抗控制算法,它控制通过simulink real-time连接到目标pc的真实机器人系统。真实机器人的模型参数例如质量惯性矩阵m(x)、科氏力矩阵和重力向量g(x) 通过欧拉-拉格朗日方法得到。
[0103]
2.收集人类专家数据。在数据收集过程中,人类专家在末端执行器上施加力和扭矩使得机械臂末端完成所期望的轨迹。6维笛卡尔空间力和扭矩由f/t传感器测量,然后使用公式(3)计算控制输入,将跟踪状态和人类专家所采用的力一起记录为人类专家数据,在数据处理中估计人类专家的收益。
[0104]
3.使用滑动窗口方法进行增益估计。为了恢复专家增益策略,使用短滑动窗口来估计力的刚度和阻尼。每个时间窗口包含十个状态力对,专家增益通过用最小二乘求解公式(5)来估计测试。借助真实世界的人类专家数据,使用对抗性逆强化学习在模拟环境中学习策略和奖励函数。
[0105]
基于逆强化学习的可变阻抗控制系统包括可变阻抗控制器、阻抗增益控制器、可变阻抗控制策略模块和逆强化学习算法模块,其中:
[0106]
所述可变阻抗控制器用于基于所述可变阻抗控制策略模块生成并发送的目标刚度和阻尼系数,根据第一反馈力与期望轨迹,生成用于修正轨迹的机械臂末端期望位置增量。
[0107]
在本示例的实施例中,所述系统中所述可变阻抗控制器基于二阶阻抗模型
[0108][0109]
生成用于修正轨迹的机械臂末端期望位置增量为:
[0110][0111]
其中,md(t)、bd(t)、kd(t)分别为阻抗模型中时变的目标惯性矩阵、目标阻尼矩阵与目标刚度矩阵,x分别为机器人末端在笛卡尔空间实际的加速度、速度和位置,xd分别为机器人末端的期望加速度、速度和位置,fd和f分别为机器人末端与环境之间的期望接触力与实际接触力,e(n)为接触力误差。
[0112]
在本示例的实施例中,为使末端达到期望的动态特性,使用二阶阻抗模型:
[0113][0114]
其中,md(t)、bd(t)、kd(t)分别为阻抗模型中时变的目标惯性矩阵、目标阻尼矩阵与目标刚度矩阵,x分别为机器人末端在笛卡尔空间实际的加速度、速度和位置,xd分别为机器人末端的期望加速度、速度和位置,fd和f分别为机器人末端与环境之间的期望接触力与实际接触力。
[0115]
为得到修正的期望位置增量,对二阶阻抗模型进行拉格朗日变换,并使用双线性变换s=2t-1
(z-1)(z+1)-1
离散化得:
[0116][0117]
w1=4md(t)+2bd(t)t+kd(t)t2ꢀꢀꢀ
(3)
[0118]
w2=-8md(t)+2kd(t)t2ꢀꢀꢀ
(4)
[0119]
w3=4md(t)-2bd(t)t+kd(t)t2ꢀꢀꢀ
(5)
[0120]
其中,t为控制周期,则阻抗控制器的差分方程即末端的期望位置增量为:
[0121][0122]
为了简化计算,目标惯性矩阵设为常量md(t)=i,所以可变阻抗控制器需要时变的目标刚度kd(t)、阻尼系数bd(t)与接触力误差e(n) 调节期望位置。
[0123]
所述阻抗增益控制器用于根据所述机械臂末端期望位置增量生成用于控制机械臂运动的第二反馈力。
[0124]
在本示例的实施例中,所述系统中所述阻抗增益控制器基于笛卡尔空间中机器人的动力学模型:
[0125][0126]
及动力学方程:
[0127][0128]
生成阻抗控制律的前馈项为:
[0129][0130]
第二反馈力为:
[0131][0132]
其中,m(x)为质量惯性矩阵,为科氏力矩阵,为重力向量,和x分别为相对于末端执行器笛卡尔加速度、速度和位置,j 为雅可比矩阵,τ、f
ext
分别为关节空间电机扭矩输入和外力;md、bd、kd为期望的质量、阻尼和刚度矩阵;e和为跟踪位置误差和跟踪速度误差。
[0133]
在本示例的实施例中,质量惯性矩阵m(x)、科里奥利矩阵和重力矢量等模型参数使用mujoco仿真模型自动计算。
[0134]
构建笛卡尔空间中机器人的动力学模型:
[0135][0136]
其中,m(x)为质量惯性矩阵,为科氏力矩阵,g(x)为重力向量,和x分别为相对于末端执行器笛卡尔加速度、速度和位置,j 为雅可比矩阵,τ、f
ext
分别为关节空间电机扭矩输入和外力。
[0137]
在阻抗控制定律下,机器人将表现为一个质量-弹簧-阻尼系统,它遵循动力学方程:
[0138][0139]
其中md、bd、kd是期望的质量、阻尼和刚度矩阵。通过求解(1)、 (2)并设置md=m(x),阻抗控制律可写为:
[0140]
τ=j
tf[0141][0142]
该阻抗控制律可以进一步分为两部分:前馈项f
ff
以消除非线性机器人动力学和反馈项f
fb
跟踪所需轨迹:
[0143][0144][0145]
其中e和是跟踪位置误差和跟踪速度误差。刚度矩阵kd和阻尼矩阵bd也称为阻抗增益矩阵,因为它们将跟踪位置误差和跟踪速度误差映射到反馈力f
fb
。为了简化符号,我们在本文的其余部分使用k(刚度) 和b(阻尼)来表示kd和bd。图2描述了控制器设计方案。
[0146]
所述可变阻抗控制策略模块用于基于预设可变阻抗控制策略,根据机械臂末端位置及所述第二反馈力计算目标刚度和阻尼系数,并将所述目标刚度和阻尼系数发送至所述可变阻抗控制器。
[0147]
在本示例的实施例中,所述系统中所述可变阻抗控制策略模块根据笛卡尔空间位置跟踪误差:
[0148]
[0149]
生成根据机械臂接近目标位置距离的可变阻抗控制策略为:
[0150][0151]
其中,e1、e2为0.4m和0.2m两个增益变化点。
[0152]
在本示例的实施例中,(1)观测空间:将跟踪误差e和跟踪速度一起用作该任务的观测空间,对于杯子放盘任务,末端执行器位于杯子上。此外,由于一对跟踪误差e和跟踪速度不提供加速度信息,无法完全代表系统动力学,为此还使用了前序观测值,其中包含来自前五个时间步的e和的历史进行评估。
[0153]
(2)动作空间:对于阻抗增益作用空间,策略输出阻抗增益,控制输入由公式(11)获得。
[0154]
为了降低增益作用空间的维度,假设刚度矩阵k和阻尼矩阵b是对角的。此外,通过强制对角元素为正,确保刚度矩阵k和阻尼矩阵b是正定的。为了将该方法扩展到全矩阵情况,可以利用cholesky分解来保证 k,b>0。对于杯子放盘任务,跟踪速度很大,并且阻尼项会影响性能。因此,策略的输出现在是[k1,k2,k3,k4,k5,k6,d],其中包含一个额外的阻尼因子d,然后可以通过以下方式获得刚度和阻尼矩阵:
[0155][0156]
使用1维阻尼因子而不是另一个6维阻尼以减小维度。
[0157]
(3)可变阻抗控制策略:
[0158]
笛卡尔空间位置跟踪误差:
[0159][0160]
可变阻抗控制策略包含三个阶段:
[0161][0162]
e1、e2为0.4m和0.2m两个增益变化点。专家控制律在加速阶段选择最大增益进行加速,一般在切换阶段切换到较小的增益。在到达阶段,机械臂以最低速度接近板以保证安全。
[0163]
所述逆强化学习算法模块用于基于专家策略和奖励函数,使用鉴别器区分运动轨迹和专家轨迹并计算损失函数,通过最小化损失函数更新鉴别器,并通过最大化奖励函数更新所述可变阻抗控制策略。
[0164]
在本示例的实施例中,所述系统的所述逆强化学习算法模块用于基于专家策略和奖励函数
[0165][0166]
其中,d
i,t
分别是第t时刻、第i个混合轨迹点与期望点的距离,d
i,t+1
分
别是第t+1时刻、第i个混合轨迹点与期望点的距离,γ为比例系数;
[0167]
使用鉴别器区分运动轨迹和专家轨迹并计算损失函数
[0168][0169]
其中,r
θ
(o,a)是需要学习的奖励函数,而π(a|o)是在当前策略π下观察值为o时采取行动a的概率;
[0170]
通过最小化损失函数更新鉴别器,并通过最大化奖励函数更新所述可变阻抗控制策略。
[0171]
在本示例的实施例中,所述系统的所述逆强化学习算法模块中的比例系数取值范围为0-1;
[0172]
进一步的,所述系统的所述逆强化学习算法模块中的比例系数取值为 0.95。
[0173]
在本示例的实施例中,采用逆强化学习算法来学习专家策略和奖励函数。该方法的输入为专家轨迹与机器人生成轨迹的混合轨迹,输出为阻抗控制器的目标刚度kd(t)与阻尼系数bd(t)。
[0174]
首先根据观测空间与动作空间的状态设计奖励函数,因为在设计奖励函数时,专家轨迹与机器人生成轨迹尚未分开,该奖励函数设计如下:
[0175][0176]
其中,d
i,t
分别是第t时刻、第i个混合轨迹点与期望点的距离,d
i,t+1
分别是第t+1时刻、第i个混合轨迹点与期望点的距离,γ为比例系数,大小在0到1之间,一般为0.95。
[0177]
随后使用鉴别器将机器人生成的轨迹与专家轨迹区分开,区分的具体流程如下:将整体的轨迹划分为50个轨迹点,该鉴别器将奖励函数计算这些轨迹点得到的奖励值和状态动作转移概率作为输入,得到如下公式:
[0178][0179]
其中r
θ
(o,a)是需要学习的奖励函数,而π(a|o)是在当前策略π下观察值为o时采取行动a的概率,该鉴别器随后使用多对一的lstm模型,以带有时间步长的要素为输入,以一个标量为输出,公式如下所示:
[0180][0181]
其中f表示轨迹中所有轨迹点的融合特征(即,f=[f0,f1,...,f
49
]),其中fi是第i个轨迹点的融合特征向量,是lstm模型的权重矩阵, h是lstm模型的输出标量。
[0182]
使用带有sigmoid激活函数的一单元密集层对标量输出进行二进制分类(专家或生成):
[0183]
od=d
be
(h;w
bc
)
ꢀꢀꢀ
(20)
[0184]
其中d
bc
是具有用于进行二元分类的sigmoid函数的一单元密集层, w
bc
是其权重
矩阵,od是判别器的最终输出,为专家轨迹与机器人生成轨迹。
[0185]
通过最小化损失来更新鉴别器:
[0186][0187]
在训练期间,更新策略以最大化轨迹奖励,由奖励函数评估,策略更新与逆强化学习方法相同,但具有固定的学习奖励函数,采用一种基于策略梯度的强化学习方法置信域策略优化算法(trpo)进行策略更新,得到使得r(o,a)最大的阻抗控制器目标刚度kd(t)与阻尼系数bd(t)。
[0188]
trpo算法的使用步骤如下:首先定义几个函数,分别是动作值函数 q
π
(a
t
,s
t
),状态值函数v
π
(s
t
)和优势函数a
π
(s,a):
[0189][0190][0191]aπ
(s,a)=q
π
(s,a)-v
π
(s)
ꢀꢀꢀ
(24)
[0192]
其中s
t
,a
t
,s
t+1
为机器人在t时刻的状态(位置与速度)和动作、t+1时刻的状态。动作值函数评价一个状态动作对的好坏,状态值函数评价一个状态的好坏,而优势函数评价的则是一个相对的概念,是同一个状态下,这个动作相对于其他动作的好坏。要学习的策略π往往代表一个神经网络,输入是状态,输出是动作。我们假设神经网络的参数为θ,则
[0193][0194]
现在目标转化为找到一个θ,使其对应的策略π
θ
对应的η(π
θ
)最大,(25) 式中右边的期望是根据π
θ
(a
t
|s
t
)采样得到,是在真实世界中发生的过程,并不能轻易计算得到,现需要一个替代函数
[0195][0196]
为了改写该式子,首先定义
[0197]
p
π
(s)=p(s0=s)+γp(s1=s)+γ2p(s2=s)+
…ꢀꢀꢀ
(27)
[0198]
ρ
π
(s)是和π相关的,它表示每个状态可能被访问到的频率,这个频率是带γ折扣的。注意到下面的等式成立:
[0199][0200]aπ
(s
t
,a
t
)只和单个的s,a相关,而期望分别统计每一个s
t
,a
t
出现的概率就得到了于是有
[0201][0202]
把上式的π视为旧策略,把视为新策略,只需要找到一个新策略使得那么这个新策略一定会让累计奖赏η得到提升。而当所有的都不能满足这个条件,恰恰意味着原策略就是最优的。因此,通过上述过程,获得使得奖励获得最大值的阻抗控制器目标刚度kd(t)与阻尼系数bd(t),从而实现实时调整机器人轨迹的目标。
[0203]
需要说明的是,尽管在附图中以特定顺序描述了本公开中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。
[0204]
此外,在本示例实施例中,还提供了一种基于逆强化学习的可变阻抗控制方法。参照图4所示,该一种基于逆强化学习的可变阻抗控制方法包括:
[0205]
s110:初始化目标刚度和阻尼系数作为机械臂控制参数,获取所述机械臂的末端位置及第一反馈力,可变阻抗控制器基于所述目标刚度、阻尼系数,根据所述机械臂的末端位置、第一反馈力及期望轨迹生成用于修正轨迹的机械臂末端期望位置增量;
[0206]
s120:阻抗增益控制器根据所述机械臂末端期望位置增量生成用于控制机械臂运动的第二反馈力,基于所述第二反馈力完成机械臂控制。
[0207]
s130:逆强化学习算法模块基于逆强化学习算法中的专家策略和奖励函数,使用鉴别器区分运动轨迹和专家轨迹并计算损失函数,通过最小化损失函数更新鉴别器,并通过最大化奖励函数更新可变阻抗控制策略;
[0208]
s140:可变阻抗控制策略模块基于所述逆强化学习算法模块发送的可变阻抗控制策略,根据机械臂末端位置及所述第二反馈力计算目标刚度和阻尼系数,并将所述目标刚度和阻尼系数发送至所述可变阻抗控制器。
[0209]
在本示例的实施例中,所述控制方法中的逆强化学习算法还包括:
[0210]
收集所述专家轨迹中专家在机械臂末端执行器上施加力和扭矩使得机械臂末端完成所期望的轨迹,并设计奖励函数r(o,a);
[0211]
用随机权重初始化为第一阻抗增益策略;
[0212]
收集所述第一阻抗增益策略下的第一轨迹;
[0213]
基于所述第一轨迹使用逆强化学习算法探索得到第二阻抗增益策略;
[0214]
根据所述第二阻抗增益策略收集第二轨迹;
[0215]
基于鉴别器区分第二轨迹和专家轨迹并计算损失函数,通过最小化损失函数更新鉴别器并重复所述逆强化学习算法,基于奖励函数判定生成最优可变阻抗控制策略。
[0216]
在本示例的实施例中,如图3所示,本发明的逆强化学习算法主要包括五个步骤:
[0217]
1)收集人类专家在末端执行器上施加力和扭矩使得机械臂末端完成所期望的轨
迹或者设计的可变阻抗控制器执行该任务收集的轨迹设计奖励函数r(o,a);
[0218]
2)用随机权重初始化阻抗增益策略π;
[0219]
3)收集策略π下的轨迹τi;
[0220]
4)使用逆强化学习算法探索得到最优阻抗增益策略π(θ);
[0221]
5)设置策略为π*
←
π(θ),应用于系统收集新的轨迹;
[0222]
6)重复步骤(3-5)直到学习得到满意的控制策略。
[0223]
此外,在本公开的示例性实施例中,还提供了一种能够实现上述方法的电子设备。
[0224]
所属技术领域的技术人员能够理解,本发明的各个方面可以实现为系统、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施例、完全的软件实施例(包括固件、微代码等),或硬件和软件方面结合的实施例,这里可以统称为“电路”、“模块”或“系统”。
[0225]
下面参照图5来描述根据本发明的这种实施例的电子设备500。图5显示的电子设备500仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
[0226]
如图5所示,电子设备500以通用计算设备的形式表现。电子设备 500的组件可以包括但不限于:上述至少一个处理单元510、上述至少一个存储单元520、连接不同系统组件(包括存储单元520和处理单元 510)的总线530、显示单元540。
[0227]
其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元510执行,使得所述处理单元510执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施例的步骤。例如,所述处理单元510可以执行如图1中所示的步骤s110至步骤s140。
[0228]
存储单元520可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(ram)5201和/或高速缓存存储单元5202,还可以进一步包括只读存储单元(rom)5203。
[0229]
存储单元520还可以包括具有一组(至少一个)程序模块5205的程序/实用工具5204,这样的程序模块5205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
[0230]
总线530可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
[0231]
电子设备500也可以与一个或多个外部设备570(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备500交互的设备通信,和/或与使得该电子设备500能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口550进行。并且,电子设备500 还可以通过网络适配器560与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。如图所示,网络适配器560通过总线530与电子设备500的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备500使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。
[0232]
通过以上的实施例的描述,本领域的技术人员易于理解,这里描述的示例实施例
可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是 cd-rom,u盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等) 执行根据本公开实施例的方法。
[0233]
在本公开的示例性实施例中,还提供了一种计算机可读存储介质,其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施例中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施例的步骤。
[0234]
参考图6所示,描述了根据本发明的实施例的用于实现上述方法的程序产品600,其可以采用便携式紧凑盘只读存储器(cd-rom)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
[0235]
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。
[0236]
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
[0237]
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、rf等等,或者上述的任意合适的组合。
[0238]
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如java、c++等,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(lan)或广域网(wan),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
[0239]
此外,上述附图仅是根据本发明示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
[0240]
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其
他实施例。本技术旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由权利要求指出。
[0241]
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限。