一种基于高斯过程在线学习的机器人控制方法

文档序号:29324438发布日期:2022-03-19 23:11阅读:250来源:国知局
一种基于高斯过程在线学习的机器人控制方法

1.本发明涉及机器人控制技术领域,尤其是一种基于高斯过程在线学习的机器人控制方法。


背景技术:

2.高自由度的机械臂被广泛应用于工业、医疗、物流等领域,往往要求具备控制精确、灵活感知、人机交互等能力,因此需要对机械臂精确地建模和控制。高自由度机械臂是一个非线性、高耦合的系统,包含摩擦力、电机动力学等未建模因素,使得在实际中很难精确地获得动力学模型。对于控制任务,动力学模型信息非常重要。比如在轨迹跟踪任务中,单纯的pid控制在高速和重载的情况下都不能保证精确地完成轨迹跟踪任务。
3.高斯过程在线学习(gaussian process online learning,gpol)是一种数据驱动的、非参数化的学习方法,使用持续到达的数据(也称流数据)实时更新模型。且对比神经网络,这种学习方法具有可解释性和提供不确定性估计,这在机械臂的轨迹跟踪任务中是非常重要的。高斯过程在线学习主要思想,是从流数据中,维护一个基向量集(basis vector set,bvs)用于持续预测。
4.对于机器人控制的在线学习过程,现有技术存在以下缺点:
5.1、目前的方法(如神经网络和高斯过程回归)大多是离线学习一个模型,再应用于轨迹跟踪的。这些方法需要大量的训练数据和训练时间,并且训练出来的模型,还可能受到其他实时因素的影响(如温度、未知负载),这些都将大大降低这个模型的实用性。
6.2、目前的高斯过程在线学习应用于机械臂,还面临控制频率过高导致不能及时预测的关键挑战。即机械臂要求发送力矩命令的频率是1khz,则模型每次只有1ms的时间来预测。而目前的高斯过程在线学习方法,更关注对整个模型建模(全局最优)。这导致了在高频控制命令的情况下,建模能力不足,不能很好地应用于轨迹跟踪。
7.3、目前的一些在线学习方法,会学习到一些可能不值得学习甚至错误的数据(如偶尔经过,之后很久都不会经过的位置;在突发、非静态的干扰下到达的流数据)。


技术实现要素:

8.有鉴于此,本发明实施例提供一种跟踪精度高的,基于高斯过程在线学习的机器人控制方法。
9.本发明的一方面提供了一种基于高斯过程在线学习的机器人控制方法,包括:
10.通过低增益的比例-微分控制,获取初始数据,根据所述初始数据构建初始高斯过程在线学习模型,所述初始高斯过程在线学习模型用于对机器人进行初步控制;
11.在每个控制周期内轮转更新高斯过程在线学习模型;
12.将期望的位置、速度和加速作为输入,根据最新的高斯过程在线学习模型预测得到多个力矩,将所述力矩作为机器人控制的前馈输入,以对所述机器人进行控制。
13.可选地,所述通过低增益的比例-微分控制,获取初始数据,根据所述初始数据构
建初始高斯过程在线学习模型,包括:
14.配置初始化超参数;其中,所述初始化超参数包括比例和微分增益、基向量集大小、核函数、模型噪声、方差阈值以及遗忘速度参数;
15.根据所述初始化超参数进行低增益的比例-微分控制;
16.根据所述比例-微分控制获取初始数据;
17.根据所述初始数据构建初始高斯过程在线学习模型,将所述高斯过程在线学习模型输出的预测力矩为前馈项。
18.可选地,所述在每个控制周期内轮转更新高斯过程在线学习模型,包括:
19.将再生希尔伯特空间范数作为衡量数据点的标准,以衡量新数据点距离原空间的距离;
20.当新的数据点计算得到的距离大于预设阈值,将该数据点加入基向量集并且更新对应的辅助变量;
21.当所述基向量集大于预设大小,将所述基向量集中的无用点删除。
22.可选地,所述当新的数据点计算得到的距离大于预设阈值,将该数据点加入基向量集并且更新对应的辅助变量这一步骤中,
23.当数据点无法进入基向量集时,根据所述数据点对所述基向量集进行调整,使得所述数据点能够进入调整后的基向量集,并且不增加所述基向量集的大小。
24.可选地,所述当所述基向量集大于预设大小,将所述基向量集中的无用点删除,包括:
25.配置计数器和遗忘条件,当所述基向量集中新加入数据点时,所述计数器加1;
26.当所述计数器的数值达到预设数值时,将最旧的数据点删除,并将所述计数器置零。
27.可选地,所述当所述基向量集大于预设大小,将所述基向量集中的无用点删除,还包括:
28.当所述计数器的数值没有达到预设数值时,将当前bvs中距离最近的点作为无用点删除。
29.可选地,所述将期望的位置、速度和加速作为输入,根据最新的高斯过程在线学习模型预测得到多个力矩,将所述力矩作为机器人控制的前馈输入;
30.对于新的数据点,计算所述数据点的预测均值和预测方差;
31.将所述预测均值作为控制力矩的前馈项;
32.将所述前馈项结合对应的反馈项得到控制命令;
33.将所述控制命令输入所述机器人,对所述机器人进行控制。
34.本发明实施例的另一方面还提供了一种基于高斯过程在线学习的机器人控制装置,包括:
35.第一模块,用于通过低增益的比例-微分控制,获取初始数据,根据所述初始数据构建初始高斯过程在线学习模型,所述初始高斯过程在线学习模型用于对机器人进行初步控制;
36.第二模块,用于在每个控制周期内轮转更新高斯过程在线学习模型;
37.第三模块,用于将期望的位置、速度和加速作为输入,根据最新的高斯过程在线学
习模型预测得到多个力矩,将所述力矩作为机器人控制的前馈输入,以对所述机器人进行控制。
38.本发明实施例的另一方面还提供了一种电子设备,包括处理器以及存储器;
39.所述存储器用于存储程序;
40.所述处理器执行所述程序实现如前面所述的方法。
41.本发明实施例的另一方面还提供了一种计算机可读存储介质,所述存储介质存储有程序,所述程序被处理器执行实现如前面所述的方法。
42.本发明实施例还公开了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器可以从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行前面的方法。
43.本发明的实施例通过低增益的比例-微分控制,获取初始数据,根据所述初始数据构建初始高斯过程在线学习模型,所述初始高斯过程在线学习模型用于对机器人进行初步控制;在每个控制周期内轮转更新高斯过程在线学习模型;将期望的位置、速度和加速作为输入,根据最新的高斯过程在线学习模型预测得到多个力矩,将所述力矩作为机器人控制的前馈输入,以对所述机器人进行控制。本发明能够提高跟踪精度并且能够降低模型更新频率。
附图说明
44.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
45.图1为本发明实施例提供的机器人控制流程图;
46.图2为本发明实施例提供的数据点删除策略的示意图;
47.图3为本发明实施例提供的整体步骤流程图。
具体实施方式
48.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
49.针对现有技术存在的问题,本发明的一方面提供了一种基于高斯过程在线学习的机器人控制方法,如图3所示,包括:
50.通过低增益的比例-微分控制,获取初始数据,根据所述初始数据构建初始高斯过程在线学习模型,所述初始高斯过程在线学习模型用于对机器人进行初步控制;
51.在每个控制周期内轮转更新高斯过程在线学习模型;
52.将期望的位置、速度和加速作为输入,根据最新的高斯过程在线学习模型预测得到多个力矩,将所述力矩作为机器人控制的前馈输入,以对所述机器人进行控制。
53.可选地,所述通过低增益的比例-微分控制,获取初始数据,根据所述初始数据构
建初始高斯过程在线学习模型,包括:
54.配置初始化超参数;其中,所述初始化超参数包括比例和微分增益、基向量集大小、核函数、模型噪声、方差阈值以及遗忘速度参数;
55.根据所述初始化超参数进行低增益的比例-微分控制;
56.根据所述比例-微分控制获取初始数据;
57.根据所述初始数据构建初始高斯过程在线学习模型,将所述高斯过程在线学习模型输出的预测力矩为前馈项。
58.可选地,所述在每个控制周期内轮转更新高斯过程在线学习模型,包括:
59.将再生希尔伯特空间范数作为衡量数据点的标准,以衡量新数据点距离原空间的距离;
60.当新的数据点计算得到的距离大于预设阈值,将该数据点加入基向量集并且更新对应的辅助变量;
61.当所述基向量集大于预设大小,将所述基向量集中的无用点删除。
62.可选地,所述当新的数据点计算得到的距离大于预设阈值,将该数据点加入基向量集并且更新对应的辅助变量这一步骤中,
63.当数据点无法进入基向量集时,根据所述数据点对所述基向量集进行调整,使得所述数据点能够进入调整后的基向量集,并且不增加所述基向量集的大小。
64.可选地,所述当所述基向量集大于预设大小,将所述基向量集中的无用点删除,包括:
65.配置计数器和遗忘条件,当所述基向量集中新加入数据点时,所述计数器加1;
66.当所述计数器的数值达到预设数值时,将最旧的数据点删除,并将所述计数器置零。
67.可选地,所述当所述基向量集大于预设大小,将所述基向量集中的无用点删除,还包括:
68.当所述计数器的数值没有达到预设数值时,将当前基向量集中距离最近的点作为无用点删除。
69.可选地,所述将期望的位置、速度和加速作为输入,根据最新的高斯过程在线学习模型预测得到多个力矩,将所述力矩作为机器人控制的前馈输入;
70.对于新的数据点,计算所述数据点的预测均值和预测方差;
71.将所述预测均值作为控制力矩的前馈项;
72.将所述前馈项结合对应的反馈项得到控制命令;
73.将所述控制命令输入所述机器人,对所述机器人进行控制。
74.本发明实施例的另一方面还提供了一种基于高斯过程在线学习的机器人控制装置,包括:
75.第一模块,用于通过低增益的比例-微分控制,获取初始数据,根据所述初始数据构建初始高斯过程在线学习模型,所述初始高斯过程在线学习模型用于对机器人进行初步控制;
76.第二模块,用于在每个控制周期内轮转更新高斯过程在线学习模型;
77.第三模块,用于将期望的位置、速度和加速作为输入,根据最新的高斯过程在线学
习模型预测得到多个力矩,将所述力矩作为机器人控制的前馈输入,以对所述机器人进行控制。
78.本发明实施例的另一方面还提供了一种电子设备,包括处理器以及存储器;
79.所述存储器用于存储程序;
80.所述处理器执行所述程序实现如前面所述的方法。
81.本发明实施例的另一方面还提供了一种计算机可读存储介质,所述存储介质存储有程序,所述程序被处理器执行实现如前面所述的方法。
82.本发明实施例还公开了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器可以从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行前面的方法。
83.下面结合说明书附图,对本发明的具体实现过程进行详细描述:
84.本发明在高斯过程在线学习(gaussian process online learning,gpol)的过程中,采用轮转更新的方式降低实际更新模型的频率,并增加一定的遗忘条件使得学习到的模型在复杂的轨迹跟踪任务中表现更好。对于n个关节的机械臂,使用n个独立的gpol用于建模,模型的输入都是由位置、速度和加速度组成的向量(向量共3n个元素),输出是控制力矩,即其中是实际关节位置,下面为了方便,部分变量不显式写出函数参数t。具体步骤如下:
85.步骤一:仅使用低增益的比例-微分控制,预先收集少量数据用于初始化高斯过程在线学习模型,之后切换到基于模型的控制方式,其中控制律为是期望关节位置,是实际关节位置,和分别是比例增益和微分增益;
86.步骤二:在一个控制周期内,轮转更新高斯过程在线学习模型(即每次只更新一个高斯过程在线学习模型);
87.步骤三:根据目前学习到的模型,以期望的位置、速度和加速作为输入,预测n个力矩作为控制的前馈输入(控制流程图如图1所示)。
88.其中,本实施例的总的控制律u=u
ff
+u
fb
,第一项为前馈项是高斯过程在线学习模型的预测输出;第二项为反馈项
89.在步骤一中,仅仅使用低增益的比例-微分控制收集少量数据(例如分别代表位置信息、速度信息、加速度信息,以及对应上一个时刻的控制力矩,这些信息组合后可以作为一个数据对),用于归一化输入和输出,之后增加模型预测的力矩作为前馈项。注意,其中需要设置的超参数有:bvs(基向量集)的大小n,这个参数的设置直接影响预测速度;核函数k(x,x

)=exp(-0.5(x-x

)
t
λ(c-c

))中λ的取值,和输入的维度一致,如果输入数据的噪声比较大,对应的项可以取得小点;σn是模型噪声,根据输出项的噪声设置,注意这个不能过小(如小于0.0001)或为0,否则会导致矩阵逆求解失败;方差阈值∈
tol
用于衡量数据点是否应该加入bvs,可以设为0.01再调节;h用于设置遗忘速度,可以设置为n的10%或100%,当期望轨迹开始不断变化时,合理的h可以迅速学习新的轨迹相关的动力学,也能保证预测力矩相对光滑。
90.在步骤二中,以再生希尔伯特空间范数(reproducing kernel hilbert space,rkhs)作为衡量新数据点的标准,即衡量新数据点x
*
距离原空间的距离本实施例定义k
xx
表示由矩阵x组成的格拉姆矩阵,即:
[0091][0092]
其中x表示n个数据点的输入向量组成的矩阵。k
*
和k
**
也有类似定义。
[0093]
(1)根据实际情况定义一个方差阈值∈
tol
(如0.01),如果新数据点x
*
算出的γ比阈值大,则添加这个点进入bvs,并更新对应的辅助变量:
[0094]
α
m+1
=t
m+1
(αm)+q
m+1sm+1
[0095][0096]sm+1
=t
m+1
(c
mkx*
)+e
m+1
[0097][0098][0099][0100][0101]
其中,m是目前bvs的大小,可理解为信息权重向量,可理解为辅助核矩阵,后面的变量s,q,r,和用于方便表示,t
m+1
通过在最后添加0的方式将一个向量扩展成m+1维度,u
m+1
则是通过在最后一行和最后一列添加0的方式,将矩阵扩展成m+1
×
m+1维的矩阵,表示只有第m+1个元素为1,其他元素为0的向量,σn是预先设定的模型噪声。如果新数据点不能进入bvs,则只根据这个点微调bvs而不增加bvs的大小,这样可以保持bvs的大小不至于使得预测过慢,微调bvs如下:
[0102]
α
m+1
=αm+q
m+1sm+1
[0103][0104][0105]
其中,是新数据点用原空间数据点表示的权重。
[0106]
(2)如果bvs大于某个预先设定的大小n(即为n+1),则从bvs中选择最无用的点删除。这里使用带遗忘的策略选择需要删除的点(如图2所示)。本实施例维护一个计数器c和选择一个预先设置的遗忘条件h,每次增加新的点进入bvs时c加1,当c达到h时直接选择最旧的点删除,再置0开始计数。否则,选择在目前bvs中,距离其他点最近的点删除,可以用ρi=αi/q
ii
来计算距离,这里αi是α的第i个元素,q
ii
是q的第i行i列的元素。再根据选择的第i个元素,删除α,c和q对应位置的元素(此时维度已经缩小为n和n
×
n),并修正如下:
[0107]
α=α-ρiq
[0108]
[0109][0110]
其中,qi和ci分别表示取q和c的第i列。再删除bvs中对应的数据点即可。
[0111]
在步骤三中,对新的点x
*
进行预测时,预测均值为预测方差为直接使用预测均值作为控制力矩的前馈项u
ff
,再加上一个合适的反馈项u
fb
作为控制命令发送到机器人即可。之后根据新的和上一步的控制命令u作为新的训练点更新高斯过程在线学习模型。
[0112]
需要说明的是,本实施例最开始0.6秒先是比例-微分控制,之后高斯过程在线学习模型不断根据输入力矩和测量得到的位置速度加速度更新,即上面步骤二;高斯过程在线学习模型再根据期望的位置、速度和加速度来预测力矩用于控制,整体实现一边学习、一边应用的过程。
[0113]
综上所述,本发明使用高斯过程在线学习学习机械臂逆动力学,提出了在高控制频率下,如何在轨迹跟踪任务中应用高斯过程在线学习的方法:即降低模型更新频率,轮询更新。本发明在高斯过程在线学习中,增加了遗忘机制以提高短期跟踪精度,在轨迹跟踪任务切换时也能快速学习到未知动力学。
[0114]
相较于现有技术,本发明具有以下优点:
[0115]
1、现有技术要么是离线的,要么受限于机械臂高控制频率的要求,难以在实际应用于实际。
[0116]
2、现有的学习方法,要么关心整体性能导致局部性能不足(不能很好地预测近期动态),要么不能排除学习到的错误数据。
[0117]
本发明解决了高斯过程学习应用于高控制频率机械臂难的问题,而高斯过程在线学习有概率论的理论基础,也能提供不确定性估计。其次,本发明提出了增加遗忘速度的策略,相比现有技术,在复杂轨迹跟踪时有着更好的局部性能,跟踪精度更高。
[0118]
在一些可选择的实施例中,在方框图中提到的功能/操作可以不按照操作示图提到的顺序发生。例如,取决于所涉及的功能/操作,连续示出的两个方框实际上可以被大体上同时地执行或所述方框有时能以相反顺序被执行。此外,在本发明的流程图中所呈现和描述的实施例以示例的方式被提供,目的在于提供对技术更全面的理解。所公开的方法不限于本文所呈现的操作和逻辑流程。可选择的实施例是可预期的,其中各种操作的顺序被改变以及其中被描述为较大操作的一部分的子操作被独立地执行。
[0119]
此外,虽然在功能性模块的背景下描述了本发明,但应当理解的是,除非另有相反说明,所述的功能和/或特征中的一个或多个可以被集成在单个物理装置和/或软件模块中,或者一个或多个功能和/或特征可以在单独的物理装置或软件模块中被实现。还可以理解的是,有关每个模块的实际实现的详细讨论对于理解本发明是不必要的。更确切地说,考虑到在本文中公开的装置中各种功能模块的属性、功能和内部关系的情况下,在工程师的常规技术内将会了解该模块的实际实现。因此,本领域技术人员运用普通技术就能够在无需过度试验的情况下实现在权利要求书中所阐明的本发明。还可以理解的是,所公开的特定概念仅仅是说明性的,并不意在限制本发明的范围,本发明的范围由所附权利要求书及其等同方案的全部范围来决定。
[0120]
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以
存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0121]
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,“计算机可读介质”可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。
[0122]
计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(ram),只读存储器(rom),可擦除可编辑只读存储器(eprom或闪速存储器),光纤装置,以及便携式光盘只读存储器(cdrom)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
[0123]
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。
[0124]
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
[0125]
尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。
[0126]
以上是对本发明的较佳实施进行了具体说明,但本发明并不限于所述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做出种种的等同变形或替换,这些等同的变形或替换均包含在本技术权利要求所限定的范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1