一种机器人控制方法、装置及存储介质

文档序号:160974 发布日期:2021-10-29 浏览:15次 >En<

阅读说明:本技术 一种机器人控制方法、装置及存储介质 (Robot control method, device and storage medium ) 是由 邢登鹏 李佳乐 杨依明 徐波 于 2021-09-23 设计创作,主要内容包括:本公开涉及一种机器人控制方法、装置及存储介质,上述方法包括:获取机器人的运动轨迹集;确定所述机器人对应的机器人逆动力学模型,并确定所述机器人逆动力学模型对应的误差函数;根据所述运动轨迹集和所述误差函数对所述机器人逆动力学模型进行自监督训练;根据经过所述自监督训练之后的机器人逆动力学模型,对所述机器人进行控制。采用上述技术手段,解决现有技术中,缺少关于通过机器人逆动力学学习控制机器人的方案的问题。(The present disclosure relates to a robot control method, apparatus, and storage medium, the method comprising: acquiring a motion trail set of the robot; determining a robot inverse dynamics model corresponding to the robot, and determining an error function corresponding to the robot inverse dynamics model; performing self-supervision training on the robot inverse dynamics model according to the motion track set and the error function; and controlling the robot according to the inverse dynamics model of the robot after the self-supervision training. By adopting the technical means, the problem that a scheme for controlling the robot through inverse dynamics learning of the robot is lacked in the prior art is solved.)

一种机器人控制方法、装置及存储介质

技术领域

本公开涉及机器学习领域,尤其涉及一种机器人控制方法、装置及存储介质。

背景技术

机器人控制学习是当前研究热点之一。机器人控制学习包括:机器人动力学学习和机器人逆动力学学习。但是机器人控制学习方案往往采用的是机器人动力学学习,缺少关于通过机器人逆动力学学习控制机器人的方案。

在实现本公开构思的过程中,发明人发现相关技术中至少存在如下技术问题:缺少关于通过机器人逆动力学学习控制机器人的方案的问题。

发明内容

为了解决上述技术问题或者至少部分地解决上述技术问题,本公开的实施例提供了一种机器人控制方法、装置及存储介质,以至少解决现有技术中,缺少关于通过机器人逆动力学学习控制机器人的方案。

本公开的目的是通过以下技术方案实现的:

第一方面,本公开的实施例提供了一种机器人控制方法,包括:获取机器人的运动轨迹集;确定所述机器人对应的机器人逆动力学模型,并确定所述机器人逆动力学模型对应的误差函数;根据所述运动轨迹集和所述误差函数对所述机器人逆动力学模型进行自监督训练;根据经过所述自监督训练之后的机器人逆动力学模型,对所述机器人进行控制。

在一个示例性实施例中,所述根据所述运动轨迹集和所述误差函数对所述机器人逆动力学模型进行自监督训练,包括:确定训练所述机器人逆动力学模型时的批处理条数,其中,所述批处理条数用于指示每次训练所述机器人逆动力学模型时,从所述运动轨迹集中选择的所述机器人的轨迹的条数;循环执行如下步骤对所述机器人逆动力学模型进行自监督训练:步骤一,从所述运动轨迹集中确定出所述批处理条数条所述机器人的轨迹;步骤二,根据确定出的每条轨迹生成第一矩阵,得到多个所述第一矩阵;步骤三,分别将多个所述第一矩阵依次输入所述机器人逆动力学模型,得到多个第二矩阵;步骤四,通过所述误差函数计算每个所述第一矩阵与每个所述第一矩阵所对应的所述第二矩阵的误差值;步骤五,根据所述误差值对所述机器人逆动力学模型进行训练;步骤六,在当前批次训练中,在最后一个输入所述机器人逆动力学模型的所述第一矩阵和最后一个输入所述机器人逆动力学模型的所述第一矩阵所对应的所述第二矩阵的误差值小于第一预设阈值时,结束循环。

在一个示例性实施例中,所述根据确定出的每条轨迹生成第一矩阵,得到多个所述第一矩阵,包括:确定所述轨迹对应的所述机器人在多个时间维度下的状态和关节力矩,其中,所述状态包括:所述机器人的各个关节的位置和速度;以所述状态和所述关节力矩为所述第一矩阵的列,以所述多个时间维度为所述第一矩阵的行,构建所述第一矩阵;其中,在所述轨迹对应的所述机器人逆动力学模型的模型维度小于第二预设阈值时,对所述第一矩阵进行零填充处理。

在一个示例性实施例中,所述误差函数

NS为所述运动轨迹集中所述机器人的轨迹的总条数,j为轨迹的序号,t为时刻,nj为所述运动轨迹集中第j条轨迹中所述机器人的状态的总数,其中,每条轨迹包括多个所述机器人的关节力矩,τj,t+1为所述运动轨迹集中第j条轨迹中t+1时刻下的所述机器人的状态,为预测的第j条轨迹中t+1时刻下的所述机器人的关节力矩,Pj,d为第j条轨迹对应的第一矩阵的维度,T为矩阵转置符号。

在一个示例性实施例中,所述根据经过所述自监督训练之后的机器人逆动力学模型,对所述机器人进行控制,包括:获取所述机器人的历史状态,其中,所述历史状态包括以下至少之一:所述机器人在当前时刻的状态和所述机器人在所述当前时刻之前的一个或者多个状态,所述状态包括:所述机器人的各个关节的位置和速度;根据所述历史状态和经过所述自监督训练之后的机器人逆动力学模型,对所述机器人进行控制。

第二方面,本公开的实施例提供了另一种机器人控制方法,包括:获取机器人的运动轨迹集;确定所述机器人对应的机器人动力学模型和所述机器人对应的机器人逆动力学模型,并确定所述机器人动力学模型对应的第一误差函数和确定所述机器人逆动力学模型对应的第二误差函数;根据所述运动轨迹集和所述第一误差函数对所述机器人动力学模型进行自监督训练,根据所述运动轨迹集和所述第二误差函数对所述机器人逆动力学模型进行自监督训练;将经过所述自监督训练之后的所述机器人动力学模型和机器人逆动力学模型组合,得到所述机器人对应的机器人模型;根据所述机器人模型对所述机器人进行控制。

在一个示例性实施例中,所述第一误差函数LS

NS为所述运动轨迹集中所述机器人的轨迹的总条数,j为轨迹的序号,t为时刻,nj为所述运动轨迹集中第j条轨迹中所述机器人的状态的总数,其中,每条轨迹包括多个所述机器人的状态,Sj,t+1为所述运动轨迹集中第j条轨迹中t+1时刻下的所述机器人的状态,为预测的第j条轨迹中t+1时刻下的所述机器人的状态,Pj,d为第j条轨迹对应的第一矩阵的维度,T为矩阵转置符号。

第三方面,本公开的实施例提供了一种机器人控制装置,包括:第一获取模块,用于获取机器人的运动轨迹集;第一确定模块,用于确定所述机器人对应的机器人逆动力学模型,并确定所述机器人逆动力学模型对应的误差函数;第一训练模块,用于根据所述运动轨迹集和所述误差函数对所述机器人逆动力学模型进行自监督训练;第一控制模块,用于根据经过所述自监督训练之后的机器人逆动力学模型,对所述机器人进行控制。

第四方面,本公开的实施例提供了一种机器人控制装置,包括:第二获取模块,用于获取机器人的运动轨迹集;第二确定模块,用于确定所述机器人对应的机器人动力学模型和所述机器人对应的机器人逆动力学模型,并确定所述机器人动力学模型对应的第一误差函数和确定所述机器人逆动力学模型对应的第二误差函数;第二训练模块,用于根据所述运动轨迹集和所述第一误差函数对所述机器人动力学模型进行自监督训练,根据所述运动轨迹集和所述第二误差函数对所述机器人逆动力学模型进行自监督训练;组合模块,用于将经过所述自监督训练之后的所述机器人动力学模型和机器人逆动力学模型组合,得到所述机器人对应的机器人模型;第二控制模块,用于根据所述机器人模型对所述机器人进行控制。

第五方面,本公开的实施例提供了一种电子设备。上述电子设备包括处理器、通信接口、存储器和通信总线,其中,处理器、通信接口和存储器通过通信总线完成相互间的通信;存储器,用于存放计算机程序;处理器,用于执行存储器上所存放的程序时,实现如上所述的机器人控制方法或图像处理的方法。

第六方面,本公开的实施例提供了一种计算机可读存储介质。上述计算机可读存储介质上存储有计算机程序,上述计算机程序被处理器执行时实现如上所述的机器人控制方法或图像处理的方法。

本公开实施例提供的上述技术方案与现有技术相比至少具有如下优点的部分或全部:获取机器人的运动轨迹集;确定所述机器人对应的机器人逆动力学模型,并确定所述机器人逆动力学模型对应的误差函数;根据所述运动轨迹集和所述误差函数对所述机器人逆动力学模型进行自监督训练;根据经过所述自监督训练之后的机器人逆动力学模型,对所述机器人进行控制。因为,本公开实施例对于任意一个机器人逆动力学模型,根据所述运动轨迹集和所述机器人逆动力学模型对应的误差函数对所述机器人逆动力学模型进行自监督训练,根据经过所述自监督训练之后的机器人逆动力学模型,对所述机器人进行控制,因此,采用上述技术手段,可以解决现有技术中,缺少关于通过机器人逆动力学学习控制机器人的方案的问题,进而提供一种控制机器人的新方案。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。

为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1示意性示出了本公开实施例一种机器人控制方法的计算机终端的硬件结构框图;

图2示意性示出了本公开实施例的一种机器人控制方法的流程图(一);

图3示意性示出了本公开实施例的一种机器人控制方法的流程图(二);

图4示意性示出了本公开实施例的一种机器人逆动力学模型训练示意图;

图5示意性示出了本公开实施例的一种机器人模型训练示意图(一);

图6示意性示出了本公开实施例的一种机器人模型训练示意图(二);

图7示意性示出了本公开实施例的一种机器人控制装置的结构框图(一);

图8示意性示出了本公开实施例的一种机器人控制装置的结构框图(二);

图9示意性示出了本公开实施例提供的一种电子设备的结构框图。

具体实施方式

下文中将参考附图并结合实施例来详细说明本公开。需要说明的是,在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。

需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。

本公开实施例所提供的方法实施例可以在计算机终端或者类似的运算装置中执行。以运行在计算机终端上为例,图1示意性示出了本公开实施例的一种机器人控制方法的计算机终端的硬件结构框图。如图1所示,计算机终端可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器(Microprocessor Unit,简称是MPU)或可编程逻辑器件(Programmable logic device,简称是PLD)等处理装置和用于存储数据的存储器104,可选地,上述计算机终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述计算机终端的结构造成限定。例如,计算机终端还可包括比图1中所示更多或者更少的组件,或者具有与图1所示等同功能或比图1所示功能更多的不同的配置。

存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本公开实施例中的机器人控制方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

传输设备106用于经由网络接收或者发送数据。上述的网络具体实例可包括计算机终端的通信供应商提供的无线网络。在一个实例中,传输设备106包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备106可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。

在本公开实施例中提供了一种机器人控制方法,图2示意性示出了本公开实施例的一种机器人控制方法的流程图(一),如图2所示,该流程包括如下步骤:

步骤S202,获取机器人的运动轨迹集;

步骤S204,确定所述机器人对应的机器人逆动力学模型,并确定所述机器人逆动力学模型对应的误差函数;

步骤S206,根据所述运动轨迹集和所述误差函数对所述机器人逆动力学模型进行自监督训练;

步骤S208,根据经过所述自监督训练之后的机器人逆动力学模型,对所述机器人进行控制。

需要说明的是,本公开实施例中的所述机器人可以是任意一种结构的机器人,同理,所述机器人对应的机器人逆动力学模型可以是任意一种机器人逆动力学模型。

机器人动力学是指通过机器人现在或者之前的各个时刻的状态和现在或者之前的各个时刻对应的力矩计算下一时刻的状态,进而控制机器人。机器人逆动力学是通过机器人现在或者之前的各个时刻的状态和下一时刻的状态计算各个时刻对应的力矩,进而控制机器人。

通过本公开,获取机器人的运动轨迹集;确定所述机器人对应的机器人逆动力学模型,并确定所述机器人逆动力学模型对应的误差函数;根据所述运动轨迹集和所述误差函数对所述机器人逆动力学模型进行自监督训练;根据经过所述自监督训练之后的机器人逆动力学模型,对所述机器人进行控制。因为,本公开实施例对于任意一个机器人逆动力学模型,根据所述运动轨迹集和所述机器人逆动力学模型对应的误差函数对所述机器人逆动力学模型进行自监督训练,根据经过所述自监督训练之后的机器人逆动力学模型,对所述机器人进行控制,因此,采用上述技术手段,可以解决现有技术中,缺少关于通过机器人逆动力学学习控制机器人的方案的问题,进而提供一种控制机器人的新方案。

在步骤S206中,根据所述运动轨迹集和所述误差函数对所述机器人逆动力学模型进行自监督训练,包括:确定训练所述机器人逆动力学模型时的批处理条数,其中,所述批处理条数用于指示每次训练所述机器人逆动力学模型时,从所述运动轨迹集中选择的所述机器人的轨迹的条数;循环执行如下步骤对所述机器人逆动力学模型进行自监督训练:步骤一,从所述运动轨迹集中确定出所述批处理条数条所述机器人的轨迹;步骤二,根据确定出的每条轨迹生成第一矩阵,得到多个所述第一矩阵;步骤三,分别将多个所述第一矩阵依次输入所述机器人逆动力学模型,得到多个第二矩阵;步骤四,通过所述误差函数计算每个所述第一矩阵与每个所述第一矩阵所对应的所述第二矩阵的误差值;步骤五,根据所述误差值对所述机器人逆动力学模型进行训练;步骤六,在当前批次训练中,在最后一个输入所述机器人逆动力学模型的所述第一矩阵和最后一个输入所述机器人逆动力学模型的所述第一矩阵所对应的所述第二矩阵的误差值小于第一预设阈值时,结束循环。

批处理条数是每次批处理对应的从所述运动轨迹集中选择的所述机器人的轨迹的条数,批处理是模型训练中的专有名词,本公开不再解释。需要说明的是,确定训练所述机器人逆动力学模型时的批处理条数时,还可以确定机器人逆动力学模型的最大模型维度,确定网络各个模块中超参数,例如机器人逆动力学模型的网络层数、掩码多头注意力网络的头数、批处理大小、学习率、学习率衰减、学习种子等超参数。根据确定出的每条轨迹生成第一矩阵,是将每条轨迹转换为了矩阵数据,也就是第一矩阵。分别将多个所述第一矩阵依次输入所述机器人逆动力学模型,得到多个第二矩阵。其中,第二矩阵是所述机器人逆动力学模型根据所述第一矩阵,预测出的轨迹的数据。通过所述机器人逆动力学模型对应的误差函数计算每个所述第一矩阵与每个所述第一矩阵所对应的所述第二矩阵的误差值,也就是计算机器人逆动力学模型预测的值和真实值之间的差距,最后根据所述误差值对所述机器人逆动力学模型进行训练。通过循环执行步骤一到步骤五,逐渐减小所述误差值,提高所述机器人逆动力学模型预测的准确率,在当前批次训练的最后一个输入所述机器人逆动力学模型的所述第一矩阵和最后一个输入所述机器人逆动力学模型的所述第一矩阵所对应的所述第二矩阵的误差值小于第一预设阈值时,结束循环。需要说明的是,每次循环从所述运动轨迹集中确定出所述批处理条数条所述机器人的轨迹,是可以重复的。

在步骤S206中,根据确定出的每条轨迹生成第一矩阵,得到多个所述第一矩阵,包括:确定所述轨迹对应的所述机器人在多个时间维度下的状态和关节力矩,其中,所述状态包括:所述机器人的各个关节的位置和速度;以所述状态和所述关节力矩为所述第一矩阵的列,以所述多个时间维度为所述第一矩阵的行,构建所述第一矩阵;其中,在所述轨迹对应的所述机器人逆动力学模型的模型维度小于第二预设阈值时,对所述第一矩阵进行零填充处理。

确定所述轨迹对应的所述机器人在多个时间维度下的状态和关节力矩,实际上,所述轨迹是包括所述机器人在多个时间维度下的状态和关节力矩的。所述机器人的各个关节的位置可以是各个关节的角度。以所述状态和所述关节力矩为所述第一矩阵的列,可以是以所述状态-所述关节力矩对的形式组成所述第一矩阵的列。比如构建完成的所述第一矩阵的第一行第一列元素可以是第1时刻下的所述机器人的状态。第二预设阈值由机器人逆动力学模型的最大模型维度确定。

根据所述第一矩阵,得到的所述第一矩阵对应的所述第二矩阵,所述第二矩阵是以多个时间维度为行,所述状态对应的预测状态为列。第二矩阵是所述机器人逆动力学模型根据所述第一矩阵,预测出的轨迹的数据,因为一个轨迹对应所述机器人在多个时间维度下的状态和关节力矩,所以所述第二矩阵是以多个时间维度为行,所述状态对应的预测状态为列,和之前并不矛盾。

多个时间维度的维度数量是由运动轨迹集中的机器人轨迹对应的运动时间序列的长度决定。

需要说明的是,在所述轨迹对应的所述机器人逆动力学模型的模型维度小于第二预设阈值时,对所述第一矩阵进行零填充处理,还可以替换为在所述轨迹对应的所述第一矩阵小于第二预设阈值时,对所述第一矩阵进行零填充处理。

在步骤S206中,根据所述误差值对所述机器人逆动力学模型进行训练,包括:根据所述误差值,利用梯度下降算法更新所述机器人逆动力学模型的参数,其中,所述梯度下降算法,包括:梯度反向传播算法。

梯度反向传播算法可以是误差反向传播(Error Back Propagation)算法,简称BP算法,因为BP算法是现有技术,本公开实施例不再过多解释。

所述误差函数

NS为所述运动轨迹集中所述机器人的轨迹的总条数,j为轨迹的序号,t为时刻,nj为所述运动轨迹集中第j条轨迹中所述机器人的状态的总数,其中,每条轨迹包括多个所述机器人的关节力矩,τj,t+1为所述运动轨迹集中第j条轨迹中t+1时刻下的所述机器人的状态,为预测的第j条轨迹中t+1时刻下的所述机器人的关节力矩,Pj,d为第j条轨迹对应的第一矩阵的维度,T为矩阵转置符号。

本公开实施例通过上述误差函数,可以计算任意一种结构的机器人对应的机器人逆动力学模型预测值的误差,进而根据该误差更新任意一种结构的机器人对应的机器人逆动力学模型的参数,从而实现对任意一种结构的机器人的控制。

在步骤S208中,根据经过所述自监督训练之后的机器人逆动力学模型,对所述机器人进行控制,包括:获取所述机器人的历史状态,其中,所述历史状态包括以下至少之一:所述机器人在当前时刻的状态和所述机器人在所述当前时刻之前的一个或者多个状态,所述状态包括:所述机器人的各个关节的位置和速度;根据所述历史状态和经过所述自监督训练之后的机器人逆动力学模型,对所述机器人进行控制。

可选地,所述机器人逆动力学模型可以用于实现以下的映射f:

其中,random(P)为任意一种机器人逆动力学模型,St为t时刻下的所述机器人的状态,为t时刻下的所述机器人的关节力矩,为t+1时刻下的所述机器人的状态,也即是机器人逆动力学模型预测或者映射的t+1时刻下的所述机器人的状态。在本公开实施例中,所述历史状态包括:所述机器人在当前时刻的状态和所述机器人在所述当前时刻之前多个状态,其中,t时刻可以看作当前时刻。

在本公开实施例中提供了一种机器人控制方法,图3示意性示出了本公开实施例的一种机器人控制方法的流程图(二),如图3所示,该流程包括如下步骤:

步骤S302,获取机器人的运动轨迹集;

步骤S304,确定所述机器人对应的机器人动力学模型和所述机器人对应的机器人逆动力学模型,并确定所述机器人动力学模型对应的第一误差函数和确定所述机器人逆动力学模型对应的第二误差函数;

步骤S306,根据所述运动轨迹集和所述第一误差函数对所述机器人动力学模型进行自监督训练,根据所述运动轨迹集和所述第二误差函数对所述机器人逆动力学模型进行自监督训练;

步骤S308,将经过所述自监督训练之后的所述机器人动力学模型和机器人逆动力学模型组合,得到所述机器人对应的机器人模型;

步骤S310,根据所述机器人模型对所述机器人进行控制。

通过本公开,获取机器人的运动轨迹集;确定所述机器人对应的机器人动力学模型和所述机器人对应的机器人逆动力学模型,并确定所述机器人动力学模型对应的第一误差函数和确定所述机器人逆动力学模型对应的第二误差函数;根据所述运动轨迹集和所述第一误差函数对所述机器人动力学模型进行自监督训练,根据所述运动轨迹集和所述第二误差函数对所述机器人逆动力学模型进行自监督训练;将经过所述自监督训练之后的所述机器人动力学模型和机器人逆动力学模型组合,得到所述机器人对应的机器人模型;根据所述机器人模型对所述机器人进行控制。因为,本公开实施例对于任意一个机器人,将经过所述自监督训练之后的所述机器人对应的所述机器人动力学模型和机器人逆动力学模型组合,得到所述机器人对应的机器人模型;根据所述机器人模型对所述机器人进行控制,因此,采用上述技术手段,可以解决现有技术中,缺少关于通过机器人逆动力学学习控制机器人的方案的问题,进而提供一种控制机器人的新方案。

需要说明的是,对根据所述运动轨迹集和所述第一误差函数对所述机器人动力学模型进行自监督训练,根据所述运动轨迹集和所述第二误差函数对所述机器人逆动力学模型进行自监督训练;同于根据所述运动轨迹集和所述误差函数对所述机器人逆动力学模型进行自监督训练,所以在此不再赘述。

在一个示例性实施例中,所述第一误差函数LS

NS为所述运动轨迹集中所述机器人的轨迹的总条数,j为轨迹的序号,t为时刻,nj为所述运动轨迹集中第j条轨迹中所述机器人的状态的总数,其中,每条轨迹包括多个所述机器人的状态,Sj,t+1为所述运动轨迹集中第j条轨迹中t+1时刻下的所述机器人的状态,为预测的第j条轨迹中t+1时刻下的所述机器人的状态,Pj,d为第j条轨迹对应的第一矩阵的维度,T为矩阵转置符号。

所述第二误差函数LS就是所述误差函数

本公开实施例通过上述误差函数,可以计算任意一种结构的机器人对应的机器人动力学模型预测值的误差,进而根据该误差更新任意一种结构的机器人对应的机器人动力学模型的参数,从而实现对任意一种结构的机器人的控制。

在一个示例性实施例中,所述机器人逆动力学模型,包括:编码层、多层注意力网络层和解码层;其中,所述编码层和所述解码层均包括前馈神经网络,所述注意力网络层包括:掩码多头注意力网络、多个前馈神经网络和归一化网络。

归一化网络可以实现求和以及归一化的作用,本公开实施例涉及的网络都是现有网络,不再过多解释。

为了更好的理解上述技术方案,本公开实施例还提供了一种可选实施例,用于解释说明上述技术方案。

图4示意性示出了本公开实施例的一种机器人逆动力学模型训练示意图,如图4所示:

从所述运动轨迹集中,将s1 s2……SkSk+1以所述第一矩阵的形式输入所述机器人逆动力学模型,得到多个第二矩阵,其中,多个第二矩阵是以预测的关节力矩为所述第二矩阵的列,以所述多个时间维度为所述第二矩阵的行。多个第二矩阵中预测的关节力矩包括:……。因为所述运动轨迹集中,存在s1 s2……SkSk+1对应的……,通过所述误差函数计算计算……之间的误差值,根据所述误差值对所述机器人逆动力学模型进行训练。图中带箭头的虚线表示训练所述机器人逆动力学模型。

图5示意性示出了本公开实施例的一种机器人模型训练示意图(一),如图5所示:

根据所述机器人模型对所述机器人进行控制,包括两种方案:机器人逆动力学模型后接所述机器人动力学模型,机器人逆动力学模型前接所述机器人动力学模型。图5所示是机器人逆动力学模型后接所述机器人动力学模型,机器人逆动力学模型后接所述机器人动力学模型组合得到的机器人模型可以理解为机器人左逆动力学模型。根据所述运动轨迹集和所述第一误差函数对所述机器人动力学模型进行自监督训练和根据所述运动轨迹集和所述第二误差函数对所述机器人逆动力学模型进行自监督训练可以不同时进行。图5所示的机器人左逆动力学模型中,机器人动力学模型是已经训练好的模型,所以,只训练所述机器人逆动力学模型就行,图中带箭头的虚线表示只训练所述机器人逆动力学模型。

具体训练:将s1 s2……SkSk+1以所述第一矩阵的形式输入所述机器人逆动力学模型,得到多个第二矩阵,其中,多个第二矩阵是以预测的关节力矩为所述第二矩阵的列,以所述多个时间维度为所述第二矩阵的行。多个第二矩阵中预测的关节力矩包括:……。将s1 s2……Sk……输入所述机器人动力学模型,输出……,根据……和s2……Sk+1对所述机器人动力学模型进行训练。

图6示意性示出了本公开实施例的一种机器人模型训练示意图(二),如图6所示:

图6所示是机器人逆动力学模型前接所述机器人动力学模型,机器人逆动力学模型前接所述机器人动力学模型组合得到的机器人模型可以理解为机器人右逆动力学模型。根据所述运动轨迹集和所述第一误差函数对所述机器人动力学模型进行自监督训练和根据所述运动轨迹集和所述第二误差函数对所述机器人逆动力学模型进行自监督训练可以不同时进行。图5所示的机器人右逆动力学模型中,机器人动力学模型是已经训练好的模型,所以,只训练所述机器人逆动力学模型就行,图中带箭头的虚线表示只训练所述机器人逆动力学模型。具体训练:将s1 s2……Sk,和……输入所述机器人动力学模型,输出……。将……和s1 s2……Sk输入所述机器人逆动力学模型,输出……,根据…………对所述机器人逆动力学模型进行训练。

可选地,所述机器人动力学模型和所述机器人逆动力学模型,均包括:编码层、注意力网络层和解码层;

所述编码层和所述解码层均包括前馈神经网络,所述注意力网络层包括:掩码多头注意力网络、前馈神经网络和归一化网络;

可选地,关于所述机器人动力学模型的具体训练过程:

获取机器人的第一运动轨迹集,其中,所述第一运动轨迹集是机器人行走产生的,历史的运动轨迹集,所述第一运动轨迹集包括多条所述机器人的轨迹,每条轨迹包括:所述机器人在多个时间维度下的状态S和关节力矩τ,所述状态包括:所述机器人的各个关节的位置和速度,sk为k时刻下的机器人的状态,τ k为k时刻下的机器人的关节力矩;

将所述运动轨迹集输入所述机器人逆动力学模型,输出所述机器人逆动力学模型预测的第二运动轨迹集,其中,所述第一运动轨迹集包括:多条预测的所述机器人的轨迹,每条预测的轨迹包括:所述机器人在多个时间维度下的状态S,为预测的,k+1时刻下的机器人的状态。

具体的,所述机器人逆动力学模型根据s1τ 1预测出,所述机器人逆动力学模型根据s1τ 1,s2τ 2预测出……所述机器人逆动力学模型根据s1τ 1,s2τ 2……skτ k预测出。需要说明的是,所述机器人逆动力学模型还可以直接根据skτ k预测出

通过本公开,获取机器人的运动轨迹集;确定所述机器人对应的机器人逆动力学模型,并确定所述机器人逆动力学模型对应的误差函数;根据所述运动轨迹集和所述误差函数对所述机器人逆动力学模型进行自监督训练;根据经过所述自监督训练之后的机器人逆动力学模型,对所述机器人进行控制。因为,本公开实施例对于任意一个机器人逆动力学模型,根据所述运动轨迹集和所述机器人逆动力学模型对应的误差函数对所述机器人逆动力学模型进行自监督训练,根据经过所述自监督训练之后的机器人逆动力学模型,对所述机器人进行控制,因此,采用上述技术手段,可以解决现有技术中,缺少关于通过机器人逆动力学学习控制机器人的方案的问题,进而提供一种控制机器人的新方案。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(RandomAccessMemory,简称为RAM)、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,组件服务端,或者网络设备等)执行本公开各个实施例的方法。

在本实施例中还提供了一种机器人控制装置,该机器人控制装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。

图7示意性示出了本公开可选实施例的一种机器人控制装置的结构框图(一),如图7所示,该装置包括:

第一获取模块702,用于获取机器人的运动轨迹集;

第一确定模块704,用于确定所述机器人对应的机器人逆动力学模型,并确定所述机器人逆动力学模型对应的误差函数;

第一训练模块706,用于根据所述运动轨迹集和所述误差函数对所述机器人逆动力学模型进行自监督训练;

第一控制模块708,用于根据经过所述自监督训练之后的机器人逆动力学模型,对所述机器人进行控制。

通过本公开,获取机器人的运动轨迹集;确定所述机器人对应的机器人逆动力学模型,并确定所述机器人逆动力学模型对应的误差函数;根据所述运动轨迹集和所述误差函数对所述机器人逆动力学模型进行自监督训练;根据经过所述自监督训练之后的机器人逆动力学模型,对所述机器人进行控制。因为,本公开实施例对于任意一个机器人逆动力学模型,根据所述运动轨迹集和所述机器人逆动力学模型对应的误差函数对所述机器人逆动力学模型进行自监督训练,根据经过所述自监督训练之后的机器人逆动力学模型,对所述机器人进行控制,因此,采用上述技术手段,可以解决现有技术中,缺少关于通过机器人逆动力学学习控制机器人的方案的问题,进而提供一种控制机器人的新方案。

可选地,第一训练模块706还用于确定训练所述机器人逆动力学模型时的批处理条数,其中,所述批处理条数用于指示每次训练所述机器人逆动力学模型时,从所述运动轨迹集中选择的所述机器人的轨迹的条数;循环执行如下步骤对所述机器人逆动力学模型进行自监督训练:步骤一,从所述运动轨迹集中确定出所述批处理条数条所述机器人的轨迹;步骤二,根据确定出的每条轨迹生成第一矩阵,得到多个所述第一矩阵;步骤三,分别将多个所述第一矩阵依次输入所述机器人逆动力学模型,得到多个第二矩阵;步骤四,通过所述误差函数计算每个所述第一矩阵与每个所述第一矩阵所对应的所述第二矩阵的误差值;步骤五,根据所述误差值对所述机器人逆动力学模型进行训练;步骤六,在当前批次训练中,在最后一个输入所述机器人逆动力学模型的所述第一矩阵和最后一个输入所述机器人逆动力学模型的所述第一矩阵所对应的所述第二矩阵的误差值小于第一预设阈值时,结束循环。

批处理条数是每次批处理对应的从所述运动轨迹集中选择的所述机器人的轨迹的条数,批处理是模型训练中的专有名词,本公开不再解释。需要说明的是,确定训练所述机器人逆动力学模型时的批处理条数时,还可以确定机器人逆动力学模型的最大模型维度,确定网络各个模块中超参数,例如机器人逆动力学模型的网络层数、掩码多头注意力网络的头数、批处理大小、学习率、学习率衰减、学习种子等超参数。根据确定出的每条轨迹生成第一矩阵,是将每条轨迹转换为了矩阵数据,也就是第一矩阵。分别将多个所述第一矩阵依次输入所述机器人逆动力学模型,得到多个第二矩阵。其中,第二矩阵是所述机器人逆动力学模型根据所述第一矩阵,预测出的轨迹的数据。通过所述机器人逆动力学模型对应的误差函数计算每个所述第一矩阵与每个所述第一矩阵所对应的所述第二矩阵的误差值,也就是计算机器人逆动力学模型预测的值和真实值之间的差距,最后根据所述误差值对所述机器人逆动力学模型进行训练。通过循环执行步骤一到步骤五,逐渐减小所述误差值,提高所述机器人逆动力学模型预测的准确率,在当前批次训练的最后一个输入所述机器人逆动力学模型的所述第一矩阵和最后一个输入所述机器人逆动力学模型的所述第一矩阵所对应的所述第二矩阵的误差值小于第一预设阈值时,结束循环。需要说明的是,每次循环从所述运动轨迹集中确定出所述批处理条数条所述机器人的轨迹,是可以重复的。

可选地,第一训练模块706还用于确定所述轨迹对应的所述机器人在多个时间维度下的状态和关节力矩,其中,所述状态包括:所述机器人的各个关节的位置和速度;以所述状态和所述关节力矩为所述第一矩阵的列,以所述多个时间维度为所述第一矩阵的行,构建所述第一矩阵;其中,在所述轨迹对应的所述机器人逆动力学模型的模型维度小于第二预设阈值时,对所述第一矩阵进行零填充处理。

确定所述轨迹对应的所述机器人在多个时间维度下的状态和关节力矩,实际上,所述轨迹是包括所述机器人在多个时间维度下的状态和关节力矩的。所述机器人的各个关节的位置可以是各个关节的角度。以所述状态和所述关节力矩为所述第一矩阵的列,可以是以所述状态-所述关节力矩对的形式组成所述第一矩阵的列。比如构建完成的所述第一矩阵的第一行第一列元素可以是第1时刻下的所述机器人的状态。第二预设阈值由机器人逆动力学模型的最大模型维度确定。

根据所述第一矩阵,得到的所述第一矩阵对应的所述第二矩阵,所述第二矩阵是以多个时间维度为行,所述状态对应的预测状态为列。第二矩阵是所述机器人逆动力学模型根据所述第一矩阵,预测出的轨迹的数据,因为一个轨迹对应所述机器人在多个时间维度下的状态和关节力矩,所以所述第二矩阵是以多个时间维度为行,所述状态对应的预测状态为列,和之前并不矛盾。

多个时间维度的维度数量是由运动轨迹集中的机器人轨迹对应的运动时间序列的长度决定。

可选地,第一训练模块706还用于根据所述误差值,利用梯度下降算法更新所述机器人逆动力学模型的参数,其中,所述梯度下降算法,包括:梯度反向传播算法。

梯度反向传播算法可以是误差反向传播(Error Back Propagation)算法,简称BP算法,因为BP算法是现有技术,本公开实施例不再过多解释。

所述误差函数

NS为所述运动轨迹集中所述机器人的轨迹的总条数,j为轨迹的序号,t为时刻,nj为所述运动轨迹集中第j条轨迹中所述机器人的状态的总数,其中,每条轨迹包括多个所述机器人的关节力矩,τj,t+1为所述运动轨迹集中第j条轨迹中t+1时刻下的所述机器人的状态,为预测的第j条轨迹中t+1时刻下的所述机器人的关节力矩,Pj,d为第j条轨迹对应的第一矩阵的维度,T为矩阵转置符号。

本公开实施例通过上述误差函数,可以计算任意一种结构的机器人对应的机器人逆动力学模型预测值的误差,进而根据该误差更新任意一种结构的机器人对应的机器人逆动力学模型的参数,从而实现对任意一种结构的机器人的控制。

可选地,第一控制模块708还用于获取所述机器人的历史状态,其中,所述历史状态包括以下至少之一:所述机器人在当前时刻的状态和所述机器人在所述当前时刻之前的一个或者多个状态,所述状态包括:所述机器人的各个关节的位置和速度;根据所述历史状态和经过所述自监督训练之后的机器人逆动力学模型,对所述机器人进行控制。

可选地,所述机器人逆动力学模型可以用于实现以下的映射f:

其中,random(P)为任意一种机器人逆动力学模型,St为t时刻下的所述机器人的状态,为t时刻下的所述机器人的关节力矩,为t+1时刻下的所述机器人的状态,也即是机器人逆动力学模型预测或者映射的t+1时刻下的所述机器人的状态。在本公开实施例中,所述历史状态包括:所述机器人在当前时刻的状态和所述机器人在所述当前时刻之前多个状态,其中,t时刻可以看作当前时刻。

在本公开实施例中提供了一种机器人控制装置,图8示意性示出了本公开可选实施例的一种机器人控制装置的结构框图(二),如图8所示,该装置包括:

第二获取模块802,用于获取机器人的运动轨迹集;

第二确定模块804,用于确定所述机器人对应的机器人动力学模型和所述机器人对应的机器人逆动力学模型,并确定所述机器人动力学模型对应的第一误差函数和确定所述机器人逆动力学模型对应的第二误差函数;

第二训练模块806,用于根据所述运动轨迹集和所述第一误差函数对所述机器人动力学模型进行自监督训练,根据所述运动轨迹集和所述第二误差函数对所述机器人逆动力学模型进行自监督训练;

组合模块808,用于将经过所述自监督训练之后的所述机器人动力学模型和机器人逆动力学模型组合,得到所述机器人对应的机器人模型;

第二控制模块810,用于根据所述机器人模型对所述机器人进行控制。

通过本公开,获取机器人的运动轨迹集;确定所述机器人对应的机器人动力学模型和所述机器人对应的机器人逆动力学模型,并确定所述机器人动力学模型对应的第一误差函数和确定所述机器人逆动力学模型对应的第二误差函数;根据所述运动轨迹集和所述第一误差函数对所述机器人动力学模型进行自监督训练,根据所述运动轨迹集和所述第二误差函数对所述机器人逆动力学模型进行自监督训练;将经过所述自监督训练之后的所述机器人动力学模型和机器人逆动力学模型组合,得到所述机器人对应的机器人模型;根据所述机器人模型对所述机器人进行控制。因为,本公开实施例对于任意一个机器人,将经过所述自监督训练之后的所述机器人对应的所述机器人动力学模型和机器人逆动力学模型组合,得到所述机器人对应的机器人模型;根据所述机器人模型对所述机器人进行控制,因此,采用上述技术手段,可以解决现有技术中,缺少关于通过机器人逆动力学学习控制机器人的方案的问题,进而提供一种控制机器人的新方案。

需要说明的是,对根据所述运动轨迹集和所述第一误差函数对所述机器人动力学模型进行自监督训练,根据所述运动轨迹集和所述第二误差函数对所述机器人逆动力学模型进行自监督训练;同于根据所述运动轨迹集和所述误差函数对所述机器人逆动力学模型进行自监督训练,所以在此不再赘述。

所述第一误差函数LS

NS为所述运动轨迹集中所述机器人的轨迹的总条数,j为轨迹的序号,t为时刻,nj为所述运动轨迹集中第j条轨迹中所述机器人的状态的总数,其中,每条轨迹包括多个所述机器人的状态,Sj,t+1为所述运动轨迹集中第j条轨迹中t+1时刻下的所述机器人的状态,为预测的第j条轨迹中t+1时刻下的所述机器人的状态,Pj,d为第j条轨迹对应的第一矩阵的维度,T为矩阵转置符号。

所述第二误差函数LS就是所述误差函数

本公开实施例通过上述误差函数,可以计算任意一种结构的机器人对应的机器人动力学模型预测值的误差,进而根据该误差更新任意一种结构的机器人对应的机器人动力学模型的参数,从而实现对任意一种结构的机器人的控制。

在一个示例性实施例中,所述机器人逆动力学模型,包括:编码层、多层注意力网络层和解码层;其中,所述编码层和所述解码层均包括前馈神经网络,所述注意力网络层包括:掩码多头注意力网络、多个前馈神经网络和归一化网络。

归一化网络可以实现求和以及归一化的作用,本公开实施例涉及的网络都是现有网络,不再过多解释。

需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。

本公开的实施例提供了一种电子设备。

图9示意性示出了本公开实施例提供的一种电子设备的结构框图。

参照图9所示,本公开实施例提供的电子设备900包括处理器901、通信接口902、存储器903和通信总线904,其中,处理器901、通信接口902和存储器903通过通信总线904完成相互间的通信;存储器903,用于存放计算机程序;处理器901,用于执行存储器上所存放的程序时,实现上述任一项方法实施例中的步骤。

可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该输入输出设备与上述处理器连接。

可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:

S1,获取机器人的运动轨迹集;

S2,确定所述机器人对应的机器人逆动力学模型,并确定所述机器人逆动力学模型对应的误差函数;

S3,根据所述运动轨迹集和所述误差函数对所述机器人逆动力学模型进行自监督训练;

S4,根据经过所述自监督训练之后的机器人逆动力学模型,对所述机器人进行控制。

本公开的实施例还提供了一种计算机可读存储介质。上述计算机可读存储介质上存储有计算机程序,上述计算机程序被处理器执行时实现上述任一项方法实施例中的步骤。

可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:

S1,获取机器人的运动轨迹集;

S2,确定所述机器人对应的机器人逆动力学模型,并确定所述机器人逆动力学模型对应的误差函数;

S3,根据所述运动轨迹集和所述误差函数对所述机器人逆动力学模型进行自监督训练;

S4,根据经过所述自监督训练之后的机器人逆动力学模型,对所述机器人进行控制。

该计算机可读存储介质可以是上述实施例中描述的设备/装置中所包含的;也可以是单独存在,而未装配入该设备/装置中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。

根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。

可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。

显然,本领域的技术人员应该明白,上述的本公开的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本公开不限制于任何特定的硬件和软件结合。

以上所述仅为本公开的优选实施例而已,并不用于限制于本公开,对于本领域的技术人员来说,本公开可以有各种更改和变化。凡在本公开的原则之内,所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。

25页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种机械手路径规划结果的评价方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!